node-opcua-modeler 2.63.1 → 2.63.2

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.
@@ -28,130 +28,150 @@ function symbol(nodeClass) {
28
28
  }
29
29
  }
30
30
  const hasSubtypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
31
- function displayNodeElement(node, options) {
32
- const head = ["ReferenceType", "NodeId", "BrowseName", "ModellingRule", "TypeDefinition", "DataType", "Value"];
33
- const table = new tableHelper_1.TableHelper(head);
34
- table.push(["BrowseName: ", { colSpan: 6, content: node.browseName.toString() }]);
35
- const superType = node.subtypeOfObj;
36
- if (superType) {
37
- table.push(["Base", superType.browseName.toString(), { colSpan: 6, content: node.browseName.toString() }]);
31
+ function dumpReference(data, ref, filter) {
32
+ (0, node_opcua_address_space_1.resolveReferenceNode)(data.node.addressSpace, ref);
33
+ if (!ref.isForward) {
34
+ return;
38
35
  }
39
- if (node.description) {
40
- table.push(["Description", node.description.toString(), { colSpan: 6, content: node.browseName.toString() }]);
36
+ if (node_opcua_nodeid_1.NodeId.sameNodeId(ref.referenceType, hasSubtypeNodeId)) {
37
+ return; // ignore forward HasSubtype
41
38
  }
42
- const alreadyDumped = {};
43
- const descriptions = [];
44
- function dumpReference(ref, filter) {
45
- (0, node_opcua_address_space_1.resolveReferenceNode)(node.addressSpace, ref);
46
- if (!ref.isForward) {
39
+ // ignore subtype references
40
+ /* istanbul ignore next */
41
+ if (!ref.node) {
42
+ // tslint:disable-next-line: no-console
43
+ console.log(" Halt ", ref.toString({ addressSpace: data.node.addressSpace }));
44
+ return;
45
+ }
46
+ const dir = ref.isForward ? " " : " ";
47
+ const refNode = ref.node;
48
+ const refType = (0, node_opcua_address_space_1.resolveReferenceType)(data.node.addressSpace, ref);
49
+ if (filter) {
50
+ if (refType.browseName.toString() !== filter) {
47
51
  return;
48
52
  }
49
- if (node_opcua_nodeid_1.NodeId.sameNodeId(ref.referenceType, hasSubtypeNodeId)) {
50
- return; // ignore forward HasSubtype
53
+ }
54
+ if (data.alreadyDumped[refNode.nodeId.toString()]) {
55
+ return;
56
+ }
57
+ // xx const r = refNode.findReferencesAsObject("HasModellingRule", true);
58
+ const modelingRule = refNode.modellingRule || ""; // r[0] ? r[0].browseName.toString() : "/";
59
+ let value = "";
60
+ let dataType = "";
61
+ if (refNode.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
62
+ const v = refNode;
63
+ const val = v.readValue().value.value;
64
+ if (v.isExtensionObject()) {
65
+ // don't do anything
51
66
  }
52
- // ignore subtype references
53
- /* istanbul ignore next */
54
- if (!ref.node) {
55
- // tslint:disable-next-line: no-console
56
- console.log(" Halt ", ref.toString({ addressSpace: node.addressSpace }));
57
- return;
67
+ else if (v.isEnumeration() && val !== null) {
68
+ const enumValue = v.readEnumValue();
69
+ value = enumValue.value + " (" + enumValue.name + ")";
58
70
  }
59
- const dir = ref.isForward ? " " : " ";
60
- const refNode = ref.node;
61
- const refType = (0, node_opcua_address_space_1.resolveReferenceType)(node.addressSpace, ref);
62
- if (filter) {
63
- if (refType.browseName.toString() !== filter) {
64
- return;
65
- }
71
+ else if (val instanceof Date) {
72
+ value = val ? val.toUTCString() : "";
66
73
  }
67
- if (alreadyDumped[refNode.nodeId.toString()]) {
68
- return;
74
+ else {
75
+ value = val ? val.toString() : "null";
69
76
  }
70
- // xx const r = refNode.findReferencesAsObject("HasModellingRule", true);
71
- const modelingRule = refNode.modellingRule || ""; // r[0] ? r[0].browseName.toString() : "/";
72
- let value = "";
73
- let dataType = "";
74
- if (refNode.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
75
- const v = refNode;
76
- const val = v.readValue().value.value;
77
- if (v.isExtensionObject()) {
78
- // don't do anything
79
- }
80
- else if (v.isEnumeration() && val !== null) {
81
- const enumValue = v.readEnumValue();
82
- value = enumValue.value + " (" + enumValue.name + ")";
83
- }
84
- else if (val instanceof Date) {
85
- value = val ? val.toUTCString() : "";
86
- }
87
- else {
88
- value = val ? val.toString() : "null";
89
- }
90
- const actualDataType = node_opcua_variant_1.DataType[v.readValue().value.dataType];
91
- const basicDataType = node_opcua_variant_1.DataType[v.dataTypeObj.basicDataType];
92
- dataType = v.dataTypeObj.browseName.toString();
93
- if (basicDataType !== dataType) {
94
- dataType = dataType + "(" + basicDataType + ")";
95
- }
96
- // findBasicDataType(v.dataTypeObj);
77
+ const actualDataType = node_opcua_variant_1.DataType[v.readValue().value.dataType];
78
+ const basicDataType = node_opcua_variant_1.DataType[v.dataTypeObj.basicDataType];
79
+ dataType = v.dataTypeObj.browseName.toString();
80
+ if (basicDataType !== dataType) {
81
+ dataType = dataType + "(" + basicDataType + ")";
97
82
  }
98
- const row = [
99
- refType.browseName.toString() + dir + symbol(refNode.nodeClass),
100
- refNode.nodeId.toString(),
101
- refNode.browseName.toString(),
102
- modelingRule,
103
- refNode.typeDefinitionObj ? refNode.typeDefinitionObj.browseName.toString() : "",
104
- dataType,
105
- value
106
- ];
107
- table.push(row);
108
- descriptions.push({
109
- description: refNode.description ? refNode.description.toString() : "",
110
- name: refNode.browseName.name,
111
- type: dataType
112
- });
113
- alreadyDumped[refNode.nodeId.toString()] = 1;
83
+ // findBasicDataType(v.dataTypeObj);
114
84
  }
115
- const references = node.allReferences();
116
- const m = {};
117
- function dumpReferences(_references) {
118
- // xx for (const ref of references) {
119
- // xx dumpReference(ref, "HasSubtype");
120
- // xx }
121
- for (const ref of _references) {
122
- dumpReference(ref, "HasTypeDefinition");
123
- }
124
- for (const ref of _references) {
125
- dumpReference(ref, "HasEncoding");
85
+ const row = [
86
+ refType.browseName.toString() + dir + symbol(refNode.nodeClass),
87
+ refNode.nodeId.toString(),
88
+ refNode.browseName.toString(),
89
+ modelingRule,
90
+ refNode.typeDefinitionObj ? refNode.typeDefinitionObj.browseName.toString() : "",
91
+ dataType,
92
+ value
93
+ ];
94
+ data.table.push(row);
95
+ data.descriptions.push({
96
+ description: refNode.description ? refNode.description.toString() : "",
97
+ name: refNode.browseName.name,
98
+ type: dataType
99
+ });
100
+ data.alreadyDumped[refNode.nodeId.toString()] = 1;
101
+ }
102
+ function dumpReferences(data, _references) {
103
+ // xx for (const ref of references) {
104
+ // xx dumpReference(ref, "HasSubtype");
105
+ // xx }
106
+ for (const ref of _references) {
107
+ dumpReference(data, ref, "HasTypeDefinition");
108
+ }
109
+ for (const ref of _references) {
110
+ dumpReference(data, ref, "HasEncoding");
111
+ }
112
+ for (const ref of _references) {
113
+ dumpReference(data, ref, "HasComponent");
114
+ }
115
+ for (const ref of _references) {
116
+ dumpReference(data, ref, "HasProperty");
117
+ }
118
+ for (const ref of _references) {
119
+ dumpReference(data, ref, "Organizes");
120
+ }
121
+ }
122
+ function displayNodeElement(node, options) {
123
+ const head = ["ReferenceType", "NodeId", "BrowseName", "ModellingRule", "TypeDefinition", "DataType", "Value"];
124
+ function createTable() {
125
+ const table = new tableHelper_1.TableHelper(head);
126
+ table.push(["BrowseName: ", { colSpan: 6, content: node.browseName.toString() }]);
127
+ const superType = node.subtypeOfObj;
128
+ if (superType) {
129
+ table.push(["Base", superType.browseName.toString(), { colSpan: 6, content: node.browseName.toString() }]);
126
130
  }
127
- for (const ref of _references) {
128
- dumpReference(ref, "HasComponent");
131
+ if (node.description) {
132
+ table.push(["Description", node.description.toString(), { colSpan: 6, content: node.browseName.toString() }]);
129
133
  }
130
- for (const ref of _references) {
131
- dumpReference(ref, "HasProperty");
134
+ return table;
135
+ }
136
+ const table = createTable();
137
+ const alreadyDumped = {};
138
+ const descriptions = [];
139
+ const references = node.allReferences();
140
+ const m = {};
141
+ const data = { table, node, alreadyDumped, descriptions };
142
+ dumpReferences(data, references);
143
+ function toText(table) {
144
+ if (options && options.format === "markdown") {
145
+ return table.toMarkdownTable();
132
146
  }
133
- for (const ref of _references) {
134
- dumpReference(ref, "Organizes");
147
+ else {
148
+ return table.toString();
135
149
  }
136
150
  }
137
- dumpReferences(references);
151
+ const str = [];
152
+ const tables = [];
153
+ tables.push(table);
154
+ str.push(toText(table));
155
+ const str2 = [];
138
156
  // add property from base object/variable type
139
157
  if (node.nodeClass === node_opcua_data_model_1.NodeClass.ObjectType || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
140
158
  const curNode = node;
141
159
  let subtypeOf = curNode.subtypeOfObj;
142
160
  while (subtypeOf) {
161
+ data.table = createTable();
143
162
  table.push([subtypeOf.browseName.toString() + ":", "--", "--", "--"]);
144
163
  const references2 = subtypeOf.allReferences();
145
- dumpReferences(references2);
164
+ dumpReferences(data, references2);
165
+ str.push("<details>");
166
+ str.push("<summary>Base type: " + subtypeOf.browseName.toString() + "</summary>");
167
+ str.push("");
168
+ str.push(toText(table));
169
+ str.push("");
170
+ str2.push("</details>");
146
171
  subtypeOf = subtypeOf.subtypeOfObj;
147
172
  }
148
173
  }
149
- if (options && options.format === "markdown") {
150
- return table.toMarkdownTable();
151
- }
152
- else {
153
- return table.toString();
154
- }
174
+ return str.join("\n") + str2.join("\n");
155
175
  }
156
176
  exports.displayNodeElement = displayNodeElement;
157
177
  //# sourceMappingURL=displayNodeElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"displayNodeElement.js","sourceRoot":"","sources":["../source/displayNodeElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"displayNodeElement.js","sourceRoot":"","sources":["../source/displayNodeElement.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ function dataTypeToMarkdown(dataType) {
66
66
  f.valueRank ? f.valueRank : "",
67
67
  f.maxStringLength ? f.maxStringLength : "",
68
68
  f.arrayDimensions ? f.arrayDimensions : "",
69
- f.description.text || ""
69
+ (f.description.text || "").replace(/\n/g, "<br>"),
70
70
  ]);
71
71
  }
72
72
  writer.writeLine(table.toMarkdownTable());
@@ -113,8 +113,8 @@ function buildDocumentation(namespace, writer) {
113
113
  for (const objectType of namespacePriv._objectTypeIterator()) {
114
114
  writer.writeLine("\n\n### " + objectType.browseName.name.toString());
115
115
  writer.writeLine(d(objectType));
116
- writer.writeLine(graphVizToPlantUml((0, to_graphivz_1.dumpClassHierachry)(objectType, { showBaseType: true, depth: 2 })));
117
- writer.writeLine(graphVizToPlantUml((0, to_graphivz_1.opcuaToDot)(objectType)));
116
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(objectType, { showBaseType: true, depth: 2 })));
117
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(objectType)));
118
118
  // enumerate components
119
119
  writer.writeLine((0, displayNodeElement_1.displayNodeElement)(objectType, { format: "markdown" }));
120
120
  for (const comp of objectType.getComponents()) {
@@ -136,8 +136,8 @@ function buildDocumentation(namespace, writer) {
136
136
  writer.writeLine("\n\n### " + variableType.browseName.name.toString());
137
137
  writer.writeLine(d(variableType));
138
138
  writer.writeLine("");
139
- writer.writeLine(graphVizToPlantUml((0, to_graphivz_1.dumpClassHierachry)(variableType, { showBaseType: true, depth: 2 })));
140
- writer.writeLine(graphVizToPlantUml((0, to_graphivz_1.opcuaToDot)(variableType)));
139
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(variableType, { showBaseType: true, depth: 2 })));
140
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(variableType)));
141
141
  // enumerate components
142
142
  writer.writeLine((0, displayNodeElement_1.displayNodeElement)(variableType, { format: "markdown" }));
143
143
  for (const reference of variableType.allReferences()) {
@@ -150,7 +150,4 @@ function buildDocumentation(namespace, writer) {
150
150
  });
151
151
  }
152
152
  exports.buildDocumentation = buildDocumentation;
153
- function graphVizToPlantUml(arg0) {
154
- throw new Error("Function not implemented.");
155
- }
156
153
  //# sourceMappingURL=generate_markdown_doc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate_markdown_doc.js","sourceRoot":"","sources":["../source/generate_markdown_doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate_markdown_doc.js","sourceRoot":"","sources":["../source/generate_markdown_doc.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,6 @@ export declare function dumpClassHierachry(typeNode: UAObjectType | UAVariableTy
9
9
  showBaseType?: boolean;
10
10
  showSubType?: boolean;
11
11
  }): string;
12
+ export declare function graphVizToPlantUml(str: string): string;
12
13
  export declare function dumpTypeDiagram(namespace: any): string;
13
14
  export {};
@@ -1,17 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dumpTypeDiagram = exports.dumpClassHierachry = exports.opcuaToDot = void 0;
3
+ exports.dumpTypeDiagram = exports.graphVizToPlantUml = exports.dumpClassHierachry = exports.opcuaToDot = void 0;
4
4
  const node_opcua_constants_1 = require("node-opcua-constants");
5
5
  const node_opcua_data_model_1 = require("node-opcua-data-model");
6
+ function e(str) {
7
+ return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
8
+ }
6
9
  function innerText(node) {
7
10
  var _a, _b;
8
11
  const browseName = node.browseName.name;
9
12
  const typeDefinition = (_b = (_a = node.typeDefinitionObj) === null || _a === void 0 ? void 0 : _a.browseName) === null || _b === void 0 ? void 0 : _b.name;
10
13
  if (typeDefinition) {
11
- return `[ label =< <FONT point-size="8" ><I>${typeDefinition}</I></FONT><BR/>${browseName} >]`;
14
+ return `[ label =< <FONT point-size="8" ><I>${typeDefinition}</I></FONT><BR/>${e(browseName)} >]`;
12
15
  }
13
16
  else {
14
- return `[label =< ${browseName} >]`;
17
+ return `[label =< ${e(browseName)} >]`;
15
18
  }
16
19
  }
17
20
  function arrowHeadAttribute(reference) {
@@ -51,11 +54,16 @@ class NodeRegistry {
51
54
  constructor() {
52
55
  this.m = {};
53
56
  this.invisibleNodes = [];
57
+ this.duplicated = {};
54
58
  }
55
- add(node) {
59
+ add(name, node) {
60
+ if (this.duplicated[name]) {
61
+ return; //throw new Error("Already included");
62
+ }
63
+ this.duplicated[name] = name;
56
64
  const nodeClass = node_opcua_data_model_1.NodeClass[node.nodeClass];
57
65
  this.m[nodeClass] = this.m[nodeClass] || [];
58
- this.m[nodeClass].push(node);
66
+ this.m[nodeClass].push({ name, node });
59
67
  }
60
68
  addInvisibleNode(name) {
61
69
  this.invisibleNodes.push(name);
@@ -67,22 +75,22 @@ function dumpNodeByNodeClass(str, nodeRegistry) {
67
75
  continue;
68
76
  }
69
77
  str.push(` ## -> ${className}`);
70
- const mandatoryNodes = listNode.filter((node) => !node.modellingRule || node.modellingRule.match(/Mandatory/));
71
- const optionalNodes = listNode.filter((node) => node.modellingRule && node.modellingRule.match(/Optional/));
78
+ const mandatoryNodes = listNode.filter(({ name, node }) => !node.modellingRule || node.modellingRule.match(/Mandatory/));
79
+ const optionalNodes = listNode.filter(({ name, node }) => node.modellingRule && node.modellingRule.match(/Optional/));
72
80
  if (mandatoryNodes.length > 0) {
73
81
  str.push(` node [];`);
74
82
  const decoration = regularShapes[className];
75
83
  str.push(` node ${decoration};`);
76
- for (const node of mandatoryNodes) {
77
- str.push(` ${node.browseName.name} ${innerText(node)}`);
84
+ for (const { name, node } of mandatoryNodes) {
85
+ str.push(` ${name} ${innerText(node)}`);
78
86
  }
79
87
  }
80
88
  if (optionalNodes.length > 0) {
81
89
  const decoration2 = regularShapesOptionals[className];
82
90
  str.push(` node [];`);
83
91
  str.push(` node ${decoration2};`);
84
- for (const node of listNode) {
85
- str.push(` ${node.browseName.name} ${innerText(node)}`);
92
+ for (const { name, node } of listNode) {
93
+ str.push(` ${name} ${innerText(node)}`);
86
94
  }
87
95
  }
88
96
  }
@@ -96,7 +104,6 @@ function dumpNodeByNodeClass(str, nodeRegistry) {
96
104
  function opcuaToDot(node, options) {
97
105
  options = options || { naked: false };
98
106
  const nodeRegistry = new NodeRegistry();
99
- nodeRegistry.add(node);
100
107
  const str = [];
101
108
  const str2 = [];
102
109
  str.push("digraph G {");
@@ -105,8 +112,12 @@ function opcuaToDot(node, options) {
105
112
  str.push(" nodesep=0.5;");
106
113
  str.push(" node [];");
107
114
  }
115
+ function makeId(p, c) {
116
+ return `${p}_${c}`.replace(" ", "_").replace(/<|>/g, "_");
117
+ }
118
+ // eslint-disable-next-line max-params
108
119
  // eslint-disable-next-line max-statements
109
- function typeMemberAndSubTypeMember(str, node, parent, offset, prefix, joinWithCaller) {
120
+ function typeMemberAndSubTypeMember(str, parentNode, node, parent, offset, prefix, joinWithCaller, visitorMap) {
110
121
  let innerDepth = 0;
111
122
  const browseName = (parent || node).browseName.name.toString();
112
123
  const r = [];
@@ -114,34 +125,49 @@ function opcuaToDot(node, options) {
114
125
  const references = node.findReferencesEx("Aggregates", node_opcua_data_model_1.BrowseDirection.Forward);
115
126
  const folderElements = node.findReferencesEx("Organizes", node_opcua_data_model_1.BrowseDirection.Forward);
116
127
  const childReferences = [...references, ...folderElements];
128
+ const id = makeId(parentNode, browseName);
129
+ nodeRegistry.add(id, node);
130
+ function addInvisibleNode(prefix, index) {
131
+ const breakNode = `${prefix}${index}`;
132
+ r2.push(breakNode);
133
+ nodeRegistry.addInvisibleNode(breakNode);
134
+ return breakNode;
135
+ }
117
136
  for (let i = 0; i < childReferences.length; i++) {
118
137
  const isLast = i === childReferences.length - 1;
119
- innerDepth++;
120
138
  const reference = childReferences[i];
121
139
  const childNode = reference.node;
122
140
  const childName = childNode.browseName.name.toString();
123
- nodeRegistry.add(childNode);
141
+ const fullChildName = makeId(id, childName);
142
+ // avoid member duplication
143
+ if (visitorMap[fullChildName]) {
144
+ continue;
145
+ }
146
+ else {
147
+ visitorMap[fullChildName] = 1;
148
+ }
149
+ innerDepth++;
150
+ nodeRegistry.add(fullChildName, childNode);
124
151
  const edgeAttributes = arrowHead(reference);
125
- const breakNode = `${prefix}${i + offset}`;
126
- r2.push(breakNode);
127
- nodeRegistry.addInvisibleNode(breakNode);
128
- const horizontalPart = `{ rank=same ${breakNode} -> ${childName} ${edgeAttributes} }`;
152
+ const breakNode = addInvisibleNode(prefix, i + offset);
153
+ const horizontalPart = `{ rank=same ${breakNode} -> ${fullChildName} ${edgeAttributes} }`;
129
154
  r.push(horizontalPart);
130
155
  // push children on same level
131
- const [depth] = typeMemberAndSubTypeMember(str, childNode, null, 0, `${prefix}${i + offset}_`, false);
132
- for (let d = 0; d < depth; d++) {
133
- offset++;
134
- if (!isLast) {
135
- const breakNode = `${prefix}${i + offset}`;
136
- r2.push(breakNode);
137
- nodeRegistry.addInvisibleNode(breakNode);
156
+ const [depth] = typeMemberAndSubTypeMember(str, id, childNode, null, 0, `${prefix}${i + offset}_`, false, visitorMap);
157
+ // add invisible nodes
158
+ {
159
+ for (let d = 0; d < depth; d++) {
160
+ offset++;
161
+ if (!isLast) {
162
+ addInvisibleNode(prefix, i + offset);
163
+ }
138
164
  }
165
+ innerDepth += depth;
139
166
  }
140
- innerDepth += depth;
141
167
  }
142
168
  if (node.nodeClass == node_opcua_data_model_1.NodeClass.ObjectType || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
143
169
  if (node.subtypeOfObj && node.subtypeOfObj.nodeId.namespace === node.nodeId.namespace) {
144
- const [depth, rr2] = typeMemberAndSubTypeMember(str, node.subtypeOfObj, node, r.length, prefix, true);
170
+ const [depth, rr2] = typeMemberAndSubTypeMember(str, parentNode, node.subtypeOfObj, node, r.length, prefix, true, visitorMap);
145
171
  innerDepth += depth;
146
172
  r2.push(...rr2);
147
173
  }
@@ -151,12 +177,13 @@ function opcuaToDot(node, options) {
151
177
  }
152
178
  if (!joinWithCaller) {
153
179
  if (r2.length) {
154
- str.push(` ${browseName} -> ${r2.join(" -> ")} [arrowhead=none];`);
180
+ str.push(` ${id} -> ${r2.join(" -> ")} [arrowhead=none];`);
155
181
  }
156
182
  }
157
183
  return [innerDepth, r2];
158
184
  }
159
- typeMemberAndSubTypeMember(str2, node, null, 0, "r", false);
185
+ const visitorMap = {};
186
+ typeMemberAndSubTypeMember(str2, "", node, null, 0, "r", false, visitorMap);
160
187
  if (!options.naked) {
161
188
  dumpNodeByNodeClass(str, nodeRegistry);
162
189
  }
@@ -172,7 +199,7 @@ function dumpClassHierachry(typeNode, options) {
172
199
  const level = options.depth || 50;
173
200
  const str = [];
174
201
  const nodeRegistry = new NodeRegistry();
175
- nodeRegistry.add(typeNode);
202
+ nodeRegistry.add(typeNode.browseName.name, typeNode);
176
203
  str.push("digraph G {");
177
204
  if (!options.naked) {
178
205
  // str.push(" splines=ortho;");
@@ -188,7 +215,7 @@ function dumpClassHierachry(typeNode, options) {
188
215
  const childNode = reference.node;
189
216
  const nodeClass = node_opcua_data_model_1.NodeClass[childNode.nodeClass];
190
217
  const childName = childNode.browseName.name.toString();
191
- nodeRegistry.add(typeNode);
218
+ nodeRegistry.add(childName, childNode);
192
219
  const edgeAttributes = arrowHead(reference);
193
220
  str.push(` ${childName} -> ${parentName} ${edgeAttributes};`);
194
221
  if (level > 0) {
@@ -196,8 +223,27 @@ function dumpClassHierachry(typeNode, options) {
196
223
  }
197
224
  }
198
225
  }
199
- /** */
226
+ function dumpBaseTypes(str, typeNode, level) {
227
+ const parentName = typeNode.browseName.name.toString();
228
+ const references = typeNode.findReferencesEx("HasSubtype", node_opcua_data_model_1.BrowseDirection.Inverse);
229
+ for (let i = 0; i < references.length; i++) {
230
+ const reference = references[i];
231
+ const childNode = reference.node;
232
+ const nodeClass = node_opcua_data_model_1.NodeClass[childNode.nodeClass];
233
+ const childName = childNode.browseName.name.toString();
234
+ nodeRegistry.add(childName, childNode);
235
+ const edgeAttributes = arrowHead(reference);
236
+ str.push(` ${parentName} -> ${childName} ${edgeAttributes};`);
237
+ if (level > 0) {
238
+ dumpBaseTypes(str, childNode, level - 1);
239
+ }
240
+ }
241
+ }
200
242
  const str2 = [];
243
+ if (options.showBaseType) {
244
+ dumpBaseTypes(str2, typeNode, level);
245
+ }
246
+ /** */
201
247
  if (options.showSubType) {
202
248
  dumpSubtypes(str2, typeNode, level);
203
249
  }
@@ -211,8 +257,9 @@ function dumpClassHierachry(typeNode, options) {
211
257
  exports.dumpClassHierachry = dumpClassHierachry;
212
258
  function graphVizToPlantUml(str) {
213
259
  const ttt = "```";
214
- return `${ttt}plantuml\n@startuml\n${str.join("\n")}\n@enduml\n${ttt}`;
260
+ return `${ttt}plantuml\n@startuml\n${str}\n@enduml\n${ttt}`;
215
261
  }
262
+ exports.graphVizToPlantUml = graphVizToPlantUml;
216
263
  function dumpTypeDiagram(namespace) {
217
264
  const objectTypes = [...namespace._objectTypeIterator()];
218
265
  const variableTypes = [...namespace._variableTypeIterator()];
@@ -222,13 +269,13 @@ function dumpTypeDiagram(namespace) {
222
269
  const str = [];
223
270
  for (const type of [...objectTypes, ...variableTypes]) {
224
271
  const d = opcuaToDot(type);
225
- str.push(graphVizToPlantUml([d]));
272
+ str.push(graphVizToPlantUml(d));
226
273
  const d2 = dumpClassHierachry(type);
227
- str.push(graphVizToPlantUml([d2]));
274
+ str.push(graphVizToPlantUml(d2));
228
275
  }
229
276
  for (const dataType of dataTypes) {
230
277
  const d = opcuaToDot(dataType);
231
- str.push(graphVizToPlantUml([d]));
278
+ str.push(graphVizToPlantUml(d));
232
279
  }
233
280
  return str.join("\n");
234
281
  }