honeydrop 1.0.3 → 1.1.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.
package/README.md CHANGED
@@ -26,12 +26,15 @@ Building robust Socket.IO applications often involves repetitive boilerplate: ma
26
26
 
27
27
  ## ✨ Features
28
28
 
29
- - **🔌 effortless Connection Management**: Simple API to connect, disconnect, and monitor health.
29
+ - **🔌 Effortless Connection Management**: Simple API to connect, disconnect, and monitor health.
30
30
  - **🎯 Smart Event Handling**: Auto-cleanup of listeners on disconnect.
31
31
  - **🔄 Robust Reconnection**: Configurable strategies (linear/exponential backoff) with hooks.
32
32
  - **📛 Namespacing Made Easy**: Organize your events into logical channels (`chat:message`, `game:score`).
33
33
  - **⚡ Powerful Utilities**: Multi-emit, multi-listen, throttle, debounce, and specific event waiting.
34
34
  - **📦 Offline Queue**: Automatically queue events when disconnected and flush them on reconnect.
35
+ - **🔗 Middleware System**: Intercept and transform events before emit or after receive.
36
+ - **⌨️ Typing Indicators**: Built-in utility for chat "user is typing..." with auto-debounce.
37
+ - **⚛️ React Hooks**: First-class React support with `useSocketEvent`, `useSocketEmit`, `useRoom`, and more.
35
38
  - **🐛 Dev-Friendly**: Built-in debug logging and full TypeScript support.
36
39
 
37
40
  ## 📦 Installation
@@ -166,6 +169,52 @@ client.toRoom('room-123').emit('announcement', 'Welcome!');
166
169
  const inRoom = client.isInRoom('room-123'); // true
167
170
  ```
168
171
 
172
+ ### Middleware
173
+
174
+ Intercept events before they're emitted or after they're received. Perfect for logging, validation, or transformation.
175
+
176
+ ```typescript
177
+ // Log all outgoing events
178
+ client.use('emit', (event, data, next) => {
179
+ console.log(`Sending: ${event}`, data);
180
+ next(); // Continue with emit
181
+ });
182
+
183
+ // Block certain events
184
+ client.use('emit', (event, data, next, abort) => {
185
+ if (event === 'spam') abort();
186
+ else next();
187
+ });
188
+
189
+ // Intercept incoming events
190
+ client.use('receive', (event, data, next) => {
191
+ console.log(`Received: ${event}`, data);
192
+ next();
193
+ });
194
+ ```
195
+
196
+ ### Typing Indicators
197
+
198
+ Built-in utility for chat applications with automatic debouncing and timeout.
199
+
200
+ ```typescript
201
+ const typing = client.typing({
202
+ startEvent: 'typing:start',
203
+ stopEvent: 'typing:stop',
204
+ timeout: 3000
205
+ });
206
+
207
+ // Call when user types
208
+ inputField.addEventListener('input', () => typing.send());
209
+
210
+ // Track other users typing
211
+ typing.onUserTyping((userId) => showTypingBadge(userId));
212
+ typing.onUserStopped((userId) => hideTypingBadge(userId));
213
+
214
+ // Check who's typing
215
+ const typingUsers = typing.getTypingUsers();
216
+ ```
217
+
169
218
  ## ⚛️ Using with React
170
219
 
171
220
  Honeydrop provides first-class support for React with powerful hooks that handle lifecycle and cleanup for you.
@@ -222,6 +271,78 @@ function ConnectionBadge() {
222
271
  }
223
272
  ```
224
273
 
274
+ #### useSocketEmit
275
+ Emit events with loading and error state management.
276
+
277
+ ```tsx
278
+ import { useSocketEmit } from 'honeydrop';
279
+
280
+ function SendMessage() {
281
+ const { emit, isLoading, error } = useSocketEmit('chat:message');
282
+
283
+ const handleSend = async () => {
284
+ await emit({ text: 'Hello!' });
285
+ };
286
+
287
+ return (
288
+ <button onClick={handleSend} disabled={isLoading}>
289
+ {isLoading ? 'Sending...' : 'Send'}
290
+ </button>
291
+ );
292
+ }
293
+ ```
294
+
295
+ #### useRoom
296
+ Automatically join/leave rooms with cleanup on unmount.
297
+
298
+ ```tsx
299
+ import { useRoom } from 'honeydrop';
300
+
301
+ function ChatRoom({ roomId }: { roomId: string }) {
302
+ const room = useRoom(roomId);
303
+
304
+ const sendMessage = () => {
305
+ room.emit('message', { text: 'Hello room!' });
306
+ };
307
+
308
+ return <button onClick={sendMessage}>Send to Room</button>;
309
+ }
310
+ ```
311
+
312
+ #### useLatency
313
+ Track connection latency and quality.
314
+
315
+ ```tsx
316
+ import { useLatency } from 'honeydrop';
317
+
318
+ function LatencyIndicator() {
319
+ const { latency, quality } = useLatency();
320
+ // quality: 'excellent' | 'good' | 'fair' | 'poor' | 'disconnected'
321
+
322
+ return <span>{latency}ms ({quality})</span>;
323
+ }
324
+ ```
325
+
326
+ #### useTypingIndicator
327
+ Manage typing indicators in React.
328
+
329
+ ```tsx
330
+ import { useTypingIndicator } from 'honeydrop';
331
+
332
+ function ChatInput() {
333
+ const { sendTyping, typingUsers } = useTypingIndicator();
334
+
335
+ return (
336
+ <div>
337
+ <input onInput={() => sendTyping()} />
338
+ {typingUsers.length > 0 && (
339
+ <span>{typingUsers.join(', ')} typing...</span>
340
+ )}
341
+ </div>
342
+ );
343
+ }
344
+ ```
345
+
225
346
  ## 🌐 Browser Support
226
347
 
