@supabase/realtime-js 2.99.2 → 2.100.0-rc.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.
Files changed (111) hide show
  1. package/dist/main/RealtimeChannel.d.ts +35 -28
  2. package/dist/main/RealtimeChannel.d.ts.map +1 -1
  3. package/dist/main/RealtimeChannel.js +140 -301
  4. package/dist/main/RealtimeChannel.js.map +1 -1
  5. package/dist/main/RealtimeClient.d.ts +38 -57
  6. package/dist/main/RealtimeClient.d.ts.map +1 -1
  7. package/dist/main/RealtimeClient.js +232 -520
  8. package/dist/main/RealtimeClient.js.map +1 -1
  9. package/dist/main/RealtimePresence.d.ts +8 -24
  10. package/dist/main/RealtimePresence.d.ts.map +1 -1
  11. package/dist/main/RealtimePresence.js +6 -202
  12. package/dist/main/RealtimePresence.js.map +1 -1
  13. package/dist/main/lib/constants.d.ts +39 -35
  14. package/dist/main/lib/constants.d.ts.map +1 -1
  15. package/dist/main/lib/constants.js +30 -35
  16. package/dist/main/lib/constants.js.map +1 -1
  17. package/dist/main/lib/version.d.ts +1 -1
  18. package/dist/main/lib/version.d.ts.map +1 -1
  19. package/dist/main/lib/version.js +1 -1
  20. package/dist/main/lib/version.js.map +1 -1
  21. package/dist/main/lib/websocket-factory.d.ts +0 -9
  22. package/dist/main/lib/websocket-factory.d.ts.map +1 -1
  23. package/dist/main/lib/websocket-factory.js +0 -12
  24. package/dist/main/lib/websocket-factory.js.map +1 -1
  25. package/dist/main/phoenix/channelAdapter.d.ts +32 -0
  26. package/dist/main/phoenix/channelAdapter.d.ts.map +1 -0
  27. package/dist/main/phoenix/channelAdapter.js +103 -0
  28. package/dist/main/phoenix/channelAdapter.js.map +1 -0
  29. package/dist/main/phoenix/presenceAdapter.d.ts +53 -0
  30. package/dist/main/phoenix/presenceAdapter.d.ts.map +1 -0
  31. package/dist/main/phoenix/presenceAdapter.js +93 -0
  32. package/dist/main/phoenix/presenceAdapter.js.map +1 -0
  33. package/dist/main/phoenix/socketAdapter.d.ts +38 -0
  34. package/dist/main/phoenix/socketAdapter.d.ts.map +1 -0
  35. package/dist/main/phoenix/socketAdapter.js +114 -0
  36. package/dist/main/phoenix/socketAdapter.js.map +1 -0
  37. package/dist/main/phoenix/types.d.ts +5 -0
  38. package/dist/main/phoenix/types.d.ts.map +1 -0
  39. package/dist/main/phoenix/types.js +3 -0
  40. package/dist/main/phoenix/types.js.map +1 -0
  41. package/dist/module/RealtimeChannel.d.ts +35 -28
  42. package/dist/module/RealtimeChannel.d.ts.map +1 -1
  43. package/dist/module/RealtimeChannel.js +141 -302
  44. package/dist/module/RealtimeChannel.js.map +1 -1
  45. package/dist/module/RealtimeClient.d.ts +38 -57
  46. package/dist/module/RealtimeClient.d.ts.map +1 -1
  47. package/dist/module/RealtimeClient.js +233 -521
  48. package/dist/module/RealtimeClient.js.map +1 -1
  49. package/dist/module/RealtimePresence.d.ts +8 -24
  50. package/dist/module/RealtimePresence.d.ts.map +1 -1
  51. package/dist/module/RealtimePresence.js +5 -202
  52. package/dist/module/RealtimePresence.js.map +1 -1
  53. package/dist/module/lib/constants.d.ts +39 -35
  54. package/dist/module/lib/constants.d.ts.map +1 -1
  55. package/dist/module/lib/constants.js +30 -35
  56. package/dist/module/lib/constants.js.map +1 -1
  57. package/dist/module/lib/version.d.ts +1 -1
  58. package/dist/module/lib/version.d.ts.map +1 -1
  59. package/dist/module/lib/version.js +1 -1
  60. package/dist/module/lib/version.js.map +1 -1
  61. package/dist/module/lib/websocket-factory.d.ts +0 -9
  62. package/dist/module/lib/websocket-factory.d.ts.map +1 -1
  63. package/dist/module/lib/websocket-factory.js +0 -12
  64. package/dist/module/lib/websocket-factory.js.map +1 -1
  65. package/dist/module/phoenix/channelAdapter.d.ts +32 -0
  66. package/dist/module/phoenix/channelAdapter.d.ts.map +1 -0
  67. package/dist/module/phoenix/channelAdapter.js +100 -0
  68. package/dist/module/phoenix/channelAdapter.js.map +1 -0
  69. package/dist/module/phoenix/presenceAdapter.d.ts +53 -0
  70. package/dist/module/phoenix/presenceAdapter.d.ts.map +1 -0
  71. package/dist/module/phoenix/presenceAdapter.js +90 -0
  72. package/dist/module/phoenix/presenceAdapter.js.map +1 -0
  73. package/dist/module/phoenix/socketAdapter.d.ts +38 -0
  74. package/dist/module/phoenix/socketAdapter.d.ts.map +1 -0
  75. package/dist/module/phoenix/socketAdapter.js +111 -0
  76. package/dist/module/phoenix/socketAdapter.js.map +1 -0
  77. package/dist/module/phoenix/types.d.ts +5 -0
  78. package/dist/module/phoenix/types.d.ts.map +1 -0
  79. package/dist/module/phoenix/types.js +2 -0
  80. package/dist/module/phoenix/types.js.map +1 -0
  81. package/dist/tsconfig.module.tsbuildinfo +1 -1
  82. package/dist/tsconfig.tsbuildinfo +1 -1
  83. package/package.json +2 -2
  84. package/src/RealtimeChannel.ts +201 -364
  85. package/src/RealtimeClient.ts +296 -583
  86. package/src/RealtimePresence.ts +10 -287
  87. package/src/lib/constants.ts +50 -37
  88. package/src/lib/version.ts +1 -1
  89. package/src/lib/websocket-factory.ts +0 -13
  90. package/src/phoenix/channelAdapter.ts +147 -0
  91. package/src/phoenix/presenceAdapter.ts +116 -0
  92. package/src/phoenix/socketAdapter.ts +168 -0
  93. package/src/phoenix/types.ts +32 -0
  94. package/dist/main/lib/push.d.ts +0 -48
  95. package/dist/main/lib/push.d.ts.map +0 -1
  96. package/dist/main/lib/push.js +0 -102
  97. package/dist/main/lib/push.js.map +0 -1
  98. package/dist/main/lib/timer.d.ts +0 -22
  99. package/dist/main/lib/timer.d.ts.map +0 -1
  100. package/dist/main/lib/timer.js +0 -39
  101. package/dist/main/lib/timer.js.map +0 -1
  102. package/dist/module/lib/push.d.ts +0 -48
  103. package/dist/module/lib/push.d.ts.map +0 -1
  104. package/dist/module/lib/push.js +0 -99
  105. package/dist/module/lib/push.js.map +0 -1
  106. package/dist/module/lib/timer.d.ts +0 -22
  107. package/dist/module/lib/timer.d.ts.map +0 -1
  108. package/dist/module/lib/timer.js +0 -36
  109. package/dist/module/lib/timer.js.map +0 -1
  110. package/src/lib/push.ts +0 -121
  111. package/src/lib/timer.ts +0 -43
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeChannel.d.ts","sourceRoot":"","sources":["../../src/RealtimeChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeChannel.d.ts","sourceRoot":"","sources":["../../src/RealtimeChannel.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import { CHANNEL_EVENTS, CHANNEL_STATES, MAX_PUSH_BUFFER_SIZE } from './lib/constants';
2
- import Push from './lib/push';
3
- import Timer from './lib/timer';
1
+ import { CHANNEL_EVENTS, CHANNEL_STATES } from './lib/constants';
4
2
  import RealtimePresence from './RealtimePresence';
5
3
  import * as Transformers from './lib/transformers';
6
4
  import { httpEndpointURL } from './lib/transformers';
5
+ import ChannelAdapter from './phoenix/channelAdapter';
7
6
  export var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;
8
7
  (function (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {
9
8
  REALTIME_POSTGRES_CHANGES_LISTEN_EVENT["ALL"] = "*";
@@ -32,6 +31,24 @@ export const REALTIME_CHANNEL_STATES = CHANNEL_STATES;
32
31
  * and send and receive messages.
33
32
  */
34
33
  export default class RealtimeChannel {
34
+ get state() {
35
+ return this.channelAdapter.state;
36
+ }
37
+ set state(state) {
38
+ this.channelAdapter.state = state;
39
+ }
40
+ get joinedOnce() {
41
+ return this.channelAdapter.joinedOnce;
42
+ }
43
+ get timeout() {
44
+ return this.socket.timeout;
45
+ }
46
+ get joinPush() {
47
+ return this.channelAdapter.joinPush;
48
+ }
49
+ get rejoinTimer() {
50
+ return this.channelAdapter.rejoinTimer;
51
+ }
35
52
  /**
36
53
  * Creates a channel that can broadcast messages, sync presence, and listen to Postgres changes.
37
54
  *
@@ -56,59 +73,19 @@ export default class RealtimeChannel {
56
73
  this.params = params;
57
74
  this.socket = socket;
58
75
  this.bindings = {};
59
- this.state = CHANNEL_STATES.closed;
60
- this.joinedOnce = false;
61
- this.pushBuffer = [];
62
76
  this.subTopic = topic.replace(/^realtime:/i, '');
63
77
  this.params.config = Object.assign({
64
78
  broadcast: { ack: false, self: false },
65
79
  presence: { key: '', enabled: false },
66
80
  private: false,
67
81
  }, params.config);
68
- this.timeout = this.socket.timeout;
69
- this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);
70
- this.rejoinTimer = new Timer(() => this._rejoinUntilConnected(), this.socket.reconnectAfterMs);
71
- this.joinPush.receive('ok', () => {
72
- this.state = CHANNEL_STATES.joined;
73
- this.rejoinTimer.reset();
74
- this.pushBuffer.forEach((pushEvent) => pushEvent.send());
75
- this.pushBuffer = [];
76
- });
82
+ this.channelAdapter = new ChannelAdapter(this.socket.socketAdapter, topic, this.params);
83
+ this.presence = new RealtimePresence(this);
77
84
  this._onClose(() => {
78
- this.rejoinTimer.reset();
79
- this.socket.log('channel', `close ${this.topic} ${this._joinRef()}`);
80
- this.state = CHANNEL_STATES.closed;
81
85
  this.socket._remove(this);
82
86
  });
83
- this._onError((reason) => {
84
- if (this._isLeaving() || this._isClosed()) {
85
- return;
86
- }
87
- this.socket.log('channel', `error ${this.topic}`, reason);
88
- this.state = CHANNEL_STATES.errored;
89
- this.rejoinTimer.scheduleTimeout();
90
- });
91
- this.joinPush.receive('timeout', () => {
92
- if (!this._isJoining()) {
93
- return;
94
- }
95
- this.socket.log('channel', `timeout ${this.topic}`, this.joinPush.timeout);
96
- this.state = CHANNEL_STATES.errored;
97
- this.rejoinTimer.scheduleTimeout();
98
- });
99
- this.joinPush.receive('error', (reason) => {
100
- if (this._isLeaving() || this._isClosed()) {
101
- return;
102
- }
103
- this.socket.log('channel', `error ${this.topic}`, reason);
104
- this.state = CHANNEL_STATES.errored;
105
- this.rejoinTimer.scheduleTimeout();
106
- });
107
- this._on(CHANNEL_EVENTS.reply, {}, (payload, ref) => {
108
- this._trigger(this._replyEventName(ref), payload);
109
- });
110
- this.presence = new RealtimePresence(this);
111
- this.broadcastEndpointURL = httpEndpointURL(this.socket.endPoint);
87
+ this._updateFilterTransform();
88
+ this.broadcastEndpointURL = httpEndpointURL(this.socket.socketAdapter.endPointURL());
112
89
  this.private = this.params.config.private || false;
113
90
  if (!this.private && ((_b = (_a = this.params.config) === null || _a === void 0 ? void 0 : _a.broadcast) === null || _b === void 0 ? void 0 : _b.replay)) {
114
91
  throw `tried to use replay on public channel '${this.topic}'. It must be a private channel.`;
@@ -120,7 +97,7 @@ export default class RealtimeChannel {
120
97
  if (!this.socket.isConnected()) {
121
98
  this.socket.connect();
122
99
  }
123
- if (this.state == CHANNEL_STATES.closed) {
100
+ if (this.channelAdapter.isClosed()) {
124
101
  const { config: { broadcast, presence, private: isPrivate }, } = this.params;
125
102
  const postgres_changes = (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r) => r.filter)) !== null && _b !== void 0 ? _b : [];
126
103
  const presence_enabled = (!!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE] &&
@@ -136,14 +113,15 @@ export default class RealtimeChannel {
136
113
  if (this.socket.accessTokenValue) {
137
114
  accessTokenPayload.access_token = this.socket.accessTokenValue;
138
115
  }
139
- this._onError((e) => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, e));
116
+ this._onError((reason) => {
117
+ callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, reason);
118
+ });
140
119
  this._onClose(() => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CLOSED));
141
120
  this.updateJoinPayload(Object.assign({ config }, accessTokenPayload));
142
- this.joinedOnce = true;
143
- this._rejoin(timeout);
144
- this.joinPush
121
+ this._updateFilterMessage();
122
+ this.channelAdapter
123
+ .subscribe(timeout)
145
124
  .receive('ok', async ({ postgres_changes }) => {
146
- var _a;
147
125
  // Only refresh auth if using callback-based tokens
148
126
  if (!this.socket._isManualToken()) {
149
127
  this.socket.setAuth();
@@ -152,45 +130,46 @@ export default class RealtimeChannel {
152
130
  callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);
153
131
  return;
154
132
  }
155
- else {
156
- const clientPostgresBindings = this.bindings.postgres_changes;
157
- const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;
158
- const newPostgresBindings = [];
159
- for (let i = 0; i < bindingsLen; i++) {
160
- const clientPostgresBinding = clientPostgresBindings[i];
161
- const { filter: { event, schema, table, filter }, } = clientPostgresBinding;
162
- const serverPostgresFilter = postgres_changes && postgres_changes[i];
163
- if (serverPostgresFilter &&
164
- serverPostgresFilter.event === event &&
165
- RealtimeChannel.isFilterValueEqual(serverPostgresFilter.schema, schema) &&
166
- RealtimeChannel.isFilterValueEqual(serverPostgresFilter.table, table) &&
167
- RealtimeChannel.isFilterValueEqual(serverPostgresFilter.filter, filter)) {
168
- newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), { id: serverPostgresFilter.id }));
169
- }
170
- else {
171
- this.unsubscribe();
172
- this.state = CHANNEL_STATES.errored;
173
- callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error('mismatch between server and client bindings for postgres changes'));
174
- return;
175
- }
176
- }
177
- this.bindings.postgres_changes = newPostgresBindings;
178
- callback && callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);
179
- return;
180
- }
133
+ this._updatePostgresBindings(postgres_changes, callback);
181
134
  })
182
135
  .receive('error', (error) => {
183
136
  this.state = CHANNEL_STATES.errored;
184
137
  callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(JSON.stringify(Object.values(error).join(', ') || 'error')));
185
- return;
186
138
  })
187
139
  .receive('timeout', () => {
188
140
  callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.TIMED_OUT);
189
- return;
190
141
  });
191
142
  }
192
143
  return this;
193
144
  }
145
+ _updatePostgresBindings(postgres_changes, callback) {
146
+ var _a;
147
+ const clientPostgresBindings = this.bindings.postgres_changes;
148
+ const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;
149
+ const newPostgresBindings = [];
150
+ for (let i = 0; i < bindingsLen; i++) {
151
+ const clientPostgresBinding = clientPostgresBindings[i];
152
+ const { filter: { event, schema, table, filter }, } = clientPostgresBinding;
153
+ const serverPostgresFilter = postgres_changes && postgres_changes[i];
154
+ if (serverPostgresFilter &&
155
+ serverPostgresFilter.event === event &&
156
+ RealtimeChannel.isFilterValueEqual(serverPostgresFilter.schema, schema) &&
157
+ RealtimeChannel.isFilterValueEqual(serverPostgresFilter.table, table) &&
158
+ RealtimeChannel.isFilterValueEqual(serverPostgresFilter.filter, filter)) {
159
+ newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), { id: serverPostgresFilter.id }));
160
+ }
161
+ else {
162
+ this.unsubscribe();
163
+ this.state = CHANNEL_STATES.errored;
164
+ callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error('mismatch between server and client bindings for postgres changes'));
165
+ return;
166
+ }
167
+ }
168
+ this.bindings.postgres_changes = newPostgresBindings;
169
+ if (this.state != CHANNEL_STATES.errored && callback) {
170
+ callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);
171
+ }
172
+ }
194
173
  /**
195
174
  * Returns the current presence state for this channel.
196
175
  *
@@ -221,9 +200,9 @@ export default class RealtimeChannel {
221
200
  }, opts);
222
201
  }
223
202
  on(type, filter, callback) {
224
- if (this.state === CHANNEL_STATES.joined && type === REALTIME_LISTEN_TYPES.PRESENCE) {
225
- this.socket.log('channel', `resubscribe to ${this.topic} due to change in presence callbacks on joined channel`);
226
- this.unsubscribe().then(async () => await this.subscribe());
203
+ if (this.channelAdapter.isJoined() && type === REALTIME_LISTEN_TYPES.PRESENCE) {
204
+ this.socket.log('channel', `cannot add presence callbacks for ${this.topic} after joining.`);
205
+ throw new Error('cannot add presence callbacks after joining a channel');
227
206
  }
228
207
  return this._on(type, filter, callback);
229
208
  }
@@ -287,7 +266,7 @@ export default class RealtimeChannel {
287
266
  */
288
267
  async send(args, opts = {}) {
289
268
  var _a, _b;
290
- if (!this._canPush() && args.type === 'broadcast') {
269
+ if (!this.channelAdapter.canPush() && args.type === 'broadcast') {
291
270
  console.warn('Realtime send() is automatically falling back to REST API. ' +
292
271
  'This behavior will be deprecated in the future. ' +
293
272
  'Please use httpSend() explicitly for REST delivery.');
@@ -330,7 +309,7 @@ export default class RealtimeChannel {
330
309
  else {
331
310
  return new Promise((resolve) => {
332
311
  var _a, _b, _c;
333
- const push = this._push(args.type, args, opts.timeout || this.timeout);
312
+ const push = this.channelAdapter.push(args.type, args, opts.timeout || this.timeout);
334
313
  if (args.type === 'broadcast' && !((_c = (_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {
335
314
  resolve('ok');
336
315
  }
@@ -345,7 +324,7 @@ export default class RealtimeChannel {
345
324
  * Useful for rotating access tokens or updating config without re-creating the channel.
346
325
  */
347
326
  updateJoinPayload(payload) {
348
- this.joinPush.updatePayload(payload);
327
+ this.channelAdapter.updateJoinPayload(payload);
349
328
  }
350
329
  /**
351
330
  * Leaves the channel.
@@ -356,48 +335,20 @@ export default class RealtimeChannel {
356
335
  * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:
357
336
  * channel.unsubscribe().receive("ok", () => alert("left!") )
358
337
  */
359
- unsubscribe(timeout = this.timeout) {
360
- this.state = CHANNEL_STATES.leaving;
361
- const onClose = () => {
362
- this.socket.log('channel', `leave ${this.topic}`);
363
- this._trigger(CHANNEL_EVENTS.close, 'leave', this._joinRef());
364
- };
365
- this.joinPush.destroy();
366
- let leavePush = null;
338
+ async unsubscribe(timeout = this.timeout) {
367
339
  return new Promise((resolve) => {
368
- leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout);
369
- leavePush
370
- .receive('ok', () => {
371
- onClose();
372
- resolve('ok');
373
- })
374
- .receive('timeout', () => {
375
- onClose();
376
- resolve('timed out');
377
- })
378
- .receive('error', () => {
379
- resolve('error');
380
- });
381
- leavePush.send();
382
- if (!this._canPush()) {
383
- leavePush.trigger('ok', {});
384
- }
385
- }).finally(() => {
386
- leavePush === null || leavePush === void 0 ? void 0 : leavePush.destroy();
340
+ this.channelAdapter
341
+ .unsubscribe(timeout)
342
+ .receive('ok', () => resolve('ok'))
343
+ .receive('timeout', () => resolve('timed out'))
344
+ .receive('error', () => resolve('error'));
387
345
  });
388
346
  }
389
347
  /**
390
- * Teardown the channel.
391
- *
392
348
  * Destroys and stops related timers.
393
349
  */
394
350
  teardown() {
395
- this.pushBuffer.forEach((push) => push.destroy());
396
- this.pushBuffer = [];
397
- this.rejoinTimer.reset();
398
- this.joinPush.destroy();
399
- this.state = CHANNEL_STATES.closed;
400
- this.bindings = {};
351
+ this.channelAdapter.teardown();
401
352
  }
402
353
  /** @internal */
403
354
  async _fetchWithTimeout(url, options, timeout) {
@@ -408,136 +359,14 @@ export default class RealtimeChannel {
408
359
  return response;
409
360
  }
410
361
  /** @internal */
411
- _push(event, payload, timeout = this.timeout) {
412
- if (!this.joinedOnce) {
413
- throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;
414
- }
415
- let pushEvent = new Push(this, event, payload, timeout);
416
- if (this._canPush()) {
417
- pushEvent.send();
418
- }
419
- else {
420
- this._addToPushBuffer(pushEvent);
421
- }
422
- return pushEvent;
423
- }
424
- /** @internal */
425
- _addToPushBuffer(pushEvent) {
426
- pushEvent.startTimeout();
427
- this.pushBuffer.push(pushEvent);
428
- // Enforce buffer size limit
429
- if (this.pushBuffer.length > MAX_PUSH_BUFFER_SIZE) {
430
- const removedPush = this.pushBuffer.shift();
431
- if (removedPush) {
432
- removedPush.destroy();
433
- this.socket.log('channel', `discarded push due to buffer overflow: ${removedPush.event}`, removedPush.payload);
434
- }
435
- }
436
- }
437
- /**
438
- * Overridable message hook
439
- *
440
- * Receives all events for specialized message handling before dispatching to the channel callbacks.
441
- * Must return the payload, modified or unmodified.
442
- *
443
- * @internal
444
- */
445
- _onMessage(_event, payload, _ref) {
446
- return payload;
447
- }
448
- /** @internal */
449
- _isMember(topic) {
450
- return this.topic === topic;
451
- }
452
- /** @internal */
453
- _joinRef() {
454
- return this.joinPush.ref;
455
- }
456
- /** @internal */
457
- _trigger(type, payload, ref) {
458
- var _a, _b;
459
- const typeLower = type.toLocaleLowerCase();
460
- const { close, error, leave, join } = CHANNEL_EVENTS;
461
- const events = [close, error, leave, join];
462
- if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {
463
- return;
464
- }
465
- let handledPayload = this._onMessage(typeLower, payload, ref);
466
- if (payload && !handledPayload) {
467
- throw 'channel onMessage callbacks must return the payload, modified or unmodified';
468
- }
469
- if (['insert', 'update', 'delete'].includes(typeLower)) {
470
- (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind) => {
471
- var _a, _b, _c;
472
- return ((_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event) === '*' || ((_c = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower;
473
- }).map((bind) => bind.callback(handledPayload, ref));
474
- }
475
- else {
476
- (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind) => {
477
- var _a, _b, _c, _d, _e, _f;
478
- if (['broadcast', 'presence', 'postgres_changes'].includes(typeLower)) {
479
- if ('id' in bind) {
480
- const bindId = bind.id;
481
- const bindEvent = (_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event;
482
- return (bindId &&
483
- ((_b = payload.ids) === null || _b === void 0 ? void 0 : _b.includes(bindId)) &&
484
- (bindEvent === '*' ||
485
- (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase())));
486
- }
487
- else {
488
- const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();
489
- return bindEvent === '*' || bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase());
490
- }
491
- }
492
- else {
493
- return bind.type.toLocaleLowerCase() === typeLower;
494
- }
495
- }).map((bind) => {
496
- if (typeof handledPayload === 'object' && 'ids' in handledPayload) {
497
- const postgresChanges = handledPayload.data;
498
- const { schema, table, commit_timestamp, type, errors } = postgresChanges;
499
- const enrichedPayload = {
500
- schema: schema,
501
- table: table,
502
- commit_timestamp: commit_timestamp,
503
- eventType: type,
504
- new: {},
505
- old: {},
506
- errors: errors,
507
- };
508
- handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));
509
- }
510
- bind.callback(handledPayload, ref);
511
- });
512
- }
513
- }
514
- /** @internal */
515
- _isClosed() {
516
- return this.state === CHANNEL_STATES.closed;
517
- }
518
- /** @internal */
519
- _isJoined() {
520
- return this.state === CHANNEL_STATES.joined;
521
- }
522
- /** @internal */
523
- _isJoining() {
524
- return this.state === CHANNEL_STATES.joining;
525
- }
526
- /** @internal */
527
- _isLeaving() {
528
- return this.state === CHANNEL_STATES.leaving;
529
- }
530
- /** @internal */
531
- _replyEventName(ref) {
532
- return `chan_reply_${ref}`;
533
- }
534
- /** @internal */
535
362
  _on(type, filter, callback) {
536
363
  const typeLower = type.toLocaleLowerCase();
364
+ const ref = this.channelAdapter.on(type, callback);
537
365
  const binding = {
538
366
  type: typeLower,
539
367
  filter: filter,
540
368
  callback: callback,
369
+ ref: ref,
541
370
  };
542
371
  if (this.bindings[typeLower]) {
543
372
  this.bindings[typeLower].push(binding);
@@ -545,56 +374,16 @@ export default class RealtimeChannel {
545
374
  else {
546
375
  this.bindings[typeLower] = [binding];
547
376
  }
377
+ this._updateFilterMessage();
548
378
  return this;
549
379
  }
550
- /** @internal */
551
- _off(type, filter) {
552
- const typeLower = type.toLocaleLowerCase();
553
- if (this.bindings[typeLower]) {
554
- this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {
555
- var _a;
556
- return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower &&
557
- RealtimeChannel.isEqual(bind.filter, filter));
558
- });
559
- }
560
- return this;
561
- }
562
- /** @internal */
563
- static isEqual(obj1, obj2) {
564
- if (Object.keys(obj1).length !== Object.keys(obj2).length) {
565
- return false;
566
- }
567
- for (const k in obj1) {
568
- if (obj1[k] !== obj2[k]) {
569
- return false;
570
- }
571
- }
572
- return true;
573
- }
574
- /**
575
- * Compares two optional filter values for equality.
576
- * Treats undefined, null, and empty string as equivalent empty values.
577
- * @internal
578
- */
579
- static isFilterValueEqual(serverValue, clientValue) {
580
- const normalizedServer = serverValue !== null && serverValue !== void 0 ? serverValue : undefined;
581
- const normalizedClient = clientValue !== null && clientValue !== void 0 ? clientValue : undefined;
582
- return normalizedServer === normalizedClient;
583
- }
584
- /** @internal */
585
- _rejoinUntilConnected() {
586
- this.rejoinTimer.scheduleTimeout();
587
- if (this.socket.isConnected()) {
588
- this._rejoin();
589
- }
590
- }
591
380
  /**
592
381
  * Registers a callback that will be executed when the channel closes.
593
382
  *
594
383
  * @internal
595
384
  */
596
385
  _onClose(callback) {
597
- this._on(CHANNEL_EVENTS.close, {}, callback);
386
+ this.channelAdapter.onClose(callback);
598
387
  }
599
388
  /**
600
389
  * Registers a callback that will be executed when the channel encounteres an error.
@@ -602,24 +391,74 @@ export default class RealtimeChannel {
602
391
  * @internal
603
392
  */
604
393
  _onError(callback) {
605
- this._on(CHANNEL_EVENTS.error, {}, (reason) => callback(reason));
394
+ this.channelAdapter.onError(callback);
395
+ }
396
+ /** @internal */
397
+ _updateFilterMessage() {
398
+ this.channelAdapter.updateFilterBindings((binding, payload, ref) => {
399
+ var _a, _b, _c, _d, _e, _f, _g;
400
+ const typeLower = binding.event.toLocaleLowerCase();
401
+ if (this._notThisChannelEvent(typeLower, ref)) {
402
+ return false;
403
+ }
404
+ const bind = (_a = this.bindings[typeLower]) === null || _a === void 0 ? void 0 : _a.find((bind) => bind.ref === binding.ref);
405
+ if (!bind) {
406
+ return true;
407
+ }
408
+ if (['broadcast', 'presence', 'postgres_changes'].includes(typeLower)) {
409
+ if ('id' in bind) {
410
+ const bindId = bind.id;
411
+ const bindEvent = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event;
412
+ return (bindId &&
413
+ ((_c = payload.ids) === null || _c === void 0 ? void 0 : _c.includes(bindId)) &&
414
+ (bindEvent === '*' ||
415
+ (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_d = payload.data) === null || _d === void 0 ? void 0 : _d.type.toLocaleLowerCase())));
416
+ }
417
+ else {
418
+ const bindEvent = (_f = (_e = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _e === void 0 ? void 0 : _e.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase();
419
+ return bindEvent === '*' || bindEvent === ((_g = payload === null || payload === void 0 ? void 0 : payload.event) === null || _g === void 0 ? void 0 : _g.toLocaleLowerCase());
420
+ }
421
+ }
422
+ else {
423
+ return bind.type.toLocaleLowerCase() === typeLower;
424
+ }
425
+ });
426
+ }
427
+ /** @internal */
428
+ _notThisChannelEvent(event, ref) {
429
+ const { close, error, leave, join } = CHANNEL_EVENTS;
430
+ const events = [close, error, leave, join];
431
+ return ref && events.includes(event) && ref !== this.joinPush.ref;
432
+ }
433
+ /** @internal */
434
+ _updateFilterTransform() {
435
+ this.channelAdapter.updatePayloadTransform((event, payload, ref) => {
436
+ if (typeof payload === 'object' && 'ids' in payload) {
437
+ const postgresChanges = payload.data;
438
+ const { schema, table, commit_timestamp, type, errors } = postgresChanges;
439
+ const enrichedPayload = {
440
+ schema: schema,
441
+ table: table,
442
+ commit_timestamp: commit_timestamp,
443
+ eventType: type,
444
+ new: {},
445
+ old: {},
446
+ errors: errors,
447
+ };
448
+ return Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));
449
+ }
450
+ return payload;
451
+ });
606
452
  }
607
453
  /**
608
- * Returns `true` if the socket is connected and the channel has been joined.
609
- *
454
+ * Compares two optional filter values for equality.
455
+ * Treats undefined, null, and empty string as equivalent empty values.
610
456
  * @internal
611
457
  */
612
- _canPush() {
613
- return this.socket.isConnected() && this._isJoined();
614
- }
615
- /** @internal */
616
- _rejoin(timeout = this.timeout) {
617
- if (this._isLeaving()) {
618
- return;
619
- }
620
- this.socket._leaveOpenTopic(this.topic);
621
- this.state = CHANNEL_STATES.joining;
622
- this.joinPush.resend(timeout);
458
+ static isFilterValueEqual(serverValue, clientValue) {
459
+ const normalizedServer = serverValue !== null && serverValue !== void 0 ? serverValue : undefined;
460
+ const normalizedClient = clientValue !== null && clientValue !== void 0 ? clientValue : undefined;
461
+ return normalizedServer === normalizedClient;
623
462
  }
624
463
  /** @internal */
625
464
  _getPayloadRecords(payload) {