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
|
|
13
|
+
return !!value.value;
|
|
14
14
|
}
|
|
15
15
|
return !!value;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function _coerceToCompareable(value) {
|
|
18
18
|
if (value instanceof node_opcua_variant_1.Variant) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
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],
|
|
112
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
117
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
122
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
127
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
132
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
133
|
-
return operandA
|
|
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],
|
|
149
|
-
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
150
|
-
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2],
|
|
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.
|
|
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.
|
|
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.
|
|
22
|
+
"node-opcua-service-translate-browse-path": "2.143.0",
|
|
23
23
|
"node-opcua-status-code": "2.139.0",
|
|
24
|
-
"node-opcua-types": "2.
|
|
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": "
|
|
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 |
|
|
21
|
+
function _coerceToBoolean(value: Variant | string| number | null ): boolean {
|
|
22
22
|
if (value instanceof Variant) {
|
|
23
|
-
return
|
|
23
|
+
return !!value.value;
|
|
24
24
|
}
|
|
25
25
|
return !!value;
|
|
26
26
|
}
|
|
27
|
-
function
|
|
27
|
+
function _coerceToCompareable(value: Variant): string | number {
|
|
28
28
|
if (value instanceof Variant) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
|
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],
|
|
134
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
140
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
146
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
152
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
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],
|
|
157
|
-
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
158
|
-
return operandA
|
|
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],
|
|
174
|
-
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1],
|
|
175
|
-
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2],
|
|
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
|
|