node-opcua-address-space 2.86.1 → 2.87.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 (32) hide show
  1. package/dist/source/index.d.ts +1 -0
  2. package/dist/source/index.js +1 -0
  3. package/dist/source/index.js.map +1 -1
  4. package/dist/src/base_node_private.js +7 -6
  5. package/dist/src/base_node_private.js.map +1 -1
  6. package/dist/src/index_current.d.ts +1 -0
  7. package/dist/src/index_current.js +1 -0
  8. package/dist/src/index_current.js.map +1 -1
  9. package/dist/src/namespace_impl.js +7 -4
  10. package/dist/src/namespace_impl.js.map +1 -1
  11. package/dist/src/nodeid_manager.d.ts +6 -6
  12. package/dist/src/nodeid_manager.js +71 -97
  13. package/dist/src/nodeid_manager.js.map +1 -1
  14. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +14 -0
  15. package/dist/src/nodeset_tools/construct_namespace_dependency.js +21 -1
  16. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  17. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +1 -3
  18. package/dist/src/nodeset_tools/nodeset_to_xml.js +24 -10
  19. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
  20. package/dist/src/private_namespace.d.ts +5 -0
  21. package/dist/src/private_namespace.js +20 -0
  22. package/dist/src/private_namespace.js.map +1 -0
  23. package/dist/src/ua_reference_type_impl.d.ts +1 -1
  24. package/package.json +17 -17
  25. package/source/index.ts +1 -0
  26. package/src/base_node_private.ts +52 -48
  27. package/src/index_current.ts +1 -0
  28. package/src/namespace_impl.ts +23 -20
  29. package/src/nodeid_manager.ts +84 -100
  30. package/src/nodeset_tools/construct_namespace_dependency.ts +30 -9
  31. package/src/nodeset_tools/nodeset_to_xml.ts +30 -14
  32. package/src/private_namespace.ts +18 -0
@@ -9,6 +9,7 @@ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
9
9
  const node_opcua_debug_1 = require("node-opcua-debug");
10
10
  const base_node_impl_1 = require("./base_node_impl");
11
11
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
12
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
12
13
  exports.NamespaceOptions = {
13
14
  nodeIdNameSeparator: "-"
14
15
  };
@@ -19,11 +20,13 @@ const regExp1 = /^(s|i|b|g)=/;
19
20
  const regExp2 = /^ns=[0-9]+;(s|i|b|g)=/;
20
21
  const hasPropertyRefId = (0, node_opcua_nodeid_1.resolveNodeId)("HasProperty");
21
22
  const hasComponentRefId = (0, node_opcua_nodeid_1.resolveNodeId)("HasComponent");
23
+ const hasOrderedComponentRefId = (0, node_opcua_nodeid_1.resolveNodeId)("HasOrderedComponent");
22
24
  const hasEncoding = (0, node_opcua_nodeid_1.resolveNodeId)("HasEncoding");
23
25
  function _identifyParentInReference(references) {
24
26
  const candidates = references.filter((r) => {
25
27
  return (!r.isForward &&
26
28
  ((0, node_opcua_nodeid_1.sameNodeId)(r.referenceType, hasComponentRefId) ||
29
+ (0, node_opcua_nodeid_1.sameNodeId)(r.referenceType, hasOrderedComponentRefId) ||
27
30
  (0, node_opcua_nodeid_1.sameNodeId)(r.referenceType, hasPropertyRefId) ||
28
31
  (0, node_opcua_nodeid_1.sameNodeId)(r.referenceType, hasEncoding)));
29
32
  });
@@ -37,32 +40,48 @@ function _identifyParentInReference(references) {
37
40
  }
38
41
  return [ref.nodeId, ""];
39
42
  }
