123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- 'use strict';
- // Load modules
- // Declare internals
- const internals = {};
- exports.errors = {
- root: 'value',
- key: '"{{!label}}" ',
- messages: {
- wrapArrays: true
- },
- any: {
- unknown: 'is not allowed',
- invalid: 'contains an invalid value',
- empty: 'is not allowed to be empty',
- required: 'is required',
- allowOnly: 'must be one of {{valids}}',
- default: 'threw an error when running default method'
- },
- alternatives: {
- base: 'not matching any of the allowed alternatives',
- child: null
- },
- array: {
- base: 'must be an array',
- includes: 'at position {{pos}} does not match any of the allowed types',
- includesSingle: 'single value of "{{!label}}" does not match any of the allowed types',
- includesOne: 'at position {{pos}} fails because {{reason}}',
- includesOneSingle: 'single value of "{{!label}}" fails because {{reason}}',
- includesRequiredUnknowns: 'does not contain {{unknownMisses}} required value(s)',
- includesRequiredKnowns: 'does not contain {{knownMisses}}',
- includesRequiredBoth: 'does not contain {{knownMisses}} and {{unknownMisses}} other required value(s)',
- excludes: 'at position {{pos}} contains an excluded value',
- excludesSingle: 'single value of "{{!label}}" contains an excluded value',
- hasKnown: 'does not contain at least one required match for type "{{!patternLabel}}"',
- hasUnknown: 'does not contain at least one required match',
- min: 'must contain at least {{limit}} items',
- max: 'must contain less than or equal to {{limit}} items',
- length: 'must contain {{limit}} items',
- ordered: 'at position {{pos}} fails because {{reason}}',
- orderedLength: 'at position {{pos}} fails because array must contain at most {{limit}} items',
- ref: 'references "{{ref}}" which is not a positive integer',
- sparse: 'must not be a sparse array',
- unique: 'position {{pos}} contains a duplicate value'
- },
- boolean: {
- base: 'must be a boolean'
- },
- binary: {
- base: 'must be a buffer or a string',
- min: 'must be at least {{limit}} bytes',
- max: 'must be less than or equal to {{limit}} bytes',
- length: 'must be {{limit}} bytes'
- },
- date: {
- base: 'must be a number of milliseconds or valid date string',
- strict: 'must be a valid date',
- min: 'must be larger than or equal to "{{limit}}"',
- max: 'must be less than or equal to "{{limit}}"',
- less: 'must be less than "{{limit}}"',
- greater: 'must be greater than "{{limit}}"',
- isoDate: 'must be a valid ISO 8601 date',
- timestamp: {
- javascript: 'must be a valid timestamp or number of milliseconds',
- unix: 'must be a valid timestamp or number of seconds'
- },
- ref: 'references "{{ref}}" which is not a date'
- },
- function: {
- base: 'must be a Function',
- arity: 'must have an arity of {{n}}',
- minArity: 'must have an arity greater or equal to {{n}}',
- maxArity: 'must have an arity lesser or equal to {{n}}',
- ref: 'must be a Joi reference',
- class: 'must be a class'
- },
- lazy: {
- base: '!!schema error: lazy schema must be set',
- schema: '!!schema error: lazy schema function must return a schema'
- },
- object: {
- base: 'must be an object',
- child: '!!child "{{!child}}" fails because {{reason}}',
- min: 'must have at least {{limit}} children',
- max: 'must have less than or equal to {{limit}} children',
- length: 'must have {{limit}} children',
- allowUnknown: '!!"{{!child}}" is not allowed',
- with: '!!"{{mainWithLabel}}" missing required peer "{{peerWithLabel}}"',
- without: '!!"{{mainWithLabel}}" conflict with forbidden peer "{{peerWithLabel}}"',
- missing: 'must contain at least one of {{peersWithLabels}}',
- xor: 'contains a conflict between exclusive peers {{peersWithLabels}}',
- oxor: 'contains a conflict between optional exclusive peers {{peersWithLabels}}',
- and: 'contains {{presentWithLabels}} without its required peers {{missingWithLabels}}',
- nand: '!!"{{mainWithLabel}}" must not exist simultaneously with {{peersWithLabels}}',
- assert: '!!"{{ref}}" validation failed because "{{ref}}" failed to {{message}}',
- rename: {
- multiple: 'cannot rename child "{{from}}" because multiple renames are disabled and another key was already renamed to "{{to}}"',
- override: 'cannot rename child "{{from}}" because override is disabled and target "{{to}}" exists',
- regex: {
- multiple: 'cannot rename children {{from}} because multiple renames are disabled and another key was already renamed to "{{to}}"',
- override: 'cannot rename children {{from}} because override is disabled and target "{{to}}" exists'
- }
- },
- type: 'must be an instance of "{{type}}"',
- schema: 'must be a Joi instance'
- },
- number: {
- base: 'must be a number',
- unsafe: 'must be a safe number',
- min: 'must be larger than or equal to {{limit}}',
- max: 'must be less than or equal to {{limit}}',
- less: 'must be less than {{limit}}',
- greater: 'must be greater than {{limit}}',
- integer: 'must be an integer',
- negative: 'must be a negative number',
- positive: 'must be a positive number',
- precision: 'must have no more than {{limit}} decimal places',
- ref: 'references "{{ref}}" which is not a number',
- multiple: 'must be a multiple of {{multiple}}',
- port: 'must be a valid port'
- },
- string: {
- base: 'must be a string',
- min: 'length must be at least {{limit}} characters long',
- max: 'length must be less than or equal to {{limit}} characters long',
- length: 'length must be {{limit}} characters long',
- alphanum: 'must only contain alpha-numeric characters',
- token: 'must only contain alpha-numeric and underscore characters',
- regex: {
- base: 'with value "{{!value}}" fails to match the required pattern: {{pattern}}',
- name: 'with value "{{!value}}" fails to match the {{name}} pattern',
- invert: {
- base: 'with value "{{!value}}" matches the inverted pattern: {{pattern}}',
- name: 'with value "{{!value}}" matches the inverted {{name}} pattern'
- }
- },
- email: 'must be a valid email',
- uri: 'must be a valid uri',
- uriRelativeOnly: 'must be a valid relative uri',
- uriCustomScheme: 'must be a valid uri with a scheme matching the {{scheme}} pattern',
- isoDate: 'must be a valid ISO 8601 date',
- guid: 'must be a valid GUID',
- hex: 'must only contain hexadecimal characters',
- hexAlign: 'hex decoded representation must be byte aligned',
- base64: 'must be a valid base64 string',
- dataUri: 'must be a valid dataUri string',
- hostname: 'must be a valid hostname',
- normalize: 'must be unicode normalized in the {{form}} form',
- lowercase: 'must only contain lowercase characters',
- uppercase: 'must only contain uppercase characters',
- trim: 'must not have leading or trailing whitespace',
- creditCard: 'must be a credit card',
- ref: 'references "{{ref}}" which is not a number',
- ip: 'must be a valid ip address with a {{cidr}} CIDR',
- ipVersion: 'must be a valid ip address of one of the following versions {{version}} with a {{cidr}} CIDR'
- },
- symbol: {
- base: 'must be a symbol',
- map: 'must be one of {{map}}'
- }
- };
|