bpmn-moddle
Advanced tools
Comparing version 0.10.1 to 0.10.2
{ | ||
"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', |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
976379
98
6491
12
Updatedmoddle@^0.6.3
Updatedmoddle-xml@^0.9.4