@supabase/realtime-js 2.81.1 → 2.81.2-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/main/RealtimeChannel.d.ts +33 -0
  2. package/dist/main/RealtimeChannel.d.ts.map +1 -1
  3. package/dist/main/RealtimeChannel.js +33 -0
  4. package/dist/main/RealtimeChannel.js.map +1 -1
  5. package/dist/main/RealtimeClient.d.ts +24 -0
  6. package/dist/main/RealtimeClient.d.ts.map +1 -1
  7. package/dist/main/RealtimeClient.js +20 -0
  8. package/dist/main/RealtimeClient.js.map +1 -1
  9. package/dist/main/RealtimePresence.d.ts +12 -4
  10. package/dist/main/RealtimePresence.d.ts.map +1 -1
  11. package/dist/main/RealtimePresence.js +12 -4
  12. package/dist/main/RealtimePresence.js.map +1 -1
  13. package/dist/main/lib/constants.d.ts +2 -2
  14. package/dist/main/lib/constants.d.ts.map +1 -1
  15. package/dist/main/lib/serializer.d.ts +2 -2
  16. package/dist/main/lib/serializer.d.ts.map +1 -1
  17. package/dist/main/lib/serializer.js +23 -16
  18. package/dist/main/lib/serializer.js.map +1 -1
  19. package/dist/main/lib/version.d.ts +1 -1
  20. package/dist/main/lib/version.d.ts.map +1 -1
  21. package/dist/main/lib/version.js +1 -1
  22. package/dist/main/lib/version.js.map +1 -1
  23. package/dist/main/lib/websocket-factory.d.ts +46 -0
  24. package/dist/main/lib/websocket-factory.d.ts.map +1 -1
  25. package/dist/main/lib/websocket-factory.js +34 -0
  26. package/dist/main/lib/websocket-factory.js.map +1 -1
  27. package/dist/module/RealtimeChannel.d.ts +33 -0
  28. package/dist/module/RealtimeChannel.d.ts.map +1 -1
  29. package/dist/module/RealtimeChannel.js +33 -0
  30. package/dist/module/RealtimeChannel.js.map +1 -1
  31. package/dist/module/RealtimeClient.d.ts +24 -0
  32. package/dist/module/RealtimeClient.d.ts.map +1 -1
  33. package/dist/module/RealtimeClient.js +20 -0
  34. package/dist/module/RealtimeClient.js.map +1 -1
  35. package/dist/module/RealtimePresence.d.ts +12 -4
  36. package/dist/module/RealtimePresence.d.ts.map +1 -1
  37. package/dist/module/RealtimePresence.js +12 -4
  38. package/dist/module/RealtimePresence.js.map +1 -1
  39. package/dist/module/lib/constants.d.ts +2 -2
  40. package/dist/module/lib/constants.d.ts.map +1 -1
  41. package/dist/module/lib/serializer.d.ts +2 -2
  42. package/dist/module/lib/serializer.d.ts.map +1 -1
  43. package/dist/module/lib/serializer.js +23 -16
  44. package/dist/module/lib/serializer.js.map +1 -1
  45. package/dist/module/lib/version.d.ts +1 -1
  46. package/dist/module/lib/version.d.ts.map +1 -1
  47. package/dist/module/lib/version.js +1 -1
  48. package/dist/module/lib/version.js.map +1 -1
  49. package/dist/module/lib/websocket-factory.d.ts +46 -0
  50. package/dist/module/lib/websocket-factory.d.ts.map +1 -1
  51. package/dist/module/lib/websocket-factory.js +34 -0
  52. package/dist/module/lib/websocket-factory.js.map +1 -1
  53. package/dist/tsconfig.module.tsbuildinfo +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/src/RealtimeChannel.ts +33 -0
  57. package/src/RealtimeClient.ts +24 -0
  58. package/src/RealtimePresence.ts +12 -4
  59. package/src/lib/serializer.ts +21 -14
  60. package/src/lib/version.ts +1 -1
  61. package/src/lib/websocket-factory.ts +46 -0
@@ -7,7 +7,13 @@ export interface WebSocketLike {
7
7
  readonly url: string
8
8
  readonly protocol: string
9
9
 
10
+ /**
11
+ * Closes the socket, optionally providing a close code and reason.
12
+ */
10
13
  close(code?: number, reason?: string): void
14
+ /**
15
+ * Sends data through the socket using the underlying implementation.
16
+ */
11
17
  send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void
12
18
 
13
19
  onopen: ((this: any, ev: Event) => any) | null
@@ -15,7 +21,13 @@ export interface WebSocketLike {
15
21
  onclose: ((this: any, ev: CloseEvent) => any) | null
16
22
  onerror: ((this: any, ev: Event) => any) | null
17
23
 
24
+ /**
25
+ * Registers an event listener on the socket (compatible with browser WebSocket API).
26
+ */
18
27
  addEventListener(type: string, listener: EventListener): void
28
+ /**
29
+ * Removes a previously registered event listener.
30
+ */
19
31
  removeEventListener(type: string, listener: EventListener): void
20
32
 
21
33
  // Add additional properties that may exist on WebSocket implementations
@@ -32,7 +44,14 @@ export interface WebSocketEnvironment {
32
44
  workaround?: string
33
45
  }
34
46
 
47
+ /**
48
+ * Utilities for creating WebSocket instances across runtimes.
49
+ */
35
50
  export class WebSocketFactory {
51
+ /**
52
+ * Static-only utility – prevent instantiation.
53
+ */
54
+ private constructor() {}
36
55
  private static detectEnvironment(): WebSocketEnvironment {
37
56
  if (typeof WebSocket !== 'undefined') {
38
57
  return { type: 'native', constructor: WebSocket }
@@ -115,6 +134,15 @@ export class WebSocketFactory {
115
134
  }
116
135
  }
117
136
 
137
+ /**
138
+ * Returns the best available WebSocket constructor for the current runtime.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const WS = WebSocketFactory.getWebSocketConstructor()
143
+ * const socket = new WS('wss://realtime.supabase.co/socket')
144
+ * ```
145
+ */
118
146
  public static getWebSocketConstructor(): typeof WebSocket {
119
147
  const env = this.detectEnvironment()
120
148
  if (env.constructor) {
@@ -127,11 +155,29 @@ export class WebSocketFactory {
127
155
  throw new Error(errorMessage)
128
156
  }
129
157
 
158
+ /**
159
+ * Creates a WebSocket using the detected constructor.
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * const socket = WebSocketFactory.createWebSocket('wss://realtime.supabase.co/socket')
164
+ * ```
165
+ */
130
166
  public static createWebSocket(url: string | URL, protocols?: string | string[]): WebSocketLike {
131
167
  const WS = this.getWebSocketConstructor()
132
168
  return new WS(url, protocols)
133
169
  }
134
170
 
171
+ /**
172
+ * Detects whether the runtime can establish WebSocket connections.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * if (!WebSocketFactory.isWebSocketSupported()) {
177
+ * console.warn('Falling back to long polling')
178
+ * }
179
+ * ```
180
+ */
135
181
  public static isWebSocketSupported(): boolean {
136
182
  try {
137
183
  const env = this.detectEnvironment()