@streamr/trackerless-network 103.7.0-rc.2 → 103.8.0-rc.3

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/dist/exports.d.ts CHANGED
@@ -1167,6 +1167,7 @@ interface StrictContentDeliveryLayerNodeOptions {
1167
1167
  proxyConnectionRpcLocal?: ProxyConnectionRpcLocal;
1168
1168
  rpcRequestTimeout?: number;
1169
1169
  plumtreeManager?: PlumtreeManager;
1170
+ suppressOwnMessageLoopback?: boolean;
1170
1171
  }
1171
1172
  declare class ContentDeliveryLayerNode extends EventEmitter<Events$2> {
1172
1173
  private started;
@@ -1297,6 +1298,7 @@ interface ContentDeliveryManagerOptions {
1297
1298
  rpcRequestTimeout?: number;
1298
1299
  neighborUpdateInterval?: number;
1299
1300
  bufferWhileConnecting?: boolean;
1301
+ suppressOwnMessageLoopback?: boolean;
1300
1302
  }
1301
1303
  type PlumtreeOptions = {
1302
1304
  enabled: true;
package/dist/exports.js CHANGED
@@ -27,7 +27,7 @@ class ExternalNetworkRpc {
27
27
  }
28
28
  }
29
29
 
30
- var version = "103.7.0-rc.2";
30
+ var version = "103.8.0-rc.3";
31
31
 
32
32
  // @generated message type with reflection information, may provide speed optimized methods
33
33
  class Any$Type extends MessageType {
@@ -2838,7 +2838,13 @@ class ContentDeliveryLayerNode extends EventEmitter {
2838
2838
  else {
2839
2839
  logGapDiagnosticSampled('trackerless.cdNode.broadcastIn');
2840
2840
  }
2841
- this.emit('message', msg);
2841
+ // Deliver to local listeners — except own publishes (no previousNode)
2842
+ // when loopback is suppressed: nothing local consumes them and they
2843
+ // would otherwise be re-serialized across a worker boundary just to be
2844
+ // discarded. Propagation + duplicate detection below are unaffected.
2845
+ if (previousNode !== undefined || !this.options.suppressOwnMessageLoopback) {
2846
+ this.emit('message', msg);
2847
+ }
2842
2848
  const skipBackPropagation = previousNode !== undefined && !this.options.temporaryConnectionRpcLocal.hasNode(previousNode);
2843
2849
  this.options.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), skipBackPropagation ? previousNode : null);
2844
2850
  this.messagesPropagated += 1;
@@ -4218,6 +4224,7 @@ class ContentDeliveryManager extends EventEmitter {
4218
4224
  neighborUpdateInterval: this.options.neighborUpdateInterval,
4219
4225
  isLocalNodeEntryPoint,
4220
4226
  bufferWhileConnecting: this.options.bufferWhileConnecting,
4227
+ suppressOwnMessageLoopback: this.options.suppressOwnMessageLoopback,
4221
4228
  plumtreeOptimization: streamPartDeliveryOptions?.plumtreeOptimization?.enabled,
4222
4229
  plumtreeMaxPausedNeighbors: streamPartDeliveryOptions?.plumtreeOptimization?.enabled === true ?
4223
4230
  streamPartDeliveryOptions?.plumtreeOptimization?.maxPausedNeighbors : undefined