Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/domains/note.picotech.app/public_html/node_modules/express-validator/lib/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpressValidator = void 0;
const matched_data_1 = require("./matched-data");
const check_1 = require("./middlewares/check");
const exact_1 = require("./middlewares/exact");
const one_of_1 = require("./middlewares/one-of");
const schema_1 = require("./middlewares/schema");
const validation_result_1 = require("./validation-result");
/* eslint-enable no-use-before-define */
class ExpressValidator {
constructor(validators, sanitizers, options) {
this.validators = validators;
this.sanitizers = sanitizers;
this.options = options;
/**
* Creates a middleware/validation chain for one or more fields that may be located in
* any of the following:
*
* - `req.body`
* - `req.cookies`
* - `req.headers`
* - `req.params`
* - `req.query`
*
* @param fields a string or array of field names to validate/sanitize
* @param message an error message to use when failed validations don't specify a custom message.
* Defaults to `Invalid Value`.
*/
this.check = this.buildCheckFunction(['body', 'cookies', 'headers', 'params', 'query']);
/**
* Same as {@link ExpressValidator.check}, but only validates in `req.body`.
*/
this.body = this.buildCheckFunction(['body']);
/**
* Same as {@link ExpressValidator.check}, but only validates in `req.cookies`.
*/
this.cookie = this.buildCheckFunction(['cookies']);
/**
* Same as {@link ExpressValidator.check}, but only validates in `req.headers`.
*/
this.header = this.buildCheckFunction(['headers']);
/**
* Same as {@link ExpressValidator.check}, but only validates in `req.params`.
*/
this.param = this.buildCheckFunction(['params']);
/**
* Same as {@link ExpressValidator.check}, but only validates in `req.query`.
*/
this.query = this.buildCheckFunction(['query']);
/**
* Checks whether the request contains exactly only those fields that have been validated.
*
* This method is here for convenience; it does exactly the same as `checkExact`.
*
* @see {@link checkExact}
*/
this.checkExact = exact_1.checkExact;
/**
* Creates an express middleware with validations for multiple fields at once in the form of
* a schema object.
*
* @param schema the schema to validate.
* @param defaultLocations which locations to validate in each field. Defaults to every location.
*/
// NOTE: This method references its own type, so the type cast is necessary.
this.checkSchema = (0, schema_1.createCheckSchema)((...args) => this.createChain(...args), Object.keys(this.validators || {}), Object.keys(this.sanitizers || {}));
/**
* Extracts the validation errors of an express request using the default error formatter of this
* instance.
*
* @see {@link validationResult()}
* @param req the express request object
* @returns a `Result` which will by default use the error formatter passed when
* instantiating `ExpressValidator`.
*/
this.validationResult = (req) => {
const formatter = this.options?.errorFormatter;
const result = (0, validation_result_1.validationResult)(req);
return formatter ? result.formatWith(formatter) : result;
};
this.validatorEntries = Object.entries(validators || {});
this.sanitizerEntries = Object.entries(sanitizers || {});
// Can't use arrow function in the declaration of `buildCheckFunction` due to the following
// error which only happens when tests are run without Jest cache (so CI only):
//
// 'buildCheckFunction' implicitly has type 'any' because it does not have a type annotation
// and is referenced directly or indirectly in its own initializer
this.buildCheckFunction = this.buildCheckFunction.bind(this);
}
createChain(fields = '', locations = [], message) {
const middleware = (0, check_1.check)(fields, locations, message);
const boundValidators = Object.fromEntries(this.validatorEntries.map(([name, fn]) => [name, () => middleware.custom(fn)]));
const boundSanitizers = Object.fromEntries(this.sanitizerEntries.map(([name, fn]) => [name, () => middleware.customSanitizer(fn)]));
return Object.assign(middleware, boundValidators, boundSanitizers);
}
buildCheckFunction(locations) {
return (fields, message) => this.createChain(fields, locations, message);
}
/**
* Creates a middleware that will ensure that at least one of the given validation chains
* or validation chain groups are valid.
*
* If none are, a single error of type `alternative` is added to the request,
* with the errors of each chain made available under the `nestedErrors` property.
*
* @param chains an array of validation chains to check if are valid.
* If any of the items of `chains` is an array of validation chains, then all of them
* must be valid together for the request to be considered valid.
*/
oneOf(chains, options) {
return (0, one_of_1.oneOf)(chains, options);
}
/**
* Extracts data validated or sanitized from the request, and builds an object with them.
*
* This method is a shortcut for `matchedData`; it does nothing different than it.
*
* @see {@link matchedData}
*/
matchedData(req, options) {
return (0, matched_data_1.matchedData)(req, options);
}
}
exports.ExpressValidator = ExpressValidator;
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]-- |