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

@luvio/jsonschema-validate

Package Overview
Dependencies
Maintainers
0
Versions
142
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@luvio/jsonschema-validate - npm Package Compare versions

Comparing version 5.12.1 to 5.13.0

49

dist/jsonschema-validate.js

@@ -19,2 +19,4 @@ /**

}
class InvalidRefError extends JsonSchemaViolationError {
}
/**

@@ -33,3 +35,3 @@ * Validates a value against a schema in a TypeScript-friendly way.

}
function validateJsonSchema(data, schema, path = '$') {
function validateJsonSchema(data, schema, path = '$', document = schema) {
if (schema === true)

@@ -41,10 +43,13 @@ return;

if ('anyOf' in schema) {
validateAnyOf(data, schema, path);
validateAnyOf(data, schema, path, document);
}
else if ('allOf' in schema) {
validateAllOf(data, schema, path);
validateAllOf(data, schema, path, document);
}
else if ('not' in schema) {
validateNot(data, schema, path);
validateNot(data, schema, path, document);
}
else if ('$ref' in schema) {
validateRef(data, schema, path, document);
}
else if (schema.type === 'object') {

@@ -54,3 +59,3 @@ if (dataType !== 'object') {

}
validateObject(data, schema, path);
validateObject(data, schema, path, document);
}

@@ -61,3 +66,3 @@ else if (schema.type === 'array') {

}
validateArray(data, schema, path);
validateArray(data, schema, path, document);
}

@@ -68,6 +73,6 @@ else {

}
function validateAnyOf(data, schema, path) {
function validateAnyOf(data, schema, path, document) {
if (!schema.anyOf.find((element) => {
try {
validateJsonSchema(data, element, path);
validateJsonSchema(data, element, path, document);
return true;

@@ -82,6 +87,6 @@ }

}
function validateAllOf(data, schema, path) {
function validateAllOf(data, schema, path, document) {
if (!schema.allOf.every((element) => {
try {
validateJsonSchema(data, element, path);
validateJsonSchema(data, element, path, document);
return true;

@@ -96,5 +101,5 @@ }

}
function validateNot(data, schema, path) {
function validateNot(data, schema, path, document) {
try {
validateJsonSchema(data, schema.not, path);
validateJsonSchema(data, schema.not, path, document);
}

@@ -110,3 +115,3 @@ catch (e) {

}
function validateObject(data, schema, path) {
function validateObject(data, schema, path, document) {
const schemaKeys = Object.keys(schema.properties);

@@ -117,3 +122,3 @@ const requiredKeys = new Set(schema.required);

if (!schemaKeySet.has(key)) {
validateJsonSchema(data[key], schema.additionalProperties, `${path}.additionalProperties[${key}]`);
validateJsonSchema(data[key], schema.additionalProperties, `${path}.additionalProperties[${key}]`, document);
}

@@ -128,7 +133,7 @@ });

if (keyInData) {
validateJsonSchema(data[key], schema.properties[key], `${path}.${key}`);
validateJsonSchema(data[key], schema.properties[key], `${path}.${key}`, document);
}
}
}
function validateArray(data, schema, path) {
function validateArray(data, schema, path, document) {
if (schema.minItems !== undefined && data.length < schema.minItems) {

@@ -140,3 +145,3 @@ throw new MinItemsViolationError(`Array at path '${path}' fails minItems constraint. Has ${data.length} items, needs at least ${schema.minItems}.`);

}
data.forEach((element, index) => validateJsonSchema(element, schema.items, `${path}[${index}]`));
data.forEach((element, index) => validateJsonSchema(element, schema.items, `${path}[${index}]`, document));
}

@@ -175,4 +180,12 @@ function validateScalar(data, schema, path) {

}
function validateRef(data, schema, path, document) {
if (schema.$ref === '#') {
validateJsonSchema(data, document, path, document);
}
else {
throw new InvalidRefError(`$ref values other than # are unsupported`);
}
}
export { AdditionalPropertiesError, IncorrectTypeError, JsonSchemaViolationError, MaxItemsViolationError, MinItemsViolationError, MissingRequiredPropertyError, assertIsValid, validateAllOf, validateAnyOf, validateArray, validateJsonSchema, validateNot, validateObject, validateScalar };
export { AdditionalPropertiesError, IncorrectTypeError, InvalidRefError, JsonSchemaViolationError, MaxItemsViolationError, MinItemsViolationError, MissingRequiredPropertyError, assertIsValid, validateAllOf, validateAnyOf, validateArray, validateJsonSchema, validateNot, validateObject, validateScalar };
//# sourceMappingURL=jsonschema-validate.js.map

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

export type JSONSchema = ObjectType | ArrayType | ScalarType | AnyOf | AllOf | Not | boolean;
export type JSONSchema = ObjectType | ArrayType | ScalarType | AnyOf | AllOf | Not | RefType | boolean;
export type RefType = {
$ref: '#';
};
export type ObjectType = {

@@ -51,2 +54,4 @@ type: 'object';

}
export declare class InvalidRefError extends JsonSchemaViolationError {
}
/**

@@ -60,9 +65,9 @@ * Validates a value against a schema in a TypeScript-friendly way.

export declare function assertIsValid<Type>(data: unknown, schema: JSONSchema): asserts data is Type;
export declare function validateJsonSchema(data: unknown, schema: JSONSchema, path?: string): void;
export declare function validateAnyOf(data: unknown, schema: AnyOf, path: string): void;
export declare function validateAllOf(data: unknown, schema: AllOf, path: string): void;
export declare function validateNot(data: unknown, schema: Not, path: string): void;
export declare function validateObject(data: Record<string, unknown>, schema: ObjectType, path: string): void;
export declare function validateArray(data: Array<unknown>, schema: ArrayType, path: string): void;
export declare function validateJsonSchema(data: unknown, schema: JSONSchema, path?: string, document?: JSONSchema): void;
export declare function validateAnyOf(data: unknown, schema: AnyOf, path: string, document: JSONSchema): void;
export declare function validateAllOf(data: unknown, schema: AllOf, path: string, document: JSONSchema): void;
export declare function validateNot(data: unknown, schema: Not, path: string, document: JSONSchema): void;
export declare function validateObject(data: Record<string, unknown>, schema: ObjectType, path: string, document: JSONSchema): void;
export declare function validateArray(data: Array<unknown>, schema: ArrayType, path: string, document: JSONSchema): void;
export declare function validateScalar(data: number | string | boolean | null, schema: ScalarType, path: string): void;
export {};
{
"name": "@luvio/jsonschema-validate",
"version": "5.12.1",
"version": "5.13.0",
"private": false,

@@ -25,2 +25,5 @@ "description": "Luvio Next JSON Schema Validation",

},
"volta": {
"extends": "../../../package.json"
},
"bundlesize": [

@@ -27,0 +30,0 @@ {

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