honeydrop 1.0.2 → 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 +185 -2
- package/dist/honeydrop.cjs.js +10 -1
- package/dist/honeydrop.cjs.js.map +1 -1
- package/dist/honeydrop.esm.js +10 -1
- package/dist/honeydrop.esm.js.map +1 -1
- package/dist/honeydrop.umd.js +10 -1
- package/dist/honeydrop.umd.js.map +1 -1
- package/dist/index.d.ts +308 -2
- package/package.json +18 -8
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
|
-
- **🔌
|
|
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,180 @@ 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
|
+
|
|
218
|
+
## ⚛️ Using with React
|
|
219
|
+
|
|
220
|
+
Honeydrop provides first-class support for React with powerful hooks that handle lifecycle and cleanup for you.
|
|
221
|
+
|
|
222
|
+
### Setup Provider
|
|
223
|
+
|
|
224
|
+
Wrap your app in the `HoneydropProvider` to make the client available throughout your component tree.
|
|
225
|
+
|
|
226
|
+
```tsx
|
|
227
|
+
import { Honeydrop, HoneydropProvider } from 'honeydrop';
|
|
228
|
+
|
|
229
|
+
const client = new Honeydrop('http://localhost:3000');
|
|
230
|
+
|
|
231
|
+
function App() {
|
|
232
|
+
return (
|
|
233
|
+
<HoneydropProvider client={client}>
|
|
234
|
+
<Dashboard />
|
|
235
|
+
</HoneydropProvider>
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Hooks API
|
|
241
|
+
|
|
242
|
+
#### useSocketEvent
|
|
243
|
+
Listens for an event and automatically removes the listener when the component unmounts. No more `useEffect` boilerplate!
|
|
244
|
+
|
|
245
|
+
```tsx
|
|
246
|
+
import { useSocketEvent } from 'honeydrop';
|
|
247
|
+
|
|
248
|
+
function LiveCounter() {
|
|
249
|
+
// Listen for 'count:update' event
|
|
250
|
+
useSocketEvent('count:update', (count) => {
|
|
251
|
+
console.log('New count:', count);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
return <div>Check console for updates</div>;
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### useSocketStatus
|
|
259
|
+
Easily track your connection status to show loading spinners or offline badges.
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
import { useSocketStatus } from 'honeydrop';
|
|
263
|
+
|
|
264
|
+
function ConnectionBadge() {
|
|
265
|
+
const status = useSocketStatus(); // 'connected' | 'disconnected' | 'connecting'
|
|
266
|
+
|
|
267
|
+
if (status === 'disconnected') {
|
|
268
|
+
return <span style={{ color: 'red' }}>Offline</span>;
|
|
269
|
+
}
|
|
270
|
+
return <span style={{ color: 'green' }}>Online</span>;
|
|
271
|
+
}
|
|
272
|
+
```
|
|
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
|
+
|
|
169
346
|
## 🌐 Browser Support
|
|
170
347
|
|
|
171
348
|
Honeydrop works seamlessly in both Node.js and the Browser.
|
|
@@ -196,4 +373,10 @@ npm start
|
|
|
196
373
|
|
|
197
374
|
## 📄 License
|
|
198
375
|
|
|
199
|
-
MIT © 2024 Neeraj
|
|
376
|
+
MIT License © 2024 Neeraj
|
|
377
|
+
|
|
378
|
+
<br>
|
|
379
|
+
|
|
380
|
+
<p align="center">
|
|
381
|
+
Made with ❤️ by <a href="https://github.com/neeer4j">neeer4j</a>
|
|
382
|
+
</p>
|
package/dist/honeydrop.cjs.js
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("socket.io-client");const t={debug:0,info:1,warn:2,error:3,none:4},n={debug:"#9E9E9E",info:"#2196F3",warn:"#FF9800",error:"#F44336",none:""};class o{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&&t[e]>=t[this.level]}formatMessage(e,t){const o=(new Date).toISOString().split("T")[1].slice(0,-1);return this.isBrowser?[`%c${this.prefix} %c${e.toUpperCase()} %c[${o}] %c${t}`,"color: #FFC107; font-weight: bold",`color: ${n[e]}; font-weight: bold`,"color: #9E9E9E","color: inherit"]:[`${this.prefix} ${e.toUpperCase()} [${o}] ${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 o;class i{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 s={enabled:!0,maxAttempts:10,delay:1e3,maxDelay:3e4,strategy:"exponential"};class r{constructor(e,t){this.socket=null,this.attempts=0,this.timer=null,this.isReconnecting=!1,this.options={...s,...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 c{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 c(`${this.name}${this.delimiter}${e}`,this.emitter,{delimiter:this.delimiter})}}const h={enabled:!0,maxSize:100,maxAge:0};class l{constructor(e={},t){this.queue=[],this.socket=null,this.options={...h,...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 a={enabled:!0,pingInterval:5e3,pingTimeout:3e3,sampleSize:5,thresholds:{excellent:50,good:100,fair:300}};class u{constructor(e={},t){this.socket=null,this.intervalId=null,this.latencySamples=[],this.currentQuality="disconnected",this.lastPingTime=0,this.options={...a,...e,thresholds:{...a.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??a.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??a.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??a.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={...a.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 g={joinEvent:"join",leaveEvent:"leave"};class d{constructor(e={},t){this.socket=null,this.joinedRooms=new Set,this.options={...g,...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??g.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??g.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 m(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 f(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 w(e){return e?.connected??!1}function y(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(),h=c-i;h>=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-h)))}}function b(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 S{constructor(e,t={}){this.socket=null,this.reconnectionHandler=null,this.namespaces=new Map,this.url=e,this.options={...R,...t},this.logger=new o({enabled:this.options.debug,level:this.options.logLevel}),this.eventManager=new i(this.logger),this.offlineQueue=new l(this.options.offlineQueue??{},this.logger),this.connectionMonitor=new u(this.options.connectionMonitor??{},this.logger),this.roomManager=new d(this.options.roomManager??{},this.logger),!1!==this.options.reconnection?.enabled&&(this.reconnectionHandler=new r(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 m(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 f(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 c(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 b(this.socket,e,t)}getSocket(){return this.socket}get connected(){return w(this.socket)}get id(){return this.socket?.id}getConnectionInfo(){return y(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)}}exports.ConnectionMonitor=u,exports.EventManager=i,exports.Honeydrop=S,exports.Logger=o,exports.NamespacedEvents=c,exports.OfflineQueue=l,exports.ReconnectionHandler=r,exports.RoomManager=d,exports.createDebouncedEmit=b,exports.createThrottledEmit=E,exports.default=S,exports.emitMultiple=m,exports.emitMultipleWithAck=p,exports.emitWithAck=v,exports.getConnectionInfo=y,exports.isConnected=w,exports.waitForAnyEvent=k,exports.waitForEvent=f;
|
|
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
|
+
/**
|
|
3
|
+
* @license React
|
|
4
|
+
* react-jsx-runtime.development.js
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
7
|
+
*
|
|
8
|
+
* This source code is licensed under the MIT license found in the
|
|
9
|
+
* LICENSE file in the root directory of this source tree.
|
|
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;
|
|
2
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"],"sourcesContent":[null,null,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","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"],"mappings":"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"}
|
|
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]}
|