New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@liskhq/lisk-validator

Package Overview
Dependencies
Maintainers
3
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@liskhq/lisk-validator - npm Package Compare versions

Comparing version 0.5.2 to 0.6.0

dist-node/types.d.ts

1

dist-node/constants.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MIN_SINT64 = exports.MAX_SINT64 = exports.MAX_UINT64 = exports.MAX_UINT32 = exports.MIN_SINT32 = exports.MAX_SINT32 = void 0;
exports.MAX_SINT32 = 2147483647;

@@ -4,0 +5,0 @@ exports.MIN_SINT32 = exports.MAX_SINT32 * -1;

21

dist-node/errors.d.ts

@@ -1,20 +0,7 @@

export interface ErrorObject {
keyword: string;
dataPath?: string;
schemaPath?: string;
params: ErrorParams;
propertyName?: string;
message?: string;
schema?: never;
parentSchema?: object;
data?: never;
}
interface ErrorParams {
[key: string]: unknown;
}
import { LiskErrorObject } from './types';
export declare const convertErrorsToLegacyFormat: (errors: LiskErrorObject[]) => LiskErrorObject[];
export declare class LiskValidationError extends Error {
readonly errors: ErrorObject[];
constructor(errors: ErrorObject[]);
readonly errors: LiskErrorObject[];
constructor(errors: LiskErrorObject[]);
private _compileErrors;
}
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LiskValidationError = exports.convertErrorsToLegacyFormat = void 0;
const errorParamToString = (param) => {

@@ -19,2 +20,11 @@ let paramAsString = '';

};
const convertErrorsToLegacyFormat = (errors) => errors.map(e => {
var _a, _b;
const err = e;
err.dataPath = (_a = err.dataPath) !== null && _a !== void 0 ? _a : instancePathToLegacyDataPath((_b = err.instancePath) !== null && _b !== void 0 ? _b : '');
delete err.instancePath;
return err;
});
exports.convertErrorsToLegacyFormat = convertErrorsToLegacyFormat;
const instancePathToLegacyDataPath = (path) => path.split('/').join('.');
const errorFormatterMap = {

@@ -40,3 +50,3 @@ type: error => {

super();
this.errors = errors;
this.errors = exports.convertErrorsToLegacyFormat(errors);
this.message = `Lisk validator found ${this.errors.length} error[s]:\n${this._compileErrors().join('\n')}`;

@@ -43,0 +53,0 @@ }

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.oddInteger = exports.ipOrFQDN = exports.ip = exports.encryptedPassphrase = exports.path = exports.networkVersion = exports.version = exports.camelCase = exports.int32 = exports.uint32 = exports.uint64 = exports.int64 = exports.bytes = exports.hex = void 0;
const validation_1 = require("./validation");
exports.hex = validation_1.isHexString;
exports.bytes = validation_1.isBytes;
exports.int64 = (data) => validation_1.isNumberString(data) && validation_1.isSInt64(BigInt(data));
exports.uint64 = (data) => validation_1.isNumberString(data) && validation_1.isUInt64(BigInt(data));
exports.uint32 = (data) => validation_1.isNumberString(data) && validation_1.isUInt32(Number(data));
exports.int32 = (data) => validation_1.isNumberString(data) && validation_1.isSInt32(Number(data));
const int64 = (data) => validation_1.isNumberString(data) && validation_1.isSInt64(BigInt(data));
exports.int64 = int64;
const uint64 = (data) => validation_1.isNumberString(data) && validation_1.isUInt64(BigInt(data));
exports.uint64 = uint64;
const uint32 = (data) => validation_1.isNumberString(data) && validation_1.isUInt32(Number(data));
exports.uint32 = uint32;
const int32 = (data) => validation_1.isNumberString(data) && validation_1.isSInt32(Number(data));
exports.int32 = int32;
const camelCaseRegex = /^[a-z]+((\d)|([A-Z0-9][a-zA-Z0-9]+))*([a-z0-9A-Z])?$/;
exports.camelCase = (data) => camelCaseRegex.exec(data) !== null;
const camelCase = (data) => camelCaseRegex.exec(data) !== null;
exports.camelCase = camelCase;
exports.version = validation_1.isSemVer;
exports.networkVersion = (data) => /^(\d|[1-9]\d{1,2})\.(\d|[1-9]\d{1,2})$/.test(data);
exports.path = (data) => /^(.?)(\/[^/]+)+(\/?)$/.test(data);
const networkVersion = (data) => /^(\d|[1-9]\d{1,2})\.(\d|[1-9]\d{1,2})$/.test(data);
exports.networkVersion = networkVersion;
const path = (data) => /^(.?)(\/[^/]+)+(\/?)$/.test(data);
exports.path = path;
exports.encryptedPassphrase = validation_1.isEncryptedPassphrase;
exports.ip = validation_1.isIP;
exports.ipOrFQDN = (data) => {
const ipOrFQDN = (data) => {
const hostnameRegex = /^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/;
return validation_1.isIPV4(data) || hostnameRegex.test(data);
};
exports.oddInteger = (data) => {
exports.ipOrFQDN = ipOrFQDN;
const oddInteger = (data) => {
if (typeof data === 'number') {

@@ -27,2 +36,3 @@ return Number.isInteger(data) && data % 2 === 1;

};
exports.oddInteger = oddInteger;
//# sourceMappingURL=formats.js.map
import { validator, liskSchemaIdentifier } from './lisk_validator';
import { LiskErrorObject as ErrorObject } from './types';
export * from './validation';
export * from './errors';
export * from './constants';
export { validator, liskSchemaIdentifier };
export { validator, liskSchemaIdentifier, ErrorObject };
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.liskSchemaIdentifier = exports.validator = void 0;
const lisk_validator_1 = require("./lisk_validator");
exports.validator = lisk_validator_1.validator;
exports.liskSchemaIdentifier = lisk_validator_1.liskSchemaIdentifier;
__export(require("./validation"));
__export(require("./errors"));
__export(require("./constants"));
Object.defineProperty(exports, "validator", { enumerable: true, get: function () { return lisk_validator_1.validator; } });
Object.defineProperty(exports, "liskSchemaIdentifier", { enumerable: true, get: function () { return lisk_validator_1.liskSchemaIdentifier; } });
__exportStar(require("./validation"), exports);
__exportStar(require("./errors"), exports);
__exportStar(require("./constants"), exports);
//# sourceMappingURL=index.js.map

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

import { FuncKeywordDefinition } from 'ajv';
export declare const metaSchema: {

@@ -6,19 +7,2 @@ title: string;

};
declare type ValidateFunction = (data: string, dataPath?: string, parentData?: object, parentDataProperty?: string | number, rootData?: object) => boolean;
interface AjvContext {
root: {
schema: object;
};
schemaPath: string;
}
export declare const dataTypeKeyword: {
compile: (value: string, parentSchema: object, it: Partial<AjvContext>) => ValidateFunction;
errors: string;
modifying: boolean;
metaSchema: {
title: string;
type: string;
enum: string[];
};
};
export {};
export declare const dataTypeKeyword: FuncKeywordDefinition;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.dataTypeKeyword = exports.metaSchema = void 0;
const createDebug = require("debug");

@@ -24,7 +25,7 @@ const errors_1 = require("../errors");

dataPath: '',
schemaPath: (_a = it.schemaPath) !== null && _a !== void 0 ? _a : '',
schemaPath: (_a = it.schemaPath.str) !== null && _a !== void 0 ? _a : '',
},
]);
}
const validate = (data, _dataPath, _parentData, _parentDataProperty, _rootData) => {
const validate = (data, _dataCxt) => {
if (value === 'boolean') {

@@ -85,2 +86,3 @@ return validation_1.isBoolean(data);

exports.dataTypeKeyword = {
keyword: 'dataType',
compile,

@@ -87,0 +89,0 @@ errors: 'full',

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

import { FuncKeywordDefinition } from 'ajv';
export declare const metaSchema: {

@@ -7,21 +8,2 @@ title: string;

};
declare type ValidateFunction = (data: string, dataPath?: string, parentData?: object, parentDataProperty?: string | number, rootData?: object) => boolean;
interface AjvContext {
root: {
schema: object;
};
schemaPath: string;
}
export declare const fieldNumberKeyword: {
compile: (value: number, parentSchema: object, it: Partial<AjvContext>) => ValidateFunction;
valid: boolean;
errors: boolean;
modifying: boolean;
metaSchema: {
title: string;
type: string;
minimum: number;
maximum: number;
};
};
export {};
export declare const fieldNumberKeyword: FuncKeywordDefinition;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fieldNumberKeyword = exports.metaSchema = void 0;
const createDebug = require("debug");

@@ -24,4 +25,4 @@ const errors_1 = require("../errors");

debug('compile: parent schema: %j', parentSchema);
const { schemaPath, root: { schema: rootSchema }, } = it;
const parentPath = schemaPath.split('.');
const { schemaPath, schemaEnv: { root: { schema: rootSchema }, }, } = it;
const parentPath = schemaPath.str.split('.');
parentPath.shift();

@@ -39,9 +40,10 @@ parentPath.pop();

dataPath: '',
schemaPath,
schemaPath: schemaPath.str,
},
]);
}
return (_data, _dataPath, _parentData, _parentDataProperty, _rootData) => true;
return (_data, _dataCxt) => true;
};
exports.fieldNumberKeyword = {
keyword: 'fieldNumber',
compile,

@@ -48,0 +50,0 @@ valid: true,

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.liskMetaSchema = void 0;
exports.liskMetaSchema = {

@@ -4,0 +5,0 @@ $schema: 'http://json-schema.org/draft-07/schema#',

@@ -1,4 +0,3 @@

import * as Ajv from 'ajv';
import { ValidateFunction } from 'ajv';
import { ErrorObject } from './errors';
import Ajv, { AnySchema, ValidateFunction } from 'ajv';
import { LiskErrorObject } from './types';
export declare const liskSchemaIdentifier: string;

@@ -8,8 +7,8 @@ declare class LiskValidator {

constructor();
validate(schema: object, data: object): ErrorObject[];
validateSchema(schema: object | boolean): ReadonlyArray<ErrorObject>;
validate(schema: object, data: object): LiskErrorObject[];
validateSchema(schema: AnySchema | boolean): ReadonlyArray<LiskErrorObject>;
compile(schema: object | boolean): ValidateFunction;
removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv.Ajv;
removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv;
}
export declare const validator: LiskValidator;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Ajv = require("ajv");
exports.validator = exports.liskSchemaIdentifier = void 0;
const ajv_1 = require("ajv");
const ajv_formats_1 = require("ajv-formats");
const formats = require("./formats");

@@ -12,12 +14,16 @@ const errors_1 = require("./errors");

constructor() {
this._validator = new Ajv({
this._validator = new ajv_1.default({
strict: true,
strictSchema: true,
allErrors: true,
schemaId: 'auto',
useDefaults: false,
addUsedSchema: false,
strictTypes: false,
});
ajv_formats_1.default(this._validator);
for (const formatName of Object.keys(formats)) {
this._validator.addFormat(formatName, formats[formatName]);
}
this._validator.addKeyword('uniqueSignedPublicKeys', {
this._validator.addKeyword({
keyword: 'uniqueSignedPublicKeys',
type: 'array',

@@ -27,9 +33,10 @@ compile: () => (data) => new Set(data.filter(datum => typeof datum === 'string').map((key) => key.slice(1)))

});
this._validator.compile(lisk_meta_schema_1.liskMetaSchema);
this._validator.addMetaSchema(lisk_meta_schema_1.liskMetaSchema);
this._validator.addKeyword('fieldNumber', field_number_1.fieldNumberKeyword);
this._validator.addKeyword('dataType', data_type_1.dataTypeKeyword);
this._validator.addKeyword(field_number_1.fieldNumberKeyword);
this._validator.addKeyword(data_type_1.dataTypeKeyword);
}
validate(schema, data) {
if (!this._validator.validate(schema, data)) {
return this._validator.errors;
return errors_1.convertErrorsToLegacyFormat(this._validator.errors);
}

@@ -40,3 +47,3 @@ return [];

if (!this._validator.validateSchema(schema)) {
return this._validator.errors;
return errors_1.convertErrorsToLegacyFormat(this._validator.errors);
}

@@ -43,0 +50,0 @@ return [];

@@ -22,4 +22,4 @@ import { gte as isVersionGte, gtr as isGreaterThanVersionInRange, ltr as isLessThanVersionInRange } from 'semver';

export declare const isPort: (port: string) => boolean;
export declare const isStringEndsWith: (target: string, suffixes: readonly string[]) => boolean;
export declare const isStringEndsWith: (target: string, suffixes: ReadonlyArray<string>) => boolean;
export declare const isVersionMatch: typeof isVersionGte;
export declare const isCsv: (data: string) => boolean;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCsv = exports.isVersionMatch = exports.isStringEndsWith = exports.isPort = exports.isIP = exports.isIPV6 = exports.isIPV4 = exports.isProtocolString = exports.isGreaterThanRangedVersion = exports.isLessThanRangedVersion = exports.isRangedSemVer = exports.isSemVer = exports.isEncryptedPassphrase = exports.isHexString = exports.isValidInteger = exports.isBytes = exports.isUInt64 = exports.isSInt64 = exports.isUInt32 = exports.isSInt32 = exports.isBoolean = exports.isString = exports.isNumberString = void 0;
const semver_1 = require("semver");
const validator_1 = require("validator");
const constants_1 = require("./constants");
exports.isNumberString = (num) => {
const isNumberString = (num) => {
if (typeof num !== 'string') {

@@ -12,5 +13,8 @@ return false;

};
exports.isString = (data) => typeof data === 'string';
exports.isBoolean = (data) => typeof data === 'boolean';
exports.isSInt32 = (data) => {
exports.isNumberString = isNumberString;
const isString = (data) => typeof data === 'string';
exports.isString = isString;
const isBoolean = (data) => typeof data === 'boolean';
exports.isBoolean = isBoolean;
const isSInt32 = (data) => {
if (typeof data === 'number' && Number.isInteger(data)) {

@@ -21,3 +25,4 @@ return data <= constants_1.MAX_SINT32 && data >= constants_1.MIN_SINT32;

};
exports.isUInt32 = (data) => {
exports.isSInt32 = isSInt32;
const isUInt32 = (data) => {
if (typeof data === 'number' && Number.isInteger(data)) {

@@ -28,7 +33,12 @@ return data <= constants_1.MAX_UINT32 && data >= 0;

};
exports.isSInt64 = (data) => typeof data === 'bigint' ? data <= constants_1.MAX_SINT64 && data >= constants_1.MIN_SINT64 : false;
exports.isUInt64 = (data) => typeof data === 'bigint' ? data <= constants_1.MAX_UINT64 && data >= BigInt(0) : false;
exports.isBytes = (data) => Buffer.isBuffer(data);
exports.isValidInteger = (num) => typeof num === 'number' ? Math.floor(num) === num : false;
exports.isHexString = (data) => {
exports.isUInt32 = isUInt32;
const isSInt64 = (data) => typeof data === 'bigint' ? data <= constants_1.MAX_SINT64 && data >= constants_1.MIN_SINT64 : false;
exports.isSInt64 = isSInt64;
const isUInt64 = (data) => typeof data === 'bigint' ? data <= constants_1.MAX_UINT64 && data >= BigInt(0) : false;
exports.isUInt64 = isUInt64;
const isBytes = (data) => Buffer.isBuffer(data);
exports.isBytes = isBytes;
const isValidInteger = (num) => typeof num === 'number' ? Math.floor(num) === num : false;
exports.isValidInteger = isValidInteger;
const isHexString = (data) => {
if (typeof data !== 'string') {

@@ -39,3 +49,4 @@ return false;

};
exports.isEncryptedPassphrase = (data) => {
exports.isHexString = isHexString;
const isEncryptedPassphrase = (data) => {
const keyRegExp = /[a-zA-Z0-9]{2,15}/;

@@ -47,16 +58,25 @@ const valueRegExp = /[a-f0-9]{1,512}/;

};
exports.isSemVer = (version) => !!semver_1.valid(version);
exports.isRangedSemVer = (version) => !!semver_1.validRange(version);
exports.isEncryptedPassphrase = isEncryptedPassphrase;
const isSemVer = (version) => !!semver_1.valid(version);
exports.isSemVer = isSemVer;
const isRangedSemVer = (version) => !!semver_1.validRange(version);
exports.isRangedSemVer = isRangedSemVer;
exports.isLessThanRangedVersion = semver_1.ltr;
exports.isGreaterThanRangedVersion = semver_1.gtr;
exports.isProtocolString = (data) => /^(\d|[1-9]\d{1,2})\.(\d|[1-9]\d{1,2})$/.test(data);
const isProtocolString = (data) => /^(\d|[1-9]\d{1,2})\.(\d|[1-9]\d{1,2})$/.test(data);
exports.isProtocolString = isProtocolString;
const IPV4_NUMBER = '4';
const IPV6_NUMBER = '6';
exports.isIPV4 = (data) => validator_1.default.isIP(data, IPV4_NUMBER);
exports.isIPV6 = (data) => validator_1.default.isIP(data, IPV6_NUMBER);
exports.isIP = (data) => exports.isIPV4(data) || exports.isIPV6(data);
exports.isPort = (port) => validator_1.default.isPort(port);
exports.isStringEndsWith = (target, suffixes) => suffixes.some(suffix => target.endsWith(suffix));
const isIPV4 = (data) => validator_1.default.isIP(data, IPV4_NUMBER);
exports.isIPV4 = isIPV4;
const isIPV6 = (data) => validator_1.default.isIP(data, IPV6_NUMBER);
exports.isIPV6 = isIPV6;
const isIP = (data) => exports.isIPV4(data) || exports.isIPV6(data);
exports.isIP = isIP;
const isPort = (port) => validator_1.default.isPort(port);
exports.isPort = isPort;
const isStringEndsWith = (target, suffixes) => suffixes.some(suffix => target.endsWith(suffix));
exports.isStringEndsWith = isStringEndsWith;
exports.isVersionMatch = semver_1.gte;
exports.isCsv = (data) => {
const isCsv = (data) => {
if (typeof data !== 'string') {

@@ -71,2 +91,3 @@ return false;

};
exports.isCsv = isCsv;
//# sourceMappingURL=validation.js.map
{
"name": "@liskhq/lisk-validator",
"version": "0.5.2",
"version": "0.6.0",
"description": "Validation library according to the Lisk protocol",

@@ -40,32 +40,32 @@ "author": "Lisk Foundation <admin@lisk.io>, lightcurve GmbH <admin@lightcurve.io>",

"dependencies": {
"@liskhq/lisk-cryptography": "^3.0.2",
"@types/node": "12.12.11",
"@types/semver": "7.1.0",
"@types/validator": "12.0.1",
"ajv": "6.12.0",
"debug": "4.1.1",
"semver": "7.1.3",
"validator": "12.2.0"
"@liskhq/lisk-cryptography": "^3.1.0",
"ajv": "8.1.0",
"ajv-formats": "2.0.2",
"debug": "4.3.1",
"semver": "7.3.5",
"validator": "13.5.2"
},
"devDependencies": {
"@types/jest": "26.0.13",
"@types/jest-when": "2.7.1",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.8.1",
"eslint-config-lisk-base": "1.2.2",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.22.0",
"eslint-plugin-jest": "24.0.0",
"jest": "26.4.2",
"@types/jest": "26.0.21",
"@types/jest-when": "2.7.2",
"@types/node": "12.20.6",
"@types/semver": "7.3.4",
"@types/validator": "13.1.3",
"@typescript-eslint/eslint-plugin": "4.19.0",
"@typescript-eslint/parser": "4.19.0",
"eslint": "7.22.0",
"eslint-config-lisk-base": "2.0.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "24.3.2",
"jest": "26.6.3",
"jest-extended": "0.11.5",
"jest-when": "2.7.2",
"jest-when": "3.2.1",
"lodash.clonedeep": "4.5.0",
"prettier": "2.0.5",
"prettier": "2.2.1",
"source-map-support": "0.5.19",
"ts-jest": "26.3.0",
"ts-node": "8.6.2",
"ts-jest": "26.5.4",
"ts-node": "9.1.1",
"tsconfig-paths": "3.9.0",
"typescript": "3.8.3"
"typescript": "4.2.3"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc