@onify/flow-extensions 8.3.0 → 9.0.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.
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.OnifyTimerEventDefinition = void 0;
7
- var _cronParser = _interopRequireDefault(require("cron-parser"));
7
+ var _croner = require("croner");
8
8
  var _bpmnElements = require("bpmn-elements");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const invalidCronEntryPattern = /Invalid (characters|range)/i;
11
9
  class OnifyTimerEventDefinition extends _bpmnElements.TimerEventDefinition {
12
10
  constructor(activity, def) {
13
11
  super(activity, def);
@@ -23,14 +21,15 @@ class OnifyTimerEventDefinition extends _bpmnElements.TimerEventDefinition {
23
21
  var rangeError = err;
24
22
  }
25
23
  try {
26
- const expireAt = _cronParser.default.parseExpression(value).next().toDate();
24
+ const expireAt = new _croner.Cron(value).nextRun();
27
25
  return {
28
26
  expireAt,
29
27
  delay: expireAt - Date.now()
30
28
  };
31
29
  } catch (err) {
32
- if (invalidCronEntryPattern.test(err.message)) throw rangeError;
33
- throw err;
30
+ this.logger.error(`<${this.activity?.id}> failed to parse timeCycle: ${rangeError.message}`);
31
+ this.logger.error(`<${this.activity?.id}> failed to parse timeCycle as cron: ${err.message}`);
32
+ throw new RangeError(`Failed to parse timeCycle <${value?.substring(0, 255)}> as ISO 8601 interval or cron`);
34
33
  }
35
34
  }
36
35
  return super.parse(timerType, value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onify/flow-extensions",
3
- "version": "8.3.0",
3
+ "version": "9.0.0",
4
4
  "description": "Onify Flow extensions",
5
5
  "type": "module",
6
6
  "module": "src/index.js",
@@ -50,9 +50,8 @@
50
50
  "@babel/core": "^7.23.9",
51
51
  "@babel/preset-env": "^7.23.9",
52
52
  "@babel/register": "^7.23.7",
53
- "bpmn-elements": "^15.0.3",
54
53
  "bpmn-elements-8-1": "npm:bpmn-elements@8.1",
55
- "bpmn-engine": "^22.0.2",
54
+ "bpmn-engine": "^23.0.1",
56
55
  "bpmn-engine-14": "npm:bpmn-engine@14",
57
56
  "bpmn-moddle": "^9.0.1",
58
57
  "c8": "^10.1.2",
@@ -66,14 +65,12 @@
66
65
  "moddle-context-serializer": "^4.1.1",
67
66
  "nock": "^13.5.4",
68
67
  "prettier": "^3.2.4",
69
- "texample": "^0.0.5"
68
+ "texample": "^0.0.6"
70
69
  },
71
70
  "peerDependencies": {
72
- "bpmn-elements": ">=14"
73
- },
74
- "dependencies": {
75
- "@0dep/piso": "^2.0.0",
76
- "cron-parser": "^4.9.0"
71
+ "@0dep/piso": ">=2",
72
+ "bpmn-elements": ">=14",
73
+ "croner": ">=9.0.0"
77
74
  },
78
75
  "files": [
79
76
  "src",
@@ -1,8 +1,6 @@
1
- import cronParser from 'cron-parser';
1
+ import { Cron } from 'croner';
2
2
  import { TimerEventDefinition } from 'bpmn-elements';
3
3
 
4
- const invalidCronEntryPattern = /Invalid (characters|range)/i;
5
-
6
4
  export class OnifyTimerEventDefinition extends TimerEventDefinition {
7
5
  constructor(activity, def) {
8
6
  super(activity, def);
@@ -19,15 +17,17 @@ export class OnifyTimerEventDefinition extends TimerEventDefinition {
19
17
  }
20
18
 
21
19
  try {
22
- const expireAt = cronParser.parseExpression(value).next().toDate();
20
+ const expireAt = new Cron(value).nextRun();
23
21
 
24
22
  return {
25
23
  expireAt,
26
24
  delay: expireAt - Date.now(),
27
25
  };
28
26
  } catch (err) {
29
- if (invalidCronEntryPattern.test(err.message)) throw rangeError;
30
- throw err;
27
+ this.logger.error(`<${this.activity?.id}> failed to parse timeCycle: ${rangeError.message}`);
28
+ this.logger.error(`<${this.activity?.id}> failed to parse timeCycle as cron: ${err.message}`);
29
+
30
+ throw new RangeError(`Failed to parse timeCycle <${value?.substring(0, 255)}> as ISO 8601 interval or cron`);
31
31
  }
32
32
  }
33
33