node-opcua-address-space 2.173.0 → 2.173.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-address-space",
3
- "version": "2.173.0",
3
+ "version": "2.173.1",
4
4
  "description": "pure nodejs OPCUA SDK - module address-space",
5
5
  "main": "./dist/src/index_current.js",
6
6
  "types": "./dist/source/index.d.ts",
@@ -80,7 +80,7 @@
80
80
  "internet of things"
81
81
  ],
82
82
  "homepage": "http://node-opcua.github.io/",
83
- "gitHead": "4aa6634e2e1e14e223fa46a632438295be12744c",
83
+ "gitHead": "f237f07380033d5ee1172c550cc205670d586d86",
84
84
  "files": [
85
85
  "dist",
86
86
  "distHelpers",
@@ -230,16 +230,27 @@ export function _getCompleteRequiredModelsFromValuesAndReferences(
230
230
  if (refPriority <= thisPriority) {
231
231
  consider(namespaceIndexOfTargetNode);
232
232
  } else {
233
- // For forward NonHierarchicalReferences (e.g. HasInterface),
234
- // always include the target namespace as a dependency
235
- // regardless of priority, since the current node owns
236
- // this relationship.
237
233
  const referenceType = getReferenceType(reference);
238
- if (reference.isForward
239
- && referenceType
240
- && nonHierarchicalReferencesType
241
- && referenceType.isSubtypeOf(nonHierarchicalReferencesType)) {
242
- consider(namespaceIndexOfTargetNode);
234
+ if (referenceType) {
235
+ // For forward NonHierarchicalReferences (e.g. HasInterface),
236
+ // always include the target namespace as a dependency
237
+ // regardless of priority, since the current node owns
238
+ // this relationship.
239
+ if (reference.isForward
240
+ && nonHierarchicalReferencesType
241
+ && referenceType.isSubtypeOf(nonHierarchicalReferencesType)) {
242
+ consider(namespaceIndexOfTargetNode);
243
+ }
244
+ // For inverse HierarchicalReferences (e.g. Organizes),
245
+ // always include the target namespace as a dependency
246
+ // regardless of priority, since the reference is
247
+ // stored on this node (organizedBy pattern).
248
+ const hierarchicalReferencesType = addressSpace.findReferenceType("HierarchicalReferences");
249
+ if (!reference.isForward
250
+ && hierarchicalReferencesType
251
+ && referenceType.isSubtypeOf(hierarchicalReferencesType)) {
252
+ consider(namespaceIndexOfTargetNode);
253
+ }
243
254
  }
244
255
  }
245
256
  }