Socket
Socket
Sign inDemoInstall

bpmnlint

Package Overview
Dependencies
8
Maintainers
8
Versions
60
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.0.1 to 7.1.0

5

CHANGELOG.md

@@ -9,2 +9,7 @@ # Changelog

## 7.1.0
* `FEAT`: allow rules to skip sub-tree traversal ([#53](https://github.com/bpmn-io/bpmnlint/issues/53))
* `FEAT`: allow rules to hook into node `enter` and `leave` ([#52](https://github.com/bpmn-io/bpmnlint/issues/52))
## 7.0.1

@@ -11,0 +16,0 @@

10

lib/support/compile-config.js

@@ -37,3 +37,3 @@ const Linter = require('../linter');

const preambleCode = `
var cache = {};
const cache = {};

@@ -65,11 +65,11 @@ /**

var resolver = new Resolver();
const resolver = new Resolver();
var rules = ${serializedRules};
const rules = ${serializedRules};
var config = {
const config = {
rules: rules
};
var bundle = {
const bundle = {
resolver: resolver,

@@ -76,0 +76,0 @@ config: config

@@ -18,4 +18,18 @@ const traverse = require('./traverse');

const reporter = new Reporter({ rule, moddleRoot });
traverse(moddleRoot, node => rule.check(node, reporter));
const check = rule.check;
const enter = check && check.enter || check;
const leave = check && check.leave;
if (!enter && !leave) {
throw new Error('no check implemented');
}
traverse(moddleRoot, {
enter: enter ? (node) => enter(node, reporter) : null,
leave: leave ? (node) => leave(node, reporter) : null
});
return reporter.messages;
};

@@ -6,30 +6,35 @@ /**

* @param {ModdleElement} element
* @param {Function} fn
* @param {{ enter?: Function; leave?: Function }} options
*/
module.exports = function traverse(element, fn) {
fn(element);
module.exports = function traverse(element, options) {
var descriptor = element.$descriptor;
const enter = options.enter || null;
const leave = options.leave || null;
if (descriptor.isGeneric) {
return;
}
const enterSubTree = enter && enter(element);
var containedProperties = descriptor.properties.filter(p => {
return !p.isAttr && !p.isReference && p.type !== 'String';
});
const descriptor = element.$descriptor;
containedProperties.forEach(p => {
if (p.name in element) {
const propertyValue = element[p.name];
if (enterSubTree !== false && !descriptor.isGeneric) {
if (p.isMany) {
propertyValue.forEach(child => {
traverse(child, fn);
});
} else {
traverse(propertyValue, fn);
const containedProperties = descriptor.properties.filter(p => {
return !p.isAttr && !p.isReference && p.type !== 'String';
});
containedProperties.forEach(p => {
if (p.name in element) {
const propertyValue = element[p.name];
if (p.isMany) {
propertyValue.forEach(child => {
traverse(child, options);
});
} else {
traverse(propertyValue, options);
}
}
}
});
});
}
leave && leave(element);
};
{
"name": "bpmnlint",
"description": "Validate your BPMN diagrams based on configurable lint rules",
"version": "7.0.1",
"version": "7.1.0",
"main": "lib/index.js",

@@ -6,0 +6,0 @@ "keywords": [

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc