raffel 1.0.9 → 1.0.10-next.c6c5ad1

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.
Files changed (74) hide show
  1. package/dist/adapters/websocket.d.ts +22 -1
  2. package/dist/adapters/websocket.d.ts.map +1 -1
  3. package/dist/adapters/websocket.js +342 -14
  4. package/dist/adapters/websocket.js.map +1 -1
  5. package/dist/channels/channel-manager.d.ts.map +1 -1
  6. package/dist/channels/channel-manager.js +265 -4
  7. package/dist/channels/channel-manager.js.map +1 -1
  8. package/dist/channels/history.d.ts +54 -0
  9. package/dist/channels/history.d.ts.map +1 -0
  10. package/dist/channels/history.js +78 -0
  11. package/dist/channels/history.js.map +1 -0
  12. package/dist/channels/index.d.ts +9 -1
  13. package/dist/channels/index.d.ts.map +1 -1
  14. package/dist/channels/index.js +8 -1
  15. package/dist/channels/index.js.map +1 -1
  16. package/dist/channels/recovery.d.ts +57 -0
  17. package/dist/channels/recovery.d.ts.map +1 -0
  18. package/dist/channels/recovery.js +58 -0
  19. package/dist/channels/recovery.js.map +1 -0
  20. package/dist/channels/rest-api.d.ts +32 -0
  21. package/dist/channels/rest-api.d.ts.map +1 -0
  22. package/dist/channels/rest-api.js +197 -0
  23. package/dist/channels/rest-api.js.map +1 -0
  24. package/dist/channels/ticket-store.d.ts +25 -0
  25. package/dist/channels/ticket-store.d.ts.map +1 -0
  26. package/dist/channels/ticket-store.js +70 -0
  27. package/dist/channels/ticket-store.js.map +1 -0
  28. package/dist/channels/types.d.ts +267 -5
  29. package/dist/channels/types.d.ts.map +1 -1
  30. package/dist/channels/types.js +15 -1
  31. package/dist/channels/types.js.map +1 -1
  32. package/dist/client/index.d.ts +39 -0
  33. package/dist/client/index.d.ts.map +1 -0
  34. package/dist/client/index.js +531 -0
  35. package/dist/client/index.js.map +1 -0
  36. package/dist/client/reconnect.d.ts +33 -0
  37. package/dist/client/reconnect.d.ts.map +1 -0
  38. package/dist/client/reconnect.js +60 -0
  39. package/dist/client/reconnect.js.map +1 -0
  40. package/dist/client/types.d.ts +107 -0
  41. package/dist/client/types.d.ts.map +1 -0
  42. package/dist/client/types.js +5 -0
  43. package/dist/client/types.js.map +1 -0
  44. package/dist/index.d.ts +8 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +10 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/middleware/interceptors/field-filter.d.ts +51 -0
  49. package/dist/middleware/interceptors/field-filter.d.ts.map +1 -0
  50. package/dist/middleware/interceptors/field-filter.js +81 -0
  51. package/dist/middleware/interceptors/field-filter.js.map +1 -0
  52. package/dist/middleware/interceptors/guard.d.ts +51 -0
  53. package/dist/middleware/interceptors/guard.d.ts.map +1 -0
  54. package/dist/middleware/interceptors/guard.js +45 -0
  55. package/dist/middleware/interceptors/guard.js.map +1 -0
  56. package/dist/middleware/interceptors/index.d.ts +4 -0
  57. package/dist/middleware/interceptors/index.d.ts.map +1 -1
  58. package/dist/middleware/interceptors/index.js +4 -0
  59. package/dist/middleware/interceptors/index.js.map +1 -1
  60. package/dist/resource-module/index.d.ts +44 -0
  61. package/dist/resource-module/index.d.ts.map +1 -0
  62. package/dist/resource-module/index.js +146 -0
  63. package/dist/resource-module/index.js.map +1 -0
  64. package/dist/resource-module/types.d.ts +109 -0
  65. package/dist/resource-module/types.d.ts.map +1 -0
  66. package/dist/resource-module/types.js +7 -0
  67. package/dist/resource-module/types.js.map +1 -0
  68. package/dist/resource-module/watch-helpers.d.ts +16 -0
  69. package/dist/resource-module/watch-helpers.d.ts.map +1 -0
  70. package/dist/resource-module/watch-helpers.js +65 -0
  71. package/dist/resource-module/watch-helpers.js.map +1 -0
  72. package/dist/server/types.d.ts +27 -0
  73. package/dist/server/types.d.ts.map +1 -1
  74. package/package.json +9 -1
@@ -8,7 +8,8 @@ import { WebSocket } from 'ws';
8
8
  import type { IncomingMessage, Server } from 'node:http';
9
9
  import type { Router } from '../core/router.js';
10
10
  import type { ContextSeed } from '../types/index.js';
11
- import { type ChannelOptions, type ChannelManager } from '../channels/index.js';
11
+ import { type ChannelOptions, type ChannelManager, type WebSocketAuthConfig, type BackpressureConfig } from '../channels/index.js';
12
+ import { type ConnectionRecoveryPort } from '../channels/recovery.js';
12
13
  import { type WebSocketConnectionFilter } from './utils/connection-filter.js';
13
14
  /**
14
15
  * WebSocket adapter configuration
@@ -54,6 +55,26 @@ export interface WebSocketAdapterOptions {
54
55
  channels?: ChannelOptions;
55
56
  /** Inbound connection filter — controls which source IPs/origins may connect */
56
57
  filter?: WebSocketConnectionFilter;
58
+ /** WebSocket authentication (ticket, bearer, or custom) */
59
+ auth?: WebSocketAuthConfig;
60
+ /** Backpressure handling for slow consumers */
61
+ backpressure?: BackpressureConfig;
62
+ /** Enable per-message compression (default: false) */
63
+ compression?: boolean | {
64
+ /** Minimum payload size in bytes to compress (default: 1024) */
65
+ threshold?: number;
66
+ /** zlib compression level 1-9 (default: 1) */
67
+ level?: number;
68
+ };
69
+ /** Connection state recovery (requires channels to be enabled) */
70
+ recovery?: {
71
+ /** Enable connection recovery (default: false) */
72
+ enabled: boolean;
73
+ /** TTL in ms for recovery sessions (default: 120000 = 2 minutes) */
74
+ ttl?: number;
75
+ /** Custom recovery store (default: in-memory) */
76
+ store?: ConnectionRecoveryPort;
77
+ };
57
78
  }
58
79
  /**
59
80
  * WebSocket Adapter
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/adapters/websocket.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AASvE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EAIpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,8BAA8B,CAAA;AAIrC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAE5F;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAA;IAEzB,gFAAgF;IAChF,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC;AAeD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB,sBAAsB;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CA0hBlB"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/adapters/websocket.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AASvE,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EAOnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,8BAA8B,CAAA;AAIrC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAE5F;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAA;IAEzB,gFAAgF;IAChF,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAElC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAE1B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,kBAAkB,CAAA;IAEjC,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,GAAG;QACtB,gEAAgE;QAChE,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IAED,kEAAkE;IAClE,QAAQ,CAAC,EAAE;QACT,kDAAkD;QAClD,OAAO,EAAE,OAAO,CAAA;QAChB,oEAAoE;QACpE,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,iDAAiD;QACjD,KAAK,CAAC,EAAE,sBAAsB,CAAA;KAC/B,CAAA;CACF;AAiBD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB,sBAAsB;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CAy5BlB"}
@@ -10,7 +10,9 @@ import { mergeContextSeeds } from '../types/index.js';
10
10
  import { createAbortableContextAsync } from '../utils/context-utils.js';
11
11
  import { createLogger } from '../utils/logger.js';
12
12
  import { extractMetadataFromHeaders, mergeMetadata, sanitizeMetadataRecord, } from '../utils/header-metadata.js';
13
- import { createChannelManager, isChannelMessage, } from '../channels/index.js';
13
+ import { createChannelManager, isChannelMessage, isRecoverMessage, } from '../channels/index.js';
14
+ import { createMemoryRecoveryStore, generateRecoveryToken, } from '../channels/recovery.js';
15
+ import { createMemoryTicketStore } from '../channels/ticket-store.js';
14
16
  import { checkWebSocketConnectionFilter, } from './utils/connection-filter.js';
15
17
  const logger = createLogger('ws-adapter');
16
18
  /**
@@ -25,11 +27,50 @@ export function createWebSocketAdapter(router, options) {
25
27
  let wss = null;
26
28
  let heartbeatTimer = null;
27
29
  const clients = new Map();
30
+ // Backpressure config
31
+ const bpMaxBuffered = options.backpressure?.maxBufferedAmount ?? 1024 * 1024;
32
+ const bpStrategy = options.backpressure?.strategy ?? 'drop';
33
+ // Compression config
34
+ const perMessageDeflate = (() => {
35
+ if (!options.compression)
36
+ return false;
37
+ if (options.compression === true) {
38
+ return { threshold: 1024, zlibDeflateOptions: { level: 1 } };
39
+ }
40
+ return {
41
+ threshold: options.compression.threshold ?? 1024,
42
+ zlibDeflateOptions: { level: options.compression.level ?? 1 },
43
+ };
44
+ })();
45
+ // Auth config
46
+ const authConfig = options.auth;
47
+ // Ensure ticket store exists for ticket mode
48
+ if (authConfig?.mode === 'ticket' && !authConfig.ticketStore) {
49
+ authConfig.ticketStore = createMemoryTicketStore();
50
+ }
51
+ // Recovery store (only when channels + recovery are enabled)
52
+ const recoveryStore = options.channels && options.recovery?.enabled
53
+ ? options.recovery.store ?? createMemoryRecoveryStore({ ttl: options.recovery.ttl })
54
+ : null;
55
+ /** Map socketId → recoveryToken (sent to client on connect) */
56
+ const clientRecoveryTokens = new Map();
28
57
  // Create channel manager if channels are enabled
29
58
  const channelManager = options.channels
30
59
  ? createChannelManager(options.channels, (socketId, message) => {
31
60
  const client = clients.get(socketId);
32
61
  if (client && client.ws.readyState === WebSocket.OPEN) {
62
+ // Backpressure check on channel sends
63
+ if (options.backpressure && client.ws.bufferedAmount > bpMaxBuffered) {
64
+ if (bpStrategy === 'disconnect') {
65
+ options.backpressure.onSlowConsumer?.(socketId, client.ws.bufferedAmount);
66
+ client.ws.close(1008, 'Slow consumer');
67
+ }
68
+ else {
69
+ options.backpressure.onSlowConsumer?.(socketId, client.ws.bufferedAmount);
70
+ // Drop silently
71
+ }
72
+ return;
73
+ }
33
74
  client.ws.send(JSON.stringify(message));
34
75
  }
35
76
  })
@@ -50,12 +91,31 @@ export function createWebSocketAdapter(router, options) {
50
91
  },
51
92
  };
52
93
  }
94
+ /**
95
+ * Check backpressure before sending
96
+ */
97
+ function checkBackpressure(client) {
98
+ if (!options.backpressure)
99
+ return true;
100
+ if (client.ws.bufferedAmount <= bpMaxBuffered)
101
+ return true;
102
+ if (bpStrategy === 'disconnect') {
103
+ options.backpressure.onSlowConsumer?.(client.id, client.ws.bufferedAmount);
104
+ client.ws.close(1008, 'Slow consumer');
105
+ }
106
+ else {
107
+ options.backpressure.onSlowConsumer?.(client.id, client.ws.bufferedAmount);
108
+ }
109
+ return false;
110
+ }
53
111
  /**
54
112
  * Send a raw message to client (for channel responses)
55
113
  */