43
+ function _findParentNodeId(addressSpace, options) {
44
+ if (!options.references) {
45
+ return null;
46
+ }
47
+ for (const ref of options.references) {
48
+ ref._referenceType = addressSpace.findReferenceType(ref.referenceType);
49
+ /* istanbul ignore next */
50
+ if (!(0, base_node_impl_1.getReferenceType)(ref)) {
51
+ throw new Error("Cannot find referenceType " + JSON.stringify(ref));
52
+ }
53
+ ref.referenceType = ref._referenceType.nodeId;
54
+ }
55
+ // find HasComponent, or has Property reverse
56
+ return _identifyParentInReference(options.references);
57
+ }
58
+ function prepareName(browseName) {
59
+ const m = browseName.name.toString().replace(/[ ]/g, "").replace(/(<|>)/g, "");
60
+ return m;
61
+ }
40
62
  class NodeIdManager {
41
63
  constructor(namespaceIndex, addressSpace) {
42
- this._cache = {};
43
- this._reverseCache = {};
64
+ this._cacheSymbolicName = {};
65
+ this._cacheSymbolicNameRev = new Set();
44
66
  this._internal_id_counter = 1000;
45
67
  this.namespaceIndex = namespaceIndex;
46
68
  this.addressSpace = addressSpace;
47
69
  }
48
- setCache(cache) {
49
- this._cache = {};
50
- this._reverseCache = {};
51
- for (const [key, value, nodeClass] of cache) {
52
- this._addInCache(key, value, nodeClass);
53
- }
54
- }
55
70
  setSymbols(symbols) {
56
71
  function convertNodeClass(nodeClass) {
57
72
  return node_opcua_data_model_1.NodeClass[nodeClass];
58
73
  }
59
74
  const symbols2 = symbols.map((e) => [e[0], e[1], convertNodeClass(e[2])]);
60
- this.setCache(symbols2);
75
+ for (const [name, value, nodeClass] of symbols2) {
76
+ this._cacheSymbolicName[name] = [value, nodeClass];
77
+ this._cacheSymbolicNameRev.add(value);
78
+ }
61
79
  }
62
80
  getSymbols() {
63
81
  const line = [];
64
- for (const [key, value] of Object.entries(this._cache)) {
65
- const nodeClass = node_opcua_data_model_1.NodeClass[this._reverseCache[value].nodeClass];
82
+ for (const [key, [value, nodeClass1]] of Object.entries(this._cacheSymbolicName)) {
83
+ const node = this.addressSpace.findNode((0, node_opcua_nodeid_1.makeNodeId)(value, this.namespaceIndex));
84
+ const nodeClass = node_opcua_data_model_1.NodeClass[nodeClass1 || node_opcua_data_model_1.NodeClass.Unspecified];
66
85
  line.push([key, value, nodeClass]);
67
86
  }
68
87
  return line;
@@ -79,16 +98,44 @@ class NodeIdManager {
79
98
  do {
80
99
  nodeId = (0, node_opcua_nodeid_1.makeNodeId)(this._internal_id_counter, this.namespaceIndex);
81
100
  this._internal_id_counter += 1;
82
- } while (this.addressSpace.findNode(nodeId) || this._isInCache(nodeId.value));
101
+ } while (this.addressSpace.findNode(nodeId) || this._isInCache(nodeId));
83
102
  return nodeId;
84
103
  }
85
104
  constructNodeId(options) {
86
- function prepareName(browseName) {
87
- const m = browseName.name.toString().replace(/[ ]/g, "").replace(/(<|>)/g, "");
88
- return m;
105
+ const compose = (left, right) => { return right ? (left ? left + '_' + right : right) : left; };
106
+ const buildUpName2 = (nodeId, suffix) => {
107
+ const namespaceIndex = nodeId.namespace;
108
+ let name = "";
109
+ let n = this.addressSpace.findNode(nodeId);
110
+ while (n && n.nodeId.namespace === namespaceIndex) {
111
+ const e = prepareName(n.browseName) + suffix;
112
+ name = compose(e, name);
113
+ n = n.parentNodeId ? this.addressSpace.findNode(n.parentNodeId) : null;
114
+ }
115
+ return name;
116
+ };
117
+ if (!options.nodeId && options.registerSymbolicNames) {
118
+ const parentInfo = this.findParentNodeId(options);
119
+ let fullParentName = "";
120
+ if (parentInfo) {
121
+ const [parentNodeId, suffix] = parentInfo;
122
+ fullParentName = buildUpName2(parentNodeId, suffix);
123
+ }
124
+ const fullName = compose(fullParentName, prepareName(options.browseName));
125
+ if (this._cacheSymbolicName[fullName]) {
126
+ return (0, node_opcua_nodeid_1.makeNodeId)(this._cacheSymbolicName[fullName][0], this.namespaceIndex);
127
+ }
128
+ const nodeId = this._constructNodeId(options);
129
+ if (nodeId.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC) {
130
+ this._cacheSymbolicName[fullName] = [nodeId.value, options.nodeClass];
131
+ this._cacheSymbolicNameRev.add(nodeId.value);
132
+ }
133
+ return nodeId;
89
134
  }
135
+ return this._constructNodeId(options);
136
+ }
137
+ _constructNodeId(options) {
90
138
  let nodeId = options.nodeId;
91
- const nodeClass = options.nodeClass;
92
139
  if (!nodeId) {
93
140
  const parentInfo = this.findParentNodeId(options);
94
141
  if (parentInfo) {
@@ -101,44 +148,6 @@ class NodeIdManager {
101
148
  nodeId = new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeId.NodeIdType.STRING, childName, parentNodeId.namespace);
102
149
  return nodeId;
103
150
  }
104
- else if (parentNodeId.identifierType === node_opcua_nodeid_1.NodeId.NodeIdType.NUMERIC) {
105
- //
106
- const baseNameInCache = this._reverseCache[parentNodeId.value];
107
- if (baseNameInCache) {
108
- const newName = baseNameInCache.name + linkName + "_" + name;
109
- const nodeIdValueInCache = this._cache[newName];
110
- if (nodeIdValueInCache) {
111
- return new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeIdType.NUMERIC, nodeIdValueInCache, this.namespaceIndex);
112
- }
113
- else {
114
- return this._getOrCreateFromName(newName, nodeClass);
115
- }
116
- }
117
- else {
118
- if (options.registerSymbolicNames) {
119
- const newName = name;
120
- const nodeIdValueInCache = this._cache[newName];
121
- if (nodeIdValueInCache) {
122
- return new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeIdType.NUMERIC, nodeIdValueInCache, this.namespaceIndex);
123
- }
124
- else {
125
- return this._getOrCreateFromName(newName, nodeClass);
126
- }
127
- }
128
- }
129
- }
130
- // }} has parent ...
131
- }
132
- else {
133
- const isRootType = options.nodeClass === node_opcua_data_model_1.NodeClass.DataType ||
134
- options.nodeClass === node_opcua_data_model_1.NodeClass.ObjectType ||
135
- options.nodeClass === node_opcua_data_model_1.NodeClass.ReferenceType ||
136
- options.nodeClass === node_opcua_data_model_1.NodeClass.VariableType;
137
- // try to find
138
- if (isRootType) {
139
- const baseName = options.browseName.name.toString();
140
- return this._getOrCreateFromName(baseName, nodeClass);
141
- }
142
151
  }
143
152
  }
144
153
  else if (typeof nodeId === "string") {
@@ -148,9 +157,8 @@ class NodeIdManager {
148
157
  }
149
158
  else if (nodeId.match(regExp1)) {
150
159
  nodeId = "ns=" + this.namespaceIndex + ";" + nodeId;
151
- }
152
- else {
153
- nodeId = this._getOrCreateFromName(nodeId, nodeClass);
160
+ // } else {
161
+ // nodeId = this._getOrCreateFromName(nodeId, nodeClass);
154
162
  }
155
163
  }
156
164
  }
