node-opcua-address-space 2.187.9 → 2.187.12

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, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
815
815
  extraInfo.level--;
816
816
  // === clone);
817
817
  // extraInfo.registerClonedObject(clone, node);
@@ -898,8 +898,9 @@ 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
+ copyAlsoModellingRules: boolean,
903
904
  optionalFilter: CloneFilter,
904
905
  extraInfo: CloneExtraInfo,
905
906
  browseNameMap: Set<string>
@@ -936,7 +937,10 @@ function _cloneInterface(
936
937
  const localFilter = optionalFilter.filterFor(node);
937
938
 
938
939
  for (const iface of interfaces) {
939
- const aggregates = iface.findReferencesEx("Aggregates", BrowseDirection.Forward);
940
+ // a member the clone already has (the type declares it itself) is not cloned a second time
941
+ const aggregates = iface
942
+ .findReferencesEx("Aggregates", BrowseDirection.Forward)
943
+ .filter((r) => !r.node || !clonedNode.getChildByName(r.node.browseName));
940
944
  if (aggregates.length === 0) continue;
941
945
  // c8 ignore next
942
946
  doTrace &&
@@ -946,7 +950,7 @@ function _cloneInterface(
946
950
  `\n${extraInfo?.pad()}`,
947
951
  aggregates.map((r) => r.toString({ addressSpace })).join(`\n${extraInfo?.pad()}`)
948
952
  );
949
- _clone_collection_new(nodeToClone, node, aggregates, false, localFilter, extraInfo, browseNameMap);
953
+ _clone_collection_new(nodeToClone, clonedNode, aggregates, copyAlsoModellingRules, localFilter, extraInfo, browseNameMap);
950
954
  }
951
955
  }
952
956
 
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.12",
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": "9c009a2e5f27957885938510e424a8f95a7a633f",
88
88
  "files": [
89
89
  "dist",
90
90
  "distHelpers",