56
114
  function sendRawMessage(client, message) {
57
115
  if (client.ws.readyState !== WebSocket.OPEN)
58
116
  return;
117
+ if (!checkBackpressure(client))
118
+ return;
59
119
  client.ws.send(JSON.stringify(message));
60
120
  }
61
121
  /**
@@ -68,10 +128,10 @@ export function createWebSocketAdapter(router, options) {
68
128
  return false;
69
129
  const messageType = parsed.type;
70
130
  const metadata = mergeMetadata(client.connectionMetadata, sanitizeMetadataRecord(parsed.metadata));
71
- const ctx = await createAbortableContextAsync(sid(), mergeContextSeeds(buildWebSocketSeed(client, metadata, parsed), await options.contextFactory?.(client.ws, client.request)), new AbortController());
131
+ const ctx = await createAbortableContextAsync(sid(), mergeContextSeeds(mergeContextSeeds(buildWebSocketSeed(client, metadata, parsed), client.authSeed), await options.contextFactory?.(client.ws, client.request)), new AbortController());
72
132
  if (messageType === 'subscribe') {
73
133
  const msg = parsed;
74
- const result = await channelManager.subscribe(client.id, msg.channel, ctx);
134
+ const result = await channelManager.subscribe(client.id, msg.channel, ctx, msg.since);
75
135
  if (result.success) {
76
136
  sendRawMessage(client, {
77
137
  id: msg.id,
@@ -79,6 +139,10 @@ export function createWebSocketAdapter(router, options) {
79
139
  channel: msg.channel,
80
140
  members: result.members,
81
141
  });
142
+ // Replay history after subscribed response (if since is provided)
143
+ if (msg.since) {
144
+ channelManager.replayHistory(client.id, msg.channel, msg.since.seq, msg.since.epoch);
145
+ }
82
146
  }
83
147
  else {
84
148
  sendRawMessage(client, {
@@ -114,7 +178,7 @@ export function createWebSocketAdapter(router, options) {
114
178
  });
115
179
  return true;
116
180
  }
117
- // Check onPublish hook if provided
181
+ // Check onPublish hook if provided (ChannelOptions.onPublish — authorization)
118
182
  if (options.channels?.onPublish) {
119
183
  const allowed = await options.channels.onPublish(client.id, msg.channel, msg.event, msg.data, ctx);
120
184
  if (!allowed) {
@@ -128,8 +192,75 @@ export function createWebSocketAdapter(router, options) {
128
192
  return true;
129
193
  }
130
194
  }
195
+ // Apply transform if configured
196
+ let finalData = msg.data;
197
+ if (options.channels?.transform) {
198
+ const clientInfo = channelManager.getClient(client.id);
199
+ const transformed = await options.channels.transform(msg.channel, msg.event, msg.data, { socketId: client.id, userId: clientInfo?.userId });
200
+ if (transformed === null) {
201
+ // Message dropped by transform
202
+ return true;
203
+ }
204
+ finalData = transformed;
205
+ }
131
206
  // Broadcast to all subscribers except sender
132
- channelManager.broadcast(msg.channel, msg.event, msg.data, client.id);
207
+ channelManager.broadcast(msg.channel, msg.event, finalData, client.id);
208
+ // Lifecycle hook: onPublish (notification, not authorization)
209
+ if (options.channels?.hooks?.onPublish) {
210
+ Promise.resolve(options.channels.hooks.onPublish(client.id, msg.channel, msg.event, finalData)).catch(() => { });
211
+ }
212
+ return true;
213
+ }
214
+ // ─── Batch Subscribe ─────────────────────────────────────────────────────
215
+ if (messageType === 'subscribe:batch') {
216
+ const msg = parsed;
217
+ const results = {};
218
+ for (const entry of msg.channels) {
219
+ const result = await channelManager.subscribe(client.id, entry.channel, ctx, entry.since);
220
+ results[entry.channel] = result;
221
+ if (result.success && entry.since) {
222
+ channelManager.replayHistory(client.id, entry.channel, entry.since.seq, entry.since.epoch);
223
+ }
224
+ }
225
+ sendRawMessage(client, {
226
+ id: msg.id,
227
+ type: 'subscribed:batch',
228
+ results,
229
+ });
230
+ return true;
231
+ }
232
+ // ─── Batch Publish ───────────────────────────────────────────────────────
233
+ if (messageType === 'publish:batch') {
234
+ const msg = parsed;
235
+ for (const entry of msg.messages) {
236
+ if (!channelManager.isSubscribed(client.id, entry.channel))
237
+ continue;
238
+ // Check onPublish hook
239
+ if (options.channels?.onPublish) {
240
+ const allowed = await options.channels.onPublish(client.id, entry.channel, entry.event, entry.data, ctx);
241
+ if (!allowed)
242
+ continue;
243
+ }
244
+ // Apply transform
245
+ let finalData = entry.data;
246
+ if (options.channels?.transform) {
247
+ const clientInfo = channelManager.getClient(client.id);
248
+ const transformed = await options.channels.transform(entry.channel, entry.event, entry.data, { socketId: client.id, userId: clientInfo?.userId });
249
+ if (transformed === null)
250
+ continue;
251
+ finalData = transformed;
252
+ }
253
+ channelManager.broadcast(entry.channel, entry.event, finalData, client.id);
254
+ if (options.channels?.hooks?.onPublish) {
255
+ Promise.resolve(options.channels.hooks.onPublish(client.id, entry.channel, entry.event, finalData)).catch(() => { });
256
+ }
257
+ }
258
+ return true;
259
+ }
260
+ // ─── Typing Indicators ───────────────────────────────────────────────────
261
+ if (messageType === 'typing') {
262
+ const msg = parsed;
263
+ channelManager.handleTyping(client.id, msg.channel, msg.isTyping);
133
264
  return true;
134
265
  }
135
266
  return false;
@@ -146,6 +277,52 @@ export function createWebSocketAdapter(router, options) {
146
277
  if (handleCancelMessage(client, parsed)) {
147
278
  return;
148
279
  }
280
+ // Handle auth:refresh
281
+ if (parsed.type === 'auth:refresh') {
282
+ await handleAuthRefresh(client, parsed);
283
+ return;
284
+ }
285
+ // Handle recovery message
286
+ if (recoveryStore && channelManager && isRecoverMessage(parsed)) {
287
+ const session = recoveryStore.get(parsed.recoveryToken);
288
+ if (session) {
289
+ recoveryStore.delete(parsed.recoveryToken);
290
+ // Re-register with previous user info
291
+ const existingClient = channelManager.getClient(client.id);
292
+ if (!existingClient) {
293
+ channelManager.registerClient(client.id, {
294
+ userId: session.userId,
295
+ data: session.metadata,
296
+ });
297
+ }
298
+ // Recover channel subscriptions
299
+ channelManager.recoverClient(session.socketId, client.id, session.channels);
300
+ // Re-join groups
301
+ for (const groupName of session.groups) {
302
+ channelManager.joinGroup(groupName, client.id);
303
+ }
304
+ // Generate new recovery token for this session
305
+ const newToken = generateRecoveryToken();
306
+ clientRecoveryTokens.set(client.id, newToken);
307
+ sendRawMessage(client, {
308
+ type: 'connection:recovered',
309
+ socketId: client.id,
310
+ recoveryToken: newToken,
311
+ channels: session.channels.map((c) => c.name),
312
+ groups: session.groups,
313
+ });
314
+ logger.info({ clientId: client.id, oldSocketId: session.socketId }, 'Client recovered');
315
+ }
316
+ else {
317
+ sendRawMessage(client, {
318
+ type: 'error',
319
+ code: 'RECOVERY_FAILED',
320
+ status: 404,
321
+ message: 'Recovery token not found or expired',
322
+ });
323
+ }
324
+ return;
325
+ }
149
326
  // Check if this is a channel message
150
327
  if (await handleChannelMessage(client, parsed)) {
151
328
  return;
@@ -159,8 +336,8 @@ export function createWebSocketAdapter(router, options) {
159
336
  const messageId = parsed.id !== undefined ? String(parsed.id) : sid();
160
337
  const requestId = incomingMetadata['x-request-id'] ?? messageId;
161
338
  const abortController = new AbortController();
162
- // Build context
163
- const ctx = await createAbortableContextAsync(requestId, mergeContextSeeds(buildWebSocketSeed(client, incomingMetadata, parsed.payload ?? {}), await options.contextFactory?.(client.ws, client.request)), abortController);
339
+ // Build context (merge: ws seed → auth seed → contextFactory)
340
+ const ctx = await createAbortableContextAsync(requestId, mergeContextSeeds(mergeContextSeeds(buildWebSocketSeed(client, incomingMetadata, parsed.payload ?? {}), client.authSeed), await options.contextFactory?.(client.ws, client.request)), abortController);
164
341
  const deadline = incomingMetadata['x-deadline']
165
342
  ? Number.parseInt(incomingMetadata['x-deadline'], 10)
166
343
  : NaN;
@@ -232,6 +409,8 @@ export function createWebSocketAdapter(router, options) {
232
409
  function sendEnvelope(client, envelope) {
233
410
  if (client.ws.readyState !== WebSocket.OPEN)
234
411
  return;
412
+ if (!checkBackpressure(client))
413
+ return;
235
414
  const message = JSON.stringify({
236
415
  id: envelope.id,
237
416
  procedure: envelope.procedure,
@@ -278,10 +457,96 @@ export function createWebSocketAdapter(router, options) {
278
457
  }
279
458
  return true;
280
459
  }
460
+ /**
461
+ * Handle auth:refresh message — update auth context mid-connection
462
+ */
463
+ async function handleAuthRefresh(client, parsed) {
464
+ const token = parsed.token;
465
+ const msgId = parsed.id;
466
+ if (!token) {
467
+ sendRawMessage(client, { id: msgId, type: 'error', code: 'INVALID_TOKEN', status: 400, message: 'Token required' });
468
+ return;
469
+ }
470
+ if (!authConfig?.refreshToken) {
471
+ sendRawMessage(client, { id: msgId, type: 'error', code: 'NOT_SUPPORTED', status: 501, message: 'Token refresh not configured' });
472
+ return;
473
+ }
474
+ try {
475
+ const newSeed = await authConfig.refreshToken(token);
476
+ if (!newSeed) {
477
+ sendRawMessage(client, { id: msgId, type: 'error', code: 'AUTH_FAILED', status: 401, message: 'Invalid refresh token' });
478
+ return;
479
+ }
480
+ // Update connection metadata with new auth info
481
+ if (newSeed.input?.metadata) {
482
+ client.connectionMetadata = { ...client.connectionMetadata, ...newSeed.input.metadata };
483
+ }
484
+ logger.info({ clientId: client.id }, 'Auth token refreshed');
485
+ sendRawMessage(client, { id: msgId, type: 'auth:refreshed' });
486
+ }
487
+ catch (err) {
488
+ logger.error({ err, clientId: client.id }, 'Auth refresh error');
489
+ sendRawMessage(client, { id: msgId, type: 'error', code: 'AUTH_FAILED', status: 401, message: 'Token refresh failed' });
490
+ }
491
+ }
492
+ /**
493
+ * Extract auth token from upgrade request
494
+ */
495
+ function extractAuthToken(req) {
496
+ // Custom extractor
497
+ if (authConfig?.extractToken) {
498
+ return authConfig.extractToken(req);
499
+ }
500
+ // Default: ?ticket=xxx or ?token=xxx from query string
501
+ const url = new URL(req.url || '/', 'http://localhost');
502
+ const ticket = url.searchParams.get('ticket');
503
+ if (ticket)
504
+ return ticket;
505
+ const token = url.searchParams.get('token');
506
+ if (token)
507
+ return token;
508
+ // Authorization: Bearer xxx header
509
+ const authHeader = req.headers['authorization'];
510
+ if (authHeader?.startsWith('Bearer ')) {
511
+ return authHeader.slice(7);
512
+ }
513
+ return undefined;
514
+ }
515
+ /**
516
+ * Validate connection auth — returns context seed or null (reject)
517
+ */
518
+ async function validateConnectionAuth(req) {
519
+ if (!authConfig)
520
+ return {}; // No auth configured → allow all
521
+ const token = extractAuthToken(req);
522
+ if (!token)
523
+ return null; // No token → reject
524
+ if (authConfig.mode === 'ticket') {
525
+ const store = authConfig.ticketStore;
526
+ const ticket = await store.consume(token);
527
+ if (!ticket)
528
+ return null; // Invalid/expired/used ticket
529
+ return {
530
+ auth: {
531
+ authenticated: true,
532
+ principal: ticket.userId,
533
+ principalId: ticket.userId,
534
+ claims: ticket.metadata,
535
+ },
536
+ };
537
+ }
538
+ if (authConfig.mode === 'bearer' || authConfig.mode === 'custom') {
539
+ if (!authConfig.validateToken)
540
+ return null;
541
+ return await authConfig.validateToken(token);
542
+ }
543
+ return {};
544
+ }
281
545
  /**
282
546
  * Handle new client connection
283
547
  */
