@supabase/realtime-js 2.14.0 → 2.15.0-next.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 (68) hide show
  1. package/dist/main/RealtimeChannel.d.ts.map +1 -1
  2. package/dist/main/RealtimeChannel.js +26 -10
  3. package/dist/main/RealtimeChannel.js.map +1 -1
  4. package/dist/main/RealtimeClient.d.ts.map +1 -1
  5. package/dist/main/RealtimeClient.js +23 -6
  6. package/dist/main/RealtimeClient.js.map +1 -1
  7. package/dist/main/index.auto.d.ts +11 -0
  8. package/dist/main/index.auto.d.ts.map +1 -0
  9. package/dist/main/index.auto.js +34 -0
  10. package/dist/main/index.auto.js.map +1 -0
  11. package/dist/main/lib/constants.d.ts +1 -0
  12. package/dist/main/lib/constants.d.ts.map +1 -1
  13. package/dist/main/lib/constants.js +2 -1
  14. package/dist/main/lib/constants.js.map +1 -1
  15. package/dist/main/lib/timer.d.ts.map +1 -1
  16. package/dist/main/lib/timer.js +1 -0
  17. package/dist/main/lib/timer.js.map +1 -1
  18. package/dist/main/lib/transformers.js +1 -1
  19. package/dist/main/lib/transformers.js.map +1 -1
  20. package/dist/main/lib/version.d.ts +1 -1
  21. package/dist/main/lib/version.js +1 -1
  22. package/dist/main/lib/websocket-factory-auto.d.ts +26 -0
  23. package/dist/main/lib/websocket-factory-auto.d.ts.map +1 -0
  24. package/dist/main/lib/websocket-factory-auto.js +71 -0
  25. package/dist/main/lib/websocket-factory-auto.js.map +1 -0
  26. package/dist/main/lib/websocket-factory.d.ts +0 -6
  27. package/dist/main/lib/websocket-factory.d.ts.map +1 -1
  28. package/dist/main/lib/websocket-factory.js +16 -53
  29. package/dist/main/lib/websocket-factory.js.map +1 -1
  30. package/dist/module/RealtimeChannel.d.ts.map +1 -1
  31. package/dist/module/RealtimeChannel.js +27 -11
  32. package/dist/module/RealtimeChannel.js.map +1 -1
  33. package/dist/module/RealtimeClient.d.ts.map +1 -1
  34. package/dist/module/RealtimeClient.js +23 -6
  35. package/dist/module/RealtimeClient.js.map +1 -1
  36. package/dist/module/index.auto.d.ts +11 -0
  37. package/dist/module/index.auto.d.ts.map +1 -0
  38. package/dist/module/index.auto.js +13 -0
  39. package/dist/module/index.auto.js.map +1 -0
  40. package/dist/module/lib/constants.d.ts +1 -0
  41. package/dist/module/lib/constants.d.ts.map +1 -1
  42. package/dist/module/lib/constants.js +1 -0
  43. package/dist/module/lib/constants.js.map +1 -1
  44. package/dist/module/lib/timer.d.ts.map +1 -1
  45. package/dist/module/lib/timer.js +1 -0
  46. package/dist/module/lib/timer.js.map +1 -1
  47. package/dist/module/lib/transformers.js +1 -1
  48. package/dist/module/lib/transformers.js.map +1 -1
  49. package/dist/module/lib/version.d.ts +1 -1
  50. package/dist/module/lib/version.js +1 -1
  51. package/dist/module/lib/websocket-factory-auto.d.ts +26 -0
  52. package/dist/module/lib/websocket-factory-auto.d.ts.map +1 -0
  53. package/dist/module/lib/websocket-factory-auto.js +67 -0
  54. package/dist/module/lib/websocket-factory-auto.js.map +1 -0
  55. package/dist/module/lib/websocket-factory.d.ts +0 -6
  56. package/dist/module/lib/websocket-factory.d.ts.map +1 -1
  57. package/dist/module/lib/websocket-factory.js +16 -53
  58. package/dist/module/lib/websocket-factory.js.map +1 -1
  59. package/package.json +14 -3
  60. package/src/RealtimeChannel.ts +38 -12
  61. package/src/RealtimeClient.ts +25 -5
  62. package/src/index.auto.ts +14 -0
  63. package/src/lib/constants.ts +1 -0
  64. package/src/lib/timer.ts +1 -0
  65. package/src/lib/transformers.ts +1 -1
  66. package/src/lib/version.ts +1 -1
  67. package/src/lib/websocket-factory-auto.ts +72 -0
  68. package/src/lib/websocket-factory.ts +19 -53
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../src/lib/transformers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../src/lib/transformers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.14.0";
1
+ export declare const version = "2.15.0-next.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const version = '2.14.0';
1
+ export const version = '2.15.0-next.1';
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,26 @@
1
+ import { WebSocketFactory } from './websocket-factory';
2
+ /**
3
+ * WebSocketFactoryAuto extends WebSocketFactory with automatic WebSocket detection.
4
+ *
5
+ * @deprecated This class will be removed in v3.0.0. The main export will require
6
+ * explicit WebSocket transport for Node.js < 22 environments.
7
+ */
8
+ export declare class WebSocketFactoryAuto extends WebSocketFactory {
9
+ private static hasShownDeprecationWarning;
10
+ /**
11
+ * Dynamic require for 'ws' package
12
+ * @private
13
+ */
14
+ private static dynamicRequire;
15
+ /**
16
+ * Show deprecation warning once per process
17
+ * @private
18
+ */
19
+ private static showDeprecationWarning;
20
+ /**
21
+ * Override getWebSocketConstructor to add dynamic 'ws' loading for Node.js
22
+ */
23
+ static getWebSocketConstructor(): typeof WebSocket;
24
+ }
25
+ export default WebSocketFactoryAuto;
26
+ //# sourceMappingURL=websocket-factory-auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-factory-auto.d.ts","sourceRoot":"","sources":["../../../src/lib/websocket-factory-auto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IAExD,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAQ;IAEjD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAW7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAWrC;;OAEG;WACW,uBAAuB,IAAI,OAAO,SAAS;CAsB1D;AAED,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,67 @@
1
+ // TODO(@mandarini): Remove this file in v3.0.0 - also update package.json exports
2
+ import { WebSocketFactory } from './websocket-factory';
3
+ /**
4
+ * WebSocketFactoryAuto extends WebSocketFactory with automatic WebSocket detection.
5
+ *
6
+ * @deprecated This class will be removed in v3.0.0. The main export will require
7
+ * explicit WebSocket transport for Node.js < 22 environments.
8
+ */
9
+ export class WebSocketFactoryAuto extends WebSocketFactory {
10
+ /**
11
+ * Dynamic require for 'ws' package
12
+ * @private
13
+ */
14
+ static dynamicRequire(moduleId) {
15
+ try {
16
+ if (typeof require !== 'undefined') {
17
+ return require(moduleId);
18
+ }
19
+ return null;
20
+ }
21
+ catch (_a) {
22
+ return null;
23
+ }
24
+ }
25
+ /**
26
+ * Show deprecation warning once per process
27
+ * @private
28
+ */
29
+ static showDeprecationWarning() {
30
+ if (!this.hasShownDeprecationWarning) {
31
+ this.hasShownDeprecationWarning = true;
32
+ console.warn('[DEPRECATED] @supabase/realtime-js/auto will be removed in v3.0.0. ' +
33
+ 'Use explicit transport instead: ' +
34
+ 'https://supabase.com/docs/guides/realtime/js-client#nodejs-support');
35
+ }
36
+ }
37
+ /**
38
+ * Override getWebSocketConstructor to add dynamic 'ws' loading for Node.js
39
+ */
40
+ static getWebSocketConstructor() {
41
+ var _a;
42
+ try {
43
+ // First try the base class (handles browser, Node.js 22+, edge cases, etc.)
44
+ return super.getWebSocketConstructor();
45
+ }
46
+ catch (error) {
47
+ // If base class fails and we're in Node.js, try dynamic 'ws' import
48
+ if (typeof process !== 'undefined' &&
49
+ process.versions &&
50
+ process.versions.node) {
51
+ try {
52
+ const ws = this.dynamicRequire('ws');
53
+ if (ws) {
54
+ return (_a = ws.WebSocket) !== null && _a !== void 0 ? _a : ws;
55
+ }
56
+ }
57
+ catch (_b) { }
58
+ }
59
+ // Re-throw original error if dynamic import fails
60
+ throw error;
61
+ }
62
+ }
63
+ }
64
+ // Static flag to track if warning has been shown
65
+ WebSocketFactoryAuto.hasShownDeprecationWarning = false;
66
+ export default WebSocketFactoryAuto;
67
+ //# sourceMappingURL=websocket-factory-auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-factory-auto.js","sourceRoot":"","sources":["../../../src/lib/websocket-factory-auto.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAIxD;;;OAGG;IACK,MAAM,CAAC,cAAc,CAAC,QAAgB;QAC5C,IAAI,CAAC;YACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC1B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,sBAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAA;YACtC,OAAO,CAAC,IAAI,CACV,qEAAqE;gBACnE,kCAAkC;gBAClC,oEAAoE,CACvE,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,uBAAuB;;QACnC,IAAI,CAAC;YACH,4EAA4E;YAC5E,OAAO,KAAK,CAAC,uBAAuB,EAAE,CAAA;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,IACE,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;oBACpC,IAAI,EAAE,EAAE,CAAC;wBACP,OAAO,MAAA,EAAE,CAAC,SAAS,mCAAI,EAAE,CAAA;oBAC3B,CAAC;gBACH,CAAC;gBAAC,WAAM,CAAC,CAAA,CAAC;YACZ,CAAC;YACD,kDAAkD;YAClD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;;AAzDD,iDAAiD;AAClC,+CAA0B,GAAG,KAAK,CAAA;AA2DnD,eAAe,oBAAoB,CAAA"}
@@ -26,12 +26,6 @@ export interface WebSocketEnvironment {
26
26
  workaround?: string;
27
27
  }
