node-opcua-address-space 2.187.9 → 2.187.11

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.
@@ -811,7 +811,7 @@ function _clone_collection_new(
811
811
 
812
812
  // also clone or instantiate interface members that may be required in the optionals
813
813
  extraInfo.level++;
814
- _cloneInterface(nodeToClone, newParent, node, optionalFilter, extraInfo, browseNameMap);
814
+ _cloneInterface(nodeToClone, clonedNode, node, optionalFilter, extraInfo, browseNameMap);
815
815
  extraInfo.level--;
816
816
  // === clone);
817
817
  // extraInfo.registerClonedObject(clone, node);
@@ -898,7 +898,7 @@ function _extractInterfaces2(typeDefinitionNode: UAObjectType | UAVariableType,
898
898
 
899
899
  function _cloneInterface(
900
900
  nodeToClone: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
901
- _newParent: BaseNode,
901
+ clonedNode: BaseNode,
902
902
  node: UAObject | UAVariable | UAMethod,
903
903
  optionalFilter: CloneFilter,
904
904
  extraInfo: CloneExtraInfo,
@@ -936,7 +936,10 @@ function _cloneInterface(
936
936
  const localFilter = optionalFilter.filterFor(node);
937
937
 
938
938
  for (const iface of interfaces) {
939
- const aggregates = iface.findReferencesEx("Aggregates", BrowseDirection.Forward);
939
+ // a member the clone already has (the type declares it itself) is not cloned a second time
940
+ const aggregates = iface
941
+ .findReferencesEx("Aggregates", BrowseDirection.Forward)
942
+ .filter((r) => !r.node || !clonedNode.getChildByName(r.node.browseName));
940
943
  if (aggregates.length === 0) continue;
941
944
  // c8 ignore next
942
945
  doTrace &&
@@ -946,7 +949,7 @@ function _cloneInterface(
946
949
  `\n${extraInfo?.pad()}`,
947
950
  aggregates.map((r) => r.toString({ addressSpace })).join(`\n${extraInfo?.pad()}`)
948
951
  );
949
- _clone_collection_new(nodeToClone, node, aggregates, false, localFilter, extraInfo, browseNameMap);
952
+ _clone_collection_new(nodeToClone, clonedNode, aggregates, false, localFilter, extraInfo, browseNameMap);
950
953
  }
951
954
  }
952
955
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "node-opcua-address-space",
3
3
  "type": "module",
4
- "version": "2.187.9",
4
+ "version": "2.187.11",
5
5
  "description": "pure nodejs OPCUA SDK - module address-space",
6
6
  "main": "./dist/api/index.js",
7
7
  "types": "./dist/api/index.d.ts",
@@ -84,7 +84,7 @@
84
84
  "internet of things"
85
85
  ],
86
86
  "homepage": "http://node-opcua.github.io/",
87
- "gitHead": "07dde3b7c7867f0510d94209292fa1aa9bb171fe",
87
+ "gitHead": "da8e4d922c74b877e62f5abbd7530354b0e92ee2",
88
88
  "files": [
89
89
  "dist",
90
90
  "distHelpers",