Socket
Socket
Sign inDemoInstall

bpmn-moddle

Package Overview
Dependencies
Maintainers
3
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bpmn-moddle - npm Package Compare versions

Comparing version 0.10.1 to 0.10.2

test/fixtures/bpmn/multiInstanceLoopCharacteristics.bpmn

7

package.json
{
"name": "bpmn-moddle",
"version": "0.10.1",
"version": "0.10.2",
"description": "A moddle wrapper for BPMN 2.0",

@@ -33,2 +33,3 @@ "scripts": {

"grunt": "^0.4.2",
"grunt-cli": "^0.1.13",
"grunt-contrib-jshint": "^0.7.2",

@@ -45,5 +46,5 @@ "grunt-contrib-watch": "^0.5.0",

"lodash": "^3.0.0",
"moddle": "^0.6.0",
"moddle-xml": "^0.9.1"
"moddle": "^0.6.3",
"moddle-xml": "^0.9.4"
}
}
# bpmn-moddle
[![Build Status](https://travis-ci.org/bpmn-io/bpmn-moddle.svg)](https://travis-ci.org/bpmn-io/bpmn-moddle)
[![Build Status](https://travis-ci.org/bpmn-io/bpmn-moddle.svg?branch=master)](https://travis-ci.org/bpmn-io/bpmn-moddle)

@@ -5,0 +5,0 @@ Read and write BPMN 2.0 diagram files in NodeJS and the browser.

@@ -131,2 +131,14 @@ {

{
"name": "laneSets",
"type": "LaneSet",
"isMany": true,
"replaces": "FlowElementsContainer#laneSets"
},
{
"name": "flowElements",
"type": "FlowElement",
"isMany": true,
"replaces": "FlowElementsContainer#flowElements"
},
{
"name": "artifacts",

@@ -2383,3 +2395,2 @@ "type": "Artifact",

"type": "ItemAwareElement",
"isAttr": true,
"isReference": true

@@ -2390,3 +2401,2 @@ },

"type": "ItemAwareElement",
"isAttr": true,
"isReference": true

@@ -2396,9 +2406,20 @@ },

"name": "inputDataItem",
"type": "DataInput"
"type": "DataInput",
"xml": {
"serialize": "property"
}
},
{
"name": "outputDataItem",
"type": "DataOutput"
"type": "DataOutput",
"xml": {
"serialize": "property"
}
},
{
"name": "complexBehaviorDefinition",
"type": "ComplexBehaviorDefinition",
"isMany": true
},
{
"name": "completionCondition",

@@ -2411,7 +2432,2 @@ "type": "Expression",

{
"name": "complexBehaviorDefinition",
"type": "ComplexBehaviorDefinition",
"isMany": true
},
{
"name": "oneBehaviorEventRef",

@@ -2418,0 +2434,0 @@ "type": "EventDefinition",

@@ -193,2 +193,17 @@ 'use strict';

builder.alter('Process', function(desc) {
desc.properties.push({
"name": "laneSets",
"type": "LaneSet",
"isMany": true,
"replaces": "FlowElementsContainer#laneSets"
});
desc.properties.push({
"name": "flowElements",
"type": "FlowElement",
"isMany": true,
"replaces": "FlowElementsContainer#flowElements"
});
builder.reorderProperties(desc, [

@@ -198,2 +213,4 @@ 'auditing',

'properties',
'laneSets',
'flowElements',
'artifacts',

@@ -242,2 +259,29 @@ 'resources',

// fix MultiMultiInstanceLoopCharacteristics
builder.alter('MultiInstanceLoopCharacteristics#loopDataInputRef', function(desc) {
delete desc.isAttr;
});
builder.alter('MultiInstanceLoopCharacteristics#loopDataOutputRef', function(desc) {
delete desc.isAttr;
});
builder.alter('MultiInstanceLoopCharacteristics#inputDataItem', function(desc) {
desc.xml = { serialize: 'property' };
});
builder.alter('MultiInstanceLoopCharacteristics#outputDataItem', function(desc) {
desc.xml = { serialize: 'property' };
});
builder.alter('MultiInstanceLoopCharacteristics', function(desc) {
builder.reorderProperties(desc, [
'outputDataItem',
'complexBehaviorDefinition',
'completionCondition'
]);
});
// make some references strings rather than references

@@ -244,0 +288,0 @@ // (this way we are able to import it properly)

@@ -743,3 +743,3 @@ 'use strict';

it('as attributes', function(done) {
it('attributes on root', function(done) {

@@ -762,3 +762,3 @@ // given

it('as elements', function(done) {
it('elements via bpmn:extensionElements', function(done) {

@@ -765,0 +765,0 @@ // when

@@ -23,2 +23,3 @@ 'use strict';

it('home-made bpmn model', function(done) {

@@ -28,7 +29,7 @@

var process = moddle.create('bpmn:Process');
var serviceTask = moddle.create('bpmn:ServiceTask', { name: 'MyService Task'});
var processElement = moddle.create('bpmn:Process');
var serviceTask = moddle.create('bpmn:ServiceTask', { name: 'MyService Task' });
process.get('flowElements').push(serviceTask);
definitions.get('rootElements').push(process);
processElement.get('flowElements').push(serviceTask);
definitions.get('rootElements').push(processElement);

@@ -44,2 +45,69 @@ // when

it('ioSpecification', function(done) {
// given
var definitions = moddle.create('bpmn:Definitions', { targetNamespace: 'http://foo' });
var processElement = moddle.create('bpmn:Process');
var dataInput = moddle.create('bpmn:DataInput', { id: 'DataInput_FOO' });
var inputSet = moddle.create('bpmn:InputSet', {
dataInputRefs: [ dataInput ]
});
var outputSet = moddle.create('bpmn:OutputSet');
var ioSpecification = moddle.create('bpmn:InputOutputSpecification', {
inputSets: [ inputSet ],
outputSets: [ outputSet ],
dataInputs: [ dataInput ]
});
var serviceTask = moddle.create('bpmn:ServiceTask', {
name: 'MyService Task',
ioSpecification: ioSpecification
});
processElement.get('flowElements').push(serviceTask);
definitions.get('rootElements').push(processElement);
// when
toXML(definitions, { format: true }, function(err, xml) {
// then
validate(err, xml, done);
});
});
it('properties', function(done) {
// given
var definitions = moddle.create('bpmn:Definitions', { targetNamespace: 'http://foo' });
var processElement = moddle.create('bpmn:Process');
var property = moddle.create('bpmn:Property', {
id: 'Property_112',
name: '__targetRef_placeholder'
});
var serviceTask = moddle.create('bpmn:ServiceTask', {
name: 'MyService Task',
properties: [ property ]
});
processElement.get('flowElements').push(serviceTask);
definitions.get('rootElements').push(processElement);
// when
toXML(definitions, { format: true }, function(err, xml) {
// then
validate(err, xml, done);
});
});
it('extension attributes', function(done) {

@@ -62,2 +130,19 @@

it('multi instance loop characteristics', function(done) {
// given
fromFile('test/fixtures/bpmn/multiInstanceLoopCharacteristics.bpmn', function(err, result) {
if (err) {
return done(err);
}
// when
toXML(result, { format: true }, function(err, xml) {
validate(err, xml, done);
});
});
});
it('documentation / extensionElements order', function(done) {

@@ -114,3 +199,3 @@

it.skip('process children order', function(done) {
it('process children order', function(done) {

@@ -126,4 +211,2 @@ // given

toXML(result, { format: true }, function(err, xml) {
console.log(xml);
validate(err, xml, done);

@@ -229,3 +312,3 @@ });

it('complex process / extensionElements', function(done) {
it('complex processElement / extensionElements', function(done) {

@@ -269,3 +352,3 @@ // given

it('simple process', function(done) {
it('simple processElement', function(done) {

@@ -311,3 +394,3 @@ // given

it('complex process', function(done) {
it('complex processElement', function(done) {

@@ -314,0 +397,0 @@ // given

@@ -109,5 +109,55 @@ 'use strict';

it.skip('Process', function(done) {
it('MultiInstanceLoopCharacteristics', function(done) {
// given
var loopCharacteristics = moddle.create('bpmn:MultiInstanceLoopCharacteristics', {
loopCardinality: moddle.create('bpmn:FormalExpression', { body: '${ foo < bar }' }),
loopDataInputRef: moddle.create('bpmn:Property', { id: 'loopDataInputRef' }),
loopDataOutputRef: moddle.create('bpmn:Property', { id: 'loopDataOutputRef' }),
inputDataItem: moddle.create('bpmn:DataInput', { id: 'inputDataItem' }),
outputDataItem: moddle.create('bpmn:DataOutput', { id: 'outputDataItem' }),
complexBehaviorDefinition: [
moddle.create('bpmn:ComplexBehaviorDefinition', { id: 'complexBehaviorDefinition' })
],
completionCondition: moddle.create('bpmn:FormalExpression', { body: '${ done }' }),
isSequential: true,
behavior: 'One',
oneBehaviorEventRef: moddle.create('bpmn:CancelEventDefinition', { id: 'oneBehaviorEventRef' }),
noneBehaviorEventRef: moddle.create('bpmn:MessageEventDefinition', { id: 'noneBehaviorEventRef' })
});
var expectedXML =
'<bpmn:multiInstanceLoopCharacteristics xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
'isSequential="true" ' +
'behavior="One" ' +
'oneBehaviorEventRef="oneBehaviorEventRef" ' +
'noneBehaviorEventRef="noneBehaviorEventRef">' +
'<bpmn:loopCardinality xsi:type="bpmn:tFormalExpression"><![CDATA[${ foo < bar }]]></bpmn:loopCardinality>' +
'<bpmn:loopDataInputRef>loopDataInputRef</bpmn:loopDataInputRef>' +
'<bpmn:loopDataOutputRef>loopDataOutputRef</bpmn:loopDataOutputRef>' +
'<bpmn:inputDataItem id="inputDataItem" />' +
'<bpmn:outputDataItem id="outputDataItem" />' +
'<bpmn:complexBehaviorDefinition id="complexBehaviorDefinition" />' +
'<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${ done }</bpmn:completionCondition>' +
'</bpmn:multiInstanceLoopCharacteristics>';
// when
write(loopCharacteristics, function(err, result) {
if (err) {
return done(err);
}
// then
expect(result).to.eql(expectedXML);
done(err);
});
});
it('Process', function(done) {
// given
var processElement = moddle.create('bpmn:Process', {

@@ -337,2 +387,37 @@ id: 'Process_1',

it('ItemDefinition#structureRef with ns', function(done) {
// given
var itemDefinition = moddle.create('bpmn:ItemDefinition', {
'xmlns:xs': 'http://xml-types',
id: 'xsdBool',
isCollection: true,
itemKind: 'Information',
structureRef: 'xs:tBool'
});
var expectedXML =
'<bpmn:itemDefinition xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
'xmlns:xs="http://xml-types" ' +
'id="xsdBool" ' +
'itemKind="Information" ' +
'structureRef="xs:tBool" ' +
'isCollection="true" />';
// when
write(itemDefinition, function(err, result) {
if (err) {
return done(err);
}
// then
expect(result).to.eql(expectedXML);
done();
});
});
it('Operation#implementationRef', function(done) {

@@ -462,37 +547,2 @@

it.skip('ItemDefinition#structureRef', function(done) {
// given
var itemDefinition = moddle.create('bpmn:ItemDefinition', {
'xmlns:xs': 'http://xml-types',
id: 'xsdBool',
isCollection: true,
itemKind: 'Information',
structureRef: 'xs:tBool'
});
var expectedXML =
'<bpmn:itemDefinition xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
'xmlns:xs="http://xml-types" ' +
'id="xsdBool" ' +
'itemKind="Information" ' +
'structureRef="xs:tBool" ' +
'isCollection="true" />';
// when
write(itemDefinition, function(err, result) {
if (err) {
return done(err);
}
// then
expect(result).to.eql(expectedXML);
done();
});
});
it('Operation#messageRef', function(done) {

@@ -534,9 +584,11 @@ // given

it.skip('BPMNDiagram', function(done) {
it('BPMNDiagram', function(done) {
// given
var diagram = moddle.create('bpmndi:BPMNDiagram', { name: 'FOO' });
var diagram = moddle.create('bpmndi:BPMNDiagram', { name: 'FOO', resolution: 96.5 });
var expectedXML =
'<bpmndi:BPMNDiagram xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" name="FOO" />';
'<bpmndi:BPMNDiagram xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
'name="FOO" ' +
'resolution="96.5" />';

@@ -546,2 +598,6 @@ // when

if (err) {
return done(err);
}
// then

@@ -585,5 +641,32 @@ expect(result).to.eql(expectedXML);

it('manually added custom namespace', function(done) {
it('as attributes', function(done) {
// given
var definitions = moddle.create('bpmn:Definitions');
definitions.set('xmlns:foo', 'http://foobar');
// or alternatively directly assign it to definitions.$attrs
var expectedXML =
'<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
'xmlns:foo="http://foobar" />';
// when
write(definitions, function(err, result) {
if (err) {
return done(err);
}
// then
expect(result).to.eql(expectedXML);
done(err);
});
});
it('attributes on root', function(done) {
// given

@@ -612,6 +695,37 @@ var definitions = moddle.create('bpmn:Definitions');

it('as elements', function(done) {
it('attributes on nested element', function(done) {
// given
var signal = moddle.create('bpmn:Signal', {
'foo:bar': 'BAR'
});
var definitions = moddle.create('bpmn:Definitions');
definitions.set('xmlns:foo', 'http://foobar');
definitions.get('rootElements').push(signal);
// or alternatively directly assign it to definitions.$attrs
var expectedXML =
'<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
'xmlns:foo="http://foobar">' +
'<bpmn:signal foo:bar="BAR" />' +
'</bpmn:definitions>';
// when
write(definitions, function(err, result) {
// then
expect(result).to.eql(expectedXML);
done(err);
});
});
it('elements via bpmn:extensionElements', function(done) {
// given
var vendorBgColor = moddle.createAny('vendor:info', 'http://vendor', {

@@ -618,0 +732,0 @@ key: 'bgcolor',

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