@@ -164,46 +172,12 @@ class NodeIdManager {
164
172
  return nodeId;
165
173
  }
166
174
  findParentNodeId(options) {
167
- if (!options.references) {
168
- return null;
169
- }
170
- for (const ref of options.references) {
171
- ref._referenceType = this.addressSpace.findReferenceType(ref.referenceType);
172
- /* istanbul ignore next */
173
- if (!(0, base_node_impl_1.getReferenceType)(ref)) {
174
- throw new Error("Cannot find referenceType " + JSON.stringify(ref));
175
- }
176
- ref.referenceType = ref._referenceType.nodeId;
177
- }
178
- // find HasComponent, or has Property reverse
179
- return _identifyParentInReference(options.references);
180
- }
181
- _addInCache(name, nodeIdValue, nodeClass) {
182
- (0, node_opcua_assert_1.assert)(!name.includes(":"), "Alias name should not contain special characters");
183
- (0, node_opcua_assert_1.assert)(typeof name === "string" && name[0] !== "[");
184
- if (this._isInCache(nodeIdValue) || this._cache[name]) {
185
- throw new Error("Already in Cache !" + name + " " + nodeIdValue + " = " + this._cache[name]);
186
- }
187
- this._cache[name] = nodeIdValue;
188
- this._reverseCache[nodeIdValue] = { name, nodeClass };
189
- }
190
- _isInCache(nodeIdValue) {
191
- return this._reverseCache[nodeIdValue] ? true : false;
175
+ return _findParentNodeId(this.addressSpace, options);
192
176
  }
