🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

joi-extension-semver

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

joi-extension-semver - npm Package Compare versions

Comparing version

to
3.0.0

CHANGELOG.md

54

index.js
'use strict'
var joi = require('joi')
var semver = require('semver')
const Joi = require('@hapi/joi')
const semver = require('semver')
var extensionName = 'semver'
const extensionName = 'semver'
var validRule = {
const validRule = {
name: 'valid',
validate: function (params, value, state, options) {
return semver.valid(value) ? value : this.createError(extensionName + '.valid', { v: value }, state, options)
return semver.valid(value) ? value : this.createError(`${extensionName}.valid`, { v: value }, state, options)
}
}
var simpleComparatorRules = ['gt', 'gte', 'lt', 'lte', 'eq', 'neq'].map(function (name) {
const simpleComparatorRules = ['gt', 'gte', 'lt', 'lte', 'eq', 'neq'].map(function (name) {
return {
name: name,
name,
params: {
exp: joi.string().required()
exp: Joi.string().required()
},
validate: function (params, value, state, options) {
return semver[name](value, params.exp) ? value : this.createError(extensionName + '.' + name, { v: value, exp: params.exp }, state, options)
return semver[name](value, params.exp) ? value : this.createError(`${extensionName}.${name}`, { v: value, exp: params.exp }, state, options)
}

@@ -27,28 +27,28 @@ }

var cmpRule = {
const cmpRule = {
name: 'cmp',
params: {
cmp: joi.string().required(),
exp: joi.string().required()
cmp: Joi.string().required(),
exp: Joi.string().required()
},
validate: function (params, value, state, options) {
return semver.cmp(value, params.cmp, params.exp) ? value : this.createError(extensionName + '.cmp', { v: value, cmp: params.cmp, exp: params.exp }, state, options)
return semver.cmp(value, params.cmp, params.exp) ? value : this.createError(`${extensionName}.cmp`, { v: value, cmp: params.cmp, exp: params.exp }, state, options)
}
}
var validRangeRule = {
const validRangeRule = {
name: 'validRange',
validate: function (params, value, state, options) {
return semver.validRange(value) ? value : this.createError(extensionName + '.validRange', { v: value }, state, options)
return semver.validRange(value) ? value : this.createError(`${extensionName}.validRange`, { v: value }, state, options)
}
}
var rangeComparatorRules = ['satisfies', 'gtr', 'ltr'].map(function (name) {
const rangeComparatorRules = ['satisfies', 'gtr', 'ltr'].map(function (name) {
return {
name: name,
name,
params: {
rng: joi.string().required()
rng: Joi.string().required()
},
validate: function (params, value, state, options) {
return semver[name](value, params.rng) ? value : this.createError(extensionName + '.' + name, { v: value, rng: params.rng }, state, options)
return semver[name](value, params.rng) ? value : this.createError(`${extensionName}.${name}`, { v: value, rng: params.rng }, state, options)
}

@@ -58,14 +58,14 @@ }

var outsideRule = {
const outsideRule = {
name: 'outside',
params: {
hilo: joi.string().required(),
rng: joi.string().required()
hilo: Joi.string().required(),
rng: Joi.string().required()
},
validate: function (params, value, state, options) {
return semver.outside(value, params.rng, params.hilo) ? value : this.createError(extensionName + '.outside', { v: value, hilo: params.hilo, rng: params.rng }, state, options)
return semver.outside(value, params.rng, params.hilo) ? value : this.createError(`${extensionName}.outside`, { v: value, hilo: params.hilo, rng: params.rng }, state, options)
}
}
var rules = []
const rules = []
.concat([validRule])

@@ -78,4 +78,4 @@ .concat(simpleComparatorRules)

var extension = {
base: joi.string(),
const extension = {
base: Joi.string(),
name: 'semver',

@@ -97,5 +97,5 @@ language: {

},
rules: rules
rules
}
module.exports = extension
{
"name": "joi-extension-semver",
"version": "2.0.0",
"version": "3.0.0",
"description": "Semver extension for the Joi validation library",

@@ -8,3 +8,3 @@ "main": "index.js",

"lint": "eslint **/*.js",
"test": "mocha index.spec.js"
"test": "nyc mocha index.spec.js"
},

@@ -16,22 +16,27 @@ "keywords": [

],
"files": [],
"author": "David Szakallas <david.szakallas@gmail.com>",
"license": "MIT",
"devDependencies": {
"chai": "^3.5.0",
"eslint": "^3.3.1",
"eslint-config-standard": "^5.3.5",
"eslint-plugin-promise": "^2.0.1",
"eslint-plugin-standard": "^2.0.0",
"mocha": "^3.0.2",
"@hapi/joi": "^15.0.3",
"chai": "^4.2.0",
"eslint": "^5.16.0",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-import": "^2.17.3",
"eslint-plugin-node": "^9.1.0",
"eslint-plugin-promise": "^4.1.1",
"eslint-plugin-standard": "^4.0.0",
"mocha": "^6.1.4",
"nyc": "^14.1.1",
"pre-commit": "^1.1.3"
},
"peerDependencies": {
"joi": ">=9.0.0"
"@hapi/joi": ">=15.0.0"
},
"dependencies": {
"semver": "^5.3.0"
"semver": "^6.1.1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/szdavid92/joi-extension-semver.git"
"repository": "dszakallas/joi-extension-semver",
"engines": {
"node": ">= 8"
},

@@ -41,3 +46,14 @@ "pre-commit": [

"test"
]
],
"nyc": {
"all": true,
"check-coverage": true,
"exclude": [
"index.spec.js"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}
}
# joi-extension-semver
[![Build Status](https://travis-ci.org/szdavid92/joi-extension-semver.svg?branch=master)](https://travis-ci.org/szdavid92/joi-extension-semver)
[![Build Status](https://travis-ci.org/dszakallas/joi-extension-semver.svg?branch=master)](https://travis-ci.org/dszakallas/joi-extension-semver)

@@ -11,8 +11,8 @@ Semver extension for the Joi validation library

var joi = require('joi')
.extend(require('joi-extension-semver'));
const Joi = require('@hapi/joi')
.extend(require('joi-extension-semver'))
joi.attempt('1.2.3', joi.semver().gte('1.2.3')); //1.2.3
joi.attempt('1.2.3', joi.semver().lt('1.2.3')); // throws ValidationError
joi.attempt('1.2.3', joi.semver().satisfies('^1.0.0')); // 1.2.3
Joi.attempt('1.2.3', joi.semver().gte('1.2.3')) // 1.2.3
Joi.attempt('1.2.3', joi.semver().lt('1.2.3')) // throws ValidationError
Joi.attempt('1.2.3', joi.semver().satisfies('^1.0.0')) // 1.2.3
```

@@ -47,19 +47,26 @@

### `semver.valid()`
Validates that the value is a semver version.
Asserts `valid(value)`.
### `semver.gt(exp)`
Asserts `gt(value, exp)`.
### `semver.gte(exp)`
Asserts `gte(value, exp)`.
### `semver.lt(exp)`
Asserts `lt(value, exp)`.
### `semver.lte(exp)`
Asserts `lte(value, exp)`.
### `semver.eq(exp)`
Asserts `eq(value, exp)`.
### `semver.neq(exp)`
### `semver.cmp(cmp, exp)`
Asserts `neq(value, exp)`.
### `semver.cmp(comp, exp)`
Asserts `cmp(value, comp, exp)`.
### `semver.validRange()`
Validates that the value is a semver range.
Asserts `validRange(value)`.
### `semver.satisfies(rng)`
Asserts `satisfies(value, rng)`.
### `semver.gtr(rng)`
Asserts `gtr(value, rng)`.
### `semver.ltr(rng)`
Asserts `ltr(value, rng)`.
### `semver.outside(hilo, rng)`
Asserts `outside(value, hilo, rng)`.