Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@asyncapi/specs

Package Overview
Dependencies
Maintainers
3
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@asyncapi/specs - npm Package Compare versions

Comparing version 6.2.0 to 6.2.1

2

package.json
{
"name": "@asyncapi/specs",
"version": "6.2.0",
"version": "6.2.1",
"description": "AsyncAPI schema versions",

@@ -5,0 +5,0 @@ "main": "index.js",

const fs = require('fs');
const path = require('path');
const AjvDraft04 = require('ajv-draft-04');
const ajvDraft04 = new AjvDraft04();
const Ajv = require('ajv');
const ajv = new Ajv();
function validation (excludedFiles){
function validateSchema(filePath, fileContent, schemaValidator) {
try {
const obj = JSON.parse(fileContent);
const validate = schemaValidator(obj);
const errors = validate ? [] : (obj.$schema === 'http://json-schema.org/draft-04/schema' ? ajvDraft04.errors : ajv.errors);
// Specify the path to the 'schemas' directory
return { filePath, validate, errors };
} catch (error) {
return {
filePath,
validate: false,
errors: [{ message: `Error reading or parsing JSON Schema: ${error.message}` }],
};
}
}
function validation(excludedFiles) {
const directoryPath = './schemas';
try{
try {
const files = fs.readdirSync(directoryPath);
const filteredFiles = files.filter(file => !excludedFiles.includes(file) && path.extname(file).toLowerCase() === '.json');
// Filter files
const filteredFiles = files.filter(file => !excludedFiles.includes(file) && path.extname(file).toLowerCase() === '.json');
const validationErrors = [];
// Collect errors in an array
const validationErrors = [];
// Iterate through the filtered files
filteredFiles.forEach(file => {
// Construct the full path to the JSON schema file
const filePath = path.join(directoryPath, file);
const filePath = path.join(directoryPath, file);
try {
// Read and parse the JSON schema
const fileContent = fs.readFileSync(filePath, 'utf8');
const obj = JSON.parse(fileContent);
let validate;
if (obj.$schema === 'http://json-schema.org/draft-04/schema') {
// Validate the schema
validate = ajvDraft04.validateSchema(obj);
if(validate){
console.log(`\n${file}: JSON Schema is valid!`);
}
} else {
// Validate the schema
validate = ajv.validateSchema(obj);
if(validate){
console.log(`\n${file}: JSON Schema is valid!`);
}
}
// Check if the schema is not valid and collect errors
if (!validate) {
validationErrors.push({
file,
errors: obj.$schema === 'http://json-schema.org/draft-04/schema'
? ajvDraft04.errors
: ajv.errors
});
}
} catch (error) {
validationErrors.push({
file,
errors: [{ message: `\nError reading or parsing JSON Schema: ${error.message}` }]
});
}
});
const schemaValidator = (obj) => {
return (obj.$schema === 'http://json-schema.org/draft-04/schema') ? ajvDraft04.validateSchema(obj) : ajv.validateSchema(obj);
};
// Print errors after processing all files
validationErrors.forEach(({ file, errors }) => {
console.error(`\n${file}: JSON Schema is not valid:`, errors);
});
const validationResult = validateSchema(filePath, fs.readFileSync(filePath, 'utf8'), schemaValidator);
// Exit with an error code if there are validation errors
if (validationErrors.length > 0) {
process.exit(1);
if (!validationResult.validate || validationResult.errors.length > 0) {
validationErrors.push(validationResult);
}
});
if (validationErrors.length > 0) {
console.error('\nValidation errors:');
validationErrors.forEach(({ filePath, validate, errors }) => {
console.error(`${filePath}: JSON Schema is not valid:`);
if (validate) {
console.error('Detailed Error Information:');
errors.forEach(error => {
console.error(JSON.stringify(error, null, 2));
});
} else {
console.error(errors);
}
} catch (error) {
console.error('\nError during validation:', error.message);
process.exit(1);
});
process.exit(1);
}
} catch (error) {
console.error('\nError during validation:', error.message);
process.exit(1);
}
}
const excludedFiles = ['2.0.0-rc1.json', '2.0.0-rc1-without-$id.json']; // added temporarily to avoid validation failure due to these two files. The schemas version are incorrect in these and needs to be fixed.
const excludedFiles=['2.0.0-rc1.json', '2.0.0-rc1-without-$id.json']; // added temporarily to avoid validation failure due to these two files. The schemas version are incorrect in these and needs to be fixed.
validation(excludedFiles);
console.log('\nValidation completed successfully.');
console.log('\nValidation completed successfully.');
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