| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | 'use strict';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}}'    }};
 |