@supabase/realtime-js 2.12.2 → 2.13.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.
@@ -5,6 +5,14 @@ import Timer from './lib/timer';
5
5
  import { httpEndpointURL } from './lib/transformers';
6
6
  import RealtimeChannel from './RealtimeChannel';
7
7
  const noop = () => { };
8
+ // Connection-related constants
9
+ const CONNECTION_TIMEOUTS = {
10
+ HEARTBEAT_INTERVAL: 25000,
11
+ RECONNECT_DELAY: 10,
12
+ HEARTBEAT_TIMEOUT_FALLBACK: 100,
13
+ };
14
+ const RECONNECT_INTERVALS = [1000, 2000, 5000, 10000];
15
+ const DEFAULT_RECONNECT_FALLBACK = 10000;
8
16
  const WORKER_SCRIPT = `
9
17
  addEventListener("message", (e) => {
10
18
  if (e.data.event === "start") {
@@ -41,11 +49,13 @@ export default class RealtimeClient {
41
49
  this.headers = {};
42
50
  this.params = {};
43
51
  this.timeout = DEFAULT_TIMEOUT;
44
- this.heartbeatIntervalMs = 25000;
52
+ this.transport = null;
53
+ this.heartbeatIntervalMs = CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL;
45
54
  this.heartbeatTimer = undefined;
46
55
  this.pendingHeartbeatRef = null;
47
56
  this.heartbeatCallback = noop;
48
57
  this.ref = 0;
58
+ this.reconnectTimer = null;
49
59
  this.logger = noop;
50
60
  this.conn = null;
51
61
  this.sendBuffer = [];
@@ -57,6 +67,9 @@ export default class RealtimeClient {
57
67
  message: [],
58
68
  };
59
69
  this.accessToken = null;
70
+ this._connectionState = 'disconnected';
71
+ this._wasManualDisconnect = false;
72
+ this._authPromise = null;
60
73
  /**
61
74
  * Use either custom fetch, if provided, or default fetch to make HTTP requests
62
75
  *
@@ -75,79 +88,40 @@ export default class RealtimeClient {
75
88
  }
76
89
  return (...args) => _fetch(...args);
77
90
  };
91
+ // Validate required parameters
92
+ if (!((_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey)) {
93
+ throw new Error('API key is required to connect to Realtime');
94
+ }
95
+ this.apiKey = options.params.apikey;
96
+ // Initialize endpoint URLs
78
97
  this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;
79
98
  this.httpEndpoint = httpEndpointURL(endPoint);
80
- if (options === null || options === void 0 ? void 0 : options.transport) {
81
- this.transport = options.transport;
82
- }
83
- else {
84
- this.transport = null;
85
- }
86
- if (options === null || options === void 0 ? void 0 : options.params)
87
- this.params = options.params;
88
- if (options === null || options === void 0 ? void 0 : options.timeout)
89
- this.timeout = options.timeout;
90
- if (options === null || options === void 0 ? void 0 : options.logger)
91
- this.logger = options.logger;
92
- if ((options === null || options === void 0 ? void 0 : options.logLevel) || (options === null || options === void 0 ? void 0 : options.log_level)) {
93
- this.logLevel = options.logLevel || options.log_level;
94
- this.params = Object.assign(Object.assign({}, this.params), { log_level: this.logLevel });
95
- }
96
- if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs)
97
- this.heartbeatIntervalMs = options.heartbeatIntervalMs;
98
- const accessTokenValue = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;
99
- if (accessTokenValue) {
100
- this.accessTokenValue = accessTokenValue;
101
- this.apiKey = accessTokenValue;
102
- }
103
- this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs)
104
- ? options.reconnectAfterMs
105
- : (tries) => {
106
- return [1000, 2000, 5000, 10000][tries - 1] || 10000;
107
- };
108
- this.encode = (options === null || options === void 0 ? void 0 : options.encode)
109
- ? options.encode
110
- : (payload, callback) => {
111
- return callback(JSON.stringify(payload));
112
- };
113
- this.decode = (options === null || options === void 0 ? void 0 : options.decode)
114
- ? options.decode
115
- : this.serializer.decode.bind(this.serializer);
116
- this.reconnectTimer = new Timer(async () => {
117
- this.disconnect();
118
- this.connect();
119
- }, this.reconnectAfterMs);
99
+ this._initializeOptions(options);
100
+ this._setupReconnectionTimer();
120
101
  this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);
121
- if (options === null || options === void 0 ? void 0 : options.worker) {
122
- if (typeof window !== 'undefined' && !window.Worker) {
123
- throw new Error('Web Worker is not supported');
124
- }
125
- this.worker = (options === null || options === void 0 ? void 0 : options.worker) || false;
126
- this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;
127
- }
128
- this.accessToken = (options === null || options === void 0 ? void 0 : options.accessToken) || null;
129
102
  }
130
103
  /**
131
104
  * Connects the socket, unless already connected.
132
105
  */
133
106
  connect() {
134
- // Set the token on connect
135
- setTimeout(() => {
136
- this.setAuth().catch((e) => {
137
- this.log('error', 'error setting auth', e);
138
- });
139
- }, 0);
140
- if (this.conn) {
107
+ // Skip if already connecting, disconnecting, or connected
108
+ if (this.isConnecting() ||
109
+ this.isDisconnecting() ||
110
+ (this.conn !== null && this.isConnected())) {
141
111
  return;
142
112
  }
113
+ this._setConnectionState('connecting');
114
+ this._setAuthSafely('connect');
115
+ // Establish WebSocket connection
143
116
  if (!this.transport) {
144
117
  this.transport = WebSocket;
145
118
  }
146
119
  if (!this.transport) {
120
+ this._setConnectionState('disconnected');
147
121
  throw new Error('No transport provided');
148
122
  }
149
123
  this.conn = new this.transport(this.endpointURL());
150
- this.setupConnection();
124
+ this._setupConnectionHandlers();
151
125
  }
152
126
  /**
153
127
  * Returns the URL of the websocket.
@@ -163,19 +137,30 @@ export default class RealtimeClient {
163
137
  * @param reason A custom reason for the disconnect.
164
138
  */
165
139
  disconnect(code, reason) {
140
+ if (this.isDisconnecting()) {
141
+ return;
142
+ }
143
+ this._setConnectionState('disconnecting', true);
166
144
  if (this.conn) {
167
- this.conn.onclose = function () { }; // noop
145
+ // Setup fallback timer to prevent hanging in disconnecting state
146
+ const fallbackTimer = setTimeout(() => {
147
+ this._setConnectionState('disconnected');
148
+ }, 100);
149
+ this.conn.onclose = () => {
150
+ clearTimeout(fallbackTimer);
151
+ this._setConnectionState('disconnected');
152
+ };
153
+ // Close the WebSocket connection
168
154
  if (code) {
169
155
  this.conn.close(code, reason !== null && reason !== void 0 ? reason : '');
170
156
  }
171
157
  else {
172
158
  this.conn.close();
173
159
  }
174
- this.conn = null;
175
- // remove open handles
176
- this.heartbeatTimer && clearInterval(this.heartbeatTimer);
177
- this.reconnectTimer.reset();
178
- this.channels.forEach((channel) => channel.teardown());
160
+ this._teardownConnection();
161
+ }
162
+ else {
163
+ this._setConnectionState('disconnected');
179
164
  }
180
165
  }
181
166
  /**
@@ -233,6 +218,18 @@ export default class RealtimeClient {
233
218
  isConnected() {
234
219
  return this.connectionState() === CONNECTION_STATE.Open;
235
220
  }
221
+ /**
222
+ * Returns `true` if the connection is currently connecting.
223
+ */
224
+ isConnecting() {
225
+ return this._connectionState === 'connecting';
226
+ }
227
+ /**
228
+ * Returns `true` if the connection is currently disconnecting.
229
+ */
230
+ isDisconnecting() {
231
+ return this._connectionState === 'disconnecting';
232
+ }
236
233
  channel(topic, params = { config: {} }) {
237
234
  const realtimeTopic = `realtime:${topic}`;
238
235
  const exists = this.getChannels().find((c) => c.topic === realtimeTopic);
@@ -276,23 +273,12 @@ export default class RealtimeClient {
276
273
  * @param token A JWT string to override the token set on the client.
277
274
  */
278
275
  async setAuth(token = null) {
279
- let tokenToSend = token ||
280
- (this.accessToken && (await this.accessToken())) ||
281
- this.accessTokenValue;
282
- if (this.accessTokenValue != tokenToSend) {
283
- this.accessTokenValue = tokenToSend;
284
- this.channels.forEach((channel) => {
285
- const payload = {
286
- access_token: tokenToSend,
287
- version: DEFAULT_VERSION,
288
- };
289
- tokenToSend && channel.updateJoinPayload(payload);
290
- if (channel.joinedOnce && channel._isJoined()) {
291
- channel._push(CHANNEL_EVENTS.access_token, {
292
- access_token: tokenToSend,
293
- });
294
- }
295
- });
276
+ this._authPromise = this._performAuth(token);
277
+ try {
278
+ await this._authPromise;
279
+ }
280
+ finally {
281
+ this._authPromise = null;
296
282
  }
297
283
  }
298
284
  /**
@@ -304,13 +290,23 @@ export default class RealtimeClient {
304
290
  this.heartbeatCallback('disconnected');
305
291
  return;
306
292
  }
293
+ // Handle heartbeat timeout and force reconnection if needed
307
294
  if (this.pendingHeartbeatRef) {
308
295
  this.pendingHeartbeatRef = null;
309
296
  this.log('transport', 'heartbeat timeout. Attempting to re-establish connection');
310
297
  this.heartbeatCallback('timeout');
311
- (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, 'hearbeat timeout');
298
+ // Force reconnection after heartbeat timeout
299
+ this._wasManualDisconnect = false;
300
+ (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, 'heartbeat timeout');
301
+ setTimeout(() => {
302
+ var _a;
303
+ if (!this.isConnected()) {
304
+ (_a = this.reconnectTimer) === null || _a === void 0 ? void 0 : _a.scheduleTimeout();
305
+ }
306
+ }, CONNECTION_TIMEOUTS.HEARTBEAT_TIMEOUT_FALLBACK);
312
307
  return;
313
308
  }
309
+ // Send heartbeat message to server
314
310
  this.pendingHeartbeatRef = this._makeRef();
315
311
  this.push({
316
312
  topic: 'phoenix',
@@ -319,7 +315,7 @@ export default class RealtimeClient {
319
315
  ref: this.pendingHeartbeatRef,
320
316
  });
321
317
  this.heartbeatCallback('sent');
322
- await this.setAuth();
318
+ this._setAuthSafely('heartbeat');
323
319
  }
324
320
  onHeartbeat(callback) {
325
321
  this.heartbeatCallback = callback;
@@ -370,42 +366,85 @@ export default class RealtimeClient {
370
366
  _remove(channel) {
371
367
  this.channels = this.channels.filter((c) => c.topic !== channel.topic);
372
368
  }
373
- /**
374
- * Sets up connection handlers.
375
- *
376
- * @internal
377
- */
378
- setupConnection() {
379
- if (this.conn) {
380
- this.conn.binaryType = 'arraybuffer';
381
- this.conn.onopen = () => this._onConnOpen();
382
- this.conn.onerror = (error) => this._onConnError(error);
383
- this.conn.onmessage = (event) => this._onConnMessage(event);
384
- this.conn.onclose = (event) => this._onConnClose(event);
385
- }
386
- }
387
369
  /** @internal */
388
370
  _onConnMessage(rawMessage) {
389
371
  this.decode(rawMessage.data, (msg) => {
390
- let { topic, event, payload, ref } = msg;
391
- if (topic === 'phoenix' && event === 'phx_reply') {
392
- this.heartbeatCallback(msg.payload.status == 'ok' ? 'ok' : 'error');
372
+ // Handle heartbeat responses
373
+ if (msg.topic === 'phoenix' && msg.event === 'phx_reply') {
374
+ this.heartbeatCallback(msg.payload.status === 'ok' ? 'ok' : 'error');
393
375
  }
394
- if (ref && ref === this.pendingHeartbeatRef) {
376
+ // Handle pending heartbeat reference cleanup
377
+ if (msg.ref && msg.ref === this.pendingHeartbeatRef) {
395
378
  this.pendingHeartbeatRef = null;
396
379
  }
397
- this.log('receive', `${payload.status || ''} ${topic} ${event} ${(ref && '(' + ref + ')') || ''}`, payload);
398
- Array.from(this.channels)
380
+ // Log incoming message
381
+ const { topic, event, payload, ref } = msg;
382
+ const refString = ref ? `(${ref})` : '';
383
+ const status = payload.status || '';
384
+ this.log('receive', `${status} ${topic} ${event} ${refString}`.trim(), payload);
385
+ // Route message to appropriate channels
386
+ this.channels
399
387
  .filter((channel) => channel._isMember(topic))
400
388
  .forEach((channel) => channel._trigger(event, payload, ref));
401
- this.stateChangeCallbacks.message.forEach((callback) => callback(msg));
389
+ this._triggerStateCallbacks('message', msg);
402
390
  });
403
391
  }
392
+ /**
393
+ * Clear specific timer
394
+ * @internal
395
+ */
396
+ _clearTimer(timer) {
397
+ var _a;
398
+ if (timer === 'heartbeat' && this.heartbeatTimer) {
399
+ clearInterval(this.heartbeatTimer);
400
+ this.heartbeatTimer = undefined;
401
+ }
402
+ else if (timer === 'reconnect') {
403
+ (_a = this.reconnectTimer) === null || _a === void 0 ? void 0 : _a.reset();
404
+ }
405
+ }
406
+ /**
407
+ * Clear all timers
408
+ * @internal
409
+ */
410
+ _clearAllTimers() {
411
+ this._clearTimer('heartbeat');
412
+ this._clearTimer('reconnect');
413
+ }
414
+ /**
415
+ * Setup connection handlers for WebSocket events
416
+ * @internal
417
+ */
418
+ _setupConnectionHandlers() {
419
+ if (!this.conn)
420
+ return;
421
+ this.conn.binaryType = 'arraybuffer';
422
+ this.conn.onopen = () => this._onConnOpen();
423
+ this.conn.onerror = (error) => this._onConnError(error);
424
+ this.conn.onmessage = (event) => this._onConnMessage(event);
425
+ this.conn.onclose = (event) => this._onConnClose(event);
426
+ }
427
+ /**
428
+ * Teardown connection and cleanup resources
429
+ * @internal
430
+ */
431
+ _teardownConnection() {
432
+ if (this.conn) {
433
+ this.conn.onopen = null;
434
+ this.conn.onerror = null;
435
+ this.conn.onmessage = null;
436
+ this.conn.onclose = null;
437
+ this.conn = null;
438
+ }
439
+ this._clearAllTimers();
440
+ this.channels.forEach((channel) => channel.teardown());
441
+ }
404
442
  /** @internal */
405
443
  _onConnOpen() {
444
+ this._setConnectionState('connected');
406
445
  this.log('transport', `connected to ${this.endpointURL()}`);
407
446
  this.flushSendBuffer();
408
- this.reconnectTimer.reset();
447
+ this._clearTimer('reconnect');
409
448
  if (!this.worker) {
410
449
  this._startHeartbeat();
411
450
  }
@@ -414,7 +453,7 @@ export default class RealtimeClient {
414
453
  this._startWorkerHeartbeat();
415
454
  }
416
455
  }
417
- this.stateChangeCallbacks.open.forEach((callback) => callback());
456
+ this._triggerStateCallbacks('open');
418
457
  }
419
458
  /** @internal */
420
459
  _startHeartbeat() {
@@ -447,17 +486,23 @@ export default class RealtimeClient {
447
486
  }
448
487
  /** @internal */
449
488
  _onConnClose(event) {
489
+ var _a;
490
+ this._setConnectionState('disconnected');
450
491
  this.log('transport', 'close', event);
451
492
  this._triggerChanError();
452
- this.heartbeatTimer && clearInterval(this.heartbeatTimer);
453
- this.reconnectTimer.scheduleTimeout();
454
- this.stateChangeCallbacks.close.forEach((callback) => callback(event));
493
+ this._clearTimer('heartbeat');
494
+ // Only schedule reconnection if it wasn't a manual disconnect
495
+ if (!this._wasManualDisconnect) {
496
+ (_a = this.reconnectTimer) === null || _a === void 0 ? void 0 : _a.scheduleTimeout();
497
+ }
498
+ this._triggerStateCallbacks('close', event);
455
499
  }
456
500
  /** @internal */
457
501
  _onConnError(error) {
502
+ this._setConnectionState('disconnected');
458
503
  this.log('transport', `${error}`);
459
504
  this._triggerChanError();
460
- this.stateChangeCallbacks.error.forEach((callback) => callback(error));
505
+ this._triggerStateCallbacks('error', error);
461
506
  }
462
507
  /** @internal */
463
508
  _triggerChanError() {
@@ -483,5 +528,142 @@ export default class RealtimeClient {
483
528
  }
484
529
  return result_url;
485
530
  }
531
+ /**
532
+ * Set connection state with proper state management
533
+ * @internal
534
+ */
535
+ _setConnectionState(state, manual = false) {
536
+ this._connectionState = state;
537
+ if (state === 'connecting') {
538
+ this._wasManualDisconnect = false;
539
+ }
540
+ else if (state === 'disconnecting') {
541
+ this._wasManualDisconnect = manual;
542
+ }
543
+ }
544
+ /**
545
+ * Perform the actual auth operation
546
+ * @internal
547
+ */
548
+ async _performAuth(token = null) {
549
+ let tokenToSend;
550
+ if (token) {
551
+ tokenToSend = token;
552
+ }
553
+ else if (this.accessToken) {
554
+ // Always call the accessToken callback to get fresh token
555
+ tokenToSend = await this.accessToken();
556
+ }
557
+ else {
558
+ tokenToSend = this.accessTokenValue;
559
+ }
560
+ if (this.accessTokenValue != tokenToSend) {
561
+ this.accessTokenValue = tokenToSend;
562
+ this.channels.forEach((channel) => {
563
+ const payload = {
564
+ access_token: tokenToSend,
565
+ version: DEFAULT_VERSION,
566
+ };
567
+ tokenToSend && channel.updateJoinPayload(payload);
568
+ if (channel.joinedOnce && channel._isJoined()) {
569
+ channel._push(CHANNEL_EVENTS.access_token, {
570
+ access_token: tokenToSend,
571
+ });
572
+ }
573
+ });
574
+ }
575
+ }
576
+ /**
577
+ * Wait for any in-flight auth operations to complete
578
+ * @internal
579
+ */
580
+ async _waitForAuthIfNeeded() {
581
+ if (this._authPromise) {
582
+ await this._authPromise;
583
+ }
584
+ }
585
+ /**
586
+ * Safely call setAuth with standardized error handling
587
+ * @internal
588
+ */
589
+ _setAuthSafely(context = 'general') {
590
+ this.setAuth().catch((e) => {
591
+ this.log('error', `error setting auth in ${context}`, e);
592
+ });
593
+ }
594
+ /**
595
+ * Trigger state change callbacks with proper error handling
596
+ * @internal
597
+ */
598
+ _triggerStateCallbacks(event, data) {
599
+ try {
600
+ this.stateChangeCallbacks[event].forEach((callback) => {
601
+ try {
602
+ callback(data);
603
+ }
604
+ catch (e) {
605
+ this.log('error', `error in ${event} callback`, e);
606
+ }
607
+ });
608
+ }
609
+ catch (e) {
610
+ this.log('error', `error triggering ${event} callbacks`, e);
611
+ }
612
+ }
613
+ /**
614
+ * Setup reconnection timer with proper configuration
615
+ * @internal
616
+ */
617
+ _setupReconnectionTimer() {
618
+ this.reconnectTimer = new Timer(async () => {
619
+ setTimeout(async () => {
620
+ await this._waitForAuthIfNeeded();
621
+ if (!this.isConnected()) {
622
+ this.connect();
623
+ }
624
+ }, CONNECTION_TIMEOUTS.RECONNECT_DELAY);
625
+ }, this.reconnectAfterMs);
626
+ }
627
+ /**
628
+ * Initialize client options with defaults
629
+ * @internal
630
+ */
631
+ _initializeOptions(options) {
632
+ var _a, _b, _c, _d, _e, _f, _g, _h;
633
+ // Set defaults
634
+ this.transport = (_a = options === null || options === void 0 ? void 0 : options.transport) !== null && _a !== void 0 ? _a : null;
635
+ this.timeout = (_b = options === null || options === void 0 ? void 0 : options.timeout) !== null && _b !== void 0 ? _b : DEFAULT_TIMEOUT;
636
+ this.heartbeatIntervalMs =
637
+ (_c = options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs) !== null && _c !== void 0 ? _c : CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL;
638
+ this.worker = (_d = options === null || options === void 0 ? void 0 : options.worker) !== null && _d !== void 0 ? _d : false;
639
+ this.accessToken = (_e = options === null || options === void 0 ? void 0 : options.accessToken) !== null && _e !== void 0 ? _e : null;
640
+ // Handle special cases
641
+ if (options === null || options === void 0 ? void 0 : options.params)
642
+ this.params = options.params;
643
+ if (options === null || options === void 0 ? void 0 : options.logger)
644
+ this.logger = options.logger;
645
+ if ((options === null || options === void 0 ? void 0 : options.logLevel) || (options === null || options === void 0 ? void 0 : options.log_level)) {
646
+ this.logLevel = options.logLevel || options.log_level;
647
+ this.params = Object.assign(Object.assign({}, this.params), { log_level: this.logLevel });
648
+ }
649
+ // Set up functions with defaults
650
+ this.reconnectAfterMs =
651
+ (_f = options === null || options === void 0 ? void 0 : options.reconnectAfterMs) !== null && _f !== void 0 ? _f : ((tries) => {
652
+ return RECONNECT_INTERVALS[tries - 1] || DEFAULT_RECONNECT_FALLBACK;
653
+ });
654
+ this.encode =
655
+ (_g = options === null || options === void 0 ? void 0 : options.encode) !== null && _g !== void 0 ? _g : ((payload, callback) => {
656
+ return callback(JSON.stringify(payload));
657
+ });
658
+ this.decode =
659
+ (_h = options === null || options === void 0 ? void 0 : options.decode) !== null && _h !== void 0 ? _h : this.serializer.decode.bind(this.serializer);
660
+ // Handle worker setup
661
+ if (this.worker) {
662
+ if (typeof window !== 'undefined' && !window.Worker) {
663
+ throw new Error('Web Worker is not supported');
664
+ }
665
+ this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;
666
+ }
667
+ }
486
668
  }
487
669
  //# sourceMappingURL=RealtimeClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeClient.js","sourceRoot":"","sources":["../../src/RealtimeClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeClient.js","sourceRoot":"","sources":["../../src/RealtimeClient.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.12.2";
1
+ export declare const version = "2.13.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const version = '2.12.2';
1
+ export const version = '2.13.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/realtime-js",
3
- "version": "2.12.2",
3
+ "version": "2.13.0",
4
4
  "description": "Listen to realtime updates to your PostgreSQL database",
5
5
  "keywords": [
6
6
  "realtime",
@@ -198,6 +198,15 @@ export default class RealtimeChannel {
198
198
  this.state = CHANNEL_STATES.errored
199
199
  this.rejoinTimer.scheduleTimeout()
200
200
  })
201
+
202
+ this.joinPush.receive('error', (reason: any) => {
203
+ if (this._isLeaving() || this._isClosed()) {
204
+ return
205
+ }
206
+ this.socket.log('channel', `error ${this.topic}`, reason)
207
+ this.state = CHANNEL_STATES.errored
208
+ this.rejoinTimer.scheduleTimeout()
209
+ })
201
210
  this._on(CHANNEL_EVENTS.reply, {}, (payload: any, ref: string) => {
202
211
  this._trigger(this._replyEventName(ref), payload)
203
212
  })
@@ -225,7 +234,9 @@ export default class RealtimeChannel {
225
234
  const postgres_changes =
226
235
  this.bindings.postgres_changes?.map((r) => r.filter) ?? []
227
236
 
228
- const presence_enabled = !!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE]
237
+ const presence_enabled =
238
+ !!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE] &&
239
+ this.bindings[REALTIME_LISTEN_TYPES.PRESENCE].length > 0
229
240
  const accessTokenPayload: { access_token?: string } = {}
230
241
  const config = {
231
242
  broadcast,