284
548
  function handleConnection(ws, req) {
549
+ // Connection filter
285
550
  if (options.filter) {
286
551
  const filter = options.filter;
287
552
  const host = req.socket.remoteAddress ?? '';
@@ -293,16 +558,36 @@ export function createWebSocketAdapter(router, options) {
293
558
  ws.close(1008, 'Policy Violation');
294
559
  return;
295
560
  }
296
- _doConnect(ws, req);
561
+ authenticateAndConnect(ws, req);
297
562
  }).catch(() => { ws.close(1008, 'Policy Violation'); });
298
563
  return;
299
564
  }
300
- _doConnect(ws, req);
565
+ authenticateAndConnect(ws, req);
566
+ }
567
+ /**
568
+ * Authenticate and then connect
569
+ */
570
+ function authenticateAndConnect(ws, req) {
571
+ if (!authConfig) {
572
+ _doConnect(ws, req);
573
+ return;
574
+ }
575
+ validateConnectionAuth(req).then((seed) => {
576
+ if (!seed) {
577
+ logger.warn({ remoteAddress: req.socket.remoteAddress }, 'WebSocket auth rejected');
578
+ ws.close(1008, 'Authentication required');
579
+ return;
580
+ }
581
+ _doConnect(ws, req, seed);
582
+ }).catch((err) => {
583
+ logger.error({ err }, 'WebSocket auth error');
584
+ ws.close(1011, 'Authentication error');
585
+ });
301
586
  }
