node-opcua-service-filter 2.142.0 → 2.149.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.
@@ -10,24 +10,44 @@ const resolve_operand_1 = require("./resolve_operand");
10
10
  const warningLog = (0, node_opcua_debug_1.make_warningLog)("Filter");
11
11
  function _coerceToBoolean(value) {
12
12
  if (value instanceof node_opcua_variant_1.Variant) {
13
- return _coerceToBoolean(value.value);
13
+ return !!value.value;
14
14
  }
15
15
  return !!value;
16
16
  }
17
- function _coerceToNumber(value) {
17
+ function _coerceToCompareable(value) {
18
18
  if (value instanceof node_opcua_variant_1.Variant) {
19
- return _coerceToNumber(value.value);
20
- }
21
- if (typeof value === "string") {
22
- return parseInt(value, 10);
23
- }
24
- if (typeof value === "boolean") {
25
- return value ? 1 : 0;
26
- }
27
- if (typeof value === "number") {
28
- return value;
19
+ switch (value.dataType) {
20
+ case node_opcua_variant_1.DataType.String:
21
+ return value.value;
22
+ case node_opcua_variant_1.DataType.Byte:
23
+ case node_opcua_variant_1.DataType.SByte:
24
+ case node_opcua_variant_1.DataType.Int16:
25
+ case node_opcua_variant_1.DataType.Int32:
26
+ case node_opcua_variant_1.DataType.UInt16:
27
+ case node_opcua_variant_1.DataType.UInt32:
28
+ return value.value;
29
+ case node_opcua_variant_1.DataType.Double:
30
+ return value.value;
31
+ case node_opcua_variant_1.DataType.DateTime:
32
+ return value.value.getTime();
33
+ case node_opcua_variant_1.DataType.Guid:
34
+ return value.value.toLowerCase();
35
+ case node_opcua_variant_1.DataType.ByteString:
36
+ return value.value.toString("hex");
37
+ case node_opcua_variant_1.DataType.XmlElement:
38
+ return value.value;
39
+ case node_opcua_variant_1.DataType.LocalizedText:
40
+ return value.value.text;
41
+ case node_opcua_variant_1.DataType.QualifiedName:
42
+ return value.value.name; // not sure about this one
43
+ default:
44
+ return "";
45
+ }
29
46
  }
30
- return 0;
47
+ return "";
48
+ }
49
+ function _coerceToEqualable(value) {
50
+ return value;
31
51
  }
32
52
  function evaluateOperand(filterContext, filter, operand, coerce) {
33
53
  if (operand instanceof node_opcua_types_1.AttributeOperand) {
@@ -108,29 +128,69 @@ function checkAnd(filterContext, filter, filteredOperands) {
108
128
  return operandA && operandB;
109
129
  }
110
130
  function checkLessThan(filterContext, filter, filteredOperands) {
111
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
112
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
131
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
132
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
113
133
  return operandA < operandB;
114
134
  }
115
135
  function checkLessThanOrEqual(filterContext, filter, filteredOperands) {
116
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
117
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
136
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
137
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
118
138
  return operandA <= operandB;
119
139
  }
120
140
  function checkGreaterThan(filterContext, filter, filteredOperands) {
121
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
122
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
141
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
142
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
123
143
  return operandA > operandB;
124
144
  }
125
145
  function checkGreaterThanOrEqual(filterContext, filter, filteredOperands) {
126
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
127
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
146
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
147
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
128
148
  return operandA >= operandB;
129
149
  }
150
+ const isVariantEqual = (a, b) => {
151
+ switch (a.dataType) {
152
+ case node_opcua_variant_1.DataType.Null:
153
+ return b.dataType === node_opcua_variant_1.DataType.Null;
154
+ case node_opcua_variant_1.DataType.Boolean:
155
+ return a.value === b.value;
156
+ case node_opcua_variant_1.DataType.Byte:
157
+ case node_opcua_variant_1.DataType.SByte:
158
+ case node_opcua_variant_1.DataType.Int16:
159
+ case node_opcua_variant_1.DataType.Int32:
160
+ case node_opcua_variant_1.DataType.UInt16:
161
+ case node_opcua_variant_1.DataType.UInt32:
162
+ return a.value === b.value;
163
+ case node_opcua_variant_1.DataType.Double:
164
+ return a.value === b.value;
165
+ case node_opcua_variant_1.DataType.String:
166
+ return a.value === b.value;
167
+ case node_opcua_variant_1.DataType.NodeId:
168
+ return (0, node_opcua_nodeid_1.sameNodeId)(a.value, b.value);
169
+ case node_opcua_variant_1.DataType.DateTime:
170
+ return a.value?.getTime() === b.value.getTime();
171
+ case node_opcua_variant_1.DataType.Guid:
172
+ return a.value.toLowerCase() === ("" + (b.value || "")).toLowerCase();
173
+ case node_opcua_variant_1.DataType.ByteString:
174
+ if (b.dataType !== node_opcua_variant_1.DataType.ByteString) {
175
+ return false;
176
+ }
177
+ return a.value.toString("hex") === b.value.toString("hex");
178
+ case node_opcua_variant_1.DataType.XmlElement:
179
+ return a.value === b.value;
180
+ case node_opcua_variant_1.DataType.LocalizedText:
181
+ return a.value?.text === b.value?.text;
182
+ case node_opcua_variant_1.DataType.QualifiedName:
183
+ return a.value?.namespaceIndex === b.value?.namespaceIndex && a.value?.name === b.value?.name;
184
+ case node_opcua_variant_1.DataType.ExtensionObject:
185
+ console.log("isVariantEqual: Not implemented for DataType.ExtensionObject");
186
+ default:
187
+ return false; // not sure how to do
188
+ }
189
+ };
130
190
  function checkEquals(filterContext, filter, filteredOperands) {
131
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
132
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
133
- return operandA === operandB;
191
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToEqualable);
192
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToEqualable);
193
+ return isVariantEqual(operandA, operandB);
134
194
  }
135
195
  /**
136
196
  *
@@ -145,9 +205,9 @@ function checkEquals(filterContext, filter, filteredOperands) {
145
205
  * for more information how to convert operands of different types.
146
206
  */
147
207
  function checkBetween(filterContext, filter, filteredOperands) {
148
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
149
- const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
150
- const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToNumber);
208
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
209
+ const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
210
+ const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToCompareable);
151
211
  return operandA >= operandLow && operandA <= operandHigh;