193
- _getOrCreateFromName(aliasName, nodeClass) {
194
- (0, node_opcua_assert_1.assert)(isValidNodeClass(nodeClass), "invalid node class " + nodeClass);
195
- if (aliasName.includes(":")) {
196
- debugLog("alias name should not contain special characters");
197
- }
198
- (0, node_opcua_assert_1.assert)(!aliasName.includes(":"), "Alias name should not contain special characters");
199
- if (this._cache[aliasName]) {
200
- return new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeIdType.NUMERIC, this._cache[aliasName], this.namespaceIndex);
201
- }
202
- else {
203
- const nodeIdResult = this.buildNewNodeId();
204
- this._addInCache(aliasName, nodeIdResult.value, nodeClass);
205
- return nodeIdResult;
206
- }
177
+ _isInCache(nodeId) {
178
+ if (nodeId.namespace !== this.namespaceIndex || nodeId.identifierType !== node_opcua_nodeid_1.NodeIdType.NUMERIC)
179
+ return false;
180
+ return this._cacheSymbolicNameRev.has(nodeId.value) ? true : false;
207
181
  }
208
182
  }
209
183
  exports.NodeIdManager = NodeIdManager;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeid_manager.js","sourceRoot":"","sources":["../../src/nodeid_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeid_manager.js","sourceRoot":"","sources":["../../src/nodeid_manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,18 @@
1
1
  import { INamespace } from "node-opcua-address-space-base";
2
2
  export declare function hasHigherPriorityThan(namespaceIndex1: number, namespaceIndex2: number, priorityTable: number[]): boolean;
3
+ /**
4
+ *
5
+ * @param namespace
6
+ * @returns the order
7
+ *
8
+ * ---
9
+ * ua, own , di => 0 , 2, 1
10
+ *
11
+ * ---
12
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
13
+ *
14
+ * ---
15
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
16
+ */
3
17
  export declare function constructNamespacePriorityTable(namespace: INamespace): number[];
4
18
  export declare function constructNamespaceDependency(namespace: INamespace, priorityTable?: number[]): INamespace[];
@@ -82,6 +82,20 @@ function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable)
82
82
  return order1 > order2;
83
83
  }
84
84
  exports.hasHigherPriorityThan = hasHigherPriorityThan;