302
587
  /**
303
- * Perform the actual client connection setup (after filter passes).
588
+ * Perform the actual client connection setup (after filter + auth passes).
304
589
  */
305
- function _doConnect(ws, req) {
590
+ function _doConnect(ws, req, authSeed) {
306
591
  const clientId = sid();
307
592
  const client = {
308
593
  id: clientId,
@@ -313,11 +598,27 @@ export function createWebSocketAdapter(router, options) {
313
598
  activeStreams: new Map(),
314
599
  activeRequests: new Map(),
315
600
  };
601
+ // Store auth seed for context building
602
+ if (authSeed) {
603
+ client.authSeed = authSeed;
604
+ }
316
605
  clients.set(clientId, client);
317
606
  logger.info({ clientId, remoteAddress: req.socket.remoteAddress }, 'Client connected');
318
607
  // Register client in channel manager inventory
319
608
  if (channelManager) {
320
- channelManager.registerClient(clientId);
609
+ const userId = authSeed?.auth?.principalId
610
+ ?? (typeof authSeed?.auth?.principal === 'string' ? authSeed.auth.principal : undefined);
611
+ channelManager.registerClient(clientId, { userId: userId ?? undefined });
612
+ // Send recovery token if recovery is enabled
613
+ if (recoveryStore) {
614
+ const token = generateRecoveryToken();
615
+ clientRecoveryTokens.set(clientId, token);
616
+ sendRawMessage(client, {
617
+ type: 'connection:established',
618
+ socketId: clientId,
619
+ recoveryToken: token,
620
+ });
621
+ }
321
622
  // Lifecycle hook: onConnect
322
623
  if (options.channels?.hooks?.onConnect) {
323
624
  const headers = client.connectionMetadata;
@@ -344,6 +645,33 @@ export function createWebSocketAdapter(router, options) {
344
645
  ws.on('close', (code, reason) => {
345
646
  const reasonStr = reason.toString();
346
647
  logger.info({ clientId, code, reason: reasonStr }, 'Client disconnected');
648
+ // Save recovery session before removing client
649
+ if (recoveryStore && channelManager) {
650
+ const token = clientRecoveryTokens.get(clientId);
651
+ if (token) {
652
+ const subs = channelManager.getSubscriptions(clientId);
653
+ const clientInfo = channelManager.getClient(clientId);
654
+ const groups = channelManager.getClientGroups(clientId).map((g) => g.name);
655
+ // Build channel list with last seen seq (from channel state)
656
+ const channelSeqs = subs.map((name) => {
657
+ // We can't access internal channel state from outside, so we use 0
658
+ // The channel manager's recoverClient will replay from the stored seq
659
+ return { name, lastSeq: 0 };
660
+ });
661
+ const ttl = options.recovery?.ttl ?? 120_000;
662
+ const session = {
663
+ recoveryToken: token,
664
+ socketId: clientId,
665
+ userId: clientInfo?.userId,
666
+ channels: channelSeqs,
667
+ groups,
668
+ metadata: clientInfo?.data ?? {},
669
+ expiresAt: Date.now() + ttl,
670
+ };
671
+ recoveryStore.save(session);
672
+ clientRecoveryTokens.delete(clientId);
673
+ }
674
+ }
347
675
  // Remove client from inventory (also unsubscribes, cleans rooms/groups)
348
676
  if (channelManager) {
349
677
  channelManager.removeClient(clientId);
@@ -396,8 +724,8 @@ export function createWebSocketAdapter(router, options) {
396
724
  async start() {
397
725
  return new Promise((resolve, reject) => {
398
726
  wss = new WebSocketServer(sharedServer
399
- ? { server: sharedServer, path, maxPayload: maxPayloadSize }
400
- : { port: port, host, path, maxPayload: maxPayloadSize });
727
+ ? { server: sharedServer, path, maxPayload: maxPayloadSize, perMessageDeflate }
728
+ : { port: port, host, path, maxPayload: maxPayloadSize, perMessageDeflate });
401
729
  wss.on('connection', handleConnection);
402
730
  wss.on('error', (err) => {
403
731
  logger.error({ err }, 'WebSocket server error');
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/adapters/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/adapters/websocket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel-manager.d.ts","sourceRoot":"","sources":["../../src/channels/channel-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAOf,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AA0CzE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,cAAc,EAC5B,QAAQ,GAAE,mBAAyD,GAClE,cAAc,CAgmBhB"}
1
+ {"version":3,"file":"channel-manager.d.ts","sourceRoot":"","sources":["../../src/channels/channel-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EASf,MAAM,YAAY,CAAA;AA2CnB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AA0CzE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,cAAc,EAC5B,QAAQ,GAAE,mBAAyD,GAClE,cAAc,CA22BhB"}