Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import Joi from 'joi'
let myJoi = Joi.extend({
base: Joi.object(),
name: 'object',
language: {
json: 'invalid json', // Used below as 'number.round'
},
coerce(value, state, options) {
if (this._flags.json && value &&
typeof value.toJSON === 'function') {
return value.toJSON()
}
return value
},
pre(value, state, options) {
return value
},
rules: [{
const rawJoi = require('joi');
const Cursor = require('../../../_common/pagination/cursor');
const DATE0 = new Date(0);
const Joi = rawJoi.extend(joi => ({
base: joi.string().base64({ paddingRequired: false }),
name: 'cursor',
rules: [
{
name: 'valid',
validate(_, value, state, options) {
const [ts, id, sort] = Cursor.decode(value);
if (!ts || !id || !sort) {
// Generate an error, state and options need to be passed
return this.createError('cursor.wrong', { v: value }, state, options);
}
return value; // Everything is OK
},
},
],
}));
const rawJoi = require('joi');
const { output } = require('./common');
const Cursor = require('../../../../pagination/cursor');
const DATE0 = new Date(0);
const Joi = rawJoi.extend(joi => ({
base: joi.string().base64({ paddingRequired: false }),
name: 'cursor',
rules: [
{
name: 'valid',
validate(params, value, state, options) {
const [ts, id, sort] = Cursor.decode(value);
if (!ts || !id || !sort) {
// Generate an error, state and options need to be passed
return this.createError('cursor.wrong', { v: value }, state, options);
}
return value; // Everything is OK
},
},
],
}));
public static init(): void {
this.joi = Joi.extend(extensions);
}
'use strict'
const Joi = require('joi')
const mongoose = require('mongoose')
const objectIdJoi = Joi.extend({
base: Joi.string(),
name: 'objectId',
language: {
isValid: 'needs to be a valid MongoDB ObjectId',
},
rules: [
{
name: 'isValid',
validate(params, value, state, options) {
if (!mongoose.Types.ObjectId.isValid(value)) {
return this.createError(
'objectId.isValid',
{ v: value },
state,
options,
)
"use strict";
const joi = require("joi").extend(require("joi-extension-semver"));
const path = require("path");
const fs = require("fs");
const vulnPaths = require("../../vuln").paths;
const coreModel = joi.object().keys({
cve: joi
.array()
.items(joi.string().regex(/CVE-\d{4}-\d+/))
.required(),
ref: joi
.string()
.uri()
.optional(),
vulnerable: joi
.semver()
.validRange()
/**
* Module dependencies
*/
const joiZxcvbn = require('joi-zxcvbn');
const PlainJoi = require('joi');
const path = require('path');
const Joi = PlainJoi.extend(joiZxcvbn(PlainJoi));
const config = require(path.resolve('./config'));
/**
* User Data Schema
*/
const UserSchema = Joi.object().keys({
sub: Joi.string().trim().default(''),
firstName: Joi.string().alphanum().min(1).max(30)
.trim()
.required(),
lastName: Joi.string().alphanum().min(1).max(30)
.trim()
.required(),
displayName: Joi.string().trim(),
email: Joi.string().email({ minDomainAtoms: 2 }),
profileImageURL: Joi.string(),
const BaseJoi = require('joi');
const DateExtension = require('joi-date-extensions');
const Joi = BaseJoi.extend(DateExtension);
const schema = Joi.object().keys({
flags: Joi.object().keys({
user: Joi.string().email().required(),
password: Joi.string().required(),
start: Joi.date().format('DD/MM/YYYY'),
end: Joi.date().format('DD/MM/YYYY')
}),
input: Joi.array().items(Joi.string().equal('hour', 'day', 'month', 'year').required()).length(1)
}).options({stripUnknown: true});
module.exports = input => {
if (input.input.length === 0) {
return {error: true, message: 'You need to choose between "hour", "day", "month" and "year"'};
}
const res = Joi.validate(input, schema);
constructor() {
this.joi = Joi.extend(extensions)
}