@nolag/signal 1.1.0 → 1.2.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.
@@ -1,7 +1,7 @@
1
1
  import type { NoLagSocket } from '@nolag/js-sdk';
2
2
  import { EventEmitter } from './EventEmitter';
3
3
  import { SignalRoom } from './SignalRoom';
4
- import type { NoLagSignalOptions, SignalClientEvents, Peer } from './types';
4
+ import type { NoLagSignalOptions, SignalClientEvents, Peer, JoinRoomOptions } from './types';
5
5
  /**
6
6
  * NoLagSignal — high-level WebRTC signaling SDK built on @nolag/js-sdk.
7
7
  *
@@ -97,7 +97,7 @@ export declare class NoLagSignal extends EventEmitter<SignalClientEvents> {
97
97
  * Join a signaling room. Creates, subscribes, and activates it.
98
98
  * Returns an existing room if already joined.
99
99
  */
100
- joinRoom(name: string): SignalRoom;
100
+ joinRoom(name: string, opts?: JoinRoomOptions): SignalRoom;
101
101
  /**
102
102
  * Leave a signaling room. Fully unsubscribes and removes it.
103
103
  */
@@ -1,6 +1,6 @@
1
1
  import type { RoomContext } from '@nolag/js-sdk';
2
2
  import { EventEmitter } from './EventEmitter';
3
- import type { SignalRoomEvents, SignalType, Peer, SignalPresenceData, ResolvedSignalOptions } from './types';
3
+ import type { SignalRoomEvents, SignalType, Peer, SignalPresenceData, ResolvedSignalOptions, SignalOptions, FilterValue } from './types';
4
4
  /**
5
5
  * SignalRoom — a single signaling room for WebRTC peer discovery and exchange.
6
6
  *
@@ -16,6 +16,8 @@ export declare class SignalRoom extends EventEmitter<SignalRoomEvents> {
16
16
  private _log;
17
17
  private _isConnected;
18
18
  private _onSignalingRef;
19
+ /** Filter values applied to the signaling subscription. */
20
+ private _filters;
19
21
  /** @internal */
20
22
  constructor(name: string, roomContext: RoomContext, localPeer: Peer, options: ResolvedSignalOptions, log: (...args: unknown[]) => void, isConnected: () => boolean);
21
23
  /** All remote peers currently in this room */
@@ -23,23 +25,55 @@ export declare class SignalRoom extends EventEmitter<SignalRoomEvents> {
23
25
  /**
24
26
  * Send an SDP offer to a specific peer.
25
27
  */
26
- sendOffer(toPeerId: string, offer: RTCSessionDescriptionInit): void;
28
+ sendOffer(toPeerId: string, offer: RTCSessionDescriptionInit, opts?: SignalOptions): void;
27
29
  /**
28
30
  * Send an SDP answer to a specific peer.
29
31
  */
30
- sendAnswer(toPeerId: string, answer: RTCSessionDescriptionInit): void;
32
+ sendAnswer(toPeerId: string, answer: RTCSessionDescriptionInit, opts?: SignalOptions): void;
31
33
  /**
32
34
  * Send an ICE candidate to a specific peer.
33
35
  */
34
- sendIceCandidate(toPeerId: string, candidate: RTCIceCandidateInit): void;
36
+ sendIceCandidate(toPeerId: string, candidate: RTCIceCandidateInit, opts?: SignalOptions): void;
35
37
  /**
36
38
  * Send a bye signal to a specific peer (graceful close).
37
39
  */
38
- sendBye(toPeerId: string): void;
40
+ sendBye(toPeerId: string, opts?: SignalOptions): void;
39
41
  /**
40
42
  * Send a generic signal message to a specific peer.
43
+ *
44
+ * By default this broadcasts to the room and peers discard messages not
45
+ * addressed to them. Pass `{ filter: toPeerId }` to have the server do the
46
+ * addressing instead, so the signal is only delivered to that peer.
41
47
  */
42
- signal(toPeerId: string, type: SignalType, payload: RTCSessionDescriptionInit | RTCIceCandidateInit | Record<string, unknown>): void;
48
+ signal(toPeerId: string, type: SignalType, payload: RTCSessionDescriptionInit | RTCIceCandidateInit | Record<string, unknown>, opts?: SignalOptions): void;
49
+ /** This peer's own id — the value to filter on to receive directed signals. */
50
+ get localPeerId(): string;
51
+ /** The filter values currently applied to this room's signaling. */
52
+ get filters(): FilterValue[];
53
+ /**
54
+ * Replace this room's signaling filters — only signals published with one of
55
+ * these values are delivered. Set your own peerId to receive only signals
56
+ * addressed to you, and send with `{ filter: toPeerId }` so the server does
57
+ * the addressing rather than every peer discarding other peers' traffic.
58
+ *
59
+ * A filtered peer stops receiving unfiltered room broadcasts, so switch the
60
+ * whole room over together. Passing an empty array restores the wildcard
61
+ * subscription, which receives everything.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * room.setFilters([room.localPeerId]); // only signals addressed to me
66
+ * room.setFilters([]); // back to room broadcast
67
+ * ```
68
+ */
69
+ setFilters(values: FilterValue[]): void;
70
+ /** Add filter values to the existing set. Existing AND groups are kept. */
71
+ addFilters(values: string[]): void;
72
+ /**
73
+ * Remove filter values from the existing set. Removing the last value
74
+ * restores the wildcard subscription.
75
+ */
76
+ removeFilters(values: string[]): void;
43
77
  /**
44
78
  * Get all remote peers in this room.
45
79
  */
@@ -49,7 +83,7 @@ export declare class SignalRoom extends EventEmitter<SignalRoomEvents> {
49
83
  */
50
84
  getPeer(peerId: string): Peer | undefined;
51
85
  /** @internal Subscribe to signaling topic and attach listeners */
52
- _subscribe(): void;
86
+ _subscribe(filters?: FilterValue[]): void;
53
87
  /** @internal Set presence and fetch room members */
54
88
  _activate(): void;
55
89
  /** @internal Re-set presence after reconnect */
package/dist/browser.js CHANGED
@@ -1,2 +1,2 @@
1
- class e{constructor(){this._handlers=new Map}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),this}off(e,t){return t?this._handlers.get(e)?.delete(t):this._handlers.delete(e),this}removeAllListeners(){return this._handlers.clear(),this}emit(e,...t){const o=this._handlers.get(e);if(o)for(const s of o)try{s(...t)}catch(t){console.error(`Error in ${String(e)} handler:`,t)}}listenerCount(e){return this._handlers.get(e)?.size??0}}class t{constructor(e){this._peers=new Map,this._actorToPeerId=new Map,this._localActorId=e}addFromPresence(e,t,o){if(e===this._localActorId)return null;const s=this._actorToPeerId.get(e),n=t.peerId||s||e,i={peerId:n,actorTokenId:e,connectionState:"new",metadata:t.metadata,joinedAt:o||Date.now(),isLocal:!1};return this._peers.set(n,i),this._actorToPeerId.set(e,n),i}removeByActorId(e){if(e===this._localActorId)return null;const t=this._actorToPeerId.get(e);if(!t)return null;const o=this._peers.get(t)||null;return this._peers.delete(t),this._actorToPeerId.delete(e),o}getPeer(e){return this._peers.get(e)}getPeerByActorId(e){const t=this._actorToPeerId.get(e);return t?this._peers.get(t):void 0}getAll(){return Array.from(this._peers.values())}get peers(){return this._peers}clear(){this._peers.clear(),this._actorToPeerId.clear()}}function o(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxx-xxxx-xxxx-xxxx".replace(/x/g,()=>Math.floor(16*Math.random()).toString(16))}function s(e,t){return t?(...t)=>{console.log(`[${e}]`,...t)}:(...e)=>{}}const n=new WeakMap;const i="signaling";class r extends e{constructor(e,o,s,n,i,r){super(),this._onSignalingRef=null,this.name=e,this._roomContext=o,this._localPeer=s,this._options=n,this._log=i,this._isConnected=r,this._peerManager=new t(s.actorTokenId)}get peers(){return this._peerManager.peers}sendOffer(e,t){this.signal(e,"offer",t)}sendAnswer(e,t){this.signal(e,"answer",t)}sendIceCandidate(e,t){this.signal(e,"ice-candidate",t)}sendBye(e){this.signal(e,"bye",{})}signal(e,t,s){const n={id:o(),type:t,fromPeerId:this._localPeer.peerId,toPeerId:e,payload:s,timestamp:Date.now()};this._log("Sending signal:",t,"→",e),this._roomContext.emit(i,n,{echo:!1})}getPeers(){return this._peerManager.getAll()}getPeer(e){return this._peerManager.getPeer(e)}_subscribe(){this._log("Room subscribe:",this.name),this._roomContext.subscribe(i),this._onSignalingRef=e=>{this._handleIncomingSignal(e)},this._roomContext.on(i,this._onSignalingRef)}_activate(){this._log("Room activate:",this.name),this._setPresence(),this._roomContext.fetchPresence().then(e=>{this._log("Room presence fetched:",this.name,e.length,"actors");for(const t of e)if(t.presence){const e=this._peerManager.addFromPresence(t.actorTokenId,t.presence,t.joinedAt);e&&this.emit("peerJoined",e)}}).catch(e=>{this._log("Failed to fetch room presence:",e)})}_updateLocalPresence(){this._setPresence()}_handlePresenceJoin(e,t){const o=this._peerManager.addFromPresence(e,t);o&&(this._log("Peer joined room:",this.name,o.peerId),this.emit("peerJoined",o))}_handlePresenceLeave(e){const t=this._peerManager.removeByActorId(e);t&&(this._log("Peer left room:",this.name,t.peerId),this.emit("peerLeft",t))}_handlePresenceUpdate(e,t){this._peerManager.addFromPresence(e,t)}_cleanup(){this._log("Room cleanup:",this.name),this._isConnected()&&this._roomContext.unsubscribe(i),this._onSignalingRef&&this._roomContext.off(i,this._onSignalingRef),this._onSignalingRef=null,this._peerManager.clear(),this.removeAllListeners()}_handleIncomingSignal(e){const t=e;t.toPeerId===this._localPeer.peerId&&(this._log("Received signal:",t.type,"from",t.fromPeerId),this.emit("signal",t))}_setPresence(){const e={peerId:this._localPeer.peerId,metadata:this._localPeer.metadata,__scope:this._options.appName};this._roomContext.setPresence(e)}}class c extends e{constructor(e){if(super(),this._localPeer=null,this._rooms=new Map,this._lobby=null,this._onlinePeers=new Map,this._actorToPeerId=new Map,this._epoch=0,this._detached=!1,this._isReady=!1,this._lobbyRefreshTimer=null,this._onConnectRef=()=>this._onConnect(),this._onDisconnectRef=e=>{this._log("Disconnected:",e),this.emit("disconnected",e)},this._onReconnectRef=()=>{this._log("Reconnecting..."),this.emit("reconnecting")},this._onErrorRef=e=>{this._log("Error:",e),this.emit("error",e)},this._onPresenceJoinRef=e=>this._handleRoomPresenceJoin(e),this._onPresenceLeaveRef=e=>this._handleRoomPresenceLeave(e),this._onPresenceUpdateRef=e=>this._handleRoomPresenceUpdate(e),this._onLobbyJoinRef=e=>this._handleLobbyJoin(e),this._onLobbyLeaveRef=e=>this._handleLobbyLeave(e),this._onLobbyUpdateRef=e=>this._handleLobbyUpdate(e),!e?.client)throw new TypeError("NoLagSignal requires an injected NoLag client: new NoLagSignal({ client, ... })");this._client=e.client,this._peerId=o(),this._options={metadata:e.metadata,appName:e.appName??"signal",debug:e.debug??!1},this._log=s("NoLagSignal",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,o){let s=n.get(e);s||(s=new Map,n.set(e,s));const i=s.get(t);i&&console.warn(`[${o}] Another wrapper (${i}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),s.set(t,o)}(this._client,this._options.appName,"NoLagSignal"),this._client.on("connect",this._onConnectRef),this._client.on("disconnect",this._onDisconnectRef),this._client.on("reconnect",this._onReconnectRef),this._client.on("error",this._onErrorRef),this._client.on("presence:join",this._onPresenceJoinRef),this._client.on("presence:leave",this._onPresenceLeaveRef),this._client.on("presence:update",this._onPresenceUpdateRef),this._client.on("lobbyPresence:join",this._onLobbyJoinRef),this._client.on("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.on("lobbyPresence:update",this._onLobbyUpdateRef),queueMicrotask(()=>{0===this._epoch&&!this._detached&&this._client.connected&&this._onConnect()})}get connected(){return!this._detached&&this._client.connected}get client(){return this._client}get localPeer(){return this._localPeer}get rooms(){return this._rooms}ready(){return this._readyPromise}detach(){if(!this._detached){this._log("Detaching..."),this._detached=!0,this._epoch++,this._lobbyRefreshTimer&&(clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=null),this._client.off("connect",this._onConnectRef),this._client.off("disconnect",this._onDisconnectRef),this._client.off("reconnect",this._onReconnectRef),this._client.off("error",this._onErrorRef),this._client.off("presence:join",this._onPresenceJoinRef),this._client.off("presence:leave",this._onPresenceLeaveRef),this._client.off("presence:update",this._onPresenceUpdateRef),this._client.off("lobbyPresence:join",this._onLobbyJoinRef),this._client.off("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.off("lobbyPresence:update",this._onLobbyUpdateRef);for(const e of[...this._rooms.keys()])this._rooms.get(e)._cleanup(),this._rooms.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,this._onlinePeers.clear(),this._actorToPeerId.clear(),this._localPeer=null,e=this._client,t=this._options.appName,n.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagSignal detached before ready"))}}_onConnect(){this._epoch++,this._runSetup(this._epoch)}async _runSetup(e){const t=()=>e!==this._epoch||this._detached;this._log(this._isReady?"Restoring after reconnect...":"Setting up..."),this._localPeer?this._localPeer.actorTokenId=this._client.actorId:(this._localPeer={peerId:this._peerId,actorTokenId:this._client.actorId,connectionState:"new",metadata:this._options.metadata,joinedAt:Date.now(),isLocal:!0},this._log("Local peer:",this._localPeer.peerId,"→",this._localPeer.actorTokenId)),this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby("online"));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateOnlinePeers(e),this._log("Lobby subscribed, online peers:",this._onlinePeers.size)}catch(e){if(t())return;this._log("Lobby subscription failed:",e)}if(this._isReady)for(const e of this._rooms.values())e._updateLocalPresence();t()||(this._isReady?this.emit("reconnected"):(this._isReady=!0,this._readyResolve(),this.emit("connected")),this._scheduleLobbyRefresh(e))}_scheduleLobbyRefresh(e){this._lobbyRefreshTimer&&clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=setTimeout(()=>{this._lobbyRefreshTimer=null,e===this._epoch&&!this._detached&&this._client.connected&&this._lobby&&this._lobby.fetchPresence().then(t=>{e!==this._epoch||this._detached||this._diffHydrateOnlinePeers(t)}).catch(()=>{})},2e3)}joinRoom(e){this._assertUsable();let t=this._rooms.get(e);return t||(t=this._subscribeRoom(e),t._activate()),t}leaveRoom(e){const t=this._rooms.get(e);t&&(this._log("Leaving room:",e),t._cleanup(),this._rooms.delete(e))}getRooms(){return Array.from(this._rooms.values())}getOnlinePeers(){return Array.from(this._onlinePeers.values())}_assertUsable(){if(this._detached)throw new Error("NoLagSignal has been detached — construct a new instance");if(!this._isReady||!this._localPeer)throw new Error('NoLagSignal not ready — await ready() or the "connected" event')}_subscribeRoom(e){this._log("Subscribing room:",e);const t=this._client.setApp(this._options.appName).setRoom(e),o=new r(e,t,this._localPeer,this._options,s(`SignalRoom:${e}`,this._options.debug),()=>this._client.connected);return this._rooms.set(e,o),o._subscribe(),o}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._localPeer?.actorTokenId)return;const t=e.presence;if(!t?.peerId||this._foreignScope(t))return;const o=this._presenceToPeer(e.actorTokenId,t);this._actorToPeerId.set(e.actorTokenId,o.peerId),this._onlinePeers.has(o.peerId)||(this._onlinePeers.set(o.peerId,o),this.emit("peerOnline",o));for(const o of this._rooms.values())o._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId!==this._localPeer?.actorTokenId)for(const t of this._rooms.values())t._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._localPeer?.actorTokenId)return;const t=e.presence;if(t?.peerId&&!this._foreignScope(t)){if(this._onlinePeers.has(t.peerId)){const o=this._presenceToPeer(e.actorTokenId,t);this._onlinePeers.set(o.peerId,o)}for(const o of this._rooms.values())o._handlePresenceUpdate(e.actorTokenId,t)}}_handleLobbyJoin(e){const{actorId:t,data:o}=e;if(t===this._localPeer?.actorTokenId)return;const s=o;if(!s.peerId||this._foreignScope(s))return;const n=this._presenceToPeer(t,s);this._actorToPeerId.set(t,n.peerId),this._onlinePeers.has(n.peerId)||(this._onlinePeers.set(n.peerId,n),this.emit("peerOnline",n))}_handleLobbyLeave(e){const{actorId:t,data:o}=e;if(t===this._localPeer?.actorTokenId)return;const s=o;if(this._foreignScope(s))return;const n=s?.peerId||this._actorToPeerId.get(t)||this._findPeerIdByActorId(t);if(n){const e=this._onlinePeers.get(n);e&&(this._onlinePeers.delete(n),this._actorToPeerId.delete(t),this.emit("peerOffline",e))}}_handleLobbyUpdate(e){const{actorId:t,data:o}=e;if(t===this._localPeer?.actorTokenId)return;const s=o;if(!s.peerId||this._foreignScope(s))return;const n=this._presenceToPeer(t,s);this._onlinePeers.set(n.peerId,n)}_diffHydrateOnlinePeers(e){const t=new Map,o=new Map;for(const s of Object.keys(e)){const n=e[s];for(const e of Object.keys(n)){if(e===this._localPeer?.actorTokenId)continue;const s=n[e],i=s?.presence??s;i?.peerId&&!this._foreignScope(i)&&(t.has(i.peerId)||t.set(i.peerId,this._presenceToPeer(e,i)),o.set(e,i.peerId))}}for(const[e,o]of[...this._onlinePeers])if(!t.has(e)){this._onlinePeers.delete(e);for(const[t,o]of[...this._actorToPeerId])o===e&&this._actorToPeerId.delete(t);this.emit("peerOffline",o)}for(const[e,o]of t)this._onlinePeers.has(e)||(this._onlinePeers.set(e,o),this.emit("peerOnline",o));for(const[e,t]of o)this._actorToPeerId.set(e,t)}_presenceToPeer(e,t){return{peerId:t.peerId,actorTokenId:e,connectionState:"new",metadata:t.metadata,joinedAt:Date.now(),isLocal:!1}}_findPeerIdByActorId(e){for(const t of this._onlinePeers.values())if(t.actorTokenId===e)return t.peerId}}export{e as EventEmitter,c as NoLagSignal,r as SignalRoom};
1
+ class e{constructor(){this._handlers=new Map}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),this}off(e,t){return t?this._handlers.get(e)?.delete(t):this._handlers.delete(e),this}removeAllListeners(){return this._handlers.clear(),this}emit(e,...t){const s=this._handlers.get(e);if(s)for(const o of s)try{o(...t)}catch(t){console.error(`Error in ${String(e)} handler:`,t)}}listenerCount(e){return this._handlers.get(e)?.size??0}}class t{constructor(e){this._peers=new Map,this._actorToPeerId=new Map,this._localActorId=e}addFromPresence(e,t,s){if(e===this._localActorId)return null;const o=this._actorToPeerId.get(e),n=t.peerId||o||e,i={peerId:n,actorTokenId:e,connectionState:"new",metadata:t.metadata,joinedAt:s||Date.now(),isLocal:!1};return this._peers.set(n,i),this._actorToPeerId.set(e,n),i}removeByActorId(e){if(e===this._localActorId)return null;const t=this._actorToPeerId.get(e);if(!t)return null;const s=this._peers.get(t)||null;return this._peers.delete(t),this._actorToPeerId.delete(e),s}getPeer(e){return this._peers.get(e)}getPeerByActorId(e){const t=this._actorToPeerId.get(e);return t?this._peers.get(t):void 0}getAll(){return Array.from(this._peers.values())}get peers(){return this._peers}clear(){this._peers.clear(),this._actorToPeerId.clear()}}function s(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxx-xxxx-xxxx-xxxx".replace(/x/g,()=>Math.floor(16*Math.random()).toString(16))}function o(e,t){return t?(...t)=>{console.log(`[${e}]`,...t)}:(...e)=>{}}function n(e){return e?.filter?{filter:e.filter}:e?.filters&&e.filters.length>0?{filters:e.filters}:{}}const i=new WeakMap;const r="signaling";class h extends e{constructor(e,s,o,n,i,r){super(),this._onSignalingRef=null,this._filters=[],this.name=e,this._roomContext=s,this._localPeer=o,this._options=n,this._log=i,this._isConnected=r,this._peerManager=new t(o.actorTokenId)}get peers(){return this._peerManager.peers}sendOffer(e,t,s){this.signal(e,"offer",t,s)}sendAnswer(e,t,s){this.signal(e,"answer",t,s)}sendIceCandidate(e,t,s){this.signal(e,"ice-candidate",t,s)}sendBye(e,t){this.signal(e,"bye",{},t)}signal(e,t,o,i){const h={id:s(),type:t,fromPeerId:this._localPeer.peerId,toPeerId:e,payload:o,timestamp:Date.now()};this._log("Sending signal:",t,"→",e),this._roomContext.emit(r,h,{echo:!1,...n(i)})}get localPeerId(){return this._localPeer.peerId}get filters(){return[...this._filters]}setFilters(e){this._filters=[...e],this._roomContext.setFilters(r,this._filters)}addFilters(e){this.setFilters(function(e,t){const s=new Set,o=[];for(const t of e)"string"==typeof t?s.add(t):o.push(t);for(const e of t)s.add(e);return[...s,...o]}(this._filters,e))}removeFilters(e){this.setFilters(function(e,t){const s=new Set(t);return e.filter(e=>"string"!=typeof e||!s.has(e))}(this._filters,e))}getPeers(){return this._peerManager.getAll()}getPeer(e){return this._peerManager.getPeer(e)}_subscribe(e){this._log("Room subscribe:",this.name),this._filters=e?[...e]:[],this._filters.length>0?this._roomContext.subscribe(r,{filters:this._filters}):this._roomContext.subscribe(r),this._onSignalingRef=e=>{this._handleIncomingSignal(e)},this._roomContext.on(r,this._onSignalingRef)}_activate(){this._log("Room activate:",this.name),this._setPresence(),this._roomContext.fetchPresence().then(e=>{this._log("Room presence fetched:",this.name,e.length,"actors");for(const t of e)if(t.presence){const e=this._peerManager.addFromPresence(t.actorTokenId,t.presence,t.joinedAt);e&&this.emit("peerJoined",e)}}).catch(e=>{this._log("Failed to fetch room presence:",e)})}_updateLocalPresence(){this._setPresence()}_handlePresenceJoin(e,t){const s=this._peerManager.addFromPresence(e,t);s&&(this._log("Peer joined room:",this.name,s.peerId),this.emit("peerJoined",s))}_handlePresenceLeave(e){const t=this._peerManager.removeByActorId(e);t&&(this._log("Peer left room:",this.name,t.peerId),this.emit("peerLeft",t))}_handlePresenceUpdate(e,t){this._peerManager.addFromPresence(e,t)}_cleanup(){this._log("Room cleanup:",this.name),this._isConnected()&&this._roomContext.unsubscribe(r),this._onSignalingRef&&this._roomContext.off(r,this._onSignalingRef),this._onSignalingRef=null,this._peerManager.clear(),this.removeAllListeners()}_handleIncomingSignal(e){const t=e;t.toPeerId===this._localPeer.peerId&&(this._log("Received signal:",t.type,"from",t.fromPeerId),this.emit("signal",t))}_setPresence(){const e={peerId:this._localPeer.peerId,metadata:this._localPeer.metadata,__scope:this._options.appName};this._roomContext.setPresence(e)}}class c extends e{constructor(e){if(super(),this._localPeer=null,this._rooms=new Map,this._lobby=null,this._onlinePeers=new Map,this._actorToPeerId=new Map,this._epoch=0,this._detached=!1,this._isReady=!1,this._lobbyRefreshTimer=null,this._onConnectRef=()=>this._onConnect(),this._onDisconnectRef=e=>{this._log("Disconnected:",e),this.emit("disconnected",e)},this._onReconnectRef=()=>{this._log("Reconnecting..."),this.emit("reconnecting")},this._onErrorRef=e=>{this._log("Error:",e),this.emit("error",e)},this._onPresenceJoinRef=e=>this._handleRoomPresenceJoin(e),this._onPresenceLeaveRef=e=>this._handleRoomPresenceLeave(e),this._onPresenceUpdateRef=e=>this._handleRoomPresenceUpdate(e),this._onLobbyJoinRef=e=>this._handleLobbyJoin(e),this._onLobbyLeaveRef=e=>this._handleLobbyLeave(e),this._onLobbyUpdateRef=e=>this._handleLobbyUpdate(e),!e?.client)throw new TypeError("NoLagSignal requires an injected NoLag client: new NoLagSignal({ client, ... })");this._client=e.client,this._peerId=s(),this._options={metadata:e.metadata,appName:e.appName??"signal",debug:e.debug??!1},this._log=o("NoLagSignal",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,s){let o=i.get(e);o||(o=new Map,i.set(e,o));const n=o.get(t);n&&console.warn(`[${s}] Another wrapper (${n}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),o.set(t,s)}(this._client,this._options.appName,"NoLagSignal"),this._client.on("connect",this._onConnectRef),this._client.on("disconnect",this._onDisconnectRef),this._client.on("reconnect",this._onReconnectRef),this._client.on("error",this._onErrorRef),this._client.on("presence:join",this._onPresenceJoinRef),this._client.on("presence:leave",this._onPresenceLeaveRef),this._client.on("presence:update",this._onPresenceUpdateRef),this._client.on("lobbyPresence:join",this._onLobbyJoinRef),this._client.on("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.on("lobbyPresence:update",this._onLobbyUpdateRef),queueMicrotask(()=>{0===this._epoch&&!this._detached&&this._client.connected&&this._onConnect()})}get connected(){return!this._detached&&this._client.connected}get client(){return this._client}get localPeer(){return this._localPeer}get rooms(){return this._rooms}ready(){return this._readyPromise}detach(){if(!this._detached){this._log("Detaching..."),this._detached=!0,this._epoch++,this._lobbyRefreshTimer&&(clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=null),this._client.off("connect",this._onConnectRef),this._client.off("disconnect",this._onDisconnectRef),this._client.off("reconnect",this._onReconnectRef),this._client.off("error",this._onErrorRef),this._client.off("presence:join",this._onPresenceJoinRef),this._client.off("presence:leave",this._onPresenceLeaveRef),this._client.off("presence:update",this._onPresenceUpdateRef),this._client.off("lobbyPresence:join",this._onLobbyJoinRef),this._client.off("lobbyPresence:leave",this._onLobbyLeaveRef),this._client.off("lobbyPresence:update",this._onLobbyUpdateRef);for(const e of[...this._rooms.keys()])this._rooms.get(e)._cleanup(),this._rooms.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,this._onlinePeers.clear(),this._actorToPeerId.clear(),this._localPeer=null,e=this._client,t=this._options.appName,i.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagSignal detached before ready"))}}_onConnect(){this._epoch++,this._runSetup(this._epoch)}async _runSetup(e){const t=()=>e!==this._epoch||this._detached;this._log(this._isReady?"Restoring after reconnect...":"Setting up..."),this._localPeer?this._localPeer.actorTokenId=this._client.actorId:(this._localPeer={peerId:this._peerId,actorTokenId:this._client.actorId,connectionState:"new",metadata:this._options.metadata,joinedAt:Date.now(),isLocal:!0},this._log("Local peer:",this._localPeer.peerId,"→",this._localPeer.actorTokenId)),this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby("online"));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateOnlinePeers(e),this._log("Lobby subscribed, online peers:",this._onlinePeers.size)}catch(e){if(t())return;this._log("Lobby subscription failed:",e)}if(this._isReady)for(const e of this._rooms.values())e._updateLocalPresence();t()||(this._isReady?this.emit("reconnected"):(this._isReady=!0,this._readyResolve(),this.emit("connected")),this._scheduleLobbyRefresh(e))}_scheduleLobbyRefresh(e){this._lobbyRefreshTimer&&clearTimeout(this._lobbyRefreshTimer),this._lobbyRefreshTimer=setTimeout(()=>{this._lobbyRefreshTimer=null,e===this._epoch&&!this._detached&&this._client.connected&&this._lobby&&this._lobby.fetchPresence().then(t=>{e!==this._epoch||this._detached||this._diffHydrateOnlinePeers(t)}).catch(()=>{})},2e3)}joinRoom(e,t){this._assertUsable();let s=this._rooms.get(e);return s?t?.filters&&s.setFilters(t.filters):(s=this._subscribeRoom(e,t?.filters),s._activate()),s}leaveRoom(e){const t=this._rooms.get(e);t&&(this._log("Leaving room:",e),t._cleanup(),this._rooms.delete(e))}getRooms(){return Array.from(this._rooms.values())}getOnlinePeers(){return Array.from(this._onlinePeers.values())}_assertUsable(){if(this._detached)throw new Error("NoLagSignal has been detached — construct a new instance");if(!this._isReady||!this._localPeer)throw new Error('NoLagSignal not ready — await ready() or the "connected" event')}_subscribeRoom(e,t){this._log("Subscribing room:",e);const s=this._client.setApp(this._options.appName).setRoom(e),n=new h(e,s,this._localPeer,this._options,o(`SignalRoom:${e}`,this._options.debug),()=>this._client.connected);return this._rooms.set(e,n),n._subscribe(t),n}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._localPeer?.actorTokenId)return;const t=e.presence;if(!t?.peerId||this._foreignScope(t))return;const s=this._presenceToPeer(e.actorTokenId,t);this._actorToPeerId.set(e.actorTokenId,s.peerId),this._onlinePeers.has(s.peerId)||(this._onlinePeers.set(s.peerId,s),this.emit("peerOnline",s));for(const s of this._rooms.values())s._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId!==this._localPeer?.actorTokenId)for(const t of this._rooms.values())t._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._localPeer?.actorTokenId)return;const t=e.presence;if(t?.peerId&&!this._foreignScope(t)){if(this._onlinePeers.has(t.peerId)){const s=this._presenceToPeer(e.actorTokenId,t);this._onlinePeers.set(s.peerId,s)}for(const s of this._rooms.values())s._handlePresenceUpdate(e.actorTokenId,t)}}_handleLobbyJoin(e){const{actorId:t,data:s}=e;if(t===this._localPeer?.actorTokenId)return;const o=s;if(!o.peerId||this._foreignScope(o))return;const n=this._presenceToPeer(t,o);this._actorToPeerId.set(t,n.peerId),this._onlinePeers.has(n.peerId)||(this._onlinePeers.set(n.peerId,n),this.emit("peerOnline",n))}_handleLobbyLeave(e){const{actorId:t,data:s}=e;if(t===this._localPeer?.actorTokenId)return;const o=s;if(this._foreignScope(o))return;const n=o?.peerId||this._actorToPeerId.get(t)||this._findPeerIdByActorId(t);if(n){const e=this._onlinePeers.get(n);e&&(this._onlinePeers.delete(n),this._actorToPeerId.delete(t),this.emit("peerOffline",e))}}_handleLobbyUpdate(e){const{actorId:t,data:s}=e;if(t===this._localPeer?.actorTokenId)return;const o=s;if(!o.peerId||this._foreignScope(o))return;const n=this._presenceToPeer(t,o);this._onlinePeers.set(n.peerId,n)}_diffHydrateOnlinePeers(e){const t=new Map,s=new Map;for(const o of Object.keys(e)){const n=e[o];for(const e of Object.keys(n)){if(e===this._localPeer?.actorTokenId)continue;const o=n[e],i=o?.presence??o;i?.peerId&&!this._foreignScope(i)&&(t.has(i.peerId)||t.set(i.peerId,this._presenceToPeer(e,i)),s.set(e,i.peerId))}}for(const[e,s]of[...this._onlinePeers])if(!t.has(e)){this._onlinePeers.delete(e);for(const[t,s]of[...this._actorToPeerId])s===e&&this._actorToPeerId.delete(t);this.emit("peerOffline",s)}for(const[e,s]of t)this._onlinePeers.has(e)||(this._onlinePeers.set(e,s),this.emit("peerOnline",s));for(const[e,t]of s)this._actorToPeerId.set(e,t)}_presenceToPeer(e,t){return{peerId:t.peerId,actorTokenId:e,connectionState:"new",metadata:t.metadata,joinedAt:Date.now(),isLocal:!1}}_findPeerIdByActorId(e){for(const t of this._onlinePeers.values())if(t.actorTokenId===e)return t.peerId}}export{e as EventEmitter,c as NoLagSignal,h as SignalRoom};
2
2
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/PeerManager.ts","../src/utils.ts","../src/constants.ts","../src/SignalRoom.ts","../src/NoLagSignal.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["EventEmitter","constructor","this","_handlers","Map","on","event","handler","has","set","Set","get","add","off","delete","removeAllListeners","clear","emit","args","handlers","e","console","error","String","listenerCount","size","PeerManager","localActorId","_peers","_actorToPeerId","_localActorId","addFromPresence","actorTokenId","presence","joinedAt","existing","peerId","peer","connectionState","metadata","Date","now","isLocal","removeByActorId","getPeer","getPeerByActorId","undefined","getAll","Array","from","values","peers","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","log","_args","wrapperRegistry","WeakMap","TOPIC_SIGNALING","SignalRoom","name","roomContext","localPeer","options","isConnected","super","_onSignalingRef","_roomContext","_localPeer","_options","_log","_isConnected","_peerManager","sendOffer","toPeerId","offer","signal","sendAnswer","answer","sendIceCandidate","candidate","sendBye","type","payload","message","id","fromPeerId","timestamp","echo","getPeers","_subscribe","subscribe","data","_handleIncomingSignal","_activate","_setPresence","fetchPresence","then","actors","length","actor","catch","err","_updateLocalPresence","_handlePresenceJoin","presenceData","_handlePresenceLeave","_handlePresenceUpdate","_cleanup","unsubscribe","__scope","appName","setPresence","NoLagSignal","_rooms","_lobby","_onlinePeers","_epoch","_detached","_isReady","_lobbyRefreshTimer","_onConnectRef","_onConnect","_onDisconnectRef","reason","_onReconnectRef","_onErrorRef","_onPresenceJoinRef","_handleRoomPresenceJoin","_onPresenceLeaveRef","_handleRoomPresenceLeave","_onPresenceUpdateRef","_handleRoomPresenceUpdate","_onLobbyJoinRef","_handleLobbyJoin","_onLobbyLeaveRef","_handleLobbyLeave","_onLobbyUpdateRef","_handleLobbyUpdate","client","TypeError","_client","_peerId","debug","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","wrapperName","apps","warn","registerWrapper","queueMicrotask","connected","rooms","ready","detach","clearTimeout","keys","Error","_runSetup","epoch","stale","actorId","setApp","setLobby","state","_diffHydrateOnlinePeers","room","_scheduleLobbyRefresh","setTimeout","joinRoom","_assertUsable","_subscribeRoom","leaveRoom","getRooms","getOnlinePeers","setRoom","_foreignScope","scope","_presenceToPeer","_findPeerIdByActorId","fresh","freshActors","roomId","Object","roomPresence","raw","mappedPeerId"],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/PeerManager.ts","../src/utils.ts","../src/constants.ts","../src/SignalRoom.ts","../src/NoLagSignal.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["EventEmitter","constructor","this","_handlers","Map","on","event","handler","has","set","Set","get","add","off","delete","removeAllListeners","clear","emit","args","handlers","e","console","error","String","listenerCount","size","PeerManager","localActorId","_peers","_actorToPeerId","_localActorId","addFromPresence","actorTokenId","presence","joinedAt","existing","peerId","peer","connectionState","metadata","Date","now","isLocal","removeByActorId","getPeer","getPeerByActorId","undefined","getAll","Array","from","values","peers","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","log","_args","filterEmitOptions","opts","filter","filters","length","wrapperRegistry","WeakMap","TOPIC_SIGNALING","SignalRoom","name","roomContext","localPeer","options","isConnected","super","_onSignalingRef","_filters","_roomContext","_localPeer","_options","_log","_isConnected","_peerManager","sendOffer","toPeerId","offer","signal","sendAnswer","answer","sendIceCandidate","candidate","sendBye","type","payload","message","id","fromPeerId","timestamp","echo","localPeerId","setFilters","addFilters","simple","groups","f","push","v","mergeFilters","removeFilters","remove","drop","withoutFilters","getPeers","_subscribe","subscribe","data","_handleIncomingSignal","_activate","_setPresence","fetchPresence","then","actors","actor","catch","err","_updateLocalPresence","_handlePresenceJoin","presenceData","_handlePresenceLeave","_handlePresenceUpdate","_cleanup","unsubscribe","__scope","appName","setPresence","NoLagSignal","_rooms","_lobby","_onlinePeers","_epoch","_detached","_isReady","_lobbyRefreshTimer","_onConnectRef","_onConnect","_onDisconnectRef","reason","_onReconnectRef","_onErrorRef","_onPresenceJoinRef","_handleRoomPresenceJoin","_onPresenceLeaveRef","_handleRoomPresenceLeave","_onPresenceUpdateRef","_handleRoomPresenceUpdate","_onLobbyJoinRef","_handleLobbyJoin","_onLobbyLeaveRef","_handleLobbyLeave","_onLobbyUpdateRef","_handleLobbyUpdate","client","TypeError","_client","_peerId","debug","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","wrapperName","apps","warn","registerWrapper","queueMicrotask","connected","rooms","ready","detach","clearTimeout","keys","Error","_runSetup","epoch","stale","actorId","setApp","setLobby","state","_diffHydrateOnlinePeers","room","_scheduleLobbyRefresh","setTimeout","joinRoom","_assertUsable","_subscribeRoom","leaveRoom","getRooms","getOnlinePeers","setRoom","_foreignScope","scope","_presenceToPeer","_findPeerIdByActorId","fresh","freshActors","roomId","Object","roomPresence","raw","mappedPeerId"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -142,6 +142,45 @@ function createLogger(prefix, enabled) {
142
142
  console.log(`[${prefix}]`, ...args);
143
143
  };
144
144
  }
145
+ // ============ Filters ============
146
+ /**
147
+ * Build the filter fragment of an emit options object.
148
+ *
149
+ * `filter` wins over `filters`: a publish is routed to exactly one topic, so
150
+ * honouring both would silently drop one of them.
151
+ */
152
+ function filterEmitOptions(opts) {
153
+ if (opts?.filter)
154
+ return { filter: opts.filter };
155
+ if (opts?.filters && opts.filters.length > 0)
156
+ return { filters: opts.filters };
157
+ return {};
158
+ }
159
+ /**
160
+ * Merge OR terms into an existing filter set. AND groups (nested arrays) are
161
+ * preserved as-is — only plain string terms are deduplicated.
162
+ */
163
+ function mergeFilters(existing, add) {
164
+ const simple = new Set();
165
+ const groups = [];
166
+ for (const f of existing) {
167
+ if (typeof f === 'string')
168
+ simple.add(f);
169
+ else
170
+ groups.push(f);
171
+ }
172
+ for (const v of add)
173
+ simple.add(v);
174
+ return [...simple, ...groups];
175
+ }
176
+ /**
177
+ * Drop OR terms from a filter set. AND groups are left untouched — remove
178
+ * those by calling `setFilters` with the set you want.
179
+ */
180
+ function withoutFilters(existing, remove) {
181
+ const drop = new Set(remove);
182
+ return existing.filter((f) => typeof f !== 'string' || !drop.has(f));
183
+ }
145
184
  // ============ Wrapper registry ============
146
185
  // One wrapper instance per (client, appName): two wrappers sharing an app on
147
186
  // one connection would collide on topics, presence and the online lobby.
@@ -187,6 +226,8 @@ class SignalRoom extends EventEmitter {
187
226
  // Stored topic handler ref — cleanup removes exactly this, never all
188
227
  // handlers for a topic (the client may be shared with other consumers).
189
228
  this._onSignalingRef = null;
229
+ /** Filter values applied to the signaling subscription. */
230
+ this._filters = [];
190
231
  this.name = name;
191
232
  this._roomContext = roomContext;
192
233
  this._localPeer = localPeer;
@@ -204,31 +245,35 @@ class SignalRoom extends EventEmitter {
204
245
  /**
205
246
  * Send an SDP offer to a specific peer.
206
247
  */
207
- sendOffer(toPeerId, offer) {
208
- this.signal(toPeerId, 'offer', offer);
248
+ sendOffer(toPeerId, offer, opts) {
249
+ this.signal(toPeerId, 'offer', offer, opts);
209
250
  }
210
251
  /**
211
252
  * Send an SDP answer to a specific peer.
212
253
  */
213
- sendAnswer(toPeerId, answer) {
214
- this.signal(toPeerId, 'answer', answer);
254
+ sendAnswer(toPeerId, answer, opts) {
255
+ this.signal(toPeerId, 'answer', answer, opts);
215
256
  }
216
257
  /**
217
258
  * Send an ICE candidate to a specific peer.
218
259
  */
219
- sendIceCandidate(toPeerId, candidate) {
220
- this.signal(toPeerId, 'ice-candidate', candidate);
260
+ sendIceCandidate(toPeerId, candidate, opts) {
261
+ this.signal(toPeerId, 'ice-candidate', candidate, opts);
221
262
  }
222
263
  /**
223
264
  * Send a bye signal to a specific peer (graceful close).
224
265
  */
225
- sendBye(toPeerId) {
226
- this.signal(toPeerId, 'bye', {});
266
+ sendBye(toPeerId, opts) {
267
+ this.signal(toPeerId, 'bye', {}, opts);
227
268
  }
228
269
  /**
229
270
  * Send a generic signal message to a specific peer.
271
+ *
272
+ * By default this broadcasts to the room and peers discard messages not
273
+ * addressed to them. Pass `{ filter: toPeerId }` to have the server do the
274
+ * addressing instead, so the signal is only delivered to that peer.
230
275
  */
231
- signal(toPeerId, type, payload) {
276
+ signal(toPeerId, type, payload, opts) {
232
277
  const message = {
233
278
  id: generateId(),
234
279
  type,
@@ -238,7 +283,49 @@ class SignalRoom extends EventEmitter {
238
283
  timestamp: Date.now(),
239
284
  };
240
285
  this._log('Sending signal:', type, '→', toPeerId);
241
- this._roomContext.emit(TOPIC_SIGNALING, message, { echo: false });
286
+ this._roomContext.emit(TOPIC_SIGNALING, message, { echo: false, ...filterEmitOptions(opts) });
287
+ }
288
+ // ============ Filters ============
289
+ /** This peer's own id — the value to filter on to receive directed signals. */
290
+ get localPeerId() {
291
+ return this._localPeer.peerId;
292
+ }
293
+ /** The filter values currently applied to this room's signaling. */
294
+ get filters() {
295
+ return [...this._filters];
296
+ }
297
+ /**
298
+ * Replace this room's signaling filters — only signals published with one of
299
+ * these values are delivered. Set your own peerId to receive only signals
300
+ * addressed to you, and send with `{ filter: toPeerId }` so the server does
301
+ * the addressing rather than every peer discarding other peers' traffic.
302
+ *
303
+ * A filtered peer stops receiving unfiltered room broadcasts, so switch the
304
+ * whole room over together. Passing an empty array restores the wildcard
305
+ * subscription, which receives everything.
306
+ *
307
+ * @example
308
+ * ```ts
309
+ * room.setFilters([room.localPeerId]); // only signals addressed to me
310
+ * room.setFilters([]); // back to room broadcast
311
+ * ```
312
+ */
313
+ setFilters(values) {
314
+ this._filters = [...values];
315
+ // The core types filters as `string[]`, but both its implementation and
316
+ // the wire protocol accept AND groups (nested arrays).
317
+ this._roomContext.setFilters(TOPIC_SIGNALING, this._filters);
318
+ }
319
+ /** Add filter values to the existing set. Existing AND groups are kept. */
320
+ addFilters(values) {
321
+ this.setFilters(mergeFilters(this._filters, values));
322
+ }
323
+ /**
324
+ * Remove filter values from the existing set. Removing the last value
325
+ * restores the wildcard subscription.
326
+ */
327
+ removeFilters(values) {
328
+ this.setFilters(withoutFilters(this._filters, values));
242
329
  }
243
330
  // ============ Peers ============
244
331
  /**
@@ -255,9 +342,15 @@ class SignalRoom extends EventEmitter {
255
342
  }
256
343
  // ============ Internal (called by NoLagSignal) ============
257
344
  /** @internal Subscribe to signaling topic and attach listeners */
258
- _subscribe() {
345
+ _subscribe(filters) {
259
346
  this._log('Room subscribe:', this.name);
260
- this._roomContext.subscribe(TOPIC_SIGNALING);
347
+ this._filters = filters ? [...filters] : [];
348
+ if (this._filters.length > 0) {
349
+ this._roomContext.subscribe(TOPIC_SIGNALING, { filters: this._filters });
350
+ }
351
+ else {
352
+ this._roomContext.subscribe(TOPIC_SIGNALING);
353
+ }
261
354
  // Listen for signals (ref stored for handler-specific removal)
262
355
  this._onSignalingRef = (data) => {
263
356
  this._handleIncomingSignal(data);
@@ -619,13 +712,17 @@ class NoLagSignal extends EventEmitter {
619
712
  * Join a signaling room. Creates, subscribes, and activates it.
620
713
  * Returns an existing room if already joined.
621
714
  */
622
- joinRoom(name) {
715
+ joinRoom(name, opts) {
623
716
  this._assertUsable();
624
717
  let room = this._rooms.get(name);
625
718
  if (!room) {
626
- room = this._subscribeRoom(name);
719
+ room = this._subscribeRoom(name, opts?.filters);
627
720
  room._activate();
628
721
  }
722
+ else if (opts?.filters) {
723
+ // Already joined — re-point its filters rather than ignoring them.
724
+ room.setFilters(opts.filters);
725
+ }
629
726
  return room;
630
727
  }
631
728
  /**
@@ -662,12 +759,12 @@ class NoLagSignal extends EventEmitter {
662
759
  }
663
760
  }
664
761
  // ============ Private: Room Setup ============
665
- _subscribeRoom(name) {
762
+ _subscribeRoom(name, filters) {
666
763
  this._log('Subscribing room:', name);
667
764
  const roomContext = this._client.setApp(this._options.appName).setRoom(name);
668
765
  const room = new SignalRoom(name, roomContext, this._localPeer, this._options, createLogger(`SignalRoom:${name}`, this._options.debug), () => this._client.connected);
669
766
  this._rooms.set(name, room);
670
- room._subscribe();
767
+ room._subscribe(filters);
671
768
  return room;
672
769
  }
673
770
  // ============ Private: Scope Filtering ============
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/PeerManager.ts","../src/utils.ts","../src/constants.ts","../src/SignalRoom.ts","../src/NoLagSignal.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/PeerManager.ts","../src/utils.ts","../src/constants.ts","../src/SignalRoom.ts","../src/NoLagSignal.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,4 +5,4 @@
5
5
  export { NoLagSignal } from './NoLagSignal';
6
6
  export { SignalRoom } from './SignalRoom';
7
7
  export { EventEmitter } from './EventEmitter';
8
- export type { NoLagSignalOptions, ResolvedSignalOptions, SignalType, SignalMessage, Peer, SignalPresenceData, SignalClientEvents, SignalRoomEvents, } from './types';
8
+ export type { NoLagSignalOptions, ResolvedSignalOptions, SignalType, SignalMessage, Peer, SignalPresenceData, SignalClientEvents, SignalRoomEvents, SignalOptions, FilterValue, JoinRoomOptions, } from './types';