UNPKG

@darkwolf/validator

Version:
64 lines (61 loc) 2.52 kB
import Protocol from './Protocol.mjs' export { Protocol } export default class Constants { static BASE58_ALPHABET = 'AveDarkwo1f23456789BCEFGHJKLMNPQRSTUVWXYZbcdghijmnpqstuxyz' static TIMESTAMP_PATTERN = '^[1-9]\\d{11,12}$' static UNIX_TIMESTAMP_PATTERN = '^[1-9]\\d{8,9}$' static MILLIS_UNIX_TIMESTAMP_PATTERN = `${ this.UNIX_TIMESTAMP_PATTERN.slice(0, -1) }(\\.\\d{1,3})?$` static UUID_PATTERN = '^[A-Fa-f\\d]{8}-([A-Fa-f\\d]{4}-){3}[A-Fa-f\\d]{12}$' static PROTOCOL_PATTERN = `^(${ Object.values(Protocol).map(protocol => `(${protocol})`).join('|') })$` static DNS_PATTERN = '^(([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+([a-z]{2,})$' static IPV4_PATTERN = '^((\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$' static HOSTNAME_PATTERN = `^((${ this.DNS_PATTERN.slice(1, -1) })|(${ this.IPV4_PATTERN.slice(1, -1) }))$` static PORT_PATTERN = '^([1-9]\\d{0,3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d{1}|6553[0-5])$' static HOST_PATTERN = `^${ this.HOSTNAME_PATTERN.slice(1, -1) }(:${ this.PORT_PATTERN.slice(1, -1) })?$` static ORIGIN_PATTERN = `^${ this.PROTOCOL_PATTERN.slice(1, -1) }://${ this.HOST_PATTERN.slice(1, -1) }$` static URL_PATHNAME_PATTERN = '^(/[\\w-.%+@&:~]*)*$' static URL_QUERY_PATTERN = '^[\\w-.%+@&=:;,~]*$' static URL_SEARCH_PATTERN = `^\\?(${this.URL_QUERY_PATTERN.slice(1, -1)})$` static URL_FRAGMENT_PATTERN = '^[\\w-]*$' static URL_HASH_PATTERN = `^#(${this.URL_FRAGMENT_PATTERN.slice(1, -1)})$` static URL_PATH_PATTERN = `^(${ this.URL_PATHNAME_PATTERN.slice(1, -1) })?(${ this.URL_SEARCH_PATTERN.slice(1, -1) })?(${ this.URL_HASH_PATTERN.slice(1, -1) })?$` static URL_PATTERN = `^(${ this.ORIGIN_PATTERN.slice(1, -1) })(${ this.URL_PATH_PATTERN.slice(1, -1) })?$` static EMAIL_PATTERN = `^([\\w-.]+)@(${this.DNS_PATTERN.slice(1, -1)})$` static PHONE_NUMBER_PATTERN = '^\\+[1-9]\\d{6,14}$' static ASCII_PATTERN = '^[ -~]+$' static BASE64_PATTERN = '^([A-Za-z\\d+/]{4}|([A-Za-z\\d+/]{3}=|[A-Za-z\\d+/]{2}==)|([A-Za-z\\d+/]{4})+([A-Za-z\\d+/]{3}=|[A-Za-z\\d+/]{2}==)?)$' static BASE64URL_PATTERN = '^[\\w-]+$' static BASE58_PATTERN = `^[${this.BASE58_ALPHABET}]+$` static JWT_PATTERN = '^([\\w-]+\\.){2}[\\w-]*$' static HASH_PATTERN = `^[${this.BASE58_ALPHABET}]{64}$` static UID_PATTERN = `^[${this.BASE58_ALPHABET}]{20}$` static Protocol = Protocol }