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

@cypress/schema-tools

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cypress/schema-tools - npm Package Compare versions

Comparing version 4.7.9 to 4.7.10

12

dist/api.d.ts
/// <reference types="ramda" />
import { CustomFormats, JsonSchemaFormats } from './formats';
import { JsonSchema, ObjectSchema, PlainObject, SchemaCollection } from './objects';
import { JsonSchema, ObjectSchema, PlainObject, SchemaCollection, SchemaVersion } from './objects';
export declare const getVersionedSchema: (schemas: SchemaCollection) => (name: string) => import("./objects").VersionedSchema;

@@ -10,4 +10,4 @@ export declare const getObjectSchema: import("ramda").CurriedFunction3<SchemaCollection, string, string, ObjectSchema | undefined>;

export declare const getExample: import("ramda").CurriedFunction3<SchemaCollection, string, string, PlainObject | undefined>;
export declare const validateBySchema: (schema: JsonSchema, formats?: JsonSchemaFormats | undefined, greedy?: boolean) => (object: object) => true | string[];
export declare const validate: (schemas: SchemaCollection, formats?: JsonSchemaFormats | undefined, greedy?: boolean) => (schemaName: string, version: string) => (object: object) => true | string[];
export declare const validateBySchema: (schema: JsonSchema, formats?: JsonSchemaFormats, greedy?: boolean) => (object: object) => true | string[];
export declare const validate: (schemas: SchemaCollection, formats?: JsonSchemaFormats, greedy?: boolean) => (schemaName: string, version: string) => (object: object) => true | string[];
export declare class SchemaError extends Error {

@@ -31,4 +31,4 @@ errors: string[];

};
export declare const assertBySchema: (schema: JsonSchema, example?: PlainObject, options?: Partial<AssertBySchemaOptions> | undefined, label?: string | undefined, formats?: JsonSchemaFormats | undefined, schemaVersion?: string | undefined) => (object: PlainObject) => PlainObject;
export declare const assertSchema: (schemas: SchemaCollection, formats?: JsonSchemaFormats | undefined) => (name: string, version: string, options?: Partial<AssertBySchemaOptions> | undefined) => (object: PlainObject) => PlainObject;
export declare const assertBySchema: (schema: JsonSchema, example?: PlainObject, options?: Partial<AssertBySchemaOptions>, label?: string, formats?: JsonSchemaFormats, schemaVersion?: SchemaVersion) => (object: PlainObject) => PlainObject;
export declare const assertSchema: (schemas: SchemaCollection, formats?: JsonSchemaFormats) => (name: string, version: string, options?: Partial<AssertBySchemaOptions>) => (object: PlainObject) => PlainObject;
declare type BindOptions = {

@@ -39,3 +39,3 @@ schemas: SchemaCollection;

export declare const bind: (...options: BindOptions[]) => {
assertSchema: (name: string, version: string, options?: Partial<AssertBySchemaOptions> | undefined) => (object: PlainObject) => PlainObject;
assertSchema: (name: string, version: string, options?: Partial<AssertBySchemaOptions>) => (object: PlainObject) => PlainObject;
schemaNames: string[];

@@ -42,0 +42,0 @@ getExample: import("ramda").CurriedFunction2<string, string, PlainObject | undefined>;

@@ -19,3 +19,7 @@ "use strict";

if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {

@@ -42,7 +46,6 @@ if (k2 === undefined) k2 = k;

exports.bind = exports.assertSchema = exports.assertBySchema = exports.SchemaError = exports.validate = exports.validateBySchema = exports.getExample = exports.getSchemaVersions = exports.schemaNames = exports.hasSchema = exports.getObjectSchema = exports.getVersionedSchema = void 0;
var is_my_json_valid_1 = __importDefault(require("@bahmutov/is-my-json-valid"));
var is_my_json_valid_1 = __importDefault(require("is-my-json-valid"));
var debug_1 = __importDefault(require("debug"));
var json_stable_stringify_1 = __importDefault(require("json-stable-stringify"));
var lodash_get_1 = __importDefault(require("lodash.get"));
var lodash_set_1 = __importDefault(require("lodash.set"));
var lodash_1 = require("lodash");
var ramda_1 = require("ramda");

@@ -125,14 +128,16 @@ var fill_1 = require("./fill");

if (greedy === void 0) { greedy = true; }
return function (schemaName, version) { return function (object) {
schemaName = utils.normalizeName(schemaName);
var namedSchemas = schemas[schemaName];
if (!namedSchemas) {
return ["Missing schema ".concat(schemaName)];
}
var aSchema = namedSchemas[version];
if (!aSchema) {
return ["Missing schema ".concat(schemaName, "@").concat(version)];
}
return (0, exports.validateBySchema)(aSchema.schema, formats, greedy)(object);
}; };
return function (schemaName, version) {
return function (object) {
schemaName = utils.normalizeName(schemaName);
var namedSchemas = schemas[schemaName];
if (!namedSchemas) {
return ["Missing schema ".concat(schemaName)];
}
var aSchema = namedSchemas[version];
if (!aSchema) {
return ["Missing schema ".concat(schemaName, "@").concat(version)];
}
return (0, exports.validateBySchema)(aSchema.schema, formats, greedy)(object);
};
};
};

@@ -174,4 +179,4 @@ exports.validate = validate;

allOptions.substitutions.forEach(function (property) {
var value = (0, lodash_get_1.default)(example, property);
(0, lodash_set_1.default)(cloned, property, value);
var value = (0, lodash_1.get)(example, property);
(0, lodash_1.set)(cloned, property, value);
});

@@ -208,11 +213,15 @@ return cloned;

exports.assertBySchema = assertBySchema;
var assertSchema = function (schemas, formats) { return function (name, version, options) { return function (object) {
var example = (0, exports.getExample)(schemas)(name)(version);
var schema = (0, exports.getObjectSchema)(schemas)(name)(version);
if (!schema) {
throw new Error("Could not find schema ".concat(name, "@").concat(version));
}
var label = "".concat(name, "@").concat(version);
return (0, exports.assertBySchema)(schema.schema, example, options, label, formats, utils.semverToString(schema.version))(object);
}; }; };
var assertSchema = function (schemas, formats) {
return function (name, version, options) {
return function (object) {
var example = (0, exports.getExample)(schemas)(name)(version);
var schema = (0, exports.getObjectSchema)(schemas)(name)(version);
if (!schema) {
throw new Error("Could not find schema ".concat(name, "@").concat(version));
}
var label = "".concat(name, "@").concat(version);
return (0, exports.assertBySchema)(schema.schema, example, options, label, formats, utils.semverToString(schema.version))(object);
};
};
};
exports.assertSchema = assertSchema;

@@ -219,0 +228,0 @@ var mergeSchemas = function (schemas) {

@@ -8,3 +8,3 @@ import { CustomFormats } from '../formats';

export declare const enumToMarkdown: (enumeration: any) => any;
export declare const formatToMarkdown: (schemas?: SchemaCollection | undefined, formats?: CustomFormats | undefined) => (value: JsonProperty) => string;
export declare const formatToMarkdown: (schemas?: SchemaCollection, formats?: CustomFormats) => (value: JsonProperty) => string;
export declare const findUsedColumns: (headers: string[], rows: object[]) => string[];

@@ -23,8 +23,8 @@ declare type PropertyDescription = {

};
export declare const documentProperty: (requiredProperties: string[], schemas?: SchemaCollection | undefined, formats?: CustomFormats | undefined) => (prop: string, value: JsonProperty) => PropertyDescription;
export declare const documentProperties: (properties: JsonProperties, required?: string[] | true, schemas?: SchemaCollection | undefined, formats?: CustomFormats | undefined) => PropertyDescription[];
export declare const documentSchema: (schema: JsonSchema, schemas?: SchemaCollection | undefined, formats?: CustomFormats | undefined) => object[] | {
export declare const documentProperty: (requiredProperties: string[], schemas?: SchemaCollection, formats?: CustomFormats) => (prop: string, value: JsonProperty) => PropertyDescription;
export declare const documentProperties: (properties: JsonProperties, required?: string[] | true, schemas?: SchemaCollection, formats?: CustomFormats) => PropertyDescription[];
export declare const documentSchema: (schema: JsonSchema, schemas?: SchemaCollection, formats?: CustomFormats) => object[] | {
p: string;
};
export declare const documentObjectSchema: (schema: ObjectSchema, schemas?: SchemaCollection | undefined, formats?: CustomFormats | undefined) => object[];
export declare const documentObjectSchema: (schema: ObjectSchema, schemas?: SchemaCollection, formats?: CustomFormats) => object[];
export {};

@@ -35,30 +35,32 @@ "use strict";

exports.enumToMarkdown = enumToMarkdown;
var formatToMarkdown = function (schemas, formats) { return function (value) {
if (!value.format) {
if (value.see) {
if (typeof value.see === 'string') {
return schemas && isSchemaName(schemas)(value.see)
? "[".concat(value.see, "](#").concat((0, ramda_1.toLower)((0, __1.normalizeName)(value.see)), ")")
: ticks(value.see);
var formatToMarkdown = function (schemas, formats) {
return function (value) {
if (!value.format) {
if (value.see) {
if (typeof value.see === 'string') {
return schemas && isSchemaName(schemas)(value.see)
? "[".concat(value.see, "](#").concat((0, ramda_1.toLower)((0, __1.normalizeName)(value.see)), ")")
: ticks(value.see);
}
else {
var seeSchema = value.see;
var schemaName = "".concat(seeSchema.schema.title);
var seeVersion = (0, __1.semverToString)(seeSchema.version);
var nameAndVersion = "".concat(schemaName, "@").concat(seeVersion);
var seeAnchor = (0, exports.anchorForSchema)(seeSchema);
return schemas && isSchemaName(schemas)(schemaName)
? "[".concat(nameAndVersion, "](#").concat(seeAnchor, ")")
: ticks(nameAndVersion);
}
}
else {
var seeSchema = value.see;
var schemaName = "".concat(seeSchema.schema.title);
var seeVersion = (0, __1.semverToString)(seeSchema.version);
var nameAndVersion = "".concat(schemaName, "@").concat(seeVersion);
var seeAnchor = (0, exports.anchorForSchema)(seeSchema);
return schemas && isSchemaName(schemas)(schemaName)
? "[".concat(nameAndVersion, "](#").concat(seeAnchor, ")")
: ticks(nameAndVersion);
return exports.emptyMark;
}
}
else {
return exports.emptyMark;
if (formats && isCustomFormat(formats)(value.format)) {
return "[".concat(value.format, "](#formats)");
}
}
if (formats && isCustomFormat(formats)(value.format)) {
return "[".concat(value.format, "](#formats)");
}
return ticks(value.format);
}; };
return ticks(value.format);
};
};
exports.formatToMarkdown = formatToMarkdown;

@@ -71,24 +73,28 @@ var findUsedColumns = function (headers, rows) {

exports.findUsedColumns = findUsedColumns;
var existingProp = function (name) { return function (o) {
return name in o ? String(o[name]) : exports.emptyMark;
}; };
var documentProperty = function (requiredProperties, schemas, formats) { return function (prop, value) {
var isRequired = function (name) { return requiredProperties.indexOf(name) !== -1; };
var typeText = function (type) { return (Array.isArray(type) ? type.join(' or ') : type); };
var deprecatedMessage = function (value) {
return value.deprecated ? "**deprecated** ".concat(value.deprecated) : exports.emptyMark;
var existingProp = function (name) {
return function (o) {
return name in o ? String(o[name]) : exports.emptyMark;
};
return {
name: ticks(prop),
type: typeText(value.type),
required: isRequired(prop) ? exports.checkMark : exports.emptyMark,
format: (0, exports.formatToMarkdown)(schemas, formats)(value),
enum: (0, exports.enumToMarkdown)(value.enum),
description: value.description ? value.description : exports.emptyMark,
deprecated: deprecatedMessage(value),
minLength: existingProp('minLength')(value),
maxLength: existingProp('maxLength')(value),
defaultValue: existingProp('defaultValue')(value),
};
var documentProperty = function (requiredProperties, schemas, formats) {
return function (prop, value) {
var isRequired = function (name) { return requiredProperties.indexOf(name) !== -1; };
var typeText = function (type) { return (Array.isArray(type) ? type.join(' or ') : type); };
var deprecatedMessage = function (value) {
return value.deprecated ? "**deprecated** ".concat(value.deprecated) : exports.emptyMark;
};
return {
name: ticks(prop),
type: typeText(value.type),
required: isRequired(prop) ? exports.checkMark : exports.emptyMark,
format: (0, exports.formatToMarkdown)(schemas, formats)(value),
enum: (0, exports.enumToMarkdown)(value.enum),
description: value.description ? value.description : exports.emptyMark,
deprecated: deprecatedMessage(value),
minLength: existingProp('minLength')(value),
maxLength: existingProp('maxLength')(value),
defaultValue: existingProp('defaultValue')(value),
};
};
}; };
};
exports.documentProperty = documentProperty;

@@ -95,0 +101,0 @@ var documentProperties = function (properties, required, schemas, formats) {

"use strict";
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]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {

@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k;

@@ -6,4 +6,4 @@ import { FormatDefaults } from './formats';

declare const hasPropertiesArray: (prop: any) => any;
declare const sanitizeBySchema: (schema: JsonSchema, formatDefaults?: FormatDefaults | undefined) => (object: PlainObject) => PlainObject;
declare const sanitize: (schemas: SchemaCollection, formatDefaults?: FormatDefaults | undefined) => (name: string, version: string) => (object: PlainObject) => PlainObject;
declare const sanitizeBySchema: (schema: JsonSchema, formatDefaults?: FormatDefaults) => (object: PlainObject) => PlainObject;
declare const sanitize: (schemas: SchemaCollection, formatDefaults?: FormatDefaults) => (name: string, version: string) => (object: PlainObject) => PlainObject;
export { sanitize, sanitizeBySchema, isDynamicFormat, isJsonSchema, hasPropertiesArray, };

@@ -11,3 +11,5 @@ "use strict";

var debug = (0, debug_1.default)('schema-tools');
var isDynamicFormat = function (formatDefaults) { return function (format) { return (formatDefaults ? format in formatDefaults : false); }; };
var isDynamicFormat = function (formatDefaults) { return function (format) {
return formatDefaults ? format in formatDefaults : false;
}; };
exports.isDynamicFormat = isDynamicFormat;

@@ -35,65 +37,71 @@ var isString = function (s) { return typeof s === 'string'; };

exports.hasPropertiesArray = hasPropertiesArray;
var sanitizeBySchema = function (schema, formatDefaults) { return function (object) {
var isDynamic = isDynamicFormat(formatDefaults);
var result = (0, ramda_1.clone)(object);
var props = schema.properties;
if (props) {
Object.keys(props).forEach(function (key) {
if (!(key in object)) {
return;
}
var prop = props[key];
debug('looking at property %j', prop);
if (key in object && Array.isArray(object[key])) {
debug('%s is present as an array', key);
if (isStringArray(prop)) {
debug('%s is a string array', key);
var list = result[key];
if (prop.items && prop.items.format) {
var itemFormat = prop.items.format;
debug('items format %s', itemFormat);
if (formatDefaults && isDynamic(itemFormat)) {
debug('format %s is dynamic, need to replace with default value', itemFormat);
var defaultValue = formatDefaults[itemFormat];
for (var k = 0; k < list.length; k += 1) {
list[k] = defaultValue;
var sanitizeBySchema = function (schema, formatDefaults) {
return function (object) {
var isDynamic = isDynamicFormat(formatDefaults);
var result = (0, ramda_1.clone)(object);
var props = schema.properties;
if (props) {
Object.keys(props).forEach(function (key) {
if (!(key in object)) {
return;
}
var prop = props[key];
debug('looking at property %j', prop);
if (key in object && Array.isArray(object[key])) {
debug('%s is present as an array', key);
if (isStringArray(prop)) {
debug('%s is a string array', key);
var list = result[key];
if (prop.items && prop.items.format) {
var itemFormat = prop.items.format;
debug('items format %s', itemFormat);
if (formatDefaults && isDynamic(itemFormat)) {
debug('format %s is dynamic, need to replace with default value', itemFormat);
var defaultValue = formatDefaults[itemFormat];
for (var k = 0; k < list.length; k += 1) {
list[k] = defaultValue;
}
return;
}
return;
}
}
else if (isArrayType(prop) && hasPropertiesArray(prop)) {
debug('property %s is array-like and has properties', key);
var list = object[key];
var propSchema = prop.items;
result[key] = list.map(sanitizeBySchema(propSchema, formatDefaults));
return;
}
}
else if (isArrayType(prop) && hasPropertiesArray(prop)) {
debug('property %s is array-like and has properties', key);
var list = object[key];
var propSchema = prop.items;
result[key] = list.map(sanitizeBySchema(propSchema, formatDefaults));
if (!isString(object[key])) {
return;
}
}
if (!isString(object[key])) {
return;
}
if (canPropertyBeString(prop.type)) {
if (prop.format && formatDefaults && isDynamic(prop.format)) {
var defaultValue = formatDefaults[prop.format];
if (!defaultValue) {
throw new Error("Cannot find default value for format name ".concat(prop.format));
if (canPropertyBeString(prop.type)) {
if (prop.format && formatDefaults && isDynamic(prop.format)) {
var defaultValue = formatDefaults[prop.format];
if (!defaultValue) {
throw new Error("Cannot find default value for format name ".concat(prop.format));
}
result[key] = defaultValue;
}
result[key] = defaultValue;
}
});
}
return result;
};
};
exports.sanitizeBySchema = sanitizeBySchema;
var sanitize = function (schemas, formatDefaults) {
return function (name, version) {
return function (object) {
(0, api_1.assertSchema)(schemas)(name, version)(object);
var schema = (0, api_1.getObjectSchema)(schemas, name, version);
if (!schema) {
throw new Error("Could not find schema ".concat(name, "@").concat(version, " to sanitize an object"));
}
});
}
return result;
}; };
exports.sanitizeBySchema = sanitizeBySchema;
var sanitize = function (schemas, formatDefaults) { return function (name, version) { return function (object) {
(0, api_1.assertSchema)(schemas)(name, version)(object);
var schema = (0, api_1.getObjectSchema)(schemas, name, version);
if (!schema) {
throw new Error("Could not find schema ".concat(name, "@").concat(version, " to sanitize an object"));
}
return sanitizeBySchema(schema.schema, formatDefaults)(object);
}; }; };
return sanitizeBySchema(schema.schema, formatDefaults)(object);
};
};
};
exports.sanitize = sanitize;
//# sourceMappingURL=sanitize.js.map
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.oneOfRegex = exports.combineSchemas = exports.setPackageName = exports.versionSchemas = exports.normalizeRequiredProperties = exports.normalizeName = exports.stringToSemver = exports.semverToString = void 0;
var lodash_camelcase_1 = __importDefault(require("lodash.camelcase"));
var lodash_reduce_1 = __importDefault(require("lodash.reduce"));
var lodash_1 = require("lodash");
var ramda_1 = require("ramda");

@@ -23,3 +19,3 @@ var semverToString = function (s) {

exports.stringToSemver = stringToSemver;
var normalizeName = function (s) { return (0, lodash_camelcase_1.default)(s); };
var normalizeName = function (s) { return (0, lodash_1.camelCase)(s); };
exports.normalizeName = normalizeName;

@@ -35,3 +31,3 @@ var normalizeRequiredProperties = function (schema) {

};
schema.required = (0, lodash_reduce_1.default)(schema.properties, reducer, []);
schema.required = (0, lodash_1.reduce)(schema.properties, reducer, []);
}

@@ -38,0 +34,0 @@ else {

{
"name": "@cypress/schema-tools",
"version": "4.7.9",
"version": "4.7.10",
"description": "Validate, sanitize and document JSON schemas",

@@ -34,16 +34,13 @@ "main": "dist",

"@bahmutov/all-paths": "1.0.2",
"@bahmutov/is-my-json-valid": "2.17.3",
"debug": "4.3.3",
"@types/ramda": "0.25.47",
"debug": "4.3.4",
"is-my-json-valid": "github:ax-vasquez/is-my-json-valid#b875c39b07f757593d9b9123e023b8fd2c350a0c",
"json-stable-stringify": "1.0.1",
"json2md": "1.6.3",
"lodash.camelcase": "4.3.0",
"lodash.get": "4.4.2",
"lodash.reduce": "^4.6.0",
"lodash.set": "4.3.2",
"lodash": "4.17.21",
"quote": "0.4.0",
"ramda": "0.25.0",
"@types/ramda": "0.25.47"
"ramda": "0.25.0"
},
"devDependencies": {
"@types/lodash.camelcase": "4.3.6",
"@types/lodash.camelcase": "4.3.7",
"@types/node": "9.6.61",

@@ -54,10 +51,10 @@ "ava": "2.4.0",

"deps-ok": "1.4.1",
"husky": "1.3.1",
"husky": "7.0.4",
"jsen": "0.6.6",
"prettier": "1.19.1",
"semantic-release": "18.0.1",
"prettier": "2.7.1",
"semantic-release": "19.0.3",
"terminal-banner": "1.1.0",
"ts-node": "7.0.1",
"tslint": "5.20.1",
"typescript": "4.5.2"
"typescript": "4.7.4"
},

@@ -64,0 +61,0 @@ "repository": {

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