├── .github
├── ISSUE_TEMPLATE
│ ├── BUG_REPORT.md
│ ├── FEATURE_REQUEST.md
│ ├── TASK.md
│ └── config.yml
├── dependabot.yml
├── merge-me.yml
└── workflows
│ └── CI.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── eslint.config.mjs
├── package-lock.json
├── package.json
├── renovate.json
├── resources
└── camunda.json
└── test
├── .eslintrc
├── expect.js
├── fixtures
├── xml
│ ├── businessRuleTask.part.bpmn
│ ├── callActivity.part.bpmn
│ ├── camunda-connector.part.bpmn
│ ├── camunda-errorMessage.part.bpmn
│ ├── camunda-executionListener-fields.part.bpmn
│ ├── camunda-executionListener-script.part.bpmn
│ ├── camunda-executionListener.part.bpmn
│ ├── camunda-field-attributes.part.bpmn
│ ├── camunda-field-children.part.bpmn
│ ├── camunda-formData.part.bpmn
│ ├── camunda-formField-ids.bpmn
│ ├── camunda-formProperty-attributes.part.bpmn
│ ├── camunda-formProperty-children.part.bpmn
│ ├── camunda-formProperty.part.bpmn
│ ├── camunda-in.part.bpmn
│ ├── camunda-inputParameter-body.part.bpmn
│ ├── camunda-inputParameter-list.part.bpmn
│ ├── camunda-inputParameter-map.part.bpmn
│ ├── camunda-inputParameter-script.part.bpmn
│ ├── camunda-multiInstance.part.bpmn
│ ├── camunda-out.part.bpmn
│ ├── camunda-outputParameter-mixed.part.bpmn
│ ├── camunda-potentialStarter.part.bpmn
│ ├── camunda-properties.part.bpmn
│ ├── camunda-script.part.bpmn
│ ├── camunda-taskListener.part.bpmn
│ ├── camunda-timeout-taskListener.part.bpmn
│ ├── collaboration-camunda-modelerTemplate.part.bpmn
│ ├── collaboration-camunda-modelerTemplateVersion.part.bpmn
│ ├── conditionalEventDefinition-camunda-variableEvents.part.bpmn
│ ├── conditionalEventDefinition-camunda-variableName.part.bpmn
│ ├── definitions-diagramRelationId.part.bpmn
│ ├── errorEventDefinition-camunda-errorCodeVariable.part.bpmn
│ ├── errorEventDefinition-camunda-errorMessageVariable.part.bpmn
│ ├── escalationEventDefinition-camunda-escalationCodeVariable.part.bpmn
│ ├── event-camunda-jobPriority.part.bpmn
│ ├── formalExpression-resource.part.bpmn
│ ├── gateway-camunda-jobPriority.part.bpmn
│ ├── inputOutput-nestedList.bpmn
│ ├── process-camunda-historyTimeToLive.part.bpmn
│ ├── process-camunda-isStartableInTasklist.part.bpmn
│ ├── process-camunda-jobPriority.part.bpmn
│ ├── process-camunda-modelerTemplate.part.bpmn
│ ├── process-camunda-modelerTemplateVersion.part.bpmn
│ ├── process-camunda-taskPriority.part.bpmn
│ ├── process.part.bpmn
│ ├── scriptTask.part.bpmn
│ ├── serviceTask-camunda-async.part.bpmn
│ ├── serviceTask-camunda-errorEventDefinition.part.bpmn
│ ├── serviceTask-camunda-jobPriority.part.bpmn
│ ├── serviceTask-camunda-taskPriority.part.bpmn
│ ├── signalEventDefinition-camunda-async.part.bpmn
│ ├── startEvent-camunda-formHandlerClass.part.bpmn
│ ├── startEvent-camunda-formKey.part.bpmn
│ ├── startEvent-camunda-formRef-latest.part.bpmn
│ ├── startEvent-camunda-formRef-version.part.bpmn
│ ├── startEvent-camunda-initiator.part.bpmn
│ ├── startEvent-camunda-modelerTemplate.part.bpmn
│ ├── startEvent-camunda-modelerTemplateVersion.part.bpmn
│ ├── task-camunda-modelerTemplate.part.bpmn
│ ├── task-camunda-modelerTemplateVersion.part.bpmn
│ ├── userTask-camunda-formData.bpmn
│ ├── userTask-camunda-formHandlerClass.part.bpmn
│ ├── userTask-camunda-formKey.part.bpmn
│ ├── userTask-camunda-formRef-latest.part.bpmn
│ ├── userTask-camunda-formRef-version.part.bpmn
│ └── userTask-camunda-priority.part.bpmn
└── xsd
│ └── BPMN20.xsd
├── helper.js
├── integration
└── camunda-models.js
├── matchers.js
├── spec
├── ModdleSpec.js
└── xml
│ ├── read.js
│ ├── roundtrip.js
│ └── write.js
└── xml-helper.js
/.github/ISSUE_TEMPLATE/BUG_REPORT.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Report a problem and help us fix it.
4 | labels: "bug"
5 | ---
6 |
7 |
8 | __Describe the Bug__
9 |
10 | A clear and concise description of what the bug is.
11 |
12 |
13 | __Steps to Reproduce__
14 |
15 | Steps to reproduce the behavior:
16 |
17 | 1. do this
18 | 2. do that
19 | 3. now this happens
20 |
21 |
22 | __Expected Behavior__
23 |
24 | A clear and concise description of what you expected to happen.
25 |
26 |
27 | __Environment__
28 |
29 | Please complete the following information:
30 |
31 | - Browser: [e.g. IE 11, Chrome 69]
32 | - OS: [e.g. Windows 7]
33 | - Library version: [e.g. 5.0.0]
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea or general improvement.
4 | labels: "enhancement"
5 | ---
6 |
7 |
8 | __Is your feature request related to a problem? Please describe.__
9 |
10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11 |
12 |
13 | __Describe the solution you'd like__
14 |
15 | A clear and concise description of what you want to happen.
16 |
17 |
18 | __Describe alternatives you've considered__
19 |
20 | A clear and concise description of any alternative solutions or features you've considered.
21 |
22 |
23 | __Additional context__
24 |
25 | Add any other context or screenshots about the feature request here.
26 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/TASK.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Task
3 | about: Describe a generic activity we should carry out.
4 | ---
5 |
6 |
7 | __What should we do?__
8 |
9 |
10 |
11 |
12 | __Why should we do it?__
13 |
14 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Ask a question
4 | url: https://forum.camunda.org/c/modeler
5 | about: Head over to our community forum to ask questions and get answers.
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "npm"
9 | directory: "/"
10 | schedule:
11 | interval: "daily"
12 | reviewers: # Automatically assign reviewer
13 | - "bpmn-io/modeling-dev"
14 | allow:
15 | - dependency-name: "bpmn-moddle"
16 | dependency-type: "all"
17 | commit-message:
18 | prefix: "deps:"
19 | versioning-strategy: "increase"
20 |
--------------------------------------------------------------------------------
/.github/merge-me.yml:
--------------------------------------------------------------------------------
1 | reviewTeams:
2 | - modeling-dev
3 | - modeling-design
4 |
--------------------------------------------------------------------------------
/.github/workflows/CI.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 | on: [ push, pull_request ]
3 | jobs:
4 | Build:
5 | runs-on: ubuntu-latest
6 |
7 | steps:
8 | - name: Checkout
9 | uses: actions/checkout@v4
10 | - name: Use Node.js
11 | uses: actions/setup-node@v4
12 | with:
13 | node-version: 20
14 | cache: 'npm'
15 | - name: Install dependencies
16 | run: npm ci
17 | - name: Build
18 | run: npm run all
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to [camunda-bpmn-moddle](https://github.com/camunda/camunda-bpmn-moddle) are documented here. We use [semantic versioning](http://semver.org/) for releases.
4 |
5 | ## Unreleased
6 |
7 | ___Note:__ Yet to be released changes appear here._
8 |
9 | ## 7.0.1
10 |
11 | * `DEPS`: update to `bpmn-moddle@7.1.3`
12 |
13 | ## 7.0.0
14 |
15 | * `CHORE`: remove behaviors ([#112](https://github.com/camunda/camunda-bpmn-moddle/pull/112))
16 |
17 | ### Breaking Changes
18 |
19 | * Behaviors moved to [`camunda-bpmn-js-behaviors`](https://github.com/camunda/camunda-bpmn-js-behaviors)
20 |
21 | ## 6.1.2
22 |
23 | * `DEPS`: deps: mark `bpmn-js@9` and `diagram-js@8` as peer dependency
24 |
25 | ## 6.1.1
26 |
27 | * `FIX`: remove invalid `camunda:formRefBinding` default value ([#87](https://github.com/camunda/camunda-bpmn-moddle/pull/87))
28 |
29 | ## 6.1.0
30 |
31 | * `FEAT`: remove `variableEvents` for `startEvent` outside of `EventSubProcess` ([#77](https://github.com/camunda/camunda-bpmn-moddle/pull/77))
32 | * `FIX`: remove `initiator` property for `shape.create` ([#78](https://github.com/camunda/camunda-bpmn-moddle/pull/78))
33 |
34 | ## 6.0.0
35 |
36 | * `FEAT`: support `camunda:formRef`, `camunda:formRefBinding` and `camunda:formRefVersion` elements ([#76](https://github.com/camunda/camunda-bpmn-moddle/pull/76))
37 | * `FIX`: remove `initiator` property for `startEvent` when moved to a subProcess ([#74](https://github.com/camunda/camunda-bpmn-moddle/issues/74))
38 |
39 | ## 5.1.2
40 |
41 | * `FIX`: ensure root element is referenced on correct position ([#70](https://github.com/camunda/camunda-bpmn-moddle/pull/70))
42 |
43 | ## 5.1.1
44 |
45 | * `FIX`: do not copy non existing root elements ([#69](https://github.com/camunda/camunda-bpmn-moddle/pull/69))
46 |
47 | ## 5.1.0
48 |
49 | * `FEAT`: add behavior to copy and paste `bpmn:Error` elements referenced via `camunda:ErrorEventDefinition` elements ([#68](https://github.com/camunda/camunda-bpmn-moddle/pull/68))
50 | * `FIX`: support `camunda:modelerTemplate` and `camunda:modelerTemplateVersion` for `bpmn:Collaboration` elements ([#67](https://github.com/camunda/camunda-bpmn-moddle/pull/67))
51 |
52 | ## 5.0.0
53 |
54 | * `CHORE`: rename `*EventDefinition` to `*EventDefinitionExtension`
55 | * `FEAT`: support `camunda:ErrorEventDefinition` for external service tasks
56 |
57 | ### Breaking Changes
58 |
59 | * `*EventDefinition` elements were re-named by appending `Extension`. Adjust the name of these elements, if you extended or superclassed them.
60 |
61 | ## 4.5.0
62 |
63 | * `FIX`: add `modelerTemplateVersion` property ([#60](https://github.com/camunda/camunda-bpmn-moddle/pull/60))
64 |
65 | ## 4.4.1
66 |
67 | * `FIX`: rename `variableEvent` to `variableEvents` ([`cd4a417`](https://github.com/camunda/camunda-bpmn-moddle/commit/cd4a417c1ee7831646f896d2360854aee7ee1ad3))
68 |
69 | ## 4.4.0
70 |
71 | * `FEAT`: copy [`camunda:in`](https://docs.camunda.org/manual/7.12/reference/bpmn20/custom-extensions/extension-elements/#in) on signal throw events ([#54](https://github.com/camunda/camunda-bpmn-moddle/pull/54))
72 |
73 | ## 4.3.0
74 |
75 | * `FEAT`: add `id` and `eventDefinitions` to task listener schema ([`9668525f`](https://github.com/camunda/camunda-bpmn-moddle/commit/9668525f217df6938312e84bde0f022115ea5935))
76 |
77 | ## 4.2.0
78 |
79 | * `FEAT`: add `camunda:diagramRelationId` to schema ([#49](https://github.com/camunda/camunda-bpmn-moddle/issues/49))
80 |
81 | ## 4.1.2
82 |
83 | * `FIX`: do not copy `camunda:InputOutput` on gateways
84 | * `FIX`: copy `camunda:FailedJobRetryTimeCycle` consistently for all `camunda:AsyncCapable` elements
85 |
86 | ## 4.1.1
87 |
88 | * `FIX`: allow [`camunda:failedJobRetryTimeCycle`](https://docs.camunda.org/manual/7.11/reference/bpmn20/custom-extensions/extension-elements/#failedjobretrytimecycle) in `bpmn:SubProcess`
89 | * `FIX`: allow [`camunda:executionListener`](https://docs.camunda.org/manual/7.11/reference/bpmn20/custom-extensions/extension-elements/#executionlistener) in `bpmn:Process`
90 |
91 | ## 4.1.0
92 |
93 | * `FEAT`: add `camunda:errorMessage` to schema ([`d47da`](https://github.com/camunda/camunda-bpmn-moddle/commit/d47da3a8e90b90994fd397c3ddb6572ce6dcbc1c))
94 |
95 | ## 4.0.1
96 |
97 | * `DOCS`: update bpmn-js integration docs
98 |
99 | ## 4.0.0
100 |
101 | * `CHORE`: update moddle copy mechanism for compatibility with `bpmn-js@5`
102 | * `CHORE`: use Camunda logical types in `allowedIn` mappings
103 | * `FIX`: make extension work
104 |
105 | ### Breaking Changes
106 |
107 | * Requires `bpmn-js@5+` for proper copying of moddle attributes
108 |
109 | ## 3.2.0
110 |
111 | * `FEAT`: add `camunda:calledElementVersionTag` to schema ([#43](https://github.com/camunda/camunda-bpmn-moddle/issues/43))
112 |
113 | ## 3.1.1
114 |
115 | * `FIX`: correct `camunda:isStartableInTasklist` default value ([#41](https://github.com/camunda/camunda-bpmn-moddle/issues/41))
116 |
117 | ## 3.1.0
118 |
119 | * `FEAT`: support `camunda:isStartableInTasklist`
120 |
121 | ## ...
122 |
123 | Check `git log` for earlier history.
124 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014-2017 camunda Services GmbH
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # camunda-bpmn-moddle
2 |
3 | [](https://github.com/camunda/camunda-bpmn-moddle/actions?query=workflow%3ACI)
4 |
5 | This project defines the [Camunda](https://camunda.org) namespace extensions for BPMN 2.0 as a [moddle](https://github.com/bpmn-io/moddle) descriptor.
6 |
7 |
8 | ## Usage
9 |
10 | Use it together with [bpmn-moddle](https://github.com/bpmn-io/bpmn-moddle) to validate Camunda BPMN 2.0 extensions.
11 |
12 | ```javascript
13 | import BpmnModdle from 'bpmn-moddle';
14 |
15 | import camundaModdle from 'camunda-bpmn-moddle/resources/camunda.json';
16 |
17 | const moddle = new BpmnModdle({ camunda: camundaModdle });
18 |
19 | const serviceTask = moddle.create('bpmn:ServiceTask', {
20 | 'javaDelegate': 'my.company.SomeDelegate'
21 | });
22 | ```
23 |
24 |
25 | ## Building the Project
26 |
27 | To run the test suite that includes XSD schema validation you must have a Java JDK installed and properly exposed through the `JAVA_HOME` variable.
28 |
29 | Execute the test via
30 |
31 | ```
32 | npm test
33 | ```
34 |
35 | Perform a complete build of the application via
36 |
37 | ```
38 | npm run all
39 | ```
40 |
41 | ## Behaviors
42 |
43 | Inside a [bpmn-js editor](https://github.com/bpmn-io/bpmn-js) pair this extension with [camunda-bpmn-js-behaviors](https://github.com/camunda/camunda-bpmn-js-behaviors#camunda-platform-7) to ensure Camunda properties are created, updated and deleted as expected.
44 |
45 |
46 | ## License
47 |
48 | Use under the terms of the [MIT license](http://opensource.org/licenses/MIT).
49 |
--------------------------------------------------------------------------------
/eslint.config.mjs:
--------------------------------------------------------------------------------
1 | import bpmnIoPlugin from 'eslint-plugin-bpmn-io';
2 |
3 | export default [
4 | ...bpmnIoPlugin.configs.node,
5 | ...bpmnIoPlugin.configs.mocha.map(config => {
6 |
7 | return {
8 | ...config,
9 | files: [
10 | 'test/**/*.js',
11 | 'test/**/*.cjs'
12 | ]
13 | };
14 | })
15 | ];
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "camunda-bpmn-moddle",
3 | "version": "7.0.1",
4 | "description": "Camunda moddle extensions for BPMN 2.0",
5 | "scripts": {
6 | "all": "run-s lint test",
7 | "lint": "eslint .",
8 | "dev": "npm run test -- --auto-watch --no-single-run",
9 | "test": "mocha -r ./test/expect --reporter=spec \"test/**/*.js\""
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "https://github.com/camunda/camunda-bpmn-moddle"
14 | },
15 | "keywords": [
16 | "bpmn",
17 | "moddle",
18 | "bpmn20",
19 | "camunda",
20 | "meta-model"
21 | ],
22 | "author": {
23 | "name": "Nico Rehwaldt",
24 | "url": "https://github.com/nikku"
25 | },
26 | "contributors": [
27 | {
28 | "name": "bpmn.io contributors",
29 | "url": "https://github.com/bpmn-io"
30 | }
31 | ],
32 | "license": "MIT",
33 | "devDependencies": {
34 | "bpmn-moddle": "^9.0.1",
35 | "chai": "^4.3.0",
36 | "eslint": "^9.12.0",
37 | "eslint-plugin-bpmn-io": "^2.0.2",
38 | "esm": "^3.2.25",
39 | "glob": "^11.0.0",
40 | "mocha": "^10.0.0",
41 | "npm-run-all2": "^8.0.0",
42 | "p-series": "^2.1.0",
43 | "xsd-schema-validator": "^0.7.0"
44 | },
45 | "files": [
46 | "resources"
47 | ]
48 | }
49 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "github>bpmn-io/renovate-config:recommended"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/resources/camunda.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Camunda",
3 | "uri": "http://camunda.org/schema/1.0/bpmn",
4 | "prefix": "camunda",
5 | "xml": {
6 | "tagAlias": "lowerCase"
7 | },
8 | "associations": [],
9 | "types": [
10 | {
11 | "name": "Definitions",
12 | "isAbstract": true,
13 | "extends": [
14 | "bpmn:Definitions"
15 | ],
16 | "properties": [
17 | {
18 | "name": "diagramRelationId",
19 | "isAttr": true,
20 | "type": "String"
21 | }
22 | ]
23 | },
24 | {
25 | "name": "InOutBinding",
26 | "superClass": [
27 | "Element"
28 | ],
29 | "isAbstract": true,
30 | "properties": [
31 | {
32 | "name": "source",
33 | "isAttr": true,
34 | "type": "String"
35 | },
36 | {
37 | "name": "sourceExpression",
38 | "isAttr": true,
39 | "type": "String"
40 | },
41 | {
42 | "name": "target",
43 | "isAttr": true,
44 | "type": "String"
45 | },
46 | {
47 | "name": "businessKey",
48 | "isAttr": true,
49 | "type": "String"
50 | },
51 | {
52 | "name": "local",
53 | "isAttr": true,
54 | "type": "Boolean",
55 | "default": false
56 | },
57 | {
58 | "name": "variables",
59 | "isAttr": true,
60 | "type": "String"
61 | }
62 | ]
63 | },
64 | {
65 | "name": "In",
66 | "superClass": [
67 | "InOutBinding"
68 | ],
69 | "meta": {
70 | "allowedIn": [
71 | "bpmn:CallActivity",
72 | "bpmn:SignalEventDefinition"
73 | ]
74 | }
75 | },
76 | {
77 | "name": "Out",
78 | "superClass": [
79 | "InOutBinding"
80 | ],
81 | "meta": {
82 | "allowedIn": [
83 | "bpmn:CallActivity"
84 | ]
85 | }
86 | },
87 | {
88 | "name": "AsyncCapable",
89 | "isAbstract": true,
90 | "extends": [
91 | "bpmn:Activity",
92 | "bpmn:Gateway",
93 | "bpmn:Event"
94 | ],
95 | "properties": [
96 | {
97 | "name": "async",
98 | "isAttr": true,
99 | "type": "Boolean",
100 | "default": false
101 | },
102 | {
103 | "name": "asyncBefore",
104 | "isAttr": true,
105 | "type": "Boolean",
106 | "default": false
107 | },
108 | {
109 | "name": "asyncAfter",
110 | "isAttr": true,
111 | "type": "Boolean",
112 | "default": false
113 | },
114 | {
115 | "name": "exclusive",
116 | "isAttr": true,
117 | "type": "Boolean",
118 | "default": true
119 | }
120 | ]
121 | },
122 | {
123 | "name": "JobPriorized",
124 | "isAbstract": true,
125 | "extends": [
126 | "bpmn:Process",
127 | "camunda:AsyncCapable"
128 | ],
129 | "properties": [
130 | {
131 | "name": "jobPriority",
132 | "isAttr": true,
133 | "type": "String"
134 | }
135 | ]
136 | },
137 | {
138 | "name": "SignalEventDefinitionExtension",
139 | "isAbstract": true,
140 | "extends": [
141 | "bpmn:SignalEventDefinition"
142 | ],
143 | "properties": [
144 | {
145 | "name": "async",
146 | "isAttr": true,
147 | "type": "Boolean",
148 | "default": false
149 | }
150 | ]
151 | },
152 | {
153 | "name": "ErrorEventDefinitionExtension",
154 | "isAbstract": true,
155 | "extends": [
156 | "bpmn:ErrorEventDefinition"
157 | ],
158 | "properties": [
159 | {
160 | "name": "errorCodeVariable",
161 | "isAttr": true,
162 | "type": "String"
163 | },
164 | {
165 | "name": "errorMessageVariable",
166 | "isAttr": true,
167 | "type": "String"
168 | }
169 | ]
170 | },
171 | {
172 | "name": "ErrorEventDefinition",
173 | "superClass": [
174 | "bpmn:ErrorEventDefinition",
175 | "Element"
176 | ],
177 | "properties": [
178 | {
179 | "name": "expression",
180 | "isAttr": true,
181 | "type": "String"
182 | }
183 | ],
184 | "meta": {
185 | "allowedIn": [ "bpmn:ServiceTask" ]
186 | }
187 | },
188 | {
189 | "name": "Error",
190 | "isAbstract": true,
191 | "extends": [
192 | "bpmn:Error"
193 | ],
194 | "properties": [
195 | {
196 | "name": "camunda:errorMessage",
197 | "isAttr": true,
198 | "type": "String"
199 | }
200 | ]
201 | },
202 | {
203 | "name": "PotentialStarter",
204 | "superClass": [
205 | "Element"
206 | ],
207 | "properties": [
208 | {
209 | "name": "resourceAssignmentExpression",
210 | "type": "bpmn:ResourceAssignmentExpression"
211 | }
212 | ]
213 | },
214 | {
215 | "name": "FormSupported",
216 | "isAbstract": true,
217 | "extends": [
218 | "bpmn:StartEvent",
219 | "bpmn:UserTask"
220 | ],
221 | "properties": [
222 | {
223 | "name": "formHandlerClass",
224 | "isAttr": true,
225 | "type": "String"
226 | },
227 | {
228 | "name": "formKey",
229 | "isAttr": true,
230 | "type": "String"
231 | },
232 | {
233 | "name": "formRef",
234 | "isAttr": true,
235 | "type": "String"
236 | },
237 | {
238 | "name": "formRefBinding",
239 | "isAttr": true,
240 | "type": "String"
241 | },
242 | {
243 | "name": "formRefVersion",
244 | "isAttr": true,
245 | "type": "String"
246 | }
247 | ]
248 | },
249 | {
250 | "name": "TemplateSupported",
251 | "isAbstract": true,
252 | "extends": [
253 | "bpmn:Collaboration",
254 | "bpmn:Process",
255 | "bpmn:FlowElement"
256 | ],
257 | "properties": [
258 | {
259 | "name": "modelerTemplate",
260 | "isAttr": true,
261 | "type": "String"
262 | },
263 | {
264 | "name": "modelerTemplateVersion",
265 | "isAttr": true,
266 | "type": "Integer"
267 | }
268 | ]
269 | },
270 | {
271 | "name": "Initiator",
272 | "isAbstract": true,
273 | "extends": [ "bpmn:StartEvent" ],
274 | "properties": [
275 | {
276 | "name": "initiator",
277 | "isAttr": true,
278 | "type": "String"
279 | }
280 | ]
281 | },
282 | {
283 | "name": "ScriptTask",
284 | "isAbstract": true,
285 | "extends": [
286 | "bpmn:ScriptTask"
287 | ],
288 | "properties": [
289 | {
290 | "name": "resultVariable",
291 | "isAttr": true,
292 | "type": "String"
293 | },
294 | {
295 | "name": "resource",
296 | "isAttr": true,
297 | "type": "String"
298 | }
299 | ]
300 | },
301 | {
302 | "name": "Process",
303 | "isAbstract": true,
304 | "extends": [
305 | "bpmn:Process"
306 | ],
307 | "properties": [
308 | {
309 | "name": "candidateStarterGroups",
310 | "isAttr": true,
311 | "type": "String"
312 | },
313 | {
314 | "name": "candidateStarterUsers",
315 | "isAttr": true,
316 | "type": "String"
317 | },
318 | {
319 | "name": "versionTag",
320 | "isAttr": true,
321 | "type": "String"
322 | },
323 | {
324 | "name": "historyTimeToLive",
325 | "isAttr": true,
326 | "type": "String"
327 | },
328 | {
329 | "name": "isStartableInTasklist",
330 | "isAttr": true,
331 | "type": "Boolean",
332 | "default": true
333 | }
334 | ]
335 | },
336 | {
337 | "name": "EscalationEventDefinitionExtension",
338 | "isAbstract": true,
339 | "extends": [
340 | "bpmn:EscalationEventDefinition"
341 | ],
342 | "properties": [
343 | {
344 | "name": "escalationCodeVariable",
345 | "isAttr": true,
346 | "type": "String"
347 | }
348 | ]
349 | },
350 | {
351 | "name": "FormalExpression",
352 | "isAbstract": true,
353 | "extends": [
354 | "bpmn:FormalExpression"
355 | ],
356 | "properties": [
357 | {
358 | "name": "resource",
359 | "isAttr": true,
360 | "type": "String"
361 | }
362 | ]
363 | },
364 | {
365 | "name": "Assignable",
366 | "extends": [ "bpmn:UserTask" ],
367 | "properties": [
368 | {
369 | "name": "assignee",
370 | "isAttr": true,
371 | "type": "String"
372 | },
373 | {
374 | "name": "candidateUsers",
375 | "isAttr": true,
376 | "type": "String"
377 | },
378 | {
379 | "name": "candidateGroups",
380 | "isAttr": true,
381 | "type": "String"
382 | },
383 | {
384 | "name": "dueDate",
385 | "isAttr": true,
386 | "type": "String"
387 | },
388 | {
389 | "name": "followUpDate",
390 | "isAttr": true,
391 | "type": "String"
392 | },
393 | {
394 | "name": "priority",
395 | "isAttr": true,
396 | "type": "String"
397 | }
398 | ]
399 | },
400 | {
401 | "name": "CallActivity",
402 | "extends": [ "bpmn:CallActivity" ],
403 | "properties": [
404 | {
405 | "name": "calledElementBinding",
406 | "isAttr": true,
407 | "type": "String",
408 | "default": "latest"
409 | },
410 | {
411 | "name": "calledElementVersion",
412 | "isAttr": true,
413 | "type": "String"
414 | },
415 | {
416 | "name": "calledElementVersionTag",
417 | "isAttr": true,
418 | "type": "String"
419 | },
420 | {
421 | "name": "calledElementTenantId",
422 | "isAttr": true,
423 | "type": "String"
424 | },
425 | {
426 | "name": "caseRef",
427 | "isAttr": true,
428 | "type": "String"
429 | },
430 | {
431 | "name": "caseBinding",
432 | "isAttr": true,
433 | "type": "String",
434 | "default": "latest"
435 | },
436 | {
437 | "name": "caseVersion",
438 | "isAttr": true,
439 | "type": "String"
440 | },
441 | {
442 | "name": "caseTenantId",
443 | "isAttr": true,
444 | "type": "String"
445 | },
446 | {
447 | "name": "variableMappingClass",
448 | "isAttr": true,
449 | "type": "String"
450 | },
451 | {
452 | "name": "variableMappingDelegateExpression",
453 | "isAttr": true,
454 | "type": "String"
455 | }
456 | ]
457 | },
458 | {
459 | "name": "ServiceTaskLike",
460 | "extends": [
461 | "bpmn:ServiceTask",
462 | "bpmn:BusinessRuleTask",
463 | "bpmn:SendTask",
464 | "bpmn:MessageEventDefinition"
465 | ],
466 | "properties": [
467 | {
468 | "name": "expression",
469 | "isAttr": true,
470 | "type": "String"
471 | },
472 | {
473 | "name": "class",
474 | "isAttr": true,
475 | "type": "String"
476 | },
477 | {
478 | "name": "delegateExpression",
479 | "isAttr": true,
480 | "type": "String"
481 | },
482 | {
483 | "name": "resultVariable",
484 | "isAttr": true,
485 | "type": "String"
486 | }
487 | ]
488 | },
489 | {
490 | "name": "DmnCapable",
491 | "extends": [
492 | "bpmn:BusinessRuleTask"
493 | ],
494 | "properties": [
495 | {
496 | "name": "decisionRef",
497 | "isAttr": true,
498 | "type": "String"
499 | },
500 | {
501 | "name": "decisionRefBinding",
502 | "isAttr": true,
503 | "type": "String",
504 | "default": "latest"
505 | },
506 | {
507 | "name": "decisionRefVersion",
508 | "isAttr": true,
509 | "type": "String"
510 | },
511 | {
512 | "name": "mapDecisionResult",
513 | "isAttr": true,
514 | "type": "String",
515 | "default": "resultList"
516 | },
517 | {
518 | "name": "decisionRefTenantId",
519 | "isAttr": true,
520 | "type": "String"
521 | }
522 | ]
523 | },
524 | {
525 | "name": "ExternalCapable",
526 | "extends": [
527 | "camunda:ServiceTaskLike"
528 | ],
529 | "properties": [
530 | {
531 | "name": "type",
532 | "isAttr": true,
533 | "type": "String"
534 | },
535 | {
536 | "name": "topic",
537 | "isAttr": true,
538 | "type": "String"
539 | }
540 | ]
541 | },
542 | {
543 | "name": "TaskPriorized",
544 | "extends": [
545 | "bpmn:Process",
546 | "camunda:ExternalCapable"
547 | ],
548 | "properties": [
549 | {
550 | "name": "taskPriority",
551 | "isAttr": true,
552 | "type": "String"
553 | }
554 | ]
555 | },
556 | {
557 | "name": "Properties",
558 | "superClass": [
559 | "Element"
560 | ],
561 | "meta": {
562 | "allowedIn": [ "*" ]
563 | },
564 | "properties": [
565 | {
566 | "name": "values",
567 | "type": "Property",
568 | "isMany": true
569 | }
570 | ]
571 | },
572 | {
573 | "name": "Property",
574 | "superClass": [
575 | "Element"
576 | ],
577 | "properties": [
578 | {
579 | "name": "id",
580 | "type": "String",
581 | "isAttr": true
582 | },
583 | {
584 | "name": "name",
585 | "type": "String",
586 | "isAttr": true
587 | },
588 | {
589 | "name": "value",
590 | "type": "String",
591 | "isAttr": true
592 | }
593 | ]
594 | },
595 | {
596 | "name": "Connector",
597 | "superClass": [
598 | "Element"
599 | ],
600 | "meta": {
601 | "allowedIn": [
602 | "camunda:ServiceTaskLike"
603 | ]
604 | },
605 | "properties": [
606 | {
607 | "name": "inputOutput",
608 | "type": "InputOutput"
609 | },
610 | {
611 | "name": "connectorId",
612 | "type": "String"
613 | }
614 | ]
615 | },
616 | {
617 | "name": "InputOutput",
618 | "superClass": [
619 | "Element"
620 | ],
621 | "meta": {
622 | "allowedIn": [
623 | "bpmn:FlowNode",
624 | "camunda:Connector"
625 | ]
626 | },
627 | "properties": [
628 | {
629 | "name": "inputOutput",
630 | "type": "InputOutput"
631 | },
632 | {
633 | "name": "connectorId",
634 | "type": "String"
635 | },
636 | {
637 | "name": "inputParameters",
638 | "isMany": true,
639 | "type": "InputParameter"
640 | },
641 | {
642 | "name": "outputParameters",
643 | "isMany": true,
644 | "type": "OutputParameter"
645 | }
646 | ]
647 | },
648 | {
649 | "name": "InputOutputParameter",
650 | "properties": [
651 | {
652 | "name": "name",
653 | "isAttr": true,
654 | "type": "String"
655 | },
656 | {
657 | "name": "value",
658 | "isBody": true,
659 | "type": "String"
660 | },
661 | {
662 | "name": "definition",
663 | "type": "InputOutputParameterDefinition"
664 | }
665 | ]
666 | },
667 | {
668 | "name": "InputOutputParameterDefinition",
669 | "isAbstract": true
670 | },
671 | {
672 | "name": "List",
673 | "superClass": [ "InputOutputParameterDefinition" ],
674 | "properties": [
675 | {
676 | "name": "items",
677 | "isMany": true,
678 | "type": "InputOutputParameterDefinition"
679 | }
680 | ]
681 | },
682 | {
683 | "name": "Map",
684 | "superClass": [ "InputOutputParameterDefinition" ],
685 | "properties": [
686 | {
687 | "name": "entries",
688 | "isMany": true,
689 | "type": "Entry"
690 | }
691 | ]
692 | },
693 | {
694 | "name": "Entry",
695 | "properties": [
696 | {
697 | "name": "key",
698 | "isAttr": true,
699 | "type": "String"
700 | },
701 | {
702 | "name": "value",
703 | "isBody": true,
704 | "type": "String"
705 | },
706 | {
707 | "name": "definition",
708 | "type": "InputOutputParameterDefinition"
709 | }
710 | ]
711 | },
712 | {
713 | "name": "Value",
714 | "superClass": [
715 | "InputOutputParameterDefinition"
716 | ],
717 | "properties": [
718 | {
719 | "name": "id",
720 | "isAttr": true,
721 | "type": "String"
722 | },
723 | {
724 | "name": "name",
725 | "isAttr": true,
726 | "type": "String"
727 | },
728 | {
729 | "name": "value",
730 | "isBody": true,
731 | "type": "String"
732 | }
733 | ]
734 | },
735 | {
736 | "name": "Script",
737 | "superClass": [ "InputOutputParameterDefinition" ],
738 | "properties": [
739 | {
740 | "name": "scriptFormat",
741 | "isAttr": true,
742 | "type": "String"
743 | },
744 | {
745 | "name": "resource",
746 | "isAttr": true,
747 | "type": "String"
748 | },
749 | {
750 | "name": "value",
751 | "isBody": true,
752 | "type": "String"
753 | }
754 | ]
755 | },
756 | {
757 | "name": "Field",
758 | "superClass": [ "Element" ],
759 | "meta": {
760 | "allowedIn": [
761 | "camunda:ServiceTaskLike",
762 | "camunda:ExecutionListener",
763 | "camunda:TaskListener"
764 | ]
765 | },
766 | "properties": [
767 | {
768 | "name": "name",
769 | "isAttr": true,
770 | "type": "String"
771 | },
772 | {
773 | "name": "expression",
774 | "type": "String"
775 | },
776 | {
777 | "name": "stringValue",
778 | "isAttr": true,
779 | "type": "String"
780 | },
781 | {
782 | "name": "string",
783 | "type": "String"
784 | }
785 | ]
786 | },
787 | {
788 | "name": "InputParameter",
789 | "superClass": [ "InputOutputParameter" ]
790 | },
791 | {
792 | "name": "OutputParameter",
793 | "superClass": [ "InputOutputParameter" ]
794 | },
795 | {
796 | "name": "Collectable",
797 | "isAbstract": true,
798 | "extends": [ "bpmn:MultiInstanceLoopCharacteristics" ],
799 | "superClass": [ "camunda:AsyncCapable" ],
800 | "properties": [
801 | {
802 | "name": "collection",
803 | "isAttr": true,
804 | "type": "String"
805 | },
806 | {
807 | "name": "elementVariable",
808 | "isAttr": true,
809 | "type": "String"
810 | }
811 | ]
812 | },
813 | {
814 | "name": "FailedJobRetryTimeCycle",
815 | "superClass": [ "Element" ],
816 | "meta": {
817 | "allowedIn": [
818 | "camunda:AsyncCapable",
819 | "bpmn:MultiInstanceLoopCharacteristics"
820 | ]
821 | },
822 | "properties": [
823 | {
824 | "name": "body",
825 | "isBody": true,
826 | "type": "String"
827 | }
828 | ]
829 | },
830 | {
831 | "name": "ExecutionListener",
832 | "superClass": [ "Element" ],
833 | "meta": {
834 | "allowedIn": [
835 | "bpmn:Task",
836 | "bpmn:ServiceTask",
837 | "bpmn:UserTask",
838 | "bpmn:BusinessRuleTask",
839 | "bpmn:ScriptTask",
840 | "bpmn:ReceiveTask",
841 | "bpmn:ManualTask",
842 | "bpmn:ExclusiveGateway",
843 | "bpmn:SequenceFlow",
844 | "bpmn:ParallelGateway",
845 | "bpmn:InclusiveGateway",
846 | "bpmn:EventBasedGateway",
847 | "bpmn:StartEvent",
848 | "bpmn:IntermediateCatchEvent",
849 | "bpmn:IntermediateThrowEvent",
850 | "bpmn:EndEvent",
851 | "bpmn:BoundaryEvent",
852 | "bpmn:CallActivity",
853 | "bpmn:SubProcess",
854 | "bpmn:Process"
855 | ]
856 | },
857 | "properties": [
858 | {
859 | "name": "expression",
860 | "isAttr": true,
861 | "type": "String"
862 | },
863 | {
864 | "name": "class",
865 | "isAttr": true,
866 | "type": "String"
867 | },
868 | {
869 | "name": "delegateExpression",
870 | "isAttr": true,
871 | "type": "String"
872 | },
873 | {
874 | "name": "event",
875 | "isAttr": true,
876 | "type": "String"
877 | },
878 | {
879 | "name": "script",
880 | "type": "Script"
881 | },
882 | {
883 | "name": "fields",
884 | "type": "Field",
885 | "isMany": true
886 | }
887 | ]
888 | },
889 | {
890 | "name": "TaskListener",
891 | "superClass": [ "Element" ],
892 | "meta": {
893 | "allowedIn": [
894 | "bpmn:UserTask"
895 | ]
896 | },
897 | "properties": [
898 | {
899 | "name": "expression",
900 | "isAttr": true,
901 | "type": "String"
902 | },
903 | {
904 | "name": "class",
905 | "isAttr": true,
906 | "type": "String"
907 | },
908 | {
909 | "name": "delegateExpression",
910 | "isAttr": true,
911 | "type": "String"
912 | },
913 | {
914 | "name": "event",
915 | "isAttr": true,
916 | "type": "String"
917 | },
918 | {
919 | "name": "script",
920 | "type": "Script"
921 | },
922 | {
923 | "name": "fields",
924 | "type": "Field",
925 | "isMany": true
926 | },
927 | {
928 | "name": "id",
929 | "type": "String",
930 | "isAttr": true
931 | },
932 | {
933 | "name": "eventDefinitions",
934 | "type": "bpmn:TimerEventDefinition",
935 | "isMany": true
936 | }
937 | ]
938 | },
939 | {
940 | "name": "FormProperty",
941 | "superClass": [ "Element" ],
942 | "meta": {
943 | "allowedIn": [
944 | "bpmn:StartEvent",
945 | "bpmn:UserTask"
946 | ]
947 | },
948 | "properties": [
949 | {
950 | "name": "id",
951 | "type": "String",
952 | "isAttr": true
953 | },
954 | {
955 | "name": "name",
956 | "type": "String",
957 | "isAttr": true
958 | },
959 | {
960 | "name": "type",
961 | "type": "String",
962 | "isAttr": true
963 | },
964 | {
965 | "name": "required",
966 | "type": "String",
967 | "isAttr": true
968 | },
969 | {
970 | "name": "readable",
971 | "type": "String",
972 | "isAttr": true
973 | },
974 | {
975 | "name": "writable",
976 | "type": "String",
977 | "isAttr": true
978 | },
979 | {
980 | "name": "variable",
981 | "type": "String",
982 | "isAttr": true
983 | },
984 | {
985 | "name": "expression",
986 | "type": "String",
987 | "isAttr": true
988 | },
989 | {
990 | "name": "datePattern",
991 | "type": "String",
992 | "isAttr": true
993 | },
994 | {
995 | "name": "default",
996 | "type": "String",
997 | "isAttr": true
998 | },
999 | {
1000 | "name": "values",
1001 | "type": "Value",
1002 | "isMany": true
1003 | }
1004 | ]
1005 | },
1006 | {
1007 | "name": "FormData",
1008 | "superClass": [ "Element" ],
1009 | "meta": {
1010 | "allowedIn": [
1011 | "bpmn:StartEvent",
1012 | "bpmn:UserTask"
1013 | ]
1014 | },
1015 | "properties": [
1016 | {
1017 | "name": "fields",
1018 | "type": "FormField",
1019 | "isMany": true
1020 | },
1021 | {
1022 | "name": "businessKey",
1023 | "type": "String",
1024 | "isAttr": true
1025 | }
1026 | ]
1027 | },
1028 | {
1029 | "name": "FormField",
1030 | "superClass": [ "Element" ],
1031 | "properties": [
1032 | {
1033 | "name": "id",
1034 | "type": "String",
1035 | "isAttr": true
1036 | },
1037 | {
1038 | "name": "label",
1039 | "type": "String",
1040 | "isAttr": true
1041 | },
1042 | {
1043 | "name": "type",
1044 | "type": "String",
1045 | "isAttr": true
1046 | },
1047 | {
1048 | "name": "datePattern",
1049 | "type": "String",
1050 | "isAttr": true
1051 | },
1052 | {
1053 | "name": "defaultValue",
1054 | "type": "String",
1055 | "isAttr": true
1056 | },
1057 | {
1058 | "name": "properties",
1059 | "type": "Properties"
1060 | },
1061 | {
1062 | "name": "validation",
1063 | "type": "Validation"
1064 | },
1065 | {
1066 | "name": "values",
1067 | "type": "Value",
1068 | "isMany": true
1069 | }
1070 | ]
1071 | },
1072 | {
1073 | "name": "Validation",
1074 | "superClass": [ "Element" ],
1075 | "properties": [
1076 | {
1077 | "name": "constraints",
1078 | "type": "Constraint",
1079 | "isMany": true
1080 | }
1081 | ]
1082 | },
1083 | {
1084 | "name": "Constraint",
1085 | "superClass": [ "Element" ],
1086 | "properties": [
1087 | {
1088 | "name": "name",
1089 | "type": "String",
1090 | "isAttr": true
1091 | },
1092 | {
1093 | "name": "config",
1094 | "type": "String",
1095 | "isAttr": true
1096 | }
1097 | ]
1098 | },
1099 | {
1100 | "name": "ConditionalEventDefinitionExtension",
1101 | "isAbstract": true,
1102 | "extends": [
1103 | "bpmn:ConditionalEventDefinition"
1104 | ],
1105 | "properties": [
1106 | {
1107 | "name": "variableName",
1108 | "isAttr": true,
1109 | "type": "String"
1110 | },
1111 | {
1112 | "name": "variableEvents",
1113 | "isAttr": true,
1114 | "type": "String"
1115 | }
1116 | ]
1117 | }
1118 | ],
1119 | "emumerations": [ ]
1120 | }
1121 |
--------------------------------------------------------------------------------
/test/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "plugin:bpmn-io/mocha"
3 | }
--------------------------------------------------------------------------------
/test/expect.js:
--------------------------------------------------------------------------------
1 | var chai = require('chai');
2 |
3 | // add matchers
4 | chai.use(require('./matchers'));
5 |
6 | // expose expect as global
7 | global.expect = chai.expect;
--------------------------------------------------------------------------------
/test/fixtures/xml/businessRuleTask.part.bpmn:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/test/fixtures/xml/callActivity.part.bpmn:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-connector.part.bpmn:
--------------------------------------------------------------------------------
1 |
2 | connector
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-errorMessage.part.bpmn:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-executionListener-fields.part.bpmn:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-executionListener-script.part.bpmn:
--------------------------------------------------------------------------------
1 |
3 | foo = bar;
4 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-executionListener.part.bpmn:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-field-attributes.part.bpmn:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/xml/camunda-field-children.part.bpmn:
--------------------------------------------------------------------------------
1 |
2 | Hi!