85
+ /**
86
+ *
87
+ * @param namespace
88
+ * @returns the order
89
+ *
90
+ * ---
91
+ * ua, own , di => 0 , 2, 1
92
+ *
93
+ * ---
94
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
95
+ *
96
+ * ---
97
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
98
+ */
85
99
  function constructNamespacePriorityTable(namespace) {
86
100
  // Namespace 0 will always be 0
87
101
  // Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
@@ -102,6 +116,7 @@ function constructNamespacePriorityTable(namespace) {
102
116
  return priorityList;
103
117
  }
104
118
  exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
119
+ const doDebug = false;
105
120
  function constructNamespaceDependency(namespace, priorityTable) {
106
121
  const addressSpace = namespace.addressSpace;
107
122
  priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
@@ -115,7 +130,12 @@ function constructNamespaceDependency(namespace, priorityTable) {
115
130
  }
116
131
  const _visitedDataType = new Set();
117
132
  _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
118
- return dependency;
133
+ doDebug && console.log("namespace : ", namespace.index, namespace.namespaceUri);
134
+ doDebug && console.log(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
135
+ const sorted = dependency.sort((a, b) => priorityTable[a.index] < priorityTable[b.index] ? -1 : 1);
136
+ doDebug && console.log("sorted:");
137
+ doDebug && console.log(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
138
+ return sorted;
119
139
  }
120
140
  exports.constructNamespaceDependency = constructNamespaceDependency;
121
141
  //# 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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"}
@@ -1,6 +1,4 @@
1
- import { BaseNode, INamespace } from "node-opcua-address-space-base";
2
- import { ITranslationTable } from "../../source/xml_writer";
3
- export declare function constructNamespaceTranslationTable(dependency: INamespace[]): ITranslationTable;
1
+ import { BaseNode } from "node-opcua-address-space-base";
4
2
  export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
5
3
  declare type NodeIdString = string;
6
4
  export interface BuildAliasesData {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortByBrowseName = exports.constructNamespaceTranslationTable = void 0;
3
+ exports.sortByBrowseName = void 0;
4
4
  /* eslint-disable complexity */
5
5
  /**
6
6
  * @module node-opcua-address-space
@@ -33,6 +33,7 @@ const XMLWriter = require("xml-writer");
33
33
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
34
34
  const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
35
35
  const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
36
+ const doDebug = false;
36
37
  function _hash(node) {
37
38
  return node.nodeId.toString();
38
39
  }
@@ -1045,14 +1046,24 @@ function writeAliases(xw, aliases) {
1045
1046
  }
1046
1047
  xw.endElement();
1047
1048
  }
1048
- function constructNamespaceTranslationTable(dependency) {
1049
+ function constructNamespaceTranslationTable(dependency, exportedNamespace) {
1049
1050
  const translationTable = {};
1050
- for (let i = 0; i < dependency.length; i++) {
1051
- translationTable[dependency[i].index] = i;
1051
+ (0, node_opcua_assert_1.assert)(dependency[0].namespaceUri === "http://opcfoundation.org/UA/");
1052
+ let counter = 0;
1053
+ translationTable[dependency[0].index] = counter++;
1054
+ //
1055
+ if (exportedNamespace) {
1056
+ translationTable[exportedNamespace.index] = counter++;
1057
+ }
1058
+ for (let i = 1; i < dependency.length; i++) {
1059
+ const dep = dependency[i];
1060
+ if (exportedNamespace && exportedNamespace === dep) {
1061
+ continue;
1062
+ }
1063
+ translationTable[dep.index] = counter++;
1052
1064
  }
1053
1065
  return translationTable;
1054
1066
  }
1055
- exports.constructNamespaceTranslationTable = constructNamespaceTranslationTable;
1056
1067
  function dumpReferenceType(xw, referenceType) {
1057
1068
  _markAsVisited(xw, referenceType);
1058
1069
  xw.startElement("UAReferenceType");
@@ -1113,7 +1124,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
1113
1124
  const xw = new XMLWriter(true);
1114
1125
  xw.priorityTable = (0, construct_namespace_dependency_1.constructNamespacePriorityTable)(this);
1115
1126
  const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(this, xw.priorityTable);
1116
- const translationTable = constructNamespaceTranslationTable(dependency);
1127
+ const translationTable = constructNamespaceTranslationTable(dependency, this);
1117
1128
  xw.translationTable = translationTable;
1118
1129
  xw.startDocument({ encoding: "utf-8", version: "1.0" });
1119
1130
  xw.startElement("UANodeSet");
@@ -1137,10 +1148,13 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
1137
1148
  // xx xw.writeAttribute("Version", "1.02");
1138
1149
  // xx xw.writeAttribute("LastModified", (new Date()).toISOString());
1139
1150
  // ------------- INamespace Uris
1140
- xw.startElement("NamespaceUris");
1141
1151
  initXmlWriterEx(xw, namespacesMap, namespaceArray);
1142
- // xx const namespaceArray = namespace.addressSpace.getNamespaceArray();
1143
- for (const depend of dependency) {
1152
+ xw.startElement("NamespaceUris");
1153
+ // let's sort the dependencies in the same order as the translation table
1154
+ const sortedDependencies = dependency.sort((a, b) => translationTable[a.index] > translationTable[b.index] ? 1 : -1);
1155
+ doDebug && console.log(sortedDependencies.map((a) => a.index + " + " + a.namespaceUri).join("\n"));
1156
+ doDebug && console.log("translation table ", translationTable);
1157
+ for (const depend of sortedDependencies) {
1144
1158
  if (depend.index === 0) {
1145
1159
  continue; // ignore namespace 0
1146
1160
  }
@@ -1156,7 +1170,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
1156
1170
  xw.writeAttribute("ModelUri", this.namespaceUri);
1157
1171
  xw.writeAttribute("Version", this.version);
1158
1172
  xw.writeAttribute("PublicationDate", this.publicationDate.toISOString());
1159
- for (const depend of dependency) {
1173
+ for (const depend of sortedDependencies) {
1160
1174
  if (depend.index === this.index) {
1161
1175
  continue; // ignore our namespace 0
1162
1176
  }