152
212
  }
153
213
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"check_where_clause.js","sourceRoot":"","sources":["../source/check_where_clause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check_where_clause.js","sourceRoot":"","sources":["../source/check_where_clause.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-service-filter",
3
- "version": "2.142.0",
3
+ "version": "2.149.0",
4
4
  "description": "pure nodejs OPCUA SDK - module service-filter",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  "build": "tsc -b"
11
11
  },
12
12
  "dependencies": {
13
- "node-opcua-address-space-base": "2.142.0",
13
+ "node-opcua-address-space-base": "2.149.0",
14
14
  "node-opcua-assert": "2.139.0",
15
15
  "node-opcua-basic-types": "2.139.0",
16
16
  "node-opcua-constants": "2.139.0",
@@ -19,9 +19,9 @@
19
19
  "node-opcua-debug": "2.139.0",
20
20
  "node-opcua-extension-object": "2.139.0",
21
21
  "node-opcua-nodeid": "2.139.0",
22
- "node-opcua-service-translate-browse-path": "2.142.0",
22
+ "node-opcua-service-translate-browse-path": "2.143.0",
23
23
  "node-opcua-status-code": "2.139.0",
24
- "node-opcua-types": "2.142.0",
24
+ "node-opcua-types": "2.143.0",
25
25
  "node-opcua-variant": "2.142.0"
26
26
  },
27
27
  "devDependencies": {
@@ -43,7 +43,7 @@
43
43
  "internet of things"
44
44
  ],
45
45
  "homepage": "http://node-opcua.github.io/",
46
- "gitHead": "50cfa07779d4c07b299176ac9c27527fcd97d079",
46
+ "gitHead": "f88519f1ee215d924c051e86a8ccf0eca3be27bd",
47
47
  "files": [
48
48
  "dist",
49
49
  "source"
@@ -18,28 +18,48 @@ import { resolveOperand } from "./resolve_operand";
18
18
 
19
19
  const warningLog = make_warningLog("Filter");
20
20
 
21
- function _coerceToBoolean(value: Variant | number | string | null | boolean): boolean {
21
+ function _coerceToBoolean(value: Variant | string| number | null ): boolean {
22
22
  if (value instanceof Variant) {
23
- return _coerceToBoolean(value.value);
23
+ return !!value.value;
24
24
  }
25
25
  return !!value;
26
26
  }
27
- function _coerceToNumber(value: Variant | number | string | null | boolean): number {
27
+ function _coerceToCompareable(value: Variant): string | number {
28
28
  if (value instanceof Variant) {
29
- return _coerceToNumber(value.value);
30
- }
31
- if (typeof value === "string") {
32
- return parseInt(value, 10);
33
- }
34
- if (typeof value === "boolean") {
35
- return value ? 1 : 0;
36
- }
37
- if (typeof value === "number") {
38
- return value;
29
+ switch (value.dataType) {
30
+ case DataType.String:
31
+ return value.value;
32
+ case DataType.Byte:
33
+ case DataType.SByte:
34
+ case DataType.Int16:
35
+ case DataType.Int32:
36
+ case DataType.UInt16:
37
+ case DataType.UInt32:
38
+ return value.value;
39
+ case DataType.Double:
40
+ return value.value;
41
+ case DataType.DateTime:
42
+ return value.value.getTime();
43
+ case DataType.Guid:
44
+ return value.value.toLowerCase();
45
+ case DataType.ByteString:
46
+ return value.value.toString("hex");
47
+ case DataType.XmlElement:
48
+ return value.value;
49
+ case DataType.LocalizedText:
50
+ return value.value.text;
51
+ case DataType.QualifiedName:
52
+ return value.value.name; // not sure about this one
53
+ default:
54
+ return "";
55
+ }
39
56
  }
40
- return 0;
57
+ return "";
41
58
  }
42
59
 
60
+ function _coerceToEqualable(value: Variant): Variant {
61
+ return value;
62
+ }
43
63
  function evaluateOperand<T>(
44
64
  filterContext: FilterContext,
45
65
  filter: ContentFilter,
@@ -130,32 +150,75 @@ function checkAnd(filterContext: FilterContext, filter: ContentFilter, filteredO
130
150
  return operandA && operandB;
131
151
  }
132
152
  function checkLessThan(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
133
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
134
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
153
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
154
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
135
155
  return operandA < operandB;
136
156
  }
137
157
 
138
158
  function checkLessThanOrEqual(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
139
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
140
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
159
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
160
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
141
161
  return operandA <= operandB;
142
162
  }
143
163
 
144
164
  function checkGreaterThan(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
145
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
146
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
165
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
166
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
147
167
  return operandA > operandB;
148
168
  }
149
169
 
150
170
  function checkGreaterThanOrEqual(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
151
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
152
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
171
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
172
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
153
173
  return operandA >= operandB;
154
174
  }
175
+
176
+ const isVariantEqual = (a: Variant, b: Variant): boolean => {
177
+
178
+ switch (a.dataType) {
179
+ case DataType.Null:
180
+ return b.dataType === DataType.Null;
181
+ case DataType.Boolean:
182
+ return a.value === b.value;
183
+ case DataType.Byte:
184
+ case DataType.SByte:
185
+ case DataType.Int16:
186
+ case DataType.Int32:
187
+ case DataType.UInt16:
188
+ case DataType.UInt32:
189
+ return a.value === b.value;
190
+ case DataType.Double:
191
+ return a.value === b.value;
192
+ case DataType.String:
193
+ return a.value === b.value;
194
+ case DataType.NodeId:
195
+ return sameNodeId(a.value as NodeId, b.value as NodeId);
196
+ case DataType.DateTime:
197
+ return (a.value as Date)?.getTime() === (b.value as Date).getTime();
198
+ case DataType.Guid:
199
+ return a.value.toLowerCase() === ("" + (b.value || "")).toLowerCase();
200
+ case DataType.ByteString:
201
+ if (b.dataType !== DataType.ByteString) {
202
+ return false;
203
+ }
204
+ return a.value.toString("hex") === b.value.toString("hex");
205
+ case DataType.XmlElement:
206
+ return a.value === b.value;
207
+ case DataType.LocalizedText:
208
+ return a.value?.text === b.value?.text;
209
+ case DataType.QualifiedName:
210
+ return a.value?.namespaceIndex === b.value?.namespaceIndex && a.value?.name === b.value?.name;
211
+ case DataType.ExtensionObject:
212
+ console.log("isVariantEqual: Not implemented for DataType.ExtensionObject");
213
+ default:
214
+ return false; // not sure how to do
215
+ }
216
+ }
217
+
155
218
  function checkEquals(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
156
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
157
- const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
158
- return operandA === operandB;
219
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToEqualable);
220
+ const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToEqualable);
221
+ return isVariantEqual(operandA, operandB);
159
222
  }
160
223
  /**
161
224
  *
@@ -170,9 +233,9 @@ function checkEquals(filterContext: FilterContext, filter: ContentFilter, filter
170
233
  * for more information how to convert operands of different types.
171
234
  */
172
235
  function checkBetween(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
173
- const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
174
- const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
175
- const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToNumber);
236
+ const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
237
+ const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
238
+ const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToCompareable);
176
239
  return operandA >= operandLow && operandA <= operandHigh;
177
240
  }
178
241