2022-03-06 12:47:40 +07:00
|
|
|
package model
|
2022-03-03 18:20:43 +07:00
|
|
|
|
2022-06-28 10:15:50 +07:00
|
|
|
import (
|
|
|
|
"regexp"
|
|
|
|
)
|
|
|
|
|
2022-03-03 18:20:43 +07:00
|
|
|
const (
|
|
|
|
errFmtValueNil = "cannot value model type '%T' with value nil to driver.Value"
|
|
|
|
errFmtScanNil = "cannot scan model type '%T' from value nil: type doesn't support nil values"
|
|
|
|
errFmtScanInvalidType = "cannot scan model type '%T' from type '%T' with value '%v'"
|
|
|
|
errFmtScanInvalidTypeErr = "cannot scan model type '%T' from type '%T' with value '%v': %w"
|
|
|
|
)
|
2022-03-28 08:26:30 +07:00
|
|
|
|
|
|
|
const (
|
|
|
|
// SecondFactorMethodTOTP method using Time-Based One-Time Password applications like Google Authenticator.
|
|
|
|
SecondFactorMethodTOTP = "totp"
|
|
|
|
|
|
|
|
// SecondFactorMethodWebauthn method using Webauthn devices like YubiKey's.
|
|
|
|
SecondFactorMethodWebauthn = "webauthn"
|
|
|
|
|
|
|
|
// SecondFactorMethodDuo method using Duo application to receive push notifications.
|
|
|
|
SecondFactorMethodDuo = "mobile_push"
|
|
|
|
)
|
2022-06-28 10:15:50 +07:00
|
|
|
|
|
|
|
var reSemanticVersion = regexp.MustCompile(`^v?(?P<Major>\d+)\.(?P<Minor>\d+)\.(?P<Patch>\d+)(\-(?P<PreRelease>[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*))?(\+(?P<Metadata>[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*))?$`)
|
|
|
|
|
|
|
|
const (
|
|
|
|
semverRegexpGroupPreRelease = "PreRelease"
|
|
|
|
)
|