@nolag/collab 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,6 +1,6 @@
1
1
  import type { RoomContext } from '@nolag/js-sdk';
2
2
  import { EventEmitter } from './EventEmitter';
3
- import type { CollabDocumentEvents, CollabOperation, CollabUser, CollabPresenceData, CursorPosition, CursorUpdateOptions, OperationType, SendOperationOptions, UserStatus, ResolvedCollabOptions } from './types';
3
+ import type { CollabDocumentEvents, CollabOperation, CollabUser, CollabPresenceData, CursorPosition, CursorUpdateOptions, OperationType, SendOperationOptions, UserStatus, ResolvedCollabOptions, FilterValue } from './types';
4
4
  /**
5
5
  * CollabDocument — a single collaborative document room.
6
6
  *
@@ -26,6 +26,8 @@ export declare class CollabDocument extends EventEmitter<CollabDocumentEvents> {
26
26
  private _pendingCursorUpdate;
27
27
  private _onOperationsRef;
28
28
  private _onCursorsRef;
29
+ /** Filter values applied to the operations subscription. */
30
+ private _filters;
29
31
  /** @internal */
30
32
  constructor(name: string, roomContext: RoomContext, localUser: CollabUser, options: ResolvedCollabOptions, log: (...args: unknown[]) => void, isConnected: () => boolean);
31
33
  /** All remote users currently in this document */
