iobroker.javascript 9.0.1 → 9.0.3
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/README.md +6 -4
- package/admin/assets/{index-BzKS5vx-.js → index-B2hdKtuj.js} +67 -67
- package/admin/assets/{index-tExaxF69.js → index-C3f8WSiz.js} +1 -1
- package/admin/assets/{index-CfuHVX2B.js → index-glyB1sbj.js} +37 -37
- package/admin/custom/assets/{index-DZqbj5K4.js → index-BzS6q3oS.js} +13 -13
- package/admin/custom/assets/{index-BXmu6lpn.js → index-DQRrNJnQ.js} +1 -1
- package/admin/custom/customComponents.js +2 -2
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +2 -2
- package/admin/tab.html +1 -1
- package/build-backend/lib/patternCompareFunctions.js +28 -56
- package/build-backend/lib/patternCompareFunctions.js.map +1 -1
- package/build-backend/lib/protectFs.js +116 -66
- package/build-backend/lib/protectFs.js.map +1 -1
- package/build-backend/lib/scheduler.js +0 -3
- package/build-backend/lib/scheduler.js.map +1 -1
- package/io-package.json +15 -15
- package/package.json +1 -1
|
@@ -47,17 +47,13 @@ exports.patternCompareFunctions = {
|
|
|
47
47
|
case 'ne':
|
|
48
48
|
return (event) => event.newState.val !== event.oldState.val;
|
|
49
49
|
case 'gt':
|
|
50
|
-
|
|
51
|
-
return (event) => event.newState.val > event.oldState.val;
|
|
50
|
+
return (event) => (event.newState.val ?? 0) > (event.oldState.val ?? 0);
|
|
52
51
|
case 'ge':
|
|
53
|
-
|
|
54
|
-
return (event) => event.newState.val >= event.oldState.val;
|
|
52
|
+
return (event) => (event.newState.val ?? 0) >= (event.oldState.val ?? 0);
|
|
55
53
|
case 'lt':
|
|
56
|
-
|
|
57
|
-
return (event) => event.newState.val < event.oldState.val;
|
|
54
|
+
return (event) => (event.newState.val ?? 0) < (event.oldState.val ?? 0);
|
|
58
55
|
case 'le':
|
|
59
|
-
|
|
60
|
-
return (event) => event.newState.val <= event.oldState.val;
|
|
56
|
+
return (event) => (event.newState.val ?? 0) <= (event.oldState.val ?? 0);
|
|
61
57
|
default:
|
|
62
58
|
return (_event) => true;
|
|
63
59
|
// on any other logic, just signal about a message
|
|
@@ -89,23 +85,19 @@ exports.patternCompareFunctions = {
|
|
|
89
85
|
},
|
|
90
86
|
valGt: (pattern) => {
|
|
91
87
|
const pValGt = pattern.valGt;
|
|
92
|
-
|
|
93
|
-
return (event) => event.newState.val > pValGt;
|
|
88
|
+
return (event) => (event.newState.val ?? 0) > (pValGt ?? 0);
|
|
94
89
|
},
|
|
95
90
|
valGe: (pattern) => {
|
|
96
91
|
const pValGe = pattern.valGe;
|
|
97
|
-
|
|
98
|
-
return (event) => event.newState.val >= pValGe;
|
|
92
|
+
return (event) => (event.newState.val ?? 0) >= (pValGe ?? 0);
|
|
99
93
|
},
|
|
100
94
|
valLt: (pattern) => {
|
|
101
95
|
const pValLt = pattern.valLt;
|
|
102
|
-
|
|
103
|
-
return (event) => event.newState.val < pValLt;
|
|
96
|
+
return (event) => (event.newState.val ?? 0) < (pValLt ?? 0);
|
|
104
97
|
},
|
|
105
98
|
valLe: (pattern) => {
|
|
106
99
|
const pValLe = pattern.valLe;
|
|
107
|
-
|
|
108
|
-
return (event) => event.newState.val <= pValLe;
|
|
100
|
+
return (event) => (event.newState.val ?? 0) <= (pValLe ?? 0);
|
|
109
101
|
},
|
|
110
102
|
valNe: (pattern) => {
|
|
111
103
|
const pValNe = pattern.valNe;
|
|
@@ -117,23 +109,19 @@ exports.patternCompareFunctions = {
|
|
|
117
109
|
},
|
|
118
110
|
oldValGt: (pattern) => {
|
|
119
111
|
const pOldValGt = pattern.oldValGt;
|
|
120
|
-
|
|
121
|
-
return (event) => event.oldState.val > pOldValGt;
|
|
112
|
+
return (event) => (event.oldState.val ?? 0) > (pOldValGt ?? 0);
|
|
122
113
|
},
|
|
123
114
|
oldValGe: (pattern) => {
|
|
124
115
|
const pOldValGe = pattern.oldValGe;
|
|
125
|
-
|
|
126
|
-
return (event) => event.oldState.val >= pOldValGe;
|
|
116
|
+
return (event) => (event.oldState.val ?? 0) >= (pOldValGe ?? 0);
|
|
127
117
|
},
|
|
128
118
|
oldValLt: (pattern) => {
|
|
129
119
|
const pOldValLt = pattern.oldValLt;
|
|
130
|
-
|
|
131
|
-
return (event) => event.oldState.val < pOldValLt;
|
|
120
|
+
return (event) => (event.oldState.val ?? 0) < (pOldValLt ?? 0);
|
|
132
121
|
},
|
|
133
122
|
oldValLe: (pattern) => {
|
|
134
123
|
const pOldValLe = pattern.oldValLe;
|
|
135
|
-
|
|
136
|
-
return (event) => event.oldState.val <= pOldValLe;
|
|
124
|
+
return (event) => (event.oldState.val ?? 0) <= (pOldValLe ?? 0);
|
|
137
125
|
},
|
|
138
126
|
oldValNe: (pattern) => {
|
|
139
127
|
const pOldValNe = pattern.oldValNe;
|
|
@@ -145,23 +133,19 @@ exports.patternCompareFunctions = {
|
|
|
145
133
|
},
|
|
146
134
|
tsGt: (pattern) => {
|
|
147
135
|
const ptsGt = pattern.tsGt;
|
|
148
|
-
|
|
149
|
-
return (event) => event.newState.ts > ptsGt;
|
|
136
|
+
return (event) => event.newState.ts > (ptsGt ?? 0);
|
|
150
137
|
},
|
|
151
138
|
tsGe: (pattern) => {
|
|
152
139
|
const ptsGe = pattern.tsGe;
|
|
153
|
-
|
|
154
|
-
return (event) => event.newState.ts >= ptsGe;
|
|
140
|
+
return (event) => event.newState.ts >= (ptsGe ?? 0);
|
|
155
141
|
},
|
|
156
142
|
tsLt: (pattern) => {
|
|
157
143
|
const ptsLt = pattern.tsLt;
|
|
158
|
-
|
|
159
|
-
return (event) => event.newState.ts < ptsLt;
|
|
144
|
+
return (event) => event.newState.ts < (ptsLt ?? 0);
|
|
160
145
|
},
|
|
161
146
|
tsLe: (pattern) => {
|
|
162
147
|
const ptsLe = pattern.tsLe;
|
|
163
|
-
|
|
164
|
-
return (event) => event.newState.ts <= ptsLe;
|
|
148
|
+
return (event) => event.newState.ts <= (ptsLe ?? 0);
|
|
165
149
|
},
|
|
166
150
|
oldTs: (pattern) => {
|
|
167
151
|
const pOldTs = pattern.oldTs;
|
|
@@ -169,23 +153,19 @@ exports.patternCompareFunctions = {
|
|
|
169
153
|
},
|
|
170
154
|
oldTsGt: (pattern) => {
|
|
171
155
|
const pOldTsGt = pattern.oldTsGt;
|
|
172
|
-
|
|
173
|
-
return (event) => event.oldState.ts > pOldTsGt;
|
|
156
|
+
return (event) => event.oldState.ts > (pOldTsGt ?? 0);
|
|
174
157
|
},
|
|
175
158
|
oldTsGe: (pattern) => {
|
|
176
159
|
const pOldTsGe = pattern.oldTsGe;
|
|
177
|
-
|
|
178
|
-
return (event) => event.oldState.ts >= pOldTsGe;
|
|
160
|
+
return (event) => event.oldState.ts >= (pOldTsGe ?? 0);
|
|
179
161
|
},
|
|
180
162
|
oldTsLt: (pattern) => {
|
|
181
163
|
const pOldTsLt = pattern.oldTsLt;
|
|
182
|
-
|
|
183
|
-
return (event) => event.oldState.ts < pOldTsLt;
|
|
164
|
+
return (event) => event.oldState.ts < (pOldTsLt ?? 0);
|
|
184
165
|
},
|
|
185
166
|
oldTsLe: (pattern) => {
|
|
186
167
|
const pOldTsLe = pattern.oldTsLe;
|
|
187
|
-
|
|
188
|
-
return (event) => event.oldState.ts <= pOldTsLe;
|
|
168
|
+
return (event) => event.oldState.ts <= (pOldTsLe ?? 0);
|
|
189
169
|
},
|
|
190
170
|
lc: (pattern) => {
|
|
191
171
|
const plc = pattern.lc;
|
|
@@ -193,23 +173,19 @@ exports.patternCompareFunctions = {
|
|
|
193
173
|
},
|
|
194
174
|
lcGt: (pattern) => {
|
|
195
175
|
const plcGt = pattern.lcGt;
|
|
196
|
-
|
|
197
|
-
return (event) => event.newState.lc > plcGt;
|
|
176
|
+
return (event) => event.newState.lc > (plcGt ?? 0);
|
|
198
177
|
},
|
|
199
178
|
lcGe: (pattern) => {
|
|
200
179
|
const plcGe = pattern.lcGe;
|
|
201
|
-
|
|
202
|
-
return (event) => event.newState.lc >= plcGe;
|
|
180
|
+
return (event) => event.newState.lc >= (plcGe ?? 0);
|
|
203
181
|
},
|
|
204
182
|
lcLt: (pattern) => {
|
|
205
183
|
const plcLt = pattern.lcLt;
|
|
206
|
-
|
|
207
|
-
return (event) => event.newState.lc < plcLt;
|
|
184
|
+
return (event) => event.newState.lc < (plcLt ?? 0);
|
|
208
185
|
},
|
|
209
186
|
lcLe: (pattern) => {
|
|
210
187
|
const plcLe = pattern.lcLe;
|
|
211
|
-
|
|
212
|
-
return (event) => event.newState.lc <= plcLe;
|
|
188
|
+
return (event) => event.newState.lc <= (plcLe ?? 0);
|
|
213
189
|
},
|
|
214
190
|
oldLc: (pattern) => {
|
|
215
191
|
const pOldLc = pattern.oldLc;
|
|
@@ -217,23 +193,19 @@ exports.patternCompareFunctions = {
|
|
|
217
193
|
},
|
|
218
194
|
oldLcGt: (pattern) => {
|
|
219
195
|
const pOldLcGt = pattern.oldLcGt;
|
|
220
|
-
|
|
221
|
-
return (event) => event.oldState.lc > pOldLcGt;
|
|
196
|
+
return (event) => event.oldState.lc > (pOldLcGt ?? 0);
|
|
222
197
|
},
|
|
223
198
|
oldLcGe: (pattern) => {
|
|
224
199
|
const pOldLcGe = pattern.oldLcGe;
|
|
225
|
-
|
|
226
|
-
return (event) => event.oldState.lc >= pOldLcGe;
|
|
200
|
+
return (event) => event.oldState.lc >= (pOldLcGe ?? 0);
|
|
227
201
|
},
|
|
228
202
|
oldLcLt: (pattern) => {
|
|
229
203
|
const pOldLcLt = pattern.oldLcLt;
|
|
230
|
-
|
|
231
|
-
return (event) => event.oldState.lc < pOldLcLt;
|
|
204
|
+
return (event) => event.oldState.lc < (pOldLcLt ?? 0);
|
|
232
205
|
},
|
|
233
206
|
oldLcLe: (pattern) => {
|
|
234
207
|
const pOldLcLe = pattern.oldLcLe;
|
|
235
|
-
|
|
236
|
-
return (event) => event.oldState.lc <= pOldLcLe;
|
|
208
|
+
return (event) => event.oldState.lc <= (pOldLcLe ?? 0);
|
|
237
209
|
},
|
|
238
210
|
from: (pattern) => stringOrRegExpCompare(pattern, 'from', event => event && event.newState && event.newState.from),
|
|
239
211
|
fromNe: (pattern) => stringOrRegExpCompare(pattern, 'fromNe', event => event && event.newState && event.newState.from, true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patternCompareFunctions.js","sourceRoot":"","sources":["../../src/lib/patternCompareFunctions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Pattern } from '../types';\nimport { type EventObj } from './eventObj';\n\nfunction isRegExp(obj: any): boolean {\n return !!(obj?.test && obj.exec && (obj.ignoreCase || obj.ignoreCase === false));\n}\n\nexport type PatternEventCompareFunction = (event: EventObj) => boolean;\n\n/**\n * @param pattern The pattern object to use\n * @param propName The name of the property to compare\n * @param eventPropertyExtractor If given, this function is used to extract the property value from the event object. Otherwise, the propName is used\n * @param invert Whether to invert the result\n */\nfunction stringOrRegExpCompare(\n pattern: Pattern,\n propName: string,\n eventPropertyExtractor?: (event: EventObj) => any,\n invert?: boolean,\n): PatternEventCompareFunction {\n const field: RegExp | string | string[] = (pattern as Record<string, RegExp | string | string[]>)[propName];\n const hasExtractor = typeof eventPropertyExtractor === 'function';\n\n if (isRegExp(field)) {\n return function (event: EventObj): boolean {\n const eventValue: any = hasExtractor\n ? eventPropertyExtractor(event)\n : (event as Record<string, any>)[propName];\n const ret = eventValue != null && (field as RegExp).test(eventValue);\n return invert ? !ret : ret;\n };\n }\n\n if (Array.isArray(field)) {\n return function (event: EventObj): boolean {\n const eventValue = hasExtractor ? eventPropertyExtractor(event) : (event as Record<string, any>)[propName];\n // An array matches when any element is found that satisfies the constraint\n const ret = eventValue != null && field.find(f => f === eventValue) != null;\n return invert ? !ret : ret;\n };\n }\n\n return function (event: EventObj): boolean {\n const eventValue = hasExtractor ? eventPropertyExtractor(event) : (event as Record<string, any>)[propName];\n const ret = eventValue != null && field === eventValue;\n return invert ? !ret : ret;\n };\n}\n\nexport const patternCompareFunctions = {\n logic: (_pattern: Pattern): void => {},\n\n id: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'id'),\n\n name: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'name'),\n\n change: (pattern: Pattern): PatternEventCompareFunction => {\n switch (pattern.change) {\n case 'eq':\n return (event: EventObj): boolean => event.newState.val === event.oldState.val;\n case 'ne':\n return (event: EventObj): boolean => event.newState.val !== event.oldState.val;\n case 'gt':\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val > event.oldState.val;\n case 'ge':\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val >= event.oldState.val;\n case 'lt':\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val < event.oldState.val;\n case 'le':\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val <= event.oldState.val;\n default:\n return (_event: EventObj): boolean => true;\n // on any other logic, just signal about a message\n }\n },\n\n ack: (pattern: Pattern): PatternEventCompareFunction => {\n if (pattern.ack === true || pattern.ack === 'true') {\n return (event: EventObj): boolean => event.newState.ack === true;\n }\n return (event: EventObj): boolean => event.newState.ack === false;\n },\n oldAck: (pattern: Pattern): PatternEventCompareFunction => {\n if (pattern.oldAck === true || pattern.oldAck === 'true') {\n return (event: EventObj): boolean => event.oldState.ack === true;\n }\n return (event: EventObj): boolean => event.oldState.ack === false;\n },\n\n q: (pattern: Pattern): PatternEventCompareFunction => {\n const q = pattern.q;\n return (event: EventObj): boolean => q === '*' || q === event.newState.q;\n },\n oldQ: (pattern: Pattern): PatternEventCompareFunction => {\n const q = pattern.oldQ;\n return (event: EventObj): boolean => q === '*' || q === event.oldState.q;\n },\n\n val: (pattern: Pattern): PatternEventCompareFunction => {\n const pVal = pattern.val;\n return (event: EventObj): boolean => pVal === event.newState.val;\n },\n valGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pValGt = pattern.valGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val > pValGt;\n },\n valGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValGe = pattern.valGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val >= pValGe;\n },\n valLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pValLt = pattern.valLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val < pValLt;\n },\n valLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValLe = pattern.valLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.val <= pValLe;\n },\n valNe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValNe = pattern.valNe;\n return (event: EventObj): boolean => event.newState.val !== pValNe;\n },\n\n oldVal: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldVal = pattern.oldVal;\n return (event: EventObj): boolean => pOldVal === event.oldState.val;\n },\n oldValGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValGt = pattern.oldValGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.val > pOldValGt;\n },\n oldValGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValGe = pattern.oldValGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.val >= pOldValGe;\n },\n oldValLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValLt = pattern.oldValLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.val < pOldValLt;\n },\n oldValLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValLe = pattern.oldValLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.val <= pOldValLe;\n },\n oldValNe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValNe = pattern.oldValNe;\n return (event: EventObj): boolean => event.oldState.val !== pOldValNe;\n },\n\n ts: (pattern: Pattern): PatternEventCompareFunction => {\n const pts = pattern.ts;\n return (event: EventObj): boolean => pts === event.newState.ts;\n },\n tsGt: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsGt = pattern.tsGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.ts > ptsGt;\n },\n tsGe: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsGe = pattern.tsGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.ts >= ptsGe;\n },\n tsLt: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsLt = pattern.tsLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.ts < ptsLt;\n },\n tsLe: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsLe = pattern.tsLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.ts <= ptsLe;\n },\n\n oldTs: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTs = pattern.oldTs;\n return (event: EventObj): boolean => pOldTs === event.oldState.ts;\n },\n oldTsGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsGt = pattern.oldTsGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.ts > pOldTsGt;\n },\n oldTsGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsGe = pattern.oldTsGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.ts >= pOldTsGe;\n },\n oldTsLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsLt = pattern.oldTsLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.ts < pOldTsLt;\n },\n oldTsLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsLe = pattern.oldTsLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.ts <= pOldTsLe;\n },\n\n lc: (pattern: Pattern): PatternEventCompareFunction => {\n const plc = pattern.lc;\n return (event: EventObj): boolean => plc === event.newState.lc;\n },\n lcGt: (pattern: Pattern): PatternEventCompareFunction => {\n const plcGt = pattern.lcGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.lc > plcGt;\n },\n lcGe: (pattern: Pattern): PatternEventCompareFunction => {\n const plcGe = pattern.lcGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.lc >= plcGe;\n },\n lcLt: (pattern: Pattern): PatternEventCompareFunction => {\n const plcLt = pattern.lcLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.lc < plcLt;\n },\n lcLe: (pattern: Pattern): PatternEventCompareFunction => {\n const plcLe = pattern.lcLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.newState.lc <= plcLe;\n },\n\n oldLc: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLc = pattern.oldLc;\n return (event: EventObj): boolean => pOldLc === event.oldState.lc;\n },\n oldLcGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcGt = pattern.oldLcGt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.lc > pOldLcGt;\n },\n oldLcGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcGe = pattern.oldLcGe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.lc >= pOldLcGe;\n },\n oldLcLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcLt = pattern.oldLcLt;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.lc < pOldLcLt;\n },\n oldLcLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcLe = pattern.oldLcLe;\n // @ts-expect-error we assume it could be null\n return (event: EventObj): boolean => event.oldState.lc <= pOldLcLe;\n },\n\n from: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'from', event => event && event.newState && event.newState.from),\n\n fromNe: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'fromNe', event => event && event.newState && event.newState.from, true),\n\n oldFrom: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'oldFrom', event => event && event.oldState && event.oldState.from),\n\n oldFromNe: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'oldFromNe', event => event && event.oldState && event.oldState.from, true),\n\n channelId: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'channelId'),\n channelName: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'channelName'),\n deviceId: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'deviceId'),\n deviceName: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'deviceName'),\n\n enumId: (pattern: Pattern): PatternEventCompareFunction => {\n const pEnumId: RegExp | string | string[] | undefined = pattern.enumId;\n\n function ensureEnumIDsIsArray(enumIds: any): boolean {\n if (!Array.isArray(enumIds)) {\n console.error(\n `enumIds is of type ${typeof enumIds} but should be an array: ${JSON.stringify(enumIds)}`,\n );\n return false;\n }\n return true;\n }\n\n if (isRegExp(pEnumId)) {\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n // Test if any enum name matches the regex:\n return enumIds.find(e => (pEnumId as RegExp).test(e)) != null;\n };\n }\n\n if (Array.isArray(pEnumId)) {\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n // Test if the enum names of the event and the given array intersect\n return enumIds.find(e => pEnumId.includes(e)) != null;\n };\n }\n\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n return enumIds && enumIds.includes(pEnumId as string);\n };\n },\n\n enumName: (pattern: Pattern): PatternEventCompareFunction => {\n const pEnumName: RegExp | string | string[] | undefined = pattern.enumName;\n\n function ensureEnumNamesIsArray(enumNames: any): boolean {\n if (!Array.isArray(enumNames)) {\n console.error(\n `enumNames is of type ${typeof enumNames} but should be an array: ${JSON.stringify(enumNames)}`,\n );\n return false;\n }\n return true;\n }\n\n if (isRegExp(pEnumName)) {\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n // Test if any enum name matches the regex:\n return enumNames.find(e => (pEnumName as RegExp).test(e)) != null;\n };\n }\n if (Array.isArray(pEnumName)) {\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n // Test if the enum names of the event and the given array intersect\n return enumNames.find(e => pEnumName.includes(e)) != null;\n };\n }\n\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n return enumNames?.includes(pEnumName as string);\n };\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"patternCompareFunctions.js","sourceRoot":"","sources":["../../src/lib/patternCompareFunctions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Pattern } from '../types';\nimport { type EventObj } from './eventObj';\n\nfunction isRegExp(obj: any): boolean {\n return !!(obj?.test && obj.exec && (obj.ignoreCase || obj.ignoreCase === false));\n}\n\nexport type PatternEventCompareFunction = (event: EventObj) => boolean;\n\n/**\n * @param pattern The pattern object to use\n * @param propName The name of the property to compare\n * @param eventPropertyExtractor If given, this function is used to extract the property value from the event object. Otherwise, the propName is used\n * @param invert Whether to invert the result\n */\nfunction stringOrRegExpCompare(\n pattern: Pattern,\n propName: string,\n eventPropertyExtractor?: (event: EventObj) => any,\n invert?: boolean,\n): PatternEventCompareFunction {\n const field: RegExp | string | string[] = (pattern as Record<string, RegExp | string | string[]>)[propName];\n const hasExtractor = typeof eventPropertyExtractor === 'function';\n\n if (isRegExp(field)) {\n return function (event: EventObj): boolean {\n const eventValue: any = hasExtractor\n ? eventPropertyExtractor(event)\n : (event as Record<string, any>)[propName];\n const ret = eventValue != null && (field as RegExp).test(eventValue);\n return invert ? !ret : ret;\n };\n }\n\n if (Array.isArray(field)) {\n return function (event: EventObj): boolean {\n const eventValue = hasExtractor ? eventPropertyExtractor(event) : (event as Record<string, any>)[propName];\n // An array matches when any element is found that satisfies the constraint\n const ret = eventValue != null && field.find(f => f === eventValue) != null;\n return invert ? !ret : ret;\n };\n }\n\n return function (event: EventObj): boolean {\n const eventValue = hasExtractor ? eventPropertyExtractor(event) : (event as Record<string, any>)[propName];\n const ret = eventValue != null && field === eventValue;\n return invert ? !ret : ret;\n };\n}\n\nexport const patternCompareFunctions = {\n logic: (_pattern: Pattern): void => {},\n\n id: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'id'),\n\n name: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'name'),\n\n change: (pattern: Pattern): PatternEventCompareFunction => {\n switch (pattern.change) {\n case 'eq':\n return (event: EventObj): boolean => event.newState.val === event.oldState.val;\n case 'ne':\n return (event: EventObj): boolean => event.newState.val !== event.oldState.val;\n case 'gt':\n return (event: EventObj): boolean => (event.newState.val ?? 0) > (event.oldState.val ?? 0);\n case 'ge':\n return (event: EventObj): boolean => (event.newState.val ?? 0) >= (event.oldState.val ?? 0);\n case 'lt':\n return (event: EventObj): boolean => (event.newState.val ?? 0) < (event.oldState.val ?? 0);\n case 'le':\n return (event: EventObj): boolean => (event.newState.val ?? 0) <= (event.oldState.val ?? 0);\n default:\n return (_event: EventObj): boolean => true;\n // on any other logic, just signal about a message\n }\n },\n\n ack: (pattern: Pattern): PatternEventCompareFunction => {\n if (pattern.ack === true || pattern.ack === 'true') {\n return (event: EventObj): boolean => event.newState.ack === true;\n }\n return (event: EventObj): boolean => event.newState.ack === false;\n },\n oldAck: (pattern: Pattern): PatternEventCompareFunction => {\n if (pattern.oldAck === true || pattern.oldAck === 'true') {\n return (event: EventObj): boolean => event.oldState.ack === true;\n }\n return (event: EventObj): boolean => event.oldState.ack === false;\n },\n\n q: (pattern: Pattern): PatternEventCompareFunction => {\n const q = pattern.q;\n return (event: EventObj): boolean => q === '*' || q === event.newState.q;\n },\n oldQ: (pattern: Pattern): PatternEventCompareFunction => {\n const q = pattern.oldQ;\n return (event: EventObj): boolean => q === '*' || q === event.oldState.q;\n },\n\n val: (pattern: Pattern): PatternEventCompareFunction => {\n const pVal = pattern.val;\n return (event: EventObj): boolean => pVal === event.newState.val;\n },\n valGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pValGt = pattern.valGt;\n return (event: EventObj): boolean => (event.newState.val ?? 0) > (pValGt ?? 0);\n },\n valGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValGe = pattern.valGe;\n return (event: EventObj): boolean => (event.newState.val ?? 0) >= (pValGe ?? 0);\n },\n valLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pValLt = pattern.valLt;\n return (event: EventObj): boolean => (event.newState.val ?? 0) < (pValLt ?? 0);\n },\n valLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValLe = pattern.valLe;\n return (event: EventObj): boolean => (event.newState.val ?? 0) <= (pValLe ?? 0);\n },\n valNe: (pattern: Pattern): PatternEventCompareFunction => {\n const pValNe = pattern.valNe;\n return (event: EventObj): boolean => event.newState.val !== pValNe;\n },\n\n oldVal: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldVal = pattern.oldVal;\n return (event: EventObj): boolean => pOldVal === event.oldState.val;\n },\n oldValGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValGt = pattern.oldValGt;\n return (event: EventObj): boolean => (event.oldState.val ?? 0) > (pOldValGt ?? 0);\n },\n oldValGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValGe = pattern.oldValGe;\n return (event: EventObj): boolean => (event.oldState.val ?? 0) >= (pOldValGe ?? 0);\n },\n oldValLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValLt = pattern.oldValLt;\n return (event: EventObj): boolean => (event.oldState.val ?? 0) < (pOldValLt ?? 0);\n },\n oldValLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValLe = pattern.oldValLe;\n return (event: EventObj): boolean => (event.oldState.val ?? 0) <= (pOldValLe ?? 0);\n },\n oldValNe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldValNe = pattern.oldValNe;\n return (event: EventObj): boolean => event.oldState.val !== pOldValNe;\n },\n\n ts: (pattern: Pattern): PatternEventCompareFunction => {\n const pts = pattern.ts;\n return (event: EventObj): boolean => pts === event.newState.ts;\n },\n tsGt: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsGt = pattern.tsGt;\n return (event: EventObj): boolean => event.newState.ts > (ptsGt ?? 0);\n },\n tsGe: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsGe = pattern.tsGe;\n return (event: EventObj): boolean => event.newState.ts >= (ptsGe ?? 0);\n },\n tsLt: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsLt = pattern.tsLt;\n return (event: EventObj): boolean => event.newState.ts < (ptsLt ?? 0);\n },\n tsLe: (pattern: Pattern): PatternEventCompareFunction => {\n const ptsLe = pattern.tsLe;\n return (event: EventObj): boolean => event.newState.ts <= (ptsLe ?? 0);\n },\n\n oldTs: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTs = pattern.oldTs;\n return (event: EventObj): boolean => pOldTs === event.oldState.ts;\n },\n oldTsGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsGt = pattern.oldTsGt;\n return (event: EventObj): boolean => event.oldState.ts > (pOldTsGt ?? 0);\n },\n oldTsGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsGe = pattern.oldTsGe;\n return (event: EventObj): boolean => event.oldState.ts >= (pOldTsGe ?? 0);\n },\n oldTsLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsLt = pattern.oldTsLt;\n return (event: EventObj): boolean => event.oldState.ts < (pOldTsLt ?? 0);\n },\n oldTsLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldTsLe = pattern.oldTsLe;\n return (event: EventObj): boolean => event.oldState.ts <= (pOldTsLe ?? 0);\n },\n\n lc: (pattern: Pattern): PatternEventCompareFunction => {\n const plc = pattern.lc;\n return (event: EventObj): boolean => plc === event.newState.lc;\n },\n lcGt: (pattern: Pattern): PatternEventCompareFunction => {\n const plcGt = pattern.lcGt;\n return (event: EventObj): boolean => event.newState.lc > (plcGt ?? 0);\n },\n lcGe: (pattern: Pattern): PatternEventCompareFunction => {\n const plcGe = pattern.lcGe;\n return (event: EventObj): boolean => event.newState.lc >= (plcGe ?? 0);\n },\n lcLt: (pattern: Pattern): PatternEventCompareFunction => {\n const plcLt = pattern.lcLt;\n return (event: EventObj): boolean => event.newState.lc < (plcLt ?? 0);\n },\n lcLe: (pattern: Pattern): PatternEventCompareFunction => {\n const plcLe = pattern.lcLe;\n return (event: EventObj): boolean => event.newState.lc <= (plcLe ?? 0);\n },\n\n oldLc: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLc = pattern.oldLc;\n return (event: EventObj): boolean => pOldLc === event.oldState.lc;\n },\n oldLcGt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcGt = pattern.oldLcGt;\n return (event: EventObj): boolean => event.oldState.lc > (pOldLcGt ?? 0);\n },\n oldLcGe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcGe = pattern.oldLcGe;\n return (event: EventObj): boolean => event.oldState.lc >= (pOldLcGe ?? 0);\n },\n oldLcLt: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcLt = pattern.oldLcLt;\n return (event: EventObj): boolean => event.oldState.lc < (pOldLcLt ?? 0);\n },\n oldLcLe: (pattern: Pattern): PatternEventCompareFunction => {\n const pOldLcLe = pattern.oldLcLe;\n return (event: EventObj): boolean => event.oldState.lc <= (pOldLcLe ?? 0);\n },\n\n from: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'from', event => event && event.newState && event.newState.from),\n\n fromNe: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'fromNe', event => event && event.newState && event.newState.from, true),\n\n oldFrom: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'oldFrom', event => event && event.oldState && event.oldState.from),\n\n oldFromNe: (pattern: Pattern): PatternEventCompareFunction =>\n stringOrRegExpCompare(pattern, 'oldFromNe', event => event && event.oldState && event.oldState.from, true),\n\n channelId: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'channelId'),\n channelName: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'channelName'),\n deviceId: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'deviceId'),\n deviceName: (pattern: Pattern): PatternEventCompareFunction => stringOrRegExpCompare(pattern, 'deviceName'),\n\n enumId: (pattern: Pattern): PatternEventCompareFunction => {\n const pEnumId: RegExp | string | string[] | undefined = pattern.enumId;\n\n function ensureEnumIDsIsArray(enumIds: any): boolean {\n if (!Array.isArray(enumIds)) {\n console.error(\n `enumIds is of type ${typeof enumIds} but should be an array: ${JSON.stringify(enumIds)}`,\n );\n return false;\n }\n return true;\n }\n\n if (isRegExp(pEnumId)) {\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n // Test if any enum name matches the regex:\n return enumIds.find(e => (pEnumId as RegExp).test(e)) != null;\n };\n }\n\n if (Array.isArray(pEnumId)) {\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n // Test if the enum names of the event and the given array intersect\n return enumIds.find(e => pEnumId.includes(e)) != null;\n };\n }\n\n return (event: EventObj): boolean => {\n const enumIds = event.enumIds;\n if (enumIds == null || !ensureEnumIDsIsArray(enumIds)) {\n return false;\n }\n return enumIds && enumIds.includes(pEnumId as string);\n };\n },\n\n enumName: (pattern: Pattern): PatternEventCompareFunction => {\n const pEnumName: RegExp | string | string[] | undefined = pattern.enumName;\n\n function ensureEnumNamesIsArray(enumNames: any): boolean {\n if (!Array.isArray(enumNames)) {\n console.error(\n `enumNames is of type ${typeof enumNames} but should be an array: ${JSON.stringify(enumNames)}`,\n );\n return false;\n }\n return true;\n }\n\n if (isRegExp(pEnumName)) {\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n // Test if any enum name matches the regex:\n return enumNames.find(e => (pEnumName as RegExp).test(e)) != null;\n };\n }\n if (Array.isArray(pEnumName)) {\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n // Test if the enum names of the event and the given array intersect\n return enumNames.find(e => pEnumName.includes(e)) != null;\n };\n }\n\n return (event: EventObj): boolean => {\n const enumNames = event.enumNames;\n if (enumNames == null || !ensureEnumNamesIsArray(enumNames)) {\n return false;\n }\n return enumNames?.includes(pEnumName as string);\n };\n },\n};\n"]}
|