node-opcua-nodeid 2.121.0 → 2.125.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 CHANGED
@@ -91,11 +91,14 @@ export declare class NodeId {
91
91
  */
92
92
  toString(options?: {
93
93
  addressSpace?: any;
94
+ namespaceArray?: string[];
94
95
  }): string;
95
96
  /**
96
97
  * convert nodeId to a JSON string. same as {@link NodeId#toString }
97
98
  */
98
- toJSON(): string;
99
+ toJSON(options?: {
100
+ namespaceArray?: string[];
101
+ }): string;
99
102
  displayText(): string;
100
103
  /**
101
104
  * returns true if the NodeId is null or empty
@@ -103,6 +106,10 @@ export declare class NodeId {
103
106
  isEmpty(): boolean;
104
107
  }
105
108
  export type NodeIdLike = string | NodeId | number;
109
+ export interface ResolveNodeIdOptions {
110
+ namespaceArray?: string[];
111
+ defaultNamespaceIndex?: number;
112
+ }
106
113
  /**
107
114
  * Convert a value into a nodeId:
108
115
  * @class opcua
@@ -115,9 +122,12 @@ export type NodeIdLike = string | NodeId | number;
115
122
  * - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
116
123
  * - if nodeId is a {@link NodeId} : coerceNodeId returns value
117
124
  * @param value
118
- * @param namespace {number}
125
+ * @param namespaceOptions {number}
126
+ * @param namespaceOptions.namespace {number}
127
+ * @param namespaceOptions.namespaceArray {number}
128
+ *
119
129
  */
120
- export declare function coerceNodeId(value: unknown, namespace?: number): NodeId;
130
+ export declare function coerceNodeId(value: unknown, namespaceOptions?: number | ResolveNodeIdOptions): NodeId;
121
131
  /**
122
132
  * construct a node Id from a value and a namespace.
123
133
  * @class opcua
@@ -135,5 +145,5 @@ export declare function makeNodeId(value: string | Buffer | number, namespace?:
135
145
  * @param nodeIdOrString
136
146
  * @return the nodeId
137
147
  */
138
- export declare function resolveNodeId(nodeIdOrString: NodeIdLike): NodeId;
148
+ export declare function resolveNodeId(nodeIdOrString: NodeIdLike, options?: ResolveNodeIdOptions): NodeId;
139
149
  export declare function sameNodeId(n1: NodeId, n2: NodeId): boolean;
package/dist/nodeid.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sameNodeId = exports.resolveNodeId = exports.makeNodeId = exports.coerceNodeId = exports.NodeId = exports.NodeIdType = void 0;
4
+ /* eslint-disable complexity */
4
5
  /**
5
6
  * @module node-opcua-nodeid
6
7
  */
@@ -108,25 +109,28 @@ class NodeId {
108
109
  */
109
110
  toString(options) {
110
111
  const addressSpace = options ? options.addressSpace : null;
112
+ const namespacePart = options?.namespaceArray ?
113
+ (this.namespace == 0 ? "" : `nsu=${options.namespaceArray[this.namespace] || `<unknown namespace with index ${this.namespace}>`};`)
114
+ : `ns=${this.namespace};`;
111
115
  let str;
112
116
  const _this = this;
113
117
  switch (_this.identifierType) {
114
118
  case NodeIdType.NUMERIC:
115
- str = "ns=" + this.namespace + ";i=" + _this.value;
119
+ str = `${namespacePart}i=${_this.value}`;
116
120
  break;
117
121
  case NodeIdType.STRING:
118
- str = "ns=" + this.namespace + ";s=" + _this.value;
122
+ str = `${namespacePart}s=${_this.value}`;
119
123
  break;
120
124
  case NodeIdType.GUID:
121
- str = "ns=" + this.namespace + ";g=" + (0, node_opcua_guid_1.normalizeGuid)(_this.value);
125
+ str = `${namespacePart}g=${(0, node_opcua_guid_1.normalizeGuid)(_this.value)}`;
122
126
  break;
123
127
  default:
124
128
  (0, node_opcua_assert_1.assert)(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
125
129
  if (this.value) {
126
- str = "ns=" + this.namespace + ";b=" + this.value.toString("base64");
130
+ str = `${namespacePart}b=${this.value.toString("base64")}`;
127
131
  }
128
132
  else {
129
- str = "ns=" + this.namespace + ";b=<null>";
133
+ str = `${namespacePart}b=<null>`;
130
134
  }
131
135
  break;
132
136
  }
@@ -148,8 +152,8 @@ class NodeId {
148
152
  /**
149
153
  * convert nodeId to a JSON string. same as {@link NodeId#toString }
150
154
  */
151
- toJSON() {
152
- return this.toString();
155
+ toJSON(options) {
156
+ return this.toString(options);
153
157
  }
154
158
  displayText() {
155
159
  if (this.namespace === 0 && this.identifierType === NodeIdType.NUMERIC) {
@@ -191,6 +195,11 @@ const regexNamespaceI = /ns=([0-9]+);i=([0-9]+)/;
191
195
  const regexNamespaceS = /ns=([0-9]+);s=(.*)/;
192
196
  const regexNamespaceB = /ns=([0-9]+);b=(.*)/;
193
197
  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})/;
198
+ const regexNSU = /nsu=(.*);(.*)/;
199
+ const regexNamespaceNSU_I = /nsu=(.+);i=([0-9]+)/;
200
+ const regexNamespaceNSU_S = /nsu=(.+);s=(.*)/;
201
+ const regexNamespaceNSU_B = /nsu=(.+);b=(.*)/;
202
+ const regexNamespaceNSU_G = /nsu=(.+);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})/;
194
203
  /**
195
204
  * Convert a value into a nodeId:
196
205
  * @class opcua
@@ -203,17 +212,21 @@ const regexNamespaceG = /ns=([0-9]+);g=([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f
203
212
  * - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
204
213
  * - if nodeId is a {@link NodeId} : coerceNodeId returns value
205
214
  * @param value
206
- * @param namespace {number}
215
+ * @param namespaceOptions {number}
216
+ * @param namespaceOptions.namespace {number}
217
+ * @param namespaceOptions.namespaceArray {number}
218
+ *
207
219
  */
208
220
  // eslint-disable-next-line max-statements
209
- function coerceNodeId(value, namespace) {
221
+ function coerceNodeId(value, namespaceOptions) {
210
222
  let matches;
211
223
  let twoFirst;
212
224
  if (value instanceof NodeId) {
213
225
  return value;
214
226
  }
215
227
  value = value || 0;
216
- namespace = namespace || 0;
228
+ let namespace = (typeof namespaceOptions === "number" ? namespaceOptions : namespaceOptions?.defaultNamespaceIndex) || 0;
229
+ const namespaceArray = namespaceOptions?.namespaceArray || undefined;
217
230
  let identifierType = NodeIdType.NUMERIC;
218
231
  if (typeof value === "string") {
219
232
  identifierType = NodeIdType.STRING;
@@ -260,7 +273,19 @@ function coerceNodeId(value, namespace) {
260
273
  value = (0, node_opcua_guid_1.normalizeGuid)(matches[2]);
261
274
  }
262
275
  else {
263
- throw new Error("String cannot be coerced to a nodeId : " + value);
276
+ // eslint-disable-next-line no-empty
277
+ if (namespaceArray && (matches = regexNSU.exec(value)) !== null) {
278
+ const namespaceIndex = namespaceArray.indexOf(matches[1]);
279
+ if (namespaceIndex === -1) {
280
+ throw new Error("Cannot find namespace with index " + matches[1] + " in " + namespaceArray.join(","));
281
+ }
282
+ const nid = coerceNodeId(matches[2], namespace);
283
+ nid.namespace = namespaceIndex;
284
+ return nid;
285
+ }
286
+ else {
287
+ throw new Error("String cannot be coerced to a nodeId : " + value);
288
+ }
264
289
  }
265
290
  }
266
291
  else if (value instanceof Buffer) {
@@ -347,14 +372,14 @@ function reverse_map(nodeId) {
347
372
  * @param nodeIdOrString
348
373
  * @return the nodeId
349
374
  */
350
- function resolveNodeId(nodeIdOrString) {
375
+ function resolveNodeId(nodeIdOrString, options) {
351
376
  let nodeId;
352
377
  const rawId = typeof nodeIdOrString === "string" ? _nameToNodeIdIndex[nodeIdOrString] : undefined;
353
378
  if (rawId !== undefined) {
354
379
  return rawId;
355
380
  }
356
381
  else {
357
- nodeId = coerceNodeId(nodeIdOrString);
382
+ nodeId = coerceNodeId(nodeIdOrString, options);
358
383
  }
359
384
  return nodeId;
360
385
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nodeid.js","sourceRoot":"","sources":["../source/nodeid.ts"],"names":[],"mappings":"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"}
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.121.0",
5
+ "version": "2.125.0",
6
6
  "description": "pure nodejs OPCUA SDK - module nodeid",
7
7
  "scripts": {
8
8
  "build": "tsc -b",
@@ -12,12 +12,12 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "node-opcua-assert": "2.120.0",
15
- "node-opcua-constants": "2.121.0",
15
+ "node-opcua-constants": "2.125.0",
16
16
  "node-opcua-guid": "2.120.0"
17
17
  },
18
18
  "devDependencies": {
19
- "node-opcua-benchmarker": "2.120.0",
20
- "node-opcua-debug": "2.121.0",
19
+ "node-opcua-benchmarker": "2.125.0",
20
+ "node-opcua-debug": "2.125.0",
21
21
  "should": "^13.2.3"
22
22
  },
23
23
  "author": "Etienne Rossignon",
@@ -35,7 +35,7 @@
35
35
  "internet of things"
36
36
  ],
37
37
  "homepage": "http://node-opcua.github.io/",
38
- "gitHead": "ba93a78eda343ecc0cc20476837347f6dfa259e0",
38
+ "gitHead": "a0e0a2f1045e6e402dd4619c625c90008f0617ed",
39
39
  "files": [
40
40
  "dist",
41
41
  "source"
package/source/nodeid.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable complexity */
1
2
  /**
2
3
  * @module node-opcua-nodeid
3
4
  */
@@ -144,26 +145,31 @@ export class NodeId {
144
145
  * @param [options.addressSpace] {AddressSpace}
145
146
  * @return {String}
146
147
  */
147
- public toString(options?: { addressSpace?: any }): string {
148
+ public toString(options?: { addressSpace?: any , namespaceArray?: string[]}): string {
148
149
  const addressSpace = options ? options.addressSpace : null;
150
+
151
+ const namespacePart: string = options?.namespaceArray ?
152
+ (this.namespace == 0 ? "" : `nsu=${options.namespaceArray[this.namespace] || `<unknown namespace with index ${this.namespace}>`};`)
153
+ : `ns=${this.namespace};`;
154
+
149
155
  let str;
150
156
  const _this = this as INodeId;
151
157
  switch (_this.identifierType) {
152
158
  case NodeIdType.NUMERIC:
153
- str = "ns=" + this.namespace + ";i=" + _this.value;
159
+ str = `${namespacePart}i=${_this.value}`;
154
160
  break;
155
161
  case NodeIdType.STRING:
156
- str = "ns=" + this.namespace + ";s=" + _this.value;
162
+ str = `${namespacePart}s=${_this.value}`;
157
163
  break;
158
164
  case NodeIdType.GUID:
159
- str = "ns=" + this.namespace + ";g=" + normalizeGuid(_this.value);
165
+ str = `${namespacePart}g=${normalizeGuid(_this.value)}`;
160
166
  break;
161
167
  default:
162
168
  assert(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
163
169
  if (this.value) {
164
- str = "ns=" + this.namespace + ";b=" + (this.value as Buffer).toString("base64");
170
+ str = `${namespacePart}b=${(this.value as Buffer).toString("base64")}`;
165
171
  } else {
166
- str = "ns=" + this.namespace + ";b=<null>";
172
+ str = `${ namespacePart}b=<null>`;
167
173
  }
168
174
  break;
169
175
  }
@@ -186,8 +192,8 @@ export class NodeId {
186
192
  /**
187
193
  * convert nodeId to a JSON string. same as {@link NodeId#toString }
188
194
  */
189
- public toJSON(): string {
190
- return this.toString();
195
+ public toJSON(options?: {namespaceArray?: string[]}): string {
196
+ return this.toString(options);
191
197
  }
192
198
 
193
199
  public displayText(): string {
@@ -237,6 +243,17 @@ const regexNamespaceS = /ns=([0-9]+);s=(.*)/;
237
243
  const regexNamespaceB = /ns=([0-9]+);b=(.*)/;
238
244
  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})/;
239
245
 
246
+ const regexNSU = /nsu=(.*);(.*)/;
247
+ const regexNamespaceNSU_I = /nsu=(.+);i=([0-9]+)/;
248
+ const regexNamespaceNSU_S = /nsu=(.+);s=(.*)/;
249
+ const regexNamespaceNSU_B = /nsu=(.+);b=(.*)/;
250
+ const regexNamespaceNSU_G = /nsu=(.+);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})/;
251
+
252
+
253
+ export interface ResolveNodeIdOptions {
254
+ namespaceArray?: string[];
255
+ defaultNamespaceIndex?: number ;
256
+ }
240
257
  /**
241
258
  * Convert a value into a nodeId:
242
259
  * @class opcua
@@ -249,10 +266,13 @@ const regexNamespaceG = /ns=([0-9]+);g=([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f
249
266
  * - if nodeId is a string of form : "b=ABCD=" => nodeId({value=decodeBase64("ABCD="), identifierType: NodeIdType.BYTESTRING})
250
267
  * - if nodeId is a {@link NodeId} : coerceNodeId returns value
251
268
  * @param value
252
- * @param namespace {number}
269
+ * @param namespaceOptions {number}
270
+ * @param namespaceOptions.namespace {number}
271
+ * @param namespaceOptions.namespaceArray {number}
272
+ *
253
273
  */
254
274
  // eslint-disable-next-line max-statements
255
- export function coerceNodeId(value: unknown, namespace?: number): NodeId {
275
+ export function coerceNodeId(value: unknown, namespaceOptions?: number | ResolveNodeIdOptions): NodeId {
256
276
  let matches;
257
277
  let twoFirst;
258
278
  if (value instanceof NodeId) {
@@ -260,7 +280,10 @@ export function coerceNodeId(value: unknown, namespace?: number): NodeId {
260
280
  }
261
281
 
262
282
  value = value || 0;
263
- namespace = namespace || 0;
283
+
284
+ let namespace = (typeof namespaceOptions === "number" ? namespaceOptions as number : namespaceOptions?.defaultNamespaceIndex )|| 0;
285
+
286
+ const namespaceArray: string[] | undefined = (namespaceOptions as { namespace?: number, namespaceArray: string[] }) ?.namespaceArray || undefined;
264
287
 
265
288
  let identifierType = NodeIdType.NUMERIC;
266
289
 
@@ -301,7 +324,19 @@ export function coerceNodeId(value: unknown, namespace?: number): NodeId {
301
324
  namespace = parseInt(matches[1], 10);
302
325
  value = normalizeGuid(matches[2]);
303
326
  } else {
304
- throw new Error("String cannot be coerced to a nodeId : " + value);
327
+
328
+ // eslint-disable-next-line no-empty
329
+ if (namespaceArray && (matches = regexNSU.exec(value))!==null) {
330
+ const namespaceIndex = namespaceArray.indexOf(matches[1]);
331
+ if (namespaceIndex === -1) {
332
+ throw new Error("Cannot find namespace with index " + matches[1] + " in " + namespaceArray.join(","));
333
+ }
334
+ const nid = coerceNodeId(matches[2], namespace);
335
+ nid.namespace = namespaceIndex;
336
+ return nid;
337
+ } else {
338
+ throw new Error("String cannot be coerced to a nodeId : " + value);
339
+ }
305
340
  }
306
341
  } else if (value instanceof Buffer) {
307
342
  identifierType = NodeIdType.BYTESTRING;
@@ -391,14 +426,14 @@ function reverse_map(nodeId: string) {
391
426
  * @param nodeIdOrString
392
427
  * @return the nodeId
393
428
  */
394
- export function resolveNodeId(nodeIdOrString: NodeIdLike): NodeId {
429
+ export function resolveNodeId(nodeIdOrString: NodeIdLike, options?: ResolveNodeIdOptions): NodeId {
395
430
  let nodeId;
396
431
 
397
432
  const rawId = typeof nodeIdOrString === "string" ? _nameToNodeIdIndex[nodeIdOrString] : undefined;
398
433
  if (rawId !== undefined) {
399
434
  return rawId;
400
435
  } else {
401
- nodeId = coerceNodeId(nodeIdOrString);
436
+ nodeId = coerceNodeId(nodeIdOrString, options);
402
437
  }
403
438
  return nodeId;
404
439
  }