@@ -35,6 +37,31 @@ export declare class CollabDocument extends EventEmitter<CollabDocumentEvents> {
35
37
  * Returns the operation that was created and broadcast.
36
38
  */
37
39
  sendOperation(type: OperationType, opts?: SendOperationOptions): CollabOperation;
40
+ /** The filter values currently applied to this document's operations. */
41
+ get filters(): FilterValue[];
42
+ /**
43
+ * Replace this document's operation filters — only operations published with
44
+ * one of these values are delivered. Useful for scoping a large document to
45
+ * the section or file path a client is actually editing.
46
+ *
47
+ * Passing an empty array clears filtering and restores the wildcard
48
+ * subscription, which receives every operation.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * doc.setFilters(['src/index.ts']); // one path
53
+ * doc.setFilters([['src/index.ts', 'v2']]); // that path AND v2
54
+ * doc.setFilters([]); // everything
55
+ * ```
56
+ */
57
+ setFilters(values: FilterValue[]): void;
58
+ /** Add filter values to the existing set. Existing AND groups are kept. */
59
+ addFilters(values: string[]): void;
60
+ /**
61
+ * Remove filter values from the existing set. Removing the last value
62
+ * restores the wildcard subscription.
63
+ */
64
+ removeFilters(values: string[]): void;
38
65
  /**
39
66
  * Get all cached operations for this document, in timestamp order.
40
67
  */
@@ -61,7 +88,7 @@ export declare class CollabDocument extends EventEmitter<CollabDocumentEvents> {
61
88
  */
62
89
  getUser(userId: string): CollabUser | undefined;
63
90
  /** @internal Subscribe to operations and cursors topics and attach listeners */
64
- _subscribe(): void;
91
+ _subscribe(filters?: FilterValue[]): void;
65
92
  /** @internal Set presence and fetch current room members */
66
93
  _activate(): void;
67
94
  /** @internal Re-set presence after reconnect */
@@ -1,7 +1,7 @@
1
1
  import type { NoLagSocket } from '@nolag/js-sdk';
2
2
  import { EventEmitter } from './EventEmitter';
3
3
  import { CollabDocument } from './CollabDocument';
4
- import type { NoLagCollabOptions, CollabClientEvents, CollabUser } from './types';
4
+ import type { NoLagCollabOptions, CollabClientEvents, CollabUser, JoinDocumentOptions } from './types';
5
5
  /**
6
6
  * NoLagCollab — high-level real-time collaboration SDK built on @nolag/js-sdk.
7
7
  *
@@ -95,7 +95,7 @@ export declare class NoLagCollab extends EventEmitter<CollabClientEvents> {
95
95
  * Join a collaborative document. Creates, subscribes, and activates it.
96
96
  * Returns an existing document if already joined.
97
97
  */
98
- joinDocument(name: string): CollabDocument;
98
+ joinDocument(name: string, opts?: JoinDocumentOptions): CollabDocument;
99
99
  /**
100
100
  * Leave a collaborative document. Fully unsubscribes and removes it.
101
101
  */
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 s=this._handlers.get(e);if(s)for(const r of s)try{r(...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._users=new Map,this._actorToUserId=new Map,this._localActorId=e}addFromPresence(e,t,s){if(e===this._localActorId)return null;const r=this._actorToUserId.get(e),o=t.userId||r||e,i={userId:o,actorTokenId:e,username:t.username,avatar:t.avatar,color:t.color,status:t.status??"active",metadata:t.metadata,joinedAt:s??Date.now(),isLocal:!1};return this._users.set(o,i),this._actorToUserId.set(e,o),i}removeByActorId(e){if(e===this._localActorId)return null;const t=this._actorToUserId.get(e);if(!t)return null;const s=this._users.get(t)??null;return this._users.delete(t),this._actorToUserId.delete(e),s}updateStatus(e,t){const s=this._actorToUserId.get(e);if(!s)return null;const r=this._users.get(s);if(!r)return null;const o={...r,status:t};return this._users.set(s,o),o}getUser(e){return this._users.get(e)}getUserByActorId(e){const t=this._actorToUserId.get(e);return t?this._users.get(t):void 0}getAll(){return Array.from(this._users.values())}get users(){return this._users}clear(){this._users.clear(),this._actorToUserId.clear()}}class s{constructor(e){this._ops=[],this._ids=new Set,this._maxSize=e}add(e){if(this._ids.has(e.id))return!1;for(this._ids.add(e.id),this._ops.push(e),this._ops.sort((e,t)=>e.timestamp-t.timestamp);this._ops.length>this._maxSize;){const e=this._ops.shift();e&&this._ids.delete(e.id)}return!0}getAll(){return[...this._ops]}getByUser(e){return this._ops.filter(t=>t.userId===e)}has(e){return this._ids.has(e)}get size(){return this._ops.length}clear(){this._ops=[],this._ids.clear()}}class r{constructor(e){this._cursors=new Map,this._statuses=new Map,this._idleTimers=new Map,this._localUserId=e}updateCursor(e,t){if(this._cursors.set(e,t),this._idleTimers.has(e)){const t=this._idleTimers.get(e);clearTimeout(t),this._idleTimers.delete(e)}}getCursor(e){return this._cursors.get(e)}getCursors(){return Array.from(this._cursors.values()).filter(e=>e.userId!==this._localUserId)}setStatus(e,t){this._statuses.set(e,t)}getStatus(e){return this._statuses.get(e)??"active"}startIdleTracking(e,t,s){this.stopIdleTracking(e);const r=setTimeout(()=>{this._idleTimers.delete(e),this._statuses.set(e,"idle"),s()},t);this._idleTimers.set(e,r)}stopIdleTracking(e){const t=this._idleTimers.get(e);void 0!==t&&(clearTimeout(t),this._idleTimers.delete(e))}removeCursor(e){this._cursors.delete(e),this._statuses.delete(e),this.stopIdleTracking(e)}dispose(){for(const e of this._idleTimers.values())clearTimeout(e);this._idleTimers.clear(),this._cursors.clear(),this._statuses.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 i(e,t){return t?(...t)=>{console.log(`[${e}]`,...t)}:(...e)=>{}}const n=new WeakMap;const a="operations",h="_cursors";class c extends e{constructor(e,o,i,n,a,h){super(),this._cursorThrottleTimer=null,this._pendingCursorUpdate=null,this._onOperationsRef=null,this._onCursorsRef=null,this.name=e,this._roomContext=o,this._localUser=i,this._options=n,this._log=a,this._isConnected=h,this._presenceManager=new t(i.actorTokenId),this._operationStore=new s(n.maxOperationCache),this._awarenessManager=new r(i.userId)}get users(){return this._presenceManager.users}sendOperation(e,t={}){const s={id:o(),type:e,path:t.path,position:t.position,length:t.length,content:t.content,data:t.data,userId:this._localUser.userId,username:this._localUser.username,timestamp:Date.now(),isReplay:!1};return this._log("Sending operation:",e,s.id),this._operationStore.add(s),this._roomContext.emit(a,s,{echo:!1}),s}getOperations(){return this._operationStore.getAll()}updateCursor(e){this._pendingCursorUpdate=e,null===this._cursorThrottleTimer&&(this._flushCursorUpdate(),this._cursorThrottleTimer=setTimeout(()=>{this._cursorThrottleTimer=null,this._pendingCursorUpdate&&this._flushCursorUpdate()},this._options.cursorThrottle))}getCursors(){return this._awarenessManager.getCursors()}setStatus(e){this._localUser={...this._localUser,status:e},this._setPresence(),this._log("Status updated:",e)}getUsers(){return this._presenceManager.getAll()}getUser(e){return this._presenceManager.getUser(e)}_subscribe(){this._log("Document subscribe:",this.name),this._roomContext.subscribe(a),this._roomContext.subscribe(h),this._onOperationsRef=e=>{this._handleIncomingOperation(e)},this._roomContext.on(a,this._onOperationsRef),this._onCursorsRef=e=>{this._handleIncomingCursor(e)},this._roomContext.on(h,this._onCursorsRef)}_activate(){this._log("Document activate:",this.name),this._setPresence(),this._roomContext.fetchPresence().then(e=>{this._log("Document presence fetched:",this.name,e.length,"actors");for(const t of e)if(t.presence){const e=this._presenceManager.addFromPresence(t.actorTokenId,t.presence,t.joinedAt);e&&(this._awarenessManager.setStatus(e.userId,e.status),this.emit("userJoined",e))}}).catch(e=>{this._log("Failed to fetch document presence:",e)})}_updateLocalPresence(){this._setPresence()}_handlePresenceJoin(e,t){const s=this._presenceManager.addFromPresence(e,t);s&&(this._log("User joined document:",this.name,s.userId),this._awarenessManager.setStatus(s.userId,s.status),this._startUserIdleTracking(s),this.emit("userJoined",s))}_handlePresenceLeave(e){const t=this._presenceManager.removeByActorId(e);t&&(this._log("User left document:",this.name,t.userId),this._awarenessManager.removeCursor(t.userId),this.emit("userLeft",t))}_handlePresenceUpdate(e,t){const s=this._presenceManager.addFromPresence(e,t);s&&this._awarenessManager.setStatus(s.userId,s.status)}_replayOperations(e){const t=e.filter(e=>!this._operationStore.has(e.id));if(0===t.length)return;this._log("Replaying",t.length,"operations"),this.emit("replayStart",{count:t.length});let s=0;for(const e of t){const t={...e,isReplay:!0};this._operationStore.add(t)&&(this.emit("operation",t),s++)}this.emit("replayEnd",{replayed:s})}_cleanup(){this._log("Document cleanup:",this.name),null!==this._cursorThrottleTimer&&(clearTimeout(this._cursorThrottleTimer),this._cursorThrottleTimer=null),this._pendingCursorUpdate=null,this._isConnected()&&(this._roomContext.unsubscribe(a),this._roomContext.unsubscribe(h)),this._onOperationsRef&&this._roomContext.off(a,this._onOperationsRef),this._onCursorsRef&&this._roomContext.off(h,this._onCursorsRef),this._onOperationsRef=null,this._onCursorsRef=null,this._awarenessManager.dispose(),this._presenceManager.clear(),this._operationStore.clear(),this.removeAllListeners()}_handleIncomingOperation(e){const t=e;if(this._operationStore.has(t.id))return;const s={...t,isReplay:!1};this._operationStore.add(s),this._log("Received operation:",t.type,t.id,"from",t.userId),this.emit("operation",s)}_handleIncomingCursor(e){const t=e;if(t.userId===this._localUser.userId)return;this._awarenessManager.updateCursor(t.userId,t);const s=this._presenceManager.getUser(t.userId);s&&this._startUserIdleTracking(s),this._log("Cursor moved:",t.userId),this.emit("cursorMoved",t)}_flushCursorUpdate(){if(!this._pendingCursorUpdate)return;const e=this._pendingCursorUpdate;this._pendingCursorUpdate=null;const t={userId:this._localUser.userId,username:this._localUser.username,color:this._localUser.color,timestamp:Date.now(),...e};this._awarenessManager.updateCursor(this._localUser.userId,t),this._roomContext.emit(h,t,{echo:!1})}_setPresence(){const e={userId:this._localUser.userId,username:this._localUser.username,avatar:this._localUser.avatar,color:this._localUser.color,status:this._localUser.status,metadata:this._localUser.metadata,__scope:this._options.appName};this._roomContext.setPresence(e)}_startUserIdleTracking(e){"active"!==this._awarenessManager.getStatus(e.userId)&&this._awarenessManager.setStatus(e.userId,"active"),this._awarenessManager.startIdleTracking(e.userId,this._options.idleTimeout,()=>{this._log("User went idle:",e.userId),this.emit("awarenessChanged",{userId:e.userId,status:"idle"})})}}class l extends e{constructor(e){if(super(),this._localUser=null,this._documents=new Map,this._lobby=null,this._onlineUsers=new Map,this._actorToUserId=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("NoLagCollab requires an injected NoLag client: new NoLagCollab({ client, username, ... })");this._client=e.client,this._userId=o(),this._options={username:e.username,avatar:e.avatar,color:e.color,metadata:e.metadata,appName:e.appName??"collab",maxOperationCache:e.maxOperationCache??1e3,idleTimeout:e.idleTimeout??6e4,cursorThrottle:e.cursorThrottle??50,debug:e.debug??!1,documents:e.documents??[]},this._log=i("NoLagCollab",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,s){let r=n.get(e);r||(r=new Map,n.set(e,r));const o=r.get(t);o&&console.warn(`[${s}] Another wrapper (${o}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),r.set(t,s)}(this._client,this._options.appName,"NoLagCollab"),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 localUser(){return this._localUser}get documents(){return this._documents}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._documents.keys()])this._documents.get(e)._cleanup(),this._documents.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,this._onlineUsers.clear(),this._actorToUserId.clear(),this._localUser=null,e=this._client,t=this._options.appName,n.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagCollab 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._localUser?this._localUser.actorTokenId=this._client.actorId:(this._localUser={userId:this._userId,actorTokenId:this._client.actorId,username:this._options.username,avatar:this._options.avatar,color:this._options.color,status:"active",metadata:this._options.metadata,joinedAt:Date.now(),isLocal:!0},this._log("Local user:",this._localUser.userId,"→",this._localUser.actorTokenId)),this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby("online"));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateOnlineUsers(e),this._log("Lobby subscribed, online users:",this._onlineUsers.size)}catch(e){if(t())return;this._log("Lobby subscription failed:",e)}if(this._isReady)for(const e of this._documents.values())e._updateLocalPresence();else for(const e of this._options.documents)this._subscribeDocumentInternal(e);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._diffHydrateOnlineUsers(t)}).catch(()=>{})},2e3)}joinDocument(e){this._assertUsable();let t=this._documents.get(e);return t||(t=this._subscribeDocumentInternal(e),t._activate()),t}leaveDocument(e){const t=this._documents.get(e);t&&(this._log("Leaving document:",e),t._cleanup(),this._documents.delete(e))}getDocuments(){return Array.from(this._documents.values())}getOnlineUsers(){return Array.from(this._onlineUsers.values())}_assertUsable(){if(this._detached)throw new Error("NoLagCollab has been detached — construct a new instance");if(!this._isReady||!this._localUser)throw new Error('NoLagCollab not ready — await ready() or the "connected" event')}_subscribeDocumentInternal(e){this._log("Subscribing document:",e);const t=this._client.setApp(this._options.appName).setRoom(e),s=new c(e,t,this._localUser,this._options,i(`CollabDocument:${e}`,this._options.debug),()=>this._client.connected);return this._documents.set(e,s),s._subscribe(),s}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._localUser?.actorTokenId)return;const t=e.presence;if(!t?.userId||this._foreignScope(t))return;const s=this._presenceToUser(e.actorTokenId,t);this._actorToUserId.set(e.actorTokenId,s.userId),this._onlineUsers.has(s.userId)||(this._onlineUsers.set(s.userId,s),this.emit("userOnline",s));for(const s of this._documents.values())s._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId!==this._localUser?.actorTokenId)for(const t of this._documents.values())t._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._localUser?.actorTokenId)return;const t=e.presence;if(t?.userId&&!this._foreignScope(t)){if(this._onlineUsers.has(t.userId)){const s=this._presenceToUser(e.actorTokenId,t);this._onlineUsers.set(s.userId,s)}for(const s of this._documents.values())s._handlePresenceUpdate(e.actorTokenId,t)}}_handleLobbyJoin(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(!r.userId||this._foreignScope(r))return;const o=this._presenceToUser(t,r);this._actorToUserId.set(t,o.userId),this._onlineUsers.has(o.userId)||(this._onlineUsers.set(o.userId,o),this.emit("userOnline",o))}_handleLobbyLeave(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(this._foreignScope(r))return;const o=r?.userId||this._actorToUserId.get(t)||this._findUserIdByActorId(t);if(o){const e=this._onlineUsers.get(o);e&&(this._onlineUsers.delete(o),this._actorToUserId.delete(t),this.emit("userOffline",e))}}_handleLobbyUpdate(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(!r.userId||this._foreignScope(r))return;const o=this._presenceToUser(t,r);this._onlineUsers.set(o.userId,o)}_diffHydrateOnlineUsers(e){const t=new Map,s=new Map;for(const r of Object.keys(e)){const o=e[r];for(const e of Object.keys(o)){if(e===this._localUser?.actorTokenId)continue;const r=o[e],i=r?.presence??r;i?.userId&&!this._foreignScope(i)&&(t.has(i.userId)||t.set(i.userId,this._presenceToUser(e,i)),s.set(e,i.userId))}}for(const[e,s]of[...this._onlineUsers])if(!t.has(e)){this._onlineUsers.delete(e);for(const[t,s]of[...this._actorToUserId])s===e&&this._actorToUserId.delete(t);this.emit("userOffline",s)}for(const[e,s]of t)this._onlineUsers.has(e)||(this._onlineUsers.set(e,s),this.emit("userOnline",s));for(const[e,t]of s)this._actorToUserId.set(e,t)}_presenceToUser(e,t){return{userId:t.userId,actorTokenId:e,username:t.username,avatar:t.avatar,color:t.color,status:t.status??"active",metadata:t.metadata,joinedAt:Date.now(),isLocal:!1}}_findUserIdByActorId(e){for(const t of this._onlineUsers.values())if(t.actorTokenId===e)return t.userId}}export{c as CollabDocument,e as EventEmitter,l as NoLagCollab};
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 r of s)try{r(...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._users=new Map,this._actorToUserId=new Map,this._localActorId=e}addFromPresence(e,t,s){if(e===this._localActorId)return null;const r=this._actorToUserId.get(e),o=t.userId||r||e,i={userId:o,actorTokenId:e,username:t.username,avatar:t.avatar,color:t.color,status:t.status??"active",metadata:t.metadata,joinedAt:s??Date.now(),isLocal:!1};return this._users.set(o,i),this._actorToUserId.set(e,o),i}removeByActorId(e){if(e===this._localActorId)return null;const t=this._actorToUserId.get(e);if(!t)return null;const s=this._users.get(t)??null;return this._users.delete(t),this._actorToUserId.delete(e),s}updateStatus(e,t){const s=this._actorToUserId.get(e);if(!s)return null;const r=this._users.get(s);if(!r)return null;const o={...r,status:t};return this._users.set(s,o),o}getUser(e){return this._users.get(e)}getUserByActorId(e){const t=this._actorToUserId.get(e);return t?this._users.get(t):void 0}getAll(){return Array.from(this._users.values())}get users(){return this._users}clear(){this._users.clear(),this._actorToUserId.clear()}}class s{constructor(e){this._ops=[],this._ids=new Set,this._maxSize=e}add(e){if(this._ids.has(e.id))return!1;for(this._ids.add(e.id),this._ops.push(e),this._ops.sort((e,t)=>e.timestamp-t.timestamp);this._ops.length>this._maxSize;){const e=this._ops.shift();e&&this._ids.delete(e.id)}return!0}getAll(){return[...this._ops]}getByUser(e){return this._ops.filter(t=>t.userId===e)}has(e){return this._ids.has(e)}get size(){return this._ops.length}clear(){this._ops=[],this._ids.clear()}}class r{constructor(e){this._cursors=new Map,this._statuses=new Map,this._idleTimers=new Map,this._localUserId=e}updateCursor(e,t){if(this._cursors.set(e,t),this._idleTimers.has(e)){const t=this._idleTimers.get(e);clearTimeout(t),this._idleTimers.delete(e)}}getCursor(e){return this._cursors.get(e)}getCursors(){return Array.from(this._cursors.values()).filter(e=>e.userId!==this._localUserId)}setStatus(e,t){this._statuses.set(e,t)}getStatus(e){return this._statuses.get(e)??"active"}startIdleTracking(e,t,s){this.stopIdleTracking(e);const r=setTimeout(()=>{this._idleTimers.delete(e),this._statuses.set(e,"idle"),s()},t);this._idleTimers.set(e,r)}stopIdleTracking(e){const t=this._idleTimers.get(e);void 0!==t&&(clearTimeout(t),this._idleTimers.delete(e))}removeCursor(e){this._cursors.delete(e),this._statuses.delete(e),this.stopIdleTracking(e)}dispose(){for(const e of this._idleTimers.values())clearTimeout(e);this._idleTimers.clear(),this._cursors.clear(),this._statuses.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 i(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 a=new WeakMap;const h="operations",c="_cursors";class l extends e{constructor(e,o,i,n,a,h){super(),this._cursorThrottleTimer=null,this._pendingCursorUpdate=null,this._onOperationsRef=null,this._onCursorsRef=null,this._filters=[],this.name=e,this._roomContext=o,this._localUser=i,this._options=n,this._log=a,this._isConnected=h,this._presenceManager=new t(i.actorTokenId),this._operationStore=new s(n.maxOperationCache),this._awarenessManager=new r(i.userId)}get users(){return this._presenceManager.users}sendOperation(e,t={}){const s={id:o(),type:e,path:t.path,position:t.position,length:t.length,content:t.content,data:t.data,userId:this._localUser.userId,username:this._localUser.username,timestamp:Date.now(),isReplay:!1};return this._log("Sending operation:",e,s.id),this._operationStore.add(s),this._roomContext.emit(h,s,{echo:!1,...n(t)}),s}get filters(){return[...this._filters]}setFilters(e){this._filters=[...e],this._roomContext.setFilters(h,this._filters)}addFilters(e){this.setFilters(function(e,t){const s=new Set,r=[];for(const t of e)"string"==typeof t?s.add(t):r.push(t);for(const e of t)s.add(e);return[...s,...r]}(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))}getOperations(){return this._operationStore.getAll()}updateCursor(e){this._pendingCursorUpdate=e,null===this._cursorThrottleTimer&&(this._flushCursorUpdate(),this._cursorThrottleTimer=setTimeout(()=>{this._cursorThrottleTimer=null,this._pendingCursorUpdate&&this._flushCursorUpdate()},this._options.cursorThrottle))}getCursors(){return this._awarenessManager.getCursors()}setStatus(e){this._localUser={...this._localUser,status:e},this._setPresence(),this._log("Status updated:",e)}getUsers(){return this._presenceManager.getAll()}getUser(e){return this._presenceManager.getUser(e)}_subscribe(e){this._log("Document subscribe:",this.name),this._filters=e?[...e]:[],this._filters.length>0?this._roomContext.subscribe(h,{filters:this._filters}):this._roomContext.subscribe(h),this._roomContext.subscribe(c),this._onOperationsRef=e=>{this._handleIncomingOperation(e)},this._roomContext.on(h,this._onOperationsRef),this._onCursorsRef=e=>{this._handleIncomingCursor(e)},this._roomContext.on(c,this._onCursorsRef)}_activate(){this._log("Document activate:",this.name),this._setPresence(),this._roomContext.fetchPresence().then(e=>{this._log("Document presence fetched:",this.name,e.length,"actors");for(const t of e)if(t.presence){const e=this._presenceManager.addFromPresence(t.actorTokenId,t.presence,t.joinedAt);e&&(this._awarenessManager.setStatus(e.userId,e.status),this.emit("userJoined",e))}}).catch(e=>{this._log("Failed to fetch document presence:",e)})}_updateLocalPresence(){this._setPresence()}_handlePresenceJoin(e,t){const s=this._presenceManager.addFromPresence(e,t);s&&(this._log("User joined document:",this.name,s.userId),this._awarenessManager.setStatus(s.userId,s.status),this._startUserIdleTracking(s),this.emit("userJoined",s))}_handlePresenceLeave(e){const t=this._presenceManager.removeByActorId(e);t&&(this._log("User left document:",this.name,t.userId),this._awarenessManager.removeCursor(t.userId),this.emit("userLeft",t))}_handlePresenceUpdate(e,t){const s=this._presenceManager.addFromPresence(e,t);s&&this._awarenessManager.setStatus(s.userId,s.status)}_replayOperations(e){const t=e.filter(e=>!this._operationStore.has(e.id));if(0===t.length)return;this._log("Replaying",t.length,"operations"),this.emit("replayStart",{count:t.length});let s=0;for(const e of t){const t={...e,isReplay:!0};this._operationStore.add(t)&&(this.emit("operation",t),s++)}this.emit("replayEnd",{replayed:s})}_cleanup(){this._log("Document cleanup:",this.name),null!==this._cursorThrottleTimer&&(clearTimeout(this._cursorThrottleTimer),this._cursorThrottleTimer=null),this._pendingCursorUpdate=null,this._isConnected()&&(this._roomContext.unsubscribe(h),this._roomContext.unsubscribe(c)),this._onOperationsRef&&this._roomContext.off(h,this._onOperationsRef),this._onCursorsRef&&this._roomContext.off(c,this._onCursorsRef),this._onOperationsRef=null,this._onCursorsRef=null,this._awarenessManager.dispose(),this._presenceManager.clear(),this._operationStore.clear(),this.removeAllListeners()}_handleIncomingOperation(e){const t=e;if(this._operationStore.has(t.id))return;const s={...t,isReplay:!1};this._operationStore.add(s),this._log("Received operation:",t.type,t.id,"from",t.userId),this.emit("operation",s)}_handleIncomingCursor(e){const t=e;if(t.userId===this._localUser.userId)return;this._awarenessManager.updateCursor(t.userId,t);const s=this._presenceManager.getUser(t.userId);s&&this._startUserIdleTracking(s),this._log("Cursor moved:",t.userId),this.emit("cursorMoved",t)}_flushCursorUpdate(){if(!this._pendingCursorUpdate)return;const e=this._pendingCursorUpdate;this._pendingCursorUpdate=null;const t={userId:this._localUser.userId,username:this._localUser.username,color:this._localUser.color,timestamp:Date.now(),...e};this._awarenessManager.updateCursor(this._localUser.userId,t),this._roomContext.emit(c,t,{echo:!1})}_setPresence(){const e={userId:this._localUser.userId,username:this._localUser.username,avatar:this._localUser.avatar,color:this._localUser.color,status:this._localUser.status,metadata:this._localUser.metadata,__scope:this._options.appName};this._roomContext.setPresence(e)}_startUserIdleTracking(e){"active"!==this._awarenessManager.getStatus(e.userId)&&this._awarenessManager.setStatus(e.userId,"active"),this._awarenessManager.startIdleTracking(e.userId,this._options.idleTimeout,()=>{this._log("User went idle:",e.userId),this.emit("awarenessChanged",{userId:e.userId,status:"idle"})})}}class _ extends e{constructor(e){if(super(),this._localUser=null,this._documents=new Map,this._lobby=null,this._onlineUsers=new Map,this._actorToUserId=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("NoLagCollab requires an injected NoLag client: new NoLagCollab({ client, username, ... })");this._client=e.client,this._userId=o(),this._options={username:e.username,avatar:e.avatar,color:e.color,metadata:e.metadata,appName:e.appName??"collab",maxOperationCache:e.maxOperationCache??1e3,idleTimeout:e.idleTimeout??6e4,cursorThrottle:e.cursorThrottle??50,debug:e.debug??!1,documents:e.documents??[]},this._log=i("NoLagCollab",this._options.debug),this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPromise.catch(()=>{}),function(e,t,s){let r=a.get(e);r||(r=new Map,a.set(e,r));const o=r.get(t);o&&console.warn(`[${s}] Another wrapper (${o}) is already attached to this client for app "${t}". Use one wrapper per (client, app) — detach the other instance first.`),r.set(t,s)}(this._client,this._options.appName,"NoLagCollab"),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 localUser(){return this._localUser}get documents(){return this._documents}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._documents.keys()])this._documents.get(e)._cleanup(),this._documents.delete(e);if(this._lobby&&this._client.connected)try{this._lobby.unsubscribe()}catch{}var e,t;this._lobby=null,this._onlineUsers.clear(),this._actorToUserId.clear(),this._localUser=null,e=this._client,t=this._options.appName,a.get(e)?.delete(t),this._isReady||this._readyReject(new Error("NoLagCollab 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._localUser?this._localUser.actorTokenId=this._client.actorId:(this._localUser={userId:this._userId,actorTokenId:this._client.actorId,username:this._options.username,avatar:this._options.avatar,color:this._options.color,status:"active",metadata:this._options.metadata,joinedAt:Date.now(),isLocal:!0},this._log("Local user:",this._localUser.userId,"→",this._localUser.actorTokenId)),this._lobby||(this._lobby=this._client.setApp(this._options.appName).setLobby("online"));try{const e=await this._lobby.subscribe();if(t())return;this._diffHydrateOnlineUsers(e),this._log("Lobby subscribed, online users:",this._onlineUsers.size)}catch(e){if(t())return;this._log("Lobby subscription failed:",e)}if(this._isReady)for(const e of this._documents.values())e._updateLocalPresence();else for(const e of this._options.documents)this._subscribeDocumentInternal(e);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._diffHydrateOnlineUsers(t)}).catch(()=>{})},2e3)}joinDocument(e,t){this._assertUsable();let s=this._documents.get(e);return s?t?.filters&&s.setFilters(t.filters):(s=this._subscribeDocumentInternal(e,t?.filters),s._activate()),s}leaveDocument(e){const t=this._documents.get(e);t&&(this._log("Leaving document:",e),t._cleanup(),this._documents.delete(e))}getDocuments(){return Array.from(this._documents.values())}getOnlineUsers(){return Array.from(this._onlineUsers.values())}_assertUsable(){if(this._detached)throw new Error("NoLagCollab has been detached — construct a new instance");if(!this._isReady||!this._localUser)throw new Error('NoLagCollab not ready — await ready() or the "connected" event')}_subscribeDocumentInternal(e,t){this._log("Subscribing document:",e);const s=this._client.setApp(this._options.appName).setRoom(e),r=new l(e,s,this._localUser,this._options,i(`CollabDocument:${e}`,this._options.debug),()=>this._client.connected);return this._documents.set(e,r),r._subscribe(t),r}_foreignScope(e){const t=e?.__scope;return"string"==typeof t&&t!==this._options.appName}_handleRoomPresenceJoin(e){if(e.actorTokenId===this._localUser?.actorTokenId)return;const t=e.presence;if(!t?.userId||this._foreignScope(t))return;const s=this._presenceToUser(e.actorTokenId,t);this._actorToUserId.set(e.actorTokenId,s.userId),this._onlineUsers.has(s.userId)||(this._onlineUsers.set(s.userId,s),this.emit("userOnline",s));for(const s of this._documents.values())s._handlePresenceJoin(e.actorTokenId,t)}_handleRoomPresenceLeave(e){if(e.actorTokenId!==this._localUser?.actorTokenId)for(const t of this._documents.values())t._handlePresenceLeave(e.actorTokenId)}_handleRoomPresenceUpdate(e){if(e.actorTokenId===this._localUser?.actorTokenId)return;const t=e.presence;if(t?.userId&&!this._foreignScope(t)){if(this._onlineUsers.has(t.userId)){const s=this._presenceToUser(e.actorTokenId,t);this._onlineUsers.set(s.userId,s)}for(const s of this._documents.values())s._handlePresenceUpdate(e.actorTokenId,t)}}_handleLobbyJoin(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(!r.userId||this._foreignScope(r))return;const o=this._presenceToUser(t,r);this._actorToUserId.set(t,o.userId),this._onlineUsers.has(o.userId)||(this._onlineUsers.set(o.userId,o),this.emit("userOnline",o))}_handleLobbyLeave(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(this._foreignScope(r))return;const o=r?.userId||this._actorToUserId.get(t)||this._findUserIdByActorId(t);if(o){const e=this._onlineUsers.get(o);e&&(this._onlineUsers.delete(o),this._actorToUserId.delete(t),this.emit("userOffline",e))}}_handleLobbyUpdate(e){const{actorId:t,data:s}=e;if(t===this._localUser?.actorTokenId)return;const r=s;if(!r.userId||this._foreignScope(r))return;const o=this._presenceToUser(t,r);this._onlineUsers.set(o.userId,o)}_diffHydrateOnlineUsers(e){const t=new Map,s=new Map;for(const r of Object.keys(e)){const o=e[r];for(const e of Object.keys(o)){if(e===this._localUser?.actorTokenId)continue;const r=o[e],i=r?.presence??r;i?.userId&&!this._foreignScope(i)&&(t.has(i.userId)||t.set(i.userId,this._presenceToUser(e,i)),s.set(e,i.userId))}}for(const[e,s]of[...this._onlineUsers])if(!t.has(e)){this._onlineUsers.delete(e);for(const[t,s]of[...this._actorToUserId])s===e&&this._actorToUserId.delete(t);this.emit("userOffline",s)}for(const[e,s]of t)this._onlineUsers.has(e)||(this._onlineUsers.set(e,s),this.emit("userOnline",s));for(const[e,t]of s)this._actorToUserId.set(e,t)}_presenceToUser(e,t){return{userId:t.userId,actorTokenId:e,username:t.username,avatar:t.avatar,color:t.color,status:t.status??"active",metadata:t.metadata,joinedAt:Date.now(),isLocal:!1}}_findUserIdByActorId(e){for(const t of this._onlineUsers.values())if(t.actorTokenId===e)return t.userId}}export{l as CollabDocument,e as EventEmitter,_ as NoLagCollab};
2
2
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/PresenceManager.ts","../src/OperationStore.ts","../src/AwarenessManager.ts","../src/utils.ts","../src/constants.ts","../src/CollabDocument.ts","../src/NoLagCollab.ts"],"sourcesContent":[null,null,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","PresenceManager","localActorId","_users","_actorToUserId","_localActorId","addFromPresence","actorTokenId","presence","joinedAt","existing","userId","user","username","avatar","color","status","metadata","Date","now","isLocal","removeByActorId","updateStatus","updated","getUser","getUserByActorId","undefined","getAll","Array","from","values","users","OperationStore","maxSize","_ops","_ids","_maxSize","op","id","push","sort","a","b","timestamp","length","evicted","shift","getByUser","filter","AwarenessManager","localUserId","_cursors","_statuses","_idleTimers","_localUserId","updateCursor","position","timer","clearTimeout","getCursor","getCursors","c","setStatus","getStatus","startIdleTracking","timeout","onIdle","stopIdleTracking","setTimeout","removeCursor","dispose","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","log","_args","wrapperRegistry","WeakMap","TOPIC_OPERATIONS","TOPIC_CURSORS","CollabDocument","name","roomContext","localUser","options","isConnected","super","_cursorThrottleTimer","_pendingCursorUpdate","_onOperationsRef","_onCursorsRef","_roomContext","_localUser","_options","_log","_isConnected","_presenceManager","_operationStore","maxOperationCache","_awarenessManager","sendOperation","type","opts","path","content","data","isReplay","echo","getOperations","_flushCursorUpdate","cursorThrottle","_setPresence","getUsers","_subscribe","subscribe","_handleIncomingOperation","_handleIncomingCursor","_activate","fetchPresence","then","actors","actor","catch","err","_updateLocalPresence","_handlePresenceJoin","presenceData","_startUserIdleTracking","_handlePresenceLeave","_handlePresenceUpdate","_replayOperations","ops","pending","count","replayed","replayOp","_cleanup","unsubscribe","stored","cursor","__scope","appName","setPresence","idleTimeout","NoLagCollab","_documents","_lobby","_onlineUsers","_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","_userId","debug","documents","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","wrapperName","apps","warn","registerWrapper","queueMicrotask","connected","ready","detach","keys","Error","_runSetup","epoch","stale","actorId","setApp","setLobby","state","_diffHydrateOnlineUsers","doc","_subscribeDocumentInternal","_scheduleLobbyRefresh","joinDocument","_assertUsable","leaveDocument","getDocuments","getOnlineUsers","setRoom","_foreignScope","scope","_presenceToUser","_findUserIdByActorId","fresh","freshActors","roomId","Object","roomPresence","raw","mappedUserId"],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sources":["../src/EventEmitter.ts","../src/PresenceManager.ts","../src/OperationStore.ts","../src/AwarenessManager.ts","../src/utils.ts","../src/constants.ts","../src/CollabDocument.ts","../src/NoLagCollab.ts"],"sourcesContent":[null,null,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","PresenceManager","localActorId","_users","_actorToUserId","_localActorId","addFromPresence","actorTokenId","presence","joinedAt","existing","userId","user","username","avatar","color","status","metadata","Date","now","isLocal","removeByActorId","updateStatus","updated","getUser","getUserByActorId","undefined","getAll","Array","from","values","users","OperationStore","maxSize","_ops","_ids","_maxSize","op","id","push","sort","a","b","timestamp","length","evicted","shift","getByUser","filter","AwarenessManager","localUserId","_cursors","_statuses","_idleTimers","_localUserId","updateCursor","position","timer","clearTimeout","getCursor","getCursors","c","setStatus","getStatus","startIdleTracking","timeout","onIdle","stopIdleTracking","setTimeout","removeCursor","dispose","generateId","crypto","randomUUID","replace","Math","floor","random","toString","createLogger","prefix","enabled","log","_args","filterEmitOptions","opts","filters","wrapperRegistry","WeakMap","TOPIC_OPERATIONS","TOPIC_CURSORS","CollabDocument","name","roomContext","localUser","options","isConnected","super","_cursorThrottleTimer","_pendingCursorUpdate","_onOperationsRef","_onCursorsRef","_filters","_roomContext","_localUser","_options","_log","_isConnected","_presenceManager","_operationStore","maxOperationCache","_awarenessManager","sendOperation","type","path","content","data","isReplay","echo","setFilters","addFilters","simple","groups","f","v","mergeFilters","removeFilters","remove","drop","withoutFilters","getOperations","_flushCursorUpdate","cursorThrottle","_setPresence","getUsers","_subscribe","subscribe","_handleIncomingOperation","_handleIncomingCursor","_activate","fetchPresence","then","actors","actor","catch","err","_updateLocalPresence","_handlePresenceJoin","presenceData","_startUserIdleTracking","_handlePresenceLeave","_handlePresenceUpdate","_replayOperations","ops","pending","count","replayed","replayOp","_cleanup","unsubscribe","stored","cursor","__scope","appName","setPresence","idleTimeout","NoLagCollab","_documents","_lobby","_onlineUsers","_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","_userId","debug","documents","_readyPromise","Promise","resolve","reject","_readyResolve","_readyReject","wrapperName","apps","warn","registerWrapper","queueMicrotask","connected","ready","detach","keys","Error","_runSetup","epoch","stale","actorId","setApp","setLobby","state","_diffHydrateOnlineUsers","doc","_subscribeDocumentInternal","_scheduleLobbyRefresh","joinDocument","_assertUsable","leaveDocument","getDocuments","getOnlineUsers","setRoom","_foreignScope","scope","_presenceToUser","_findUserIdByActorId","fresh","freshActors","roomId","Object","roomPresence","raw","mappedUserId"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -318,6 +318,45 @@ function createLogger(prefix, enabled) {
318
318
  console.log(`[${prefix}]`, ...args);
319
319
  };
320
320
  }
321
+ // ============ Filters ============
322
+ /**
323
+ * Build the filter fragment of an emit options object.
324
+ *
325
+ * `filter` wins over `filters`: a publish is routed to exactly one topic, so
326
+ * honouring both would silently drop one of them.
327
+ */
328
+ function filterEmitOptions(opts) {
329
+ if (opts?.filter)
330
+ return { filter: opts.filter };
331
+ if (opts?.filters && opts.filters.length > 0)
332
+ return { filters: opts.filters };
333
+ return {};
334
+ }
335
+ /**
336
+ * Merge OR terms into an existing filter set. AND groups (nested arrays) are
337
+ * preserved as-is — only plain string terms are deduplicated.
338
+ */
339
+ function mergeFilters(existing, add) {
340
+ const simple = new Set();
341
+ const groups = [];
342
+ for (const f of existing) {
343
+ if (typeof f === 'string')
344
+ simple.add(f);
345
+ else
346
+ groups.push(f);
347
+ }
348
+ for (const v of add)
349
+ simple.add(v);
350
+ return [...simple, ...groups];
351
+ }
352
+ /**
353
+ * Drop OR terms from a filter set. AND groups are left untouched — remove
354
+ * those by calling `setFilters` with the set you want.
355
+ */
356
+ function withoutFilters(existing, remove) {
357
+ const drop = new Set(remove);
358
+ return existing.filter((f) => typeof f !== 'string' || !drop.has(f));
359
+ }
321
360
  // ============ Wrapper registry ============
322
361
  // One wrapper instance per (client, appName): two wrappers sharing an app on
323
362
  // one connection would collide on topics, presence and the online lobby.
@@ -379,6 +418,8 @@ class CollabDocument extends EventEmitter {
379
418
  // handlers for a topic (the client may be shared with other consumers).
380
419
  this._onOperationsRef = null;
381
420
  this._onCursorsRef = null;
421
+ /** Filter values applied to the operations subscription. */
422
+ this._filters = [];
382
423
  this.name = name;
383
424
  this._roomContext = roomContext;
384
425
  this._localUser = localUser;
@@ -415,9 +456,46 @@ class CollabDocument extends EventEmitter {
415
456
  };
416
457
  this._log('Sending operation:', type, op.id);
417
458
  this._operationStore.add(op);
418
- this._roomContext.emit(TOPIC_OPERATIONS, op, { echo: false });
459
+ this._roomContext.emit(TOPIC_OPERATIONS, op, { echo: false, ...filterEmitOptions(opts) });
419
460
  return op;
420
461
  }
462
+ // ============ Filters ============
463
+ /** The filter values currently applied to this document's operations. */
464
+ get filters() {
465
+ return [...this._filters];
466
+ }
467
+ /**
468
+ * Replace this document's operation filters — only operations published with
469
+ * one of these values are delivered. Useful for scoping a large document to
470
+ * the section or file path a client is actually editing.
471
+ *
472
+ * Passing an empty array clears filtering and restores the wildcard
473
+ * subscription, which receives every operation.
474
+ *
475
+ * @example
476
+ * ```ts
477
+ * doc.setFilters(['src/index.ts']); // one path
478
+ * doc.setFilters([['src/index.ts', 'v2']]); // that path AND v2
479
+ * doc.setFilters([]); // everything
480
+ * ```
481
+ */
482
+ setFilters(values) {
483
+ this._filters = [...values];
484
+ // The core types filters as `string[]`, but both its implementation and
485
+ // the wire protocol accept AND groups (nested arrays).
486
+ this._roomContext.setFilters(TOPIC_OPERATIONS, this._filters);
487
+ }
488
+ /** Add filter values to the existing set. Existing AND groups are kept. */
489
+ addFilters(values) {
490
+ this.setFilters(mergeFilters(this._filters, values));
491
+ }
492
+ /**
493
+ * Remove filter values from the existing set. Removing the last value
494
+ * restores the wildcard subscription.
495
+ */
496
+ removeFilters(values) {
497
+ this.setFilters(withoutFilters(this._filters, values));
498
+ }
421
499
  /**
422
500
  * Get all cached operations for this document, in timestamp order.
423
501
  */
@@ -474,9 +552,16 @@ class CollabDocument extends EventEmitter {
474
552
  }
475
553
  // ============ Internal (called by NoLagCollab) ============
476
554
  /** @internal Subscribe to operations and cursors topics and attach listeners */
477
- _subscribe() {
555
+ _subscribe(filters) {
478
556
  this._log('Document subscribe:', this.name);
479
- this._roomContext.subscribe(TOPIC_OPERATIONS);
557
+ this._filters = filters ? [...filters] : [];
558
+ // Cursors stay unfiltered: awareness is ephemeral and document-wide.
559
+ if (this._filters.length > 0) {
560
+ this._roomContext.subscribe(TOPIC_OPERATIONS, { filters: this._filters });
561
+ }
562
+ else {
563
+ this._roomContext.subscribe(TOPIC_OPERATIONS);
564
+ }
480
565
  this._roomContext.subscribe(TOPIC_CURSORS);
481
566
  // Listen for operations (refs stored for handler-specific removal)
482
567
  this._onOperationsRef = (data) => {
@@ -941,13 +1026,17 @@ class NoLagCollab extends EventEmitter {
941
1026
  * Join a collaborative document. Creates, subscribes, and activates it.
942
1027
  * Returns an existing document if already joined.
943
1028
  */
944
- joinDocument(name) {
1029
+ joinDocument(name, opts) {
945
1030
  this._assertUsable();
946
1031
  let doc = this._documents.get(name);
947
1032
  if (!doc) {
948
- doc = this._subscribeDocumentInternal(name);
1033
+ doc = this._subscribeDocumentInternal(name, opts?.filters);
949
1034
  doc._activate();
950
1035
  }
1036
+ else if (opts?.filters) {
1037
+ // Already joined — re-point its filters rather than ignoring them.
1038
+ doc.setFilters(opts.filters);
1039
+ }
951
1040
  return doc;
952
1041
  }
953
1042
  /**
@@ -984,12 +1073,12 @@ class NoLagCollab extends EventEmitter {
984
1073
  }
985
1074
  }
986
1075
  // ============ Private: Document Setup ============
987
- _subscribeDocumentInternal(name) {
1076
+ _subscribeDocumentInternal(name, filters) {
988
1077
  this._log('Subscribing document:', name);
989
1078
  const roomContext = this._client.setApp(this._options.appName).setRoom(name);
990
1079
  const doc = new CollabDocument(name, roomContext, this._localUser, this._options, createLogger(`CollabDocument:${name}`, this._options.debug), () => this._client.connected);
991
1080
  this._documents.set(name, doc);
992
- doc._subscribe();
1081
+ doc._subscribe(filters);
993
1082
  return doc;
994
1083
  }
995
1084
  // ============ Private: Scope Filtering ============
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/PresenceManager.ts","../src/OperationStore.ts","../src/AwarenessManager.ts","../src/utils.ts","../src/constants.ts","../src/CollabDocument.ts","../src/NoLagCollab.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/EventEmitter.ts","../src/PresenceManager.ts","../src/OperationStore.ts","../src/AwarenessManager.ts","../src/utils.ts","../src/constants.ts","../src/CollabDocument.ts","../src/NoLagCollab.ts"],"sourcesContent":[null,null,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 { NoLagCollab } from './NoLagCollab';
6
6
  export { CollabDocument } from './CollabDocument';
7
7
  export { EventEmitter } from './EventEmitter';
8
- export type { NoLagCollabOptions, ResolvedCollabOptions, OperationType, UserStatus, CollabOperation, SendOperationOptions, CursorPosition, CursorUpdateOptions, CollabUser, CollabPresenceData, CollabClientEvents, CollabDocumentEvents, } from './types';
8
+ export type { NoLagCollabOptions, ResolvedCollabOptions, OperationType, UserStatus, CollabOperation, SendOperationOptions, CursorPosition, CursorUpdateOptions, CollabUser, CollabPresenceData, CollabClientEvents, CollabDocumentEvents, FilterValue, JoinDocumentOptions, } from './types';