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 +1 -1
- package/src/client.d.ts +56 -61
- package/src/client.d.ts.map +1 -1
- package/src/client.js +461 -736
- package/src/client.ts +364 -905
- package/src/index.d.ts +88 -126
- package/src/index.d.ts.map +1 -1
- package/src/index.js +812 -1181
- package/src/index.ts +608 -1582
- package/src/logger.d.ts +11 -17
- package/src/logger.d.ts.map +1 -1
- package/src/logger.js +31 -90
- package/src/logger.ts +35 -106
- package/src/protocol.d.ts +20 -38
- package/src/protocol.d.ts.map +1 -1
- package/src/protocol.js +83 -161
- package/src/protocol.ts +79 -211
- package/src/websocket.d.ts +31 -47
- package/src/websocket.d.ts.map +1 -1
- package/src/websocket.js +161 -222
- package/src/websocket.ts +115 -278
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stelar-time-real",
|
|
3
|
-
"version": "3.
|
|
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
|
-
|
|
10
|
-
onBeforeEmit?: (info: {
|
|
4
|
+
onBeforeEmit?: (i: {
|
|
11
5
|
event: string;
|
|
12
6
|
data: unknown;
|
|
13
7
|
}) => boolean | void;
|
|
14
|
-
|
|
15
|
-
onMessage?: (info: {
|
|
8
|
+
onMessage?: (i: {
|
|
16
9
|
event: string;
|
|
17
10
|
data: unknown;
|
|
18
11
|
isBinary: boolean;
|
|
19
12
|
}) => void;
|
|
20
|
-
|
|
21
|
-
onStateChange?: (info: {
|
|
13
|
+
onStateChange?: (i: {
|
|
22
14
|
from: ConnectionState;
|
|
23
15
|
to: ConnectionState;
|
|
24
16
|
}) => void;
|
|
25
|
-
|
|
26
|
-
onReconnectDelay?: (info: {
|
|
17
|
+
onReconnectDelay?: (i: {
|
|
27
18
|
attempt: number;
|
|
28
19
|
defaultDelay: number;
|
|
29
20
|
}) => number | void;
|
|
30
|
-
|
|
31
|
-
onMessageQueued?: (info: {
|
|
21
|
+
onMessageQueued?: (i: {
|
|
32
22
|
event: string;
|
|
33
23
|
data: unknown;
|
|
34
24
|
queueSize: number;
|
|
35
25
|
}) => void;
|
|
36
|
-
|
|
37
|
-
onQueueDrained?: (info: {
|
|
26
|
+
onQueueDrained?: (i: {
|
|
38
27
|
count: number;
|
|
39
28
|
}) => void;
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
61
|
+
private opts;
|
|
73
62
|
private events;
|
|
74
|
-
private
|
|
63
|
+
private _wild;
|
|
75
64
|
private _acks;
|
|
76
65
|
private _state;
|
|
77
|
-
private
|
|
78
|
-
private
|
|
79
|
-
private
|
|
66
|
+
private _reconnAttempts;
|
|
67
|
+
private _hb;
|
|
68
|
+
private _manualClose;
|
|
80
69
|
private id;
|
|
81
|
-
private
|
|
82
|
-
private
|
|
83
|
-
private
|
|
84
|
-
private
|
|
85
|
-
private
|
|
86
|
-
private
|
|
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
|
|
78
|
+
private _nodeSock;
|
|
89
79
|
private _wsParser;
|
|
90
|
-
private
|
|
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,
|
|
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(
|
|
103
|
-
|
|
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:
|
|
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(
|
|
120
|
-
off(
|
|
121
|
-
once(
|
|
122
|
-
onAll(
|
|
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,
|
|
129
|
-
removeAllListeners(
|
|
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(
|
|
133
|
-
sendImage(
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
140
|
+
private _tryReconnect;
|
|
141
|
+
private _onConnected;
|
|
142
|
+
private _writeTCP;
|
|
143
|
+
private _writeNodeWS;
|
|
144
|
+
private _flushQueue;
|
|
148
145
|
private _connectBrowser;
|
|
149
|
-
private
|
|
146
|
+
private _handleBrowserMsg;
|
|
150
147
|
private _connectNodeWS;
|
|
151
|
-
private
|
|
152
|
-
private
|
|
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
|
package/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"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"}
|