node-opcua-modeler 2.63.1 → 2.64.1

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 (51) hide show
  1. package/MyModel.NodeSet2.xml +125 -0
  2. package/dist/addExtensionObjectDataType.d.ts +21 -21
  3. package/dist/addExtensionObjectDataType.js +130 -130
  4. package/dist/buildModel.d.ts +16 -0
  5. package/dist/buildModel.js +91 -0
  6. package/dist/buildModel.js.map +1 -0
  7. package/dist/build_model_inner.d.ts +17 -17
  8. package/dist/build_model_inner.js +40 -40
  9. package/dist/display.d.ts +2 -0
  10. package/dist/display.js +96 -0
  11. package/dist/display.js.map +1 -0
  12. package/dist/displayNodeElement.d.ts +5 -5
  13. package/dist/displayNodeElement.js +191 -156
  14. package/dist/displayNodeElement.js.map +1 -1
  15. package/dist/dump_state_machine_to_graphviz.d.ts +6 -0
  16. package/dist/dump_state_machine_to_graphviz.js +120 -0
  17. package/dist/dump_state_machine_to_graphviz.js.map +1 -0
  18. package/dist/generate_markdown_doc.d.ts +6 -6
  19. package/dist/generate_markdown_doc.js +266 -155
  20. package/dist/generate_markdown_doc.js.map +1 -1
  21. package/dist/index.d.ts +24 -24
  22. package/dist/index.js +48 -48
  23. package/dist/promoteToMandatory.d.ts +8 -8
  24. package/dist/promoteToMandatory.js +97 -97
  25. package/dist/setNamespaceMetaData.d.ts +1 -1
  26. package/dist/setNamespaceMetaData.js +5 -5
  27. package/dist/symbol.d.ts +1 -1
  28. package/dist/symbol.js +2 -2
  29. package/dist/tableHelper.d.ts +9 -9
  30. package/dist/tableHelper.js +60 -60
  31. package/dist/to_cvs.d.ts +2 -2
  32. package/dist/to_cvs.js +11 -11
  33. package/dist/to_graphivz.d.ts +14 -13
  34. package/dist/to_graphivz.js +294 -235
  35. package/dist/to_graphivz.js.map +1 -1
  36. package/dist/types.d.ts +1 -1
  37. package/dist/types.js +2 -2
  38. package/distNodeJS/build_documentation_to_file.d.ts +2 -2
  39. package/distNodeJS/build_documentation_to_file.js +26 -26
  40. package/distNodeJS/build_model.d.ts +7 -7
  41. package/distNodeJS/build_model.js +21 -21
  42. package/distNodeJS/index.d.ts +5 -5
  43. package/distNodeJS/index.js +19 -19
  44. package/distNodeJS/symbol_cvs.d.ts +3 -3
  45. package/distNodeJS/symbol_cvs.js +63 -63
  46. package/examples/make_model.ts +4 -3
  47. package/package.json +19 -19
  48. package/source/displayNodeElement.ts +165 -112
  49. package/source/dump_state_machine_to_graphviz.ts +164 -0
  50. package/source/generate_markdown_doc.ts +217 -82
  51. package/source/to_graphivz.ts +129 -48
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dumpStateMachineToGraphViz = exports.dumpStateMachineToPlantUML = void 0;
4
+ function dumpStateMachineToPlantUML(stateMachineType) {
5
+ const lines = [];
6
+ function w(str) {
7
+ lines.push(str);
8
+ }
9
+ function s(state) {
10
+ return state ? state.nodeId.value.toString() : "";
11
+ }
12
+ function n(state) {
13
+ return state ? state.browseName.name.toString() : "";
14
+ }
15
+ //w("@startuml "); // + stateMachineType.browseName.toString() + ".png");
16
+ // initial state if any
17
+ if (stateMachineType.initialState) {
18
+ w(" [*] --> " + s(stateMachineType.initialState));
19
+ w(" " + s(stateMachineType.initialState) + ":" + n(stateMachineType.initialState));
20
+ }
21
+ else {
22
+ w("[*] --> [*]");
23
+ }
24
+ function t(transition) {
25
+ let name = n(transition);
26
+ name = name.replace(":", "");
27
+ name = name.replace("To", "\\nTo\\n");
28
+ name = name.replace("Transition", "\\nTransition");
29
+ return name;
30
+ }
31
+ stateMachineType.states && stateMachineType.states.forEach((state) => w(" " + s(state) + ": " + n(state)));
32
+ stateMachineType.transitions && stateMachineType.transitions.forEach((transition) => w(" " + s(transition.fromStateNode) + " --> " + s(transition.toStateNode) + " : " + t(transition)));
33
+ // w("@enduml");
34
+ return lines.join("\n");
35
+ }
36
+ exports.dumpStateMachineToPlantUML = dumpStateMachineToPlantUML;
37
+ /*
38
+ @startuml
39
+
40
+ 2930: Unshelved
41
+
42
+ 2932: TimedShelved
43
+
44
+ 2933: OneShotShelved
45
+
46
+ 2930 --> 2932 : "2935\nUnshelvedToTimedShelved"
47
+
48
+ 2930 --> 2933 : "2936\nUnshelvedToOneShotShelved"
49
+
50
+ 2932 --> 2930 : "2940\nTimedShelvedToUnshelved"
51
+
52
+ 2932 --> 2933 : "2942\nTimedShelvedToOneShotShelved"
53
+
54
+ 2933 --> 2930 : "2943\nOneShotShelvedToUnshelved"
55
+
56
+ 2933 --> 2932 : "2945\nOneShotShelvedToTimedShelved"
57
+
58
+ @enduml
59
+
60
+ */
61
+ /*
62
+ digraph finite_state_machine {
63
+ rankdir=LR;
64
+ size="8,5"
65
+ node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
66
+ node [shape = circle];
67
+ LR_0 -> LR_2 [ label = "SS(B)" ];
68
+ LR_0 -> LR_1 [ label = "SS(S)" ];
69
+ LR_1 -> LR_3 [ label = "S($end)" ];
70
+ LR_2 -> LR_6 [ label = "SS(b)" ];
71
+ LR_2 -> LR_5 [ label = "SS(a)" ];
72
+ LR_2 -> LR_4 [ label = "S(A)" ];
73
+ LR_5 -> LR_7 [ label = "S(b)" ];
74
+ LR_5 -> LR_5 [ label = "S(a)" ];
75
+ LR_6 -> LR_6 [ label = "S(b)" ];
76
+ LR_6 -> LR_5 [ label = "S(a)" ];
77
+ LR_7 -> LR_8 [ label = "S(b)" ];
78
+ LR_7 -> LR_5 [ label = "S(a)" ];
79
+ LR_8 -> LR_6 [ label = "S(b)" ];
80
+ LR_8 -> LR_5 [ label = "S(a)" ];
81
+ }
82
+ */
83
+ function dumpStateMachineToGraphViz(
84
+ /*StateMachineProxy*/
85
+ stateMachineType) {
86
+ const lines = [];
87
+ function w(str) {
88
+ lines.push(str);
89
+ }
90
+ function s(state) {
91
+ return state.nodeId.value.toString();
92
+ }
93
+ function n(state) {
94
+ return state.browseName.name.toString();
95
+ }
96
+ function s_full(state) {
97
+ return s(state) + ' [ label = "' + n(state) + '" ]';
98
+ }
99
+ w("digraph finite_state_machine {");
100
+ // initial state if any
101
+ if (stateMachineType.initialState) {
102
+ w("node [ shape = doublecircle];");
103
+ w(" _" + s_full(stateMachineType.initialState) + " ;");
104
+ }
105
+ w("node [ shape = circle];");
106
+ stateMachineType.states.forEach((state) => w(" _" + s_full(state)));
107
+ stateMachineType.transitions.forEach((transition) => w(" _" +
108
+ s(transition.fromStateNode) +
109
+ " -> _" +
110
+ s(transition.toStateNode) +
111
+ " [ " +
112
+ // " labeltooltip = \"" + i(transition) + "\" " +
113
+ ', label = "' +
114
+ n(transition) +
115
+ '" ];'));
116
+ w("}");
117
+ return lines.join("\n");
118
+ }
119
+ exports.dumpStateMachineToGraphViz = dumpStateMachineToGraphViz;
120
+ //# sourceMappingURL=dump_state_machine_to_graphviz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump_state_machine_to_graphviz.js","sourceRoot":"","sources":["../source/dump_state_machine_to_graphviz.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Namespace } from "node-opcua-address-space";
2
- export interface IWriter {
3
- writeLine(...args: any[]): void;
4
- }
5
- export declare function buildDocumentationToString(namespace: Namespace): Promise<string>;
6
- export declare function buildDocumentation(namespace: Namespace, writer: IWriter): Promise<void>;
1
+ import { Namespace } from "node-opcua-address-space";
2
+ export interface IWriter {
3
+ writeLine(...args: any[]): void;
4
+ }
5
+ export declare function buildDocumentationToString(namespace: Namespace): Promise<string>;
6
+ export declare function buildDocumentation(namespace: Namespace, writer: IWriter): Promise<void>;
@@ -1,156 +1,267 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.buildDocumentation = exports.buildDocumentationToString = void 0;
13
- const node_opcua_basic_types_1 = require("node-opcua-basic-types");
14
- const node_opcua_types_1 = require("node-opcua-types");
15
- const node_opcua_variant_1 = require("node-opcua-variant");
16
- const displayNodeElement_1 = require("./displayNodeElement");
17
- const tableHelper_1 = require("./tableHelper");
18
- const to_graphivz_1 = require("./to_graphivz");
19
- class Writer {
20
- constructor() {
21
- this.stream = [];
22
- /* empty */
23
- }
24
- writeLine(str) {
25
- this.stream.push(str);
26
- }
27
- toString() {
28
- return this.stream.join("\n");
29
- }
30
- }
31
- function buildDocumentationToString(namespace) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- const writer = new Writer();
34
- yield buildDocumentation(namespace, writer);
35
- return writer.toString();
36
- });
37
- }
38
- exports.buildDocumentationToString = buildDocumentationToString;
39
- function dataTypeToMarkdown(dataType) {
40
- var _a;
41
- const addressSpace = dataType.addressSpace;
42
- const writer = new Writer();
43
- const definition = dataType.getDefinition();
44
- writer.writeLine("\nisAbstract: " + (dataType.isAbstract ? "Yes" : "No"));
45
- if (dataType.subtypeOfObj) {
46
- writer.writeLine("\nSubtype of " + ((_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.browseName.toString()));
47
- }
48
- writer.writeLine("");
49
- if (definition instanceof node_opcua_types_1.EnumDefinition) {
50
- writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[node_opcua_variant_1.DataType.UInt32]);
51
- writer.writeLine("");
52
- const table = new tableHelper_1.TableHelper(["Name", "Value", "Description"]);
53
- for (const f of definition.fields || []) {
54
- table.push([f.name, (0, node_opcua_basic_types_1.coerceUInt32)(f.value[1]), f.description.text || ""]);
55
- }
56
- writer.writeLine(table.toMarkdownTable());
57
- }
58
- else if (definition instanceof node_opcua_types_1.StructureDefinition) {
59
- writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
60
- const table = new tableHelper_1.TableHelper(["Name", "data type", "value rank", "maxStringLength", "Dimensions", "Description"]);
61
- for (const f of definition.fields || []) {
62
- const dataTypeString = addressSpace.findDataType(f.dataType).browseName.toString();
63
- table.push([
64
- f.name,
65
- dataTypeString,
66
- f.valueRank ? f.valueRank : "",
67
- f.maxStringLength ? f.maxStringLength : "",
68
- f.arrayDimensions ? f.arrayDimensions : "",
69
- f.description.text || ""
70
- ]);
71
- }
72
- writer.writeLine(table.toMarkdownTable());
73
- }
74
- else {
75
- writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
76
- writer.writeLine("");
77
- }
78
- return writer.toString();
79
- }
80
- function buildDocumentation(namespace, writer) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const addressSpace = namespace.addressSpace;
83
- const namespaceUri = namespace.namespaceUri;
84
- // -------- Documentation
85
- const nsIndex = addressSpace.getNamespaceIndex(namespaceUri);
86
- writer.writeLine("");
87
- writer.writeLine("# Namespace " + namespaceUri);
88
- writer.writeLine("");
89
- // -------------- writeReferences
90
- const namespacePriv = namespace;
91
- writer.writeLine("");
92
- writer.writeLine("## References ");
93
- writer.writeLine("");
94
- for (const referenceType of namespacePriv._referenceTypeIterator()) {
95
- writer.writeLine("\n\n### reference " + referenceType.browseName.name);
96
- }
97
- function d(node) {
98
- return node.description ? node.description.text.toString() : "";
99
- }
100
- // -------------- writeDataType
101
- writer.writeLine("");
102
- writer.writeLine("## DataTypes");
103
- writer.writeLine("");
104
- for (const dataType of namespacePriv._dataTypeIterator()) {
105
- writer.writeLine("\n\n### " + dataType.browseName.name.toString());
106
- writer.writeLine("");
107
- writer.writeLine(dataTypeToMarkdown(dataType));
108
- }
109
- // -------------- writeObjectType
110
- writer.writeLine("");
111
- writer.writeLine("## ObjectTypes");
112
- writer.writeLine("");
113
- for (const objectType of namespacePriv._objectTypeIterator()) {
114
- writer.writeLine("\n\n### " + objectType.browseName.name.toString());
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)));
118
- // enumerate components
119
- writer.writeLine((0, displayNodeElement_1.displayNodeElement)(objectType, { format: "markdown" }));
120
- for (const comp of objectType.getComponents()) {
121
- writer.writeLine("\n\n#### " + comp.browseName.name.toString());
122
- writer.writeLine("");
123
- writer.writeLine(d(comp));
124
- }
125
- for (const comp of objectType.getProperties()) {
126
- writer.writeLine("\n\n#### " + comp.browseName.name.toString());
127
- writer.writeLine("");
128
- writer.writeLine(d(comp));
129
- }
130
- }
131
- // -------------- writeVariableType
132
- writer.writeLine("");
133
- writer.writeLine("## VariableTypes");
134
- writer.writeLine("");
135
- for (const variableType of namespacePriv._variableTypeIterator()) {
136
- writer.writeLine("\n\n### " + variableType.browseName.name.toString());
137
- writer.writeLine(d(variableType));
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)));
141
- // enumerate components
142
- writer.writeLine((0, displayNodeElement_1.displayNodeElement)(variableType, { format: "markdown" }));
143
- for (const reference of variableType.allReferences()) {
144
- const n = reference.node;
145
- writer.writeLine("\n\n#### " + n.browseName.name.toString());
146
- writer.writeLine("");
147
- writer.writeLine(d(n));
148
- }
149
- }
150
- });
151
- }
152
- exports.buildDocumentation = buildDocumentation;
153
- function graphVizToPlantUml(arg0) {
154
- throw new Error("Function not implemented.");
155
- }
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildDocumentation = exports.buildDocumentationToString = void 0;
13
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
14
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
15
+ const node_opcua_variant_1 = require("node-opcua-variant");
16
+ const displayNodeElement_1 = require("./displayNodeElement");
17
+ const tableHelper_1 = require("./tableHelper");
18
+ const to_graphivz_1 = require("./to_graphivz");
19
+ class Writer {
20
+ constructor() {
21
+ this.stream = [];
22
+ /* empty */
23
+ }
24
+ writeLine(str) {
25
+ this.stream.push(str);
26
+ }
27
+ toString() {
28
+ return this.stream.join("\n");
29
+ }
30
+ }
31
+ function buildDocumentationToString(namespace) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const writer = new Writer();
34
+ yield buildDocumentation(namespace, writer);
35
+ return writer.toString();
36
+ });
37
+ }
38
+ exports.buildDocumentationToString = buildDocumentationToString;
39
+ const toDataTypeStr = (p) => {
40
+ if (p.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
41
+ const v = p;
42
+ const arr = v.valueRank == 1 ? "[]" : "";
43
+ const brn = toDataTypeStr(p.dataTypeObj);
44
+ return brn + arr;
45
+ }
46
+ if (p.nodeClass === node_opcua_data_model_1.NodeClass.DataType) {
47
+ const dataType = p;
48
+ const brn = dataType.browseName.toString();
49
+ return brn;
50
+ }
51
+ return "";
52
+ };
53
+ function dataTypeEnumerationToMarkdown(dataType) {
54
+ const addressSpace = dataType.addressSpace;
55
+ const writer = new Writer();
56
+ writer.writeLine("");
57
+ if (dataType.description) {
58
+ writer.writeLine(dataType.description.text || "");
59
+ }
60
+ writer.writeLine(`\nThe fields of the ${dataType.browseName.name} DataType are defined in the following table:`);
61
+ writer.writeLine("");
62
+ const definition = dataType.getEnumDefinition();
63
+ writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[node_opcua_variant_1.DataType.Int32]);
64
+ writer.writeLine("");
65
+ const table = new tableHelper_1.TableHelper(["Name", "Value", "Description"]);
66
+ for (const f of definition.fields || []) {
67
+ table.push([f.name, (0, node_opcua_basic_types_1.coerceUInt32)(f.value[1]), f.description.text || ""]);
68
+ }
69
+ writer.writeLine(table.toMarkdownTable());
70
+ const str = dumpTypeRepresentation(dataType);
71
+ writer.writeLine(str);
72
+ return writer.toString();
73
+ }
74
+ function dumpTypeRepresentation(uaType) {
75
+ var _a;
76
+ const className = node_opcua_data_model_1.NodeClass[uaType.nodeClass];
77
+ const writer = new Writer();
78
+ writer.writeLine("\n");
79
+ writer.writeLine(`\nThe representation of the ${uaType.browseName.name} ${className} in the address space is shown in the following table:`);
80
+ const table = new tableHelper_1.TableHelper(["Name", "Attribute"]);
81
+ table.push(["NodeId", uaType.nodeId.toString()]);
82
+ table.push(["NamespaceUri", uaType.addressSpace.getNamespaceUri(uaType.nodeId.namespace)]);
83
+ table.push(["BrowseName", uaType.browseName.name.toString()]);
84
+ table.push(["NodeClass", node_opcua_data_model_1.NodeClass[uaType.nodeClass]]);
85
+ if (uaType.nodeClass === node_opcua_data_model_1.NodeClass.ReferenceType) {
86
+ table.push(["InverseName", uaType.inverseName.text]);
87
+ // table.push(["IsSymmetric", (uaType as UAReferenceType).isSymetric ? "Yes" : "No"]);
88
+ }
89
+ table.push(["IsAbstract", uaType.isAbstract ? "Yes" : "No"]);
90
+ table.push(["SubtypeOf", uaType.subtypeOfObj ? uaType.subtypeOfObj.browseName.toString() : ""]);
91
+ writer.writeLine("");
92
+ writer.writeLine(table.toMarkdownTable());
93
+ writer.writeLine("");
94
+ // forward refereces
95
+ {
96
+ const properties = uaType.findReferencesExAsObject("HasProperty");
97
+ const table = new tableHelper_1.TableHelper(["Reference", "NodeClass", "BrowseName", "DataType", "TypeDefinition", "ModellingRule"]);
98
+ if (uaType.subtypeOfObj) {
99
+ const referenceName = "HasSubType";
100
+ const p = uaType.subtypeOfObj;
101
+ const nodeClass = node_opcua_data_model_1.NodeClass[p.nodeClass];
102
+ const browseName = p.browseName.toString();
103
+ const dataTypeStr = toDataTypeStr(p);
104
+ const modellingRule = p.modellingRule || "";
105
+ const typeDefinitionName = "";
106
+ table.push([referenceName, nodeClass, browseName, dataTypeStr, typeDefinitionName, modellingRule]);
107
+ }
108
+ if (properties.length > 0) {
109
+ writer.writeLine(`\nThe reference of the ${uaType.browseName.name} ${className} is shown in the following table:`);
110
+ writer.writeLine("");
111
+ for (const p of properties) {
112
+ const referenceName = "HasProperty";
113
+ const nodeClass = node_opcua_data_model_1.NodeClass[p.nodeClass];
114
+ const browseName = p.browseName.toString();
115
+ const dataTypeStr = toDataTypeStr(p);
116
+ const typeDefinitionName = (_a = p.typeDefinitionObj) === null || _a === void 0 ? void 0 : _a.browseName.toString();
117
+ const modellingRule = p.modellingRule || "";
118
+ table.push([referenceName, nodeClass, browseName, dataTypeStr, typeDefinitionName, modellingRule]);
119
+ }
120
+ }
121
+ writer.writeLine("");
122
+ writer.writeLine(table.toMarkdownTable());
123
+ writer.writeLine("");
124
+ }
125
+ return writer.toString();
126
+ }
127
+ function dataTypeStructureToMarkdown(dataType) {
128
+ const addressSpace = dataType.addressSpace;
129
+ const writer = new Writer();
130
+ writer.writeLine("");
131
+ if (dataType.description) {
132
+ writer.writeLine(dataType.description.text || "");
133
+ }
134
+ const definition = dataType.getStructureDefinition();
135
+ writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
136
+ writer.writeLine("");
137
+ writer.writeLine(`The fields of the ${dataType.browseName.name} DataType are defined in the following table:`);
138
+ const c = (f) => {
139
+ var _a;
140
+ let dataTypeString = addressSpace.findDataType(f.dataType).browseName.toString();
141
+ if (f.valueRank === 1) {
142
+ dataTypeString += "[]";
143
+ }
144
+ else if (f.valueRank >= 2) {
145
+ dataTypeString += "[" + ((_a = f.arrayDimensions) === null || _a === void 0 ? void 0 : _a.map((d) => "" + d).join(" ")) + "]";
146
+ }
147
+ // f.maxStringLength ? f.maxStringLength : "",
148
+ // f.arrayDimensions ? f.arrayDimensions : "",
149
+ return dataTypeString;
150
+ };
151
+ const table = new tableHelper_1.TableHelper(["Name", "Type", "Description"]);
152
+ table.push([dataType.browseName.name, "Structure"]);
153
+ for (const f of definition.fields || []) {
154
+ table.push([" " + f.name, c(f), (f.description.text || "").replace(/\n/g, "<br>")]);
155
+ }
156
+ writer.writeLine(table.toMarkdownTable());
157
+ const str = dumpTypeRepresentation(dataType);
158
+ writer.writeLine(str);
159
+ return writer.toString();
160
+ }
161
+ function dataTypeToMarkdown(dataType) {
162
+ if (dataType.isEnumeration()) {
163
+ return dataTypeEnumerationToMarkdown(dataType);
164
+ }
165
+ else if (dataType.isStructure()) {
166
+ return dataTypeStructureToMarkdown(dataType);
167
+ }
168
+ else {
169
+ const writer = new Writer();
170
+ writer.writeLine("");
171
+ if (dataType.description) {
172
+ writer.writeLine(dataType.description.text || "");
173
+ }
174
+ writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
175
+ writer.writeLine("");
176
+ return writer.toString();
177
+ }
178
+ }
179
+ function dumpReferenceType(referenceType) {
180
+ const writer = new Writer();
181
+ const str = dumpTypeRepresentation(referenceType);
182
+ writer.writeLine(str);
183
+ return writer.toString();
184
+ }
185
+ function buildDocumentation(namespace, writer) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const addressSpace = namespace.addressSpace;
188
+ const namespaceUri = namespace.namespaceUri;
189
+ // -------- Documentation
190
+ const nsIndex = addressSpace.getNamespaceIndex(namespaceUri);
191
+ writer.writeLine("");
192
+ writer.writeLine("# Namespace " + namespaceUri);
193
+ writer.writeLine("");
194
+ const namespacePriv = namespace;
195
+ // -------------- writeReferences
196
+ if (namespacePriv._referenceTypeCount() > 0) {
197
+ writer.writeLine("");
198
+ writer.writeLine("## References ");
199
+ writer.writeLine("");
200
+ for (const referenceType of namespacePriv._referenceTypeIterator()) {
201
+ writer.writeLine("\n\n### reference " + referenceType.browseName.name);
202
+ dumpReferenceType(referenceType);
203
+ }
204
+ }
205
+ function d(node) {
206
+ return node.description ? node.description.text.toString() : "";
207
+ }
208
+ // -------------- writeDataType
209
+ if (namespacePriv._dataTypeCount() > 0) {
210
+ writer.writeLine("");
211
+ writer.writeLine("## DataTypes");
212
+ writer.writeLine("");
213
+ for (const dataType of namespacePriv._dataTypeIterator()) {
214
+ writer.writeLine("\n\n### " + dataType.browseName.name.toString());
215
+ writer.writeLine("");
216
+ writer.writeLine(dataTypeToMarkdown(dataType));
217
+ }
218
+ }
219
+ // -------------- writeObjectType
220
+ if (namespacePriv._objectTypeCount() > 0) {
221
+ writer.writeLine("");
222
+ writer.writeLine("## ObjectTypes");
223
+ writer.writeLine("");
224
+ for (const objectType of namespacePriv._objectTypeIterator()) {
225
+ writer.writeLine("\n\n### " + objectType.browseName.name.toString());
226
+ writer.writeLine(d(objectType));
227
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(objectType, { showBaseType: true, depth: 2 })));
228
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(objectType)));
229
+ // enumerate components
230
+ writer.writeLine((0, displayNodeElement_1.displayNodeElement)(objectType, { format: "markdown" }));
231
+ for (const comp of objectType.getComponents()) {
232
+ writer.writeLine("\n\n#### " + comp.browseName.name.toString());
233
+ writer.writeLine("");
234
+ writer.writeLine(d(comp));
235
+ }
236
+ for (const comp of objectType.getProperties()) {
237
+ writer.writeLine("\n\n#### " + comp.browseName.name.toString());
238
+ writer.writeLine("");
239
+ writer.writeLine(d(comp));
240
+ }
241
+ }
242
+ }
243
+ // -------------- writeVariableType
244
+ if (namespacePriv._variableTypeCount() > 0) {
245
+ writer.writeLine("");
246
+ writer.writeLine("## VariableTypes");
247
+ writer.writeLine("");
248
+ for (const variableType of namespacePriv._variableTypeIterator()) {
249
+ writer.writeLine("\n\n### " + variableType.browseName.name.toString());
250
+ writer.writeLine(d(variableType));
251
+ writer.writeLine("");
252
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(variableType, { showBaseType: true, depth: 2 })));
253
+ writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(variableType)));
254
+ // enumerate components
255
+ writer.writeLine((0, displayNodeElement_1.displayNodeElement)(variableType, { format: "markdown" }));
256
+ for (const reference of variableType.allReferences()) {
257
+ const n = reference.node;
258
+ writer.writeLine("\n\n#### " + n.browseName.name.toString());
259
+ writer.writeLine("");
260
+ writer.writeLine(d(n));
261
+ }
262
+ }
263
+ }
264
+ });
265
+ }
266
+ exports.buildDocumentation = buildDocumentation;
156
267
  //# 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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"}