Socket
Socket
Sign inDemoInstall

better-ajv-errors

Package Overview
Dependencies
25
Maintainers
3
Versions
33
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.5.1 to 0.5.2

lib/legacy/__tests__/helpers.js

69

lib/legacy/helpers.js

@@ -1,41 +0,41 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _entries = require('babel-runtime/core-js/object/entries');
var _entries2 = _interopRequireDefault(_entries);
exports.makeTree = makeTree;
exports.filterRedundantErrors = filterRedundantErrors;
exports.createErrorInstances = createErrorInstances;
exports.default = void 0;
var _utils = require('./utils');
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _validationErrors = require('./validation-errors');
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _validationErrors = require("./validation-errors");
var JSON_POINTERS_REGEX = /\/[\w_-]+(\/\d+)?/g;
var JSON_POINTERS_REGEX = /\/[\w_-]+(\/\d+)?/g; // Make a tree of errors from ajv errors array
// Make a tree of errors from ajv errors array
function makeTree() {
var ajvErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
function makeTree(ajvErrors) {
if (ajvErrors === void 0) {
ajvErrors = [];
}
var root = { children: {} };
var root = {
children: {}
};
ajvErrors.forEach(function (ajvError) {
var dataPath = ajvError.dataPath;
var dataPath = ajvError.dataPath; // `dataPath === ''` is root
// `dataPath === ''` is root
var paths = dataPath === '' ? [''] : dataPath.match(JSON_POINTERS_REGEX);
paths && paths.reduce(function (obj, path, i) {
obj.children[path] = obj.children[path] || { children: {}, errors: [] };
obj.children[path] = obj.children[path] || {
children: {},
errors: []
};
if (i === paths.length - 1) {
obj.children[path].errors.push(ajvError);
}
return obj.children[path];

@@ -58,3 +58,2 @@ }, root);

});
/**

@@ -65,6 +64,6 @@ * If there is an `anyOf` error that means we have more meaningful errors

// TODO: Need to check children too. There might be no children :(
if ((0, _utils.getErrors)(root).some(_utils.isAnyOfError)) {
delete root.errors;
}
/**

@@ -78,5 +77,6 @@ * If all errors are `enum` and siblings have any error then we can safely

*/
if (root.errors && (0, _utils.getErrors)(root).every(_utils.isEnumError)) {
if ((0, _utils.getSiblings)(parent)(root)
// Remove any reference which becomes `undefined` later
if ((0, _utils.getSiblings)(parent)(root) // Remove any reference which becomes `undefined` later
.filter(_utils.notUndefined).some(_utils.getErrors)) {

@@ -87,3 +87,3 @@ delete parent.children[key];

(0, _entries2.default)(root.children).forEach(function (_ref) {
Object.entries(root.children).forEach(function (_ref) {
var key = _ref[0],

@@ -97,2 +97,3 @@ child = _ref[1];

var errors = (0, _utils.getErrors)(root);
if (errors.length && errors.every(_utils.isEnumError)) {

@@ -103,4 +104,6 @@ var allowedValues = (0, _utils.concatAll)([])(errors.map(function (e) {

var error = errors[0];
return [new _validationErrors.EnumValidationError((0, _assign2.default)({}, error, {
params: { allowedValues }
return [new _validationErrors.EnumValidationError((0, _extends2.default)({}, error, {
params: {
allowedValues
}
}), options)];

@@ -112,4 +115,6 @@ } else {

return ret.concat(new _validationErrors.AdditionalPropValidationError(error, options));
case 'required':
return ret.concat(new _validationErrors.RequiredValidationError(error, options));
default:

@@ -124,6 +129,8 @@ return ret.concat(new _validationErrors.DefaultValidationError(error, options));

exports.default = function (ajvErrors, options) {
var _default = function _default(ajvErrors, options) {
var tree = makeTree(ajvErrors || []);
filterRedundantErrors(tree);
return createErrorInstances(tree, options);
};
};
exports.default = _default;

@@ -1,37 +0,36 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _jsonToAst = _interopRequireDefault(require("json-to-ast"));
var _stringify2 = _interopRequireDefault(_stringify);
var _helpers = _interopRequireDefault(require("./helpers"));
var _jsonToAst = require('json-to-ast');
var _default = function _default(schema, data, errors, options) {
if (options === void 0) {
options = {};
}
var _jsonToAst2 = _interopRequireDefault(_jsonToAst);
var _options = options,
_options$format = _options.format,
format = _options$format === void 0 ? 'cli' : _options$format,
_options$indent = _options.indent,
indent = _options$indent === void 0 ? null : _options$indent;
var jsonRaw = JSON.stringify(data, null, indent);
var jsonAst = (0, _jsonToAst.default)(jsonRaw, {
loc: true
});
var _helpers = require('./helpers');
var _helpers2 = _interopRequireDefault(_helpers);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (schema, data, errors) {
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var _options$format = options.format,
format = _options$format === undefined ? 'cli' : _options$format,
_options$indent = options.indent,
indent = _options$indent === undefined ? null : _options$indent;
var jsonRaw = (0, _stringify2.default)(data, null, indent);
var jsonAst = (0, _jsonToAst2.default)(jsonRaw, { loc: true });
var customErrorToText = function customErrorToText(error) {
return error.print().join('\n');
};
var customErrorToStructure = function customErrorToStructure(error) {
return error.getError();
};
var customErrors = (0, _helpers2.default)(errors, {
var customErrors = (0, _helpers.default)(errors, {
data,

@@ -50,2 +49,3 @@ schema,

module.exports = exports['default'];
exports.default = _default;
module.exports = exports["default"];

@@ -1,5 +0,6 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = getMetaFromPath;
function getMetaFromPath(jsonAst, dataPath, isIdentifierLocation) {

@@ -16,13 +17,16 @@ // TODO: Handle json pointer escape notation and better error handling

});
if (filtered.length !== 1) {
throw new Error(`Couldn't find property ${pointer} of ${dataPath}`);
}
var _filtered$ = filtered[0],
key = _filtered$.key,
value = _filtered$.value;
return isIdentifierLocation && idx === lastPointerIndex ? key : value;
}
case 'Array':
return obj.children[pointer];
default:

@@ -34,2 +38,3 @@ // eslint-disable-next-line no-console

}
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,14 +0,10 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.getMetaFromPath = void 0;
var _getMetaFromPath = require('./get-meta-from-path');
var _getMetaFromPath = _interopRequireDefault(require("./get-meta-from-path"));
Object.defineProperty(exports, 'getMetaFromPath', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_getMetaFromPath).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.getMetaFromPath = _getMetaFromPath.default;

@@ -1,18 +0,26 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.getSchemaAndData = undefined;
exports.getSchemaAndData = getSchemaAndData;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _fs = require("fs");
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _jestFixtures = require("jest-fixtures");
var getSchemaAndData = exports.getSchemaAndData = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(name, dirPath) {
function getSchemaAndData(_x, _x2) {
return _getSchemaAndData.apply(this, arguments);
}
function _getSchemaAndData() {
_getSchemaAndData = (0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee(name, dirPath) {
var schemaPath, schema, dataPath, data;
return _regenerator2.default.wrap(function _callee$(_context) {
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {

@@ -33,6 +41,6 @@ switch (_context.prev = _context.next) {

data = JSON.parse((0, _fs.readFileSync)(dataPath, 'utf8'));
return _context.abrupt('return', [schema, data]);
return _context.abrupt("return", [schema, data]);
case 9:
case 'end':
case "end":
return _context.stop();

@@ -43,12 +51,3 @@ }

}));
return function getSchemaAndData(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var _fs = require('fs');
var _jestFixtures = require('jest-fixtures');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
return _getSchemaAndData.apply(this, arguments);
}

@@ -1,12 +0,6 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.notUndefined = exports.concatAll = exports.getErrors = exports.getSiblings = exports.getChildren = exports.isEnumError = exports.isAnyOfError = exports.isRequiredError = undefined;
exports.notUndefined = exports.concatAll = exports.getErrors = exports.getSiblings = exports.getChildren = exports.isEnumError = exports.isAnyOfError = exports.isRequiredError = void 0;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var eq = function eq(x) {

@@ -17,2 +11,3 @@ return function (y) {

};
var not = function not(fn) {

@@ -30,10 +25,16 @@ return function (x) {

var isRequiredError = exports.isRequiredError = isXError('required');
var isAnyOfError = exports.isAnyOfError = isXError('anyOf');
var isEnumError = exports.isEnumError = isXError('enum');
var isRequiredError = isXError('required');
exports.isRequiredError = isRequiredError;
var isAnyOfError = isXError('anyOf');
exports.isAnyOfError = isAnyOfError;
var isEnumError = isXError('enum');
exports.isEnumError = isEnumError;
var getChildren = exports.getChildren = function getChildren(node) {
return node && (0, _values2.default)(node.children) || [];
var getChildren = function getChildren(node) {
return node && Object.values(node.children) || [];
};
var getSiblings = exports.getSiblings = function getSiblings(parent) {
exports.getChildren = getChildren;
var getSiblings = function getSiblings(parent) {
return function (node) {

@@ -43,7 +44,12 @@ return getChildren(parent).filter(not(eq(node)));

};
var getErrors = exports.getErrors = function getErrors(node) {
exports.getSiblings = getSiblings;
var getErrors = function getErrors(node) {
return node && node.errors || [];
};
var concatAll = exports.concatAll = function concatAll(xs) {
exports.getErrors = getErrors;
var concatAll = function concatAll(xs) {
return function (ys) {

@@ -55,4 +61,9 @@ return ys.reduce(function (zs, z) {

};
var notUndefined = exports.notUndefined = function notUndefined(x) {
exports.concatAll = concatAll;
var notUndefined = function notUndefined(x) {
return x !== undefined;
};
};
exports.notUndefined = notUndefined;

@@ -1,43 +0,29 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _assign = require('babel-runtime/core-js/object/assign');
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _assign2 = _interopRequireDefault(_assign);
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _chalk = _interopRequireDefault(require("chalk"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _base = _interopRequireDefault(require("./base"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var AdditionalPropValidationError =
/*#__PURE__*/
function (_BaseValidationError) {
(0, _inheritsLoose2.default)(AdditionalPropValidationError, _BaseValidationError);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var AdditionalPropValidationError = function (_BaseValidationError) {
(0, _inherits3.default)(AdditionalPropValidationError, _BaseValidationError);
function AdditionalPropValidationError() {
(0, _classCallCheck3.default)(this, AdditionalPropValidationError);
var _this;
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var _this = (0, _possibleConstructorReturn3.default)(this, _BaseValidationError.call.apply(_BaseValidationError, [this].concat(args)));
_this = _BaseValidationError.call.apply(_BaseValidationError, [this].concat(args)) || this;
_this.options.isIdentifierLocation = true;

@@ -47,20 +33,18 @@ return _this;

AdditionalPropValidationError.prototype.print = function print() {
var _options = this.options,
message = _options.message,
dataPath = _options.dataPath,
params = _options.params;
var _proto = AdditionalPropValidationError.prototype;
var output = [_chalk2.default`{red {bold ADDTIONAL PROPERTY} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`😲 {magentaBright ${params.additionalProperty}} is not expected to be here!`, `${dataPath}/${params.additionalProperty}`));
_proto.print = function print() {
var _this$options = this.options,
message = _this$options.message,
dataPath = _this$options.dataPath,
params = _this$options.params;
var output = [_chalk.default`{red {bold ADDTIONAL PROPERTY} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`😲 {magentaBright ${params.additionalProperty}} is not expected to be here!`, `${dataPath}/${params.additionalProperty}`));
};
AdditionalPropValidationError.prototype.getError = function getError() {
var _options2 = this.options,
params = _options2.params,
dataPath = _options2.dataPath;
return (0, _assign2.default)({}, this.getLocation(`${dataPath}/${params.additionalProperty}`), {
_proto.getError = function getError() {
var _this$options2 = this.options,
params = _this$options2.params,
dataPath = _this$options2.dataPath;
return (0, _extends2.default)({}, this.getLocation(`${dataPath}/${params.additionalProperty}`), {
error: `Property ${params.additionalProperty} is not expected to be here`

@@ -71,5 +55,5 @@ });

return AdditionalPropValidationError;
}(_base2.default);
}(_base.default);
exports.default = AdditionalPropValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,19 +0,20 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _codeFrame = require("@babel/code-frame");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _json = require("../json");
var _codeFrame = require('@babel/code-frame');
var BaseValidationError =
/*#__PURE__*/
function () {
function BaseValidationError(options, _ref) {
if (options === void 0) {
options = {
isIdentifierLocation: false
};
}
var _json = require('../json');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var BaseValidationError = function () {
function BaseValidationError() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { isIdentifierLocation: false };
var _ref = arguments[1];
var data = _ref.data,

@@ -23,4 +24,2 @@ schema = _ref.schema,

jsonRaw = _ref.jsonRaw;
(0, _classCallCheck3.default)(this, BaseValidationError);
this.options = options;

@@ -33,8 +32,13 @@ this.data = data;

BaseValidationError.prototype.getLocation = function getLocation() {
var dataPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.dataPath;
var _options = this.options,
isIdentifierLocation = _options.isIdentifierLocation,
isSkipEndLocation = _options.isSkipEndLocation;
var _proto = BaseValidationError.prototype;
_proto.getLocation = function getLocation(dataPath) {
if (dataPath === void 0) {
dataPath = this.options.dataPath;
}
var _this$options = this.options,
isIdentifierLocation = _this$options.isIdentifierLocation,
isSkipEndLocation = _this$options.isSkipEndLocation;
var _getMetaFromPath = (0, _json.getMetaFromPath)(this.jsonAst, dataPath, isIdentifierLocation),

@@ -49,4 +53,6 @@ loc = _getMetaFromPath.loc;

BaseValidationError.prototype.getCodeFrame = function getCodeFrame(message) {
var dataPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.dataPath;
_proto.getCodeFrame = function getCodeFrame(message, dataPath) {
if (dataPath === void 0) {
dataPath = this.options.dataPath;
}

@@ -59,7 +65,7 @@ return (0, _codeFrame.codeFrameColumns)(this.jsonRaw, this.getLocation(dataPath), {

BaseValidationError.prototype.print = function print() {
_proto.print = function print() {
throw new Error(`Implement the 'print' method inside ${this.constructor.name}!`);
};
BaseValidationError.prototype.getError = function getError() {
_proto.getError = function getError() {
throw new Error(`Implement the 'getError' method inside ${this.constructor.name}!`);

@@ -72,2 +78,2 @@ };

exports.default = BaseValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,57 +0,41 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _assign = require('babel-runtime/core-js/object/assign');
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _assign2 = _interopRequireDefault(_assign);
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _chalk = _interopRequireDefault(require("chalk"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _base = _interopRequireDefault(require("./base"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var DefaultValidationError =
/*#__PURE__*/
function (_BaseValidationError) {
(0, _inheritsLoose2.default)(DefaultValidationError, _BaseValidationError);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DefaultValidationError = function (_BaseValidationError) {
(0, _inherits3.default)(DefaultValidationError, _BaseValidationError);
function DefaultValidationError() {
(0, _classCallCheck3.default)(this, DefaultValidationError);
return (0, _possibleConstructorReturn3.default)(this, _BaseValidationError.apply(this, arguments));
return _BaseValidationError.apply(this, arguments) || this;
}
DefaultValidationError.prototype.print = function print() {
var _options = this.options,
keyword = _options.keyword,
message = _options.message;
var _proto = DefaultValidationError.prototype;
var output = [_chalk2.default`{red {bold ${keyword.toUpperCase()}} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`👈đŸŊ {magentaBright ${keyword}} ${message}`));
_proto.print = function print() {
var _this$options = this.options,
keyword = _this$options.keyword,
message = _this$options.message;
var output = [_chalk.default`{red {bold ${keyword.toUpperCase()}} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`👈đŸŊ {magentaBright ${keyword}} ${message}`));
};
DefaultValidationError.prototype.getError = function getError() {
var _options2 = this.options,
keyword = _options2.keyword,
message = _options2.message,
dataPath = _options2.dataPath;
return (0, _assign2.default)({}, this.getLocation(), {
_proto.getError = function getError() {
var _this$options2 = this.options,
keyword = _this$options2.keyword,
message = _this$options2.message,
dataPath = _this$options2.dataPath;
return (0, _extends2.default)({}, this.getLocation(), {
error: `${dataPath}: ${keyword} ${message}`

@@ -62,5 +46,5 @@ });

return DefaultValidationError;
}(_base2.default);
}(_base.default);
exports.default = DefaultValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,68 +0,47 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _assign = require('babel-runtime/core-js/object/assign');
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _assign2 = _interopRequireDefault(_assign);
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _chalk = _interopRequireDefault(require("chalk"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _leven = _interopRequireDefault(require("leven"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _jsonpointer = _interopRequireDefault(require("jsonpointer"));
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _base = _interopRequireDefault(require("./base"));
var _inherits2 = require('babel-runtime/helpers/inherits');
var EnumValidationError =
/*#__PURE__*/
function (_BaseValidationError) {
(0, _inheritsLoose2.default)(EnumValidationError, _BaseValidationError);
var _inherits3 = _interopRequireDefault(_inherits2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _leven = require('leven');
var _leven2 = _interopRequireDefault(_leven);
var _jsonpointer = require('jsonpointer');
var _jsonpointer2 = _interopRequireDefault(_jsonpointer);
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var EnumValidationError = function (_BaseValidationError) {
(0, _inherits3.default)(EnumValidationError, _BaseValidationError);
function EnumValidationError() {
(0, _classCallCheck3.default)(this, EnumValidationError);
return (0, _possibleConstructorReturn3.default)(this, _BaseValidationError.apply(this, arguments));
return _BaseValidationError.apply(this, arguments) || this;
}
EnumValidationError.prototype.print = function print() {
var _options = this.options,
message = _options.message,
allowedValues = _options.params.allowedValues;
var _proto = EnumValidationError.prototype;
_proto.print = function print() {
var _this$options = this.options,
message = _this$options.message,
allowedValues = _this$options.params.allowedValues;
var bestMatch = this.findBestMatch();
var output = [_chalk2.default`{red {bold ENUM} ${message}}`, _chalk2.default`{red (${allowedValues.join(', ')})}\n`];
return output.concat(this.getCodeFrame(bestMatch !== null ? _chalk2.default`👈đŸŊ Did you mean {magentaBright ${bestMatch}} here?` : _chalk2.default`👈đŸŊ Unexpected value, should be equal to one of the allowed values`));
var output = [_chalk.default`{red {bold ENUM} ${message}}`, _chalk.default`{red (${allowedValues.join(', ')})}\n`];
return output.concat(this.getCodeFrame(bestMatch !== null ? _chalk.default`👈đŸŊ Did you mean {magentaBright ${bestMatch}} here?` : _chalk.default`👈đŸŊ Unexpected value, should be equal to one of the allowed values`));
};
EnumValidationError.prototype.getError = function getError() {
var _options2 = this.options,
message = _options2.message,
dataPath = _options2.dataPath,
params = _options2.params;
_proto.getError = function getError() {
var _this$options2 = this.options,
message = _this$options2.message,
dataPath = _this$options2.dataPath,
params = _this$options2.params;
var bestMatch = this.findBestMatch();
var output = (0, _assign2.default)({}, this.getLocation(), {
var output = (0, _extends2.default)({}, this.getLocation(), {
error: `${dataPath} ${message}: ${params.allowedValues.join(', ')}`

@@ -78,8 +57,8 @@ });

EnumValidationError.prototype.findBestMatch = function findBestMatch() {
var _options3 = this.options,
dataPath = _options3.dataPath,
allowedValues = _options3.params.allowedValues;
_proto.findBestMatch = function findBestMatch() {
var _this$options3 = this.options,
dataPath = _this$options3.dataPath,
allowedValues = _this$options3.params.allowedValues;
var currentValue = _jsonpointer2.default.get(this.data, dataPath);
var currentValue = _jsonpointer.default.get(this.data, dataPath);

@@ -93,3 +72,3 @@ if (!currentValue) {

value,
weight: (0, _leven2.default)(value, currentValue.toString())
weight: (0, _leven.default)(value, currentValue.toString())
};

@@ -99,3 +78,2 @@ }).sort(function (x, y) {

})[0];
return allowedValues.length === 1 || bestMatch.weight < bestMatch.value.length ? bestMatch.value : null;

@@ -105,5 +83,5 @@ };

return EnumValidationError;
}(_base2.default);
}(_base.default);
exports.default = EnumValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,41 +0,22 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.DefaultValidationError = exports.EnumValidationError = exports.AdditionalPropValidationError = exports.RequiredValidationError = void 0;
var _required = require('./required');
var _required = _interopRequireDefault(require("./required"));
Object.defineProperty(exports, 'RequiredValidationError', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_required).default;
}
});
exports.RequiredValidationError = _required.default;
var _additionalProp = require('./additional-prop');
var _additionalProp = _interopRequireDefault(require("./additional-prop"));
Object.defineProperty(exports, 'AdditionalPropValidationError', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_additionalProp).default;
}
});
exports.AdditionalPropValidationError = _additionalProp.default;
var _enum = require('./enum');
var _enum = _interopRequireDefault(require("./enum"));
Object.defineProperty(exports, 'EnumValidationError', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_enum).default;
}
});
exports.EnumValidationError = _enum.default;
var _default = require('./default');
var _default = _interopRequireDefault(require("./default"));
Object.defineProperty(exports, 'DefaultValidationError', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_default).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.DefaultValidationError = _default.default;

@@ -1,63 +0,51 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _assign = require('babel-runtime/core-js/object/assign');
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _assign2 = _interopRequireDefault(_assign);
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _chalk = _interopRequireDefault(require("chalk"));
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _base = _interopRequireDefault(require("./base"));
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var RequiredValidationError =
/*#__PURE__*/
function (_BaseValidationError) {
(0, _inheritsLoose2.default)(RequiredValidationError, _BaseValidationError);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var RequiredValidationError = function (_BaseValidationError) {
(0, _inherits3.default)(RequiredValidationError, _BaseValidationError);
function RequiredValidationError() {
(0, _classCallCheck3.default)(this, RequiredValidationError);
return (0, _possibleConstructorReturn3.default)(this, _BaseValidationError.apply(this, arguments));
return _BaseValidationError.apply(this, arguments) || this;
}
RequiredValidationError.prototype.getLocation = function getLocation() {
var dataPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.dataPath;
var _proto = RequiredValidationError.prototype;
_proto.getLocation = function getLocation(dataPath) {
if (dataPath === void 0) {
dataPath = this.options.dataPath;
}
var _BaseValidationError$ = _BaseValidationError.prototype.getLocation.call(this, dataPath),
start = _BaseValidationError$.start;
return { start };
return {
start
};
};
RequiredValidationError.prototype.print = function print() {
var _options = this.options,
message = _options.message,
params = _options.params;
var output = [_chalk2.default`{red {bold REQUIRED} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`☚ī¸ {magentaBright ${params.missingProperty}} is missing here!`));
_proto.print = function print() {
var _this$options = this.options,
message = _this$options.message,
params = _this$options.params;
var output = [_chalk.default`{red {bold REQUIRED} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`☚ī¸ {magentaBright ${params.missingProperty}} is missing here!`));
};
RequiredValidationError.prototype.getError = function getError() {
_proto.getError = function getError() {
var params = this.options.params;
return (0, _assign2.default)({}, this.getLocation(), {
return (0, _extends2.default)({}, this.getLocation(), {
error: `Required property ${params.missingProperty} is missing`

@@ -68,5 +56,5 @@ });

return RequiredValidationError;
}(_base2.default);
}(_base.default);
exports.default = RequiredValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -7,22 +7,32 @@ exports.__esModule = true;

exports.createErrorInstances = createErrorInstances;
exports.default = void 0;
var _utils = require('./utils');
var _utils = require("./utils");
var _validationErrors = require('./validation-errors');
var _validationErrors = require("./validation-errors");
const JSON_POINTERS_REGEX = /\/[\w_-]+(\/\d+)?/g;
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
// Make a tree of errors from ajv errors array
const JSON_POINTERS_REGEX = /\/[\w_-]+(\/\d+)?/g; // Make a tree of errors from ajv errors array
function makeTree(ajvErrors = []) {
const root = { children: {} };
const root = {
children: {}
};
ajvErrors.forEach(ajvError => {
const { dataPath } = ajvError;
const {
dataPath
} = ajvError; // `dataPath === ''` is root
// `dataPath === ''` is root
const paths = dataPath === '' ? [''] : dataPath.match(JSON_POINTERS_REGEX);
paths && paths.reduce((obj, path, i) => {
obj.children[path] = obj.children[path] || { children: {}, errors: [] };
obj.children[path] = obj.children[path] || {
children: {},
errors: []
};
if (i === paths.length - 1) {
obj.children[path].errors.push(ajvError);
}
return obj.children[path];

@@ -45,3 +55,2 @@ }, root);

});
/**

@@ -52,6 +61,6 @@ * If there is an `anyOf` error that means we have more meaningful errors

// TODO: Need to check children too. There might be no children :(
if ((0, _utils.getErrors)(root).some(_utils.isAnyOfError)) {
delete root.errors;
}
/**

@@ -65,5 +74,6 @@ * If all errors are `enum` and siblings have any error then we can safely

*/
if (root.errors && (0, _utils.getErrors)(root).every(_utils.isEnumError)) {
if ((0, _utils.getSiblings)(parent)(root)
// Remove any reference which becomes `undefined` later
if ((0, _utils.getSiblings)(parent)(root) // Remove any reference which becomes `undefined` later
.filter(_utils.notUndefined).some(_utils.getErrors)) {

@@ -79,7 +89,10 @@ delete parent.children[key];

const errors = (0, _utils.getErrors)(root);
if (errors.length && errors.every(_utils.isEnumError)) {
const allowedValues = (0, _utils.concatAll)([])(errors.map(e => e.params.allowedValues));
const error = errors[0];
return [new _validationErrors.EnumValidationError(Object.assign({}, error, {
params: { allowedValues }
return [new _validationErrors.EnumValidationError(_extends({}, error, {
params: {
allowedValues
}
}), options)];

@@ -91,4 +104,6 @@ } else {

return ret.concat(new _validationErrors.AdditionalPropValidationError(error, options));
case 'required':
return ret.concat(new _validationErrors.RequiredValidationError(error, options));
default:

@@ -103,6 +118,8 @@ return ret.concat(new _validationErrors.DefaultValidationError(error, options));

exports.default = (ajvErrors, options) => {
var _default = (ajvErrors, options) => {
const tree = makeTree(ajvErrors || []);
filterRedundantErrors(tree);
return createErrorInstances(tree, options);
};
};
exports.default = _default;

@@ -1,24 +0,27 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _jsonToAst = require('json-to-ast');
var _jsonToAst = _interopRequireDefault(require("json-to-ast"));
var _jsonToAst2 = _interopRequireDefault(_jsonToAst);
var _helpers = _interopRequireDefault(require("./helpers"));
var _helpers = require('./helpers');
var _helpers2 = _interopRequireDefault(_helpers);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = (schema, data, errors, options = {}) => {
const { format = 'cli', indent = null } = options;
var _default = (schema, data, errors, options = {}) => {
const {
format = 'cli',
indent = null
} = options;
const jsonRaw = JSON.stringify(data, null, indent);
const jsonAst = (0, _jsonToAst2.default)(jsonRaw, { loc: true });
const jsonAst = (0, _jsonToAst.default)(jsonRaw, {
loc: true
});
const customErrorToText = error => error.print().join('\n');
const customErrorToStructure = error => error.getError();
const customErrors = (0, _helpers2.default)(errors, {
const customErrors = (0, _helpers.default)(errors, {
data,

@@ -37,2 +40,3 @@ schema,

module.exports = exports['default'];
exports.default = _default;
module.exports = exports["default"];

@@ -1,5 +0,6 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = getMetaFromPath;
function getMetaFromPath(jsonAst, dataPath, isIdentifierLocation) {

@@ -14,10 +15,17 @@ // TODO: Handle json pointer escape notation and better error handling

const filtered = obj.children.filter(child => child.key.value === pointer);
if (filtered.length !== 1) {
throw new Error(`Couldn't find property ${pointer} of ${dataPath}`);
}
const { key, value } = filtered[0];
const {
key,
value
} = filtered[0];
return isIdentifierLocation && idx === lastPointerIndex ? key : value;
}
case 'Array':
return obj.children[pointer];
default:

@@ -29,2 +37,3 @@ // eslint-disable-next-line no-console

}
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,14 +0,10 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.getMetaFromPath = void 0;
var _getMetaFromPath = require('./get-meta-from-path');
var _getMetaFromPath = _interopRequireDefault(require("./get-meta-from-path"));
Object.defineProperty(exports, 'getMetaFromPath', {
enumerable: true,
get: function () {
return _interopRequireDefault(_getMetaFromPath).default;
}
});
exports.getMetaFromPath = _getMetaFromPath.default;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,5 +6,5 @@ exports.__esModule = true;

var _fs = require('fs');
var _fs = require("fs");
var _jestFixtures = require('jest-fixtures');
var _jestFixtures = require("jest-fixtures");

@@ -16,4 +16,3 @@ async function getSchemaAndData(name, dirPath) {

const data = JSON.parse((0, _fs.readFileSync)(dataPath, 'utf8'));
return [schema, data];
}

@@ -1,5 +0,8 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.notUndefined = exports.concatAll = exports.getErrors = exports.getSiblings = exports.getChildren = exports.isEnumError = exports.isAnyOfError = exports.isRequiredError = void 0;
const eq = x => y => x === y;
const not = fn => x => !fn(x);

@@ -9,11 +12,27 @@

const isRequiredError = exports.isRequiredError = isXError('required');
const isAnyOfError = exports.isAnyOfError = isXError('anyOf');
const isEnumError = exports.isEnumError = isXError('enum');
const isRequiredError = isXError('required');
exports.isRequiredError = isRequiredError;
const isAnyOfError = isXError('anyOf');
exports.isAnyOfError = isAnyOfError;
const isEnumError = isXError('enum');
exports.isEnumError = isEnumError;
const getChildren = exports.getChildren = node => node && Object.values(node.children) || [];
const getSiblings = exports.getSiblings = parent => node => getChildren(parent).filter(not(eq(node)));
const getErrors = exports.getErrors = node => node && node.errors || [];
const getChildren = node => node && Object.values(node.children) || [];
const concatAll = exports.concatAll = xs => ys => ys.reduce((zs, z) => zs.concat(z), xs);
const notUndefined = exports.notUndefined = x => x !== undefined;
exports.getChildren = getChildren;
const getSiblings = parent => node => getChildren(parent).filter(not(eq(node)));
exports.getSiblings = getSiblings;
const getErrors = node => node && node.errors || [];
exports.getErrors = getErrors;
const concatAll = xs => ys => ys.reduce((zs, z) => zs.concat(z), xs);
exports.concatAll = concatAll;
const notUndefined = x => x !== undefined;
exports.notUndefined = notUndefined;

@@ -1,16 +0,15 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _chalk = require('chalk');
var _chalk = _interopRequireDefault(require("chalk"));
var _chalk2 = _interopRequireDefault(_chalk);
var _base = _interopRequireDefault(require("./base"));
var _base = require('./base');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _base2 = _interopRequireDefault(_base);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class AdditionalPropValidationError extends _base2.default {
class AdditionalPropValidationError extends _base.default {
constructor(...args) {

@@ -22,17 +21,24 @@ super(...args);

print() {
const { message, dataPath, params } = this.options;
const output = [_chalk2.default`{red {bold ADDTIONAL PROPERTY} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`😲 {magentaBright ${params.additionalProperty}} is not expected to be here!`, `${dataPath}/${params.additionalProperty}`));
const {
message,
dataPath,
params
} = this.options;
const output = [_chalk.default`{red {bold ADDTIONAL PROPERTY} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`😲 {magentaBright ${params.additionalProperty}} is not expected to be here!`, `${dataPath}/${params.additionalProperty}`));
}
getError() {
const { params, dataPath } = this.options;
return Object.assign({}, this.getLocation(`${dataPath}/${params.additionalProperty}`), {
const {
params,
dataPath
} = this.options;
return _extends({}, this.getLocation(`${dataPath}/${params.additionalProperty}`), {
error: `Property ${params.additionalProperty} is not expected to be here`
});
}
}
exports.default = AdditionalPropValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,11 +0,19 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _codeFrame = require('@babel/code-frame');
var _codeFrame = require("@babel/code-frame");
var _json = require('../json');
var _json = require("../json");
class BaseValidationError {
constructor(options = { isIdentifierLocation: false }, { data, schema, jsonAst, jsonRaw }) {
constructor(options = {
isIdentifierLocation: false
}, {
data,
schema,
jsonAst,
jsonRaw
}) {
this.options = options;

@@ -19,4 +27,9 @@ this.data = data;

getLocation(dataPath = this.options.dataPath) {
const { isIdentifierLocation, isSkipEndLocation } = this.options;
const { loc } = (0, _json.getMetaFromPath)(this.jsonAst, dataPath, isIdentifierLocation);
const {
isIdentifierLocation,
isSkipEndLocation
} = this.options;
const {
loc
} = (0, _json.getMetaFromPath)(this.jsonAst, dataPath, isIdentifierLocation);
return {

@@ -42,4 +55,6 @@ start: loc.start,

}
}
exports.default = BaseValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,32 +0,38 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _chalk = require('chalk');
var _chalk = _interopRequireDefault(require("chalk"));
var _chalk2 = _interopRequireDefault(_chalk);
var _base = _interopRequireDefault(require("./base"));
var _base = require('./base');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _base2 = _interopRequireDefault(_base);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class DefaultValidationError extends _base2.default {
class DefaultValidationError extends _base.default {
print() {
const { keyword, message } = this.options;
const output = [_chalk2.default`{red {bold ${keyword.toUpperCase()}} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`👈đŸŊ {magentaBright ${keyword}} ${message}`));
const {
keyword,
message
} = this.options;
const output = [_chalk.default`{red {bold ${keyword.toUpperCase()}} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`👈đŸŊ {magentaBright ${keyword}} ${message}`));
}
getError() {
const { keyword, message, dataPath } = this.options;
return Object.assign({}, this.getLocation(), {
const {
keyword,
message,
dataPath
} = this.options;
return _extends({}, this.getLocation(), {
error: `${dataPath}: ${keyword} ${message}`
});
}
}
exports.default = DefaultValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,38 +0,40 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _chalk = require('chalk');
var _chalk = _interopRequireDefault(require("chalk"));
var _chalk2 = _interopRequireDefault(_chalk);
var _leven = _interopRequireDefault(require("leven"));
var _leven = require('leven');
var _jsonpointer = _interopRequireDefault(require("jsonpointer"));
var _leven2 = _interopRequireDefault(_leven);
var _base = _interopRequireDefault(require("./base"));
var _jsonpointer = require('jsonpointer');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _jsonpointer2 = _interopRequireDefault(_jsonpointer);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var _base = require('./base');
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class EnumValidationError extends _base2.default {
class EnumValidationError extends _base.default {
print() {
const { message, params: { allowedValues } } = this.options;
const {
message,
params: {
allowedValues
}
} = this.options;
const bestMatch = this.findBestMatch();
const output = [_chalk2.default`{red {bold ENUM} ${message}}`, _chalk2.default`{red (${allowedValues.join(', ')})}\n`];
return output.concat(this.getCodeFrame(bestMatch !== null ? _chalk2.default`👈đŸŊ Did you mean {magentaBright ${bestMatch}} here?` : _chalk2.default`👈đŸŊ Unexpected value, should be equal to one of the allowed values`));
const output = [_chalk.default`{red {bold ENUM} ${message}}`, _chalk.default`{red (${allowedValues.join(', ')})}\n`];
return output.concat(this.getCodeFrame(bestMatch !== null ? _chalk.default`👈đŸŊ Did you mean {magentaBright ${bestMatch}} here?` : _chalk.default`👈đŸŊ Unexpected value, should be equal to one of the allowed values`));
}
getError() {
const { message, dataPath, params } = this.options;
const {
message,
dataPath,
params
} = this.options;
const bestMatch = this.findBestMatch();
const output = Object.assign({}, this.getLocation(), {
const output = _extends({}, this.getLocation(), {
error: `${dataPath} ${message}: ${params.allowedValues.join(', ')}`

@@ -49,5 +51,11 @@ });

findBestMatch() {
const { dataPath, params: { allowedValues } } = this.options;
const currentValue = _jsonpointer2.default.get(this.data, dataPath);
const {
dataPath,
params: {
allowedValues
}
} = this.options;
const currentValue = _jsonpointer.default.get(this.data, dataPath);
if (!currentValue) {

@@ -59,9 +67,10 @@ return null;

value,
weight: (0, _leven2.default)(value, currentValue.toString())
weight: (0, _leven.default)(value, currentValue.toString())
})).sort((x, y) => x.weight > y.weight ? 1 : x.weight < y.weight ? -1 : 0)[0];
return allowedValues.length === 1 || bestMatch.weight < bestMatch.value.length ? bestMatch.value : null;
}
}
exports.default = EnumValidationError;
module.exports = exports['default'];
module.exports = exports["default"];

@@ -1,41 +0,22 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.DefaultValidationError = exports.EnumValidationError = exports.AdditionalPropValidationError = exports.RequiredValidationError = void 0;
var _required = require('./required');
var _required = _interopRequireDefault(require("./required"));
Object.defineProperty(exports, 'RequiredValidationError', {
enumerable: true,
get: function () {
return _interopRequireDefault(_required).default;
}
});
exports.RequiredValidationError = _required.default;
var _additionalProp = require('./additional-prop');
var _additionalProp = _interopRequireDefault(require("./additional-prop"));
Object.defineProperty(exports, 'AdditionalPropValidationError', {
enumerable: true,
get: function () {
return _interopRequireDefault(_additionalProp).default;
}
});
exports.AdditionalPropValidationError = _additionalProp.default;
var _enum = require('./enum');
var _enum = _interopRequireDefault(require("./enum"));
Object.defineProperty(exports, 'EnumValidationError', {
enumerable: true,
get: function () {
return _interopRequireDefault(_enum).default;
}
});
exports.EnumValidationError = _enum.default;
var _default = require('./default');
var _default = _interopRequireDefault(require("./default"));
Object.defineProperty(exports, 'DefaultValidationError', {
enumerable: true,
get: function () {
return _interopRequireDefault(_default).default;
}
});
exports.DefaultValidationError = _default.default;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -1,37 +0,45 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _chalk = require('chalk');
var _chalk = _interopRequireDefault(require("chalk"));
var _chalk2 = _interopRequireDefault(_chalk);
var _base = _interopRequireDefault(require("./base"));
var _base = require('./base');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _base2 = _interopRequireDefault(_base);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class RequiredValidationError extends _base2.default {
class RequiredValidationError extends _base.default {
getLocation(dataPath = this.options.dataPath) {
const { start } = super.getLocation(dataPath);
return { start };
const {
start
} = super.getLocation(dataPath);
return {
start
};
}
print() {
const { message, params } = this.options;
const output = [_chalk2.default`{red {bold REQUIRED} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk2.default`☚ī¸ {magentaBright ${params.missingProperty}} is missing here!`));
const {
message,
params
} = this.options;
const output = [_chalk.default`{red {bold REQUIRED} ${message}}\n`];
return output.concat(this.getCodeFrame(_chalk.default`☚ī¸ {magentaBright ${params.missingProperty}} is missing here!`));
}
getError() {
const { params } = this.options;
return Object.assign({}, this.getLocation(), {
const {
params
} = this.options;
return _extends({}, this.getLocation(), {
error: `Required property ${params.missingProperty} is missing`
});
}
}
exports.default = RequiredValidationError;
module.exports = exports['default'];
module.exports = exports["default"];
{
"name": "better-ajv-errors",
"version": "0.5.1",
"version": "0.5.2",
"description": "JSON Schema validation for Human",

@@ -26,5 +26,6 @@ "repository": "torifat/better-ajv-errors",

"dependencies": {
"@babel/code-frame": "^7.0.0-beta.39",
"chalk": "^2.3.1",
"json-to-ast": "^2.0.2",
"@babel/code-frame": "^7.0.0-rc.1",
"@babel/runtime": "^7.0.0-rc.1",
"chalk": "^2.4.1",
"json-to-ast": "^2.0.3",
"jsonpointer": "^4.0.1",

@@ -34,19 +35,20 @@ "leven": "^2.1.0"

"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-jest": "^22.2.2",
"@babel/cli": "^7.0.0-rc.1",
"@babel/core": "^7.0.0-rc.1",
"@babel/plugin-syntax-object-rest-spread": "^7.0.0-rc.1",
"@babel/plugin-transform-runtime": "^7.0.0-rc.1",
"@babel/preset-env": "^7.0.0-rc.1",
"babel-core": "^7.0.0-0",
"babel-jest": "^23.4.2",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.1",
"codecov": "^3.0.0",
"eslint": "^4.17.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-jest": "^21.8.0",
"flow-bin": "^0.65.0",
"codecov": "^3.0.4",
"eslint": "^5.4.0",
"eslint-config-prettier": "^3.0.1",
"eslint-plugin-jest": "^21.21.0",
"flow-bin": "^0.79.1",
"husky": "^0.14.3",
"jest": "^22.2.2",
"jest": "^23.5.0",
"jest-fixtures": "^0.6.0",
"lint-staged": "^6.1.0",
"prettier": "^1.7.4"
"prettier": "^1.14.2",
"pretty-quick": "^1.6.0"
},

@@ -58,3 +60,3 @@ "peerDependencies": {

"clean": "rm -rf lib",
"prebuild": "yarn run clean",
"prebuild": "yarn clean",
"build": "yarn build:modern && yarn build:legacy",

@@ -65,5 +67,5 @@ "build:modern": "BABEL_ENV=modern babel src -d lib/modern/",

"format": "prettier --write src/*.js src/**/*.js",
"test": "yarn jest",
"test-ci": "yarn jest --coverage && yarn codecov",
"precommit": "lint-staged"
"test": "jest",
"test-ci": "jest --coverage && codecov",
"precommit": "pretty-quick --staged"
},

@@ -75,13 +77,6 @@ "jest": {

},
"lint-staged": {
"*.js": [
"eslint --fix",
"prettier --write",
"git add"
]
},
"prettier": {
"singleQuote": true,
"trailing-comma": "es5"
"trailingComma": "es5"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡ī¸ by Socket Inc