node-opcua-nodeid 2.90.1 → 2.97.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 +18 -1
- package/dist/nodeid.js +18 -16
- package/dist/nodeid.js.map +1 -1
- package/package.json +2 -2
- package/source/nodeid.ts +50 -27
package/dist/nodeid.d.ts
CHANGED
|
@@ -29,13 +29,30 @@ export declare enum NodeIdType {
|
|
|
29
29
|
*/
|
|
30
30
|
BYTESTRING = 4
|
|
31
31
|
}
|
|
32
|
+
export interface INodeIdNumeric extends NodeId {
|
|
33
|
+
identifierType: NodeIdType.NUMERIC;
|
|
34
|
+
value: number;
|
|
35
|
+
}
|
|
36
|
+
export interface INodeIdGuid extends NodeId {
|
|
37
|
+
identifierType: NodeIdType.GUID;
|
|
38
|
+
value: string;
|
|
39
|
+
}
|
|
40
|
+
export interface INodeIdByteString extends NodeId {
|
|
41
|
+
identifierType: NodeIdType.BYTESTRING;
|
|
42
|
+
value: Buffer;
|
|
43
|
+
}
|
|
44
|
+
export interface INodeIdString extends NodeId {
|
|
45
|
+
identifierType: NodeIdType.STRING;
|
|
46
|
+
value: string;
|
|
47
|
+
}
|
|
48
|
+
export type INodeId = INodeIdNumeric | INodeIdGuid | INodeIdString | INodeIdByteString;
|
|
32
49
|
/**
|
|
33
50
|
* Construct a node ID
|
|
34
51
|
*
|
|
35
52
|
* @class NodeId
|
|
36
53
|
* @example
|
|
37
54
|
*
|
|
38
|
-
*
|
|
55
|
+
* ``` javascript
|
|
39
56
|
* const nodeId = new NodeId(NodeIdType.NUMERIC,123,1);
|
|
40
57
|
* ```
|
|
41
58
|
* @constructor
|
package/dist/nodeid.js
CHANGED
|
@@ -50,13 +50,14 @@ function defaultValue(identifierType) {
|
|
|
50
50
|
case NodeIdType.NUMERIC: return 0;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
const doDebug = false;
|
|
53
54
|
/**
|
|
54
55
|
* Construct a node ID
|
|
55
56
|
*
|
|
56
57
|
* @class NodeId
|
|
57
58
|
* @example
|
|
58
59
|
*
|
|
59
|
-
*
|
|
60
|
+
* ``` javascript
|
|
60
61
|
* const nodeId = new NodeId(NodeIdType.NUMERIC,123,1);
|
|
61
62
|
* ```
|
|
62
63
|
* @constructor
|
|
@@ -79,10 +80,10 @@ class NodeId {
|
|
|
79
80
|
this.value = value || defaultValue(identifierType);
|
|
80
81
|
this.namespace = namespace || 0;
|
|
81
82
|
// namespace shall be a UInt16
|
|
82
|
-
(0, node_opcua_assert_1.assert)(this.namespace >= 0 && this.namespace <= 0xffff);
|
|
83
|
+
(0, node_opcua_assert_1.assert)(this.namespace >= 0 && this.namespace <= 0xffff, "NodeId: invalid namespace value");
|
|
83
84
|
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.NUMERIC || (this.value !== null && this.value >= 0 && this.value <= 0xffffffff));
|
|
84
|
-
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.GUID || (0, node_opcua_guid_1.isValidGuid)(this.value));
|
|
85
|
-
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.STRING || typeof this.value === "string");
|
|
85
|
+
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.GUID || (0, node_opcua_guid_1.isValidGuid)(this.value), "NodeId: Guid is invalid");
|
|
86
|
+
(0, node_opcua_assert_1.assert)(this.identifierType !== NodeIdType.STRING || typeof this.value === "string", "cannot empty string");
|
|
86
87
|
if (this.identifierType === NodeIdType.GUID) {
|
|
87
88
|
this.value = (0, node_opcua_guid_1.normalizeGuid)(value);
|
|
88
89
|
}
|
|
@@ -108,15 +109,16 @@ class NodeId {
|
|
|
108
109
|
toString(options) {
|
|
109
110
|
const addressSpace = options ? options.addressSpace : null;
|
|
110
111
|
let str;
|
|
111
|
-
|
|
112
|
+
const _this = this;
|
|
113
|
+
switch (_this.identifierType) {
|
|
112
114
|
case NodeIdType.NUMERIC:
|
|
113
|
-
str = "ns=" + this.namespace + ";i=" +
|
|
115
|
+
str = "ns=" + this.namespace + ";i=" + _this.value;
|
|
114
116
|
break;
|
|
115
117
|
case NodeIdType.STRING:
|
|
116
|
-
str = "ns=" + this.namespace + ";s=" +
|
|
118
|
+
str = "ns=" + this.namespace + ";s=" + _this.value;
|
|
117
119
|
break;
|
|
118
120
|
case NodeIdType.GUID:
|
|
119
|
-
str = "ns=" + this.namespace + ";g=" + (0, node_opcua_guid_1.normalizeGuid)(
|
|
121
|
+
str = "ns=" + this.namespace + ";g=" + (0, node_opcua_guid_1.normalizeGuid)(_this.value);
|
|
120
122
|
break;
|
|
121
123
|
default:
|
|
122
124
|
(0, node_opcua_assert_1.assert)(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
|
|
@@ -129,7 +131,7 @@ class NodeId {
|
|
|
129
131
|
break;
|
|
130
132
|
}
|
|
131
133
|
if (addressSpace) {
|
|
132
|
-
if (this.namespace === 0 &&
|
|
134
|
+
if (this.namespace === 0 && _this.identifierType === NodeIdType.NUMERIC) {
|
|
133
135
|
// find standard browse name
|
|
134
136
|
const name = reverse_map((this.value || 0).toString()) || "<undefined>";
|
|
135
137
|
str += " " + name;
|
|
@@ -162,16 +164,16 @@ class NodeId {
|
|
|
162
164
|
* returns true if the NodeId is null or empty
|
|
163
165
|
*/
|
|
164
166
|
isEmpty() {
|
|
165
|
-
|
|
167
|
+
const _this = this;
|
|
168
|
+
switch (_this.identifierType) {
|
|
166
169
|
case NodeIdType.NUMERIC:
|
|
167
|
-
return
|
|
170
|
+
return _this.value === 0;
|
|
168
171
|
case NodeIdType.STRING:
|
|
169
|
-
return !
|
|
172
|
+
return !_this.value;
|
|
170
173
|
case NodeIdType.GUID:
|
|
171
|
-
return !
|
|
174
|
+
return !_this.value || _this.value === node_opcua_guid_1.emptyGuid;
|
|
172
175
|
default:
|
|
173
|
-
|
|
174
|
-
return !this.value || this.value.length === 0;
|
|
176
|
+
return !_this.value || _this.value.length === 0;
|
|
175
177
|
}
|
|
176
178
|
}
|
|
177
179
|
}
|
|
@@ -182,7 +184,7 @@ NodeId.nullNodeId = new Proxy(new NodeId(NodeIdType.NUMERIC, 0, 0), {
|
|
|
182
184
|
return target[prop];
|
|
183
185
|
},
|
|
184
186
|
set: () => {
|
|
185
|
-
throw new Error("Cannot assign a value to
|
|
187
|
+
throw new Error("Cannot assign a value to constant NodeId.nullNodeId");
|
|
186
188
|
}
|
|
187
189
|
});
|
|
188
190
|
const regexNamespaceI = /ns=([0-9]+);i=([0-9]+)/;
|
package/dist/nodeid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeid.js","sourceRoot":"","sources":["../source/nodeid.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yDAA2C;AAC3C,+DAQ8B;AAC9B,qDAA8E;AAE9E;;GAEG;AACH,IAAY,UAyBX;AAzBD,WAAY,UAAU;IAClB;;;;OAIG;IACH,iDAAc,CAAA;IACd;;;;OAIG;IACH,+CAAa,CAAA;IACb;;;;OAIG;IACH,2CAAW,CAAA;IACX;;;;OAIG;IACH,uDAAiB,CAAA;AACrB,CAAC,EAzBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAyBrB;AACD;;;;EAIE;AACF,SAAS,YAAY,CAAC,cAA0B;IAC5C,
|
|
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.97.0",
|
|
6
6
|
"description": "pure nodejs OPCUA SDK - module -nodeid",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc -b",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"internet of things"
|
|
36
36
|
],
|
|
37
37
|
"homepage": "http://node-opcua.github.io/",
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "19c96bda0810d2dec73dd1c2427546be40908646"
|
|
39
39
|
}
|
package/source/nodeid.ts
CHANGED
|
@@ -47,21 +47,42 @@ function defaultValue(identifierType: NodeIdType.STRING): null;
|
|
|
47
47
|
function defaultValue(identifierType: NodeIdType.NUMERIC): 0;
|
|
48
48
|
function defaultValue(identifierType: NodeIdType.GUID): null;
|
|
49
49
|
*/
|
|
50
|
-
function defaultValue(identifierType: NodeIdType): string | number| Buffer {
|
|
51
|
-
switch(identifierType) {
|
|
52
|
-
case NodeIdType.GUID
|
|
53
|
-
case NodeIdType.BYTESTRING
|
|
54
|
-
case NodeIdType.STRING
|
|
55
|
-
case NodeIdType.NUMERIC
|
|
50
|
+
function defaultValue(identifierType: NodeIdType): string | number | Buffer {
|
|
51
|
+
switch (identifierType) {
|
|
52
|
+
case NodeIdType.GUID: return emptyGuid;
|
|
53
|
+
case NodeIdType.BYTESTRING: return null as any as Buffer;// Buffer.alloc(0);
|
|
54
|
+
case NodeIdType.STRING: return "";
|
|
55
|
+
case NodeIdType.NUMERIC: return 0;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
|
|
59
|
+
export interface INodeIdNumeric extends NodeId {
|
|
60
|
+
identifierType: NodeIdType.NUMERIC;
|
|
61
|
+
value: number;
|
|
62
|
+
}
|
|
63
|
+
export interface INodeIdGuid extends NodeId {
|
|
64
|
+
identifierType: NodeIdType.GUID;
|
|
65
|
+
value: string;
|
|
66
|
+
}
|
|
67
|
+
export interface INodeIdByteString extends NodeId {
|
|
68
|
+
identifierType: NodeIdType.BYTESTRING;
|
|
69
|
+
value: Buffer;
|
|
70
|
+
}
|
|
71
|
+
export interface INodeIdString extends NodeId {
|
|
72
|
+
identifierType: NodeIdType.STRING;
|
|
73
|
+
value: string;
|
|
74
|
+
}
|
|
75
|
+
export type INodeId = INodeIdNumeric | INodeIdGuid | INodeIdString | INodeIdByteString;
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
const doDebug = false;
|
|
58
79
|
/**
|
|
59
80
|
* Construct a node ID
|
|
60
81
|
*
|
|
61
82
|
* @class NodeId
|
|
62
83
|
* @example
|
|
63
84
|
*
|
|
64
|
-
*
|
|
85
|
+
* ``` javascript
|
|
65
86
|
* const nodeId = new NodeId(NodeIdType.NUMERIC,123,1);
|
|
66
87
|
* ```
|
|
67
88
|
* @constructor
|
|
@@ -82,6 +103,8 @@ export class NodeId {
|
|
|
82
103
|
* @param namespace - the index of the related namespace (optional , default value = 0 )
|
|
83
104
|
*/
|
|
84
105
|
constructor(identifierType?: NodeIdType | null, value?: number | string | Buffer | Guid, namespace?: number) {
|
|
106
|
+
|
|
107
|
+
|
|
85
108
|
if (identifierType === null || identifierType === undefined) {
|
|
86
109
|
this.identifierType = NodeIdType.NUMERIC;
|
|
87
110
|
this.value = 0;
|
|
@@ -94,14 +117,13 @@ export class NodeId {
|
|
|
94
117
|
this.namespace = namespace || 0;
|
|
95
118
|
|
|
96
119
|
// namespace shall be a UInt16
|
|
97
|
-
assert(this.namespace >= 0 && this.namespace <= 0xffff);
|
|
98
|
-
|
|
99
|
-
assert(this.identifierType !== NodeIdType.
|
|
100
|
-
assert(this.identifierType !== NodeIdType.
|
|
101
|
-
assert(this.identifierType !== NodeIdType.STRING || typeof this.value === "string");
|
|
120
|
+
assert(this.namespace >= 0 && this.namespace <= 0xffff, "NodeId: invalid namespace value");
|
|
121
|
+
assert(this.identifierType !== NodeIdType.NUMERIC || (this.value !== null && this.value as number >= 0 && this.value as number <= 0xffffffff));
|
|
122
|
+
assert(this.identifierType !== NodeIdType.GUID || isValidGuid(this.value as string), "NodeId: Guid is invalid");
|
|
123
|
+
assert(this.identifierType !== NodeIdType.STRING || typeof this.value === "string", "cannot empty string");
|
|
102
124
|
if (this.identifierType === NodeIdType.GUID) {
|
|
103
125
|
this.value = normalizeGuid(value as string);
|
|
104
|
-
}
|
|
126
|
+
}
|
|
105
127
|
}
|
|
106
128
|
|
|
107
129
|
/**
|
|
@@ -125,15 +147,16 @@ export class NodeId {
|
|
|
125
147
|
public toString(options?: { addressSpace?: any }): string {
|
|
126
148
|
const addressSpace = options ? options.addressSpace : null;
|
|
127
149
|
let str;
|
|
128
|
-
|
|
150
|
+
const _this = this as INodeId;
|
|
151
|
+
switch (_this.identifierType) {
|
|
129
152
|
case NodeIdType.NUMERIC:
|
|
130
|
-
str = "ns=" + this.namespace + ";i=" +
|
|
153
|
+
str = "ns=" + this.namespace + ";i=" + _this.value;
|
|
131
154
|
break;
|
|
132
155
|
case NodeIdType.STRING:
|
|
133
|
-
str = "ns=" + this.namespace + ";s=" +
|
|
156
|
+
str = "ns=" + this.namespace + ";s=" + _this.value;
|
|
134
157
|
break;
|
|
135
158
|
case NodeIdType.GUID:
|
|
136
|
-
str = "ns=" + this.namespace + ";g=" + normalizeGuid(
|
|
159
|
+
str = "ns=" + this.namespace + ";g=" + normalizeGuid(_this.value);
|
|
137
160
|
break;
|
|
138
161
|
default:
|
|
139
162
|
assert(this.identifierType === NodeIdType.BYTESTRING, "invalid identifierType in NodeId : " + this.identifierType);
|
|
@@ -146,9 +169,9 @@ export class NodeId {
|
|
|
146
169
|
}
|
|
147
170
|
|
|
148
171
|
if (addressSpace) {
|
|
149
|
-
if (this.namespace === 0 &&
|
|
172
|
+
if (this.namespace === 0 && _this.identifierType === NodeIdType.NUMERIC) {
|
|
150
173
|
// find standard browse name
|
|
151
|
-
const name = reverse_map((this.value||0).toString()) || "<undefined>";
|
|
174
|
+
const name = reverse_map((this.value || 0).toString()) || "<undefined>";
|
|
152
175
|
str += " " + name;
|
|
153
176
|
} else if (addressSpace.findNode) {
|
|
154
177
|
// let use the provided address space to figure out the browseNode of this node.
|
|
@@ -181,16 +204,16 @@ export class NodeId {
|
|
|
181
204
|
* returns true if the NodeId is null or empty
|
|
182
205
|
*/
|
|
183
206
|
public isEmpty(): boolean {
|
|
184
|
-
|
|
207
|
+
const _this = this as INodeId;
|
|
208
|
+
switch (_this.identifierType) {
|
|
185
209
|
case NodeIdType.NUMERIC:
|
|
186
|
-
return
|
|
210
|
+
return _this.value === 0;
|
|
187
211
|
case NodeIdType.STRING:
|
|
188
|
-
return !
|
|
212
|
+
return !_this.value;
|
|
189
213
|
case NodeIdType.GUID:
|
|
190
|
-
return !
|
|
214
|
+
return !_this.value || _this.value === emptyGuid;
|
|
191
215
|
default:
|
|
192
|
-
|
|
193
|
-
return !this.value || (this.value as Buffer).length === 0;
|
|
216
|
+
return !_this.value || (_this.value as Buffer).length === 0;
|
|
194
217
|
}
|
|
195
218
|
}
|
|
196
219
|
}
|
|
@@ -202,7 +225,7 @@ NodeId.nullNodeId = new Proxy(
|
|
|
202
225
|
return (target as any)[prop];
|
|
203
226
|
},
|
|
204
227
|
set: () => {
|
|
205
|
-
throw new Error("Cannot assign a value to
|
|
228
|
+
throw new Error("Cannot assign a value to constant NodeId.nullNodeId");
|
|
206
229
|
}
|
|
207
230
|
});
|
|
208
231
|
|
|
@@ -276,7 +299,7 @@ export function coerceNodeId(value: unknown, namespace?: number): NodeId {
|
|
|
276
299
|
} else if ((matches = regexNamespaceG.exec(value)) !== null) {
|
|
277
300
|
identifierType = NodeIdType.GUID;
|
|
278
301
|
namespace = parseInt(matches[1], 10);
|
|
279
|
-
value =normalizeGuid(matches[2]);
|
|
302
|
+
value = normalizeGuid(matches[2]);
|
|
280
303
|
} else {
|
|
281
304
|
throw new Error("String cannot be coerced to a nodeId : " + value);
|
|
282
305
|
}
|