node-opcua-address-space 2.51.0 → 2.52.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 (149) hide show
  1. package/dist/src/namespace_impl.d.ts +8 -8
  2. package/dist/src/namespace_impl.js +19 -28
  3. package/dist/src/namespace_impl.js.map +1 -1
  4. package/package.json +38 -38
  5. package/src/namespace_impl.ts +69 -80
  6. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +0 -1
  7. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +0 -3
  8. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +0 -1
  9. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +0 -4
  10. package/dist/source/interfaces/data_access/ua_discrete_item.js +0 -3
  11. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +0 -1
  12. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +0 -25
  13. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +0 -3
  14. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +0 -1
  15. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +0 -27
  16. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +0 -3
  17. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +0 -1
  18. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +0 -17
  19. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +0 -3
  20. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +0 -1
  21. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +0 -4
  22. package/dist/source/interfaces/data_access/ua_y_array_item.js +0 -3
  23. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +0 -1
  24. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +0 -11
  25. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +0 -3
  26. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +0 -1
  27. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +0 -69
  28. package/dist/source/interfaces/state_machine/finite_state_machine.js +0 -3
  29. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +0 -1
  30. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +0 -74
  31. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +0 -3
  32. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +0 -1
  33. package/dist/source/interfaces/state_machine/state_machine.d.ts +0 -342
  34. package/dist/source/interfaces/state_machine/state_machine.js +0 -3
  35. package/dist/source/interfaces/state_machine/state_machine.js.map +0 -1
  36. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +0 -18
  37. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +0 -3
  38. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +0 -1
  39. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +0 -29
  40. package/dist/source/interfaces/state_machine/ua_state_variable.js +0 -3
  41. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +0 -1
  42. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +0 -26
  43. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +0 -3
  44. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +0 -1
  45. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +0 -41
  46. package/dist/source/interfaces/subscription_diagnostics_variable.js +0 -3
  47. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +0 -1
  48. package/dist/source/interfaces/ua_authorisation_service.d.ts +0 -1
  49. package/dist/source/interfaces/ua_authorisation_service.js +0 -3
  50. package/dist/source/interfaces/ua_authorisation_service.js.map +0 -1
  51. package/dist/source/ua_namespace_meta_data_type.d.ts +0 -71
  52. package/dist/source/ua_namespace_meta_data_type.js +0 -3
  53. package/dist/source/ua_namespace_meta_data_type.js.map +0 -1
  54. package/dist/src/alarms_and_conditions/base_event_type.d.ts +0 -26
  55. package/dist/src/alarms_and_conditions/base_event_type.js +0 -41
  56. package/dist/src/alarms_and_conditions/base_event_type.js.map +0 -1
  57. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +0 -22
  58. package/dist/src/alarms_and_conditions/shelving_state_machine.js +0 -241
  59. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +0 -1
  60. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +0 -16
  61. package/dist/src/alarms_and_conditions/trip_alarm.js +0 -21
  62. package/dist/src/alarms_and_conditions/trip_alarm.js.map +0 -1
  63. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +0 -54
  64. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +0 -255
  65. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +0 -1
  66. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +0 -138
  67. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +0 -460
  68. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +0 -1
  69. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +0 -35
  70. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +0 -32
  71. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +0 -1
  72. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +0 -191
  73. package/dist/src/alarms_and_conditions/ua_condition_base.js +0 -1029
  74. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +0 -1
  75. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +0 -11
  76. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +0 -58
  77. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +0 -1
  78. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +0 -24
  79. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +0 -59
  80. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +0 -1
  81. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +0 -14
  82. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +0 -17
  83. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +0 -1
  84. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +0 -22
  85. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +0 -87
  86. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +0 -1
  87. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +0 -6
  88. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +0 -11
  89. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +0 -1
  90. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +0 -76
  91. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +0 -237
  92. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +0 -1
  93. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +0 -27
  94. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +0 -62
  95. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +0 -1
  96. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +0 -49
  97. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +0 -176
  98. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +0 -1
  99. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +0 -47
  100. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +0 -151
  101. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +0 -1
  102. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +0 -16
  103. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +0 -18
  104. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +0 -1
  105. package/dist/src/base_node.d.ts +0 -279
  106. package/dist/src/base_node.js +0 -1364
  107. package/dist/src/base_node.js.map +0 -1
  108. package/dist/src/data_access/ua_analog_item.d.ts +0 -13
  109. package/dist/src/data_access/ua_analog_item.js +0 -37
  110. package/dist/src/data_access/ua_analog_item.js.map +0 -1
  111. package/dist/src/data_access/ua_data_item.d.ts +0 -16
  112. package/dist/src/data_access/ua_data_item.js +0 -66
  113. package/dist/src/data_access/ua_data_item.js.map +0 -1
  114. package/dist/src/data_access/ua_multistate_discrete.d.ts +0 -23
  115. package/dist/src/data_access/ua_multistate_discrete.js +0 -131
  116. package/dist/src/data_access/ua_multistate_discrete.js.map +0 -1
  117. package/dist/src/namespace.d.ts +0 -475
  118. package/dist/src/namespace.js +0 -1775
  119. package/dist/src/namespace.js.map +0 -1
  120. package/dist/src/reference.d.ts +0 -43
  121. package/dist/src/reference.js +0 -138
  122. package/dist/src/reference.js.map +0 -1
  123. package/dist/src/session_context.d.ts +0 -4
  124. package/dist/src/session_context.js +0 -9
  125. package/dist/src/session_context.js.map +0 -1
  126. package/dist/src/ua_data_type.d.ts +0 -83
  127. package/dist/src/ua_data_type.js +0 -289
  128. package/dist/src/ua_data_type.js.map +0 -1
  129. package/dist/src/ua_method.d.ts +0 -42
  130. package/dist/src/ua_method.js +0 -204
  131. package/dist/src/ua_method.js.map +0 -1
  132. package/dist/src/ua_object.d.ts +0 -29
  133. package/dist/src/ua_object.js +0 -153
  134. package/dist/src/ua_object.js.map +0 -1
  135. package/dist/src/ua_object_type.d.ts +0 -49
  136. package/dist/src/ua_object_type.js +0 -124
  137. package/dist/src/ua_object_type.js.map +0 -1
  138. package/dist/src/ua_reference_type.d.ts +0 -42
  139. package/dist/src/ua_reference_type.js +0 -138
  140. package/dist/src/ua_reference_type.js.map +0 -1
  141. package/dist/src/ua_variable.d.ts +0 -346
  142. package/dist/src/ua_variable.js +0 -1721
  143. package/dist/src/ua_variable.js.map +0 -1
  144. package/dist/src/ua_variable_type.d.ts +0 -54
  145. package/dist/src/ua_variable_type.js +0 -555
  146. package/dist/src/ua_variable_type.js.map +0 -1
  147. package/dist/src/ua_view.d.ts +0 -16
  148. package/dist/src/ua_view.js +0 -42
  149. package/dist/src/ua_view.js.map +0 -1
