node-opcua-alias-name-server 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/add_alias.d.ts +1 -0
- package/dist/add_alias.d.ts.map +1 -0
- package/dist/add_alias.js +33 -40
- package/dist/add_alias.js.map +1 -1
- package/dist/address_space_alias_store.d.ts +1 -0
- package/dist/address_space_alias_store.d.ts.map +1 -0
- package/dist/address_space_alias_store.js +47 -51
- package/dist/address_space_alias_store.js.map +1 -1
- package/dist/alias_hierarchy.d.ts +1 -0
- package/dist/alias_hierarchy.d.ts.map +1 -0
- package/dist/alias_hierarchy.js +17 -27
- package/dist/alias_hierarchy.js.map +1 -1
- package/dist/alias_index.d.ts +1 -0
- package/dist/alias_index.d.ts.map +1 -0
- package/dist/alias_index.js +10 -16
- package/dist/alias_index.js.map +1 -1
- package/dist/alias_name_archive.d.ts +1 -0
- package/dist/alias_name_archive.d.ts.map +1 -0
- package/dist/alias_name_archive.js +11 -16
- package/dist/alias_name_archive.js.map +1 -1
- package/dist/bind_alias_category.d.ts +1 -0
- package/dist/bind_alias_category.d.ts.map +1 -0
- package/dist/bind_alias_category.js +44 -55
- package/dist/bind_alias_category.js.map +1 -1
- package/dist/bind_configuration_methods.d.ts +1 -0
- package/dist/bind_configuration_methods.d.ts.map +1 -0
- package/dist/bind_configuration_methods.js +23 -27
- package/dist/bind_configuration_methods.js.map +1 -1
- package/dist/bind_find_alias.d.ts +1 -0
- package/dist/bind_find_alias.d.ts.map +1 -0
- package/dist/bind_find_alias.js +26 -31
- package/dist/bind_find_alias.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -54
- package/dist/index.js.map +1 -1
- package/dist/install_alias_names.d.ts +1 -0
- package/dist/install_alias_names.d.ts.map +1 -0
- package/dist/install_alias_names.js +21 -28
- package/dist/install_alias_names.js.map +1 -1
- package/dist/last_change.d.ts +1 -0
- package/dist/last_change.d.ts.map +1 -0
- package/dist/last_change.js +20 -24
- package/dist/last_change.js.map +1 -1
- package/dist/well_known.d.ts +1 -0
- package/dist/well_known.d.ts.map +1 -0
- package/dist/well_known.js +32 -35
- package/dist/well_known.js.map +1 -1
- package/package.json +15 -14
- package/source/bind_find_alias.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind_configuration_methods.d.ts","sourceRoot":"","sources":["../source/bind_configuration_methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAY,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAuB,KAAK,MAAM,EAAyB,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAY,KAAK,OAAO,EAAoB,MAAM,oBAAoB,CAAC;AAG9E,MAAM,WAAW,2BAA2B;IACxC,6EAA6E;IAC7E,KAAK,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClG,mEAAmE;IACnE,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAwCD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,2BAA2B,UAEtE,QAAQ,kBACE,OAAO,EAAE,WAChB,eAAe,KACzB,OAAO,CAAC,uBAAuB,CAAC,CA8DtC;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,2BAA2B,UAE3E,QAAQ,kBACE,OAAO,EAAE,WAChB,eAAe,KACzB,OAAO,CAAC,uBAAuB,CAAC,CA4CtC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-server
|
|
4
3
|
*
|
|
@@ -10,13 +9,10 @@
|
|
|
10
9
|
* does not fail the call, which is why the store interface returns
|
|
11
10
|
* `StatusCode[]` rather than throwing.
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
18
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
19
|
-
const well_known_js_1 = require("./well_known.js");
|
|
12
|
+
import { NodeId as NodeIdClass } from "node-opcua-nodeid";
|
|
13
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
14
|
+
import { DataType, VariantArrayType } from "node-opcua-variant";
|
|
15
|
+
import { ALIAS_FOR } from "./well_known.js";
|
|
20
16
|
/** Read a String[] argument, tolerating null for "empty". */
|
|
21
17
|
function readStringArray(inputArguments, index) {
|
|
22
18
|
const value = inputArguments?.[index]?.value;
|
|
@@ -42,11 +38,11 @@ function readNodeIdArray(inputArguments, index) {
|
|
|
42
38
|
/** Build the OutputArguments Variant for an ErrorCodes array. */
|
|
43
39
|
function errorCodesResult(codes) {
|
|
44
40
|
return {
|
|
45
|
-
statusCode:
|
|
41
|
+
statusCode: StatusCodes.Good,
|
|
46
42
|
outputArguments: [
|
|
47
43
|
{
|
|
48
|
-
dataType:
|
|
49
|
-
arrayType:
|
|
44
|
+
dataType: DataType.StatusCode,
|
|
45
|
+
arrayType: VariantArrayType.Array,
|
|
50
46
|
value: codes
|
|
51
47
|
}
|
|
52
48
|
]
|
|
@@ -59,38 +55,38 @@ function errorCodesResult(codes) {
|
|
|
59
55
|
* wrong type, when the arrays other than `TargetServers` differ in length, or
|
|
60
56
|
* when all arrays are empty. Table 10 governs each *item*.
|
|
61
57
|
*/
|
|
62
|
-
function makeAddAliasesToCategoryHandler(options) {
|
|
58
|
+
export function makeAddAliasesToCategoryHandler(options) {
|
|
63
59
|
return async function addAliasesToCategoryHandler(inputArguments, context) {
|
|
64
60
|
const category = this.parent;
|
|
65
61
|
if (!category) {
|
|
66
|
-
return { statusCode:
|
|
62
|
+
return { statusCode: StatusCodes.BadInternalError };
|
|
67
63
|
}
|
|
68
64
|
// clause 6.3.4 Table 11
|
|
69
65
|
if (!(await isWriteAllowed(options, context, category.nodeId))) {
|
|
70
|
-
return { statusCode:
|
|
66
|
+
return { statusCode: StatusCodes.BadUserAccessDenied };
|
|
71
67
|
}
|
|
72
68
|
const aliasNames = readStringArray(inputArguments, 0);
|
|
73
69
|
const targetNodes = readNodeIdArray(inputArguments, 1);
|
|
74
70
|
const targetServers = readStringArray(inputArguments, 2);
|
|
75
71
|
const targetReferenceTypeRaw = inputArguments?.[3]?.value;
|
|
76
72
|
if (aliasNames === null || targetNodes === null || targetServers === null) {
|
|
77
|
-
return { statusCode:
|
|
73
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
78
74
|
}
|
|
79
75
|
// "the size of the arrays for all arguments except TargetServers is not
|
|
80
76
|
// the same" - TargetServers is excluded because Table 9 lets it be null
|
|
81
77
|
// or empty to mean "all local"
|
|
82
78
|
if (aliasNames.length !== targetNodes.length) {
|
|
83
|
-
return { statusCode:
|
|
79
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
84
80
|
}
|
|
85
81
|
// "or if all arrays are empty"
|
|
86
82
|
if (aliasNames.length === 0) {
|
|
87
|
-
return { statusCode:
|
|
83
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
88
84
|
}
|
|
89
85
|
if (targetServers.length !== 0 && targetServers.length !== aliasNames.length) {
|
|
90
|
-
return { statusCode:
|
|
86
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
91
87
|
}
|
|
92
88
|
// Table 9: "If null, it defaults to AliasFor."
|
|
93
|
-
const referenceTypeId = targetReferenceTypeRaw instanceof
|
|
89
|
+
const referenceTypeId = targetReferenceTypeRaw instanceof NodeIdClass && !targetReferenceTypeRaw.isEmpty() ? targetReferenceTypeRaw : ALIAS_FOR;
|
|
94
90
|
const entries = aliasNames.map((aliasName, i) => {
|
|
95
91
|
// Table 9: "The ServerIndex in the ExpandedNodeId shall be ignored
|
|
96
92
|
// and the TargetServers Uri shall be used."
|
|
@@ -106,7 +102,7 @@ function makeAddAliasesToCategoryHandler(options) {
|
|
|
106
102
|
if (!options.store.add) {
|
|
107
103
|
// a read-only store: every item is unsupported, but the call itself
|
|
108
104
|
// succeeded in reporting that
|
|
109
|
-
return errorCodesResult(entries.map(() =>
|
|
105
|
+
return errorCodesResult(entries.map(() => StatusCodes.BadNotSupported));
|
|
110
106
|
}
|
|
111
107
|
const codes = await options.store.add(category.nodeId, entries);
|
|
112
108
|
if (codes.some((code) => code.isGood())) {
|
|
@@ -122,28 +118,28 @@ function makeAddAliasesToCategoryHandler(options) {
|
|
|
122
118
|
* length — "the size of the arrays for all arguments is not the same", with no
|
|
123
119
|
* exception, because there is no `TargetServers` here.
|
|
124
120
|
*/
|
|
125
|
-
function makeDeleteAliasesFromCategoryHandler(options) {
|
|
121
|
+
export function makeDeleteAliasesFromCategoryHandler(options) {
|
|
126
122
|
return async function deleteAliasesFromCategoryHandler(inputArguments, context) {
|
|
127
123
|
const category = this.parent;
|
|
128
124
|
if (!category) {
|
|
129
|
-
return { statusCode:
|
|
125
|
+
return { statusCode: StatusCodes.BadInternalError };
|
|
130
126
|
}
|
|
131
127
|
if (!(await isWriteAllowed(options, context, category.nodeId))) {
|
|
132
|
-
return { statusCode:
|
|
128
|
+
return { statusCode: StatusCodes.BadUserAccessDenied };
|
|
133
129
|
}
|
|
134
130
|
const aliasNames = readStringArray(inputArguments, 0);
|
|
135
131
|
const targetNodes = readNodeIdArray(inputArguments, 1);
|
|
136
132
|
if (aliasNames === null || targetNodes === null) {
|
|
137
|
-
return { statusCode:
|
|
133
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
138
134
|
}
|
|
139
135
|
if (aliasNames.length === 0) {
|
|
140
|
-
return { statusCode:
|
|
136
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
141
137
|
}
|
|
142
138
|
// Table 13: "The length of each of the arrays shall be the same." A null
|
|
143
139
|
// TargetNodes array is the documented way to say "every target", so an
|
|
144
140
|
// empty array is accepted and expanded.
|
|
145
141
|
if (targetNodes.length !== 0 && targetNodes.length !== aliasNames.length) {
|
|
146
|
-
return { statusCode:
|
|
142
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
147
143
|
}
|
|
148
144
|
const entries = aliasNames.map((aliasName, i) => {
|
|
149
145
|
// "If the TargetNodes array entry is null or empty, all AliasNames
|
|
@@ -153,7 +149,7 @@ function makeDeleteAliasesFromCategoryHandler(options) {
|
|
|
153
149
|
return { aliasName, referencedNodes };
|
|
154
150
|
});
|
|
155
151
|
if (!options.store.delete) {
|
|
156
|
-
return errorCodesResult(entries.map(() =>
|
|
152
|
+
return errorCodesResult(entries.map(() => StatusCodes.BadNotSupported));
|
|
157
153
|
}
|
|
158
154
|
const codes = await options.store.delete(category.nodeId, entries);
|
|
159
155
|
if (codes.some((code) => code.isGood())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind_configuration_methods.js","sourceRoot":"","sources":["../source/bind_configuration_methods.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bind_configuration_methods.js","sourceRoot":"","sources":["../source/bind_configuration_methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,3 +59,4 @@ export interface FindAliasBindingOptions {
|
|
|
59
59
|
* `<SubAliasNameCategories>` placeholder.
|
|
60
60
|
*/
|
|
61
61
|
export declare function makeFindAliasHandler(options: FindAliasBindingOptions, verbose: boolean): (this: UAMethod, inputArguments: Variant[], context: ISessionContext) => Promise<CallMethodResultOptions>;
|
|
62
|
+
//# sourceMappingURL=bind_find_alias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind_find_alias.d.ts","sourceRoot":"","sources":["../source/bind_find_alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAY,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,KAAK,UAAU,EAAmB,KAAK,WAAW,EAA2B,MAAM,8BAA8B,CAAC;AAC3H,OAAO,EAAE,KAAK,MAAM,EAAqC,MAAM,mBAAmB,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAY,KAAK,OAAO,EAAoB,MAAM,oBAAoB,CAAC;AAG9E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC;AAEvE,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,EAAE,eAAyB,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACpC,mCAAmC;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpG;AAmHD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,UAIzE,QAAQ,kBACE,OAAO,EAAE,WAChB,eAAe,KACzB,OAAO,CAAC,uBAAuB,CAAC,CA4ItC"}
|
package/dist/bind_find_alias.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-server
|
|
4
3
|
*
|
|
@@ -9,18 +8,14 @@
|
|
|
9
8
|
* return, so both are produced from one implementation: whatever the FindAlias
|
|
10
9
|
* suite proves is proved for FindAliasVerbose too.
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const node_opcua_types_1 = require("node-opcua-types");
|
|
19
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
20
|
-
const well_known_js_1 = require("./well_known.js");
|
|
11
|
+
import { InvalidLikePatternError } from "node-opcua-alias-name-common";
|
|
12
|
+
import { NodeId as NodeIdClass, sameNodeId } from "node-opcua-nodeid";
|
|
13
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
14
|
+
import { AliasNameDataType, AliasNameVerboseDataType } from "node-opcua-types";
|
|
15
|
+
import { DataType, VariantArrayType } from "node-opcua-variant";
|
|
16
|
+
import { ALIAS_FOR } from "./well_known.js";
|
|
21
17
|
/** The default: keep discovery order (a stable no-op comparator). */
|
|
22
|
-
const insertionOrderComparator = () => 0;
|
|
23
|
-
exports.insertionOrderComparator = insertionOrderComparator;
|
|
18
|
+
export const insertionOrderComparator = () => 0;
|
|
24
19
|
/** Read `AliasNameSearchPattern` (argument 0). */
|
|
25
20
|
function readPattern(inputArguments) {
|
|
26
21
|
const value = inputArguments?.[0]?.value;
|
|
@@ -34,7 +29,7 @@ function readPattern(inputArguments) {
|
|
|
34
29
|
/** Read `ReferenceTypeFilter` (argument 1). */
|
|
35
30
|
function readReferenceTypeFilter(inputArguments) {
|
|
36
31
|
const value = inputArguments?.[1]?.value;
|
|
37
|
-
return value instanceof
|
|
32
|
+
return value instanceof NodeIdClass ? value : undefined;
|
|
38
33
|
}
|
|
39
34
|
/**
|
|
40
35
|
* `ReferenceTypeFilter` (clause 6.3.2 Table 3) must be `AliasFor` or a subtype
|
|
@@ -48,17 +43,17 @@ function isValidReferenceTypeFilter(category, filter) {
|
|
|
48
43
|
return true;
|
|
49
44
|
}
|
|
50
45
|
const addressSpace = category.addressSpace;
|
|
51
|
-
const aliasFor = addressSpace.findReferenceType(
|
|
46
|
+
const aliasFor = addressSpace.findReferenceType(ALIAS_FOR);
|
|
52
47
|
const candidate = addressSpace.findReferenceType(filter);
|
|
53
48
|
if (!candidate) {
|
|
54
49
|
// an unknown ReferenceType can never be AliasFor or a subtype of it
|
|
55
50
|
return false;
|
|
56
51
|
}
|
|
57
52
|
if (!aliasFor) {
|
|
58
|
-
|
|
53
|
+
/* c8 ignore next: AliasFor is a standard ReferenceType, always present */
|
|
59
54
|
return true;
|
|
60
55
|
}
|
|
61
|
-
return
|
|
56
|
+
return sameNodeId(candidate.nodeId, aliasFor.nodeId) || candidate.isSubtypeOf(aliasFor);
|
|
62
57
|
}
|
|
63
58
|
/**
|
|
64
59
|
* Merge entries that share an AliasName.
|
|
@@ -135,12 +130,12 @@ function makeNamespaceResolver(category) {
|
|
|
135
130
|
* `AliasNameCategoryType`, including vendor subcategories created through the
|
|
136
131
|
* `<SubAliasNameCategories>` placeholder.
|
|
137
132
|
*/
|
|
138
|
-
function makeFindAliasHandler(options, verbose) {
|
|
139
|
-
const comparator = options.comparator ??
|
|
133
|
+
export function makeFindAliasHandler(options, verbose) {
|
|
134
|
+
const comparator = options.comparator ?? insertionOrderComparator;
|
|
140
135
|
return async function findAliasHandler(inputArguments, context) {
|
|
141
136
|
const category = this.parent;
|
|
142
137
|
if (!category) {
|
|
143
|
-
return { statusCode:
|
|
138
|
+
return { statusCode: StatusCodes.BadInternalError };
|
|
144
139
|
}
|
|
145
140
|
// The gate is consulted per category, and each category at most once per
|
|
146
141
|
// call. Memoised because a recursive search reaches the same category
|
|
@@ -164,11 +159,11 @@ function makeFindAliasHandler(options, verbose) {
|
|
|
164
159
|
// Bad_UserAccessDenied: there is nothing left to filter, so silence
|
|
165
160
|
// would be a lie rather than a non-disclosure.
|
|
166
161
|
if (!(await mayRead(category.nodeId))) {
|
|
167
|
-
return { statusCode:
|
|
162
|
+
return { statusCode: StatusCodes.BadUserAccessDenied };
|
|
168
163
|
}
|
|
169
164
|
const pattern = readPattern(inputArguments);
|
|
170
165
|
if (pattern === null) {
|
|
171
|
-
return { statusCode:
|
|
166
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
172
167
|
}
|
|
173
168
|
const referenceTypeFilter = readReferenceTypeFilter(inputArguments);
|
|
174
169
|
// clause 6.3.2 Table 3 / clause 8.2: ReferenceTypeFilter must be
|
|
@@ -178,8 +173,8 @@ function makeFindAliasHandler(options, verbose) {
|
|
|
178
173
|
// (CTT AliasName Base Err-004).
|
|
179
174
|
if (!isValidReferenceTypeFilter(category, referenceTypeFilter)) {
|
|
180
175
|
return {
|
|
181
|
-
statusCode:
|
|
182
|
-
inputArgumentResults: [
|
|
176
|
+
statusCode: StatusCodes.BadInvalidArgument,
|
|
177
|
+
inputArgumentResults: [StatusCodes.Good, StatusCodes.BadInvalidArgument]
|
|
183
178
|
};
|
|
184
179
|
}
|
|
185
180
|
const query = {
|
|
@@ -198,9 +193,9 @@ function makeFindAliasHandler(options, verbose) {
|
|
|
198
193
|
found = await options.store.find(query);
|
|
199
194
|
}
|
|
200
195
|
catch (err) {
|
|
201
|
-
if (err instanceof
|
|
196
|
+
if (err instanceof InvalidLikePatternError) {
|
|
202
197
|
// clause 6.3.2 Table 4: "The input string is not a valid search string"
|
|
203
|
-
return { statusCode:
|
|
198
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
204
199
|
}
|
|
205
200
|
throw err;
|
|
206
201
|
}
|
|
@@ -212,7 +207,7 @@ function makeFindAliasHandler(options, verbose) {
|
|
|
212
207
|
// report a truncated scan as a complete answer. The code names no
|
|
213
208
|
// category, so it discloses nothing a gated caller should not see.
|
|
214
209
|
if (found.length > options.maxResults) {
|
|
215
|
-
return { statusCode:
|
|
210
|
+
return { statusCode: StatusCodes.BadResponseTooLarge };
|
|
216
211
|
}
|
|
217
212
|
// A nested category the caller may not read is omitted, and the call
|
|
218
213
|
// still succeeds: an error, or a count that changed, would confirm the
|
|
@@ -239,22 +234,22 @@ function makeFindAliasHandler(options, verbose) {
|
|
|
239
234
|
// never an error.
|
|
240
235
|
const namespaceIndexOf = makeNamespaceResolver(category);
|
|
241
236
|
const value = verbose
|
|
242
|
-
? ordered.map((entry) => new
|
|
237
|
+
? ordered.map((entry) => new AliasNameVerboseDataType({
|
|
243
238
|
aliasName: { name: entry.aliasName, namespaceIndex: namespaceIndexOf(entry) },
|
|
244
239
|
referencedNodes: entry.referencedNodes,
|
|
245
240
|
serverUris: entry.serverUris,
|
|
246
241
|
aliasNameCategoryId: entry.categoryNodeId
|
|
247
242
|
}))
|
|
248
|
-
: ordered.map((entry) => new
|
|
243
|
+
: ordered.map((entry) => new AliasNameDataType({
|
|
249
244
|
aliasName: { name: entry.aliasName, namespaceIndex: namespaceIndexOf(entry) },
|
|
250
245
|
referencedNodes: entry.referencedNodes
|
|
251
246
|
}));
|
|
252
247
|
return {
|
|
253
|
-
statusCode:
|
|
248
|
+
statusCode: StatusCodes.Good,
|
|
254
249
|
outputArguments: [
|
|
255
250
|
{
|
|
256
|
-
dataType:
|
|
257
|
-
arrayType:
|
|
251
|
+
dataType: DataType.ExtensionObject,
|
|
252
|
+
arrayType: VariantArrayType.Array,
|
|
258
253
|
value
|
|
259
254
|
}
|
|
260
255
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind_find_alias.js","sourceRoot":"","sources":["../source/bind_find_alias.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bind_find_alias.js","sourceRoot":"","sources":["../source/bind_find_alias.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export { type AliasComparator, type FindAliasBindingOptions, insertionOrderCompa
|
|
|
16
16
|
export { ALIAS_SERVER_CAPABILITY_ID, advertiseAliasCapability, type CategoryProvider, DEFAULT_MAX_RESULTS, defaultCategoryProvider, type InstallAliasNamesOptions, type InstallAliasNamesResult, type IServerForAliasNames, installAliasNames, installAliasNamesOnAddressSpace } from "./install_alias_names.js";
|
|
17
17
|
export { LAST_CHANGE_BROWSE_NAME, LastChangeTracker, type LastChangeTrackerOptions } from "./last_change.js";
|
|
18
18
|
export { ALIAS_FOR, ALIAS_NAME_CATEGORY_TYPE, ALIAS_NAME_TYPE, ALIAS_SERVER_CAPABILITY, MethodDeclarations, PUBLISHED_DATA_SET_TYPE, WellKnownCategories, WellKnownLastChange, WellKnownOptionalMethods } from "./well_known.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC5G,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,mBAAmB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,wBAAwB,EACxB,oBAAoB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,+BAA+B,EAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,uBAAuB,EACvB,iBAAiB,EACjB,KAAK,wBAAwB,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EAC3B,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-server
|
|
4
3
|
*
|
|
@@ -8,57 +7,13 @@
|
|
|
8
7
|
* from other Servers (Annex B, Annex C) and the Annex D PubSub change
|
|
9
8
|
* notification are out of scope.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var alias_hierarchy_js_1 = require("./alias_hierarchy.js");
|
|
21
|
-
Object.defineProperty(exports, "aliasesOf", { enumerable: true, get: function () { return alias_hierarchy_js_1.aliasesOf; } });
|
|
22
|
-
Object.defineProperty(exports, "collectAllCategories", { enumerable: true, get: function () { return alias_hierarchy_js_1.collectAllCategories; } });
|
|
23
|
-
Object.defineProperty(exports, "collectCategories", { enumerable: true, get: function () { return alias_hierarchy_js_1.collectCategories; } });
|
|
24
|
-
Object.defineProperty(exports, "findAliasNameCategoryType", { enumerable: true, get: function () { return alias_hierarchy_js_1.findAliasNameCategoryType; } });
|
|
25
|
-
Object.defineProperty(exports, "findAliasNameType", { enumerable: true, get: function () { return alias_hierarchy_js_1.findAliasNameType; } });
|
|
26
|
-
Object.defineProperty(exports, "isAliasName", { enumerable: true, get: function () { return alias_hierarchy_js_1.isAliasName; } });
|
|
27
|
-
Object.defineProperty(exports, "isAliasNameCategory", { enumerable: true, get: function () { return alias_hierarchy_js_1.isAliasNameCategory; } });
|
|
28
|
-
Object.defineProperty(exports, "presentWellKnownCategories", { enumerable: true, get: function () { return alias_hierarchy_js_1.presentWellKnownCategories; } });
|
|
29
|
-
var alias_name_archive_js_1 = require("./alias_name_archive.js");
|
|
30
|
-
Object.defineProperty(exports, "ALIAS_NAME_ARCHIVE_VERSION", { enumerable: true, get: function () { return alias_name_archive_js_1.ALIAS_NAME_ARCHIVE_VERSION; } });
|
|
31
|
-
Object.defineProperty(exports, "readAliasNameArchive", { enumerable: true, get: function () { return alias_name_archive_js_1.readAliasNameArchive; } });
|
|
32
|
-
Object.defineProperty(exports, "writeAliasNameArchive", { enumerable: true, get: function () { return alias_name_archive_js_1.writeAliasNameArchive; } });
|
|
33
|
-
var bind_alias_category_js_1 = require("./bind_alias_category.js");
|
|
34
|
-
Object.defineProperty(exports, "addAliasCategory", { enumerable: true, get: function () { return bind_alias_category_js_1.addAliasCategory; } });
|
|
35
|
-
Object.defineProperty(exports, "bindAliasCategory", { enumerable: true, get: function () { return bind_alias_category_js_1.bindAliasCategory; } });
|
|
36
|
-
Object.defineProperty(exports, "ensureLastChangeProperty", { enumerable: true, get: function () { return bind_alias_category_js_1.ensureLastChangeProperty; } });
|
|
37
|
-
Object.defineProperty(exports, "ensureOptionalMethod", { enumerable: true, get: function () { return bind_alias_category_js_1.ensureOptionalMethod; } });
|
|
38
|
-
Object.defineProperty(exports, "findMethodByDeclaration", { enumerable: true, get: function () { return bind_alias_category_js_1.findMethodByDeclaration; } });
|
|
39
|
-
Object.defineProperty(exports, "getInstalledAliasNames", { enumerable: true, get: function () { return bind_alias_category_js_1.getInstalledAliasNames; } });
|
|
40
|
-
Object.defineProperty(exports, "removeAliasCategory", { enumerable: true, get: function () { return bind_alias_category_js_1.removeAliasCategory; } });
|
|
41
|
-
var bind_find_alias_js_1 = require("./bind_find_alias.js");
|
|
42
|
-
Object.defineProperty(exports, "insertionOrderComparator", { enumerable: true, get: function () { return bind_find_alias_js_1.insertionOrderComparator; } });
|
|
43
|
-
Object.defineProperty(exports, "makeFindAliasHandler", { enumerable: true, get: function () { return bind_find_alias_js_1.makeFindAliasHandler; } });
|
|
44
|
-
var install_alias_names_js_1 = require("./install_alias_names.js");
|
|
45
|
-
Object.defineProperty(exports, "ALIAS_SERVER_CAPABILITY_ID", { enumerable: true, get: function () { return install_alias_names_js_1.ALIAS_SERVER_CAPABILITY_ID; } });
|
|
46
|
-
Object.defineProperty(exports, "advertiseAliasCapability", { enumerable: true, get: function () { return install_alias_names_js_1.advertiseAliasCapability; } });
|
|
47
|
-
Object.defineProperty(exports, "DEFAULT_MAX_RESULTS", { enumerable: true, get: function () { return install_alias_names_js_1.DEFAULT_MAX_RESULTS; } });
|
|
48
|
-
Object.defineProperty(exports, "defaultCategoryProvider", { enumerable: true, get: function () { return install_alias_names_js_1.defaultCategoryProvider; } });
|
|
49
|
-
Object.defineProperty(exports, "installAliasNames", { enumerable: true, get: function () { return install_alias_names_js_1.installAliasNames; } });
|
|
50
|
-
Object.defineProperty(exports, "installAliasNamesOnAddressSpace", { enumerable: true, get: function () { return install_alias_names_js_1.installAliasNamesOnAddressSpace; } });
|
|
51
|
-
var last_change_js_1 = require("./last_change.js");
|
|
52
|
-
Object.defineProperty(exports, "LAST_CHANGE_BROWSE_NAME", { enumerable: true, get: function () { return last_change_js_1.LAST_CHANGE_BROWSE_NAME; } });
|
|
53
|
-
Object.defineProperty(exports, "LastChangeTracker", { enumerable: true, get: function () { return last_change_js_1.LastChangeTracker; } });
|
|
54
|
-
var well_known_js_1 = require("./well_known.js");
|
|
55
|
-
Object.defineProperty(exports, "ALIAS_FOR", { enumerable: true, get: function () { return well_known_js_1.ALIAS_FOR; } });
|
|
56
|
-
Object.defineProperty(exports, "ALIAS_NAME_CATEGORY_TYPE", { enumerable: true, get: function () { return well_known_js_1.ALIAS_NAME_CATEGORY_TYPE; } });
|
|
57
|
-
Object.defineProperty(exports, "ALIAS_NAME_TYPE", { enumerable: true, get: function () { return well_known_js_1.ALIAS_NAME_TYPE; } });
|
|
58
|
-
Object.defineProperty(exports, "ALIAS_SERVER_CAPABILITY", { enumerable: true, get: function () { return well_known_js_1.ALIAS_SERVER_CAPABILITY; } });
|
|
59
|
-
Object.defineProperty(exports, "MethodDeclarations", { enumerable: true, get: function () { return well_known_js_1.MethodDeclarations; } });
|
|
60
|
-
Object.defineProperty(exports, "PUBLISHED_DATA_SET_TYPE", { enumerable: true, get: function () { return well_known_js_1.PUBLISHED_DATA_SET_TYPE; } });
|
|
61
|
-
Object.defineProperty(exports, "WellKnownCategories", { enumerable: true, get: function () { return well_known_js_1.WellKnownCategories; } });
|
|
62
|
-
Object.defineProperty(exports, "WellKnownLastChange", { enumerable: true, get: function () { return well_known_js_1.WellKnownLastChange; } });
|
|
63
|
-
Object.defineProperty(exports, "WellKnownOptionalMethods", { enumerable: true, get: function () { return well_known_js_1.WellKnownOptionalMethods; } });
|
|
10
|
+
export { AliasNameError, addAlias, findAlias, removeAlias } from "./add_alias.js";
|
|
11
|
+
export { AddressSpaceAliasStore } from "./address_space_alias_store.js";
|
|
12
|
+
export { aliasesOf, collectAllCategories, collectCategories, findAliasNameCategoryType, findAliasNameType, isAliasName, isAliasNameCategory, presentWellKnownCategories } from "./alias_hierarchy.js";
|
|
13
|
+
export { ALIAS_NAME_ARCHIVE_VERSION, readAliasNameArchive, writeAliasNameArchive } from "./alias_name_archive.js";
|
|
14
|
+
export { addAliasCategory, bindAliasCategory, ensureLastChangeProperty, ensureOptionalMethod, findMethodByDeclaration, getInstalledAliasNames, removeAliasCategory } from "./bind_alias_category.js";
|
|
15
|
+
export { insertionOrderComparator, makeFindAliasHandler } from "./bind_find_alias.js";
|
|
16
|
+
export { ALIAS_SERVER_CAPABILITY_ID, advertiseAliasCapability, DEFAULT_MAX_RESULTS, defaultCategoryProvider, installAliasNames, installAliasNamesOnAddressSpace } from "./install_alias_names.js";
|
|
17
|
+
export { LAST_CHANGE_BROWSE_NAME, LastChangeTracker } from "./last_change.js";
|
|
18
|
+
export { ALIAS_FOR, ALIAS_NAME_CATEGORY_TYPE, ALIAS_NAME_TYPE, ALIAS_SERVER_CAPABILITY, MethodDeclarations, PUBLISHED_DATA_SET_TYPE, WellKnownCategories, WellKnownLastChange, WellKnownOptionalMethods } from "./well_known.js";
|
|
64
19
|
//# 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;;;;;;;;GAQG;AAEH,OAAO,EAAwB,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAsC,MAAM,gCAAgC,CAAC;AAC5G,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,0BAA0B,EAE1B,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,gBAAgB,EAEhB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EAEtB,mBAAmB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGH,wBAAwB,EACxB,oBAAoB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,0BAA0B,EAC1B,wBAAwB,EAExB,mBAAmB,EACnB,uBAAuB,EAIvB,iBAAiB,EACjB,+BAA+B,EAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,uBAAuB,EACvB,iBAAiB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -247,3 +247,4 @@ export declare function installAliasNames(server: IServerForAliasNames, options?
|
|
|
247
247
|
* can be driven from a test or from a tool that only has an address space.
|
|
248
248
|
*/
|
|
249
249
|
export declare function installAliasNamesOnAddressSpace(addressSpace: IAddressSpace, options?: InstallAliasNamesOptions): Promise<InstallAliasNamesResult>;
|
|
250
|
+
//# sourceMappingURL=install_alias_names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install_alias_names.d.ts","sourceRoot":"","sources":["../source/install_alias_names.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-alias-name-server
|
|
4
3
|
*
|
|
@@ -10,18 +9,12 @@
|
|
|
10
9
|
* advertise the AliasName feature and then fail its only required Method. This
|
|
11
10
|
* binds them.
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const address_space_alias_store_js_1 = require("./address_space_alias_store.js");
|
|
20
|
-
const alias_hierarchy_js_1 = require("./alias_hierarchy.js");
|
|
21
|
-
const bind_alias_category_js_1 = require("./bind_alias_category.js");
|
|
22
|
-
const last_change_js_1 = require("./last_change.js");
|
|
23
|
-
const well_known_js_1 = require("./well_known.js");
|
|
24
|
-
Object.defineProperty(exports, "DEFAULT_MAX_RESULTS", { enumerable: true, get: function () { return well_known_js_1.DEFAULT_MAX_RESULTS; } });
|
|
12
|
+
import { AddressSpaceAliasStore } from "./address_space_alias_store.js";
|
|
13
|
+
import { collectAllCategories } from "./alias_hierarchy.js";
|
|
14
|
+
import { bindAliasCategory, getInstalledAliasNames, setInstalledAliasNames } from "./bind_alias_category.js";
|
|
15
|
+
import { LastChangeTracker } from "./last_change.js";
|
|
16
|
+
import { DEFAULT_MAX_RESULTS, WellKnownCategories } from "./well_known.js";
|
|
17
|
+
export { DEFAULT_MAX_RESULTS };
|
|
25
18
|
/**
|
|
26
19
|
* The default provider: every `AliasNameCategoryType` instance at or below
|
|
27
20
|
* `Aliases`, plus any roots named in `additionalCategoryRoots`.
|
|
@@ -30,8 +23,8 @@ Object.defineProperty(exports, "DEFAULT_MAX_RESULTS", { enumerable: true, get: f
|
|
|
30
23
|
* mechanism, so a custom provider can reuse it — `defaultCategoryProvider(roots)`
|
|
31
24
|
* composes with whatever else the Server knows about.
|
|
32
25
|
*/
|
|
33
|
-
function defaultCategoryProvider(additionalRoots) {
|
|
34
|
-
return (addressSpace) =>
|
|
26
|
+
export function defaultCategoryProvider(additionalRoots) {
|
|
27
|
+
return (addressSpace) => collectAllCategories(addressSpace, additionalRoots);
|
|
35
28
|
}
|
|
36
29
|
/**
|
|
37
30
|
* The `ALIAS` ServerCapability identifier (OPC 10000-12 Annex D Table D.1).
|
|
@@ -39,7 +32,7 @@ function defaultCategoryProvider(additionalRoots) {
|
|
|
39
32
|
* Part 17's prose writes it `Alias`; Part 12 Annex D is the normative source and
|
|
40
33
|
* writes `ALIAS`, matched case-insensitively.
|
|
41
34
|
*/
|
|
42
|
-
|
|
35
|
+
export const ALIAS_SERVER_CAPABILITY_ID = "ALIAS";
|
|
43
36
|
/** The placeholder node-opcua uses for "no capabilities declared". */
|
|
44
37
|
const NO_CAPABILITY_PLACEHOLDER = "NA";
|
|
45
38
|
/**
|
|
@@ -50,8 +43,8 @@ const NO_CAPABILITY_PLACEHOLDER = "NA";
|
|
|
50
43
|
*
|
|
51
44
|
* @returns true when the list was changed.
|
|
52
45
|
*/
|
|
53
|
-
function advertiseAliasCapability(capabilities) {
|
|
54
|
-
if (capabilities.some((c) => c.toUpperCase() ===
|
|
46
|
+
export function advertiseAliasCapability(capabilities) {
|
|
47
|
+
if (capabilities.some((c) => c.toUpperCase() === ALIAS_SERVER_CAPABILITY_ID)) {
|
|
55
48
|
return false;
|
|
56
49
|
}
|
|
57
50
|
// "NA" means "none"; it cannot coexist with a real capability
|
|
@@ -59,7 +52,7 @@ function advertiseAliasCapability(capabilities) {
|
|
|
59
52
|
if (placeholderIndex >= 0) {
|
|
60
53
|
capabilities.splice(placeholderIndex, 1);
|
|
61
54
|
}
|
|
62
|
-
capabilities.push(
|
|
55
|
+
capabilities.push(ALIAS_SERVER_CAPABILITY_ID);
|
|
63
56
|
return true;
|
|
64
57
|
}
|
|
65
58
|
/**
|
|
@@ -75,7 +68,7 @@ function advertiseAliasCapability(capabilities) {
|
|
|
75
68
|
* await server.start();
|
|
76
69
|
* ```
|
|
77
70
|
*/
|
|
78
|
-
async function installAliasNames(server, options) {
|
|
71
|
+
export async function installAliasNames(server, options) {
|
|
79
72
|
const addressSpace = server.engine.addressSpace;
|
|
80
73
|
if (!addressSpace) {
|
|
81
74
|
throw new Error("installAliasNames: address space is not available. Call this after server.initialize().");
|
|
@@ -94,24 +87,24 @@ async function installAliasNames(server, options) {
|
|
|
94
87
|
* The two-tier form used elsewhere in the SDK: this one needs no Server, so it
|
|
95
88
|
* can be driven from a test or from a tool that only has an address space.
|
|
96
89
|
*/
|
|
97
|
-
async function installAliasNamesOnAddressSpace(addressSpace, options) {
|
|
98
|
-
const already =
|
|
90
|
+
export async function installAliasNamesOnAddressSpace(addressSpace, options) {
|
|
91
|
+
const already = getInstalledAliasNames(addressSpace);
|
|
99
92
|
if (already) {
|
|
100
93
|
return { ...already, installed: false };
|
|
101
94
|
}
|
|
102
|
-
const aliasesRoot = addressSpace.findNode(
|
|
95
|
+
const aliasesRoot = addressSpace.findNode(WellKnownCategories.Aliases);
|
|
103
96
|
if (!aliasesRoot) {
|
|
104
97
|
throw new Error("installAliasNames: the Aliases Object (i=23470) is not in the address space. " +
|
|
105
98
|
"Load the standard nodeset (Opc.Ua.NodeSet2.xml) first.");
|
|
106
99
|
}
|
|
107
|
-
const store = options?.store ?? new
|
|
108
|
-
const lastChange = new
|
|
100
|
+
const store = options?.store ?? new AddressSpaceAliasStore(addressSpace, { likeOptions: options?.likeOptions });
|
|
101
|
+
const lastChange = new LastChangeTracker(addressSpace, {
|
|
109
102
|
persistencePath: options?.persistencePath,
|
|
110
103
|
now: options?.nowVersionTime
|
|
111
104
|
});
|
|
112
105
|
const bindingOptions = {
|
|
113
106
|
store,
|
|
114
|
-
maxResults: options?.maxResults ??
|
|
107
|
+
maxResults: options?.maxResults ?? DEFAULT_MAX_RESULTS,
|
|
115
108
|
verbose: options?.verbose ?? true,
|
|
116
109
|
comparator: options?.comparator,
|
|
117
110
|
isReadAllowed: options?.isReadAllowed,
|
|
@@ -125,7 +118,7 @@ async function installAliasNamesOnAddressSpace(addressSpace, options) {
|
|
|
125
118
|
// one binding path, shared with bindAliasCategory, so a category created
|
|
126
119
|
// after installation cannot end up bound differently
|
|
127
120
|
for (const category of categories) {
|
|
128
|
-
|
|
121
|
+
bindAliasCategory(addressSpace, category, bindingOptions);
|
|
129
122
|
}
|
|
130
123
|
const installed = {
|
|
131
124
|
store,
|
|
@@ -135,7 +128,7 @@ async function installAliasNamesOnAddressSpace(addressSpace, options) {
|
|
|
135
128
|
};
|
|
136
129
|
// Recorded before restore, so anything the restore triggers can already find
|
|
137
130
|
// the tracker on the address space.
|
|
138
|
-
|
|
131
|
+
setInstalledAliasNames(addressSpace, installed);
|
|
139
132
|
// Bring persisted values back and publish them, including the zeros for
|
|
140
133
|
// categories that have never changed - a Property with no value at all reads
|
|
141
134
|
// as Bad_WaitingForInitialData rather than "nothing has happened yet".
|