node-opcua-nodeid 2.79.0 → 2.81.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/dist/nodeid.d.ts +3 -2
- package/dist/nodeid.js +14 -6
- package/dist/nodeid.js.map +1 -1
- package/package.json +3 -3
- package/source/nodeid.ts +15 -7
package/dist/nodeid.d.ts
CHANGED
|
@@ -93,8 +93,9 @@ export declare type NodeIdLike = string | NodeId | number;
|
|
|
93
93
|
* @static
|
|
94
94
|
*
|
|
95
95
|
* @description:
|
|
96
|
-
* - if nodeId is a string of form : "i=1234"
|
|
97
|
-
* - if nodeId is a string of form : "s=foo"
|
|
96
|
+
* - if nodeId is a string of form : "i=1234" => nodeId({value=1234, identifierType: NodeIdType.NUMERIC})
|
|
97
|
+
* - if nodeId is a string of form : "s=foo" => nodeId({value="foo", identifierType: NodeIdType.STRING})
|
|
98
|
+
* - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
|
|
98
99
|
* - if nodeId is a {@link NodeId} : coerceNodeId returns value
|
|
99
100
|
* @param value
|
|
100
101
|
* @param namespace {number}
|
package/dist/nodeid.js
CHANGED
|
@@ -85,6 +85,9 @@ class NodeId {
|
|
|
85
85
|
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.NUMERIC || (this.value !== null && this.value >= 0 && this.value <= 0xffffffff));
|
|
86
86
|
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.GUID || (0, node_opcua_guid_1.isValidGuid)(this.value));
|
|
87
87
|
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.STRING || typeof this.value === "string");
|
|
88
|
+
if (this.identifierType === NodeIdType.GUID) {
|
|
89
|
+
this.value = (0, node_opcua_guid_1.normalizeGuid)(value);
|
|
90
|
+
}
|
|
88
91
|
}
|
|
89
92
|
;
|
|
90
93
|
/**
|
|
@@ -116,7 +119,7 @@ class NodeId {
|
|
|
116
119
|
str = "ns=" + this.namespace + ";s=" + this.value;
|
|
117
120
|
break;
|
|
118
121
|
case NodeIdType.GUID:
|
|
119
|
-
str = "ns=" + this.namespace + ";g=" + this.value;
|
|
122
|
+
str = "ns=" + this.namespace + ";g=" + (0, node_opcua_guid_1.normalizeGuid)(this.value);
|
|
120
123
|
break;
|
|
121
124
|
default:
|
|
122
125
|
(0, node_opcua_assert_1.assert)(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
|
|
@@ -188,7 +191,7 @@ NodeId.nullNodeId = new Proxy(new NodeId(NodeIdType.NUMERIC, 0, 0), {
|
|
|
188
191
|
const regexNamespaceI = /ns=([0-9]+);i=([0-9]+)/;
|
|
189
192
|
const regexNamespaceS = /ns=([0-9]+);s=(.*)/;
|
|
190
193
|
const regexNamespaceB = /ns=([0-9]+);b=(.*)/;
|
|
191
|
-
const regexNamespaceG = /ns=([0-9]+);g=(
|
|
194
|
+
const regexNamespaceG = /ns=([0-9]+);g=([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})/;
|
|
192
195
|
/**
|
|
193
196
|
* Convert a value into a nodeId:
|
|
194
197
|
* @class opcua
|
|
@@ -196,12 +199,14 @@ const regexNamespaceG = /ns=([0-9]+);g=(.*)/;
|
|
|
196
199
|
* @static
|
|
197
200
|
*
|
|
198
201
|
* @description:
|
|
199
|
-
* - if nodeId is a string of form : "i=1234"
|
|
200
|
-
* - if nodeId is a string of form : "s=foo"
|
|
202
|
+
* - if nodeId is a string of form : "i=1234" => nodeId({value=1234, identifierType: NodeIdType.NUMERIC})
|
|
203
|
+
* - if nodeId is a string of form : "s=foo" => nodeId({value="foo", identifierType: NodeIdType.STRING})
|
|
204
|
+
* - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
|
|
201
205
|
* - if nodeId is a {@link NodeId} : coerceNodeId returns value
|
|
202
206
|
* @param value
|
|
203
207
|
* @param namespace {number}
|
|
204
208
|
*/
|
|
209
|
+
// eslint-disable-next-line max-statements
|
|
205
210
|
function coerceNodeId(value, namespace) {
|
|
206
211
|
let matches;
|
|
207
212
|
let twoFirst;
|
|
@@ -228,10 +233,12 @@ function coerceNodeId(value, namespace) {
|
|
|
228
233
|
}
|
|
229
234
|
else if (twoFirst === "g=") {
|
|
230
235
|
identifierType = NodeIdType.GUID;
|
|
231
|
-
value = value.substring(2);
|
|
236
|
+
value = (0, node_opcua_guid_1.normalizeGuid)(value.substring(2));
|
|
237
|
+
(0, node_opcua_assert_1.assert)((0, node_opcua_guid_1.isValidGuid)(value));
|
|
232
238
|
}
|
|
233
239
|
else if ((0, node_opcua_guid_1.isValidGuid)(value)) {
|
|
234
240
|
identifierType = NodeIdType.GUID;
|
|
241
|
+
value = (0, node_opcua_guid_1.normalizeGuid)(value);
|
|
235
242
|
}
|
|
236
243
|
else if ((matches = regexNamespaceI.exec(value)) !== null) {
|
|
237
244
|
identifierType = NodeIdType.NUMERIC;
|
|
@@ -251,7 +258,7 @@ function coerceNodeId(value, namespace) {
|
|
|
251
258
|
else if ((matches = regexNamespaceG.exec(value)) !== null) {
|
|
252
259
|
identifierType = NodeIdType.GUID;
|
|
253
260
|
namespace = parseInt(matches[1], 10);
|
|
254
|
-
value = matches[2];
|
|
261
|
+
value = (0, node_opcua_guid_1.normalizeGuid)(matches[2]);
|
|
255
262
|
}
|
|
256
263
|
else {
|
|
257
264
|
throw new Error("String cannot be coerced to a nodeId : " + value);
|
|
@@ -294,6 +301,7 @@ function makeNodeId(value, namespace) {
|
|
|
294
301
|
// "72962B91-FA75-4AE6-8D28-B404DC7DAF63"
|
|
295
302
|
if ((0, node_opcua_guid_1.isValidGuid)(value)) {
|
|
296
303
|
identifierType = NodeIdType.GUID;
|
|
304
|
+
value = (0, node_opcua_guid_1.normalizeGuid)(value);
|
|
297
305
|
}
|
|
298
306
|
else {
|
|
299
307
|
identifierType = NodeIdType.STRING;
|
package/dist/nodeid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeid.js","sourceRoot":"","sources":["../source/nodeid.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,2CAA2C;AAC3C,+BAA+B;AAC/B,mCAAiC;AACjC,yDAA2C;AAC3C,+DAQ8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"nodeid.js","sourceRoot":"","sources":["../source/nodeid.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "node-opcua-nodeid",
|
|
3
3
|
"main": "./dist/index.js",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.81.0",
|
|
6
6
|
"description": "pure nodejs OPCUA SDK - module -nodeid",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc -b",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"lodash": "4.17.21",
|
|
17
17
|
"node-opcua-assert": "2.77.0",
|
|
18
18
|
"node-opcua-constants": "2.77.0",
|
|
19
|
-
"node-opcua-guid": "2.
|
|
19
|
+
"node-opcua-guid": "2.81.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"node-opcua-benchmarker": "2.77.0",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"internet of things"
|
|
39
39
|
],
|
|
40
40
|
"homepage": "http://node-opcua.github.io/",
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "fd89928bc4a4b9f31a6b6e5921f743e8284eba2b"
|
|
42
42
|
}
|
package/source/nodeid.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
VariableIds,
|
|
15
15
|
VariableTypeIds
|
|
16
16
|
} from "node-opcua-constants";
|
|
17
|
-
import { emptyGuid, Guid, isValidGuid } from "node-opcua-guid";
|
|
17
|
+
import { emptyGuid, Guid, isValidGuid, normalizeGuid } from "node-opcua-guid";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* `NodeIdType` an enumeration that specifies the possible types of a `NodeId` value.
|
|
@@ -102,6 +102,9 @@ export class NodeId {
|
|
|
102
102
|
assert(this.identifierType !== NodeIdType.NUMERIC || (this.value !== null && this.value >= 0 && this.value <= 0xffffffff));
|
|
103
103
|
assert(this.identifierType !== NodeIdType.GUID || isValidGuid(this.value as string));
|
|
104
104
|
assert(this.identifierType !== NodeIdType.STRING || typeof this.value === "string");
|
|
105
|
+
if (this.identifierType === NodeIdType.GUID) {
|
|
106
|
+
this.value = normalizeGuid(value as string);
|
|
107
|
+
}
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
/**
|
|
@@ -133,7 +136,7 @@ export class NodeId {
|
|
|
133
136
|
str = "ns=" + this.namespace + ";s=" + this.value;
|
|
134
137
|
break;
|
|
135
138
|
case NodeIdType.GUID:
|
|
136
|
-
str = "ns=" + this.namespace + ";g=" + this.value;
|
|
139
|
+
str = "ns=" + this.namespace + ";g=" + normalizeGuid(this.value as string);
|
|
137
140
|
break;
|
|
138
141
|
default:
|
|
139
142
|
assert(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
|
|
@@ -212,7 +215,7 @@ export type NodeIdLike = string | NodeId | number;
|
|
|
212
215
|
const regexNamespaceI = /ns=([0-9]+);i=([0-9]+)/;
|
|
213
216
|
const regexNamespaceS = /ns=([0-9]+);s=(.*)/;
|
|
214
217
|
const regexNamespaceB = /ns=([0-9]+);b=(.*)/;
|
|
215
|
-
const regexNamespaceG = /ns=([0-9]+);g=(
|
|
218
|
+
const regexNamespaceG = /ns=([0-9]+);g=([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})/;
|
|
216
219
|
|
|
217
220
|
/**
|
|
218
221
|
* Convert a value into a nodeId:
|
|
@@ -221,12 +224,14 @@ const regexNamespaceG = /ns=([0-9]+);g=(.*)/;
|
|
|
221
224
|
* @static
|
|
222
225
|
*
|
|
223
226
|
* @description:
|
|
224
|
-
* - if nodeId is a string of form : "i=1234"
|
|
225
|
-
* - if nodeId is a string of form : "s=foo"
|
|
227
|
+
* - if nodeId is a string of form : "i=1234" => nodeId({value=1234, identifierType: NodeIdType.NUMERIC})
|
|
228
|
+
* - if nodeId is a string of form : "s=foo" => nodeId({value="foo", identifierType: NodeIdType.STRING})
|
|
229
|
+
* - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
|
|
226
230
|
* - if nodeId is a {@link NodeId} : coerceNodeId returns value
|
|
227
231
|
* @param value
|
|
228
232
|
* @param namespace {number}
|
|
229
233
|
*/
|
|
234
|
+
// eslint-disable-next-line max-statements
|
|
230
235
|
export function coerceNodeId(value: unknown, namespace?: number): NodeId {
|
|
231
236
|
let matches;
|
|
232
237
|
let twoFirst;
|
|
@@ -254,9 +259,11 @@ export function coerceNodeId(value: unknown, namespace?: number): NodeId {
|
|
|
254
259
|
value = Buffer.from(value.substring(2), "base64");
|
|
255
260
|
} else if (twoFirst === "g=") {
|
|
256
261
|
identifierType = NodeIdType.GUID;
|
|
257
|
-
value = value.substring(2);
|
|
262
|
+
value = normalizeGuid(value.substring(2));
|
|
263
|
+
assert(isValidGuid(value as string));
|
|
258
264
|
} else if (isValidGuid(value)) {
|
|
259
265
|
identifierType = NodeIdType.GUID;
|
|
266
|
+
value = normalizeGuid(value);
|
|
260
267
|
} else if ((matches = regexNamespaceI.exec(value)) !== null) {
|
|
261
268
|
identifierType = NodeIdType.NUMERIC;
|
|
262
269
|
namespace = parseInt(matches[1], 10);
|
|
@@ -272,7 +279,7 @@ export function coerceNodeId(value: unknown, namespace?: number): NodeId {
|
|
|
272
279
|
} else if ((matches = regexNamespaceG.exec(value)) !== null) {
|
|
273
280
|
identifierType = NodeIdType.GUID;
|
|
274
281
|
namespace = parseInt(matches[1], 10);
|
|
275
|
-
value =
|
|
282
|
+
value =normalizeGuid(matches[2]);
|
|
276
283
|
} else {
|
|
277
284
|
throw new Error("String cannot be coerced to a nodeId : " + value);
|
|
278
285
|
}
|
|
@@ -313,6 +320,7 @@ export function makeNodeId(value: string | Buffer | number, namespace?: number):
|
|
|
313
320
|
// "72962B91-FA75-4AE6-8D28-B404DC7DAF63"
|
|
314
321
|
if (isValidGuid(value)) {
|
|
315
322
|
identifierType = NodeIdType.GUID;
|
|
323
|
+
value = normalizeGuid(value);
|
|
316
324
|
} else {
|
|
317
325
|
identifierType = NodeIdType.STRING;
|
|
318
326
|
}
|