Vendor Update (#14496)
* update code.gitea.io/sdk/gitea v0.13.1 -> v0.13.2 * update github.com/go-swagger/go-swagger v0.25.0 -> v0.26.0 * update github.com/google/uuid v1.1.2 -> v1.2.0 * update github.com/klauspost/compress v1.11.3 -> v1.11.7 * update github.com/lib/pq 083382b7e6fc -> v1.9.0 * update github.com/markbates/goth v1.65.0 -> v1.66.1 * update github.com/mattn/go-sqlite3 v1.14.4 -> v1.14.6 * update github.com/mgechev/revive 246eac737dc7 -> v1.0.3 * update github.com/minio/minio-go/v7 v7.0.6 -> v7.0.7 * update github.com/niklasfasching/go-org v1.3.2 -> v1.4.0 * update github.com/olivere/elastic/v7 v7.0.21 -> v7.0.22 * update github.com/pquerna/otp v1.2.0 -> v1.3.0 * update github.com/xanzy/go-gitlab v0.39.0 -> v0.42.0 * update github.com/yuin/goldmark v1.2.1 -> v1.3.1
This commit is contained in:
parent
e45bf12a34
commit
d1353e1f7c
51
go.mod
51
go.mod
|
@ -4,7 +4,7 @@ go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
code.gitea.io/gitea-vet v0.2.1
|
code.gitea.io/gitea-vet v0.2.1
|
||||||
code.gitea.io/sdk/gitea v0.13.1
|
code.gitea.io/sdk/gitea v0.13.2
|
||||||
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c
|
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c
|
||||||
gitea.com/go-chi/cache v0.0.0-20210110083709-82c4c9ce2d5e
|
gitea.com/go-chi/cache v0.0.0-20210110083709-82c4c9ce2d5e
|
||||||
gitea.com/go-chi/captcha v0.0.0-20210110083842-e7696c336a1e
|
gitea.com/go-chi/captcha v0.0.0-20210110083842-e7696c336a1e
|
||||||
|
@ -17,6 +17,7 @@ require (
|
||||||
github.com/andybalholm/brotli v1.0.1 // indirect
|
github.com/andybalholm/brotli v1.0.1 // indirect
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
||||||
github.com/blevesearch/bleve/v2 v2.0.1
|
github.com/blevesearch/bleve/v2 v2.0.1
|
||||||
|
github.com/boombuler/barcode v1.0.1 // indirect
|
||||||
github.com/caddyserver/certmagic v0.12.0
|
github.com/caddyserver/certmagic v0.12.0
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
|
||||||
github.com/denisenkom/go-mssqldb v0.9.0
|
github.com/denisenkom/go-mssqldb v0.9.0
|
||||||
|
@ -36,14 +37,14 @@ require (
|
||||||
github.com/go-ldap/ldap/v3 v3.2.4
|
github.com/go-ldap/ldap/v3 v3.2.4
|
||||||
github.com/go-redis/redis/v7 v7.4.0
|
github.com/go-redis/redis/v7 v7.4.0
|
||||||
github.com/go-sql-driver/mysql v1.5.0
|
github.com/go-sql-driver/mysql v1.5.0
|
||||||
github.com/go-swagger/go-swagger v0.25.0
|
github.com/go-swagger/go-swagger v0.26.0
|
||||||
github.com/go-testfixtures/testfixtures/v3 v3.4.1
|
github.com/go-testfixtures/testfixtures/v3 v3.4.1
|
||||||
github.com/gobwas/glob v0.2.3
|
github.com/gobwas/glob v0.2.3
|
||||||
github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28
|
github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28
|
||||||
github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
|
github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
|
||||||
github.com/gogs/go-gogs-client v0.0.0-20200905025246-8bb8a50cb355
|
github.com/gogs/go-gogs-client v0.0.0-20200905025246-8bb8a50cb355
|
||||||
github.com/google/go-github/v32 v32.1.0
|
github.com/google/go-github/v32 v32.1.0
|
||||||
github.com/google/uuid v1.1.2
|
github.com/google/uuid v1.2.0
|
||||||
github.com/gorilla/context v1.1.1
|
github.com/gorilla/context v1.1.1
|
||||||
github.com/hashicorp/go-retryablehttp v0.6.8 // indirect
|
github.com/hashicorp/go-retryablehttp v0.6.8 // indirect
|
||||||
github.com/hashicorp/go-version v1.2.1
|
github.com/hashicorp/go-version v1.2.1
|
||||||
|
@ -54,37 +55,37 @@ require (
|
||||||
github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7
|
github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
||||||
github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
|
github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
|
||||||
github.com/klauspost/compress v1.11.3
|
github.com/klauspost/compress v1.11.7
|
||||||
github.com/klauspost/pgzip v1.2.5 // indirect
|
github.com/klauspost/pgzip v1.2.5 // indirect
|
||||||
github.com/lafriks/xormstore v1.3.2
|
github.com/lafriks/xormstore v1.3.2
|
||||||
github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc
|
github.com/lib/pq v1.9.0
|
||||||
github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96
|
github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96
|
||||||
github.com/markbates/goth v1.65.0
|
github.com/markbates/goth v1.66.1
|
||||||
github.com/mattn/go-colorable v0.1.7 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.12
|
github.com/mattn/go-isatty v0.0.12
|
||||||
github.com/mattn/go-runewidth v0.0.9 // indirect
|
github.com/mattn/go-runewidth v0.0.10 // indirect
|
||||||
github.com/mattn/go-sqlite3 v1.14.4
|
github.com/mattn/go-sqlite3 v1.14.6
|
||||||
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81
|
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81
|
||||||
github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7
|
github.com/mgechev/revive v1.0.3
|
||||||
github.com/mholt/archiver/v3 v3.5.0
|
github.com/mholt/archiver/v3 v3.5.0
|
||||||
github.com/microcosm-cc/bluemonday v1.0.4
|
github.com/microcosm-cc/bluemonday v1.0.4
|
||||||
github.com/minio/minio-go/v7 v7.0.6
|
github.com/minio/md5-simd v1.1.1 // indirect
|
||||||
|
github.com/minio/minio-go/v7 v7.0.7
|
||||||
github.com/mitchellh/go-homedir v1.1.0
|
github.com/mitchellh/go-homedir v1.1.0
|
||||||
github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b
|
github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b
|
||||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
||||||
github.com/niklasfasching/go-org v1.3.2
|
github.com/niklasfasching/go-org v1.4.0
|
||||||
github.com/oliamb/cutter v0.2.2
|
github.com/oliamb/cutter v0.2.2
|
||||||
github.com/olivere/elastic/v7 v7.0.21
|
github.com/olivere/elastic/v7 v7.0.22
|
||||||
github.com/pelletier/go-toml v1.8.1
|
github.com/pelletier/go-toml v1.8.1
|
||||||
github.com/pierrec/lz4/v4 v4.1.1 // indirect
|
github.com/pierrec/lz4/v4 v4.1.1 // indirect
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/pquerna/otp v1.2.0
|
github.com/pquerna/otp v1.3.0
|
||||||
github.com/prometheus/client_golang v1.8.0
|
github.com/prometheus/client_golang v1.8.0
|
||||||
github.com/quasoft/websspi v1.0.0
|
github.com/quasoft/websspi v1.0.0
|
||||||
|
github.com/rivo/uniseg v0.2.0 // indirect
|
||||||
github.com/sergi/go-diff v1.1.0
|
github.com/sergi/go-diff v1.1.0
|
||||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
|
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
|
||||||
github.com/spf13/viper v1.7.1 // indirect
|
|
||||||
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
github.com/syndtr/goleveldb v1.0.0
|
github.com/syndtr/goleveldb v1.0.0
|
||||||
|
@ -97,24 +98,24 @@ require (
|
||||||
github.com/unrolled/render v1.0.3
|
github.com/unrolled/render v1.0.3
|
||||||
github.com/urfave/cli v1.22.5
|
github.com/urfave/cli v1.22.5
|
||||||
github.com/willf/bitset v1.1.11 // indirect
|
github.com/willf/bitset v1.1.11 // indirect
|
||||||
github.com/xanzy/go-gitlab v0.39.0
|
github.com/xanzy/go-gitlab v0.42.0
|
||||||
github.com/yohcop/openid-go v1.0.0
|
github.com/yohcop/openid-go v1.0.0
|
||||||
github.com/yuin/goldmark v1.2.1
|
github.com/yuin/goldmark v1.3.1
|
||||||
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691
|
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691
|
||||||
github.com/yuin/goldmark-meta v1.0.0
|
github.com/yuin/goldmark-meta v1.0.0
|
||||||
go.jolheiser.com/hcaptcha v0.0.4
|
go.jolheiser.com/hcaptcha v0.0.4
|
||||||
go.jolheiser.com/pwn v0.0.3
|
go.jolheiser.com/pwn v0.0.3
|
||||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620
|
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad
|
||||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102
|
golang.org/x/net v0.0.0-20210119194325-5f4716e94777
|
||||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43
|
golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013
|
||||||
golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
||||||
golang.org/x/text v0.3.4
|
golang.org/x/text v0.3.5
|
||||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect
|
||||||
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9
|
golang.org/x/tools v0.1.0
|
||||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||||
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
||||||
gopkg.in/ini.v1 v1.62.0
|
gopkg.in/ini.v1 v1.62.0
|
||||||
gopkg.in/yaml.v2 v2.3.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
mvdan.cc/xurls/v2 v2.2.0
|
mvdan.cc/xurls/v2 v2.2.0
|
||||||
strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251
|
strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251
|
||||||
xorm.io/builder v0.3.7
|
xorm.io/builder v0.3.7
|
||||||
|
|
194
go.sum
194
go.sum
|
@ -37,8 +37,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
|
||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||||
code.gitea.io/gitea-vet v0.2.1 h1:b30by7+3SkmiftK0RjuXqFvZg2q4p68uoPGuxhzBN0s=
|
code.gitea.io/gitea-vet v0.2.1 h1:b30by7+3SkmiftK0RjuXqFvZg2q4p68uoPGuxhzBN0s=
|
||||||
code.gitea.io/gitea-vet v0.2.1/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE=
|
code.gitea.io/gitea-vet v0.2.1/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE=
|
||||||
code.gitea.io/sdk/gitea v0.13.1 h1:Y7bpH2iO6Q0KhhMJfjP/LZ0AmiYITeRQlCD8b0oYqhk=
|
code.gitea.io/sdk/gitea v0.13.2 h1:wAnT/J7Z62q3fJXbgnecoaOBh8CM1Qq0/DakWxiv4yA=
|
||||||
code.gitea.io/sdk/gitea v0.13.1/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY=
|
code.gitea.io/sdk/gitea v0.13.2/go.mod h1:lee2y8LeV3kQb2iK+hHlMqoadL4bp27QOkOV/hawLKg=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c h1:NTtrGYjR40WUdkCdn26Y5LGFT52rIkFPkjmtgCAyiTs=
|
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c h1:NTtrGYjR40WUdkCdn26Y5LGFT52rIkFPkjmtgCAyiTs=
|
||||||
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c/go.mod h1:9bGA9dIsrz+wVQKH1DzvxuAvrudHaQ8Wx8hLme/GVGQ=
|
gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c/go.mod h1:9bGA9dIsrz+wVQKH1DzvxuAvrudHaQ8Wx8hLme/GVGQ=
|
||||||
|
@ -82,6 +82,7 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX
|
||||||
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
||||||
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
||||||
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
|
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
|
||||||
|
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
||||||
github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
|
github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
|
||||||
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs=
|
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs=
|
||||||
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
|
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
|
||||||
|
@ -103,6 +104,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
|
||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||||
|
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||||
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
||||||
github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc=
|
github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc=
|
||||||
github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
||||||
|
@ -126,9 +128,12 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||||
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
|
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
|
||||||
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.34.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||||
|
github.com/aws/aws-sdk-go v1.35.20/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
|
||||||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
||||||
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
|
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
|
||||||
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
|
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
|
||||||
|
@ -167,6 +172,8 @@ github.com/blevesearch/zapx/v15 v15.1.10 h1:kZR3b9jO9l6s2B5UHI+1N1llLzJ4nYikkXQT
|
||||||
github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM=
|
github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM=
|
||||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
|
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
|
||||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||||
|
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
|
||||||
|
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||||
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668 h1:U/lr3Dgy4WK+hNk4tyD+nuGjpVLPEHuJSFXMw11/HPA=
|
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668 h1:U/lr3Dgy4WK+hNk4tyD+nuGjpVLPEHuJSFXMw11/HPA=
|
||||||
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=
|
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=
|
||||||
github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug=
|
github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug=
|
||||||
|
@ -270,8 +277,12 @@ github.com/ethantkoenig/rupture v1.0.0/go.mod h1:GyE9QabHfxA6ch0NZgwsHopRbOLcYjU
|
||||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||||
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
||||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
|
github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg=
|
||||||
|
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||||
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
|
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/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
|
||||||
|
github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
|
||||||
|
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||||
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
|
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
|
||||||
|
@ -331,12 +342,18 @@ github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9sn
|
||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
||||||
github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE=
|
github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE=
|
||||||
github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ=
|
github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ=
|
||||||
|
github.com/go-openapi/analysis v0.19.16 h1:Ub9e++M8sDwtHD+S587TYi+6ANBG1NRYGZDihqk0SaY=
|
||||||
|
github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk=
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys=
|
github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys=
|
||||||
github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4=
|
||||||
|
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=
|
github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=
|
||||||
github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=
|
github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
||||||
|
@ -344,12 +361,14 @@ github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwds
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
github.com/go-openapi/jsonreference v0.19.4 h1:3Vw+rh13uq2JFNxgnMTGE1rnoieU9FmyE1gvnyylsYg=
|
github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
|
||||||
github.com/go-openapi/jsonreference v0.19.4/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
|
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
|
||||||
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
|
@ -357,12 +376,18 @@ github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix
|
||||||
github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI=
|
github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI=
|
||||||
github.com/go-openapi/loads v0.19.5 h1:jZVYWawIQiA1NBnHla28ktg6hrcfTHsCE+3QLVRBIls=
|
github.com/go-openapi/loads v0.19.5 h1:jZVYWawIQiA1NBnHla28ktg6hrcfTHsCE+3QLVRBIls=
|
||||||
github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY=
|
github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY=
|
||||||
|
github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc=
|
||||||
|
github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc=
|
||||||
|
github.com/go-openapi/loads v0.20.0 h1:Pymw1O8zDmWeNv4kVsHd0W3cvgdp8juRa4U/U/8D/Pk=
|
||||||
|
github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4=
|
||||||
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
||||||
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
||||||
github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
|
github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
|
||||||
github.com/go-openapi/runtime v0.19.20 h1:J/t+QIjbcoq8WJvjGxRKiFBhqUE8slS9SbmD0Oi/raQ=
|
github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
|
||||||
github.com/go-openapi/runtime v0.19.20/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
|
github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
|
||||||
|
github.com/go-openapi/runtime v0.19.26 h1:K/6PoVNj5WJXUnMk+VEbELeXjtBkCS1UxTDa04tdXE0=
|
||||||
|
github.com/go-openapi/runtime v0.19.26/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M=
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
||||||
|
@ -370,6 +395,10 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8
|
||||||
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
github.com/go-openapi/spec v0.19.8 h1:qAdZLh1r6QF/hI/gTq+TJTvsQUodZsM7KLqkAJdiJNg=
|
github.com/go-openapi/spec v0.19.8 h1:qAdZLh1r6QF/hI/gTq+TJTvsQUodZsM7KLqkAJdiJNg=
|
||||||
github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
|
github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU=
|
||||||
|
github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU=
|
||||||
|
github.com/go-openapi/spec v0.20.1 h1:5WNKTzPguDN+79wbJw2UE2q+eX+gUmEFsIKSvnSQJlc=
|
||||||
|
github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ=
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
||||||
|
@ -378,6 +407,9 @@ github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6
|
||||||
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM=
|
github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM=
|
||||||
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
|
github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
|
||||||
|
github.com/go-openapi/strfmt v0.20.0 h1:l2omNtmNbMc39IGptl9BuXBEKcZfS8zjrTsPKTiJiDM=
|
||||||
|
github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
|
@ -385,11 +417,18 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
|
||||||
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE=
|
github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE=
|
||||||
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
|
github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M=
|
||||||
|
github.com/go-openapi/swag v0.19.13 h1:233UVgMy1DlmCYYfOiFpta6e2urloh+sEs5id6lyzog=
|
||||||
|
github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||||
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
||||||
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
||||||
github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
|
github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
|
||||||
github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk=
|
github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk=
|
||||||
github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
|
github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
|
||||||
|
github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4=
|
||||||
|
github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI=
|
||||||
|
github.com/go-openapi/validate v0.20.1 h1:QGQ5CvK74E28t3DkegGweKR+auemUi5IdpMc4x3UW6s=
|
||||||
|
github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0=
|
||||||
github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4=
|
github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4=
|
||||||
github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
||||||
github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4=
|
github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4=
|
||||||
|
@ -401,8 +440,8 @@ github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gG
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/go-swagger/go-swagger v0.25.0 h1:FxhyrWWV8V/A9P6GtI5szWordAdbb6Y0nqdY/y9So2w=
|
github.com/go-swagger/go-swagger v0.26.0 h1:LM5XTbeRbDdjHRqdA0jchK5Qs3DB2F0R5QmXs1pd/L0=
|
||||||
github.com/go-swagger/go-swagger v0.25.0/go.mod h1:9639ioXrPX9E6BbnbaDklGXjNz7upAXoNBwL4Ok11Vk=
|
github.com/go-swagger/go-swagger v0.26.0/go.mod h1:kSAA+pziAr5x68on6TxcxWoIl9GOo1mLsHmfMV2rrCo=
|
||||||
github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0=
|
github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0=
|
||||||
github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.mod h1:b65mBPzqzZWxOZGxSWrqs4GInLIn+u99Q9q7p+GKni0=
|
github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.mod h1:b65mBPzqzZWxOZGxSWrqs4GInLIn+u99Q9q7p+GKni0=
|
||||||
github.com/go-testfixtures/testfixtures/v3 v3.4.1 h1:Qz9y0wUOXPHzKhK6C79A/menChtEu/xd0Dn5ngVyMD0=
|
github.com/go-testfixtures/testfixtures/v3 v3.4.1 h1:Qz9y0wUOXPHzKhK6C79A/menChtEu/xd0Dn5ngVyMD0=
|
||||||
|
@ -511,8 +550,8 @@ github.com/google/pprof v0.0.0-20200905233945-acf8798be1f7/go.mod h1:ZgVRPoUq/hf
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.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.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.2.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.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.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
|
@ -525,8 +564,8 @@ github.com/gorilla/csrf v1.6.0/go.mod h1:7tSf8kmjNYr7IWDCYhd3U8Ck34iQ/Yw5CJu7bAk
|
||||||
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
|
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
|
||||||
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
|
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
|
||||||
github.com/gorilla/handlers v1.4.1/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
|
github.com/gorilla/handlers v1.4.1/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
|
||||||
github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg=
|
github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4=
|
||||||
github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
|
github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q=
|
||||||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
||||||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
|
@ -637,7 +676,8 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i
|
||||||
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
|
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
|
||||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik=
|
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/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
||||||
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||||
|
@ -670,8 +710,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
|
||||||
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||||
github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||||
github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||||
github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc=
|
github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg=
|
||||||
github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4=
|
github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4=
|
||||||
|
@ -687,8 +727,8 @@ 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/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/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.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
||||||
|
@ -703,8 +743,8 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||||
github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc h1:ERSU1OvZ6MdWhHieo2oT7xwR/HCksqKdgK6iYPU5pHI=
|
github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8=
|
||||||
github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||||
github.com/libdns/libdns v0.1.0 h1:0ctCOrVJsVzj53mop1angHp/pE3hmAhP7KiHvR0HD04=
|
github.com/libdns/libdns v0.1.0 h1:0ctCOrVJsVzj53mop1angHp/pE3hmAhP7KiHvR0HD04=
|
||||||
github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
|
github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
|
||||||
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
|
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
|
||||||
|
@ -719,6 +759,8 @@ github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0Q
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
|
github.com/magiconair/properties v1.8.4 h1:8KGKTcQQGm0Kv7vEbKFErAoAOFyyacLStRtQSeYtvkY=
|
||||||
|
github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
@ -727,8 +769,8 @@ github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7
|
||||||
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||||
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA=
|
github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA=
|
||||||
github.com/markbates/goth v1.65.0 h1:IbXpMneUhqbxgJ8JP1Ghl8ghlAaVX66jWDAapU1KxqU=
|
github.com/markbates/goth v1.66.1 h1:8YIkRxRxiUxhYhHdvriKiJ+mk2itt2ezjf/ABR8U+JI=
|
||||||
github.com/markbates/goth v1.65.0/go.mod h1:65frybxoeSCfORin51KOKqAKbIh7wREIDvdCkdWj//4=
|
github.com/markbates/goth v1.66.1/go.mod h1:57wf4mNb/fy/Cizm8xe4komsQRKPuelTMrm/wGcw3v8=
|
||||||
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
||||||
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
|
@ -736,8 +778,8 @@ github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcncea
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
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.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw=
|
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||||
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
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.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
|
@ -750,19 +792,19 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
|
||||||
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
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.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
github.com/mattn/go-runewidth v0.0.7/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.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg=
|
||||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||||
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||||
github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||||
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
|
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
|
||||||
github.com/mattn/go-sqlite3 v1.14.4 h1:4rQjbDxdu9fSgI/r3KN72G3c2goxknAqHHgPWWs8UlI=
|
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
|
||||||
github.com/mattn/go-sqlite3 v1.14.4/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
|
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc86qNFvby9AqkLDibfChMtAg5QM=
|
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc86qNFvby9AqkLDibfChMtAg5QM=
|
||||||
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg=
|
github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg=
|
||||||
github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7 h1:ydVkpU/M4/c45yT3e5lzMeguKJm9GxGgsawx4/XlwK0=
|
github.com/mgechev/revive v1.0.3 h1:z3FL6IFFN3JKzHYHD8O1ExH9g/4lAGJ5x1+9rPZgsFg=
|
||||||
github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7/go.mod h1:no/hfevHbndpXR5CaJahkYCfM/FFpmM/dSOwFGU7Z1o=
|
github.com/mgechev/revive v1.0.3/go.mod h1:POGGZagSo/0frdr7VeAifzS5Uka0d0GPiM35MsTO8nE=
|
||||||
github.com/mholt/acmez v0.1.1 h1:KQODCqk+hBn3O7qfCRPj6L96uG65T5BSS95FKNEqtdA=
|
github.com/mholt/acmez v0.1.1 h1:KQODCqk+hBn3O7qfCRPj6L96uG65T5BSS95FKNEqtdA=
|
||||||
github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM=
|
github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM=
|
||||||
github.com/mholt/archiver/v3 v3.5.0 h1:nE8gZIrw66cu4osS/U7UW7YDuGMHssxKutU8IfWxwWE=
|
github.com/mholt/archiver/v3 v3.5.0 h1:nE8gZIrw66cu4osS/U7UW7YDuGMHssxKutU8IfWxwWE=
|
||||||
|
@ -772,10 +814,13 @@ github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo=
|
||||||
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||||
github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
|
github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
|
||||||
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
|
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
|
||||||
github.com/minio/minio-go/v7 v7.0.6 h1:9czXaG0LEZ9s74smSqy0rm034MxngQoP6HTTuSc5GEs=
|
github.com/minio/md5-simd v1.1.1 h1:9ojcLbuZ4gXbB2sX53MKn8JUZ0sB/2wfwsEcRw+I08U=
|
||||||
github.com/minio/minio-go/v7 v7.0.6/go.mod h1:HcIuq+11d/3MfavIPZiswSzfQ1VJ2Lwxp/XLtW46IWQ=
|
github.com/minio/md5-simd v1.1.1/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
|
||||||
|
github.com/minio/minio-go/v7 v7.0.7 h1:Qld/xb8C1Pwbu0jU46xAceyn9xXKCMW+3XfNbpmTB70=
|
||||||
|
github.com/minio/minio-go/v7 v7.0.7/go.mod h1:pEZBUa+L2m9oECoIA6IcSK8bv/qggtQVLovjeKK5jYc=
|
||||||
github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=
|
github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=
|
||||||
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
|
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
|
||||||
|
github.com/minio/sio v0.2.1/go.mod h1:8b0yPp2avGThviy/+OCJBI6OMpvxoUuiLvE6F1lebhw=
|
||||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
|
@ -787,6 +832,10 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
|
github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
|
||||||
github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
@ -814,8 +863,8 @@ github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6
|
||||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
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/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
github.com/niklasfasching/go-org v1.3.2 h1:ZKTSd+GdJYkoZl1pBXLR/k7DRiRXnmB96TRiHmHdzwI=
|
github.com/niklasfasching/go-org v1.4.0 h1:qPy4VEdX55f5QcLiaD3X7N/tY5XOgk4y2uEyQa02i7A=
|
||||||
github.com/niklasfasching/go-org v1.3.2/go.mod h1:AsLD6X7djzRIz4/RFZu8vwRL0VGjUvGZCCH1Nz0VdrU=
|
github.com/niklasfasching/go-org v1.4.0/go.mod h1:4FWT4U/Anir9ewjwNpbZIzMjG5RaXFafkyWZNEPRdk8=
|
||||||
github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E=
|
github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E=
|
||||||
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
|
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
|
||||||
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
|
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
|
||||||
|
@ -829,8 +878,8 @@ github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn
|
||||||
github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA=
|
github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA=
|
||||||
github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k=
|
github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k=
|
||||||
github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU=
|
github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU=
|
||||||
github.com/olivere/elastic/v7 v7.0.21 h1:58a2pMlLketCsLyKg8kJNJG+OZIFKrSQXX6gJBpqqlg=
|
github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s=
|
||||||
github.com/olivere/elastic/v7 v7.0.21/go.mod h1:Kh7iIsXIBl5qRQOBFoylCsXVTtye3keQU2Y/YbR7HD8=
|
github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zUA3ickqu5Pc8=
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
|
@ -860,7 +909,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
||||||
github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs=
|
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
|
||||||
github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM=
|
github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM=
|
||||||
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
|
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
|
||||||
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
|
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
|
||||||
|
@ -882,9 +931,9 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||||
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
|
github.com/pquerna/cachecontrol v0.0.0-20200921180117-858c6e7e6b7e/go.mod h1:hoLfEwdY11HjRfKFH6KqnPsfxlo3BP6bJehpDv8t6sQ=
|
||||||
github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok=
|
github.com/pquerna/otp v1.3.0 h1:oJV/SkzR33anKXwQU3Of42rL4wbrffP4uvUf1SvS5Xs=
|
||||||
github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
|
github.com/pquerna/otp v1.3.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
|
||||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||||
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
|
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
|
||||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||||
|
@ -921,6 +970,10 @@ github.com/quasoft/websspi v1.0.0 h1:5nDgdM5xSur9s+B5w2xQ5kxf5nUGqgFgU4W0aDLZ8Mw
|
||||||
github.com/quasoft/websspi v1.0.0/go.mod h1:HmVdl939dQ0WIXZhyik+ARdI03M6bQzaSEKcgpFmewk=
|
github.com/quasoft/websspi v1.0.0/go.mod h1:HmVdl939dQ0WIXZhyik+ARdI03M6bQzaSEKcgpFmewk=
|
||||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||||
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||||
|
github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
|
||||||
|
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
|
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||||
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
@ -975,8 +1028,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k
|
||||||
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
|
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
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.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||||
github.com/spf13/afero v1.3.2 h1:GDarE4TJQI52kYSbSAmLiId1Elfj+xgSDqrUZxFhxlU=
|
github.com/spf13/afero v1.4.1 h1:asw9sl74539yqavKaglDM5hFpdJVK0Y5Dr/JOgQ89nQ=
|
||||||
github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
|
github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||||
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
|
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
|
||||||
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||||
|
@ -990,7 +1043,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 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
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.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
||||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
|
||||||
github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk=
|
github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk=
|
||||||
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||||
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
|
||||||
|
@ -1046,11 +1098,12 @@ github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU=
|
||||||
github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
||||||
|
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
||||||
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||||
github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=
|
github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=
|
||||||
github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
|
github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
|
||||||
github.com/xanzy/go-gitlab v0.39.0 h1:7aiZ03fJfCdqoHFhsZq/SoVYp2lR91hfYWmiXLOU5Qo=
|
github.com/xanzy/go-gitlab v0.42.0 h1:daNdMFnw2FG+lDRBcX+YLnKbqIKMdefVyVztMHwsFhk=
|
||||||
github.com/xanzy/go-gitlab v0.39.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug=
|
github.com/xanzy/go-gitlab v0.42.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug=
|
||||||
github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
|
github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
|
||||||
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
|
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
|
||||||
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
||||||
|
@ -1067,6 +1120,8 @@ 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.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1 h1:ruQGxdhGHe7FWOJPT0mKs5+pD2Xs1Bm/kdGlHO04FmM=
|
github.com/yuin/goldmark v1.2.1 h1:ruQGxdhGHe7FWOJPT0mKs5+pD2Xs1Bm/kdGlHO04FmM=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.3.1 h1:eVwehsLsZlCJCwXyGLgg+Q4iFWE/eTIMG0e8waCmm/I=
|
||||||
|
github.com/yuin/goldmark v1.3.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 h1:VWSxtAiQNh3zgHJpdpkpVYjTPqRE3P6UZCOPa1nRDio=
|
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 h1:VWSxtAiQNh3zgHJpdpkpVYjTPqRE3P6UZCOPa1nRDio=
|
||||||
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691/go.mod h1:YLF3kDffRfUH/bTxOxHhV6lxwIB3Vfj91rEwNMS9MXo=
|
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691/go.mod h1:YLF3kDffRfUH/bTxOxHhV6lxwIB3Vfj91rEwNMS9MXo=
|
||||||
github.com/yuin/goldmark-meta v1.0.0 h1:ScsatUIT2gFS6azqzLGUjgOnELsBOxMXerM3ogdJhAM=
|
github.com/yuin/goldmark-meta v1.0.0 h1:ScsatUIT2gFS6azqzLGUjgOnELsBOxMXerM3ogdJhAM=
|
||||||
|
@ -1086,8 +1141,9 @@ go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
go.mongodb.org/mongo-driver v1.3.5 h1:S0ZOruh4YGHjD7JoN7mIsTrNjnQbOjrmgrx6l6pZN7I=
|
go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
|
||||||
go.mongodb.org/mongo-driver v1.3.5/go.mod h1:Ual6Gkco7ZGQw8wE1t4tLnvBsf6yVSM60qW6TgOeJ5c=
|
go.mongodb.org/mongo-driver v1.4.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
|
||||||
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
||||||
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
|
@ -1095,6 +1151,7 @@ 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.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.22.3/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.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
|
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||||
go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw=
|
go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw=
|
||||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
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.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
|
@ -1122,6 +1179,7 @@ golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACk
|
||||||
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
||||||
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
@ -1136,8 +1194,9 @@ golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPh
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 h1:3wPMTskHO3+O6jqTEXyFcsnuxMQOqYSaHsDxcbUXpqA=
|
golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY=
|
||||||
|
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
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-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
@ -1217,8 +1276,12 @@ golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81R
|
||||||
golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102 h1:42cLlJJdEh+ySyeUUbEQ5bsTiq8voBeTuweGVkY6Puw=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/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-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw=
|
||||||
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
|
golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew=
|
||||||
|
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/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-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -1227,6 +1290,10 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 h1:ld7aEMNHoBnnDAX15v1T6z31v8HwR2A9FYOuAhWqkwc=
|
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 h1:ld7aEMNHoBnnDAX15v1T6z31v8HwR2A9FYOuAhWqkwc=
|
||||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58 h1:Mj83v+wSRNEar42a/MQgxk9X42TdEmrOl9i+y8WbxLo=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013 h1:55H5j7lotzuFCEOKDsMch+fRNUQ9DgtyHOUP31FNqKc=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-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-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-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
@ -1300,10 +1367,16 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78 h1:nVuTkr9L6Bq62qpUqKo/RnZCFfzDBL0bYo6w9OJUqZY=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
|
||||||
|
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
|
||||||
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM=
|
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM=
|
||||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -1311,17 +1384,20 @@ 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.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
||||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
|
||||||
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
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-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-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-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s=
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE=
|
||||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/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-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-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-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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/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-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
@ -1372,16 +1448,18 @@ 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-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-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-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
|
||||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/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=
|
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||||
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||||
golang.org/x/tools v0.0.0-20200921210052-fa0125251cc4/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
|
||||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||||
golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||||
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9 h1:sEvmEcJVKBNUvgCUClbUQeHOAa9U0I2Ce1BooMvVCY4=
|
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9 h1:sEvmEcJVKBNUvgCUClbUQeHOAa9U0I2Ce1BooMvVCY4=
|
||||||
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
|
golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b h1:Lq5JUTFhiybGVf28jB6QRpqd13/JPOaCnET17PVzYJE=
|
||||||
|
golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
|
golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
|
||||||
|
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -1518,6 +1596,8 @@ gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.8/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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||||
|
|
4
vendor/code.gitea.io/sdk/gitea/admin_cron.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/admin_cron.go
generated
vendored
|
@ -25,7 +25,7 @@ type ListCronTaskOptions struct {
|
||||||
|
|
||||||
// ListCronTasks list available cron tasks
|
// ListCronTasks list available cron tasks
|
||||||
func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) {
|
func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
opt.setDefaults()
|
opt.setDefaults()
|
||||||
|
@ -36,7 +36,7 @@ func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response,
|
||||||
|
|
||||||
// RunCronTasks run a cron task
|
// RunCronTasks run a cron task
|
||||||
func (c *Client) RunCronTasks(task string) (*Response, error) {
|
func (c *Client) RunCronTasks(task string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil)
|
_, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil)
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/client.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/client.go
generated
vendored
|
@ -56,7 +56,7 @@ func NewClient(url string, options ...func(*Client)) (*Client, error) {
|
||||||
for _, opt := range options {
|
for _, opt := range options {
|
||||||
opt(client)
|
opt(client)
|
||||||
}
|
}
|
||||||
if err := client.CheckServerVersionConstraint(">=1.10"); err != nil {
|
if err := client.checkServerVersionGreaterThanOrEqual(version1_10_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return client, nil
|
return client, nil
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/go.mod
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/go.mod
generated
vendored
|
@ -3,6 +3,6 @@ module code.gitea.io/sdk/gitea
|
||||||
go 1.12
|
go 1.12
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/hashicorp/go-version v1.2.0
|
github.com/hashicorp/go-version v1.2.1
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
)
|
)
|
||||||
|
|
6
vendor/code.gitea.io/sdk/gitea/issue.go
generated
vendored
6
vendor/code.gitea.io/sdk/gitea/issue.go
generated
vendored
|
@ -121,7 +121,7 @@ func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, *Response, error) {
|
||||||
link, _ := url.Parse("/repos/issues/search")
|
link, _ := url.Parse("/repos/issues/search")
|
||||||
link.RawQuery = opt.QueryEncode()
|
link.RawQuery = opt.QueryEncode()
|
||||||
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
|
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
|
||||||
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil {
|
||||||
for i := 0; i < len(issues); i++ {
|
for i := 0; i < len(issues); i++ {
|
||||||
if issues[i].Repository != nil {
|
if issues[i].Repository != nil {
|
||||||
issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
|
issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
|
||||||
|
@ -139,7 +139,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss
|
||||||
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/issues", owner, repo))
|
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/issues", owner, repo))
|
||||||
link.RawQuery = opt.QueryEncode()
|
link.RawQuery = opt.QueryEncode()
|
||||||
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
|
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
|
||||||
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil {
|
||||||
for i := 0; i < len(issues); i++ {
|
for i := 0; i < len(issues); i++ {
|
||||||
if issues[i].Repository != nil {
|
if issues[i].Repository != nil {
|
||||||
issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
|
issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
|
||||||
|
@ -153,7 +153,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss
|
||||||
func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, *Response, error) {
|
func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, *Response, error) {
|
||||||
issue := new(Issue)
|
issue := new(Issue)
|
||||||
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue)
|
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue)
|
||||||
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil && issue.Repository != nil {
|
if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil && issue.Repository != nil {
|
||||||
issue.Repository.Owner = strings.Split(issue.Repository.FullName, "/")[0]
|
issue.Repository.Owner = strings.Split(issue.Repository.FullName, "/")[0]
|
||||||
}
|
}
|
||||||
return issue, resp, err
|
return issue, resp, err
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/issue_comment.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/issue_comment.go
generated
vendored
|
@ -68,7 +68,7 @@ func (c *Client) ListRepoIssueComments(owner, repo string, opt ListIssueCommentO
|
||||||
// GetIssueComment get a comment for a given repo by id.
|
// GetIssueComment get a comment for a given repo by id.
|
||||||
func (c *Client) GetIssueComment(owner, repo string, id int64) (*Comment, *Response, error) {
|
func (c *Client) GetIssueComment(owner, repo string, id int64) (*Comment, *Response, error) {
|
||||||
comment := new(Comment)
|
comment := new(Comment)
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return comment, nil, err
|
return comment, nil, err
|
||||||
}
|
}
|
||||||
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments/%d", owner, repo, id), nil, nil, &comment)
|
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments/%d", owner, repo, id), nil, nil, &comment)
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/issue_label.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/issue_label.go
generated
vendored
|
@ -71,7 +71,7 @@ func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label,
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if len(opt.Color) == 6 {
|
if len(opt.Color) == 6 {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
opt.Color = "#" + opt.Color
|
opt.Color = "#" + opt.Color
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
12
vendor/code.gitea.io/sdk/gitea/issue_reaction.go
generated
vendored
12
vendor/code.gitea.io/sdk/gitea/issue_reaction.go
generated
vendored
|
@ -20,7 +20,7 @@ type Reaction struct {
|
||||||
|
|
||||||
// GetIssueReactions get a list reactions of an issue
|
// GetIssueReactions get a list reactions of an issue
|
||||||
func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction, *Response, error) {
|
func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
reactions := make([]*Reaction, 0, 10)
|
reactions := make([]*Reaction, 0, 10)
|
||||||
|
@ -30,7 +30,7 @@ func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction
|
||||||
|
|
||||||
// GetIssueCommentReactions get a list of reactions from a comment of an issue
|
// GetIssueCommentReactions get a list of reactions from a comment of an issue
|
||||||
func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, *Response, error) {
|
func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
reactions := make([]*Reaction, 0, 10)
|
reactions := make([]*Reaction, 0, 10)
|
||||||
|
@ -45,7 +45,7 @@ type editReactionOption struct {
|
||||||
|
|
||||||
// PostIssueReaction add a reaction to an issue
|
// PostIssueReaction add a reaction to an issue
|
||||||
func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction string) (*Reaction, *Response, error) {
|
func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction string) (*Reaction, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
reactionResponse := new(Reaction)
|
reactionResponse := new(Reaction)
|
||||||
|
@ -61,7 +61,7 @@ func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction str
|
||||||
|
|
||||||
// DeleteIssueReaction remove a reaction from an issue
|
// DeleteIssueReaction remove a reaction from an issue
|
||||||
func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction string) (*Response, error) {
|
func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&editReactionOption{Reaction: reaction})
|
body, err := json.Marshal(&editReactionOption{Reaction: reaction})
|
||||||
|
@ -74,7 +74,7 @@ func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction s
|
||||||
|
|
||||||
// PostIssueCommentReaction add a reaction to a comment of an issue
|
// PostIssueCommentReaction add a reaction to a comment of an issue
|
||||||
func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, *Response, error) {
|
func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
reactionResponse := new(Reaction)
|
reactionResponse := new(Reaction)
|
||||||
|
@ -90,7 +90,7 @@ func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, r
|
||||||
|
|
||||||
// DeleteIssueCommentReaction remove a reaction from a comment of an issue
|
// DeleteIssueCommentReaction remove a reaction from a comment of an issue
|
||||||
func (c *Client) DeleteIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Response, error) {
|
func (c *Client) DeleteIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&editReactionOption{Reaction: reaction})
|
body, err := json.Marshal(&editReactionOption{Reaction: reaction})
|
||||||
|
|
8
vendor/code.gitea.io/sdk/gitea/issue_subscription.go
generated
vendored
8
vendor/code.gitea.io/sdk/gitea/issue_subscription.go
generated
vendored
|
@ -11,7 +11,7 @@ import (
|
||||||
|
|
||||||
// GetIssueSubscribers get list of users who subscribed on an issue
|
// GetIssueSubscribers get list of users who subscribed on an issue
|
||||||
func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, *Response, error) {
|
func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
subscribers := make([]*User, 0, 10)
|
subscribers := make([]*User, 0, 10)
|
||||||
|
@ -21,7 +21,7 @@ func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User,
|
||||||
|
|
||||||
// AddIssueSubscription Subscribe user to issue
|
// AddIssueSubscription Subscribe user to issue
|
||||||
func (c *Client) AddIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
|
func (c *Client) AddIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
status, resp, err := c.getStatusCode("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
|
status, resp, err := c.getStatusCode("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
|
||||||
|
@ -39,7 +39,7 @@ func (c *Client) AddIssueSubscription(owner, repo string, index int64, user stri
|
||||||
|
|
||||||
// DeleteIssueSubscription unsubscribe user from issue
|
// DeleteIssueSubscription unsubscribe user from issue
|
||||||
func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
|
func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
|
status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
|
||||||
|
@ -57,7 +57,7 @@ func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user s
|
||||||
|
|
||||||
// CheckIssueSubscription check if current user is subscribed to an issue
|
// CheckIssueSubscription check if current user is subscribed to an issue
|
||||||
func (c *Client) CheckIssueSubscription(owner, repo string, index int64) (*WatchInfo, *Response, error) {
|
func (c *Client) CheckIssueSubscription(owner, repo string, index int64) (*WatchInfo, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
wi := new(WatchInfo)
|
wi := new(WatchInfo)
|
||||||
|
|
14
vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
generated
vendored
14
vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
generated
vendored
|
@ -27,7 +27,7 @@ type TrackedTime struct {
|
||||||
|
|
||||||
// GetUserTrackedTimes list tracked times of a user
|
// GetUserTrackedTimes list tracked times of a user
|
||||||
func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, *Response, error) {
|
func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
times := make([]*TrackedTime, 0, 10)
|
times := make([]*TrackedTime, 0, 10)
|
||||||
|
@ -37,7 +37,7 @@ func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime,
|
||||||
|
|
||||||
// GetRepoTrackedTimes list tracked times of a repository
|
// GetRepoTrackedTimes list tracked times of a repository
|
||||||
func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Response, error) {
|
func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
times := make([]*TrackedTime, 0, 10)
|
times := make([]*TrackedTime, 0, 10)
|
||||||
|
@ -47,7 +47,7 @@ func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Respo
|
||||||
|
|
||||||
// GetMyTrackedTimes list tracked times of the current user
|
// GetMyTrackedTimes list tracked times of the current user
|
||||||
func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, *Response, error) {
|
func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
times := make([]*TrackedTime, 0, 10)
|
times := make([]*TrackedTime, 0, 10)
|
||||||
|
@ -75,7 +75,7 @@ func (opt AddTimeOption) Validate() error {
|
||||||
|
|
||||||
// AddTime adds time to issue with the given index
|
// AddTime adds time to issue with the given index
|
||||||
func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, *Response, error) {
|
func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(); err != nil {
|
||||||
|
@ -99,7 +99,7 @@ type ListTrackedTimesOptions struct {
|
||||||
|
|
||||||
// ListTrackedTimes list tracked times of a single issue for a given repository
|
// ListTrackedTimes list tracked times of a single issue for a given repository
|
||||||
func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
|
func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
opt.setDefaults()
|
opt.setDefaults()
|
||||||
|
@ -110,7 +110,7 @@ func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrack
|
||||||
|
|
||||||
// ResetIssueTime reset tracked time of a single issue for a given repository
|
// ResetIssueTime reset tracked time of a single issue for a given repository
|
||||||
func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, error) {
|
func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil)
|
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil)
|
||||||
|
@ -119,7 +119,7 @@ func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, err
|
||||||
|
|
||||||
// DeleteTime delete a specific tracked time by id of a single issue for a given repository
|
// DeleteTime delete a specific tracked time by id of a single issue for a given repository
|
||||||
func (c *Client) DeleteTime(owner, repo string, index, timeID int64) (*Response, error) {
|
func (c *Client) DeleteTime(owner, repo string, index, timeID int64) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), nil, nil)
|
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), nil, nil)
|
||||||
|
|
24
vendor/code.gitea.io/sdk/gitea/notifications.go
generated
vendored
24
vendor/code.gitea.io/sdk/gitea/notifications.go
generated
vendored
|
@ -8,6 +8,12 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/hashicorp/go-version"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
version1_12_3, _ = version.NewVersion("1.12.3")
|
||||||
)
|
)
|
||||||
|
|
||||||
// NotificationThread expose Notification on API
|
// NotificationThread expose Notification on API
|
||||||
|
@ -75,7 +81,7 @@ func (opt *ListNotificationOptions) QueryEncode() string {
|
||||||
// Validate the CreateUserOption struct
|
// Validate the CreateUserOption struct
|
||||||
func (opt ListNotificationOptions) Validate(c *Client) error {
|
func (opt ListNotificationOptions) Validate(c *Client) error {
|
||||||
if len(opt.Status) != 0 {
|
if len(opt.Status) != 0 {
|
||||||
return c.CheckServerVersionConstraint(">=1.12.3")
|
return c.checkServerVersionGreaterThanOrEqual(version1_12_3)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -98,14 +104,14 @@ func (opt *MarkNotificationOptions) QueryEncode() string {
|
||||||
// Validate the CreateUserOption struct
|
// Validate the CreateUserOption struct
|
||||||
func (opt MarkNotificationOptions) Validate(c *Client) error {
|
func (opt MarkNotificationOptions) Validate(c *Client) error {
|
||||||
if len(opt.Status) != 0 || len(opt.ToStatus) != 0 {
|
if len(opt.Status) != 0 || len(opt.ToStatus) != 0 {
|
||||||
return c.CheckServerVersionConstraint(">=1.12.3")
|
return c.checkServerVersionGreaterThanOrEqual(version1_12_3)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckNotifications list users's notification threads
|
// CheckNotifications list users's notification threads
|
||||||
func (c *Client) CheckNotifications() (int64, *Response, error) {
|
func (c *Client) CheckNotifications() (int64, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return 0, nil, err
|
return 0, nil, err
|
||||||
}
|
}
|
||||||
new := struct {
|
new := struct {
|
||||||
|
@ -118,7 +124,7 @@ func (c *Client) CheckNotifications() (int64, *Response, error) {
|
||||||
|
|
||||||
// GetNotification get notification thread by ID
|
// GetNotification get notification thread by ID
|
||||||
func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, error) {
|
func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
thread := new(NotificationThread)
|
thread := new(NotificationThread)
|
||||||
|
@ -129,7 +135,7 @@ func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, erro
|
||||||
// ReadNotification mark notification thread as read by ID
|
// ReadNotification mark notification thread as read by ID
|
||||||
// It optionally takes a second argument if status has to be set other than 'read'
|
// It optionally takes a second argument if status has to be set other than 'read'
|
||||||
func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response, error) {
|
func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
link := fmt.Sprintf("/notifications/threads/%d", id)
|
link := fmt.Sprintf("/notifications/threads/%d", id)
|
||||||
|
@ -142,7 +148,7 @@ func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response,
|
||||||
|
|
||||||
// ListNotifications list users's notification threads
|
// ListNotifications list users's notification threads
|
||||||
func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
|
func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(c); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
|
@ -157,7 +163,7 @@ func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*Notification
|
||||||
|
|
||||||
// ReadNotifications mark notification threads as read
|
// ReadNotifications mark notification threads as read
|
||||||
func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, error) {
|
func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(c); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
|
@ -171,7 +177,7 @@ func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, erro
|
||||||
|
|
||||||
// ListRepoNotifications list users's notification threads on a specific repo
|
// ListRepoNotifications list users's notification threads on a specific repo
|
||||||
func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
|
func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(c); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
|
@ -186,7 +192,7 @@ func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificat
|
||||||
|
|
||||||
// ReadRepoNotifications mark notification threads as read on a specific repo
|
// ReadRepoNotifications mark notification threads as read on a specific repo
|
||||||
func (c *Client) ReadRepoNotifications(owner, reponame string, opt MarkNotificationOptions) (*Response, error) {
|
func (c *Client) ReadRepoNotifications(owner, reponame string, opt MarkNotificationOptions) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(c); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
|
|
10
vendor/code.gitea.io/sdk/gitea/oauth2.go
generated
vendored
10
vendor/code.gitea.io/sdk/gitea/oauth2.go
generated
vendored
|
@ -34,7 +34,7 @@ type CreateOauth2Option struct {
|
||||||
|
|
||||||
// CreateOauth2 create an Oauth2 Application and returns a completed Oauth2 object.
|
// CreateOauth2 create an Oauth2 Application and returns a completed Oauth2 object.
|
||||||
func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error) {
|
func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&opt)
|
body, err := json.Marshal(&opt)
|
||||||
|
@ -48,7 +48,7 @@ func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error
|
||||||
|
|
||||||
// UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object.
|
// UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object.
|
||||||
func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, *Response, error) {
|
func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&opt)
|
body, err := json.Marshal(&opt)
|
||||||
|
@ -62,7 +62,7 @@ func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2,
|
||||||
|
|
||||||
// GetOauth2 a specific Oauth2 Application by ID.
|
// GetOauth2 a specific Oauth2 Application by ID.
|
||||||
func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) {
|
func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
oauth2s := &Oauth2{}
|
oauth2s := &Oauth2{}
|
||||||
|
@ -72,7 +72,7 @@ func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) {
|
||||||
|
|
||||||
// ListOauth2 all of your Oauth2 Applications.
|
// ListOauth2 all of your Oauth2 Applications.
|
||||||
func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error) {
|
func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
opt.setDefaults()
|
opt.setDefaults()
|
||||||
|
@ -83,7 +83,7 @@ func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error)
|
||||||
|
|
||||||
// DeleteOauth2 delete an Oauth2 application by ID
|
// DeleteOauth2 delete an Oauth2 application by ID
|
||||||
func (c *Client) DeleteOauth2(oauth2id int64) (*Response, error) {
|
func (c *Client) DeleteOauth2(oauth2id int64) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil)
|
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil)
|
||||||
|
|
4
vendor/code.gitea.io/sdk/gitea/pull.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/pull.go
generated
vendored
|
@ -160,7 +160,7 @@ func (opt EditPullRequestOption) Validate(c *Client) error {
|
||||||
return fmt.Errorf("title is empty")
|
return fmt.Errorf("title is empty")
|
||||||
}
|
}
|
||||||
if len(opt.Base) != 0 {
|
if len(opt.Base) != 0 {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return fmt.Errorf("can not change base gitea to old")
|
return fmt.Errorf("can not change base gitea to old")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -229,7 +229,7 @@ func (c *Client) IsPullRequestMerged(owner, repo string, index int64) (bool, *Re
|
||||||
|
|
||||||
// getPullRequestDiffOrPatch gets the patch or diff file as bytes for a PR
|
// getPullRequestDiffOrPatch gets the patch or diff file as bytes for a PR
|
||||||
func (c *Client) getPullRequestDiffOrPatch(owner, repo, kind string, index int64) ([]byte, *Response, error) {
|
func (c *Client) getPullRequestDiffOrPatch(owner, repo, kind string, index int64) ([]byte, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
r, _, err2 := c.GetRepo(owner, repo)
|
r, _, err2 := c.GetRepo(owner, repo)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
|
|
12
vendor/code.gitea.io/sdk/gitea/pull_review.go
generated
vendored
12
vendor/code.gitea.io/sdk/gitea/pull_review.go
generated
vendored
|
@ -132,7 +132,7 @@ func (opt CreatePullReviewComment) Validate() error {
|
||||||
|
|
||||||
// ListPullReviews lists all reviews of a pull request
|
// ListPullReviews lists all reviews of a pull request
|
||||||
func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullReviewsOptions) ([]*PullReview, *Response, error) {
|
func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullReviewsOptions) ([]*PullReview, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
opt.setDefaults()
|
opt.setDefaults()
|
||||||
|
@ -147,7 +147,7 @@ func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullRe
|
||||||
|
|
||||||
// GetPullReview gets a specific review of a pull request
|
// GetPullReview gets a specific review of a pull request
|
||||||
func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview, *Response, error) {
|
func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview
|
||||||
|
|
||||||
// ListPullReviewComments lists all comments of a pull request review
|
// ListPullReviewComments lists all comments of a pull request review
|
||||||
func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]*PullReviewComment, *Response, error) {
|
func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]*PullReviewComment, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
rcl := make([]*PullReviewComment, 0, 4)
|
rcl := make([]*PullReviewComment, 0, 4)
|
||||||
|
@ -170,7 +170,7 @@ func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]
|
||||||
|
|
||||||
// DeletePullReview delete a specific review from a pull request
|
// DeletePullReview delete a specific review from a pull request
|
||||||
func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Response, error) {
|
func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Respons
|
||||||
|
|
||||||
// CreatePullReview create a review to an pull request
|
// CreatePullReview create a review to an pull request
|
||||||
func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePullReviewOptions) (*PullReview, *Response, error) {
|
func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePullReviewOptions) (*PullReview, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(); err != nil {
|
||||||
|
@ -200,7 +200,7 @@ func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePul
|
||||||
|
|
||||||
// SubmitPullReview submit a pending review to an pull request
|
// SubmitPullReview submit a pending review to an pull request
|
||||||
func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt SubmitPullReviewOptions) (*PullReview, *Response, error) {
|
func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt SubmitPullReviewOptions) (*PullReview, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(); err != nil {
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/release.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/release.go
generated
vendored
|
@ -57,7 +57,7 @@ func (c *Client) GetRelease(user, repo string, id int64) (*Release, *Response, e
|
||||||
|
|
||||||
// GetReleaseByTag get a release of a repository by tag
|
// GetReleaseByTag get a release of a repository by tag
|
||||||
func (c *Client) GetReleaseByTag(user, repo string, tag string) (*Release, *Response, error) {
|
func (c *Client) GetReleaseByTag(user, repo string, tag string) (*Release, *Response, error) {
|
||||||
if c.CheckServerVersionConstraint(">=1.13.0") != nil {
|
if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil {
|
||||||
return c.fallbackGetReleaseByTag(user, repo, tag)
|
return c.fallbackGetReleaseByTag(user, repo, tag)
|
||||||
}
|
}
|
||||||
r := new(Release)
|
r := new(Release)
|
||||||
|
|
40
vendor/code.gitea.io/sdk/gitea/repo.go
generated
vendored
40
vendor/code.gitea.io/sdk/gitea/repo.go
generated
vendored
|
@ -73,6 +73,20 @@ const (
|
||||||
RepoTypeMirror RepoType = "mirror"
|
RepoTypeMirror RepoType = "mirror"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TrustModel represent how git signatures are handled in a repository
|
||||||
|
type TrustModel string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// TrustModelDefault use TM set by global config
|
||||||
|
TrustModelDefault TrustModel = "default"
|
||||||
|
// TrustModelCollaborator gpg signature has to be owned by a repo collaborator
|
||||||
|
TrustModelCollaborator TrustModel = "collaborator"
|
||||||
|
// TrustModelCommitter gpg signature has to match committer
|
||||||
|
TrustModelCommitter TrustModel = "committer"
|
||||||
|
// TrustModelCollaboratorCommitter gpg signature has to match committer and owned by a repo collaborator
|
||||||
|
TrustModelCollaboratorCommitter TrustModel = "collaboratorcommitter"
|
||||||
|
)
|
||||||
|
|
||||||
// ListReposOptions options for listing repositories
|
// ListReposOptions options for listing repositories
|
||||||
type ListReposOptions struct {
|
type ListReposOptions struct {
|
||||||
ListOptions
|
ListOptions
|
||||||
|
@ -224,7 +238,7 @@ func (c *Client) SearchRepos(opt SearchRepoOptions) ([]*Repository, *Response, e
|
||||||
} else {
|
} else {
|
||||||
link.RawQuery = opt.QueryEncode()
|
link.RawQuery = opt.QueryEncode()
|
||||||
// IsPrivate only works on gitea >= 1.12.0
|
// IsPrivate only works on gitea >= 1.12.0
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil && opt.IsPrivate != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil && opt.IsPrivate != nil {
|
||||||
if *opt.IsPrivate {
|
if *opt.IsPrivate {
|
||||||
// private repos only not supported on gitea <= 1.11.x
|
// private repos only not supported on gitea <= 1.11.x
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
|
@ -249,6 +263,8 @@ type CreateRepoOption struct {
|
||||||
IssueLabels string `json:"issue_labels"`
|
IssueLabels string `json:"issue_labels"`
|
||||||
// Whether the repository should be auto-intialized?
|
// Whether the repository should be auto-intialized?
|
||||||
AutoInit bool `json:"auto_init"`
|
AutoInit bool `json:"auto_init"`
|
||||||
|
// Whether the repository is template
|
||||||
|
Template bool `json:"template"`
|
||||||
// Gitignores to use
|
// Gitignores to use
|
||||||
Gitignores string `json:"gitignores"`
|
Gitignores string `json:"gitignores"`
|
||||||
// License to use
|
// License to use
|
||||||
|
@ -257,19 +273,35 @@ type CreateRepoOption struct {
|
||||||
Readme string `json:"readme"`
|
Readme string `json:"readme"`
|
||||||
// DefaultBranch of the repository (used when initializes and in template)
|
// DefaultBranch of the repository (used when initializes and in template)
|
||||||
DefaultBranch string `json:"default_branch"`
|
DefaultBranch string `json:"default_branch"`
|
||||||
|
// TrustModel of the repository
|
||||||
|
TrustModel TrustModel `json:"trust_model"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate the CreateRepoOption struct
|
// Validate the CreateRepoOption struct
|
||||||
func (opt CreateRepoOption) Validate() error {
|
func (opt CreateRepoOption) Validate(c *Client) error {
|
||||||
if len(strings.TrimSpace(opt.Name)) == 0 {
|
if len(strings.TrimSpace(opt.Name)) == 0 {
|
||||||
return fmt.Errorf("name is empty")
|
return fmt.Errorf("name is empty")
|
||||||
}
|
}
|
||||||
|
if len(opt.Name) > 100 {
|
||||||
|
return fmt.Errorf("name has more than 100 chars")
|
||||||
|
}
|
||||||
|
if len(opt.Description) > 255 {
|
||||||
|
return fmt.Errorf("name has more than 255 chars")
|
||||||
|
}
|
||||||
|
if len(opt.DefaultBranch) > 100 {
|
||||||
|
return fmt.Errorf("name has more than 100 chars")
|
||||||
|
}
|
||||||
|
if len(opt.TrustModel) != 0 {
|
||||||
|
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateRepo creates a repository for authenticated user.
|
// CreateRepo creates a repository for authenticated user.
|
||||||
func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error) {
|
func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error) {
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&opt)
|
body, err := json.Marshal(&opt)
|
||||||
|
@ -283,7 +315,7 @@ func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error
|
||||||
|
|
||||||
// CreateOrgRepo creates an organization repository for authenticated user.
|
// CreateOrgRepo creates an organization repository for authenticated user.
|
||||||
func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, *Response, error) {
|
func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, *Response, error) {
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&opt)
|
body, err := json.Marshal(&opt)
|
||||||
|
|
4
vendor/code.gitea.io/sdk/gitea/repo_branch.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/repo_branch.go
generated
vendored
|
@ -84,7 +84,7 @@ func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, *Response, e
|
||||||
|
|
||||||
// DeleteRepoBranch delete a branch in a repository
|
// DeleteRepoBranch delete a branch in a repository
|
||||||
func (c *Client) DeleteRepoBranch(user, repo, branch string) (bool, *Response, error) {
|
func (c *Client) DeleteRepoBranch(user, repo, branch string) (bool, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return false, nil, err
|
return false, nil, err
|
||||||
}
|
}
|
||||||
status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil)
|
status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil)
|
||||||
|
@ -118,7 +118,7 @@ func (opt CreateBranchOption) Validate() error {
|
||||||
|
|
||||||
// CreateBranch creates a branch for a user's repository
|
// CreateBranch creates a branch for a user's repository
|
||||||
func (c *Client) CreateBranch(owner, repo string, opt CreateBranchOption) (*Branch, *Response, error) {
|
func (c *Client) CreateBranch(owner, repo string, opt CreateBranchOption) (*Branch, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(); err != nil {
|
||||||
|
|
10
vendor/code.gitea.io/sdk/gitea/repo_branch_protection.go
generated
vendored
10
vendor/code.gitea.io/sdk/gitea/repo_branch_protection.go
generated
vendored
|
@ -92,7 +92,7 @@ type ListBranchProtectionsOptions struct {
|
||||||
|
|
||||||
// ListBranchProtections list branch protections for a repo
|
// ListBranchProtections list branch protections for a repo
|
||||||
func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtectionsOptions) ([]*BranchProtection, *Response, error) {
|
func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtectionsOptions) ([]*BranchProtection, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
bps := make([]*BranchProtection, 0, opt.PageSize)
|
bps := make([]*BranchProtection, 0, opt.PageSize)
|
||||||
|
@ -104,7 +104,7 @@ func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtect
|
||||||
|
|
||||||
// GetBranchProtection gets a branch protection
|
// GetBranchProtection gets a branch protection
|
||||||
func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtection, *Response, error) {
|
func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtection, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
bp := new(BranchProtection)
|
bp := new(BranchProtection)
|
||||||
|
@ -114,7 +114,7 @@ func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtectio
|
||||||
|
|
||||||
// CreateBranchProtection creates a branch protection for a repo
|
// CreateBranchProtection creates a branch protection for a repo
|
||||||
func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProtectionOption) (*BranchProtection, *Response, error) {
|
func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProtectionOption) (*BranchProtection, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
bp := new(BranchProtection)
|
bp := new(BranchProtection)
|
||||||
|
@ -128,7 +128,7 @@ func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProt
|
||||||
|
|
||||||
// EditBranchProtection edits a branch protection for a repo
|
// EditBranchProtection edits a branch protection for a repo
|
||||||
func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchProtectionOption) (*BranchProtection, *Response, error) {
|
func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchProtectionOption) (*BranchProtection, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
bp := new(BranchProtection)
|
bp := new(BranchProtection)
|
||||||
|
@ -142,7 +142,7 @@ func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchPr
|
||||||
|
|
||||||
// DeleteBranchProtection deletes a branch protection for a repo
|
// DeleteBranchProtection deletes a branch protection for a repo
|
||||||
func (c *Client) DeleteBranchProtection(owner, repo, name string) (*Response, error) {
|
func (c *Client) DeleteBranchProtection(owner, repo, name string) (*Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/branch_protections/%s", owner, repo, name), jsonHeader, nil)
|
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/branch_protections/%s", owner, repo, name), jsonHeader, nil)
|
||||||
|
|
1
vendor/code.gitea.io/sdk/gitea/repo_commit.go
generated
vendored
1
vendor/code.gitea.io/sdk/gitea/repo_commit.go
generated
vendored
|
@ -21,6 +21,7 @@ type Identity struct {
|
||||||
type CommitMeta struct {
|
type CommitMeta struct {
|
||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
SHA string `json:"sha"`
|
SHA string `json:"sha"`
|
||||||
|
Created time.Time `json:"created"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommitUser contains information of a user in the context of a commit.
|
// CommitUser contains information of a user in the context of a commit.
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/repo_file.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/repo_file.go
generated
vendored
|
@ -182,7 +182,7 @@ func (c *Client) DeleteFile(owner, repo, filepath string, opt DeleteFileOptions)
|
||||||
func (c *Client) setDefaultBranchForOldVersions(owner, repo, branch string) (string, error) {
|
func (c *Client) setDefaultBranchForOldVersions(owner, repo, branch string) (string, error) {
|
||||||
if len(branch) == 0 {
|
if len(branch) == 0 {
|
||||||
// Gitea >= 1.12.0 Use DefaultBranch on "", mimic this for older versions
|
// Gitea >= 1.12.0 Use DefaultBranch on "", mimic this for older versions
|
||||||
if c.CheckServerVersionConstraint(">=1.12.0") != nil {
|
if c.checkServerVersionGreaterThanOrEqual(version1_12_0) != nil {
|
||||||
r, _, err := c.GetRepo(owner, repo)
|
r, _, err := c.GetRepo(owner, repo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
|
19
vendor/code.gitea.io/sdk/gitea/repo_migrate.go
generated
vendored
19
vendor/code.gitea.io/sdk/gitea/repo_migrate.go
generated
vendored
|
@ -20,10 +20,10 @@ const (
|
||||||
GitServiceGithub GitServiceType = "github"
|
GitServiceGithub GitServiceType = "github"
|
||||||
// GitServiceGitlab represents a gitlab service
|
// GitServiceGitlab represents a gitlab service
|
||||||
GitServiceGitlab GitServiceType = "gitlab"
|
GitServiceGitlab GitServiceType = "gitlab"
|
||||||
|
// GitServiceGitea represents a gitea service
|
||||||
|
GitServiceGitea GitServiceType = "gitea"
|
||||||
|
|
||||||
// Not supported jet
|
// Not supported jet
|
||||||
// // GitServiceGitea represents a gitea service
|
|
||||||
// GitServiceGitea GitServiceType = "gitea"
|
|
||||||
// // GitServiceGogs represents a gogs service
|
// // GitServiceGogs represents a gogs service
|
||||||
// GitServiceGogs GitServiceType = "gogs"
|
// GitServiceGogs GitServiceType = "gogs"
|
||||||
)
|
)
|
||||||
|
@ -51,7 +51,7 @@ type MigrateRepoOption struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate the MigrateRepoOption struct
|
// Validate the MigrateRepoOption struct
|
||||||
func (opt *MigrateRepoOption) Validate() error {
|
func (opt *MigrateRepoOption) Validate(c *Client) error {
|
||||||
// check user options
|
// check user options
|
||||||
if len(opt.CloneAddr) == 0 {
|
if len(opt.CloneAddr) == 0 {
|
||||||
return fmt.Errorf("CloneAddr required")
|
return fmt.Errorf("CloneAddr required")
|
||||||
|
@ -69,6 +69,15 @@ func (opt *MigrateRepoOption) Validate() error {
|
||||||
if len(opt.AuthToken) == 0 {
|
if len(opt.AuthToken) == 0 {
|
||||||
return fmt.Errorf("github require token authentication")
|
return fmt.Errorf("github require token authentication")
|
||||||
}
|
}
|
||||||
|
case GitServiceGitlab, GitServiceGitea:
|
||||||
|
if len(opt.AuthToken) == 0 {
|
||||||
|
return fmt.Errorf("%s require token authentication", opt.Service)
|
||||||
|
}
|
||||||
|
// Gitlab is supported since 1.12.0 but api cant handle it until 1.13.0
|
||||||
|
// https://github.com/go-gitea/gitea/pull/12672
|
||||||
|
if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil {
|
||||||
|
return fmt.Errorf("migrate from service %s need gitea >= 1.13.0", opt.Service)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -78,11 +87,11 @@ func (opt *MigrateRepoOption) Validate() error {
|
||||||
// To migrate a repository for a organization, the authenticated user must be a
|
// To migrate a repository for a organization, the authenticated user must be a
|
||||||
// owner of the specified organization.
|
// owner of the specified organization.
|
||||||
func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, error) {
|
func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, error) {
|
||||||
if err := opt.Validate(); err != nil {
|
if err := opt.Validate(c); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
if len(opt.AuthToken) != 0 {
|
if len(opt.AuthToken) != 0 {
|
||||||
// gitea <= 1.12 dont understand AuthToken
|
// gitea <= 1.12 dont understand AuthToken
|
||||||
opt.AuthUsername = opt.AuthToken
|
opt.AuthUsername = opt.AuthToken
|
||||||
|
|
2
vendor/code.gitea.io/sdk/gitea/repo_transfer.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/repo_transfer.go
generated
vendored
|
@ -20,7 +20,7 @@ type TransferRepoOption struct {
|
||||||
|
|
||||||
// TransferRepo transfers the ownership of a repository
|
// TransferRepo transfers the ownership of a repository
|
||||||
func (c *Client) TransferRepo(owner, reponame string, opt TransferRepoOption) (*Repository, *Response, error) {
|
func (c *Client) TransferRepo(owner, reponame string, opt TransferRepoOption) (*Repository, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
body, err := json.Marshal(&opt)
|
body, err := json.Marshal(&opt)
|
||||||
|
|
8
vendor/code.gitea.io/sdk/gitea/settings.go
generated
vendored
8
vendor/code.gitea.io/sdk/gitea/settings.go
generated
vendored
|
@ -33,7 +33,7 @@ type GlobalAttachmentSettings struct {
|
||||||
|
|
||||||
// GetGlobalUISettings get global ui settings witch are exposed by API
|
// GetGlobalUISettings get global ui settings witch are exposed by API
|
||||||
func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) {
|
func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
conf := new(GlobalUISettings)
|
conf := new(GlobalUISettings)
|
||||||
|
@ -43,7 +43,7 @@ func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) {
|
||||||
|
|
||||||
// GetGlobalRepoSettings get global repository settings witch are exposed by API
|
// GetGlobalRepoSettings get global repository settings witch are exposed by API
|
||||||
func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error) {
|
func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
conf := new(GlobalRepoSettings)
|
conf := new(GlobalRepoSettings)
|
||||||
|
@ -53,7 +53,7 @@ func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error)
|
||||||
|
|
||||||
// GetGlobalAPISettings get global api settings witch are exposed by it
|
// GetGlobalAPISettings get global api settings witch are exposed by it
|
||||||
func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) {
|
func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
conf := new(GlobalAPISettings)
|
conf := new(GlobalAPISettings)
|
||||||
|
@ -63,7 +63,7 @@ func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) {
|
||||||
|
|
||||||
// GetGlobalAttachmentSettings get global repository settings witch are exposed by API
|
// GetGlobalAttachmentSettings get global repository settings witch are exposed by API
|
||||||
func (c *Client) GetGlobalAttachmentSettings() (*GlobalAttachmentSettings, *Response, error) {
|
func (c *Client) GetGlobalAttachmentSettings() (*GlobalAttachmentSettings, *Response, error) {
|
||||||
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
conf := new(GlobalAttachmentSettings)
|
conf := new(GlobalAttachmentSettings)
|
||||||
|
|
26
vendor/code.gitea.io/sdk/gitea/version.go
generated
vendored
26
vendor/code.gitea.io/sdk/gitea/version.go
generated
vendored
|
@ -42,6 +42,32 @@ func (c *Client) CheckServerVersionConstraint(constraint string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// predefined versions only have to be parsed by library once
|
||||||
|
var (
|
||||||
|
version1_10_0, _ = version.NewVersion("1.10.0")
|
||||||
|
version1_11_0, _ = version.NewVersion("1.11.0")
|
||||||
|
version1_12_0, _ = version.NewVersion("1.12.0")
|
||||||
|
version1_13_0, _ = version.NewVersion("1.13.0")
|
||||||
|
)
|
||||||
|
|
||||||
|
// checkServerVersionGreaterThanOrEqual is internally used to speed up things and ignore issues with prerelease
|
||||||
|
func (c *Client) checkServerVersionGreaterThanOrEqual(v *version.Version) error {
|
||||||
|
c.versionLock.RLock()
|
||||||
|
if c.serverVersion == nil {
|
||||||
|
c.versionLock.RUnlock()
|
||||||
|
if err := c.loadClientServerVersion(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
c.versionLock.RUnlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !c.serverVersion.GreaterThanOrEqual(v) {
|
||||||
|
return fmt.Errorf("gitea server at %s is older than %s", c.url, v.Original())
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// loadClientServerVersion init the serverVersion variable
|
// loadClientServerVersion init the serverVersion variable
|
||||||
func (c *Client) loadClientServerVersion() error {
|
func (c *Client) loadClientServerVersion() error {
|
||||||
c.versionLock.Lock()
|
c.versionLock.Lock()
|
||||||
|
|
22
vendor/github.com/asaskevich/govalidator/.travis.yml
generated
vendored
22
vendor/github.com/asaskevich/govalidator/.travis.yml
generated
vendored
|
@ -1,18 +1,12 @@
|
||||||
dist: bionic
|
|
||||||
language: go
|
language: go
|
||||||
env: GO111MODULE=on GOFLAGS='-mod vendor'
|
dist: xenial
|
||||||
install: true
|
|
||||||
email: false
|
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.10
|
- '1.10'
|
||||||
- 1.11
|
- '1.11'
|
||||||
- 1.12
|
- '1.12'
|
||||||
- 1.13
|
- '1.13'
|
||||||
- tip
|
- 'tip'
|
||||||
|
|
||||||
before_script:
|
|
||||||
- go install github.com/golangci/golangci-lint/cmd/golangci-lint
|
|
||||||
script:
|
script:
|
||||||
- golangci-lint run # run a bunch of code checkers/linters in parallel
|
- go test -coverpkg=./... -coverprofile=coverage.info -timeout=5s
|
||||||
- go test -v -race ./... # Run all the tests with the race detector enabled
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
43
vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md
generated
vendored
Normal file
43
vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md
generated
vendored
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# Contributor Code of Conduct
|
||||||
|
|
||||||
|
This project adheres to [The Code Manifesto](http://codemanifesto.com)
|
||||||
|
as its guidelines for contributor interactions.
|
||||||
|
|
||||||
|
## The Code Manifesto
|
||||||
|
|
||||||
|
We want to work in an ecosystem that empowers developers to reach their
|
||||||
|
potential — one that encourages growth and effective collaboration. A space
|
||||||
|
that is safe for all.
|
||||||
|
|
||||||
|
A space such as this benefits everyone that participates in it. It encourages
|
||||||
|
new developers to enter our field. It is through discussion and collaboration
|
||||||
|
that we grow, and through growth that we improve.
|
||||||
|
|
||||||
|
In the effort to create such a place, we hold to these values:
|
||||||
|
|
||||||
|
1. **Discrimination limits us.** This includes discrimination on the basis of
|
||||||
|
race, gender, sexual orientation, gender identity, age, nationality,
|
||||||
|
technology and any other arbitrary exclusion of a group of people.
|
||||||
|
2. **Boundaries honor us.** Your comfort levels are not everyone’s comfort
|
||||||
|
levels. Remember that, and if brought to your attention, heed it.
|
||||||
|
3. **We are our biggest assets.** None of us were born masters of our trade.
|
||||||
|
Each of us has been helped along the way. Return that favor, when and where
|
||||||
|
you can.
|
||||||
|
4. **We are resources for the future.** As an extension of #3, share what you
|
||||||
|
know. Make yourself a resource to help those that come after you.
|
||||||
|
5. **Respect defines us.** Treat others as you wish to be treated. Make your
|
||||||
|
discussions, criticisms and debates from a position of respectfulness. Ask
|
||||||
|
yourself, is it true? Is it necessary? Is it constructive? Anything less is
|
||||||
|
unacceptable.
|
||||||
|
6. **Reactions require grace.** Angry responses are valid, but abusive language
|
||||||
|
and vindictive actions are toxic. When something happens that offends you,
|
||||||
|
handle it assertively, but be respectful. Escalate reasonably, and try to
|
||||||
|
allow the offender an opportunity to explain themselves, and possibly
|
||||||
|
correct the issue.
|
||||||
|
7. **Opinions are just that: opinions.** Each and every one of us, due to our
|
||||||
|
background and upbringing, have varying opinions. That is perfectly
|
||||||
|
acceptable. Remember this: if you respect your own opinions, you should
|
||||||
|
respect the opinions of others.
|
||||||
|
8. **To err is human.** You might not intend it, but mistakes do happen and
|
||||||
|
contribute to build experience. Tolerate honest mistakes, and don't
|
||||||
|
hesitate to apologize if you make one yourself.
|
2
vendor/github.com/asaskevich/govalidator/LICENSE
generated
vendored
2
vendor/github.com/asaskevich/govalidator/LICENSE
generated
vendored
|
@ -1,6 +1,6 @@
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2014 Alex Saskevich
|
Copyright (c) 2014-2020 Alex Saskevich
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
9
vendor/github.com/asaskevich/govalidator/README.md
generated
vendored
9
vendor/github.com/asaskevich/govalidator/README.md
generated
vendored
|
@ -1,7 +1,8 @@
|
||||||
govalidator
|
govalidator
|
||||||
===========
|
===========
|
||||||
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/asaskevich/govalidator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![GoDoc](https://godoc.org/github.com/asaskevich/govalidator?status.png)](https://godoc.org/github.com/asaskevich/govalidator) [![Coverage Status](https://img.shields.io/coveralls/asaskevich/govalidator.svg)](https://coveralls.io/r/asaskevich/govalidator?branch=master) [![wercker status](https://app.wercker.com/status/1ec990b09ea86c910d5f08b0e02c6043/s "wercker status")](https://app.wercker.com/project/bykey/1ec990b09ea86c910d5f08b0e02c6043)
|
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/asaskevich/govalidator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![GoDoc](https://godoc.org/github.com/asaskevich/govalidator?status.png)](https://godoc.org/github.com/asaskevich/govalidator)
|
||||||
[![Build Status](https://travis-ci.org/asaskevich/govalidator.svg?branch=master)](https://travis-ci.org/asaskevich/govalidator) [![Go Report Card](https://goreportcard.com/badge/github.com/asaskevich/govalidator)](https://goreportcard.com/report/github.com/asaskevich/govalidator) [![GoSearch](http://go-search.org/badge?id=github.com%2Fasaskevich%2Fgovalidator)](http://go-search.org/view?id=github.com%2Fasaskevich%2Fgovalidator) [![Backers on Open Collective](https://opencollective.com/govalidator/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/govalidator/sponsors/badge.svg)](#sponsors) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator?ref=badge_shield)
|
[![Build Status](https://travis-ci.org/asaskevich/govalidator.svg?branch=master)](https://travis-ci.org/asaskevich/govalidator)
|
||||||
|
[![Coverage](https://codecov.io/gh/asaskevich/govalidator/branch/master/graph/badge.svg)](https://codecov.io/gh/asaskevich/govalidator) [![Go Report Card](https://goreportcard.com/badge/github.com/asaskevich/govalidator)](https://goreportcard.com/report/github.com/asaskevich/govalidator) [![GoSearch](http://go-search.org/badge?id=github.com%2Fasaskevich%2Fgovalidator)](http://go-search.org/view?id=github.com%2Fasaskevich%2Fgovalidator) [![Backers on Open Collective](https://opencollective.com/govalidator/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/govalidator/sponsors/badge.svg)](#sponsors) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator?ref=badge_shield)
|
||||||
|
|
||||||
A package of validators and sanitizers for strings, structs and collections. Based on [validator.js](https://github.com/chriso/validator.js).
|
A package of validators and sanitizers for strings, structs and collections. Based on [validator.js](https://github.com/chriso/validator.js).
|
||||||
|
|
||||||
|
@ -279,7 +280,7 @@ type User struct {
|
||||||
Age int `valid:"type(int)"`
|
Age int `valid:"type(int)"`
|
||||||
Meta interface{} `valid:"type(string)"`
|
Meta interface{} `valid:"type(string)"`
|
||||||
}
|
}
|
||||||
result, err := govalidator.ValidateStruct(user{"Bob", 20, "meta"})
|
result, err := govalidator.ValidateStruct(User{"Bob", 20, "meta"})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
println("error: " + err.Error())
|
println("error: " + err.Error())
|
||||||
}
|
}
|
||||||
|
@ -392,6 +393,8 @@ Validators with parameters
|
||||||
"matches(pattern)": StringMatches,
|
"matches(pattern)": StringMatches,
|
||||||
"in(string1|string2|...|stringN)": IsIn,
|
"in(string1|string2|...|stringN)": IsIn,
|
||||||
"rsapub(keylength)" : IsRsaPub,
|
"rsapub(keylength)" : IsRsaPub,
|
||||||
|
"minstringlength(int): MinStringLength,
|
||||||
|
"maxstringlength(int): MaxStringLength,
|
||||||
```
|
```
|
||||||
Validators with parameters for any type
|
Validators with parameters for any type
|
||||||
|
|
||||||
|
|
29
vendor/github.com/asaskevich/govalidator/arrays.go
generated
vendored
29
vendor/github.com/asaskevich/govalidator/arrays.go
generated
vendored
|
@ -9,6 +9,35 @@ type ResultIterator func(interface{}, int) interface{}
|
||||||
// ConditionIterator is the function that accepts element of slice/array and its index and returns boolean
|
// ConditionIterator is the function that accepts element of slice/array and its index and returns boolean
|
||||||
type ConditionIterator func(interface{}, int) bool
|
type ConditionIterator func(interface{}, int) bool
|
||||||
|
|
||||||
|
// ReduceIterator is the function that accepts two element of slice/array and returns result of merging those values
|
||||||
|
type ReduceIterator func(interface{}, interface{}) interface{}
|
||||||
|
|
||||||
|
// Some validates that any item of array corresponds to ConditionIterator. Returns boolean.
|
||||||
|
func Some(array []interface{}, iterator ConditionIterator) bool {
|
||||||
|
res := false
|
||||||
|
for index, data := range array {
|
||||||
|
res = res || iterator(data, index)
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
// Every validates that every item of array corresponds to ConditionIterator. Returns boolean.
|
||||||
|
func Every(array []interface{}, iterator ConditionIterator) bool {
|
||||||
|
res := true
|
||||||
|
for index, data := range array {
|
||||||
|
res = res && iterator(data, index)
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reduce boils down a list of values into a single value by ReduceIterator
|
||||||
|
func Reduce(array []interface{}, iterator ReduceIterator, initialValue interface{}) interface{} {
|
||||||
|
for _, data := range array {
|
||||||
|
initialValue = iterator(initialValue, data)
|
||||||
|
}
|
||||||
|
return initialValue
|
||||||
|
}
|
||||||
|
|
||||||
// Each iterates over the slice and apply Iterator to every item
|
// Each iterates over the slice and apply Iterator to every item
|
||||||
func Each(array []interface{}, iterator Iterator) {
|
func Each(array []interface{}, iterator Iterator) {
|
||||||
for index, data := range array {
|
for index, data := range array {
|
||||||
|
|
31
vendor/github.com/asaskevich/govalidator/converter.go
generated
vendored
31
vendor/github.com/asaskevich/govalidator/converter.go
generated
vendored
|
@ -10,7 +10,7 @@ import (
|
||||||
// ToString convert the input to a string.
|
// ToString convert the input to a string.
|
||||||
func ToString(obj interface{}) string {
|
func ToString(obj interface{}) string {
|
||||||
res := fmt.Sprintf("%v", obj)
|
res := fmt.Sprintf("%v", obj)
|
||||||
return string(res)
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToJSON convert the input to a valid JSON string
|
// ToJSON convert the input to a valid JSON string
|
||||||
|
@ -23,12 +23,27 @@ func ToJSON(obj interface{}) (string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToFloat convert the input string to a float, or 0.0 if the input is not a float.
|
// ToFloat convert the input string to a float, or 0.0 if the input is not a float.
|
||||||
func ToFloat(str string) (float64, error) {
|
func ToFloat(value interface{}) (res float64, err error) {
|
||||||
res, err := strconv.ParseFloat(str, 64)
|
val := reflect.ValueOf(value)
|
||||||
|
|
||||||
|
switch value.(type) {
|
||||||
|
case int, int8, int16, int32, int64:
|
||||||
|
res = float64(val.Int())
|
||||||
|
case uint, uint8, uint16, uint32, uint64:
|
||||||
|
res = float64(val.Uint())
|
||||||
|
case float32, float64:
|
||||||
|
res = val.Float()
|
||||||
|
case string:
|
||||||
|
res, err = strconv.ParseFloat(val.String(), 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
res = 0.0
|
res = 0
|
||||||
}
|
}
|
||||||
return res, err
|
default:
|
||||||
|
err = fmt.Errorf("ToInt: unknown interface type %T", value)
|
||||||
|
res = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.
|
// ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.
|
||||||
|
@ -40,6 +55,8 @@ func ToInt(value interface{}) (res int64, err error) {
|
||||||
res = val.Int()
|
res = val.Int()
|
||||||
case uint, uint8, uint16, uint32, uint64:
|
case uint, uint8, uint16, uint32, uint64:
|
||||||
res = int64(val.Uint())
|
res = int64(val.Uint())
|
||||||
|
case float32, float64:
|
||||||
|
res = int64(val.Float())
|
||||||
case string:
|
case string:
|
||||||
if IsInt(val.String()) {
|
if IsInt(val.String()) {
|
||||||
res, err = strconv.ParseInt(val.String(), 0, 64)
|
res, err = strconv.ParseInt(val.String(), 0, 64)
|
||||||
|
@ -47,11 +64,11 @@ func ToInt(value interface{}) (res int64, err error) {
|
||||||
res = 0
|
res = 0
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = fmt.Errorf("math: square root of negative number %g", value)
|
err = fmt.Errorf("ToInt: invalid numeric format %g", value)
|
||||||
res = 0
|
res = 0
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("math: square root of negative number %g", value)
|
err = fmt.Errorf("ToInt: unknown interface type %T", value)
|
||||||
res = 0
|
res = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
vendor/github.com/asaskevich/govalidator/go.mod
generated
vendored
2
vendor/github.com/asaskevich/govalidator/go.mod
generated
vendored
|
@ -1,3 +1,3 @@
|
||||||
module github.com/asaskevich/govalidator
|
module github.com/asaskevich/govalidator
|
||||||
|
|
||||||
go 1.12
|
go 1.13
|
||||||
|
|
37
vendor/github.com/asaskevich/govalidator/numerics.go
generated
vendored
37
vendor/github.com/asaskevich/govalidator/numerics.go
generated
vendored
|
@ -2,7 +2,6 @@ package govalidator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"math"
|
"math"
|
||||||
"reflect"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Abs returns absolute value of number
|
// Abs returns absolute value of number
|
||||||
|
@ -41,7 +40,7 @@ func IsNonPositive(value float64) bool {
|
||||||
return value <= 0
|
return value <= 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// InRange returns true if value lies between left and right border
|
// InRangeInt returns true if value lies between left and right border
|
||||||
func InRangeInt(value, left, right interface{}) bool {
|
func InRangeInt(value, left, right interface{}) bool {
|
||||||
value64, _ := ToInt(value)
|
value64, _ := ToInt(value)
|
||||||
left64, _ := ToInt(left)
|
left64, _ := ToInt(left)
|
||||||
|
@ -52,7 +51,7 @@ func InRangeInt(value, left, right interface{}) bool {
|
||||||
return value64 >= left64 && value64 <= right64
|
return value64 >= left64 && value64 <= right64
|
||||||
}
|
}
|
||||||
|
|
||||||
// InRange returns true if value lies between left and right border
|
// InRangeFloat32 returns true if value lies between left and right border
|
||||||
func InRangeFloat32(value, left, right float32) bool {
|
func InRangeFloat32(value, left, right float32) bool {
|
||||||
if left > right {
|
if left > right {
|
||||||
left, right = right, left
|
left, right = right, left
|
||||||
|
@ -60,7 +59,7 @@ func InRangeFloat32(value, left, right float32) bool {
|
||||||
return value >= left && value <= right
|
return value >= left && value <= right
|
||||||
}
|
}
|
||||||
|
|
||||||
// InRange returns true if value lies between left and right border
|
// InRangeFloat64 returns true if value lies between left and right border
|
||||||
func InRangeFloat64(value, left, right float64) bool {
|
func InRangeFloat64(value, left, right float64) bool {
|
||||||
if left > right {
|
if left > right {
|
||||||
left, right = right, left
|
left, right = right, left
|
||||||
|
@ -68,20 +67,24 @@ func InRangeFloat64(value, left, right float64) bool {
|
||||||
return value >= left && value <= right
|
return value >= left && value <= right
|
||||||
}
|
}
|
||||||
|
|
||||||
// InRange returns true if value lies between left and right border, generic type to handle int, float32 or float64, all types must the same type
|
// InRange returns true if value lies between left and right border, generic type to handle int, float32, float64 and string.
|
||||||
|
// All types must the same type.
|
||||||
|
// False if value doesn't lie in range or if it incompatible or not comparable
|
||||||
func InRange(value interface{}, left interface{}, right interface{}) bool {
|
func InRange(value interface{}, left interface{}, right interface{}) bool {
|
||||||
|
switch value.(type) {
|
||||||
reflectValue := reflect.TypeOf(value).Kind()
|
case int:
|
||||||
reflectLeft := reflect.TypeOf(left).Kind()
|
intValue, _ := ToInt(value)
|
||||||
reflectRight := reflect.TypeOf(right).Kind()
|
intLeft, _ := ToInt(left)
|
||||||
|
intRight, _ := ToInt(right)
|
||||||
if reflectValue == reflect.Int && reflectLeft == reflect.Int && reflectRight == reflect.Int {
|
return InRangeInt(intValue, intLeft, intRight)
|
||||||
return InRangeInt(value.(int), left.(int), right.(int))
|
case float32, float64:
|
||||||
} else if reflectValue == reflect.Float32 && reflectLeft == reflect.Float32 && reflectRight == reflect.Float32 {
|
intValue, _ := ToFloat(value)
|
||||||
return InRangeFloat32(value.(float32), left.(float32), right.(float32))
|
intLeft, _ := ToFloat(left)
|
||||||
} else if reflectValue == reflect.Float64 && reflectLeft == reflect.Float64 && reflectRight == reflect.Float64 {
|
intRight, _ := ToFloat(right)
|
||||||
return InRangeFloat64(value.(float64), left.(float64), right.(float64))
|
return InRangeFloat64(intValue, intLeft, intRight)
|
||||||
} else {
|
case string:
|
||||||
|
return value.(string) >= left.(string) && value.(string) <= right.(string)
|
||||||
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
4
vendor/github.com/asaskevich/govalidator/patterns.go
generated
vendored
4
vendor/github.com/asaskevich/govalidator/patterns.go
generated
vendored
|
@ -38,7 +38,7 @@ const (
|
||||||
URLPort string = `(:(\d{1,5}))`
|
URLPort string = `(:(\d{1,5}))`
|
||||||
URLIP string = `([1-9]\d?|1\d\d|2[01]\d|22[0-3]|24\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){2}(?:\.([0-9]\d?|1\d\d|2[0-4]\d|25[0-5]))`
|
URLIP string = `([1-9]\d?|1\d\d|2[01]\d|22[0-3]|24\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){2}(?:\.([0-9]\d?|1\d\d|2[0-4]\d|25[0-5]))`
|
||||||
URLSubdomain string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))`
|
URLSubdomain string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))`
|
||||||
URL string = `^` + URLSchema + `?` + URLUsername + `?` + `((` + URLIP + `|(\[` + IP + `\])|(([a-zA-Z0-9]([a-zA-Z0-9-_]+)?[a-zA-Z0-9]([-\.][a-zA-Z0-9]+)*)|(` + URLSubdomain + `?))?(([a-zA-Z\x{00a1}-\x{ffff}0-9]+-?-?)*[a-zA-Z\x{00a1}-\x{ffff}0-9]+)(?:\.([a-zA-Z\x{00a1}-\x{ffff}]{1,}))?))\.?` + URLPort + `?` + URLPath + `?$`
|
URL = `^` + URLSchema + `?` + URLUsername + `?` + `((` + URLIP + `|(\[` + IP + `\])|(([a-zA-Z0-9]([a-zA-Z0-9-_]+)?[a-zA-Z0-9]([-\.][a-zA-Z0-9]+)*)|(` + URLSubdomain + `?))?(([a-zA-Z\x{00a1}-\x{ffff}0-9]+-?-?)*[a-zA-Z\x{00a1}-\x{ffff}0-9]+)(?:\.([a-zA-Z\x{00a1}-\x{ffff}]{1,}))?))\.?` + URLPort + `?` + URLPath + `?$`
|
||||||
SSN string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$`
|
SSN string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$`
|
||||||
WinPath string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$`
|
WinPath string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$`
|
||||||
UnixPath string = `^(/[^/\x00]*)+/?$`
|
UnixPath string = `^(/[^/\x00]*)+/?$`
|
||||||
|
@ -49,6 +49,7 @@ const (
|
||||||
hasWhitespace string = ".*[[:space:]]"
|
hasWhitespace string = ".*[[:space:]]"
|
||||||
hasWhitespaceOnly string = "^[[:space:]]+$"
|
hasWhitespaceOnly string = "^[[:space:]]+$"
|
||||||
IMEI string = "^[0-9a-f]{14}$|^\\d{15}$|^\\d{18}$"
|
IMEI string = "^[0-9a-f]{14}$|^\\d{15}$|^\\d{18}$"
|
||||||
|
IMSI string = "^\\d{14,15}$"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Used by IsFilePath func
|
// Used by IsFilePath func
|
||||||
|
@ -102,4 +103,5 @@ var (
|
||||||
rxHasWhitespace = regexp.MustCompile(hasWhitespace)
|
rxHasWhitespace = regexp.MustCompile(hasWhitespace)
|
||||||
rxHasWhitespaceOnly = regexp.MustCompile(hasWhitespaceOnly)
|
rxHasWhitespaceOnly = regexp.MustCompile(hasWhitespaceOnly)
|
||||||
rxIMEI = regexp.MustCompile(IMEI)
|
rxIMEI = regexp.MustCompile(IMEI)
|
||||||
|
rxIMSI = regexp.MustCompile(IMSI)
|
||||||
)
|
)
|
||||||
|
|
10
vendor/github.com/asaskevich/govalidator/types.go
generated
vendored
10
vendor/github.com/asaskevich/govalidator/types.go
generated
vendored
|
@ -14,8 +14,10 @@ type Validator func(str string) bool
|
||||||
// The second parameter should be the context (in the case of validating a struct: the whole object being validated).
|
// The second parameter should be the context (in the case of validating a struct: the whole object being validated).
|
||||||
type CustomTypeValidator func(i interface{}, o interface{}) bool
|
type CustomTypeValidator func(i interface{}, o interface{}) bool
|
||||||
|
|
||||||
// ParamValidator is a wrapper for validator functions that accepts additional parameters.
|
// ParamValidator is a wrapper for validator functions that accept additional parameters.
|
||||||
type ParamValidator func(str string, params ...string) bool
|
type ParamValidator func(str string, params ...string) bool
|
||||||
|
|
||||||
|
// InterfaceParamValidator is a wrapper for functions that accept variants parameters for an interface value
|
||||||
type InterfaceParamValidator func(in interface{}, params ...string) bool
|
type InterfaceParamValidator func(in interface{}, params ...string) bool
|
||||||
type tagOptionsMap map[string]tagOption
|
type tagOptionsMap map[string]tagOption
|
||||||
|
|
||||||
|
@ -447,10 +449,10 @@ var ISO4217List = []string{
|
||||||
"PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG",
|
"PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG",
|
||||||
"QAR",
|
"QAR",
|
||||||
"RON", "RSD", "RUB", "RWF",
|
"RON", "RSD", "RUB", "RWF",
|
||||||
"SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "SVC", "SYP", "SZL",
|
"SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "STN", "SVC", "SYP", "SZL",
|
||||||
"THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS",
|
"THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS",
|
||||||
"UAH", "UGX", "USD", "USN", "UYI", "UYU", "UZS",
|
"UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS",
|
||||||
"VEF", "VND", "VUV",
|
"VEF", "VES", "VND", "VUV",
|
||||||
"WST",
|
"WST",
|
||||||
"XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX",
|
"XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX",
|
||||||
"YER",
|
"YER",
|
||||||
|
|
293
vendor/github.com/asaskevich/govalidator/validator.go
generated
vendored
293
vendor/github.com/asaskevich/govalidator/validator.go
generated
vendored
|
@ -32,7 +32,7 @@ var (
|
||||||
|
|
||||||
const maxURLRuneCount = 2083
|
const maxURLRuneCount = 2083
|
||||||
const minURLRuneCount = 3
|
const minURLRuneCount = 3
|
||||||
const RF3339WithoutZone = "2006-01-02T15:04:05"
|
const rfc3339WithoutZone = "2006-01-02T15:04:05"
|
||||||
|
|
||||||
// SetFieldsRequiredByDefault causes validation to fail when struct fields
|
// SetFieldsRequiredByDefault causes validation to fail when struct fields
|
||||||
// do not include validations or are not explicitly marked as exempt (using `valid:"-"` or `valid:"email,optional"`).
|
// do not include validations or are not explicitly marked as exempt (using `valid:"-"` or `valid:"email,optional"`).
|
||||||
|
@ -63,13 +63,13 @@ func SetNilPtrAllowedByRequired(value bool) {
|
||||||
nilPtrAllowedByRequired = value
|
nilPtrAllowedByRequired = value
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsEmail check if the string is an email.
|
// IsEmail checks if the string is an email.
|
||||||
func IsEmail(str string) bool {
|
func IsEmail(str string) bool {
|
||||||
// TODO uppercase letters are not supported
|
// TODO uppercase letters are not supported
|
||||||
return rxEmail.MatchString(str)
|
return rxEmail.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsExistingEmail check if the string is an email of existing domain
|
// IsExistingEmail checks if the string is an email of existing domain
|
||||||
func IsExistingEmail(email string) bool {
|
func IsExistingEmail(email string) bool {
|
||||||
|
|
||||||
if len(email) < 6 || len(email) > 254 {
|
if len(email) < 6 || len(email) > 254 {
|
||||||
|
@ -84,13 +84,13 @@ func IsExistingEmail(email string) bool {
|
||||||
if len(user) > 64 {
|
if len(user) > 64 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if userDotRegexp.MatchString(user) || !userRegexp.MatchString(user) || !hostRegexp.MatchString(host) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
switch host {
|
switch host {
|
||||||
case "localhost", "example.com":
|
case "localhost", "example.com":
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
if userDotRegexp.MatchString(user) || !userRegexp.MatchString(user) || !hostRegexp.MatchString(host) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
if _, err := net.LookupMX(host); err != nil {
|
if _, err := net.LookupMX(host); err != nil {
|
||||||
if _, err := net.LookupIP(host); err != nil {
|
if _, err := net.LookupIP(host); err != nil {
|
||||||
return false
|
return false
|
||||||
|
@ -100,7 +100,7 @@ func IsExistingEmail(email string) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsURL check if the string is an URL.
|
// IsURL checks if the string is an URL.
|
||||||
func IsURL(str string) bool {
|
func IsURL(str string) bool {
|
||||||
if str == "" || utf8.RuneCountInString(str) >= maxURLRuneCount || len(str) <= minURLRuneCount || strings.HasPrefix(str, ".") {
|
if str == "" || utf8.RuneCountInString(str) >= maxURLRuneCount || len(str) <= minURLRuneCount || strings.HasPrefix(str, ".") {
|
||||||
return false
|
return false
|
||||||
|
@ -124,7 +124,7 @@ func IsURL(str string) bool {
|
||||||
return rxURL.MatchString(str)
|
return rxURL.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRequestURL check if the string rawurl, assuming
|
// IsRequestURL checks if the string rawurl, assuming
|
||||||
// it was received in an HTTP request, is a valid
|
// it was received in an HTTP request, is a valid
|
||||||
// URL confirm to RFC 3986
|
// URL confirm to RFC 3986
|
||||||
func IsRequestURL(rawurl string) bool {
|
func IsRequestURL(rawurl string) bool {
|
||||||
|
@ -138,7 +138,7 @@ func IsRequestURL(rawurl string) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRequestURI check if the string rawurl, assuming
|
// IsRequestURI checks if the string rawurl, assuming
|
||||||
// it was received in an HTTP request, is an
|
// it was received in an HTTP request, is an
|
||||||
// absolute URI or an absolute path.
|
// absolute URI or an absolute path.
|
||||||
func IsRequestURI(rawurl string) bool {
|
func IsRequestURI(rawurl string) bool {
|
||||||
|
@ -146,7 +146,7 @@ func IsRequestURI(rawurl string) bool {
|
||||||
return err == nil
|
return err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsAlpha check if the string contains only letters (a-zA-Z). Empty string is valid.
|
// IsAlpha checks if the string contains only letters (a-zA-Z). Empty string is valid.
|
||||||
func IsAlpha(str string) bool {
|
func IsAlpha(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -154,7 +154,7 @@ func IsAlpha(str string) bool {
|
||||||
return rxAlpha.MatchString(str)
|
return rxAlpha.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
//IsUTFLetter check if the string contains only unicode letter characters.
|
//IsUTFLetter checks if the string contains only unicode letter characters.
|
||||||
//Similar to IsAlpha but for all languages. Empty string is valid.
|
//Similar to IsAlpha but for all languages. Empty string is valid.
|
||||||
func IsUTFLetter(str string) bool {
|
func IsUTFLetter(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
|
@ -170,7 +170,7 @@ func IsUTFLetter(str string) bool {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsAlphanumeric check if the string contains only letters and numbers. Empty string is valid.
|
// IsAlphanumeric checks if the string contains only letters and numbers. Empty string is valid.
|
||||||
func IsAlphanumeric(str string) bool {
|
func IsAlphanumeric(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -178,7 +178,7 @@ func IsAlphanumeric(str string) bool {
|
||||||
return rxAlphanumeric.MatchString(str)
|
return rxAlphanumeric.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUTFLetterNumeric check if the string contains only unicode letters and numbers. Empty string is valid.
|
// IsUTFLetterNumeric checks if the string contains only unicode letters and numbers. Empty string is valid.
|
||||||
func IsUTFLetterNumeric(str string) bool {
|
func IsUTFLetterNumeric(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -192,7 +192,7 @@ func IsUTFLetterNumeric(str string) bool {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNumeric check if the string contains only numbers. Empty string is valid.
|
// IsNumeric checks if the string contains only numbers. Empty string is valid.
|
||||||
func IsNumeric(str string) bool {
|
func IsNumeric(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -200,7 +200,7 @@ func IsNumeric(str string) bool {
|
||||||
return rxNumeric.MatchString(str)
|
return rxNumeric.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUTFNumeric check if the string contains only unicode numbers of any kind.
|
// IsUTFNumeric checks if the string contains only unicode numbers of any kind.
|
||||||
// Numbers can be 0-9 but also Fractions ¾,Roman Ⅸ and Hangzhou 〩. Empty string is valid.
|
// Numbers can be 0-9 but also Fractions ¾,Roman Ⅸ and Hangzhou 〩. Empty string is valid.
|
||||||
func IsUTFNumeric(str string) bool {
|
func IsUTFNumeric(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
|
@ -222,7 +222,7 @@ func IsUTFNumeric(str string) bool {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUTFDigit check if the string contains only unicode radix-10 decimal digits. Empty string is valid.
|
// IsUTFDigit checks if the string contains only unicode radix-10 decimal digits. Empty string is valid.
|
||||||
func IsUTFDigit(str string) bool {
|
func IsUTFDigit(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -243,22 +243,22 @@ func IsUTFDigit(str string) bool {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsHexadecimal check if the string is a hexadecimal number.
|
// IsHexadecimal checks if the string is a hexadecimal number.
|
||||||
func IsHexadecimal(str string) bool {
|
func IsHexadecimal(str string) bool {
|
||||||
return rxHexadecimal.MatchString(str)
|
return rxHexadecimal.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsHexcolor check if the string is a hexadecimal color.
|
// IsHexcolor checks if the string is a hexadecimal color.
|
||||||
func IsHexcolor(str string) bool {
|
func IsHexcolor(str string) bool {
|
||||||
return rxHexcolor.MatchString(str)
|
return rxHexcolor.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRGBcolor check if the string is a valid RGB color in form rgb(RRR, GGG, BBB).
|
// IsRGBcolor checks if the string is a valid RGB color in form rgb(RRR, GGG, BBB).
|
||||||
func IsRGBcolor(str string) bool {
|
func IsRGBcolor(str string) bool {
|
||||||
return rxRGBcolor.MatchString(str)
|
return rxRGBcolor.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsLowerCase check if the string is lowercase. Empty string is valid.
|
// IsLowerCase checks if the string is lowercase. Empty string is valid.
|
||||||
func IsLowerCase(str string) bool {
|
func IsLowerCase(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -266,7 +266,7 @@ func IsLowerCase(str string) bool {
|
||||||
return str == strings.ToLower(str)
|
return str == strings.ToLower(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUpperCase check if the string is uppercase. Empty string is valid.
|
// IsUpperCase checks if the string is uppercase. Empty string is valid.
|
||||||
func IsUpperCase(str string) bool {
|
func IsUpperCase(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -274,7 +274,7 @@ func IsUpperCase(str string) bool {
|
||||||
return str == strings.ToUpper(str)
|
return str == strings.ToUpper(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasLowerCase check if the string contains at least 1 lowercase. Empty string is valid.
|
// HasLowerCase checks if the string contains at least 1 lowercase. Empty string is valid.
|
||||||
func HasLowerCase(str string) bool {
|
func HasLowerCase(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -282,7 +282,7 @@ func HasLowerCase(str string) bool {
|
||||||
return rxHasLowerCase.MatchString(str)
|
return rxHasLowerCase.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasUpperCase check if the string contains as least 1 uppercase. Empty string is valid.
|
// HasUpperCase checks if the string contains as least 1 uppercase. Empty string is valid.
|
||||||
func HasUpperCase(str string) bool {
|
func HasUpperCase(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -290,7 +290,7 @@ func HasUpperCase(str string) bool {
|
||||||
return rxHasUpperCase.MatchString(str)
|
return rxHasUpperCase.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsInt check if the string is an integer. Empty string is valid.
|
// IsInt checks if the string is an integer. Empty string is valid.
|
||||||
func IsInt(str string) bool {
|
func IsInt(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -298,12 +298,12 @@ func IsInt(str string) bool {
|
||||||
return rxInt.MatchString(str)
|
return rxInt.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsFloat check if the string is a float.
|
// IsFloat checks if the string is a float.
|
||||||
func IsFloat(str string) bool {
|
func IsFloat(str string) bool {
|
||||||
return str != "" && rxFloat.MatchString(str)
|
return str != "" && rxFloat.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsDivisibleBy check if the string is a number that's divisible by another.
|
// IsDivisibleBy checks if the string is a number that's divisible by another.
|
||||||
// If second argument is not valid integer or zero, it's return false.
|
// If second argument is not valid integer or zero, it's return false.
|
||||||
// Otherwise, if first argument is not valid integer or zero, it's return true (Invalid string converts to zero).
|
// Otherwise, if first argument is not valid integer or zero, it's return true (Invalid string converts to zero).
|
||||||
func IsDivisibleBy(str, num string) bool {
|
func IsDivisibleBy(str, num string) bool {
|
||||||
|
@ -316,12 +316,12 @@ func IsDivisibleBy(str, num string) bool {
|
||||||
return (p == 0) || (p%q == 0)
|
return (p == 0) || (p%q == 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNull check if the string is null.
|
// IsNull checks if the string is null.
|
||||||
func IsNull(str string) bool {
|
func IsNull(str string) bool {
|
||||||
return len(str) == 0
|
return len(str) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNotNull check if the string is not null.
|
// IsNotNull checks if the string is not null.
|
||||||
func IsNotNull(str string) bool {
|
func IsNotNull(str string) bool {
|
||||||
return !IsNull(str)
|
return !IsNull(str)
|
||||||
}
|
}
|
||||||
|
@ -336,32 +336,32 @@ func HasWhitespace(str string) bool {
|
||||||
return len(str) > 0 && rxHasWhitespace.MatchString(str)
|
return len(str) > 0 && rxHasWhitespace.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsByteLength check if the string's length (in bytes) falls in a range.
|
// IsByteLength checks if the string's length (in bytes) falls in a range.
|
||||||
func IsByteLength(str string, min, max int) bool {
|
func IsByteLength(str string, min, max int) bool {
|
||||||
return len(str) >= min && len(str) <= max
|
return len(str) >= min && len(str) <= max
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUUIDv3 check if the string is a UUID version 3.
|
// IsUUIDv3 checks if the string is a UUID version 3.
|
||||||
func IsUUIDv3(str string) bool {
|
func IsUUIDv3(str string) bool {
|
||||||
return rxUUID3.MatchString(str)
|
return rxUUID3.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUUIDv4 check if the string is a UUID version 4.
|
// IsUUIDv4 checks if the string is a UUID version 4.
|
||||||
func IsUUIDv4(str string) bool {
|
func IsUUIDv4(str string) bool {
|
||||||
return rxUUID4.MatchString(str)
|
return rxUUID4.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUUIDv5 check if the string is a UUID version 5.
|
// IsUUIDv5 checks if the string is a UUID version 5.
|
||||||
func IsUUIDv5(str string) bool {
|
func IsUUIDv5(str string) bool {
|
||||||
return rxUUID5.MatchString(str)
|
return rxUUID5.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUUID check if the string is a UUID (version 3, 4 or 5).
|
// IsUUID checks if the string is a UUID (version 3, 4 or 5).
|
||||||
func IsUUID(str string) bool {
|
func IsUUID(str string) bool {
|
||||||
return rxUUID.MatchString(str)
|
return rxUUID.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsCreditCard check if the string is a credit card.
|
// IsCreditCard checks if the string is a credit card.
|
||||||
func IsCreditCard(str string) bool {
|
func IsCreditCard(str string) bool {
|
||||||
sanitized := notNumberRegexp.ReplaceAllString(str, "")
|
sanitized := notNumberRegexp.ReplaceAllString(str, "")
|
||||||
if !rxCreditCard.MatchString(sanitized) {
|
if !rxCreditCard.MatchString(sanitized) {
|
||||||
|
@ -377,7 +377,7 @@ func IsCreditCard(str string) bool {
|
||||||
if shouldDouble {
|
if shouldDouble {
|
||||||
tmpNum *= 2
|
tmpNum *= 2
|
||||||
if tmpNum >= 10 {
|
if tmpNum >= 10 {
|
||||||
sum += ((tmpNum % 10) + 1)
|
sum += (tmpNum % 10) + 1
|
||||||
} else {
|
} else {
|
||||||
sum += tmpNum
|
sum += tmpNum
|
||||||
}
|
}
|
||||||
|
@ -390,18 +390,18 @@ func IsCreditCard(str string) bool {
|
||||||
return sum%10 == 0
|
return sum%10 == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsISBN10 check if the string is an ISBN version 10.
|
// IsISBN10 checks if the string is an ISBN version 10.
|
||||||
func IsISBN10(str string) bool {
|
func IsISBN10(str string) bool {
|
||||||
return IsISBN(str, 10)
|
return IsISBN(str, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsISBN13 check if the string is an ISBN version 13.
|
// IsISBN13 checks if the string is an ISBN version 13.
|
||||||
func IsISBN13(str string) bool {
|
func IsISBN13(str string) bool {
|
||||||
return IsISBN(str, 13)
|
return IsISBN(str, 13)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsISBN check if the string is an ISBN (version 10 or 13).
|
// IsISBN checks if the string is an ISBN (version 10 or 13).
|
||||||
// If version value is not equal to 10 or 13, it will be check both variants.
|
// If version value is not equal to 10 or 13, it will be checks both variants.
|
||||||
func IsISBN(str string, version int) bool {
|
func IsISBN(str string, version int) bool {
|
||||||
sanitized := whiteSpacesAndMinus.ReplaceAllString(str, "")
|
sanitized := whiteSpacesAndMinus.ReplaceAllString(str, "")
|
||||||
var checksum int32
|
var checksum int32
|
||||||
|
@ -435,13 +435,13 @@ func IsISBN(str string, version int) bool {
|
||||||
return IsISBN(str, 10) || IsISBN(str, 13)
|
return IsISBN(str, 10) || IsISBN(str, 13)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsJSON check if the string is valid JSON (note: uses json.Unmarshal).
|
// IsJSON checks if the string is valid JSON (note: uses json.Unmarshal).
|
||||||
func IsJSON(str string) bool {
|
func IsJSON(str string) bool {
|
||||||
var js json.RawMessage
|
var js json.RawMessage
|
||||||
return json.Unmarshal([]byte(str), &js) == nil
|
return json.Unmarshal([]byte(str), &js) == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsMultibyte check if the string contains one or more multibyte chars. Empty string is valid.
|
// IsMultibyte checks if the string contains one or more multibyte chars. Empty string is valid.
|
||||||
func IsMultibyte(str string) bool {
|
func IsMultibyte(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -449,7 +449,7 @@ func IsMultibyte(str string) bool {
|
||||||
return rxMultibyte.MatchString(str)
|
return rxMultibyte.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsASCII check if the string contains ASCII chars only. Empty string is valid.
|
// IsASCII checks if the string contains ASCII chars only. Empty string is valid.
|
||||||
func IsASCII(str string) bool {
|
func IsASCII(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -457,7 +457,7 @@ func IsASCII(str string) bool {
|
||||||
return rxASCII.MatchString(str)
|
return rxASCII.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsPrintableASCII check if the string contains printable ASCII chars only. Empty string is valid.
|
// IsPrintableASCII checks if the string contains printable ASCII chars only. Empty string is valid.
|
||||||
func IsPrintableASCII(str string) bool {
|
func IsPrintableASCII(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -465,7 +465,7 @@ func IsPrintableASCII(str string) bool {
|
||||||
return rxPrintableASCII.MatchString(str)
|
return rxPrintableASCII.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsFullWidth check if the string contains any full-width chars. Empty string is valid.
|
// IsFullWidth checks if the string contains any full-width chars. Empty string is valid.
|
||||||
func IsFullWidth(str string) bool {
|
func IsFullWidth(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -473,7 +473,7 @@ func IsFullWidth(str string) bool {
|
||||||
return rxFullWidth.MatchString(str)
|
return rxFullWidth.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsHalfWidth check if the string contains any half-width chars. Empty string is valid.
|
// IsHalfWidth checks if the string contains any half-width chars. Empty string is valid.
|
||||||
func IsHalfWidth(str string) bool {
|
func IsHalfWidth(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -481,7 +481,7 @@ func IsHalfWidth(str string) bool {
|
||||||
return rxHalfWidth.MatchString(str)
|
return rxHalfWidth.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsVariableWidth check if the string contains a mixture of full and half-width chars. Empty string is valid.
|
// IsVariableWidth checks if the string contains a mixture of full and half-width chars. Empty string is valid.
|
||||||
func IsVariableWidth(str string) bool {
|
func IsVariableWidth(str string) bool {
|
||||||
if IsNull(str) {
|
if IsNull(str) {
|
||||||
return true
|
return true
|
||||||
|
@ -489,12 +489,12 @@ func IsVariableWidth(str string) bool {
|
||||||
return rxHalfWidth.MatchString(str) && rxFullWidth.MatchString(str)
|
return rxHalfWidth.MatchString(str) && rxFullWidth.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsBase64 check if a string is base64 encoded.
|
// IsBase64 checks if a string is base64 encoded.
|
||||||
func IsBase64(str string) bool {
|
func IsBase64(str string) bool {
|
||||||
return rxBase64.MatchString(str)
|
return rxBase64.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsFilePath check is a string is Win or Unix file path and returns it's type.
|
// IsFilePath checks is a string is Win or Unix file path and returns it's type.
|
||||||
func IsFilePath(str string) (bool, int) {
|
func IsFilePath(str string) (bool, int) {
|
||||||
if rxWinPath.MatchString(str) {
|
if rxWinPath.MatchString(str) {
|
||||||
//check windows path limit see:
|
//check windows path limit see:
|
||||||
|
@ -686,25 +686,25 @@ func IsPort(str string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsIPv4 check if the string is an IP version 4.
|
// IsIPv4 checks if the string is an IP version 4.
|
||||||
func IsIPv4(str string) bool {
|
func IsIPv4(str string) bool {
|
||||||
ip := net.ParseIP(str)
|
ip := net.ParseIP(str)
|
||||||
return ip != nil && strings.Contains(str, ".")
|
return ip != nil && strings.Contains(str, ".")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsIPv6 check if the string is an IP version 6.
|
// IsIPv6 checks if the string is an IP version 6.
|
||||||
func IsIPv6(str string) bool {
|
func IsIPv6(str string) bool {
|
||||||
ip := net.ParseIP(str)
|
ip := net.ParseIP(str)
|
||||||
return ip != nil && strings.Contains(str, ":")
|
return ip != nil && strings.Contains(str, ":")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsCIDR check if the string is an valid CIDR notiation (IPV4 & IPV6)
|
// IsCIDR checks if the string is an valid CIDR notiation (IPV4 & IPV6)
|
||||||
func IsCIDR(str string) bool {
|
func IsCIDR(str string) bool {
|
||||||
_, _, err := net.ParseCIDR(str)
|
_, _, err := net.ParseCIDR(str)
|
||||||
return err == nil
|
return err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsMAC check if a string is valid MAC address.
|
// IsMAC checks if a string is valid MAC address.
|
||||||
// Possible MAC formats:
|
// Possible MAC formats:
|
||||||
// 01:23:45:67:89:ab
|
// 01:23:45:67:89:ab
|
||||||
// 01:23:45:67:89:ab:cd:ef
|
// 01:23:45:67:89:ab:cd:ef
|
||||||
|
@ -722,27 +722,70 @@ func IsHost(str string) bool {
|
||||||
return IsIP(str) || IsDNSName(str)
|
return IsIP(str) || IsDNSName(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsMongoID check if the string is a valid hex-encoded representation of a MongoDB ObjectId.
|
// IsMongoID checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.
|
||||||
func IsMongoID(str string) bool {
|
func IsMongoID(str string) bool {
|
||||||
return rxHexadecimal.MatchString(str) && (len(str) == 24)
|
return rxHexadecimal.MatchString(str) && (len(str) == 24)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsLatitude check if a string is valid latitude.
|
// IsLatitude checks if a string is valid latitude.
|
||||||
func IsLatitude(str string) bool {
|
func IsLatitude(str string) bool {
|
||||||
return rxLatitude.MatchString(str)
|
return rxLatitude.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsLongitude check if a string is valid longitude.
|
// IsLongitude checks if a string is valid longitude.
|
||||||
func IsLongitude(str string) bool {
|
func IsLongitude(str string) bool {
|
||||||
return rxLongitude.MatchString(str)
|
return rxLongitude.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsIMEI check if a string is valid IMEI
|
// IsIMEI checks if a string is valid IMEI
|
||||||
func IsIMEI(str string) bool {
|
func IsIMEI(str string) bool {
|
||||||
return rxIMEI.MatchString(str)
|
return rxIMEI.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRsaPublicKey check if a string is valid public key with provided length
|
// IsIMSI checks if a string is valid IMSI
|
||||||
|
func IsIMSI(str string) bool {
|
||||||
|
if !rxIMSI.MatchString(str) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
mcc, err := strconv.ParseInt(str[0:3], 10, 32)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
switch mcc {
|
||||||
|
case 202, 204, 206, 208, 212, 213, 214, 216, 218, 219:
|
||||||
|
case 220, 221, 222, 226, 228, 230, 231, 232, 234, 235:
|
||||||
|
case 238, 240, 242, 244, 246, 247, 248, 250, 255, 257:
|
||||||
|
case 259, 260, 262, 266, 268, 270, 272, 274, 276, 278:
|
||||||
|
case 280, 282, 283, 284, 286, 288, 289, 290, 292, 293:
|
||||||
|
case 294, 295, 297, 302, 308, 310, 311, 312, 313, 314:
|
||||||
|
case 315, 316, 330, 332, 334, 338, 340, 342, 344, 346:
|
||||||
|
case 348, 350, 352, 354, 356, 358, 360, 362, 363, 364:
|
||||||
|
case 365, 366, 368, 370, 372, 374, 376, 400, 401, 402:
|
||||||
|
case 404, 405, 406, 410, 412, 413, 414, 415, 416, 417:
|
||||||
|
case 418, 419, 420, 421, 422, 424, 425, 426, 427, 428:
|
||||||
|
case 429, 430, 431, 432, 434, 436, 437, 438, 440, 441:
|
||||||
|
case 450, 452, 454, 455, 456, 457, 460, 461, 466, 467:
|
||||||
|
case 470, 472, 502, 505, 510, 514, 515, 520, 525, 528:
|
||||||
|
case 530, 536, 537, 539, 540, 541, 542, 543, 544, 545:
|
||||||
|
case 546, 547, 548, 549, 550, 551, 552, 553, 554, 555:
|
||||||
|
case 602, 603, 604, 605, 606, 607, 608, 609, 610, 611:
|
||||||
|
case 612, 613, 614, 615, 616, 617, 618, 619, 620, 621:
|
||||||
|
case 622, 623, 624, 625, 626, 627, 628, 629, 630, 631:
|
||||||
|
case 632, 633, 634, 635, 636, 637, 638, 639, 640, 641:
|
||||||
|
case 642, 643, 645, 646, 647, 648, 649, 650, 651, 652:
|
||||||
|
case 653, 654, 655, 657, 658, 659, 702, 704, 706, 708:
|
||||||
|
case 710, 712, 714, 716, 722, 724, 730, 732, 734, 736:
|
||||||
|
case 738, 740, 742, 744, 746, 748, 750, 995:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRsaPublicKey checks if a string is valid public key with provided length
|
||||||
func IsRsaPublicKey(str string, keylen int) bool {
|
func IsRsaPublicKey(str string, keylen int) bool {
|
||||||
bb := bytes.NewBufferString(str)
|
bb := bytes.NewBufferString(str)
|
||||||
pemBytes, err := ioutil.ReadAll(bb)
|
pemBytes, err := ioutil.ReadAll(bb)
|
||||||
|
@ -796,7 +839,7 @@ func toJSONName(tag string) string {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
func PrependPathToErrors(err error, path string) error {
|
func prependPathToErrors(err error, path string) error {
|
||||||
switch err2 := err.(type) {
|
switch err2 := err.(type) {
|
||||||
case Error:
|
case Error:
|
||||||
err2.Path = append([]string{path}, err2.Path...)
|
err2.Path = append([]string{path}, err2.Path...)
|
||||||
|
@ -804,13 +847,18 @@ func PrependPathToErrors(err error, path string) error {
|
||||||
case Errors:
|
case Errors:
|
||||||
errors := err2.Errors()
|
errors := err2.Errors()
|
||||||
for i, err3 := range errors {
|
for i, err3 := range errors {
|
||||||
errors[i] = PrependPathToErrors(err3, path)
|
errors[i] = prependPathToErrors(err3, path)
|
||||||
}
|
}
|
||||||
return err2
|
return err2
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ValidateArray performs validation according to condition iterator that validates every element of the array
|
||||||
|
func ValidateArray(array []interface{}, iterator ConditionIterator) bool {
|
||||||
|
return Every(array, iterator)
|
||||||
|
}
|
||||||
|
|
||||||
// ValidateMap use validation map for fields.
|
// ValidateMap use validation map for fields.
|
||||||
// result will be equal to `false` if there are any errors.
|
// result will be equal to `false` if there are any errors.
|
||||||
// s is the map containing the data to be validated.
|
// s is the map containing the data to be validated.
|
||||||
|
@ -832,7 +880,7 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro
|
||||||
presentResult = false
|
presentResult = false
|
||||||
var err error
|
var err error
|
||||||
err = fmt.Errorf("all map keys has to be present in the validation map; got %s", key)
|
err = fmt.Errorf("all map keys has to be present in the validation map; got %s", key)
|
||||||
err = PrependPathToErrors(err, key)
|
err = prependPathToErrors(err, key)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
valueField := reflect.ValueOf(value)
|
valueField := reflect.ValueOf(value)
|
||||||
|
@ -846,13 +894,13 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro
|
||||||
if v, ok := value.(map[string]interface{}); !ok {
|
if v, ok := value.(map[string]interface{}); !ok {
|
||||||
mapResult = false
|
mapResult = false
|
||||||
err = fmt.Errorf("map validator has to be for the map type only; got %s", valueField.Type().String())
|
err = fmt.Errorf("map validator has to be for the map type only; got %s", valueField.Type().String())
|
||||||
err = PrependPathToErrors(err, key)
|
err = prependPathToErrors(err, key)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
} else {
|
} else {
|
||||||
mapResult, err = ValidateMap(v, subValidator)
|
mapResult, err = ValidateMap(v, subValidator)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
mapResult = false
|
mapResult = false
|
||||||
err = PrependPathToErrors(err, key)
|
err = prependPathToErrors(err, key)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -863,7 +911,7 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro
|
||||||
var err error
|
var err error
|
||||||
structResult, err = ValidateStruct(valueField.Interface())
|
structResult, err = ValidateStruct(valueField.Interface())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = PrependPathToErrors(err, key)
|
err = prependPathToErrors(err, key)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -884,13 +932,13 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro
|
||||||
default:
|
default:
|
||||||
typeResult = false
|
typeResult = false
|
||||||
err = fmt.Errorf("map validator has to be either map[string]interface{} or string; got %s", valueField.Type().String())
|
err = fmt.Errorf("map validator has to be either map[string]interface{} or string; got %s", valueField.Type().String())
|
||||||
err = PrependPathToErrors(err, key)
|
err = prependPathToErrors(err, key)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
result = result && presentResult && typeResult && resultField && structResult && mapResult
|
result = result && presentResult && typeResult && resultField && structResult && mapResult
|
||||||
index++
|
index++
|
||||||
}
|
}
|
||||||
// check required keys
|
// checks required keys
|
||||||
requiredResult := true
|
requiredResult := true
|
||||||
for key, value := range m {
|
for key, value := range m {
|
||||||
if schema, ok := value.(string); ok {
|
if schema, ok := value.(string); ok {
|
||||||
|
@ -949,7 +997,7 @@ func ValidateStruct(s interface{}) (bool, error) {
|
||||||
var err error
|
var err error
|
||||||
structResult, err = ValidateStruct(valueField.Interface())
|
structResult, err = ValidateStruct(valueField.Interface())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = PrependPathToErrors(err, typeField.Name)
|
err = prependPathToErrors(err, typeField.Name)
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -986,6 +1034,42 @@ func ValidateStruct(s interface{}) (bool, error) {
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ValidateStructAsync performs async validation of the struct and returns results through the channels
|
||||||
|
func ValidateStructAsync(s interface{}) (<-chan bool, <-chan error) {
|
||||||
|
res := make(chan bool)
|
||||||
|
errors := make(chan error)
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
defer close(res)
|
||||||
|
defer close(errors)
|
||||||
|
|
||||||
|
isValid, isFailed := ValidateStruct(s)
|
||||||
|
|
||||||
|
res <- isValid
|
||||||
|
errors <- isFailed
|
||||||
|
}()
|
||||||
|
|
||||||
|
return res, errors
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateMapAsync performs async validation of the map and returns results through the channels
|
||||||
|
func ValidateMapAsync(s map[string]interface{}, m map[string]interface{}) (<-chan bool, <-chan error) {
|
||||||
|
res := make(chan bool)
|
||||||
|
errors := make(chan error)
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
defer close(res)
|
||||||
|
defer close(errors)
|
||||||
|
|
||||||
|
isValid, isFailed := ValidateMap(s, m)
|
||||||
|
|
||||||
|
res <- isValid
|
||||||
|
errors <- isFailed
|
||||||
|
}()
|
||||||
|
|
||||||
|
return res, errors
|
||||||
|
}
|
||||||
|
|
||||||
// parseTagIntoMap parses a struct tag `valid:required~Some error message,length(2|3)` into map[string]string{"required": "Some error message", "length(2|3)": ""}
|
// parseTagIntoMap parses a struct tag `valid:required~Some error message,length(2|3)` into map[string]string{"required": "Some error message", "length(2|3)": ""}
|
||||||
func parseTagIntoMap(tag string) tagOptionsMap {
|
func parseTagIntoMap(tag string) tagOptionsMap {
|
||||||
optionsMap := make(tagOptionsMap)
|
optionsMap := make(tagOptionsMap)
|
||||||
|
@ -1034,12 +1118,12 @@ func IsSSN(str string) bool {
|
||||||
return rxSSN.MatchString(str)
|
return rxSSN.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSemver check if string is valid semantic version
|
// IsSemver checks if string is valid semantic version
|
||||||
func IsSemver(str string) bool {
|
func IsSemver(str string) bool {
|
||||||
return rxSemver.MatchString(str)
|
return rxSemver.MatchString(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsType check if interface is of some type
|
// IsType checks if interface is of some type
|
||||||
func IsType(v interface{}, params ...string) bool {
|
func IsType(v interface{}, params ...string) bool {
|
||||||
if len(params) == 1 {
|
if len(params) == 1 {
|
||||||
typ := params[0]
|
typ := params[0]
|
||||||
|
@ -1048,13 +1132,13 @@ func IsType(v interface{}, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsTime check if string is valid according to given format
|
// IsTime checks if string is valid according to given format
|
||||||
func IsTime(str string, format string) bool {
|
func IsTime(str string, format string) bool {
|
||||||
_, err := time.Parse(format, str)
|
_, err := time.Parse(format, str)
|
||||||
return err == nil
|
return err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUnixTime check if string is valid unix timestamp value
|
// IsUnixTime checks if string is valid unix timestamp value
|
||||||
func IsUnixTime(str string) bool {
|
func IsUnixTime(str string) bool {
|
||||||
if _, err := strconv.Atoi(str); err == nil {
|
if _, err := strconv.Atoi(str); err == nil {
|
||||||
return true
|
return true
|
||||||
|
@ -1062,17 +1146,17 @@ func IsUnixTime(str string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRFC3339 check if string is valid timestamp value according to RFC3339
|
// IsRFC3339 checks if string is valid timestamp value according to RFC3339
|
||||||
func IsRFC3339(str string) bool {
|
func IsRFC3339(str string) bool {
|
||||||
return IsTime(str, time.RFC3339)
|
return IsTime(str, time.RFC3339)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRFC3339WithoutZone check if string is valid timestamp value according to RFC3339 which excludes the timezone.
|
// IsRFC3339WithoutZone checks if string is valid timestamp value according to RFC3339 which excludes the timezone.
|
||||||
func IsRFC3339WithoutZone(str string) bool {
|
func IsRFC3339WithoutZone(str string) bool {
|
||||||
return IsTime(str, RF3339WithoutZone)
|
return IsTime(str, rfc3339WithoutZone)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsISO4217 check if string is valid ISO currency code
|
// IsISO4217 checks if string is valid ISO currency code
|
||||||
func IsISO4217(str string) bool {
|
func IsISO4217(str string) bool {
|
||||||
for _, currency := range ISO4217List {
|
for _, currency := range ISO4217List {
|
||||||
if str == currency {
|
if str == currency {
|
||||||
|
@ -1083,7 +1167,7 @@ func IsISO4217(str string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// ByteLength check string's length
|
// ByteLength checks string's length
|
||||||
func ByteLength(str string, params ...string) bool {
|
func ByteLength(str string, params ...string) bool {
|
||||||
if len(params) == 2 {
|
if len(params) == 2 {
|
||||||
min, _ := ToInt(params[0])
|
min, _ := ToInt(params[0])
|
||||||
|
@ -1094,13 +1178,13 @@ func ByteLength(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// RuneLength check string's length
|
// RuneLength checks string's length
|
||||||
// Alias for StringLength
|
// Alias for StringLength
|
||||||
func RuneLength(str string, params ...string) bool {
|
func RuneLength(str string, params ...string) bool {
|
||||||
return StringLength(str, params...)
|
return StringLength(str, params...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsRsaPub check whether string is valid RSA key
|
// IsRsaPub checks whether string is valid RSA key
|
||||||
// Alias for IsRsaPublicKey
|
// Alias for IsRsaPublicKey
|
||||||
func IsRsaPub(str string, params ...string) bool {
|
func IsRsaPub(str string, params ...string) bool {
|
||||||
if len(params) == 1 {
|
if len(params) == 1 {
|
||||||
|
@ -1120,7 +1204,7 @@ func StringMatches(s string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// StringLength check string's length (including multi byte strings)
|
// StringLength checks string's length (including multi byte strings)
|
||||||
func StringLength(str string, params ...string) bool {
|
func StringLength(str string, params ...string) bool {
|
||||||
|
|
||||||
if len(params) == 2 {
|
if len(params) == 2 {
|
||||||
|
@ -1133,7 +1217,7 @@ func StringLength(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// MinStringLength check string's minimum length (including multi byte strings)
|
// MinStringLength checks string's minimum length (including multi byte strings)
|
||||||
func MinStringLength(str string, params ...string) bool {
|
func MinStringLength(str string, params ...string) bool {
|
||||||
|
|
||||||
if len(params) == 1 {
|
if len(params) == 1 {
|
||||||
|
@ -1145,7 +1229,7 @@ func MinStringLength(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// MaxStringLength check string's maximum length (including multi byte strings)
|
// MaxStringLength checks string's maximum length (including multi byte strings)
|
||||||
func MaxStringLength(str string, params ...string) bool {
|
func MaxStringLength(str string, params ...string) bool {
|
||||||
|
|
||||||
if len(params) == 1 {
|
if len(params) == 1 {
|
||||||
|
@ -1157,7 +1241,7 @@ func MaxStringLength(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Range check string's length
|
// Range checks string's length
|
||||||
func Range(str string, params ...string) bool {
|
func Range(str string, params ...string) bool {
|
||||||
if len(params) == 2 {
|
if len(params) == 2 {
|
||||||
value, _ := ToFloat(str)
|
value, _ := ToFloat(str)
|
||||||
|
@ -1169,6 +1253,7 @@ func Range(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsInRaw checks if string is in list of allowed values
|
||||||
func IsInRaw(str string, params ...string) bool {
|
func IsInRaw(str string, params ...string) bool {
|
||||||
if len(params) == 1 {
|
if len(params) == 1 {
|
||||||
rawParams := params[0]
|
rawParams := params[0]
|
||||||
|
@ -1181,7 +1266,7 @@ func IsInRaw(str string, params ...string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsIn check if string str is a member of the set of strings params
|
// IsIn checks if string str is a member of the set of strings params
|
||||||
func IsIn(str string, params ...string) bool {
|
func IsIn(str string, params ...string) bool {
|
||||||
for _, param := range params {
|
for _, param := range params {
|
||||||
if str == param {
|
if str == param {
|
||||||
|
@ -1219,7 +1304,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
|
|
||||||
tag := t.Tag.Get(tagName)
|
tag := t.Tag.Get(tagName)
|
||||||
|
|
||||||
// Check if the field should be ignored
|
// checks if the field should be ignored
|
||||||
switch tag {
|
switch tag {
|
||||||
case "":
|
case "":
|
||||||
if v.Kind() != reflect.Slice && v.Kind() != reflect.Map {
|
if v.Kind() != reflect.Slice && v.Kind() != reflect.Map {
|
||||||
|
@ -1238,8 +1323,8 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
options = parseTagIntoMap(tag)
|
options = parseTagIntoMap(tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !isFieldSet(v) {
|
if isEmptyValue(v) {
|
||||||
// an empty value is not validated, check only required
|
// an empty value is not validated, checks only required
|
||||||
isValid, resultErr = checkRequired(v, t, options)
|
isValid, resultErr = checkRequired(v, t, options)
|
||||||
for key := range options {
|
for key := range options {
|
||||||
delete(options, key)
|
delete(options, key)
|
||||||
|
@ -1292,13 +1377,13 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
validator := validatorSpec
|
validator := validatorSpec
|
||||||
customMsgExists := len(validatorStruct.customErrorMessage) > 0
|
customMsgExists := len(validatorStruct.customErrorMessage) > 0
|
||||||
|
|
||||||
// Check whether the tag looks like '!something' or 'something'
|
// checks whether the tag looks like '!something' or 'something'
|
||||||
if validator[0] == '!' {
|
if validator[0] == '!' {
|
||||||
validator = validator[1:]
|
validator = validator[1:]
|
||||||
negate = true
|
negate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for interface param validators
|
// checks for interface param validators
|
||||||
for key, value := range InterfaceParamTagRegexMap {
|
for key, value := range InterfaceParamTagRegexMap {
|
||||||
ps := value.FindStringSubmatch(validator)
|
ps := value.FindStringSubmatch(validator)
|
||||||
if len(ps) == 0 {
|
if len(ps) == 0 {
|
||||||
|
@ -1331,20 +1416,20 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,
|
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,
|
||||||
reflect.Float32, reflect.Float64,
|
reflect.Float32, reflect.Float64,
|
||||||
reflect.String:
|
reflect.String:
|
||||||
// for each tag option check the map of validator functions
|
// for each tag option checks the map of validator functions
|
||||||
for _, validatorSpec := range optionsOrder {
|
for _, validatorSpec := range optionsOrder {
|
||||||
validatorStruct := options[validatorSpec]
|
validatorStruct := options[validatorSpec]
|
||||||
var negate bool
|
var negate bool
|
||||||
validator := validatorSpec
|
validator := validatorSpec
|
||||||
customMsgExists := len(validatorStruct.customErrorMessage) > 0
|
customMsgExists := len(validatorStruct.customErrorMessage) > 0
|
||||||
|
|
||||||
// Check whether the tag looks like '!something' or 'something'
|
// checks whether the tag looks like '!something' or 'something'
|
||||||
if validator[0] == '!' {
|
if validator[0] == '!' {
|
||||||
validator = validator[1:]
|
validator = validator[1:]
|
||||||
negate = true
|
negate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for param validators
|
// checks for param validators
|
||||||
for key, value := range ParamTagRegexMap {
|
for key, value := range ParamTagRegexMap {
|
||||||
ps := value.FindStringSubmatch(validator)
|
ps := value.FindStringSubmatch(validator)
|
||||||
if len(ps) == 0 {
|
if len(ps) == 0 {
|
||||||
|
@ -1425,7 +1510,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
} else {
|
} else {
|
||||||
resultItem, err = ValidateStruct(v.MapIndex(k).Interface())
|
resultItem, err = ValidateStruct(v.MapIndex(k).Interface())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = PrependPathToErrors(err, t.Name+"."+sv[i].Interface().(string))
|
err = prependPathToErrors(err, t.Name+"."+sv[i].Interface().(string))
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1445,7 +1530,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
} else {
|
} else {
|
||||||
resultItem, err = ValidateStruct(v.Index(i).Interface())
|
resultItem, err = ValidateStruct(v.Index(i).Interface())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = PrependPathToErrors(err, t.Name+"."+strconv.Itoa(i))
|
err = prependPathToErrors(err, t.Name+"."+strconv.Itoa(i))
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1459,7 +1544,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options
|
||||||
}
|
}
|
||||||
return ValidateStruct(v.Interface())
|
return ValidateStruct(v.Interface())
|
||||||
case reflect.Ptr:
|
case reflect.Ptr:
|
||||||
// If the value is a pointer then check its element
|
// If the value is a pointer then checks its element
|
||||||
if v.IsNil() {
|
if v.IsNil() {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
@ -1475,14 +1560,26 @@ func stripParams(validatorString string) string {
|
||||||
return paramsRegexp.ReplaceAllString(validatorString, "")
|
return paramsRegexp.ReplaceAllString(validatorString, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// isFieldSet returns false for nil pointers, interfaces, maps, and slices. For all other values, it returns true.
|
// isEmptyValue checks whether value empty or not
|
||||||
func isFieldSet(v reflect.Value) bool {
|
func isEmptyValue(v reflect.Value) bool {
|
||||||
switch v.Kind() {
|
switch v.Kind() {
|
||||||
case reflect.Map, reflect.Slice, reflect.Interface, reflect.Ptr:
|
case reflect.String, reflect.Array:
|
||||||
return !v.IsNil()
|
return v.Len() == 0
|
||||||
|
case reflect.Map, reflect.Slice:
|
||||||
|
return v.Len() == 0 || v.IsNil()
|
||||||
|
case reflect.Bool:
|
||||||
|
return !v.Bool()
|
||||||
|
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
|
||||||
|
return v.Int() == 0
|
||||||
|
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
|
||||||
|
return v.Uint() == 0
|
||||||
|
case reflect.Float32, reflect.Float64:
|
||||||
|
return v.Float() == 0
|
||||||
|
case reflect.Interface, reflect.Ptr:
|
||||||
|
return v.IsNil()
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return reflect.DeepEqual(v.Interface(), reflect.Zero(v.Type()).Interface())
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrorByField returns error for specified field of the struct
|
// ErrorByField returns error for specified field of the struct
|
||||||
|
|
13
vendor/github.com/fatih/color/README.md
generated
vendored
13
vendor/github.com/fatih/color/README.md
generated
vendored
|
@ -1,20 +1,11 @@
|
||||||
# Archived project. No maintenance.
|
# color [![](https://github.com/fatih/color/workflows/build/badge.svg)](https://github.com/fatih/color/actions) [![PkgGoDev](https://pkg.go.dev/badge/github.com/fatih/color)](https://pkg.go.dev/github.com/fatih/color)
|
||||||
|
|
||||||
This project is not maintained anymore and is archived. Feel free to fork and
|
|
||||||
make your own changes if needed. For more detail read my blog post: [Taking an indefinite sabbatical from my projects](https://arslan.io/2018/10/09/taking-an-indefinite-sabbatical-from-my-projects/)
|
|
||||||
|
|
||||||
Thanks to everyone for their valuable feedback and contributions.
|
|
||||||
|
|
||||||
|
|
||||||
# Color [![GoDoc](https://godoc.org/github.com/fatih/color?status.svg)](https://godoc.org/github.com/fatih/color)
|
|
||||||
|
|
||||||
Color lets you use colorized outputs in terms of [ANSI Escape
|
Color lets you use colorized outputs in terms of [ANSI Escape
|
||||||
Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It
|
Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It
|
||||||
has support for Windows too! The API can be used in several ways, pick one that
|
has support for Windows too! The API can be used in several ways, pick one that
|
||||||
suits you.
|
suits you.
|
||||||
|
|
||||||
|
![Color](https://user-images.githubusercontent.com/438920/96832689-03b3e000-13f4-11eb-9803-46f4c4de3406.jpg)
|
||||||
![Color](https://i.imgur.com/c1JI0lA.png)
|
|
||||||
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
4
vendor/github.com/fatih/color/go.mod
generated
vendored
4
vendor/github.com/fatih/color/go.mod
generated
vendored
|
@ -3,6 +3,6 @@ module github.com/fatih/color
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/mattn/go-colorable v0.1.4
|
github.com/mattn/go-colorable v0.1.8
|
||||||
github.com/mattn/go-isatty v0.0.11
|
github.com/mattn/go-isatty v0.0.12
|
||||||
)
|
)
|
||||||
|
|
15
vendor/github.com/fatih/color/go.sum
generated
vendored
15
vendor/github.com/fatih/color/go.sum
generated
vendored
|
@ -1,8 +1,7 @@
|
||||||
github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
|
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||||
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-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
||||||
github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=
|
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
|
||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
|
|
0
vendor/github.com/felixge/httpsnoop/.gitignore
generated
vendored
Normal file
0
vendor/github.com/felixge/httpsnoop/.gitignore
generated
vendored
Normal file
6
vendor/github.com/felixge/httpsnoop/.travis.yml
generated
vendored
Normal file
6
vendor/github.com/felixge/httpsnoop/.travis.yml
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.6
|
||||||
|
- 1.7
|
||||||
|
- 1.8
|
19
vendor/github.com/felixge/httpsnoop/LICENSE.txt
generated
vendored
Normal file
19
vendor/github.com/felixge/httpsnoop/LICENSE.txt
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2016 Felix Geisendörfer (felix@debuggable.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
10
vendor/github.com/felixge/httpsnoop/Makefile
generated
vendored
Normal file
10
vendor/github.com/felixge/httpsnoop/Makefile
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
.PHONY: ci generate clean
|
||||||
|
|
||||||
|
ci: clean generate
|
||||||
|
go test -v ./...
|
||||||
|
|
||||||
|
generate:
|
||||||
|
go generate .
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf *_generated*.go
|
94
vendor/github.com/felixge/httpsnoop/README.md
generated
vendored
Normal file
94
vendor/github.com/felixge/httpsnoop/README.md
generated
vendored
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
# httpsnoop
|
||||||
|
|
||||||
|
Package httpsnoop provides an easy way to capture http related metrics (i.e.
|
||||||
|
response time, bytes written, and http status code) from your application's
|
||||||
|
http.Handlers.
|
||||||
|
|
||||||
|
Doing this requires non-trivial wrapping of the http.ResponseWriter interface,
|
||||||
|
which is also exposed for users interested in a more low-level API.
|
||||||
|
|
||||||
|
[![GoDoc](https://godoc.org/github.com/felixge/httpsnoop?status.svg)](https://godoc.org/github.com/felixge/httpsnoop)
|
||||||
|
[![Build Status](https://travis-ci.org/felixge/httpsnoop.svg?branch=master)](https://travis-ci.org/felixge/httpsnoop)
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```go
|
||||||
|
// myH is your app's http handler, perhaps a http.ServeMux or similar.
|
||||||
|
var myH http.Handler
|
||||||
|
// wrappedH wraps myH in order to log every request.
|
||||||
|
wrappedH := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
m := httpsnoop.CaptureMetrics(myH, w, r)
|
||||||
|
log.Printf(
|
||||||
|
"%s %s (code=%d dt=%s written=%d)",
|
||||||
|
r.Method,
|
||||||
|
r.URL,
|
||||||
|
m.Code,
|
||||||
|
m.Duration,
|
||||||
|
m.Written,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
http.ListenAndServe(":8080", wrappedH)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Why this package exists
|
||||||
|
|
||||||
|
Instrumenting an application's http.Handler is surprisingly difficult.
|
||||||
|
|
||||||
|
However if you google for e.g. "capture ResponseWriter status code" you'll find
|
||||||
|
lots of advise and code examples that suggest it to be a fairly trivial
|
||||||
|
undertaking. Unfortunately everything I've seen so far has a high chance of
|
||||||
|
breaking your application.
|
||||||
|
|
||||||
|
The main problem is that a `http.ResponseWriter` often implements additional
|
||||||
|
interfaces such as `http.Flusher`, `http.CloseNotifier`, `http.Hijacker`, `http.Pusher`, and
|
||||||
|
`io.ReaderFrom`. So the naive approach of just wrapping `http.ResponseWriter`
|
||||||
|
in your own struct that also implements the `http.ResponseWriter` interface
|
||||||
|
will hide the additional interfaces mentioned above. This has a high change of
|
||||||
|
introducing subtle bugs into any non-trivial application.
|
||||||
|
|
||||||
|
Another approach I've seen people take is to return a struct that implements
|
||||||
|
all of the interfaces above. However, that's also problematic, because it's
|
||||||
|
difficult to fake some of these interfaces behaviors when the underlying
|
||||||
|
`http.ResponseWriter` doesn't have an implementation. It's also dangerous,
|
||||||
|
because an application may choose to operate differently, merely because it
|
||||||
|
detects the presence of these additional interfaces.
|
||||||
|
|
||||||
|
This package solves this problem by checking which additional interfaces a
|
||||||
|
`http.ResponseWriter` implements, returning a wrapped version implementing the
|
||||||
|
exact same set of interfaces.
|
||||||
|
|
||||||
|
Additionally this package properly handles edge cases such as `WriteHeader` not
|
||||||
|
being called, or called more than once, as well as concurrent calls to
|
||||||
|
`http.ResponseWriter` methods, and even calls happening after the wrapped
|
||||||
|
`ServeHTTP` has already returned.
|
||||||
|
|
||||||
|
Unfortunately this package is not perfect either. It's possible that it is
|
||||||
|
still missing some interfaces provided by the go core (let me know if you find
|
||||||
|
one), and it won't work for applications adding their own interfaces into the
|
||||||
|
mix.
|
||||||
|
|
||||||
|
However, hopefully the explanation above has sufficiently scared you of rolling
|
||||||
|
your own solution to this problem. httpsnoop may still break your application,
|
||||||
|
but at least it tries to avoid it as much as possible.
|
||||||
|
|
||||||
|
Anyway, the real problem here is that smuggling additional interfaces inside
|
||||||
|
`http.ResponseWriter` is a problematic design choice, but it probably goes as
|
||||||
|
deep as the Go language specification itself. But that's okay, I still prefer
|
||||||
|
Go over the alternatives ;).
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
```
|
||||||
|
BenchmarkBaseline-8 20000 94912 ns/op
|
||||||
|
BenchmarkCaptureMetrics-8 20000 95461 ns/op
|
||||||
|
```
|
||||||
|
|
||||||
|
As you can see, using `CaptureMetrics` on a vanilla http.Handler introduces an
|
||||||
|
overhead of ~500 ns per http request on my machine. However, the margin of
|
||||||
|
error appears to be larger than that, therefor it should be reasonable to
|
||||||
|
assume that the overhead introduced by `CaptureMetrics` is absolutely
|
||||||
|
negligible.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
84
vendor/github.com/felixge/httpsnoop/capture_metrics.go
generated
vendored
Normal file
84
vendor/github.com/felixge/httpsnoop/capture_metrics.go
generated
vendored
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
package httpsnoop
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Metrics holds metrics captured from CaptureMetrics.
|
||||||
|
type Metrics struct {
|
||||||
|
// Code is the first http response code passed to the WriteHeader func of
|
||||||
|
// the ResponseWriter. If no such call is made, a default code of 200 is
|
||||||
|
// assumed instead.
|
||||||
|
Code int
|
||||||
|
// Duration is the time it took to execute the handler.
|
||||||
|
Duration time.Duration
|
||||||
|
// Written is the number of bytes successfully written by the Write or
|
||||||
|
// ReadFrom function of the ResponseWriter. ResponseWriters may also write
|
||||||
|
// data to their underlaying connection directly (e.g. headers), but those
|
||||||
|
// are not tracked. Therefor the number of Written bytes will usually match
|
||||||
|
// the size of the response body.
|
||||||
|
Written int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// CaptureMetrics wraps the given hnd, executes it with the given w and r, and
|
||||||
|
// returns the metrics it captured from it.
|
||||||
|
func CaptureMetrics(hnd http.Handler, w http.ResponseWriter, r *http.Request) Metrics {
|
||||||
|
return CaptureMetricsFn(w, func(ww http.ResponseWriter) {
|
||||||
|
hnd.ServeHTTP(ww, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// CaptureMetricsFn wraps w and calls fn with the wrapped w and returns the
|
||||||
|
// resulting metrics. This is very similar to CaptureMetrics (which is just
|
||||||
|
// sugar on top of this func), but is a more usable interface if your
|
||||||
|
// application doesn't use the Go http.Handler interface.
|
||||||
|
func CaptureMetricsFn(w http.ResponseWriter, fn func(http.ResponseWriter)) Metrics {
|
||||||
|
var (
|
||||||
|
start = time.Now()
|
||||||
|
m = Metrics{Code: http.StatusOK}
|
||||||
|
headerWritten bool
|
||||||
|
lock sync.Mutex
|
||||||
|
hooks = Hooks{
|
||||||
|
WriteHeader: func(next WriteHeaderFunc) WriteHeaderFunc {
|
||||||
|
return func(code int) {
|
||||||
|
next(code)
|
||||||
|
lock.Lock()
|
||||||
|
defer lock.Unlock()
|
||||||
|
if !headerWritten {
|
||||||
|
m.Code = code
|
||||||
|
headerWritten = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Write: func(next WriteFunc) WriteFunc {
|
||||||
|
return func(p []byte) (int, error) {
|
||||||
|
n, err := next(p)
|
||||||
|
lock.Lock()
|
||||||
|
defer lock.Unlock()
|
||||||
|
m.Written += int64(n)
|
||||||
|
headerWritten = true
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ReadFrom: func(next ReadFromFunc) ReadFromFunc {
|
||||||
|
return func(src io.Reader) (int64, error) {
|
||||||
|
n, err := next(src)
|
||||||
|
lock.Lock()
|
||||||
|
defer lock.Unlock()
|
||||||
|
headerWritten = true
|
||||||
|
m.Written += n
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
fn(Wrap(w, hooks))
|
||||||
|
m.Duration = time.Since(start)
|
||||||
|
return m
|
||||||
|
}
|
10
vendor/github.com/felixge/httpsnoop/docs.go
generated
vendored
Normal file
10
vendor/github.com/felixge/httpsnoop/docs.go
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Package httpsnoop provides an easy way to capture http related metrics (i.e.
|
||||||
|
// response time, bytes written, and http status code) from your application's
|
||||||
|
// http.Handlers.
|
||||||
|
//
|
||||||
|
// Doing this requires non-trivial wrapping of the http.ResponseWriter
|
||||||
|
// interface, which is also exposed for users interested in a more low-level
|
||||||
|
// API.
|
||||||
|
package httpsnoop
|
||||||
|
|
||||||
|
//go:generate go run codegen/main.go
|
3
vendor/github.com/felixge/httpsnoop/go.mod
generated
vendored
Normal file
3
vendor/github.com/felixge/httpsnoop/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
module github.com/felixge/httpsnoop
|
||||||
|
|
||||||
|
go 1.13
|
385
vendor/github.com/felixge/httpsnoop/wrap_generated_gteq_1.8.go
generated
vendored
Normal file
385
vendor/github.com/felixge/httpsnoop/wrap_generated_gteq_1.8.go
generated
vendored
Normal file
|
@ -0,0 +1,385 @@
|
||||||
|
// +build go1.8
|
||||||
|
// Code generated by "httpsnoop/codegen"; DO NOT EDIT
|
||||||
|
|
||||||
|
package httpsnoop
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"io"
|
||||||
|
"net"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HeaderFunc is part of the http.ResponseWriter interface.
|
||||||
|
type HeaderFunc func() http.Header
|
||||||
|
|
||||||
|
// WriteHeaderFunc is part of the http.ResponseWriter interface.
|
||||||
|
type WriteHeaderFunc func(code int)
|
||||||
|
|
||||||
|
// WriteFunc is part of the http.ResponseWriter interface.
|
||||||
|
type WriteFunc func(b []byte) (int, error)
|
||||||
|
|
||||||
|
// FlushFunc is part of the http.Flusher interface.
|
||||||
|
type FlushFunc func()
|
||||||
|
|
||||||
|
// CloseNotifyFunc is part of the http.CloseNotifier interface.
|
||||||
|
type CloseNotifyFunc func() <-chan bool
|
||||||
|
|
||||||
|
// HijackFunc is part of the http.Hijacker interface.
|
||||||
|
type HijackFunc func() (net.Conn, *bufio.ReadWriter, error)
|
||||||
|
|
||||||
|
// ReadFromFunc is part of the io.ReaderFrom interface.
|
||||||
|
type ReadFromFunc func(src io.Reader) (int64, error)
|
||||||
|
|
||||||
|
// PushFunc is part of the http.Pusher interface.
|
||||||
|
type PushFunc func(target string, opts *http.PushOptions) error
|
||||||
|
|
||||||
|
// Hooks defines a set of method interceptors for methods included in
|
||||||
|
// http.ResponseWriter as well as some others. You can think of them as
|
||||||
|
// middleware for the function calls they target. See Wrap for more details.
|
||||||
|
type Hooks struct {
|
||||||
|
Header func(HeaderFunc) HeaderFunc
|
||||||
|
WriteHeader func(WriteHeaderFunc) WriteHeaderFunc
|
||||||
|
Write func(WriteFunc) WriteFunc
|
||||||
|
Flush func(FlushFunc) FlushFunc
|
||||||
|
CloseNotify func(CloseNotifyFunc) CloseNotifyFunc
|
||||||
|
Hijack func(HijackFunc) HijackFunc
|
||||||
|
ReadFrom func(ReadFromFunc) ReadFromFunc
|
||||||
|
Push func(PushFunc) PushFunc
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrap returns a wrapped version of w that provides the exact same interface
|
||||||
|
// as w. Specifically if w implements any combination of:
|
||||||
|
//
|
||||||
|
// - http.Flusher
|
||||||
|
// - http.CloseNotifier
|
||||||
|
// - http.Hijacker
|
||||||
|
// - io.ReaderFrom
|
||||||
|
// - http.Pusher
|
||||||
|
//
|
||||||
|
// The wrapped version will implement the exact same combination. If no hooks
|
||||||
|
// are set, the wrapped version also behaves exactly as w. Hooks targeting
|
||||||
|
// methods not supported by w are ignored. Any other hooks will intercept the
|
||||||
|
// method they target and may modify the call's arguments and/or return values.
|
||||||
|
// The CaptureMetrics implementation serves as a working example for how the
|
||||||
|
// hooks can be used.
|
||||||
|
func Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter {
|
||||||
|
rw := &rw{w: w, h: hooks}
|
||||||
|
_, i0 := w.(http.Flusher)
|
||||||
|
_, i1 := w.(http.CloseNotifier)
|
||||||
|
_, i2 := w.(http.Hijacker)
|
||||||
|
_, i3 := w.(io.ReaderFrom)
|
||||||
|
_, i4 := w.(http.Pusher)
|
||||||
|
switch {
|
||||||
|
// combination 1/32
|
||||||
|
case !i0 && !i1 && !i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
}{rw}
|
||||||
|
// combination 2/32
|
||||||
|
case !i0 && !i1 && !i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 3/32
|
||||||
|
case !i0 && !i1 && !i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 4/32
|
||||||
|
case !i0 && !i1 && !i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 5/32
|
||||||
|
case !i0 && !i1 && i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 6/32
|
||||||
|
case !i0 && !i1 && i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 7/32
|
||||||
|
case !i0 && !i1 && i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 8/32
|
||||||
|
case !i0 && !i1 && i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 9/32
|
||||||
|
case !i0 && i1 && !i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 10/32
|
||||||
|
case !i0 && i1 && !i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 11/32
|
||||||
|
case !i0 && i1 && !i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 12/32
|
||||||
|
case !i0 && i1 && !i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 13/32
|
||||||
|
case !i0 && i1 && i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 14/32
|
||||||
|
case !i0 && i1 && i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 15/32
|
||||||
|
case !i0 && i1 && i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 16/32
|
||||||
|
case !i0 && i1 && i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
// combination 17/32
|
||||||
|
case i0 && !i1 && !i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 18/32
|
||||||
|
case i0 && !i1 && !i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 19/32
|
||||||
|
case i0 && !i1 && !i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 20/32
|
||||||
|
case i0 && !i1 && !i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 21/32
|
||||||
|
case i0 && !i1 && i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 22/32
|
||||||
|
case i0 && !i1 && i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 23/32
|
||||||
|
case i0 && !i1 && i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 24/32
|
||||||
|
case i0 && !i1 && i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
// combination 25/32
|
||||||
|
case i0 && i1 && !i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 26/32
|
||||||
|
case i0 && i1 && !i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 27/32
|
||||||
|
case i0 && i1 && !i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 28/32
|
||||||
|
case i0 && i1 && !i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
// combination 29/32
|
||||||
|
case i0 && i1 && i2 && !i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 30/32
|
||||||
|
case i0 && i1 && i2 && !i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
// combination 31/32
|
||||||
|
case i0 && i1 && i2 && i3 && !i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
// combination 32/32
|
||||||
|
case i0 && i1 && i2 && i3 && i4:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
http.Pusher
|
||||||
|
}{rw, rw, rw, rw, rw, rw}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
|
||||||
|
type rw struct {
|
||||||
|
w http.ResponseWriter
|
||||||
|
h Hooks
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Header() http.Header {
|
||||||
|
f := w.w.(http.ResponseWriter).Header
|
||||||
|
if w.h.Header != nil {
|
||||||
|
f = w.h.Header(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) WriteHeader(code int) {
|
||||||
|
f := w.w.(http.ResponseWriter).WriteHeader
|
||||||
|
if w.h.WriteHeader != nil {
|
||||||
|
f = w.h.WriteHeader(f)
|
||||||
|
}
|
||||||
|
f(code)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Write(b []byte) (int, error) {
|
||||||
|
f := w.w.(http.ResponseWriter).Write
|
||||||
|
if w.h.Write != nil {
|
||||||
|
f = w.h.Write(f)
|
||||||
|
}
|
||||||
|
return f(b)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Flush() {
|
||||||
|
f := w.w.(http.Flusher).Flush
|
||||||
|
if w.h.Flush != nil {
|
||||||
|
f = w.h.Flush(f)
|
||||||
|
}
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) CloseNotify() <-chan bool {
|
||||||
|
f := w.w.(http.CloseNotifier).CloseNotify
|
||||||
|
if w.h.CloseNotify != nil {
|
||||||
|
f = w.h.CloseNotify(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) {
|
||||||
|
f := w.w.(http.Hijacker).Hijack
|
||||||
|
if w.h.Hijack != nil {
|
||||||
|
f = w.h.Hijack(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) ReadFrom(src io.Reader) (int64, error) {
|
||||||
|
f := w.w.(io.ReaderFrom).ReadFrom
|
||||||
|
if w.h.ReadFrom != nil {
|
||||||
|
f = w.h.ReadFrom(f)
|
||||||
|
}
|
||||||
|
return f(src)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Push(target string, opts *http.PushOptions) error {
|
||||||
|
f := w.w.(http.Pusher).Push
|
||||||
|
if w.h.Push != nil {
|
||||||
|
f = w.h.Push(f)
|
||||||
|
}
|
||||||
|
return f(target, opts)
|
||||||
|
}
|
243
vendor/github.com/felixge/httpsnoop/wrap_generated_lt_1.8.go
generated
vendored
Normal file
243
vendor/github.com/felixge/httpsnoop/wrap_generated_lt_1.8.go
generated
vendored
Normal file
|
@ -0,0 +1,243 @@
|
||||||
|
// +build !go1.8
|
||||||
|
// Code generated by "httpsnoop/codegen"; DO NOT EDIT
|
||||||
|
|
||||||
|
package httpsnoop
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"io"
|
||||||
|
"net"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HeaderFunc is part of the http.ResponseWriter interface.
|
||||||
|
type HeaderFunc func() http.Header
|
||||||
|
|
||||||
|
// WriteHeaderFunc is part of the http.ResponseWriter interface.
|
||||||
|
type WriteHeaderFunc func(code int)
|
||||||
|
|
||||||
|
// WriteFunc is part of the http.ResponseWriter interface.
|
||||||
|
type WriteFunc func(b []byte) (int, error)
|
||||||
|
|
||||||
|
// FlushFunc is part of the http.Flusher interface.
|
||||||
|
type FlushFunc func()
|
||||||
|
|
||||||
|
// CloseNotifyFunc is part of the http.CloseNotifier interface.
|
||||||
|
type CloseNotifyFunc func() <-chan bool
|
||||||
|
|
||||||
|
// HijackFunc is part of the http.Hijacker interface.
|
||||||
|
type HijackFunc func() (net.Conn, *bufio.ReadWriter, error)
|
||||||
|
|
||||||
|
// ReadFromFunc is part of the io.ReaderFrom interface.
|
||||||
|
type ReadFromFunc func(src io.Reader) (int64, error)
|
||||||
|
|
||||||
|
// Hooks defines a set of method interceptors for methods included in
|
||||||
|
// http.ResponseWriter as well as some others. You can think of them as
|
||||||
|
// middleware for the function calls they target. See Wrap for more details.
|
||||||
|
type Hooks struct {
|
||||||
|
Header func(HeaderFunc) HeaderFunc
|
||||||
|
WriteHeader func(WriteHeaderFunc) WriteHeaderFunc
|
||||||
|
Write func(WriteFunc) WriteFunc
|
||||||
|
Flush func(FlushFunc) FlushFunc
|
||||||
|
CloseNotify func(CloseNotifyFunc) CloseNotifyFunc
|
||||||
|
Hijack func(HijackFunc) HijackFunc
|
||||||
|
ReadFrom func(ReadFromFunc) ReadFromFunc
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrap returns a wrapped version of w that provides the exact same interface
|
||||||
|
// as w. Specifically if w implements any combination of:
|
||||||
|
//
|
||||||
|
// - http.Flusher
|
||||||
|
// - http.CloseNotifier
|
||||||
|
// - http.Hijacker
|
||||||
|
// - io.ReaderFrom
|
||||||
|
//
|
||||||
|
// The wrapped version will implement the exact same combination. If no hooks
|
||||||
|
// are set, the wrapped version also behaves exactly as w. Hooks targeting
|
||||||
|
// methods not supported by w are ignored. Any other hooks will intercept the
|
||||||
|
// method they target and may modify the call's arguments and/or return values.
|
||||||
|
// The CaptureMetrics implementation serves as a working example for how the
|
||||||
|
// hooks can be used.
|
||||||
|
func Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter {
|
||||||
|
rw := &rw{w: w, h: hooks}
|
||||||
|
_, i0 := w.(http.Flusher)
|
||||||
|
_, i1 := w.(http.CloseNotifier)
|
||||||
|
_, i2 := w.(http.Hijacker)
|
||||||
|
_, i3 := w.(io.ReaderFrom)
|
||||||
|
switch {
|
||||||
|
// combination 1/16
|
||||||
|
case !i0 && !i1 && !i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
}{rw}
|
||||||
|
// combination 2/16
|
||||||
|
case !i0 && !i1 && !i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 3/16
|
||||||
|
case !i0 && !i1 && i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 4/16
|
||||||
|
case !i0 && !i1 && i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 5/16
|
||||||
|
case !i0 && i1 && !i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 6/16
|
||||||
|
case !i0 && i1 && !i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 7/16
|
||||||
|
case !i0 && i1 && i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 8/16
|
||||||
|
case !i0 && i1 && i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 9/16
|
||||||
|
case i0 && !i1 && !i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
}{rw, rw}
|
||||||
|
// combination 10/16
|
||||||
|
case i0 && !i1 && !i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 11/16
|
||||||
|
case i0 && !i1 && i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 12/16
|
||||||
|
case i0 && !i1 && i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 13/16
|
||||||
|
case i0 && i1 && !i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
}{rw, rw, rw}
|
||||||
|
// combination 14/16
|
||||||
|
case i0 && i1 && !i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 15/16
|
||||||
|
case i0 && i1 && i2 && !i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
}{rw, rw, rw, rw}
|
||||||
|
// combination 16/16
|
||||||
|
case i0 && i1 && i2 && i3:
|
||||||
|
return struct {
|
||||||
|
http.ResponseWriter
|
||||||
|
http.Flusher
|
||||||
|
http.CloseNotifier
|
||||||
|
http.Hijacker
|
||||||
|
io.ReaderFrom
|
||||||
|
}{rw, rw, rw, rw, rw}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
|
||||||
|
type rw struct {
|
||||||
|
w http.ResponseWriter
|
||||||
|
h Hooks
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Header() http.Header {
|
||||||
|
f := w.w.(http.ResponseWriter).Header
|
||||||
|
if w.h.Header != nil {
|
||||||
|
f = w.h.Header(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) WriteHeader(code int) {
|
||||||
|
f := w.w.(http.ResponseWriter).WriteHeader
|
||||||
|
if w.h.WriteHeader != nil {
|
||||||
|
f = w.h.WriteHeader(f)
|
||||||
|
}
|
||||||
|
f(code)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Write(b []byte) (int, error) {
|
||||||
|
f := w.w.(http.ResponseWriter).Write
|
||||||
|
if w.h.Write != nil {
|
||||||
|
f = w.h.Write(f)
|
||||||
|
}
|
||||||
|
return f(b)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Flush() {
|
||||||
|
f := w.w.(http.Flusher).Flush
|
||||||
|
if w.h.Flush != nil {
|
||||||
|
f = w.h.Flush(f)
|
||||||
|
}
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) CloseNotify() <-chan bool {
|
||||||
|
f := w.w.(http.CloseNotifier).CloseNotify
|
||||||
|
if w.h.CloseNotify != nil {
|
||||||
|
f = w.h.CloseNotify(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) {
|
||||||
|
f := w.w.(http.Hijacker).Hijack
|
||||||
|
if w.h.Hijack != nil {
|
||||||
|
f = w.h.Hijack(f)
|
||||||
|
}
|
||||||
|
return f()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *rw) ReadFrom(src io.Reader) (int64, error) {
|
||||||
|
f := w.w.(io.ReaderFrom).ReadFrom
|
||||||
|
if w.h.ReadFrom != nil {
|
||||||
|
f = w.h.ReadFrom(f)
|
||||||
|
}
|
||||||
|
return f(src)
|
||||||
|
}
|
15
vendor/github.com/go-openapi/analysis/.golangci.yml
generated
vendored
15
vendor/github.com/go-openapi/analysis/.golangci.yml
generated
vendored
|
@ -8,7 +8,7 @@ linters-settings:
|
||||||
maligned:
|
maligned:
|
||||||
suggest-new: true
|
suggest-new: true
|
||||||
dupl:
|
dupl:
|
||||||
threshold: 100
|
threshold: 150
|
||||||
goconst:
|
goconst:
|
||||||
min-len: 2
|
min-len: 2
|
||||||
min-occurrences: 4
|
min-occurrences: 4
|
||||||
|
@ -30,3 +30,16 @@ linters:
|
||||||
- whitespace
|
- whitespace
|
||||||
- wsl
|
- wsl
|
||||||
- funlen
|
- funlen
|
||||||
|
- testpackage
|
||||||
|
- wrapcheck
|
||||||
|
- nlreturn
|
||||||
|
- gomnd
|
||||||
|
- goerr113
|
||||||
|
- exhaustivestruct
|
||||||
|
- errorlint
|
||||||
|
- nestif
|
||||||
|
- gofumpt
|
||||||
|
- godot
|
||||||
|
- gci
|
||||||
|
- dogsled
|
||||||
|
- paralleltest
|
||||||
|
|
5
vendor/github.com/go-openapi/analysis/.travis.yml
generated
vendored
5
vendor/github.com/go-openapi/analysis/.travis.yml
generated
vendored
|
@ -1,8 +1,11 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.13.x
|
|
||||||
- 1.14.x
|
- 1.14.x
|
||||||
|
- 1.x
|
||||||
|
arch:
|
||||||
|
- amd64
|
||||||
|
- ppc64le
|
||||||
install:
|
install:
|
||||||
- go get -u gotest.tools/gotestsum
|
- go get -u gotest.tools/gotestsum
|
||||||
language: go
|
language: go
|
||||||
|
|
22
vendor/github.com/go-openapi/analysis/analyzer.go
generated
vendored
22
vendor/github.com/go-openapi/analysis/analyzer.go
generated
vendored
|
@ -212,7 +212,7 @@ func (s *Spec) initialize() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for path, pathItem := range s.AllPaths() {
|
for path, pathItem := range s.AllPaths() {
|
||||||
s.analyzeOperations(path, &pathItem)
|
s.analyzeOperations(path, &pathItem) //#nosec
|
||||||
}
|
}
|
||||||
|
|
||||||
for name, parameter := range s.spec.Parameters {
|
for name, parameter := range s.spec.Parameters {
|
||||||
|
@ -277,7 +277,7 @@ func (s *Spec) analyzeOperations(path string, pi *spec.PathItem) {
|
||||||
for i, param := range op.Parameters {
|
for i, param := range op.Parameters {
|
||||||
refPref := slashpath.Join("/paths", jsonpointer.Escape(path), "parameters", strconv.Itoa(i))
|
refPref := slashpath.Join("/paths", jsonpointer.Escape(path), "parameters", strconv.Itoa(i))
|
||||||
if param.Ref.String() != "" {
|
if param.Ref.String() != "" {
|
||||||
s.references.addParamRef(refPref, ¶m)
|
s.references.addParamRef(refPref, ¶m) //#nosec
|
||||||
}
|
}
|
||||||
if param.Pattern != "" {
|
if param.Pattern != "" {
|
||||||
s.patterns.addParameterPattern(refPref, param.Pattern)
|
s.patterns.addParameterPattern(refPref, param.Pattern)
|
||||||
|
@ -335,7 +335,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) {
|
||||||
for i, param := range op.Parameters {
|
for i, param := range op.Parameters {
|
||||||
refPref := slashpath.Join(prefix, "parameters", strconv.Itoa(i))
|
refPref := slashpath.Join(prefix, "parameters", strconv.Itoa(i))
|
||||||
if param.Ref.String() != "" {
|
if param.Ref.String() != "" {
|
||||||
s.references.addParamRef(refPref, ¶m)
|
s.references.addParamRef(refPref, ¶m) //#nosec
|
||||||
}
|
}
|
||||||
if param.Pattern != "" {
|
if param.Pattern != "" {
|
||||||
s.patterns.addParameterPattern(refPref, param.Pattern)
|
s.patterns.addParameterPattern(refPref, param.Pattern)
|
||||||
|
@ -368,7 +368,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) {
|
||||||
for k, res := range op.Responses.StatusCodeResponses {
|
for k, res := range op.Responses.StatusCodeResponses {
|
||||||
refPref := slashpath.Join(prefix, "responses", strconv.Itoa(k))
|
refPref := slashpath.Join(prefix, "responses", strconv.Itoa(k))
|
||||||
if res.Ref.String() != "" {
|
if res.Ref.String() != "" {
|
||||||
s.references.addResponseRef(refPref, &res)
|
s.references.addResponseRef(refPref, &res) //#nosec
|
||||||
}
|
}
|
||||||
for k, v := range res.Headers {
|
for k, v := range res.Headers {
|
||||||
hRefPref := slashpath.Join(refPref, "headers", k)
|
hRefPref := slashpath.Join(refPref, "headers", k)
|
||||||
|
@ -665,25 +665,25 @@ func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamF
|
||||||
}
|
}
|
||||||
for _, pi := range s.spec.Paths.Paths {
|
for _, pi := range s.spec.Paths.Paths {
|
||||||
if pi.Get != nil && pi.Get.ID == operationID {
|
if pi.Get != nil && pi.Get.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Get)
|
return gatherParams(&pi, pi.Get) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Head != nil && pi.Head.ID == operationID {
|
if pi.Head != nil && pi.Head.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Head)
|
return gatherParams(&pi, pi.Head) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Options != nil && pi.Options.ID == operationID {
|
if pi.Options != nil && pi.Options.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Options)
|
return gatherParams(&pi, pi.Options) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Post != nil && pi.Post.ID == operationID {
|
if pi.Post != nil && pi.Post.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Post)
|
return gatherParams(&pi, pi.Post) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Patch != nil && pi.Patch.ID == operationID {
|
if pi.Patch != nil && pi.Patch.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Patch)
|
return gatherParams(&pi, pi.Patch) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Put != nil && pi.Put.ID == operationID {
|
if pi.Put != nil && pi.Put.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Put)
|
return gatherParams(&pi, pi.Put) //#nosec
|
||||||
}
|
}
|
||||||
if pi.Delete != nil && pi.Delete.ID == operationID {
|
if pi.Delete != nil && pi.Delete.ID == operationID {
|
||||||
return gatherParams(&pi, pi.Delete)
|
return gatherParams(&pi, pi.Delete) //#nosec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
3
vendor/github.com/go-openapi/analysis/appveyor.yml
generated
vendored
3
vendor/github.com/go-openapi/analysis/appveyor.yml
generated
vendored
|
@ -17,7 +17,8 @@ environment:
|
||||||
stack: go 1.12
|
stack: go 1.12
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
- go test -v -timeout 20m ./...
|
- echo "test disabled for now"
|
||||||
|
#- go test -v -timeout 20m ./...
|
||||||
#artifacts:
|
#artifacts:
|
||||||
# - path: '%GOPATH%\bin\*.exe'
|
# - path: '%GOPATH%\bin\*.exe'
|
||||||
deploy: off
|
deploy: off
|
||||||
|
|
4
vendor/github.com/go-openapi/analysis/fixer.go
generated
vendored
4
vendor/github.com/go-openapi/analysis/fixer.go
generated
vendored
|
@ -50,7 +50,7 @@ func FixEmptyResponseDescriptions(s *spec.Swagger) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for k, v := range s.Responses {
|
for k, v := range s.Responses {
|
||||||
FixEmptyDesc(&v)
|
FixEmptyDesc(&v) //#nosec
|
||||||
s.Responses[k] = v
|
s.Responses[k] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ func FixEmptyResponseDescriptions(s *spec.Swagger) {
|
||||||
func FixEmptyDescs(rs *spec.Responses) {
|
func FixEmptyDescs(rs *spec.Responses) {
|
||||||
FixEmptyDesc(rs.Default)
|
FixEmptyDesc(rs.Default)
|
||||||
for k, v := range rs.StatusCodeResponses {
|
for k, v := range rs.StatusCodeResponses {
|
||||||
FixEmptyDesc(&v)
|
FixEmptyDesc(&v) //#nosec
|
||||||
rs.StatusCodeResponses[k] = v
|
rs.StatusCodeResponses[k] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
23
vendor/github.com/go-openapi/analysis/flatten.go
generated
vendored
23
vendor/github.com/go-openapi/analysis/flatten.go
generated
vendored
|
@ -156,6 +156,8 @@ func Flatten(opts FlattenOpts) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opts.Spec.reload() // re-analyze
|
||||||
|
|
||||||
// strip current file from $ref's, so we can recognize them as proper definitions
|
// strip current file from $ref's, so we can recognize them as proper definitions
|
||||||
// In particular, this works around for issue go-openapi/spec#76: leading absolute file in $ref is stripped
|
// In particular, this works around for issue go-openapi/spec#76: leading absolute file in $ref is stripped
|
||||||
if err := normalizeRef(&opts); err != nil {
|
if err := normalizeRef(&opts); err != nil {
|
||||||
|
@ -778,6 +780,9 @@ func rewriteParentRef(spec *swspec.Swagger, key string, ref swspec.Ref) error {
|
||||||
}
|
}
|
||||||
container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
||||||
|
|
||||||
|
case swspec.SchemaProperties:
|
||||||
|
container[entry] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
||||||
|
|
||||||
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1038,7 +1043,7 @@ func nameFromRef(ref swspec.Ref) string {
|
||||||
return swag.ToJSONName(bn)
|
return swag.ToJSONName(bn)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return swag.ToJSONName(strings.Replace(u.Host, ".", " ", -1))
|
return swag.ToJSONName(strings.ReplaceAll(u.Host, ".", " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
func saveSchema(spec *swspec.Swagger, name string, schema *swspec.Schema) {
|
func saveSchema(spec *swspec.Swagger, name string, schema *swspec.Schema) {
|
||||||
|
@ -1155,6 +1160,9 @@ func updateRef(spec interface{}, key string, ref swspec.Ref) error {
|
||||||
}
|
}
|
||||||
container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
||||||
|
|
||||||
|
case swspec.SchemaProperties:
|
||||||
|
container[entry] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}}
|
||||||
|
|
||||||
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1206,6 +1214,9 @@ func updateRefWithSchema(spec *swspec.Swagger, key string, sch *swspec.Schema) e
|
||||||
}
|
}
|
||||||
container.Schemas[idx] = *sch
|
container.Schemas[idx] = *sch
|
||||||
|
|
||||||
|
case swspec.SchemaProperties:
|
||||||
|
container[entry] = *sch
|
||||||
|
|
||||||
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1741,9 +1752,12 @@ DOWNREF:
|
||||||
// leading absolute file in $ref is stripped
|
// leading absolute file in $ref is stripped
|
||||||
func normalizeRef(opts *FlattenOpts) error {
|
func normalizeRef(opts *FlattenOpts) error {
|
||||||
debugLog("normalizeRef")
|
debugLog("normalizeRef")
|
||||||
opts.Spec.reload() // re-analyze
|
altered := false
|
||||||
for k, w := range opts.Spec.references.allRefs {
|
for k, w := range opts.Spec.references.allRefs {
|
||||||
if strings.HasPrefix(w.String(), opts.BasePath+definitionsPath) { // may be a mix of / and \, depending on OS
|
if !strings.HasPrefix(w.String(), opts.BasePath+definitionsPath) { // may be a mix of / and \, depending on OS
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
altered = true
|
||||||
// strip base path from definition
|
// strip base path from definition
|
||||||
debugLog("stripping absolute path for: %s", w.String())
|
debugLog("stripping absolute path for: %s", w.String())
|
||||||
if err := updateRef(opts.Swagger(), k,
|
if err := updateRef(opts.Swagger(), k,
|
||||||
|
@ -1751,7 +1765,8 @@ func normalizeRef(opts *FlattenOpts) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if altered {
|
||||||
opts.Spec.reload() // re-analyze
|
opts.Spec.reload() // re-analyze
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
25
vendor/github.com/go-openapi/analysis/go.mod
generated
vendored
25
vendor/github.com/go-openapi/analysis/go.mod
generated
vendored
|
@ -1,23 +1,14 @@
|
||||||
module github.com/go-openapi/analysis
|
module github.com/go-openapi/analysis
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 // indirect
|
github.com/go-openapi/errors v0.19.9 // indirect
|
||||||
github.com/go-openapi/errors v0.19.3 // indirect
|
github.com/go-openapi/jsonpointer v0.19.5
|
||||||
github.com/go-openapi/jsonpointer v0.19.3
|
github.com/go-openapi/loads v0.19.6
|
||||||
github.com/go-openapi/jsonreference v0.19.3 // indirect
|
github.com/go-openapi/spec v0.19.15
|
||||||
github.com/go-openapi/loads v0.19.0
|
github.com/go-openapi/strfmt v0.19.11
|
||||||
github.com/go-openapi/spec v0.19.6
|
github.com/go-openapi/swag v0.19.12
|
||||||
github.com/go-openapi/strfmt v0.19.4
|
github.com/mitchellh/mapstructure v1.4.0 // indirect
|
||||||
github.com/go-openapi/swag v0.19.7
|
github.com/stretchr/testify v1.6.1
|
||||||
github.com/kr/pty v1.1.5 // indirect
|
|
||||||
github.com/mailru/easyjson v0.7.1 // indirect
|
|
||||||
github.com/stretchr/testify v1.3.0
|
|
||||||
go.mongodb.org/mongo-driver v1.3.0 // indirect
|
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect
|
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect
|
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59 // indirect
|
|
||||||
gopkg.in/yaml.v2 v2.2.8 // indirect
|
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
130
vendor/github.com/go-openapi/analysis/go.sum
generated
vendored
130
vendor/github.com/go-openapi/analysis/go.sum
generated
vendored
|
@ -4,52 +4,114 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
|
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
||||||
|
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||||
|
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||||
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
|
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
||||||
|
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
||||||
|
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||||
|
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||||
|
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
||||||
|
github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
||||||
|
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
||||||
|
github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ=
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
|
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
|
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc=
|
github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc=
|
||||||
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
|
github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc=
|
||||||
|
github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4=
|
||||||
|
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
||||||
|
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
|
github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
|
||||||
|
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
|
||||||
|
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
|
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
github.com/go-openapi/loads v0.19.0 h1:wCOBNscACI8L93tt5tvB2zOMkJ098XCw3fP0BY2ybDA=
|
github.com/go-openapi/loads v0.19.0 h1:wCOBNscACI8L93tt5tvB2zOMkJ098XCw3fP0BY2ybDA=
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
|
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
|
||||||
|
github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI=
|
||||||
|
github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY=
|
||||||
|
github.com/go-openapi/loads v0.19.6 h1:6IAtnx22MNSjPocZZ2sV7EjgF6wW5rDC9r6ZkNxjiN8=
|
||||||
|
github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc=
|
||||||
|
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
||||||
|
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
||||||
|
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
||||||
|
github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
|
||||||
|
github.com/go-openapi/runtime v0.19.16 h1:tQMAY5s5BfmmCC31+ufDCsGrr8iO1A8UIdYfDo5ADvs=
|
||||||
|
github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
|
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
|
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
||||||
github.com/go-openapi/spec v0.19.6 h1:rMMMj8cV38KVXK7SFc+I2MWClbEfbK705+j+dyqun5g=
|
|
||||||
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
|
github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
|
github.com/go-openapi/spec v0.19.15 h1:uxh8miNJEfMm8l8ekpY7i39LcORm1xSRtoipEGl1JPk=
|
||||||
|
github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU=
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
|
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
|
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
||||||
github.com/go-openapi/strfmt v0.19.2 h1:clPGfBnJohokno0e+d7hs6Yocrzjlgz6EsQSDncCRnE=
|
github.com/go-openapi/strfmt v0.19.2 h1:clPGfBnJohokno0e+d7hs6Yocrzjlgz6EsQSDncCRnE=
|
||||||
github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
||||||
github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=
|
github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=
|
||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
||||||
github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g=
|
github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g=
|
||||||
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
|
github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM=
|
||||||
|
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
|
github.com/go-openapi/strfmt v0.19.11 h1:0+YvbNh05rmBkgztd6zHp4OCFn7Mtu30bn46NQo2ZRw=
|
||||||
|
github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
|
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s=
|
github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s=
|
||||||
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
|
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
|
github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI=
|
||||||
|
github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M=
|
||||||
|
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
||||||
|
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
||||||
|
github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
|
||||||
|
github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
|
||||||
|
github.com/go-openapi/validate v0.19.12 h1:mPLM/bfbd00PGOCJlU0yJL7IulkZ+q9VjPv7U11RMQQ=
|
||||||
|
github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4=
|
||||||
|
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
||||||
|
@ -80,11 +142,17 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||||
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/uuid v1.0.0/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 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
|
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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
|
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
|
||||||
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
|
@ -97,27 +165,43 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
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/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8=
|
github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8=
|
||||||
github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
|
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||||
|
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
||||||
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
||||||
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.0 h1:7ks8ZkOP5/ujthUsT07rNv+nkLXCQWKNHuwzOAesEks=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||||
|
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/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
||||||
|
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
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.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
|
@ -129,8 +213,12 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
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.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||||
|
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
||||||
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
||||||
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
|
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
|
||||||
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
|
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
|
||||||
|
@ -139,44 +227,69 @@ go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOc
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E=
|
go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E=
|
||||||
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
|
go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE=
|
||||||
|
go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.3 h1:moga+uhicpVshTyaqY9L23E6QqwcHRUv1sqyOsoyOO8=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
||||||
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
|
||||||
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/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-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-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/sys v0.0.0-20180905080454-ebe1bf3edb33/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-20190215142949-d0b11bdaac8a/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-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
|
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
||||||
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
||||||
|
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
|
@ -184,3 +297,12 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
||||||
gopkg.in/yaml.v2 v2.2.8/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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
|
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-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|
2
vendor/github.com/go-openapi/analysis/schema.go
generated
vendored
2
vendor/github.com/go-openapi/analysis/schema.go
generated
vendored
|
@ -218,7 +218,7 @@ func (a *AnalyzedSchema) initializeFlags() {
|
||||||
(a.schema.Items.Schema != nil || len(a.schema.Items.Schemas) > 0)
|
(a.schema.Items.Schema != nil || len(a.schema.Items.Schemas) > 0)
|
||||||
|
|
||||||
a.hasAdditionalProps = a.schema.AdditionalProperties != nil &&
|
a.hasAdditionalProps = a.schema.AdditionalProperties != nil &&
|
||||||
(a.schema.AdditionalProperties != nil || a.schema.AdditionalProperties.Allows)
|
(a.schema.AdditionalProperties.Schema != nil || a.schema.AdditionalProperties.Allows)
|
||||||
|
|
||||||
a.hasAdditionalItems = a.schema.AdditionalItems != nil &&
|
a.hasAdditionalItems = a.schema.AdditionalItems != nil &&
|
||||||
(a.schema.AdditionalItems.Schema != nil || a.schema.AdditionalItems.Allows)
|
(a.schema.AdditionalItems.Schema != nil || a.schema.AdditionalItems.Allows)
|
||||||
|
|
21
vendor/github.com/go-openapi/errors/.golangci.yml
generated
vendored
21
vendor/github.com/go-openapi/errors/.golangci.yml
generated
vendored
|
@ -18,3 +18,24 @@ linters:
|
||||||
- maligned
|
- maligned
|
||||||
- lll
|
- lll
|
||||||
- gochecknoglobals
|
- gochecknoglobals
|
||||||
|
- godox
|
||||||
|
- gocognit
|
||||||
|
- whitespace
|
||||||
|
- wsl
|
||||||
|
- funlen
|
||||||
|
- gochecknoglobals
|
||||||
|
- gochecknoinits
|
||||||
|
- scopelint
|
||||||
|
- wrapcheck
|
||||||
|
- exhaustivestruct
|
||||||
|
- exhaustive
|
||||||
|
- nlreturn
|
||||||
|
- testpackage
|
||||||
|
- gci
|
||||||
|
- gofumpt
|
||||||
|
- goerr113
|
||||||
|
- gomnd
|
||||||
|
- tparallel
|
||||||
|
- nestif
|
||||||
|
- godot
|
||||||
|
- errorlint
|
||||||
|
|
19
vendor/github.com/go-openapi/errors/.travis.yml
generated
vendored
19
vendor/github.com/go-openapi/errors/.travis.yml
generated
vendored
|
@ -1,8 +1,25 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.13.x
|
|
||||||
- 1.14.x
|
- 1.14.x
|
||||||
|
- 1.x
|
||||||
|
arch:
|
||||||
|
- amd64
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# only run fast tests on ppc64le
|
||||||
|
- go: 1.x
|
||||||
|
arch: ppc64le
|
||||||
|
script:
|
||||||
|
- gotestsum -f short-verbose -- ./...
|
||||||
|
|
||||||
|
# include linting job, but only for latest go version and amd64 arch
|
||||||
|
- go: 1.x
|
||||||
|
arch: amd64
|
||||||
|
install:
|
||||||
|
go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
script:
|
||||||
|
- golangci-lint run --new-from-rev master
|
||||||
install:
|
install:
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
||||||
language: go
|
language: go
|
||||||
|
|
20
vendor/github.com/go-openapi/errors/schema.go
generated
vendored
20
vendor/github.com/go-openapi/errors/schema.go
generated
vendored
|
@ -25,6 +25,7 @@ const (
|
||||||
typeFailWithData = "%s in %s must be of type %s: %q"
|
typeFailWithData = "%s in %s must be of type %s: %q"
|
||||||
typeFailWithError = "%s in %s must be of type %s, because: %s"
|
typeFailWithError = "%s in %s must be of type %s, because: %s"
|
||||||
requiredFail = "%s in %s is required"
|
requiredFail = "%s in %s is required"
|
||||||
|
readOnlyFail = "%s in %s is readOnly"
|
||||||
tooLongMessage = "%s in %s should be at most %d chars long"
|
tooLongMessage = "%s in %s should be at most %d chars long"
|
||||||
tooShortMessage = "%s in %s should be at least %d chars long"
|
tooShortMessage = "%s in %s should be at least %d chars long"
|
||||||
patternFail = "%s in %s should match '%s'"
|
patternFail = "%s in %s should match '%s'"
|
||||||
|
@ -41,6 +42,7 @@ const (
|
||||||
typeFailWithDataNoIn = "%s must be of type %s: %q"
|
typeFailWithDataNoIn = "%s must be of type %s: %q"
|
||||||
typeFailWithErrorNoIn = "%s must be of type %s, because: %s"
|
typeFailWithErrorNoIn = "%s must be of type %s, because: %s"
|
||||||
requiredFailNoIn = "%s is required"
|
requiredFailNoIn = "%s is required"
|
||||||
|
readOnlyFailNoIn = "%s is readOnly"
|
||||||
tooLongMessageNoIn = "%s should be at most %d chars long"
|
tooLongMessageNoIn = "%s should be at most %d chars long"
|
||||||
tooShortMessageNoIn = "%s should be at least %d chars long"
|
tooShortMessageNoIn = "%s should be at least %d chars long"
|
||||||
patternFailNoIn = "%s should match '%s'"
|
patternFailNoIn = "%s should match '%s'"
|
||||||
|
@ -91,6 +93,7 @@ const (
|
||||||
UnallowedPropertyCode
|
UnallowedPropertyCode
|
||||||
FailedAllPatternPropsCode
|
FailedAllPatternPropsCode
|
||||||
MultipleOfMustBePositiveCode
|
MultipleOfMustBePositiveCode
|
||||||
|
ReadOnlyFailCode
|
||||||
)
|
)
|
||||||
|
|
||||||
// CompositeError is an error that groups several errors together
|
// CompositeError is an error that groups several errors together
|
||||||
|
@ -501,6 +504,23 @@ func Required(name, in string, value interface{}) *Validation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReadOnly error for when a value is present in request
|
||||||
|
func ReadOnly(name, in string, value interface{}) *Validation {
|
||||||
|
var msg string
|
||||||
|
if in == "" {
|
||||||
|
msg = fmt.Sprintf(readOnlyFailNoIn, name)
|
||||||
|
} else {
|
||||||
|
msg = fmt.Sprintf(readOnlyFail, name, in)
|
||||||
|
}
|
||||||
|
return &Validation{
|
||||||
|
code: ReadOnlyFailCode,
|
||||||
|
Name: name,
|
||||||
|
In: in,
|
||||||
|
Value: value,
|
||||||
|
message: msg,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TooLong error for when a string is too long
|
// TooLong error for when a string is too long
|
||||||
func TooLong(name, in string, max int64, value interface{}) *Validation {
|
func TooLong(name, in string, max int64, value interface{}) *Validation {
|
||||||
var msg string
|
var msg string
|
||||||
|
|
4
vendor/github.com/go-openapi/jsonpointer/.travis.yml
generated
vendored
4
vendor/github.com/go-openapi/jsonpointer/.travis.yml
generated
vendored
|
@ -1,8 +1,8 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.11.x
|
- 1.14.x
|
||||||
- 1.12.x
|
- 1.15.x
|
||||||
install:
|
install:
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
||||||
env:
|
env:
|
||||||
|
|
16
vendor/github.com/go-openapi/jsonpointer/pointer.go
generated
vendored
16
vendor/github.com/go-openapi/jsonpointer/pointer.go
generated
vendored
|
@ -114,9 +114,6 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam
|
||||||
rValue := reflect.Indirect(reflect.ValueOf(node))
|
rValue := reflect.Indirect(reflect.ValueOf(node))
|
||||||
kind := rValue.Kind()
|
kind := rValue.Kind()
|
||||||
|
|
||||||
switch kind {
|
|
||||||
|
|
||||||
case reflect.Struct:
|
|
||||||
if rValue.Type().Implements(jsonPointableType) {
|
if rValue.Type().Implements(jsonPointableType) {
|
||||||
r, err := node.(JSONPointable).JSONLookup(decodedToken)
|
r, err := node.(JSONPointable).JSONLookup(decodedToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -124,6 +121,9 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam
|
||||||
}
|
}
|
||||||
return r, kind, nil
|
return r, kind, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch kind {
|
||||||
|
case reflect.Struct:
|
||||||
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, kind, fmt.Errorf("object has no field %q", decodedToken)
|
return nil, kind, fmt.Errorf("object has no field %q", decodedToken)
|
||||||
|
@ -161,9 +161,7 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam
|
||||||
|
|
||||||
func setSingleImpl(node, data interface{}, decodedToken string, nameProvider *swag.NameProvider) error {
|
func setSingleImpl(node, data interface{}, decodedToken string, nameProvider *swag.NameProvider) error {
|
||||||
rValue := reflect.Indirect(reflect.ValueOf(node))
|
rValue := reflect.Indirect(reflect.ValueOf(node))
|
||||||
switch rValue.Kind() {
|
|
||||||
|
|
||||||
case reflect.Struct:
|
|
||||||
if ns, ok := node.(JSONSetable); ok { // pointer impl
|
if ns, ok := node.(JSONSetable); ok { // pointer impl
|
||||||
return ns.JSONSet(decodedToken, data)
|
return ns.JSONSet(decodedToken, data)
|
||||||
}
|
}
|
||||||
|
@ -172,6 +170,8 @@ func setSingleImpl(node, data interface{}, decodedToken string, nameProvider *sw
|
||||||
return node.(JSONSetable).JSONSet(decodedToken, data)
|
return node.(JSONSetable).JSONSet(decodedToken, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch rValue.Kind() {
|
||||||
|
case reflect.Struct:
|
||||||
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("object has no field %q", decodedToken)
|
return fmt.Errorf("object has no field %q", decodedToken)
|
||||||
|
@ -270,9 +270,6 @@ func (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) e
|
||||||
rValue := reflect.Indirect(reflect.ValueOf(node))
|
rValue := reflect.Indirect(reflect.ValueOf(node))
|
||||||
kind := rValue.Kind()
|
kind := rValue.Kind()
|
||||||
|
|
||||||
switch kind {
|
|
||||||
|
|
||||||
case reflect.Struct:
|
|
||||||
if rValue.Type().Implements(jsonPointableType) {
|
if rValue.Type().Implements(jsonPointableType) {
|
||||||
r, err := node.(JSONPointable).JSONLookup(decodedToken)
|
r, err := node.(JSONPointable).JSONLookup(decodedToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -286,6 +283,9 @@ func (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) e
|
||||||
node = r
|
node = r
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch kind {
|
||||||
|
case reflect.Struct:
|
||||||
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("object has no field %q", decodedToken)
|
return fmt.Errorf("object has no field %q", decodedToken)
|
||||||
|
|
41
vendor/github.com/go-openapi/jsonreference/.golangci.yml
generated
vendored
Normal file
41
vendor/github.com/go-openapi/jsonreference/.golangci.yml
generated
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
linters-settings:
|
||||||
|
govet:
|
||||||
|
check-shadowing: true
|
||||||
|
golint:
|
||||||
|
min-confidence: 0
|
||||||
|
gocyclo:
|
||||||
|
min-complexity: 30
|
||||||
|
maligned:
|
||||||
|
suggest-new: true
|
||||||
|
dupl:
|
||||||
|
threshold: 100
|
||||||
|
goconst:
|
||||||
|
min-len: 2
|
||||||
|
min-occurrences: 4
|
||||||
|
linters:
|
||||||
|
enable-all: true
|
||||||
|
disable:
|
||||||
|
- maligned
|
||||||
|
- lll
|
||||||
|
- gochecknoglobals
|
||||||
|
- godox
|
||||||
|
- gocognit
|
||||||
|
- whitespace
|
||||||
|
- wsl
|
||||||
|
- funlen
|
||||||
|
- gochecknoglobals
|
||||||
|
- gochecknoinits
|
||||||
|
- scopelint
|
||||||
|
- wrapcheck
|
||||||
|
- exhaustivestruct
|
||||||
|
- exhaustive
|
||||||
|
- nlreturn
|
||||||
|
- testpackage
|
||||||
|
- gci
|
||||||
|
- gofumpt
|
||||||
|
- goerr113
|
||||||
|
- gomnd
|
||||||
|
- tparallel
|
||||||
|
- nestif
|
||||||
|
- godot
|
||||||
|
- errorlint
|
15
vendor/github.com/go-openapi/jsonreference/.travis.yml
generated
vendored
15
vendor/github.com/go-openapi/jsonreference/.travis.yml
generated
vendored
|
@ -1,10 +1,19 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.11.x
|
- 1.14.x
|
||||||
- 1.12.x
|
- 1.x
|
||||||
install:
|
install:
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
- go get gotest.tools/gotestsum
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# include linting job, but only for latest go version and amd64 arch
|
||||||
|
- go: 1.x
|
||||||
|
arch: amd64
|
||||||
|
install:
|
||||||
|
go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
script:
|
||||||
|
- golangci-lint run --new-from-rev master
|
||||||
env:
|
env:
|
||||||
- GO111MODULE=on
|
- GO111MODULE=on
|
||||||
language: go
|
language: go
|
||||||
|
|
22
vendor/github.com/go-openapi/loads/.golangci.yml
generated
vendored
22
vendor/github.com/go-openapi/loads/.golangci.yml
generated
vendored
|
@ -20,3 +20,25 @@ linters:
|
||||||
- lll
|
- lll
|
||||||
- gochecknoglobals
|
- gochecknoglobals
|
||||||
- gochecknoinits
|
- gochecknoinits
|
||||||
|
- godox
|
||||||
|
- gocognit
|
||||||
|
- whitespace
|
||||||
|
- wsl
|
||||||
|
- funlen
|
||||||
|
- gochecknoglobals
|
||||||
|
- gochecknoinits
|
||||||
|
- scopelint
|
||||||
|
- wrapcheck
|
||||||
|
- exhaustivestruct
|
||||||
|
- exhaustive
|
||||||
|
- nlreturn
|
||||||
|
- testpackage
|
||||||
|
- gci
|
||||||
|
- gofumpt
|
||||||
|
- goerr113
|
||||||
|
- gomnd
|
||||||
|
- tparallel
|
||||||
|
- nestif
|
||||||
|
- godot
|
||||||
|
- errorlint
|
||||||
|
- paralleltest
|
||||||
|
|
13
vendor/github.com/go-openapi/loads/.travis.yml
generated
vendored
13
vendor/github.com/go-openapi/loads/.travis.yml
generated
vendored
|
@ -1,11 +1,20 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.13.x
|
|
||||||
- 1.14.x
|
- 1.14.x
|
||||||
|
- 1.x
|
||||||
install:
|
install:
|
||||||
- go get -u gotest.tools/gotestsum
|
- go get gotest.tools/gotestsum
|
||||||
language: go
|
language: go
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# include linting job, but only for latest go version and amd64 arch
|
||||||
|
- go: 1.x
|
||||||
|
arch: amd64
|
||||||
|
install:
|
||||||
|
go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
script:
|
||||||
|
- golangci-lint run --new-from-rev master
|
||||||
notifications:
|
notifications:
|
||||||
slack:
|
slack:
|
||||||
secure: OxkPwVp35qBTUilgWC8xykSj+sGMcj0h8IIOKD+Rflx2schZVlFfdYdyVBM+s9OqeOfvtuvnR9v1Ye2rPKAvcjWdC4LpRGUsgmItZaI6Um8Aj6+K9udCw5qrtZVfOVmRu8LieH//XznWWKdOultUuniW0MLqw5+II87Gd00RWbCGi0hk0PykHe7uK+PDA2BEbqyZ2WKKYCvfB3j+0nrFOHScXqnh0V05l2E83J4+Sgy1fsPy+1WdX58ZlNBG333ibaC1FS79XvKSmTgKRkx3+YBo97u6ZtUmJa5WZjf2OdLG3KIckGWAv6R5xgxeU31N0Ng8L332w/Edpp2O/M2bZwdnKJ8hJQikXIAQbICbr+lTDzsoNzMdEIYcHpJ5hjPbiUl3Bmd+Jnsjf5McgAZDiWIfpCKZ29tPCEkVwRsOCqkyPRMNMzHHmoja495P5jR+ODS7+J8RFg5xgcnOgpP9D4Wlhztlf5WyZMpkLxTUD+bZq2SRf50HfHFXTkfq22zPl3d1eq0yrLwh/Z/fWKkfb6SyysROL8y6s8u3dpFX1YHSg0BR6i913h4aoZw9B2BG27cafLLTwKYsp2dFo1PWl4O6u9giFJIeqwloZHLKKrwh0cBFhB7RH0I58asxkZpCH6uWjJierahmHe7iS+E6i+9oCHkOZ59hmCYNimIs3hM=
|
secure: OxkPwVp35qBTUilgWC8xykSj+sGMcj0h8IIOKD+Rflx2schZVlFfdYdyVBM+s9OqeOfvtuvnR9v1Ye2rPKAvcjWdC4LpRGUsgmItZaI6Um8Aj6+K9udCw5qrtZVfOVmRu8LieH//XznWWKdOultUuniW0MLqw5+II87Gd00RWbCGi0hk0PykHe7uK+PDA2BEbqyZ2WKKYCvfB3j+0nrFOHScXqnh0V05l2E83J4+Sgy1fsPy+1WdX58ZlNBG333ibaC1FS79XvKSmTgKRkx3+YBo97u6ZtUmJa5WZjf2OdLG3KIckGWAv6R5xgxeU31N0Ng8L332w/Edpp2O/M2bZwdnKJ8hJQikXIAQbICbr+lTDzsoNzMdEIYcHpJ5hjPbiUl3Bmd+Jnsjf5McgAZDiWIfpCKZ29tPCEkVwRsOCqkyPRMNMzHHmoja495P5jR+ODS7+J8RFg5xgcnOgpP9D4Wlhztlf5WyZMpkLxTUD+bZq2SRf50HfHFXTkfq22zPl3d1eq0yrLwh/Z/fWKkfb6SyysROL8y6s8u3dpFX1YHSg0BR6i913h4aoZw9B2BG27cafLLTwKYsp2dFo1PWl4O6u9giFJIeqwloZHLKKrwh0cBFhB7RH0I58asxkZpCH6uWjJierahmHe7iS+E6i+9oCHkOZ59hmCYNimIs3hM=
|
||||||
|
|
1
vendor/github.com/go-openapi/loads/README.md
generated
vendored
1
vendor/github.com/go-openapi/loads/README.md
generated
vendored
|
@ -1,7 +1,6 @@
|
||||||
# Loads OAI specs [![Build Status](https://travis-ci.org/go-openapi/loads.svg?branch=master)](https://travis-ci.org/go-openapi/loads) [![codecov](https://codecov.io/gh/go-openapi/loads/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/loads) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)
|
# Loads OAI specs [![Build Status](https://travis-ci.org/go-openapi/loads.svg?branch=master)](https://travis-ci.org/go-openapi/loads) [![codecov](https://codecov.io/gh/go-openapi/loads/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/loads) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)
|
||||||
|
|
||||||
[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/loads/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/loads?status.svg)](http://godoc.org/github.com/go-openapi/loads)
|
[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/loads/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/loads?status.svg)](http://godoc.org/github.com/go-openapi/loads)
|
||||||
[![GolangCI](https://golangci.com/badges/github.com/go-openapi/loads.svg)](https://golangci.com)
|
|
||||||
[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/loads)](https://goreportcard.com/report/github.com/go-openapi/loads)
|
[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/loads)](https://goreportcard.com/report/github.com/go-openapi/loads)
|
||||||
|
|
||||||
Loading of OAI specification documents from local or remote locations. Supports JSON and YAML documents.
|
Loading of OAI specification documents from local or remote locations. Supports JSON and YAML documents.
|
||||||
|
|
14
vendor/github.com/go-openapi/loads/go.mod
generated
vendored
14
vendor/github.com/go-openapi/loads/go.mod
generated
vendored
|
@ -1,11 +1,15 @@
|
||||||
module github.com/go-openapi/loads
|
module github.com/go-openapi/loads
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/go-openapi/analysis v0.19.10
|
github.com/go-openapi/analysis v0.19.16
|
||||||
github.com/go-openapi/spec v0.19.6
|
github.com/go-openapi/spec v0.20.0
|
||||||
github.com/go-openapi/swag v0.19.7
|
github.com/go-openapi/strfmt v0.19.11
|
||||||
github.com/stretchr/testify v1.3.0
|
github.com/go-openapi/swag v0.19.12
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
github.com/go-openapi/validate v0.19.15
|
||||||
|
github.com/stretchr/testify v1.6.1
|
||||||
|
go.mongodb.org/mongo-driver v1.4.4 // indirect
|
||||||
|
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb // indirect
|
||||||
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
146
vendor/github.com/go-openapi/loads/go.sum
generated
vendored
146
vendor/github.com/go-openapi/loads/go.sum
generated
vendored
|
@ -4,47 +4,121 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
|
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
||||||
|
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg=
|
||||||
|
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||||
|
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||||
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
|
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
||||||
|
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
||||||
|
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||||
|
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||||
|
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
||||||
|
github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
||||||
|
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
||||||
github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE=
|
github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE=
|
||||||
github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ=
|
github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ=
|
||||||
|
github.com/go-openapi/analysis v0.19.16 h1:Ub9e++M8sDwtHD+S587TYi+6ANBG1NRYGZDihqk0SaY=
|
||||||
|
github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk=
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
|
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
||||||
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
|
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc=
|
github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc=
|
||||||
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
||||||
|
github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.7 h1:Lcq+o0mSwCLKACMxZhreVHigB9ebghJ/lrmeaqASbjo=
|
||||||
|
github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc=
|
||||||
|
github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
|
github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4=
|
||||||
|
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
||||||
|
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
|
github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
|
||||||
|
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
|
||||||
|
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
|
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
||||||
|
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
|
||||||
|
github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI=
|
||||||
|
github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY=
|
||||||
|
github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc=
|
||||||
|
github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc=
|
||||||
|
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
||||||
|
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
||||||
|
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
||||||
|
github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
|
||||||
|
github.com/go-openapi/runtime v0.19.16 h1:tQMAY5s5BfmmCC31+ufDCsGrr8iO1A8UIdYfDo5ADvs=
|
||||||
|
github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
|
||||||
|
github.com/go-openapi/runtime v0.19.24 h1:TqagMVlRAOTwllE/7hNKx6rQ10O6T8ZzeJdMjSTKaD4=
|
||||||
|
github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
github.com/go-openapi/spec v0.19.6 h1:rMMMj8cV38KVXK7SFc+I2MWClbEfbK705+j+dyqun5g=
|
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
||||||
|
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
||||||
|
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
||||||
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
|
github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
||||||
|
github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU=
|
||||||
|
github.com/go-openapi/spec v0.20.0 h1:HGLc8AJ7ynOxwv0Lq4TsnwLsWMawHAYiJIFzbcML86I=
|
||||||
|
github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU=
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
|
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
||||||
|
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
||||||
|
github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
||||||
|
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
||||||
github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g=
|
github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g=
|
||||||
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
|
github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM=
|
||||||
|
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
||||||
|
github.com/go-openapi/strfmt v0.19.11 h1:0+YvbNh05rmBkgztd6zHp4OCFn7Mtu30bn46NQo2ZRw=
|
||||||
|
github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc=
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
|
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s=
|
github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s=
|
||||||
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
|
github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE=
|
||||||
|
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||||
|
github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI=
|
||||||
|
github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M=
|
||||||
|
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
||||||
|
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
||||||
|
github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
|
||||||
|
github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
|
||||||
|
github.com/go-openapi/validate v0.19.12 h1:mPLM/bfbd00PGOCJlU0yJL7IulkZ+q9VjPv7U11RMQQ=
|
||||||
|
github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4=
|
||||||
|
github.com/go-openapi/validate v0.19.15 h1:oUHZO8jD7p5oRLANlXF0U8ic9ePBUkDQyRZdN0EhL6M=
|
||||||
|
github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI=
|
||||||
|
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
||||||
|
@ -75,11 +149,17 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||||
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/uuid v1.0.0/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 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
|
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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
|
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
|
||||||
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
|
@ -92,27 +172,43 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
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/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8=
|
github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8=
|
||||||
github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
|
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||||
|
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
||||||
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
||||||
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
|
||||||
|
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.0 h1:7ks8ZkOP5/ujthUsT07rNv+nkLXCQWKNHuwzOAesEks=
|
||||||
|
github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||||
|
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/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
||||||
|
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
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.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
|
@ -120,56 +216,91 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
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.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||||
|
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
||||||
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
||||||
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
|
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
|
||||||
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
|
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
|
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E=
|
go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E=
|
||||||
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
|
go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE=
|
||||||
|
go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.3 h1:moga+uhicpVshTyaqY9L23E6QqwcHRUv1sqyOsoyOO8=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs=
|
||||||
|
go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc=
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
||||||
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
|
||||||
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
|
||||||
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
|
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
|
||||||
|
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/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-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-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/sys v0.0.0-20180905080454-ebe1bf3edb33/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-20190215142949-d0b11bdaac8a/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-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
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 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
||||||
|
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
|
@ -178,3 +309,12 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
||||||
gopkg.in/yaml.v2 v2.2.4/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.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
||||||
gopkg.in/yaml.v2 v2.2.8/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 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
|
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-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|
137
vendor/github.com/go-openapi/loads/loaders.go
generated
vendored
Normal file
137
vendor/github.com/go-openapi/loads/loaders.go
generated
vendored
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
package loads
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"net/url"
|
||||||
|
|
||||||
|
"github.com/go-openapi/spec"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// Default chain of loaders, defined at the package level.
|
||||||
|
//
|
||||||
|
// By default this matches json and yaml documents.
|
||||||
|
//
|
||||||
|
// May be altered with AddLoader().
|
||||||
|
loaders *loader
|
||||||
|
|
||||||
|
// Default loader. This expects json documents over local or http/https (no matching).
|
||||||
|
defaultLoader *loader
|
||||||
|
|
||||||
|
defaultMatcher DocMatcher
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
defaultMatcher = func(_ string) bool { return true }
|
||||||
|
|
||||||
|
defaultLoader = &loader{
|
||||||
|
DocLoaderWithMatch: DocLoaderWithMatch{
|
||||||
|
Match: defaultMatcher,
|
||||||
|
Fn: JSONDoc,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
loaders = defaultLoader
|
||||||
|
|
||||||
|
AddLoader(swag.YAMLMatcher, swag.YAMLDoc)
|
||||||
|
|
||||||
|
// sets the global default loader for go-openapi/spec
|
||||||
|
spec.PathLoader = loaders.Load
|
||||||
|
}
|
||||||
|
|
||||||
|
// DocLoader represents a doc loader type
|
||||||
|
type DocLoader func(string) (json.RawMessage, error)
|
||||||
|
|
||||||
|
// DocMatcher represents a predicate to check if a loader matches
|
||||||
|
type DocMatcher func(string) bool
|
||||||
|
|
||||||
|
// DocLoaderWithMatch describes a loading function for a given extension match.
|
||||||
|
type DocLoaderWithMatch struct {
|
||||||
|
Fn DocLoader
|
||||||
|
Match DocMatcher
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDocLoaderWithMatch builds a DocLoaderWithMatch to be used in load options
|
||||||
|
func NewDocLoaderWithMatch(fn DocLoader, matcher DocMatcher) DocLoaderWithMatch {
|
||||||
|
return DocLoaderWithMatch{
|
||||||
|
Fn: fn,
|
||||||
|
Match: matcher,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type loader struct {
|
||||||
|
DocLoaderWithMatch
|
||||||
|
Next *loader
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithHead adds a loader at the head of the current stack
|
||||||
|
func (l *loader) WithHead(head *loader) *loader {
|
||||||
|
if head == nil {
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
head.Next = l
|
||||||
|
return head
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithNext adds a loader at the trail of the current stack
|
||||||
|
func (l *loader) WithNext(next *loader) *loader {
|
||||||
|
l.Next = next
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load the raw document from path
|
||||||
|
func (l *loader) Load(path string) (json.RawMessage, error) {
|
||||||
|
specURL, erp := url.Parse(path)
|
||||||
|
if erp != nil {
|
||||||
|
return nil, erp
|
||||||
|
}
|
||||||
|
|
||||||
|
var lastErr error = errors.New("no loader matched") // default error if no match was found
|
||||||
|
for ldr := l; ldr != nil; ldr = ldr.Next {
|
||||||
|
if ldr.Match != nil && !ldr.Match(specURL.Path) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// try then move to next one if there is an error
|
||||||
|
b, err := ldr.Fn(path)
|
||||||
|
if err == nil {
|
||||||
|
return b, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
lastErr = err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, lastErr
|
||||||
|
}
|
||||||
|
|
||||||
|
// JSONDoc loads a json document from either a file or a remote url
|
||||||
|
func JSONDoc(path string) (json.RawMessage, error) {
|
||||||
|
data, err := swag.LoadFromFileOrHTTP(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return json.RawMessage(data), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddLoader for a document, executed before other previously set loaders.
|
||||||
|
//
|
||||||
|
// This sets the configuration at the package level.
|
||||||
|
//
|
||||||
|
// The default initial loader at the package level assumes a JSON document.
|
||||||
|
//
|
||||||
|
// NOTE:
|
||||||
|
// * this updates the default loader used by github.com/go-openapi/spec
|
||||||
|
// * since this sets package level globals, you shouln't call this concurrently
|
||||||
|
//
|
||||||
|
func AddLoader(predicate DocMatcher, load DocLoader) {
|
||||||
|
loaders = loaders.WithHead(&loader{
|
||||||
|
DocLoaderWithMatch: DocLoaderWithMatch{
|
||||||
|
Match: predicate,
|
||||||
|
Fn: load,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
// sets the global default loader for go-openapi/spec
|
||||||
|
spec.PathLoader = loaders.Load
|
||||||
|
}
|
60
vendor/github.com/go-openapi/loads/options.go
generated
vendored
Normal file
60
vendor/github.com/go-openapi/loads/options.go
generated
vendored
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
package loads
|
||||||
|
|
||||||
|
type options struct {
|
||||||
|
loader *loader
|
||||||
|
}
|
||||||
|
|
||||||
|
func defaultOptions() *options {
|
||||||
|
return &options{
|
||||||
|
loader: loaders,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func loaderFromOptions(options []LoaderOption) *loader {
|
||||||
|
opts := defaultOptions()
|
||||||
|
for _, apply := range options {
|
||||||
|
apply(opts)
|
||||||
|
}
|
||||||
|
return opts.loader
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoaderOption allows to fine-tune the spec loader behavior
|
||||||
|
type LoaderOption func(*options)
|
||||||
|
|
||||||
|
// WithDocLoader sets a custom loader for loading specs
|
||||||
|
func WithDocLoader(l DocLoader) LoaderOption {
|
||||||
|
return func(opt *options) {
|
||||||
|
if l == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
opt.loader = &loader{
|
||||||
|
DocLoaderWithMatch: DocLoaderWithMatch{
|
||||||
|
Fn: l,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDocLoaderMatches sets a chain of custom loaders for loading specs
|
||||||
|
// for different extension matches.
|
||||||
|
//
|
||||||
|
// Loaders are executed in the order of provided DocLoaderWithMatch'es.
|
||||||
|
func WithDocLoaderMatches(l ...DocLoaderWithMatch) LoaderOption {
|
||||||
|
return func(opt *options) {
|
||||||
|
var final, prev *loader
|
||||||
|
for _, ldr := range l {
|
||||||
|
if ldr.Fn == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if prev == nil {
|
||||||
|
final = &loader{DocLoaderWithMatch: ldr}
|
||||||
|
prev = final
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
prev = prev.WithNext(&loader{DocLoaderWithMatch: ldr})
|
||||||
|
}
|
||||||
|
opt.loader = final
|
||||||
|
}
|
||||||
|
}
|
166
vendor/github.com/go-openapi/loads/spec.go
generated
vendored
166
vendor/github.com/go-openapi/loads/spec.go
generated
vendored
|
@ -19,69 +19,16 @@ import (
|
||||||
"encoding/gob"
|
"encoding/gob"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
|
||||||
|
|
||||||
"github.com/go-openapi/analysis"
|
"github.com/go-openapi/analysis"
|
||||||
"github.com/go-openapi/spec"
|
"github.com/go-openapi/spec"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
|
|
||||||
// JSONDoc loads a json document from either a file or a remote url
|
|
||||||
func JSONDoc(path string) (json.RawMessage, error) {
|
|
||||||
data, err := swag.LoadFromFileOrHTTP(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return json.RawMessage(data), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DocLoader represents a doc loader type
|
|
||||||
type DocLoader func(string) (json.RawMessage, error)
|
|
||||||
|
|
||||||
// DocMatcher represents a predicate to check if a loader matches
|
|
||||||
type DocMatcher func(string) bool
|
|
||||||
|
|
||||||
var (
|
|
||||||
loaders *loader
|
|
||||||
defaultLoader *loader
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
defaultLoader = &loader{Match: func(_ string) bool { return true }, Fn: JSONDoc}
|
|
||||||
loaders = defaultLoader
|
|
||||||
spec.PathLoader = loaders.Fn
|
|
||||||
AddLoader(swag.YAMLMatcher, swag.YAMLDoc)
|
|
||||||
|
|
||||||
gob.Register(map[string]interface{}{})
|
gob.Register(map[string]interface{}{})
|
||||||
gob.Register([]interface{}{})
|
gob.Register([]interface{}{})
|
||||||
//gob.Register(spec.Refable{})
|
// gob.Register(spec.Refable{})
|
||||||
}
|
|
||||||
|
|
||||||
// AddLoader for a document
|
|
||||||
func AddLoader(predicate DocMatcher, load DocLoader) {
|
|
||||||
prev := loaders
|
|
||||||
loaders = &loader{
|
|
||||||
Match: predicate,
|
|
||||||
Fn: load,
|
|
||||||
Next: prev,
|
|
||||||
}
|
|
||||||
spec.PathLoader = loaders.Fn
|
|
||||||
}
|
|
||||||
|
|
||||||
type loader struct {
|
|
||||||
Fn DocLoader
|
|
||||||
Match DocMatcher
|
|
||||||
Next *loader
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONSpec loads a spec from a json document
|
|
||||||
func JSONSpec(path string) (*Document, error) {
|
|
||||||
data, err := JSONDoc(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
// convert to json
|
|
||||||
return Analyzed(data, "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document represents a swagger spec document
|
// Document represents a swagger spec document
|
||||||
|
@ -93,10 +40,21 @@ type Document struct {
|
||||||
origSpec *spec.Swagger
|
origSpec *spec.Swagger
|
||||||
schema *spec.Schema
|
schema *spec.Schema
|
||||||
raw json.RawMessage
|
raw json.RawMessage
|
||||||
|
pathLoader *loader
|
||||||
|
}
|
||||||
|
|
||||||
|
// JSONSpec loads a spec from a json document
|
||||||
|
func JSONSpec(path string, options ...LoaderOption) (*Document, error) {
|
||||||
|
data, err := JSONDoc(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
// convert to json
|
||||||
|
return Analyzed(data, "", options...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Embedded returns a Document based on embedded specs. No analysis is required
|
// Embedded returns a Document based on embedded specs. No analysis is required
|
||||||
func Embedded(orig, flat json.RawMessage) (*Document, error) {
|
func Embedded(orig, flat json.RawMessage, options ...LoaderOption) (*Document, error) {
|
||||||
var origSpec, flatSpec spec.Swagger
|
var origSpec, flatSpec spec.Swagger
|
||||||
if err := json.Unmarshal(orig, &origSpec); err != nil {
|
if err := json.Unmarshal(orig, &origSpec); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -108,42 +66,23 @@ func Embedded(orig, flat json.RawMessage) (*Document, error) {
|
||||||
raw: orig,
|
raw: orig,
|
||||||
origSpec: &origSpec,
|
origSpec: &origSpec,
|
||||||
spec: &flatSpec,
|
spec: &flatSpec,
|
||||||
|
pathLoader: loaderFromOptions(options),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spec loads a new spec document
|
// Spec loads a new spec document from a local or remote path
|
||||||
func Spec(path string) (*Document, error) {
|
func Spec(path string, options ...LoaderOption) (*Document, error) {
|
||||||
specURL, err := url.Parse(path)
|
|
||||||
if err != nil {
|
b, err := loaderFromOptions(options).Load(path)
|
||||||
return nil, err
|
if err != nil {
|
||||||
}
|
return nil, err
|
||||||
var lastErr error
|
}
|
||||||
for l := loaders.Next; l != nil; l = l.Next {
|
|
||||||
if loaders.Match(specURL.Path) {
|
document, err := Analyzed(b, "", options...)
|
||||||
b, err2 := loaders.Fn(path)
|
|
||||||
if err2 != nil {
|
|
||||||
lastErr = err2
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
doc, err3 := Analyzed(b, "")
|
|
||||||
if err3 != nil {
|
|
||||||
return nil, err3
|
|
||||||
}
|
|
||||||
if doc != nil {
|
|
||||||
doc.specFilePath = path
|
|
||||||
}
|
|
||||||
return doc, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if lastErr != nil {
|
|
||||||
return nil, lastErr
|
|
||||||
}
|
|
||||||
b, err := defaultLoader.Fn(path)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
document, err := Analyzed(b, "")
|
|
||||||
if document != nil {
|
if document != nil {
|
||||||
document.specFilePath = path
|
document.specFilePath = path
|
||||||
}
|
}
|
||||||
|
@ -151,8 +90,8 @@ func Spec(path string) (*Document, error) {
|
||||||
return document, err
|
return document, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Analyzed creates a new analyzed spec document
|
// Analyzed creates a new analyzed spec document for a root json.RawMessage.
|
||||||
func Analyzed(data json.RawMessage, version string) (*Document, error) {
|
func Analyzed(data json.RawMessage, version string, options ...LoaderOption) (*Document, error) {
|
||||||
if version == "" {
|
if version == "" {
|
||||||
version = "2.0"
|
version = "2.0"
|
||||||
}
|
}
|
||||||
|
@ -160,24 +99,13 @@ func Analyzed(data json.RawMessage, version string) (*Document, error) {
|
||||||
return nil, fmt.Errorf("spec version %q is not supported", version)
|
return nil, fmt.Errorf("spec version %q is not supported", version)
|
||||||
}
|
}
|
||||||
|
|
||||||
raw := data
|
raw, err := trimData(data) // trim blanks, then convert yaml docs into json
|
||||||
trimmed := bytes.TrimSpace(data)
|
|
||||||
if len(trimmed) > 0 {
|
|
||||||
if trimmed[0] != '{' && trimmed[0] != '[' {
|
|
||||||
yml, err := swag.BytesToYAMLDoc(trimmed)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("analyzed: %v", err)
|
return nil, err
|
||||||
}
|
|
||||||
d, err := swag.YAMLToJSON(yml)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("analyzed: %v", err)
|
|
||||||
}
|
|
||||||
raw = d
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
swspec := new(spec.Swagger)
|
swspec := new(spec.Swagger)
|
||||||
if err := json.Unmarshal(raw, swspec); err != nil {
|
if err = json.Unmarshal(raw, swspec); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +120,33 @@ func Analyzed(data json.RawMessage, version string) (*Document, error) {
|
||||||
spec: swspec,
|
spec: swspec,
|
||||||
raw: raw,
|
raw: raw,
|
||||||
origSpec: origsqspec,
|
origSpec: origsqspec,
|
||||||
|
pathLoader: loaderFromOptions(options),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return d, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func trimData(in json.RawMessage) (json.RawMessage, error) {
|
||||||
|
trimmed := bytes.TrimSpace(in)
|
||||||
|
if len(trimmed) == 0 {
|
||||||
|
return in, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if trimmed[0] == '{' || trimmed[0] == '[' {
|
||||||
|
return trimmed, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// assume yaml doc: convert it to json
|
||||||
|
yml, err := swag.BytesToYAMLDoc(trimmed)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("analyzed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
d, err := swag.YAMLToJSON(yml)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("analyzed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return d, nil
|
return d, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,6 +166,16 @@ func (d *Document) Expanded(options ...*spec.ExpandOptions) (*Document, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if expandOptions.PathLoader == nil {
|
||||||
|
if d.pathLoader != nil {
|
||||||
|
// use loader from Document options
|
||||||
|
expandOptions.PathLoader = d.pathLoader.Load
|
||||||
|
} else {
|
||||||
|
// use package level loader
|
||||||
|
expandOptions.PathLoader = loaders.Load
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := spec.ExpandSpec(swspec, expandOptions); err != nil {
|
if err := spec.ExpandSpec(swspec, expandOptions); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -262,7 +226,7 @@ func (d *Document) OrigSpec() *spec.Swagger {
|
||||||
return d.origSpec
|
return d.origSpec
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResetDefinitions gives a shallow copy with the models reset
|
// ResetDefinitions gives a shallow copy with the models reset to the original spec
|
||||||
func (d *Document) ResetDefinitions() *Document {
|
func (d *Document) ResetDefinitions() *Document {
|
||||||
defs := make(map[string]spec.Schema, len(d.origSpec.Definitions))
|
defs := make(map[string]spec.Schema, len(d.origSpec.Definitions))
|
||||||
for k, v := range d.origSpec.Definitions {
|
for k, v := range d.origSpec.Definitions {
|
||||||
|
|
42
vendor/github.com/go-openapi/runtime/.golangci.yml
generated
vendored
Normal file
42
vendor/github.com/go-openapi/runtime/.golangci.yml
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
linters-settings:
|
||||||
|
govet:
|
||||||
|
check-shadowing: true
|
||||||
|
golint:
|
||||||
|
min-confidence: 0
|
||||||
|
gocyclo:
|
||||||
|
min-complexity: 30
|
||||||
|
maligned:
|
||||||
|
suggest-new: true
|
||||||
|
dupl:
|
||||||
|
threshold: 100
|
||||||
|
goconst:
|
||||||
|
min-len: 2
|
||||||
|
min-occurrences: 4
|
||||||
|
linters:
|
||||||
|
enable-all: true
|
||||||
|
disable:
|
||||||
|
- maligned
|
||||||
|
- lll
|
||||||
|
- gochecknoglobals
|
||||||
|
- godox
|
||||||
|
- gocognit
|
||||||
|
- whitespace
|
||||||
|
- wsl
|
||||||
|
- funlen
|
||||||
|
- gochecknoglobals
|
||||||
|
- gochecknoinits
|
||||||
|
- scopelint
|
||||||
|
- wrapcheck
|
||||||
|
- exhaustivestruct
|
||||||
|
- exhaustive
|
||||||
|
- nlreturn
|
||||||
|
- testpackage
|
||||||
|
- gci
|
||||||
|
- gofumpt
|
||||||
|
- goerr113
|
||||||
|
- gomnd
|
||||||
|
- tparallel
|
||||||
|
- nestif
|
||||||
|
- godot
|
||||||
|
- errorlint
|
||||||
|
- noctx
|
11
vendor/github.com/go-openapi/runtime/.travis.yml
generated
vendored
11
vendor/github.com/go-openapi/runtime/.travis.yml
generated
vendored
|
@ -1,10 +1,19 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.13.x
|
|
||||||
- 1.14.x
|
- 1.14.x
|
||||||
|
- 1.x
|
||||||
install:
|
install:
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# include linting job, but only for latest go version and amd64 arch
|
||||||
|
- go: 1.x
|
||||||
|
arch: amd64
|
||||||
|
install:
|
||||||
|
go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
script:
|
||||||
|
- golangci-lint run --new-from-rev master
|
||||||
language: go
|
language: go
|
||||||
notifications:
|
notifications:
|
||||||
slack:
|
slack:
|
||||||
|
|
50
vendor/github.com/go-openapi/runtime/client_request.go
generated
vendored
50
vendor/github.com/go-openapi/runtime/client_request.go
generated
vendored
|
@ -101,3 +101,53 @@ func (n *namedReadCloser) Read(p []byte) (int, error) {
|
||||||
func (n *namedReadCloser) Name() string {
|
func (n *namedReadCloser) Name() string {
|
||||||
return n.name
|
return n.name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TestClientRequest struct {
|
||||||
|
Headers http.Header
|
||||||
|
Body interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetHeaderParam(name string, values ...string) error {
|
||||||
|
if t.Headers == nil {
|
||||||
|
t.Headers = make(http.Header)
|
||||||
|
}
|
||||||
|
t.Headers.Set(name, values[0])
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetQueryParam(_ string, _ ...string) error { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetFormParam(_ string, _ ...string) error { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetPathParam(_ string, _ string) error { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetFileParam(_ string, _ ...NamedReadCloser) error { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetBodyParam(body interface{}) error {
|
||||||
|
t.Body = body
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) SetTimeout(time.Duration) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetQueryParams() url.Values { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetMethod() string { return "" }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetPath() string { return "" }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetBody() []byte { return nil }
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetBodyParam() interface{} {
|
||||||
|
return t.Body
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetFileParam() map[string][]NamedReadCloser {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *TestClientRequest) GetHeaderParams() http.Header {
|
||||||
|
return t.Headers
|
||||||
|
}
|
||||||
|
|
1
vendor/github.com/go-openapi/runtime/go.mod
generated
vendored
1
vendor/github.com/go-openapi/runtime/go.mod
generated
vendored
|
@ -9,6 +9,7 @@ require (
|
||||||
github.com/go-openapi/strfmt v0.19.5
|
github.com/go-openapi/strfmt v0.19.5
|
||||||
github.com/go-openapi/swag v0.19.9
|
github.com/go-openapi/swag v0.19.9
|
||||||
github.com/go-openapi/validate v0.19.10
|
github.com/go-openapi/validate v0.19.10
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0
|
||||||
github.com/stretchr/testify v1.6.1
|
github.com/stretchr/testify v1.6.1
|
||||||
gopkg.in/yaml.v2 v2.3.0
|
gopkg.in/yaml.v2 v2.3.0
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
|
||||||
|
|
2
vendor/github.com/go-openapi/runtime/go.sum
generated
vendored
2
vendor/github.com/go-openapi/runtime/go.sum
generated
vendored
|
@ -168,6 +168,8 @@ github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
|
||||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
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/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
|
9
vendor/github.com/go-openapi/runtime/interfaces.go
generated
vendored
9
vendor/github.com/go-openapi/runtime/interfaces.go
generated
vendored
|
@ -15,6 +15,7 @@
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
@ -101,3 +102,11 @@ type Authorizer interface {
|
||||||
type Validatable interface {
|
type Validatable interface {
|
||||||
Validate(strfmt.Registry) error
|
Validate(strfmt.Registry) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidatable types implementing this interface allow customizing their validation
|
||||||
|
// this will be used instead of the reflective validation based on the spec document.
|
||||||
|
// the implementations are assumed to have been generated by the swagger tool so they should
|
||||||
|
// contain all the context validations obtained from the spec
|
||||||
|
type ContextValidatable interface {
|
||||||
|
ContextValidate(context.Context, strfmt.Registry) error
|
||||||
|
}
|
||||||
|
|
4
vendor/github.com/go-openapi/runtime/middleware/context.go
generated
vendored
4
vendor/github.com/go-openapi/runtime/middleware/context.go
generated
vendored
|
@ -435,6 +435,10 @@ func (c *Context) Authorize(request *http.Request, route *MatchedRoute) (interfa
|
||||||
}
|
}
|
||||||
if route.Authorizer != nil {
|
if route.Authorizer != nil {
|
||||||
if err := route.Authorizer.Authorize(request, usr); err != nil {
|
if err := route.Authorizer.Authorize(request, usr); err != nil {
|
||||||
|
if _, ok := err.(errors.Error); ok {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return nil, nil, errors.New(http.StatusForbidden, err.Error())
|
return nil, nil, errors.New(http.StatusForbidden, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
6
vendor/github.com/go-openapi/runtime/middleware/denco/router.go
generated
vendored
6
vendor/github.com/go-openapi/runtime/middleware/denco/router.go
generated
vendored
|
@ -20,6 +20,9 @@ const (
|
||||||
// SeparatorCharacter separates path segments.
|
// SeparatorCharacter separates path segments.
|
||||||
SeparatorCharacter = '/'
|
SeparatorCharacter = '/'
|
||||||
|
|
||||||
|
// PathParamCharacter indicates a RESTCONF path param
|
||||||
|
PathParamCharacter = '='
|
||||||
|
|
||||||
// MaxSize is max size of records and internal slice.
|
// MaxSize is max size of records and internal slice.
|
||||||
MaxSize = (1 << 22) - 1
|
MaxSize = (1 << 22) - 1
|
||||||
)
|
)
|
||||||
|
@ -426,8 +429,9 @@ func makeRecords(srcs []Record) (statics, params []*record) {
|
||||||
termChar := string(TerminationCharacter)
|
termChar := string(TerminationCharacter)
|
||||||
paramPrefix := string(SeparatorCharacter) + string(ParamCharacter)
|
paramPrefix := string(SeparatorCharacter) + string(ParamCharacter)
|
||||||
wildcardPrefix := string(SeparatorCharacter) + string(WildcardCharacter)
|
wildcardPrefix := string(SeparatorCharacter) + string(WildcardCharacter)
|
||||||
|
restconfPrefix := string(PathParamCharacter) + string(ParamCharacter)
|
||||||
for _, r := range srcs {
|
for _, r := range srcs {
|
||||||
if strings.Contains(r.Key, paramPrefix) || strings.Contains(r.Key, wildcardPrefix) {
|
if strings.Contains(r.Key, paramPrefix) || strings.Contains(r.Key, wildcardPrefix) ||strings.Contains(r.Key, restconfPrefix){
|
||||||
r.Key += termChar
|
r.Key += termChar
|
||||||
params = append(params, &record{Record: r})
|
params = append(params, &record{Record: r})
|
||||||
} else {
|
} else {
|
||||||
|
|
90
vendor/github.com/go-openapi/runtime/middleware/rapidoc.go
generated
vendored
Normal file
90
vendor/github.com/go-openapi/runtime/middleware/rapidoc.go
generated
vendored
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
package middleware
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"html/template"
|
||||||
|
"net/http"
|
||||||
|
"path"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RapiDocOpts configures the RapiDoc middlewares
|
||||||
|
type RapiDocOpts struct {
|
||||||
|
// BasePath for the UI path, defaults to: /
|
||||||
|
BasePath string
|
||||||
|
// Path combines with BasePath for the full UI path, defaults to: docs
|
||||||
|
Path string
|
||||||
|
// SpecURL the url to find the spec for
|
||||||
|
SpecURL string
|
||||||
|
// RapiDocURL for the js that generates the rapidoc site, defaults to: https://cdn.jsdelivr.net/npm/rapidoc/bundles/rapidoc.standalone.js
|
||||||
|
RapiDocURL string
|
||||||
|
// Title for the documentation site, default to: API documentation
|
||||||
|
Title string
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnsureDefaults in case some options are missing
|
||||||
|
func (r *RapiDocOpts) EnsureDefaults() {
|
||||||
|
if r.BasePath == "" {
|
||||||
|
r.BasePath = "/"
|
||||||
|
}
|
||||||
|
if r.Path == "" {
|
||||||
|
r.Path = "docs"
|
||||||
|
}
|
||||||
|
if r.SpecURL == "" {
|
||||||
|
r.SpecURL = "/swagger.json"
|
||||||
|
}
|
||||||
|
if r.RapiDocURL == "" {
|
||||||
|
r.RapiDocURL = rapidocLatest
|
||||||
|
}
|
||||||
|
if r.Title == "" {
|
||||||
|
r.Title = "API documentation"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RapiDoc creates a middleware to serve a documentation site for a swagger spec.
|
||||||
|
// This allows for altering the spec before starting the http listener.
|
||||||
|
//
|
||||||
|
func RapiDoc(opts RapiDocOpts, next http.Handler) http.Handler {
|
||||||
|
opts.EnsureDefaults()
|
||||||
|
|
||||||
|
pth := path.Join(opts.BasePath, opts.Path)
|
||||||
|
tmpl := template.Must(template.New("rapidoc").Parse(rapidocTemplate))
|
||||||
|
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
_ = tmpl.Execute(buf, opts)
|
||||||
|
b := buf.Bytes()
|
||||||
|
|
||||||
|
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
||||||
|
if r.URL.Path == pth {
|
||||||
|
rw.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||||
|
rw.WriteHeader(http.StatusOK)
|
||||||
|
|
||||||
|
_, _ = rw.Write(b)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if next == nil {
|
||||||
|
rw.Header().Set("Content-Type", "text/plain")
|
||||||
|
rw.WriteHeader(http.StatusNotFound)
|
||||||
|
_, _ = rw.Write([]byte(fmt.Sprintf("%q not found", pth)))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
next.ServeHTTP(rw, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
rapidocLatest = "https://unpkg.com/rapidoc/dist/rapidoc-min.js"
|
||||||
|
rapidocTemplate = `<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{ .Title }}</title>
|
||||||
|
<meta charset="utf-8"> <!-- Important: rapi-doc uses utf8 charecters -->
|
||||||
|
<script type="module" src="{{ .RapiDocURL }}"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<rapi-doc spec-url="{{ .SpecURL }}"></rapi-doc>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
`
|
||||||
|
)
|
10
vendor/github.com/go-openapi/runtime/middleware/router.go
generated
vendored
10
vendor/github.com/go-openapi/runtime/middleware/router.go
generated
vendored
|
@ -22,6 +22,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-openapi/runtime/security"
|
"github.com/go-openapi/runtime/security"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
|
||||||
"github.com/go-openapi/analysis"
|
"github.com/go-openapi/analysis"
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
|
@ -418,6 +419,15 @@ func (d *defaultRouteBuilder) AddRoute(method, path string, operation *spec.Oper
|
||||||
produces := d.analyzer.ProducesFor(operation)
|
produces := d.analyzer.ProducesFor(operation)
|
||||||
parameters := d.analyzer.ParamsFor(method, strings.TrimPrefix(path, bp))
|
parameters := d.analyzer.ParamsFor(method, strings.TrimPrefix(path, bp))
|
||||||
|
|
||||||
|
// add API defaults if not part of the spec
|
||||||
|
if defConsumes := d.api.DefaultConsumes(); defConsumes != "" && !swag.ContainsStringsCI(consumes, defConsumes) {
|
||||||
|
consumes = append(consumes, defConsumes)
|
||||||
|
}
|
||||||
|
|
||||||
|
if defProduces := d.api.DefaultProduces(); defProduces != "" && !swag.ContainsStringsCI(produces, defProduces) {
|
||||||
|
produces = append(produces, defProduces)
|
||||||
|
}
|
||||||
|
|
||||||
record := denco.NewRecord(pathConverter.ReplaceAllString(path, ":$1"), &routeEntry{
|
record := denco.NewRecord(pathConverter.ReplaceAllString(path, ":$1"), &routeEntry{
|
||||||
BasePath: bp,
|
BasePath: bp,
|
||||||
PathPattern: path,
|
PathPattern: path,
|
||||||
|
|
11
vendor/github.com/go-openapi/spec/.golangci.yml
generated
vendored
11
vendor/github.com/go-openapi/spec/.golangci.yml
generated
vendored
|
@ -26,3 +26,14 @@ linters:
|
||||||
- gocognit
|
- gocognit
|
||||||
- whitespace
|
- whitespace
|
||||||
- wsl
|
- wsl
|
||||||
|
- wrapcheck
|
||||||
|
- testpackage
|
||||||
|
- nlreturn
|
||||||
|
- gomnd
|
||||||
|
- exhaustivestruct
|
||||||
|
- goerr113
|
||||||
|
- errorlint
|
||||||
|
- nestif
|
||||||
|
- godot
|
||||||
|
- gofumpt
|
||||||
|
- paralleltest
|
||||||
|
|
20
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
20
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
|
@ -1,8 +1,26 @@
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
go:
|
go:
|
||||||
- 1.13.x
|
|
||||||
- 1.14.x
|
- 1.14.x
|
||||||
|
- 1.x
|
||||||
|
arch:
|
||||||
|
- amd64
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# only run fast tests on ppc64le
|
||||||
|
- go: 1.x
|
||||||
|
arch: ppc64le
|
||||||
|
script:
|
||||||
|
- gotestsum -f short-verbose -- ./...
|
||||||
|
|
||||||
|
# include linting job, but only for latest go version and amd64 arch
|
||||||
|
- go: 1.x
|
||||||
|
arch: amd64
|
||||||
|
install:
|
||||||
|
go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
script:
|
||||||
|
- golangci-lint run --new-from-rev master
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
||||||
language: go
|
language: go
|
||||||
|
|
24
vendor/github.com/go-openapi/spec/README.md
generated
vendored
24
vendor/github.com/go-openapi/spec/README.md
generated
vendored
|
@ -2,9 +2,29 @@
|
||||||
|
|
||||||
[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE)
|
[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE)
|
||||||
[![GoDoc](https://godoc.org/github.com/go-openapi/spec?status.svg)](http://godoc.org/github.com/go-openapi/spec)
|
[![GoDoc](https://godoc.org/github.com/go-openapi/spec?status.svg)](http://godoc.org/github.com/go-openapi/spec)
|
||||||
[![GolangCI](https://golangci.com/badges/github.com/go-openapi/spec.svg)](https://golangci.com)
|
|
||||||
[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/spec)](https://goreportcard.com/report/github.com/go-openapi/spec)
|
[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/spec)](https://goreportcard.com/report/github.com/go-openapi/spec)
|
||||||
|
|
||||||
The object model for OpenAPI specification documents.
|
The object model for OpenAPI specification documents.
|
||||||
|
|
||||||
Currently supports Swagger 2.0.
|
### FAQ
|
||||||
|
|
||||||
|
* What does this do?
|
||||||
|
|
||||||
|
> 1. This package knows how to marshal and unmarshal Swagger API specifications into a golang object model
|
||||||
|
> 2. It knows how to resolve $ref and expand them to make a single root documment
|
||||||
|
|
||||||
|
* How does it play with the rest of the go-openapi packages ?
|
||||||
|
|
||||||
|
> 1. This package is at the core of the go-openapi suite of packages and [code generator](https://github.com/go-swagger/go-swagger)
|
||||||
|
> 2. There is a [spec loading package](https://github.com/go-openapi/loads) to fetch specs as JSON or YAML from local or remote locations
|
||||||
|
> 3. There is a [spec validation package](https://github.com/go-openapi/validate) built on top of it
|
||||||
|
> 4. There is a [spec analysis package](https://github.com/go-openapi/analysis) built on top of it, to analyze, flatten, fix and merge spec documents
|
||||||
|
|
||||||
|
* Does this library support OpenAPI 3?
|
||||||
|
|
||||||
|
> No.
|
||||||
|
> This package currently only supports OpenAPI 2.0 (aka Swagger 2.0).
|
||||||
|
> There is no plan to make it evolve toward supporting OpenAPI 3.x.
|
||||||
|
> This [discussion thread](https://github.com/go-openapi/spec/issues/21) relates the full story.
|
||||||
|
>
|
||||||
|
> An early attempt to support Swagger 3 may be found at: https://github.com/go-openapi/spec3
|
||||||
|
|
34
vendor/github.com/go-openapi/spec/appveyor.yml
generated
vendored
Normal file
34
vendor/github.com/go-openapi/spec/appveyor.yml
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
version: "0.1.{build}"
|
||||||
|
|
||||||
|
clone_folder: C:\go-openapi\spec
|
||||||
|
shallow_clone: true # for startup speed
|
||||||
|
pull_requests:
|
||||||
|
do_not_increment_build_number: true
|
||||||
|
|
||||||
|
#skip_tags: true
|
||||||
|
#skip_branch_with_pr: true
|
||||||
|
|
||||||
|
# appveyor.yml
|
||||||
|
build: off
|
||||||
|
|
||||||
|
environment:
|
||||||
|
GOPATH: c:\gopath
|
||||||
|
|
||||||
|
stack: go 1.12
|
||||||
|
|
||||||
|
test_script:
|
||||||
|
- echo "test disabled for now"
|
||||||
|
#- go test -v -timeout 20m ./...
|
||||||
|
#artifacts:
|
||||||
|
# - path: '%GOPATH%\bin\*.exe'
|
||||||
|
deploy: off
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
- provider: Slack
|
||||||
|
incoming_webhook: https://hooks.slack.com/services/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
|
||||||
|
auth_token:
|
||||||
|
secure: Sf7kZf7ZGbnwWUMpffHwMu5A0cHkLK2MYY32LNTPj4+/3qC3Ghl7+9v4TSLOqOlCwdRNjOGblAq7s+GDJed6/xgRQl1JtCi1klzZNrYX4q01pgTPvvGcwbBkIYgeMaPeIRcK9OZnud7sRXdttozgTOpytps2U6Js32ip7uj5mHSg2ub0FwoSJwlS6dbezZ8+eDhoha0F/guY99BEwx8Bd+zROrT2TFGsSGOFGN6wFc7moCqTHO/YkWib13a2QNXqOxCCVBy/lt76Wp+JkeFppjHlzs/2lP3EAk13RIUAaesdEUHvIHrzCyNJEd3/+KO2DzsWOYfpktd+KBCvgaYOsoo7ubdT3IROeAegZdCgo/6xgCEsmFc9ZcqCfN5yNx2A+BZ2Vwmpws+bQ1E1+B5HDzzaiLcYfG4X2O210QVGVDLWsv1jqD+uPYeHY2WRfh5ZsIUFvaqgUEnwHwrK44/8REAhQavt1QAj5uJpsRd7CkRVPWRNK+yIky+wgbVUFEchRNmS55E7QWf+W4+4QZkQi7vUTMc9nbTUu2Es9NfvfudOpM2wZbn98fjpb/qq/nRv6Bk+ca+7XD5/IgNLMbWp2ouDdzbiHLCOfDUiHiDJhLfFZx9Bwo7ZwfzeOlbrQX66bx7xRKYmOe4DLrXhNcpbsMa8qbfxlZRCmYbubB/Y8h4=
|
||||||
|
channel: bots
|
||||||
|
on_build_success: false
|
||||||
|
on_build_failure: true
|
||||||
|
on_build_status_changed: true
|
6
vendor/github.com/go-openapi/spec/bindata.go
generated
vendored
6
vendor/github.com/go-openapi/spec/bindata.go
generated
vendored
|
@ -247,9 +247,9 @@ type bintree struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
var _bintree = &bintree{nil, map[string]*bintree{
|
var _bintree = &bintree{nil, map[string]*bintree{
|
||||||
"jsonschema-draft-04.json": &bintree{jsonschemaDraft04Json, map[string]*bintree{}},
|
"jsonschema-draft-04.json": {jsonschemaDraft04Json, map[string]*bintree{}},
|
||||||
"v2": &bintree{nil, map[string]*bintree{
|
"v2": {nil, map[string]*bintree{
|
||||||
"schema.json": &bintree{v2SchemaJson, map[string]*bintree{}},
|
"schema.json": {v2SchemaJson, map[string]*bintree{}},
|
||||||
}},
|
}},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
54
vendor/github.com/go-openapi/spec/cache.go
generated
vendored
54
vendor/github.com/go-openapi/spec/cache.go
generated
vendored
|
@ -14,7 +14,9 @@
|
||||||
|
|
||||||
package spec
|
package spec
|
||||||
|
|
||||||
import "sync"
|
import (
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
// ResolutionCache a cache for resolving urls
|
// ResolutionCache a cache for resolving urls
|
||||||
type ResolutionCache interface {
|
type ResolutionCache interface {
|
||||||
|
@ -27,12 +29,23 @@ type simpleCache struct {
|
||||||
store map[string]interface{}
|
store map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *simpleCache) ShallowClone() ResolutionCache {
|
||||||
|
store := make(map[string]interface{}, len(s.store))
|
||||||
|
s.lock.RLock()
|
||||||
|
for k, v := range s.store {
|
||||||
|
store[k] = v
|
||||||
|
}
|
||||||
|
s.lock.RUnlock()
|
||||||
|
|
||||||
|
return &simpleCache{
|
||||||
|
store: store,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get retrieves a cached URI
|
// Get retrieves a cached URI
|
||||||
func (s *simpleCache) Get(uri string) (interface{}, bool) {
|
func (s *simpleCache) Get(uri string) (interface{}, bool) {
|
||||||
debugLog("getting %q from resolution cache", uri)
|
|
||||||
s.lock.RLock()
|
s.lock.RLock()
|
||||||
v, ok := s.store[uri]
|
v, ok := s.store[uri]
|
||||||
debugLog("got %q from resolution cache: %t", uri, ok)
|
|
||||||
|
|
||||||
s.lock.RUnlock()
|
s.lock.RUnlock()
|
||||||
return v, ok
|
return v, ok
|
||||||
|
@ -45,16 +58,41 @@ func (s *simpleCache) Set(uri string, data interface{}) {
|
||||||
s.lock.Unlock()
|
s.lock.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
var resCache ResolutionCache
|
var (
|
||||||
|
// resCache is a package level cache for $ref resolution and expansion.
|
||||||
|
// It is initialized lazily by methods that have the need for it: no
|
||||||
|
// memory is allocated unless some expander methods are called.
|
||||||
|
//
|
||||||
|
// It is initialized with JSON schema and swagger schema,
|
||||||
|
// which do not mutate during normal operations.
|
||||||
|
//
|
||||||
|
// All subsequent utilizations of this cache are produced from a shallow
|
||||||
|
// clone of this initial version.
|
||||||
|
resCache *simpleCache
|
||||||
|
onceCache sync.Once
|
||||||
|
|
||||||
func init() {
|
_ ResolutionCache = &simpleCache{}
|
||||||
resCache = initResolutionCache()
|
)
|
||||||
|
|
||||||
|
// initResolutionCache initializes the URI resolution cache. To be wrapped in a sync.Once.Do call.
|
||||||
|
func initResolutionCache() {
|
||||||
|
resCache = defaultResolutionCache()
|
||||||
}
|
}
|
||||||
|
|
||||||
// initResolutionCache initializes the URI resolution cache
|
func defaultResolutionCache() *simpleCache {
|
||||||
func initResolutionCache() ResolutionCache {
|
|
||||||
return &simpleCache{store: map[string]interface{}{
|
return &simpleCache{store: map[string]interface{}{
|
||||||
"http://swagger.io/v2/schema.json": MustLoadSwagger20Schema(),
|
"http://swagger.io/v2/schema.json": MustLoadSwagger20Schema(),
|
||||||
"http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(),
|
"http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(),
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func cacheOrDefault(cache ResolutionCache) ResolutionCache {
|
||||||
|
onceCache.Do(initResolutionCache)
|
||||||
|
|
||||||
|
if cache != nil {
|
||||||
|
return cache
|
||||||
|
}
|
||||||
|
|
||||||
|
// get a shallow clone of the base cache with swagger and json schema
|
||||||
|
return resCache.ShallowClone()
|
||||||
|
}
|
||||||
|
|
3
vendor/github.com/go-openapi/spec/contact_info.go
generated
vendored
3
vendor/github.com/go-openapi/spec/contact_info.go
generated
vendored
|
@ -28,12 +28,14 @@ type ContactInfo struct {
|
||||||
VendorExtensible
|
VendorExtensible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContactInfoProps hold the properties of a ContactInfo object
|
||||||
type ContactInfoProps struct {
|
type ContactInfoProps struct {
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
URL string `json:"url,omitempty"`
|
URL string `json:"url,omitempty"`
|
||||||
Email string `json:"email,omitempty"`
|
Email string `json:"email,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON hydrates ContactInfo from json
|
||||||
func (c *ContactInfo) UnmarshalJSON(data []byte) error {
|
func (c *ContactInfo) UnmarshalJSON(data []byte) error {
|
||||||
if err := json.Unmarshal(data, &c.ContactInfoProps); err != nil {
|
if err := json.Unmarshal(data, &c.ContactInfoProps); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -41,6 +43,7 @@ func (c *ContactInfo) UnmarshalJSON(data []byte) error {
|
||||||
return json.Unmarshal(data, &c.VendorExtensible)
|
return json.Unmarshal(data, &c.VendorExtensible)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarshalJSON produces ContactInfo as json
|
||||||
func (c ContactInfo) MarshalJSON() ([]byte, error) {
|
func (c ContactInfo) MarshalJSON() ([]byte, error) {
|
||||||
b1, err := json.Marshal(c.ContactInfoProps)
|
b1, err := json.Marshal(c.ContactInfoProps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
18
vendor/github.com/go-openapi/spec/errors.go
generated
vendored
Normal file
18
vendor/github.com/go-openapi/spec/errors.go
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
package spec
|
||||||
|
|
||||||
|
import "errors"
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrUnknownTypeForReference indicates that a resolved reference was found in an unsupported container type
|
||||||
|
ErrUnknownTypeForReference = errors.New("unknown type for the resolved reference")
|
||||||
|
|
||||||
|
// ErrResolveRefNeedsAPointer indicates that a $ref target must be a valid JSON pointer
|
||||||
|
ErrResolveRefNeedsAPointer = errors.New("resolve ref: target needs to be a pointer")
|
||||||
|
|
||||||
|
// ErrDerefUnsupportedType indicates that a resolved reference was found in an unsupported container type.
|
||||||
|
// At the moment, $ref are supported only inside: schemas, parameters, responses, path items
|
||||||
|
ErrDerefUnsupportedType = errors.New("deref: unsupported type")
|
||||||
|
|
||||||
|
// ErrExpandUnsupportedType indicates that $ref expansion is attempted on some invalid type
|
||||||
|
ErrExpandUnsupportedType = errors.New("expand: unsupported type. Input should be of type *Parameter or *Response")
|
||||||
|
)
|
450
vendor/github.com/go-openapi/spec/expander.go
generated
vendored
450
vendor/github.com/go-openapi/spec/expander.go
generated
vendored
|
@ -17,140 +17,21 @@ package spec
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExpandOptions provides options for spec expand
|
// ExpandOptions provides options for the spec expander.
|
||||||
type ExpandOptions struct {
|
type ExpandOptions struct {
|
||||||
RelativeBase string
|
RelativeBase string
|
||||||
SkipSchemas bool
|
SkipSchemas bool
|
||||||
ContinueOnError bool
|
ContinueOnError bool
|
||||||
|
PathLoader func(string) (json.RawMessage, error) `json:"-"`
|
||||||
|
|
||||||
AbsoluteCircularRef bool
|
AbsoluteCircularRef bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResolveRefWithBase resolves a reference against a context root with preservation of base path
|
|
||||||
func ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
specBasePath := ""
|
|
||||||
if opts != nil && opts.RelativeBase != "" {
|
|
||||||
specBasePath, _ = absPath(opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Schema)
|
|
||||||
if err := resolver.Resolve(ref, result, specBasePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveRef resolves a reference against a context root
|
|
||||||
// ref is guaranteed to be in root (no need to go to external files)
|
|
||||||
// ResolveRef is ONLY called from the code generation module
|
|
||||||
func ResolveRef(root interface{}, ref *Ref) (*Schema, error) {
|
|
||||||
res, _, err := ref.GetPointer().Get(root)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
switch sch := res.(type) {
|
|
||||||
case Schema:
|
|
||||||
return &sch, nil
|
|
||||||
case *Schema:
|
|
||||||
return sch, nil
|
|
||||||
case map[string]interface{}:
|
|
||||||
b, _ := json.Marshal(sch)
|
|
||||||
newSch := new(Schema)
|
|
||||||
_ = json.Unmarshal(b, newSch)
|
|
||||||
return newSch, nil
|
|
||||||
default:
|
|
||||||
return nil, fmt.Errorf("unknown type for the resolved reference")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveParameter resolves a parameter reference against a context root
|
|
||||||
func ResolveParameter(root interface{}, ref Ref) (*Parameter, error) {
|
|
||||||
return ResolveParameterWithBase(root, ref, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveParameterWithBase resolves a parameter reference against a context root and base path
|
|
||||||
func ResolveParameterWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Parameter, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Parameter)
|
|
||||||
if err := resolver.Resolve(&ref, result, ""); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveResponse resolves response a reference against a context root
|
|
||||||
func ResolveResponse(root interface{}, ref Ref) (*Response, error) {
|
|
||||||
return ResolveResponseWithBase(root, ref, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveResponseWithBase resolves response a reference against a context root and base path
|
|
||||||
func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Response, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Response)
|
|
||||||
if err := resolver.Resolve(&ref, result, ""); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveItems resolves parameter items reference against a context root and base path.
|
|
||||||
//
|
|
||||||
// NOTE: stricly speaking, this construct is not supported by Swagger 2.0.
|
|
||||||
// Similarly, $ref are forbidden in response headers.
|
|
||||||
func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
basePath := ""
|
|
||||||
if opts.RelativeBase != "" {
|
|
||||||
basePath = opts.RelativeBase
|
|
||||||
}
|
|
||||||
result := new(Items)
|
|
||||||
if err := resolver.Resolve(&ref, result, basePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolvePathItem resolves response a path item against a context root and base path
|
|
||||||
func ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
basePath := ""
|
|
||||||
if opts.RelativeBase != "" {
|
|
||||||
basePath = opts.RelativeBase
|
|
||||||
}
|
|
||||||
result := new(PathItem)
|
|
||||||
if err := resolver.Resolve(&ref, result, basePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandSpec expands the references in a swagger spec
|
// ExpandSpec expands the references in a swagger spec
|
||||||
func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
|
func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
|
||||||
resolver, err := defaultSchemaLoader(spec, options, nil, nil)
|
resolver := defaultSchemaLoader(spec, options, nil, nil)
|
||||||
// Just in case this ever returns an error.
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// getting the base path of the spec to adjust all subsequent reference resolutions
|
// getting the base path of the spec to adjust all subsequent reference resolutions
|
||||||
specBasePath := ""
|
specBasePath := ""
|
||||||
|
@ -160,9 +41,10 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
|
||||||
|
|
||||||
if options == nil || !options.SkipSchemas {
|
if options == nil || !options.SkipSchemas {
|
||||||
for key, definition := range spec.Definitions {
|
for key, definition := range spec.Definitions {
|
||||||
var def *Schema
|
parentRefs := make([]string, 0, 10)
|
||||||
var err error
|
parentRefs = append(parentRefs, fmt.Sprintf("#/definitions/%s", key))
|
||||||
if def, err = expandSchema(definition, []string{fmt.Sprintf("#/definitions/%s", key)}, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
def, err := expandSchema(definition, parentRefs, resolver, specBasePath)
|
||||||
|
if resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if def != nil {
|
if def != nil {
|
||||||
|
@ -189,77 +71,96 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
|
||||||
|
|
||||||
if spec.Paths != nil {
|
if spec.Paths != nil {
|
||||||
for key := range spec.Paths.Paths {
|
for key := range spec.Paths.Paths {
|
||||||
path := spec.Paths.Paths[key]
|
pth := spec.Paths.Paths[key]
|
||||||
if err := expandPathItem(&path, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
if err := expandPathItem(&pth, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
spec.Paths.Paths[key] = path
|
spec.Paths.Paths[key] = pth
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
const rootBase = "root"
|
const rootBase = ".root"
|
||||||
// baseForRoot loads in the cache the root document and produces a fake "root" base path entry
|
|
||||||
|
// baseForRoot loads in the cache the root document and produces a fake ".root" base path entry
|
||||||
// for further $ref resolution
|
// for further $ref resolution
|
||||||
|
//
|
||||||
|
// Setting the cache is optional and this parameter may safely be left to nil.
|
||||||
func baseForRoot(root interface{}, cache ResolutionCache) string {
|
func baseForRoot(root interface{}, cache ResolutionCache) string {
|
||||||
|
if root == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// cache the root document to resolve $ref's
|
// cache the root document to resolve $ref's
|
||||||
if root != nil {
|
|
||||||
base, _ := absPath(rootBase)
|
base, _ := absPath(rootBase)
|
||||||
normalizedBase := normalizeAbsPath(base)
|
normalizedBase := normalizeAbsPath(base)
|
||||||
debugLog("setting root doc in cache at: %s", normalizedBase)
|
|
||||||
if cache == nil {
|
|
||||||
cache = resCache
|
|
||||||
}
|
|
||||||
cache.Set(normalizedBase, root)
|
cache.Set(normalizedBase, root)
|
||||||
return rootBase
|
|
||||||
}
|
return normalizedBase
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandSchema expands the refs in the schema object with reference to the root object
|
// ExpandSchema expands the refs in the schema object with reference to the root object.
|
||||||
// go-openapi/validate uses this function
|
//
|
||||||
// notice that it is impossible to reference a json schema in a different file other than root
|
// go-openapi/validate uses this function.
|
||||||
|
//
|
||||||
|
// Notice that it is impossible to reference a json schema in a different document other than root
|
||||||
|
// (use ExpandSchemaWithBasePath to resolve external references).
|
||||||
|
//
|
||||||
|
// Setting the cache is optional and this parameter may safely be left to nil.
|
||||||
func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error {
|
func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error {
|
||||||
|
cache = cacheOrDefault(cache)
|
||||||
|
if root == nil {
|
||||||
|
root = schema
|
||||||
|
}
|
||||||
|
|
||||||
opts := &ExpandOptions{
|
opts := &ExpandOptions{
|
||||||
// when a root is specified, cache the root as an in-memory document for $ref retrieval
|
// when a root is specified, cache the root as an in-memory document for $ref retrieval
|
||||||
RelativeBase: baseForRoot(root, cache),
|
RelativeBase: baseForRoot(root, cache),
|
||||||
SkipSchemas: false,
|
SkipSchemas: false,
|
||||||
ContinueOnError: false,
|
ContinueOnError: false,
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ExpandSchemaWithBasePath(schema, cache, opts)
|
return ExpandSchemaWithBasePath(schema, cache, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options
|
// ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options.
|
||||||
|
//
|
||||||
|
// Setting the cache is optional and this parameter may safely be left to nil.
|
||||||
func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error {
|
func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error {
|
||||||
if schema == nil {
|
if schema == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cache = cacheOrDefault(cache)
|
||||||
|
|
||||||
var basePath string
|
var basePath string
|
||||||
if opts.RelativeBase != "" {
|
if opts.RelativeBase != "" {
|
||||||
basePath, _ = absPath(opts.RelativeBase)
|
basePath, _ = absPath(opts.RelativeBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, cache, nil)
|
resolver := defaultSchemaLoader(nil, opts, cache, nil)
|
||||||
|
|
||||||
|
parentRefs := make([]string, 0, 10)
|
||||||
|
s, err := expandSchema(*schema, parentRefs, resolver, basePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if s != nil {
|
||||||
refs := []string{""}
|
// guard for when continuing on error
|
||||||
var s *Schema
|
|
||||||
if s, err = expandSchema(*schema, refs, resolver, basePath); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*schema = *s
|
*schema = *s
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
||||||
if target.Items != nil {
|
if target.Items == nil {
|
||||||
|
return &target, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// array
|
||||||
if target.Items.Schema != nil {
|
if target.Items.Schema != nil {
|
||||||
t, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath)
|
t, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -267,6 +168,8 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, bas
|
||||||
}
|
}
|
||||||
*target.Items.Schema = *t
|
*target.Items.Schema = *t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tuple
|
||||||
for i := range target.Items.Schemas {
|
for i := range target.Items.Schemas {
|
||||||
t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath)
|
t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -274,72 +177,34 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, bas
|
||||||
}
|
}
|
||||||
target.Items.Schemas[i] = *t
|
target.Items.Schemas[i] = *t
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return &target, nil
|
return &target, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
||||||
if target.Ref.String() == "" && target.Ref.IsRoot() {
|
if target.Ref.String() == "" && target.Ref.IsRoot() {
|
||||||
// normalizing is important
|
|
||||||
newRef := normalizeFileRef(&target.Ref, basePath)
|
newRef := normalizeFileRef(&target.Ref, basePath)
|
||||||
target.Ref = *newRef
|
target.Ref = *newRef
|
||||||
return &target, nil
|
return &target, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// change the base path of resolution when an ID is encountered
|
// change the base path of resolution when an ID is encountered
|
||||||
// otherwise the basePath should inherit the parent's
|
// otherwise the basePath should inherit the parent's
|
||||||
// important: ID can be relative path
|
|
||||||
if target.ID != "" {
|
if target.ID != "" {
|
||||||
debugLog("schema has ID: %s", target.ID)
|
basePath, _ = resolver.setSchemaID(target, target.ID, basePath)
|
||||||
// handling the case when id is a folder
|
|
||||||
// remember that basePath has to be a file
|
|
||||||
refPath := target.ID
|
|
||||||
if strings.HasSuffix(target.ID, "/") {
|
|
||||||
// path.Clean here would not work correctly if basepath is http
|
|
||||||
refPath = fmt.Sprintf("%s%s", refPath, "placeholder.json")
|
|
||||||
}
|
|
||||||
basePath = normalizePaths(refPath, basePath)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var t *Schema
|
|
||||||
// if Ref is found, everything else doesn't matter
|
|
||||||
// Ref also changes the resolution scope of children expandSchema
|
|
||||||
if target.Ref.String() != "" {
|
if target.Ref.String() != "" {
|
||||||
// here the resolution scope is changed because a $ref was encountered
|
return expandSchemaRef(target, parentRefs, resolver, basePath)
|
||||||
normalizedRef := normalizeFileRef(&target.Ref, basePath)
|
|
||||||
normalizedBasePath := normalizedRef.RemoteURI()
|
|
||||||
|
|
||||||
if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
|
|
||||||
// this means there is a cycle in the recursion tree: return the Ref
|
|
||||||
// - circular refs cannot be expanded. We leave them as ref.
|
|
||||||
// - denormalization means that a new local file ref is set relative to the original basePath
|
|
||||||
debugLog("shortcut circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s",
|
|
||||||
basePath, normalizedBasePath, normalizedRef.String())
|
|
||||||
if !resolver.options.AbsoluteCircularRef {
|
|
||||||
target.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath)
|
|
||||||
} else {
|
|
||||||
target.Ref = *normalizedRef
|
|
||||||
}
|
|
||||||
return &target, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
debugLog("basePath: %s: calling Resolve with target: %#v", basePath, target)
|
for k := range target.Definitions {
|
||||||
if err := resolver.Resolve(&target.Ref, &t, basePath); resolver.shouldStopOnError(err) {
|
tt, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath)
|
||||||
return nil, err
|
if resolver.shouldStopOnError(err) {
|
||||||
|
return &target, err
|
||||||
}
|
}
|
||||||
|
if tt != nil {
|
||||||
if t != nil {
|
target.Definitions[k] = *tt
|
||||||
parentRefs = append(parentRefs, normalizedRef.String())
|
|
||||||
var err error
|
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, target.Ref)
|
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath)
|
|
||||||
|
|
||||||
return expandSchema(*t, parentRefs, transitiveResolver, basePath)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,15 +221,21 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
return &target, err
|
return &target, err
|
||||||
}
|
}
|
||||||
|
if t != nil {
|
||||||
target.AllOf[i] = *t
|
target.AllOf[i] = *t
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for i := range target.AnyOf {
|
for i := range target.AnyOf {
|
||||||
t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath)
|
t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
return &target, err
|
return &target, err
|
||||||
}
|
}
|
||||||
|
if t != nil {
|
||||||
target.AnyOf[i] = *t
|
target.AnyOf[i] = *t
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for i := range target.OneOf {
|
for i := range target.OneOf {
|
||||||
t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath)
|
t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -374,6 +245,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
target.OneOf[i] = *t
|
target.OneOf[i] = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.Not != nil {
|
if target.Not != nil {
|
||||||
t, err := expandSchema(*target.Not, parentRefs, resolver, basePath)
|
t, err := expandSchema(*target.Not, parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -383,6 +255,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
*target.Not = *t
|
*target.Not = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for k := range target.Properties {
|
for k := range target.Properties {
|
||||||
t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath)
|
t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -392,6 +265,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
target.Properties[k] = *t
|
target.Properties[k] = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil {
|
if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil {
|
||||||
t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath)
|
t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -401,6 +275,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
*target.AdditionalProperties.Schema = *t
|
*target.AdditionalProperties.Schema = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for k := range target.PatternProperties {
|
for k := range target.PatternProperties {
|
||||||
t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath)
|
t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -410,6 +285,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
target.PatternProperties[k] = *t
|
target.PatternProperties[k] = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for k := range target.Dependencies {
|
for k := range target.Dependencies {
|
||||||
if target.Dependencies[k].Schema != nil {
|
if target.Dependencies[k].Schema != nil {
|
||||||
t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath)
|
t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath)
|
||||||
|
@ -421,6 +297,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil {
|
if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil {
|
||||||
t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath)
|
t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
|
@ -430,16 +307,48 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
|
||||||
*target.AdditionalItems.Schema = *t
|
*target.AdditionalItems.Schema = *t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for k := range target.Definitions {
|
return &target, nil
|
||||||
t, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath)
|
}
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
func expandSchemaRef(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
||||||
}
|
// if a Ref is found, all sibling fields are skipped
|
||||||
if t != nil {
|
// Ref also changes the resolution scope of children expandSchema
|
||||||
target.Definitions[k] = *t
|
|
||||||
}
|
// here the resolution scope is changed because a $ref was encountered
|
||||||
|
normalizedRef := normalizeFileRef(&target.Ref, basePath)
|
||||||
|
normalizedBasePath := normalizedRef.RemoteURI()
|
||||||
|
|
||||||
|
if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
|
||||||
|
// this means there is a cycle in the recursion tree: return the Ref
|
||||||
|
// - circular refs cannot be expanded. We leave them as ref.
|
||||||
|
// - denormalization means that a new local file ref is set relative to the original basePath
|
||||||
|
debugLog("short circuit circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s",
|
||||||
|
basePath, normalizedBasePath, normalizedRef.String())
|
||||||
|
if !resolver.options.AbsoluteCircularRef {
|
||||||
|
target.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath)
|
||||||
|
} else {
|
||||||
|
target.Ref = *normalizedRef
|
||||||
}
|
}
|
||||||
return &target, nil
|
return &target, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var t *Schema
|
||||||
|
err := resolver.Resolve(&target.Ref, &t, basePath)
|
||||||
|
if resolver.shouldStopOnError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if t == nil {
|
||||||
|
// guard for when continuing on error
|
||||||
|
return &target, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
parentRefs = append(parentRefs, normalizedRef.String())
|
||||||
|
transitiveResolver := resolver.transitiveResolver(basePath, target.Ref)
|
||||||
|
|
||||||
|
basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath)
|
||||||
|
|
||||||
|
return expandSchema(*t, parentRefs, transitiveResolver, basePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error {
|
func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error {
|
||||||
|
@ -447,25 +356,24 @@ func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
parentRefs := []string{}
|
parentRefs := make([]string, 0, 10)
|
||||||
if err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
if err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if pathItem.Ref.String() != "" {
|
if pathItem.Ref.String() != "" {
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, pathItem.Ref)
|
transitiveResolver := resolver.transitiveResolver(basePath, pathItem.Ref)
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
basePath = transitiveResolver.updateBasePath(resolver, basePath)
|
basePath = transitiveResolver.updateBasePath(resolver, basePath)
|
||||||
resolver = transitiveResolver
|
resolver = transitiveResolver
|
||||||
}
|
}
|
||||||
pathItem.Ref = Ref{}
|
|
||||||
|
|
||||||
for idx := range pathItem.Parameters {
|
pathItem.Ref = Ref{}
|
||||||
if err := expandParameterOrResponse(&(pathItem.Parameters[idx]), resolver, basePath); resolver.shouldStopOnError(err) {
|
for i := range pathItem.Parameters {
|
||||||
|
if err := expandParameterOrResponse(&(pathItem.Parameters[i]), resolver, basePath); resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ops := []*Operation{
|
ops := []*Operation{
|
||||||
pathItem.Get,
|
pathItem.Get,
|
||||||
pathItem.Head,
|
pathItem.Head,
|
||||||
|
@ -480,6 +388,7 @@ func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -496,11 +405,15 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err
|
||||||
op.Parameters[i] = param
|
op.Parameters[i] = param
|
||||||
}
|
}
|
||||||
|
|
||||||
if op.Responses != nil {
|
if op.Responses == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
responses := op.Responses
|
responses := op.Responses
|
||||||
if err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) {
|
if err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for code := range responses.StatusCodeResponses {
|
for code := range responses.StatusCodeResponses {
|
||||||
response := responses.StatusCodeResponses[code]
|
response := responses.StatusCodeResponses[code]
|
||||||
if err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) {
|
if err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) {
|
||||||
|
@ -508,30 +421,31 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err
|
||||||
}
|
}
|
||||||
responses.StatusCodeResponses[code] = response
|
responses.StatusCodeResponses[code] = response
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandResponseWithRoot expands a response based on a root document, not a fetchable document
|
// ExpandResponseWithRoot expands a response based on a root document, not a fetchable document
|
||||||
|
//
|
||||||
|
// Notice that it is impossible to reference a json schema in a different document other than root
|
||||||
|
// (use ExpandResponse to resolve external references).
|
||||||
|
//
|
||||||
|
// Setting the cache is optional and this parameter may safely be left to nil.
|
||||||
func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error {
|
func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error {
|
||||||
|
cache = cacheOrDefault(cache)
|
||||||
opts := &ExpandOptions{
|
opts := &ExpandOptions{
|
||||||
RelativeBase: baseForRoot(root, cache),
|
RelativeBase: baseForRoot(root, cache),
|
||||||
SkipSchemas: false,
|
SkipSchemas: false,
|
||||||
ContinueOnError: false,
|
ContinueOnError: false,
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
resolver := defaultSchemaLoader(root, opts, cache, nil)
|
||||||
|
|
||||||
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandResponse expands a response based on a basepath
|
// ExpandResponse expands a response based on a basepath
|
||||||
// This is the exported version of expandResponse
|
//
|
||||||
// all refs inside response will be resolved relative to basePath
|
// All refs inside response will be resolved relative to basePath
|
||||||
func ExpandResponse(response *Response, basePath string) error {
|
func ExpandResponse(response *Response, basePath string) error {
|
||||||
var specBasePath string
|
var specBasePath string
|
||||||
if basePath != "" {
|
if basePath != "" {
|
||||||
|
@ -540,27 +454,23 @@ func ExpandResponse(response *Response, basePath string) error {
|
||||||
opts := &ExpandOptions{
|
opts := &ExpandOptions{
|
||||||
RelativeBase: specBasePath,
|
RelativeBase: specBasePath,
|
||||||
}
|
}
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, nil, nil)
|
resolver := defaultSchemaLoader(nil, opts, nil, nil)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document
|
// ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document.
|
||||||
|
//
|
||||||
|
// Notice that it is impossible to reference a json schema in a different document other than root
|
||||||
|
// (use ExpandParameter to resolve external references).
|
||||||
func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error {
|
func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error {
|
||||||
|
cache = cacheOrDefault(cache)
|
||||||
opts := &ExpandOptions{
|
opts := &ExpandOptions{
|
||||||
RelativeBase: baseForRoot(root, cache),
|
RelativeBase: baseForRoot(root, cache),
|
||||||
SkipSchemas: false,
|
SkipSchemas: false,
|
||||||
ContinueOnError: false,
|
ContinueOnError: false,
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
resolver := defaultSchemaLoader(root, opts, cache, nil)
|
||||||
|
|
||||||
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
||||||
}
|
}
|
||||||
|
@ -576,17 +486,17 @@ func ExpandParameter(parameter *Parameter, basePath string) error {
|
||||||
opts := &ExpandOptions{
|
opts := &ExpandOptions{
|
||||||
RelativeBase: specBasePath,
|
RelativeBase: specBasePath,
|
||||||
}
|
}
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, nil, nil)
|
resolver := defaultSchemaLoader(nil, opts, nil, nil)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getRefAndSchema(input interface{}) (*Ref, *Schema, error) {
|
func getRefAndSchema(input interface{}) (*Ref, *Schema, error) {
|
||||||
var ref *Ref
|
var (
|
||||||
var sch *Schema
|
ref *Ref
|
||||||
|
sch *Schema
|
||||||
|
)
|
||||||
|
|
||||||
switch refable := input.(type) {
|
switch refable := input.(type) {
|
||||||
case *Parameter:
|
case *Parameter:
|
||||||
if refable == nil {
|
if refable == nil {
|
||||||
|
@ -601,8 +511,9 @@ func getRefAndSchema(input interface{}) (*Ref, *Schema, error) {
|
||||||
ref = &refable.Ref
|
ref = &refable.Ref
|
||||||
sch = refable.Schema
|
sch = refable.Schema
|
||||||
default:
|
default:
|
||||||
return nil, nil, fmt.Errorf("expand: unsupported type %T. Input should be of type *Parameter or *Response", input)
|
return nil, nil, fmt.Errorf("unsupported type: %T: %w", input, ErrExpandUnsupportedType)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ref, sch, nil
|
return ref, sch, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -611,41 +522,70 @@ func expandParameterOrResponse(input interface{}, resolver *schemaLoader, basePa
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if ref == nil {
|
if ref == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
parentRefs := []string{}
|
|
||||||
if err := resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
parentRefs := make([]string, 0, 10)
|
||||||
|
if err = resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ref, sch, _ := getRefAndSchema(input)
|
ref, sch, _ := getRefAndSchema(input)
|
||||||
if ref.String() != "" {
|
if ref.String() != "" {
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, *ref)
|
transitiveResolver := resolver.transitiveResolver(basePath, *ref)
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
basePath = resolver.updateBasePath(transitiveResolver, basePath)
|
basePath = resolver.updateBasePath(transitiveResolver, basePath)
|
||||||
resolver = transitiveResolver
|
resolver = transitiveResolver
|
||||||
}
|
}
|
||||||
|
|
||||||
if sch != nil && sch.Ref.String() != "" {
|
if sch == nil {
|
||||||
// schema expanded to a $ref in another root
|
// nothing to be expanded
|
||||||
var ern error
|
if ref != nil {
|
||||||
sch.Ref, ern = NewRef(normalizePaths(sch.Ref.String(), ref.RemoteURI()))
|
*ref = Ref{}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if sch.Ref.String() != "" {
|
||||||
|
rebasedRef, ern := NewRef(normalizePaths(sch.Ref.String(), basePath))
|
||||||
if ern != nil {
|
if ern != nil {
|
||||||
return ern
|
return ern
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case resolver.isCircular(&rebasedRef, basePath, parentRefs...):
|
||||||
|
// this is a circular $ref: stop expansion
|
||||||
|
if !resolver.options.AbsoluteCircularRef {
|
||||||
|
sch.Ref = *denormalizeFileRef(&rebasedRef, basePath, resolver.context.basePath)
|
||||||
|
} else {
|
||||||
|
sch.Ref = rebasedRef
|
||||||
}
|
}
|
||||||
|
case !resolver.options.SkipSchemas:
|
||||||
|
// schema expanded to a $ref in another root
|
||||||
|
sch.Ref = rebasedRef
|
||||||
|
default:
|
||||||
|
// skip schema expansion but rebase $ref to schema
|
||||||
|
sch.Ref = *denormalizeFileRef(&rebasedRef, basePath, resolver.context.basePath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ref != nil {
|
if ref != nil {
|
||||||
*ref = Ref{}
|
*ref = Ref{}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !resolver.options.SkipSchemas && sch != nil {
|
// expand schema
|
||||||
|
if !resolver.options.SkipSchemas {
|
||||||
s, err := expandSchema(*sch, parentRefs, resolver, basePath)
|
s, err := expandSchema(*sch, parentRefs, resolver, basePath)
|
||||||
if resolver.shouldStopOnError(err) {
|
if resolver.shouldStopOnError(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if s == nil {
|
||||||
|
// guard for when continuing on error
|
||||||
|
return nil
|
||||||
|
}
|
||||||
*sch = *s
|
*sch = *s
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
13
vendor/github.com/go-openapi/spec/go.mod
generated
vendored
13
vendor/github.com/go-openapi/spec/go.mod
generated
vendored
|
@ -1,12 +1,13 @@
|
||||||
module github.com/go-openapi/spec
|
module github.com/go-openapi/spec
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/go-openapi/jsonpointer v0.19.3
|
github.com/go-openapi/jsonpointer v0.19.5
|
||||||
github.com/go-openapi/jsonreference v0.19.2
|
github.com/go-openapi/jsonreference v0.19.5
|
||||||
github.com/go-openapi/swag v0.19.5
|
github.com/go-openapi/swag v0.19.12
|
||||||
github.com/stretchr/testify v1.3.0
|
github.com/stretchr/testify v1.6.1
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b // indirect
|
||||||
gopkg.in/yaml.v2 v2.2.4
|
golang.org/x/text v0.3.4 // indirect
|
||||||
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
47
vendor/github.com/go-openapi/spec/go.sum
generated
vendored
47
vendor/github.com/go-openapi/spec/go.sum
generated
vendored
|
@ -2,48 +2,71 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
|
github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI=
|
||||||
|
github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M=
|
||||||
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
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/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||||
|
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
|
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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw=
|
||||||
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
||||||
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 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
||||||
|
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|
6
vendor/github.com/go-openapi/spec/header.go
generated
vendored
6
vendor/github.com/go-openapi/spec/header.go
generated
vendored
|
@ -141,6 +141,12 @@ func (h *Header) AllowDuplicates() *Header {
|
||||||
return h
|
return h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithValidations is a fluent method to set header validations
|
||||||
|
func (h *Header) WithValidations(val CommonValidations) *Header {
|
||||||
|
h.SetValidations(SchemaValidations{CommonValidations: val})
|
||||||
|
return h
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
// MarshalJSON marshal this to JSON
|
||||||
func (h Header) MarshalJSON() ([]byte, error) {
|
func (h Header) MarshalJSON() ([]byte, error) {
|
||||||
b1, err := json.Marshal(h.CommonValidations)
|
b1, err := json.Marshal(h.CommonValidations)
|
||||||
|
|
22
vendor/github.com/go-openapi/spec/items.go
generated
vendored
22
vendor/github.com/go-openapi/spec/items.go
generated
vendored
|
@ -53,22 +53,6 @@ func (s *SimpleSchema) ItemsTypeName() string {
|
||||||
return s.Items.TypeName()
|
return s.Items.TypeName()
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommonValidations describe common JSON-schema validations
|
|
||||||
type CommonValidations struct {
|
|
||||||
Maximum *float64 `json:"maximum,omitempty"`
|
|
||||||
ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"`
|
|
||||||
Minimum *float64 `json:"minimum,omitempty"`
|
|
||||||
ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"`
|
|
||||||
MaxLength *int64 `json:"maxLength,omitempty"`
|
|
||||||
MinLength *int64 `json:"minLength,omitempty"`
|
|
||||||
Pattern string `json:"pattern,omitempty"`
|
|
||||||
MaxItems *int64 `json:"maxItems,omitempty"`
|
|
||||||
MinItems *int64 `json:"minItems,omitempty"`
|
|
||||||
UniqueItems bool `json:"uniqueItems,omitempty"`
|
|
||||||
MultipleOf *float64 `json:"multipleOf,omitempty"`
|
|
||||||
Enum []interface{} `json:"enum,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Items a limited subset of JSON-Schema's items object.
|
// Items a limited subset of JSON-Schema's items object.
|
||||||
// It is used by parameter definitions that are not located in "body".
|
// It is used by parameter definitions that are not located in "body".
|
||||||
//
|
//
|
||||||
|
@ -180,6 +164,12 @@ func (i *Items) AllowDuplicates() *Items {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithValidations is a fluent method to set Items validations
|
||||||
|
func (i *Items) WithValidations(val CommonValidations) *Items {
|
||||||
|
i.SetValidations(SchemaValidations{CommonValidations: val})
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
// UnmarshalJSON hydrates this items instance with the data from JSON
|
||||||
func (i *Items) UnmarshalJSON(data []byte) error {
|
func (i *Items) UnmarshalJSON(data []byte) error {
|
||||||
var validations CommonValidations
|
var validations CommonValidations
|
||||||
|
|
3
vendor/github.com/go-openapi/spec/license.go
generated
vendored
3
vendor/github.com/go-openapi/spec/license.go
generated
vendored
|
@ -28,11 +28,13 @@ type License struct {
|
||||||
VendorExtensible
|
VendorExtensible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LicenseProps holds the properties of a License object
|
||||||
type LicenseProps struct {
|
type LicenseProps struct {
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
URL string `json:"url,omitempty"`
|
URL string `json:"url,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON hydrates License from json
|
||||||
func (l *License) UnmarshalJSON(data []byte) error {
|
func (l *License) UnmarshalJSON(data []byte) error {
|
||||||
if err := json.Unmarshal(data, &l.LicenseProps); err != nil {
|
if err := json.Unmarshal(data, &l.LicenseProps); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -40,6 +42,7 @@ func (l *License) UnmarshalJSON(data []byte) error {
|
||||||
return json.Unmarshal(data, &l.VendorExtensible)
|
return json.Unmarshal(data, &l.VendorExtensible)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarshalJSON produces License as json
|
||||||
func (l License) MarshalJSON() ([]byte, error) {
|
func (l License) MarshalJSON() ([]byte, error) {
|
||||||
b1, err := json.Marshal(l.LicenseProps)
|
b1, err := json.Marshal(l.LicenseProps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
41
vendor/github.com/go-openapi/spec/normalizer.go
generated
vendored
41
vendor/github.com/go-openapi/spec/normalizer.go
generated
vendored
|
@ -20,9 +20,12 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const windowsOS = "windows"
|
||||||
|
|
||||||
// normalize absolute path for cache.
|
// normalize absolute path for cache.
|
||||||
// on Windows, drive letters should be converted to lower as scheme in net/url.URL
|
// on Windows, drive letters should be converted to lower as scheme in net/url.URL
|
||||||
func normalizeAbsPath(path string) string {
|
func normalizeAbsPath(path string) string {
|
||||||
|
@ -71,27 +74,51 @@ func normalizePaths(refPath, base string) string {
|
||||||
return baseURL.String()
|
return baseURL.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isRoot is a temporary hack to discern windows file ref for ref.IsRoot().
|
||||||
|
// TODO: a more thorough change is needed to handle windows file refs.
|
||||||
|
func isRoot(ref *Ref) bool {
|
||||||
|
if runtime.GOOS != windowsOS {
|
||||||
|
return ref.IsRoot()
|
||||||
|
}
|
||||||
|
return !filepath.IsAbs(ref.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
// isAbs is a temporary hack to discern windows file ref for url IsAbs().
|
||||||
|
// TODO: a more thorough change is needed to handle windows file refs.
|
||||||
|
func isAbs(u *url.URL) bool {
|
||||||
|
if runtime.GOOS != windowsOS {
|
||||||
|
return u.IsAbs()
|
||||||
|
}
|
||||||
|
if len(u.Scheme) <= 1 {
|
||||||
|
// drive letter got caught as URI scheme
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return u.IsAbs()
|
||||||
|
}
|
||||||
|
|
||||||
// denormalizePaths returns to simplest notation on file $ref,
|
// denormalizePaths returns to simplest notation on file $ref,
|
||||||
// i.e. strips the absolute path and sets a path relative to the base path.
|
// i.e. strips the absolute path and sets a path relative to the base path.
|
||||||
//
|
//
|
||||||
// This is currently used when we rewrite ref after a circular ref has been detected
|
// This is currently used when we rewrite ref after a circular ref has been detected
|
||||||
func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {
|
func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {
|
||||||
debugLog("denormalizeFileRef for: %s", ref.String())
|
debugLog("denormalizeFileRef for: %s (relative: %s, original: %s)", ref.String(),
|
||||||
|
relativeBase, originalRelativeBase)
|
||||||
|
|
||||||
if ref.String() == "" || ref.IsRoot() || ref.HasFragmentOnly {
|
// log.Printf("denormalize: %s, IsRoot: %t,HasFragmentOnly: %t, HasFullURL: %t", ref.String(), ref.IsRoot(), ref.HasFragmentOnly, ref.HasFullURL)
|
||||||
|
if ref.String() == "" || isRoot(ref) || ref.HasFragmentOnly {
|
||||||
return ref
|
return ref
|
||||||
}
|
}
|
||||||
// strip relativeBase from URI
|
// strip relativeBase from URI
|
||||||
relativeBaseURL, _ := url.Parse(relativeBase)
|
relativeBaseURL, _ := url.Parse(relativeBase)
|
||||||
relativeBaseURL.Fragment = ""
|
relativeBaseURL.Fragment = ""
|
||||||
|
|
||||||
if relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) {
|
if isAbs(relativeBaseURL) && strings.HasPrefix(ref.String(), relativeBase) {
|
||||||
// this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix
|
// this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix
|
||||||
r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))
|
r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))
|
||||||
return &r
|
return &r
|
||||||
}
|
}
|
||||||
|
|
||||||
if relativeBaseURL.IsAbs() {
|
if isAbs(relativeBaseURL) {
|
||||||
// other absolute URL get unchanged (i.e. with a non-empty scheme)
|
// other absolute URL get unchanged (i.e. with a non-empty scheme)
|
||||||
return ref
|
return ref
|
||||||
}
|
}
|
||||||
|
@ -111,7 +138,7 @@ func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Re
|
||||||
// my normalized ref points to: /mypath/item.json#/target
|
// my normalized ref points to: /mypath/item.json#/target
|
||||||
// expected result: item.json#/target
|
// expected result: item.json#/target
|
||||||
parts := strings.Split(ref.String(), "#")
|
parts := strings.Split(ref.String(), "#")
|
||||||
relativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0])
|
relativePath, err := filepath.Rel(filepath.Dir(originalRelativeBaseURL.String()), parts[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// there is no common ancestor (e.g. different drives on windows)
|
// there is no common ancestor (e.g. different drives on windows)
|
||||||
// leaves the ref unchanged
|
// leaves the ref unchanged
|
||||||
|
@ -132,8 +159,6 @@ func normalizeFileRef(ref *Ref, relativeBase string) *Ref {
|
||||||
return &r
|
return &r
|
||||||
}
|
}
|
||||||
|
|
||||||
debugLog("normalizing %s against %s", ref.String(), relativeBase)
|
|
||||||
|
|
||||||
s := normalizePaths(ref.String(), relativeBase)
|
s := normalizePaths(ref.String(), relativeBase)
|
||||||
r, _ := NewRef(s)
|
r, _ := NewRef(s)
|
||||||
return &r
|
return &r
|
||||||
|
@ -148,5 +173,5 @@ func absPath(fname string) (string, error) {
|
||||||
return fname, nil
|
return fname, nil
|
||||||
}
|
}
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
return filepath.Join(wd, fname), err
|
return normalizeAbsPath(filepath.Join(wd, fname)), err
|
||||||
}
|
}
|
||||||
|
|
1
vendor/github.com/go-openapi/spec/operation.go
generated
vendored
1
vendor/github.com/go-openapi/spec/operation.go
generated
vendored
|
@ -25,7 +25,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
//gob.Register(map[string][]interface{}{})
|
|
||||||
gob.Register(map[string]interface{}{})
|
gob.Register(map[string]interface{}{})
|
||||||
gob.Register([]interface{}{})
|
gob.Register([]interface{}{})
|
||||||
}
|
}
|
||||||
|
|
11
vendor/github.com/go-openapi/spec/parameter.go
generated
vendored
11
vendor/github.com/go-openapi/spec/parameter.go
generated
vendored
|
@ -39,8 +39,7 @@ func PathParam(name string) *Parameter {
|
||||||
|
|
||||||
// BodyParam creates a body parameter
|
// BodyParam creates a body parameter
|
||||||
func BodyParam(name string, schema *Schema) *Parameter {
|
func BodyParam(name string, schema *Schema) *Parameter {
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema},
|
return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema}}
|
||||||
SimpleSchema: SimpleSchema{Type: "object"}}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FormDataParam creates a body parameter
|
// FormDataParam creates a body parameter
|
||||||
|
@ -58,7 +57,7 @@ func FileParam(name string) *Parameter {
|
||||||
func SimpleArrayParam(name, tpe, fmt string) *Parameter {
|
func SimpleArrayParam(name, tpe, fmt string) *Parameter {
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name},
|
return &Parameter{ParamProps: ParamProps{Name: name},
|
||||||
SimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: "csv",
|
SimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: "csv",
|
||||||
Items: &Items{SimpleSchema: SimpleSchema{Type: "string", Format: fmt}}}}
|
Items: &Items{SimpleSchema: SimpleSchema{Type: tpe, Format: fmt}}}}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParamRef creates a parameter that's a json reference
|
// ParamRef creates a parameter that's a json reference
|
||||||
|
@ -278,6 +277,12 @@ func (p *Parameter) AllowDuplicates() *Parameter {
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithValidations is a fluent method to set parameter validations
|
||||||
|
func (p *Parameter) WithValidations(val CommonValidations) *Parameter {
|
||||||
|
p.SetValidations(SchemaValidations{CommonValidations: val})
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
// UnmarshalJSON hydrates this items instance with the data from JSON
|
||||||
func (p *Parameter) UnmarshalJSON(data []byte) error {
|
func (p *Parameter) UnmarshalJSON(data []byte) error {
|
||||||
if err := json.Unmarshal(data, &p.CommonValidations); err != nil {
|
if err := json.Unmarshal(data, &p.CommonValidations); err != nil {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue