node-opcua-address-space 2.115.0 → 2.117.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.
Files changed (35) hide show
  1. package/dist/source/helpers/call_helpers.d.ts +1 -2
  2. package/dist/source/helpers/call_helpers.js +15 -0
  3. package/dist/source/helpers/call_helpers.js.map +1 -1
  4. package/dist/source/index.d.ts +1 -0
  5. package/dist/source/index.js +3 -1
  6. package/dist/source/index.js.map +1 -1
  7. package/dist/source/loader/generateAddressSpaceRaw.d.ts +19 -1
  8. package/dist/source/loader/generateAddressSpaceRaw.js +157 -4
  9. package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -1
  10. package/dist/source/loader/load_nodeset2.js +3 -10
  11. package/dist/source/loader/load_nodeset2.js.map +1 -1
  12. package/dist/src/index_current.d.ts +1 -0
  13. package/dist/src/index_current.js +1 -0
  14. package/dist/src/index_current.js.map +1 -1
  15. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +27 -3
  16. package/dist/src/nodeset_tools/construct_namespace_dependency.js +210 -81
  17. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  18. package/dist/src/nodeset_tools/nodeset_to_xml.js +15 -23
  19. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
  20. package/dist/src/ua_variable_impl.js +2 -74
  21. package/dist/src/ua_variable_impl.js.map +1 -1
  22. package/dist/src/validate_data_type_correctness.d.ts +6 -0
  23. package/dist/src/validate_data_type_correctness.js +98 -0
  24. package/dist/src/validate_data_type_correctness.js.map +1 -0
  25. package/dist/tsconfig_common.tsbuildinfo +1 -1
  26. package/package.json +38 -38
  27. package/source/helpers/call_helpers.ts +1 -1
  28. package/source/index.ts +1 -1
  29. package/source/loader/generateAddressSpaceRaw.ts +180 -5
  30. package/source/loader/load_nodeset2.ts +3 -9
  31. package/src/index_current.ts +1 -1
  32. package/src/nodeset_tools/construct_namespace_dependency.ts +232 -91
  33. package/src/nodeset_tools/nodeset_to_xml.ts +19 -27
  34. package/src/ua_variable_impl.ts +2 -89
  35. package/src/validate_data_type_correctness.ts +115 -0
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports.hasHigherPriorityThan = void 0;
6
+ exports._constructNamespaceTranslationTable = exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports._getCompleteRequiredModelsFromValuesAndReferences = exports._recomputeRequiredModelsFromTypes2 = exports._recomputeRequiredModelsFromTypes = void 0;
7
7
  const node_opcua_data_model_1 = require("node-opcua-data-model");
8
8
  const node_opcua_basic_types_1 = require("node-opcua-basic-types");
9
9
  const node_opcua_variant_1 = require("node-opcua-variant");
@@ -12,30 +12,35 @@ const node_opcua_debug_1 = require("node-opcua-debug");
12
12
  const base_node_impl_1 = require("../base_node_impl");
13
13
  const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