@@ -1,555 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initialize_properties_and_components = exports.assertUnusedChildBrowseName = exports.UAVariableType = exports.topMostParentIsObjectTypeOrVariableType = void 0;
4
- /**
5
- * @module node-opcua-address-space
6
- */
7
- // tslint:disable:max-classes-per-file
8
- // tslint:disable:no-console
9
- const chalk = require("chalk");
10
- const node_opcua_assert_1 = require("node-opcua-assert");
11
- const node_opcua_constants_1 = require("node-opcua-constants");
12
- const node_opcua_data_model_1 = require("node-opcua-data-model");
13
- const node_opcua_data_model_2 = require("node-opcua-data-model");
14
- const node_opcua_data_model_3 = require("node-opcua-data-model");
15
- const node_opcua_data_value_1 = require("node-opcua-data-value");
16
- const node_opcua_debug_1 = require("node-opcua-debug");
17
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
18
- const node_opcua_status_code_1 = require("node-opcua-status-code");
19
- const node_opcua_utils_1 = require("node-opcua-utils");
20
- const node_opcua_variant_1 = require("node-opcua-variant");
21
- const node_opcua_variant_2 = require("node-opcua-variant");
22
- const node_opcua_variant_3 = require("node-opcua-variant");
23
- const source_1 = require("../source");
24
- const base_node_1 = require("./base_node");
25
- const base_node_private_1 = require("./base_node_private");
26
- const session_context_1 = require("./session_context");
27
- const tools = require("./tool_isSupertypeOf");
28
- const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
29
- const tool_isSupertypeOf_2 = require("./tool_isSupertypeOf");
30
- const ua_variable_1 = require("./ua_variable");
31
- const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
32
- const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
33
- const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
34
- function topMostParentIsObjectTypeOrVariableType(addressSpace, options) {
35
- var _a;
36
- if (options.modellingRule) {
37
- return true;
38
- }
39
- const parent = options.propertyOf || options.componentOf;
40
- if (!parent) {
41
- return false;
42
- }
43
- const parentNode = addressSpace._coerceNode(parent);
44
- if (!parentNode) {
45
- return false;
46
- }
47
- let currentNode = parentNode;
48
- while (currentNode) {
49
- const nodeClass = parentNode.nodeClass;
50
- if (nodeClass === node_opcua_data_model_1.NodeClass.ObjectType || nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
51
- return true;
52
- }
53
- if (nodeClass === node_opcua_data_model_1.NodeClass.Object || nodeClass === node_opcua_data_model_1.NodeClass.Variable || nodeClass === node_opcua_data_model_1.NodeClass.Method) {
54
- }
55
- currentNode = (_a = currentNode.findReferencesEx("HasChild", node_opcua_data_model_2.BrowseDirection.Inverse)[0]) === null || _a === void 0 ? void 0 : _a.node;
56
- }
57
- return false;
58
- }
59
- exports.topMostParentIsObjectTypeOrVariableType = topMostParentIsObjectTypeOrVariableType;
60
- class UAVariableType extends base_node_1.BaseNode {
61
- constructor(options) {
62
- super(options);
63
- this.nodeClass = node_opcua_data_model_1.NodeClass.VariableType;
64
- this.isSupertypeOf = tools.construct_isSupertypeOf(UAVariableType);
65
- (0, ua_variable_1.verifyRankAndDimensions)(options);
66
- this.valueRank = options.valueRank;
67
- this.arrayDimensions = options.arrayDimensions;
68
- this.minimumSamplingInterval = 0;
69
- this.historizing = (0, node_opcua_utils_1.isNullOrUndefined)(options.historizing) ? false : options.historizing;
70
- this.isAbstract = (0, node_opcua_utils_1.isNullOrUndefined)(options.isAbstract) ? false : options.isAbstract;
71
- this.value = options.value; // optional default value for instances of this UAVariableType
72
- this.dataType = (0, node_opcua_nodeid_1.coerceNodeId)(options.dataType); // DataType (NodeId)
73
- if (options.value) {
74
- this.value = new node_opcua_variant_2.Variant(options.value);
75
- // xx console.log("setting ",this.value.toString());
76
- }
77
- }
78
- get subtypeOf() {
79
- return tool_isSupertypeOf_2.get_subtypeOf.call(this);
80
- }
81
- get subtypeOfObj() {
82
- return tool_isSupertypeOf_1.get_subtypeOfObj.call(this);
83
- }
84
- readAttribute(context, attributeId) {
85
- (0, node_opcua_assert_1.assert)(!context || context instanceof session_context_1.SessionContext);
86
- const options = {};
87
- switch (attributeId) {
88
- case node_opcua_data_model_3.AttributeIds.IsAbstract:
89
- options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: this.isAbstract ? true : false };
90
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
91
- break;
92
- case node_opcua_data_model_3.AttributeIds.Value:
93
- if (this.hasOwnProperty("value") && this.value !== undefined) {
94
- (0, node_opcua_assert_1.assert)(this.value.schema.name === "Variant");
95
- options.value = this.value;
96
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
97
- }
98
- else {
99
- debugLog(" warning Value not implemented");
100
- options.value = { dataType: node_opcua_variant_1.DataType.UInt32, value: 0 };
101
- options.statusCode = node_opcua_status_code_1.StatusCodes.BadAttributeIdInvalid;
102
- }
103
- break;
104
- case node_opcua_data_model_3.AttributeIds.DataType:
105
- (0, node_opcua_assert_1.assert)(this.dataType instanceof node_opcua_nodeid_1.NodeId);
106
- options.value = { dataType: node_opcua_variant_1.DataType.NodeId, value: this.dataType };
107
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
108
- break;
109
- case node_opcua_data_model_3.AttributeIds.ValueRank:
110
- options.value = { dataType: node_opcua_variant_1.DataType.Int32, value: this.valueRank };
111
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
112
- break;
113
- case node_opcua_data_model_3.AttributeIds.ArrayDimensions:
114
- (0, node_opcua_assert_1.assert)(Array.isArray(this.arrayDimensions) || this.arrayDimensions === null);
115
- options.value = {
116
- arrayType: node_opcua_variant_3.VariantArrayType.Array,
117
- dataType: node_opcua_variant_1.DataType.UInt32,
118
- value: this.arrayDimensions
119
- };
120
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
121
- break;
122
- default:
123
- return super.readAttribute(context, attributeId);
124
- }
125
- return new node_opcua_data_value_1.DataValue(options);
126
- }
127
- toString() {
128
- const options = new base_node_private_1.ToStringBuilder();
129
- base_node_private_1.UAVariableType_toString.call(this, options);
130
- return options.toString();
131
- }
132
- /**
133
- * instantiate an object of this UAVariableType
134
- * The instantiation takes care of object type inheritance when constructing inner properties
135
-
136
- * Note : HasComponent usage scope
137
- *
138
- * ```text
139
- * Source | Destination
140
- * -------------------+---------------------------
141
- * Object | Object, Variable,Method
142
- * ObjectType |
143
- * -------------------+---------------------------
144
- * DataVariable | Variable
145
- * DataVariableType |
146
- * ```
147
- *
148
- * see : OPCUA 1.03 page 44 $6.4 Instances of ObjectTypes and VariableTypes
149
- */
150
- instantiate(options) {
151
- const addressSpace = this.addressSpace;
152
- // xx assert(!this.isAbstract, "cannot instantiate abstract UAVariableType");
153
- (0, node_opcua_assert_1.assert)(options, "missing option object");
154
- (0, node_opcua_assert_1.assert)(typeof options.browseName === "string" || (options.browseName !== null && typeof options.browseName === "object"), "expecting a browse name");
155
- (0, node_opcua_assert_1.assert)(!options.hasOwnProperty("propertyOf"), "Use addressSpace#addVariable({ propertyOf: xxx}); to add a property");
156
- assertUnusedChildBrowseName(addressSpace, options);
157
- const baseVariableType = addressSpace.findVariableType("BaseVariableType");
158
- (0, node_opcua_assert_1.assert)(baseVariableType, "BaseVariableType must be defined in the address space");
159
- let dataType = options.dataType !== undefined ? options.dataType : this.dataType;
160
- // may be required (i.e YArrayItemType )
161
- dataType = this.resolveNodeId(dataType); // DataType (NodeId)
162
- (0, node_opcua_assert_1.assert)(dataType instanceof node_opcua_nodeid_1.NodeId);
163
- const valueRank = options.valueRank !== undefined ? options.valueRank : this.valueRank;
164
- const arrayDimensions = options.arrayDimensions !== undefined ? options.arrayDimensions : this.arrayDimensions;
165
- // istanbul ignore next
166
- if (!dataType || dataType.isEmpty()) {
167
- warningLog(" options.dataType", options.dataType ? options.dataType.toString() : "<null>");
168
- warningLog(" this.dataType", this.dataType ? this.dataType.toString() : "<null>");
169
- throw new Error(" A valid dataType must be specified");
170
- }
171
- const copyAlsoModellingRules = topMostParentIsObjectTypeOrVariableType(addressSpace, options);
172
- const opts = {
173
- arrayDimensions,
174
- browseName: options.browseName,
175
- componentOf: options.componentOf,
176
- dataType,
177
- description: options.description || this.description,
178
- eventSourceOf: options.eventSourceOf,
179
- minimumSamplingInterval: options.minimumSamplingInterval,
180
- modellingRule: options.modellingRule,
181
- nodeId: options.nodeId,
182
- notifierOf: options.notifierOf,
183
- organizedBy: options.organizedBy,
184
- typeDefinition: this.nodeId,
185
- value: options.value,
186
- valueRank
187
- };
188
- const namespace = options.namespace || addressSpace.getOwnNamespace();
189
- const instance = namespace.addVariable(opts);
190
- // xx assert(instance.minimumSamplingInterval === options.minimumSamplingInterval);
191
- initialize_properties_and_components(instance, baseVariableType, this, copyAlsoModellingRules, options.optionals);
192
- // if VariableType is a type of Structure DataType
193
- // we need to instantiate a dataValue
194
- // and create a bidirectional binding with the individual properties of this type
195
- instance.bindExtensionObject(options.extensionObject);
196
- (0, node_opcua_assert_1.assert)(instance.typeDefinition.toString() === this.nodeId.toString());
197
- instance.install_extra_properties();
198
- if (this._postInstantiateFunc) {
199
- this._postInstantiateFunc(instance, this);
200
- }
201
- return instance;
202
- }
203
- }
204
- exports.UAVariableType = UAVariableType;
205
- /**
206
- * return true if node is a mandatory child or a requested optional
207
- * @method MandatoryChildOrRequestedOptionalFilter
208
- * @param instance
209
- * @param optionalsMap
210
- * @return {Boolean}
211
- */
212
- class MandatoryChildOrRequestedOptionalFilter {
213
- constructor(instance, optionalsMap) {
214
- // should we clone the node to be a component or propertyOf of a instance
215
- (0, node_opcua_assert_1.assert)(optionalsMap !== null && typeof optionalsMap === "object");
216
- (0, node_opcua_assert_1.assert)(null !== instance);
217
- this.optionalsMap = optionalsMap;
218
- this.instance = instance;
219
- this.references = instance.allReferences();
220
- }
221
- shouldKeep(node) {
222
- const addressSpace = node.addressSpace;
223
- const alreadyIn = this.references.filter((r) => {
224
- const n = addressSpace.findNode(r.nodeId);
225
- // istanbul ignore next
226
- if (!n) {
227
- console.log(" cannot find node ", r.nodeId.toString());
228
- return false;
229
- }
230
- return n.browseName.name.toString() === node.browseName.name.toString();
231
- });
232
- if (alreadyIn.length > 0) {
233
- (0, node_opcua_assert_1.assert)(alreadyIn.length === 1, "Duplication found ?");
234
- // a child with the same browse name has already been install
235
- // probably from a SuperClass, we should ignore this.
236
- return false; // ignore
237
- }
238
- const modellingRule = node.modellingRule;
239
- switch (modellingRule) {
240
- case null:
241
- case undefined:
242
- return false; // skip
243
- case "Mandatory":
244
- return true; // keep;
245
- case "Optional":
246
- // only if in requested optionals
247
- return node.browseName.name in this.optionalsMap;
248
- case "OptionalPlaceholder":
249
- return false; // ignored
250
- default:
251
- return false; // ignored
252
- }
253
- }
254
- filterFor(childInstance) {
255
- const browseName = childInstance.browseName.name;
256
- let map = {};
257
- if (browseName in this.optionalsMap) {
258
- map = this.optionalsMap[browseName];
259
- }
260
- const newFilter = new MandatoryChildOrRequestedOptionalFilter(childInstance, map);
261
- return newFilter;
262
- }
263
- }
264
- /*
265
- * @function _get_parent_as_VariableOrObjectType
266
- * @param originalObject
267
- * @return {null|BaseNode}
268
- * @private
269
- */
270
- function _get_parent_as_VariableOrObjectType(originalObject) {
271
- if (originalObject.nodeClass === node_opcua_data_model_1.NodeClass.Method) {
272
- return null;
273
- }
274
- const addressSpace = originalObject.addressSpace;
275
- const parents = originalObject.findReferencesEx("HasChild", node_opcua_data_model_2.BrowseDirection.Inverse);
276
- // istanbul ignore next
277
- if (parents.length > 1) {
278
- console.warn(" object ", originalObject.browseName.toString(), " has more than one parent !");
279
- console.warn(originalObject.toString());
280
- console.warn(" parents : ");
281
- for (const parent of parents) {
282
- console.log(" ", parent.toString(), addressSpace.findNode(parent.nodeId).browseName.toString());
283
- }
284
- return null;
285
- }
286
- (0, node_opcua_assert_1.assert)(parents.length === 0 || parents.length === 1);
287
- if (parents.length === 0) {
288
- return null;
289
- }
290
- const theParent = addressSpace.findNode(parents[0].nodeId);
291
- if (theParent && (theParent.nodeClass === node_opcua_data_model_1.NodeClass.VariableType || theParent.nodeClass === node_opcua_data_model_1.NodeClass.ObjectType)) {
292
- return theParent;
293
- }
294
- return null;
295
- }
296
- class CloneHelper {
297
- constructor() {
298
- this.mapOrgToClone = new Map();
299
- }
300
- registerClonedObject(objInType, clonedObj) {
301
- this.mapOrgToClone.set(objInType.nodeId.toString(), {
302
- cloned: clonedObj,
303
- original: objInType
304
- });
305
- //
306
- // /-----------------------------\
307
- // | AcknowledgeableConditionType |
308
- // \-----------------------------/
309
- // ^ |
310
- // | +---------------------|- (EnabledState) (shadow element)
311
- // |
312
- // /-----------------------------\
313
- // | AlarmConditionType |
314
- // \-----------------------------/
315
- // |
316
- // +-------------------------------|- EnabledState <
317
- //
318
- // find also child object with the same browse name that are
319
- // overridden in the SuperType
320
- //
321
- const origParent = _get_parent_as_VariableOrObjectType(objInType);
322
- if (origParent) {
323
- let base = origParent.subtypeOfObj;
324
- while (base) {
325
- const shadowChild = base.getChildByName(objInType.browseName);
326
- if (shadowChild) {
327
- this.mapOrgToClone.set(shadowChild.nodeId.toString(), {
328
- cloned: clonedObj,
329
- original: shadowChild
330
- });
331
- }
332
- base = base.subtypeOfObj;
333
- }
334
- }
335
- // find subTypeOf
336
- }
337
- }
338
- // install properties and components on a instantiated Object
339
- //
340
- // based on their ModelingRule
341
- // => Mandatory => Installed
342
- // => Optional => Not Installed , unless it appear in optionals array
343
- // => OptionalPlaceHolder => Not Installed
344
- // => null (no modelling rule ) => Not Installed
345
- //
346
- function _initialize_properties_and_components(instance, topMostType, typeNode, copyAlsoModellingRules, optionalsMap, extraInfo) {
347
- if (doDebug) {
348
- console.log("instance browseName =", instance.browseName.toString());
349
- console.log("typeNode =", typeNode.browseName.toString());
350
- console.log("optionalsMap =", Object.keys(optionalsMap).join(" "));
351
- const c = typeNode.findReferencesEx("Aggregates");
352
- console.log("type possibilities =", c.map((x) => x.node.browseName.toString()).join(" "));
353
- }
354
- optionalsMap = optionalsMap || {};
355
- if ((0, node_opcua_nodeid_1.sameNodeId)(topMostType.nodeId, typeNode.nodeId)) {
356
- return; // nothing to do
357
- }
358
- const baseTypeNodeId = typeNode.subtypeOf;
359
- const baseType = typeNode.subtypeOfObj;
360
- // istanbul ignore next
361
- if (!baseType) {
362
- throw new Error(chalk.red("Cannot find object with nodeId ") + baseTypeNodeId);
363
- }
364
- const filter = new MandatoryChildOrRequestedOptionalFilter(instance, optionalsMap);
365
- (0, base_node_private_1._clone_children_references)(typeNode, instance, copyAlsoModellingRules, filter, extraInfo);
366
- // get properties and components from base class
367
- _initialize_properties_and_components(instance, topMostType, baseType, copyAlsoModellingRules, optionalsMap, extraInfo);
368
- }
369
- /**
370
- * @method hasChildWithBrowseName
371
- * returns true if the parent object has a child with the provided browseName
372
- * @param parent
373
- * @param childBrowseName
374
- */
375
- function hasChildWithBrowseName(parent, childBrowseName) {
376
- if (!parent) {
377
- throw Error("Internal error");
378
- }
379
- // extract children
380
- const children = parent.findReferencesAsObject("HasChild", true);
381
- return (children.filter((child) => {
382
- var _a, _b;
383
- return ((_a = child.browseName.name) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = childBrowseName.name) === null || _b === void 0 ? void 0 : _b.toString());
384
- }).length > 0);
385
- }
386
- function getParent(addressSpace, options) {
387
- const parent = options.componentOf || options.organizedBy;
388
- if (parent instanceof node_opcua_nodeid_1.NodeId) {
389
- return addressSpace.findNode(parent);
390
- }
391
- return parent;
392
- }
393
- function assertUnusedChildBrowseName(addressSpace, options) {
394
- const resolveOptionalObject = (node) => node ? addressSpace._coerceNode(node) || undefined : undefined;
395
- options.componentOf = resolveOptionalObject(options.componentOf);
396
- options.organizedBy = resolveOptionalObject(options.organizedBy);
397
- (0, node_opcua_assert_1.assert)(!(options.componentOf && options.organizedBy));
398
- const parent = getParent(addressSpace, options);
399
- if (!parent) {
400
- return;
401
- }
402
- (0, node_opcua_assert_1.assert)(parent !== null && typeof parent === "object");
403
- if (!(parent instanceof base_node_1.BaseNode)) {
404
- throw new Error("Invalid parent parent is " + parent.constructor.name);
405
- }
406
- // istanbul ignore next
407
- // verify that no components already exists in parent
408
- if (parent && hasChildWithBrowseName(parent, (0, node_opcua_data_model_1.coerceQualifiedName)(options.browseName))) {
409
- throw new Error("object " +
410
- parent.browseName.name.toString() +
411
- " have already a child with browseName " +
412
- options.browseName.toString());
413
- }
414
- }
415
- exports.assertUnusedChildBrowseName = assertUnusedChildBrowseName;
416
- exports.assertUnusedChildBrowseName = assertUnusedChildBrowseName;
417
- exports.initialize_properties_and_components = initialize_properties_and_components;
418
- const hasTypeDefinitionNodeId = (0, node_opcua_nodeid_1.makeNodeId)(node_opcua_constants_1.ReferenceTypeIds.HasTypeDefinition);
419
- const hasModellingRuleNodeId = (0, node_opcua_nodeid_1.makeNodeId)(node_opcua_constants_1.ReferenceTypeIds.HasModellingRule);
420
- /**
421
- * remove unwanted reference such as HasTypeDefinition and HasModellingRule
422
- * from the list
423
- */
424
- function _remove_unwanted_ref(references) {
425
- // filter out HasTypeDefinition (i=40) , HasModellingRule (i=37);
426
- references = references.filter((reference) => !(0, node_opcua_nodeid_1.sameNodeId)(reference.referenceType, hasTypeDefinitionNodeId) &&
427
- !(0, node_opcua_nodeid_1.sameNodeId)(reference.referenceType, hasModellingRuleNodeId));
428
- return references;
429
- }
430
- /**
431
- *
432
- */
433
- function findNonHierarchicalReferences(originalObject) {
434
- // todo: MEMOIZE this method
435
- const addressSpace = originalObject.addressSpace;
436
- const referenceId = addressSpace.findReferenceType("NonHierarchicalReferences");
437
- if (!referenceId) {
438
- return [];
439
- }
440
- (0, node_opcua_assert_1.assert)(referenceId);
441
- // we need to explore the non hierarchical references backwards
442
- let references = originalObject.findReferencesEx("NonHierarchicalReferences", node_opcua_data_model_2.BrowseDirection.Inverse);
443
- references = [].concat(references, originalObject.findReferencesEx("HasEventSource", node_opcua_data_model_2.BrowseDirection.Inverse));
444
- const parent = _get_parent_as_VariableOrObjectType(originalObject);
445
- if (parent && parent.subtypeOfObj) {
446
- // parent is a ObjectType or VariableType and is not a root type
447
- (0, node_opcua_assert_1.assert)(parent.nodeClass === node_opcua_data_model_1.NodeClass.VariableType || parent.nodeClass === node_opcua_data_model_1.NodeClass.ObjectType);
448
- // let investigate the same child base child
449
- const child = parent.subtypeOfObj.getChildByName(originalObject.browseName);
450
- if (child) {
451
- const baseRef = findNonHierarchicalReferences(child);
452
- // xx console.log(" ... ",originalObject.browseName.toString(),
453
- // parent.browseName.toString(), references.length, baseRef.length);
454
- references = [].concat(references, baseRef);
455
- }
456
- }
457
- // perform some cleanup
458
- references = _remove_unwanted_ref(references);
459
- return references;
460
- }
461
- function reconstructNonHierarchicalReferences(extraInfo) {
462
- const findImplementedObject = (ref) => extraInfo.mapOrgToClone.get(ref.nodeId.toString()) || null;
463
- // navigate through original objects to find those that are being references by node that
464
- // have been cloned .
465
- // this could be node organized by some FunctionalGroup
466
- //
467
- for (const { original, cloned } of extraInfo.mapOrgToClone.values()) {
468
- // find NonHierarchical References on original object
469
- const originalNonHierarchical = findNonHierarchicalReferences(original);
470
- if (originalNonHierarchical.length === 0) {
471
- continue;
472
- }
473
- // istanbul ignore next
474
- if (doDebug) {
475
- debugLog(" investigation ", original.browseName.toString(), cloned.nodeClass.toString(), original.nodeClass.toString(), original.nodeId.toString(), cloned.nodeId.toString());
476
- }
477
- for (const ref of originalNonHierarchical) {
478
- const info = findImplementedObject(ref);
479
- // if the object pointed by this reference is also cloned ...
480
- if (info) {
481
- const originalDest = info.original;
482
- const cloneDest = info.cloned;
483
- // istanbul ignore next
484
- if (doDebug) {
485
- debugLog(chalk.cyan(" adding reference "), ref.referenceType, " from cloned ", cloned.nodeId.toString(), cloned.browseName.toString(), " to cloned ", cloneDest.nodeId.toString(), cloneDest.browseName.toString());
486
- }
487
- // restore reference
488
- cloned.addReference({
489
- isForward: false,
490
- nodeId: cloneDest.nodeId,
491
- referenceType: ref.referenceType
492
- });
493
- }
494
- }
495
- }
496
- }
497
- /**
498
- * recreate functional group types according to type definition
499
- *
500
- * @method reconstructFunctionalGroupType
501
- * @param baseType
502
- */
503
- /* @example:
504
- *
505
- * MyDeviceType
506
- * |
507
- * +----------|- ParameterSet(BaseObjectType)
508
- * | |
509
- * | +-----------------|- Parameter1
510
- * | ^
511
- * +----------|- Config(FunctionalGroupType) |
512
- * | |
513
- * +-------- Organizes---+
514
- */
515
- function reconstructFunctionalGroupType(extraInfo) {
516
- // navigate through original objects to find those that are being organized by some FunctionalGroup
517
- for (const { original, cloned } of extraInfo.mapOrgToClone.values()) {
518
- const organizedByArray = original.findReferencesEx("Organizes", node_opcua_data_model_2.BrowseDirection.Inverse);
519
- // function dumpRef(r) {
520
- // var referenceTd = addressSpace.findNode(r.referenceTypeId);
521
- // var obj = addressSpace.findNode(r.nodeId);
522
- // return "<-- " + referenceTd.browseName.toString() + " -- " + obj.browseName.toString();
523
- // }
524
- //
525
- // console.log("xxxxx ========================================================",
526
- // originalObject.browseName.toString(),
527
- // organizedByArray.map(dumpRef).join("\n"));
528
- for (const ref of organizedByArray) {
529
- const info = extraInfo.mapOrgToClone.get(ref.nodeId.toString());
530
- if (!info)
531
- continue;
532
- const folder = info.original;
533
- (0, node_opcua_assert_1.assert)(folder.typeDefinitionObj.browseName.name.toString() === "FunctionalGroupType");
534
- // now create the same reference with the instantiated function group
535
- const destFolder = info.cloned;
536
- (0, node_opcua_assert_1.assert)(ref.referenceType);
537
- destFolder.addReference({
538
- isForward: !ref.isForward,
539
- nodeId: cloned.nodeId,
540
- referenceType: ref.referenceType
541
- });
542
- // xx console.log("xxx ============> adding reference ",ref.browse )
543
- }
544
- }
545
- }
546
- function initialize_properties_and_components(instance, topMostType, nodeType, copyAlsoModellingRules, optionals) {
547
- const extraInfo = new CloneHelper();
548
- extraInfo.registerClonedObject(nodeType, instance);
549
- const optionalsMap = (0, source_1.makeOptionalsMap)(optionals);
550
- _initialize_properties_and_components(instance, topMostType, nodeType, copyAlsoModellingRules, optionalsMap, extraInfo);
551
- reconstructFunctionalGroupType(extraInfo);
552
- reconstructNonHierarchicalReferences(extraInfo);
553
- }
554
- exports.initialize_properties_and_components = initialize_properties_and_components;
555
- //# sourceMappingURL=ua_variable_type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ua_variable_type.js","sourceRoot":"","sources":["../../src/ua_variable_type.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { NodeClass } from "node-opcua-data-model";
2
- import { AttributeIds } from "node-opcua-data-model";
3
- import { DataValue } from "node-opcua-data-value";
4
- import { UAView as UAViewPublic } from "../source";
5
- import { BaseNode, InternalBaseNodeOptions } from "./base_node";
6
- import { SessionContext } from "./session_context";
7
- export interface InternalViewOptions extends InternalBaseNodeOptions {
8
- containsNoLoops?: boolean;
9
- }
10
- export declare class UAView extends BaseNode implements UAViewPublic {
11
- readonly nodeClass = NodeClass.View;
12
- readonly containsNoLoops: boolean;
13
- readonly eventNotifier: number;
14
- constructor(options: InternalViewOptions);
15
- readAttribute(context: SessionContext | null, attributeId: AttributeIds): DataValue;
16
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UAView = void 0;
4
- /**
5
- * @module node-opcua-address-space
6
- */
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_data_model_1 = require("node-opcua-data-model");
9
- const node_opcua_data_model_2 = require("node-opcua-data-model");
10
- const node_opcua_data_value_1 = require("node-opcua-data-value");
11
- const node_opcua_status_code_1 = require("node-opcua-status-code");
12
- const node_opcua_variant_1 = require("node-opcua-variant");
13
- const base_node_1 = require("./base_node");
14
- const session_context_1 = require("./session_context");
15
- class UAView extends base_node_1.BaseNode {
16
- constructor(options) {
17
- super(options);
18
- this.nodeClass = node_opcua_data_model_1.NodeClass.View;
19
- this.containsNoLoops = !!options.containsNoLoops;
20
- this.eventNotifier = 0;
21
- }
22
- readAttribute(context, attributeId) {
23
- context = context || session_context_1.SessionContext.defaultContext;
24
- (0, node_opcua_assert_1.assert)(context instanceof session_context_1.SessionContext);
25
- const options = {};
26
- switch (attributeId) {
27
- case node_opcua_data_model_2.AttributeIds.EventNotifier:
28
- options.value = { dataType: node_opcua_variant_1.DataType.UInt32, value: this.eventNotifier };
29
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
30
- break;
31
- case node_opcua_data_model_2.AttributeIds.ContainsNoLoops:
32
- options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: this.containsNoLoops };
33
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
34
- break;
35
- default:
36
- return super.readAttribute(context, attributeId);
37
- }
38
- return new node_opcua_data_value_1.DataValue(options);
39
- }
40
- }
41
- exports.UAView = UAView;
42
- //# sourceMappingURL=ua_view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ua_view.js","sourceRoot":"","sources":["../../src/ua_view.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yDAA2C;AAC3C,iEAAkD;AAClD,iEAAqD;AACrD,iEAAiE;AACjE,mEAAqD;AACrD,2DAA8C;AAE9C,2CAAgE;AAChE,uDAAmD;AAMnD,MAAa,MAAO,SAAQ,oBAAQ;IAMhC,YAAY,OAA4B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QALH,cAAS,GAAG,iCAAS,CAAC,IAAI,CAAC;QAMvC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,aAAa,CAAC,OAA8B,EAAE,WAAyB;QAE1E,OAAO,GAAG,OAAO,IAAI,gCAAc,CAAC,cAAc,CAAC;QACnD,IAAA,0BAAM,EAAC,OAAO,YAAY,gCAAc,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,QAAQ,WAAW,EAAE;YAEjB,KAAK,oCAAY,CAAC,aAAa;gBAC3B,OAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzE,OAAO,CAAC,UAAU,GAAG,oCAAW,CAAC,IAAI,CAAC;gBACtC,MAAM;YAEV,KAAK,oCAAY,CAAC,eAAe;gBAC7B,OAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,6BAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5E,OAAO,CAAC,UAAU,GAAG,oCAAW,CAAC,IAAI,CAAC;gBACtC,MAAM;YAEV;gBACG,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,iCAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACJ;AApCD,wBAoCC"}