227
348
  Honeydrop works seamlessly in both Node.js and the Browser.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("socket.io-client"),t=require("react");const n={debug:0,info:1,warn:2,error:3,none:4},o={debug:"#9E9E9E",info:"#2196F3",warn:"#FF9800",error:"#F44336",none:""};class i{constructor(e={}){this.level=e.level??"info",this.prefix=e.prefix??"[Honeydrop]",this.enabled=e.enabled??!1,this.isBrowser="undefined"!=typeof window}setLevel(e){this.level=e}setEnabled(e){this.enabled=e}shouldLog(e){return!!this.enabled&&n[e]>=n[this.level]}formatMessage(e,t){const n=(new Date).toISOString().split("T")[1].slice(0,-1);return this.isBrowser?[`%c${this.prefix} %c${e.toUpperCase()} %c[${n}] %c${t}`,"color: #FFC107; font-weight: bold",`color: ${o[e]}; font-weight: bold`,"color: #9E9E9E","color: inherit"]:[`${this.prefix} ${e.toUpperCase()} [${n}] ${t}`]}debug(e,...t){if(this.shouldLog("debug")){const n=this.formatMessage("debug",e);console.debug(...n,...t)}}info(e,...t){if(this.shouldLog("info")){const n=this.formatMessage("info",e);console.info(...n,...t)}}warn(e,...t){if(this.shouldLog("warn")){const n=this.formatMessage("warn",e);console.warn(...n,...t)}}error(e,...t){if(this.shouldLog("error")){const n=this.formatMessage("error",e);console.error(...n,...t)}}connection(e,t){this.info({connected:"🟢 Connected to server",disconnected:"🔴 Disconnected from server",reconnecting:"🟡 Attempting to reconnect...",reconnected:"🟢 Reconnected to server"}[e],t??"")}emit(e,t){this.debug(`📤 Emit: ${e}`,void 0!==t?t:"")}receive(e,t){this.debug(`📥 Received: ${e}`,void 0!==t?t:"")}}new i;class s{constructor(e){this.listeners=new Map,this.socket=null,this.logger=e}setSocket(e){this.socket=e}on(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const n=(...n)=>{this.logger.receive(e,1===n.length?n[0]:n),t(...n)};this.socket.on(e,n),this.addListener(e,n,!1)}once(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const n=(...o)=>{this.logger.receive(e,1===o.length?o[0]:o),this.removeListener(e,n),t(...o)};this.socket.once(e,n),this.addListener(e,n,!0)}off(e,t){if(this.socket)if(t)this.socket.off(e,t),this.removeListener(e,t);else{const t=this.listeners.get(e);t&&(t.forEach(t=>{this.socket?.off(e,t.handler)}),this.listeners.delete(e))}}onMultiple(e,t){e.forEach(e=>{this.on(e,(...n)=>t(e,...n))})}onceAny(e,t){let n=!1;const o=()=>{n||(n=!0,e.forEach(e=>this.off(e)))};e.forEach(e=>{this.on(e,(...i)=>{n||(o(),t(e,...i))})})}listenerCount(e){return this.listeners.get(e)?.length??0}eventNames(){return Array.from(this.listeners.keys())}removeAllListeners(){this.socket&&(this.listeners.forEach((e,t)=>{e.forEach(e=>{this.socket?.off(t,e.handler)})}),this.listeners.clear(),this.logger.debug("All event listeners removed"))}addListener(e,t,n){const o=this.listeners.get(e)??[];o.push({event:e,handler:t,once:n}),this.listeners.set(e,o)}removeListener(e,t){const n=this.listeners.get(e);if(n){const o=n.findIndex(e=>e.handler===t);-1!==o&&(n.splice(o,1),0===n.length&&this.listeners.delete(e))}}}const r={enabled:!0,maxAttempts:10,delay:1e3,maxDelay:3e4,strategy:"exponential"};class c{constructor(e,t){this.socket=null,this.attempts=0,this.timer=null,this.isReconnecting=!1,this.options={...r,...e},this.callbacks={onReconnecting:e.onReconnecting,onReconnected:e.onReconnected,onFailed:e.onFailed},this.logger=t}setSocket(e){this.socket=e,this.setupListeners()}calculateDelay(){let e;return e="exponential"===this.options.strategy?this.options.delay*Math.pow(2,this.attempts-1):this.options.delay,Math.min(e,this.options.maxDelay)}setupListeners(){this.socket&&(this.socket.on("disconnect",e=>{this.logger.connection("disconnected",{reason:e}),"io client disconnect"!==e&&this.options.enabled&&this.startReconnection()}),this.socket.on("connect",()=>{this.isReconnecting?(this.logger.connection("reconnected"),this.callbacks.onReconnected?.(),this.reset()):this.logger.connection("connected")}),this.socket.on("connect_error",()=>{this.isReconnecting&&this.attemptReconnection()}))}startReconnection(){this.isReconnecting||(this.isReconnecting=!0,this.attempts=0,this.attemptReconnection())}attemptReconnection(){if(!this.socket||!this.isReconnecting)return;if(this.attempts++,this.attempts>this.options.maxAttempts)return this.logger.error(`Reconnection failed after ${this.options.maxAttempts} attempts`),this.callbacks.onFailed?.(),void this.reset();const e=this.calculateDelay();this.logger.connection("reconnecting",{attempt:this.attempts,delay:e}),this.callbacks.onReconnecting?.(this.attempts),this.timer=setTimeout(()=>{this.socket&&this.isReconnecting&&this.socket.connect()},e)}reconnect(){if(!this.socket)throw new Error("Socket not initialized");this.reset(),this.socket.connect()}reset(){this.isReconnecting=!1,this.attempts=0,this.timer&&(clearTimeout(this.timer),this.timer=null)}stop(){this.reset(),this.logger.debug("Reconnection handler stopped")}getStatus(){return{isReconnecting:this.isReconnecting,attempts:this.attempts}}updateOptions(e){Object.assign(this.options,e),void 0!==e.onReconnecting&&(this.callbacks.onReconnecting=e.onReconnecting),void 0!==e.onReconnected&&(this.callbacks.onReconnected=e.onReconnected),void 0!==e.onFailed&&(this.callbacks.onFailed=e.onFailed)}}class a{constructor(e,t,n={}){this.name=e,this.emitter=t,this.delimiter=n.delimiter??":"}getEventName(e){return`${this.name}${this.delimiter}${e}`}on(e,t){this.emitter.on(this.getEventName(e),t)}once(e,t){this.emitter.once(this.getEventName(e),t)}off(e,t){this.emitter.off(this.getEventName(e),t)}emit(e,...t){this.emitter.emit(this.getEventName(e),...t)}getName(){return this.name}getDelimiter(){return this.delimiter}sub(e){return new a(`${this.name}${this.delimiter}${e}`,this.emitter,{delimiter:this.delimiter})}}const l={enabled:!0,maxSize:100,maxAge:0};class h{constructor(e={},t){this.queue=[],this.socket=null,this.options={...l,...e},this.logger=t}setSocket(e){this.socket=e,e.on("connect",()=>{this.flush()})}enqueue(e,...t){if(!this.options.enabled)return!1;const n={event:e,args:t,timestamp:Date.now()};return this.options.maxSize&&this.options.maxSize>0&&this.queue.length>=this.options.maxSize?(this.logger.warn(`Offline queue full. Dropping event: ${e}`),this.options.onDropped?.(n),!1):(this.queue.push(n),this.logger.debug(`Event queued offline: ${e} (queue size: ${this.queue.length})`),this.options.onQueued?.(n),!0)}flush(){if(!this.socket?.connected||0===this.queue.length)return;if(this.options.maxAge&&this.options.maxAge>0){const e=Date.now(),t=this.queue.length;this.queue=this.queue.filter(t=>e-t.timestamp<this.options.maxAge);const n=t-this.queue.length;n>0&&this.logger.debug(`Discarded ${n} expired events from queue`)}const e=this.queue.length;if(0!==e){for(this.logger.info(`Flushing ${e} queued events...`);this.queue.length>0;){const e=this.queue.shift();this.socket.emit(e.event,...e.args),this.logger.debug(`Flushed: ${e.event}`)}this.options.onFlushed?.(e),this.logger.info(`Successfully flushed ${e} events`)}}get length(){return this.queue.length}getQueue(){return[...this.queue]}clear(){const e=this.queue.length;this.queue=[],this.logger.debug(`Cleared ${e} events from offline queue`)}get enabled(){return this.options.enabled??!0}setEnabled(e){this.options.enabled=e}}const u={enabled:!0,pingInterval:5e3,pingTimeout:3e3,sampleSize:5,thresholds:{excellent:50,good:100,fair:300}};class d{constructor(e={},t){this.socket=null,this.intervalId=null,this.latencySamples=[],this.currentQuality="disconnected",this.lastPingTime=0,this.options={...u,...e,thresholds:{...u.thresholds,...e.thresholds}},this.logger=t}setSocket(e){this.socket=e,e.on("connect",()=>{this.options.enabled&&this.start()}),e.on("disconnect",()=>{this.stop(),this.updateQuality("disconnected",0)}),e.on("pong",()=>{const e=Date.now()-this.lastPingTime;this.recordLatency(e)}),e.connected&&this.options.enabled&&this.start()}start(){this.intervalId||(this.logger.debug("Connection monitoring started"),this.intervalId=setInterval(()=>{this.ping().catch(()=>{})},this.options.pingInterval??u.pingInterval),this.ping().catch(()=>{}))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,this.logger.debug("Connection monitoring stopped"))}async ping(){if(!this.socket?.connected)throw new Error("Socket not connected");return new Promise((e,t)=>{const n=this.options.pingTimeout??u.pingTimeout,o=setTimeout(()=>{t(new Error("Ping timeout")),this.recordLatency(n)},n);this.lastPingTime=Date.now(),this.socket.volatile.emit("ping",()=>{clearTimeout(o);const t=Date.now()-this.lastPingTime;this.recordLatency(t),e(t)})})}recordLatency(e){const t=this.options.sampleSize??u.sampleSize;this.latencySamples.push(e),this.latencySamples.length>t&&this.latencySamples.shift();const n=this.getAverageLatency(),o=this.calculateQuality(n);o!==this.currentQuality&&this.updateQuality(o,n)}updateQuality(e,t){const n=this.currentQuality;this.currentQuality=e,this.logger.debug(`Connection quality: ${n} -> ${e} (${t}ms)`),this.options.onQualityChange?.(e,t)}calculateQuality(e){const t={...u.thresholds,...this.options.thresholds};return e<=t.excellent?"excellent":e<=t.good?"good":e<=t.fair?"fair":"poor"}getAverageLatency(){if(0===this.latencySamples.length)return 0;const e=this.latencySamples.reduce((e,t)=>e+t,0);return Math.round(e/this.latencySamples.length)}getLatency(){return this.latencySamples[this.latencySamples.length-1]??0}getQuality(){return this.currentQuality}getLatencySamples(){return[...this.latencySamples]}get isMonitoring(){return null!==this.intervalId}setEnabled(e){this.options.enabled=e,e&&this.socket?.connected?this.start():e||this.stop()}}const f={joinEvent:"join",leaveEvent:"leave"};class m{constructor(e={},t){this.socket=null,this.joinedRooms=new Set,this.options={...f,...e},this.logger=t}setSocket(e){this.socket=e,e.on("disconnect",()=>{this.joinedRooms.clear(),this.logger.debug("Cleared room list on disconnect")})}join(e,t){if(!this.socket?.connected)throw new Error("Socket not connected. Cannot join room.");const n=this.options.joinEvent??f.joinEvent;void 0!==t?this.socket.emit(n,e,t):this.socket.emit(n,e),this.joinedRooms.add(e),this.logger.debug(`Joined room: ${e}`)}leave(e,t){if(!this.socket?.connected)throw new Error("Socket not connected. Cannot leave room.");const n=this.options.leaveEvent??f.leaveEvent;void 0!==t?this.socket.emit(n,e,t):this.socket.emit(n,e),this.joinedRooms.delete(e),this.logger.debug(`Left room: ${e}`)}toRoom(e){return{emit:(t,...n)=>{if(!this.socket?.connected)throw new Error("Socket not connected. Cannot emit to room.");this.socket.emit(t,e,...n),this.logger.debug(`Emitted to room ${e}: ${t}`)}}}getRooms(){return Array.from(this.joinedRooms)}isInRoom(e){return this.joinedRooms.has(e)}leaveAll(){for(const e of this.joinedRooms)this.leave(e)}}function g(e,t){t.forEach(({event:t,data:n})=>{void 0!==n?e.emit(t,n):e.emit(t)})}async function p(e,t){const n=t.map(async({event:t,data:n,timeout:o=5e3})=>new Promise((i,s)=>{const r=setTimeout(()=>{s(new Error(`Timeout waiting for ack: ${t}`))},o),c=void 0!==n?[n]:[];e.emit(t,...c,e=>{clearTimeout(r),i(e)})}));return Promise.all(n)}function y(e,t,n=5e3){return new Promise((o,i)=>{const s=setTimeout(()=>{e.off(t,r),i(new Error(`Timeout waiting for event: ${t}`))},n),r=e=>{clearTimeout(s),o(e)};e.once(t,r)})}function k(e,t,n=5e3){return new Promise((o,i)=>{const s=new Map,r=setTimeout(()=>{c(),i(new Error(`Timeout waiting for events: ${t.join(", ")}`))},n),c=()=>{s.forEach((t,n)=>{e.off(n,t)})};t.forEach(t=>{const n=e=>{clearTimeout(r),c(),o({event:t,data:e})};s.set(t,n),e.once(t,n)})})}function v(e,t,n,o=5e3){return new Promise((i,s)=>{const r=setTimeout(()=>{s(new Error(`Timeout waiting for ack: ${t}`))},o),c=void 0!==n?[n]:[];e.emit(t,...c,e=>{clearTimeout(r),i(e)})})}function b(e){return e?.connected??!1}function w(e){return e?{connected:e.connected,id:e.id??null,transport:e.io?.engine?.transport?.name??null}:{connected:!1,id:null,transport:null}}function E(e,t,n){let o,i=0,s=null;return r=>{const c=Date.now(),a=c-i;a>=n?(i=c,void 0!==r?e.emit(t,r):e.emit(t)):(o=r,s||(s=setTimeout(()=>{i=Date.now(),void 0!==o?e.emit(t,o):e.emit(t),s=null},n-a)))}}function S(e,t,n){let o=null;return i=>{o&&clearTimeout(o),o=setTimeout(()=>{void 0!==i?e.emit(t,i):e.emit(t),o=null},n)}}const R={debug:!1,logLevel:"info",namespaceDelimiter:":",autoConnect:!0};class x{constructor(e,t={}){this.socket=null,this.reconnectionHandler=null,this.namespaces=new Map,this.url=e,this.options={...R,...t},this.logger=new i({enabled:this.options.debug,level:this.options.logLevel}),this.eventManager=new s(this.logger),this.offlineQueue=new h(this.options.offlineQueue??{},this.logger),this.connectionMonitor=new d(this.options.connectionMonitor??{},this.logger),this.roomManager=new m(this.options.roomManager??{},this.logger),!1!==this.options.reconnection?.enabled&&(this.reconnectionHandler=new c(this.options.reconnection??{},this.logger)),this.options.autoConnect&&this.connect()}connect(){if(this.socket?.connected)return this.logger.warn("Already connected"),this.socket;const t={...this.options.socketOptions,reconnection:!1};return this.socket=e.io(this.url,t),this.eventManager.setSocket(this.socket),this.offlineQueue.setSocket(this.socket),this.connectionMonitor.setSocket(this.socket),this.roomManager.setSocket(this.socket),this.reconnectionHandler&&this.reconnectionHandler.setSocket(this.socket),this.socket}disconnect(){this.socket&&(this.eventManager.removeAllListeners(),this.reconnectionHandler?.stop(),this.connectionMonitor.stop(),this.socket.disconnect(),this.logger.connection("disconnected"))}on(e,t){return this.eventManager.on(e,t),this}once(e,t){return this.eventManager.once(e,t),this}off(e,t){return this.eventManager.off(e,t),this}emit(e,...t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return!this.socket.connected&&this.offlineQueue.enabled?(this.offlineQueue.enqueue(e,...t),this):(this.logger.emit(e,1===t.length?t[0]:t),this.socket.emit(e,...t),this)}emitMultiple(e){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return g(this.socket,e),this}async emitWithAck(e,t,n){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return v(this.socket,e,t,n)}async request(e,t,n={}){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const o=n.timeout??5e3,i=n.responseEvent??`${e}:response`;return new Promise((n,s)=>{const r=setTimeout(()=>{this.socket?.off(i,c),s(new Error(`Request timeout: ${e} (${o}ms)`))},o),c=e=>{clearTimeout(r),n(e)};this.socket.once(i,c),this.logger.emit(e,t),void 0!==t?this.socket.emit(e,t):this.socket.emit(e)})}async emitWithRetry(e,t,n={}){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const o=n.maxRetries??3,i=n.retryDelay??1e3,s=n.timeout??5e3;let r=new Error("Unknown error");for(let c=1;c<=o;c++)try{return await v(this.socket,e,t,s)}catch(t){r=t instanceof Error?t:new Error(String(t)),this.logger.warn(`Emit failed (attempt ${c}/${o}): ${e}`),n.onRetry?.(c,r),c<o&&await new Promise(e=>setTimeout(e,i))}throw new Error(`Emit failed after ${o} attempts: ${e}. Last error: ${r.message}`)}async emitMultipleWithAck(e){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return p(this.socket,e)}onMultiple(e,t){return this.eventManager.onMultiple(e,t),this}onceAny(e,t){return this.eventManager.onceAny(e,t),this}async waitFor(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return y(this.socket,e,t)}async waitForAny(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return k(this.socket,e,t)}namespace(e,t){const n=e;if(!this.namespaces.has(n)){const o={delimiter:t?.delimiter??this.options.namespaceDelimiter};this.namespaces.set(n,new a(e,this,o))}return this.namespaces.get(n)}throttle(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return E(this.socket,e,t)}debounce(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return S(this.socket,e,t)}getSocket(){return this.socket}get connected(){return b(this.socket)}get id(){return this.socket?.id}getConnectionInfo(){return w(this.socket)}reconnect(){if(!this.reconnectionHandler)throw new Error("Reconnection is not enabled");this.reconnectionHandler.reconnect()}getReconnectionStatus(){return this.reconnectionHandler?.getStatus()??null}listenerCount(e){return this.eventManager.listenerCount(e)}eventNames(){return this.eventManager.eventNames()}setDebug(e){return this.logger.setEnabled(e),this}setLogLevel(e){return this.logger.setLevel(e),this}getQueueLength(){return this.offlineQueue.length}getQueuedEvents(){return this.offlineQueue.getQueue()}clearQueue(){return this.offlineQueue.clear(),this}setOfflineQueue(e){return this.offlineQueue.setEnabled(e),this}async ping(){return this.connectionMonitor.ping()}getLatency(){return this.connectionMonitor.getAverageLatency()}getConnectionQuality(){return this.connectionMonitor.getQuality()}setConnectionMonitoring(e){return this.connectionMonitor.setEnabled(e),this}join(e,t){return this.roomManager.join(e,t),this}leave(e,t){return this.roomManager.leave(e,t),this}toRoom(e){return this.roomManager.toRoom(e)}getRooms(){return this.roomManager.getRooms()}isInRoom(e){return this.roomManager.isInRoom(e)}}var $,M={exports:{}},j={};var _,C={};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("socket.io-client"),t=require("react");const n={debug:0,info:1,warn:2,error:3,none:4},o={debug:"#9E9E9E",info:"#2196F3",warn:"#FF9800",error:"#F44336",none:""};class i{constructor(e={}){this.level=e.level??"info",this.prefix=e.prefix??"[Honeydrop]",this.enabled=e.enabled??!1,this.isBrowser="undefined"!=typeof window}setLevel(e){this.level=e}setEnabled(e){this.enabled=e}shouldLog(e){return!!this.enabled&&n[e]>=n[this.level]}formatMessage(e,t){const n=(new Date).toISOString().split("T")[1].slice(0,-1);return this.isBrowser?[`%c${this.prefix} %c${e.toUpperCase()} %c[${n}] %c${t}`,"color: #FFC107; font-weight: bold",`color: ${o[e]}; font-weight: bold`,"color: #9E9E9E","color: inherit"]:[`${this.prefix} ${e.toUpperCase()} [${n}] ${t}`]}debug(e,...t){if(this.shouldLog("debug")){const n=this.formatMessage("debug",e);console.debug(...n,...t)}}info(e,...t){if(this.shouldLog("info")){const n=this.formatMessage("info",e);console.info(...n,...t)}}warn(e,...t){if(this.shouldLog("warn")){const n=this.formatMessage("warn",e);console.warn(...n,...t)}}error(e,...t){if(this.shouldLog("error")){const n=this.formatMessage("error",e);console.error(...n,...t)}}connection(e,t){this.info({connected:"🟢 Connected to server",disconnected:"🔴 Disconnected from server",reconnecting:"🟡 Attempting to reconnect...",reconnected:"🟢 Reconnected to server"}[e],t??"")}emit(e,t){this.debug(`📤 Emit: ${e}`,void 0!==t?t:"")}receive(e,t){this.debug(`📥 Received: ${e}`,void 0!==t?t:"")}}new i;class s{constructor(e){this.listeners=new Map,this.socket=null,this.logger=e}setSocket(e){this.socket=e}on(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const n=(...n)=>{this.logger.receive(e,1===n.length?n[0]:n),t(...n)};this.socket.on(e,n),this.addListener(e,n,!1)}once(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const n=(...o)=>{this.logger.receive(e,1===o.length?o[0]:o),this.removeListener(e,n),t(...o)};this.socket.once(e,n),this.addListener(e,n,!0)}off(e,t){if(this.socket)if(t)this.socket.off(e,t),this.removeListener(e,t);else{const t=this.listeners.get(e);t&&(t.forEach(t=>{this.socket?.off(e,t.handler)}),this.listeners.delete(e))}}onMultiple(e,t){e.forEach(e=>{this.on(e,(...n)=>t(e,...n))})}onceAny(e,t){let n=!1;const o=()=>{n||(n=!0,e.forEach(e=>this.off(e)))};e.forEach(e=>{this.on(e,(...i)=>{n||(o(),t(e,...i))})})}listenerCount(e){return this.listeners.get(e)?.length??0}eventNames(){return Array.from(this.listeners.keys())}removeAllListeners(){this.socket&&(this.listeners.forEach((e,t)=>{e.forEach(e=>{this.socket?.off(t,e.handler)})}),this.listeners.clear(),this.logger.debug("All event listeners removed"))}addListener(e,t,n){const o=this.listeners.get(e)??[];o.push({event:e,handler:t,once:n}),this.listeners.set(e,o)}removeListener(e,t){const n=this.listeners.get(e);if(n){const o=n.findIndex(e=>e.handler===t);-1!==o&&(n.splice(o,1),0===n.length&&this.listeners.delete(e))}}}const r={enabled:!0,maxAttempts:10,delay:1e3,maxDelay:3e4,strategy:"exponential"};class c{constructor(e,t){this.socket=null,this.attempts=0,this.timer=null,this.isReconnecting=!1,this.options={...r,...e},this.callbacks={onReconnecting:e.onReconnecting,onReconnected:e.onReconnected,onFailed:e.onFailed},this.logger=t}setSocket(e){this.socket=e,this.setupListeners()}calculateDelay(){let e;return e="exponential"===this.options.strategy?this.options.delay*Math.pow(2,this.attempts-1):this.options.delay,Math.min(e,this.options.maxDelay)}setupListeners(){this.socket&&(this.socket.on("disconnect",e=>{this.logger.connection("disconnected",{reason:e}),"io client disconnect"!==e&&this.options.enabled&&this.startReconnection()}),this.socket.on("connect",()=>{this.isReconnecting?(this.logger.connection("reconnected"),this.callbacks.onReconnected?.(),this.reset()):this.logger.connection("connected")}),this.socket.on("connect_error",()=>{this.isReconnecting&&this.attemptReconnection()}))}startReconnection(){this.isReconnecting||(this.isReconnecting=!0,this.attempts=0,this.attemptReconnection())}attemptReconnection(){if(!this.socket||!this.isReconnecting)return;if(this.attempts++,this.attempts>this.options.maxAttempts)return this.logger.error(`Reconnection failed after ${this.options.maxAttempts} attempts`),this.callbacks.onFailed?.(),void this.reset();const e=this.calculateDelay();this.logger.connection("reconnecting",{attempt:this.attempts,delay:e}),this.callbacks.onReconnecting?.(this.attempts),this.timer=setTimeout(()=>{this.socket&&this.isReconnecting&&this.socket.connect()},e)}reconnect(){if(!this.socket)throw new Error("Socket not initialized");this.reset(),this.socket.connect()}reset(){this.isReconnecting=!1,this.attempts=0,this.timer&&(clearTimeout(this.timer),this.timer=null)}stop(){this.reset(),this.logger.debug("Reconnection handler stopped")}getStatus(){return{isReconnecting:this.isReconnecting,attempts:this.attempts}}updateOptions(e){Object.assign(this.options,e),void 0!==e.onReconnecting&&(this.callbacks.onReconnecting=e.onReconnecting),void 0!==e.onReconnected&&(this.callbacks.onReconnected=e.onReconnected),void 0!==e.onFailed&&(this.callbacks.onFailed=e.onFailed)}}class a{constructor(e,t,n={}){this.name=e,this.emitter=t,this.delimiter=n.delimiter??":"}getEventName(e){return`${this.name}${this.delimiter}${e}`}on(e,t){this.emitter.on(this.getEventName(e),t)}once(e,t){this.emitter.once(this.getEventName(e),t)}off(e,t){this.emitter.off(this.getEventName(e),t)}emit(e,...t){this.emitter.emit(this.getEventName(e),...t)}getName(){return this.name}getDelimiter(){return this.delimiter}sub(e){return new a(`${this.name}${this.delimiter}${e}`,this.emitter,{delimiter:this.delimiter})}}const l={enabled:!0,maxSize:100,maxAge:0};class u{constructor(e={},t){this.queue=[],this.socket=null,this.options={...l,...e},this.logger=t}setSocket(e){this.socket=e,e.on("connect",()=>{this.flush()})}enqueue(e,...t){if(!this.options.enabled)return!1;const n={event:e,args:t,timestamp:Date.now()};return this.options.maxSize&&this.options.maxSize>0&&this.queue.length>=this.options.maxSize?(this.logger.warn(`Offline queue full. Dropping event: ${e}`),this.options.onDropped?.(n),!1):(this.queue.push(n),this.logger.debug(`Event queued offline: ${e} (queue size: ${this.queue.length})`),this.options.onQueued?.(n),!0)}flush(){if(!this.socket?.connected||0===this.queue.length)return;if(this.options.maxAge&&this.options.maxAge>0){const e=Date.now(),t=this.queue.length;this.queue=this.queue.filter(t=>e-t.timestamp<this.options.maxAge);const n=t-this.queue.length;n>0&&this.logger.debug(`Discarded ${n} expired events from queue`)}const e=this.queue.length;if(0!==e){for(this.logger.info(`Flushing ${e} queued events...`);this.queue.length>0;){const e=this.queue.shift();this.socket.emit(e.event,...e.args),this.logger.debug(`Flushed: ${e.event}`)}this.options.onFlushed?.(e),this.logger.info(`Successfully flushed ${e} events`)}}get length(){return this.queue.length}getQueue(){return[...this.queue]}clear(){const e=this.queue.length;this.queue=[],this.logger.debug(`Cleared ${e} events from offline queue`)}get enabled(){return this.options.enabled??!0}setEnabled(e){this.options.enabled=e}}const h={enabled:!0,pingInterval:5e3,pingTimeout:3e3,sampleSize:5,thresholds:{excellent:50,good:100,fair:300}};class d{constructor(e={},t){this.socket=null,this.intervalId=null,this.latencySamples=[],this.currentQuality="disconnected",this.lastPingTime=0,this.options={...h,...e,thresholds:{...h.thresholds,...e.thresholds}},this.logger=t}setSocket(e){this.socket=e,e.on("connect",()=>{this.options.enabled&&this.start()}),e.on("disconnect",()=>{this.stop(),this.updateQuality("disconnected",0)}),e.on("pong",()=>{const e=Date.now()-this.lastPingTime;this.recordLatency(e)}),e.connected&&this.options.enabled&&this.start()}start(){this.intervalId||(this.logger.debug("Connection monitoring started"),this.intervalId=setInterval(()=>{this.ping().catch(()=>{})},this.options.pingInterval??h.pingInterval),this.ping().catch(()=>{}))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,this.logger.debug("Connection monitoring stopped"))}async ping(){if(!this.socket?.connected)throw new Error("Socket not connected");return new Promise((e,t)=>{const n=this.options.pingTimeout??h.pingTimeout,o=setTimeout(()=>{t(new Error("Ping timeout")),this.recordLatency(n)},n);this.lastPingTime=Date.now(),this.socket.volatile.emit("ping",()=>{clearTimeout(o);const t=Date.now()-this.lastPingTime;this.recordLatency(t),e(t)})})}recordLatency(e){const t=this.options.sampleSize??h.sampleSize;this.latencySamples.push(e),this.latencySamples.length>t&&this.latencySamples.shift();const n=this.getAverageLatency(),o=this.calculateQuality(n);o!==this.currentQuality&&this.updateQuality(o,n)}updateQuality(e,t){const n=this.currentQuality;this.currentQuality=e,this.logger.debug(`Connection quality: ${n} -> ${e} (${t}ms)`),this.options.onQualityChange?.(e,t)}calculateQuality(e){const t={...h.thresholds,...this.options.thresholds};return e<=t.excellent?"excellent":e<=t.good?"good":e<=t.fair?"fair":"poor"}getAverageLatency(){if(0===this.latencySamples.length)return 0;const e=this.latencySamples.reduce((e,t)=>e+t,0);return Math.round(e/this.latencySamples.length)}getLatency(){return this.latencySamples[this.latencySamples.length-1]??0}getQuality(){return this.currentQuality}getLatencySamples(){return[...this.latencySamples]}get isMonitoring(){return null!==this.intervalId}setEnabled(e){this.options.enabled=e,e&&this.socket?.connected?this.start():e||this.stop()}}const p={joinEvent:"join",leaveEvent:"leave"};class g{constructor(e={},t){this.socket=null,this.joinedRooms=new Set,this.options={...p,...e},this.logger=t}setSocket(e){this.socket=e,e.on("disconnect",()=>{this.joinedRooms.clear(),this.logger.debug("Cleared room list on disconnect")})}join(e,t){if(!this.socket?.connected)throw new Error("Socket not connected. Cannot join room.");const n=this.options.joinEvent??p.joinEvent;void 0!==t?this.socket.emit(n,e,t):this.socket.emit(n,e),this.joinedRooms.add(e),this.logger.debug(`Joined room: ${e}`)}leave(e,t){if(!this.socket?.connected)throw new Error("Socket not connected. Cannot leave room.");const n=this.options.leaveEvent??p.leaveEvent;void 0!==t?this.socket.emit(n,e,t):this.socket.emit(n,e),this.joinedRooms.delete(e),this.logger.debug(`Left room: ${e}`)}toRoom(e){return{emit:(t,...n)=>{if(!this.socket?.connected)throw new Error("Socket not connected. Cannot emit to room.");this.socket.emit(t,e,...n),this.logger.debug(`Emitted to room ${e}: ${t}`)}}}getRooms(){return Array.from(this.joinedRooms)}isInRoom(e){return this.joinedRooms.has(e)}leaveAll(){for(const e of this.joinedRooms)this.leave(e)}}const m={enabled:!0};class f{constructor(e={},t){this.middlewares=[],this.options={...m,...e},this.logger=t}use(e,t,n){const o={type:e,fn:t,events:n};return this.middlewares.push(o),this.logger.debug(`Middleware added for ${e} events`),()=>{const t=this.middlewares.indexOf(o);-1!==t&&(this.middlewares.splice(t,1),this.logger.debug(`Middleware removed for ${e} events`))}}matchesEvent(e,t){return!t||0===t.length||t.some(t=>"*"===t||(t.endsWith("*")?e.startsWith(t.slice(0,-1)):e===t))}async executeEmit(e,t){if(!this.options.enabled)return!0;const n=this.middlewares.filter(t=>"emit"===t.type&&this.matchesEvent(e,t.events));return 0===n.length||this.executeChain(n,e,t)}async executeReceive(e,t){if(!this.options.enabled)return!0;const n=this.middlewares.filter(t=>"receive"===t.type&&this.matchesEvent(e,t.events));return 0===n.length||this.executeChain(n,e,t)}async executeChain(e,t,n){let o=0,i=!1;const s=async()=>{if(i||o>=e.length)return;const r=e[o++];return new Promise(e=>{const o=()=>{e()},s=()=>{i=!0,this.logger.debug(`Middleware aborted event: ${t}`),e()};try{const e=r.fn(t,n,o,s);e instanceof Promise&&e.catch(e=>{this.logger.error(`Middleware error: ${e.message}`),o()})}catch(e){this.logger.error(`Middleware error: ${e.message}`),o()}}).then(()=>s())};return await s(),!i}get count(){return this.middlewares.length}clear(){this.middlewares=[],this.logger.debug("All middlewares cleared")}setEnabled(e){this.options.enabled=e}}const y={startEvent:"typing:start",stopEvent:"typing:stop",receiveStartEvent:"typing:start",receiveStopEvent:"typing:stop",debounceDelay:100,stopTimeout:3e3};class v{constructor(e={},t){this.socket=null,this.isTyping=!1,this.debounceTimer=null,this.stopTimer=null,this.typingUsers=new Map,this.onTypingCallbacks=[],this.onStoppedCallbacks=[],this.options={...y,...e},this.logger=t}setSocket(e){this.socket=e;const t=this.options.receiveStartEvent??y.receiveStartEvent,n=this.options.receiveStopEvent??y.receiveStopEvent;e.on(t,e=>{e?.userId&&(this.typingUsers.set(e.userId,{userId:e.userId,startedAt:Date.now()}),this.onTypingCallbacks.forEach(t=>t(e.userId,e)),this.logger.debug(`User ${e.userId} started typing`))}),e.on(n,e=>{e?.userId&&(this.typingUsers.delete(e.userId),this.onStoppedCallbacks.forEach(t=>t(e.userId,e)),this.logger.debug(`User ${e.userId} stopped typing`))}),e.on("disconnect",()=>{this.typingUsers.clear(),this.reset()})}send(){this.socket?.connected&&(this.stopTimer&&clearTimeout(this.stopTimer),this.stopTimer=setTimeout(()=>{this.sendStop()},this.options.stopTimeout??y.stopTimeout),this.isTyping||(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.sendStart()},this.options.debounceDelay??y.debounceDelay)))}sendStart(){if(!this.socket?.connected||this.isTyping)return;const e=this.options.startEvent??y.startEvent;this.socket.emit(e,this.options.metadata??{}),this.isTyping=!0,this.logger.debug("Sent typing start")}sendStop(){if(!this.socket?.connected||!this.isTyping)return;const e=this.options.stopEvent??y.stopEvent;this.socket.emit(e,this.options.metadata??{}),this.isTyping=!1,this.logger.debug("Sent typing stop")}onUserTyping(e){return this.onTypingCallbacks.push(e),()=>{const t=this.onTypingCallbacks.indexOf(e);-1!==t&&this.onTypingCallbacks.splice(t,1)}}onUserStopped(e){return this.onStoppedCallbacks.push(e),()=>{const t=this.onStoppedCallbacks.indexOf(e);-1!==t&&this.onStoppedCallbacks.splice(t,1)}}getTypingUsers(){return Array.from(this.typingUsers.keys())}isUserTyping(e){return this.typingUsers.has(e)}reset(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.stopTimer&&(clearTimeout(this.stopTimer),this.stopTimer=null),this.isTyping=!1}destroy(){this.reset(),this.typingUsers.clear(),this.onTypingCallbacks=[],this.onStoppedCallbacks=[]}}function k(e,t){t.forEach(({event:t,data:n})=>{void 0!==n?e.emit(t,n):e.emit(t)})}async function b(e,t){const n=t.map(async({event:t,data:n,timeout:o=5e3})=>new Promise((i,s)=>{const r=setTimeout(()=>{s(new Error(`Timeout waiting for ack: ${t}`))},o),c=void 0!==n?[n]:[];e.emit(t,...c,e=>{clearTimeout(r),i(e)})}));return Promise.all(n)}function w(e,t,n=5e3){return new Promise((o,i)=>{const s=setTimeout(()=>{e.off(t,r),i(new Error(`Timeout waiting for event: ${t}`))},n),r=e=>{clearTimeout(s),o(e)};e.once(t,r)})}function S(e,t,n=5e3){return new Promise((o,i)=>{const s=new Map,r=setTimeout(()=>{c(),i(new Error(`Timeout waiting for events: ${t.join(", ")}`))},n),c=()=>{s.forEach((t,n)=>{e.off(n,t)})};t.forEach(t=>{const n=e=>{clearTimeout(r),c(),o({event:t,data:e})};s.set(t,n),e.once(t,n)})})}function E(e,t,n,o=5e3){return new Promise((i,s)=>{const r=setTimeout(()=>{s(new Error(`Timeout waiting for ack: ${t}`))},o),c=void 0!==n?[n]:[];e.emit(t,...c,e=>{clearTimeout(r),i(e)})})}function x(e){return e?.connected??!1}function T(e){return e?{connected:e.connected,id:e.id??null,transport:e.io?.engine?.transport?.name??null}:{connected:!1,id:null,transport:null}}function R(e,t,n){let o,i=0,s=null;return r=>{const c=Date.now(),a=c-i;a>=n?(i=c,void 0!==r?e.emit(t,r):e.emit(t)):(o=r,s||(s=setTimeout(()=>{i=Date.now(),void 0!==o?e.emit(t,o):e.emit(t),s=null},n-a)))}}function C(e,t,n){let o=null;return i=>{o&&clearTimeout(o),o=setTimeout(()=>{void 0!==i?e.emit(t,i):e.emit(t),o=null},n)}}const $={debug:!1,logLevel:"info",namespaceDelimiter:":",autoConnect:!0};class M{constructor(e,t={}){this.socket=null,this.reconnectionHandler=null,this.typingIndicators=new Map,this.namespaces=new Map,this.url=e,this.options={...$,...t},this.logger=new i({enabled:this.options.debug,level:this.options.logLevel}),this.eventManager=new s(this.logger),this.offlineQueue=new u(this.options.offlineQueue??{},this.logger),this.connectionMonitor=new d(this.options.connectionMonitor??{},this.logger),this.roomManager=new g(this.options.roomManager??{},this.logger),this.middleware=new f({},this.logger),!1!==this.options.reconnection?.enabled&&(this.reconnectionHandler=new c(this.options.reconnection??{},this.logger)),this.options.autoConnect&&this.connect()}connect(){if(this.socket?.connected)return this.logger.warn("Already connected"),this.socket;const t={...this.options.socketOptions,reconnection:!1};return this.socket=e.io(this.url,t),this.eventManager.setSocket(this.socket),this.offlineQueue.setSocket(this.socket),this.connectionMonitor.setSocket(this.socket),this.roomManager.setSocket(this.socket),this.reconnectionHandler&&this.reconnectionHandler.setSocket(this.socket),this.socket}disconnect(){this.socket&&(this.eventManager.removeAllListeners(),this.reconnectionHandler?.stop(),this.connectionMonitor.stop(),this.socket.disconnect(),this.logger.connection("disconnected"))}on(e,t){return this.eventManager.on(e,t),this}once(e,t){return this.eventManager.once(e,t),this}off(e,t){return this.eventManager.off(e,t),this}emit(e,...t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return!this.socket.connected&&this.offlineQueue.enabled?(this.offlineQueue.enqueue(e,...t),this):(this.logger.emit(e,1===t.length?t[0]:t),this.socket.emit(e,...t),this)}emitMultiple(e){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return k(this.socket,e),this}async emitWithAck(e,t,n){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return E(this.socket,e,t,n)}async request(e,t,n={}){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const o=n.timeout??5e3,i=n.responseEvent??`${e}:response`;return new Promise((n,s)=>{const r=setTimeout(()=>{this.socket?.off(i,c),s(new Error(`Request timeout: ${e} (${o}ms)`))},o),c=e=>{clearTimeout(r),n(e)};this.socket.once(i,c),this.logger.emit(e,t),void 0!==t?this.socket.emit(e,t):this.socket.emit(e)})}async emitWithRetry(e,t,n={}){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");const o=n.maxRetries??3,i=n.retryDelay??1e3,s=n.timeout??5e3;let r=new Error("Unknown error");for(let c=1;c<=o;c++)try{return await E(this.socket,e,t,s)}catch(t){r=t instanceof Error?t:new Error(String(t)),this.logger.warn(`Emit failed (attempt ${c}/${o}): ${e}`),n.onRetry?.(c,r),c<o&&await new Promise(e=>setTimeout(e,i))}throw new Error(`Emit failed after ${o} attempts: ${e}. Last error: ${r.message}`)}async emitMultipleWithAck(e){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return b(this.socket,e)}onMultiple(e,t){return this.eventManager.onMultiple(e,t),this}onceAny(e,t){return this.eventManager.onceAny(e,t),this}async waitFor(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return w(this.socket,e,t)}async waitForAny(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return S(this.socket,e,t)}namespace(e,t){const n=e;if(!this.namespaces.has(n)){const o={delimiter:t?.delimiter??this.options.namespaceDelimiter};this.namespaces.set(n,new a(e,this,o))}return this.namespaces.get(n)}throttle(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return R(this.socket,e,t)}debounce(e,t){if(!this.socket)throw new Error("Socket not initialized. Call connect() first.");return C(this.socket,e,t)}getSocket(){return this.socket}get connected(){return x(this.socket)}get id(){return this.socket?.id}getConnectionInfo(){return T(this.socket)}reconnect(){if(!this.reconnectionHandler)throw new Error("Reconnection is not enabled");this.reconnectionHandler.reconnect()}getReconnectionStatus(){return this.reconnectionHandler?.getStatus()??null}listenerCount(e){return this.eventManager.listenerCount(e)}eventNames(){return this.eventManager.eventNames()}setDebug(e){return this.logger.setEnabled(e),this}setLogLevel(e){return this.logger.setLevel(e),this}getQueueLength(){return this.offlineQueue.length}getQueuedEvents(){return this.offlineQueue.getQueue()}clearQueue(){return this.offlineQueue.clear(),this}setOfflineQueue(e){return this.offlineQueue.setEnabled(e),this}async ping(){return this.connectionMonitor.ping()}getLatency(){return this.connectionMonitor.getAverageLatency()}getConnectionQuality(){return this.connectionMonitor.getQuality()}setConnectionMonitoring(e){return this.connectionMonitor.setEnabled(e),this}join(e,t){return this.roomManager.join(e,t),this}leave(e,t){return this.roomManager.leave(e,t),this}toRoom(e){return this.roomManager.toRoom(e)}getRooms(){return this.roomManager.getRooms()}isInRoom(e){return this.roomManager.isInRoom(e)}use(e,t,n){return this.middleware.use(e,t,n)}typing(e={}){const t=JSON.stringify(e);if(!this.typingIndicators.has(t)){const n=new v(e,this.logger);this.socket&&n.setSocket(this.socket),this.typingIndicators.set(t,n)}return this.typingIndicators.get(t)}}const j=["honeydrop.config.js","honeydrop.config.mjs","honeydrop.config.cjs",".honeydroprc.js"];var I,L={exports:{}},_={};var A,O={};
2
2
  /**
3
3
  * @license React
4
4
  * react-jsx-runtime.development.js
@@ -7,5 +7,5 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */"production"===process.env.NODE_ENV?M.exports=function(){if($)return j;$=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(t,n,o){var i=null;if(void 0!==o&&(i=""+o),void 0!==n.key&&(i=""+n.key),"key"in n)for(var s in o={},n)"key"!==s&&(o[s]=n[s]);else o=n;return n=o.ref,{$$typeof:e,type:t,key:i,ref:void 0!==n?n:null,props:o}}return j.Fragment=t,j.jsx=n,j.jsxs=n,j}():M.exports=(_||(_=1,"production"!==process.env.NODE_ENV&&function(){function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===x?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case m:return"Fragment";case p:return"Profiler";case g:return"StrictMode";case b:return"Suspense";case w:return"SuspenseList";case R:return"Activity"}if("object"==typeof t)switch("number"==typeof t.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case f:return"Portal";case k:return t.displayName||"Context";case y:return(t._context.displayName||"Context")+".Consumer";case v:var n=t.render;return(t=t.displayName)||(t=""!==(t=n.displayName||n.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case E:return null!==(n=t.displayName||null)?n:e(t.type)||"Memo";case S:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}function n(e){return""+e}function o(e){try{n(e);var t=!1}catch(e){t=!0}if(t){var o=(t=console).error,i="function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",i),n(e)}}function i(t){if(t===m)return"<>";if("object"==typeof t&&null!==t&&t.$$typeof===S)return"<...>";try{var n=e(t);return n?"<"+n+">":"<...>"}catch(e){return"<...>"}}function s(){return Error("react-stack-top-frame")}function r(){var t=e(this.type);return T[t]||(T[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(t=this.props.ref)?t:null}function c(t,n,i,s,c,l){var u,f=n.children;if(void 0!==f)if(s)if(j(f)){for(s=0;s<f.length;s++)a(f[s]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else a(f);if(M.call(n,"key")){f=e(t);var m=Object.keys(n).filter(function(e){return"key"!==e});s=0<m.length?"{key: someKey, "+m.join(": ..., ")+": ...}":"{key: someKey}",O[f+s]||(m=0<m.length?"{"+m.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',s,f,m,f),O[f+s]=!0)}if(f=null,void 0!==i&&(o(i),f=""+i),function(e){if(M.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(n)&&(o(n.key),f=""+n.key),"key"in n)for(var g in i={},n)"key"!==g&&(i[g]=n[g]);else i=n;return f&&function(e,t){function n(){h||(h=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(i,"function"==typeof t?t.displayName||t.name||"Unknown":t),function(e,t,n,o,i,s){var c=n.ref;return e={$$typeof:d,type:e,key:t,props:n,_owner:o},null!==(void 0!==c?c:null)?Object.defineProperty(e,"ref",{enumerable:!1,get:r}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:s}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}(t,f,i,null===(u=$.A)?null:u.getOwner(),c,l)}function a(e){l(e)?e._store&&(e._store.validated=1):"object"==typeof e&&null!==e&&e.$$typeof===S&&("fulfilled"===e._payload.status?l(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function l(e){return"object"==typeof e&&null!==e&&e.$$typeof===d}var h,u=t,d=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),p=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),k=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),R=Symbol.for("react.activity"),x=Symbol.for("react.client.reference"),$=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=Object.prototype.hasOwnProperty,j=Array.isArray,_=console.createTask?console.createTask:function(){return null},T={},L=(u={react_stack_bottom_frame:function(e){return e()}}).react_stack_bottom_frame.bind(u,s)(),A=_(i(s)),O={};C.Fragment=m,C.jsx=function(e,t,n){var o=1e4>$.recentlyCreatedOwnerStacks++;return c(e,t,n,!1,o?Error("react-stack-top-frame"):L,o?_(i(e)):A)},C.jsxs=function(e,t,n){var o=1e4>$.recentlyCreatedOwnerStacks++;return c(e,t,n,!0,o?Error("react-stack-top-frame"):L,o?_(i(e)):A)}}()),C);var T=M.exports;const L=t.createContext(null),A=()=>{const e=t.useContext(L);if(!e)throw new Error("useHoneydrop must be used within a HoneydropProvider");return e};exports.ConnectionMonitor=d,exports.EventManager=s,exports.Honeydrop=x,exports.HoneydropProvider=({client:e,children:t})=>T.jsx(L.Provider,{value:e,children:t}),exports.Logger=i,exports.NamespacedEvents=a,exports.OfflineQueue=h,exports.ReconnectionHandler=c,exports.RoomManager=m,exports.createDebouncedEmit=S,exports.createThrottledEmit=E,exports.default=x,exports.emitMultiple=g,exports.emitMultipleWithAck=p,exports.emitWithAck=v,exports.getConnectionInfo=w,exports.isConnected=b,exports.useHoneydrop=A,exports.useSocketEvent=function(e,n,o){const i=A(),s=t.useRef(n);t.useEffect(()=>{s.current=n},[n]),t.useEffect(()=>{const t=o?i.namespace(o):i,n=(...e)=>{s.current&&s.current(e[0])};return t.on(e,n),()=>{t.off(e,n)}},[e,o,i])},exports.useSocketStatus=function(){const e=A(),[n,o]=t.useState(e.connected?"connected":"disconnected");return t.useEffect(()=>{const t=()=>o("connected"),n=()=>o("disconnected"),i=()=>o("connecting");return e.on("connect",t),e.on("disconnect",n),e.on("reconnect_attempt",i),()=>{e.off("connect",t),e.off("disconnect",n),e.off("reconnect_attempt",i)}},[e]),n},exports.waitForAnyEvent=k,exports.waitForEvent=y;
10
+ */"production"===process.env.NODE_ENV?L.exports=function(){if(I)return _;I=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(t,n,o){var i=null;if(void 0!==o&&(i=""+o),void 0!==n.key&&(i=""+n.key),"key"in n)for(var s in o={},n)"key"!==s&&(o[s]=n[s]);else o=n;return n=o.ref,{$$typeof:e,type:t,key:i,ref:void 0!==n?n:null,props:o}}return _.Fragment=t,_.jsx=n,_.jsxs=n,_}():L.exports=(A||(A=1,"production"!==process.env.NODE_ENV&&function(){function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===T?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case g:return"Fragment";case f:return"Profiler";case m:return"StrictMode";case b:return"Suspense";case w:return"SuspenseList";case x:return"Activity"}if("object"==typeof t)switch("number"==typeof t.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case p:return"Portal";case v:return t.displayName||"Context";case y:return(t._context.displayName||"Context")+".Consumer";case k:var n=t.render;return(t=t.displayName)||(t=""!==(t=n.displayName||n.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case S:return null!==(n=t.displayName||null)?n:e(t.type)||"Memo";case E:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}function n(e){return""+e}function o(e){try{n(e);var t=!1}catch(e){t=!0}if(t){var o=(t=console).error,i="function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",i),n(e)}}function i(t){if(t===g)return"<>";if("object"==typeof t&&null!==t&&t.$$typeof===E)return"<...>";try{var n=e(t);return n?"<"+n+">":"<...>"}catch(e){return"<...>"}}function s(){return Error("react-stack-top-frame")}function r(){var t=e(this.type);return j[t]||(j[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(t=this.props.ref)?t:null}function c(t,n,i,s,c,l){var h,p=n.children;if(void 0!==p)if(s)if($(p)){for(s=0;s<p.length;s++)a(p[s]);Object.freeze&&Object.freeze(p)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else a(p);if(C.call(n,"key")){p=e(t);var g=Object.keys(n).filter(function(e){return"key"!==e});s=0<g.length?"{key: someKey, "+g.join(": ..., ")+": ...}":"{key: someKey}",_[p+s]||(g=0<g.length?"{"+g.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',s,p,g,p),_[p+s]=!0)}if(p=null,void 0!==i&&(o(i),p=""+i),function(e){if(C.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(n)&&(o(n.key),p=""+n.key),"key"in n)for(var m in i={},n)"key"!==m&&(i[m]=n[m]);else i=n;return p&&function(e,t){function n(){u||(u=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(i,"function"==typeof t?t.displayName||t.name||"Unknown":t),function(e,t,n,o,i,s){var c=n.ref;return e={$$typeof:d,type:e,key:t,props:n,_owner:o},null!==(void 0!==c?c:null)?Object.defineProperty(e,"ref",{enumerable:!1,get:r}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:s}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}(t,p,i,null===(h=R.A)?null:h.getOwner(),c,l)}function a(e){l(e)?e._store&&(e._store.validated=1):"object"==typeof e&&null!==e&&e.$$typeof===E&&("fulfilled"===e._payload.status?l(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function l(e){return"object"==typeof e&&null!==e&&e.$$typeof===d}var u,h=t,d=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),m=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),v=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),T=Symbol.for("react.client.reference"),R=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,C=Object.prototype.hasOwnProperty,$=Array.isArray,M=console.createTask?console.createTask:function(){return null},j={},I=(h={react_stack_bottom_frame:function(e){return e()}}).react_stack_bottom_frame.bind(h,s)(),L=M(i(s)),_={};O.Fragment=g,O.jsx=function(e,t,n){var o=1e4>R.recentlyCreatedOwnerStacks++;return c(e,t,n,!1,o?Error("react-stack-top-frame"):I,o?M(i(e)):L)},O.jsxs=function(e,t,n){var o=1e4>R.recentlyCreatedOwnerStacks++;return c(e,t,n,!0,o?Error("react-stack-top-frame"):I,o?M(i(e)):L)}}()),O);var D=L.exports;const Q=t.createContext(null),q=()=>{const e=t.useContext(Q);if(!e)throw new Error("useHoneydrop must be used within a HoneydropProvider");return e};exports.ConnectionMonitor=d,exports.EventManager=s,exports.Honeydrop=M,exports.HoneydropProvider=({client:e,children:t})=>D.jsx(Q.Provider,{value:e,children:t}),exports.Logger=i,exports.Middleware=f,exports.NamespacedEvents=a,exports.OfflineQueue=u,exports.ReconnectionHandler=c,exports.RoomManager=g,exports.TypingIndicator=v,exports.configExists=async function(){if("undefined"!=typeof window)return!1;try{const e=await import("path"),t=await import("fs"),n=process.cwd();return j.some(o=>t.existsSync(e.join(n,o)))}catch{return!1}},exports.createDebouncedEmit=C,exports.createThrottledEmit=R,exports.default=M,exports.emitMultiple=k,exports.emitMultipleWithAck=b,exports.emitWithAck=E,exports.generateConfigTemplate=function(){return"/**\n * Honeydrop Configuration\n * @type {import('honeydrop').HoneydropConfig}\n */\nmodule.exports = {\n // Default server URL (optional, can be overridden in constructor)\n // url: 'http://localhost:3000',\n\n // Enable debug logging\n debug: false,\n\n // Log level: 'debug' | 'info' | 'warn' | 'error'\n logLevel: 'info',\n\n // Auto-connect on instantiation\n autoConnect: true,\n\n // Reconnection settings\n reconnection: {\n enabled: true,\n maxAttempts: 10,\n delay: 1000,\n maxDelay: 30000,\n strategy: 'exponential' // 'linear' | 'exponential'\n },\n\n // Offline queue settings\n offlineQueue: {\n enabled: true,\n maxSize: 100,\n maxAge: 0 // 0 = no expiry\n },\n\n // Connection monitor settings\n connectionMonitor: {\n enabled: true,\n pingInterval: 5000,\n pingTimeout: 3000\n },\n\n // Room manager settings\n roomManager: {\n joinEvent: 'join',\n leaveEvent: 'leave'\n },\n\n // Namespace delimiter\n namespaceDelimiter: ':',\n\n // Socket.IO client options\n socketOptions: {\n // transports: ['websocket', 'polling'],\n // auth: { token: 'your-token' }\n }\n};\n"},exports.getConnectionInfo=T,exports.isConnected=x,exports.loadConfig=async function(){if("undefined"!=typeof window)return null;try{const e=await import("path"),t=await import("fs"),n=process.cwd();for(const o of j){const i=e.join(n,o);if(t.existsSync(i))try{const e=await import(`file://${i}`),t=e.default||e;return console.log(`[Honeydrop] Loaded config from ${o}`),t}catch(e){try{const e=require(i);return console.log(`[Honeydrop] Loaded config from ${o}`),e.default||e}catch{console.warn(`[Honeydrop] Failed to load config from ${o}`)}}}}catch{return null}return null},exports.useHoneydrop=q,exports.useLatency=function(){const e=q(),[n,o]=t.useState(0),[i,s]=t.useState("disconnected");return t.useEffect(()=>{o(e.getLatency()),s(e.getConnectionQuality());const t=()=>{o(e.getLatency()),s(e.getConnectionQuality())},n=setInterval(t,5e3);return e.on("connect",t),e.on("disconnect",()=>{o(0),s("disconnected")}),()=>{clearInterval(n),e.off("connect",t)}},[e]),{latency:n,quality:i,ping:async()=>{const t=await e.ping();return o(t),s(e.getConnectionQuality()),t}}},exports.useRoom=function(e,n){const o=q(),i=t.useRef(!1);return t.useEffect(()=>{o.connected&&(o.join(e,n),i.current=!0);const t=()=>{i.current||(o.join(e,n),i.current=!0)};return o.on("connect",t),()=>{o.off("connect",t),i.current&&o.connected&&(o.leave(e),i.current=!1)}},[o,e,n]),{emit:t.useCallback((t,...n)=>{o.toRoom(e).emit(t,...n)},[o,e]),leave:t.useCallback(()=>{i.current&&(o.leave(e),i.current=!1)},[o,e]),isJoined:i.current}},exports.useSocketEmit=function(e,n={}){const o=q(),[i,s]=t.useState(!1),[r,c]=t.useState(null);return{emit:t.useCallback(async t=>{s(!0),c(null);try{if(n.withAck){return await o.emitWithAck(e,t,n.timeout)}o.emit(e,t)}catch(e){const t=e instanceof Error?e:new Error(String(e));throw c(t),t}finally{s(!1)}},[o,e,n.withAck,n.timeout]),isLoading:i,error:r,resetError:t.useCallback(()=>{c(null)},[])}},exports.useSocketEvent=function(e,n,o){const i=q(),s=t.useRef(n);t.useEffect(()=>{s.current=n},[n]),t.useEffect(()=>{const t=o?i.namespace(o):i,n=(...e)=>{s.current&&s.current(e[0])};return t.on(e,n),()=>{t.off(e,n)}},[e,o,i])},exports.useSocketStatus=function(){const e=q(),[n,o]=t.useState(e.connected?"connected":"disconnected");return t.useEffect(()=>{const t=()=>o("connected"),n=()=>o("disconnected"),i=()=>o("connecting");return e.on("connect",t),e.on("disconnect",n),e.on("reconnect_attempt",i),()=>{e.off("connect",t),e.off("disconnect",n),e.off("reconnect_attempt",i)}},[e]),n},exports.useTypingIndicator=function(e={}){const n=q(),[o,i]=t.useState([]),s=e.startEvent??"typing:start",r=e.stopEvent??"typing:stop",c=e.timeout??3e3,a={current:null},l={current:!1};t.useEffect(()=>{const e=(...e)=>{const t=e[0];t?.userId&&i(e=>e.includes(t.userId)?e:[...e,t.userId])},t=(...e)=>{const t=e[0];t?.userId&&i(e=>e.filter(e=>e!==t.userId))},o=()=>i([]);return n.on(s,e),n.on(r,t),n.on("disconnect",o),()=>{n.off(s,e),n.off(r,t),n.off("disconnect",o),a.current&&clearTimeout(a.current)}},[n,s,r]);const u=t.useCallback(()=>{a.current&&clearTimeout(a.current),l.current||(n.emit(s),l.current=!0),a.current=setTimeout(()=>{l.current&&(n.emit(r),l.current=!1)},c)},[n,s,r,c]),h=t.useCallback(e=>o.includes(e),[o]);return{sendTyping:u,typingUsers:o,isUserTyping:h}},exports.waitForAnyEvent=S,exports.waitForEvent=w;
11
11
  //# sourceMappingURL=honeydrop.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"honeydrop.cjs.js","sources":["../src/logger.ts","../src/EventManager.ts","../src/ReconnectionHandler.ts","../src/NamespacedEvents.ts","../src/OfflineQueue.ts","../src/ConnectionMonitor.ts","../src/RoomManager.ts","../src/utils.ts","../src/Honeydrop.ts","../node_modules/react/jsx-runtime.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../src/react/HoneydropContext.tsx","../src/react/useSocketEvent.ts","../src/react/useSocketStatus.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n",null,null,null],"names":["LOG_LEVELS","debug","info","warn","error","none","LOG_COLORS","Logger","constructor","options","this","level","prefix","enabled","isBrowser","window","setLevel","setEnabled","shouldLog","formatMessage","message","timestamp","Date","toISOString","split","slice","toUpperCase","args","formatted","console","connection","event","details","connected","disconnected","reconnecting","reconnected","emit","data","undefined","receive","EventManager","logger","listeners","Map","socket","setSocket","on","handler","Error","wrappedHandler","length","addListener","once","removeListener","off","eventListeners","get","forEach","listener","delete","onMultiple","events","onceAny","fired","cleanup","listenerCount","eventNames","Array","from","keys","removeAllListeners","clear","push","set","index","findIndex","l","splice","DEFAULT_OPTIONS","maxAttempts","delay","maxDelay","strategy","ReconnectionHandler","attempts","timer","isReconnecting","callbacks","onReconnecting","onReconnected","onFailed","setupListeners","calculateDelay","Math","pow","min","reason","startReconnection","reset","attemptReconnection","attempt","setTimeout","connect","reconnect","clearTimeout","stop","getStatus","updateOptions","Object","assign","NamespacedEvents","name","emitter","delimiter","getEventName","getName","getDelimiter","sub","maxSize","maxAge","OfflineQueue","queue","flush","enqueue","queuedEvent","now","onDropped","onQueued","originalLength","filter","e","expired","count","shift","onFlushed","getQueue","pingInterval","pingTimeout","sampleSize","thresholds","excellent","good","fair","ConnectionMonitor","intervalId","latencySamples","currentQuality","lastPingTime","start","updateQuality","latency","recordLatency","setInterval","ping","catch","clearInterval","Promise","resolve","reject","timeout","volatile","avgLatency","getAverageLatency","quality","calculateQuality","previousQuality","onQualityChange","sum","reduce","a","b","round","getLatency","getQuality","getLatencySamples","isMonitoring","joinEvent","leaveEvent","RoomManager","joinedRooms","Set","join","room","add","leave","toRoom","getRooms","isInRoom","has","leaveAll","emitMultiple","async","emitMultipleWithAck","promises","map","response","all","waitForEvent","waitForAnyEvent","handlers","emitWithAck","isConnected","getConnectionInfo","id","transport","io","engine","createThrottledEmit","intervalMs","pendingData","lastEmit","timeSinceLastEmit","createDebouncedEmit","delayMs","logLevel","namespaceDelimiter","autoConnect","Honeydrop","url","reconnectionHandler","namespaces","eventManager","offlineQueue","connectionMonitor","roomManager","reconnection","socketOptions","disconnect","request","responseEvent","emitWithRetry","maxRetries","retryDelay","lastError","String","onRetry","waitFor","waitForAny","namespace","key","namespaceOptions","throttle","debounce","getSocket","getReconnectionStatus","setDebug","setLogLevel","getQueueLength","getQueuedEvents","clearQueue","setOfflineQueue","getConnectionQuality","setConnectionMonitoring","process","env","NODE_ENV","jsxRuntimeModule","exports","REACT_ELEMENT_TYPE","Symbol","for","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","propName","ref","$$typeof","props","reactJsxRuntime_production","Fragment","jsx","jsxs","require$$0","getComponentNameFromType","REACT_CLIENT_REFERENCE","displayName","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","toStringTag","call","getTaskName","UnknownOwner","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","jsxDEVImpl","isStaticChildren","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","hasOwnProperty","k","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","refProp","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","isValidElement","validated","status","object","React","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","isArray","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","recentlyCreatedOwnerStacks","HoneydropContext","createContext","useHoneydrop","context","useContext","client","_jsx","Provider","savedHandler","useRef","useEffect","current","target","eventListener","setStatus","useState","onConnect","onDisconnect","onReconnectAttempt"],"mappings":"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","x_google_ignoreList":[9,10,11]}
1
+ {"version":3,"file":"honeydrop.cjs.js","sources":["../src/logger.ts","../src/EventManager.ts","../src/ReconnectionHandler.ts","../src/NamespacedEvents.ts","../src/OfflineQueue.ts","../src/ConnectionMonitor.ts","../src/RoomManager.ts","../src/Middleware.ts","../src/TypingIndicator.ts","../src/utils.ts","../src/Honeydrop.ts","../src/config.ts","../node_modules/react/jsx-runtime.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../src/react/HoneydropContext.tsx","../src/react/useLatency.ts","../src/react/useRoom.ts","../src/react/useSocketEmit.ts","../src/react/useSocketEvent.ts","../src/react/useSocketStatus.ts","../src/react/useTypingIndicator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n",null,null,null,null,null,null,null],"names":["LOG_LEVELS","debug","info","warn","error","none","LOG_COLORS","Logger","constructor","options","this","level","prefix","enabled","isBrowser","window","setLevel","setEnabled","shouldLog","formatMessage","message","timestamp","Date","toISOString","split","slice","toUpperCase","args","formatted","console","connection","event","details","connected","disconnected","reconnecting","reconnected","emit","data","undefined","receive","EventManager","logger","listeners","Map","socket","setSocket","on","handler","Error","wrappedHandler","length","addListener","once","removeListener","off","eventListeners","get","forEach","listener","delete","onMultiple","events","onceAny","fired","cleanup","listenerCount","eventNames","Array","from","keys","removeAllListeners","clear","push","set","index","findIndex","l","splice","DEFAULT_OPTIONS","maxAttempts","delay","maxDelay","strategy","ReconnectionHandler","attempts","timer","isReconnecting","callbacks","onReconnecting","onReconnected","onFailed","setupListeners","calculateDelay","Math","pow","min","reason","startReconnection","reset","attemptReconnection","attempt","setTimeout","connect","reconnect","clearTimeout","stop","getStatus","updateOptions","Object","assign","NamespacedEvents","name","emitter","delimiter","getEventName","getName","getDelimiter","sub","maxSize","maxAge","OfflineQueue","queue","flush","enqueue","queuedEvent","now","onDropped","onQueued","originalLength","filter","e","expired","count","shift","onFlushed","getQueue","pingInterval","pingTimeout","sampleSize","thresholds","excellent","good","fair","ConnectionMonitor","intervalId","latencySamples","currentQuality","lastPingTime","start","updateQuality","latency","recordLatency","setInterval","ping","catch","clearInterval","Promise","resolve","reject","timeout","volatile","avgLatency","getAverageLatency","quality","calculateQuality","previousQuality","onQualityChange","sum","reduce","a","b","round","getLatency","getQuality","getLatencySamples","isMonitoring","joinEvent","leaveEvent","RoomManager","joinedRooms","Set","join","room","add","leave","toRoom","getRooms","isInRoom","has","leaveAll","Middleware","middlewares","use","type","fn","entry","indexOf","matchesEvent","patterns","some","pattern","endsWith","startsWith","executeEmit","emitMiddlewares","m","executeChain","executeReceive","receiveMiddlewares","chain","aborted","runNext","async","current","next","abort","result","err","then","startEvent","stopEvent","receiveStartEvent","receiveStopEvent","debounceDelay","stopTimeout","TypingIndicator","isTyping","debounceTimer","stopTimer","typingUsers","onTypingCallbacks","onStoppedCallbacks","userId","startedAt","cb","send","sendStop","sendStart","metadata","onUserTyping","callback","onUserStopped","getTypingUsers","isUserTyping","destroy","emitMultiple","emitMultipleWithAck","promises","map","response","all","waitForEvent","waitForAnyEvent","handlers","emitWithAck","isConnected","getConnectionInfo","id","transport","io","engine","createThrottledEmit","intervalMs","pendingData","lastEmit","timeSinceLastEmit","createDebouncedEmit","delayMs","logLevel","namespaceDelimiter","autoConnect","Honeydrop","url","reconnectionHandler","typingIndicators","namespaces","eventManager","offlineQueue","connectionMonitor","roomManager","middleware","reconnection","socketOptions","disconnect","request","responseEvent","emitWithRetry","maxRetries","retryDelay","lastError","String","onRetry","waitFor","waitForAny","namespace","key","namespaceOptions","throttle","debounce","getSocket","getReconnectionStatus","setDebug","setLogLevel","getQueueLength","getQueuedEvents","clearQueue","setOfflineQueue","getConnectionQuality","setConnectionMonitoring","typing","JSON","stringify","indicator","CONFIG_FILE_NAMES","process","env","NODE_ENV","jsxRuntimeModule","exports","REACT_ELEMENT_TYPE","Symbol","for","REACT_FRAGMENT_TYPE","jsxProd","config","maybeKey","propName","ref","$$typeof","props","reactJsxRuntime_production","Fragment","jsx","jsxs","require$$0","getComponentNameFromType","REACT_CLIENT_REFERENCE","displayName","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","toStringTag","call","getTaskName","UnknownOwner","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","jsxDEVImpl","isStaticChildren","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","hasOwnProperty","k","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","refProp","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","isValidElement","validated","status","object","React","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","isArray","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","recentlyCreatedOwnerStacks","HoneydropContext","createContext","useHoneydrop","context","useContext","client","_jsx","Provider","path","import","fs","cwd","fileName","existsSync","configPath","configModule","default","log","importError","require","setLatency","useState","setQuality","useEffect","updateLatency","interval","roomId","joinData","isJoinedRef","useRef","handleConnect","useCallback","isJoined","isLoading","setIsLoading","setError","withAck","resetError","savedHandler","target","eventListener","setStatus","onConnect","onDisconnect","onReconnectAttempt","setTypingUsers","timeoutRef","isTypingRef","handleStart","prev","includes","handleStop","handleDisconnect","sendTyping"],"mappings":"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","x_google_ignoreList":[12,13,14]}