node-opcua-alias-name-client 2.183.1 → 2.184.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/client_alias_set.d.ts +1 -0
- package/dist/client_alias_set.d.ts.map +1 -0
- package/dist/client_alias_set.js +26 -30
- package/dist/client_alias_set.js.map +1 -1
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +2 -7
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -16
- package/dist/index.js.map +1 -1
- package/dist/read_alias_reference_types.d.ts +1 -0
- package/dist/read_alias_reference_types.d.ts.map +1 -0
- package/dist/read_alias_reference_types.js +11 -14
- package/dist/read_alias_reference_types.js.map +1 -1
- package/dist/server_index_resolver.d.ts +1 -0
- package/dist/server_index_resolver.d.ts.map +1 -0
- package/dist/server_index_resolver.js +10 -14
- package/dist/server_index_resolver.js.map +1 -1
- package/package.json +15 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client_alias_set.d.ts","sourceRoot":"","sources":["../source/client_alias_set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAwC,MAAM,mBAAmB,CAAC;AAC3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,sEAAsE;AACtE,eAAO,MAAM,YAAY,EAAE,MAAyC,CAAC;AACrE,mCAAmC;AACnC,eAAO,MAAM,aAAa,EAAE,MAA8C,CAAC;AAC3E,6BAA6B;AAC7B,eAAO,MAAM,MAAM,EAAE,MAAwC,CAAC;AAE9D,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC7B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,eAAe,EAAE,cAAc,EAAE,CAAC;CACrC;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC7D;;;OAGG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC9B;;;OAGG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IACvB,SAAgB,OAAO,EAAE,mBAAmB,CAAC;IAC7C,+DAA+D;IAC/D,SAAgB,mBAAmB,EAAE,mBAAmB,CAAC;IAEzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAElE,YAAY,OAAO,EAAE,mBAAmB,EAGvC;IAED;;;;;;;;;;;OAWG;IACU,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0B/F;IAED;;;;;;;;OAQG;IACU,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA0B7G;IAED;;;;;OAKG;IACU,eAAe,CAAC,cAAc,GAAE,MAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpF;IAED;;;;OAIG;IACU,qBAAqB,CAAC,cAAc,GAAE,MAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F;IAED;;;;;;OAMG;IACU,mBAAmB,CAC5B,cAAc,GAAE,MAAqB,GACtC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAqBxD;IAED,yCAAyC;IAClC,UAAU,IAAI,IAAI,CAGxB;IAED;;;;;;;OAOG;YACW,cAAc;IAwB5B,6EAA6E;YAC/D,QAAQ;CA6BzB"}
|
package/dist/client_alias_set.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-client
|
|
4
3
|
*
|
|
@@ -10,21 +9,19 @@
|
|
|
10
9
|
* transport, and what lets a Server-side tool resolve its own aliases through
|
|
11
10
|
* the same API a Client uses.
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const errors_js_1 = require("./errors.js");
|
|
21
|
-
const server_index_resolver_js_1 = require("./server_index_resolver.js");
|
|
12
|
+
import { ObjectIds } from "node-opcua-constants";
|
|
13
|
+
import { BrowseDirection, NodeClass } from "node-opcua-data-model";
|
|
14
|
+
import { NodeId as NodeIdClass, resolveNodeId } from "node-opcua-nodeid";
|
|
15
|
+
import { makeBrowsePath } from "node-opcua-service-translate-browse-path";
|
|
16
|
+
import { DataType } from "node-opcua-variant";
|
|
17
|
+
import { AliasNameCallError, AliasNameMethodNotSupportedError } from "./errors.js";
|
|
18
|
+
import { ServerIndexResolver } from "./server_index_resolver.js";
|
|
22
19
|
/** `Aliases`, the root of the hierarchy (OPC 10000-17 clause 9.2). */
|
|
23
|
-
|
|
20
|
+
export const ALIASES_ROOT = resolveNodeId(ObjectIds.Aliases);
|
|
24
21
|
/** `TagVariables` (clause 9.3). */
|
|
25
|
-
|
|
22
|
+
export const TAG_VARIABLES = resolveNodeId(ObjectIds.TagVariables);
|
|
26
23
|
/** `Topics` (clause 9.4). */
|
|
27
|
-
|
|
24
|
+
export const TOPICS = resolveNodeId(ObjectIds.Topics);
|
|
28
25
|
/** Read a QualifiedName's parts defensively — a Server may send a bare string. */
|
|
29
26
|
function qualifiedName(value) {
|
|
30
27
|
return { name: value?.name ?? "", namespaceIndex: value?.namespaceIndex ?? 0 };
|
|
@@ -47,14 +44,14 @@ function qualifiedName(value) {
|
|
|
47
44
|
* does aggregate, {@link serverIndexResolver} turns the `ServerIndex` of a
|
|
48
45
|
* returned `ExpandedNodeId` into a URI.
|
|
49
46
|
*/
|
|
50
|
-
class ClientAliasSet {
|
|
47
|
+
export class ClientAliasSet {
|
|
51
48
|
session;
|
|
52
49
|
/** Resolves the `ServerIndex` of a returned Node (Annex A). */
|
|
53
50
|
serverIndexResolver;
|
|
54
51
|
methodCache = new Map();
|
|
55
52
|
constructor(session) {
|
|
56
53
|
this.session = session;
|
|
57
|
-
this.serverIndexResolver = new
|
|
54
|
+
this.serverIndexResolver = new ServerIndexResolver(session);
|
|
58
55
|
}
|
|
59
56
|
/**
|
|
60
57
|
* Resolve an AliasName, or a `Like` pattern, to the Nodes it names.
|
|
@@ -69,12 +66,12 @@ class ClientAliasSet {
|
|
|
69
66
|
* `Bad_UserAccessDenied` when the session may not read the category.
|
|
70
67
|
*/
|
|
71
68
|
async findAlias(pattern, options) {
|
|
72
|
-
const categoryNodeId = options?.categoryNodeId ??
|
|
69
|
+
const categoryNodeId = options?.categoryNodeId ?? ALIASES_ROOT;
|
|
73
70
|
const methods = await this.resolveMethods(categoryNodeId);
|
|
74
71
|
if (!methods.findAlias) {
|
|
75
72
|
// FindAlias is MANDATORY, so this means the Node is not an
|
|
76
73
|
// AliasNameCategoryType instance, or the Server is non-conformant
|
|
77
|
-
throw new
|
|
74
|
+
throw new AliasNameMethodNotSupportedError("FindAlias", categoryNodeId);
|
|
78
75
|
}
|
|
79
76
|
const extensionObjects = await this.callFind("FindAlias", categoryNodeId, methods.findAlias, pattern, options?.referenceTypeFilter);
|
|
80
77
|
return extensionObjects.map((raw) => {
|
|
@@ -97,10 +94,10 @@ class ClientAliasSet {
|
|
|
97
94
|
* to check first.
|
|
98
95
|
*/
|
|
99
96
|
async findAliasVerbose(pattern, options) {
|
|
100
|
-
const categoryNodeId = options?.categoryNodeId ??
|
|
97
|
+
const categoryNodeId = options?.categoryNodeId ?? ALIASES_ROOT;
|
|
101
98
|
const methods = await this.resolveMethods(categoryNodeId);
|
|
102
99
|
if (!methods.findAliasVerbose) {
|
|
103
|
-
throw new
|
|
100
|
+
throw new AliasNameMethodNotSupportedError("FindAliasVerbose", categoryNodeId);
|
|
104
101
|
}
|
|
105
102
|
const extensionObjects = await this.callFind("FindAliasVerbose", categoryNodeId, methods.findAliasVerbose, pattern, options?.referenceTypeFilter);
|
|
106
103
|
return extensionObjects.map((raw) => {
|
|
@@ -121,7 +118,7 @@ class ClientAliasSet {
|
|
|
121
118
|
* Cheaper than catching {@link AliasNameMethodNotSupportedError}, and reads
|
|
122
119
|
* better when the Client has a fallback path.
|
|
123
120
|
*/
|
|
124
|
-
async supportsVerbose(categoryNodeId =
|
|
121
|
+
async supportsVerbose(categoryNodeId = ALIASES_ROOT) {
|
|
125
122
|
return (await this.resolveMethods(categoryNodeId)).findAliasVerbose !== null;
|
|
126
123
|
}
|
|
127
124
|
/**
|
|
@@ -129,7 +126,7 @@ class ClientAliasSet {
|
|
|
129
126
|
* (clauses 6.3.4 and 6.3.5). They are optional and off by default in most
|
|
130
127
|
* Servers.
|
|
131
128
|
*/
|
|
132
|
-
async supportsConfiguration(categoryNodeId =
|
|
129
|
+
async supportsConfiguration(categoryNodeId = ALIASES_ROOT) {
|
|
133
130
|
const methods = await this.resolveMethods(categoryNodeId);
|
|
134
131
|
return methods.addAliasesToCategory !== null && methods.deleteAliasesFromCategory !== null;
|
|
135
132
|
}
|
|
@@ -140,13 +137,13 @@ class ClientAliasSet {
|
|
|
140
137
|
* searches recursively — but a Client that wants to show the hierarchy, or
|
|
141
138
|
* to search one branch, needs it.
|
|
142
139
|
*/
|
|
143
|
-
async browseSubCategories(categoryNodeId =
|
|
140
|
+
async browseSubCategories(categoryNodeId = ALIASES_ROOT) {
|
|
144
141
|
const result = await this.session.browse({
|
|
145
142
|
nodeId: categoryNodeId,
|
|
146
|
-
browseDirection:
|
|
147
|
-
referenceTypeId:
|
|
143
|
+
browseDirection: BrowseDirection.Forward,
|
|
144
|
+
referenceTypeId: resolveNodeId("Organizes"),
|
|
148
145
|
includeSubtypes: true,
|
|
149
|
-
nodeClassMask:
|
|
146
|
+
nodeClassMask: NodeClass.Object,
|
|
150
147
|
resultMask: 0x3f
|
|
151
148
|
});
|
|
152
149
|
const references = result.references ?? [];
|
|
@@ -182,7 +179,7 @@ class ClientAliasSet {
|
|
|
182
179
|
return cached;
|
|
183
180
|
}
|
|
184
181
|
const names = ["FindAlias", "FindAliasVerbose", "AddAliasesToCategory", "DeleteAliasesFromCategory"];
|
|
185
|
-
const results = await this.session.translateBrowsePath(names.map((name) =>
|
|
182
|
+
const results = await this.session.translateBrowsePath(names.map((name) => makeBrowsePath(categoryNodeId, `/${name}`)));
|
|
186
183
|
const pick = (index) => {
|
|
187
184
|
const result = results[index];
|
|
188
185
|
return result?.statusCode.isGood() && result.targets?.length ? result.targets[0].targetId : null;
|
|
@@ -202,13 +199,13 @@ class ClientAliasSet {
|
|
|
202
199
|
objectId: categoryNodeId,
|
|
203
200
|
methodId,
|
|
204
201
|
inputArguments: [
|
|
205
|
-
{ dataType:
|
|
202
|
+
{ dataType: DataType.String, value: pattern },
|
|
206
203
|
// an omitted filter is the null NodeId, not a null value
|
|
207
|
-
{ dataType:
|
|
204
|
+
{ dataType: DataType.NodeId, value: referenceTypeFilter ?? NodeIdClass.nullNodeId }
|
|
208
205
|
]
|
|
209
206
|
});
|
|
210
207
|
if (!result.statusCode.isGood()) {
|
|
211
|
-
throw new
|
|
208
|
+
throw new AliasNameCallError(methodName, categoryNodeId, result.statusCode);
|
|
212
209
|
}
|
|
213
210
|
const output = result.outputArguments?.[0];
|
|
214
211
|
const value = output?.value;
|
|
@@ -219,5 +216,4 @@ class ClientAliasSet {
|
|
|
219
216
|
return Array.isArray(value) ? value : [value];
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
|
-
exports.ClientAliasSet = ClientAliasSet;
|
|
223
219
|
//# sourceMappingURL=client_alias_set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alias_set.js","sourceRoot":"","sources":["../source/client_alias_set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client_alias_set.js","sourceRoot":"","sources":["../source/client_alias_set.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../source/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IACvD,iDAAiD;IACjD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC,YAAY,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAQrD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC,YAAY,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAK7E;CACJ"}
|
package/dist/errors.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-client
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AliasNameCallError = exports.AliasNameMethodNotSupportedError = void 0;
|
|
7
4
|
/**
|
|
8
5
|
* The Server does not expose the Method that was asked for.
|
|
9
6
|
*
|
|
@@ -18,7 +15,7 @@ exports.AliasNameCallError = exports.AliasNameMethodNotSupportedError = void 0;
|
|
|
18
15
|
* resolving NodeIds — so it never surfaces as an unhandled `Bad_NotImplemented`
|
|
19
16
|
* from the wire.
|
|
20
17
|
*/
|
|
21
|
-
class AliasNameMethodNotSupportedError extends Error {
|
|
18
|
+
export class AliasNameMethodNotSupportedError extends Error {
|
|
22
19
|
/** The Method that is missing, by BrowseName. */
|
|
23
20
|
methodName;
|
|
24
21
|
/** The category it was looked for on. */
|
|
@@ -31,7 +28,6 @@ class AliasNameMethodNotSupportedError extends Error {
|
|
|
31
28
|
this.categoryNodeId = categoryNodeId;
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
|
-
exports.AliasNameMethodNotSupportedError = AliasNameMethodNotSupportedError;
|
|
35
31
|
/**
|
|
36
32
|
* The Server answered a `FindAlias` call with a bad StatusCode.
|
|
37
33
|
*
|
|
@@ -40,7 +36,7 @@ exports.AliasNameMethodNotSupportedError = AliasNameMethodNotSupportedError;
|
|
|
40
36
|
* `Bad_ResponseTooLarge` for a result set that needs a narrower filter,
|
|
41
37
|
* `Bad_UserAccessDenied` for a category the session may not read.
|
|
42
38
|
*/
|
|
43
|
-
class AliasNameCallError extends Error {
|
|
39
|
+
export class AliasNameCallError extends Error {
|
|
44
40
|
statusCode;
|
|
45
41
|
categoryNodeId;
|
|
46
42
|
constructor(methodName, categoryNodeId, statusCode) {
|
|
@@ -50,5 +46,4 @@ class AliasNameCallError extends Error {
|
|
|
50
46
|
this.categoryNodeId = categoryNodeId;
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
|
-
exports.AliasNameCallError = AliasNameCallError;
|
|
54
49
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../source/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../source/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IACvD,iDAAiD;IACjC,UAAU,CAAS;IACnC,yCAAyC;IACzB,cAAc,CAAS;IAEvC,YAAY,UAAkB,EAAE,cAAsB;QAClD,KAAK,CACD,8BAA8B,UAAU,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI;YACxE,gFAAgF,CACvF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACzB,UAAU,CAAa;IACvB,cAAc,CAAS;IAEvC,YAAY,UAAkB,EAAE,cAAsB,EAAE,UAAsB;QAC1E,KAAK,CAAC,GAAG,UAAU,OAAO,cAAc,CAAC,QAAQ,EAAE,gBAAgB,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;CACJ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,3 +13,4 @@ export { ALIASES_ROOT, type ClientAliasEntry, ClientAliasSet, type ClientAliasVe
|
|
|
13
13
|
export { AliasNameCallError, AliasNameMethodNotSupportedError } from "./errors.js";
|
|
14
14
|
export { type AliasReferenceTypeEntry, type ReadAliasReferenceTypesOptions, readAliasReferenceTypes } from "./read_alias_reference_types.js";
|
|
15
15
|
export { LOCAL_SERVER_INDEX, ServerIndexResolver } from "./server_index_resolver.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACH,YAAY,EACZ,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,aAAa,EACb,MAAM,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,uBAAuB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-client
|
|
4
3
|
*
|
|
@@ -10,19 +9,8 @@
|
|
|
10
9
|
* covers the one cross-Server step a Client still has to make, turning the
|
|
11
10
|
* `ServerIndex` of a returned `ExpandedNodeId` into a URI (Annex A).
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Object.defineProperty(exports, "ClientAliasSet", { enumerable: true, get: function () { return client_alias_set_js_1.ClientAliasSet; } });
|
|
18
|
-
Object.defineProperty(exports, "TAG_VARIABLES", { enumerable: true, get: function () { return client_alias_set_js_1.TAG_VARIABLES; } });
|
|
19
|
-
Object.defineProperty(exports, "TOPICS", { enumerable: true, get: function () { return client_alias_set_js_1.TOPICS; } });
|
|
20
|
-
var errors_js_1 = require("./errors.js");
|
|
21
|
-
Object.defineProperty(exports, "AliasNameCallError", { enumerable: true, get: function () { return errors_js_1.AliasNameCallError; } });
|
|
22
|
-
Object.defineProperty(exports, "AliasNameMethodNotSupportedError", { enumerable: true, get: function () { return errors_js_1.AliasNameMethodNotSupportedError; } });
|
|
23
|
-
var read_alias_reference_types_js_1 = require("./read_alias_reference_types.js");
|
|
24
|
-
Object.defineProperty(exports, "readAliasReferenceTypes", { enumerable: true, get: function () { return read_alias_reference_types_js_1.readAliasReferenceTypes; } });
|
|
25
|
-
var server_index_resolver_js_1 = require("./server_index_resolver.js");
|
|
26
|
-
Object.defineProperty(exports, "LOCAL_SERVER_INDEX", { enumerable: true, get: function () { return server_index_resolver_js_1.LOCAL_SERVER_INDEX; } });
|
|
27
|
-
Object.defineProperty(exports, "ServerIndexResolver", { enumerable: true, get: function () { return server_index_resolver_js_1.ServerIndexResolver; } });
|
|
12
|
+
export { ALIASES_ROOT, ClientAliasSet, TAG_VARIABLES, TOPICS } from "./client_alias_set.js";
|
|
13
|
+
export { AliasNameCallError, AliasNameMethodNotSupportedError } from "./errors.js";
|
|
14
|
+
export { readAliasReferenceTypes } from "./read_alias_reference_types.js";
|
|
15
|
+
export { LOCAL_SERVER_INDEX, ServerIndexResolver } from "./server_index_resolver.js";
|
|
28
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACH,YAAY,EAEZ,cAAc,EAGd,aAAa,EACb,MAAM,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAGH,uBAAuB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -78,3 +78,4 @@ export interface ReadAliasReferenceTypesOptions {
|
|
|
78
78
|
*/
|
|
79
79
|
export declare function readAliasReferenceTypes(session: IBasicSessionAsync2, aliases: NodeId[], options?: ReadAliasReferenceTypesOptions): Promise<Map<NodeId, AliasReferenceTypeEntry[]>>;
|
|
80
80
|
export declare function readAliasReferenceTypes(session: IBasicSessionAsync2, aliases: ClientAliasVerboseEntry[], options?: ReadAliasReferenceTypesOptions): Promise<Map<ClientAliasVerboseEntry, AliasReferenceTypeEntry[]>>;
|
|
81
|
+
//# sourceMappingURL=read_alias_reference_types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read_alias_reference_types.d.ts","sourceRoot":"","sources":["../source/read_alias_reference_types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAwC,MAAM,mBAAmB,CAAC;AAC3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAQrE,uFAAuF;AACvF,MAAM,WAAW,uBAAuB;IACpC,2EAA2E;IAC3E,YAAY,EAAE,cAAc,CAAC;IAC7B,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC3C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACzC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;AACnD,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,uBAAuB,EAAE,EAClC,OAAO,CAAC,EAAE,8BAA8B,GACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-client
|
|
4
3
|
*
|
|
@@ -19,24 +18,22 @@
|
|
|
19
18
|
* back to the address space: the `AliasNameType` instances are Nodes, and
|
|
20
19
|
* Browse reports the ReferenceType of every Reference they hold.
|
|
21
20
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
27
|
-
const node_opcua_service_translate_browse_path_1 = require("node-opcua-service-translate-browse-path");
|
|
21
|
+
import { ReferenceTypeIds } from "node-opcua-constants";
|
|
22
|
+
import { BrowseDirection, makeResultMask } from "node-opcua-data-model";
|
|
23
|
+
import { NodeId as NodeIdClass, resolveNodeId } from "node-opcua-nodeid";
|
|
24
|
+
import { BrowsePath } from "node-opcua-service-translate-browse-path";
|
|
28
25
|
/** `AliasFor` (i=23469), the base ReferenceType of every alias link (clause 8.2). */
|
|
29
|
-
const ALIAS_FOR =
|
|
30
|
-
const HIERARCHICAL_REFERENCES =
|
|
31
|
-
const REFERENCE_TYPE_RESULT_MASK =
|
|
26
|
+
const ALIAS_FOR = resolveNodeId(ReferenceTypeIds.AliasFor);
|
|
27
|
+
const HIERARCHICAL_REFERENCES = resolveNodeId(ReferenceTypeIds.HierarchicalReferences);
|
|
28
|
+
const REFERENCE_TYPE_RESULT_MASK = makeResultMask("ReferenceType");
|
|
32
29
|
const DEFAULT_MAX_NODES_PER_CALL = 1000;
|
|
33
|
-
async function readAliasReferenceTypes(session, aliases, options) {
|
|
30
|
+
export async function readAliasReferenceTypes(session, aliases, options) {
|
|
34
31
|
const maxNodesPerCall = Math.max(1, options?.maxNodesPerCall ?? DEFAULT_MAX_NODES_PER_CALL);
|
|
35
32
|
const result = new Map();
|
|
36
33
|
if (aliases.length === 0) {
|
|
37
34
|
return result;
|
|
38
35
|
}
|
|
39
|
-
const aliasNodeIds = aliases[0] instanceof
|
|
36
|
+
const aliasNodeIds = aliases[0] instanceof NodeIdClass
|
|
40
37
|
? aliases
|
|
41
38
|
: await resolveAliasNodeIds(session, aliases, maxNodesPerCall);
|
|
42
39
|
const targets = await browseAliasTargets(session, aliasNodeIds, maxNodesPerCall);
|
|
@@ -66,7 +63,7 @@ async function resolveAliasNodeIds(session, entries, maxNodesPerCall) {
|
|
|
66
63
|
const aliasNodeIds = new Array(entries.length).fill(null);
|
|
67
64
|
for (let offset = 0; offset < entries.length; offset += maxNodesPerCall) {
|
|
68
65
|
const chunk = entries.slice(offset, offset + maxNodesPerCall);
|
|
69
|
-
const results = await session.translateBrowsePath(chunk.map((entry) => new
|
|
66
|
+
const results = await session.translateBrowsePath(chunk.map((entry) => new BrowsePath({
|
|
70
67
|
startingNode: entry.aliasNameCategoryId,
|
|
71
68
|
relativePath: {
|
|
72
69
|
elements: [
|
|
@@ -113,7 +110,7 @@ async function browseAliasTargets(session, aliasNodeIds, maxNodesPerCall) {
|
|
|
113
110
|
const chunk = toBrowse.slice(offset, offset + maxNodesPerCall);
|
|
114
111
|
const browseResults = await session.browse(chunk.map(({ nodeId }) => ({
|
|
115
112
|
nodeId,
|
|
116
|
-
browseDirection:
|
|
113
|
+
browseDirection: BrowseDirection.Forward,
|
|
117
114
|
referenceTypeId: ALIAS_FOR,
|
|
118
115
|
includeSubtypes: true,
|
|
119
116
|
nodeClassMask: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_alias_reference_types.js","sourceRoot":"","sources":["../source/read_alias_reference_types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read_alias_reference_types.js","sourceRoot":"","sources":["../source/read_alias_reference_types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server_index_resolver.d.ts","sourceRoot":"","sources":["../source/server_index_resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,WAAW,CAAC,CAAW;IAE/B,YAAY,OAAO,EAAE,kBAAkB,EAEtC;IAED,wDAAwD;IAC3C,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAW/C;IAED,uCAAuC;IAChC,UAAU,IAAI,IAAI,CAExB;IAED;;;;;;OAMG;IACU,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG3E;IAED,6EAA6E;IACtE,OAAO,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAEtD;IAED;;;;;;;OAOG;IACU,MAAM,CACf,cAAc,EAAE,cAAc,GAC/B,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAM5E;CACJ"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-client
|
|
4
3
|
*
|
|
5
4
|
* Turning the `ServerIndex` of a returned `ExpandedNodeId` into something a
|
|
6
5
|
* Client can act on.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
12
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
7
|
+
import { VariableIds } from "node-opcua-constants";
|
|
8
|
+
import { AttributeIds } from "node-opcua-data-model";
|
|
9
|
+
import { resolveNodeId } from "node-opcua-nodeid";
|
|
13
10
|
/** The Server's own entry in the ServerArray is always index 0 (OPC 10000-5). */
|
|
14
|
-
|
|
11
|
+
export const LOCAL_SERVER_INDEX = 0;
|
|
15
12
|
/**
|
|
16
13
|
* Resolves `ServerIndex` values against a Server's `ServerArray`, caching it.
|
|
17
14
|
*
|
|
@@ -24,7 +21,7 @@ exports.LOCAL_SERVER_INDEX = 0;
|
|
|
24
21
|
* The `ServerArray` is read once and cached. It is not expected to change during
|
|
25
22
|
* a session; call {@link invalidate} if the Client has reason to believe it has.
|
|
26
23
|
*/
|
|
27
|
-
class ServerIndexResolver {
|
|
24
|
+
export class ServerIndexResolver {
|
|
28
25
|
session;
|
|
29
26
|
serverArray;
|
|
30
27
|
constructor(session) {
|
|
@@ -36,8 +33,8 @@ class ServerIndexResolver {
|
|
|
36
33
|
return this.serverArray;
|
|
37
34
|
}
|
|
38
35
|
const dataValue = await this.session.read({
|
|
39
|
-
nodeId:
|
|
40
|
-
attributeId:
|
|
36
|
+
nodeId: resolveNodeId(VariableIds.Server_ServerArray),
|
|
37
|
+
attributeId: AttributeIds.Value
|
|
41
38
|
});
|
|
42
39
|
const value = dataValue.value?.value;
|
|
43
40
|
this.serverArray = Array.isArray(value) ? value : [];
|
|
@@ -60,7 +57,7 @@ class ServerIndexResolver {
|
|
|
60
57
|
}
|
|
61
58
|
/** True when the ExpandedNodeId names a Node on the Server that answered. */
|
|
62
59
|
isLocal(expandedNodeId) {
|
|
63
|
-
return (expandedNodeId.serverIndex ??
|
|
60
|
+
return (expandedNodeId.serverIndex ?? LOCAL_SERVER_INDEX) === LOCAL_SERVER_INDEX;
|
|
64
61
|
}
|
|
65
62
|
/**
|
|
66
63
|
* Describe where a returned Node lives.
|
|
@@ -71,12 +68,11 @@ class ServerIndexResolver {
|
|
|
71
68
|
* does aggregate.
|
|
72
69
|
*/
|
|
73
70
|
async locate(expandedNodeId) {
|
|
74
|
-
const serverIndex = expandedNodeId.serverIndex ??
|
|
75
|
-
if (serverIndex ===
|
|
71
|
+
const serverIndex = expandedNodeId.serverIndex ?? LOCAL_SERVER_INDEX;
|
|
72
|
+
if (serverIndex === LOCAL_SERVER_INDEX) {
|
|
76
73
|
return { local: true, serverIndex, serverUri: null };
|
|
77
74
|
}
|
|
78
75
|
return { local: false, serverIndex, serverUri: await this.resolveServerIndex(serverIndex) };
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
|
-
exports.ServerIndexResolver = ServerIndexResolver;
|
|
82
78
|
//# sourceMappingURL=server_index_resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_index_resolver.js","sourceRoot":"","sources":["../source/server_index_resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server_index_resolver.js","sourceRoot":"","sources":["../source/server_index_resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAuB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvE,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IACX,OAAO,CAAqB;IACrC,WAAW,CAAY;IAE/B,YAAY,OAA2B;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,wDAAwD;IACjD,KAAK,CAAC,cAAc;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACtC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC;YACrD,WAAW,EAAE,YAAY,CAAC,KAAK;SAClC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,uCAAuC;IAChC,UAAU;QACb,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,6EAA6E;IACtE,OAAO,CAAC,cAA8B;QACzC,OAAO,CAAC,cAAc,CAAC,WAAW,IAAI,kBAAkB,CAAC,KAAK,kBAAkB,CAAC;IACrF,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,MAAM,CACf,cAA8B;QAE9B,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,IAAI,kBAAkB,CAAC;QACrE,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACrC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IAChG,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-alias-name-client",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "2.184.0",
|
|
4
5
|
"description": "pure nodejs OPCUA SDK - client-side alias names (OPC 10000-17)",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc -b",
|
|
@@ -20,20 +21,20 @@
|
|
|
20
21
|
"node": ">=22.13.0"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"node-opcua-constants": "2.
|
|
24
|
-
"node-opcua-data-model": "2.
|
|
25
|
-
"node-opcua-nodeid": "2.
|
|
26
|
-
"node-opcua-pseudo-session": "2.
|
|
27
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
28
|
-
"node-opcua-status-code": "2.
|
|
29
|
-
"node-opcua-types": "2.
|
|
30
|
-
"node-opcua-variant": "2.
|
|
24
|
+
"node-opcua-constants": "2.184.0",
|
|
25
|
+
"node-opcua-data-model": "2.184.0",
|
|
26
|
+
"node-opcua-nodeid": "2.184.0",
|
|
27
|
+
"node-opcua-pseudo-session": "2.184.0",
|
|
28
|
+
"node-opcua-service-translate-browse-path": "2.184.0",
|
|
29
|
+
"node-opcua-status-code": "2.184.0",
|
|
30
|
+
"node-opcua-types": "2.184.0",
|
|
31
|
+
"node-opcua-variant": "2.184.0"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
|
-
"node-opcua-address-space": "2.
|
|
34
|
-
"node-opcua-alias-name-server": "2.
|
|
35
|
-
"node-opcua-leak-detector": "2.
|
|
36
|
-
"node-opcua-nodesets": "2.
|
|
34
|
+
"node-opcua-address-space": "2.184.0",
|
|
35
|
+
"node-opcua-alias-name-server": "2.184.0",
|
|
36
|
+
"node-opcua-leak-detector": "2.184.0",
|
|
37
|
+
"node-opcua-nodesets": "2.184.0"
|
|
37
38
|
},
|
|
38
39
|
"author": "Etienne Rossignon",
|
|
39
40
|
"license": "MIT",
|
|
@@ -54,5 +55,5 @@
|
|
|
54
55
|
"dist",
|
|
55
56
|
"source"
|
|
56
57
|
],
|
|
57
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "441a5c63e3a4202eb8de8597acac77a3a49248b7"
|
|
58
59
|
}
|