stelar-time-real 3.2.1 → 3.3.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stelar-time-real",
3
- "version": "3.2.1",
3
+ "version": "3.3.1",
4
4
  "description": "Zero-dependency production real-time library. Custom binary TCP + manual WebSocket. No ws package. Rate limiting (custom/per-event/per-client), hooks, custom IP tracker, custom health check, runtime config, rooms, ACKs, middleware, TLS/SSL.",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
package/src/client.d.ts CHANGED
@@ -1,44 +1,32 @@
1
- /**
2
- * @stelar-time-real Client
3
- *
4
- * Dual-environment: Browser (native WebSocket) + Node.js (manual WS or TCP binary).
5
- * No external dependencies.
6
- */
1
+ /** @stelar-time-real Client — Browser WS / Node WS / binary TCP */
7
2
  import { Logger, type LogLevel } from './logger.js';
8
3
  export interface StelarClientHooks {
9
- /** Return false to cancel the emit. */
10
- onBeforeEmit?: (info: {
4
+ onBeforeEmit?: (i: {
11
5
  event: string;
12
6
  data: unknown;
13
7
  }) => boolean | void;
14
- /** Called on every incoming message. */
15
- onMessage?: (info: {
8
+ onMessage?: (i: {
16
9
  event: string;
17
10
  data: unknown;
18
11
  isBinary: boolean;
19
12
  }) => void;
20
- /** Called when connection state changes. */
21
- onStateChange?: (info: {
13
+ onStateChange?: (i: {
22
14
  from: ConnectionState;
23
15
  to: ConnectionState;
24
16
  }) => void;
25
- /** Return a custom delay (ms) to override built-in backoff. */
26
- onReconnectDelay?: (info: {
17
+ onReconnectDelay?: (i: {
27
18
  attempt: number;
28
19
  defaultDelay: number;
29
20
  }) => number | void;
30
- /** Called when a message is queued while disconnected. */
31
- onMessageQueued?: (info: {
21
+ onMessageQueued?: (i: {
32
22
  event: string;
33
23
  data: unknown;
34
24
  queueSize: number;
35
25
  }) => void;
36
- /** Called after queued messages are flushed on reconnection. */
37
- onQueueDrained?: (info: {
26
+ onQueueDrained?: (i: {
38
27
  count: number;
39
28
  }) => void;
40
- /** Called on any client-side error. */
41
- onError?: (info: {
29
+ onError?: (i: {
42
30
  error: Error;
43
31
  context: string;
44
32
  }) => void;
@@ -58,39 +46,45 @@ export interface StelarClientOptions {
58
46
  tls?: boolean;
59
47
  rejectUnauthorized?: boolean;
60
48
  headers?: Record<string, string>;
61
- /** Custom backoff function: (attempt, baseDelay, maxDelay) => delayMs */
49
+ compression?: boolean;
62
50
  customReconnectDelay?: (attempt: number, baseDelay: number, maxDelay: number) => number;
63
51
  hooks?: StelarClientHooks;
64
52
  }
65
53
  export interface StelarEmitOptions {
66
54
  ack?: string;
55
+ _correlationId?: string;
67
56
  }
68
57
  export type StelarEventHandler = (data: unknown) => void;
69
58
  export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting';
70
59
  declare class StelarClient {
71
60
  private url;
72
- private options;
61
+ private opts;
73
62
  private events;
74
- private _wildcardHandler;
63
+ private _wild;
75
64
  private _acks;
76
65
  private _state;
77
- private _reconnectAttempts;
78
- private _hbTimer;
79
- private _isManualClose;
66
+ private _reconnAttempts;
67
+ private _hb;
68
+ private _manualClose;
80
69
  private id;
81
- private _messageQueue;
82
- private _reconnectTimer;
83
- private _messagesSent;
84
- private _messagesReceived;
85
- private _connectTime;
86
- private _lastError;
70
+ private _mq;
71
+ private _reconnTimer;
72
+ private _ackCounter;
73
+ private _sent;
74
+ private _recv;
75
+ private _connTime;
76
+ private _lastErr;
87
77
  private _ws;
88
- private _nodeSocket;
78
+ private _nodeSock;
89
79
  private _wsParser;
90
- private _tcpSocket;
80
+ private _tcpSock;
91
81
  private _tcpParser;
82
+ private _compress;
83
+ private _serverCompress;
84
+ private _writePaused;
85
+ private _writeQueue;
92
86
  private log;
93
- constructor(urlOrPort?: string | number, options?: StelarClientOptions);
87
+ constructor(urlOrPort?: string | number, o?: StelarClientOptions);
94
88
  getState(): ConnectionState;
95
89
  getId(): string | null;
96
90
  getUrl(): string;
@@ -99,10 +93,8 @@ declare class StelarClient {
99
93
  getLastError(): Error | null;
100
94
  getQueueSize(): number;
101
95
  getConnectTime(): number;
102
- setUrl(url: string): this;
103
- /** Update client options at runtime. Changes take effect immediately. */
104
- updateOptions(options: Partial<StelarClientOptions>): this;
105
- /** Read-only snapshot of current client options. */
96
+ setUrl(u: string): this;
97
+ updateOptions(o: Partial<StelarClientOptions>): this;
106
98
  getOptions(): Readonly<{
107
99
  reconnection: boolean;
108
100
  reconnectionAttempts: number;
@@ -110,50 +102,53 @@ declare class StelarClient {
110
102
  maxReconnectionDelay: number;
111
103
  heartbeatInterval: number;
112
104
  ackTimeout: number;
113
- mode: string;
105
+ mode: "ws" | "tcp";
114
106
  maxPayloadSize: number;
115
107
  messageQueueSize: number;
108
+ compression: boolean;
116
109
  hasCustomReconnectDelay: boolean;
117
110
  hooks: string[];
118
111
  }>;
119
- on(event: string, handler: StelarEventHandler): this;
120
- off(event: string, handler: StelarEventHandler): this;
121
- once(event: string, handler: StelarEventHandler): this;
122
- onAll(handler: (data: {
112
+ on(ev: string, h: StelarEventHandler): this;
113
+ off(ev: string, h: StelarEventHandler): this;
114
+ once(ev: string, h: StelarEventHandler): this;
115
+ onAll(h: (d: {
123
116
  event: string;
124
117
  data: unknown;
125
118
  isBinary?: boolean;
126
119
  buffer?: ArrayBuffer;
127
120
  }) => void): this;
128
- onAck(name: string, handler: StelarEventHandler): this;
129
- removeAllListeners(event?: string): this;
121
+ onAck(name: string, h: StelarEventHandler): this;
122
+ removeAllListeners(ev?: string): this;
130
123
  emit(event: string, data?: unknown, opts?: StelarEmitOptions): this;
131
124
  emitBinary(event: string, data: ArrayBuffer): this;
132
- sendFile(file: ArrayBuffer): this;
133
- sendImage(blob: ArrayBuffer): this;
134
- /** Send a request and wait for an ACK response. Rejects on timeout. */
125
+ sendFile(f: ArrayBuffer): this;
126
+ sendImage(b: ArrayBuffer): this;
135
127
  request(event: string, data: unknown, ackName: string): Promise<unknown>;
136
128
  joinRoom(room: string): this;
137
129
  leaveRoom(room: string): this;
138
- private startHeartbeat;
139
- private stopHeartbeat;
140
- private _getReconnectDelay;
141
- private _drainQueue;
130
+ connect(cb?: () => void): this;
131
+ disconnect(): this;
132
+ isConnected(): boolean;
142
133
  private _setState;
134
+ private _startHB;
135
+ private _stopHB;
136
+ private _getDelay;
137
+ private _drain;
143
138
  private _cleanupAcks;
144
139
  private _fullCleanup;
145
- connect(callback?: () => void): this;
146
- disconnect(): this;
147
- isConnected(): boolean;
140
+ private _tryReconnect;
141
+ private _onConnected;
142
+ private _writeTCP;
143
+ private _writeNodeWS;
144
+ private _flushQueue;
148
145
  private _connectBrowser;
149
- private _handleBrowserMessage;
146
+ private _handleBrowserMsg;
150
147
  private _connectNodeWS;
151
- private _processNodeWSData;
152
- private _handleNodeWSFrame;
153
- /** TCP mode: connects to WS port + 1 by convention. */
148
+ private _processNodeWS;
149
+ private _handleNodeFrame;
154
150
  private _connectTCP;
155
151
  private _handleTCPFrame;
156
- private _tryReconnect;
157
152
  }
158
153
  export default StelarClient;
159
154
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"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"}