14
14
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
15
- function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable) {
16
- const addressSpace = namespace.addressSpace;
17
- const namespace_ = namespace;
18
- // navigate all namespace recursively to
19
- function consider(namespaceIndex) {
20
- if (hasHigherPriorityThan(namespaceIndex, namespace.index, priorityTable)) {
21
- return;
22
- }
23
- considerStrongly(namespaceIndex);
15
+ // eslint-disable-next-line max-statements, complexity
16
+ function _recomputeRequiredModelsFromTypes(namespace, cache) {
17
+ if (namespace.index === 0) {
18
+ return { requiredNamespaceIndexes: [], nbTypes: 1 };
24
19
  }
25
- function considerStrongly(namespaceIndex) {
26
- if (!depMap.has(namespaceIndex)) {
27
- depMap.add(namespaceIndex);
28
- const namespace = addressSpace.getNamespace(namespaceIndex);
29
- dependency.push(namespace);
30
- if (namespaceIndex > 0) {
31
- _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
32
- }
20
+ if (cache) {
21
+ if (cache.has(namespace.index)) {
22
+ return cache.get(namespace.index);
33
23
  }
34
24
  }
25
+ const requiredNamespaceIndexes = [0];
26
+ const requiredModelsSet = new Set();
27
+ requiredModelsSet.add(0);
28
+ const namespace_ = namespace;
29
+ let nbTypes = 0;
30
+ const addressSpace = namespace.addressSpace;
31
+ const types = [node_opcua_data_model_1.NodeClass.VariableType, node_opcua_data_model_1.NodeClass.ObjectType, node_opcua_data_model_1.NodeClass.ReferenceType, node_opcua_data_model_1.NodeClass.DataType];
32
+ const instances = [node_opcua_data_model_1.NodeClass.Variable, node_opcua_data_model_1.NodeClass.Object, node_opcua_data_model_1.NodeClass.Method];
33
+ const consider = (requiredModel) => {
34
+ if (requiredModel !== namespace.index && !requiredModelsSet.has(requiredModel)) {
35
+ requiredModelsSet.add(requiredModel);
36
+ requiredNamespaceIndexes.push(requiredModel);
37
+ }
38
+ };
39
+ const _visitedDataType = new Set();
35
40
  function exploreDataTypeField(field) {
36
41
  const dataType = field.dataType;
37
42
  const namespaceIndex = dataType.namespace;
38
- considerStrongly(namespaceIndex);
43
+ consider(namespaceIndex);
39
44
  const dataTypeNode = addressSpace.findDataType(field.dataType);
40
45
  if (dataTypeNode) {
41
46
  exploreDataTypes(dataTypeNode);
@@ -55,7 +60,7 @@ function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDa
55
60
  return;
56
61
  }
57
62
  const namespaceIndex = dataType.namespace;
58
- considerStrongly(namespaceIndex);
63
+ consider(namespaceIndex);
59
64
  if (dataTypeNode.isStructure()) {
60
65
  const definition = dataTypeNode.getStructureDefinition();
61
66
  for (const field of definition.fields || []) {
@@ -67,7 +72,7 @@ function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDa
67
72
  function exploreExtensionObject(e) {
68
73
  (0, node_opcua_assert_1.default)(!(e instanceof node_opcua_variant_1.Variant));
69
74
  const nodeId = e.schema.encodingDefaultXml || e.schema.dataTypeNodeId || e.schema.dataTypeNodeId;
70
- considerStrongly(nodeId.namespace);
75
+ consider(nodeId.namespace);
71
76
  // istanbul ignore next
72
77
  if (e.schema.dataTypeNodeId.isEmpty()) {
73
78
  warningLog("Cannot find dataTypeNodeId for ", e.schema.name);
@@ -98,38 +103,118 @@ function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDa
98
103
  }
99
104
  }
100
105
  for (const node of namespace_.nodeIterator()) {
101
- if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
102
- const dataTypeNodeId = node.dataType;
103
- const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
104
- if (dataTypeNode) {
105
- exploreDataTypes(dataTypeNode);
106
+ const isType = types.indexOf(node.nodeClass);
107
+ const isInstance = instances.indexOf(node.nodeClass);
108
+ if (isType !== -1) {
109
+ nbTypes++;
110
+ const superTypes = node.findReferencesAsObject("HasSubtype", false);
111
+ if (superTypes.length === 0) {
112
+ continue;
113
+ }
114
+ if (superTypes.length !== 1) {
115
+ continue;
106
116
  }
107
- else {
108
- // istanbul ignore next
109
- if (dataTypeNodeId.value != 0) {
110
- warningLog("Warning: Cannot find dataType", dataTypeNodeId.toString());
117
+ const superType = superTypes[0];
118
+ if (superType.nodeId.namespace === 0) {
119
+ continue;
120
+ }
121
+ const requiredModel = superType.nodeId.namespace;
122
+ consider(requiredModel);
123
+ }
124
+ else if (isInstance !== -1) {
125
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
126
+ const dataTypeNodeId = node.dataType;
127
+ const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
128
+ if (dataTypeNode) {
129
+ consider(dataTypeNode.nodeId.namespace);
130
+ }
131
+ else {
132
+ // istanbul ignore next
133
+ if (dataTypeNodeId.value != 0) {
134
+ warningLog("Warning: Cannot find dataType", dataTypeNodeId.toString());
135
+ }
111
136
  }
137
+ const nodeV = node;
138
+ exploreDataValue(nodeV);
112
139
  }
113
- const nodeV = node;
114
- exploreDataValue(nodeV);
140
+ const typeDefinitions = node.findReferencesAsObject("HasTypeDefinition", true);
141
+ if (typeDefinitions.length === 0) {
142
+ continue;
143
+ }
144
+ if (typeDefinitions.length !== 1) {
145
+ continue;
146
+ }
147
+ const typeDefinition = typeDefinitions[0];
148
+ const requiredModel = typeDefinition.nodeId.namespace;
149
+ consider(requiredModel);
150
+ }
151
+ }
152
+ const result = { requiredNamespaceIndexes: requiredNamespaceIndexes, nbTypes: nbTypes };
153
+ if (cache) {
154
+ cache.set(namespace.index, result);
155
+ }
156
+ return result;
157
+ }
158
+ exports._recomputeRequiredModelsFromTypes = _recomputeRequiredModelsFromTypes;
159
+ function _recomputeRequiredModelsFromTypes2(namespace, cache) {
160
+ const addressSpace = namespace.addressSpace;
161
+ const { requiredNamespaceIndexes } = _recomputeRequiredModelsFromTypes(namespace, cache);
162
+ const set = new Set(requiredNamespaceIndexes);
163
+ const pass2 = [];
164
+ for (const r of requiredNamespaceIndexes) {
165
+ if (r === 0) {
166
+ pass2.push(0);
167
+ continue;
168
+ }
169
+ const namespaces = _recomputeRequiredModelsFromTypes(addressSpace.getNamespace(r), cache);
170
+ for (const nIndex of namespaces.requiredNamespaceIndexes) {
171
+ if (!set.has(nIndex)) {
172
+ set.add(nIndex);
173
+ pass2.push(nIndex);
174
+ }
175
+ }
176
+ pass2.push(r);
177
+ }
178
+ return { requiredNamespaceIndexes: pass2 };
179
+ }
180
+ exports._recomputeRequiredModelsFromTypes2 = _recomputeRequiredModelsFromTypes2;
181
+ function _getCompleteRequiredModelsFromValuesAndReferences(namespace, priorityList, cache) {
182
+ const namespace_ = namespace;
183
+ const thisPriority = priorityList[namespace.index];
184
+ const requiredNamespaceIndexes = _recomputeRequiredModelsFromTypes2(namespace, cache).requiredNamespaceIndexes;
185
+ const requiredModelsSet = new Set([...requiredNamespaceIndexes]);
186
+ const consider = (requiredModel) => {
187
+ if (requiredModel !== namespace.index && !requiredModelsSet.has(requiredModel)) {
188
+ requiredModelsSet.add(requiredModel);
189
+ requiredNamespaceIndexes.push(requiredModel);
115
190
  }
116
- // visit all references
117
- const references = node.ownReferences();
191
+ };
192
+ //const maxIndex = Math.max(...requiredNamespaceIndexes);
193
+ for (const node of namespace_.nodeIterator()) {
194
+ const references = node.allReferences();
118
195
  for (const reference of references) {
196
+ // if (reference.isForward) continue;
197
+ // only look at backward reference
119
198
  // check referenceId
120
- const namespaceIndex = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
121
- consider(namespaceIndex);
122
- const namespaceIndex2 = reference.nodeId.namespace;
123
- consider(namespaceIndex2);
199
+ const namespaceIndexOfReferenceType = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
200
+ if (namespaceIndexOfReferenceType !== 0 && namespaceIndexOfReferenceType !== namespace.index) {
201
+ const refPriority = priorityList[namespaceIndexOfReferenceType];
202
+ if (refPriority <= thisPriority) {
203
+ consider(namespaceIndexOfReferenceType);
204
+ }
205
+ }
206
+ const namespaceIndexOfTargetNode = reference.nodeId.namespace;
207
+ if (namespaceIndexOfTargetNode !== 0 && namespaceIndexOfTargetNode !== namespace.index) {
208
+ const refPriority = priorityList[namespaceIndexOfTargetNode];
209
+ if (refPriority <= thisPriority) {
210
+ consider(namespaceIndexOfTargetNode);
211
+ }
212
+ }
124
213
  }
125
214
  }
215
+ return requiredNamespaceIndexes;
126
216
  }
127
- function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
128
- const order1 = priorityTable[namespaceIndex1];
129
- const order2 = priorityTable[namespaceIndex2];
130
- return order1 > order2;
131
- }
132
- exports.hasHigherPriorityThan = hasHigherPriorityThan;
217
+ exports._getCompleteRequiredModelsFromValuesAndReferences = _getCompleteRequiredModelsFromValuesAndReferences;
133
218
  /**
134
219
  *
135
220
  * @param namespace
@@ -144,50 +229,94 @@ exports.hasHigherPriorityThan = hasHigherPriorityThan;
144
229
  * ---
145
230
  * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
146
231
  */
147
- function constructNamespacePriorityTable(namespace) {
148
- // Namespace 0 will always be 0
149
- // Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
150
- // in the same order as they appear,
151
- // Namespace with requiredModels are considered to be companion specification, so already loaded in the correct order
152
- const addressSpace = namespace.addressSpace;
232
+ function constructNamespacePriorityTable(addressSpace) {
233
+ // - Namespace 0 will always be 0
234
+ // - Namespace with requiredModels are considered to be companion specification,
235
+ // so RequireModel will be used to determine the order
236
+ // - Namespaces with no requiredModel are more complicated:
237
+ //
238
+ // we study ObjectType,ReferenceType, DataType and VariableType
239
+ // to find strong dependencies between namespace.
240
+ //
241
+ // if the namespace doesn't define ObjectType,ReferenceType, DataType and VariableType
242
+ // it will be considered as instance namespaces and will added at the end
243
+ // in the same order as they appear,
153
244
  const namespaces = addressSpace.getNamespaceArray();
154
- const namespaceWithReq = namespaces.filter((n) => n.getRequiredModels() !== undefined && n.index !== 0);
155
- const namespaceWithoutReq = namespaces.filter((n) => n.getRequiredModels() === undefined && n.index !== 0);
156
- const priorityList = [0];
157
- let counter = 1;
158
- for (let i = 0; i < namespaceWithReq.length; i++) {
159
- priorityList[namespaceWithReq[i].index] = counter++;
245
+ const loadingOrder = [0];
246
+ const map = new Map();
247
+ for (let i = 0; i < namespaces.length; i++) {
248
+ const { nbTypes, requiredNamespaceIndexes } = _recomputeRequiredModelsFromTypes(namespaces[i], map);
249
+ map.set(namespaces[i].index, { nbTypes, requiredNamespaceIndexes, namespace: namespaces[i] });
160
250
  }
161
- for (let i = 0; i < namespaceWithoutReq.length; i++) {
162
- priorityList[namespaceWithoutReq[i].index] = counter++;
251
+ const visited = new Set();
252
+ visited.add(0);
253
+ const h = (n) => {
254
+ if (visited.has(n.index)) {
255
+ return;
256
+ }
257
+ visited.add(n.index);
258
+ const data = map.get(n.index);
259
+ if (!data)
260
+ return;
261
+ const { requiredNamespaceIndexes } = data;
262
+ for (const r of requiredNamespaceIndexes || []) {
263
+ h(namespaces[r]);
264
+ }
265
+ loadingOrder.push(n.index);
266
+ };
267
+ for (let i = 0; i < namespaces.length; i++) {
268
+ const { nbTypes } = map.get(i);
269
+ if (nbTypes) {
270
+ h(namespaces[i]);
271
+ }
163
272
  }
164
- return priorityList;
273
+ for (let i = 0; i < namespaces.length; i++) {
274
+ const { nbTypes } = map.get(i);
275
+ if (!nbTypes) {
276
+ h(namespaces[i]);
277
+ }
278
+ }
279
+ const priorityTable = [];
280
+ for (let i = 0; i < loadingOrder.length; i++) {
281
+ const namespaceIndex = loadingOrder[i];
282
+ (0, node_opcua_assert_1.default)(namespaceIndex !== -1);
283
+ priorityTable[namespaceIndex] = i;
284
+ }
285
+ return { loadingOrder, priorityTable };
165
286
  }
166
287
  exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
167
- const doDebug = false;
288
+ const doDebug = true;
168
289
  function constructNamespaceDependency(namespace, priorityTable) {
169
290
  const addressSpace = namespace.addressSpace;
170
- priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
171
- const dependency = [];
172
- const depMap = new Set();
173
- dependency.push(addressSpace.getDefaultNamespace());
174
- depMap.add(0);
175
- if (namespace !== addressSpace.getDefaultNamespace()) {
176
- dependency.push(namespace);
177
- depMap.add(namespace.index);
178
- }
179
- const _visitedDataType = new Set();
180
- _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
181
- // istanbul ignore next
182
- doDebug && debugLog("namespace : ", namespace.index, namespace.namespaceUri);
183
- // istanbul ignore next
184
- doDebug && debugLog(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
185
- const sorted = dependency.sort((a, b) => (priorityTable[a.index] < priorityTable[b.index] ? -1 : 1));
186
- // istanbul ignore next
187
- doDebug && debugLog("sorted:");
188
- // istanbul ignore next
189
- doDebug && debugLog(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
190
- return sorted;
291
+ priorityTable = priorityTable || constructNamespacePriorityTable(addressSpace).priorityTable;
292
+ const requiredNamespaceIndexes = _getCompleteRequiredModelsFromValuesAndReferences(namespace, priorityTable);
293
+ return [...requiredNamespaceIndexes.map((r) => addressSpace.getNamespace(r)), namespace];
191
294
  }
192
295
  exports.constructNamespaceDependency = constructNamespaceDependency;
296
+ /**
297
+ * @private
298
+ */
299
+ function _constructNamespaceTranslationTable(dependency, exportedNamespace) {
300
+ if (!dependency || dependency.length === 0) {
301
+ return { 0: 0 };
302
+ // throw new Error("Cannot constructNamespaceTranslationTable on empty dependency");
303
+ }
304
+ const translationTable = {};
305
+ (0, node_opcua_assert_1.default)(dependency[0].namespaceUri === "http://opcfoundation.org/UA/");
306
+ let counter = 0;
307
+ translationTable[dependency[0].index] = counter++;
308
+ //
309
+ if (exportedNamespace) {
310
+ translationTable[exportedNamespace.index] = counter++;
311
+ }
312
+ for (let i = 1; i < dependency.length; i++) {
313
+ const dep = dependency[i];
314
+ if (exportedNamespace && exportedNamespace === dep) {
315
+ continue;
316
+ }
317
+ translationTable[dep.index] = counter++;
318
+ }
319
+ return translationTable;
320
+ }
321
+ exports._constructNamespaceTranslationTable = _constructNamespaceTranslationTable;
193
322
  //# sourceMappingURL=construct_namespace_dependency.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construct_namespace_dependency.js","sourceRoot":"","sources":["../../../src/nodeset_tools/construct_namespace_dependency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"construct_namespace_dependency.js","sourceRoot":"","sources":["../../../src/nodeset_tools/construct_namespace_dependency.ts"],"names":[],"mappings":"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"}
@@ -92,11 +92,16 @@ function translateBrowseName(xw, browseName) {
92
92
  function b(xw, browseName) {
93
93
  return translateBrowseName(xw, browseName).toString().replace("ns=0;", "");
94
94
  }
95
+ function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
96
+ const order1 = priorityTable[namespaceIndex1];
97
+ const order2 = priorityTable[namespaceIndex2];
98
+ return order1 > order2;
99
+ }
95
100
  function _hasHigherPriorityThan(xw, namespaceIndex1, namespaceIndex2) {
96
101
  (0, node_opcua_assert_1.assert)(xw.priorityTable, "expecting a priorityTable");
97
102
  (0, node_opcua_assert_1.assert)(namespaceIndex1 < xw.priorityTable.length);
98
103
  (0, node_opcua_assert_1.assert)(namespaceIndex2 < xw.priorityTable.length);
99
- return (0, construct_namespace_dependency_1.hasHigherPriorityThan)(namespaceIndex1, namespaceIndex2, xw.priorityTable);
104
+ return hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, xw.priorityTable);
100
105
  }
101
106
  function _dumpReferences(xw, node) {
102
107
  xw.startElement("References");
@@ -152,7 +157,8 @@ function _dumpReferences(xw, node) {
152
157
  }
153
158
  return false;
154
159
  }
155
- const references = node.allReferences().filter(referenceToKeep);
160
+ const allReferences = node.allReferences();
161
+ const references = allReferences.filter(referenceToKeep);
156
162
  for (const reference of references.sort(sortByNodeId)) {
157
163
  if ((0, base_node_impl_1.getReferenceType)(reference).browseName.toString() === "HasSubtype" && reference.isForward) {
158
164
  continue;
@@ -453,6 +459,10 @@ function _dumpVariantExtensionObjectValue2(xw, addressSpace, value) {
453
459
  const dataTypeNodeId = value.schema.dataTypeNodeId;
454
460
  const definitionMap = (0, decode_xml_extension_object_1.makeDefinitionMap)(addressSpace);
455
461
  const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
462
+ if (!dataTypeNode) {
463
+ warningLog("_dumpVariantExtensionObjectValue2: Cannot find dataType for ", dataTypeNodeId.toString());
464
+ return;
465
+ }
456
466
  _dumpVariantExtensionObjectValue(xw, dataTypeNode.nodeId, definitionMap, value);
457
467
  }
458
468
  // eslint-disable-next-line complexity
@@ -984,7 +994,7 @@ function dumpUAObjectType(xw, node) {
984
994
  (0, node_opcua_assert_1.assert)(node instanceof ua_object_type_impl_1.UAObjectTypeImpl);
985
995
  xw.writeComment("ObjectType - " + b(xw, node.browseName) + " {{{{ ");
986
996
  _markAsVisited(xw, node);
987
- // dump SubtypeOf and HasTypeDefinition
997
+ // dump SubtypeOf and HasTypeDefinition node if part of the same namespace
988
998
  dumpReferencedNodes(xw, node, false);
989
999
  xw.startElement("UAObjectType");
990
1000
  dumpCommonAttributes(xw, node);
@@ -1082,24 +1092,6 @@ function writeAliases(xw, aliases) {
1082
1092
  }
1083
1093
  xw.endElement();
1084
1094
  }
1085
- function constructNamespaceTranslationTable(dependency, exportedNamespace) {
1086
- const translationTable = {};
1087
- (0, node_opcua_assert_1.assert)(dependency[0].namespaceUri === "http://opcfoundation.org/UA/");
1088
- let counter = 0;
1089
- translationTable[dependency[0].index] = counter++;
1090
- //
1091
- if (exportedNamespace) {
1092
- translationTable[exportedNamespace.index] = counter++;
1093
- }
1094
- for (let i = 1; i < dependency.length; i++) {
1095
- const dep = dependency[i];
1096
- if (exportedNamespace && exportedNamespace === dep) {
1097
- continue;
1098
- }
1099
- translationTable[dep.index] = counter++;
1100
- }
1101
- return translationTable;
1102
- }
1103
1095
  function dumpReferenceType(xw, referenceType) {
1104
1096
  _markAsVisited(xw, referenceType);
1105
1097
  xw.startElement("UAReferenceType");
@@ -1165,9 +1157,9 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
1165
1157
  ? namespaceArrayNode.readAttribute(null, node_opcua_basic_types_1.AttributeIds.Value).value.value
1166
1158
  : [];
1167
1159
  const xw = new XMLWriter(true);
1168
- xw.priorityTable = (0, construct_namespace_dependency_1.constructNamespacePriorityTable)(this);
1160
+ xw.priorityTable = (0, construct_namespace_dependency_1.constructNamespacePriorityTable)(this.addressSpace).priorityTable;
1169
1161
  const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(this, xw.priorityTable);
1170
- const translationTable = constructNamespaceTranslationTable(dependency, this);
1162
+ const translationTable = (0, construct_namespace_dependency_1._constructNamespaceTranslationTable)(dependency, this);
1171
1163
  xw.translationTable = translationTable;
1172
1164
  xw.startDocument({ encoding: "utf-8", version: "1.0" });
1173
1165
  xw.startElement("UANodeSet");