[Vendor] update go-swagger v0.21.0 -> v0.25.0 (#12670)
* Update go-swagger * vendor
This commit is contained in:
		
							parent
							
								
									66843f2237
								
							
						
					
					
						commit
						3270e7a443
					
				
							
								
								
									
										11
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								go.mod
									
									
									
									
									
								
							| @ -3,7 +3,6 @@ module code.gitea.io/gitea | |||||||
| go 1.14 | go 1.14 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	cloud.google.com/go v0.45.0 // indirect |  | ||||||
| 	code.gitea.io/gitea-vet v0.2.1 | 	code.gitea.io/gitea-vet v0.2.1 | ||||||
| 	gitea.com/lunny/levelqueue v0.3.0 | 	gitea.com/lunny/levelqueue v0.3.0 | ||||||
| 	gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b | 	gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b | ||||||
| @ -21,7 +20,6 @@ require ( | |||||||
| 	github.com/PuerkitoBio/goquery v1.5.1 | 	github.com/PuerkitoBio/goquery v1.5.1 | ||||||
| 	github.com/RoaringBitmap/roaring v0.4.23 // indirect | 	github.com/RoaringBitmap/roaring v0.4.23 // indirect | ||||||
| 	github.com/alecthomas/chroma v0.8.0 | 	github.com/alecthomas/chroma v0.8.0 | ||||||
| 	github.com/bgentry/speakeasy v0.1.0 // indirect |  | ||||||
| 	github.com/blevesearch/bleve v1.0.7 | 	github.com/blevesearch/bleve v1.0.7 | ||||||
| 	github.com/couchbase/gomemcached v0.0.0-20191004160342-7b5da2ec40b2 // indirect | 	github.com/couchbase/gomemcached v0.0.0-20191004160342-7b5da2ec40b2 // indirect | ||||||
| 	github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d // indirect | 	github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d // indirect | ||||||
| @ -41,15 +39,13 @@ require ( | |||||||
| 	github.com/go-enry/go-enry/v2 v2.5.2 | 	github.com/go-enry/go-enry/v2 v2.5.2 | ||||||
| 	github.com/go-git/go-billy/v5 v5.0.0 | 	github.com/go-git/go-billy/v5 v5.0.0 | ||||||
| 	github.com/go-git/go-git/v5 v5.1.0 | 	github.com/go-git/go-git/v5 v5.1.0 | ||||||
| 	github.com/go-openapi/jsonreference v0.19.3 // indirect |  | ||||||
| 	github.com/go-redis/redis v6.15.2+incompatible | 	github.com/go-redis/redis v6.15.2+incompatible | ||||||
| 	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.21.0 | 	github.com/go-swagger/go-swagger v0.25.0 | ||||||
| 	github.com/go-testfixtures/testfixtures/v3 v3.4.0 | 	github.com/go-testfixtures/testfixtures/v3 v3.4.0 | ||||||
| 	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/golang/protobuf v1.4.1 // indirect |  | ||||||
| 	github.com/google/go-github/v32 v32.1.0 | 	github.com/google/go-github/v32 v32.1.0 | ||||||
| 	github.com/google/uuid v1.1.1 | 	github.com/google/uuid v1.1.1 | ||||||
| 	github.com/gorilla/context v1.1.1 | 	github.com/gorilla/context v1.1.1 | ||||||
| @ -65,7 +61,6 @@ require ( | |||||||
| 	github.com/lafriks/xormstore v1.3.2 | 	github.com/lafriks/xormstore v1.3.2 | ||||||
| 	github.com/lib/pq v1.7.0 | 	github.com/lib/pq v1.7.0 | ||||||
| 	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 | 	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 | ||||||
| 	github.com/mailru/easyjson v0.7.0 // indirect |  | ||||||
| 	github.com/markbates/goth v1.61.2 | 	github.com/markbates/goth v1.61.2 | ||||||
| 	github.com/mattn/go-isatty v0.0.12 | 	github.com/mattn/go-isatty v0.0.12 | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.0 | 	github.com/mattn/go-sqlite3 v1.14.0 | ||||||
| @ -84,14 +79,13 @@ require ( | |||||||
| 	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.2.0 | ||||||
| 	github.com/prometheus/client_golang v1.1.0 | 	github.com/prometheus/client_golang v1.1.0 | ||||||
| 	github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 // indirect |  | ||||||
| 	github.com/prometheus/procfs v0.0.4 // indirect | 	github.com/prometheus/procfs v0.0.4 // indirect | ||||||
| 	github.com/quasoft/websspi v1.0.0 | 	github.com/quasoft/websspi v1.0.0 | ||||||
| 	github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001 // indirect | 	github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001 // indirect | ||||||
| 	github.com/sergi/go-diff v1.1.0 | 	github.com/sergi/go-diff v1.1.0 | ||||||
| 	github.com/shurcooL/httpfs v0.0.0-20190527155220-6a4d4a70508b // indirect | 	github.com/shurcooL/httpfs v0.0.0-20190527155220-6a4d4a70508b // indirect | ||||||
| 	github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd | 	github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd | ||||||
| 	github.com/stretchr/testify v1.5.1 | 	github.com/stretchr/testify v1.6.1 | ||||||
| 	github.com/tecbot/gorocksdb v0.0.0-20181010114359-8752a9433481 // indirect | 	github.com/tecbot/gorocksdb v0.0.0-20181010114359-8752a9433481 // indirect | ||||||
| 	github.com/tinylib/msgp v1.1.2 // indirect | 	github.com/tinylib/msgp v1.1.2 // indirect | ||||||
| 	github.com/tstranex/u2f v1.0.0 | 	github.com/tstranex/u2f v1.0.0 | ||||||
| @ -111,7 +105,6 @@ require ( | |||||||
| 	golang.org/x/text v0.3.3 | 	golang.org/x/text v0.3.3 | ||||||
| 	golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 // indirect | 	golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 // indirect | ||||||
| 	golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d | 	golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d | ||||||
| 	google.golang.org/appengine v1.6.5 // indirect |  | ||||||
| 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | ||||||
| 	gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 // indirect | 	gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 // indirect | ||||||
| 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df | 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df | ||||||
|  | |||||||
							
								
								
									
										227
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										227
									
								
								go.sum
									
									
									
									
									
								
							| @ -5,12 +5,17 @@ cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7h | |||||||
| cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= | cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= | ||||||
| cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= | cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= | ||||||
| cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= | cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= | ||||||
| cloud.google.com/go v0.45.0 h1:bALuGBSgE+BD4rxsopAYlqjcwqcQtye6pWG4bC3N/k0= | cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= | ||||||
| cloud.google.com/go v0.45.0/go.mod h1:452BcPOeI9AZfbvDw0Tbo7D32wA+WX9WME8AZwMEDZU= | cloud.google.com/go v0.46.3 h1:AVXDdKsrtX33oR9fbCMu/+c1o8Ofjq6Ku/MInaLVg5Y= | ||||||
|  | cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= | ||||||
| cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | ||||||
| cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= | cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= | ||||||
|  | cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= | ||||||
|  | cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= | ||||||
|  | cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= | ||||||
| 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= | ||||||
|  | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | ||||||
| gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I= | gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I= | ||||||
| gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= | gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= | ||||||
| gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b h1:vXt85uYV17KURaUlhU7v4GbCShkqRZDSfo0TkC0YCjQ= | gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b h1:vXt85uYV17KURaUlhU7v4GbCShkqRZDSfo0TkC0YCjQ= | ||||||
| @ -88,12 +93,18 @@ github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9Pq | |||||||
| github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= | github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= | ||||||
| github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= | github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= | ||||||
| github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= | github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= | ||||||
|  | github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= | ||||||
| github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= | github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= | ||||||
|  | github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= | ||||||
|  | github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= | ||||||
| github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= | ||||||
| github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= | ||||||
| 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/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/aws/aws-sdk-go v1.25.25/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= | github.com/aws/aws-sdk-go v1.25.25/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= | ||||||
| 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= | ||||||
| @ -103,6 +114,7 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= | |||||||
| github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | ||||||
| github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= | github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= | ||||||
| github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | ||||||
|  | github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= | ||||||
| github.com/blevesearch/bleve v1.0.7 h1:4PspZE7XABMSKcVpzAKp0E05Yer1PIYmTWk+1ngNr/c= | github.com/blevesearch/bleve v1.0.7 h1:4PspZE7XABMSKcVpzAKp0E05Yer1PIYmTWk+1ngNr/c= | ||||||
| github.com/blevesearch/bleve v1.0.7/go.mod h1:3xvmBtaw12Y4C9iA1RTzwWCof5j5HjydjCTiDE2TeE0= | github.com/blevesearch/bleve v1.0.7/go.mod h1:3xvmBtaw12Y4C9iA1RTzwWCof5j5HjydjCTiDE2TeE0= | ||||||
| github.com/blevesearch/blevex v0.0.0-20190916190636-152f0fe5c040 h1:SjYVcfJVZoCfBlg+fkaq2eoZHTf5HaJfaTeTkOtyfHQ= | github.com/blevesearch/blevex v0.0.0-20190916190636-152f0fe5c040 h1:SjYVcfJVZoCfBlg+fkaq2eoZHTf5HaJfaTeTkOtyfHQ= | ||||||
| @ -123,19 +135,20 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8 | |||||||
| 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/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/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= | ||||||
| github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= | github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= | ||||||
| github.com/chris-ramon/douceur v0.2.0 h1:IDMEdxlEUUBYBKE4z/mJnFyVXox+MjuEVDJNN27glkU= | github.com/chris-ramon/douceur v0.2.0 h1:IDMEdxlEUUBYBKE4z/mJnFyVXox+MjuEVDJNN27glkU= | ||||||
| github.com/chris-ramon/douceur v0.2.0/go.mod h1:wDW5xjJdeoMm1mRt4sD4c/LbF/mWdEpRXQKjTR8nIBE= | github.com/chris-ramon/douceur v0.2.0/go.mod h1:wDW5xjJdeoMm1mRt4sD4c/LbF/mWdEpRXQKjTR8nIBE= | ||||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | ||||||
| github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= | github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= | ||||||
| github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | ||||||
| github.com/corbym/gocrest v1.0.3 h1:gwEdq6RkTmq+09CTuM29DfKOCtZ7G7bcyxs3IZ6EVdU= |  | ||||||
| github.com/corbym/gocrest v1.0.3/go.mod h1:maVFL5lbdS2PgfOQgGRWDYTeunSWQeiEgoNdTABShCs= |  | ||||||
| github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= | github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= | ||||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | ||||||
|  | github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | ||||||
| github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= | github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= | ||||||
| github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= | github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= | ||||||
| github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
|  | github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
| github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||||
| github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| @ -197,6 +210,8 @@ github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= | |||||||
| github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= | github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= | ||||||
| github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= | github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= | ||||||
| github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= | github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= | ||||||
|  | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | ||||||
|  | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||||
| github.com/ethantkoenig/rupture v0.0.0-20180203182544-0a76f03a811a h1:M1bRpaZAn4GSsqu3hdK2R8H0AH9O6vqCTCbm2oAFGfE= | github.com/ethantkoenig/rupture v0.0.0-20180203182544-0a76f03a811a h1:M1bRpaZAn4GSsqu3hdK2R8H0AH9O6vqCTCbm2oAFGfE= | ||||||
| github.com/ethantkoenig/rupture v0.0.0-20180203182544-0a76f03a811a/go.mod h1:MkKY/CB98aVE4VxO63X5vTQKUgcn+3XP15LMASe3lYs= | github.com/ethantkoenig/rupture v0.0.0-20180203182544-0a76f03a811a/go.mod h1:MkKY/CB98aVE4VxO63X5vTQKUgcn+3XP15LMASe3lYs= | ||||||
| github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ= | github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ= | ||||||
| @ -205,6 +220,7 @@ github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojt | |||||||
| github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= | github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= | ||||||
| github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870 h1:E2s37DuLxFhQDg5gKsWoLBOB0n+ZW8s599zru8FJ2/Y= | github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870 h1:E2s37DuLxFhQDg5gKsWoLBOB0n+ZW8s599zru8FJ2/Y= | ||||||
| github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= | github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= | ||||||
|  | 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/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= | github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= | ||||||
| @ -215,6 +231,8 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 | |||||||
| github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= | github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= | ||||||
| github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= | github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= | ||||||
| github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | ||||||
|  | github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= | ||||||
|  | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | ||||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||||
| github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= | github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= | ||||||
| github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | ||||||
| @ -237,6 +255,7 @@ github.com/go-git/go-git-fixtures/v4 v4.0.1 h1:q+IFMfLx200Q3scvt2hN79JsEzy4AmBTp | |||||||
| github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= | github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= | ||||||
| github.com/go-git/go-git/v5 v5.1.0 h1:HxJn9g/E7eYvKW3Fm7Jt4ee8LXfPOm/H1cdDu8vEssk= | github.com/go-git/go-git/v5 v5.1.0 h1:HxJn9g/E7eYvKW3Fm7Jt4ee8LXfPOm/H1cdDu8vEssk= | ||||||
| github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= | github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= | ||||||
|  | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | ||||||
| github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | ||||||
| github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | ||||||
| github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | ||||||
| @ -248,10 +267,15 @@ github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9sn | |||||||
| github.com/go-openapi/analysis v0.19.4/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 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | ||||||
| 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/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.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/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||||
|  | 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/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= | ||||||
| @ -264,37 +288,53 @@ github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3Hfo | |||||||
| 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.4 h1:3Vw+rh13uq2JFNxgnMTGE1rnoieU9FmyE1gvnyylsYg= | ||||||
|  | github.com/go-openapi/jsonreference v0.19.4/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= | ||||||
| github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | ||||||
| github.com/go-openapi/loads v0.19.3 h1:jwIoahqCmaA5OBoc/B+1+Mu2L0Gr8xYQnbeyQEo/7b0= | github.com/go-openapi/loads v0.19.3 h1:jwIoahqCmaA5OBoc/B+1+Mu2L0Gr8xYQnbeyQEo/7b0= | ||||||
| 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/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||||
| 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.5 h1:h4Zk7oTfB3ZYM2oMNliQvL+3BrDstTIX8lqP7yaYCuI= | github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= | ||||||
| github.com/go-openapi/runtime v0.19.5/go.mod h1:WIH6IYPXOrtgTClTV8xzdrD20jBlrK25D0aQbdSlqp8= | github.com/go-openapi/runtime v0.19.20 h1:J/t+QIjbcoq8WJvjGxRKiFBhqUE8slS9SbmD0Oi/raQ= | ||||||
|  | github.com/go-openapi/runtime v0.19.20/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.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= | ||||||
| github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | ||||||
| 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/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/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||||
| 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= | ||||||
| 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/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/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= | ||||||
| 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/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/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 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= | github.com/go-openapi/validate v0.19.3 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= | ||||||
| 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/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||||
| 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-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= | github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= | ||||||
| @ -303,14 +343,38 @@ 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.21.0 h1:AX9mdfzp6eJtUe92nFrWmbK7ocRgkCDPJs0FsSSTDlA= | github.com/go-swagger/go-swagger v0.25.0 h1:FxhyrWWV8V/A9P6GtI5szWordAdbb6Y0nqdY/y9So2w= | ||||||
| github.com/go-swagger/go-swagger v0.21.0/go.mod h1:tDb8PdDVFcaE8EPXkMOsuxpL3UEPiwu1UDZar9Z/1RY= | github.com/go-swagger/go-swagger v0.25.0/go.mod h1:9639ioXrPX9E6BbnbaDklGXjNz7upAXoNBwL4Ok11Vk= | ||||||
| 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.0 h1:cny44xqH4ctXRld/COxFGPC7XDyOU8KNnwmfCxEEqoQ= | github.com/go-testfixtures/testfixtures/v3 v3.4.0 h1:cny44xqH4ctXRld/COxFGPC7XDyOU8KNnwmfCxEEqoQ= | ||||||
| github.com/go-testfixtures/testfixtures/v3 v3.4.0/go.mod h1:P4L3WxgOsCLbAeUC50qX5rdj1ULZfUMqgCbqah3OH5U= | github.com/go-testfixtures/testfixtures/v3 v3.4.0/go.mod h1:P4L3WxgOsCLbAeUC50qX5rdj1ULZfUMqgCbqah3OH5U= | ||||||
| github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:9wScpmSP5A3Bk8V3XHWUcJmYTh+ZnlHVyc+A4oZYS3Y= | github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:9wScpmSP5A3Bk8V3XHWUcJmYTh+ZnlHVyc+A4oZYS3Y= | ||||||
| github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM= | github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM= | ||||||
|  | github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= | ||||||
|  | github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
|  | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
|  | github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= | ||||||
|  | github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= | ||||||
|  | github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= | ||||||
|  | github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= | ||||||
|  | github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= | ||||||
|  | github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= | ||||||
|  | github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= | ||||||
|  | github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= | ||||||
|  | github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= | ||||||
|  | github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= | ||||||
|  | github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= | ||||||
| github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= | github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= | ||||||
| github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= | github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= | ||||||
| github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= | github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= | ||||||
| @ -342,6 +406,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W | |||||||
| github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= | ||||||
| github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= | github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= | ||||||
| github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= | github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= | ||||||
|  | github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= | ||||||
|  | github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= | ||||||
| github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= | github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= | ||||||
| github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| @ -352,6 +418,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw | |||||||
| github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||||
| github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= | github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= | ||||||
| github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
|  | github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= | ||||||
|  | github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
| github.com/google/go-github/v32 v32.1.0 h1:GWkQOdXqviCPx7Q7Fj+KyPoGm4SwHRh8rheoPhd27II= | github.com/google/go-github/v32 v32.1.0 h1:GWkQOdXqviCPx7Q7Fj+KyPoGm4SwHRh8rheoPhd27II= | ||||||
| github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= | github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= | ||||||
| github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= | github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= | ||||||
| @ -360,6 +428,7 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ | |||||||
| github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | ||||||
| github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
| github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
|  | 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 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= | ||||||
| @ -389,21 +458,37 @@ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+ | |||||||
| github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= | github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= | ||||||
| github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= | github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= | ||||||
| github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | ||||||
| github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= | github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= | ||||||
| github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= | github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= | ||||||
| github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= | github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= | ||||||
| github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= | github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= | ||||||
|  | github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= | ||||||
|  | github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | ||||||
|  | github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= | github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= | github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= | ||||||
| github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= | github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= | ||||||
| github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= | github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= | ||||||
|  | github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= | ||||||
|  | github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= | ||||||
|  | github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | ||||||
| github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= | github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= | ||||||
| github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM= | github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM= | ||||||
| github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= | github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= | ||||||
|  | github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= | ||||||
|  | github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= | ||||||
|  | github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= | ||||||
|  | github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | ||||||
|  | github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | ||||||
|  | github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= | ||||||
| github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | ||||||
| github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | ||||||
| github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= | github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= | ||||||
| github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= | github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= | ||||||
|  | github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= | ||||||
|  | github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= | ||||||
|  | github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= | ||||||
|  | github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= | ||||||
| github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= | github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= | ||||||
| github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= | github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= | ||||||
| github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= | github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= | ||||||
| @ -479,6 +564,8 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY | |||||||
| github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= | github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= | ||||||
| github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | ||||||
| github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= | github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= | ||||||
|  | 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/kballard/go-shellquote v0.0.0-20170619183022-cd60e84ee657 h1:vE7J1m7cCpiRVEIr1B5ccDxRpbPsWT5JU3if2Di5nE4= | github.com/kballard/go-shellquote v0.0.0-20170619183022-cd60e84ee657 h1:vE7J1m7cCpiRVEIr1B5ccDxRpbPsWT5JU3if2Di5nE4= | ||||||
| github.com/kballard/go-shellquote v0.0.0-20170619183022-cd60e84ee657/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= | github.com/kballard/go-shellquote v0.0.0-20170619183022-cd60e84ee657/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= | ||||||
| github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= | github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= | ||||||
| @ -486,9 +573,11 @@ github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT | |||||||
| github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 h1:cTxwSmnaqLoo+4tLukHoB9iqHOu3LmLhRmgUxZo6Vp4= | github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 h1:cTxwSmnaqLoo+4tLukHoB9iqHOu3LmLhRmgUxZo6Vp4= | ||||||
| github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= | github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= | ||||||
| github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | ||||||
|  | github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||||
| github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||||||
| 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.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | github.com/klauspost/compress v1.9.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
|  | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
| github.com/klauspost/compress v1.10.11 h1:K9z59aO18Aywg2b/WSgBaUX99mHy2BES18Cr5lBKZHk= | github.com/klauspost/compress v1.10.11 h1:K9z59aO18Aywg2b/WSgBaUX99mHy2BES18Cr5lBKZHk= | ||||||
| github.com/klauspost/compress v1.10.11/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | github.com/klauspost/compress v1.10.11/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= | ||||||
| @ -502,9 +591,12 @@ github.com/kljensen/snowball v0.6.0/go.mod h1:27N7E8fVU5H68RlUmnWwZCfxgt4POBJfEN | |||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= | ||||||
| github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | ||||||
| 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/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= | ||||||
|  | github.com/kr/pretty v0.2.0/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= | ||||||
| @ -533,11 +625,13 @@ github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN | |||||||
| 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= | ||||||
| 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.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= | github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= | ||||||
| github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
| 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.61.2 h1:jDowrUH5qw8KGuQdKwFhLzkXkTYCIPfz3LHADJsiPIs= | github.com/markbates/goth v1.61.2 h1:jDowrUH5qw8KGuQdKwFhLzkXkTYCIPfz3LHADJsiPIs= | ||||||
| github.com/markbates/goth v1.61.2/go.mod h1:qh2QfwZoWRucQ+DR5KVKC6dUGkNCToWh4vS45GIzFsY= | github.com/markbates/goth v1.61.2/go.mod h1:qh2QfwZoWRucQ+DR5KVKC6dUGkNCToWh4vS45GIzFsY= | ||||||
|  | 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/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= | ||||||
| github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= | github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= | ||||||
| github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | ||||||
| @ -545,6 +639,7 @@ github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaa | |||||||
| 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 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= | github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= | ||||||
| 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-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= | ||||||
| github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | ||||||
| @ -572,22 +667,32 @@ github.com/mholt/archiver/v3 v3.3.0 h1:vWjhY8SQp5yzM9P6OJ/eZEkmi3UAbRrxCq48MxjAz | |||||||
| github.com/mholt/archiver/v3 v3.3.0/go.mod h1:YnQtqsp+94Rwd0D/rk5cnLrxusUBUXg+08Ebtr1Mqao= | github.com/mholt/archiver/v3 v3.3.0/go.mod h1:YnQtqsp+94Rwd0D/rk5cnLrxusUBUXg+08Ebtr1Mqao= | ||||||
| github.com/microcosm-cc/bluemonday v1.0.3-0.20191119130333-0a75d7616912 h1:hJde9rA24hlTcAYSwJoXpDUyGtfKQ/jsofw+WaDqGrI= | github.com/microcosm-cc/bluemonday v1.0.3-0.20191119130333-0a75d7616912 h1:hJde9rA24hlTcAYSwJoXpDUyGtfKQ/jsofw+WaDqGrI= | ||||||
| github.com/microcosm-cc/bluemonday v1.0.3-0.20191119130333-0a75d7616912/go.mod h1:8iwZnFn2CDDNZ0r6UXhF4xawGvzaqzCRa1n3/lO3W2w= | github.com/microcosm-cc/bluemonday v1.0.3-0.20191119130333-0a75d7616912/go.mod h1:8iwZnFn2CDDNZ0r6UXhF4xawGvzaqzCRa1n3/lO3W2w= | ||||||
|  | github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | ||||||
| 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.4 h1:M9glnGclD87VfttesWzURw7SHqq1XDIYGrfTykBTI50= | github.com/minio/minio-go/v7 v7.0.4 h1:M9glnGclD87VfttesWzURw7SHqq1XDIYGrfTykBTI50= | ||||||
| github.com/minio/minio-go/v7 v7.0.4/go.mod h1:CSt2ETZNs+bIIhWTse0mcZKZWMGrFU7Er7RR0TmkDYk= | github.com/minio/minio-go/v7 v7.0.4/go.mod h1:CSt2ETZNs+bIIhWTse0mcZKZWMGrFU7Er7RR0TmkDYk= | ||||||
| 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/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | ||||||
|  | github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
| github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | ||||||
| github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
|  | github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= | ||||||
|  | github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= | ||||||
|  | github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= | ||||||
|  | github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||||
| 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/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= | ||||||
| github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||||
| github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= | github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= | ||||||
| github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||||
|  | github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||||
| github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c h1:3wkDRdxK92dF+c1ke2dtj7ZzemFWBHB9plnJOtlwdFA= | github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c h1:3wkDRdxK92dF+c1ke2dtj7ZzemFWBHB9plnJOtlwdFA= | ||||||
| github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= | github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= | ||||||
| github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | ||||||
| @ -621,10 +726,13 @@ github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= | |||||||
| github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | ||||||
| github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= | github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= | ||||||
| github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= | github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= | ||||||
|  | github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= | ||||||
| github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | github.com/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 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg= | github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg= | ||||||
| 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 h1:Keo9qb7iRJs2voHvunFtuuYFsbWeOBh8/P9v/kVMFtw= | ||||||
|  | github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= | ||||||
| github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= | github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= | ||||||
| github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= | github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= | ||||||
| github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= | github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= | ||||||
| @ -633,8 +741,10 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE | |||||||
| 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 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | ||||||
| github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
|  | github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= | ||||||
| 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/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= | github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= | ||||||
| github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= | github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= | ||||||
| github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= | github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= | ||||||
| @ -670,12 +780,17 @@ github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqn | |||||||
| github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001 h1:YDeskXpkNDhPdWN3REluVa46HQOVuVkjkd2sWnrABNQ= | github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001 h1:YDeskXpkNDhPdWN3REluVa46HQOVuVkjkd2sWnrABNQ= | ||||||
| github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= | github.com/remyoudompheng/bigfft v0.0.0-20190321074620-2f0d2b0e0001/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= | ||||||
| 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.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
| github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= | github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= | ||||||
| github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= | github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= | ||||||
| github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= | github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= | ||||||
| github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | ||||||
| github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= | github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= | ||||||
|  | github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | ||||||
| github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | ||||||
|  | github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= | ||||||
| github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= | github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= | ||||||
| github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= | github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= | ||||||
| github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= | github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= | ||||||
| @ -691,6 +806,7 @@ github.com/siddontang/go-snappy v0.0.0-20140704025258-d8f7bb82a96d/go.mod h1:vq0 | |||||||
| github.com/siddontang/ledisdb v0.0.0-20190202134119-8ceb77e66a92/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg= | github.com/siddontang/ledisdb v0.0.0-20190202134119-8ceb77e66a92/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg= | ||||||
| github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA= | github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA= | ||||||
| github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= | github.com/sirupsen/logrus v1.2.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= | ||||||
| github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= | github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= | ||||||
| @ -703,13 +819,18 @@ github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:X | |||||||
| github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||||
| github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 h1:WN9BUFbdyOsSH/XohnWpXOlq9NBD5sGAB2FciQMUEe8= | github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 h1:WN9BUFbdyOsSH/XohnWpXOlq9NBD5sGAB2FciQMUEe8= | ||||||
| github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||||
|  | github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= | ||||||
|  | github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | ||||||
| github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= | github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= | ||||||
| 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.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= | github.com/spf13/afero v1.3.2 h1:GDarE4TJQI52kYSbSAmLiId1Elfj+xgSDqrUZxFhxlU= | ||||||
| github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= | github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= | ||||||
| github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= | github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= | ||||||
| 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/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||||
|  | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | ||||||
| github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= | github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= | ||||||
| github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= | github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= | ||||||
| github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= | github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= | ||||||
| @ -718,8 +839,8 @@ 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.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= | github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= | ||||||
| github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= | github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= | ||||||
| github.com/steveyen/gtreap v0.1.0 h1:CjhzTa274PyJLJuMZwIzCO1PfC00oRa8d1Kc78bFXJM= | github.com/steveyen/gtreap v0.1.0 h1:CjhzTa274PyJLJuMZwIzCO1PfC00oRa8d1Kc78bFXJM= | ||||||
| github.com/steveyen/gtreap v0.1.0/go.mod h1:kl/5J7XbrOmlIbYIXdRHDDE5QxHqpk0cmkT7Z4dM9/Y= | github.com/steveyen/gtreap v0.1.0/go.mod h1:kl/5J7XbrOmlIbYIXdRHDDE5QxHqpk0cmkT7Z4dM9/Y= | ||||||
| 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= | ||||||
| @ -731,6 +852,10 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy | |||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||||
| github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= | github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= | ||||||
| github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | ||||||
|  | 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/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= | ||||||
|  | github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= | ||||||
| github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= | github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= | ||||||
| github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= | github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= | ||||||
| github.com/tecbot/gorocksdb v0.0.0-20181010114359-8752a9433481 h1:HOxvxvnntLiPn123Fk+twfUhCQdMDaqmb0cclArW0T0= | github.com/tecbot/gorocksdb v0.0.0-20181010114359-8752a9433481 h1:HOxvxvnntLiPn123Fk+twfUhCQdMDaqmb0cclArW0T0= | ||||||
| @ -745,7 +870,6 @@ github.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9r | |||||||
| github.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM= | github.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM= | ||||||
| github.com/tstranex/u2f v1.0.0 h1:HhJkSzDDlVSVIVt7pDJwCHQj67k7A5EeBgPmeD+pVsQ= | github.com/tstranex/u2f v1.0.0 h1:HhJkSzDDlVSVIVt7pDJwCHQj67k7A5EeBgPmeD+pVsQ= | ||||||
| github.com/tstranex/u2f v1.0.0/go.mod h1:eahSLaqAS0zsIEv80+vXT7WanXs7MQQDg3j3wGBSayo= | github.com/tstranex/u2f v1.0.0/go.mod h1:eahSLaqAS0zsIEv80+vXT7WanXs7MQQDg3j3wGBSayo= | ||||||
| github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= |  | ||||||
| github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | ||||||
| github.com/ulikunitz/xz v0.5.6 h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8= | github.com/ulikunitz/xz v0.5.6 h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8= | ||||||
| github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= | github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= | ||||||
| @ -766,6 +890,8 @@ github.com/xanzy/go-gitlab v0.31.0 h1:+nHztQuCXGSMluKe5Q9IRaPdz6tO8O0gMkQ0vqGpiB | |||||||
| github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= | github.com/xanzy/go-gitlab v0.31.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/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | ||||||
| github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= | ||||||
| github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= | ||||||
| github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | ||||||
| @ -791,6 +917,10 @@ go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= | |||||||
| 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 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | ||||||
| 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.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
|  | go.mongodb.org/mongo-driver v1.3.5 h1:S0ZOruh4YGHjD7JoN7mIsTrNjnQbOjrmgrx6l6pZN7I= | ||||||
|  | go.mongodb.org/mongo-driver v1.3.5/go.mod h1:Ual6Gkco7ZGQw8wE1t4tLnvBsf6yVSM60qW6TgOeJ5c= | ||||||
| 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.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= | go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= | ||||||
| go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= | go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= | ||||||
| @ -801,18 +931,21 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ | |||||||
| go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | ||||||
| go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | ||||||
| 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-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||||
| golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||||
| golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/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-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | golang.org/x/crypto v0.0.0-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-20190510104115-cbcb75029529/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= | ||||||
| golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20190907121410-71b5226ff739/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= |  | ||||||
| golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| @ -822,14 +955,23 @@ golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPh | |||||||
| golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM= | golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM= | ||||||
| golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| 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-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | ||||||
|  | golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= | ||||||
|  | golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= | ||||||
| golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= | golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= | ||||||
|  | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= | ||||||
| golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | ||||||
| golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= | ||||||
| golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | ||||||
| golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||||
| golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||||
|  | golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||||
|  | golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||||
| golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | ||||||
|  | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | ||||||
|  | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | ||||||
|  | golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= | ||||||
| golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | ||||||
| golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= | golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= | ||||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| @ -840,8 +982,10 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r | |||||||
| golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/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-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
|  | golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
|  | golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| @ -862,6 +1006,7 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL | |||||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | ||||||
|  | golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | ||||||
| golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||||
| golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= | golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= | ||||||
| golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||||
| @ -876,12 +1021,15 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ | |||||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-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= | ||||||
| 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-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/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
|  | golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| @ -895,9 +1043,11 @@ golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | 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-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-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/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-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| @ -905,7 +1055,7 @@ golang.org/x/sys v0.0.0-20190730183949-1393eb018365/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190907184412-d223b2b6db03/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| @ -930,25 +1080,36 @@ golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxb | |||||||
| 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-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-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= | ||||||
| golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||||
| golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/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-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||||
| golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||||
| golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||||
| golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||||
|  | golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||||
|  | golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/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/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
|  | golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
|  | golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
|  | golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
|  | golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20200225230052-807dcd883420/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= | golang.org/x/tools v0.0.0-20200225230052-807dcd883420/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= | ||||||
| golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224 h1:azwY/v0y0K4mFHVsg5+UrTgchqALYWpqVo6vL5OmkmI= | golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224 h1:azwY/v0y0K4mFHVsg5+UrTgchqALYWpqVo6vL5OmkmI= | ||||||
| golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= | golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= | ||||||
|  | golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d h1:XZxUC4/ZNKTjrT4/Oc9gCgIYnzPW3/CefdPjsndrVWM= | golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d h1:XZxUC4/ZNKTjrT4/Oc9gCgIYnzPW3/CefdPjsndrVWM= | ||||||
| golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| 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= | ||||||
| @ -962,6 +1123,7 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt | |||||||
| google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= | google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= | ||||||
| google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= | google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= | ||||||
| google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= | google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= | ||||||
|  | google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= | ||||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | ||||||
| google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| @ -969,10 +1131,9 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 | |||||||
| google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | ||||||
| google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= |  | ||||||
| google.golang.org/appengine v1.6.4/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | google.golang.org/appengine v1.6.4/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | ||||||
| google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= | google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= | ||||||
| google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | ||||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||||
| google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | ||||||
| google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | ||||||
| @ -981,11 +1142,15 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn | |||||||
| google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | ||||||
| google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||||
|  | google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= | ||||||
|  | google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= | ||||||
|  | google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= | ||||||
| google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= | google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= | ||||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||||
| google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= | google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= | ||||||
| google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= |  | ||||||
| google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= | google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= | ||||||
|  | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | ||||||
|  | google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= | ||||||
| google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | ||||||
| google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | ||||||
| google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | ||||||
| @ -993,6 +1158,10 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE | |||||||
| google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= | ||||||
| google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY= | google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY= | ||||||
| google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||||
|  | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||||
|  | google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||||
|  | google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= | ||||||
|  | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | ||||||
| gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= | gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= | ||||||
| gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= | gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= | ||||||
| gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= | gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= | ||||||
| @ -1003,6 +1172,7 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 | |||||||
| gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= | ||||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | 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/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= | gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= | ||||||
| gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | ||||||
| gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= | gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= | ||||||
| @ -1012,6 +1182,7 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | |||||||
| gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
| gopkg.in/ini.v1 v1.44.2/go.mod h1:M3Cogqpuv0QCi3ExAY5V4uOt4qb/R3xZubo9m8lK5wg= | gopkg.in/ini.v1 v1.44.2/go.mod h1:M3Cogqpuv0QCi3ExAY5V4uOt4qb/R3xZubo9m8lK5wg= | ||||||
| gopkg.in/ini.v1 v1.46.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | gopkg.in/ini.v1 v1.46.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
|  | gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
| gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww= | gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww= | ||||||
| gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
| gopkg.in/ini.v1 v1.60.1 h1:P5y5shSkb0CFe44qEeMBgn8JLow09MP17jlJHanke5g= | gopkg.in/ini.v1 v1.60.1 h1:P5y5shSkb0CFe44qEeMBgn8JLow09MP17jlJHanke5g= | ||||||
| @ -1021,7 +1192,7 @@ gopkg.in/ini.v1 v1.60.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | |||||||
| gopkg.in/ldap.v3 v3.0.2 h1:R6RBtabK6e1GO0eQKtkyOFbAHO73QesLzI2w2DZ6b9w= | gopkg.in/ldap.v3 v3.0.2 h1:R6RBtabK6e1GO0eQKtkyOFbAHO73QesLzI2w2DZ6b9w= | ||||||
| gopkg.in/ldap.v3 v3.0.2/go.mod h1:oxD7NyBuxchC+SgJDE1Q5Od05eGt29SDQVBmV+HYbzw= | gopkg.in/ldap.v3 v3.0.2/go.mod h1:oxD7NyBuxchC+SgJDE1Q5Od05eGt29SDQVBmV+HYbzw= | ||||||
| gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= | gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= | ||||||
| gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= | gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= | ||||||
| gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= | ||||||
| gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= | ||||||
| gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= | gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= | ||||||
| @ -1034,10 +1205,16 @@ 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.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-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= | ||||||
|  | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
|  | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
|  | honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= | ||||||
| k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= | k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= | ||||||
| mvdan.cc/xurls/v2 v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA= | mvdan.cc/xurls/v2 v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA= | ||||||
| mvdan.cc/xurls/v2 v2.1.0/go.mod h1:5GrSd9rOnKOpZaji1OZLYL/yeAAtGDlo/cFe+8K5n8E= | mvdan.cc/xurls/v2 v2.1.0/go.mod h1:5GrSd9rOnKOpZaji1OZLYL/yeAAtGDlo/cFe+8K5n8E= | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								vendor/cloud.google.com/go/compute/metadata/.repo-metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								vendor/cloud.google.com/go/compute/metadata/.repo-metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | { | ||||||
|  |   "name": "metadata", | ||||||
|  |   "name_pretty": "Google Compute Engine Metadata API", | ||||||
|  |   "product_documentation": "https://cloud.google.com/compute/docs/storing-retrieving-metadata", | ||||||
|  |   "client_documentation": "https://godoc.org/cloud.google.com/go/compute/metadata", | ||||||
|  |   "release_level": "ga", | ||||||
|  |   "language": "go", | ||||||
|  |   "repo": "googleapis/google-cloud-go", | ||||||
|  |   "distribution_name": "cloud.google.com/go/compute/metadata", | ||||||
|  |   "api_id": "compute:metadata", | ||||||
|  |   "requires_billing": false | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								vendor/github.com/asaskevich/govalidator/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/asaskevich/govalidator/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | bin/ | ||||||
|  | .idea/ | ||||||
|  | # Binaries for programs and plugins | ||||||
|  | *.exe | ||||||
|  | *.exe~ | ||||||
|  | *.dll | ||||||
|  | *.so | ||||||
|  | *.dylib | ||||||
|  | 
 | ||||||
|  | # Test binary, built with `go test -c` | ||||||
|  | *.test | ||||||
|  | 
 | ||||||
|  | # Output of the go coverage tool, specifically when used with LiteIDE | ||||||
|  | *.out | ||||||
|  | 
 | ||||||
							
								
								
									
										22
									
								
								vendor/github.com/asaskevich/govalidator/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/asaskevich/govalidator/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,14 +1,18 @@ | |||||||
|  | dist: bionic | ||||||
| language: go | language: go | ||||||
|  | env: GO111MODULE=on GOFLAGS='-mod vendor' | ||||||
|  | install: true | ||||||
|  | email: false | ||||||
| 
 | 
 | ||||||
| go: | go: | ||||||
|   - 1.1 |   - 1.10 | ||||||
|   - 1.2 |   - 1.11 | ||||||
|   - 1.3 |   - 1.12 | ||||||
|   - 1.4 |   - 1.13 | ||||||
|   - 1.5 |  | ||||||
|   - 1.6 |  | ||||||
|   - tip |   - tip | ||||||
| 
 | 
 | ||||||
| notifications: | before_script: | ||||||
|   email: |   - go install github.com/golangci/golangci-lint/cmd/golangci-lint | ||||||
|     - bwatas@gmail.com | script: | ||||||
|  |   - golangci-lint run       # run a bunch of code checkers/linters in parallel | ||||||
|  |   - go test -v -race ./...  # Run all the tests with the race detector enabled | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/asaskevich/govalidator/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/asaskevich/govalidator/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -11,7 +11,7 @@ If you don't know what to do, there are some features and functions that need to | |||||||
| - [ ] Update actual [list of functions](https://github.com/asaskevich/govalidator#list-of-functions) | - [ ] Update actual [list of functions](https://github.com/asaskevich/govalidator#list-of-functions) | ||||||
| - [ ] Update [list of validators](https://github.com/asaskevich/govalidator#validatestruct-2) that available for `ValidateStruct` and add new | - [ ] Update [list of validators](https://github.com/asaskevich/govalidator#validatestruct-2) that available for `ValidateStruct` and add new | ||||||
| - [ ] Implement new validators: `IsFQDN`, `IsIMEI`, `IsPostalCode`, `IsISIN`, `IsISRC` etc | - [ ] Implement new validators: `IsFQDN`, `IsIMEI`, `IsPostalCode`, `IsISIN`, `IsISRC` etc | ||||||
| - [ ] Implement [validation by maps](https://github.com/asaskevich/govalidator/issues/224) | - [x] Implement [validation by maps](https://github.com/asaskevich/govalidator/issues/224) | ||||||
| - [ ] Implement fuzzing testing | - [ ] Implement fuzzing testing | ||||||
| - [ ] Implement some struct/map/array utilities | - [ ] Implement some struct/map/array utilities | ||||||
| - [ ] Implement map/array validation | - [ ] Implement map/array validation | ||||||
| @ -37,7 +37,7 @@ Anyone can file an expense. If the expense makes sense for the development of th | |||||||
| ### Contributors | ### Contributors | ||||||
| 
 | 
 | ||||||
| Thank you to all the people who have already contributed to govalidator! | Thank you to all the people who have already contributed to govalidator! | ||||||
| <a href="graphs/contributors"><img src="https://opencollective.com/govalidator/contributors.svg?width=890" /></a> | <a href="https://github.com/asaskevich/govalidator/graphs/contributors"><img src="https://opencollective.com/govalidator/contributors.svg?width=890" /></a> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ### Backers | ### Backers | ||||||
|  | |||||||
							
								
								
									
										137
									
								
								vendor/github.com/asaskevich/govalidator/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										137
									
								
								vendor/github.com/asaskevich/govalidator/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -13,7 +13,7 @@ Type the following command in your terminal: | |||||||
| 
 | 
 | ||||||
| or you can get specified release of the package with `gopkg.in`: | or you can get specified release of the package with `gopkg.in`: | ||||||
| 
 | 
 | ||||||
| 	go get gopkg.in/asaskevich/govalidator.v4 | 	go get gopkg.in/asaskevich/govalidator.v10 | ||||||
| 
 | 
 | ||||||
| After it the package is ready to use. | After it the package is ready to use. | ||||||
| 
 | 
 | ||||||
| @ -83,14 +83,14 @@ This was changed to prevent data races when accessing custom validators. | |||||||
| import "github.com/asaskevich/govalidator" | import "github.com/asaskevich/govalidator" | ||||||
| 
 | 
 | ||||||
| // before | // before | ||||||
| govalidator.CustomTypeTagMap["customByteArrayValidator"] = CustomTypeValidator(func(i interface{}, o interface{}) bool { | govalidator.CustomTypeTagMap["customByteArrayValidator"] = func(i interface{}, o interface{}) bool { | ||||||
|   // ... |   // ... | ||||||
| }) | } | ||||||
| 
 | 
 | ||||||
| // after | // after | ||||||
| govalidator.CustomTypeTagMap.Set("customByteArrayValidator", CustomTypeValidator(func(i interface{}, o interface{}) bool { | govalidator.CustomTypeTagMap.Set("customByteArrayValidator", func(i interface{}, o interface{}) bool { | ||||||
|   // ... |   // ... | ||||||
| })) | }) | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| #### List of functions: | #### List of functions: | ||||||
| @ -108,23 +108,34 @@ func Filter(array []interface{}, iterator ConditionIterator) []interface{} | |||||||
| func Find(array []interface{}, iterator ConditionIterator) interface{} | func Find(array []interface{}, iterator ConditionIterator) interface{} | ||||||
| func GetLine(s string, index int) (string, error) | func GetLine(s string, index int) (string, error) | ||||||
| func GetLines(s string) []string | func GetLines(s string) []string | ||||||
| func InRange(value, left, right float64) bool | func HasLowerCase(str string) bool | ||||||
|  | func HasUpperCase(str string) bool | ||||||
|  | func HasWhitespace(str string) bool | ||||||
|  | func HasWhitespaceOnly(str string) bool | ||||||
|  | func InRange(value interface{}, left interface{}, right interface{}) bool | ||||||
|  | func InRangeFloat32(value, left, right float32) bool | ||||||
|  | func InRangeFloat64(value, left, right float64) bool | ||||||
|  | func InRangeInt(value, left, right interface{}) bool | ||||||
| func IsASCII(str string) bool | func IsASCII(str string) bool | ||||||
| func IsAlpha(str string) bool | func IsAlpha(str string) bool | ||||||
| func IsAlphanumeric(str string) bool | func IsAlphanumeric(str string) bool | ||||||
| func IsBase64(str string) bool | func IsBase64(str string) bool | ||||||
| func IsByteLength(str string, min, max int) bool | func IsByteLength(str string, min, max int) bool | ||||||
| func IsCIDR(str string) bool | func IsCIDR(str string) bool | ||||||
|  | func IsCRC32(str string) bool | ||||||
|  | func IsCRC32b(str string) bool | ||||||
| func IsCreditCard(str string) bool | func IsCreditCard(str string) bool | ||||||
| func IsDNSName(str string) bool | func IsDNSName(str string) bool | ||||||
| func IsDataURI(str string) bool | func IsDataURI(str string) bool | ||||||
| func IsDialString(str string) bool | func IsDialString(str string) bool | ||||||
| func IsDivisibleBy(str, num string) bool | func IsDivisibleBy(str, num string) bool | ||||||
| func IsEmail(str string) bool | func IsEmail(str string) bool | ||||||
|  | func IsExistingEmail(email string) bool | ||||||
| func IsFilePath(str string) (bool, int) | func IsFilePath(str string) (bool, int) | ||||||
| func IsFloat(str string) bool | func IsFloat(str string) bool | ||||||
| func IsFullWidth(str string) bool | func IsFullWidth(str string) bool | ||||||
| func IsHalfWidth(str string) bool | func IsHalfWidth(str string) bool | ||||||
|  | func IsHash(str string, algorithm string) bool | ||||||
| func IsHexadecimal(str string) bool | func IsHexadecimal(str string) bool | ||||||
| func IsHexcolor(str string) bool | func IsHexcolor(str string) bool | ||||||
| func IsHost(str string) bool | func IsHost(str string) bool | ||||||
| @ -136,22 +147,27 @@ func IsISBN10(str string) bool | |||||||
| func IsISBN13(str string) bool | func IsISBN13(str string) bool | ||||||
| func IsISO3166Alpha2(str string) bool | func IsISO3166Alpha2(str string) bool | ||||||
| func IsISO3166Alpha3(str string) bool | func IsISO3166Alpha3(str string) bool | ||||||
|  | func IsISO4217(str string) bool | ||||||
| func IsISO693Alpha2(str string) bool | func IsISO693Alpha2(str string) bool | ||||||
| func IsISO693Alpha3b(str string) bool | func IsISO693Alpha3b(str string) bool | ||||||
| func IsISO4217(str string) bool |  | ||||||
| func IsIn(str string, params ...string) bool | func IsIn(str string, params ...string) bool | ||||||
|  | func IsInRaw(str string, params ...string) bool | ||||||
| func IsInt(str string) bool | func IsInt(str string) bool | ||||||
| func IsJSON(str string) bool | func IsJSON(str string) bool | ||||||
| func IsLatitude(str string) bool | func IsLatitude(str string) bool | ||||||
| func IsLongitude(str string) bool | func IsLongitude(str string) bool | ||||||
| func IsLowerCase(str string) bool | func IsLowerCase(str string) bool | ||||||
| func IsMAC(str string) bool | func IsMAC(str string) bool | ||||||
|  | func IsMD4(str string) bool | ||||||
|  | func IsMD5(str string) bool | ||||||
|  | func IsMagnetURI(str string) bool | ||||||
| func IsMongoID(str string) bool | func IsMongoID(str string) bool | ||||||
| func IsMultibyte(str string) bool | func IsMultibyte(str string) bool | ||||||
| func IsNatural(value float64) bool | func IsNatural(value float64) bool | ||||||
| func IsNegative(value float64) bool | func IsNegative(value float64) bool | ||||||
| func IsNonNegative(value float64) bool | func IsNonNegative(value float64) bool | ||||||
| func IsNonPositive(value float64) bool | func IsNonPositive(value float64) bool | ||||||
|  | func IsNotNull(str string) bool | ||||||
| func IsNull(str string) bool | func IsNull(str string) bool | ||||||
| func IsNumeric(str string) bool | func IsNumeric(str string) bool | ||||||
| func IsPort(str string) bool | func IsPort(str string) bool | ||||||
| @ -162,9 +178,21 @@ func IsRFC3339WithoutZone(str string) bool | |||||||
| func IsRGBcolor(str string) bool | func IsRGBcolor(str string) bool | ||||||
| func IsRequestURI(rawurl string) bool | func IsRequestURI(rawurl string) bool | ||||||
| func IsRequestURL(rawurl string) bool | func IsRequestURL(rawurl string) bool | ||||||
|  | func IsRipeMD128(str string) bool | ||||||
|  | func IsRipeMD160(str string) bool | ||||||
|  | func IsRsaPub(str string, params ...string) bool | ||||||
|  | func IsRsaPublicKey(str string, keylen int) bool | ||||||
|  | func IsSHA1(str string) bool | ||||||
|  | func IsSHA256(str string) bool | ||||||
|  | func IsSHA384(str string) bool | ||||||
|  | func IsSHA512(str string) bool | ||||||
| func IsSSN(str string) bool | func IsSSN(str string) bool | ||||||
| func IsSemver(str string) bool | func IsSemver(str string) bool | ||||||
|  | func IsTiger128(str string) bool | ||||||
|  | func IsTiger160(str string) bool | ||||||
|  | func IsTiger192(str string) bool | ||||||
| func IsTime(str string, format string) bool | func IsTime(str string, format string) bool | ||||||
|  | func IsType(v interface{}, params ...string) bool | ||||||
| func IsURL(str string) bool | func IsURL(str string) bool | ||||||
| func IsUTFDigit(str string) bool | func IsUTFDigit(str string) bool | ||||||
| func IsUTFLetter(str string) bool | func IsUTFLetter(str string) bool | ||||||
| @ -174,16 +202,20 @@ func IsUUID(str string) bool | |||||||
| func IsUUIDv3(str string) bool | func IsUUIDv3(str string) bool | ||||||
| func IsUUIDv4(str string) bool | func IsUUIDv4(str string) bool | ||||||
| func IsUUIDv5(str string) bool | func IsUUIDv5(str string) bool | ||||||
|  | func IsUnixTime(str string) bool | ||||||
| func IsUpperCase(str string) bool | func IsUpperCase(str string) bool | ||||||
| func IsVariableWidth(str string) bool | func IsVariableWidth(str string) bool | ||||||
| func IsWhole(value float64) bool | func IsWhole(value float64) bool | ||||||
| func LeftTrim(str, chars string) string | func LeftTrim(str, chars string) string | ||||||
| func Map(array []interface{}, iterator ResultIterator) []interface{} | func Map(array []interface{}, iterator ResultIterator) []interface{} | ||||||
| func Matches(str, pattern string) bool | func Matches(str, pattern string) bool | ||||||
|  | func MaxStringLength(str string, params ...string) bool | ||||||
|  | func MinStringLength(str string, params ...string) bool | ||||||
| func NormalizeEmail(str string) (string, error) | func NormalizeEmail(str string) (string, error) | ||||||
| func PadBoth(str string, padStr string, padLen int) string | func PadBoth(str string, padStr string, padLen int) string | ||||||
| func PadLeft(str string, padStr string, padLen int) string | func PadLeft(str string, padStr string, padLen int) string | ||||||
| func PadRight(str string, padStr string, padLen int) string | func PadRight(str string, padStr string, padLen int) string | ||||||
|  | func PrependPathToErrors(err error, path string) error | ||||||
| func Range(str string, params ...string) bool | func Range(str string, params ...string) bool | ||||||
| func RemoveTags(s string) string | func RemoveTags(s string) string | ||||||
| func ReplacePattern(str, pattern, replace string) string | func ReplacePattern(str, pattern, replace string) string | ||||||
| @ -192,18 +224,21 @@ func RightTrim(str, chars string) string | |||||||
| func RuneLength(str string, params ...string) bool | func RuneLength(str string, params ...string) bool | ||||||
| func SafeFileName(str string) string | func SafeFileName(str string) string | ||||||
| func SetFieldsRequiredByDefault(value bool) | func SetFieldsRequiredByDefault(value bool) | ||||||
|  | func SetNilPtrAllowedByRequired(value bool) | ||||||
| func Sign(value float64) float64 | func Sign(value float64) float64 | ||||||
| func StringLength(str string, params ...string) bool | func StringLength(str string, params ...string) bool | ||||||
| func StringMatches(s string, params ...string) bool | func StringMatches(s string, params ...string) bool | ||||||
| func StripLow(str string, keepNewLines bool) string | func StripLow(str string, keepNewLines bool) string | ||||||
| func ToBoolean(str string) (bool, error) | func ToBoolean(str string) (bool, error) | ||||||
| func ToFloat(str string) (float64, error) | func ToFloat(str string) (float64, error) | ||||||
| func ToInt(str string) (int64, error) | func ToInt(value interface{}) (res int64, err error) | ||||||
| func ToJSON(obj interface{}) (string, error) | func ToJSON(obj interface{}) (string, error) | ||||||
| func ToString(obj interface{}) string | func ToString(obj interface{}) string | ||||||
| func Trim(str, chars string) string | func Trim(str, chars string) string | ||||||
| func Truncate(str string, length int, ending string) string | func Truncate(str string, length int, ending string) string | ||||||
|  | func TruncatingErrorf(str string, args ...interface{}) error | ||||||
| func UnderscoreToCamelCase(s string) string | func UnderscoreToCamelCase(s string) string | ||||||
|  | func ValidateMap(inputMap map[string]interface{}, validationMap map[string]interface{}) (bool, error) | ||||||
| func ValidateStruct(s interface{}) (bool, error) | func ValidateStruct(s interface{}) (bool, error) | ||||||
| func WhiteList(str, chars string) string | func WhiteList(str, chars string) string | ||||||
| type ConditionIterator | type ConditionIterator | ||||||
| @ -214,6 +249,8 @@ type Errors | |||||||
| func (es Errors) Error() string | func (es Errors) Error() string | ||||||
| func (es Errors) Errors() []error | func (es Errors) Errors() []error | ||||||
| type ISO3166Entry | type ISO3166Entry | ||||||
|  | type ISO693Entry | ||||||
|  | type InterfaceParamValidator | ||||||
| type Iterator | type Iterator | ||||||
| type ParamValidator | type ParamValidator | ||||||
| type ResultIterator | type ResultIterator | ||||||
| @ -227,6 +264,27 @@ type Validator | |||||||
| ```go | ```go | ||||||
| println(govalidator.IsURL(`http://user@pass:domain.com/path/page`)) | println(govalidator.IsURL(`http://user@pass:domain.com/path/page`)) | ||||||
| ``` | ``` | ||||||
|  | ###### IsType | ||||||
|  | ```go | ||||||
|  | println(govalidator.IsType("Bob", "string")) | ||||||
|  | println(govalidator.IsType(1, "int")) | ||||||
|  | i := 1 | ||||||
|  | println(govalidator.IsType(&i, "*int")) | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | IsType can be used through the tag `type` which is essential for map validation: | ||||||
|  | ```go | ||||||
|  | type User	struct { | ||||||
|  |   Name string      `valid:"type(string)"` | ||||||
|  |   Age  int         `valid:"type(int)"` | ||||||
|  |   Meta interface{} `valid:"type(string)"` | ||||||
|  | } | ||||||
|  | result, err := govalidator.ValidateStruct(user{"Bob", 20, "meta"}) | ||||||
|  | if err != nil { | ||||||
|  | 	println("error: " + err.Error()) | ||||||
|  | } | ||||||
|  | println(result) | ||||||
|  | ``` | ||||||
| ###### ToString | ###### ToString | ||||||
| ```go | ```go | ||||||
| type User struct { | type User struct { | ||||||
| @ -335,6 +393,11 @@ Validators with parameters | |||||||
| "in(string1|string2|...|stringN)": IsIn, | "in(string1|string2|...|stringN)": IsIn, | ||||||
| "rsapub(keylength)" : IsRsaPub, | "rsapub(keylength)" : IsRsaPub, | ||||||
| ``` | ``` | ||||||
|  | Validators with parameters for any type | ||||||
|  | 
 | ||||||
|  | ```go | ||||||
|  | "type(type)": IsType, | ||||||
|  | ``` | ||||||
| 
 | 
 | ||||||
| And here is small example of usage: | And here is small example of usage: | ||||||
| ```go | ```go | ||||||
| @ -370,6 +433,41 @@ if err != nil { | |||||||
| } | } | ||||||
| println(result) | println(result) | ||||||
| ``` | ``` | ||||||
|  | ###### ValidateMap [#2](https://github.com/asaskevich/govalidator/pull/338) | ||||||
|  | If you want to validate maps, you can use the map to be validated and a validation map that contain the same tags used in ValidateStruct, both maps have to be in the form `map[string]interface{}` | ||||||
|  | 
 | ||||||
|  | So here is small example of usage: | ||||||
|  | ```go | ||||||
|  | var mapTemplate = map[string]interface{}{ | ||||||
|  | 	"name":"required,alpha", | ||||||
|  | 	"family":"required,alpha", | ||||||
|  | 	"email":"required,email", | ||||||
|  | 	"cell-phone":"numeric", | ||||||
|  | 	"address":map[string]interface{}{ | ||||||
|  | 		"line1":"required,alphanum", | ||||||
|  | 		"line2":"alphanum", | ||||||
|  | 		"postal-code":"numeric", | ||||||
|  | 	}, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var inputMap = map[string]interface{}{ | ||||||
|  | 	"name":"Bob", | ||||||
|  | 	"family":"Smith", | ||||||
|  | 	"email":"foo@bar.baz", | ||||||
|  | 	"address":map[string]interface{}{ | ||||||
|  | 		"line1":"", | ||||||
|  | 		"line2":"", | ||||||
|  | 		"postal-code":"", | ||||||
|  | 	}, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | result, err := govalidator.ValidateMap(inputMap, mapTemplate) | ||||||
|  | if err != nil { | ||||||
|  | 	println("error: " + err.Error()) | ||||||
|  | } | ||||||
|  | println(result) | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ###### WhiteList | ###### WhiteList | ||||||
| ```go | ```go | ||||||
| // Remove all characters from string ignoring characters between "a" and "z" | // Remove all characters from string ignoring characters between "a" and "z" | ||||||
| @ -389,7 +487,7 @@ type StructWithCustomByteArray struct { | |||||||
|   CustomMinLength int             `valid:"-"` |   CustomMinLength int             `valid:"-"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| govalidator.CustomTypeTagMap.Set("customByteArrayValidator", CustomTypeValidator(func(i interface{}, context interface{}) bool { | govalidator.CustomTypeTagMap.Set("customByteArrayValidator", func(i interface{}, context interface{}) bool { | ||||||
|   switch v := context.(type) { // you can type switch on the context interface being validated |   switch v := context.(type) { // you can type switch on the context interface being validated | ||||||
|   case StructWithCustomByteArray: |   case StructWithCustomByteArray: | ||||||
|     // you can check and validate against some other field in the context, |     // you can check and validate against some other field in the context, | ||||||
| @ -409,14 +507,25 @@ govalidator.CustomTypeTagMap.Set("customByteArrayValidator", CustomTypeValidator | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   return false |   return false | ||||||
| })) | }) | ||||||
| govalidator.CustomTypeTagMap.Set("customMinLengthValidator", CustomTypeValidator(func(i interface{}, context interface{}) bool { | govalidator.CustomTypeTagMap.Set("customMinLengthValidator", func(i interface{}, context interface{}) bool { | ||||||
|   switch v := context.(type) { // this validates a field against the value in another field, i.e. dependent validation |   switch v := context.(type) { // this validates a field against the value in another field, i.e. dependent validation | ||||||
|   case StructWithCustomByteArray: |   case StructWithCustomByteArray: | ||||||
|     return len(v.ID) >= v.CustomMinLength |     return len(v.ID) >= v.CustomMinLength | ||||||
|   } |   } | ||||||
|   return false |   return false | ||||||
| })) | }) | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ###### Loop over Error() | ||||||
|  | By default .Error() returns all errors in a single String. To access each error you can do this: | ||||||
|  | ```go | ||||||
|  |   if err != nil { | ||||||
|  |     errs := err.(govalidator.Errors).Errors() | ||||||
|  |     for _, e := range errs { | ||||||
|  |       fmt.Println(e.Error()) | ||||||
|  |     } | ||||||
|  |   } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ###### Custom error messages | ###### Custom error messages | ||||||
| @ -445,7 +554,7 @@ If you don't know what to do, there are some features and functions that need to | |||||||
| - [ ] Update actual [list of functions](https://github.com/asaskevich/govalidator#list-of-functions) | - [ ] Update actual [list of functions](https://github.com/asaskevich/govalidator#list-of-functions) | ||||||
| - [ ] Update [list of validators](https://github.com/asaskevich/govalidator#validatestruct-2) that available for `ValidateStruct` and add new | - [ ] Update [list of validators](https://github.com/asaskevich/govalidator#validatestruct-2) that available for `ValidateStruct` and add new | ||||||
| - [ ] Implement new validators: `IsFQDN`, `IsIMEI`, `IsPostalCode`, `IsISIN`, `IsISRC` etc | - [ ] Implement new validators: `IsFQDN`, `IsIMEI`, `IsPostalCode`, `IsISIN`, `IsISRC` etc | ||||||
| - [ ] Implement [validation by maps](https://github.com/asaskevich/govalidator/issues/224) | - [x] Implement [validation by maps](https://github.com/asaskevich/govalidator/issues/224) | ||||||
| - [ ] Implement fuzzing testing | - [ ] Implement fuzzing testing | ||||||
| - [ ] Implement some struct/map/array utilities | - [ ] Implement some struct/map/array utilities | ||||||
| - [ ] Implement map/array validation | - [ ] Implement map/array validation | ||||||
| @ -475,7 +584,7 @@ This project exists thanks to all the people who contribute. [[Contribute](CONTR | |||||||
| * [Matt Sanford](https://github.com/mzsanford) | * [Matt Sanford](https://github.com/mzsanford) | ||||||
| * [Simon ccl1115](https://github.com/ccl1115) | * [Simon ccl1115](https://github.com/ccl1115) | ||||||
| 
 | 
 | ||||||
| <a href="graphs/contributors"><img src="https://opencollective.com/govalidator/contributors.svg?width=890" /></a> | <a href="https://github.com/asaskevich/govalidator/graphs/contributors"><img src="https://opencollective.com/govalidator/contributors.svg?width=890" /></a> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ### Backers | ### Backers | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								vendor/github.com/asaskevich/govalidator/doc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/asaskevich/govalidator/doc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | package govalidator | ||||||
|  | 
 | ||||||
|  | // A package of validators and sanitizers for strings, structures and collections.
 | ||||||
							
								
								
									
										6
									
								
								vendor/github.com/asaskevich/govalidator/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/asaskevich/govalidator/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,6 +1,9 @@ | |||||||
| package govalidator | package govalidator | ||||||
| 
 | 
 | ||||||
| import "strings" | import ( | ||||||
|  | 	"sort" | ||||||
|  | 	"strings" | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| // Errors is an array of multiple errors and conforms to the error interface.
 | // Errors is an array of multiple errors and conforms to the error interface.
 | ||||||
| type Errors []error | type Errors []error | ||||||
| @ -15,6 +18,7 @@ func (es Errors) Error() string { | |||||||
| 	for _, e := range es { | 	for _, e := range es { | ||||||
| 		errs = append(errs, e.Error()) | 		errs = append(errs, e.Error()) | ||||||
| 	} | 	} | ||||||
|  | 	sort.Strings(errs) | ||||||
| 	return strings.Join(errs, ";") | 	return strings.Join(errs, ";") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								vendor/github.com/asaskevich/govalidator/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/asaskevich/govalidator/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | module github.com/asaskevich/govalidator | ||||||
|  | 
 | ||||||
|  | go 1.12 | ||||||
							
								
								
									
										166
									
								
								vendor/github.com/asaskevich/govalidator/patterns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										166
									
								
								vendor/github.com/asaskevich/govalidator/patterns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -4,49 +4,51 @@ import "regexp" | |||||||
| 
 | 
 | ||||||
| // Basic regular expressions for validating strings
 | // Basic regular expressions for validating strings
 | ||||||
| const ( | const ( | ||||||
|     Email             string = "^(((([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+(\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.)+(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.?$" | 	Email             string = "^(((([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+(\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.)+(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.?$" | ||||||
|     CreditCard        string = "^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$" | 	CreditCard        string = "^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$" | ||||||
|     ISBN10            string = "^(?:[0-9]{9}X|[0-9]{10})$" | 	ISBN10            string = "^(?:[0-9]{9}X|[0-9]{10})$" | ||||||
|     ISBN13            string = "^(?:[0-9]{13})$" | 	ISBN13            string = "^(?:[0-9]{13})$" | ||||||
|     UUID3             string = "^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$" | 	UUID3             string = "^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$" | ||||||
|     UUID4             string = "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" | 	UUID4             string = "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" | ||||||
|     UUID5             string = "^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" | 	UUID5             string = "^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" | ||||||
|     UUID              string = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" | 	UUID              string = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" | ||||||
|     Alpha             string = "^[a-zA-Z]+$" | 	Alpha             string = "^[a-zA-Z]+$" | ||||||
|     Alphanumeric      string = "^[a-zA-Z0-9]+$" | 	Alphanumeric      string = "^[a-zA-Z0-9]+$" | ||||||
|     Numeric           string = "^[0-9]+$" | 	Numeric           string = "^[0-9]+$" | ||||||
|     Int               string = "^(?:[-+]?(?:0|[1-9][0-9]*))$" | 	Int               string = "^(?:[-+]?(?:0|[1-9][0-9]*))$" | ||||||
|     Float             string = "^(?:[-+]?(?:[0-9]+))?(?:\\.[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$" | 	Float             string = "^(?:[-+]?(?:[0-9]+))?(?:\\.[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$" | ||||||
|     Hexadecimal       string = "^[0-9a-fA-F]+$" | 	Hexadecimal       string = "^[0-9a-fA-F]+$" | ||||||
|     Hexcolor          string = "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$" | 	Hexcolor          string = "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$" | ||||||
|     RGBcolor          string = "^rgb\\(\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*\\)$" | 	RGBcolor          string = "^rgb\\(\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*\\)$" | ||||||
|     ASCII             string = "^[\x00-\x7F]+$" | 	ASCII             string = "^[\x00-\x7F]+$" | ||||||
|     Multibyte         string = "[^\x00-\x7F]" | 	Multibyte         string = "[^\x00-\x7F]" | ||||||
|     FullWidth         string = "[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]" | 	FullWidth         string = "[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]" | ||||||
|     HalfWidth         string = "[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]" | 	HalfWidth         string = "[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]" | ||||||
|     Base64            string = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$" | 	Base64            string = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$" | ||||||
|     PrintableASCII    string = "^[\x20-\x7E]+$" | 	PrintableASCII    string = "^[\x20-\x7E]+$" | ||||||
|     DataURI           string = "^data:.+\\/(.+);base64$" | 	DataURI           string = "^data:.+\\/(.+);base64$" | ||||||
|     Latitude          string = "^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$" | 	MagnetURI         string = "^magnet:\\?xt=urn:[a-zA-Z0-9]+:[a-zA-Z0-9]{32,40}&dn=.+&tr=.+$" | ||||||
|     Longitude         string = "^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$" | 	Latitude          string = "^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$" | ||||||
|     DNSName           string = `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$` | 	Longitude         string = "^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$" | ||||||
|     IP                string = `(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))` | 	DNSName           string = `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$` | ||||||
|     URLSchema         string = `((ftp|tcp|udp|wss?|https?):\/\/)` | 	IP                string = `(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))` | ||||||
|     URLUsername       string = `(\S+(:\S*)?@)` | 	URLSchema         string = `((ftp|tcp|udp|wss?|https?):\/\/)` | ||||||
|     URLPath           string = `((\/|\?|#)[^\s]*)` | 	URLUsername       string = `(\S+(:\S*)?@)` | ||||||
|     URLPort           string = `(:(\d{1,5}))` | 	URLPath           string = `((\/|\?|#)[^\s]*)` | ||||||
|     URLIP             string = `([1-9]\d?|1\d\d|2[01]\d|22[0-3])(\.(1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.([0-9]\d?|1\d\d|2[0-4]\d|25[0-4]))` | 	URLPort           string = `(:(\d{1,5}))` | ||||||
| 	  URLSubdomain      string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))`   | 	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]))` | ||||||
|     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 + `?$` | 	URLSubdomain      string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))` | ||||||
|     SSN               string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$` | 	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 + `?$` | ||||||
|     WinPath           string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$` | 	SSN               string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$` | ||||||
|     UnixPath          string = `^(/[^/\x00]*)+/?$` | 	WinPath           string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$` | ||||||
|     Semver            string = "^v?(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$" | 	UnixPath          string = `^(/[^/\x00]*)+/?$` | ||||||
|     tagName           string = "valid" | 	Semver            string = "^v?(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$" | ||||||
|     hasLowerCase      string = ".*[[:lower:]]" | 	tagName           string = "valid" | ||||||
|     hasUpperCase      string = ".*[[:upper:]]" | 	hasLowerCase      string = ".*[[:lower:]]" | ||||||
|     hasWhitespace     string = ".*[[:space:]]" | 	hasUpperCase      string = ".*[[:upper:]]" | ||||||
|     hasWhitespaceOnly string = "^[[:space:]]+$" | 	hasWhitespace     string = ".*[[:space:]]" | ||||||
|  | 	hasWhitespaceOnly string = "^[[:space:]]+$" | ||||||
|  | 	IMEI              string = "^[0-9a-f]{14}$|^\\d{15}$|^\\d{18}$" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Used by IsFilePath func
 | // Used by IsFilePath func
 | ||||||
| @ -60,42 +62,44 @@ const ( | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
|     userRegexp            = regexp.MustCompile("^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+$") | 	userRegexp          = regexp.MustCompile("^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+$") | ||||||
|     hostRegexp            = regexp.MustCompile("^[^\\s]+\\.[^\\s]+$") | 	hostRegexp          = regexp.MustCompile("^[^\\s]+\\.[^\\s]+$") | ||||||
|     userDotRegexp         = regexp.MustCompile("(^[.]{1})|([.]{1}$)|([.]{2,})") | 	userDotRegexp       = regexp.MustCompile("(^[.]{1})|([.]{1}$)|([.]{2,})") | ||||||
|     rxEmail               = regexp.MustCompile(Email) | 	rxEmail             = regexp.MustCompile(Email) | ||||||
|     rxCreditCard          = regexp.MustCompile(CreditCard) | 	rxCreditCard        = regexp.MustCompile(CreditCard) | ||||||
|     rxISBN10              = regexp.MustCompile(ISBN10) | 	rxISBN10            = regexp.MustCompile(ISBN10) | ||||||
|     rxISBN13              = regexp.MustCompile(ISBN13) | 	rxISBN13            = regexp.MustCompile(ISBN13) | ||||||
|     rxUUID3               = regexp.MustCompile(UUID3) | 	rxUUID3             = regexp.MustCompile(UUID3) | ||||||
|     rxUUID4               = regexp.MustCompile(UUID4) | 	rxUUID4             = regexp.MustCompile(UUID4) | ||||||
|     rxUUID5               = regexp.MustCompile(UUID5) | 	rxUUID5             = regexp.MustCompile(UUID5) | ||||||
|     rxUUID                = regexp.MustCompile(UUID) | 	rxUUID              = regexp.MustCompile(UUID) | ||||||
|     rxAlpha               = regexp.MustCompile(Alpha) | 	rxAlpha             = regexp.MustCompile(Alpha) | ||||||
|     rxAlphanumeric        = regexp.MustCompile(Alphanumeric) | 	rxAlphanumeric      = regexp.MustCompile(Alphanumeric) | ||||||
|     rxNumeric             = regexp.MustCompile(Numeric) | 	rxNumeric           = regexp.MustCompile(Numeric) | ||||||
|     rxInt                 = regexp.MustCompile(Int) | 	rxInt               = regexp.MustCompile(Int) | ||||||
|     rxFloat               = regexp.MustCompile(Float) | 	rxFloat             = regexp.MustCompile(Float) | ||||||
|     rxHexadecimal         = regexp.MustCompile(Hexadecimal) | 	rxHexadecimal       = regexp.MustCompile(Hexadecimal) | ||||||
|     rxHexcolor            = regexp.MustCompile(Hexcolor) | 	rxHexcolor          = regexp.MustCompile(Hexcolor) | ||||||
|     rxRGBcolor            = regexp.MustCompile(RGBcolor) | 	rxRGBcolor          = regexp.MustCompile(RGBcolor) | ||||||
|     rxASCII               = regexp.MustCompile(ASCII) | 	rxASCII             = regexp.MustCompile(ASCII) | ||||||
|     rxPrintableASCII      = regexp.MustCompile(PrintableASCII) | 	rxPrintableASCII    = regexp.MustCompile(PrintableASCII) | ||||||
|     rxMultibyte           = regexp.MustCompile(Multibyte) | 	rxMultibyte         = regexp.MustCompile(Multibyte) | ||||||
|     rxFullWidth           = regexp.MustCompile(FullWidth) | 	rxFullWidth         = regexp.MustCompile(FullWidth) | ||||||
|     rxHalfWidth           = regexp.MustCompile(HalfWidth) | 	rxHalfWidth         = regexp.MustCompile(HalfWidth) | ||||||
|     rxBase64              = regexp.MustCompile(Base64) | 	rxBase64            = regexp.MustCompile(Base64) | ||||||
|     rxDataURI             = regexp.MustCompile(DataURI) | 	rxDataURI           = regexp.MustCompile(DataURI) | ||||||
|     rxLatitude            = regexp.MustCompile(Latitude) | 	rxMagnetURI         = regexp.MustCompile(MagnetURI) | ||||||
|     rxLongitude           = regexp.MustCompile(Longitude) | 	rxLatitude          = regexp.MustCompile(Latitude) | ||||||
|     rxDNSName             = regexp.MustCompile(DNSName) | 	rxLongitude         = regexp.MustCompile(Longitude) | ||||||
|     rxURL                 = regexp.MustCompile(URL) | 	rxDNSName           = regexp.MustCompile(DNSName) | ||||||
|     rxSSN                 = regexp.MustCompile(SSN) | 	rxURL               = regexp.MustCompile(URL) | ||||||
|     rxWinPath             = regexp.MustCompile(WinPath) | 	rxSSN               = regexp.MustCompile(SSN) | ||||||
|     rxUnixPath            = regexp.MustCompile(UnixPath) | 	rxWinPath           = regexp.MustCompile(WinPath) | ||||||
|     rxSemver              = regexp.MustCompile(Semver) | 	rxUnixPath          = regexp.MustCompile(UnixPath) | ||||||
|     rxHasLowerCase        = regexp.MustCompile(hasLowerCase) | 	rxSemver            = regexp.MustCompile(Semver) | ||||||
|     rxHasUpperCase        = regexp.MustCompile(hasUpperCase) | 	rxHasLowerCase      = regexp.MustCompile(hasLowerCase) | ||||||
|     rxHasWhitespace       = regexp.MustCompile(hasWhitespace) | 	rxHasUpperCase      = regexp.MustCompile(hasUpperCase) | ||||||
|     rxHasWhitespaceOnly   = regexp.MustCompile(hasWhitespaceOnly) | 	rxHasWhitespace     = regexp.MustCompile(hasWhitespace) | ||||||
|  | 	rxHasWhitespaceOnly = regexp.MustCompile(hasWhitespaceOnly) | ||||||
|  | 	rxIMEI              = regexp.MustCompile(IMEI) | ||||||
| ) | ) | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								vendor/github.com/asaskevich/govalidator/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/asaskevich/govalidator/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -16,6 +16,7 @@ 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 accepts additional parameters.
 | ||||||
| type ParamValidator func(str string, params ...string) bool | type ParamValidator func(str string, params ...string) bool | ||||||
|  | type InterfaceParamValidator func(in interface{}, params ...string) bool | ||||||
| type tagOptionsMap map[string]tagOption | type tagOptionsMap map[string]tagOption | ||||||
| 
 | 
 | ||||||
| func (t tagOptionsMap) orderedKeys() []string { | func (t tagOptionsMap) orderedKeys() []string { | ||||||
| @ -46,15 +47,27 @@ type UnsupportedTypeError struct { | |||||||
| // It implements the methods to sort by string.
 | // It implements the methods to sort by string.
 | ||||||
| type stringValues []reflect.Value | type stringValues []reflect.Value | ||||||
| 
 | 
 | ||||||
|  | // InterfaceParamTagMap is a map of functions accept variants parameters for an interface value
 | ||||||
|  | var InterfaceParamTagMap = map[string]InterfaceParamValidator{ | ||||||
|  | 	"type": IsType, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // InterfaceParamTagRegexMap maps interface param tags to their respective regexes.
 | ||||||
|  | var InterfaceParamTagRegexMap = map[string]*regexp.Regexp{ | ||||||
|  | 	"type": regexp.MustCompile(`^type\((.*)\)$`), | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // ParamTagMap is a map of functions accept variants parameters
 | // ParamTagMap is a map of functions accept variants parameters
 | ||||||
| var ParamTagMap = map[string]ParamValidator{ | var ParamTagMap = map[string]ParamValidator{ | ||||||
| 	"length":       ByteLength, | 	"length":          ByteLength, | ||||||
| 	"range":        Range, | 	"range":           Range, | ||||||
| 	"runelength":   RuneLength, | 	"runelength":      RuneLength, | ||||||
| 	"stringlength": StringLength, | 	"stringlength":    StringLength, | ||||||
| 	"matches":      StringMatches, | 	"matches":         StringMatches, | ||||||
| 	"in":           isInRaw, | 	"in":              IsInRaw, | ||||||
| 	"rsapub":       IsRsaPub, | 	"rsapub":          IsRsaPub, | ||||||
|  | 	"minstringlength": MinStringLength, | ||||||
|  | 	"maxstringlength": MaxStringLength, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ParamTagRegexMap maps param tags to their respective regexes.
 | // ParamTagRegexMap maps param tags to their respective regexes.
 | ||||||
| @ -66,6 +79,8 @@ var ParamTagRegexMap = map[string]*regexp.Regexp{ | |||||||
| 	"in":           regexp.MustCompile(`^in\((.*)\)`), | 	"in":           regexp.MustCompile(`^in\((.*)\)`), | ||||||
| 	"matches":      regexp.MustCompile(`^matches\((.+)\)$`), | 	"matches":      regexp.MustCompile(`^matches\((.+)\)$`), | ||||||
| 	"rsapub":       regexp.MustCompile("^rsapub\\((\\d+)\\)$"), | 	"rsapub":       regexp.MustCompile("^rsapub\\((\\d+)\\)$"), | ||||||
|  | 	"minstringlength": regexp.MustCompile("^minstringlength\\((\\d+)\\)$"), | ||||||
|  | 	"maxstringlength": regexp.MustCompile("^maxstringlength\\((\\d+)\\)$"), | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type customTypeTagMap struct { | type customTypeTagMap struct { | ||||||
| @ -114,6 +129,7 @@ var TagMap = map[string]Validator{ | |||||||
| 	"int":                IsInt, | 	"int":                IsInt, | ||||||
| 	"float":              IsFloat, | 	"float":              IsFloat, | ||||||
| 	"null":               IsNull, | 	"null":               IsNull, | ||||||
|  | 	"notnull":            IsNotNull, | ||||||
| 	"uuid":               IsUUID, | 	"uuid":               IsUUID, | ||||||
| 	"uuidv3":             IsUUIDv3, | 	"uuidv3":             IsUUIDv3, | ||||||
| 	"uuidv4":             IsUUIDv4, | 	"uuidv4":             IsUUIDv4, | ||||||
| @ -146,6 +162,7 @@ var TagMap = map[string]Validator{ | |||||||
| 	"ISO3166Alpha2":      IsISO3166Alpha2, | 	"ISO3166Alpha2":      IsISO3166Alpha2, | ||||||
| 	"ISO3166Alpha3":      IsISO3166Alpha3, | 	"ISO3166Alpha3":      IsISO3166Alpha3, | ||||||
| 	"ISO4217":            IsISO4217, | 	"ISO4217":            IsISO4217, | ||||||
|  | 	"IMEI":               IsIMEI, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ISO3166Entry stores country codes
 | // ISO3166Entry stores country codes
 | ||||||
|  | |||||||
							
								
								
									
										46
									
								
								vendor/github.com/asaskevich/govalidator/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								vendor/github.com/asaskevich/govalidator/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -12,20 +12,20 @@ import ( | |||||||
| 	"unicode/utf8" | 	"unicode/utf8" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Contains check if the string contains the substring.
 | // Contains checks if the string contains the substring.
 | ||||||
| func Contains(str, substring string) bool { | func Contains(str, substring string) bool { | ||||||
| 	return strings.Contains(str, substring) | 	return strings.Contains(str, substring) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Matches check if string matches the pattern (pattern is regular expression)
 | // Matches checks if string matches the pattern (pattern is regular expression)
 | ||||||
| // In case of error return false
 | // In case of error return false
 | ||||||
| func Matches(str, pattern string) bool { | func Matches(str, pattern string) bool { | ||||||
| 	match, _ := regexp.MatchString(pattern, str) | 	match, _ := regexp.MatchString(pattern, str) | ||||||
| 	return match | 	return match | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // LeftTrim trim characters from the left-side of the input.
 | // LeftTrim trims characters from the left side of the input.
 | ||||||
| // If second argument is empty, it's will be remove leading spaces.
 | // If second argument is empty, it will remove leading spaces.
 | ||||||
| func LeftTrim(str, chars string) string { | func LeftTrim(str, chars string) string { | ||||||
| 	if chars == "" { | 	if chars == "" { | ||||||
| 		return strings.TrimLeftFunc(str, unicode.IsSpace) | 		return strings.TrimLeftFunc(str, unicode.IsSpace) | ||||||
| @ -34,8 +34,8 @@ func LeftTrim(str, chars string) string { | |||||||
| 	return r.ReplaceAllString(str, "") | 	return r.ReplaceAllString(str, "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RightTrim trim characters from the right-side of the input.
 | // RightTrim trims characters from the right side of the input.
 | ||||||
| // If second argument is empty, it's will be remove spaces.
 | // If second argument is empty, it will remove trailing spaces.
 | ||||||
| func RightTrim(str, chars string) string { | func RightTrim(str, chars string) string { | ||||||
| 	if chars == "" { | 	if chars == "" { | ||||||
| 		return strings.TrimRightFunc(str, unicode.IsSpace) | 		return strings.TrimRightFunc(str, unicode.IsSpace) | ||||||
| @ -44,27 +44,27 @@ func RightTrim(str, chars string) string { | |||||||
| 	return r.ReplaceAllString(str, "") | 	return r.ReplaceAllString(str, "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Trim trim characters from both sides of the input.
 | // Trim trims characters from both sides of the input.
 | ||||||
| // If second argument is empty, it's will be remove spaces.
 | // If second argument is empty, it will remove spaces.
 | ||||||
| func Trim(str, chars string) string { | func Trim(str, chars string) string { | ||||||
| 	return LeftTrim(RightTrim(str, chars), chars) | 	return LeftTrim(RightTrim(str, chars), chars) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // WhiteList remove characters that do not appear in the whitelist.
 | // WhiteList removes characters that do not appear in the whitelist.
 | ||||||
| func WhiteList(str, chars string) string { | func WhiteList(str, chars string) string { | ||||||
| 	pattern := "[^" + chars + "]+" | 	pattern := "[^" + chars + "]+" | ||||||
| 	r, _ := regexp.Compile(pattern) | 	r, _ := regexp.Compile(pattern) | ||||||
| 	return r.ReplaceAllString(str, "") | 	return r.ReplaceAllString(str, "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // BlackList remove characters that appear in the blacklist.
 | // BlackList removes characters that appear in the blacklist.
 | ||||||
| func BlackList(str, chars string) string { | func BlackList(str, chars string) string { | ||||||
| 	pattern := "[" + chars + "]+" | 	pattern := "[" + chars + "]+" | ||||||
| 	r, _ := regexp.Compile(pattern) | 	r, _ := regexp.Compile(pattern) | ||||||
| 	return r.ReplaceAllString(str, "") | 	return r.ReplaceAllString(str, "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // StripLow remove characters with a numerical value < 32 and 127, mostly control characters.
 | // StripLow removes characters with a numerical value < 32 and 127, mostly control characters.
 | ||||||
| // If keep_new_lines is true, newline characters are preserved (\n and \r, hex 0xA and 0xD).
 | // If keep_new_lines is true, newline characters are preserved (\n and \r, hex 0xA and 0xD).
 | ||||||
| func StripLow(str string, keepNewLines bool) string { | func StripLow(str string, keepNewLines bool) string { | ||||||
| 	chars := "" | 	chars := "" | ||||||
| @ -76,13 +76,13 @@ func StripLow(str string, keepNewLines bool) string { | |||||||
| 	return BlackList(str, chars) | 	return BlackList(str, chars) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ReplacePattern replace regular expression pattern in string
 | // ReplacePattern replaces regular expression pattern in string
 | ||||||
| func ReplacePattern(str, pattern, replace string) string { | func ReplacePattern(str, pattern, replace string) string { | ||||||
| 	r, _ := regexp.Compile(pattern) | 	r, _ := regexp.Compile(pattern) | ||||||
| 	return r.ReplaceAllString(str, replace) | 	return r.ReplaceAllString(str, replace) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Escape replace <, >, & and " with HTML entities.
 | // Escape replaces <, >, & and " with HTML entities.
 | ||||||
| var Escape = html.EscapeString | var Escape = html.EscapeString | ||||||
| 
 | 
 | ||||||
| func addSegment(inrune, segment []rune) []rune { | func addSegment(inrune, segment []rune) []rune { | ||||||
| @ -120,7 +120,7 @@ func CamelCaseToUnderscore(str string) string { | |||||||
| 	return string(output) | 	return string(output) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Reverse return reversed string
 | // Reverse returns reversed string
 | ||||||
| func Reverse(s string) string { | func Reverse(s string) string { | ||||||
| 	r := []rune(s) | 	r := []rune(s) | ||||||
| 	for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 { | 	for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 { | ||||||
| @ -129,12 +129,12 @@ func Reverse(s string) string { | |||||||
| 	return string(r) | 	return string(r) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetLines split string by "\n" and return array of lines
 | // GetLines splits string by "\n" and return array of lines
 | ||||||
| func GetLines(s string) []string { | func GetLines(s string) []string { | ||||||
| 	return strings.Split(s, "\n") | 	return strings.Split(s, "\n") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetLine return specified line of multiline string
 | // GetLine returns specified line of multiline string
 | ||||||
| func GetLine(s string, index int) (string, error) { | func GetLine(s string, index int) (string, error) { | ||||||
| 	lines := GetLines(s) | 	lines := GetLines(s) | ||||||
| 	if index < 0 || index >= len(lines) { | 	if index < 0 || index >= len(lines) { | ||||||
| @ -143,12 +143,12 @@ func GetLine(s string, index int) (string, error) { | |||||||
| 	return lines[index], nil | 	return lines[index], nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RemoveTags remove all tags from HTML string
 | // RemoveTags removes all tags from HTML string
 | ||||||
| func RemoveTags(s string) string { | func RemoveTags(s string) string { | ||||||
| 	return ReplacePattern(s, "<[^>]*>", "") | 	return ReplacePattern(s, "<[^>]*>", "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // SafeFileName return safe string that can be used in file names
 | // SafeFileName returns safe string that can be used in file names
 | ||||||
| func SafeFileName(str string) string { | func SafeFileName(str string) string { | ||||||
| 	name := strings.ToLower(str) | 	name := strings.ToLower(str) | ||||||
| 	name = path.Clean(path.Base(name)) | 	name = path.Clean(path.Base(name)) | ||||||
| @ -210,23 +210,23 @@ func Truncate(str string, length int, ending string) string { | |||||||
| 	return str | 	return str | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PadLeft pad left side of string if size of string is less then indicated pad length
 | // PadLeft pads left side of a string if size of string is less then indicated pad length
 | ||||||
| func PadLeft(str string, padStr string, padLen int) string { | func PadLeft(str string, padStr string, padLen int) string { | ||||||
| 	return buildPadStr(str, padStr, padLen, true, false) | 	return buildPadStr(str, padStr, padLen, true, false) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PadRight pad right side of string if size of string is less then indicated pad length
 | // PadRight pads right side of a string if size of string is less then indicated pad length
 | ||||||
| func PadRight(str string, padStr string, padLen int) string { | func PadRight(str string, padStr string, padLen int) string { | ||||||
| 	return buildPadStr(str, padStr, padLen, false, true) | 	return buildPadStr(str, padStr, padLen, false, true) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PadBoth pad sides of string if size of string is less then indicated pad length
 | // PadBoth pads both sides of a string if size of string is less then indicated pad length
 | ||||||
| func PadBoth(str string, padStr string, padLen int) string { | func PadBoth(str string, padStr string, padLen int) string { | ||||||
| 	return buildPadStr(str, padStr, padLen, true, true) | 	return buildPadStr(str, padStr, padLen, true, true) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PadString either left, right or both sides, not the padding string can be unicode and more then one
 | // PadString either left, right or both sides.
 | ||||||
| // character
 | // Note that padding string can be unicode and more then one character
 | ||||||
| func buildPadStr(str string, padStr string, padLen int, padLeft bool, padRight bool) string { | func buildPadStr(str string, padStr string, padLen int, padLeft bool, padRight bool) string { | ||||||
| 
 | 
 | ||||||
| 	// When padded length is less then the current string size
 | 	// When padded length is less then the current string size
 | ||||||
|  | |||||||
							
								
								
									
										318
									
								
								vendor/github.com/asaskevich/govalidator/validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										318
									
								
								vendor/github.com/asaskevich/govalidator/validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -282,7 +282,7 @@ func HasLowerCase(str string) bool { | |||||||
| 	return rxHasLowerCase.MatchString(str) | 	return rxHasLowerCase.MatchString(str) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // HasUpperCase check if the string contians as least 1 uppercase. Empty string is valid.
 | // HasUpperCase check 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 | ||||||
| @ -321,14 +321,19 @@ func IsNull(str string) bool { | |||||||
| 	return len(str) == 0 | 	return len(str) == 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // IsNotNull check if the string is not null.
 | ||||||
|  | func IsNotNull(str string) bool { | ||||||
|  | 	return !IsNull(str) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // HasWhitespaceOnly checks the string only contains whitespace
 | // HasWhitespaceOnly checks the string only contains whitespace
 | ||||||
| func HasWhitespaceOnly(str string) bool { | func HasWhitespaceOnly(str string) bool { | ||||||
|     return len(str) > 0 && rxHasWhitespaceOnly.MatchString(str) | 	return len(str) > 0 && rxHasWhitespaceOnly.MatchString(str) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // HasWhitespace checks if the string contains any whitespace
 | // HasWhitespace checks if the string contains any whitespace
 | ||||||
| func HasWhitespace(str string) bool { | 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 check if the string's length (in bytes) falls in a range.
 | ||||||
| @ -513,6 +518,11 @@ func IsDataURI(str string) bool { | |||||||
| 	return IsBase64(dataURI[1]) | 	return IsBase64(dataURI[1]) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // IsMagnetURI checks if a string is valid magnet URI
 | ||||||
|  | func IsMagnetURI(str string) bool { | ||||||
|  | 	return rxMagnetURI.MatchString(str) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // IsISO3166Alpha2 checks if a string is valid two-letter country code
 | // IsISO3166Alpha2 checks if a string is valid two-letter country code
 | ||||||
| func IsISO3166Alpha2(str string) bool { | func IsISO3166Alpha2(str string) bool { | ||||||
| 	for _, entry := range ISO3166List { | 	for _, entry := range ISO3166List { | ||||||
| @ -565,7 +575,7 @@ func IsDNSName(str string) bool { | |||||||
| // IsHash checks if a string is a hash of type algorithm.
 | // IsHash checks if a string is a hash of type algorithm.
 | ||||||
| // Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', 'tiger160', 'tiger192', 'crc32', 'crc32b']
 | // Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', 'tiger160', 'tiger192', 'crc32', 'crc32b']
 | ||||||
| func IsHash(str string, algorithm string) bool { | func IsHash(str string, algorithm string) bool { | ||||||
| 	len := "0" | 	var len string | ||||||
| 	algo := strings.ToLower(algorithm) | 	algo := strings.ToLower(algorithm) | ||||||
| 
 | 
 | ||||||
| 	if algo == "crc32" || algo == "crc32b" { | 	if algo == "crc32" || algo == "crc32b" { | ||||||
| @ -589,9 +599,73 @@ func IsHash(str string, algorithm string) bool { | |||||||
| 	return Matches(str, "^[a-f0-9]{"+len+"}$") | 	return Matches(str, "^[a-f0-9]{"+len+"}$") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // IsSHA512 checks is a string is a SHA512 hash. Alias for `IsHash(str, "sha512")`
 | ||||||
|  | func IsSHA512(str string) bool { | ||||||
|  | 	return IsHash(str, "sha512") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsSHA384 checks is a string is a SHA384 hash. Alias for `IsHash(str, "sha384")`
 | ||||||
|  | func IsSHA384(str string) bool { | ||||||
|  | 	return IsHash(str, "sha384") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsSHA256 checks is a string is a SHA256 hash. Alias for `IsHash(str, "sha256")`
 | ||||||
|  | func IsSHA256(str string) bool { | ||||||
|  | 	return IsHash(str, "sha256") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsTiger192 checks is a string is a Tiger192 hash. Alias for `IsHash(str, "tiger192")`
 | ||||||
|  | func IsTiger192(str string) bool { | ||||||
|  | 	return IsHash(str, "tiger192") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsTiger160 checks is a string is a Tiger160 hash. Alias for `IsHash(str, "tiger160")`
 | ||||||
|  | func IsTiger160(str string) bool { | ||||||
|  | 	return IsHash(str, "tiger160") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsRipeMD160 checks is a string is a RipeMD160 hash. Alias for `IsHash(str, "ripemd160")`
 | ||||||
|  | func IsRipeMD160(str string) bool { | ||||||
|  | 	return IsHash(str, "ripemd160") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsSHA1 checks is a string is a SHA-1 hash. Alias for `IsHash(str, "sha1")`
 | ||||||
|  | func IsSHA1(str string) bool { | ||||||
|  | 	return IsHash(str, "sha1") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsTiger128 checks is a string is a Tiger128 hash. Alias for `IsHash(str, "tiger128")`
 | ||||||
|  | func IsTiger128(str string) bool { | ||||||
|  | 	return IsHash(str, "tiger128") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsRipeMD128 checks is a string is a RipeMD128 hash. Alias for `IsHash(str, "ripemd128")`
 | ||||||
|  | func IsRipeMD128(str string) bool { | ||||||
|  | 	return IsHash(str, "ripemd128") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsCRC32 checks is a string is a CRC32 hash. Alias for `IsHash(str, "crc32")`
 | ||||||
|  | func IsCRC32(str string) bool { | ||||||
|  | 	return IsHash(str, "crc32") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsCRC32b checks is a string is a CRC32b hash. Alias for `IsHash(str, "crc32b")`
 | ||||||
|  | func IsCRC32b(str string) bool { | ||||||
|  | 	return IsHash(str, "crc32b") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsMD5 checks is a string is a MD5 hash. Alias for `IsHash(str, "md5")`
 | ||||||
|  | func IsMD5(str string) bool { | ||||||
|  | 	return IsHash(str, "md5") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // IsMD4 checks is a string is a MD4 hash. Alias for `IsHash(str, "md4")`
 | ||||||
|  | func IsMD4(str string) bool { | ||||||
|  | 	return IsHash(str, "md4") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // IsDialString validates the given string for usage with the various Dial() functions
 | // IsDialString validates the given string for usage with the various Dial() functions
 | ||||||
| func IsDialString(str string) bool { | func IsDialString(str string) bool { | ||||||
| 
 |  | ||||||
| 	if h, p, err := net.SplitHostPort(str); err == nil && h != "" && p != "" && (IsDNSName(h) || IsIP(h)) && IsPort(p) { | 	if h, p, err := net.SplitHostPort(str); err == nil && h != "" && p != "" && (IsDNSName(h) || IsIP(h)) && IsPort(p) { | ||||||
| 		return true | 		return true | ||||||
| 	} | 	} | ||||||
| @ -599,7 +673,7 @@ func IsDialString(str string) bool { | |||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsIP checks if a string is either IP version 4 or 6.
 | // IsIP checks if a string is either IP version 4 or 6. Alias for `net.ParseIP`
 | ||||||
| func IsIP(str string) bool { | func IsIP(str string) bool { | ||||||
| 	return net.ParseIP(str) != nil | 	return net.ParseIP(str) != nil | ||||||
| } | } | ||||||
| @ -663,6 +737,11 @@ func IsLongitude(str string) bool { | |||||||
| 	return rxLongitude.MatchString(str) | 	return rxLongitude.MatchString(str) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // IsIMEI check if a string is valid IMEI
 | ||||||
|  | func IsIMEI(str string) bool { | ||||||
|  | 	return rxIMEI.MatchString(str) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // IsRsaPublicKey check if a string is valid public key with provided length
 | // IsRsaPublicKey check 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) | ||||||
| @ -729,12 +808,116 @@ func PrependPathToErrors(err error, path string) error { | |||||||
| 		} | 		} | ||||||
| 		return err2 | 		return err2 | ||||||
| 	} | 	} | ||||||
| 	fmt.Println(err) |  | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // ValidateMap use validation map for fields.
 | ||||||
|  | // result will be equal to `false` if there are any errors.
 | ||||||
|  | // s is the map containing the data to be validated.
 | ||||||
|  | // m is the validation map in the form:
 | ||||||
|  | //   map[string]interface{}{"name":"required,alpha","address":map[string]interface{}{"line1":"required,alphanum"}}
 | ||||||
|  | func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, error) { | ||||||
|  | 	if s == nil { | ||||||
|  | 		return true, nil | ||||||
|  | 	} | ||||||
|  | 	result := true | ||||||
|  | 	var err error | ||||||
|  | 	var errs Errors | ||||||
|  | 	var index int | ||||||
|  | 	val := reflect.ValueOf(s) | ||||||
|  | 	for key, value := range s { | ||||||
|  | 		presentResult := true | ||||||
|  | 		validator, ok := m[key] | ||||||
|  | 		if !ok { | ||||||
|  | 			presentResult = false | ||||||
|  | 			var err error | ||||||
|  | 			err = fmt.Errorf("all map keys has to be present in the validation map; got %s", key) | ||||||
|  | 			err = PrependPathToErrors(err, key) | ||||||
|  | 			errs = append(errs, err) | ||||||
|  | 		} | ||||||
|  | 		valueField := reflect.ValueOf(value) | ||||||
|  | 		mapResult := true | ||||||
|  | 		typeResult := true | ||||||
|  | 		structResult := true | ||||||
|  | 		resultField := true | ||||||
|  | 		switch subValidator := validator.(type) { | ||||||
|  | 		case map[string]interface{}: | ||||||
|  | 			var err error | ||||||
|  | 			if v, ok := value.(map[string]interface{}); !ok { | ||||||
|  | 				mapResult = false | ||||||
|  | 				err = fmt.Errorf("map validator has to be for the map type only; got %s", valueField.Type().String()) | ||||||
|  | 				err = PrependPathToErrors(err, key) | ||||||
|  | 				errs = append(errs, err) | ||||||
|  | 			} else { | ||||||
|  | 				mapResult, err = ValidateMap(v, subValidator) | ||||||
|  | 				if err != nil { | ||||||
|  | 					mapResult = false | ||||||
|  | 					err = PrependPathToErrors(err, key) | ||||||
|  | 					errs = append(errs, err) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		case string: | ||||||
|  | 			if (valueField.Kind() == reflect.Struct || | ||||||
|  | 				(valueField.Kind() == reflect.Ptr && valueField.Elem().Kind() == reflect.Struct)) && | ||||||
|  | 				subValidator != "-" { | ||||||
|  | 				var err error | ||||||
|  | 				structResult, err = ValidateStruct(valueField.Interface()) | ||||||
|  | 				if err != nil { | ||||||
|  | 					err = PrependPathToErrors(err, key) | ||||||
|  | 					errs = append(errs, err) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			resultField, err = typeCheck(valueField, reflect.StructField{ | ||||||
|  | 				Name:      key, | ||||||
|  | 				PkgPath:   "", | ||||||
|  | 				Type:      val.Type(), | ||||||
|  | 				Tag:       reflect.StructTag(fmt.Sprintf("%s:%q", tagName, subValidator)), | ||||||
|  | 				Offset:    0, | ||||||
|  | 				Index:     []int{index}, | ||||||
|  | 				Anonymous: false, | ||||||
|  | 			}, val, nil) | ||||||
|  | 			if err != nil { | ||||||
|  | 				errs = append(errs, err) | ||||||
|  | 			} | ||||||
|  | 		case nil: | ||||||
|  | 			// already handlerd when checked before
 | ||||||
|  | 		default: | ||||||
|  | 			typeResult = false | ||||||
|  | 			err = fmt.Errorf("map validator has to be either map[string]interface{} or string; got %s", valueField.Type().String()) | ||||||
|  | 			err = PrependPathToErrors(err, key) | ||||||
|  | 			errs = append(errs, err) | ||||||
|  | 		} | ||||||
|  | 		result = result && presentResult && typeResult && resultField && structResult && mapResult | ||||||
|  | 		index++ | ||||||
|  | 	} | ||||||
|  | 	// check required keys
 | ||||||
|  | 	requiredResult := true | ||||||
|  | 	for key, value := range m { | ||||||
|  | 		if schema, ok := value.(string); ok { | ||||||
|  | 			tags := parseTagIntoMap(schema) | ||||||
|  | 			if required, ok := tags["required"]; ok { | ||||||
|  | 				if _, ok := s[key]; !ok { | ||||||
|  | 					requiredResult = false | ||||||
|  | 					if required.customErrorMessage != "" { | ||||||
|  | 						err = Error{key, fmt.Errorf(required.customErrorMessage), true, "required", []string{}} | ||||||
|  | 					} else { | ||||||
|  | 						err = Error{key, fmt.Errorf("required field missing"), false, "required", []string{}} | ||||||
|  | 					} | ||||||
|  | 					errs = append(errs, err) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if len(errs) > 0 { | ||||||
|  | 		err = errs | ||||||
|  | 	} | ||||||
|  | 	return result && requiredResult, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // ValidateStruct use tags for fields.
 | // ValidateStruct use tags for fields.
 | ||||||
| // result will be equal to `false` if there are any errors.
 | // result will be equal to `false` if there are any errors.
 | ||||||
|  | // todo currently there is no guarantee that errors will be returned in predictable order (tests may to fail)
 | ||||||
| func ValidateStruct(s interface{}) (bool, error) { | func ValidateStruct(s interface{}) (bool, error) { | ||||||
| 	if s == nil { | 	if s == nil { | ||||||
| 		return true, nil | 		return true, nil | ||||||
| @ -856,12 +1039,29 @@ func IsSemver(str string) bool { | |||||||
| 	return rxSemver.MatchString(str) | 	return rxSemver.MatchString(str) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // IsType check if interface is of some type
 | ||||||
|  | func IsType(v interface{}, params ...string) bool { | ||||||
|  | 	if len(params) == 1 { | ||||||
|  | 		typ := params[0] | ||||||
|  | 		return strings.Replace(reflect.TypeOf(v).String(), " ", "", -1) == strings.Replace(typ, " ", "", -1) | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // IsTime check if string is valid according to given format
 | // IsTime check 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
 | ||||||
|  | func IsUnixTime(str string) bool { | ||||||
|  | 	if _, err := strconv.Atoi(str); err == nil { | ||||||
|  | 		return true | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // IsRFC3339 check if string is valid timestamp value according to RFC3339
 | // IsRFC3339 check 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) | ||||||
| @ -933,6 +1133,30 @@ func StringLength(str string, params ...string) bool { | |||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // MinStringLength check string's minimum length (including multi byte strings)
 | ||||||
|  | func MinStringLength(str string, params ...string) bool { | ||||||
|  | 
 | ||||||
|  | 	if len(params) == 1 { | ||||||
|  | 		strLength := utf8.RuneCountInString(str) | ||||||
|  | 		min, _ := ToInt(params[0]) | ||||||
|  | 		return strLength >= int(min) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // MaxStringLength check string's maximum length (including multi byte strings)
 | ||||||
|  | func MaxStringLength(str string, params ...string) bool { | ||||||
|  | 
 | ||||||
|  | 	if len(params) == 1 { | ||||||
|  | 		strLength := utf8.RuneCountInString(str) | ||||||
|  | 		max, _ := ToInt(params[0]) | ||||||
|  | 		return strLength <= int(max) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Range check string's length
 | // Range check 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 { | ||||||
| @ -945,7 +1169,7 @@ func Range(str string, params ...string) bool { | |||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 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] | ||||||
| 
 | 
 | ||||||
| @ -1014,7 +1238,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||||||
| 		options = parseTagIntoMap(tag) | 		options = parseTagIntoMap(tag) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if isEmptyValue(v) { | 	if !isFieldSet(v) { | ||||||
| 		// an empty value is not validated, check only required
 | 		// an empty value is not validated, check only required
 | ||||||
| 		isValid, resultErr = checkRequired(v, t, options) | 		isValid, resultErr = checkRequired(v, t, options) | ||||||
| 		for key := range options { | 		for key := range options { | ||||||
| @ -1062,6 +1286,45 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||||||
| 		}() | 		}() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	for _, validatorSpec := range optionsOrder { | ||||||
|  | 		validatorStruct := options[validatorSpec] | ||||||
|  | 		var negate bool | ||||||
|  | 		validator := validatorSpec | ||||||
|  | 		customMsgExists := len(validatorStruct.customErrorMessage) > 0 | ||||||
|  | 
 | ||||||
|  | 		// Check whether the tag looks like '!something' or 'something'
 | ||||||
|  | 		if validator[0] == '!' { | ||||||
|  | 			validator = validator[1:] | ||||||
|  | 			negate = true | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// Check for interface param validators
 | ||||||
|  | 		for key, value := range InterfaceParamTagRegexMap { | ||||||
|  | 			ps := value.FindStringSubmatch(validator) | ||||||
|  | 			if len(ps) == 0 { | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			validatefunc, ok := InterfaceParamTagMap[key] | ||||||
|  | 			if !ok { | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			delete(options, validatorSpec) | ||||||
|  | 
 | ||||||
|  | 			field := fmt.Sprint(v) | ||||||
|  | 			if result := validatefunc(v.Interface(), ps[1:]...); (!result && !negate) || (result && negate) { | ||||||
|  | 				if customMsgExists { | ||||||
|  | 					return false, Error{t.Name, TruncatingErrorf(validatorStruct.customErrorMessage, field, validator), customMsgExists, stripParams(validatorSpec), []string{}} | ||||||
|  | 				} | ||||||
|  | 				if negate { | ||||||
|  | 					return false, Error{t.Name, fmt.Errorf("%s does validate as %s", field, validator), customMsgExists, stripParams(validatorSpec), []string{}} | ||||||
|  | 				} | ||||||
|  | 				return false, Error{t.Name, fmt.Errorf("%s does not validate as %s", field, validator), customMsgExists, stripParams(validatorSpec), []string{}} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	switch v.Kind() { | 	switch v.Kind() { | ||||||
| 	case reflect.Bool, | 	case reflect.Bool, | ||||||
| 		reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, | 		reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, | ||||||
| @ -1121,10 +1384,10 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||||||
| 				delete(options, validatorSpec) | 				delete(options, validatorSpec) | ||||||
| 
 | 
 | ||||||
| 				switch v.Kind() { | 				switch v.Kind() { | ||||||
|                 case reflect.String, | 				case reflect.String, | ||||||
|                     reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, | 					reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, | ||||||
|                     reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, | 					reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, | ||||||
|                     reflect.Float32, reflect.Float64: | 					reflect.Float32, reflect.Float64: | ||||||
| 					field := fmt.Sprint(v) // make value into string, then validate with regex
 | 					field := fmt.Sprint(v) // make value into string, then validate with regex
 | ||||||
| 					if result := validatefunc(field); !result && !negate || result && negate { | 					if result := validatefunc(field); !result && !negate || result && negate { | ||||||
| 						if customMsgExists { | 						if customMsgExists { | ||||||
| @ -1202,7 +1465,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||||||
| 		} | 		} | ||||||
| 		return typeCheck(v.Elem(), t, o, options) | 		return typeCheck(v.Elem(), t, o, options) | ||||||
| 	case reflect.Struct: | 	case reflect.Struct: | ||||||
| 		return ValidateStruct(v.Interface()) | 		return true, nil | ||||||
| 	default: | 	default: | ||||||
| 		return false, &UnsupportedTypeError{v.Type()} | 		return false, &UnsupportedTypeError{v.Type()} | ||||||
| 	} | 	} | ||||||
| @ -1212,25 +1475,14 @@ func stripParams(validatorString string) string { | |||||||
| 	return paramsRegexp.ReplaceAllString(validatorString, "") | 	return paramsRegexp.ReplaceAllString(validatorString, "") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func isEmptyValue(v reflect.Value) bool { | // isFieldSet returns false for nil pointers, interfaces, maps, and slices. For all other values, it returns true.
 | ||||||
|  | func isFieldSet(v reflect.Value) bool { | ||||||
| 	switch v.Kind() { | 	switch v.Kind() { | ||||||
| 	case reflect.String, reflect.Array: | 	case reflect.Map, reflect.Slice, reflect.Interface, reflect.Ptr: | ||||||
| 		return v.Len() == 0 | 		return !v.IsNil() | ||||||
| 	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 reflect.DeepEqual(v.Interface(), reflect.Zero(v.Type()).Interface()) | 	return true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ErrorByField returns error for specified field of the struct
 | // ErrorByField returns error for specified field of the struct
 | ||||||
| @ -1252,11 +1504,11 @@ func ErrorsByField(e error) map[string]string { | |||||||
| 	} | 	} | ||||||
| 	// prototype for ValidateStruct
 | 	// prototype for ValidateStruct
 | ||||||
| 
 | 
 | ||||||
| 	switch e.(type) { | 	switch e := e.(type) { | ||||||
| 	case Error: | 	case Error: | ||||||
| 		m[e.(Error).Name] = e.(Error).Err.Error() | 		m[e.Name] = e.Err.Error() | ||||||
| 	case Errors: | 	case Errors: | ||||||
| 		for _, item := range e.(Errors).Errors() { | 		for _, item := range e.Errors() { | ||||||
| 			n := ErrorsByField(item) | 			n := ErrorsByField(item) | ||||||
| 			for k, v := range n { | 			for k, v := range n { | ||||||
| 				m[k] = v | 				m[k] = v | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/wercker.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/wercker.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -12,4 +12,4 @@ build: | |||||||
|     - script: |     - script: | ||||||
|         name: go test |         name: go test | ||||||
|         code: | |         code: | | ||||||
|           go test -race ./... |           go test -race -v ./... | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								vendor/github.com/fsnotify/fsnotify/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/fsnotify/fsnotify/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,5 +1,12 @@ | |||||||
| root = true | root = true | ||||||
| 
 | 
 | ||||||
| [*] | [*.go] | ||||||
| indent_style = tab | indent_style = tab | ||||||
| indent_size = 4 | indent_size = 4 | ||||||
|  | insert_final_newline = true | ||||||
|  | 
 | ||||||
|  | [*.{yml,yaml}] | ||||||
|  | indent_style = space | ||||||
|  | indent_size = 2 | ||||||
|  | insert_final_newline = true | ||||||
|  | trim_trailing_whitespace = true | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								vendor/github.com/fsnotify/fsnotify/.gitattributes
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/fsnotify/fsnotify/.gitattributes
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | go.sum linguist-generated | ||||||
							
								
								
									
										20
									
								
								vendor/github.com/fsnotify/fsnotify/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/fsnotify/fsnotify/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -2,29 +2,35 @@ sudo: false | |||||||
| language: go | language: go | ||||||
| 
 | 
 | ||||||
| go: | go: | ||||||
|   - 1.8.x |   - "stable" | ||||||
|   - 1.9.x |   - "1.11.x" | ||||||
|   - tip |   - "1.10.x" | ||||||
|  |   - "1.9.x" | ||||||
| 
 | 
 | ||||||
| matrix: | matrix: | ||||||
|  |   include: | ||||||
|  |     - go: "stable" | ||||||
|  |       env: GOLINT=true | ||||||
|   allow_failures: |   allow_failures: | ||||||
|     - go: tip |     - go: tip | ||||||
|   fast_finish: true |   fast_finish: true | ||||||
| 
 | 
 | ||||||
| before_script: | 
 | ||||||
|   - go get -u github.com/golang/lint/golint | before_install: | ||||||
|  |   - if [ ! -z "${GOLINT}" ]; then go get -u golang.org/x/lint/golint; fi | ||||||
| 
 | 
 | ||||||
| script: | script: | ||||||
|   - go test -v --race ./... |   - go test --race ./... | ||||||
| 
 | 
 | ||||||
| after_script: | after_script: | ||||||
|   - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" |   - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" | ||||||
|   - test -z "$(golint ./...     | tee /dev/stderr)" |   - if [ ! -z  "${GOLINT}" ]; then echo running golint; golint --set_exit_status  ./...; else echo skipping golint; fi | ||||||
|   - go vet ./... |   - go vet ./... | ||||||
| 
 | 
 | ||||||
| os: | os: | ||||||
|   - linux |   - linux | ||||||
|   - osx |   - osx | ||||||
|  |   - windows | ||||||
| 
 | 
 | ||||||
| notifications: | notifications: | ||||||
|   email: false |   email: false | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,5 +1,5 @@ | |||||||
| Copyright (c) 2012 The Go Authors. All rights reserved. | Copyright (c) 2012 The Go Authors. All rights reserved. | ||||||
| Copyright (c) 2012 fsnotify Authors. All rights reserved. | Copyright (c) 2012-2019 fsnotify Authors. All rights reserved. | ||||||
| 
 | 
 | ||||||
| Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | ||||||
| modification, are permitted provided that the following conditions are | modification, are permitted provided that the following conditions are | ||||||
|  | |||||||
							
								
								
									
										71
									
								
								vendor/github.com/fsnotify/fsnotify/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								vendor/github.com/fsnotify/fsnotify/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -10,16 +10,16 @@ go get -u golang.org/x/sys/... | |||||||
| 
 | 
 | ||||||
| Cross platform: Windows, Linux, BSD and macOS. | Cross platform: Windows, Linux, BSD and macOS. | ||||||
| 
 | 
 | ||||||
| |Adapter   |OS        |Status    | | | Adapter               | OS                               | Status                                                                                                                          | | ||||||
| |----------|----------|----------| | | --------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | ||||||
| |inotify   |Linux 2.6.27 or later, Android\*|Supported [](https://travis-ci.org/fsnotify/fsnotify)| | | inotify               | Linux 2.6.27 or later, Android\* | Supported [](https://travis-ci.org/fsnotify/fsnotify) | | ||||||
| |kqueue    |BSD, macOS, iOS\*|Supported [](https://travis-ci.org/fsnotify/fsnotify)| | | kqueue                | BSD, macOS, iOS\*                | Supported [](https://travis-ci.org/fsnotify/fsnotify) | | ||||||
| |ReadDirectoryChangesW|Windows|Supported [](https://ci.appveyor.com/project/NathanYoungman/fsnotify/branch/master)| | | ReadDirectoryChangesW | Windows                          | Supported [](https://travis-ci.org/fsnotify/fsnotify) | | ||||||
| |FSEvents  |macOS         |[Planned](https://github.com/fsnotify/fsnotify/issues/11)| | | FSEvents              | macOS                            | [Planned](https://github.com/fsnotify/fsnotify/issues/11)                                                                       | | ||||||
| |FEN       |Solaris 11    |[In Progress](https://github.com/fsnotify/fsnotify/issues/12)| | | FEN                   | Solaris 11                       | [In Progress](https://github.com/fsnotify/fsnotify/issues/12)                                                                   | | ||||||
| |fanotify  |Linux 2.6.37+ | | | | fanotify              | Linux 2.6.37+                    | [Planned](https://github.com/fsnotify/fsnotify/issues/114)                                                                      | | ||||||
| |USN Journals |Windows    |[Maybe](https://github.com/fsnotify/fsnotify/issues/53)| | | USN Journals          | Windows                          | [Maybe](https://github.com/fsnotify/fsnotify/issues/53)                                                                         | | ||||||
| |Polling   |*All*         |[Maybe](https://github.com/fsnotify/fsnotify/issues/9)| | | Polling               | *All*                            | [Maybe](https://github.com/fsnotify/fsnotify/issues/9)                                                                          | | ||||||
| 
 | 
 | ||||||
| \* Android and iOS are untested. | \* Android and iOS are untested. | ||||||
| 
 | 
 | ||||||
| @ -33,6 +33,53 @@ All [releases](https://github.com/fsnotify/fsnotify/releases) are tagged based o | |||||||
| 
 | 
 | ||||||
| Go 1.6 supports dependencies located in the `vendor/` folder. Unless you are creating a library, it is recommended that you copy fsnotify into `vendor/github.com/fsnotify/fsnotify` within your project, and likewise for `golang.org/x/sys`. | Go 1.6 supports dependencies located in the `vendor/` folder. Unless you are creating a library, it is recommended that you copy fsnotify into `vendor/github.com/fsnotify/fsnotify` within your project, and likewise for `golang.org/x/sys`. | ||||||
| 
 | 
 | ||||||
|  | ## Usage | ||||||
|  | 
 | ||||||
|  | ```go | ||||||
|  | package main | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"log" | ||||||
|  | 
 | ||||||
|  | 	"github.com/fsnotify/fsnotify" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func main() { | ||||||
|  | 	watcher, err := fsnotify.NewWatcher() | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	defer watcher.Close() | ||||||
|  | 
 | ||||||
|  | 	done := make(chan bool) | ||||||
|  | 	go func() { | ||||||
|  | 		for { | ||||||
|  | 			select { | ||||||
|  | 			case event, ok := <-watcher.Events: | ||||||
|  | 				if !ok { | ||||||
|  | 					return | ||||||
|  | 				} | ||||||
|  | 				log.Println("event:", event) | ||||||
|  | 				if event.Op&fsnotify.Write == fsnotify.Write { | ||||||
|  | 					log.Println("modified file:", event.Name) | ||||||
|  | 				} | ||||||
|  | 			case err, ok := <-watcher.Errors: | ||||||
|  | 				if !ok { | ||||||
|  | 					return | ||||||
|  | 				} | ||||||
|  | 				log.Println("error:", err) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
|  | 
 | ||||||
|  | 	err = watcher.Add("/tmp/foo") | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	<-done | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## Contributing | ## Contributing | ||||||
| 
 | 
 | ||||||
| Please refer to [CONTRIBUTING][] before opening an issue or pull request. | Please refer to [CONTRIBUTING][] before opening an issue or pull request. | ||||||
| @ -65,6 +112,10 @@ There are OS-specific limits as to how many watches can be created: | |||||||
| * Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. | * Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. | ||||||
| * BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. | * BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. | ||||||
| 
 | 
 | ||||||
|  | **Why don't notifications work with NFS filesystems or filesystem in userspace (FUSE)?** | ||||||
|  | 
 | ||||||
|  | fsnotify requires support from underlying OS to work. The current NFS protocol does not provide network level support for file notifications. | ||||||
|  | 
 | ||||||
| [#62]: https://github.com/howeyc/fsnotify/issues/62 | [#62]: https://github.com/howeyc/fsnotify/issues/62 | ||||||
| [#18]: https://github.com/fsnotify/fsnotify/issues/18 | [#18]: https://github.com/fsnotify/fsnotify/issues/18 | ||||||
| [#11]: https://github.com/fsnotify/fsnotify/issues/11 | [#11]: https://github.com/fsnotify/fsnotify/issues/11 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/fsnotify/fsnotify/fsnotify.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/fsnotify/fsnotify/fsnotify.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -63,4 +63,6 @@ func (e Event) String() string { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Common errors that can be reported by a watcher
 | // Common errors that can be reported by a watcher
 | ||||||
| var ErrEventOverflow = errors.New("fsnotify queue overflow") | var ( | ||||||
|  | 	ErrEventOverflow = errors.New("fsnotify queue overflow") | ||||||
|  | ) | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								vendor/github.com/fsnotify/fsnotify/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/fsnotify/fsnotify/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | module github.com/fsnotify/fsnotify | ||||||
|  | 
 | ||||||
|  | go 1.13 | ||||||
|  | 
 | ||||||
|  | require golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0= | ||||||
|  | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
							
								
								
									
										4
									
								
								vendor/github.com/fsnotify/fsnotify/inotify_poller.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/fsnotify/fsnotify/inotify_poller.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -40,12 +40,12 @@ func newFdPoller(fd int) (*fdPoller, error) { | |||||||
| 	poller.fd = fd | 	poller.fd = fd | ||||||
| 
 | 
 | ||||||
| 	// Create epoll fd
 | 	// Create epoll fd
 | ||||||
| 	poller.epfd, errno = unix.EpollCreate1(0) | 	poller.epfd, errno = unix.EpollCreate1(unix.EPOLL_CLOEXEC) | ||||||
| 	if poller.epfd == -1 { | 	if poller.epfd == -1 { | ||||||
| 		return nil, errno | 		return nil, errno | ||||||
| 	} | 	} | ||||||
| 	// Create pipe; pipe[0] is the read end, pipe[1] the write end.
 | 	// Create pipe; pipe[0] is the read end, pipe[1] the write end.
 | ||||||
| 	errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK) | 	errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK|unix.O_CLOEXEC) | ||||||
| 	if errno != nil { | 	if errno != nil { | ||||||
| 		return nil, errno | 		return nil, errno | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -8,4 +8,4 @@ package fsnotify | |||||||
| 
 | 
 | ||||||
| import "golang.org/x/sys/unix" | import "golang.org/x/sys/unix" | ||||||
| 
 | 
 | ||||||
| const openMode = unix.O_NONBLOCK | unix.O_RDONLY | const openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -9,4 +9,4 @@ package fsnotify | |||||||
| import "golang.org/x/sys/unix" | import "golang.org/x/sys/unix" | ||||||
| 
 | 
 | ||||||
| // note: this constant is not defined on BSD
 | // note: this constant is not defined on BSD
 | ||||||
| const openMode = unix.O_EVTONLY | const openMode = unix.O_EVTONLY | unix.O_CLOEXEC | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -25,3 +25,8 @@ linters: | |||||||
|     # linter rather than changing code that works. |     # linter rather than changing code that works. | ||||||
|     # see: https://github.com/kyoh86/scopelint/issues/4 |     # see: https://github.com/kyoh86/scopelint/issues/4 | ||||||
|     - scopelint |     - scopelint | ||||||
|  |     - godox | ||||||
|  |     - gocognit | ||||||
|  |     - whitespace | ||||||
|  |     - wsl | ||||||
|  |     - funlen | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/analysis/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/analysis/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										50
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -221,7 +221,7 @@ func (s *Spec) initialize() { | |||||||
| 			s.analyzeItems("items", parameter.Items, refPref, "parameter") | 			s.analyzeItems("items", parameter.Items, refPref, "parameter") | ||||||
| 		} | 		} | ||||||
| 		if parameter.In == "body" && parameter.Schema != nil { | 		if parameter.In == "body" && parameter.Schema != nil { | ||||||
| 			s.analyzeSchema("schema", *parameter.Schema, refPref) | 			s.analyzeSchema("schema", parameter.Schema, refPref) | ||||||
| 		} | 		} | ||||||
| 		if parameter.Pattern != "" { | 		if parameter.Pattern != "" { | ||||||
| 			s.patterns.addParameterPattern(refPref, parameter.Pattern) | 			s.patterns.addParameterPattern(refPref, parameter.Pattern) | ||||||
| @ -246,12 +246,13 @@ func (s *Spec) initialize() { | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if response.Schema != nil { | 		if response.Schema != nil { | ||||||
| 			s.analyzeSchema("schema", *response.Schema, refPref) | 			s.analyzeSchema("schema", response.Schema, refPref) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	for name, schema := range s.spec.Definitions { | 	for name := range s.spec.Definitions { | ||||||
| 		s.analyzeSchema(name, schema, "/definitions") | 		schema := s.spec.Definitions[name] | ||||||
|  | 		s.analyzeSchema(name, &schema, "/definitions") | ||||||
| 	} | 	} | ||||||
| 	// TODO: after analyzing all things and flattening schemas etc
 | 	// TODO: after analyzing all things and flattening schemas etc
 | ||||||
| 	// resolve all the collected references to their final representations
 | 	// resolve all the collected references to their final representations
 | ||||||
| @ -288,7 +289,7 @@ func (s *Spec) analyzeOperations(path string, pi *spec.PathItem) { | |||||||
| 			s.analyzeItems("items", param.Items, refPref, "parameter") | 			s.analyzeItems("items", param.Items, refPref, "parameter") | ||||||
| 		} | 		} | ||||||
| 		if param.Schema != nil { | 		if param.Schema != nil { | ||||||
| 			s.analyzeSchema("schema", *param.Schema, refPref) | 			s.analyzeSchema("schema", param.Schema, refPref) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -344,7 +345,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) { | |||||||
| 		} | 		} | ||||||
| 		s.analyzeItems("items", param.Items, refPref, "parameter") | 		s.analyzeItems("items", param.Items, refPref, "parameter") | ||||||
| 		if param.In == "body" && param.Schema != nil { | 		if param.In == "body" && param.Schema != nil { | ||||||
| 			s.analyzeSchema("schema", *param.Schema, refPref) | 			s.analyzeSchema("schema", param.Schema, refPref) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if op.Responses != nil { | 	if op.Responses != nil { | ||||||
| @ -361,7 +362,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if op.Responses.Default.Schema != nil { | 			if op.Responses.Default.Schema != nil { | ||||||
| 				s.analyzeSchema("schema", *op.Responses.Default.Schema, refPref) | 				s.analyzeSchema("schema", op.Responses.Default.Schema, refPref) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		for k, res := range op.Responses.StatusCodeResponses { | 		for k, res := range op.Responses.StatusCodeResponses { | ||||||
| @ -380,17 +381,17 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if res.Schema != nil { | 			if res.Schema != nil { | ||||||
| 				s.analyzeSchema("schema", *res.Schema, refPref) | 				s.analyzeSchema("schema", res.Schema, refPref) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *Spec) analyzeSchema(name string, schema spec.Schema, prefix string) { | func (s *Spec) analyzeSchema(name string, schema *spec.Schema, prefix string) { | ||||||
| 	refURI := slashpath.Join(prefix, jsonpointer.Escape(name)) | 	refURI := slashpath.Join(prefix, jsonpointer.Escape(name)) | ||||||
| 	schRef := SchemaRef{ | 	schRef := SchemaRef{ | ||||||
| 		Name:     name, | 		Name:     name, | ||||||
| 		Schema:   &schema, | 		Schema:   schema, | ||||||
| 		Ref:      spec.MustCreateRef("#" + refURI), | 		Ref:      spec.MustCreateRef("#" + refURI), | ||||||
| 		TopLevel: prefix == "/definitions", | 		TopLevel: prefix == "/definitions", | ||||||
| 	} | 	} | ||||||
| @ -408,28 +409,34 @@ func (s *Spec) analyzeSchema(name string, schema spec.Schema, prefix string) { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	for k, v := range schema.Definitions { | 	for k, v := range schema.Definitions { | ||||||
| 		s.analyzeSchema(k, v, slashpath.Join(refURI, "definitions")) | 		v := v | ||||||
|  | 		s.analyzeSchema(k, &v, slashpath.Join(refURI, "definitions")) | ||||||
| 	} | 	} | ||||||
| 	for k, v := range schema.Properties { | 	for k, v := range schema.Properties { | ||||||
| 		s.analyzeSchema(k, v, slashpath.Join(refURI, "properties")) | 		v := v | ||||||
|  | 		s.analyzeSchema(k, &v, slashpath.Join(refURI, "properties")) | ||||||
| 	} | 	} | ||||||
| 	for k, v := range schema.PatternProperties { | 	for k, v := range schema.PatternProperties { | ||||||
|  | 		v := v | ||||||
| 		// NOTE: swagger 2.0 does not support PatternProperties.
 | 		// NOTE: swagger 2.0 does not support PatternProperties.
 | ||||||
| 		// However it is possible to analyze this in a schema
 | 		// However it is possible to analyze this in a schema
 | ||||||
| 		s.analyzeSchema(k, v, slashpath.Join(refURI, "patternProperties")) | 		s.analyzeSchema(k, &v, slashpath.Join(refURI, "patternProperties")) | ||||||
| 	} | 	} | ||||||
| 	for i, v := range schema.AllOf { | 	for i := range schema.AllOf { | ||||||
|  | 		v := &schema.AllOf[i] | ||||||
| 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "allOf")) | 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "allOf")) | ||||||
| 	} | 	} | ||||||
| 	if len(schema.AllOf) > 0 { | 	if len(schema.AllOf) > 0 { | ||||||
| 		s.allOfs["#"+refURI] = schRef | 		s.allOfs["#"+refURI] = schRef | ||||||
| 	} | 	} | ||||||
| 	for i, v := range schema.AnyOf { | 	for i := range schema.AnyOf { | ||||||
|  | 		v := &schema.AnyOf[i] | ||||||
| 		// NOTE: swagger 2.0 does not support anyOf constructs.
 | 		// NOTE: swagger 2.0 does not support anyOf constructs.
 | ||||||
| 		// However it is possible to analyze this in a schema
 | 		// However it is possible to analyze this in a schema
 | ||||||
| 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "anyOf")) | 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "anyOf")) | ||||||
| 	} | 	} | ||||||
| 	for i, v := range schema.OneOf { | 	for i := range schema.OneOf { | ||||||
|  | 		v := &schema.OneOf[i] | ||||||
| 		// NOTE: swagger 2.0 does not support oneOf constructs.
 | 		// NOTE: swagger 2.0 does not support oneOf constructs.
 | ||||||
| 		// However it is possible to analyze this in a schema
 | 		// However it is possible to analyze this in a schema
 | ||||||
| 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "oneOf")) | 		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "oneOf")) | ||||||
| @ -437,21 +444,22 @@ func (s *Spec) analyzeSchema(name string, schema spec.Schema, prefix string) { | |||||||
| 	if schema.Not != nil { | 	if schema.Not != nil { | ||||||
| 		// NOTE: swagger 2.0 does not support "not" constructs.
 | 		// NOTE: swagger 2.0 does not support "not" constructs.
 | ||||||
| 		// However it is possible to analyze this in a schema
 | 		// However it is possible to analyze this in a schema
 | ||||||
| 		s.analyzeSchema("not", *schema.Not, refURI) | 		s.analyzeSchema("not", schema.Not, refURI) | ||||||
| 	} | 	} | ||||||
| 	if schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil { | 	if schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil { | ||||||
| 		s.analyzeSchema("additionalProperties", *schema.AdditionalProperties.Schema, refURI) | 		s.analyzeSchema("additionalProperties", schema.AdditionalProperties.Schema, refURI) | ||||||
| 	} | 	} | ||||||
| 	if schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil { | 	if schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil { | ||||||
| 		// NOTE: swagger 2.0 does not support AdditionalItems.
 | 		// NOTE: swagger 2.0 does not support AdditionalItems.
 | ||||||
| 		// However it is possible to analyze this in a schema
 | 		// However it is possible to analyze this in a schema
 | ||||||
| 		s.analyzeSchema("additionalItems", *schema.AdditionalItems.Schema, refURI) | 		s.analyzeSchema("additionalItems", schema.AdditionalItems.Schema, refURI) | ||||||
| 	} | 	} | ||||||
| 	if schema.Items != nil { | 	if schema.Items != nil { | ||||||
| 		if schema.Items.Schema != nil { | 		if schema.Items.Schema != nil { | ||||||
| 			s.analyzeSchema("items", *schema.Items.Schema, refURI) | 			s.analyzeSchema("items", schema.Items.Schema, refURI) | ||||||
| 		} | 		} | ||||||
| 		for i, sch := range schema.Items.Schemas { | 		for i := range schema.Items.Schemas { | ||||||
|  | 			sch := &schema.Items.Schemas[i] | ||||||
| 			s.analyzeSchema(strconv.Itoa(i), sch, slashpath.Join(refURI, "items")) | 			s.analyzeSchema(strconv.Itoa(i), sch, slashpath.Join(refURI, "items")) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										97
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -41,10 +41,11 @@ type FlattenOpts struct { | |||||||
| 	BasePath string | 	BasePath string | ||||||
| 
 | 
 | ||||||
| 	// Flattening options
 | 	// Flattening options
 | ||||||
| 	Expand       bool // If Expand is true, we skip flattening the spec and expand it instead
 | 	Expand          bool // If Expand is true, we skip flattening the spec and expand it instead
 | ||||||
| 	Minimal      bool | 	Minimal         bool | ||||||
| 	Verbose      bool | 	Verbose         bool | ||||||
| 	RemoveUnused bool | 	RemoveUnused    bool | ||||||
|  | 	ContinueOnError bool // Continues when facing some issues
 | ||||||
| 
 | 
 | ||||||
| 	/* Extra keys */ | 	/* Extra keys */ | ||||||
| 	_ struct{} // require keys
 | 	_ struct{} // require keys
 | ||||||
| @ -135,6 +136,7 @@ func newContext() *context { | |||||||
| //     - ...
 | //     - ...
 | ||||||
| //
 | //
 | ||||||
| func Flatten(opts FlattenOpts) error { | func Flatten(opts FlattenOpts) error { | ||||||
|  | 	debugLog("FlattenOpts: %#v", opts) | ||||||
| 	// Make sure opts.BasePath is an absolute path
 | 	// Make sure opts.BasePath is an absolute path
 | ||||||
| 	if !filepath.IsAbs(opts.BasePath) { | 	if !filepath.IsAbs(opts.BasePath) { | ||||||
| 		cwd, _ := os.Getwd() | 		cwd, _ := os.Getwd() | ||||||
| @ -148,7 +150,9 @@ func Flatten(opts FlattenOpts) error { | |||||||
| 
 | 
 | ||||||
| 	// recursively expand responses, parameters, path items and items in simple schemas.
 | 	// recursively expand responses, parameters, path items and items in simple schemas.
 | ||||||
| 	// This simplifies the spec and leaves $ref only into schema objects.
 | 	// This simplifies the spec and leaves $ref only into schema objects.
 | ||||||
| 	if err := swspec.ExpandSpec(opts.Swagger(), opts.ExpandOpts(!opts.Expand)); err != nil { | 	expandOpts := opts.ExpandOpts(!opts.Expand) | ||||||
|  | 	expandOpts.ContinueOnError = opts.ContinueOnError | ||||||
|  | 	if err := swspec.ExpandSpec(opts.Swagger(), expandOpts); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -846,7 +850,7 @@ func importExternalReferences(opts *FlattenOpts) (bool, error) { | |||||||
| 				enums:      enumAnalysis{}, | 				enums:      enumAnalysis{}, | ||||||
| 			} | 			} | ||||||
| 			partialAnalyzer.reset() | 			partialAnalyzer.reset() | ||||||
| 			partialAnalyzer.analyzeSchema("", *sch, "/") | 			partialAnalyzer.analyzeSchema("", sch, "/") | ||||||
| 
 | 
 | ||||||
| 			// now rewrite those refs with rebase
 | 			// now rewrite those refs with rebase
 | ||||||
| 			for key, ref := range partialAnalyzer.references.allRefs { | 			for key, ref := range partialAnalyzer.references.allRefs { | ||||||
| @ -874,6 +878,7 @@ func importExternalReferences(opts *FlattenOpts) (bool, error) { | |||||||
| 				if _, ok := opts.flattenContext.newRefs[key]; ok { | 				if _, ok := opts.flattenContext.newRefs[key]; ok { | ||||||
| 					resolved = opts.flattenContext.newRefs[key].resolved | 					resolved = opts.flattenContext.newRefs[key].resolved | ||||||
| 				} | 				} | ||||||
|  | 				debugLog("keeping track of ref: %s (%s), resolved: %t", key, newName, resolved) | ||||||
| 				opts.flattenContext.newRefs[key] = &newRef{ | 				opts.flattenContext.newRefs[key] = &newRef{ | ||||||
| 					key:      key, | 					key:      key, | ||||||
| 					newName:  newName, | 					newName:  newName, | ||||||
| @ -1308,16 +1313,55 @@ func stripPointersAndOAIGen(opts *FlattenOpts) error { | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// restrip
 | 		// restrip and re-analyze
 | ||||||
| 		if hasIntroducedPointerOrInline, ers = stripOAIGen(opts); ers != nil { | 		if hasIntroducedPointerOrInline, ers = stripOAIGen(opts); ers != nil { | ||||||
| 			return ers | 			return ers | ||||||
| 		} | 		} | ||||||
| 
 |  | ||||||
| 		opts.Spec.reload() // re-analyze
 |  | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func updateRefParents(opts *FlattenOpts, r *newRef) { | ||||||
|  | 	if !r.isOAIGen || r.resolved { // bail on already resolved entries (avoid looping)
 | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	for k, v := range opts.Spec.references.allRefs { | ||||||
|  | 		if r.path != v.String() { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		found := false | ||||||
|  | 		for _, p := range r.parents { | ||||||
|  | 			if p == k { | ||||||
|  | 				found = true | ||||||
|  | 				break | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		if !found { | ||||||
|  | 			r.parents = append(r.parents, k) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // topMostRefs is able to sort refs by hierarchical then lexicographic order,
 | ||||||
|  | // yielding refs ordered breadth-first.
 | ||||||
|  | type topmostRefs []string | ||||||
|  | 
 | ||||||
|  | func (k topmostRefs) Len() int      { return len(k) } | ||||||
|  | func (k topmostRefs) Swap(i, j int) { k[i], k[j] = k[j], k[i] } | ||||||
|  | func (k topmostRefs) Less(i, j int) bool { | ||||||
|  | 	li, lj := len(strings.Split(k[i], "/")), len(strings.Split(k[j], "/")) | ||||||
|  | 	if li == lj { | ||||||
|  | 		return k[i] < k[j] | ||||||
|  | 	} | ||||||
|  | 	return li < lj | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func topmostFirst(refs []string) []string { | ||||||
|  | 	res := topmostRefs(refs) | ||||||
|  | 	sort.Sort(res) | ||||||
|  | 	return res | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // stripOAIGen strips the spec from unnecessary OAIGen constructs, initially created to dedupe flattened definitions.
 | // stripOAIGen strips the spec from unnecessary OAIGen constructs, initially created to dedupe flattened definitions.
 | ||||||
| //
 | //
 | ||||||
| // A dedupe is deemed unnecessary whenever:
 | // A dedupe is deemed unnecessary whenever:
 | ||||||
| @ -1325,44 +1369,25 @@ func stripPointersAndOAIGen(opts *FlattenOpts) error { | |||||||
| //  - there is a conflict with multiple parents: merge OAIGen in first parent, the rewrite other parents to point to
 | //  - there is a conflict with multiple parents: merge OAIGen in first parent, the rewrite other parents to point to
 | ||||||
| //    the first parent.
 | //    the first parent.
 | ||||||
| //
 | //
 | ||||||
| // This function returns a true bool whenever it re-inlined a complex schema, so the caller may chose to iterate
 | // This function returns true whenever it re-inlined a complex schema, so the caller may chose to iterate
 | ||||||
| // pointer and name resolution again.
 | // pointer and name resolution again.
 | ||||||
| func stripOAIGen(opts *FlattenOpts) (bool, error) { | func stripOAIGen(opts *FlattenOpts) (bool, error) { | ||||||
| 	debugLog("stripOAIGen") | 	debugLog("stripOAIGen") | ||||||
| 	replacedWithComplex := false | 	replacedWithComplex := false | ||||||
| 
 | 
 | ||||||
| 	// figure out referers of OAIGen definitions
 | 	// figure out referers of OAIGen definitions (doing it before the ref start mutating)
 | ||||||
| 	for _, r := range opts.flattenContext.newRefs { | 	for _, r := range opts.flattenContext.newRefs { | ||||||
| 		if !r.isOAIGen || r.resolved { // bail on already resolved entries (avoid looping)
 | 		updateRefParents(opts, r) | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		for k, v := range opts.Spec.references.allRefs { |  | ||||||
| 			if r.path != v.String() { |  | ||||||
| 				continue |  | ||||||
| 			} |  | ||||||
| 			found := false |  | ||||||
| 			for _, p := range r.parents { |  | ||||||
| 				if p == k { |  | ||||||
| 					found = true |  | ||||||
| 					break |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			if !found { |  | ||||||
| 				r.parents = append(r.parents, k) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	for k := range opts.flattenContext.newRefs { | 	for k := range opts.flattenContext.newRefs { | ||||||
| 		r := opts.flattenContext.newRefs[k] | 		r := opts.flattenContext.newRefs[k] | ||||||
| 		//debugLog("newRefs[%s]: isOAIGen: %t, resolved: %t, name: %s, path:%s, #parents: %d, parents: %v,  ref: %s",
 | 		debugLog("newRefs[%s]: isOAIGen: %t, resolved: %t, name: %s, path:%s, #parents: %d, parents: %v,  ref: %s", | ||||||
| 		//	k, r.isOAIGen, r.resolved, r.newName, r.path, len(r.parents), r.parents, r.schema.Ref.String())
 | 			k, r.isOAIGen, r.resolved, r.newName, r.path, len(r.parents), r.parents, r.schema.Ref.String()) | ||||||
| 		if r.isOAIGen && len(r.parents) >= 1 { | 		if r.isOAIGen && len(r.parents) >= 1 { | ||||||
| 			pr := r.parents | 			pr := topmostFirst(r.parents) | ||||||
| 			sort.Strings(pr) |  | ||||||
| 
 | 
 | ||||||
| 			// rewrite first parent schema in lexicographical order
 | 			// rewrite first parent schema in hierarchical then lexicographical order
 | ||||||
| 			debugLog("rewrite first parent in lex order %s with schema", pr[0]) | 			debugLog("rewrite first parent %s with schema", pr[0]) | ||||||
| 			if err := updateRefWithSchema(opts.Swagger(), pr[0], r.schema); err != nil { | 			if err := updateRefWithSchema(opts.Swagger(), pr[0], r.schema); err != nil { | ||||||
| 				return false, err | 				return false, err | ||||||
| 			} | 			} | ||||||
|  | |||||||
							
								
								
									
										18
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,13 +1,23 @@ | |||||||
| 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.3 // indirect | ||||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | 	github.com/go-openapi/jsonpointer v0.19.3 | ||||||
|  | 	github.com/go-openapi/jsonreference v0.19.3 // indirect | ||||||
| 	github.com/go-openapi/loads v0.19.0 | 	github.com/go-openapi/loads v0.19.0 | ||||||
| 	github.com/go-openapi/spec v0.19.3 | 	github.com/go-openapi/spec v0.19.6 | ||||||
| 	github.com/go-openapi/strfmt v0.19.3 | 	github.com/go-openapi/strfmt v0.19.4 | ||||||
| 	github.com/go-openapi/swag v0.19.5 | 	github.com/go-openapi/swag v0.19.7 | ||||||
|  | 	github.com/kr/pty v1.1.5 // indirect | ||||||
|  | 	github.com/mailru/easyjson v0.7.1 // indirect | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/stretchr/testify v1.3.0 | ||||||
| 	go.mongodb.org/mongo-driver v1.1.1 // indirect | 	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 | ||||||
|  | |||||||
							
								
								
									
										89
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | |||||||
|  | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| 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= | ||||||
| @ -6,6 +7,8 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko | |||||||
| 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/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||||
| 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= | ||||||
| @ -14,6 +17,8 @@ github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70t | |||||||
| 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.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/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||||
| 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.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= | ||||||
| @ -22,28 +27,70 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34 | |||||||
| 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.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||||
| 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/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||||
| 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/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.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | ||||||
| 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/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.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/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||||
| 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.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/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||||
| 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/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
|  | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
|  | github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= | ||||||
|  | github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= | ||||||
|  | github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= | ||||||
|  | github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= | ||||||
|  | github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= | ||||||
|  | github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= | ||||||
|  | github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= | ||||||
|  | github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= | ||||||
|  | github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= | ||||||
|  | github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= | ||||||
|  | github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= | ||||||
|  | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
|  | 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/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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||||
|  | 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/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||||
|  | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/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= | ||||||
| @ -55,23 +102,47 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB | |||||||
| 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/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
|  | 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/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/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||||
| 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/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
|  | github.com/pkg/errors v0.8.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.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | 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.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | ||||||
|  | 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.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/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/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= | ||||||
| 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 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | ||||||
| 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/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
|  | 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-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-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| 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= | ||||||
| @ -80,18 +151,36 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowK | |||||||
| 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-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= | ||||||
|  | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
|  | golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/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-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-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-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-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/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/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-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-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-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| 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/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= | ||||||
| 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/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||||
|  | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/analysis/mixin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/analysis/mixin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -332,6 +332,9 @@ func mergeSwaggerProps(primary *spec.Swagger, m *spec.Swagger) []string { | |||||||
| 		if primary.Info.Contact == nil { | 		if primary.Info.Contact == nil { | ||||||
| 			primary.Info.Contact = m.Info.Contact | 			primary.Info.Contact = m.Info.Contact | ||||||
| 		} else if m.Info.Contact != nil { | 		} else if m.Info.Contact != nil { | ||||||
|  | 			var csk []string | ||||||
|  | 			primary.Info.Contact.Extensions, csk = mergeExtensions(primary.Info.Contact.Extensions, m.Info.Contact.Extensions) | ||||||
|  | 			skipped = append(skipped, csk...) | ||||||
| 			if primary.Info.Contact.Name == "" { | 			if primary.Info.Contact.Name == "" { | ||||||
| 				primary.Info.Contact.Name = m.Info.Contact.Name | 				primary.Info.Contact.Name = m.Info.Contact.Name | ||||||
| 			} | 			} | ||||||
| @ -346,6 +349,9 @@ func mergeSwaggerProps(primary *spec.Swagger, m *spec.Swagger) []string { | |||||||
| 		if primary.Info.License == nil { | 		if primary.Info.License == nil { | ||||||
| 			primary.Info.License = m.Info.License | 			primary.Info.License = m.Info.License | ||||||
| 		} else if m.Info.License != nil { | 		} else if m.Info.License != nil { | ||||||
|  | 			var lsk []string | ||||||
|  | 			primary.Info.License.Extensions, lsk = mergeExtensions(primary.Info.License.Extensions, m.Info.License.Extensions) | ||||||
|  | 			skipped = append(skipped, lsk...) | ||||||
| 			if primary.Info.License.Name == "" { | 			if primary.Info.License.Name == "" { | ||||||
| 				primary.Info.License.Name = m.Info.License.Name | 				primary.Info.License.Name = m.Info.License.Name | ||||||
| 			} | 			} | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/errors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/errors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/go-openapi/errors/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-openapi/errors/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,6 +1,12 @@ | |||||||
| module github.com/go-openapi/errors | module github.com/go-openapi/errors | ||||||
| 
 | 
 | ||||||
|  | go 1.14 | ||||||
|  | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/stretchr/objx v0.2.0 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/kr/text v0.2.0 // indirect | ||||||
|  | 	github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect | ||||||
|  | 	github.com/stretchr/testify v1.6.1 | ||||||
|  | 	gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect | ||||||
|  | 	gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c // indirect | ||||||
| ) | ) | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								vendor/github.com/go-openapi/errors/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/go-openapi/errors/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,9 +1,26 @@ | |||||||
|  | github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= | ||||||
|  | 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/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= | ||||||
|  | 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/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/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/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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= | github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= | ||||||
| github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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.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-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= | ||||||
|  | gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/errors/parsing.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/errors/parsing.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -16,7 +16,7 @@ package errors | |||||||
| 
 | 
 | ||||||
| import "fmt" | import "fmt" | ||||||
| 
 | 
 | ||||||
| // ParseError respresents a parsing error
 | // ParseError represents a parsing error
 | ||||||
| type ParseError struct { | type ParseError struct { | ||||||
| 	code    int32 | 	code    int32 | ||||||
| 	Name    string | 	Name    string | ||||||
|  | |||||||
							
								
								
									
										58
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -268,7 +268,7 @@ func DuplicateItems(name, in string) *Validation { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TooManyItems error for when an array contains too many items
 | // TooManyItems error for when an array contains too many items
 | ||||||
| func TooManyItems(name, in string, max int64) *Validation { | func TooManyItems(name, in string, max int64, value interface{}) *Validation { | ||||||
| 	msg := fmt.Sprintf(maxItemsFail, name, in, max) | 	msg := fmt.Sprintf(maxItemsFail, name, in, max) | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(maxItemsFailNoIn, name, max) | 		msg = fmt.Sprintf(maxItemsFailNoIn, name, max) | ||||||
| @ -278,12 +278,13 @@ func TooManyItems(name, in string, max int64) *Validation { | |||||||
| 		code:    MaxItemsFailCode, | 		code:    MaxItemsFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TooFewItems error for when an array contains too few items
 | // TooFewItems error for when an array contains too few items
 | ||||||
| func TooFewItems(name, in string, min int64) *Validation { | func TooFewItems(name, in string, min int64, value interface{}) *Validation { | ||||||
| 	msg := fmt.Sprintf(minItemsFail, name, in, min) | 	msg := fmt.Sprintf(minItemsFail, name, in, min) | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(minItemsFailNoIn, name, min) | 		msg = fmt.Sprintf(minItemsFailNoIn, name, min) | ||||||
| @ -292,12 +293,13 @@ func TooFewItems(name, in string, min int64) *Validation { | |||||||
| 		code:    MinItemsFailCode, | 		code:    MinItemsFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMaximumInt error for when maxinum validation fails
 | // ExceedsMaximumInt error for when maximum validation fails
 | ||||||
| func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation { | func ExceedsMaximumInt(name, in string, max int64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := maxIncFailNoIn | 		m := maxIncFailNoIn | ||||||
| @ -316,13 +318,13 @@ func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation { | |||||||
| 		code:    MaxFailCode, | 		code:    MaxFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   max, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMaximumUint error for when maxinum validation fails
 | // ExceedsMaximumUint error for when maximum validation fails
 | ||||||
| func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation { | func ExceedsMaximumUint(name, in string, max uint64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := maxIncFailNoIn | 		m := maxIncFailNoIn | ||||||
| @ -341,13 +343,13 @@ func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation | |||||||
| 		code:    MaxFailCode, | 		code:    MaxFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   max, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMaximum error for when maxinum validation fails
 | // ExceedsMaximum error for when maximum validation fails
 | ||||||
| func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation { | func ExceedsMaximum(name, in string, max float64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := maxIncFailNoIn | 		m := maxIncFailNoIn | ||||||
| @ -366,13 +368,13 @@ func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation { | |||||||
| 		code:    MaxFailCode, | 		code:    MaxFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   max, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMinimumInt error for when maxinum validation fails
 | // ExceedsMinimumInt error for when minimum validation fails
 | ||||||
| func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation { | func ExceedsMinimumInt(name, in string, min int64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := minIncFailNoIn | 		m := minIncFailNoIn | ||||||
| @ -391,13 +393,13 @@ func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation { | |||||||
| 		code:    MinFailCode, | 		code:    MinFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   min, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMinimumUint error for when maxinum validation fails
 | // ExceedsMinimumUint error for when minimum validation fails
 | ||||||
| func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation { | func ExceedsMinimumUint(name, in string, min uint64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := minIncFailNoIn | 		m := minIncFailNoIn | ||||||
| @ -416,13 +418,13 @@ func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation | |||||||
| 		code:    MinFailCode, | 		code:    MinFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   min, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ExceedsMinimum error for when maxinum validation fails
 | // ExceedsMinimum error for when minimum validation fails
 | ||||||
| func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation { | func ExceedsMinimum(name, in string, min float64, exclusive bool, value interface{}) *Validation { | ||||||
| 	var message string | 	var message string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		m := minIncFailNoIn | 		m := minIncFailNoIn | ||||||
| @ -441,13 +443,13 @@ func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation { | |||||||
| 		code:    MinFailCode, | 		code:    MinFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   min, | 		Value:   value, | ||||||
| 		message: message, | 		message: message, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotMultipleOf error for when multiple of validation fails
 | // NotMultipleOf error for when multiple of validation fails
 | ||||||
| func NotMultipleOf(name, in string, multiple interface{}) *Validation { | func NotMultipleOf(name, in string, multiple, value interface{}) *Validation { | ||||||
| 	var msg string | 	var msg string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(multipleOfFailNoIn, name, multiple) | 		msg = fmt.Sprintf(multipleOfFailNoIn, name, multiple) | ||||||
| @ -458,7 +460,7 @@ func NotMultipleOf(name, in string, multiple interface{}) *Validation { | |||||||
| 		code:    MultipleOfFailCode, | 		code:    MultipleOfFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
| 		Value:   multiple, | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -483,7 +485,7 @@ func EnumFail(name, in string, value interface{}, values []interface{}) *Validat | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Required error for when a value is missing
 | // Required error for when a value is missing
 | ||||||
| func Required(name, in string) *Validation { | func Required(name, in string, value interface{}) *Validation { | ||||||
| 	var msg string | 	var msg string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(requiredFailNoIn, name) | 		msg = fmt.Sprintf(requiredFailNoIn, name) | ||||||
| @ -494,12 +496,13 @@ func Required(name, in string) *Validation { | |||||||
| 		code:    RequiredFailCode, | 		code:    RequiredFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		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) *Validation { | func TooLong(name, in string, max int64, value interface{}) *Validation { | ||||||
| 	var msg string | 	var msg string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(tooLongMessageNoIn, name, max) | 		msg = fmt.Sprintf(tooLongMessageNoIn, name, max) | ||||||
| @ -510,12 +513,13 @@ func TooLong(name, in string, max int64) *Validation { | |||||||
| 		code:    TooLongFailCode, | 		code:    TooLongFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TooShort error for when a string is too short
 | // TooShort error for when a string is too short
 | ||||||
| func TooShort(name, in string, min int64) *Validation { | func TooShort(name, in string, min int64, value interface{}) *Validation { | ||||||
| 	var msg string | 	var msg string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(tooShortMessageNoIn, name, min) | 		msg = fmt.Sprintf(tooShortMessageNoIn, name, min) | ||||||
| @ -527,13 +531,14 @@ func TooShort(name, in string, min int64) *Validation { | |||||||
| 		code:    TooShortFailCode, | 		code:    TooShortFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // FailedPattern error for when a string fails a regex pattern match
 | // FailedPattern error for when a string fails a regex pattern match
 | ||||||
| // the pattern that is returned is the ECMA syntax version of the pattern not the golang version.
 | // the pattern that is returned is the ECMA syntax version of the pattern not the golang version.
 | ||||||
| func FailedPattern(name, in, pattern string) *Validation { | func FailedPattern(name, in, pattern string, value interface{}) *Validation { | ||||||
| 	var msg string | 	var msg string | ||||||
| 	if in == "" { | 	if in == "" { | ||||||
| 		msg = fmt.Sprintf(patternFailNoIn, name, pattern) | 		msg = fmt.Sprintf(patternFailNoIn, name, pattern) | ||||||
| @ -545,6 +550,7 @@ func FailedPattern(name, in, pattern string) *Validation { | |||||||
| 		code:    PatternFailCode, | 		code:    PatternFailCode, | ||||||
| 		Name:    name, | 		Name:    name, | ||||||
| 		In:      in, | 		In:      in, | ||||||
|  | 		Value:   value, | ||||||
| 		message: msg, | 		message: msg, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/jsonreference/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/jsonreference/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -4,7 +4,7 @@ | |||||||
| An implementation of JSON Reference - Go language | An implementation of JSON Reference - Go language | ||||||
| 
 | 
 | ||||||
| ## Status | ## Status | ||||||
| Work in progress ( 90% done ) | Feature complete. Stable API | ||||||
| 
 | 
 | ||||||
| ## Dependencies | ## Dependencies | ||||||
| https://github.com/go-openapi/jsonpointer | https://github.com/go-openapi/jsonpointer | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/jsonreference/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/jsonreference/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -6,7 +6,7 @@ require ( | |||||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | 	github.com/go-openapi/jsonpointer v0.19.3 | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/stretchr/testify v1.3.0 | ||||||
| 	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect | 	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect | ||||||
| 	golang.org/x/text v0.3.2 // indirect | 	golang.org/x/text v0.3.3 // indirect | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/go-openapi/jsonreference/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-openapi/jsonreference/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -5,12 +5,8 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko | |||||||
| 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/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.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/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | ||||||
| @ -28,14 +24,12 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ | |||||||
| 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= | ||||||
| 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/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/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/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= | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/loads/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/loads/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,11 +1,11 @@ | |||||||
| module github.com/go-openapi/loads | module github.com/go-openapi/loads | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/go-openapi/analysis v0.19.5 | 	github.com/go-openapi/analysis v0.19.10 | ||||||
| 	github.com/go-openapi/spec v0.19.3 | 	github.com/go-openapi/spec v0.19.6 | ||||||
| 	github.com/go-openapi/swag v0.19.5 | 	github.com/go-openapi/swag v0.19.7 | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/stretchr/testify v1.3.0 | ||||||
| 	gopkg.in/yaml.v2 v2.2.2 | 	gopkg.in/yaml.v2 v2.2.8 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										100
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										100
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | |||||||
|  | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| 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= | ||||||
| @ -6,16 +7,20 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko | |||||||
| 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/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||||
| 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/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/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.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE= | ||||||
| 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.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/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||||
| 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.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= | ||||||
| @ -24,25 +29,63 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34 | |||||||
| 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.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||||
| 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/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||||
| 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/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.19.6 h1:rMMMj8cV38KVXK7SFc+I2MWClbEfbK705+j+dyqun5g= | ||||||
| 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/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.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA= | github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g= | ||||||
| github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||||
| 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.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/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||||
| 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/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
|  | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
|  | github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= | ||||||
|  | github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= | ||||||
|  | github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= | ||||||
|  | github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= | ||||||
|  | github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= | ||||||
|  | github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= | ||||||
|  | github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= | ||||||
|  | github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= | ||||||
|  | github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= | ||||||
|  | github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= | ||||||
|  | github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= | ||||||
|  | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
|  | 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/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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||||
|  | 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/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||||
|  | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/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= | ||||||
| @ -54,23 +97,45 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB | |||||||
| 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/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
|  | 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/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/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||||
| 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/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
|  | github.com/pkg/errors v0.8.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.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | 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.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | ||||||
|  | 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.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/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/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= | ||||||
| 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 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E= | ||||||
| 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= | ||||||
|  | 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-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-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| 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= | ||||||
| @ -79,18 +144,37 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowK | |||||||
| 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-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= | ||||||
|  | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
|  | golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/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-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-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-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-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/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/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-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-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-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| 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/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= | ||||||
| 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.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/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/runtime/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/runtime/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/runtime/client_response.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/runtime/client_response.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -17,6 +17,8 @@ package runtime | |||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io" | 	"io" | ||||||
|  | 
 | ||||||
|  | 	"encoding/json" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // A ClientResponse represents a client response
 | // A ClientResponse represents a client response
 | ||||||
| @ -59,5 +61,10 @@ type APIError struct { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (a *APIError) Error() string { | func (a *APIError) Error() string { | ||||||
| 	return fmt.Sprintf("%s (status %d): %+v ", a.OperationName, a.Code, a.Response) | 	resp, _ := json.Marshal(a.Response) | ||||||
|  | 	return fmt.Sprintf("%s (status %d): %s", a.OperationName, a.Code, resp) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (a *APIError) String() string { | ||||||
|  | 	return a.Error() | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -2,15 +2,16 @@ module github.com/go-openapi/runtime | |||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/docker/go-units v0.4.0 | 	github.com/docker/go-units v0.4.0 | ||||||
| 	github.com/go-openapi/analysis v0.19.5 | 	github.com/go-openapi/analysis v0.19.10 | ||||||
| 	github.com/go-openapi/errors v0.19.2 | 	github.com/go-openapi/errors v0.19.6 | ||||||
| 	github.com/go-openapi/loads v0.19.3 | 	github.com/go-openapi/loads v0.19.5 | ||||||
| 	github.com/go-openapi/spec v0.19.3 | 	github.com/go-openapi/spec v0.19.8 | ||||||
| 	github.com/go-openapi/strfmt v0.19.3 | 	github.com/go-openapi/strfmt v0.19.5 | ||||||
| 	github.com/go-openapi/swag v0.19.5 | 	github.com/go-openapi/swag v0.19.9 | ||||||
| 	github.com/go-openapi/validate v0.19.3 | 	github.com/go-openapi/validate v0.19.10 | ||||||
| 	github.com/stretchr/testify v1.4.0 | 	github.com/stretchr/testify v1.6.1 | ||||||
| 	gopkg.in/yaml.v2 v2.2.2 | 	gopkg.in/yaml.v2 v2.3.0 | ||||||
|  | 	gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										121
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | |||||||
|  | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= | github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= | ||||||
| github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| @ -8,6 +9,10 @@ github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf h1:eg0MeVzs | |||||||
| 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/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/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= | ||||||
| @ -26,10 +31,15 @@ github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9sn | |||||||
| github.com/go-openapi/analysis v0.19.4/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 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | ||||||
| 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/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.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/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||||
|  | 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/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.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= | ||||||
| @ -40,6 +50,8 @@ github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3Hfo | |||||||
| 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 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||||
| 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/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||||
| 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= | ||||||
| @ -47,15 +59,21 @@ github.com/go-openapi/loads v0.19.2 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFR | |||||||
| github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | ||||||
| github.com/go-openapi/loads v0.19.3 h1:jwIoahqCmaA5OBoc/B+1+Mu2L0Gr8xYQnbeyQEo/7b0= | github.com/go-openapi/loads v0.19.3 h1:jwIoahqCmaA5OBoc/B+1+Mu2L0Gr8xYQnbeyQEo/7b0= | ||||||
| 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/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||||
| 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/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 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE= | github.com/go-openapi/spec v0.19.2 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE= | ||||||
| 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= | ||||||
| github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | ||||||
| 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/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/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||||
| 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 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk= | github.com/go-openapi/strfmt v0.19.0 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk= | ||||||
| @ -63,30 +81,74 @@ github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+Z | |||||||
| 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/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/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 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/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/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 h1:ky5l57HjyVRrsJfd2+Ro5Z9PjGuKbsmftwyMtk8H7js= | github.com/go-openapi/validate v0.19.2 h1:ky5l57HjyVRrsJfd2+Ro5Z9PjGuKbsmftwyMtk8H7js= | ||||||
| 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 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= | github.com/go-openapi/validate v0.19.3 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= | ||||||
| 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/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||||
| 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/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
|  | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
|  | github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= | ||||||
|  | github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= | ||||||
|  | github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= | ||||||
|  | github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= | ||||||
|  | github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= | ||||||
|  | github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= | ||||||
|  | github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= | ||||||
|  | github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= | ||||||
|  | github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= | ||||||
|  | github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= | ||||||
|  | github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= | ||||||
|  | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
|  | 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/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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||||
|  | 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/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||||
|  | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/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/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 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= | github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= | ||||||
| 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 h1:W/GaMY0y69G4cFlmsC6B9sbuo2fP8OFP1ABjt4kPz+w= | github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe h1:W/GaMY0y69G4cFlmsC6B9sbuo2fP8OFP1ABjt4kPz+w= | ||||||
| @ -95,11 +157,31 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB | |||||||
| 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/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
|  | 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/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/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/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
|  | github.com/pkg/errors v0.8.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.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | 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.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | ||||||
|  | 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/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= | github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= | ||||||
| @ -109,13 +191,23 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0 | |||||||
| 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 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | ||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | 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/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= | ||||||
| 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 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= | ||||||
| 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.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= | ||||||
|  | go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
|  | 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-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-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-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| 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= | ||||||
| @ -127,21 +219,50 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowK | |||||||
| 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-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/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/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-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-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-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-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-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/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.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/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-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-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-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/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| 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/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= | ||||||
| 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.2.4/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.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= | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/go-openapi/runtime/logger/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-openapi/runtime/logger/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -8,5 +8,13 @@ type Logger interface { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func DebugEnabled() bool { | func DebugEnabled() bool { | ||||||
| 	return os.Getenv("SWAGGER_DEBUG") != "" || os.Getenv("DEBUG") != "" | 	d := os.Getenv("SWAGGER_DEBUG") | ||||||
|  | 	if d != "" && d != "false" && d != "0" { | ||||||
|  | 		return true | ||||||
|  | 	} | ||||||
|  | 	d = os.Getenv("DEBUG") | ||||||
|  | 	if d != "" && d != "false" && d != "0" { | ||||||
|  | 		return true | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										40
									
								
								vendor/github.com/go-openapi/runtime/middleware/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/github.com/go-openapi/runtime/middleware/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -21,16 +21,16 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"sync" | 	"sync" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/runtime/security" |  | ||||||
| 
 |  | ||||||
| 	"github.com/go-openapi/analysis" | 	"github.com/go-openapi/analysis" | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/loads" | 	"github.com/go-openapi/loads" | ||||||
|  | 	"github.com/go-openapi/spec" | ||||||
|  | 	"github.com/go-openapi/strfmt" | ||||||
|  | 
 | ||||||
| 	"github.com/go-openapi/runtime" | 	"github.com/go-openapi/runtime" | ||||||
| 	"github.com/go-openapi/runtime/logger" | 	"github.com/go-openapi/runtime/logger" | ||||||
| 	"github.com/go-openapi/runtime/middleware/untyped" | 	"github.com/go-openapi/runtime/middleware/untyped" | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/runtime/security" | ||||||
| 	"github.com/go-openapi/strfmt" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Debug when true turns on verbose logging
 | // Debug when true turns on verbose logging
 | ||||||
| @ -280,8 +280,8 @@ func (c *Context) RequiredProduces() []string { | |||||||
| // if the request is not valid an error will be returned
 | // if the request is not valid an error will be returned
 | ||||||
| func (c *Context) BindValidRequest(request *http.Request, route *MatchedRoute, binder RequestBinder) error { | func (c *Context) BindValidRequest(request *http.Request, route *MatchedRoute, binder RequestBinder) error { | ||||||
| 	var res []error | 	var res []error | ||||||
|  | 	var requestContentType string | ||||||
| 
 | 
 | ||||||
| 	requestContentType := "*/*" |  | ||||||
| 	// check and validate content type, select consumer
 | 	// check and validate content type, select consumer
 | ||||||
| 	if runtime.HasBody(request) { | 	if runtime.HasBody(request) { | ||||||
| 		ct, _, err := runtime.ContentType(request.Header) | 		ct, _, err := runtime.ContentType(request.Header) | ||||||
| @ -304,7 +304,13 @@ func (c *Context) BindValidRequest(request *http.Request, route *MatchedRoute, b | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// check and validate the response format
 | 	// check and validate the response format
 | ||||||
| 	if len(res) == 0 && runtime.HasBody(request) { | 	if len(res) == 0 { | ||||||
|  | 		// if the route does not provide Produces and a default contentType could not be identified
 | ||||||
|  | 		// based on a body, typical for GET and DELETE requests, then default contentType to.
 | ||||||
|  | 		if len(route.Produces) == 0 && requestContentType == "" { | ||||||
|  | 			requestContentType = "*/*" | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if str := NegotiateContentType(request, route.Produces, requestContentType); str == "" { | 		if str := NegotiateContentType(request, route.Produces, requestContentType); str == "" { | ||||||
| 			res = append(res, errors.InvalidResponseFormat(request.Header.Get(runtime.HeaderAccept), route.Produces)) | 			res = append(res, errors.InvalidResponseFormat(request.Header.Get(runtime.HeaderAccept), route.Produces)) | ||||||
| 		} | 		} | ||||||
| @ -433,6 +439,8 @@ func (c *Context) Authorize(request *http.Request, route *MatchedRoute) (interfa | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	rCtx = request.Context() | ||||||
|  | 
 | ||||||
| 	rCtx = stdContext.WithValue(rCtx, ctxSecurityPrincipal, usr) | 	rCtx = stdContext.WithValue(rCtx, ctxSecurityPrincipal, usr) | ||||||
| 	rCtx = stdContext.WithValue(rCtx, ctxSecurityScopes, route.Authenticator.AllScopes()) | 	rCtx = stdContext.WithValue(rCtx, ctxSecurityScopes, route.Authenticator.AllScopes()) | ||||||
| 	return usr, request.WithContext(rCtx), nil | 	return usr, request.WithContext(rCtx), nil | ||||||
| @ -559,6 +567,26 @@ func (c *Context) Respond(rw http.ResponseWriter, r *http.Request, produces []st | |||||||
| 	c.api.ServeErrorFor(route.Operation.ID)(rw, r, errors.New(http.StatusInternalServerError, "can't produce response")) | 	c.api.ServeErrorFor(route.Operation.ID)(rw, r, errors.New(http.StatusInternalServerError, "can't produce response")) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (c *Context) APIHandlerSwaggerUI(builder Builder) http.Handler { | ||||||
|  | 	b := builder | ||||||
|  | 	if b == nil { | ||||||
|  | 		b = PassthroughBuilder | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var title string | ||||||
|  | 	sp := c.spec.Spec() | ||||||
|  | 	if sp != nil && sp.Info != nil && sp.Info.Title != "" { | ||||||
|  | 		title = sp.Info.Title | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	swaggerUIOpts := SwaggerUIOpts{ | ||||||
|  | 		BasePath: c.BasePath(), | ||||||
|  | 		Title:    title, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return Spec("", c.spec.Raw(), SwaggerUI(swaggerUIOpts, c.RoutesHandler(b))) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // APIHandler returns a handler to serve the API, this includes a swagger spec, router and the contract defined in the swagger spec
 | // APIHandler returns a handler to serve the API, this includes a swagger spec, router and the contract defined in the swagger spec
 | ||||||
| func (c *Context) APIHandler(builder Builder) http.Handler { | func (c *Context) APIHandler(builder Builder) http.Handler { | ||||||
| 	b := builder | 	b := builder | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/runtime/middleware/denco/router.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/runtime/middleware/denco/router.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -17,6 +17,9 @@ const ( | |||||||
| 	// TerminationCharacter is a special character for end of path.
 | 	// TerminationCharacter is a special character for end of path.
 | ||||||
| 	TerminationCharacter = '#' | 	TerminationCharacter = '#' | ||||||
| 
 | 
 | ||||||
|  | 	// SeparatorCharacter separates path segments.
 | ||||||
|  | 	SeparatorCharacter = '/' | ||||||
|  | 
 | ||||||
| 	// 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 | ||||||
| ) | ) | ||||||
| @ -420,10 +423,11 @@ type record struct { | |||||||
| 
 | 
 | ||||||
| // makeRecords returns the records that use to build Double-Arrays.
 | // makeRecords returns the records that use to build Double-Arrays.
 | ||||||
| func makeRecords(srcs []Record) (statics, params []*record) { | func makeRecords(srcs []Record) (statics, params []*record) { | ||||||
| 	spChars := string([]byte{ParamCharacter, WildcardCharacter}) |  | ||||||
| 	termChar := string(TerminationCharacter) | 	termChar := string(TerminationCharacter) | ||||||
|  | 	paramPrefix := string(SeparatorCharacter) + string(ParamCharacter) | ||||||
|  | 	wildcardPrefix := string(SeparatorCharacter) + string(WildcardCharacter) | ||||||
| 	for _, r := range srcs { | 	for _, r := range srcs { | ||||||
| 		if strings.ContainsAny(r.Key, spChars) { | 		if strings.Contains(r.Key, paramPrefix) || strings.Contains(r.Key, wildcardPrefix) { | ||||||
| 			r.Key += termChar | 			r.Key += termChar | ||||||
| 			params = append(params, &record{Record: r}) | 			params = append(params, &record{Record: r}) | ||||||
| 		} else { | 		} else { | ||||||
|  | |||||||
							
								
								
									
										23
									
								
								vendor/github.com/go-openapi/runtime/middleware/not_implemented.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/go-openapi/runtime/middleware/not_implemented.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -38,11 +38,30 @@ func (e *errorResp) WriteResponse(rw http.ResponseWriter, producer runtime.Produ | |||||||
| 		rw.WriteHeader(http.StatusInternalServerError) | 		rw.WriteHeader(http.StatusInternalServerError) | ||||||
| 	} | 	} | ||||||
| 	if err := producer.Produce(rw, e.response); err != nil { | 	if err := producer.Produce(rw, e.response); err != nil { | ||||||
| 		panic(err) | 		Logger.Printf("failed to write error response: %v", err) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotImplemented the error response when the response is not implemented
 | // NotImplemented the error response when the response is not implemented
 | ||||||
| func NotImplemented(message string) Responder { | func NotImplemented(message string) Responder { | ||||||
| 	return &errorResp{http.StatusNotImplemented, message, make(http.Header)} | 	return Error(http.StatusNotImplemented, message) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Error creates a generic responder for returning errors, the data will be serialized
 | ||||||
|  | // with the matching producer for the request
 | ||||||
|  | func Error(code int, data interface{}, headers ...http.Header) Responder { | ||||||
|  | 	var hdr http.Header | ||||||
|  | 	for _, h := range headers { | ||||||
|  | 		for k, v := range h { | ||||||
|  | 			if hdr == nil { | ||||||
|  | 				hdr = make(http.Header) | ||||||
|  | 			} | ||||||
|  | 			hdr[k] = v | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return &errorResp{ | ||||||
|  | 		code:     code, | ||||||
|  | 		response: data, | ||||||
|  | 		headers:  hdr, | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								vendor/github.com/go-openapi/runtime/middleware/parameter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-openapi/runtime/middleware/parameter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -24,11 +24,12 @@ import ( | |||||||
| 	"strconv" | 	"strconv" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/runtime" |  | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| 	"github.com/go-openapi/strfmt" | 	"github.com/go-openapi/strfmt" | ||||||
| 	"github.com/go-openapi/swag" | 	"github.com/go-openapi/swag" | ||||||
| 	"github.com/go-openapi/validate" | 	"github.com/go-openapi/validate" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const defaultMaxMemory = 32 << 20 | const defaultMaxMemory = 32 << 20 | ||||||
| @ -275,7 +276,7 @@ func (p *untypedParamBinder) setFieldValue(target reflect.Value, defaultValue in | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!hasKey || (!p.parameter.AllowEmptyValue && data == "")) && p.parameter.Required && p.parameter.Default == nil { | 	if (!hasKey || (!p.parameter.AllowEmptyValue && data == "")) && p.parameter.Required && p.parameter.Default == nil { | ||||||
| 		return errors.Required(p.Name, p.parameter.In) | 		return errors.Required(p.Name, p.parameter.In, data) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ok, err := p.tryUnmarshaler(target, defaultValue, data) | 	ok, err := p.tryUnmarshaler(target, defaultValue, data) | ||||||
| @ -450,7 +451,7 @@ func (p *untypedParamBinder) readFormattedSliceFieldValue(data string, target re | |||||||
| func (p *untypedParamBinder) setSliceFieldValue(target reflect.Value, defaultValue interface{}, data []string, hasKey bool) error { | func (p *untypedParamBinder) setSliceFieldValue(target reflect.Value, defaultValue interface{}, data []string, hasKey bool) error { | ||||||
| 	sz := len(data) | 	sz := len(data) | ||||||
| 	if (!hasKey || (!p.parameter.AllowEmptyValue && (sz == 0 || (sz == 1 && data[0] == "")))) && p.parameter.Required && defaultValue == nil { | 	if (!hasKey || (!p.parameter.AllowEmptyValue && (sz == 0 || (sz == 1 && data[0] == "")))) && p.parameter.Required && defaultValue == nil { | ||||||
| 		return errors.Required(p.Name, p.parameter.In) | 		return errors.Required(p.Name, p.parameter.In, data) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	defVal := reflect.Zero(target.Type()) | 	defVal := reflect.Zero(target.Type()) | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/go-openapi/runtime/middleware/redoc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-openapi/runtime/middleware/redoc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -16,7 +16,7 @@ type RedocOpts struct { | |||||||
| 	Path string | 	Path string | ||||||
| 	// SpecURL the url to find the spec for
 | 	// SpecURL the url to find the spec for
 | ||||||
| 	SpecURL string | 	SpecURL string | ||||||
| 	// RedocURL for the js that generates the redoc site, defaults to: https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js
 | 	// RedocURL for the js that generates the redoc site, defaults to: https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js
 | ||||||
| 	RedocURL string | 	RedocURL string | ||||||
| 	// Title for the documentation site, default to: API documentation
 | 	// Title for the documentation site, default to: API documentation
 | ||||||
| 	Title string | 	Title string | ||||||
| @ -74,13 +74,15 @@ func Redoc(opts RedocOpts, next http.Handler) http.Handler { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const ( | const ( | ||||||
| 	redocLatest   = "https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js" | 	redocLatest   = "https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js" | ||||||
| 	redocTemplate = `<!DOCTYPE html> | 	redocTemplate = `<!DOCTYPE html> | ||||||
| <html> | <html> | ||||||
|   <head> |   <head> | ||||||
|     <title>{{ .Title }}</title> |     <title>{{ .Title }}</title> | ||||||
|     <!-- needed for adaptive design --> | 		<!-- needed for adaptive design --> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1"> | 		<meta charset="utf-8"/> | ||||||
|  | 		<meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  | 		<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet"> | ||||||
| 
 | 
 | ||||||
|     <!-- |     <!-- | ||||||
|     ReDoc doesn't change outer page styles |     ReDoc doesn't change outer page styles | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								vendor/github.com/go-openapi/runtime/middleware/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-openapi/runtime/middleware/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -19,26 +19,27 @@ import ( | |||||||
| 	"reflect" | 	"reflect" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/runtime" |  | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| 	"github.com/go-openapi/strfmt" | 	"github.com/go-openapi/strfmt" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // RequestBinder binds and validates the data from a http request
 | // UntypedRequestBinder binds and validates the data from a http request
 | ||||||
| type untypedRequestBinder struct { | type UntypedRequestBinder struct { | ||||||
| 	Spec         *spec.Swagger | 	Spec         *spec.Swagger | ||||||
| 	Parameters   map[string]spec.Parameter | 	Parameters   map[string]spec.Parameter | ||||||
| 	Formats      strfmt.Registry | 	Formats      strfmt.Registry | ||||||
| 	paramBinders map[string]*untypedParamBinder | 	paramBinders map[string]*untypedParamBinder | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewRequestBinder creates a new binder for reading a request.
 | // NewUntypedRequestBinder creates a new binder for reading a request.
 | ||||||
| func newUntypedRequestBinder(parameters map[string]spec.Parameter, spec *spec.Swagger, formats strfmt.Registry) *untypedRequestBinder { | func NewUntypedRequestBinder(parameters map[string]spec.Parameter, spec *spec.Swagger, formats strfmt.Registry) *UntypedRequestBinder { | ||||||
| 	binders := make(map[string]*untypedParamBinder) | 	binders := make(map[string]*untypedParamBinder) | ||||||
| 	for fieldName, param := range parameters { | 	for fieldName, param := range parameters { | ||||||
| 		binders[fieldName] = newUntypedParamBinder(param, spec, formats) | 		binders[fieldName] = newUntypedParamBinder(param, spec, formats) | ||||||
| 	} | 	} | ||||||
| 	return &untypedRequestBinder{ | 	return &UntypedRequestBinder{ | ||||||
| 		Parameters:   parameters, | 		Parameters:   parameters, | ||||||
| 		paramBinders: binders, | 		paramBinders: binders, | ||||||
| 		Spec:         spec, | 		Spec:         spec, | ||||||
| @ -47,7 +48,7 @@ func newUntypedRequestBinder(parameters map[string]spec.Parameter, spec *spec.Sw | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Bind perform the databinding and validation
 | // Bind perform the databinding and validation
 | ||||||
| func (o *untypedRequestBinder) Bind(request *http.Request, routeParams RouteParams, consumer runtime.Consumer, data interface{}) error { | func (o *UntypedRequestBinder) Bind(request *http.Request, routeParams RouteParams, consumer runtime.Consumer, data interface{}) error { | ||||||
| 	val := reflect.Indirect(reflect.ValueOf(data)) | 	val := reflect.Indirect(reflect.ValueOf(data)) | ||||||
| 	isMap := val.Kind() == reflect.Map | 	isMap := val.Kind() == reflect.Map | ||||||
| 	var result []error | 	var result []error | ||||||
| @ -71,7 +72,6 @@ func (o *untypedRequestBinder) Bind(request *http.Request, routeParams RoutePara | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			target = reflect.Indirect(reflect.New(tpe)) | 			target = reflect.Indirect(reflect.New(tpe)) | ||||||
| 
 |  | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if !target.IsValid() { | 		if !target.IsValid() { | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/runtime/middleware/router.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/runtime/middleware/router.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -26,10 +26,11 @@ import ( | |||||||
| 	"github.com/go-openapi/analysis" | 	"github.com/go-openapi/analysis" | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/loads" | 	"github.com/go-openapi/loads" | ||||||
| 	"github.com/go-openapi/runtime" |  | ||||||
| 	"github.com/go-openapi/runtime/middleware/denco" |  | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| 	"github.com/go-openapi/strfmt" | 	"github.com/go-openapi/strfmt" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/runtime" | ||||||
|  | 	"github.com/go-openapi/runtime/middleware/denco" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // RouteParam is a object to capture route params in a framework agnostic way.
 | // RouteParam is a object to capture route params in a framework agnostic way.
 | ||||||
| @ -290,7 +291,7 @@ type routeEntry struct { | |||||||
| 	Parameters     map[string]spec.Parameter | 	Parameters     map[string]spec.Parameter | ||||||
| 	Handler        http.Handler | 	Handler        http.Handler | ||||||
| 	Formats        strfmt.Registry | 	Formats        strfmt.Registry | ||||||
| 	Binder         *untypedRequestBinder | 	Binder         *UntypedRequestBinder | ||||||
| 	Authenticators RouteAuthenticators | 	Authenticators RouteAuthenticators | ||||||
| 	Authorizer     runtime.Authorizer | 	Authorizer     runtime.Authorizer | ||||||
| } | } | ||||||
| @ -428,7 +429,7 @@ func (d *defaultRouteBuilder) AddRoute(method, path string, operation *spec.Oper | |||||||
| 			Producers:      d.api.ProducersFor(normalizeOffers(produces)), | 			Producers:      d.api.ProducersFor(normalizeOffers(produces)), | ||||||
| 			Parameters:     parameters, | 			Parameters:     parameters, | ||||||
| 			Formats:        d.api.Formats(), | 			Formats:        d.api.Formats(), | ||||||
| 			Binder:         newUntypedRequestBinder(parameters, d.spec.Spec(), d.api.Formats()), | 			Binder:         NewUntypedRequestBinder(parameters, d.spec.Spec(), d.api.Formats()), | ||||||
| 			Authenticators: d.buildAuthenticators(operation), | 			Authenticators: d.buildAuthenticators(operation), | ||||||
| 			Authorizer:     d.api.Authorizer(), | 			Authorizer:     d.api.Authorizer(), | ||||||
| 		}) | 		}) | ||||||
|  | |||||||
							
								
								
									
										162
									
								
								vendor/github.com/go-openapi/runtime/middleware/swaggerui.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								vendor/github.com/go-openapi/runtime/middleware/swaggerui.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,162 @@ | |||||||
|  | package middleware | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"fmt" | ||||||
|  | 	"html/template" | ||||||
|  | 	"net/http" | ||||||
|  | 	"path" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // SwaggerUIOpts configures the Swaggerui middlewares
 | ||||||
|  | type SwaggerUIOpts 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 | ||||||
|  | 
 | ||||||
|  | 	// The three components needed to embed swagger-ui
 | ||||||
|  | 	SwaggerURL       string | ||||||
|  | 	SwaggerPresetURL string | ||||||
|  | 	SwaggerStylesURL string | ||||||
|  | 
 | ||||||
|  | 	Favicon32 string | ||||||
|  | 	Favicon16 string | ||||||
|  | 
 | ||||||
|  | 	// Title for the documentation site, default to: API documentation
 | ||||||
|  | 	Title string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // EnsureDefaults in case some options are missing
 | ||||||
|  | func (r *SwaggerUIOpts) EnsureDefaults() { | ||||||
|  | 	if r.BasePath == "" { | ||||||
|  | 		r.BasePath = "/" | ||||||
|  | 	} | ||||||
|  | 	if r.Path == "" { | ||||||
|  | 		r.Path = "docs" | ||||||
|  | 	} | ||||||
|  | 	if r.SpecURL == "" { | ||||||
|  | 		r.SpecURL = "/swagger.json" | ||||||
|  | 	} | ||||||
|  | 	if r.SwaggerURL == "" { | ||||||
|  | 		r.SwaggerURL = swaggerLatest | ||||||
|  | 	} | ||||||
|  | 	if r.SwaggerPresetURL == "" { | ||||||
|  | 		r.SwaggerPresetURL = swaggerPresetLatest | ||||||
|  | 	} | ||||||
|  | 	if r.SwaggerStylesURL == "" { | ||||||
|  | 		r.SwaggerStylesURL = swaggerStylesLatest | ||||||
|  | 	} | ||||||
|  | 	if r.Favicon16 == "" { | ||||||
|  | 		r.Favicon16 = swaggerFavicon16Latest | ||||||
|  | 	} | ||||||
|  | 	if r.Favicon32 == "" { | ||||||
|  | 		r.Favicon32 = swaggerFavicon32Latest | ||||||
|  | 	} | ||||||
|  | 	if r.Title == "" { | ||||||
|  | 		r.Title = "API documentation" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SwaggerUI creates a middleware to serve a documentation site for a swagger spec.
 | ||||||
|  | // This allows for altering the spec before starting the http listener.
 | ||||||
|  | func SwaggerUI(opts SwaggerUIOpts, next http.Handler) http.Handler { | ||||||
|  | 	opts.EnsureDefaults() | ||||||
|  | 
 | ||||||
|  | 	pth := path.Join(opts.BasePath, opts.Path) | ||||||
|  | 	tmpl := template.Must(template.New("swaggerui").Parse(swaggeruiTemplate)) | ||||||
|  | 
 | ||||||
|  | 	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 ( | ||||||
|  | 	swaggerLatest          = "https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js" | ||||||
|  | 	swaggerPresetLatest    = "https://unpkg.com/swagger-ui-dist/swagger-ui-standalone-preset.js" | ||||||
|  | 	swaggerStylesLatest    = "https://unpkg.com/swagger-ui-dist/swagger-ui.css" | ||||||
|  | 	swaggerFavicon32Latest = "https://unpkg.com/swagger-ui-dist/favicon-32x32.png" | ||||||
|  | 	swaggerFavicon16Latest = "https://unpkg.com/swagger-ui-dist/favicon-16x16.png" | ||||||
|  | 	swaggeruiTemplate      = ` | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  |   <head> | ||||||
|  |     <meta charset="UTF-8"> | ||||||
|  | 		<title>{{ .Title }}</title> | ||||||
|  | 
 | ||||||
|  |     <link rel="stylesheet" type="text/css" href="{{ .SwaggerStylesURL }}" > | ||||||
|  |     <link rel="icon" type="image/png" href="{{ .Favicon32 }}" sizes="32x32" /> | ||||||
|  |     <link rel="icon" type="image/png" href="{{ .Favicon16 }}" sizes="16x16" /> | ||||||
|  |     <style> | ||||||
|  |       html | ||||||
|  |       { | ||||||
|  |         box-sizing: border-box; | ||||||
|  |         overflow: -moz-scrollbars-vertical; | ||||||
|  |         overflow-y: scroll; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       *, | ||||||
|  |       *:before, | ||||||
|  |       *:after | ||||||
|  |       { | ||||||
|  |         box-sizing: inherit; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       body | ||||||
|  |       { | ||||||
|  |         margin:0; | ||||||
|  |         background: #fafafa; | ||||||
|  |       } | ||||||
|  |     </style> | ||||||
|  |   </head> | ||||||
|  | 
 | ||||||
|  |   <body> | ||||||
|  |     <div id="swagger-ui"></div> | ||||||
|  | 
 | ||||||
|  |     <script src="{{ .SwaggerURL }}"> </script> | ||||||
|  |     <script src="{{ .SwaggerPresetURL }}"> </script> | ||||||
|  |     <script> | ||||||
|  |     window.onload = function() { | ||||||
|  |       // Begin Swagger UI call region
 | ||||||
|  |       const ui = SwaggerUIBundle({ | ||||||
|  |         url: '{{ .SpecURL }}', | ||||||
|  |         dom_id: '#swagger-ui', | ||||||
|  |         deepLinking: true, | ||||||
|  |         presets: [ | ||||||
|  |           SwaggerUIBundle.presets.apis, | ||||||
|  |           SwaggerUIStandalonePreset | ||||||
|  |         ], | ||||||
|  |         plugins: [ | ||||||
|  |           SwaggerUIBundle.plugins.DownloadUrl | ||||||
|  |         ], | ||||||
|  |         layout: "StandaloneLayout" | ||||||
|  |       }) | ||||||
|  |       // End Swagger UI call region
 | ||||||
|  | 
 | ||||||
|  |       window.ui = ui | ||||||
|  |     } | ||||||
|  |   </script> | ||||||
|  |   </body> | ||||||
|  | </html> | ||||||
|  | ` | ||||||
|  | ) | ||||||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/runtime/middleware/untyped/api.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/runtime/middleware/untyped/api.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -23,9 +23,10 @@ import ( | |||||||
| 	"github.com/go-openapi/analysis" | 	"github.com/go-openapi/analysis" | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/loads" | 	"github.com/go-openapi/loads" | ||||||
| 	"github.com/go-openapi/runtime" |  | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| 	"github.com/go-openapi/strfmt" | 	"github.com/go-openapi/strfmt" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // NewAPI creates the default untyped API
 | // NewAPI creates the default untyped API
 | ||||||
| @ -244,7 +245,6 @@ func (d *API) validate() error { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (d *API) verify(name string, registrations []string, expectations []string) error { | func (d *API) verify(name string, registrations []string, expectations []string) error { | ||||||
| 
 |  | ||||||
| 	sort.Strings(registrations) | 	sort.Strings(registrations) | ||||||
| 	sort.Strings(expectations) | 	sort.Strings(expectations) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/runtime/middleware/validation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/runtime/middleware/validation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -20,8 +20,9 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| 	"github.com/go-openapi/runtime" |  | ||||||
| 	"github.com/go-openapi/swag" | 	"github.com/go-openapi/swag" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type validation struct { | type validation struct { | ||||||
| @ -115,7 +116,10 @@ func (v *validation) contentType() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (v *validation) responseFormat() { | func (v *validation) responseFormat() { | ||||||
| 	if str, rCtx := v.context.ResponseFormat(v.request, v.route.Produces); str == "" && runtime.HasBody(v.request) { | 	// if the route provides values for Produces and no format could be identify then return an error.
 | ||||||
|  | 	// if the route does not specify values for Produces then treat request as valid since the API designer
 | ||||||
|  | 	// choose not to specify the format for responses.
 | ||||||
|  | 	if str, rCtx := v.context.ResponseFormat(v.request, v.route.Produces); str == "" && len(v.route.Produces) > 0 { | ||||||
| 		v.request = rCtx | 		v.request = rCtx | ||||||
| 		v.result = append(v.result, errors.InvalidResponseFormat(v.request.Header.Get(runtime.HeaderAccept), v.route.Produces)) | 		v.result = append(v.result, errors.InvalidResponseFormat(v.request.Header.Get(runtime.HeaderAccept), v.route.Produces)) | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								vendor/github.com/go-openapi/runtime/security/authenticator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/go-openapi/runtime/security/authenticator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -20,6 +20,7 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
|  | 
 | ||||||
| 	"github.com/go-openapi/runtime" | 	"github.com/go-openapi/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/spec/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/spec/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -21,3 +21,8 @@ linters: | |||||||
|     - lll |     - lll | ||||||
|     - gochecknoinits |     - gochecknoinits | ||||||
|     - gochecknoglobals |     - gochecknoglobals | ||||||
|  |     - funlen | ||||||
|  |     - godox | ||||||
|  |     - gocognit | ||||||
|  |     - whitespace | ||||||
|  |     - wsl | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/spec/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/spec/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										36
									
								
								vendor/github.com/go-openapi/spec/bindata.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/go-openapi/spec/bindata.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										30
									
								
								vendor/github.com/go-openapi/spec/contact_info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/go-openapi/spec/contact_info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -14,11 +14,41 @@ | |||||||
| 
 | 
 | ||||||
| package spec | package spec | ||||||
| 
 | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/swag" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| // ContactInfo contact information for the exposed API.
 | // ContactInfo contact information for the exposed API.
 | ||||||
| //
 | //
 | ||||||
| // For more information: http://goo.gl/8us55a#contactObject
 | // For more information: http://goo.gl/8us55a#contactObject
 | ||||||
| type ContactInfo struct { | type ContactInfo struct { | ||||||
|  | 	ContactInfoProps | ||||||
|  | 	VendorExtensible | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 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"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func (c *ContactInfo) UnmarshalJSON(data []byte) error { | ||||||
|  | 	if err := json.Unmarshal(data, &c.ContactInfoProps); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return json.Unmarshal(data, &c.VendorExtensible) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c ContactInfo) MarshalJSON() ([]byte, error) { | ||||||
|  | 	b1, err := json.Marshal(c.ContactInfoProps) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	b2, err := json.Marshal(c.VendorExtensible) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return swag.ConcatJSON(b1, b2), nil | ||||||
|  | } | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/spec/expander.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/spec/expander.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -200,11 +200,11 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | 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
 | ||||||
| func baseForRoot(root interface{}, cache ResolutionCache) string { | func baseForRoot(root interface{}, cache ResolutionCache) string { | ||||||
| 	// cache the root document to resolve $ref's
 | 	// cache the root document to resolve $ref's
 | ||||||
| 	const rootBase = "root" |  | ||||||
| 	if root != nil { | 	if root != nil { | ||||||
| 		base, _ := absPath(rootBase) | 		base, _ := absPath(rootBase) | ||||||
| 		normalizedBase := normalizeAbsPath(base) | 		normalizedBase := normalizeAbsPath(base) | ||||||
| @ -452,11 +452,12 @@ func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	if pathItem.Ref.String() != "" { | 	if pathItem.Ref.String() != "" { | ||||||
| 		var err error | 		transitiveResolver, err := resolver.transitiveResolver(basePath, pathItem.Ref) | ||||||
| 		resolver, err = resolver.transitiveResolver(basePath, pathItem.Ref) | 		if transitiveResolver.shouldStopOnError(err) { | ||||||
| 		if resolver.shouldStopOnError(err) { |  | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | 		basePath = transitiveResolver.updateBasePath(resolver, basePath) | ||||||
|  | 		resolver = transitiveResolver | ||||||
| 	} | 	} | ||||||
| 	pathItem.Ref = Ref{} | 	pathItem.Ref = Ref{} | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								vendor/github.com/go-openapi/spec/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-openapi/spec/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -4,14 +4,9 @@ require ( | |||||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | 	github.com/go-openapi/jsonpointer v0.19.3 | ||||||
| 	github.com/go-openapi/jsonreference v0.19.2 | 	github.com/go-openapi/jsonreference v0.19.2 | ||||||
| 	github.com/go-openapi/swag v0.19.5 | 	github.com/go-openapi/swag v0.19.5 | ||||||
| 	github.com/kr/pty v1.1.5 // indirect |  | ||||||
| 	github.com/stretchr/objx v0.2.0 // indirect |  | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/stretchr/testify v1.3.0 | ||||||
| 	golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect |  | ||||||
| 	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect | 	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect | ||||||
| 	golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect | 	gopkg.in/yaml.v2 v2.2.4 | ||||||
| 	golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59 // indirect |  | ||||||
| 	gopkg.in/yaml.v2 v2.2.2 |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										29
									
								
								vendor/github.com/go-openapi/spec/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/go-openapi/spec/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,5 +1,3 @@ | |||||||
| github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= |  | ||||||
| github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= |  | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| 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= | ||||||
| @ -7,20 +5,12 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko | |||||||
| 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.17.0 h1:nH6xp8XdXHx8dqveo0ZuJBluCO2qGrPbDNZ0dwoRHP0= |  | ||||||
| github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= |  | ||||||
| github.com/go-openapi/jsonpointer v0.19.0 h1:FTUMcX77w5rQkClIzDtTxvn6Bsa894CcrzNj2MMfeg8= |  | ||||||
| github.com/go-openapi/jsonpointer v0.19.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/jsonreference v0.19.0 h1:BqWKpV1dFd+AuiKlgtddwVIFQsuMpxfBDBHGfM2yNpk= |  | ||||||
| github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= |  | ||||||
| github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||||
| 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/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880= |  | ||||||
| github.com/go-openapi/swag v0.17.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= | ||||||
| @ -28,11 +18,8 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh | |||||||
| 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/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/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= |  | ||||||
| github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/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= | ||||||
| @ -40,35 +27,23 @@ github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN | |||||||
| 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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= |  | ||||||
| github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= |  | ||||||
| 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= | ||||||
| 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-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= |  | ||||||
| golang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE= |  | ||||||
| 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-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 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/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |  | ||||||
| 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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| 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.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/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-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= |  | ||||||
| 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/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= |  | ||||||
| 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= | ||||||
| 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.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|  | |||||||
							
								
								
									
										30
									
								
								vendor/github.com/go-openapi/spec/license.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/go-openapi/spec/license.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -14,10 +14,40 @@ | |||||||
| 
 | 
 | ||||||
| package spec | package spec | ||||||
| 
 | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-openapi/swag" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| // License information for the exposed API.
 | // License information for the exposed API.
 | ||||||
| //
 | //
 | ||||||
| // For more information: http://goo.gl/8us55a#licenseObject
 | // For more information: http://goo.gl/8us55a#licenseObject
 | ||||||
| type License struct { | type License struct { | ||||||
|  | 	LicenseProps | ||||||
|  | 	VendorExtensible | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type LicenseProps struct { | ||||||
| 	Name string `json:"name,omitempty"` | 	Name string `json:"name,omitempty"` | ||||||
| 	URL  string `json:"url,omitempty"` | 	URL  string `json:"url,omitempty"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func (l *License) UnmarshalJSON(data []byte) error { | ||||||
|  | 	if err := json.Unmarshal(data, &l.LicenseProps); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return json.Unmarshal(data, &l.VendorExtensible) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (l License) MarshalJSON() ([]byte, error) { | ||||||
|  | 	b1, err := json.Marshal(l.LicenseProps) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	b2, err := json.Marshal(l.VendorExtensible) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return swag.ConcatJSON(b1, b2), nil | ||||||
|  | } | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/spec/ref.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/spec/ref.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -68,10 +68,12 @@ func (r *Ref) IsValidURI(basepaths ...string) bool { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if r.HasFullURL { | 	if r.HasFullURL { | ||||||
|  | 		//#nosec
 | ||||||
| 		rr, err := http.Get(v) | 		rr, err := http.Get(v) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return false | 			return false | ||||||
| 		} | 		} | ||||||
|  | 		defer rr.Body.Close() | ||||||
| 
 | 
 | ||||||
| 		return rr.StatusCode/100 == 2 | 		return rr.StatusCode/100 == 2 | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								vendor/github.com/go-openapi/spec/schema_loader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/go-openapi/spec/schema_loader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -86,12 +86,7 @@ func (r *schemaLoader) transitiveResolver(basePath string, ref Ref) (*schemaLoad | |||||||
| 	newOptions := r.options | 	newOptions := r.options | ||||||
| 	newOptions.RelativeBase = rootURL.String() | 	newOptions.RelativeBase = rootURL.String() | ||||||
| 	debugLog("setting new root: %s", newOptions.RelativeBase) | 	debugLog("setting new root: %s", newOptions.RelativeBase) | ||||||
| 	resolver, err := defaultSchemaLoader(root, newOptions, r.cache, r.context) | 	return defaultSchemaLoader(root, newOptions, r.cache, r.context) | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return resolver, nil |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (r *schemaLoader) updateBasePath(transitive *schemaLoader, basePath string) string { | func (r *schemaLoader) updateBasePath(transitive *schemaLoader, basePath string) string { | ||||||
| @ -154,7 +149,15 @@ func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) | |||||||
| 	toFetch := *refURL | 	toFetch := *refURL | ||||||
| 	toFetch.Fragment = "" | 	toFetch.Fragment = "" | ||||||
| 
 | 
 | ||||||
| 	normalized := normalizeAbsPath(toFetch.String()) | 	var err error | ||||||
|  | 	path := toFetch.String() | ||||||
|  | 	if path == rootBase { | ||||||
|  | 		path, err = absPath(rootBase) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, url.URL{}, false, err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	normalized := normalizeAbsPath(path) | ||||||
| 
 | 
 | ||||||
| 	data, fromCache := r.cache.Get(normalized) | 	data, fromCache := r.cache.Get(normalized) | ||||||
| 	if !fromCache { | 	if !fromCache { | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/strfmt/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/strfmt/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -20,6 +20,11 @@ linters: | |||||||
|     - lll |     - lll | ||||||
|     - gochecknoinits |     - gochecknoinits | ||||||
|     - gochecknoglobals |     - gochecknoglobals | ||||||
|  |     - godox | ||||||
|  |     - gocognit | ||||||
|  |     - whitespace | ||||||
|  |     - wsl | ||||||
|  |     - funlen | ||||||
| 
 | 
 | ||||||
| issues: | issues: | ||||||
|   exclude-rules: |   exclude-rules: | ||||||
| @ -27,4 +32,5 @@ issues: | |||||||
|       text: "should be .*ObjectID" |       text: "should be .*ObjectID" | ||||||
|       linters: |       linters: | ||||||
|         - golint |         - golint | ||||||
|  |         - stylecheck | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								vendor/github.com/go-openapi/strfmt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-openapi/strfmt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -43,6 +43,19 @@ It also provides convenient extensions to go-openapi users. | |||||||
| > It does not provide validation for numerical values with swagger format extension for JSON types "number" or | > It does not provide validation for numerical values with swagger format extension for JSON types "number" or | ||||||
| > "integer" (e.g. float, double, int32...). | > "integer" (e.g. float, double, int32...). | ||||||
| 
 | 
 | ||||||
|  | ## Type conversion | ||||||
|  | 
 | ||||||
|  | All types defined here are stringers and may be converted to strings with `.String()`. | ||||||
|  | Note that most types defined by this package may be converted directly to string like `string(Email{})`. | ||||||
|  | 
 | ||||||
|  | `Date` and `DateTime` may be converted directly to `time.Time` like `time.Time(Time{})`. | ||||||
|  | Similarly, you can convert `Duration` to `time.Duration` as in `time.Duration(Duration{})` | ||||||
|  | 
 | ||||||
|  | ## Using pointers | ||||||
|  | 
 | ||||||
|  | The `conv` subpackage provides helpers to convert the types to and from pointers, just like `go-openapi/swag` does | ||||||
|  | with primitive types. | ||||||
|  | 
 | ||||||
| ## Format types | ## Format types | ||||||
| Types defined in strfmt expose marshaling and validation capabilities. | Types defined in strfmt expose marshaling and validation capabilities. | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										29
									
								
								vendor/github.com/go-openapi/strfmt/date.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/go-openapi/strfmt/date.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -151,3 +151,32 @@ func (d *Date) DeepCopy() *Date { | |||||||
| 	d.DeepCopyInto(out) | 	d.DeepCopyInto(out) | ||||||
| 	return out | 	return out | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GobEncode implements the gob.GobEncoder interface.
 | ||||||
|  | func (d Date) GobEncode() ([]byte, error) { | ||||||
|  | 	return d.MarshalBinary() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GobDecode implements the gob.GobDecoder interface.
 | ||||||
|  | func (d *Date) GobDecode(data []byte) error { | ||||||
|  | 	return d.UnmarshalBinary(data) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // MarshalBinary implements the encoding.BinaryMarshaler interface.
 | ||||||
|  | func (d Date) MarshalBinary() ([]byte, error) { | ||||||
|  | 	return time.Time(d).MarshalBinary() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
 | ||||||
|  | func (d *Date) UnmarshalBinary(data []byte) error { | ||||||
|  | 	var original time.Time | ||||||
|  | 
 | ||||||
|  | 	err := original.UnmarshalBinary(data) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	*d = Date(original) | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/strfmt/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/strfmt/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -11,3 +11,5 @@ require ( | |||||||
| 	github.com/tidwall/pretty v1.0.0 // indirect | 	github.com/tidwall/pretty v1.0.0 // indirect | ||||||
| 	go.mongodb.org/mongo-driver v1.0.3 | 	go.mongodb.org/mongo-driver v1.0.3 | ||||||
| ) | ) | ||||||
|  | 
 | ||||||
|  | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										90
									
								
								vendor/github.com/go-openapi/strfmt/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/go-openapi/strfmt/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -4,7 +4,7 @@ | |||||||
| // you may not use this file except in compliance with the License.
 | // you may not use this file except in compliance with the License.
 | ||||||
| // You may obtain a copy of the License at
 | // You may obtain a copy of the License at
 | ||||||
| //
 | //
 | ||||||
| //    http://www.apache.org/licenses/LICENSE-2.0
 | //	http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
| //
 | //
 | ||||||
| // Unless required by applicable law or agreed to in writing, software
 | // Unless required by applicable law or agreed to in writing, software
 | ||||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||||
| @ -16,14 +16,16 @@ package strfmt | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"database/sql/driver" | 	"database/sql/driver" | ||||||
|  | 	"encoding/binary" | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
| 	"errors" |  | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"go.mongodb.org/mongo-driver/bson" | 	"go.mongodb.org/mongo-driver/bson" | ||||||
|  | 
 | ||||||
|  | 	"go.mongodb.org/mongo-driver/bson/bsontype" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func init() { | func init() { | ||||||
| @ -57,12 +59,16 @@ const ( | |||||||
| 	RFC3339Micro = "2006-01-02T15:04:05.000000Z07:00" | 	RFC3339Micro = "2006-01-02T15:04:05.000000Z07:00" | ||||||
| 	// ISO8601LocalTime represents a ISO8601 format to ISO8601 in local time (no timezone)
 | 	// ISO8601LocalTime represents a ISO8601 format to ISO8601 in local time (no timezone)
 | ||||||
| 	ISO8601LocalTime = "2006-01-02T15:04:05" | 	ISO8601LocalTime = "2006-01-02T15:04:05" | ||||||
|  | 	// ISO8601TimeWithReducedPrecision represents a ISO8601 format with reduced precision (dropped secs)
 | ||||||
|  | 	ISO8601TimeWithReducedPrecision = "2006-01-02T15:04Z" | ||||||
|  | 	// ISO8601TimeWithReducedPrecision represents a ISO8601 format with reduced precision and no timezone (dropped seconds + no timezone)
 | ||||||
|  | 	ISO8601TimeWithReducedPrecisionLocaltime = "2006-01-02T15:04" | ||||||
| 	// DateTimePattern pattern to match for the date-time format from http://tools.ietf.org/html/rfc3339#section-5.6
 | 	// DateTimePattern pattern to match for the date-time format from http://tools.ietf.org/html/rfc3339#section-5.6
 | ||||||
| 	DateTimePattern = `^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$` | 	DateTimePattern = `^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$` | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
| 	dateTimeFormats = []string{RFC3339Micro, RFC3339Millis, time.RFC3339, time.RFC3339Nano, ISO8601LocalTime} | 	dateTimeFormats = []string{RFC3339Micro, RFC3339Millis, time.RFC3339, time.RFC3339Nano, ISO8601LocalTime, ISO8601TimeWithReducedPrecision, ISO8601TimeWithReducedPrecisionLocaltime} | ||||||
| 	rxDateTime      = regexp.MustCompile(DateTimePattern) | 	rxDateTime      = regexp.MustCompile(DateTimePattern) | ||||||
| 	// MarshalFormat sets the time resolution format used for marshaling time (set to milliseconds)
 | 	// MarshalFormat sets the time resolution format used for marshaling time (set to milliseconds)
 | ||||||
| 	MarshalFormat = RFC3339Millis | 	MarshalFormat = RFC3339Millis | ||||||
| @ -165,26 +171,51 @@ func (t *DateTime) UnmarshalJSON(data []byte) error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // MarshalBSON renders the DateTime as a BSON document
 | ||||||
| func (t DateTime) MarshalBSON() ([]byte, error) { | func (t DateTime) MarshalBSON() ([]byte, error) { | ||||||
| 	return bson.Marshal(bson.M{"data": t.String()}) | 	return bson.Marshal(bson.M{"data": t}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // UnmarshalBSON reads the DateTime from a BSON document
 | ||||||
| func (t *DateTime) UnmarshalBSON(data []byte) error { | func (t *DateTime) UnmarshalBSON(data []byte) error { | ||||||
| 	var m bson.M | 	var obj struct { | ||||||
| 	if err := bson.Unmarshal(data, &m); err != nil { | 		Data DateTime | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if err := bson.Unmarshal(data, &obj); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if data, ok := m["data"].(string); ok { | 	*t = obj.Data | ||||||
| 		rd, err := ParseDateTime(data) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return err |  | ||||||
| 		} |  | ||||||
| 		*t = rd |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	return errors.New("couldn't unmarshal bson bytes value as Date") | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // MarshalBSONValue is an interface implemented by types that can marshal themselves
 | ||||||
|  | // into a BSON document represented as bytes. The bytes returned must be a valid
 | ||||||
|  | // BSON document if the error is nil.
 | ||||||
|  | // Marshals a DateTime as a bsontype.DateTime, an int64 representing
 | ||||||
|  | // milliseconds since epoch.
 | ||||||
|  | func (t DateTime) MarshalBSONValue() (bsontype.Type, []byte, error) { | ||||||
|  | 	// UnixNano cannot be used, the result of calling UnixNano on the zero
 | ||||||
|  | 	// Time is undefined.
 | ||||||
|  | 	i64 := time.Time(t).Unix() * 1000 | ||||||
|  | 	buf := make([]byte, 8) | ||||||
|  | 	binary.LittleEndian.PutUint64(buf, uint64(i64)) | ||||||
|  | 
 | ||||||
|  | 	return bsontype.DateTime, buf, nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // UnmarshalBSONValue is an interface implemented by types that can unmarshal a
 | ||||||
|  | // BSON value representation of themselves. The BSON bytes and type can be
 | ||||||
|  | // assumed to be valid. UnmarshalBSONValue must copy the BSON value bytes if it
 | ||||||
|  | // wishes to retain the data after returning.
 | ||||||
|  | func (t *DateTime) UnmarshalBSONValue(tpe bsontype.Type, data []byte) error { | ||||||
|  | 	i64 := int64(binary.LittleEndian.Uint64(data)) | ||||||
|  | 	// TODO: Use bsonprim.DateTime.Time() method
 | ||||||
|  | 	*t = DateTime(time.Unix(i64/1000, i64%1000*1000000)) | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // DeepCopyInto copies the receiver and writes its value into out.
 | // DeepCopyInto copies the receiver and writes its value into out.
 | ||||||
| @ -201,3 +232,32 @@ func (t *DateTime) DeepCopy() *DateTime { | |||||||
| 	t.DeepCopyInto(out) | 	t.DeepCopyInto(out) | ||||||
| 	return out | 	return out | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GobEncode implements the gob.GobEncoder interface.
 | ||||||
|  | func (t DateTime) GobEncode() ([]byte, error) { | ||||||
|  | 	return t.MarshalBinary() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GobDecode implements the gob.GobDecoder interface.
 | ||||||
|  | func (t *DateTime) GobDecode(data []byte) error { | ||||||
|  | 	return t.UnmarshalBinary(data) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // MarshalBinary implements the encoding.BinaryMarshaler interface.
 | ||||||
|  | func (t DateTime) MarshalBinary() ([]byte, error) { | ||||||
|  | 	return time.Time(t).MarshalBinary() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
 | ||||||
|  | func (t *DateTime) UnmarshalBinary(data []byte) error { | ||||||
|  | 	var original time.Time | ||||||
|  | 
 | ||||||
|  | 	err := original.UnmarshalBinary(data) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	*t = DateTime(original) | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/swag/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/swag/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								vendor/github.com/go-openapi/swag/convert.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-openapi/swag/convert.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -88,7 +88,7 @@ func ConvertFloat64(str string) (float64, error) { | |||||||
| 	return strconv.ParseFloat(str, 64) | 	return strconv.ParseFloat(str, 64) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertInt8 turn a string into int8 boolean
 | // ConvertInt8 turn a string into an int8
 | ||||||
| func ConvertInt8(str string) (int8, error) { | func ConvertInt8(str string) (int8, error) { | ||||||
| 	i, err := strconv.ParseInt(str, 10, 8) | 	i, err := strconv.ParseInt(str, 10, 8) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -97,7 +97,7 @@ func ConvertInt8(str string) (int8, error) { | |||||||
| 	return int8(i), nil | 	return int8(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertInt16 turn a string into a int16
 | // ConvertInt16 turn a string into an int16
 | ||||||
| func ConvertInt16(str string) (int16, error) { | func ConvertInt16(str string) (int16, error) { | ||||||
| 	i, err := strconv.ParseInt(str, 10, 16) | 	i, err := strconv.ParseInt(str, 10, 16) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -106,7 +106,7 @@ func ConvertInt16(str string) (int16, error) { | |||||||
| 	return int16(i), nil | 	return int16(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertInt32 turn a string into a int32
 | // ConvertInt32 turn a string into an int32
 | ||||||
| func ConvertInt32(str string) (int32, error) { | func ConvertInt32(str string) (int32, error) { | ||||||
| 	i, err := strconv.ParseInt(str, 10, 32) | 	i, err := strconv.ParseInt(str, 10, 32) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -115,12 +115,12 @@ func ConvertInt32(str string) (int32, error) { | |||||||
| 	return int32(i), nil | 	return int32(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertInt64 turn a string into a int64
 | // ConvertInt64 turn a string into an int64
 | ||||||
| func ConvertInt64(str string) (int64, error) { | func ConvertInt64(str string) (int64, error) { | ||||||
| 	return strconv.ParseInt(str, 10, 64) | 	return strconv.ParseInt(str, 10, 64) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertUint8 turn a string into a uint8
 | // ConvertUint8 turn a string into an uint8
 | ||||||
| func ConvertUint8(str string) (uint8, error) { | func ConvertUint8(str string) (uint8, error) { | ||||||
| 	i, err := strconv.ParseUint(str, 10, 8) | 	i, err := strconv.ParseUint(str, 10, 8) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -129,7 +129,7 @@ func ConvertUint8(str string) (uint8, error) { | |||||||
| 	return uint8(i), nil | 	return uint8(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertUint16 turn a string into a uint16
 | // ConvertUint16 turn a string into an uint16
 | ||||||
| func ConvertUint16(str string) (uint16, error) { | func ConvertUint16(str string) (uint16, error) { | ||||||
| 	i, err := strconv.ParseUint(str, 10, 16) | 	i, err := strconv.ParseUint(str, 10, 16) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -138,7 +138,7 @@ func ConvertUint16(str string) (uint16, error) { | |||||||
| 	return uint16(i), nil | 	return uint16(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertUint32 turn a string into a uint32
 | // ConvertUint32 turn a string into an uint32
 | ||||||
| func ConvertUint32(str string) (uint32, error) { | func ConvertUint32(str string) (uint32, error) { | ||||||
| 	i, err := strconv.ParseUint(str, 10, 32) | 	i, err := strconv.ParseUint(str, 10, 32) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -147,7 +147,7 @@ func ConvertUint32(str string) (uint32, error) { | |||||||
| 	return uint32(i), nil | 	return uint32(i), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ConvertUint64 turn a string into a uint64
 | // ConvertUint64 turn a string into an uint64
 | ||||||
| func ConvertUint64(str string) (uint64, error) { | func ConvertUint64(str string) (uint64, error) { | ||||||
| 	return strconv.ParseUint(str, 10, 64) | 	return strconv.ParseUint(str, 10, 64) | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										195
									
								
								vendor/github.com/go-openapi/swag/convert_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										195
									
								
								vendor/github.com/go-openapi/swag/convert_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -181,12 +181,12 @@ func IntValueMap(src map[string]*int) map[string]int { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Int32 returns a pointer to of the int64 value passed in.
 | // Int32 returns a pointer to of the int32 value passed in.
 | ||||||
| func Int32(v int32) *int32 { | func Int32(v int32) *int32 { | ||||||
| 	return &v | 	return &v | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Int32Value returns the value of the int64 pointer passed in or
 | // Int32Value returns the value of the int32 pointer passed in or
 | ||||||
| // 0 if the pointer is nil.
 | // 0 if the pointer is nil.
 | ||||||
| func Int32Value(v *int32) int32 { | func Int32Value(v *int32) int32 { | ||||||
| 	if v != nil { | 	if v != nil { | ||||||
| @ -195,7 +195,7 @@ func Int32Value(v *int32) int32 { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Int32Slice converts a slice of int64 values into a slice of
 | // Int32Slice converts a slice of int32 values into a slice of
 | ||||||
| // int32 pointers
 | // int32 pointers
 | ||||||
| func Int32Slice(src []int32) []*int32 { | func Int32Slice(src []int32) []*int32 { | ||||||
| 	dst := make([]*int32, len(src)) | 	dst := make([]*int32, len(src)) | ||||||
| @ -299,13 +299,80 @@ func Int64ValueMap(src map[string]*int64) map[string]int64 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint returns a pouinter to of the uint value passed in.
 | // Uint16 returns a pointer to of the uint16 value passed in.
 | ||||||
|  | func Uint16(v uint16) *uint16 { | ||||||
|  | 	return &v | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint16Value returns the value of the uint16 pointer passed in or
 | ||||||
|  | // 0 if the pointer is nil.
 | ||||||
|  | func Uint16Value(v *uint16) uint16 { | ||||||
|  | 	if v != nil { | ||||||
|  | 		return *v | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint16Slice converts a slice of uint16 values into a slice of
 | ||||||
|  | // uint16 pointers
 | ||||||
|  | func Uint16Slice(src []uint16) []*uint16 { | ||||||
|  | 	dst := make([]*uint16, len(src)) | ||||||
|  | 	for i := 0; i < len(src); i++ { | ||||||
|  | 		dst[i] = &(src[i]) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint16ValueSlice converts a slice of uint16 pointers into a slice of
 | ||||||
|  | // uint16 values
 | ||||||
|  | func Uint16ValueSlice(src []*uint16) []uint16 { | ||||||
|  | 	dst := make([]uint16, len(src)) | ||||||
|  | 
 | ||||||
|  | 	for i := 0; i < len(src); i++ { | ||||||
|  | 		if src[i] != nil { | ||||||
|  | 			dst[i] = *(src[i]) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint16Map converts a string map of uint16 values into a string
 | ||||||
|  | // map of uint16 pointers
 | ||||||
|  | func Uint16Map(src map[string]uint16) map[string]*uint16 { | ||||||
|  | 	dst := make(map[string]*uint16) | ||||||
|  | 
 | ||||||
|  | 	for k, val := range src { | ||||||
|  | 		v := val | ||||||
|  | 		dst[k] = &v | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint16ValueMap converts a string map of uint16 pointers into a string
 | ||||||
|  | // map of uint16 values
 | ||||||
|  | func Uint16ValueMap(src map[string]*uint16) map[string]uint16 { | ||||||
|  | 	dst := make(map[string]uint16) | ||||||
|  | 
 | ||||||
|  | 	for k, val := range src { | ||||||
|  | 		if val != nil { | ||||||
|  | 			dst[k] = *val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Uint returns a pointer to of the uint value passed in.
 | ||||||
| func Uint(v uint) *uint { | func Uint(v uint) *uint { | ||||||
| 	return &v | 	return &v | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UintValue returns the value of the uint pouinter passed in or
 | // UintValue returns the value of the uint pointer passed in or
 | ||||||
| // 0 if the pouinter is nil.
 | // 0 if the pointer is nil.
 | ||||||
| func UintValue(v *uint) uint { | func UintValue(v *uint) uint { | ||||||
| 	if v != nil { | 	if v != nil { | ||||||
| 		return *v | 		return *v | ||||||
| @ -313,8 +380,8 @@ func UintValue(v *uint) uint { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UintSlice converts a slice of uint values uinto a slice of
 | // UintSlice converts a slice of uint values into a slice of
 | ||||||
| // uint pouinters
 | // uint pointers
 | ||||||
| func UintSlice(src []uint) []*uint { | func UintSlice(src []uint) []*uint { | ||||||
| 	dst := make([]*uint, len(src)) | 	dst := make([]*uint, len(src)) | ||||||
| 	for i := 0; i < len(src); i++ { | 	for i := 0; i < len(src); i++ { | ||||||
| @ -323,7 +390,7 @@ func UintSlice(src []uint) []*uint { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UintValueSlice converts a slice of uint pouinters uinto a slice of
 | // UintValueSlice converts a slice of uint pointers into a slice of
 | ||||||
| // uint values
 | // uint values
 | ||||||
| func UintValueSlice(src []*uint) []uint { | func UintValueSlice(src []*uint) []uint { | ||||||
| 	dst := make([]uint, len(src)) | 	dst := make([]uint, len(src)) | ||||||
| @ -335,8 +402,8 @@ func UintValueSlice(src []*uint) []uint { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UintMap converts a string map of uint values uinto a string
 | // UintMap converts a string map of uint values into a string
 | ||||||
| // map of uint pouinters
 | // map of uint pointers
 | ||||||
| func UintMap(src map[string]uint) map[string]*uint { | func UintMap(src map[string]uint) map[string]*uint { | ||||||
| 	dst := make(map[string]*uint) | 	dst := make(map[string]*uint) | ||||||
| 	for k, val := range src { | 	for k, val := range src { | ||||||
| @ -346,7 +413,7 @@ func UintMap(src map[string]uint) map[string]*uint { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UintValueMap converts a string map of uint pouinters uinto a string
 | // UintValueMap converts a string map of uint pointers into a string
 | ||||||
| // map of uint values
 | // map of uint values
 | ||||||
| func UintValueMap(src map[string]*uint) map[string]uint { | func UintValueMap(src map[string]*uint) map[string]uint { | ||||||
| 	dst := make(map[string]uint) | 	dst := make(map[string]uint) | ||||||
| @ -358,13 +425,13 @@ func UintValueMap(src map[string]*uint) map[string]uint { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32 returns a pouinter to of the uint64 value passed in.
 | // Uint32 returns a pointer to of the uint32 value passed in.
 | ||||||
| func Uint32(v uint32) *uint32 { | func Uint32(v uint32) *uint32 { | ||||||
| 	return &v | 	return &v | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32Value returns the value of the uint64 pouinter passed in or
 | // Uint32Value returns the value of the uint32 pointer passed in or
 | ||||||
| // 0 if the pouinter is nil.
 | // 0 if the pointer is nil.
 | ||||||
| func Uint32Value(v *uint32) uint32 { | func Uint32Value(v *uint32) uint32 { | ||||||
| 	if v != nil { | 	if v != nil { | ||||||
| 		return *v | 		return *v | ||||||
| @ -372,8 +439,8 @@ func Uint32Value(v *uint32) uint32 { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32Slice converts a slice of uint64 values uinto a slice of
 | // Uint32Slice converts a slice of uint32 values into a slice of
 | ||||||
| // uint32 pouinters
 | // uint32 pointers
 | ||||||
| func Uint32Slice(src []uint32) []*uint32 { | func Uint32Slice(src []uint32) []*uint32 { | ||||||
| 	dst := make([]*uint32, len(src)) | 	dst := make([]*uint32, len(src)) | ||||||
| 	for i := 0; i < len(src); i++ { | 	for i := 0; i < len(src); i++ { | ||||||
| @ -382,7 +449,7 @@ func Uint32Slice(src []uint32) []*uint32 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32ValueSlice converts a slice of uint32 pouinters uinto a slice of
 | // Uint32ValueSlice converts a slice of uint32 pointers into a slice of
 | ||||||
| // uint32 values
 | // uint32 values
 | ||||||
| func Uint32ValueSlice(src []*uint32) []uint32 { | func Uint32ValueSlice(src []*uint32) []uint32 { | ||||||
| 	dst := make([]uint32, len(src)) | 	dst := make([]uint32, len(src)) | ||||||
| @ -394,8 +461,8 @@ func Uint32ValueSlice(src []*uint32) []uint32 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32Map converts a string map of uint32 values uinto a string
 | // Uint32Map converts a string map of uint32 values into a string
 | ||||||
| // map of uint32 pouinters
 | // map of uint32 pointers
 | ||||||
| func Uint32Map(src map[string]uint32) map[string]*uint32 { | func Uint32Map(src map[string]uint32) map[string]*uint32 { | ||||||
| 	dst := make(map[string]*uint32) | 	dst := make(map[string]*uint32) | ||||||
| 	for k, val := range src { | 	for k, val := range src { | ||||||
| @ -405,7 +472,7 @@ func Uint32Map(src map[string]uint32) map[string]*uint32 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint32ValueMap converts a string map of uint32 pouinters uinto a string
 | // Uint32ValueMap converts a string map of uint32 pointers into a string
 | ||||||
| // map of uint32 values
 | // map of uint32 values
 | ||||||
| func Uint32ValueMap(src map[string]*uint32) map[string]uint32 { | func Uint32ValueMap(src map[string]*uint32) map[string]uint32 { | ||||||
| 	dst := make(map[string]uint32) | 	dst := make(map[string]uint32) | ||||||
| @ -417,13 +484,13 @@ func Uint32ValueMap(src map[string]*uint32) map[string]uint32 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64 returns a pouinter to of the uint64 value passed in.
 | // Uint64 returns a pointer to of the uint64 value passed in.
 | ||||||
| func Uint64(v uint64) *uint64 { | func Uint64(v uint64) *uint64 { | ||||||
| 	return &v | 	return &v | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64Value returns the value of the uint64 pouinter passed in or
 | // Uint64Value returns the value of the uint64 pointer passed in or
 | ||||||
| // 0 if the pouinter is nil.
 | // 0 if the pointer is nil.
 | ||||||
| func Uint64Value(v *uint64) uint64 { | func Uint64Value(v *uint64) uint64 { | ||||||
| 	if v != nil { | 	if v != nil { | ||||||
| 		return *v | 		return *v | ||||||
| @ -431,8 +498,8 @@ func Uint64Value(v *uint64) uint64 { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64Slice converts a slice of uint64 values uinto a slice of
 | // Uint64Slice converts a slice of uint64 values into a slice of
 | ||||||
| // uint64 pouinters
 | // uint64 pointers
 | ||||||
| func Uint64Slice(src []uint64) []*uint64 { | func Uint64Slice(src []uint64) []*uint64 { | ||||||
| 	dst := make([]*uint64, len(src)) | 	dst := make([]*uint64, len(src)) | ||||||
| 	for i := 0; i < len(src); i++ { | 	for i := 0; i < len(src); i++ { | ||||||
| @ -441,7 +508,7 @@ func Uint64Slice(src []uint64) []*uint64 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64ValueSlice converts a slice of uint64 pouinters uinto a slice of
 | // Uint64ValueSlice converts a slice of uint64 pointers into a slice of
 | ||||||
| // uint64 values
 | // uint64 values
 | ||||||
| func Uint64ValueSlice(src []*uint64) []uint64 { | func Uint64ValueSlice(src []*uint64) []uint64 { | ||||||
| 	dst := make([]uint64, len(src)) | 	dst := make([]uint64, len(src)) | ||||||
| @ -453,8 +520,8 @@ func Uint64ValueSlice(src []*uint64) []uint64 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64Map converts a string map of uint64 values uinto a string
 | // Uint64Map converts a string map of uint64 values into a string
 | ||||||
| // map of uint64 pouinters
 | // map of uint64 pointers
 | ||||||
| func Uint64Map(src map[string]uint64) map[string]*uint64 { | func Uint64Map(src map[string]uint64) map[string]*uint64 { | ||||||
| 	dst := make(map[string]*uint64) | 	dst := make(map[string]*uint64) | ||||||
| 	for k, val := range src { | 	for k, val := range src { | ||||||
| @ -464,7 +531,7 @@ func Uint64Map(src map[string]uint64) map[string]*uint64 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Uint64ValueMap converts a string map of uint64 pouinters uinto a string
 | // Uint64ValueMap converts a string map of uint64 pointers into a string
 | ||||||
| // map of uint64 values
 | // map of uint64 values
 | ||||||
| func Uint64ValueMap(src map[string]*uint64) map[string]uint64 { | func Uint64ValueMap(src map[string]*uint64) map[string]uint64 { | ||||||
| 	dst := make(map[string]uint64) | 	dst := make(map[string]uint64) | ||||||
| @ -476,6 +543,74 @@ func Uint64ValueMap(src map[string]*uint64) map[string]uint64 { | |||||||
| 	return dst | 	return dst | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Float32 returns a pointer to of the float32 value passed in.
 | ||||||
|  | func Float32(v float32) *float32 { | ||||||
|  | 	return &v | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Float32Value returns the value of the float32 pointer passed in or
 | ||||||
|  | // 0 if the pointer is nil.
 | ||||||
|  | func Float32Value(v *float32) float32 { | ||||||
|  | 	if v != nil { | ||||||
|  | 		return *v | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Float32Slice converts a slice of float32 values into a slice of
 | ||||||
|  | // float32 pointers
 | ||||||
|  | func Float32Slice(src []float32) []*float32 { | ||||||
|  | 	dst := make([]*float32, len(src)) | ||||||
|  | 
 | ||||||
|  | 	for i := 0; i < len(src); i++ { | ||||||
|  | 		dst[i] = &(src[i]) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Float32ValueSlice converts a slice of float32 pointers into a slice of
 | ||||||
|  | // float32 values
 | ||||||
|  | func Float32ValueSlice(src []*float32) []float32 { | ||||||
|  | 	dst := make([]float32, len(src)) | ||||||
|  | 
 | ||||||
|  | 	for i := 0; i < len(src); i++ { | ||||||
|  | 		if src[i] != nil { | ||||||
|  | 			dst[i] = *(src[i]) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Float32Map converts a string map of float32 values into a string
 | ||||||
|  | // map of float32 pointers
 | ||||||
|  | func Float32Map(src map[string]float32) map[string]*float32 { | ||||||
|  | 	dst := make(map[string]*float32) | ||||||
|  | 
 | ||||||
|  | 	for k, val := range src { | ||||||
|  | 		v := val | ||||||
|  | 		dst[k] = &v | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Float32ValueMap converts a string map of float32 pointers into a string
 | ||||||
|  | // map of float32 values
 | ||||||
|  | func Float32ValueMap(src map[string]*float32) map[string]float32 { | ||||||
|  | 	dst := make(map[string]float32) | ||||||
|  | 
 | ||||||
|  | 	for k, val := range src { | ||||||
|  | 		if val != nil { | ||||||
|  | 			dst[k] = *val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return dst | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Float64 returns a pointer to of the float64 value passed in.
 | // Float64 returns a pointer to of the float64 value passed in.
 | ||||||
| func Float64(v float64) *float64 { | func Float64(v float64) *float64 { | ||||||
| 	return &v | 	return &v | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/swag/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/swag/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -6,9 +6,11 @@ require ( | |||||||
| 	github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 | 	github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 | ||||||
| 	github.com/stretchr/testify v1.3.0 | 	github.com/stretchr/testify v1.3.0 | ||||||
| 	gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect | 	gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect | ||||||
| 	gopkg.in/yaml.v2 v2.2.2 | 	gopkg.in/yaml.v2 v2.2.4 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| replace github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422 | replace github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422 | ||||||
| 
 | 
 | ||||||
| replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1 | replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1 | ||||||
|  | 
 | ||||||
|  | go 1.13 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/swag/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/swag/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -16,5 +16,5 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV | |||||||
| 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/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= | ||||||
| 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= | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/swag/json.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/swag/json.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -51,7 +51,7 @@ type ejUnmarshaler interface { | |||||||
| 	UnmarshalEasyJSON(w *jlexer.Lexer) | 	UnmarshalEasyJSON(w *jlexer.Lexer) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // WriteJSON writes json data, prefers finding an appropriate interface to short-circuit the marshaller
 | // WriteJSON writes json data, prefers finding an appropriate interface to short-circuit the marshaler
 | ||||||
| // so it takes the fastest option available.
 | // so it takes the fastest option available.
 | ||||||
| func WriteJSON(data interface{}) ([]byte, error) { | func WriteJSON(data interface{}) ([]byte, error) { | ||||||
| 	if d, ok := data.(ejMarshaler); ok { | 	if d, ok := data.(ejMarshaler); ok { | ||||||
| @ -65,8 +65,8 @@ func WriteJSON(data interface{}) ([]byte, error) { | |||||||
| 	return json.Marshal(data) | 	return json.Marshal(data) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ReadJSON reads json data, prefers finding an appropriate interface to short-circuit the unmarshaller
 | // ReadJSON reads json data, prefers finding an appropriate interface to short-circuit the unmarshaler
 | ||||||
| // so it takes the fastes option available
 | // so it takes the fastest option available
 | ||||||
| func ReadJSON(data []byte, value interface{}) error { | func ReadJSON(data []byte, value interface{}) error { | ||||||
| 	trimmedData := bytes.Trim(data, "\x00") | 	trimmedData := bytes.Trim(data, "\x00") | ||||||
| 	if d, ok := value.(ejUnmarshaler); ok { | 	if d, ok := value.(ejUnmarshaler); ok { | ||||||
| @ -189,7 +189,7 @@ func FromDynamicJSON(data, target interface{}) error { | |||||||
| 	return json.Unmarshal(b, target) | 	return json.Unmarshal(b, target) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NameProvider represents an object capabale of translating from go property names
 | // NameProvider represents an object capable of translating from go property names
 | ||||||
| // to json property names
 | // to json property names
 | ||||||
| // This type is thread-safe.
 | // This type is thread-safe.
 | ||||||
| type NameProvider struct { | type NameProvider struct { | ||||||
|  | |||||||
							
								
								
									
										18
									
								
								vendor/github.com/go-openapi/swag/loading.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/go-openapi/swag/loading.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -27,6 +27,15 @@ import ( | |||||||
| // LoadHTTPTimeout the default timeout for load requests
 | // LoadHTTPTimeout the default timeout for load requests
 | ||||||
| var LoadHTTPTimeout = 30 * time.Second | var LoadHTTPTimeout = 30 * time.Second | ||||||
| 
 | 
 | ||||||
|  | // LoadHTTPBasicAuthUsername the username to use when load requests require basic auth
 | ||||||
|  | var LoadHTTPBasicAuthUsername = "" | ||||||
|  | 
 | ||||||
|  | // LoadHTTPBasicAuthPassword the password to use when load requests require basic auth
 | ||||||
|  | var LoadHTTPBasicAuthPassword = "" | ||||||
|  | 
 | ||||||
|  | // LoadHTTPCustomHeaders an optional collection of custom HTTP headers for load requests
 | ||||||
|  | var LoadHTTPCustomHeaders = map[string]string{} | ||||||
|  | 
 | ||||||
| // LoadFromFileOrHTTP loads the bytes from a file or a remote http server based on the path passed in
 | // LoadFromFileOrHTTP loads the bytes from a file or a remote http server based on the path passed in
 | ||||||
| func LoadFromFileOrHTTP(path string) ([]byte, error) { | func LoadFromFileOrHTTP(path string) ([]byte, error) { | ||||||
| 	return LoadStrategy(path, ioutil.ReadFile, loadHTTPBytes(LoadHTTPTimeout))(path) | 	return LoadStrategy(path, ioutil.ReadFile, loadHTTPBytes(LoadHTTPTimeout))(path) | ||||||
| @ -59,6 +68,15 @@ func loadHTTPBytes(timeout time.Duration) func(path string) ([]byte, error) { | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		if LoadHTTPBasicAuthUsername != "" && LoadHTTPBasicAuthPassword != "" { | ||||||
|  | 			req.SetBasicAuth(LoadHTTPBasicAuthUsername, LoadHTTPBasicAuthPassword) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		for key, val := range LoadHTTPCustomHeaders { | ||||||
|  | 			req.Header.Set(key, val) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		resp, err := client.Do(req) | 		resp, err := client.Do(req) | ||||||
| 		defer func() { | 		defer func() { | ||||||
| 			if resp != nil { | 			if resp != nil { | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								vendor/github.com/go-openapi/validate/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/go-openapi/validate/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -4,17 +4,25 @@ linters-settings: | |||||||
|   golint: |   golint: | ||||||
|     min-confidence: 0 |     min-confidence: 0 | ||||||
|   gocyclo: |   gocyclo: | ||||||
|     min-complexity: 25 |     min-complexity: 50 | ||||||
|   maligned: |   maligned: | ||||||
|     suggest-new: true |     suggest-new: true | ||||||
|   dupl: |   dupl: | ||||||
|     threshold: 100 |     threshold: 100 | ||||||
|   goconst: |   goconst: | ||||||
|     min-len: 2 |     min-len: 2 | ||||||
|     min-occurrences: 2 |     min-occurrences: 3 | ||||||
| 
 | 
 | ||||||
| linters: | linters: | ||||||
|   enable-all: true |   enable-all: true | ||||||
|   disable: |   disable: | ||||||
|     - maligned |     - maligned | ||||||
|     - lll |     - lll | ||||||
|  |     - godox | ||||||
|  |     - gocognit | ||||||
|  |     - whitespace | ||||||
|  |     - wsl | ||||||
|  |     - funlen | ||||||
|  |     - gochecknoglobals | ||||||
|  |     - gochecknoinits | ||||||
|  |     - scopelint | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/validate/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/validate/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,12 +1,10 @@ | |||||||
| after_success: | after_success: | ||||||
| - bash <(curl -s https://codecov.io/bash) | - bash <(curl -s https://codecov.io/bash) | ||||||
| go: | go: | ||||||
| - 1.11.x | - 1.13.x | ||||||
| - 1.12.x | - 1.14.x | ||||||
| install: | install: | ||||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||||
| env: |  | ||||||
| - GO111MODULE=on |  | ||||||
| language: go | language: go | ||||||
| notifications: | notifications: | ||||||
|   slack: |   slack: | ||||||
|  | |||||||
							
								
								
									
										123
									
								
								vendor/github.com/go-openapi/validate/default_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										123
									
								
								vendor/github.com/go-openapi/validate/default_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -33,14 +33,8 @@ func (d *defaultValidator) resetVisited() { | |||||||
| 	d.visitedSchemas = map[string]bool{} | 	d.visitedSchemas = map[string]bool{} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // beingVisited asserts a schema is being visited
 | func isVisited(path string, visitedSchemas map[string]bool) bool { | ||||||
| func (d *defaultValidator) beingVisited(path string) { | 	found := visitedSchemas[path] | ||||||
| 	d.visitedSchemas[path] = true |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // isVisited tells if a path has already been visited
 |  | ||||||
| func (d *defaultValidator) isVisited(path string) bool { |  | ||||||
| 	found := d.visitedSchemas[path] |  | ||||||
| 	if !found { | 	if !found { | ||||||
| 		// search for overlapping paths
 | 		// search for overlapping paths
 | ||||||
| 		frags := strings.Split(path, ".") | 		frags := strings.Split(path, ".") | ||||||
| @ -70,6 +64,16 @@ func (d *defaultValidator) isVisited(path string) bool { | |||||||
| 	return found | 	return found | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // beingVisited asserts a schema is being visited
 | ||||||
|  | func (d *defaultValidator) beingVisited(path string) { | ||||||
|  | 	d.visitedSchemas[path] = true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // isVisited tells if a path has already been visited
 | ||||||
|  | func (d *defaultValidator) isVisited(path string) bool { | ||||||
|  | 	return isVisited(path, d.visitedSchemas) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Validate validates the default values declared in the swagger spec
 | // Validate validates the default values declared in the swagger spec
 | ||||||
| func (d *defaultValidator) Validate() (errs *Result) { | func (d *defaultValidator) Validate() (errs *Result) { | ||||||
| 	errs = new(Result) | 	errs = new(Result) | ||||||
| @ -89,64 +93,60 @@ func (d *defaultValidator) validateDefaultValueValidAgainstSchema() *Result { | |||||||
| 	s := d.SpecValidator | 	s := d.SpecValidator | ||||||
| 
 | 
 | ||||||
| 	for method, pathItem := range s.analyzer.Operations() { | 	for method, pathItem := range s.analyzer.Operations() { | ||||||
| 		if pathItem != nil { // Safeguard
 | 		for path, op := range pathItem { | ||||||
| 			for path, op := range pathItem { | 			// parameters
 | ||||||
| 				// parameters
 | 			for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | ||||||
| 				for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | 				if param.Default != nil && param.Required { | ||||||
| 					if param.Default != nil && param.Required { | 					res.AddWarnings(requiredHasDefaultMsg(param.Name, param.In)) | ||||||
| 						res.AddWarnings(requiredHasDefaultMsg(param.Name, param.In)) | 				} | ||||||
| 					} |  | ||||||
| 
 | 
 | ||||||
| 					// reset explored schemas to get depth-first recursive-proof exploration
 | 				// reset explored schemas to get depth-first recursive-proof exploration
 | ||||||
| 					d.resetVisited() | 				d.resetVisited() | ||||||
| 
 | 
 | ||||||
| 					// Check simple parameters first
 | 				// Check simple parameters first
 | ||||||
| 					// default values provided must validate against their inline definition (no explicit schema)
 | 				// default values provided must validate against their inline definition (no explicit schema)
 | ||||||
| 					if param.Default != nil && param.Schema == nil { | 				if param.Default != nil && param.Schema == nil { | ||||||
| 						// check param default value is valid
 | 					// check param default value is valid
 | ||||||
| 						red := NewParamValidator(¶m, s.KnownFormats).Validate(param.Default) | 					red := NewParamValidator(¶m, s.KnownFormats).Validate(param.Default) | ||||||
| 						if red.HasErrorsOrWarnings() { | 					if red.HasErrorsOrWarnings() { | ||||||
| 							res.AddErrors(defaultValueDoesNotValidateMsg(param.Name, param.In)) | 						res.AddErrors(defaultValueDoesNotValidateMsg(param.Name, param.In)) | ||||||
| 							res.Merge(red) | 						res.Merge(red) | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					// Recursively follows Items and Schemas
 |  | ||||||
| 					if param.Items != nil { |  | ||||||
| 						red := d.validateDefaultValueItemsAgainstSchema(param.Name, param.In, ¶m, param.Items) |  | ||||||
| 						if red.HasErrorsOrWarnings() { |  | ||||||
| 							res.AddErrors(defaultValueItemsDoesNotValidateMsg(param.Name, param.In)) |  | ||||||
| 							res.Merge(red) |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					if param.Schema != nil { |  | ||||||
| 						// Validate default value against schema
 |  | ||||||
| 						red := d.validateDefaultValueSchemaAgainstSchema(param.Name, param.In, param.Schema) |  | ||||||
| 						if red.HasErrorsOrWarnings() { |  | ||||||
| 							res.AddErrors(defaultValueDoesNotValidateMsg(param.Name, param.In)) |  | ||||||
| 							res.Merge(red) |  | ||||||
| 						} |  | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				if op.Responses != nil { | 				// Recursively follows Items and Schemas
 | ||||||
| 					if op.Responses.Default != nil { | 				if param.Items != nil { | ||||||
| 						// Same constraint on default Response
 | 					red := d.validateDefaultValueItemsAgainstSchema(param.Name, param.In, ¶m, param.Items) | ||||||
| 						res.Merge(d.validateDefaultInResponse(op.Responses.Default, "default", path, 0, op.ID)) | 					if red.HasErrorsOrWarnings() { | ||||||
| 					} | 						res.AddErrors(defaultValueItemsDoesNotValidateMsg(param.Name, param.In)) | ||||||
| 					// Same constraint on regular Responses
 | 						res.Merge(red) | ||||||
| 					if op.Responses.StatusCodeResponses != nil { // Safeguard
 |  | ||||||
| 						for code, r := range op.Responses.StatusCodeResponses { |  | ||||||
| 							res.Merge(d.validateDefaultInResponse(&r, "response", path, code, op.ID)) |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 				} else { |  | ||||||
| 					// Empty op.ID means there is no meaningful operation: no need to report a specific message
 |  | ||||||
| 					if op.ID != "" { |  | ||||||
| 						res.AddErrors(noValidResponseMsg(op.ID)) |  | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  | 
 | ||||||
|  | 				if param.Schema != nil { | ||||||
|  | 					// Validate default value against schema
 | ||||||
|  | 					red := d.validateDefaultValueSchemaAgainstSchema(param.Name, param.In, param.Schema) | ||||||
|  | 					if red.HasErrorsOrWarnings() { | ||||||
|  | 						res.AddErrors(defaultValueDoesNotValidateMsg(param.Name, param.In)) | ||||||
|  | 						res.Merge(red) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			if op.Responses != nil { | ||||||
|  | 				if op.Responses.Default != nil { | ||||||
|  | 					// Same constraint on default Response
 | ||||||
|  | 					res.Merge(d.validateDefaultInResponse(op.Responses.Default, jsonDefault, path, 0, op.ID)) | ||||||
|  | 				} | ||||||
|  | 				// Same constraint on regular Responses
 | ||||||
|  | 				if op.Responses.StatusCodeResponses != nil { // Safeguard
 | ||||||
|  | 					for code, r := range op.Responses.StatusCodeResponses { | ||||||
|  | 						res.Merge(d.validateDefaultInResponse(&r, "response", path, code, op.ID)) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} else if op.ID != "" { | ||||||
|  | 				// Empty op.ID means there is no meaningful operation: no need to report a specific message
 | ||||||
|  | 				res.AddErrors(noValidResponseMsg(op.ID)) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -170,6 +170,7 @@ func (d *defaultValidator) validateDefaultInResponse(resp *spec.Response, respon | |||||||
| 
 | 
 | ||||||
| 	responseName, responseCodeAsStr := responseHelp.responseMsgVariants(responseType, responseCode) | 	responseName, responseCodeAsStr := responseHelp.responseMsgVariants(responseType, responseCode) | ||||||
| 
 | 
 | ||||||
|  | 	// nolint: dupl
 | ||||||
| 	if response.Headers != nil { // Safeguard
 | 	if response.Headers != nil { // Safeguard
 | ||||||
| 		for nm, h := range response.Headers { | 		for nm, h := range response.Headers { | ||||||
| 			// reset explored schemas to get depth-first recursive-proof exploration
 | 			// reset explored schemas to get depth-first recursive-proof exploration
 | ||||||
| @ -223,7 +224,7 @@ func (d *defaultValidator) validateDefaultValueSchemaAgainstSchema(path, in stri | |||||||
| 	s := d.SpecValidator | 	s := d.SpecValidator | ||||||
| 
 | 
 | ||||||
| 	if schema.Default != nil { | 	if schema.Default != nil { | ||||||
| 		res.Merge(NewSchemaValidator(schema, s.spec.Spec(), path+".default", s.KnownFormats).Validate(schema.Default)) | 		res.Merge(NewSchemaValidator(schema, s.spec.Spec(), path+".default", s.KnownFormats, SwaggerSchema(true)).Validate(schema.Default)) | ||||||
| 	} | 	} | ||||||
| 	if schema.Items != nil { | 	if schema.Items != nil { | ||||||
| 		if schema.Items.Schema != nil { | 		if schema.Items.Schema != nil { | ||||||
| @ -260,6 +261,8 @@ func (d *defaultValidator) validateDefaultValueSchemaAgainstSchema(path, in stri | |||||||
| 	return res | 	return res | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // TODO: Temporary duplicated code. Need to refactor with examples
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (d *defaultValidator) validateDefaultValueItemsAgainstSchema(path, in string, root interface{}, items *spec.Items) *Result { | func (d *defaultValidator) validateDefaultValueItemsAgainstSchema(path, in string, root interface{}, items *spec.Items) *Result { | ||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 	s := d.SpecValidator | 	s := d.SpecValidator | ||||||
|  | |||||||
							
								
								
									
										133
									
								
								vendor/github.com/go-openapi/validate/example_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										133
									
								
								vendor/github.com/go-openapi/validate/example_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -16,7 +16,6 @@ package validate | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" |  | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| ) | ) | ||||||
| @ -39,34 +38,7 @@ func (ex *exampleValidator) beingVisited(path string) { | |||||||
| 
 | 
 | ||||||
| // isVisited tells if a path has already been visited
 | // isVisited tells if a path has already been visited
 | ||||||
| func (ex *exampleValidator) isVisited(path string) bool { | func (ex *exampleValidator) isVisited(path string) bool { | ||||||
| 	found := ex.visitedSchemas[path] | 	return isVisited(path, ex.visitedSchemas) | ||||||
| 	if !found { |  | ||||||
| 		// search for overlapping paths
 |  | ||||||
| 		frags := strings.Split(path, ".") |  | ||||||
| 		if len(frags) < 2 { |  | ||||||
| 			// shortcut exit on smaller paths
 |  | ||||||
| 			return found |  | ||||||
| 		} |  | ||||||
| 		last := len(frags) - 1 |  | ||||||
| 		var currentFragStr, parent string |  | ||||||
| 		for i := range frags { |  | ||||||
| 			if i == 0 { |  | ||||||
| 				currentFragStr = frags[last] |  | ||||||
| 			} else { |  | ||||||
| 				currentFragStr = strings.Join([]string{frags[last-i], currentFragStr}, ".") |  | ||||||
| 			} |  | ||||||
| 			if i < last { |  | ||||||
| 				parent = strings.Join(frags[0:last-i], ".") |  | ||||||
| 			} else { |  | ||||||
| 				parent = "" |  | ||||||
| 			} |  | ||||||
| 			if strings.HasSuffix(parent, currentFragStr) { |  | ||||||
| 				found = true |  | ||||||
| 				break |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return found |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Validate validates the example values declared in the swagger spec
 | // Validate validates the example values declared in the swagger spec
 | ||||||
| @ -97,64 +69,60 @@ func (ex *exampleValidator) validateExampleValueValidAgainstSchema() *Result { | |||||||
| 	s := ex.SpecValidator | 	s := ex.SpecValidator | ||||||
| 
 | 
 | ||||||
| 	for method, pathItem := range s.analyzer.Operations() { | 	for method, pathItem := range s.analyzer.Operations() { | ||||||
| 		if pathItem != nil { // Safeguard
 | 		for path, op := range pathItem { | ||||||
| 			for path, op := range pathItem { | 			// parameters
 | ||||||
| 				// parameters
 | 			for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | ||||||
| 				for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { |  | ||||||
| 
 | 
 | ||||||
| 					// As of swagger 2.0, Examples are not supported in simple parameters
 | 				// As of swagger 2.0, Examples are not supported in simple parameters
 | ||||||
| 					// However, it looks like it is supported by go-openapi
 | 				// However, it looks like it is supported by go-openapi
 | ||||||
| 
 | 
 | ||||||
| 					// reset explored schemas to get depth-first recursive-proof exploration
 | 				// reset explored schemas to get depth-first recursive-proof exploration
 | ||||||
| 					ex.resetVisited() | 				ex.resetVisited() | ||||||
| 
 | 
 | ||||||
| 					// Check simple parameters first
 | 				// Check simple parameters first
 | ||||||
| 					// default values provided must validate against their inline definition (no explicit schema)
 | 				// default values provided must validate against their inline definition (no explicit schema)
 | ||||||
| 					if param.Example != nil && param.Schema == nil { | 				if param.Example != nil && param.Schema == nil { | ||||||
| 						// check param default value is valid
 | 					// check param default value is valid
 | ||||||
| 						red := NewParamValidator(¶m, s.KnownFormats).Validate(param.Example) | 					red := NewParamValidator(¶m, s.KnownFormats).Validate(param.Example) | ||||||
| 						if red.HasErrorsOrWarnings() { | 					if red.HasErrorsOrWarnings() { | ||||||
| 							res.AddWarnings(exampleValueDoesNotValidateMsg(param.Name, param.In)) | 						res.AddWarnings(exampleValueDoesNotValidateMsg(param.Name, param.In)) | ||||||
| 							res.MergeAsWarnings(red) | 						res.MergeAsWarnings(red) | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					// Recursively follows Items and Schemas
 |  | ||||||
| 					if param.Items != nil { |  | ||||||
| 						red := ex.validateExampleValueItemsAgainstSchema(param.Name, param.In, ¶m, param.Items) |  | ||||||
| 						if red.HasErrorsOrWarnings() { |  | ||||||
| 							res.AddWarnings(exampleValueItemsDoesNotValidateMsg(param.Name, param.In)) |  | ||||||
| 							res.Merge(red) |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					if param.Schema != nil { |  | ||||||
| 						// Validate example value against schema
 |  | ||||||
| 						red := ex.validateExampleValueSchemaAgainstSchema(param.Name, param.In, param.Schema) |  | ||||||
| 						if red.HasErrorsOrWarnings() { |  | ||||||
| 							res.AddWarnings(exampleValueDoesNotValidateMsg(param.Name, param.In)) |  | ||||||
| 							res.Merge(red) |  | ||||||
| 						} |  | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				if op.Responses != nil { | 				// Recursively follows Items and Schemas
 | ||||||
| 					if op.Responses.Default != nil { | 				if param.Items != nil { | ||||||
| 						// Same constraint on default Response
 | 					red := ex.validateExampleValueItemsAgainstSchema(param.Name, param.In, ¶m, param.Items) | ||||||
| 						res.Merge(ex.validateExampleInResponse(op.Responses.Default, "default", path, 0, op.ID)) | 					if red.HasErrorsOrWarnings() { | ||||||
| 					} | 						res.AddWarnings(exampleValueItemsDoesNotValidateMsg(param.Name, param.In)) | ||||||
| 					// Same constraint on regular Responses
 | 						res.Merge(red) | ||||||
| 					if op.Responses.StatusCodeResponses != nil { // Safeguard
 |  | ||||||
| 						for code, r := range op.Responses.StatusCodeResponses { |  | ||||||
| 							res.Merge(ex.validateExampleInResponse(&r, "response", path, code, op.ID)) |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 				} else { |  | ||||||
| 					// Empty op.ID means there is no meaningful operation: no need to report a specific message
 |  | ||||||
| 					if op.ID != "" { |  | ||||||
| 						res.AddErrors(noValidResponseMsg(op.ID)) |  | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  | 
 | ||||||
|  | 				if param.Schema != nil { | ||||||
|  | 					// Validate example value against schema
 | ||||||
|  | 					red := ex.validateExampleValueSchemaAgainstSchema(param.Name, param.In, param.Schema) | ||||||
|  | 					if red.HasErrorsOrWarnings() { | ||||||
|  | 						res.AddWarnings(exampleValueDoesNotValidateMsg(param.Name, param.In)) | ||||||
|  | 						res.Merge(red) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			if op.Responses != nil { | ||||||
|  | 				if op.Responses.Default != nil { | ||||||
|  | 					// Same constraint on default Response
 | ||||||
|  | 					res.Merge(ex.validateExampleInResponse(op.Responses.Default, jsonDefault, path, 0, op.ID)) | ||||||
|  | 				} | ||||||
|  | 				// Same constraint on regular Responses
 | ||||||
|  | 				if op.Responses.StatusCodeResponses != nil { // Safeguard
 | ||||||
|  | 					for code, r := range op.Responses.StatusCodeResponses { | ||||||
|  | 						res.Merge(ex.validateExampleInResponse(&r, "response", path, code, op.ID)) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} else if op.ID != "" { | ||||||
|  | 				// Empty op.ID means there is no meaningful operation: no need to report a specific message
 | ||||||
|  | 				res.AddErrors(noValidResponseMsg(op.ID)) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -178,6 +146,7 @@ func (ex *exampleValidator) validateExampleInResponse(resp *spec.Response, respo | |||||||
| 
 | 
 | ||||||
| 	responseName, responseCodeAsStr := responseHelp.responseMsgVariants(responseType, responseCode) | 	responseName, responseCodeAsStr := responseHelp.responseMsgVariants(responseType, responseCode) | ||||||
| 
 | 
 | ||||||
|  | 	// nolint: dupl
 | ||||||
| 	if response.Headers != nil { // Safeguard
 | 	if response.Headers != nil { // Safeguard
 | ||||||
| 		for nm, h := range response.Headers { | 		for nm, h := range response.Headers { | ||||||
| 			// reset explored schemas to get depth-first recursive-proof exploration
 | 			// reset explored schemas to get depth-first recursive-proof exploration
 | ||||||
| @ -222,7 +191,7 @@ func (ex *exampleValidator) validateExampleInResponse(resp *spec.Response, respo | |||||||
| 	if response.Examples != nil { | 	if response.Examples != nil { | ||||||
| 		if response.Schema != nil { | 		if response.Schema != nil { | ||||||
| 			if example, ok := response.Examples["application/json"]; ok { | 			if example, ok := response.Examples["application/json"]; ok { | ||||||
| 				res.MergeAsWarnings(NewSchemaValidator(response.Schema, s.spec.Spec(), path, s.KnownFormats).Validate(example)) | 				res.MergeAsWarnings(NewSchemaValidator(response.Schema, s.spec.Spec(), path+".examples", s.KnownFormats, SwaggerSchema(true)).Validate(example)) | ||||||
| 			} else { | 			} else { | ||||||
| 				// TODO: validate other media types too
 | 				// TODO: validate other media types too
 | ||||||
| 				res.AddWarnings(examplesMimeNotSupportedMsg(operationID, responseName)) | 				res.AddWarnings(examplesMimeNotSupportedMsg(operationID, responseName)) | ||||||
| @ -244,7 +213,7 @@ func (ex *exampleValidator) validateExampleValueSchemaAgainstSchema(path, in str | |||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 
 | 
 | ||||||
| 	if schema.Example != nil { | 	if schema.Example != nil { | ||||||
| 		res.MergeAsWarnings(NewSchemaValidator(schema, s.spec.Spec(), path+".example", s.KnownFormats).Validate(schema.Example)) | 		res.MergeAsWarnings(NewSchemaValidator(schema, s.spec.Spec(), path+".example", s.KnownFormats, SwaggerSchema(true)).Validate(schema.Example)) | ||||||
| 	} | 	} | ||||||
| 	if schema.Items != nil { | 	if schema.Items != nil { | ||||||
| 		if schema.Items.Schema != nil { | 		if schema.Items.Schema != nil { | ||||||
| @ -281,6 +250,8 @@ func (ex *exampleValidator) validateExampleValueSchemaAgainstSchema(path, in str | |||||||
| 	return res | 	return res | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // TODO: Temporary duplicated code. Need to refactor with examples
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (ex *exampleValidator) validateExampleValueItemsAgainstSchema(path, in string, root interface{}, items *spec.Items) *Result { | func (ex *exampleValidator) validateExampleValueItemsAgainstSchema(path, in string, root interface{}, items *spec.Items) *Result { | ||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 	s := ex.SpecValidator | 	s := ex.SpecValidator | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								vendor/github.com/go-openapi/validate/formats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/go-openapi/validate/formats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -37,19 +37,15 @@ func (f *formatValidator) Applies(source interface{}, kind reflect.Kind) bool { | |||||||
| 		if source == nil { | 		if source == nil { | ||||||
| 			return false | 			return false | ||||||
| 		} | 		} | ||||||
| 		switch source.(type) { | 		switch source := source.(type) { | ||||||
| 		case *spec.Items: | 		case *spec.Items: | ||||||
| 			it := source.(*spec.Items) | 			return kind == reflect.String && f.KnownFormats.ContainsName(source.Format) | ||||||
| 			return kind == reflect.String && f.KnownFormats.ContainsName(it.Format) |  | ||||||
| 		case *spec.Parameter: | 		case *spec.Parameter: | ||||||
| 			par := source.(*spec.Parameter) | 			return kind == reflect.String && f.KnownFormats.ContainsName(source.Format) | ||||||
| 			return kind == reflect.String && f.KnownFormats.ContainsName(par.Format) |  | ||||||
| 		case *spec.Schema: | 		case *spec.Schema: | ||||||
| 			sch := source.(*spec.Schema) | 			return kind == reflect.String && f.KnownFormats.ContainsName(source.Format) | ||||||
| 			return kind == reflect.String && f.KnownFormats.ContainsName(sch.Format) |  | ||||||
| 		case *spec.Header: | 		case *spec.Header: | ||||||
| 			hdr := source.(*spec.Header) | 			return kind == reflect.String && f.KnownFormats.ContainsName(source.Format) | ||||||
| 			return kind == reflect.String && f.KnownFormats.ContainsName(hdr.Format) |  | ||||||
| 		} | 		} | ||||||
| 		return false | 		return false | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										26
									
								
								vendor/github.com/go-openapi/validate/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/go-openapi/validate/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,17 +1,21 @@ | |||||||
| module github.com/go-openapi/validate | module github.com/go-openapi/validate | ||||||
| 
 | 
 | ||||||
|  | go 1.14 | ||||||
|  | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/go-openapi/analysis v0.19.4 | 	github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect | ||||||
| 	github.com/go-openapi/errors v0.19.2 | 	github.com/go-openapi/analysis v0.19.10 | ||||||
|  | 	github.com/go-openapi/errors v0.19.6 | ||||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | 	github.com/go-openapi/jsonpointer v0.19.3 | ||||||
| 	github.com/go-openapi/loads v0.19.2 | 	github.com/go-openapi/loads v0.19.5 | ||||||
| 	github.com/go-openapi/runtime v0.19.4 | 	github.com/go-openapi/runtime v0.19.15 | ||||||
| 	github.com/go-openapi/spec v0.19.3 | 	github.com/go-openapi/spec v0.19.8 | ||||||
| 	github.com/go-openapi/strfmt v0.19.2 | 	github.com/go-openapi/strfmt v0.19.5 | ||||||
| 	github.com/go-openapi/swag v0.19.5 | 	github.com/go-openapi/swag v0.19.9 | ||||||
| 	github.com/stretchr/testify v1.4.0 | 	github.com/mitchellh/mapstructure v1.3.2 // indirect | ||||||
| 	go.mongodb.org/mongo-driver v1.1.1 // indirect | 	github.com/stretchr/testify v1.6.1 | ||||||
| 	gopkg.in/yaml.v2 v2.2.2 | 	go.mongodb.org/mongo-driver v1.3.4 // indirect | ||||||
|  | 	golang.org/x/net v0.0.0-20200602114024-627f9648deb9 // indirect | ||||||
|  | 	gopkg.in/yaml.v2 v2.3.0 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| go 1.13 |  | ||||||
|  | |||||||
							
								
								
									
										144
									
								
								vendor/github.com/go-openapi/validate/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										144
									
								
								vendor/github.com/go-openapi/validate/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | |||||||
|  | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| 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= | ||||||
| @ -6,130 +7,233 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko | |||||||
| 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/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/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.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= | ||||||
| github.com/docker/go-units v0.4.0/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 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= |  | ||||||
| github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/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.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.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= | ||||||
| github.com/go-openapi/analysis v0.19.2 h1:ophLETFestFZHk3ji7niPEL4d466QjW+0Tdg5VyDq7E= |  | ||||||
| github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||||
| github.com/go-openapi/analysis v0.19.4 h1:1TjOzrWkj+9BrjnM1yPAICbaoC0FyfD49oVkTBrSSa0= |  | ||||||
| github.com/go-openapi/analysis v0.19.4/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 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= | ||||||
|  | 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/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.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/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.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys= | ||||||
|  | github.com/go-openapi/errors v0.19.6/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.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/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/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 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= |  | ||||||
| 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/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||||
| 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 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 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFRcI= |  | ||||||
| github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | 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 h1:jZVYWawIQiA1NBnHla28ktg6hrcfTHsCE+3QLVRBIls= | ||||||
|  | github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||||
| 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 h1:sU6pp4dSV2sGlNKKyHxZzi1m1kG4WnYtWcJ+HYbygjE= |  | ||||||
| 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 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI= | github.com/go-openapi/runtime v0.19.4 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI= | ||||||
| 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 h1:2GIefxs9Rx1vCDNghRtypRq+ig8KSLrjHbAYI/gCLCM= | ||||||
|  | github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= | ||||||
| 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 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE= |  | ||||||
| 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= | ||||||
| github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | ||||||
| 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/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/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||||
| 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 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk= |  | ||||||
| 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= | ||||||
| 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/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | ||||||
|  | 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/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 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/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/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-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/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
|  | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
|  | github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= | ||||||
|  | github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= | ||||||
|  | github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= | ||||||
|  | github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= | ||||||
|  | github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= | ||||||
|  | github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= | ||||||
|  | github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= | ||||||
|  | github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= | ||||||
|  | github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= | ||||||
|  | github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= | ||||||
|  | github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= | ||||||
|  | github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= | ||||||
|  | github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= | ||||||
|  | github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= | ||||||
|  | github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= | ||||||
|  | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
|  | 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/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/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||||
|  | 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/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||||
|  | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/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/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-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/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/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/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
|  | 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/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/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/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
|  | github.com/pkg/errors v0.8.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.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
|  | 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.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | ||||||
|  | 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/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/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | ||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | 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= | ||||||
| go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= | 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= | ||||||
| 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 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= |  | ||||||
| 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.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= | ||||||
|  | go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
|  | 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-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-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-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| 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-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-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/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/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-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-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-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-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-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/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/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-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-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-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/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||||
| 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/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/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.2.4/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.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= | ||||||
|  | |||||||
							
								
								
									
										75
									
								
								vendor/github.com/go-openapi/validate/helpers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								vendor/github.com/go-openapi/validate/helpers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -26,8 +26,67 @@ import ( | |||||||
| 	"github.com/go-openapi/spec" | 	"github.com/go-openapi/spec" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const swaggerBody = "body" | const ( | ||||||
| const objectType = "object" | 	swaggerBody     = "body" | ||||||
|  | 	swaggerExample  = "example" | ||||||
|  | 	swaggerExamples = "examples" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	objectType  = "object" | ||||||
|  | 	arrayType   = "array" | ||||||
|  | 	stringType  = "string" | ||||||
|  | 	integerType = "integer" | ||||||
|  | 	numberType  = "number" | ||||||
|  | 	booleanType = "boolean" | ||||||
|  | 	fileType    = "file" | ||||||
|  | 	nullType    = "null" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	jsonProperties = "properties" | ||||||
|  | 	jsonItems      = "items" | ||||||
|  | 	jsonType       = "type" | ||||||
|  | 	//jsonSchema     = "schema"
 | ||||||
|  | 	jsonDefault = "default" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	stringFormatDate     = "date" | ||||||
|  | 	stringFormatDateTime = "date-time" | ||||||
|  | 	stringFormatPassword = "password" | ||||||
|  | 	stringFormatByte     = "byte" | ||||||
|  | 	//stringFormatBinary       = "binary"
 | ||||||
|  | 	stringFormatCreditCard   = "creditcard" | ||||||
|  | 	stringFormatDuration     = "duration" | ||||||
|  | 	stringFormatEmail        = "email" | ||||||
|  | 	stringFormatHexColor     = "hexcolor" | ||||||
|  | 	stringFormatHostname     = "hostname" | ||||||
|  | 	stringFormatIPv4         = "ipv4" | ||||||
|  | 	stringFormatIPv6         = "ipv6" | ||||||
|  | 	stringFormatISBN         = "isbn" | ||||||
|  | 	stringFormatISBN10       = "isbn10" | ||||||
|  | 	stringFormatISBN13       = "isbn13" | ||||||
|  | 	stringFormatMAC          = "mac" | ||||||
|  | 	stringFormatBSONObjectID = "bsonobjectid" | ||||||
|  | 	stringFormatRGBColor     = "rgbcolor" | ||||||
|  | 	stringFormatSSN          = "ssn" | ||||||
|  | 	stringFormatURI          = "uri" | ||||||
|  | 	stringFormatUUID         = "uuid" | ||||||
|  | 	stringFormatUUID3        = "uuid3" | ||||||
|  | 	stringFormatUUID4        = "uuid4" | ||||||
|  | 	stringFormatUUID5        = "uuid5" | ||||||
|  | 
 | ||||||
|  | 	integerFormatInt32  = "int32" | ||||||
|  | 	integerFormatInt64  = "int64" | ||||||
|  | 	integerFormatUInt32 = "uint32" | ||||||
|  | 	integerFormatUInt64 = "uint64" | ||||||
|  | 
 | ||||||
|  | 	numberFormatFloat32 = "float32" | ||||||
|  | 	numberFormatFloat64 = "float64" | ||||||
|  | 	numberFormatFloat   = "float" | ||||||
|  | 	numberFormatDouble  = "double" | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| // Helpers available at the package level
 | // Helpers available at the package level
 | ||||||
| var ( | var ( | ||||||
| @ -205,7 +264,8 @@ func (h *paramHelper) checkExpandedParam(pr *spec.Parameter, path, in, operation | |||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 	simpleZero := spec.SimpleSchema{} | 	simpleZero := spec.SimpleSchema{} | ||||||
| 	// Try to explain why... best guess
 | 	// Try to explain why... best guess
 | ||||||
| 	if pr.In == swaggerBody && (pr.SimpleSchema != simpleZero && pr.SimpleSchema.Type != objectType) { | 	switch { | ||||||
|  | 	case pr.In == swaggerBody && (pr.SimpleSchema != simpleZero && pr.SimpleSchema.Type != objectType): | ||||||
| 		if isRef { | 		if isRef { | ||||||
| 			// Most likely, a $ref with a sibling is an unwanted situation: in itself this is a warning...
 | 			// Most likely, a $ref with a sibling is an unwanted situation: in itself this is a warning...
 | ||||||
| 			// but we detect it because of the following error:
 | 			// but we detect it because of the following error:
 | ||||||
| @ -213,13 +273,12 @@ func (h *paramHelper) checkExpandedParam(pr *spec.Parameter, path, in, operation | |||||||
| 			res.AddWarnings(refShouldNotHaveSiblingsMsg(path, operation)) | 			res.AddWarnings(refShouldNotHaveSiblingsMsg(path, operation)) | ||||||
| 		} | 		} | ||||||
| 		res.AddErrors(invalidParameterDefinitionMsg(path, in, operation)) | 		res.AddErrors(invalidParameterDefinitionMsg(path, in, operation)) | ||||||
| 	} else if pr.In != swaggerBody && pr.Schema != nil { | 	case pr.In != swaggerBody && pr.Schema != nil: | ||||||
| 		if isRef { | 		if isRef { | ||||||
| 			res.AddWarnings(refShouldNotHaveSiblingsMsg(path, operation)) | 			res.AddWarnings(refShouldNotHaveSiblingsMsg(path, operation)) | ||||||
| 		} | 		} | ||||||
| 		res.AddErrors(invalidParameterDefinitionAsSchemaMsg(path, in, operation)) | 		res.AddErrors(invalidParameterDefinitionAsSchemaMsg(path, in, operation)) | ||||||
| 	} else if (pr.In == swaggerBody && pr.Schema == nil) || | 	case (pr.In == swaggerBody && pr.Schema == nil) || (pr.In != swaggerBody && pr.SimpleSchema == simpleZero): | ||||||
| 		(pr.In != swaggerBody && pr.SimpleSchema == simpleZero) { // Safeguard
 |  | ||||||
| 		// Other unexpected mishaps
 | 		// Other unexpected mishaps
 | ||||||
| 		res.AddErrors(invalidParameterDefinitionMsg(path, in, operation)) | 		res.AddErrors(invalidParameterDefinitionMsg(path, in, operation)) | ||||||
| 	} | 	} | ||||||
| @ -254,8 +313,8 @@ func (r *responseHelper) responseMsgVariants( | |||||||
| 	responseType string, | 	responseType string, | ||||||
| 	responseCode int) (responseName, responseCodeAsStr string) { | 	responseCode int) (responseName, responseCodeAsStr string) { | ||||||
| 	// Path variants for messages
 | 	// Path variants for messages
 | ||||||
| 	if responseType == "default" { | 	if responseType == jsonDefault { | ||||||
| 		responseCodeAsStr = "default" | 		responseCodeAsStr = jsonDefault | ||||||
| 		responseName = "default response" | 		responseName = "default response" | ||||||
| 	} else { | 	} else { | ||||||
| 		responseCodeAsStr = strconv.Itoa(responseCode) | 		responseCodeAsStr = strconv.Itoa(responseCode) | ||||||
|  | |||||||
							
								
								
									
										71
									
								
								vendor/github.com/go-openapi/validate/object_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								vendor/github.com/go-openapi/validate/object_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -51,40 +51,54 @@ func (o *objectValidator) Applies(source interface{}, kind reflect.Kind) bool { | |||||||
| 	return r | 	return r | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (o *objectValidator) isPropertyName() bool { | func (o *objectValidator) isProperties() bool { | ||||||
| 	p := strings.Split(o.Path, ".") | 	p := strings.Split(o.Path, ".") | ||||||
| 	return p[len(p)-1] == "properties" && p[len(p)-2] != "properties" | 	return len(p) > 1 && p[len(p)-1] == jsonProperties && p[len(p)-2] != jsonProperties | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (o *objectValidator) isDefault() bool { | ||||||
|  | 	p := strings.Split(o.Path, ".") | ||||||
|  | 	return len(p) > 1 && p[len(p)-1] == jsonDefault && p[len(p)-2] != jsonDefault | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (o *objectValidator) isExample() bool { | ||||||
|  | 	p := strings.Split(o.Path, ".") | ||||||
|  | 	return len(p) > 1 && (p[len(p)-1] == swaggerExample || p[len(p)-1] == swaggerExamples) && p[len(p)-2] != swaggerExample | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (o *objectValidator) checkArrayMustHaveItems(res *Result, val map[string]interface{}) { | func (o *objectValidator) checkArrayMustHaveItems(res *Result, val map[string]interface{}) { | ||||||
| 	if t, typeFound := val["type"]; typeFound { | 	// for swagger 2.0 schemas, there is an additional constraint to have array items defined explicitly.
 | ||||||
| 		if tpe, ok := t.(string); ok && tpe == "array" { | 	// with pure jsonschema draft 4, one may have arrays with undefined items (i.e. any type).
 | ||||||
| 			if _, itemsKeyFound := val["items"]; !itemsKeyFound { | 	if t, typeFound := val[jsonType]; typeFound { | ||||||
| 				res.AddErrors(errors.Required("items", o.Path)) | 		if tpe, ok := t.(string); ok && tpe == arrayType { | ||||||
|  | 			if item, itemsKeyFound := val[jsonItems]; !itemsKeyFound { | ||||||
|  | 				res.AddErrors(errors.Required(jsonItems, o.Path, item)) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (o *objectValidator) checkItemsMustBeTypeArray(res *Result, val map[string]interface{}) { | func (o *objectValidator) checkItemsMustBeTypeArray(res *Result, val map[string]interface{}) { | ||||||
| 	if !o.isPropertyName() { | 	if !o.isProperties() && !o.isDefault() && !o.isExample() { | ||||||
| 		if _, itemsKeyFound := val["items"]; itemsKeyFound { | 		if _, itemsKeyFound := val[jsonItems]; itemsKeyFound { | ||||||
| 			t, typeFound := val["type"] | 			t, typeFound := val[jsonType] | ||||||
| 			if typeFound { | 			if typeFound { | ||||||
| 				if tpe, ok := t.(string); !ok || tpe != "array" { | 				if tpe, ok := t.(string); !ok || tpe != arrayType { | ||||||
| 					res.AddErrors(errors.InvalidType(o.Path, o.In, "array", nil)) | 					res.AddErrors(errors.InvalidType(o.Path, o.In, arrayType, nil)) | ||||||
| 				} | 				} | ||||||
| 			} else { | 			} else { | ||||||
| 				// there is no type
 | 				// there is no type
 | ||||||
| 				res.AddErrors(errors.Required("type", o.Path)) | 				res.AddErrors(errors.Required(jsonType, o.Path, t)) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (o *objectValidator) precheck(res *Result, val map[string]interface{}) { | func (o *objectValidator) precheck(res *Result, val map[string]interface{}) { | ||||||
| 	o.checkArrayMustHaveItems(res, val) | 	if o.Options.EnableArrayMustHaveItemsCheck { | ||||||
| 	if !o.Options.DisableObjectArrayTypeCheck { | 		o.checkArrayMustHaveItems(res, val) | ||||||
|  | 	} | ||||||
|  | 	if o.Options.EnableObjectArrayTypeCheck { | ||||||
| 		o.checkItemsMustBeTypeArray(res, val) | 		o.checkItemsMustBeTypeArray(res, val) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -134,21 +148,18 @@ func (o *objectValidator) Validate(data interface{}) *Result { | |||||||
| 				// NOTE: prefix your messages here by "IMPORTANT!" so there are not filtered
 | 				// NOTE: prefix your messages here by "IMPORTANT!" so there are not filtered
 | ||||||
| 				// by higher level callers (the IMPORTANT! tag will be eventually
 | 				// by higher level callers (the IMPORTANT! tag will be eventually
 | ||||||
| 				// removed).
 | 				// removed).
 | ||||||
| 				switch k { | 				if k == "headers" && val[k] != nil { | ||||||
| 				// $ref is forbidden in header
 | 					// $ref is forbidden in header
 | ||||||
| 				case "headers": | 					if headers, mapOk := val[k].(map[string]interface{}); mapOk { | ||||||
| 					if val[k] != nil { | 						for headerKey, headerBody := range headers { | ||||||
| 						if headers, mapOk := val[k].(map[string]interface{}); mapOk { | 							if headerBody != nil { | ||||||
| 							for headerKey, headerBody := range headers { | 								if headerSchema, mapOfMapOk := headerBody.(map[string]interface{}); mapOfMapOk { | ||||||
| 								if headerBody != nil { | 									if _, found := headerSchema["$ref"]; found { | ||||||
| 									if headerSchema, mapOfMapOk := headerBody.(map[string]interface{}); mapOfMapOk { | 										var msg string | ||||||
| 										if _, found := headerSchema["$ref"]; found { | 										if refString, stringOk := headerSchema["$ref"].(string); stringOk { | ||||||
| 											var msg string | 											msg = strings.Join([]string{", one may not use $ref=\":", refString, "\""}, "") | ||||||
| 											if refString, stringOk := headerSchema["$ref"].(string); stringOk { |  | ||||||
| 												msg = strings.Join([]string{", one may not use $ref=\":", refString, "\""}, "") |  | ||||||
| 											} |  | ||||||
| 											res.AddErrors(refNotAllowedInHeaderMsg(o.Path, headerKey, msg)) |  | ||||||
| 										} | 										} | ||||||
|  | 										res.AddErrors(refNotAllowedInHeaderMsg(o.Path, headerKey, msg)) | ||||||
| 									} | 									} | ||||||
| 								} | 								} | ||||||
| 							} | 							} | ||||||
| @ -216,8 +227,8 @@ func (o *objectValidator) Validate(data interface{}) *Result { | |||||||
| 	// Check required properties
 | 	// Check required properties
 | ||||||
| 	if len(o.Required) > 0 { | 	if len(o.Required) > 0 { | ||||||
| 		for _, k := range o.Required { | 		for _, k := range o.Required { | ||||||
| 			if _, ok := val[k]; !ok && !createdFromDefaults[k] { | 			if v, ok := val[k]; !ok && !createdFromDefaults[k] { | ||||||
| 				res.AddErrors(errors.Required(o.Path+"."+k, o.In)) | 				res.AddErrors(errors.Required(o.Path+"."+k, o.In, v)) | ||||||
| 				continue | 				continue | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								vendor/github.com/go-openapi/validate/result.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/go-openapi/validate/result.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -132,6 +132,7 @@ func (r *Result) RootObjectSchemata() []*spec.Schema { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // FieldSchemata returns the schemata which apply to fields in objects.
 | // FieldSchemata returns the schemata which apply to fields in objects.
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (r *Result) FieldSchemata() map[FieldKey][]*spec.Schema { | func (r *Result) FieldSchemata() map[FieldKey][]*spec.Schema { | ||||||
| 	if r.cachedFieldSchemta != nil { | 	if r.cachedFieldSchemta != nil { | ||||||
| 		return r.cachedFieldSchemta | 		return r.cachedFieldSchemta | ||||||
| @ -151,6 +152,7 @@ func (r *Result) FieldSchemata() map[FieldKey][]*spec.Schema { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ItemSchemata returns the schemata which apply to items in slices.
 | // ItemSchemata returns the schemata which apply to items in slices.
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (r *Result) ItemSchemata() map[ItemKey][]*spec.Schema { | func (r *Result) ItemSchemata() map[ItemKey][]*spec.Schema { | ||||||
| 	if r.cachedItemSchemata != nil { | 	if r.cachedItemSchemata != nil { | ||||||
| 		return r.cachedItemSchemata | 		return r.cachedItemSchemata | ||||||
| @ -175,6 +177,7 @@ func (r *Result) resetCaches() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // mergeForField merges other into r, assigning other's root schemata to the given Object and field name.
 | // mergeForField merges other into r, assigning other's root schemata to the given Object and field name.
 | ||||||
|  | // nolint: unparam
 | ||||||
| func (r *Result) mergeForField(obj map[string]interface{}, field string, other *Result) *Result { | func (r *Result) mergeForField(obj map[string]interface{}, field string, other *Result) *Result { | ||||||
| 	if other == nil { | 	if other == nil { | ||||||
| 		return r | 		return r | ||||||
| @ -196,6 +199,7 @@ func (r *Result) mergeForField(obj map[string]interface{}, field string, other * | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // mergeForSlice merges other into r, assigning other's root schemata to the given slice and index.
 | // mergeForSlice merges other into r, assigning other's root schemata to the given slice and index.
 | ||||||
|  | // nolint: unparam
 | ||||||
| func (r *Result) mergeForSlice(slice reflect.Value, i int, other *Result) *Result { | func (r *Result) mergeForSlice(slice reflect.Value, i int, other *Result) *Result { | ||||||
| 	if other == nil { | 	if other == nil { | ||||||
| 		return r | 		return r | ||||||
| @ -231,6 +235,7 @@ func (r *Result) addPropertySchemata(obj map[string]interface{}, fld string, sch | |||||||
| 	r.fieldSchemata = append(r.fieldSchemata, fieldSchemata{obj: obj, field: fld, schemata: schemata{one: schema}}) | 	r.fieldSchemata = append(r.fieldSchemata, fieldSchemata{obj: obj, field: fld, schemata: schemata{one: schema}}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /* | ||||||
| // addSliceSchemata adds the given schemata for the slice and index.
 | // addSliceSchemata adds the given schemata for the slice and index.
 | ||||||
| // The slice schemata might be reused. I.e. do not modify it after being added to a result.
 | // The slice schemata might be reused. I.e. do not modify it after being added to a result.
 | ||||||
| func (r *Result) addSliceSchemata(slice reflect.Value, i int, schema *spec.Schema) { | func (r *Result) addSliceSchemata(slice reflect.Value, i int, schema *spec.Schema) { | ||||||
| @ -239,6 +244,7 @@ func (r *Result) addSliceSchemata(slice reflect.Value, i int, schema *spec.Schem | |||||||
| 	} | 	} | ||||||
| 	r.itemSchemata = append(r.itemSchemata, itemSchemata{slice: slice, index: i, schemata: schemata{one: schema}}) | 	r.itemSchemata = append(r.itemSchemata, itemSchemata{slice: slice, index: i, schemata: schemata{one: schema}}) | ||||||
| } | } | ||||||
|  | */ | ||||||
| 
 | 
 | ||||||
| // mergeWithoutRootSchemata merges other into r, ignoring the rootObject schemata.
 | // mergeWithoutRootSchemata merges other into r, ignoring the rootObject schemata.
 | ||||||
| func (r *Result) mergeWithoutRootSchemata(other *Result) { | func (r *Result) mergeWithoutRootSchemata(other *Result) { | ||||||
| @ -251,9 +257,7 @@ func (r *Result) mergeWithoutRootSchemata(other *Result) { | |||||||
| 		if r.fieldSchemata == nil { | 		if r.fieldSchemata == nil { | ||||||
| 			r.fieldSchemata = other.fieldSchemata | 			r.fieldSchemata = other.fieldSchemata | ||||||
| 		} else { | 		} else { | ||||||
| 			for _, x := range other.fieldSchemata { | 			r.fieldSchemata = append(r.fieldSchemata, other.fieldSchemata...) | ||||||
| 				r.fieldSchemata = append(r.fieldSchemata, x) |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -261,9 +265,7 @@ func (r *Result) mergeWithoutRootSchemata(other *Result) { | |||||||
| 		if r.itemSchemata == nil { | 		if r.itemSchemata == nil { | ||||||
| 			r.itemSchemata = other.itemSchemata | 			r.itemSchemata = other.itemSchemata | ||||||
| 		} else { | 		} else { | ||||||
| 			for _, x := range other.itemSchemata { | 			r.itemSchemata = append(r.itemSchemata, other.itemSchemata...) | ||||||
| 				r.itemSchemata = append(r.itemSchemata, x) |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								vendor/github.com/go-openapi/validate/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/go-openapi/validate/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -27,8 +27,8 @@ import ( | |||||||
| var ( | var ( | ||||||
| 	specSchemaType    = reflect.TypeOf(&spec.Schema{}) | 	specSchemaType    = reflect.TypeOf(&spec.Schema{}) | ||||||
| 	specParameterType = reflect.TypeOf(&spec.Parameter{}) | 	specParameterType = reflect.TypeOf(&spec.Parameter{}) | ||||||
| 	specItemsType     = reflect.TypeOf(&spec.Items{}) |  | ||||||
| 	specHeaderType    = reflect.TypeOf(&spec.Header{}) | 	specHeaderType    = reflect.TypeOf(&spec.Header{}) | ||||||
|  | 	//specItemsType     = reflect.TypeOf(&spec.Items{})
 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // SchemaValidator validates data against a JSON schema
 | // SchemaValidator validates data against a JSON schema
 | ||||||
| @ -39,14 +39,14 @@ type SchemaValidator struct { | |||||||
| 	validators   []valueValidator | 	validators   []valueValidator | ||||||
| 	Root         interface{} | 	Root         interface{} | ||||||
| 	KnownFormats strfmt.Registry | 	KnownFormats strfmt.Registry | ||||||
| 	Options      *SchemaValidatorOptions | 	Options      SchemaValidatorOptions | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // AgainstSchema validates the specified data against the provided schema, using a registry of supported formats.
 | // AgainstSchema validates the specified data against the provided schema, using a registry of supported formats.
 | ||||||
| //
 | //
 | ||||||
| // When no pre-parsed *spec.Schema structure is provided, it uses a JSON schema as default. See example.
 | // When no pre-parsed *spec.Schema structure is provided, it uses a JSON schema as default. See example.
 | ||||||
| func AgainstSchema(schema *spec.Schema, data interface{}, formats strfmt.Registry) error { | func AgainstSchema(schema *spec.Schema, data interface{}, formats strfmt.Registry, options ...Option) error { | ||||||
| 	res := NewSchemaValidator(schema, nil, "", formats).Validate(data) | 	res := NewSchemaValidator(schema, nil, "", formats, options...).Validate(data) | ||||||
| 	if res.HasErrors() { | 	if res.HasErrors() { | ||||||
| 		return errors.CompositeValidationError(res.Errors...) | 		return errors.CompositeValidationError(res.Errors...) | ||||||
| 	} | 	} | ||||||
| @ -72,9 +72,15 @@ func NewSchemaValidator(schema *spec.Schema, rootSchema interface{}, root string | |||||||
| 			panic(msg) | 			panic(msg) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	s := SchemaValidator{Path: root, in: "body", Schema: schema, Root: rootSchema, KnownFormats: formats, Options: &SchemaValidatorOptions{}} | 	s := SchemaValidator{ | ||||||
|  | 		Path:         root, | ||||||
|  | 		in:           "body", | ||||||
|  | 		Schema:       schema, | ||||||
|  | 		Root:         rootSchema, | ||||||
|  | 		KnownFormats: formats, | ||||||
|  | 		Options:      SchemaValidatorOptions{}} | ||||||
| 	for _, o := range options { | 	for _, o := range options { | ||||||
| 		o(s.Options) | 		o(&s.Options) | ||||||
| 	} | 	} | ||||||
| 	s.validators = []valueValidator{ | 	s.validators = []valueValidator{ | ||||||
| 		s.typeValidator(), | 		s.typeValidator(), | ||||||
| @ -134,9 +140,9 @@ func (s *SchemaValidator) Validate(data interface{}) *Result { | |||||||
| 
 | 
 | ||||||
| 	// TODO: this part should be handed over to type validator
 | 	// TODO: this part should be handed over to type validator
 | ||||||
| 	// Handle special case of json.Number data (number marshalled as string)
 | 	// Handle special case of json.Number data (number marshalled as string)
 | ||||||
| 	isnumber := s.Schema.Type.Contains("number") || s.Schema.Type.Contains("integer") | 	isnumber := s.Schema.Type.Contains(numberType) || s.Schema.Type.Contains(integerType) | ||||||
| 	if num, ok := data.(json.Number); ok && isnumber { | 	if num, ok := data.(json.Number); ok && isnumber { | ||||||
| 		if s.Schema.Type.Contains("integer") { // avoid lossy conversion
 | 		if s.Schema.Type.Contains(integerType) { // avoid lossy conversion
 | ||||||
| 			in, erri := num.Int64() | 			in, erri := num.Int64() | ||||||
| 			if erri != nil { | 			if erri != nil { | ||||||
| 				result.AddErrors(invalidTypeConversionMsg(s.Path, erri)) | 				result.AddErrors(invalidTypeConversionMsg(s.Path, erri)) | ||||||
| @ -196,6 +202,7 @@ func (s *SchemaValidator) sliceValidator() valueValidator { | |||||||
| 		Items:           s.Schema.Items, | 		Items:           s.Schema.Items, | ||||||
| 		Root:            s.Root, | 		Root:            s.Root, | ||||||
| 		KnownFormats:    s.KnownFormats, | 		KnownFormats:    s.KnownFormats, | ||||||
|  | 		Options:         s.Options, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -248,6 +255,6 @@ func (s *SchemaValidator) objectValidator() valueValidator { | |||||||
| 		PatternProperties:    s.Schema.PatternProperties, | 		PatternProperties:    s.Schema.PatternProperties, | ||||||
| 		Root:                 s.Root, | 		Root:                 s.Root, | ||||||
| 		KnownFormats:         s.KnownFormats, | 		KnownFormats:         s.KnownFormats, | ||||||
| 		Options:              *s.Options, | 		Options:              s.Options, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										33
									
								
								vendor/github.com/go-openapi/validate/schema_option.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/go-openapi/validate/schema_option.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -14,20 +14,41 @@ | |||||||
| 
 | 
 | ||||||
| package validate | package validate | ||||||
| 
 | 
 | ||||||
|  | // SchemaValidatorOptions defines optional rules for schema validation
 | ||||||
| type SchemaValidatorOptions struct { | type SchemaValidatorOptions struct { | ||||||
| 	DisableObjectArrayTypeCheck bool | 	EnableObjectArrayTypeCheck    bool | ||||||
|  | 	EnableArrayMustHaveItemsCheck bool | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Option sets optional rules for schema validation
 | ||||||
| type Option func(*SchemaValidatorOptions) | type Option func(*SchemaValidatorOptions) | ||||||
| 
 | 
 | ||||||
| func DisableObjectArrayTypeCheck(disable bool) Option { | // EnableObjectArrayTypeCheck activates the swagger rule: an items must be in type: array
 | ||||||
|  | func EnableObjectArrayTypeCheck(enable bool) Option { | ||||||
| 	return func(svo *SchemaValidatorOptions) { | 	return func(svo *SchemaValidatorOptions) { | ||||||
| 		svo.DisableObjectArrayTypeCheck = disable | 		svo.EnableObjectArrayTypeCheck = enable | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (svo SchemaValidatorOptions) Options() []Option { | // EnableArrayMustHaveItemsCheck activates the swagger rule: an array must have items defined
 | ||||||
| 	return []Option{ | func EnableArrayMustHaveItemsCheck(enable bool) Option { | ||||||
| 		DisableObjectArrayTypeCheck(svo.DisableObjectArrayTypeCheck), | 	return func(svo *SchemaValidatorOptions) { | ||||||
|  | 		svo.EnableArrayMustHaveItemsCheck = enable | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SwaggerSchema activates swagger schema validation rules
 | ||||||
|  | func SwaggerSchema(enable bool) Option { | ||||||
|  | 	return func(svo *SchemaValidatorOptions) { | ||||||
|  | 		svo.EnableObjectArrayTypeCheck = enable | ||||||
|  | 		svo.EnableArrayMustHaveItemsCheck = enable | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Options returns current options
 | ||||||
|  | func (svo SchemaValidatorOptions) Options() []Option { | ||||||
|  | 	return []Option{ | ||||||
|  | 		EnableObjectArrayTypeCheck(svo.EnableObjectArrayTypeCheck), | ||||||
|  | 		EnableArrayMustHaveItemsCheck(svo.EnableArrayMustHaveItemsCheck), | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								vendor/github.com/go-openapi/validate/slice_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-openapi/validate/slice_validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -32,6 +32,7 @@ type schemaSliceValidator struct { | |||||||
| 	Items           *spec.SchemaOrArray | 	Items           *spec.SchemaOrArray | ||||||
| 	Root            interface{} | 	Root            interface{} | ||||||
| 	KnownFormats    strfmt.Registry | 	KnownFormats    strfmt.Registry | ||||||
|  | 	Options         SchemaValidatorOptions | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *schemaSliceValidator) SetPath(path string) { | func (s *schemaSliceValidator) SetPath(path string) { | ||||||
| @ -53,7 +54,7 @@ func (s *schemaSliceValidator) Validate(data interface{}) *Result { | |||||||
| 	size := val.Len() | 	size := val.Len() | ||||||
| 
 | 
 | ||||||
| 	if s.Items != nil && s.Items.Schema != nil { | 	if s.Items != nil && s.Items.Schema != nil { | ||||||
| 		validator := NewSchemaValidator(s.Items.Schema, s.Root, s.Path, s.KnownFormats) | 		validator := NewSchemaValidator(s.Items.Schema, s.Root, s.Path, s.KnownFormats, s.Options.Options()...) | ||||||
| 		for i := 0; i < size; i++ { | 		for i := 0; i < size; i++ { | ||||||
| 			validator.SetPath(fmt.Sprintf("%s.%d", s.Path, i)) | 			validator.SetPath(fmt.Sprintf("%s.%d", s.Path, i)) | ||||||
| 			value := val.Index(i) | 			value := val.Index(i) | ||||||
| @ -65,11 +66,11 @@ func (s *schemaSliceValidator) Validate(data interface{}) *Result { | |||||||
| 	if s.Items != nil && len(s.Items.Schemas) > 0 { | 	if s.Items != nil && len(s.Items.Schemas) > 0 { | ||||||
| 		itemsSize = len(s.Items.Schemas) | 		itemsSize = len(s.Items.Schemas) | ||||||
| 		for i := 0; i < itemsSize; i++ { | 		for i := 0; i < itemsSize; i++ { | ||||||
| 			validator := NewSchemaValidator(&s.Items.Schemas[i], s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats) | 			validator := NewSchemaValidator(&s.Items.Schemas[i], s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats, s.Options.Options()...) | ||||||
| 			if val.Len() <= i { | 			if val.Len() <= i { | ||||||
| 				break | 				break | ||||||
| 			} | 			} | ||||||
| 			result.mergeForSlice(val, int(i), validator.Validate(val.Index(i).Interface())) | 			result.mergeForSlice(val, i, validator.Validate(val.Index(i).Interface())) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if s.AdditionalItems != nil && itemsSize < size { | 	if s.AdditionalItems != nil && itemsSize < size { | ||||||
| @ -78,8 +79,8 @@ func (s *schemaSliceValidator) Validate(data interface{}) *Result { | |||||||
| 		} | 		} | ||||||
| 		if s.AdditionalItems.Schema != nil { | 		if s.AdditionalItems.Schema != nil { | ||||||
| 			for i := itemsSize; i < size-itemsSize+1; i++ { | 			for i := itemsSize; i < size-itemsSize+1; i++ { | ||||||
| 				validator := NewSchemaValidator(s.AdditionalItems.Schema, s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats) | 				validator := NewSchemaValidator(s.AdditionalItems.Schema, s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats, s.Options.Options()...) | ||||||
| 				result.mergeForSlice(val, int(i), validator.Validate(val.Index(int(i)).Interface())) | 				result.mergeForSlice(val, i, validator.Validate(val.Index(i).Interface())) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										252
									
								
								vendor/github.com/go-openapi/validate/spec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										252
									
								
								vendor/github.com/go-openapi/validate/spec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -71,25 +71,22 @@ func NewSpecValidator(schema *spec.Schema, formats strfmt.Registry) *SpecValidat | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Validate validates the swagger spec
 | // Validate validates the swagger spec
 | ||||||
| func (s *SpecValidator) Validate(data interface{}) (errs *Result, warnings *Result) { | func (s *SpecValidator) Validate(data interface{}) (*Result, *Result) { | ||||||
| 	var sd *loads.Document | 	var sd *loads.Document | ||||||
| 	errs = new(Result) | 	errs, warnings := new(Result), new(Result) | ||||||
| 
 | 
 | ||||||
| 	switch v := data.(type) { | 	if v, ok := data.(*loads.Document); ok { | ||||||
| 	case *loads.Document: |  | ||||||
| 		sd = v | 		sd = v | ||||||
| 	} | 	} | ||||||
| 	if sd == nil { | 	if sd == nil { | ||||||
| 		errs.AddErrors(invalidDocumentMsg()) | 		errs.AddErrors(invalidDocumentMsg()) | ||||||
| 		return | 		return errs, warnings // no point in continuing
 | ||||||
| 	} | 	} | ||||||
| 	s.spec = sd | 	s.spec = sd | ||||||
| 	s.analyzer = analysis.New(sd.Spec()) | 	s.analyzer = analysis.New(sd.Spec()) | ||||||
| 
 | 
 | ||||||
| 	warnings = new(Result) |  | ||||||
| 
 |  | ||||||
| 	// Swagger schema validator
 | 	// Swagger schema validator
 | ||||||
| 	schv := NewSchemaValidator(s.schema, nil, "", s.KnownFormats) | 	schv := NewSchemaValidator(s.schema, nil, "", s.KnownFormats, SwaggerSchema(true)) | ||||||
| 	var obj interface{} | 	var obj interface{} | ||||||
| 
 | 
 | ||||||
| 	// Raw spec unmarshalling errors
 | 	// Raw spec unmarshalling errors
 | ||||||
| @ -109,13 +106,13 @@ func (s *SpecValidator) Validate(data interface{}) (errs *Result, warnings *Resu | |||||||
| 	errs.Merge(schv.Validate(obj)) // error -
 | 	errs.Merge(schv.Validate(obj)) // error -
 | ||||||
| 	// There may be a point in continuing to try and determine more accurate errors
 | 	// There may be a point in continuing to try and determine more accurate errors
 | ||||||
| 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | ||||||
| 		return // no point in continuing
 | 		return errs, warnings // no point in continuing
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	errs.Merge(s.validateReferencesValid()) // error -
 | 	errs.Merge(s.validateReferencesValid()) // error -
 | ||||||
| 	// There may be a point in continuing to try and determine more accurate errors
 | 	// There may be a point in continuing to try and determine more accurate errors
 | ||||||
| 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | ||||||
| 		return // no point in continuing
 | 		return errs, warnings // no point in continuing
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	errs.Merge(s.validateDuplicateOperationIDs()) | 	errs.Merge(s.validateDuplicateOperationIDs()) | ||||||
| @ -129,7 +126,7 @@ func (s *SpecValidator) Validate(data interface{}) (errs *Result, warnings *Resu | |||||||
| 
 | 
 | ||||||
| 	// There may be a point in continuing to try and determine more accurate errors
 | 	// There may be a point in continuing to try and determine more accurate errors
 | ||||||
| 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | 	if !s.Options.ContinueOnErrors && errs.HasErrors() { | ||||||
| 		return // no point in continuing
 | 		return errs, warnings // no point in continuing
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Values provided as default MUST validate their schema
 | 	// Values provided as default MUST validate their schema
 | ||||||
| @ -147,7 +144,7 @@ func (s *SpecValidator) Validate(data interface{}) (errs *Result, warnings *Resu | |||||||
| 	//errs.Merge(s.validateRefNoSibling()) // warning only
 | 	//errs.Merge(s.validateRefNoSibling()) // warning only
 | ||||||
| 	errs.Merge(s.validateReferenced()) // warning only
 | 	errs.Merge(s.validateReferenced()) // warning only
 | ||||||
| 
 | 
 | ||||||
| 	return | 	return errs, warnings | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *SpecValidator) validateNonEmptyPathParamNames() *Result { | func (s *SpecValidator) validateNonEmptyPathParamNames() *Result { | ||||||
| @ -172,9 +169,17 @@ func (s *SpecValidator) validateNonEmptyPathParamNames() *Result { | |||||||
| 
 | 
 | ||||||
| func (s *SpecValidator) validateDuplicateOperationIDs() *Result { | func (s *SpecValidator) validateDuplicateOperationIDs() *Result { | ||||||
| 	// OperationID, if specified, must be unique across the board
 | 	// OperationID, if specified, must be unique across the board
 | ||||||
|  | 	var analyzer *analysis.Spec | ||||||
|  | 	if s.expanded != nil { | ||||||
|  | 		// $ref are valid: we can analyze operations on an expanded spec
 | ||||||
|  | 		analyzer = analysis.New(s.expanded.Spec()) | ||||||
|  | 	} else { | ||||||
|  | 		// fallback on possible incomplete picture because of previous errors
 | ||||||
|  | 		analyzer = s.analyzer | ||||||
|  | 	} | ||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 	known := make(map[string]int) | 	known := make(map[string]int) | ||||||
| 	for _, v := range s.analyzer.OperationIDs() { | 	for _, v := range analyzer.OperationIDs() { | ||||||
| 		if v != "" { | 		if v != "" { | ||||||
| 			known[v]++ | 			known[v]++ | ||||||
| 		} | 		} | ||||||
| @ -336,14 +341,14 @@ func (s *SpecValidator) validateItems() *Result { | |||||||
| 		for path, op := range pi { | 		for path, op := range pi { | ||||||
| 			for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | 			for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | ||||||
| 
 | 
 | ||||||
| 				if param.TypeName() == "array" && param.ItemsTypeName() == "" { | 				if param.TypeName() == arrayType && param.ItemsTypeName() == "" { | ||||||
| 					res.AddErrors(arrayInParamRequiresItemsMsg(param.Name, op.ID)) | 					res.AddErrors(arrayInParamRequiresItemsMsg(param.Name, op.ID)) | ||||||
| 					continue | 					continue | ||||||
| 				} | 				} | ||||||
| 				if param.In != "body" { | 				if param.In != swaggerBody { | ||||||
| 					if param.Items != nil { | 					if param.Items != nil { | ||||||
| 						items := param.Items | 						items := param.Items | ||||||
| 						for items.TypeName() == "array" { | 						for items.TypeName() == arrayType { | ||||||
| 							if items.ItemsTypeName() == "" { | 							if items.ItemsTypeName() == "" { | ||||||
| 								res.AddErrors(arrayInParamRequiresItemsMsg(param.Name, op.ID)) | 								res.AddErrors(arrayInParamRequiresItemsMsg(param.Name, op.ID)) | ||||||
| 								break | 								break | ||||||
| @ -374,7 +379,7 @@ func (s *SpecValidator) validateItems() *Result { | |||||||
| 			for _, resp := range responses { | 			for _, resp := range responses { | ||||||
| 				// Response headers with array
 | 				// Response headers with array
 | ||||||
| 				for hn, hv := range resp.Headers { | 				for hn, hv := range resp.Headers { | ||||||
| 					if hv.TypeName() == "array" && hv.ItemsTypeName() == "" { | 					if hv.TypeName() == arrayType && hv.ItemsTypeName() == "" { | ||||||
| 						res.AddErrors(arrayInHeaderRequiresItemsMsg(hn, op.ID)) | 						res.AddErrors(arrayInHeaderRequiresItemsMsg(hn, op.ID)) | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| @ -390,7 +395,7 @@ func (s *SpecValidator) validateItems() *Result { | |||||||
| // Verifies constraints on array type
 | // Verifies constraints on array type
 | ||||||
| func (s *SpecValidator) validateSchemaItems(schema spec.Schema, prefix, opID string) *Result { | func (s *SpecValidator) validateSchemaItems(schema spec.Schema, prefix, opID string) *Result { | ||||||
| 	res := new(Result) | 	res := new(Result) | ||||||
| 	if !schema.Type.Contains("array") { | 	if !schema.Type.Contains(arrayType) { | ||||||
| 		return res | 		return res | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -451,6 +456,7 @@ func (s *SpecValidator) validateReferenced() *Result { | |||||||
| 	return &res | 	return &res | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (s *SpecValidator) validateReferencedParameters() *Result { | func (s *SpecValidator) validateReferencedParameters() *Result { | ||||||
| 	// Each referenceable definition should have references.
 | 	// Each referenceable definition should have references.
 | ||||||
| 	params := s.spec.Spec().Parameters | 	params := s.spec.Spec().Parameters | ||||||
| @ -463,9 +469,7 @@ func (s *SpecValidator) validateReferencedParameters() *Result { | |||||||
| 		expected["#/parameters/"+jsonpointer.Escape(k)] = struct{}{} | 		expected["#/parameters/"+jsonpointer.Escape(k)] = struct{}{} | ||||||
| 	} | 	} | ||||||
| 	for _, k := range s.analyzer.AllParameterReferences() { | 	for _, k := range s.analyzer.AllParameterReferences() { | ||||||
| 		if _, ok := expected[k]; ok { | 		delete(expected, k) | ||||||
| 			delete(expected, k) |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if len(expected) == 0 { | 	if len(expected) == 0 { | ||||||
| @ -478,6 +482,7 @@ func (s *SpecValidator) validateReferencedParameters() *Result { | |||||||
| 	return result | 	return result | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (s *SpecValidator) validateReferencedResponses() *Result { | func (s *SpecValidator) validateReferencedResponses() *Result { | ||||||
| 	// Each referenceable definition should have references.
 | 	// Each referenceable definition should have references.
 | ||||||
| 	responses := s.spec.Spec().Responses | 	responses := s.spec.Spec().Responses | ||||||
| @ -490,9 +495,7 @@ func (s *SpecValidator) validateReferencedResponses() *Result { | |||||||
| 		expected["#/responses/"+jsonpointer.Escape(k)] = struct{}{} | 		expected["#/responses/"+jsonpointer.Escape(k)] = struct{}{} | ||||||
| 	} | 	} | ||||||
| 	for _, k := range s.analyzer.AllResponseReferences() { | 	for _, k := range s.analyzer.AllResponseReferences() { | ||||||
| 		if _, ok := expected[k]; ok { | 		delete(expected, k) | ||||||
| 			delete(expected, k) |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if len(expected) == 0 { | 	if len(expected) == 0 { | ||||||
| @ -505,6 +508,7 @@ func (s *SpecValidator) validateReferencedResponses() *Result { | |||||||
| 	return result | 	return result | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // nolint: dupl
 | ||||||
| func (s *SpecValidator) validateReferencedDefinitions() *Result { | func (s *SpecValidator) validateReferencedDefinitions() *Result { | ||||||
| 	// Each referenceable definition must have references.
 | 	// Each referenceable definition must have references.
 | ||||||
| 	defs := s.spec.Spec().Definitions | 	defs := s.spec.Spec().Definitions | ||||||
| @ -517,9 +521,7 @@ func (s *SpecValidator) validateReferencedDefinitions() *Result { | |||||||
| 		expected["#/definitions/"+jsonpointer.Escape(k)] = struct{}{} | 		expected["#/definitions/"+jsonpointer.Escape(k)] = struct{}{} | ||||||
| 	} | 	} | ||||||
| 	for _, k := range s.analyzer.AllDefinitionReferences() { | 	for _, k := range s.analyzer.AllDefinitionReferences() { | ||||||
| 		if _, ok := expected[k]; ok { | 		delete(expected, k) | ||||||
| 			delete(expected, k) |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if len(expected) == 0 { | 	if len(expected) == 0 { | ||||||
| @ -624,98 +626,114 @@ func (s *SpecValidator) validateParameters() *Result { | |||||||
| 	rexGarbledPathSegment := mustCompileRegexp(`.*[{}\s]+.*`) | 	rexGarbledPathSegment := mustCompileRegexp(`.*[{}\s]+.*`) | ||||||
| 	for method, pi := range s.analyzer.Operations() { | 	for method, pi := range s.analyzer.Operations() { | ||||||
| 		methodPaths := make(map[string]map[string]string) | 		methodPaths := make(map[string]map[string]string) | ||||||
| 		if pi != nil { // Safeguard
 | 		for path, op := range pi { | ||||||
| 			for path, op := range pi { | 			pathToAdd := pathHelp.stripParametersInPath(path) | ||||||
| 				pathToAdd := pathHelp.stripParametersInPath(path) |  | ||||||
| 
 | 
 | ||||||
| 				// Warn on garbled path afer param stripping
 | 			// Warn on garbled path afer param stripping
 | ||||||
| 				if rexGarbledPathSegment.MatchString(pathToAdd) { | 			if rexGarbledPathSegment.MatchString(pathToAdd) { | ||||||
| 					res.AddWarnings(pathStrippedParamGarbledMsg(pathToAdd)) | 				res.AddWarnings(pathStrippedParamGarbledMsg(pathToAdd)) | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				// Check uniqueness of stripped paths
 |  | ||||||
| 				if _, found := methodPaths[method][pathToAdd]; found { |  | ||||||
| 
 |  | ||||||
| 					// Sort names for stable, testable output
 |  | ||||||
| 					if strings.Compare(path, methodPaths[method][pathToAdd]) < 0 { |  | ||||||
| 						res.AddErrors(pathOverlapMsg(path, methodPaths[method][pathToAdd])) |  | ||||||
| 					} else { |  | ||||||
| 						res.AddErrors(pathOverlapMsg(methodPaths[method][pathToAdd], path)) |  | ||||||
| 					} |  | ||||||
| 				} else { |  | ||||||
| 					if _, found := methodPaths[method]; !found { |  | ||||||
| 						methodPaths[method] = map[string]string{} |  | ||||||
| 					} |  | ||||||
| 					methodPaths[method][pathToAdd] = path //Original non stripped path
 |  | ||||||
| 
 |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				var bodyParams []string |  | ||||||
| 				var paramNames []string |  | ||||||
| 				var hasForm, hasBody bool |  | ||||||
| 
 |  | ||||||
| 				// Check parameters names uniqueness for operation
 |  | ||||||
| 				// TODO: should be done after param expansion
 |  | ||||||
| 				res.Merge(s.checkUniqueParams(path, method, op)) |  | ||||||
| 
 |  | ||||||
| 				for _, pr := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { |  | ||||||
| 					// Validate pattern regexp for parameters with a Pattern property
 |  | ||||||
| 					if _, err := compileRegexp(pr.Pattern); err != nil { |  | ||||||
| 						res.AddErrors(invalidPatternInParamMsg(op.ID, pr.Name, pr.Pattern)) |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					// There must be at most one parameter in body: list them all
 |  | ||||||
| 					if pr.In == "body" { |  | ||||||
| 						bodyParams = append(bodyParams, fmt.Sprintf("%q", pr.Name)) |  | ||||||
| 						hasBody = true |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					if pr.In == "path" { |  | ||||||
| 						paramNames = append(paramNames, pr.Name) |  | ||||||
| 						// Path declared in path must have the required: true property
 |  | ||||||
| 						if !pr.Required { |  | ||||||
| 							res.AddErrors(pathParamRequiredMsg(op.ID, pr.Name)) |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					if pr.In == "formData" { |  | ||||||
| 						hasForm = true |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				// In:formData and In:body are mutually exclusive
 |  | ||||||
| 				if hasBody && hasForm { |  | ||||||
| 					res.AddErrors(bothFormDataAndBodyMsg(op.ID)) |  | ||||||
| 				} |  | ||||||
| 				// There must be at most one body param
 |  | ||||||
| 				// Accurately report situations when more than 1 body param is declared (possibly unnamed)
 |  | ||||||
| 				if len(bodyParams) > 1 { |  | ||||||
| 					sort.Strings(bodyParams) |  | ||||||
| 					res.AddErrors(multipleBodyParamMsg(op.ID, bodyParams)) |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				// Check uniqueness of parameters in path
 |  | ||||||
| 				paramsInPath := pathHelp.extractPathParams(path) |  | ||||||
| 				for i, p := range paramsInPath { |  | ||||||
| 					for j, q := range paramsInPath { |  | ||||||
| 						if p == q && i > j { |  | ||||||
| 							res.AddErrors(pathParamNotUniqueMsg(path, p, q)) |  | ||||||
| 							break |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				// Warns about possible malformed params in path
 |  | ||||||
| 				rexGarbledParam := mustCompileRegexp(`{.*[{}\s]+.*}`) |  | ||||||
| 				for _, p := range paramsInPath { |  | ||||||
| 					if rexGarbledParam.MatchString(p) { |  | ||||||
| 						res.AddWarnings(pathParamGarbledMsg(path, p)) |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				// Match params from path vs params from params section
 |  | ||||||
| 				res.Merge(s.validatePathParamPresence(path, paramsInPath, paramNames)) |  | ||||||
| 			} | 			} | ||||||
|  | 
 | ||||||
|  | 			// Check uniqueness of stripped paths
 | ||||||
|  | 			if _, found := methodPaths[method][pathToAdd]; found { | ||||||
|  | 
 | ||||||
|  | 				// Sort names for stable, testable output
 | ||||||
|  | 				if strings.Compare(path, methodPaths[method][pathToAdd]) < 0 { | ||||||
|  | 					res.AddErrors(pathOverlapMsg(path, methodPaths[method][pathToAdd])) | ||||||
|  | 				} else { | ||||||
|  | 					res.AddErrors(pathOverlapMsg(methodPaths[method][pathToAdd], path)) | ||||||
|  | 				} | ||||||
|  | 			} else { | ||||||
|  | 				if _, found := methodPaths[method]; !found { | ||||||
|  | 					methodPaths[method] = map[string]string{} | ||||||
|  | 				} | ||||||
|  | 				methodPaths[method][pathToAdd] = path //Original non stripped path
 | ||||||
|  | 
 | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			var bodyParams []string | ||||||
|  | 			var paramNames []string | ||||||
|  | 			var hasForm, hasBody bool | ||||||
|  | 
 | ||||||
|  | 			// Check parameters names uniqueness for operation
 | ||||||
|  | 			// TODO: should be done after param expansion
 | ||||||
|  | 			res.Merge(s.checkUniqueParams(path, method, op)) | ||||||
|  | 
 | ||||||
|  | 			for _, pr := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) { | ||||||
|  | 				// Validate pattern regexp for parameters with a Pattern property
 | ||||||
|  | 				if _, err := compileRegexp(pr.Pattern); err != nil { | ||||||
|  | 					res.AddErrors(invalidPatternInParamMsg(op.ID, pr.Name, pr.Pattern)) | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				// There must be at most one parameter in body: list them all
 | ||||||
|  | 				if pr.In == swaggerBody { | ||||||
|  | 					bodyParams = append(bodyParams, fmt.Sprintf("%q", pr.Name)) | ||||||
|  | 					hasBody = true | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if pr.In == "path" { | ||||||
|  | 					paramNames = append(paramNames, pr.Name) | ||||||
|  | 					// Path declared in path must have the required: true property
 | ||||||
|  | 					if !pr.Required { | ||||||
|  | 						res.AddErrors(pathParamRequiredMsg(op.ID, pr.Name)) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if pr.In == "formData" { | ||||||
|  | 					hasForm = true | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if !(pr.Type == numberType || pr.Type == integerType) && | ||||||
|  | 					(pr.Maximum != nil || pr.Minimum != nil || pr.MultipleOf != nil) { | ||||||
|  | 					// A non-numeric parameter has validation keywords for numeric instances (number and integer)
 | ||||||
|  | 					res.AddWarnings(parameterValidationTypeMismatchMsg(pr.Name, path, pr.Type)) | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if !(pr.Type == stringType) && | ||||||
|  | 					// A non-string parameter has validation keywords for strings
 | ||||||
|  | 					(pr.MaxLength != nil || pr.MinLength != nil || pr.Pattern != "") { | ||||||
|  | 					res.AddWarnings(parameterValidationTypeMismatchMsg(pr.Name, path, pr.Type)) | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if !(pr.Type == arrayType) && | ||||||
|  | 					// A non-array parameter has validation keywords for arrays
 | ||||||
|  | 					(pr.MaxItems != nil || pr.MinItems != nil || pr.UniqueItems) { | ||||||
|  | 					res.AddWarnings(parameterValidationTypeMismatchMsg(pr.Name, path, pr.Type)) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			// In:formData and In:body are mutually exclusive
 | ||||||
|  | 			if hasBody && hasForm { | ||||||
|  | 				res.AddErrors(bothFormDataAndBodyMsg(op.ID)) | ||||||
|  | 			} | ||||||
|  | 			// There must be at most one body param
 | ||||||
|  | 			// Accurately report situations when more than 1 body param is declared (possibly unnamed)
 | ||||||
|  | 			if len(bodyParams) > 1 { | ||||||
|  | 				sort.Strings(bodyParams) | ||||||
|  | 				res.AddErrors(multipleBodyParamMsg(op.ID, bodyParams)) | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			// Check uniqueness of parameters in path
 | ||||||
|  | 			paramsInPath := pathHelp.extractPathParams(path) | ||||||
|  | 			for i, p := range paramsInPath { | ||||||
|  | 				for j, q := range paramsInPath { | ||||||
|  | 					if p == q && i > j { | ||||||
|  | 						res.AddErrors(pathParamNotUniqueMsg(path, p, q)) | ||||||
|  | 						break | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			// Warns about possible malformed params in path
 | ||||||
|  | 			rexGarbledParam := mustCompileRegexp(`{.*[{}\s]+.*}`) | ||||||
|  | 			for _, p := range paramsInPath { | ||||||
|  | 				if rexGarbledParam.MatchString(p) { | ||||||
|  | 					res.AddWarnings(pathParamGarbledMsg(path, p)) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			// Match params from path vs params from params section
 | ||||||
|  | 			res.Merge(s.validatePathParamPresence(path, paramsInPath, paramNames)) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return res | 	return res | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/validate/spec_messages.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/validate/spec_messages.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -163,6 +163,9 @@ const ( | |||||||
| 	// PathParamGarbledWarning ...
 | 	// PathParamGarbledWarning ...
 | ||||||
| 	PathParamGarbledWarning = "in path %q, param %q contains {,} or white space. Albeit not stricly illegal, this is probably no what you want" | 	PathParamGarbledWarning = "in path %q, param %q contains {,} or white space. Albeit not stricly illegal, this is probably no what you want" | ||||||
| 
 | 
 | ||||||
|  | 	// ParamValidationTypeMismatch indicates that parameter has validation which does not match its type
 | ||||||
|  | 	ParamValidationTypeMismatch = "validation keywords of parameter %q in path %q don't match its type %s" | ||||||
|  | 
 | ||||||
| 	// PathStrippedParamGarbledWarning ...
 | 	// PathStrippedParamGarbledWarning ...
 | ||||||
| 	PathStrippedParamGarbledWarning = "path stripped from path parameters %s contains {,} or white space. This is probably no what you want." | 	PathStrippedParamGarbledWarning = "path stripped from path parameters %s contains {,} or white space. This is probably no what you want." | ||||||
| 
 | 
 | ||||||
| @ -341,6 +344,9 @@ func invalidParameterDefinitionMsg(path, method, operationID string) errors.Erro | |||||||
| func invalidParameterDefinitionAsSchemaMsg(path, method, operationID string) errors.Error { | func invalidParameterDefinitionAsSchemaMsg(path, method, operationID string) errors.Error { | ||||||
| 	return errors.New(errors.CompositeErrorCode, InvalidParameterDefinitionAsSchemaError, path, method, operationID) | 	return errors.New(errors.CompositeErrorCode, InvalidParameterDefinitionAsSchemaError, path, method, operationID) | ||||||
| } | } | ||||||
|  | func parameterValidationTypeMismatchMsg(param, path, typ string) errors.Error { | ||||||
|  | 	return errors.New(errors.CompositeErrorCode, ParamValidationTypeMismatch, param, path, typ) | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| // disabled
 | // disabled
 | ||||||
| //func invalidResponseDefinitionAsSchemaMsg(path, method string) errors.Error {
 | //func invalidResponseDefinitionAsSchemaMsg(path, method string) errors.Error {
 | ||||||
|  | |||||||
							
								
								
									
										80
									
								
								vendor/github.com/go-openapi/validate/type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								vendor/github.com/go-openapi/validate/type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -39,53 +39,53 @@ func (t *typeValidator) schemaInfoForType(data interface{}) (string, string) { | |||||||
| 	// TODO: this switch really is some sort of reverse lookup for formats. It should be provided by strfmt.
 | 	// TODO: this switch really is some sort of reverse lookup for formats. It should be provided by strfmt.
 | ||||||
| 	switch data.(type) { | 	switch data.(type) { | ||||||
| 	case []byte, strfmt.Base64, *strfmt.Base64: | 	case []byte, strfmt.Base64, *strfmt.Base64: | ||||||
| 		return "string", "byte" | 		return stringType, stringFormatByte | ||||||
| 	case strfmt.CreditCard, *strfmt.CreditCard: | 	case strfmt.CreditCard, *strfmt.CreditCard: | ||||||
| 		return "string", "creditcard" | 		return stringType, stringFormatCreditCard | ||||||
| 	case strfmt.Date, *strfmt.Date: | 	case strfmt.Date, *strfmt.Date: | ||||||
| 		return "string", "date" | 		return stringType, stringFormatDate | ||||||
| 	case strfmt.DateTime, *strfmt.DateTime: | 	case strfmt.DateTime, *strfmt.DateTime: | ||||||
| 		return "string", "date-time" | 		return stringType, stringFormatDateTime | ||||||
| 	case strfmt.Duration, *strfmt.Duration: | 	case strfmt.Duration, *strfmt.Duration: | ||||||
| 		return "string", "duration" | 		return stringType, stringFormatDuration | ||||||
| 	case runtime.File, *runtime.File: | 	case runtime.File, *runtime.File: | ||||||
| 		return "file", "" | 		return fileType, "" | ||||||
| 	case strfmt.Email, *strfmt.Email: | 	case strfmt.Email, *strfmt.Email: | ||||||
| 		return "string", "email" | 		return stringType, stringFormatEmail | ||||||
| 	case strfmt.HexColor, *strfmt.HexColor: | 	case strfmt.HexColor, *strfmt.HexColor: | ||||||
| 		return "string", "hexcolor" | 		return stringType, stringFormatHexColor | ||||||
| 	case strfmt.Hostname, *strfmt.Hostname: | 	case strfmt.Hostname, *strfmt.Hostname: | ||||||
| 		return "string", "hostname" | 		return stringType, stringFormatHostname | ||||||
| 	case strfmt.IPv4, *strfmt.IPv4: | 	case strfmt.IPv4, *strfmt.IPv4: | ||||||
| 		return "string", "ipv4" | 		return stringType, stringFormatIPv4 | ||||||
| 	case strfmt.IPv6, *strfmt.IPv6: | 	case strfmt.IPv6, *strfmt.IPv6: | ||||||
| 		return "string", "ipv6" | 		return stringType, stringFormatIPv6 | ||||||
| 	case strfmt.ISBN, *strfmt.ISBN: | 	case strfmt.ISBN, *strfmt.ISBN: | ||||||
| 		return "string", "isbn" | 		return stringType, stringFormatISBN | ||||||
| 	case strfmt.ISBN10, *strfmt.ISBN10: | 	case strfmt.ISBN10, *strfmt.ISBN10: | ||||||
| 		return "string", "isbn10" | 		return stringType, stringFormatISBN10 | ||||||
| 	case strfmt.ISBN13, *strfmt.ISBN13: | 	case strfmt.ISBN13, *strfmt.ISBN13: | ||||||
| 		return "string", "isbn13" | 		return stringType, stringFormatISBN13 | ||||||
| 	case strfmt.MAC, *strfmt.MAC: | 	case strfmt.MAC, *strfmt.MAC: | ||||||
| 		return "string", "mac" | 		return stringType, stringFormatMAC | ||||||
| 	case strfmt.ObjectId, *strfmt.ObjectId: | 	case strfmt.ObjectId, *strfmt.ObjectId: | ||||||
| 		return "string", "bsonobjectid" | 		return stringType, stringFormatBSONObjectID | ||||||
| 	case strfmt.Password, *strfmt.Password: | 	case strfmt.Password, *strfmt.Password: | ||||||
| 		return "string", "password" | 		return stringType, stringFormatPassword | ||||||
| 	case strfmt.RGBColor, *strfmt.RGBColor: | 	case strfmt.RGBColor, *strfmt.RGBColor: | ||||||
| 		return "string", "rgbcolor" | 		return stringType, stringFormatRGBColor | ||||||
| 	case strfmt.SSN, *strfmt.SSN: | 	case strfmt.SSN, *strfmt.SSN: | ||||||
| 		return "string", "ssn" | 		return stringType, stringFormatSSN | ||||||
| 	case strfmt.URI, *strfmt.URI: | 	case strfmt.URI, *strfmt.URI: | ||||||
| 		return "string", "uri" | 		return stringType, stringFormatURI | ||||||
| 	case strfmt.UUID, *strfmt.UUID: | 	case strfmt.UUID, *strfmt.UUID: | ||||||
| 		return "string", "uuid" | 		return stringType, stringFormatUUID | ||||||
| 	case strfmt.UUID3, *strfmt.UUID3: | 	case strfmt.UUID3, *strfmt.UUID3: | ||||||
| 		return "string", "uuid3" | 		return stringType, stringFormatUUID3 | ||||||
| 	case strfmt.UUID4, *strfmt.UUID4: | 	case strfmt.UUID4, *strfmt.UUID4: | ||||||
| 		return "string", "uuid4" | 		return stringType, stringFormatUUID4 | ||||||
| 	case strfmt.UUID5, *strfmt.UUID5: | 	case strfmt.UUID5, *strfmt.UUID5: | ||||||
| 		return "string", "uuid5" | 		return stringType, stringFormatUUID5 | ||||||
| 	// TODO: missing binary (io.ReadCloser)
 | 	// TODO: missing binary (io.ReadCloser)
 | ||||||
| 	// TODO: missing json.Number
 | 	// TODO: missing json.Number
 | ||||||
| 	default: | 	default: | ||||||
| @ -93,25 +93,25 @@ func (t *typeValidator) schemaInfoForType(data interface{}) (string, string) { | |||||||
| 		tpe := val.Type() | 		tpe := val.Type() | ||||||
| 		switch tpe.Kind() { | 		switch tpe.Kind() { | ||||||
| 		case reflect.Bool: | 		case reflect.Bool: | ||||||
| 			return "boolean", "" | 			return booleanType, "" | ||||||
| 		case reflect.String: | 		case reflect.String: | ||||||
| 			return "string", "" | 			return stringType, "" | ||||||
| 		case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint8, reflect.Uint16, reflect.Uint32: | 		case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint8, reflect.Uint16, reflect.Uint32: | ||||||
| 			// NOTE: that is the spec. With go-openapi, is that not uint32 for unsigned integers?
 | 			// NOTE: that is the spec. With go-openapi, is that not uint32 for unsigned integers?
 | ||||||
| 			return "integer", "int32" | 			return integerType, integerFormatInt32 | ||||||
| 		case reflect.Int, reflect.Int64, reflect.Uint, reflect.Uint64: | 		case reflect.Int, reflect.Int64, reflect.Uint, reflect.Uint64: | ||||||
| 			return "integer", "int64" | 			return integerType, integerFormatInt64 | ||||||
| 		case reflect.Float32: | 		case reflect.Float32: | ||||||
| 			// NOTE: is that not "float"?
 | 			// NOTE: is that not numberFormatFloat?
 | ||||||
| 			return "number", "float32" | 			return numberType, numberFormatFloat32 | ||||||
| 		case reflect.Float64: | 		case reflect.Float64: | ||||||
| 			// NOTE: is that not "double"?
 | 			// NOTE: is that not "double"?
 | ||||||
| 			return "number", "float64" | 			return numberType, numberFormatFloat64 | ||||||
| 		// NOTE: go arrays (reflect.Array) are not supported (fixed length)
 | 		// NOTE: go arrays (reflect.Array) are not supported (fixed length)
 | ||||||
| 		case reflect.Slice: | 		case reflect.Slice: | ||||||
| 			return "array", "" | 			return arrayType, "" | ||||||
| 		case reflect.Map, reflect.Struct: | 		case reflect.Map, reflect.Struct: | ||||||
| 			return "object", "" | 			return objectType, "" | ||||||
| 		case reflect.Interface: | 		case reflect.Interface: | ||||||
| 			// What to do here?
 | 			// What to do here?
 | ||||||
| 			panic("dunno what to do here") | 			panic("dunno what to do here") | ||||||
| @ -139,8 +139,8 @@ func (t *typeValidator) Validate(data interface{}) *Result { | |||||||
| 	result.Inc() | 	result.Inc() | ||||||
| 	if data == nil || reflect.DeepEqual(reflect.Zero(reflect.TypeOf(data)), reflect.ValueOf(data)) { | 	if data == nil || reflect.DeepEqual(reflect.Zero(reflect.TypeOf(data)), reflect.ValueOf(data)) { | ||||||
| 		// nil or zero value for the passed structure require Type: null
 | 		// nil or zero value for the passed structure require Type: null
 | ||||||
| 		if len(t.Type) > 0 && !t.Type.Contains("null") && !t.Nullable { // TODO: if a property is not required it also passes this
 | 		if len(t.Type) > 0 && !t.Type.Contains(nullType) && !t.Nullable { // TODO: if a property is not required it also passes this
 | ||||||
| 			return errorHelp.sErr(errors.InvalidType(t.Path, t.In, strings.Join(t.Type, ","), "null")) | 			return errorHelp.sErr(errors.InvalidType(t.Path, t.In, strings.Join(t.Type, ","), nullType)) | ||||||
| 		} | 		} | ||||||
| 		return result | 		return result | ||||||
| 	} | 	} | ||||||
| @ -157,17 +157,17 @@ func (t *typeValidator) Validate(data interface{}) *Result { | |||||||
| 	// check numerical types
 | 	// check numerical types
 | ||||||
| 	// TODO: check unsigned ints
 | 	// TODO: check unsigned ints
 | ||||||
| 	// TODO: check json.Number (see schema.go)
 | 	// TODO: check json.Number (see schema.go)
 | ||||||
| 	isLowerInt := t.Format == "int64" && format == "int32" | 	isLowerInt := t.Format == integerFormatInt64 && format == integerFormatInt32 | ||||||
| 	isLowerFloat := t.Format == "float64" && format == "float32" | 	isLowerFloat := t.Format == numberFormatFloat64 && format == numberFormatFloat32 | ||||||
| 	isFloatInt := schType == "number" && swag.IsFloat64AJSONInteger(val.Float()) && t.Type.Contains("integer") | 	isFloatInt := schType == numberType && swag.IsFloat64AJSONInteger(val.Float()) && t.Type.Contains(integerType) | ||||||
| 	isIntFloat := schType == "integer" && t.Type.Contains("number") | 	isIntFloat := schType == integerType && t.Type.Contains(numberType) | ||||||
| 
 | 
 | ||||||
| 	if kind != reflect.String && kind != reflect.Slice && t.Format != "" && !(t.Type.Contains(schType) || format == t.Format || isFloatInt || isIntFloat || isLowerInt || isLowerFloat) { | 	if kind != reflect.String && kind != reflect.Slice && t.Format != "" && !(t.Type.Contains(schType) || format == t.Format || isFloatInt || isIntFloat || isLowerInt || isLowerFloat) { | ||||||
| 		// TODO: test case
 | 		// TODO: test case
 | ||||||
| 		return errorHelp.sErr(errors.InvalidType(t.Path, t.In, t.Format, format)) | 		return errorHelp.sErr(errors.InvalidType(t.Path, t.In, t.Format, format)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !(t.Type.Contains("number") || t.Type.Contains("integer")) && t.Format != "" && (kind == reflect.String || kind == reflect.Slice) { | 	if !(t.Type.Contains(numberType) || t.Type.Contains(integerType)) && t.Format != "" && (kind == reflect.String || kind == reflect.Slice) { | ||||||
| 		return result | 		return result | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								vendor/github.com/go-openapi/validate/validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-openapi/validate/validator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -452,6 +452,7 @@ func (s *basicSliceValidator) Validate(data interface{}) *Result { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /* unused | ||||||
| func (s *basicSliceValidator) hasDuplicates(value reflect.Value, size int) bool { | func (s *basicSliceValidator) hasDuplicates(value reflect.Value, size int) bool { | ||||||
| 	dict := make(map[interface{}]struct{}) | 	dict := make(map[interface{}]struct{}) | ||||||
| 	for i := 0; i < size; i++ { | 	for i := 0; i < size; i++ { | ||||||
| @ -463,6 +464,7 @@ func (s *basicSliceValidator) hasDuplicates(value reflect.Value, size int) bool | |||||||
| 	} | 	} | ||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
|  | */ | ||||||
| 
 | 
 | ||||||
| type numberValidator struct { | type numberValidator struct { | ||||||
| 	Path             string | 	Path             string | ||||||
| @ -530,6 +532,7 @@ func (n *numberValidator) Validate(val interface{}) *Result { | |||||||
| 	// Is the provided value within the range of the specified numeric type and format?
 | 	// Is the provided value within the range of the specified numeric type and format?
 | ||||||
| 	res.AddErrors(IsValueValidAgainstRange(val, n.Type, n.Format, "Checked", n.Path)) | 	res.AddErrors(IsValueValidAgainstRange(val, n.Type, n.Format, "Checked", n.Path)) | ||||||
| 
 | 
 | ||||||
|  | 	// nolint: dupl
 | ||||||
| 	if n.MultipleOf != nil { | 	if n.MultipleOf != nil { | ||||||
| 		// Is the constraint specifier within the range of the specific numeric type and format?
 | 		// Is the constraint specifier within the range of the specific numeric type and format?
 | ||||||
| 		resMultiple.AddErrors(IsValueValidAgainstRange(*n.MultipleOf, n.Type, n.Format, "MultipleOf", n.Path)) | 		resMultiple.AddErrors(IsValueValidAgainstRange(*n.MultipleOf, n.Type, n.Format, "MultipleOf", n.Path)) | ||||||
| @ -546,6 +549,7 @@ func (n *numberValidator) Validate(val interface{}) *Result { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	// nolint: dupl
 | ||||||
| 	if n.Maximum != nil { | 	if n.Maximum != nil { | ||||||
| 		// Is the constraint specifier within the range of the specific numeric type and format?
 | 		// Is the constraint specifier within the range of the specific numeric type and format?
 | ||||||
| 		resMaximum.AddErrors(IsValueValidAgainstRange(*n.Maximum, n.Type, n.Format, "Maximum boundary", n.Path)) | 		resMaximum.AddErrors(IsValueValidAgainstRange(*n.Maximum, n.Type, n.Format, "Maximum boundary", n.Path)) | ||||||
| @ -562,6 +566,7 @@ func (n *numberValidator) Validate(val interface{}) *Result { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	// nolint: dupl
 | ||||||
| 	if n.Minimum != nil { | 	if n.Minimum != nil { | ||||||
| 		// Is the constraint specifier within the range of the specific numeric type and format?
 | 		// Is the constraint specifier within the range of the specific numeric type and format?
 | ||||||
| 		resMinimum.AddErrors(IsValueValidAgainstRange(*n.Minimum, n.Type, n.Format, "Minimum boundary", n.Path)) | 		resMinimum.AddErrors(IsValueValidAgainstRange(*n.Minimum, n.Type, n.Format, "Minimum boundary", n.Path)) | ||||||
| @ -611,7 +616,7 @@ func (s *stringValidator) Applies(source interface{}, kind reflect.Kind) bool { | |||||||
| func (s *stringValidator) Validate(val interface{}) *Result { | func (s *stringValidator) Validate(val interface{}) *Result { | ||||||
| 	data, ok := val.(string) | 	data, ok := val.(string) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		return errorHelp.sErr(errors.InvalidType(s.Path, s.In, "string", val)) | 		return errorHelp.sErr(errors.InvalidType(s.Path, s.In, stringType, val)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if s.Required && !s.AllowEmptyValue && (s.Default == nil || s.Default == "") { | 	if s.Required && !s.AllowEmptyValue && (s.Default == nil || s.Default == "") { | ||||||
|  | |||||||
							
								
								
									
										82
									
								
								vendor/github.com/go-openapi/validate/values.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										82
									
								
								vendor/github.com/go-openapi/validate/values.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -17,6 +17,7 @@ package validate | |||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"reflect" | 	"reflect" | ||||||
|  | 	"strings" | ||||||
| 	"unicode/utf8" | 	"unicode/utf8" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-openapi/errors" | 	"github.com/go-openapi/errors" | ||||||
| @ -26,11 +27,17 @@ import ( | |||||||
| 
 | 
 | ||||||
| // Enum validates if the data is a member of the enum
 | // Enum validates if the data is a member of the enum
 | ||||||
| func Enum(path, in string, data interface{}, enum interface{}) *errors.Validation { | func Enum(path, in string, data interface{}, enum interface{}) *errors.Validation { | ||||||
|  | 	return EnumCase(path, in, data, enum, true) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // EnumCase validates if the data is a member of the enum and may respect case-sensitivity for strings
 | ||||||
|  | func EnumCase(path, in string, data interface{}, enum interface{}, caseSensitive bool) *errors.Validation { | ||||||
| 	val := reflect.ValueOf(enum) | 	val := reflect.ValueOf(enum) | ||||||
| 	if val.Kind() != reflect.Slice { | 	if val.Kind() != reflect.Slice { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	dataString := convertEnumCaseStringKind(data, caseSensitive) | ||||||
| 	var values []interface{} | 	var values []interface{} | ||||||
| 	for i := 0; i < val.Len(); i++ { | 	for i := 0; i < val.Len(); i++ { | ||||||
| 		ele := val.Index(i) | 		ele := val.Index(i) | ||||||
| @ -39,6 +46,10 @@ func Enum(path, in string, data interface{}, enum interface{}) *errors.Validatio | |||||||
| 			if reflect.DeepEqual(data, enumValue) { | 			if reflect.DeepEqual(data, enumValue) { | ||||||
| 				return nil | 				return nil | ||||||
| 			} | 			} | ||||||
|  | 			enumString := convertEnumCaseStringKind(enumValue, caseSensitive) | ||||||
|  | 			if dataString != nil && enumString != nil && strings.EqualFold(*dataString, *enumString) { | ||||||
|  | 				return nil | ||||||
|  | 			} | ||||||
| 			actualType := reflect.TypeOf(enumValue) | 			actualType := reflect.TypeOf(enumValue) | ||||||
| 			if actualType == nil { // Safeguard. Frankly, I don't know how we may get a nil
 | 			if actualType == nil { // Safeguard. Frankly, I don't know how we may get a nil
 | ||||||
| 				continue | 				continue | ||||||
| @ -56,10 +67,25 @@ func Enum(path, in string, data interface{}, enum interface{}) *errors.Validatio | |||||||
| 	return errors.EnumFail(path, in, data, values) | 	return errors.EnumFail(path, in, data, values) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // convertEnumCaseStringKind converts interface if it is kind of string and case insensitivity is set
 | ||||||
|  | func convertEnumCaseStringKind(value interface{}, caseSensitive bool) *string { | ||||||
|  | 	if caseSensitive { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	val := reflect.ValueOf(value) | ||||||
|  | 	if val.Kind() != reflect.String { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	str := fmt.Sprintf("%v", value) | ||||||
|  | 	return &str | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // MinItems validates that there are at least n items in a slice
 | // MinItems validates that there are at least n items in a slice
 | ||||||
| func MinItems(path, in string, size, min int64) *errors.Validation { | func MinItems(path, in string, size, min int64) *errors.Validation { | ||||||
| 	if size < min { | 	if size < min { | ||||||
| 		return errors.TooFewItems(path, in, min) | 		return errors.TooFewItems(path, in, min, size) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -67,7 +93,7 @@ func MinItems(path, in string, size, min int64) *errors.Validation { | |||||||
| // MaxItems validates that there are at most n items in a slice
 | // MaxItems validates that there are at most n items in a slice
 | ||||||
| func MaxItems(path, in string, size, max int64) *errors.Validation { | func MaxItems(path, in string, size, max int64) *errors.Validation { | ||||||
| 	if size > max { | 	if size > max { | ||||||
| 		return errors.TooManyItems(path, in, max) | 		return errors.TooManyItems(path, in, max, size) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -95,7 +121,7 @@ func UniqueItems(path, in string, data interface{}) *errors.Validation { | |||||||
| func MinLength(path, in, data string, minLength int64) *errors.Validation { | func MinLength(path, in, data string, minLength int64) *errors.Validation { | ||||||
| 	strLen := int64(utf8.RuneCount([]byte(data))) | 	strLen := int64(utf8.RuneCount([]byte(data))) | ||||||
| 	if strLen < minLength { | 	if strLen < minLength { | ||||||
| 		return errors.TooShort(path, in, minLength) | 		return errors.TooShort(path, in, minLength, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -104,7 +130,7 @@ func MinLength(path, in, data string, minLength int64) *errors.Validation { | |||||||
| func MaxLength(path, in, data string, maxLength int64) *errors.Validation { | func MaxLength(path, in, data string, maxLength int64) *errors.Validation { | ||||||
| 	strLen := int64(utf8.RuneCount([]byte(data))) | 	strLen := int64(utf8.RuneCount([]byte(data))) | ||||||
| 	if strLen > maxLength { | 	if strLen > maxLength { | ||||||
| 		return errors.TooLong(path, in, maxLength) | 		return errors.TooLong(path, in, maxLength, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -114,17 +140,17 @@ func Required(path, in string, data interface{}) *errors.Validation { | |||||||
| 	val := reflect.ValueOf(data) | 	val := reflect.ValueOf(data) | ||||||
| 	if val.IsValid() { | 	if val.IsValid() { | ||||||
| 		if reflect.DeepEqual(reflect.Zero(val.Type()).Interface(), val.Interface()) { | 		if reflect.DeepEqual(reflect.Zero(val.Type()).Interface(), val.Interface()) { | ||||||
| 			return errors.Required(path, in) | 			return errors.Required(path, in, data) | ||||||
| 		} | 		} | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 	return errors.Required(path, in) | 	return errors.Required(path, in, data) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RequiredString validates a string for requiredness
 | // RequiredString validates a string for requiredness
 | ||||||
| func RequiredString(path, in, data string) *errors.Validation { | func RequiredString(path, in, data string) *errors.Validation { | ||||||
| 	if data == "" { | 	if data == "" { | ||||||
| 		return errors.Required(path, in) | 		return errors.Required(path, in, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -132,7 +158,7 @@ func RequiredString(path, in, data string) *errors.Validation { | |||||||
| // RequiredNumber validates a number for requiredness
 | // RequiredNumber validates a number for requiredness
 | ||||||
| func RequiredNumber(path, in string, data float64) *errors.Validation { | func RequiredNumber(path, in string, data float64) *errors.Validation { | ||||||
| 	if data == 0 { | 	if data == 0 { | ||||||
| 		return errors.Required(path, in) | 		return errors.Required(path, in, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -141,10 +167,10 @@ func RequiredNumber(path, in string, data float64) *errors.Validation { | |||||||
| func Pattern(path, in, data, pattern string) *errors.Validation { | func Pattern(path, in, data, pattern string) *errors.Validation { | ||||||
| 	re, err := compileRegexp(pattern) | 	re, err := compileRegexp(pattern) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return errors.FailedPattern(path, in, fmt.Sprintf("%s, but pattern is invalid: %s", pattern, err.Error())) | 		return errors.FailedPattern(path, in, fmt.Sprintf("%s, but pattern is invalid: %s", pattern, err.Error()), data) | ||||||
| 	} | 	} | ||||||
| 	if !re.MatchString(data) { | 	if !re.MatchString(data) { | ||||||
| 		return errors.FailedPattern(path, in, pattern) | 		return errors.FailedPattern(path, in, pattern, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -152,7 +178,7 @@ func Pattern(path, in, data, pattern string) *errors.Validation { | |||||||
| // MaximumInt validates if a number is smaller than a given maximum
 | // MaximumInt validates if a number is smaller than a given maximum
 | ||||||
| func MaximumInt(path, in string, data, max int64, exclusive bool) *errors.Validation { | func MaximumInt(path, in string, data, max int64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data > max) || (exclusive && data >= max) { | 	if (!exclusive && data > max) || (exclusive && data >= max) { | ||||||
| 		return errors.ExceedsMaximumInt(path, in, max, exclusive) | 		return errors.ExceedsMaximumInt(path, in, max, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -160,7 +186,7 @@ func MaximumInt(path, in string, data, max int64, exclusive bool) *errors.Valida | |||||||
| // MaximumUint validates if a number is smaller than a given maximum
 | // MaximumUint validates if a number is smaller than a given maximum
 | ||||||
| func MaximumUint(path, in string, data, max uint64, exclusive bool) *errors.Validation { | func MaximumUint(path, in string, data, max uint64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data > max) || (exclusive && data >= max) { | 	if (!exclusive && data > max) || (exclusive && data >= max) { | ||||||
| 		return errors.ExceedsMaximumUint(path, in, max, exclusive) | 		return errors.ExceedsMaximumUint(path, in, max, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -168,7 +194,7 @@ func MaximumUint(path, in string, data, max uint64, exclusive bool) *errors.Vali | |||||||
| // Maximum validates if a number is smaller than a given maximum
 | // Maximum validates if a number is smaller than a given maximum
 | ||||||
| func Maximum(path, in string, data, max float64, exclusive bool) *errors.Validation { | func Maximum(path, in string, data, max float64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data > max) || (exclusive && data >= max) { | 	if (!exclusive && data > max) || (exclusive && data >= max) { | ||||||
| 		return errors.ExceedsMaximum(path, in, max, exclusive) | 		return errors.ExceedsMaximum(path, in, max, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -176,7 +202,7 @@ func Maximum(path, in string, data, max float64, exclusive bool) *errors.Validat | |||||||
| // Minimum validates if a number is smaller than a given minimum
 | // Minimum validates if a number is smaller than a given minimum
 | ||||||
| func Minimum(path, in string, data, min float64, exclusive bool) *errors.Validation { | func Minimum(path, in string, data, min float64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data < min) || (exclusive && data <= min) { | 	if (!exclusive && data < min) || (exclusive && data <= min) { | ||||||
| 		return errors.ExceedsMinimum(path, in, min, exclusive) | 		return errors.ExceedsMinimum(path, in, min, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -184,7 +210,7 @@ func Minimum(path, in string, data, min float64, exclusive bool) *errors.Validat | |||||||
| // MinimumInt validates if a number is smaller than a given minimum
 | // MinimumInt validates if a number is smaller than a given minimum
 | ||||||
| func MinimumInt(path, in string, data, min int64, exclusive bool) *errors.Validation { | func MinimumInt(path, in string, data, min int64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data < min) || (exclusive && data <= min) { | 	if (!exclusive && data < min) || (exclusive && data <= min) { | ||||||
| 		return errors.ExceedsMinimumInt(path, in, min, exclusive) | 		return errors.ExceedsMinimumInt(path, in, min, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -192,7 +218,7 @@ func MinimumInt(path, in string, data, min int64, exclusive bool) *errors.Valida | |||||||
| // MinimumUint validates if a number is smaller than a given minimum
 | // MinimumUint validates if a number is smaller than a given minimum
 | ||||||
| func MinimumUint(path, in string, data, min uint64, exclusive bool) *errors.Validation { | func MinimumUint(path, in string, data, min uint64, exclusive bool) *errors.Validation { | ||||||
| 	if (!exclusive && data < min) || (exclusive && data <= min) { | 	if (!exclusive && data < min) || (exclusive && data <= min) { | ||||||
| 		return errors.ExceedsMinimumUint(path, in, min, exclusive) | 		return errors.ExceedsMinimumUint(path, in, min, exclusive, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -210,7 +236,7 @@ func MultipleOf(path, in string, data, factor float64) *errors.Validation { | |||||||
| 		mult = data / factor | 		mult = data / factor | ||||||
| 	} | 	} | ||||||
| 	if !swag.IsFloat64AJSONInteger(mult) { | 	if !swag.IsFloat64AJSONInteger(mult) { | ||||||
| 		return errors.NotMultipleOf(path, in, factor) | 		return errors.NotMultipleOf(path, in, factor, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -223,7 +249,7 @@ func MultipleOfInt(path, in string, data int64, factor int64) *errors.Validation | |||||||
| 	} | 	} | ||||||
| 	mult := data / factor | 	mult := data / factor | ||||||
| 	if mult*factor != data { | 	if mult*factor != data { | ||||||
| 		return errors.NotMultipleOf(path, in, factor) | 		return errors.NotMultipleOf(path, in, factor, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -232,7 +258,7 @@ func MultipleOfInt(path, in string, data int64, factor int64) *errors.Validation | |||||||
| func MultipleOfUint(path, in string, data, factor uint64) *errors.Validation { | func MultipleOfUint(path, in string, data, factor uint64) *errors.Validation { | ||||||
| 	mult := data / factor | 	mult := data / factor | ||||||
| 	if mult*factor != data { | 	if mult*factor != data { | ||||||
| 		return errors.NotMultipleOf(path, in, factor) | 		return errors.NotMultipleOf(path, in, factor, data) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -270,7 +296,7 @@ func MaximumNativeType(path, in string, val interface{}, max float64, exclusive | |||||||
| 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: | 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: | ||||||
| 		value := valueHelp.asUint64(val) | 		value := valueHelp.asUint64(val) | ||||||
| 		if max < 0 { | 		if max < 0 { | ||||||
| 			return errors.ExceedsMaximum(path, in, max, exclusive) | 			return errors.ExceedsMaximum(path, in, max, exclusive, val) | ||||||
| 		} | 		} | ||||||
| 		return MaximumUint(path, in, value, uint64(max), exclusive) | 		return MaximumUint(path, in, value, uint64(max), exclusive) | ||||||
| 	case reflect.Float32, reflect.Float64: | 	case reflect.Float32, reflect.Float64: | ||||||
| @ -361,26 +387,26 @@ func IsValueValidAgainstRange(val interface{}, typeName, format, prefix, path st | |||||||
| 	var errVal error | 	var errVal error | ||||||
| 
 | 
 | ||||||
| 	switch typeName { | 	switch typeName { | ||||||
| 	case "integer": | 	case integerType: | ||||||
| 		switch format { | 		switch format { | ||||||
| 		case "int32": | 		case integerFormatInt32: | ||||||
| 			_, errVal = swag.ConvertInt32(stringRep) | 			_, errVal = swag.ConvertInt32(stringRep) | ||||||
| 		case "uint32": | 		case integerFormatUInt32: | ||||||
| 			_, errVal = swag.ConvertUint32(stringRep) | 			_, errVal = swag.ConvertUint32(stringRep) | ||||||
| 		case "uint64": | 		case integerFormatUInt64: | ||||||
| 			_, errVal = swag.ConvertUint64(stringRep) | 			_, errVal = swag.ConvertUint64(stringRep) | ||||||
| 		case "int64": | 		case integerFormatInt64: | ||||||
| 			fallthrough | 			fallthrough | ||||||
| 		default: | 		default: | ||||||
| 			_, errVal = swag.ConvertInt64(stringRep) | 			_, errVal = swag.ConvertInt64(stringRep) | ||||||
| 		} | 		} | ||||||
| 	case "number": | 	case numberType: | ||||||
| 		fallthrough | 		fallthrough | ||||||
| 	default: | 	default: | ||||||
| 		switch format { | 		switch format { | ||||||
| 		case "float", "float32": | 		case numberFormatFloat, numberFormatFloat32: | ||||||
| 			_, errVal = swag.ConvertFloat32(stringRep) | 			_, errVal = swag.ConvertFloat32(stringRep) | ||||||
| 		case "double", "float64": | 		case numberFormatDouble, numberFormatFloat64: | ||||||
| 			fallthrough | 			fallthrough | ||||||
| 		default: | 		default: | ||||||
| 			// No check can be performed here since
 | 			// No check can be performed here since
 | ||||||
|  | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user