bpmnlint-plugin-camunda-compat 2.14.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -23,6 +23,7 @@ const camundaCloud10Rules = withConfig({
23
23
  'start-event-form': 'error',
24
24
  'subscription': 'error',
25
25
  'timer': 'error',
26
+ 'user-task-definition': 'warn',
26
27
  'user-task-form': 'error',
27
28
  'feel': 'error'
28
29
  }, { version: '1.0' });
@@ -65,7 +66,7 @@ const camundaCloud84Rules = withConfig(
65
66
  omit(camundaCloud83Rules, 'collapsed-subprocess'), { version: '8.4' });
66
67
 
67
68
  const camundaPlatform719Rules = withConfig({
68
- 'history-time-to-live': 'error'
69
+ 'history-time-to-live': 'info'
69
70
  }, {
70
71
  platform: 'camunda-platform',
71
72
  version: '7.19'
@@ -114,52 +115,67 @@ const rules = {
114
115
  'subscription': './rules/camunda-cloud/subscription',
115
116
  'task-schedule': './rules/camunda-cloud/task-schedule',
116
117
  'timer': './rules/camunda-cloud/timer',
118
+ 'user-task-definition': './rules/camunda-cloud/user-task-definition',
117
119
  'user-task-form': './rules/camunda-cloud/user-task-form'
118
120
  };
119
121
 
122
+ const configs = {
123
+ 'camunda-cloud-1-0': {
124
+ rules: camundaCloud10Rules
125
+ },
126
+ 'camunda-cloud-1-1': {
127
+ rules: camundaCloud11Rules
128
+ },
129
+ 'camunda-cloud-1-2': {
130
+ rules: camundaCloud12Rules
131
+ },
132
+ 'camunda-cloud-1-3': {
133
+ rules: camundaCloud13Rules
134
+ },
135
+ 'camunda-cloud-8-0': {
136
+ rules: camundaCloud80Rules
137
+ },
138
+ 'camunda-cloud-8-1': {
139
+ rules: camundaCloud81Rules
140
+ },
141
+ 'camunda-cloud-8-2': {
142
+ rules: camundaCloud82Rules
143
+ },
144
+ 'camunda-cloud-8-3': {
145
+ rules: camundaCloud83Rules
146
+ },
147
+ 'camunda-cloud-8-4': {
148
+ rules: camundaCloud84Rules
149
+ },
150
+ 'camunda-platform-7-19': {
151
+ rules: camundaPlatform719Rules
152
+ },
153
+ 'camunda-platform-7-20': {
154
+ rules: camundaPlatform720Rules
155
+ },
156
+ 'camunda-platform-7-21': {
157
+ rules: camundaPlatform721Rules
158
+ }
159
+ };
160
+
120
161
  module.exports = {
121
162
  configs: {
122
- 'camunda-cloud-1-0': {
123
- rules: camundaCloud10Rules
124
- },
125
- 'camunda-cloud-1-1': {
126
- rules: camundaCloud11Rules
127
- },
128
- 'camunda-cloud-1-2': {
129
- rules: camundaCloud12Rules
130
- },
131
- 'camunda-cloud-1-3': {
132
- rules: camundaCloud13Rules
133
- },
134
- 'camunda-cloud-8-0': {
135
- rules: camundaCloud80Rules
136
- },
137
- 'camunda-cloud-8-1': {
138
- rules: camundaCloud81Rules
139
- },
140
- 'camunda-cloud-8-2': {
141
- rules: camundaCloud82Rules
142
- },
143
- 'camunda-cloud-8-3': {
144
- rules: camundaCloud83Rules
145
- },
146
- 'camunda-cloud-8-4': {
147
- rules: camundaCloud84Rules
148
- },
149
- 'camunda-platform-7-19': {
150
- rules: camundaPlatform719Rules
151
- },
152
- 'camunda-platform-7-20': {
153
- rules: camundaPlatform720Rules
154
- },
155
- 'camunda-platform-7-21': {
156
- rules: camundaPlatform721Rules
157
- },
163
+ ...configs,
158
164
  'all': {
159
165
  rules: Object.keys(rules).reduce((allRules, rule) => {
160
166
  return {
161
167
  ...allRules,
162
- [ rule ]: 'error'
168
+ [ rule ]: Object.values(configs).reduce((type, { rules }) => {
169
+ if (type) {
170
+ return type;
171
+ }
172
+
173
+ if (rules[ rule ]) {
174
+ return Array.isArray(rules[ rule ]) ? rules[ rule ][0] : rules[ rule ];
175
+ }
176
+
177
+ return type;
178
+ }, null)
163
179
  };
164
180
  }, {})
165
181
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpmnlint-plugin-camunda-compat",
3
- "version": "2.14.0",
3
+ "version": "2.16.0",
4
4
  "description": "A bpmnlint plug-in for Camunda compatibility",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -24,20 +24,20 @@
24
24
  },
25
25
  "license": "MIT",
26
26
  "devDependencies": {
27
- "bpmn-moddle": "^8.0.1",
28
- "bpmnlint": "^9.2.0",
27
+ "bpmn-moddle": "^8.1.0",
28
+ "bpmnlint": "^10.2.0",
29
29
  "camunda-bpmn-moddle": "^7.0.1",
30
- "chai": "^4.3.10",
31
- "eslint": "^8.51.0",
30
+ "chai": "^4.4.1",
31
+ "eslint": "^8.56.0",
32
32
  "eslint-plugin-bpmn-io": "^1.0.0",
33
33
  "mocha": "^10.2.0",
34
34
  "modeler-moddle": "^0.2.0",
35
- "sinon": "^16.1.0",
35
+ "sinon": "^17.0.1",
36
36
  "sinon-chai": "^3.7.0",
37
- "zeebe-bpmn-moddle": "^1.0.0"
37
+ "zeebe-bpmn-moddle": "^1.1.0"
38
38
  },
39
39
  "dependencies": {
40
- "@bpmn-io/feel-lint": "^1.0.0",
40
+ "@bpmn-io/feel-lint": "^1.2.0",
41
41
  "@bpmn-io/moddle-utils": "^0.2.1",
42
42
  "bpmnlint-utils": "^1.0.2",
43
43
  "min-dash": "^4.1.1",
@@ -62,6 +62,6 @@ module.exports = skipInNonExecutableProcess(function() {
62
62
  };
63
63
  });
64
64
 
65
- function isNoEscalationRefAllowed(node, version) {
66
- return is(node, 'bpmn:BoundaryEvent');
65
+ function isNoEscalationRefAllowed(node) {
66
+ return isAny(node, [ 'bpmn:CatchEvent', 'bpmn:BoundaryEvent' ]);
67
67
  }
@@ -35,7 +35,7 @@ module.exports = skipInNonExecutableProcess(function() {
35
35
  const lintErrors = lintExpression(propertyValue.substring(1));
36
36
 
37
37
  // syntax error
38
- if (lintErrors.find(({ type }) => type === 'syntaxError')) {
38
+ if (lintErrors.find(({ type }) => type === 'Syntax Error')) {
39
39
  const path = getPath(node, parentNode);
40
40
 
41
41
  errors.push(
@@ -0,0 +1,25 @@
1
+ const { is } = require('bpmnlint-utils');
2
+
3
+ const { hasExtensionElement } = require('../utils/element');
4
+
5
+ const { reportErrors } = require('../utils/reporter');
6
+
7
+ const { skipInNonExecutableProcess } = require('../utils/rule');
8
+
9
+ module.exports = skipInNonExecutableProcess(function() {
10
+ function check(node, reporter) {
11
+ if (!is(node, 'bpmn:UserTask')) {
12
+ return;
13
+ }
14
+
15
+ let errors = hasExtensionElement(node, 'zeebe:FormDefinition', node);
16
+
17
+ if (errors && errors.length) {
18
+ reportErrors(node, reporter, errors);
19
+ }
20
+ }
21
+
22
+ return {
23
+ check
24
+ };
25
+ });
@@ -5,8 +5,7 @@ const {
5
5
  findExtensionElements,
6
6
  findParent,
7
7
  hasProperties,
8
- hasProperty,
9
- hasExtensionElement
8
+ hasProperty
10
9
  } = require('../utils/element');
11
10
 
12
11
  const { reportErrors } = require('../utils/reporter');
@@ -26,17 +25,13 @@ module.exports = skipInNonExecutableProcess(function({ modeler = 'desktop', vers
26
25
  return;
27
26
  }
28
27
 
29
- let errors = hasExtensionElement(node, 'zeebe:FormDefinition', node);
30
-
31
- if (errors && errors.length) {
32
- reportErrors(node, reporter, errors);
28
+ const formDefinition = findExtensionElement(node, 'zeebe:FormDefinition');
33
29
 
30
+ if (!formDefinition) {
34
31
  return;
35
32
  }
36
33
 
37
- const formDefinition = findExtensionElement(node, 'zeebe:FormDefinition');
38
-
39
- errors = [];
34
+ let errors = [];
40
35
 
41
36
  const formIdAllowedVersion = formIdAllowedVersions[ modeler ];
42
37
 
@@ -1,9 +1,5 @@
1
1
  const { is } = require('bpmnlint-utils');
2
2
 
3
- const { hasProperties } = require('../utils/element');
4
-
5
- const { reportErrors } = require('../utils/reporter');
6
-
7
3
  const { skipInNonExecutableProcess } = require('../utils/rule');
8
4
 
9
5
  module.exports = skipInNonExecutableProcess(function() {
@@ -13,16 +9,9 @@ module.exports = skipInNonExecutableProcess(function() {
13
9
  return;
14
10
  }
15
11
 
16
- let errors = hasProperties(node, {
17
- 'historyTimeToLive': {
18
- required: true
19
- }
20
- }, node);
21
-
22
- if (errors) {
23
- reportErrors(node, reporter, errors);
12
+ if (!node.get('camunda:historyTimeToLive')) {
13
+ reporter.report(node.id, 'Property <historyTimeToLive> should be configured on <bpmn:Process> or engine level.', [ 'historyTimeToLive' ]);
24
14
  }
25
- return;
26
15
  }
27
16
 
28
17
  return {