28
28
  export declare class WebSocketFactory {
29
- /**
30
- * Dynamic require that works in both CJS and ESM environments
31
- * Bulletproof against strict ESM environments where require might not be in scope
32
- * @private
33
- */
34
- private static dynamicRequire;
35
29
  private static detectEnvironment;
36
30
  static getWebSocketConstructor(): typeof WebSocket;
37
31
  static createWebSocket(url: string | URL, protocols?: string | string[]): WebSocketLike;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/websocket-factory.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAA;IAEnE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9C,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IACxD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IACpD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IAE/C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAGhE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,CAAA;IACpD,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,gBAAgB;IAC3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAqB7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAgGlB,uBAAuB,IAAI,OAAO,SAAS;WAa3C,eAAe,CAC3B,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAC5B,aAAa;WAKF,oBAAoB,IAAI,OAAO;CAQ9C;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"websocket-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/websocket-factory.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAA;IAEnE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9C,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IACxD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IACpD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAA;IAE/C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAGhE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,CAAA;IACpD,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAwFlB,uBAAuB,IAAI,OAAO,SAAS;WAa3C,eAAe,CAC3B,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAC5B,aAAa;WAKF,oBAAoB,IAAI,OAAO;CAQ9C;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,30 +1,6 @@
1
1
  export class WebSocketFactory {
2
- /**
3
- * Dynamic require that works in both CJS and ESM environments
4
- * Bulletproof against strict ESM environments where require might not be in scope
5
- * @private
6
- */
7
- static dynamicRequire(moduleId) {
8
- try {
9
- // Check if we're in a Node.js environment first
10
- if (typeof process !== 'undefined' &&
11
- process.versions &&
12
- process.versions.node) {
13
- // In Node.js, both CJS and ESM support require for dynamic imports
14
- // Wrap in try/catch to handle strict ESM environments
15
- if (typeof require !== 'undefined') {
16
- return require(moduleId);
17
- }
18
- }
19
- return null;
20
- }
21
- catch (_a) {
22
- // Catches any error from typeof require OR require() call in strict ESM
23
- return null;
24
- }
25
- }
26
2
  static detectEnvironment() {
27
- var _a, _b;
3
+ var _a;
28
4
  if (typeof WebSocket !== 'undefined') {
29
5
  return { type: 'native', constructor: WebSocket };
30
6
  }
@@ -58,40 +34,27 @@ export class WebSocketFactory {
58
34
  process.versions &&
59
35
  process.versions.node) {
60
36
  const nodeVersion = parseInt(process.versions.node.split('.')[0]);
37
+ // Node.js 22+ should have native WebSocket
61
38
  if (nodeVersion >= 22) {
62
- try {
63
- if (typeof globalThis.WebSocket !== 'undefined') {
64
- return { type: 'native', constructor: globalThis.WebSocket };
65
- }
66
- const undici = this.dynamicRequire('undici');
67
- if (undici && undici.WebSocket) {
68
- return { type: 'native', constructor: undici.WebSocket };
69
- }
70
- throw new Error('undici not available');
39
+ // Check if native WebSocket is available (should be in Node.js 22+)
40
+ if (typeof globalThis.WebSocket !== 'undefined') {
41
+ return { type: 'native', constructor: globalThis.WebSocket };
71
42
  }
72
- catch (err) {
73
- return {
74
- type: 'unsupported',
75
- error: `Node.js ${nodeVersion} detected but native WebSocket not found.`,
76
- workaround: 'Install the "ws" package or check your Node.js installation.',
77
- };
78
- }
79
- }
80
- try {
81
- // Use dynamic require to work in both CJS and ESM environments
82
- const ws = this.dynamicRequire('ws');
83
- if (ws) {
84
- return { type: 'ws', constructor: (_b = ws.WebSocket) !== null && _b !== void 0 ? _b : ws };
85
- }
86
- throw new Error('ws package not available');
87
- }
88
- catch (err) {
43
+ // If not available, user needs to provide it
89
44
  return {
90
45
  type: 'unsupported',
91
- error: `Node.js ${nodeVersion} detected without WebSocket support.`,
92
- workaround: 'Install the "ws" package: npm install ws',
46
+ error: `Node.js ${nodeVersion} detected but native WebSocket not found.`,
47
+ workaround: 'Provide a WebSocket implementation via the transport option.',
93
48
  };
94
49
  }
50
+ // Node.js < 22 doesn't have native WebSocket
51
+ return {
52
+ type: 'unsupported',
53
+ error: `Node.js ${nodeVersion} detected without native WebSocket support.`,
54
+ workaround: 'For Node.js < 22, install "ws" package and provide it via the transport option:\n' +
55
+ 'import ws from "ws"\n' +
56
+ 'new RealtimeClient(url, { transport: ws })',
57
+ };
95
58
  }
96
59
  return {
97
60
  type: 'unsupported',
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-factory.js","sourceRoot":"","sources":["../../../src/lib/websocket-factory.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,gBAAgB;IAC3B;;;;OAIG;IACK,MAAM,CAAC,cAAc,CAAC,QAAgB;QAC5C,IAAI,CAAC;YACH,gDAAgD;YAChD,IACE,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,CAAC;gBACD,mEAAmE;gBACnE,sDAAsD;gBACtD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;oBACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,WAAM,CAAC;YACP,wEAAwE;YACxE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,iBAAiB;;QAC9B,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;QACnD,CAAC;QAED,IACE,OAAO,UAAU,KAAK,WAAW;YACjC,OAAQ,UAAkB,CAAC,SAAS,KAAK,WAAW,EACpD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAG,UAAkB,CAAC,SAAS,EAAE,CAAA;QACvE,CAAC;QAED,IACE,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAQ,MAAc,CAAC,SAAS,KAAK,WAAW,EAChD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAG,MAAc,CAAC,SAAS,EAAE,CAAA;QACnE,CAAC;QAED,IACE,OAAO,UAAU,KAAK,WAAW;YACjC,OAAQ,UAAkB,CAAC,aAAa,KAAK,WAAW;YACxD,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAC3C,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,KAAK,EACH,yFAAyF;gBAC3F,UAAU,EACR,4GAA4G;aAC/G,CAAA;QACH,CAAC;QAED,IACE,CAAC,OAAO,UAAU,KAAK,WAAW,IAAK,UAAkB,CAAC,WAAW,CAAC;YACtE,CAAC,OAAO,SAAS,KAAK,WAAW;iBAC/B,MAAA,SAAS,CAAC,SAAS,0CAAE,QAAQ,CAAC,aAAa,CAAC,CAAA,CAAC,EAC/C,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,KAAK,EACH,mGAAmG;gBACrG,UAAU,EACR,wFAAwF;aAC3F,CAAA;QACH,CAAC;QAED,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,CAAC;YACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACjE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;wBAChD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,CAAA;oBAC9D,CAAC;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;oBAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;oBAC1D,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACzC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,WAAW,WAAW,2CAA2C;wBACxE,UAAU,EACR,8DAA8D;qBACjE,CAAA;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,+DAA+D;gBAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpC,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAA,EAAE,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAA;gBACxD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW,WAAW,sCAAsC;oBACnE,UAAU,EAAE,0CAA0C;iBACvD,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,uDAAuD;YAC9D,UAAU,EACR,yHAAyH;SAC5H,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACpC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC,WAAW,CAAA;QACxB,CAAC;QACD,IAAI,YAAY,GACd,GAAG,CAAC,KAAK,IAAI,8CAA8C,CAAA;QAC7D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,YAAY,IAAI,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAA;QAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;IAEM,MAAM,CAAC,eAAe,CAC3B,GAAiB,EACjB,SAA6B;QAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACzC,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC/B,CAAC;IAEM,MAAM,CAAC,oBAAoB;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACpC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;QACnD,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CACF;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"websocket-factory.js","sourceRoot":"","sources":["../../../src/lib/websocket-factory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/realtime-js",
3
- "version": "2.14.0",
3
+ "version": "2.15.0-next.1",
4
4
  "description": "Listen to realtime updates to your PostgreSQL database",
5
5
  "keywords": [
6
6
  "realtime",
@@ -20,6 +20,18 @@
20
20
  "main": "dist/main/index.js",
21
21
  "module": "dist/module/index.js",
22
22
  "types": "dist/module/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/module/index.d.ts",
26
+ "import": "./dist/module/index.js",
27
+ "require": "./dist/main/index.js"
28
+ },
29
+ "./auto": {
30
+ "types": "./dist/module/index.auto.d.ts",
31
+ "import": "./dist/module/index.auto.js",
32
+ "require": "./dist/main/index.auto.js"
33
+ }
34
+ },
23
35
  "repository": "https://github.com/supabase/realtime-js",
24
36
  "author": "Supabase",
25
37
  "license": "MIT",
@@ -32,6 +44,7 @@
32
44
  "test": "vitest run",
33
45
  "test:watch": "vitest",
34
46
  "coverage": "vitest run --coverage",
47
+ "coverage:text": "vitest run --coverage.enabled true --coverage.reporter=text",
35
48
  "docs": "typedoc src/index.ts --out docs/v2",
36
49
  "docs:json": "typedoc --json docs/v2/spec.json --excludeExternals src/index.ts",
37
50
  "check-exports": "attw --pack .",
@@ -45,7 +58,6 @@
45
58
  },
46
59
  "devDependencies": {
47
60
  "@arethetypeswrong/cli": "^0.16.4",
48
- "@types/sinon": "^17.0.4",
49
61
  "@vitest/coverage-v8": "^3.1.4",
50
62
  "eslint": "^9.27.0",
51
63
  "esm": "^3.2.25",
@@ -57,7 +69,6 @@
57
69
  "nyc": "^15.1.0",
58
70
  "prettier": "^2.8.8",
59
71
  "semantic-release-plugin-update-version-in-files": "^1.1.0",
60
- "sinon": "^18.0.1",
61
72
  "typedoc": "^0.27.9",
62
73
  "typescript": "^5.8.3",
63
74
  "vitest": "^3.1.4",
@@ -1,4 +1,8 @@
1
- import { CHANNEL_EVENTS, CHANNEL_STATES } from './lib/constants'
1
+ import {
2
+ CHANNEL_EVENTS,
3
+ CHANNEL_STATES,
4
+ MAX_PUSH_BUFFER_SIZE,
5
+ } from './lib/constants'
2
6
  import Push from './lib/push'
3
7
  import type RealtimeClient from './RealtimeClient'
4
8
  import Timer from './lib/timer'
@@ -213,8 +217,7 @@ export default class RealtimeChannel {
213
217
 
214
218
  this.presence = new RealtimePresence(this)
215
219
 
216
- this.broadcastEndpointURL =
217
- httpEndpointURL(this.socket.endPoint) + '/api/broadcast'
220
+ this.broadcastEndpointURL = httpEndpointURL(this.socket.endPoint)
218
221
  this.private = this.params.config.private || false
219
222
  }
220
223
 
@@ -571,8 +574,11 @@ export default class RealtimeChannel {
571
574
  */
572
575
  teardown() {
573
576
  this.pushBuffer.forEach((push: Push) => push.destroy())
574
- this.rejoinTimer && clearTimeout(this.rejoinTimer.timer)
577
+ this.pushBuffer = []
578
+ this.rejoinTimer.reset()
575
579
  this.joinPush.destroy()
580
+ this.state = CHANNEL_STATES.closed
581
+ this.bindings = {}
576
582
  }
577
583
 
578
584
  /** @internal */
@@ -608,13 +614,31 @@ export default class RealtimeChannel {
608
614
  if (this._canPush()) {
609
615
  pushEvent.send()
610
616
  } else {
611
- pushEvent.startTimeout()
612
- this.pushBuffer.push(pushEvent)
617
+ this._addToPushBuffer(pushEvent)
613
618
  }
614
619
 
615
620
  return pushEvent
616
621
  }
617
622
 
623
+ /** @internal */
624
+ _addToPushBuffer(pushEvent: Push) {
625
+ pushEvent.startTimeout()
626
+ this.pushBuffer.push(pushEvent)
627
+
628
+ // Enforce buffer size limit
629
+ if (this.pushBuffer.length > MAX_PUSH_BUFFER_SIZE) {
630
+ const removedPush = this.pushBuffer.shift()
631
+ if (removedPush) {
632
+ removedPush.destroy()
633
+ this.socket.log(
634
+ 'channel',
635
+ `discarded push due to buffer overflow: ${removedPush.event}`,
636
+ removedPush.payload
637
+ )
638
+ }
639
+ }
640
+ }
641
+
618
642
  /**
619
643
  * Overridable message hook
620
644
  *
@@ -757,12 +781,14 @@ export default class RealtimeChannel {
757
781
  _off(type: string, filter: { [key: string]: any }) {
758
782
  const typeLower = type.toLocaleLowerCase()
759
783
 
760
- this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {
761
- return !(
762
- bind.type?.toLocaleLowerCase() === typeLower &&
763
- RealtimeChannel.isEqual(bind.filter, filter)
764
- )
765
- })
784
+ if (this.bindings[typeLower]) {
785
+ this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {
786
+ return !(
787
+ bind.type?.toLocaleLowerCase() === typeLower &&
788
+ RealtimeChannel.isEqual(bind.filter, filter)
789
+ )
790
+ })
791
+ }
766
792
  return this
767
793
  }
768
794
 
@@ -197,16 +197,36 @@ export default class RealtimeClient {
197
197
  this._setAuthSafely('connect')
198
198
 
199
199
  // Establish WebSocket connection
200
- if (!this.transport) {
200
+ if (this.transport) {
201
+ // Use custom transport if provided
202
+ this.conn = new this.transport(this.endpointURL()) as WebSocketLike
203
+ } else {
204
+ // Try to use native WebSocket
201
205
  try {
202
206
  this.conn = WebSocketFactory.createWebSocket(this.endpointURL())
203
207
  } catch (error) {
204
208
  this._setConnectionState('disconnected')
205
- throw new Error(`WebSocket not available: ${(error as Error).message}`)
209
+ const errorMessage = (error as Error).message
210
+
211
+ // Provide helpful error message based on environment
212
+ if (errorMessage.includes('Node.js')) {
213
+ throw new Error(
214
+ `${errorMessage}\n\n` +
215
+ 'To use Realtime in Node.js, you need to provide a WebSocket implementation:\n\n' +
216
+ 'Option 1: Use Node.js 22+ which has native WebSocket support\n' +
217
+ 'Option 2: Install and provide the "ws" package:\n\n' +
218
+ ' npm install ws\n\n' +
219
+ ' import ws from "ws"\n' +
220
+ ' const client = new RealtimeClient(url, {\n' +
221
+ ' ...options,\n' +
222
+ ' transport: ws\n' +
223
+ ' })' +
224
+ 'Option 3: Use the auto export which handles WebSocket automatically:\n' +
225
+ ' import { RealtimeClient } from "@supabase/realtime-js/auto"'
226
+ )
227
+ }
228
+ throw new Error(`WebSocket not available: ${errorMessage}`)
206
229
  }
207
- } else {
208
- // Use custom transport if provided
209
- this.conn = new this.transport!(this.endpointURL()) as WebSocketLike
210
230
  }
211
231
  this._setupConnectionHandlers()
212
232
  }
@@ -0,0 +1,14 @@
1
+ // TODO(@mandarini): Remove this file in v3.0.0 - also update package.json exports
2
+ /**
3
+ * @deprecated This auto-detection export will be removed in v3.0.0
4
+ * Use the main export with explicit transport instead:
5
+ *
6
+ * import { RealtimeClient } from "@supabase/realtime-js"
7
+ * import ws from "ws"
8
+ * const client = new RealtimeClient(url, { transport: ws })
9
+ */
10
+
11
+ export * from './index'
12
+
13
+ // Override WebSocket factory with auto-detection version
14
+ export { default as WebSocketFactory } from './lib/websocket-factory-auto'
@@ -8,6 +8,7 @@ export const VERSION = version
8
8
  export const DEFAULT_TIMEOUT = 10000
9
9
 
10
10
  export const WS_CLOSE_NORMAL = 1000
11
+ export const MAX_PUSH_BUFFER_SIZE = 100
11
12
 
12
13
  export enum SOCKET_STATES {
13
14
  connecting = 0,
package/src/lib/timer.ts CHANGED
@@ -22,6 +22,7 @@ export default class Timer {
22
22
  reset() {
23
23
  this.tries = 0
24
24
  clearTimeout(this.timer)
25
+ this.timer = undefined
25
26
  }
26
27
 
27
28
  // Cancels any previous scheduleTimeout and schedules callback
@@ -250,5 +250,5 @@ export const httpEndpointURL = (socketUrl: string): string => {
250
250
  let url = socketUrl
251
251
  url = url.replace(/^ws/i, 'http')
252
252
  url = url.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i, '')
253
- return url.replace(/\/+$/, '')
253
+ return url.replace(/\/+$/, '') + '/api/broadcast'
254
254
  }
@@ -1 +1 @@
1
- export const version = '2.14.0'
1
+ export const version = '2.15.0-next.1'
@@ -0,0 +1,72 @@
1
+ // TODO(@mandarini): Remove this file in v3.0.0 - also update package.json exports
2
+
3
+ import { WebSocketFactory } from './websocket-factory'
4
+
5
+ /**
6
+ * WebSocketFactoryAuto extends WebSocketFactory with automatic WebSocket detection.
7
+ *
8
+ * @deprecated This class will be removed in v3.0.0. The main export will require
9
+ * explicit WebSocket transport for Node.js < 22 environments.
10
+ */
11
+ export class WebSocketFactoryAuto extends WebSocketFactory {
12
+ // Static flag to track if warning has been shown
13
+ private static hasShownDeprecationWarning = false
14
+
15
+ /**
16
+ * Dynamic require for 'ws' package
17
+ * @private
18
+ */
19
+ private static dynamicRequire(moduleId: string): any {
20
+ try {
21
+ if (typeof require !== 'undefined') {
22
+ return require(moduleId)
23
+ }
24
+ return null
25
+ } catch {
26
+ return null
27
+ }
28
+ }
29
+
30
+ /**
31
+ * Show deprecation warning once per process
32
+ * @private
33
+ */
34
+ private static showDeprecationWarning() {
35
+ if (!this.hasShownDeprecationWarning) {
36
+ this.hasShownDeprecationWarning = true
37
+ console.warn(
38
+ '[DEPRECATED] @supabase/realtime-js/auto will be removed in v3.0.0. ' +
39
+ 'Use explicit transport instead: ' +
40
+ 'https://supabase.com/docs/guides/realtime/js-client#nodejs-support'
41
+ )
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Override getWebSocketConstructor to add dynamic 'ws' loading for Node.js
47
+ */
48
+ public static getWebSocketConstructor(): typeof WebSocket {
49
+ try {
50
+ // First try the base class (handles browser, Node.js 22+, edge cases, etc.)
51
+ return super.getWebSocketConstructor()
52
+ } catch (error) {
53
+ // If base class fails and we're in Node.js, try dynamic 'ws' import
54
+ if (
55
+ typeof process !== 'undefined' &&
56
+ process.versions &&
57
+ process.versions.node
58
+ ) {
59
+ try {
60
+ const ws = this.dynamicRequire('ws')
61
+ if (ws) {
62
+ return ws.WebSocket ?? ws
63
+ }
64
+ } catch {}
65
+ }
66
+ // Re-throw original error if dynamic import fails
67
+ throw error
68
+ }
69
+ }
70
+ }
71
+
72
+ export default WebSocketFactoryAuto