@depup/supabase__realtime-js 2.103.0-depup.0 → 2.110.8-depup.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.
- package/AGENTS.md +11 -0
- package/LICENSE +21 -0
- package/README.md +3 -9
- package/changes.json +3 -8
- package/dist/main/RealtimeChannel.d.ts +158 -13
- package/dist/main/RealtimeChannel.d.ts.map +1 -1
- package/dist/main/RealtimeChannel.js +84 -25
- package/dist/main/RealtimeChannel.js.map +1 -1
- package/dist/main/RealtimeClient.d.ts +30 -10
- package/dist/main/RealtimeClient.d.ts.map +1 -1
- package/dist/main/RealtimeClient.js +94 -27
- package/dist/main/RealtimeClient.js.map +1 -1
- package/dist/main/RealtimePostgresFilterBuilder.d.ts +132 -0
- package/dist/main/RealtimePostgresFilterBuilder.d.ts.map +1 -0
- package/dist/main/RealtimePostgresFilterBuilder.js +165 -0
- package/dist/main/RealtimePostgresFilterBuilder.js.map +1 -0
- package/dist/main/index.d.ts +2 -2
- package/dist/main/index.d.ts.map +1 -1
- package/dist/main/index.js +3 -1
- package/dist/main/index.js.map +1 -1
- package/dist/main/lib/constants.d.ts +3 -3
- package/dist/main/lib/constants.d.ts.map +1 -1
- package/dist/main/lib/normalizeChannelError.d.ts +10 -0
- package/dist/main/lib/normalizeChannelError.d.ts.map +1 -0
- package/dist/main/lib/normalizeChannelError.js +29 -0
- package/dist/main/lib/normalizeChannelError.js.map +1 -0
- package/dist/main/lib/serializer.d.ts.map +1 -1
- package/dist/main/lib/serializer.js +23 -12
- package/dist/main/lib/serializer.js.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/main/lib/websocket-factory.d.ts +3 -2
- package/dist/main/lib/websocket-factory.d.ts.map +1 -1
- package/dist/main/lib/websocket-factory.js +16 -31
- package/dist/main/lib/websocket-factory.js.map +1 -1
- package/dist/main/phoenix/channelAdapter.d.ts.map +1 -1
- package/dist/main/phoenix/channelAdapter.js +1 -1
- package/dist/main/phoenix/channelAdapter.js.map +1 -1
- package/dist/module/RealtimeChannel.d.ts +158 -13
- package/dist/module/RealtimeChannel.d.ts.map +1 -1
- package/dist/module/RealtimeChannel.js +81 -24
- package/dist/module/RealtimeChannel.js.map +1 -1
- package/dist/module/RealtimeClient.d.ts +30 -10
- package/dist/module/RealtimeClient.d.ts.map +1 -1
- package/dist/module/RealtimeClient.js +94 -27
- package/dist/module/RealtimeClient.js.map +1 -1
- package/dist/module/RealtimePostgresFilterBuilder.d.ts +132 -0
- package/dist/module/RealtimePostgresFilterBuilder.d.ts.map +1 -0
- package/dist/module/RealtimePostgresFilterBuilder.js +160 -0
- package/dist/module/RealtimePostgresFilterBuilder.js.map +1 -0
- package/dist/module/index.d.ts +2 -2
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js +2 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/constants.d.ts +3 -3
- package/dist/module/lib/constants.d.ts.map +1 -1
- package/dist/module/lib/normalizeChannelError.d.ts +10 -0
- package/dist/module/lib/normalizeChannelError.d.ts.map +1 -0
- package/dist/module/lib/normalizeChannelError.js +26 -0
- package/dist/module/lib/normalizeChannelError.js.map +1 -0
- package/dist/module/lib/serializer.d.ts.map +1 -1
- package/dist/module/lib/serializer.js +23 -12
- package/dist/module/lib/serializer.js.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.js +1 -1
- package/dist/module/lib/websocket-factory.d.ts +3 -2
- package/dist/module/lib/websocket-factory.d.ts.map +1 -1
- package/dist/module/lib/websocket-factory.js +16 -31
- package/dist/module/lib/websocket-factory.js.map +1 -1
- package/dist/module/phoenix/channelAdapter.d.ts.map +1 -1
- package/dist/module/phoenix/channelAdapter.js +1 -1
- package/dist/module/phoenix/channelAdapter.js.map +1 -1
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migrations/README.md +25 -0
- package/migrations/httpsend-server-version.md +88 -0
- package/package.json +28 -30
- package/src/RealtimeChannel.ts +217 -36
- package/src/RealtimeClient.ts +116 -31
- package/src/RealtimePostgresFilterBuilder.ts +253 -0
- package/src/index.ts +8 -0
- package/src/lib/constants.ts +1 -1
- package/src/lib/normalizeChannelError.ts +30 -0
- package/src/lib/serializer.ts +23 -12
- package/src/lib/version.ts +1 -1
- package/src/lib/websocket-factory.ts +33 -36
- package/src/phoenix/channelAdapter.ts +3 -1
package/AGENTS.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Agent instructions for `@supabase/realtime-js`
|
|
2
|
+
|
|
3
|
+
Listen to realtime updates from a Supabase PostgreSQL database. Handles channels, presence, broadcast, and Postgres CDC subscriptions.
|
|
4
|
+
|
|
5
|
+
When helping a user work with this package:
|
|
6
|
+
|
|
7
|
+
- **Usage and quick start**: [`README.md`](./README.md)
|
|
8
|
+
- **Full API reference**: [`src/`](./src/) — every public method and type has TSDoc with `@example` blocks. Read the source for the canonical, version-pinned answer.
|
|
9
|
+
- **Migration notes**: [`migrations/`](./migrations/) — per-theme markdown files for changes that need caller action.
|
|
10
|
+
|
|
11
|
+
For broader Supabase guidance (docs site, MCP tools, schema and project workflows), use the centralized [Supabase agent skills](https://github.com/supabase/agent-skills): `npx skills add supabase/agent-skills`. Or pair with the Supabase MCP server via the [Supabase Plugin for AI Coding Agents](https://supabase.com/docs/guides/getting-started/plugins).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Supabase
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -13,16 +13,10 @@ npm install @depup/supabase__realtime-js
|
|
|
13
13
|
|
|
14
14
|
| Field | Value |
|
|
15
15
|
|-------|-------|
|
|
16
|
-
| Original | [@supabase/realtime-js](https://www.npmjs.com/package/@supabase/realtime-js) @ 2.
|
|
17
|
-
| Processed | 2026-
|
|
16
|
+
| Original | [@supabase/realtime-js](https://www.npmjs.com/package/@supabase/realtime-js) @ 2.110.8 |
|
|
17
|
+
| Processed | 2026-07-21 |
|
|
18
18
|
| Smoke test | passed |
|
|
19
|
-
| Deps updated |
|
|
20
|
-
|
|
21
|
-
## Dependency Changes
|
|
22
|
-
|
|
23
|
-
| Dependency | From | To |
|
|
24
|
-
|------------|------|-----|
|
|
25
|
-
| ws | ^8.18.2 | ^8.20.0 |
|
|
19
|
+
| Deps updated | 0 |
|
|
26
20
|
|
|
27
21
|
---
|
|
28
22
|
|
package/changes.json
CHANGED
|
@@ -3,6 +3,10 @@ import type RealtimeClient from './RealtimeClient';
|
|
|
3
3
|
import RealtimePresence, { REALTIME_PRESENCE_LISTEN_EVENTS } from './RealtimePresence';
|
|
4
4
|
import type { RealtimePresenceJoinPayload, RealtimePresenceLeavePayload, RealtimePresenceState } from './RealtimePresence';
|
|
5
5
|
import { ChannelBindingCallback } from './phoenix/types';
|
|
6
|
+
import type { Timer } from './phoenix/types';
|
|
7
|
+
import { RealtimePostgresFilterBuilder } from './RealtimePostgresFilterBuilder';
|
|
8
|
+
export type { RealtimePostgresChangesFilterOperator } from './RealtimePostgresFilterBuilder';
|
|
9
|
+
export { RealtimePostgresFilterBuilder, postgresChangesFilter, } from './RealtimePostgresFilterBuilder';
|
|
6
10
|
type ReplayOption = {
|
|
7
11
|
since: number;
|
|
8
12
|
limit?: number;
|
|
@@ -13,14 +17,32 @@ export type RealtimeChannelOptions = {
|
|
|
13
17
|
* self option enables client to receive message it broadcast
|
|
14
18
|
* ack option instructs server to acknowledge that broadcast message was received
|
|
15
19
|
* replay option instructs server to replay broadcast messages
|
|
20
|
+
* replication_ready option instructs the server to emit a `system` event once the
|
|
21
|
+
* Postgres replication connection backing this channel is established and ready to
|
|
22
|
+
* stream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;
|
|
23
|
+
* the payload's `status` is `'ok'` (`message: 'Replication connection established'`)
|
|
24
|
+
* on success or `'error'` if the connection is not ready in time.
|
|
16
25
|
*/
|
|
17
26
|
broadcast?: {
|
|
18
27
|
self?: boolean;
|
|
19
28
|
ack?: boolean;
|
|
20
29
|
replay?: ReplayOption;
|
|
30
|
+
replication_ready?: boolean;
|
|
21
31
|
};
|
|
22
32
|
/**
|
|
23
33
|
* key option is used to track presence payload across clients
|
|
34
|
+
*
|
|
35
|
+
* enabled controls whether this client receives presence state and updates from other
|
|
36
|
+
* clients — set it to true (or add an `.on('presence', ...)` listener, which enables it
|
|
37
|
+
* automatically) if you want to see who else is present. Without it, this client's
|
|
38
|
+
* `presenceState()` stays empty and no `presence` events fire for you, because the
|
|
39
|
+
* underlying presence state machine buffers incoming updates until it has received an
|
|
40
|
+
* initial snapshot, which is only requested when this flag is set.
|
|
41
|
+
*
|
|
42
|
+
* It does not gate the other direction: calling `track()` always makes this client
|
|
43
|
+
* visible to other subscribers that have presence enabled, regardless of this client's
|
|
44
|
+
* own `enabled` setting. On RLS-protected (private) channels, receiving presence updates
|
|
45
|
+
* additionally requires the `presence.read` policy to authorize this client.
|
|
24
46
|
*/
|
|
25
47
|
presence?: {
|
|
26
48
|
key?: string;
|
|
@@ -107,11 +129,64 @@ export type RealtimePostgresChangesFilter<T extends `${REALTIME_POSTGRES_CHANGES
|
|
|
107
129
|
*/
|
|
108
130
|
table?: string;
|
|
109
131
|
/**
|
|
110
|
-
* Receive database changes when filter is matched.
|
|
132
|
+
* Receive database changes only when the filter is matched.
|
|
133
|
+
*
|
|
134
|
+
* A filter is a `column=operator.value` expression, e.g. `id=eq.1` or
|
|
135
|
+
* `title=like.%foo%`. See {@link RealtimePostgresChangesFilterOperator} for
|
|
136
|
+
* the available operators.
|
|
137
|
+
*
|
|
138
|
+
* Multiple filters can be combined with commas; they are applied as an `AND`
|
|
139
|
+
* condition: `filter: 'id=gt.0,id=lt.100'`.
|
|
140
|
+
*
|
|
141
|
+
* Any operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.
|
|
142
|
+
*
|
|
143
|
+
* The server splits conditions on commas outside quotes/parentheses. To
|
|
144
|
+
* include a reserved character (`,`, `(`, `)`) in a value, wrap it in double
|
|
145
|
+
* quotes PostgREST-style: `name=eq."a,b"`. The {@link RealtimePostgresFilterBuilder}
|
|
146
|
+
* does this quoting for you.
|
|
147
|
+
*
|
|
148
|
+
* Instead of a raw string you can pass a {@link RealtimePostgresFilterBuilder}
|
|
149
|
+
* (via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the
|
|
150
|
+
* SDK serializes it to a string automatically.
|
|
151
|
+
*/
|
|
152
|
+
filter?: string | RealtimePostgresFilterBuilder;
|
|
153
|
+
/**
|
|
154
|
+
* Restrict the change payload to a subset of columns instead of receiving the
|
|
155
|
+
* full row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)
|
|
156
|
+
* and the data transferred per event.
|
|
157
|
+
*
|
|
158
|
+
* The listed columns must be selectable by the subscribing role.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* channel.on('postgres_changes', {
|
|
162
|
+
* event: '*',
|
|
163
|
+
* schema: 'public',
|
|
164
|
+
* table: 'users',
|
|
165
|
+
* select: ['id', 'first_name'],
|
|
166
|
+
* }, (payload) => {
|
|
167
|
+
* // payload.new only contains { id, first_name }
|
|
168
|
+
* })
|
|
111
169
|
*/
|
|
112
|
-
|
|
170
|
+
select?: string[];
|
|
171
|
+
};
|
|
172
|
+
export type RealtimeChannelSendResponse = 'ok' | 'timed out' | 'error' | (string & {});
|
|
173
|
+
/**
|
|
174
|
+
* Payload of a `system` event emitted by the server.
|
|
175
|
+
*
|
|
176
|
+
* Most notably, when a channel is created with `config.broadcast.replication_ready: true`,
|
|
177
|
+
* the server sends one of these once the Postgres replication connection is ready
|
|
178
|
+
* (`status: 'ok'`) or fails to become ready in time (`status: 'error'`).
|
|
179
|
+
*/
|
|
180
|
+
export type RealtimeSystemPayload = {
|
|
181
|
+
/** The extension that produced the message, e.g. `'system'` or `'postgres_changes'`. */
|
|
182
|
+
extension: 'system' | 'postgres_changes' | (string & {});
|
|
183
|
+
/** `'ok'` on success, `'error'` on failure. */
|
|
184
|
+
status: 'ok' | 'error' | (string & {});
|
|
185
|
+
/** Human-readable description, e.g. `'Replication connection established'`. */
|
|
186
|
+
message: string;
|
|
187
|
+
/** The channel (sub)topic the message refers to. */
|
|
188
|
+
channel: string;
|
|
113
189
|
};
|
|
114
|
-
export type RealtimeChannelSendResponse = 'ok' | 'timed out' | 'error';
|
|
115
190
|
export declare enum REALTIME_POSTGRES_CHANGES_LISTEN_EVENT {
|
|
116
191
|
ALL = "*",
|
|
117
192
|
INSERT = "INSERT",
|
|
@@ -166,7 +241,7 @@ export default class RealtimeChannel {
|
|
|
166
241
|
get joinedOnce(): boolean;
|
|
167
242
|
get timeout(): number;
|
|
168
243
|
get joinPush(): import("@supabase/phoenix").Push;
|
|
169
|
-
get rejoinTimer():
|
|
244
|
+
get rejoinTimer(): Timer;
|
|
170
245
|
/**
|
|
171
246
|
* Creates a channel that can broadcast messages, sync presence, and listen to Postgres changes.
|
|
172
247
|
*
|
|
@@ -175,12 +250,23 @@ export default class RealtimeChannel {
|
|
|
175
250
|
*
|
|
176
251
|
* @category Realtime
|
|
177
252
|
*
|
|
178
|
-
* @example
|
|
253
|
+
* @example Using supabase-js (recommended)
|
|
254
|
+
* ```ts
|
|
255
|
+
* import { createClient } from '@supabase/supabase-js'
|
|
256
|
+
*
|
|
257
|
+
* const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
|
|
258
|
+
* const channel = supabase.channel('room1')
|
|
259
|
+
* channel
|
|
260
|
+
* .on('broadcast', { event: 'cursor-pos' }, (payload) => console.log(payload))
|
|
261
|
+
* .subscribe()
|
|
262
|
+
* ```
|
|
263
|
+
*
|
|
264
|
+
* @example Standalone import for bundle-sensitive environments
|
|
179
265
|
* ```ts
|
|
180
266
|
* import RealtimeClient from '@supabase/realtime-js'
|
|
181
267
|
*
|
|
182
268
|
* const client = new RealtimeClient('https://xyzcompany.supabase.co/realtime/v1', {
|
|
183
|
-
* params: { apikey: '
|
|
269
|
+
* params: { apikey: 'your-publishable-key' },
|
|
184
270
|
* })
|
|
185
271
|
* const channel = new RealtimeChannel('realtime:public:messages', { config: {} }, client)
|
|
186
272
|
* ```
|
|
@@ -189,8 +275,23 @@ export default class RealtimeChannel {
|
|
|
189
275
|
/** Topic name can be any string. */
|
|
190
276
|
topic: string, params: RealtimeChannelOptions | undefined, socket: RealtimeClient);
|
|
191
277
|
/**
|
|
192
|
-
* Subscribe registers your client with the server
|
|
278
|
+
* Subscribe registers your client with the server.
|
|
279
|
+
*
|
|
280
|
+
* The optional `callback` receives a `status` and, on failure, an `err` argument.
|
|
281
|
+
* Log the full `err` so its `cause`, `name`, and any structured fields aren't hidden
|
|
282
|
+
* behind `err.message`.
|
|
283
|
+
*
|
|
193
284
|
* @category Realtime
|
|
285
|
+
*
|
|
286
|
+
* @example Handling errors
|
|
287
|
+
* ```js
|
|
288
|
+
* supabase.channel('room1').subscribe((status, err) => {
|
|
289
|
+
* if (status === 'CHANNEL_ERROR' || status === 'TIMED_OUT') {
|
|
290
|
+
* // Log the full error: its `cause` often holds the underlying reason.
|
|
291
|
+
* console.error(status, err)
|
|
292
|
+
* }
|
|
293
|
+
* })
|
|
294
|
+
* ```
|
|
194
295
|
*/
|
|
195
296
|
subscribe(callback?: (status: REALTIME_SUBSCRIBE_STATES, err?: Error) => void, timeout?: number): RealtimeChannel;
|
|
196
297
|
private _updatePostgresBindings;
|
|
@@ -209,6 +310,11 @@ export default class RealtimeChannel {
|
|
|
209
310
|
* Sends the supplied payload to the presence tracker so other subscribers can see that this
|
|
210
311
|
* client is online. Use `untrack` to stop broadcasting presence for the same key.
|
|
211
312
|
*
|
|
313
|
+
* Tracking makes this client visible to other subscribers immediately, regardless of this
|
|
314
|
+
* channel's `config.presence.enabled` setting or whether it has a `presence` listener — that
|
|
315
|
+
* flag only affects whether *this* client receives presence updates from others (and, on
|
|
316
|
+
* RLS-protected channels, whether it's authorized to do so).
|
|
317
|
+
*
|
|
212
318
|
* @category Realtime
|
|
213
319
|
*/
|
|
214
320
|
track(payload: {
|
|
@@ -225,7 +331,8 @@ export default class RealtimeChannel {
|
|
|
225
331
|
[key: string]: any;
|
|
226
332
|
}): Promise<RealtimeChannelSendResponse>;
|
|
227
333
|
/**
|
|
228
|
-
*
|
|
334
|
+
* Listen for presence events on this channel — when peers join, leave, or
|
|
335
|
+
* sync presence state.
|
|
229
336
|
*/
|
|
230
337
|
on(type: `${REALTIME_LISTEN_TYPES.PRESENCE}`, filter: {
|
|
231
338
|
event: `${REALTIME_PRESENCE_LISTEN_EVENTS.SYNC}`;
|
|
@@ -245,6 +352,10 @@ export default class RealtimeChannel {
|
|
|
245
352
|
}>(type: `${REALTIME_LISTEN_TYPES.PRESENCE}`, filter: {
|
|
246
353
|
event: '*';
|
|
247
354
|
}, callback: (payload?: RealtimePresenceJoinPayload<T> | RealtimePresenceLeavePayload<T>) => void): RealtimeChannel;
|
|
355
|
+
/**
|
|
356
|
+
* Listen for Postgres database changes (insert / update / delete) streamed
|
|
357
|
+
* over this channel.
|
|
358
|
+
*/
|
|
248
359
|
on<T extends {
|
|
249
360
|
[key: string]: any;
|
|
250
361
|
}>(type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`, filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.ALL}`>, callback: (payload: RealtimePostgresChangesPayload<T>) => void): RealtimeChannel;
|
|
@@ -261,7 +372,8 @@ export default class RealtimeChannel {
|
|
|
261
372
|
[key: string]: any;
|
|
262
373
|
}>(type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`, filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT}`>, callback: (payload: RealtimePostgresChangesPayload<T>) => void): RealtimeChannel;
|
|
263
374
|
/**
|
|
264
|
-
*
|
|
375
|
+
* Listen for broadcast messages sent on this channel.
|
|
376
|
+
*
|
|
265
377
|
* @param type One of "broadcast", "presence", or "postgres_changes".
|
|
266
378
|
* @param filter Custom object specific to the Realtime feature detailing which payloads to receive.
|
|
267
379
|
* @param callback Function to be invoked when event handler is triggered.
|
|
@@ -324,6 +436,31 @@ export default class RealtimeChannel {
|
|
|
324
436
|
event: REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.DELETE;
|
|
325
437
|
payload: RealtimeBroadcastDeletePayload<T>;
|
|
326
438
|
}) => void): RealtimeChannel;
|
|
439
|
+
/**
|
|
440
|
+
* Listen for `system` events on this channel.
|
|
441
|
+
*
|
|
442
|
+
* The payload follows the {@link RealtimeSystemPayload} shape. Opt in to the replication-ready
|
|
443
|
+
* notification with `config.broadcast.replication_ready: true` when creating the channel, then
|
|
444
|
+
* watch for `payload.status === 'ok'` to know the Postgres replication connection is ready.
|
|
445
|
+
*
|
|
446
|
+
* @example Know when the replication connection is ready
|
|
447
|
+
* ```js
|
|
448
|
+
* const channel = supabase.channel('room1', {
|
|
449
|
+
* config: { broadcast: { replication_ready: true } },
|
|
450
|
+
* })
|
|
451
|
+
*
|
|
452
|
+
* channel
|
|
453
|
+
* .on('postgres_changes', { event: '*', schema: 'public', table: 'messages' }, (payload) => {
|
|
454
|
+
* console.log('Change received!', payload)
|
|
455
|
+
* })
|
|
456
|
+
* .on('system', {}, (payload) => {
|
|
457
|
+
* if (payload.extension === 'system' && payload.status === 'ok') {
|
|
458
|
+
* console.log('Replication connection is ready:', payload.message)
|
|
459
|
+
* }
|
|
460
|
+
* })
|
|
461
|
+
* .subscribe()
|
|
462
|
+
* ```
|
|
463
|
+
*/
|
|
327
464
|
on<T extends {
|
|
328
465
|
[key: string]: any;
|
|
329
466
|
}>(type: `${REALTIME_LISTEN_TYPES.SYSTEM}`, filter: {}, callback: (payload: any) => void): RealtimeChannel;
|
|
@@ -333,6 +470,9 @@ export default class RealtimeChannel {
|
|
|
333
470
|
* This method always uses the REST API endpoint regardless of WebSocket connection state.
|
|
334
471
|
* Useful when you want to guarantee REST delivery or when gradually migrating from implicit REST fallback.
|
|
335
472
|
*
|
|
473
|
+
* Payloads that are `ArrayBuffer` or `ArrayBufferView` (e.g. `Uint8Array`) are sent as
|
|
474
|
+
* `application/octet-stream`; all other payloads are JSON-encoded.
|
|
475
|
+
*
|
|
336
476
|
* @param event The name of the broadcast event
|
|
337
477
|
* @param payload Payload to be sent (required)
|
|
338
478
|
* @param opts Options including timeout
|
|
@@ -363,6 +503,8 @@ export default class RealtimeChannel {
|
|
|
363
503
|
* @remarks
|
|
364
504
|
* - When using REST you don't need to subscribe to the channel
|
|
365
505
|
* - REST calls are only available from 2.37.0 onwards
|
|
506
|
+
* - If you create a channel only to send a REST broadcast, remove it from
|
|
507
|
+
* the client when the send completes
|
|
366
508
|
*
|
|
367
509
|
* @example Send a message via websocket
|
|
368
510
|
* ```js
|
|
@@ -386,9 +528,13 @@ export default class RealtimeChannel {
|
|
|
386
528
|
*
|
|
387
529
|
* @example Send a message via REST
|
|
388
530
|
* ```js
|
|
389
|
-
* supabase
|
|
390
|
-
*
|
|
391
|
-
*
|
|
531
|
+
* const channel = supabase.channel('room1')
|
|
532
|
+
*
|
|
533
|
+
* try {
|
|
534
|
+
* await channel.httpSend('cursor-pos', { x: Math.random(), y: Math.random() })
|
|
535
|
+
* } finally {
|
|
536
|
+
* await supabase.removeChannel(channel)
|
|
537
|
+
* }
|
|
392
538
|
* ```
|
|
393
539
|
*/
|
|
394
540
|
send(args: {
|
|
@@ -426,5 +572,4 @@ export default class RealtimeChannel {
|
|
|
426
572
|
teardown(): void;
|
|
427
573
|
copyBindings(other: RealtimeChannel): void;
|
|
428
574
|
}
|
|
429
|
-
export {};
|
|
430
575
|
//# sourceMappingURL=RealtimeChannel.d.ts.map
|
|
@@ -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,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REALTIME_CHANNEL_STATES = exports.REALTIME_SUBSCRIBE_STATES = exports.REALTIME_LISTEN_TYPES = exports.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = void 0;
|
|
3
|
+
exports.REALTIME_CHANNEL_STATES = exports.REALTIME_SUBSCRIBE_STATES = exports.REALTIME_LISTEN_TYPES = exports.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = exports.postgresChangesFilter = exports.RealtimePostgresFilterBuilder = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const constants_1 = require("./lib/constants");
|
|
6
6
|
const RealtimePresence_1 = tslib_1.__importDefault(require("./RealtimePresence"));
|
|
7
7
|
const Transformers = tslib_1.__importStar(require("./lib/transformers"));
|
|
8
8
|
const transformers_1 = require("./lib/transformers");
|
|
9
|
+
const normalizeChannelError_1 = require("./lib/normalizeChannelError");
|
|
9
10
|
const channelAdapter_1 = tslib_1.__importDefault(require("./phoenix/channelAdapter"));
|
|
11
|
+
const RealtimePostgresFilterBuilder_1 = require("./RealtimePostgresFilterBuilder");
|
|
12
|
+
var RealtimePostgresFilterBuilder_2 = require("./RealtimePostgresFilterBuilder");
|
|
13
|
+
Object.defineProperty(exports, "RealtimePostgresFilterBuilder", { enumerable: true, get: function () { return RealtimePostgresFilterBuilder_2.RealtimePostgresFilterBuilder; } });
|
|
14
|
+
Object.defineProperty(exports, "postgresChangesFilter", { enumerable: true, get: function () { return RealtimePostgresFilterBuilder_2.postgresChangesFilter; } });
|
|
10
15
|
var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;
|
|
11
16
|
(function (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {
|
|
12
17
|
REALTIME_POSTGRES_CHANGES_LISTEN_EVENT["ALL"] = "*";
|
|
@@ -61,12 +66,23 @@ class RealtimeChannel {
|
|
|
61
66
|
*
|
|
62
67
|
* @category Realtime
|
|
63
68
|
*
|
|
64
|
-
* @example
|
|
69
|
+
* @example Using supabase-js (recommended)
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { createClient } from '@supabase/supabase-js'
|
|
72
|
+
*
|
|
73
|
+
* const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
|
|
74
|
+
* const channel = supabase.channel('room1')
|
|
75
|
+
* channel
|
|
76
|
+
* .on('broadcast', { event: 'cursor-pos' }, (payload) => console.log(payload))
|
|
77
|
+
* .subscribe()
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example Standalone import for bundle-sensitive environments
|
|
65
81
|
* ```ts
|
|
66
82
|
* import RealtimeClient from '@supabase/realtime-js'
|
|
67
83
|
*
|
|
68
84
|
* const client = new RealtimeClient('https://xyzcompany.supabase.co/realtime/v1', {
|
|
69
|
-
* params: { apikey: '
|
|
85
|
+
* params: { apikey: 'your-publishable-key' },
|
|
70
86
|
* })
|
|
71
87
|
* const channel = new RealtimeChannel('realtime:public:messages', { config: {} }, client)
|
|
72
88
|
* ```
|
|
@@ -94,12 +110,27 @@ class RealtimeChannel {
|
|
|
94
110
|
this.broadcastEndpointURL = (0, transformers_1.httpEndpointURL)(this.socket.socketAdapter.endPointURL());
|
|
95
111
|
this.private = this.params.config.private || false;
|
|
96
112
|
if (!this.private && ((_b = (_a = this.params.config) === null || _a === void 0 ? void 0 : _a.broadcast) === null || _b === void 0 ? void 0 : _b.replay)) {
|
|
97
|
-
throw `tried to use replay on public channel '${this.topic}'. It must be a private channel
|
|
113
|
+
throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`);
|
|
98
114
|
}
|
|
99
115
|
}
|
|
100
116
|
/**
|
|
101
|
-
* Subscribe registers your client with the server
|
|
117
|
+
* Subscribe registers your client with the server.
|
|
118
|
+
*
|
|
119
|
+
* The optional `callback` receives a `status` and, on failure, an `err` argument.
|
|
120
|
+
* Log the full `err` so its `cause`, `name`, and any structured fields aren't hidden
|
|
121
|
+
* behind `err.message`.
|
|
122
|
+
*
|
|
102
123
|
* @category Realtime
|
|
124
|
+
*
|
|
125
|
+
* @example Handling errors
|
|
126
|
+
* ```js
|
|
127
|
+
* supabase.channel('room1').subscribe((status, err) => {
|
|
128
|
+
* if (status === 'CHANNEL_ERROR' || status === 'TIMED_OUT') {
|
|
129
|
+
* // Log the full error: its `cause` often holds the underlying reason.
|
|
130
|
+
* console.error(status, err)
|
|
131
|
+
* }
|
|
132
|
+
* })
|
|
133
|
+
* ```
|
|
103
134
|
*/
|
|
104
135
|
subscribe(callback, timeout = this.timeout) {
|
|
105
136
|
var _a, _b, _c;
|
|
@@ -123,7 +154,7 @@ class RealtimeChannel {
|
|
|
123
154
|
accessTokenPayload.access_token = this.socket.accessTokenValue;
|
|
124
155
|
}
|
|
125
156
|
this._onError((reason) => {
|
|
126
|
-
callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, reason);
|
|
157
|
+
callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, (0, normalizeChannelError_1.normalizeChannelError)(reason));
|
|
127
158
|
});
|
|
128
159
|
this._onClose(() => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CLOSED));
|
|
129
160
|
this.updateJoinPayload(Object.assign({ config }, accessTokenPayload));
|
|
@@ -143,7 +174,8 @@ class RealtimeChannel {
|
|
|
143
174
|
})
|
|
144
175
|
.receive('error', (error) => {
|
|
145
176
|
this.state = constants_1.CHANNEL_STATES.errored;
|
|
146
|
-
|
|
177
|
+
const message = Object.values(error).join(', ') || 'error';
|
|
178
|
+
callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(message, { cause: error }));
|
|
147
179
|
})
|
|
148
180
|
.receive('timeout', () => {
|
|
149
181
|
callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.TIMED_OUT);
|
|
@@ -194,6 +226,11 @@ class RealtimeChannel {
|
|
|
194
226
|
* Sends the supplied payload to the presence tracker so other subscribers can see that this
|
|
195
227
|
* client is online. Use `untrack` to stop broadcasting presence for the same key.
|
|
196
228
|
*
|
|
229
|
+
* Tracking makes this client visible to other subscribers immediately, regardless of this
|
|
230
|
+
* channel's `config.presence.enabled` setting or whether it has a `presence` listener — that
|
|
231
|
+
* flag only affects whether *this* client receives presence updates from others (and, on
|
|
232
|
+
* RLS-protected channels, whether it's authorized to do so).
|
|
233
|
+
*
|
|
197
234
|
* @category Realtime
|
|
198
235
|
*/
|
|
199
236
|
async track(payload, opts = {}) {
|
|
@@ -201,7 +238,7 @@ class RealtimeChannel {
|
|
|
201
238
|
type: 'presence',
|
|
202
239
|
event: 'track',
|
|
203
240
|
payload,
|
|
204
|
-
}, opts
|
|
241
|
+
}, opts);
|
|
205
242
|
}
|
|
206
243
|
/**
|
|
207
244
|
* Removes the current presence state for this client.
|
|
@@ -388,6 +425,9 @@ class RealtimeChannel {
|
|
|
388
425
|
* This method always uses the REST API endpoint regardless of WebSocket connection state.
|
|
389
426
|
* Useful when you want to guarantee REST delivery or when gradually migrating from implicit REST fallback.
|
|
390
427
|
*
|
|
428
|
+
* Payloads that are `ArrayBuffer` or `ArrayBufferView` (e.g. `Uint8Array`) are sent as
|
|
429
|
+
* `application/octet-stream`; all other payloads are JSON-encoded.
|
|
430
|
+
*
|
|
391
431
|
* @param event The name of the broadcast event
|
|
392
432
|
* @param payload Payload to be sent (required)
|
|
393
433
|
* @param opts Options including timeout
|
|
@@ -398,33 +438,35 @@ class RealtimeChannel {
|
|
|
398
438
|
async httpSend(event, payload, opts = {}) {
|
|
399
439
|
var _a;
|
|
400
440
|
if (payload === undefined || payload === null) {
|
|
401
|
-
return Promise.reject('Payload is required for httpSend()');
|
|
441
|
+
return Promise.reject(new Error('Payload is required for httpSend()'));
|
|
402
442
|
}
|
|
443
|
+
const isBinary = payload instanceof ArrayBuffer || ArrayBuffer.isView(payload);
|
|
403
444
|
const headers = {
|
|
404
445
|
apikey: this.socket.apiKey ? this.socket.apiKey : '',
|
|
405
|
-
'Content-Type': 'application/json',
|
|
446
|
+
'Content-Type': isBinary ? 'application/octet-stream' : 'application/json',
|
|
406
447
|
};
|
|
407
448
|
if (this.socket.accessTokenValue) {
|
|
408
449
|
headers['Authorization'] = `Bearer ${this.socket.accessTokenValue}`;
|
|
409
450
|
}
|
|
451
|
+
const url = new URL(this.broadcastEndpointURL);
|
|
452
|
+
url.pathname += `/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(event)}`;
|
|
453
|
+
if (this.private) {
|
|
454
|
+
url.searchParams.set('private', 'true');
|
|
455
|
+
}
|
|
410
456
|
const options = {
|
|
411
457
|
method: 'POST',
|
|
412
458
|
headers,
|
|
413
|
-
body: JSON.stringify(
|
|
414
|
-
messages: [
|
|
415
|
-
{
|
|
416
|
-
topic: this.subTopic,
|
|
417
|
-
event,
|
|
418
|
-
payload: payload,
|
|
419
|
-
private: this.private,
|
|
420
|
-
},
|
|
421
|
-
],
|
|
422
|
-
}),
|
|
459
|
+
body: isBinary ? payload : JSON.stringify(payload),
|
|
423
460
|
};
|
|
424
|
-
const response = await this._fetchWithTimeout(
|
|
461
|
+
const response = await this._fetchWithTimeout(url.toString(), options, (_a = opts.timeout) !== null && _a !== void 0 ? _a : this.timeout);
|
|
425
462
|
if (response.status === 202) {
|
|
426
463
|
return { success: true };
|
|
427
464
|
}
|
|
465
|
+
if (response.status === 404) {
|
|
466
|
+
return Promise.reject(new Error('httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. ' +
|
|
467
|
+
'Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. ' +
|
|
468
|
+
'See https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/migrations/httpsend-server-version.md'));
|
|
469
|
+
}
|
|
428
470
|
let errorMessage = response.statusText;
|
|
429
471
|
try {
|
|
430
472
|
const errorBody = await response.json();
|
|
@@ -447,6 +489,8 @@ class RealtimeChannel {
|
|
|
447
489
|
* @remarks
|
|
448
490
|
* - When using REST you don't need to subscribe to the channel
|
|
449
491
|
* - REST calls are only available from 2.37.0 onwards
|
|
492
|
+
* - If you create a channel only to send a REST broadcast, remove it from
|
|
493
|
+
* the client when the send completes
|
|
450
494
|
*
|
|
451
495
|
* @example Send a message via websocket
|
|
452
496
|
* ```js
|
|
@@ -470,9 +514,13 @@ class RealtimeChannel {
|
|
|
470
514
|
*
|
|
471
515
|
* @example Send a message via REST
|
|
472
516
|
* ```js
|
|
473
|
-
* supabase
|
|
474
|
-
*
|
|
475
|
-
*
|
|
517
|
+
* const channel = supabase.channel('room1')
|
|
518
|
+
*
|
|
519
|
+
* try {
|
|
520
|
+
* await channel.httpSend('cursor-pos', { x: Math.random(), y: Math.random() })
|
|
521
|
+
* } finally {
|
|
522
|
+
* await supabase.removeChannel(channel)
|
|
523
|
+
* }
|
|
476
524
|
* ```
|
|
477
525
|
*/
|
|
478
526
|
async send(args, opts = {}) {
|
|
@@ -509,7 +557,7 @@ class RealtimeChannel {
|
|
|
509
557
|
return response.ok ? 'ok' : 'error';
|
|
510
558
|
}
|
|
511
559
|
catch (error) {
|
|
512
|
-
if (error.name === 'AbortError') {
|
|
560
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
513
561
|
return 'timed out';
|
|
514
562
|
}
|
|
515
563
|
else {
|
|
@@ -578,6 +626,17 @@ class RealtimeChannel {
|
|
|
578
626
|
/** @internal */
|
|
579
627
|
_on(type, filter, callback) {
|
|
580
628
|
const typeLower = type.toLocaleLowerCase();
|
|
629
|
+
// Serialize a postgres_changes filter builder into its string form so the
|
|
630
|
+
// rest of the pipeline (join payload, server binding match) sees a string.
|
|
631
|
+
// Duck-type `build()` in addition to `instanceof` so a builder constructed
|
|
632
|
+
// against a duplicate copy of the package (separate module realm) still works.
|
|
633
|
+
const filterValue = filter === null || filter === void 0 ? void 0 : filter.filter;
|
|
634
|
+
if (filterValue instanceof RealtimePostgresFilterBuilder_1.RealtimePostgresFilterBuilder ||
|
|
635
|
+
(typeof filterValue === 'object' &&
|
|
636
|
+
filterValue !== null &&
|
|
637
|
+
typeof filterValue.build === 'function')) {
|
|
638
|
+
filter = Object.assign(Object.assign({}, filter), { filter: filterValue.build() });
|
|
639
|
+
}
|
|
581
640
|
const ref = this.channelAdapter.on(type, callback);
|
|
582
641
|
const binding = {
|
|
583
642
|
type: typeLower,
|