mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 07:42:26 -05:00 
			
		
		
		
	migrate go version to 1.17 (#203)
* migrate go version to 1.17 * update contributing
This commit is contained in:
		
					parent
					
						
							
								e681aac589
							
						
					
				
			
			
				commit
				
					
						f2e5bedea6
					
				
			
		
					 282 changed files with 11863 additions and 12600 deletions
				
			
		
							
								
								
									
										2
									
								
								vendor/github.com/go-playground/validator/v10/Makefile
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-playground/validator/v10/Makefile
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,7 +3,7 @@ GOCMD=GO111MODULE=on go | |||
| linters-install: | ||||
| 	@golangci-lint --version >/dev/null 2>&1 || { \
 | ||||
| 		echo "installing linting tools..."; \
 | ||||
| 		curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.39.0; \
 | ||||
| 		curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.41.1; \
 | ||||
| 	} | ||||
| 
 | ||||
| lint: linters-install | ||||
|  |  | |||
							
								
								
									
										37
									
								
								vendor/github.com/go-playground/validator/v10/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								vendor/github.com/go-playground/validator/v10/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,7 +1,7 @@ | |||
| Package validator | ||||
| ================= | ||||
| <img align="right" src="https://raw.githubusercontent.com/go-playground/validator/v9/logo.png">[](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||||
|  | ||||
|  | ||||
| [](https://travis-ci.org/go-playground/validator) | ||||
| [](https://coveralls.io/github/go-playground/validator?branch=master) | ||||
| [](https://goreportcard.com/report/github.com/go-playground/validator) | ||||
|  | @ -27,11 +27,11 @@ Installation | |||
| 
 | ||||
| Use go get. | ||||
| 
 | ||||
| 	go get github.com/go-playground/validator | ||||
| 	go get github.com/go-playground/validator/v10 | ||||
| 
 | ||||
| Then import the validator package into your own code. | ||||
| 
 | ||||
| 	import "github.com/go-playground/validator" | ||||
| 	import "github.com/go-playground/validator/v10" | ||||
| 
 | ||||
| Error Return Value | ||||
| ------- | ||||
|  | @ -100,7 +100,7 @@ Baked-in Validations | |||
| | hostname_rfc1123 | Hostname RFC 1123 | | ||||
| | ip | Internet Protocol Address IP | | ||||
| | ip4_addr | Internet Protocol Address IPv4 | | ||||
| | ip6_addr |Internet Protocol Address IPv6 | | ||||
| | ip6_addr | Internet Protocol Address IPv6 | | ||||
| | ip_addr | Internet Protocol Address IP | | ||||
| | ipv4 | Internet Protocol Address IPv4 | | ||||
| | ipv6 | Internet Protocol Address IPv6 | | ||||
|  | @ -126,15 +126,21 @@ Baked-in Validations | |||
| | alphanumunicode | Alphanumeric Unicode | | ||||
| | alphaunicode | Alpha Unicode | | ||||
| | ascii | ASCII | | ||||
| | boolean | Boolean | | ||||
| | contains | Contains | | ||||
| | containsany | Contains Any | | ||||
| | containsrune | Contains Rune | | ||||
| | endsnotwith | Ends With | | ||||
| | endswith | Ends With | | ||||
| | excludes | Excludes | | ||||
| | excludesall | Excludes All | | ||||
| | excludesrune | Excludes Rune | | ||||
| | lowercase | Lowercase | | ||||
| | multibyte | Multi-Byte Characters | | ||||
| | number | NOT DOCUMENTED IN doc.go | | ||||
| | numeric | Numeric | | ||||
| | printascii | Printable ASCII | | ||||
| | startsnotwith | Starts Not With | | ||||
| | startswith | Starts With | | ||||
| | uppercase | Uppercase | | ||||
| 
 | ||||
|  | @ -143,6 +149,8 @@ Baked-in Validations | |||
| | - | - | | ||||
| | base64 | Base64 String | | ||||
| | base64url | Base64URL String | | ||||
| | bic | Business Identifier Code (ISO 9362) | | ||||
| | bcp47_language_tag | Language tag (BCP 47) | | ||||
| | btc_addr | Bitcoin Address | | ||||
| | btc_addr_bech32 | Bitcoin Bech32 Address (segwit) | | ||||
| | datetime | Datetime | | ||||
|  | @ -158,12 +166,21 @@ Baked-in Validations | |||
| | isbn | International Standard Book Number | | ||||
| | isbn10 | International Standard Book Number 10 | | ||||
| | isbn13 | International Standard Book Number 13 | | ||||
| | iso3166_1_alpha2 | Two-letter country code (ISO 3166-1 alpha-2) | | ||||
| | iso3166_1_alpha3 | Three-letter country code (ISO 3166-1 alpha-3) | | ||||
| | iso3166_1_alpha_numeric | Numeric country code (ISO 3166-1 numeric) | | ||||
| | iso3166_2 | Country subdivision code (ISO 3166-2) | | ||||
| | iso4217 | Currency code (ISO 4217) | | ||||
| | json | JSON | | ||||
| | jwt | JSON Web Token (JWT) | | ||||
| | latitude | Latitude | | ||||
| | longitude | Longitude | | ||||
| | postcode_iso3166_alpha2 | Postcode | | ||||
| | postcode_iso3166_alpha2_field | Postcode | | ||||
| | rgb | RGB String | | ||||
| | rgba | RGBA String | | ||||
| | ssn | Social Security Number SSN | | ||||
| | timezone | Timezone | | ||||
| | uuid | Universally Unique Identifier UUID | | ||||
| | uuid3 | Universally Unique Identifier UUID v3 | | ||||
| | uuid3_rfc4122 | Universally Unique Identifier UUID v3 RFC4122 | | ||||
|  | @ -178,7 +195,7 @@ Baked-in Validations | |||
| | - | - | | ||||
| | eq | Equals | | ||||
| | gt | Greater than| | ||||
| | gte |Greater than or equal | | ||||
| | gte | Greater than or equal | | ||||
| | lt | Less Than | | ||||
| | lte | Less Than or Equal | | ||||
| | ne | Not Equal | | ||||
|  | @ -187,10 +204,6 @@ Baked-in Validations | |||
| | Tag | Description | | ||||
| | - | - | | ||||
| | dir | Directory | | ||||
| | endswith | Ends With | | ||||
| | excludes | Excludes | | ||||
| | excludesall | Excludes All | | ||||
| | excludesrune | Excludes Rune | | ||||
| | file | File path | | ||||
| | isdefault | Is Default | | ||||
| | len | Length | | ||||
|  | @ -210,6 +223,12 @@ Baked-in Validations | |||
| | excluded_without_all | Excluded Without All | | ||||
| | unique | Unique | | ||||
| 
 | ||||
| #### Aliases: | ||||
| | Tag | Description | | ||||
| | - | - | | ||||
| | iscolor | hexcolor\|rgb\|rgba\|hsl\|hsla | | ||||
| | country_code | iso3166_1_alpha2\|iso3166_1_alpha3\|iso3166_1_alpha_numeric | | ||||
| 
 | ||||
| Benchmarks | ||||
| ------ | ||||
| ###### Run on MacBook Pro (15-inch, 2017) go version go1.10.2 darwin/amd64 | ||||
|  |  | |||
							
								
								
									
										243
									
								
								vendor/github.com/go-playground/validator/v10/baked_in.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										243
									
								
								vendor/github.com/go-playground/validator/v10/baked_in.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -56,7 +56,7 @@ var ( | |||
| 		isdefault:         {}, | ||||
| 	} | ||||
| 
 | ||||
| 	// BakedInAliasValidators is a default mapping of a single validation tag that | ||||
| 	// bakedInAliases is a default mapping of a single validation tag that | ||||
| 	// defines a common or complex set of validation(s) to simplify | ||||
| 	// adding validation to structs. | ||||
| 	bakedInAliases = map[string]string{ | ||||
|  | @ -64,7 +64,7 @@ var ( | |||
| 		"country_code": "iso3166_1_alpha2|iso3166_1_alpha3|iso3166_1_alpha_numeric", | ||||
| 	} | ||||
| 
 | ||||
| 	// BakedInValidators is the default map of ValidationFunc | ||||
| 	// bakedInValidators is the default map of ValidationFunc | ||||
| 	// you can add, remove or even replace items to suite your needs, | ||||
| 	// or even disregard and use your own map if so desired. | ||||
| 	bakedInValidators = map[string]Func{ | ||||
|  | @ -107,6 +107,7 @@ var ( | |||
| 		"alphanum":                      isAlphanum, | ||||
| 		"alphaunicode":                  isAlphaUnicode, | ||||
| 		"alphanumunicode":               isAlphanumUnicode, | ||||
| 		"boolean":                       isBoolean, | ||||
| 		"numeric":                       isNumeric, | ||||
| 		"number":                        isNumber, | ||||
| 		"hexadecimal":                   isHexadecimal, | ||||
|  | @ -181,6 +182,7 @@ var ( | |||
| 		"url_encoded":                   isURLEncoded, | ||||
| 		"dir":                           isDir, | ||||
| 		"json":                          isJSON, | ||||
| 		"jwt":                           isJWT, | ||||
| 		"hostname_port":                 isHostnamePort, | ||||
| 		"lowercase":                     isLowercase, | ||||
| 		"uppercase":                     isUppercase, | ||||
|  | @ -189,7 +191,9 @@ var ( | |||
| 		"iso3166_1_alpha2":              isIso3166Alpha2, | ||||
| 		"iso3166_1_alpha3":              isIso3166Alpha3, | ||||
| 		"iso3166_1_alpha_numeric":       isIso3166AlphaNumeric, | ||||
| 		"iso3166_2":              	 isIso31662, | ||||
| 		"iso3166_2":                     isIso31662, | ||||
| 		"iso4217":                       isIso4217, | ||||
| 		"iso4217_numeric":               isIso4217Numeric, | ||||
| 		"bcp47_language_tag":            isBCP47LanguageTag, | ||||
| 		"postcode_iso3166_alpha2":       isPostcodeByIso3166Alpha2, | ||||
| 		"postcode_iso3166_alpha2_field": isPostcodeByIso3166Alpha2Field, | ||||
|  | @ -302,7 +306,7 @@ func isUnique(fl FieldLevel) bool { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| // IsMAC is the validation function for validating if the field's value is a valid MAC address. | ||||
| // isMAC is the validation function for validating if the field's value is a valid MAC address. | ||||
| func isMAC(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	_, err := net.ParseMAC(fl.Field().String()) | ||||
|  | @ -310,7 +314,7 @@ func isMAC(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsCIDRv4 is the validation function for validating if the field's value is a valid v4 CIDR address. | ||||
| // isCIDRv4 is the validation function for validating if the field's value is a valid v4 CIDR address. | ||||
| func isCIDRv4(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	ip, _, err := net.ParseCIDR(fl.Field().String()) | ||||
|  | @ -318,7 +322,7 @@ func isCIDRv4(fl FieldLevel) bool { | |||
| 	return err == nil && ip.To4() != nil | ||||
| } | ||||
| 
 | ||||
| // IsCIDRv6 is the validation function for validating if the field's value is a valid v6 CIDR address. | ||||
| // isCIDRv6 is the validation function for validating if the field's value is a valid v6 CIDR address. | ||||
| func isCIDRv6(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	ip, _, err := net.ParseCIDR(fl.Field().String()) | ||||
|  | @ -326,7 +330,7 @@ func isCIDRv6(fl FieldLevel) bool { | |||
| 	return err == nil && ip.To4() == nil | ||||
| } | ||||
| 
 | ||||
| // IsCIDR is the validation function for validating if the field's value is a valid v4 or v6 CIDR address. | ||||
| // isCIDR is the validation function for validating if the field's value is a valid v4 or v6 CIDR address. | ||||
| func isCIDR(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	_, _, err := net.ParseCIDR(fl.Field().String()) | ||||
|  | @ -334,7 +338,7 @@ func isCIDR(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsIPv4 is the validation function for validating if a value is a valid v4 IP address. | ||||
| // isIPv4 is the validation function for validating if a value is a valid v4 IP address. | ||||
| func isIPv4(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	ip := net.ParseIP(fl.Field().String()) | ||||
|  | @ -342,7 +346,7 @@ func isIPv4(fl FieldLevel) bool { | |||
| 	return ip != nil && ip.To4() != nil | ||||
| } | ||||
| 
 | ||||
| // IsIPv6 is the validation function for validating if the field's value is a valid v6 IP address. | ||||
| // isIPv6 is the validation function for validating if the field's value is a valid v6 IP address. | ||||
| func isIPv6(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	ip := net.ParseIP(fl.Field().String()) | ||||
|  | @ -350,7 +354,7 @@ func isIPv6(fl FieldLevel) bool { | |||
| 	return ip != nil && ip.To4() == nil | ||||
| } | ||||
| 
 | ||||
| // IsIP is the validation function for validating if the field's value is a valid v4 or v6 IP address. | ||||
| // isIP is the validation function for validating if the field's value is a valid v4 or v6 IP address. | ||||
| func isIP(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	ip := net.ParseIP(fl.Field().String()) | ||||
|  | @ -358,7 +362,7 @@ func isIP(fl FieldLevel) bool { | |||
| 	return ip != nil | ||||
| } | ||||
| 
 | ||||
| // IsSSN is the validation function for validating if the field's value is a valid SSN. | ||||
| // isSSN is the validation function for validating if the field's value is a valid SSN. | ||||
| func isSSN(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -370,7 +374,7 @@ func isSSN(fl FieldLevel) bool { | |||
| 	return sSNRegex.MatchString(field.String()) | ||||
| } | ||||
| 
 | ||||
| // IsLongitude is the validation function for validating if the field's value is a valid longitude coordinate. | ||||
| // isLongitude is the validation function for validating if the field's value is a valid longitude coordinate. | ||||
| func isLongitude(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -393,7 +397,7 @@ func isLongitude(fl FieldLevel) bool { | |||
| 	return longitudeRegex.MatchString(v) | ||||
| } | ||||
| 
 | ||||
| // IsLatitude is the validation function for validating if the field's value is a valid latitude coordinate. | ||||
| // isLatitude is the validation function for validating if the field's value is a valid latitude coordinate. | ||||
| func isLatitude(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -416,7 +420,7 @@ func isLatitude(fl FieldLevel) bool { | |||
| 	return latitudeRegex.MatchString(v) | ||||
| } | ||||
| 
 | ||||
| // IsDataURI is the validation function for validating if the field's value is a valid data URI. | ||||
| // isDataURI is the validation function for validating if the field's value is a valid data URI. | ||||
| func isDataURI(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	uri := strings.SplitN(fl.Field().String(), ",", 2) | ||||
|  | @ -432,7 +436,7 @@ func isDataURI(fl FieldLevel) bool { | |||
| 	return base64Regex.MatchString(uri[1]) | ||||
| } | ||||
| 
 | ||||
| // HasMultiByteCharacter is the validation function for validating if the field's value has a multi byte character. | ||||
| // hasMultiByteCharacter is the validation function for validating if the field's value has a multi byte character. | ||||
| func hasMultiByteCharacter(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -444,62 +448,62 @@ func hasMultiByteCharacter(fl FieldLevel) bool { | |||
| 	return multibyteRegex.MatchString(field.String()) | ||||
| } | ||||
| 
 | ||||
| // IsPrintableASCII is the validation function for validating if the field's value is a valid printable ASCII character. | ||||
| // isPrintableASCII is the validation function for validating if the field's value is a valid printable ASCII character. | ||||
| func isPrintableASCII(fl FieldLevel) bool { | ||||
| 	return printableASCIIRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsASCII is the validation function for validating if the field's value is a valid ASCII character. | ||||
| // isASCII is the validation function for validating if the field's value is a valid ASCII character. | ||||
| func isASCII(fl FieldLevel) bool { | ||||
| 	return aSCIIRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID5 is the validation function for validating if the field's value is a valid v5 UUID. | ||||
| // isUUID5 is the validation function for validating if the field's value is a valid v5 UUID. | ||||
| func isUUID5(fl FieldLevel) bool { | ||||
| 	return uUID5Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID4 is the validation function for validating if the field's value is a valid v4 UUID. | ||||
| // isUUID4 is the validation function for validating if the field's value is a valid v4 UUID. | ||||
| func isUUID4(fl FieldLevel) bool { | ||||
| 	return uUID4Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID3 is the validation function for validating if the field's value is a valid v3 UUID. | ||||
| // isUUID3 is the validation function for validating if the field's value is a valid v3 UUID. | ||||
| func isUUID3(fl FieldLevel) bool { | ||||
| 	return uUID3Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID is the validation function for validating if the field's value is a valid UUID of any version. | ||||
| // isUUID is the validation function for validating if the field's value is a valid UUID of any version. | ||||
| func isUUID(fl FieldLevel) bool { | ||||
| 	return uUIDRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID5RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v5 UUID. | ||||
| // isUUID5RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v5 UUID. | ||||
| func isUUID5RFC4122(fl FieldLevel) bool { | ||||
| 	return uUID5RFC4122Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID4RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v4 UUID. | ||||
| // isUUID4RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v4 UUID. | ||||
| func isUUID4RFC4122(fl FieldLevel) bool { | ||||
| 	return uUID4RFC4122Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUID3RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v3 UUID. | ||||
| // isUUID3RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v3 UUID. | ||||
| func isUUID3RFC4122(fl FieldLevel) bool { | ||||
| 	return uUID3RFC4122Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsUUIDRFC4122 is the validation function for validating if the field's value is a valid RFC4122 UUID of any version. | ||||
| // isUUIDRFC4122 is the validation function for validating if the field's value is a valid RFC4122 UUID of any version. | ||||
| func isUUIDRFC4122(fl FieldLevel) bool { | ||||
| 	return uUIDRFC4122Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsISBN is the validation function for validating if the field's value is a valid v10 or v13 ISBN. | ||||
| // isISBN is the validation function for validating if the field's value is a valid v10 or v13 ISBN. | ||||
| func isISBN(fl FieldLevel) bool { | ||||
| 	return isISBN10(fl) || isISBN13(fl) | ||||
| } | ||||
| 
 | ||||
| // IsISBN13 is the validation function for validating if the field's value is a valid v13 ISBN. | ||||
| // isISBN13 is the validation function for validating if the field's value is a valid v13 ISBN. | ||||
| func isISBN13(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	s := strings.Replace(strings.Replace(fl.Field().String(), "-", "", 4), " ", "", 4) | ||||
|  | @ -520,7 +524,7 @@ func isISBN13(fl FieldLevel) bool { | |||
| 	return (int32(s[12]-'0'))-((10-(checksum%10))%10) == 0 | ||||
| } | ||||
| 
 | ||||
| // IsISBN10 is the validation function for validating if the field's value is a valid v10 ISBN. | ||||
| // isISBN10 is the validation function for validating if the field's value is a valid v10 ISBN. | ||||
| func isISBN10(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	s := strings.Replace(strings.Replace(fl.Field().String(), "-", "", 3), " ", "", 3) | ||||
|  | @ -545,7 +549,7 @@ func isISBN10(fl FieldLevel) bool { | |||
| 	return checksum%11 == 0 | ||||
| } | ||||
| 
 | ||||
| // IsEthereumAddress is the validation function for validating if the field's value is a valid Ethereum address. | ||||
| // isEthereumAddress is the validation function for validating if the field's value is a valid Ethereum address. | ||||
| func isEthereumAddress(fl FieldLevel) bool { | ||||
| 	address := fl.Field().String() | ||||
| 
 | ||||
|  | @ -576,7 +580,7 @@ func isEthereumAddress(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsBitcoinAddress is the validation function for validating if the field's value is a valid btc address | ||||
| // isBitcoinAddress is the validation function for validating if the field's value is a valid btc address | ||||
| func isBitcoinAddress(fl FieldLevel) bool { | ||||
| 	address := fl.Field().String() | ||||
| 
 | ||||
|  | @ -613,7 +617,7 @@ func isBitcoinAddress(fl FieldLevel) bool { | |||
| 	return validchecksum == computedchecksum | ||||
| } | ||||
| 
 | ||||
| // IsBitcoinBech32Address is the validation function for validating if the field's value is a valid bech32 btc address | ||||
| // isBitcoinBech32Address is the validation function for validating if the field's value is a valid bech32 btc address | ||||
| func isBitcoinBech32Address(fl FieldLevel) bool { | ||||
| 	address := fl.Field().String() | ||||
| 
 | ||||
|  | @ -693,22 +697,22 @@ func isBitcoinBech32Address(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // ExcludesRune is the validation function for validating that the field's value does not contain the rune specified within the param. | ||||
| // excludesRune is the validation function for validating that the field's value does not contain the rune specified within the param. | ||||
| func excludesRune(fl FieldLevel) bool { | ||||
| 	return !containsRune(fl) | ||||
| } | ||||
| 
 | ||||
| // ExcludesAll is the validation function for validating that the field's value does not contain any of the characters specified within the param. | ||||
| // excludesAll is the validation function for validating that the field's value does not contain any of the characters specified within the param. | ||||
| func excludesAll(fl FieldLevel) bool { | ||||
| 	return !containsAny(fl) | ||||
| } | ||||
| 
 | ||||
| // Excludes is the validation function for validating that the field's value does not contain the text specified within the param. | ||||
| // excludes is the validation function for validating that the field's value does not contain the text specified within the param. | ||||
| func excludes(fl FieldLevel) bool { | ||||
| 	return !contains(fl) | ||||
| } | ||||
| 
 | ||||
| // ContainsRune is the validation function for validating that the field's value contains the rune specified within the param. | ||||
| // containsRune is the validation function for validating that the field's value contains the rune specified within the param. | ||||
| func containsRune(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	r, _ := utf8.DecodeRuneInString(fl.Param()) | ||||
|  | @ -716,37 +720,37 @@ func containsRune(fl FieldLevel) bool { | |||
| 	return strings.ContainsRune(fl.Field().String(), r) | ||||
| } | ||||
| 
 | ||||
| // ContainsAny is the validation function for validating that the field's value contains any of the characters specified within the param. | ||||
| // containsAny is the validation function for validating that the field's value contains any of the characters specified within the param. | ||||
| func containsAny(fl FieldLevel) bool { | ||||
| 	return strings.ContainsAny(fl.Field().String(), fl.Param()) | ||||
| } | ||||
| 
 | ||||
| // Contains is the validation function for validating that the field's value contains the text specified within the param. | ||||
| // contains is the validation function for validating that the field's value contains the text specified within the param. | ||||
| func contains(fl FieldLevel) bool { | ||||
| 	return strings.Contains(fl.Field().String(), fl.Param()) | ||||
| } | ||||
| 
 | ||||
| // StartsWith is the validation function for validating that the field's value starts with the text specified within the param. | ||||
| // startsWith is the validation function for validating that the field's value starts with the text specified within the param. | ||||
| func startsWith(fl FieldLevel) bool { | ||||
| 	return strings.HasPrefix(fl.Field().String(), fl.Param()) | ||||
| } | ||||
| 
 | ||||
| // EndsWith is the validation function for validating that the field's value ends with the text specified within the param. | ||||
| // endsWith is the validation function for validating that the field's value ends with the text specified within the param. | ||||
| func endsWith(fl FieldLevel) bool { | ||||
| 	return strings.HasSuffix(fl.Field().String(), fl.Param()) | ||||
| } | ||||
| 
 | ||||
| // StartsNotWith is the validation function for validating that the field's value does not start with the text specified within the param. | ||||
| // startsNotWith is the validation function for validating that the field's value does not start with the text specified within the param. | ||||
| func startsNotWith(fl FieldLevel) bool { | ||||
| 	return !startsWith(fl) | ||||
| } | ||||
| 
 | ||||
| // EndsNotWith is the validation function for validating that the field's value does not end with the text specified within the param. | ||||
| // endsNotWith is the validation function for validating that the field's value does not end with the text specified within the param. | ||||
| func endsNotWith(fl FieldLevel) bool { | ||||
| 	return !endsWith(fl) | ||||
| } | ||||
| 
 | ||||
| // FieldContains is the validation function for validating if the current field's value contains the field specified by the param's value. | ||||
| // fieldContains is the validation function for validating if the current field's value contains the field specified by the param's value. | ||||
| func fieldContains(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -759,7 +763,7 @@ func fieldContains(fl FieldLevel) bool { | |||
| 	return strings.Contains(field.String(), currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // FieldExcludes is the validation function for validating if the current field's value excludes the field specified by the param's value. | ||||
| // fieldExcludes is the validation function for validating if the current field's value excludes the field specified by the param's value. | ||||
| func fieldExcludes(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -771,7 +775,7 @@ func fieldExcludes(fl FieldLevel) bool { | |||
| 	return !strings.Contains(field.String(), currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // IsNeField is the validation function for validating if the current field's value is not equal to the field specified by the param's value. | ||||
| // isNeField is the validation function for validating if the current field's value is not equal to the field specified by the param's value. | ||||
| func isNeField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -823,12 +827,12 @@ func isNeField(fl FieldLevel) bool { | |||
| 	return field.String() != currentField.String() | ||||
| } | ||||
| 
 | ||||
| // IsNe is the validation function for validating that the field's value does not equal the provided param value. | ||||
| // isNe is the validation function for validating that the field's value does not equal the provided param value. | ||||
| func isNe(fl FieldLevel) bool { | ||||
| 	return !isEq(fl) | ||||
| } | ||||
| 
 | ||||
| // IsLteCrossStructField is the validation function for validating if the current field's value is less than or equal to the field, within a separate struct, specified by the param's value. | ||||
| // isLteCrossStructField is the validation function for validating if the current field's value is less than or equal to the field, within a separate struct, specified by the param's value. | ||||
| func isLteCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -875,7 +879,7 @@ func isLteCrossStructField(fl FieldLevel) bool { | |||
| 	return field.String() <= topField.String() | ||||
| } | ||||
| 
 | ||||
| // IsLtCrossStructField is the validation function for validating if the current field's value is less than the field, within a separate struct, specified by the param's value. | ||||
| // isLtCrossStructField is the validation function for validating if the current field's value is less than the field, within a separate struct, specified by the param's value. | ||||
| // NOTE: This is exposed for use within your own custom functions and not intended to be called directly. | ||||
| func isLtCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
|  | @ -923,7 +927,7 @@ func isLtCrossStructField(fl FieldLevel) bool { | |||
| 	return field.String() < topField.String() | ||||
| } | ||||
| 
 | ||||
| // IsGteCrossStructField is the validation function for validating if the current field's value is greater than or equal to the field, within a separate struct, specified by the param's value. | ||||
| // isGteCrossStructField is the validation function for validating if the current field's value is greater than or equal to the field, within a separate struct, specified by the param's value. | ||||
| func isGteCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -970,7 +974,7 @@ func isGteCrossStructField(fl FieldLevel) bool { | |||
| 	return field.String() >= topField.String() | ||||
| } | ||||
| 
 | ||||
| // IsGtCrossStructField is the validation function for validating if the current field's value is greater than the field, within a separate struct, specified by the param's value. | ||||
| // isGtCrossStructField is the validation function for validating if the current field's value is greater than the field, within a separate struct, specified by the param's value. | ||||
| func isGtCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1017,7 +1021,7 @@ func isGtCrossStructField(fl FieldLevel) bool { | |||
| 	return field.String() > topField.String() | ||||
| } | ||||
| 
 | ||||
| // IsNeCrossStructField is the validation function for validating that the current field's value is not equal to the field, within a separate struct, specified by the param's value. | ||||
| // isNeCrossStructField is the validation function for validating that the current field's value is not equal to the field, within a separate struct, specified by the param's value. | ||||
| func isNeCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1067,7 +1071,7 @@ func isNeCrossStructField(fl FieldLevel) bool { | |||
| 	return topField.String() != field.String() | ||||
| } | ||||
| 
 | ||||
| // IsEqCrossStructField is the validation function for validating that the current field's value is equal to the field, within a separate struct, specified by the param's value. | ||||
| // isEqCrossStructField is the validation function for validating that the current field's value is equal to the field, within a separate struct, specified by the param's value. | ||||
| func isEqCrossStructField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1117,7 +1121,7 @@ func isEqCrossStructField(fl FieldLevel) bool { | |||
| 	return topField.String() == field.String() | ||||
| } | ||||
| 
 | ||||
| // IsEqField is the validation function for validating if the current field's value is equal to the field specified by the param's value. | ||||
| // isEqField is the validation function for validating if the current field's value is equal to the field specified by the param's value. | ||||
| func isEqField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1168,7 +1172,7 @@ func isEqField(fl FieldLevel) bool { | |||
| 	return field.String() == currentField.String() | ||||
| } | ||||
| 
 | ||||
| // IsEq is the validation function for validating if the current field's value is equal to the param's value. | ||||
| // isEq is the validation function for validating if the current field's value is equal to the param's value. | ||||
| func isEq(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1249,17 +1253,17 @@ func isPostcodeByIso3166Alpha2Field(fl FieldLevel) bool { | |||
| 	return reg.MatchString(field.String()) | ||||
| } | ||||
| 
 | ||||
| // IsBase64 is the validation function for validating if the current field's value is a valid base 64. | ||||
| // isBase64 is the validation function for validating if the current field's value is a valid base 64. | ||||
| func isBase64(fl FieldLevel) bool { | ||||
| 	return base64Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsBase64URL is the validation function for validating if the current field's value is a valid base64 URL safe string. | ||||
| // isBase64URL is the validation function for validating if the current field's value is a valid base64 URL safe string. | ||||
| func isBase64URL(fl FieldLevel) bool { | ||||
| 	return base64URLRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsURI is the validation function for validating if the current field's value is a valid URI. | ||||
| // isURI is the validation function for validating if the current field's value is a valid URI. | ||||
| func isURI(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1288,7 +1292,7 @@ func isURI(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // IsURL is the validation function for validating if the current field's value is a valid URL. | ||||
| // isURL is the validation function for validating if the current field's value is a valid URL. | ||||
| func isURL(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1340,7 +1344,7 @@ func isUrnRFC2141(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // IsFile is the validation function for validating if the current field's value is a valid file path. | ||||
| // isFile is the validation function for validating if the current field's value is a valid file path. | ||||
| func isFile(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -1357,47 +1361,47 @@ func isFile(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // IsE164 is the validation function for validating if the current field's value is a valid e.164 formatted phone number. | ||||
| // isE164 is the validation function for validating if the current field's value is a valid e.164 formatted phone number. | ||||
| func isE164(fl FieldLevel) bool { | ||||
| 	return e164Regex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsEmail is the validation function for validating if the current field's value is a valid email address. | ||||
| // isEmail is the validation function for validating if the current field's value is a valid email address. | ||||
| func isEmail(fl FieldLevel) bool { | ||||
| 	return emailRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsHSLA is the validation function for validating if the current field's value is a valid HSLA color. | ||||
| // isHSLA is the validation function for validating if the current field's value is a valid HSLA color. | ||||
| func isHSLA(fl FieldLevel) bool { | ||||
| 	return hslaRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsHSL is the validation function for validating if the current field's value is a valid HSL color. | ||||
| // isHSL is the validation function for validating if the current field's value is a valid HSL color. | ||||
| func isHSL(fl FieldLevel) bool { | ||||
| 	return hslRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsRGBA is the validation function for validating if the current field's value is a valid RGBA color. | ||||
| // isRGBA is the validation function for validating if the current field's value is a valid RGBA color. | ||||
| func isRGBA(fl FieldLevel) bool { | ||||
| 	return rgbaRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsRGB is the validation function for validating if the current field's value is a valid RGB color. | ||||
| // isRGB is the validation function for validating if the current field's value is a valid RGB color. | ||||
| func isRGB(fl FieldLevel) bool { | ||||
| 	return rgbRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsHEXColor is the validation function for validating if the current field's value is a valid HEX color. | ||||
| // isHEXColor is the validation function for validating if the current field's value is a valid HEX color. | ||||
| func isHEXColor(fl FieldLevel) bool { | ||||
| 	return hexColorRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsHexadecimal is the validation function for validating if the current field's value is a valid hexadecimal. | ||||
| // isHexadecimal is the validation function for validating if the current field's value is a valid hexadecimal. | ||||
| func isHexadecimal(fl FieldLevel) bool { | ||||
| 	return hexadecimalRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsNumber is the validation function for validating if the current field's value is a valid number. | ||||
| // isNumber is the validation function for validating if the current field's value is a valid number. | ||||
| func isNumber(fl FieldLevel) bool { | ||||
| 	switch fl.Field().Kind() { | ||||
| 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.Float32, reflect.Float64: | ||||
|  | @ -1407,7 +1411,7 @@ func isNumber(fl FieldLevel) bool { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| // IsNumeric is the validation function for validating if the current field's value is a valid numeric value. | ||||
| // isNumeric is the validation function for validating if the current field's value is a valid numeric value. | ||||
| func isNumeric(fl FieldLevel) bool { | ||||
| 	switch fl.Field().Kind() { | ||||
| 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.Float32, reflect.Float64: | ||||
|  | @ -1417,32 +1421,38 @@ func isNumeric(fl FieldLevel) bool { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| // IsAlphanum is the validation function for validating if the current field's value is a valid alphanumeric value. | ||||
| // isAlphanum is the validation function for validating if the current field's value is a valid alphanumeric value. | ||||
| func isAlphanum(fl FieldLevel) bool { | ||||
| 	return alphaNumericRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsAlpha is the validation function for validating if the current field's value is a valid alpha value. | ||||
| // isAlpha is the validation function for validating if the current field's value is a valid alpha value. | ||||
| func isAlpha(fl FieldLevel) bool { | ||||
| 	return alphaRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsAlphanumUnicode is the validation function for validating if the current field's value is a valid alphanumeric unicode value. | ||||
| // isAlphanumUnicode is the validation function for validating if the current field's value is a valid alphanumeric unicode value. | ||||
| func isAlphanumUnicode(fl FieldLevel) bool { | ||||
| 	return alphaUnicodeNumericRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // IsAlphaUnicode is the validation function for validating if the current field's value is a valid alpha unicode value. | ||||
| // isAlphaUnicode is the validation function for validating if the current field's value is a valid alpha unicode value. | ||||
| func isAlphaUnicode(fl FieldLevel) bool { | ||||
| 	return alphaUnicodeRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // isBoolean is the validation function for validating if the current field's value can be safely converted to a boolean. | ||||
| func isBoolean(fl FieldLevel) bool { | ||||
| 	_, err := strconv.ParseBool(fl.Field().String()) | ||||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // isDefault is the opposite of required aka hasValue | ||||
| func isDefault(fl FieldLevel) bool { | ||||
| 	return !hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // HasValue is the validation function for validating if the current field's value is not the default static value. | ||||
| // hasValue is the validation function for validating if the current field's value is not the default static value. | ||||
| func hasValue(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 	switch field.Kind() { | ||||
|  | @ -1540,7 +1550,7 @@ func requiredUnless(fl FieldLevel) bool { | |||
| 	return hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // ExcludedWith is the validation function | ||||
| // excludedWith is the validation function | ||||
| // The field under validation must not be present or is empty if any of the other specified fields are present. | ||||
| func excludedWith(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1552,7 +1562,7 @@ func excludedWith(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // RequiredWith is the validation function | ||||
| // requiredWith is the validation function | ||||
| // The field under validation must be present and not empty only if any of the other specified fields are present. | ||||
| func requiredWith(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1564,7 +1574,7 @@ func requiredWith(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // ExcludedWithAll is the validation function | ||||
| // excludedWithAll is the validation function | ||||
| // The field under validation must not be present or is empty if all of the other specified fields are present. | ||||
| func excludedWithAll(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1576,7 +1586,7 @@ func excludedWithAll(fl FieldLevel) bool { | |||
| 	return !hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // RequiredWithAll is the validation function | ||||
| // requiredWithAll is the validation function | ||||
| // The field under validation must be present and not empty only if all of the other specified fields are present. | ||||
| func requiredWithAll(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1588,7 +1598,7 @@ func requiredWithAll(fl FieldLevel) bool { | |||
| 	return hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // ExcludedWithout is the validation function | ||||
| // excludedWithout is the validation function | ||||
| // The field under validation must not be present or is empty when any of the other specified fields are not present. | ||||
| func excludedWithout(fl FieldLevel) bool { | ||||
| 	if requireCheckFieldKind(fl, strings.TrimSpace(fl.Param()), true) { | ||||
|  | @ -1597,7 +1607,7 @@ func excludedWithout(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // RequiredWithout is the validation function | ||||
| // requiredWithout is the validation function | ||||
| // The field under validation must be present and not empty only when any of the other specified fields are not present. | ||||
| func requiredWithout(fl FieldLevel) bool { | ||||
| 	if requireCheckFieldKind(fl, strings.TrimSpace(fl.Param()), true) { | ||||
|  | @ -1606,7 +1616,7 @@ func requiredWithout(fl FieldLevel) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // ExcludedWithoutAll is the validation function | ||||
| // excludedWithoutAll is the validation function | ||||
| // The field under validation must not be present or is empty when all of the other specified fields are not present. | ||||
| func excludedWithoutAll(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1618,7 +1628,7 @@ func excludedWithoutAll(fl FieldLevel) bool { | |||
| 	return !hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // RequiredWithoutAll is the validation function | ||||
| // requiredWithoutAll is the validation function | ||||
| // The field under validation must be present and not empty only when all of the other specified fields are not present. | ||||
| func requiredWithoutAll(fl FieldLevel) bool { | ||||
| 	params := parseOneOfParam2(fl.Param()) | ||||
|  | @ -1630,7 +1640,7 @@ func requiredWithoutAll(fl FieldLevel) bool { | |||
| 	return hasValue(fl) | ||||
| } | ||||
| 
 | ||||
| // IsGteField is the validation function for validating if the current field's value is greater than or equal to the field specified by the param's value. | ||||
| // isGteField is the validation function for validating if the current field's value is greater than or equal to the field specified by the param's value. | ||||
| func isGteField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1677,7 +1687,7 @@ func isGteField(fl FieldLevel) bool { | |||
| 	return len(field.String()) >= len(currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // IsGtField is the validation function for validating if the current field's value is greater than the field specified by the param's value. | ||||
| // isGtField is the validation function for validating if the current field's value is greater than the field specified by the param's value. | ||||
| func isGtField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1724,7 +1734,7 @@ func isGtField(fl FieldLevel) bool { | |||
| 	return len(field.String()) > len(currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // IsGte is the validation function for validating if the current field's value is greater than or equal to the param's value. | ||||
| // isGte is the validation function for validating if the current field's value is greater than or equal to the param's value. | ||||
| func isGte(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1771,7 +1781,7 @@ func isGte(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // IsGt is the validation function for validating if the current field's value is greater than the param's value. | ||||
| // isGt is the validation function for validating if the current field's value is greater than the param's value. | ||||
| func isGt(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1814,7 +1824,7 @@ func isGt(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // HasLengthOf is the validation function for validating if the current field's value is equal to the param's value. | ||||
| // hasLengthOf is the validation function for validating if the current field's value is equal to the param's value. | ||||
| func hasLengthOf(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1851,12 +1861,12 @@ func hasLengthOf(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // HasMinOf is the validation function for validating if the current field's value is greater than or equal to the param's value. | ||||
| // hasMinOf is the validation function for validating if the current field's value is greater than or equal to the param's value. | ||||
| func hasMinOf(fl FieldLevel) bool { | ||||
| 	return isGte(fl) | ||||
| } | ||||
| 
 | ||||
| // IsLteField is the validation function for validating if the current field's value is less than or equal to the field specified by the param's value. | ||||
| // isLteField is the validation function for validating if the current field's value is less than or equal to the field specified by the param's value. | ||||
| func isLteField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1903,7 +1913,7 @@ func isLteField(fl FieldLevel) bool { | |||
| 	return len(field.String()) <= len(currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // IsLtField is the validation function for validating if the current field's value is less than the field specified by the param's value. | ||||
| // isLtField is the validation function for validating if the current field's value is less than the field specified by the param's value. | ||||
| func isLtField(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1950,7 +1960,7 @@ func isLtField(fl FieldLevel) bool { | |||
| 	return len(field.String()) < len(currentField.String()) | ||||
| } | ||||
| 
 | ||||
| // IsLte is the validation function for validating if the current field's value is less than or equal to the param's value. | ||||
| // isLte is the validation function for validating if the current field's value is less than or equal to the param's value. | ||||
| func isLte(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -1997,7 +2007,7 @@ func isLte(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // IsLt is the validation function for validating if the current field's value is less than the param's value. | ||||
| // isLt is the validation function for validating if the current field's value is less than the param's value. | ||||
| func isLt(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	field := fl.Field() | ||||
|  | @ -2041,12 +2051,12 @@ func isLt(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // HasMaxOf is the validation function for validating if the current field's value is less than or equal to the param's value. | ||||
| // hasMaxOf is the validation function for validating if the current field's value is less than or equal to the param's value. | ||||
| func hasMaxOf(fl FieldLevel) bool { | ||||
| 	return isLte(fl) | ||||
| } | ||||
| 
 | ||||
| // IsTCP4AddrResolvable is the validation function for validating if the field's value is a resolvable tcp4 address. | ||||
| // isTCP4AddrResolvable is the validation function for validating if the field's value is a resolvable tcp4 address. | ||||
| func isTCP4AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP4Addr(fl) { | ||||
|  | @ -2057,7 +2067,7 @@ func isTCP4AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsTCP6AddrResolvable is the validation function for validating if the field's value is a resolvable tcp6 address. | ||||
| // isTCP6AddrResolvable is the validation function for validating if the field's value is a resolvable tcp6 address. | ||||
| func isTCP6AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP6Addr(fl) { | ||||
|  | @ -2069,7 +2079,7 @@ func isTCP6AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsTCPAddrResolvable is the validation function for validating if the field's value is a resolvable tcp address. | ||||
| // isTCPAddrResolvable is the validation function for validating if the field's value is a resolvable tcp address. | ||||
| func isTCPAddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP4Addr(fl) && !isIP6Addr(fl) { | ||||
|  | @ -2081,7 +2091,7 @@ func isTCPAddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsUDP4AddrResolvable is the validation function for validating if the field's value is a resolvable udp4 address. | ||||
| // isUDP4AddrResolvable is the validation function for validating if the field's value is a resolvable udp4 address. | ||||
| func isUDP4AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP4Addr(fl) { | ||||
|  | @ -2093,7 +2103,7 @@ func isUDP4AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsUDP6AddrResolvable is the validation function for validating if the field's value is a resolvable udp6 address. | ||||
| // isUDP6AddrResolvable is the validation function for validating if the field's value is a resolvable udp6 address. | ||||
| func isUDP6AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP6Addr(fl) { | ||||
|  | @ -2105,7 +2115,7 @@ func isUDP6AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsUDPAddrResolvable is the validation function for validating if the field's value is a resolvable udp address. | ||||
| // isUDPAddrResolvable is the validation function for validating if the field's value is a resolvable udp address. | ||||
| func isUDPAddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP4Addr(fl) && !isIP6Addr(fl) { | ||||
|  | @ -2117,7 +2127,7 @@ func isUDPAddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsIP4AddrResolvable is the validation function for validating if the field's value is a resolvable ip4 address. | ||||
| // isIP4AddrResolvable is the validation function for validating if the field's value is a resolvable ip4 address. | ||||
| func isIP4AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIPv4(fl) { | ||||
|  | @ -2129,7 +2139,7 @@ func isIP4AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsIP6AddrResolvable is the validation function for validating if the field's value is a resolvable ip6 address. | ||||
| // isIP6AddrResolvable is the validation function for validating if the field's value is a resolvable ip6 address. | ||||
| func isIP6AddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIPv6(fl) { | ||||
|  | @ -2141,7 +2151,7 @@ func isIP6AddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsIPAddrResolvable is the validation function for validating if the field's value is a resolvable ip address. | ||||
| // isIPAddrResolvable is the validation function for validating if the field's value is a resolvable ip address. | ||||
| func isIPAddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	if !isIP(fl) { | ||||
|  | @ -2153,7 +2163,7 @@ func isIPAddrResolvable(fl FieldLevel) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsUnixAddrResolvable is the validation function for validating if the field's value is a resolvable unix address. | ||||
| // isUnixAddrResolvable is the validation function for validating if the field's value is a resolvable unix address. | ||||
| func isUnixAddrResolvable(fl FieldLevel) bool { | ||||
| 
 | ||||
| 	_, err := net.ResolveUnixAddr("unix", fl.Field().String()) | ||||
|  | @ -2207,7 +2217,7 @@ func isFQDN(fl FieldLevel) bool { | |||
| 	return fqdnRegexRFC1123.MatchString(val) | ||||
| } | ||||
| 
 | ||||
| // IsDir is the validation function for validating if the current field's value is a valid directory. | ||||
| // isDir is the validation function for validating if the current field's value is a valid directory. | ||||
| func isDir(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
|  | @ -2235,6 +2245,11 @@ func isJSON(fl FieldLevel) bool { | |||
| 	panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| } | ||||
| 
 | ||||
| // isJWT is the validation function for validating if the current field's value is a valid JWT string. | ||||
| func isJWT(fl FieldLevel) bool { | ||||
| 	return jWTRegex.MatchString(fl.Field().String()) | ||||
| } | ||||
| 
 | ||||
| // isHostnamePort validates a <dns>:<port> combination for fields typically used for socket address. | ||||
| func isHostnamePort(fl FieldLevel) bool { | ||||
| 	val := fl.Field().String() | ||||
|  | @ -2352,6 +2367,28 @@ func isIso31662(fl FieldLevel) bool { | |||
| 	return iso3166_2[val] | ||||
| } | ||||
| 
 | ||||
| // isIso4217 is the validation function for validating if the current field's value is a valid iso4217 currency code. | ||||
| func isIso4217(fl FieldLevel) bool { | ||||
| 	val := fl.Field().String() | ||||
| 	return iso4217[val] | ||||
| } | ||||
| 
 | ||||
| // isIso4217Numeric is the validation function for validating if the current field's value is a valid iso4217 numeric currency code. | ||||
| func isIso4217Numeric(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
| 
 | ||||
| 	var code int | ||||
| 	switch field.Kind() { | ||||
| 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: | ||||
| 		code = int(field.Int()) | ||||
| 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: | ||||
| 		code = int(field.Uint()) | ||||
| 	default: | ||||
| 		panic(fmt.Sprintf("Bad field type %T", field.Interface())) | ||||
| 	} | ||||
| 	return iso4217_numeric[code] | ||||
| } | ||||
| 
 | ||||
| // isBCP47LanguageTag is the validation function for validating if the current field's value is a valid BCP 47 language tag, as parsed by language.Parse | ||||
| func isBCP47LanguageTag(fl FieldLevel) bool { | ||||
| 	field := fl.Field() | ||||
|  |  | |||
							
								
								
									
										79
									
								
								vendor/github.com/go-playground/validator/v10/currency_codes.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								vendor/github.com/go-playground/validator/v10/currency_codes.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,79 @@ | |||
| package validator | ||||
| 
 | ||||
| var iso4217 = map[string]bool{ | ||||
| 	"AFN": true, "EUR": true, "ALL": true, "DZD": true, "USD": true, | ||||
| 	"AOA": true, "XCD": true, "ARS": true, "AMD": true, "AWG": true, | ||||
| 	"AUD": true, "AZN": true, "BSD": true, "BHD": true, "BDT": true, | ||||
| 	"BBD": true, "BYN": true, "BZD": true, "XOF": true, "BMD": true, | ||||
| 	"INR": true, "BTN": true, "BOB": true, "BOV": true, "BAM": true, | ||||
| 	"BWP": true, "NOK": true, "BRL": true, "BND": true, "BGN": true, | ||||
| 	"BIF": true, "CVE": true, "KHR": true, "XAF": true, "CAD": true, | ||||
| 	"KYD": true, "CLP": true, "CLF": true, "CNY": true, "COP": true, | ||||
| 	"COU": true, "KMF": true, "CDF": true, "NZD": true, "CRC": true, | ||||
| 	"HRK": true, "CUP": true, "CUC": true, "ANG": true, "CZK": true, | ||||
| 	"DKK": true, "DJF": true, "DOP": true, "EGP": true, "SVC": true, | ||||
| 	"ERN": true, "SZL": true, "ETB": true, "FKP": true, "FJD": true, | ||||
| 	"XPF": true, "GMD": true, "GEL": true, "GHS": true, "GIP": true, | ||||
| 	"GTQ": true, "GBP": true, "GNF": true, "GYD": true, "HTG": true, | ||||
| 	"HNL": true, "HKD": true, "HUF": true, "ISK": true, "IDR": true, | ||||
| 	"XDR": true, "IRR": true, "IQD": true, "ILS": true, "JMD": true, | ||||
| 	"JPY": true, "JOD": true, "KZT": true, "KES": true, "KPW": true, | ||||
| 	"KRW": true, "KWD": true, "KGS": true, "LAK": true, "LBP": true, | ||||
| 	"LSL": true, "ZAR": true, "LRD": true, "LYD": true, "CHF": true, | ||||
| 	"MOP": true, "MKD": true, "MGA": true, "MWK": true, "MYR": true, | ||||
| 	"MVR": true, "MRU": true, "MUR": true, "XUA": true, "MXN": true, | ||||
| 	"MXV": true, "MDL": true, "MNT": true, "MAD": true, "MZN": true, | ||||
| 	"MMK": true, "NAD": true, "NPR": true, "NIO": true, "NGN": true, | ||||
| 	"OMR": true, "PKR": true, "PAB": true, "PGK": true, "PYG": true, | ||||
| 	"PEN": true, "PHP": true, "PLN": true, "QAR": true, "RON": true, | ||||
| 	"RUB": true, "RWF": true, "SHP": true, "WST": true, "STN": true, | ||||
| 	"SAR": true, "RSD": true, "SCR": true, "SLL": true, "SGD": true, | ||||
| 	"XSU": true, "SBD": true, "SOS": true, "SSP": true, "LKR": true, | ||||
| 	"SDG": true, "SRD": true, "SEK": true, "CHE": true, "CHW": true, | ||||
| 	"SYP": true, "TWD": true, "TJS": true, "TZS": true, "THB": true, | ||||
| 	"TOP": true, "TTD": true, "TND": true, "TRY": true, "TMT": true, | ||||
| 	"UGX": true, "UAH": true, "AED": true, "USN": true, "UYU": true, | ||||
| 	"UYI": true, "UYW": true, "UZS": true, "VUV": true, "VES": true, | ||||
| 	"VND": true, "YER": true, "ZMW": true, "ZWL": true, "XBA": true, | ||||
| 	"XBB": true, "XBC": true, "XBD": true, "XTS": true, "XXX": true, | ||||
| 	"XAU": true, "XPD": true, "XPT": true, "XAG": true, | ||||
| } | ||||
| 
 | ||||
| var iso4217_numeric = map[int]bool{ | ||||
| 	8: true, 12: true, 32: true, 36: true, 44: true, | ||||
| 	48: true, 50: true, 51: true, 52: true, 60: true, | ||||
| 	64: true, 68: true, 72: true, 84: true, 90: true, | ||||
| 	96: true, 104: true, 108: true, 116: true, 124: true, | ||||
| 	132: true, 136: true, 144: true, 152: true, 156: true, | ||||
| 	170: true, 174: true, 188: true, 191: true, 192: true, | ||||
| 	203: true, 208: true, 214: true, 222: true, 230: true, | ||||
| 	232: true, 238: true, 242: true, 262: true, 270: true, | ||||
| 	292: true, 320: true, 324: true, 328: true, 332: true, | ||||
| 	340: true, 344: true, 348: true, 352: true, 356: true, | ||||
| 	360: true, 364: true, 368: true, 376: true, 388: true, | ||||
| 	392: true, 398: true, 400: true, 404: true, 408: true, | ||||
| 	410: true, 414: true, 417: true, 418: true, 422: true, | ||||
| 	426: true, 430: true, 434: true, 446: true, 454: true, | ||||
| 	458: true, 462: true, 480: true, 484: true, 496: true, | ||||
| 	498: true, 504: true, 512: true, 516: true, 524: true, | ||||
| 	532: true, 533: true, 548: true, 554: true, 558: true, | ||||
| 	566: true, 578: true, 586: true, 590: true, 598: true, | ||||
| 	600: true, 604: true, 608: true, 634: true, 643: true, | ||||
| 	646: true, 654: true, 682: true, 690: true, 694: true, | ||||
| 	702: true, 704: true, 706: true, 710: true, 728: true, | ||||
| 	748: true, 752: true, 756: true, 760: true, 764: true, | ||||
| 	776: true, 780: true, 784: true, 788: true, 800: true, | ||||
| 	807: true, 818: true, 826: true, 834: true, 840: true, | ||||
| 	858: true, 860: true, 882: true, 886: true, 901: true, | ||||
| 	927: true, 928: true, 929: true, 930: true, 931: true, | ||||
| 	932: true, 933: true, 934: true, 936: true, 938: true, | ||||
| 	940: true, 941: true, 943: true, 944: true, 946: true, | ||||
| 	947: true, 948: true, 949: true, 950: true, 951: true, | ||||
| 	952: true, 953: true, 955: true, 956: true, 957: true, | ||||
| 	958: true, 959: true, 960: true, 961: true, 962: true, | ||||
| 	963: true, 964: true, 965: true, 967: true, 968: true, | ||||
| 	969: true, 970: true, 971: true, 972: true, 973: true, | ||||
| 	975: true, 976: true, 977: true, 978: true, 979: true, | ||||
| 	980: true, 981: true, 984: true, 985: true, 986: true, | ||||
| 	990: true, 994: true, 997: true, 999: true, | ||||
| } | ||||
							
								
								
									
										20
									
								
								vendor/github.com/go-playground/validator/v10/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/go-playground/validator/v10/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -7,6 +7,14 @@ and has the ability to dive into arrays and maps of any type. | |||
| 
 | ||||
| see more examples https://github.com/go-playground/validator/tree/master/_examples | ||||
| 
 | ||||
| Singleton | ||||
| 
 | ||||
| Validator is designed to be thread-safe and used as a singleton instance. | ||||
| It caches information about your struct and validations, | ||||
| in essence only parsing your validation tags once per struct type. | ||||
| Using multiple instances neglects the benefit of caching. | ||||
| The not thread-safe functions are explicitly marked as such in the documentation. | ||||
| 
 | ||||
| Validation Functions Return Type error | ||||
| 
 | ||||
| Doing things this way is actually the way the standard library does, see the | ||||
|  | @ -726,6 +734,12 @@ This validates that a string value contains unicode alphanumeric characters only | |||
| 
 | ||||
| 	Usage: alphanumunicode | ||||
| 
 | ||||
| Boolean | ||||
| 
 | ||||
| This validates that a string value can successfully be parsed into a boolean with strconv.ParseBool | ||||
| 
 | ||||
| 	Usage: boolean | ||||
| 
 | ||||
| Number | ||||
| 
 | ||||
| This validates that a string value contains number values only. | ||||
|  | @ -811,6 +825,12 @@ This validates that a string value is valid JSON | |||
| 
 | ||||
| 	Usage: json | ||||
| 
 | ||||
| JWT String | ||||
| 
 | ||||
| This validates that a string value is a valid JWT | ||||
| 
 | ||||
| 	Usage: jwt | ||||
| 
 | ||||
| File path | ||||
| 
 | ||||
| This validates that a string value contains a valid file path and that | ||||
|  |  | |||
							
								
								
									
										12
									
								
								vendor/github.com/go-playground/validator/v10/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/go-playground/validator/v10/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,12 +0,0 @@ | |||
| module github.com/go-playground/validator/v10 | ||||
| 
 | ||||
| go 1.13 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/go-playground/assert/v2 v2.0.1 | ||||
| 	github.com/go-playground/locales v0.13.0 | ||||
| 	github.com/go-playground/universal-translator v0.17.0 | ||||
| 	github.com/leodido/go-urn v1.2.0 | ||||
| 	golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 | ||||
| 	golang.org/x/text v0.3.2 // indirect | ||||
| ) | ||||
							
								
								
									
										33
									
								
								vendor/github.com/go-playground/validator/v10/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/go-playground/validator/v10/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,33 +0,0 @@ | |||
| github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= | ||||
| github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= | ||||
| github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= | ||||
| github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= | ||||
| github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= | ||||
| github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= | ||||
| github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= | ||||
| github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= | ||||
| 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/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | ||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| 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/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e h1:FDhOuMEY4JVRztM/gsbk+IKUQ8kj74bxZrgw87eMMVc= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||
| gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
							
								
								
									
										2
									
								
								vendor/github.com/go-playground/validator/v10/regexes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-playground/validator/v10/regexes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -48,6 +48,7 @@ const ( | |||
| 	uRLEncodedRegexString            = `^(?:[^%]|%[0-9A-Fa-f]{2})*$` | ||||
| 	hTMLEncodedRegexString           = `&#[x]?([0-9a-fA-F]{2})|(>)|(<)|(")|(&)+[;]?` | ||||
| 	hTMLRegexString                  = `<[/]?([a-zA-Z]+).*?>` | ||||
| 	jWTRegexString                   = "^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$" | ||||
| 	splitParamsRegexString           = `'[^']*'|\S+` | ||||
| 	bicRegexString                   = `^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$` | ||||
| ) | ||||
|  | @ -98,6 +99,7 @@ var ( | |||
| 	uRLEncodedRegex            = regexp.MustCompile(uRLEncodedRegexString) | ||||
| 	hTMLEncodedRegex           = regexp.MustCompile(hTMLEncodedRegexString) | ||||
| 	hTMLRegex                  = regexp.MustCompile(hTMLRegexString) | ||||
| 	jWTRegex                   = regexp.MustCompile(jWTRegexString) | ||||
| 	splitParamsRegex           = regexp.MustCompile(splitParamsRegexString) | ||||
| 	bicRegex                   = regexp.MustCompile(bicRegexString) | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										8
									
								
								vendor/github.com/go-playground/validator/v10/validator_instance.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-playground/validator/v10/validator_instance.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -89,6 +89,10 @@ type Validate struct { | |||
| } | ||||
| 
 | ||||
| // New returns a new instance of 'validate' with sane defaults. | ||||
| // Validate is designed to be thread-safe and used as a singleton instance. | ||||
| // It caches information about your struct and validations, | ||||
| // in essence only parsing your validation tags once per struct type. | ||||
| // Using multiple instances neglects the benefit of caching. | ||||
| func New() *Validate { | ||||
| 
 | ||||
| 	tc := new(tagCache) | ||||
|  | @ -207,11 +211,11 @@ func (v *Validate) RegisterValidationCtx(tag string, fn FuncCtx, callValidationE | |||
| 
 | ||||
| func (v *Validate) registerValidation(tag string, fn FuncCtx, bakedIn bool, nilCheckable bool) error { | ||||
| 	if len(tag) == 0 { | ||||
| 		return errors.New("Function Key cannot be empty") | ||||
| 		return errors.New("function Key cannot be empty") | ||||
| 	} | ||||
| 
 | ||||
| 	if fn == nil { | ||||
| 		return errors.New("Function cannot be empty") | ||||
| 		return errors.New("function cannot be empty") | ||||
| 	} | ||||
| 
 | ||||
| 	_, ok := restrictedTags[tag] | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue