sockress-client 0.2.14 → 0.2.15

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/README.md CHANGED
@@ -80,24 +80,6 @@ const response = await api.request({
80
80
  });
81
81
  ```
82
82
 
83
- #### Query parameters (works for both HTTP and Socket)
84
-
85
- You can pass query params either in the path or in the `query` object. Both work for WebSocket and HTTP. If both are used, the `query` object overrides URL params for conflicting keys:
86
-
87
- ```ts
88
- // URL style
89
- await api.get('/api/users?page=1&limit=10');
90
-
91
- // Object style
92
- await api.get('/api/users', { query: { page: 1, limit: 10 } });
93
-
94
- // Combined: object overrides URL for same keys
95
- await api.request({
96
- path: '/api/users?page=1&limit=10',
97
- query: { page: 2 } // page becomes 2, limit stays 10
98
- });
99
- ```
100
-
101
83
  ### `api.get(path, options?)`
102
84
 
103
85
  ```ts
@@ -187,30 +169,6 @@ console.log(response.body.avatarUrl);
187
169
 
188
170
  The client automatically serializes `FormData` for socket transport and uses native `FormData` for HTTP fallback.
189
171
 
190
- ### Upload Progress Tracking
191
-
192
- Track upload progress with the `onProgress` callback:
193
-
194
- ```ts
195
- const formData = new FormData();
196
- formData.append('video', largeVideoFile);
197
-
198
- const response = await api.post('/api/upload', {
199
- body: formData,
200
- onProgress: (progress) => {
201
- console.log(`Uploaded: ${progress.loaded} / ${progress.total} bytes`);
202
- console.log(`Progress: ${progress.percentage}%`);
203
- }
204
- });
205
- ```
206
-
207
- The `onProgress` callback receives an object with:
208
- - `loaded`: Number of bytes uploaded so far
209
- - `total`: Total bytes to upload (may be undefined if size is unknown)
210
- - `percentage`: Upload percentage (0-100, undefined if total is unknown)
211
-
212
- **Note:** Progress tracking works for both HTTP (using XMLHttpRequest) and WebSocket (during FormData serialization) transports.
213
-
214
172
  ---
215
173
 
216
174
  ## Events
@@ -239,33 +197,6 @@ api.on('reconnect', ({ attempt }) => {
239
197
  });
240
198
  ```
241
199
 
242
- ### Custom Realtime Events (emit / on)
243
-
244
- Send arbitrary realtime events over the WebSocket transport:
245
-
246
- ```ts
247
- // Client -> Server
248
- api.emit('message', 'hello');
249
- api.emit('any_payload', { ok: true, list: [1, 2, 3] });
250
- ```
251
-
252
- Receive events sent by the server:
253
-
254
- ```ts
255
- api.on('message', (payload) => {
256
- // Note: `message` is also used internally as a legacy channel,
257
- // so you'll usually receive an object like:
258
- // { type: 'event', event: 'message', data: <your data> }
259
- console.log('message event:', payload);
260
- });
261
-
262
- api.on('user_typing', (data) => {
263
- console.log('user_typing:', data);
264
- });
265
- ```
266
-
267
- Server can broadcast events using `app.emit('eventName', data)`.
268
-
269
200
  Remove listeners:
270
201
 
271
202
  ```ts
@@ -374,17 +305,6 @@ Request body. Can be:
374
305
  - `URLSearchParams`
375
306
  - String
376
307
 
377
- ### `onProgress` (optional)
378
- Callback function to track upload progress. Receives an object with `loaded`, `total`, and `percentage` properties:
379
-
380
- ```ts
381
- onProgress: (progress) => {
382
- console.log(`${progress.percentage}% uploaded`);
383
- }
384
- ```
385
-
386
- Works for both HTTP and WebSocket transports when uploading files via `FormData` or `Blob`.
387
-
388
308
  ### `timeout` (optional)
389
309
  Request timeout in milliseconds (overrides default)
390
310
 
package/dist/index.d.ts CHANGED
@@ -11,11 +11,8 @@ export interface SockressClientOptions {
11
11
  fetchImpl?: typeof fetch;
12
12
  wsFactory?: WebSocketFactory;
13
13
  credentials?: RequestCredentials;
14
- }
15
- export interface UploadProgress {
16
- loaded: number;
17
- total?: number;
18
- percentage?: number;
14
+ /** Explicit WebSocket Origin header (auto-detected from window.location.origin in browsers). */
15
+ origin?: string;
19
16
  }
20
17
  export interface SockressClientRequest {
21
18
  path: string;
@@ -26,7 +23,6 @@ export interface SockressClientRequest {
26
23
  timeout?: number;
27
24
  signal?: AbortSignal;
28
25
  disableHttpFallback?: boolean;
29
- onProgress?: (progress: UploadProgress) => void;
30
26
  }
31
27
  export interface SockressClientResponse<T = unknown> {
32
28
  status: number;
@@ -50,7 +46,6 @@ export type EventMap = {
50
46
  message: any;
51
47
  };
52
48
  type Listener<K extends keyof EventMap> = (payload: EventMap[K]) => void;
53
- type CustomListener = (data: any) => void;
54
49
  type WebSocketLike = {
55
50
  readyState: number;
56
51
  send(data: string): void;
@@ -64,7 +59,7 @@ type WebSocketLike = {
64
59
  on?(type: string, listener: (...args: unknown[]) => void): void;
65
60
  off?(type: string, listener: (...args: unknown[]) => void): void;
66
61
  };
67
- export type WebSocketFactory = (url: string) => WebSocketLike;
62
+ export type WebSocketFactory = (url: string, origin?: string) => WebSocketLike;
68
63
  interface NormalizedOptions {
69
64
  baseUrl: string;
70
65
  socketPath: string;
@@ -77,6 +72,7 @@ interface NormalizedOptions {
77
72
  fetchImpl: typeof fetch;
78
73
  wsFactory?: WebSocketFactory;
79
74
  credentials: RequestCredentials;
75
+ origin?: string;
80
76
  }
81
77
  export declare class SockressClient {
82
78
  private readonly options;
@@ -85,38 +81,24 @@ export declare class SockressClient {
85
81
  private pending;
86
82
  private queue;
87
83
  private listeners;
88
- private customListeners;
89
84
  private socketEnabled;
90
85
  private lifecycleTeardown;
91
86
  private closeRequested;
92
- /** Stores cookies from socket responses (HttpOnly cookies can't be read from document.cookie) */
93
- private cookieStore;
94
87
  constructor(options: NormalizedOptions);
95
88
  static create(options: SockressClientOptions): SockressClient;
96
89
  on<K extends keyof EventMap>(event: K, listener: Listener<K>): () => void;
97
- on(event: string, listener: CustomListener): () => void;
98
90
  off<K extends keyof EventMap>(event: K, listener: Listener<K>): void;
99
- off(event: string, listener: CustomListener): void;
100
- private emitInternal;
101
- private emitCustom;
102
- /**
103
- * Emit a custom realtime event to the server (socket transport only).
104
- * The payload can be anything: string, object, array, etc.
105
- */
106
- emit(event: string, data?: unknown): void;
91
+ emit<K extends keyof EventMap>(event: K, payload: EventMap[K]): void;
107
92
  connect(): Promise<void>;
108
93
  private attachSocketHandlers;
109
94
  private flushQueue;
110
95
  private scheduleReconnect;
111
96
  private handleSocketMessage;
112
97
  private applyCookies;
113
- private getCookieHeader;
114
98
  private clearPending;
115
99
  private rejectAllPending;
116
100
  private registerLifecycleHooks;
117
101
  private canUseSocket;
118
- isConnected(): boolean;
119
- disconnect(): void;
120
102
  request<T = unknown>(options: SockressClientRequest): Promise<SockressClientResponse<T>>;
121
103
  get<T = unknown>(path: string, options?: Omit<SockressClientRequest, 'path' | 'method'>): Promise<SockressClientResponse<T>>;
122
104
  post<T = unknown>(path: string, options?: Omit<SockressClientRequest, 'path' | 'method'>): Promise<SockressClientResponse<T>>;
@@ -125,8 +107,6 @@ export declare class SockressClient {
125
107
  delete<T = unknown>(path: string, options?: Omit<SockressClientRequest, 'path' | 'method'>): Promise<SockressClientResponse<T>>;
126
108
  private sendViaSocket;
127
109
  private sendViaHttp;
128
- private sendViaXHR;
129
- private sendViaHttpFallback;
130
110
  close(): void;
131
111
  }
132
112
  export declare function sockressClient(options: SockressClientOptions): SockressClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,13 +16,10 @@ class SockressClient {
16
16
  reconnect: new Set(),
17
17
  message: new Set()
18
18
  };
19
- this.customListeners = new Map();
20
19
  this.socketEnabled = true;
21
20
  this.lifecycleTeardown = [];
22
21
  this.closeRequested = false;
23
- /** Stores cookies from socket responses (HttpOnly cookies can't be read from document.cookie) */
24
- this.cookieStore = new Map();
25
- if (options.autoConnect) {
22
+ if (options.autoConnect && isBrowser()) {
26
23
  this.connect().catch(() => {
27
24
  // Ignore initial connection failures, HTTP fallback will handle requests.
28
25
  });
@@ -33,69 +30,22 @@ class SockressClient {
33
30
  return new SockressClient(normalizeOptions(options));
34
31
  }
35
32
  on(event, listener) {
36
- var _a;
37
- if (Object.prototype.hasOwnProperty.call(this.listeners, event)) {
38
- this.listeners[event].add(listener);
39
- return () => this.off(event, listener);
40
- }
41
- const key = String(event);
42
- const set = (_a = this.customListeners.get(key)) !== null && _a !== void 0 ? _a : new Set();
43
- set.add(listener);
44
- this.customListeners.set(key, set);
45
- return () => this.off(key, listener);
33
+ this.listeners[event].add(listener);
34
+ return () => this.off(event, listener);
46
35
  }
47
36
  off(event, listener) {
48
- if (Object.prototype.hasOwnProperty.call(this.listeners, event)) {
49
- this.listeners[event].delete(listener);
50
- return;
51
- }
52
- const key = String(event);
53
- const set = this.customListeners.get(key);
54
- if (!set)
55
- return;
56
- set.delete(listener);
57
- if (set.size === 0) {
58
- this.customListeners.delete(key);
59
- }
37
+ this.listeners[event].delete(listener);
60
38
  }
61
- emitInternal(event, payload) {
39
+ emit(event, payload) {
62
40
  for (const listener of this.listeners[event]) {
63
41
  listener(payload);
64
42
  }
65
43
  }
66
- emitCustom(event, data) {
67
- const set = this.customListeners.get(event);
68
- if (!set || !set.size)
69
- return;
70
- for (const listener of set) {
71
- listener(data);
72
- }
73
- }
74
- /**
75
- * Emit a custom realtime event to the server (socket transport only).
76
- * The payload can be anything: string, object, array, etc.
77
- */
78
- emit(event, data) {
79
- const name = String(event);
80
- if (!name) {
81
- throw new Error('emit(event, data) requires a non-empty event name');
82
- }
83
- if (!this.options.wsFactory) {
84
- this.socketEnabled = false;
85
- throw new Error('Socket transport is unavailable');
86
- }
87
- const payload = { type: 'event', event: name, data };
88
- if (this.canUseSocket()) {
89
- this.ws.send(JSON.stringify(payload));
44
+ async connect() {
45
+ var _a;
46
+ if (!isBrowser()) {
90
47
  return;
91
48
  }
92
- // Queue until socket connects
93
- this.queue.push(payload);
94
- if (!this.closeRequested) {
95
- this.connect().catch(() => undefined);
96
- }
97
- }
98
- async connect() {
99
49
  if (!this.options.wsFactory) {
100
50
  this.socketEnabled = false;
101
51
  return;
@@ -103,51 +53,19 @@ class SockressClient {
103
53
  if (this.ws && this.ws.readyState === 1) {
104
54
  return;
105
55
  }
106
- // Clean up existing connection if any (but not if connecting)
107
- if (this.ws && this.ws.readyState !== 0 && this.ws.readyState !== 1) {
108
- try {
109
- this.ws.close();
110
- }
111
- catch {
112
- // Ignore close errors
113
- }
114
- this.ws = undefined;
115
- }
116
- // If already connecting, wait for it
117
- if (this.ws) {
118
- const currentState = this.ws.readyState;
119
- if (currentState === 0) {
120
- // Wait for connection to establish
121
- let attempts = 0;
122
- while (this.ws && this.ws.readyState === 0 && attempts < 30) {
123
- await new Promise(resolve => setTimeout(resolve, 100));
124
- attempts++;
125
- }
126
- if (this.ws && this.ws.readyState === 1) {
127
- return;
128
- }
129
- }
130
- else if (currentState === 1) {
131
- return;
132
- }
133
- }
134
- const socketUrl = buildSocketUrl(this.options.baseUrl, this.options.socketPath);
135
- try {
136
- this.ws = this.options.wsFactory(socketUrl);
137
- this.attachSocketHandlers(this.ws);
138
- // Don't set socketEnabled to false here - wait for 'open' event
139
- }
140
- catch (error) {
56
+ const origin = (_a = this.options.origin) !== null && _a !== void 0 ? _a : getBrowserOrigin();
57
+ if (!origin) {
141
58
  this.socketEnabled = false;
142
- this.emitInternal('error', error);
143
- throw error;
59
+ return;
144
60
  }
61
+ const socketUrl = buildSocketUrl(this.options.baseUrl, this.options.socketPath);
62
+ this.ws = this.options.wsFactory(socketUrl, origin);
63
+ this.attachSocketHandlers(this.ws);
145
64
  }
146
65
  attachSocketHandlers(socket) {
147
66
  const handleOpen = () => {
148
67
  this.reconnectAttempts = 0;
149
- this.socketEnabled = true;
150
- this.emitInternal('open', undefined);
68
+ this.emit('open', undefined);
151
69
  this.flushQueue();
152
70
  };
153
71
  const handleMessage = (event) => {
@@ -157,18 +75,13 @@ class SockressClient {
157
75
  }
158
76
  };
159
77
  const handleError = (event) => {
160
- this.emitInternal('error', event);
161
- // Don't disable socket on error - let it try to reconnect
162
- // Only reject pending requests, don't disable socket completely
78
+ this.emit('error', event);
163
79
  this.rejectAllPending(new Error('Socket error'));
164
80
  };
165
81
  const handleClose = (details) => {
166
- this.emitInternal('close', { code: details === null || details === void 0 ? void 0 : details.code, reason: details === null || details === void 0 ? void 0 : details.reason });
167
- // Only reject pending if we're not reconnecting
168
- if (!this.closeRequested) {
169
- this.rejectAllPending(new Error('Socket closed'));
170
- this.scheduleReconnect();
171
- }
82
+ this.emit('close', { code: details === null || details === void 0 ? void 0 : details.code, reason: details === null || details === void 0 ? void 0 : details.reason });
83
+ this.rejectAllPending(new Error('Socket closed'));
84
+ this.scheduleReconnect();
172
85
  };
173
86
  if (typeof socket.addEventListener === 'function') {
174
87
  socket.addEventListener('open', () => handleOpen());
@@ -206,13 +119,13 @@ class SockressClient {
206
119
  }
207
120
  }
208
121
  scheduleReconnect() {
209
- if (!this.socketEnabled || !this.options.wsFactory) {
122
+ if (!isBrowser() || !this.socketEnabled || !this.options.wsFactory) {
210
123
  return;
211
124
  }
212
125
  this.reconnectAttempts += 1;
213
126
  const delay = Math.min(this.options.reconnectInterval * this.reconnectAttempts, this.options.maxReconnectInterval);
214
127
  setTimeout(() => {
215
- this.emitInternal('reconnect', { attempt: this.reconnectAttempts });
128
+ this.emit('reconnect', { attempt: this.reconnectAttempts });
216
129
  this.connect().catch(() => {
217
130
  // keep trying silently
218
131
  });
@@ -221,12 +134,10 @@ class SockressClient {
221
134
  handleSocketMessage(raw) {
222
135
  try {
223
136
  const payload = JSON.parse(raw);
224
- // Handle broadcast messages (no id)
225
137
  if (payload.type && !payload.id && ['message', 'join', 'leave', 'room_created', 'room_deleted', 'error'].includes(payload.type)) {
226
- this.emitInternal('message', payload);
138
+ this.emit('message', payload);
227
139
  return;
228
140
  }
229
- // Handle error responses
230
141
  if (payload.type === 'error') {
231
142
  const pending = payload.id ? this.pending.get(payload.id) : null;
232
143
  const error = new Error(payload.message);
@@ -235,91 +146,29 @@ class SockressClient {
235
146
  pending.reject(error);
236
147
  }
237
148
  else {
238
- this.emitInternal('error', error);
149
+ this.emit('error', error);
239
150
  }
240
151
  return;
241
152
  }
242
- // Handle realtime event messages (no request/response)
243
- if (payload.type === 'event' && typeof payload.event === 'string') {
244
- // Fire custom listeners by name
245
- this.emitCustom(payload.event, payload.data);
246
- // Also expose via legacy 'message' channel for backwards compatibility
247
- this.emitInternal('message', { type: 'event', event: payload.event, data: payload.data });
248
- return;
249
- }
250
- // Handle response messages (must have type === 'response' and id)
251
- if (payload.type === 'response' && payload.id) {
252
- const pending = this.pending.get(payload.id);
253
- if (!pending) {
254
- return;
255
- }
256
- this.clearPending(payload.id);
257
- const response = createClientResponse(payload);
258
- // Apply cookies from server response
259
- if (payload.cookies && Array.isArray(payload.cookies)) {
260
- this.applyCookies(payload.cookies);
261
- }
262
- pending.resolve(response);
153
+ const pending = this.pending.get(payload.id);
154
+ if (!pending) {
263
155
  return;
264
156
  }
157
+ this.clearPending(payload.id);
158
+ const response = createClientResponse(payload);
159
+ this.applyCookies(payload.cookies);
160
+ pending.resolve(response);
265
161
  }
266
162
  catch (error) {
267
- this.emitInternal('error', error);
163
+ this.emit('error', error);
268
164
  }
269
165
  }
270
166
  applyCookies(cookies) {
271
- var _a;
272
- if (!cookies)
167
+ if (!cookies || typeof document === 'undefined')
273
168
  return;
274
- for (const setCookie of cookies) {
275
- const [nameValue, ...attrs] = setCookie.split(';').map((s) => s.trim());
276
- const eqIdx = nameValue.indexOf('=');
277
- if (eqIdx === -1)
278
- continue;
279
- const name = decodeURIComponent(nameValue.slice(0, eqIdx).trim());
280
- const value = nameValue.slice(eqIdx + 1).trim();
281
- let maxAge = null;
282
- for (const attr of attrs) {
283
- if (attr.toLowerCase().startsWith('max-age=')) {
284
- maxAge = parseInt((_a = attr.split('=')[1]) !== null && _a !== void 0 ? _a : '', 10);
285
- break;
286
- }
287
- }
288
- if (maxAge !== null && maxAge <= 0) {
289
- this.cookieStore.delete(name);
290
- }
291
- else {
292
- try {
293
- this.cookieStore.set(name, decodeURIComponent(value));
294
- }
295
- catch {
296
- this.cookieStore.set(name, value);
297
- }
298
- }
299
- if (typeof document !== 'undefined' && !setCookie.toLowerCase().includes('httponly')) {
300
- document.cookie = setCookie;
301
- }
302
- }
303
- }
304
- getCookieHeader() {
305
- const map = new Map();
306
- for (const [name, value] of this.cookieStore) {
307
- map.set(name, value);
308
- }
309
- if (typeof document !== 'undefined' && document.cookie) {
310
- for (const pair of document.cookie.split(';')) {
311
- const eqIdx = pair.indexOf('=');
312
- if (eqIdx === -1)
313
- continue;
314
- const name = pair.slice(0, eqIdx).trim();
315
- const value = pair.slice(eqIdx + 1).trim();
316
- if (!map.has(name))
317
- map.set(name, decodeURIComponent(value));
318
- }
169
+ for (const cookie of cookies) {
170
+ document.cookie = cookie;
319
171
  }
320
- return Array.from(map.entries())
321
- .map(([name, value]) => `${encodeURIComponent(name)}=${encodeURIComponent(value)}`)
322
- .join('; ');
323
172
  }
324
173
  clearPending(id) {
325
174
  const pending = this.pending.get(id);
@@ -354,65 +203,26 @@ class SockressClient {
354
203
  }
355
204
  }
356
205
  canUseSocket() {
357
- if (!this.options.wsFactory || !this.socketEnabled) {
358
- return false;
359
- }
360
- if (!this.ws) {
361
- return false;
362
- }
363
- // Check readyState: 0 = CONNECTING, 1 = OPEN, 2 = CLOSING, 3 = CLOSED
364
- return this.ws.readyState === 1;
365
- }
366
- isConnected() {
367
- return this.canUseSocket();
368
- }
369
- disconnect() {
370
- this.close();
206
+ return Boolean(this.options.wsFactory && this.socketEnabled && this.ws && this.ws.readyState === 1);
371
207
  }
372
208
  async request(options) {
373
209
  var _a, _b;
374
210
  const method = (options.method || 'GET').toUpperCase();
375
- const { pathname, query: urlQuery } = parseQueryFromPath(options.path);
376
- const path = normalizePath(pathname);
211
+ const path = normalizePath(options.path);
377
212
  const headers = { ...this.options.headers, ...((_a = options.headers) !== null && _a !== void 0 ? _a : {}) };
378
- const objectQuery = options.query ? normalizeQuery(options.query) : {};
379
- const mergedQuery = { ...urlQuery, ...objectQuery };
380
- const query = Object.keys(mergedQuery).length > 0 ? mergedQuery : undefined;
213
+ const query = options.query ? normalizeQuery(options.query) : undefined;
381
214
  const timeout = (_b = options.timeout) !== null && _b !== void 0 ? _b : this.options.timeout;
382
- const onProgress = options.onProgress;
383
- if (this.options.preferSocket && this.options.wsFactory) {
384
- // If socket is enabled or we have a factory, try socket first
385
- if (this.socketEnabled || this.options.wsFactory !== undefined) {
386
- try {
387
- return await this.sendViaSocket({ method, path, headers, query, body: options.body, timeout, onProgress });
388
- }
389
- catch (error) {
390
- if (options.disableHttpFallback) {
391
- throw error;
392
- }
393
- // If socket fails and we're still trying to connect, wait a bit more
394
- if (!this.canUseSocket() && this.options.wsFactory !== undefined && !this.closeRequested) {
395
- // Try connecting once more
396
- try {
397
- await this.connect();
398
- // Wait a bit longer for React Native
399
- let attempts = 0;
400
- while (!this.canUseSocket() && attempts < 20) {
401
- await new Promise(resolve => setTimeout(resolve, 150));
402
- attempts++;
403
- }
404
- if (this.canUseSocket()) {
405
- return await this.sendViaSocket({ method, path, headers, query, body: options.body, timeout, onProgress });
406
- }
407
- }
408
- catch (retryError) {
409
- // Fall through to HTTP
410
- }
411
- }
215
+ if (this.options.preferSocket && this.socketEnabled) {
216
+ try {
217
+ return await this.sendViaSocket({ method, path, headers, query, body: options.body, timeout });
218
+ }
219
+ catch (error) {
220
+ if (options.disableHttpFallback) {
221
+ throw error;
412
222
  }
413
223
  }
414
224
  }
415
- return this.sendViaHttp({ method, path, headers, query, body: options.body, signal: options.signal, onProgress });
225
+ return this.sendViaHttp({ method, path, headers, query, body: options.body, signal: options.signal });
416
226
  }
417
227
  get(path, options) {
418
228
  return this.request({ ...(options !== null && options !== void 0 ? options : {}), path, method: 'GET' });
@@ -430,64 +240,22 @@ class SockressClient {
430
240
  return this.request({ ...(options !== null && options !== void 0 ? options : {}), path, method: 'DELETE' });
431
241
  }
432
242
  async sendViaSocket(input) {
243
+ if (!isBrowser()) {
244
+ throw new Error('Socket transport is unavailable outside the browser');
245
+ }
433
246
  if (!this.options.wsFactory) {
434
247
  this.socketEnabled = false;
435
248
  throw new Error('Socket transport is unavailable');
436
249
  }
437
- // Try to connect if not connected
438
- if (!this.canUseSocket()) {
439
- try {
440
- await this.connect();
441
- // Wait longer for connection to establish (especially for React Native)
442
- // React Native WebSocket can take longer to connect
443
- let attempts = 0;
444
- const maxAttempts = 30; // 3 seconds total wait time
445
- while (!this.canUseSocket() && attempts < maxAttempts) {
446
- await new Promise(resolve => setTimeout(resolve, 100));
447
- attempts++;
448
- // Check if socket is connecting (readyState === 0)
449
- if (this.ws && this.ws.readyState === 0) {
450
- // Still connecting, continue waiting
451
- continue;
452
- }
453
- // If socket closed or errored, try reconnecting once
454
- if (this.ws && (this.ws.readyState === 2 || this.ws.readyState === 3)) {
455
- if (attempts < 5) {
456
- // Try reconnecting once more
457
- try {
458
- await this.connect();
459
- attempts = 0; // Reset attempts
460
- }
461
- catch {
462
- // Ignore reconnect error, will throw below
463
- }
464
- }
465
- }
466
- }
467
- }
468
- catch (error) {
469
- throw new Error(`Failed to connect socket: ${error instanceof Error ? error.message : String(error)}`);
470
- }
471
- }
472
- if (!this.canUseSocket()) {
473
- throw new Error('Socket is not connected after connection attempt');
474
- }
475
- const headers = { ...input.headers };
476
- if (this.options.credentials === 'include') {
477
- const cookieHeader = this.getCookieHeader();
478
- if (cookieHeader) {
479
- const existing = headers['Cookie'] || headers['cookie'];
480
- headers['Cookie'] = existing ? `${existing}; ${cookieHeader}` : cookieHeader;
481
- }
482
- }
250
+ await this.connect();
483
251
  const id = (0, nanoid_1.nanoid)();
484
- const serializedBody = await serializeBodyForSocket(input.body, input.onProgress);
252
+ const serializedBody = await serializeBodyForSocket(input.body);
485
253
  const payload = {
486
254
  type: 'request',
487
255
  id,
488
256
  method: input.method,
489
257
  path: input.path,
490
- headers,
258
+ headers: input.headers,
491
259
  query: input.query,
492
260
  body: serializedBody
493
261
  };
@@ -500,13 +268,7 @@ class SockressClient {
500
268
  });
501
269
  const serialized = JSON.stringify(payload);
502
270
  if (this.canUseSocket()) {
503
- try {
504
- this.ws.send(serialized);
505
- }
506
- catch (error) {
507
- this.clearPending(id);
508
- throw new Error(`Failed to send via socket: ${error instanceof Error ? error.message : String(error)}`);
509
- }
271
+ this.ws.send(serialized);
510
272
  }
511
273
  else {
512
274
  this.queue.push(payload);
@@ -516,11 +278,6 @@ class SockressClient {
516
278
  async sendViaHttp(input) {
517
279
  var _a;
518
280
  const url = buildHttpUrl(this.options.baseUrl, input.path, input.query);
519
- // Use XMLHttpRequest for upload progress tracking if onProgress is provided
520
- if (input.onProgress && (isFormData(input.body) || isBlob(input.body))) {
521
- return this.sendViaXHR(url, input);
522
- }
523
- // Fallback to fetch for non-file uploads or when progress tracking not needed
524
281
  const headers = new Headers(input.headers);
525
282
  const init = {
526
283
  method: input.method,
@@ -543,165 +300,6 @@ class SockressClient {
543
300
  }
544
301
  }
545
302
  const response = await this.options.fetchImpl(url, init);
546
- const setCookies = typeof response.headers.getSetCookie === 'function' ? response.headers.getSetCookie() : [];
547
- if ((setCookies === null || setCookies === void 0 ? void 0 : setCookies.length) && this.options.credentials === 'include') {
548
- this.applyCookies(setCookies);
549
- }
550
- const text = await response.text();
551
- let parsed = text;
552
- const contentType = (_a = response.headers.get('content-type')) !== null && _a !== void 0 ? _a : '';
553
- if (contentType.includes('application/json') && text) {
554
- try {
555
- parsed = JSON.parse(text);
556
- }
557
- catch {
558
- parsed = text;
559
- }
560
- }
561
- const headersObj = {};
562
- response.headers.forEach((value, key) => {
563
- headersObj[key.toLowerCase()] = value;
564
- });
565
- return {
566
- status: response.status,
567
- ok: response.ok,
568
- headers: headersObj,
569
- body: parsed,
570
- json: () => parsed,
571
- text: () => text,
572
- raw: () => parsed
573
- };
574
- }
575
- sendViaXHR(url, input) {
576
- return new Promise((resolve, reject) => {
577
- if (typeof XMLHttpRequest === 'undefined') {
578
- // Fallback to fetch if XHR is not available
579
- return this.sendViaHttpFallback(url, input).then(resolve).catch(reject);
580
- }
581
- const xhr = new XMLHttpRequest();
582
- // Handle abort signal
583
- if (input.signal) {
584
- const abortHandler = () => {
585
- xhr.abort();
586
- reject(new Error('Request aborted'));
587
- };
588
- if (input.signal.aborted) {
589
- abortHandler();
590
- return;
591
- }
592
- input.signal.addEventListener('abort', abortHandler);
593
- }
594
- // Set up upload progress tracking
595
- if (input.onProgress && xhr.upload) {
596
- xhr.upload.addEventListener('progress', (event) => {
597
- if (event.lengthComputable) {
598
- input.onProgress({
599
- loaded: event.loaded,
600
- total: event.total,
601
- percentage: event.total > 0 ? Math.round((event.loaded / event.total) * 100) : undefined
602
- });
603
- }
604
- else {
605
- input.onProgress({
606
- loaded: event.loaded
607
- });
608
- }
609
- });
610
- }
611
- xhr.addEventListener('load', () => {
612
- var _a;
613
- const text = xhr.responseText;
614
- let parsed = text;
615
- const contentType = (_a = xhr.getResponseHeader('content-type')) !== null && _a !== void 0 ? _a : '';
616
- if (contentType.includes('application/json') && text) {
617
- try {
618
- parsed = JSON.parse(text);
619
- }
620
- catch {
621
- parsed = text;
622
- }
623
- }
624
- const headersObj = {};
625
- const allHeaders = xhr.getAllResponseHeaders();
626
- if (allHeaders) {
627
- allHeaders.split('\r\n').forEach((line) => {
628
- const colonIndex = line.indexOf(':');
629
- if (colonIndex > 0) {
630
- const key = line.substring(0, colonIndex).trim().toLowerCase();
631
- const value = line.substring(colonIndex + 1).trim();
632
- if (key && value) {
633
- headersObj[key] = value;
634
- }
635
- }
636
- });
637
- }
638
- resolve({
639
- status: xhr.status,
640
- ok: xhr.status >= 200 && xhr.status < 300,
641
- headers: headersObj,
642
- body: parsed,
643
- json: () => parsed,
644
- text: () => text,
645
- raw: () => parsed
646
- });
647
- });
648
- xhr.addEventListener('error', () => {
649
- reject(new Error('Network error'));
650
- });
651
- xhr.addEventListener('abort', () => {
652
- reject(new Error('Request aborted'));
653
- });
654
- xhr.open(input.method, url, true);
655
- // Set headers (skip Content-Type for FormData - browser sets it automatically with boundary)
656
- const isFormDataBody = isFormData(input.body);
657
- Object.entries(input.headers).forEach(([key, value]) => {
658
- // Don't set Content-Type header for FormData - browser will set it with boundary
659
- if (isFormDataBody && key.toLowerCase() === 'content-type') {
660
- return;
661
- }
662
- xhr.setRequestHeader(key, value);
663
- });
664
- // Set credentials
665
- if (this.options.credentials === 'include') {
666
- xhr.withCredentials = true;
667
- }
668
- // Send request
669
- if (input.body !== undefined && input.method !== 'GET' && input.method !== 'HEAD') {
670
- xhr.send(input.body);
671
- }
672
- else {
673
- xhr.send();
674
- }
675
- });
676
- }
677
- async sendViaHttpFallback(url, input) {
678
- var _a;
679
- const headers = new Headers(input.headers);
680
- const init = {
681
- method: input.method,
682
- headers,
683
- credentials: this.options.credentials,
684
- signal: input.signal
685
- };
686
- if (input.body !== undefined && input.method !== 'GET' && input.method !== 'HEAD') {
687
- if (typeof input.body === 'string' ||
688
- input.body instanceof URLSearchParams ||
689
- isBlob(input.body) ||
690
- isFormData(input.body)) {
691
- init.body = input.body;
692
- }
693
- else {
694
- init.body = JSON.stringify(input.body);
695
- if (!headers.has('content-type')) {
696
- headers.set('content-type', 'application/json');
697
- }
698
- }
699
- }
700
- const response = await this.options.fetchImpl(url, init);
701
- const setCookies = typeof response.headers.getSetCookie === 'function' ? response.headers.getSetCookie() : [];
702
- if ((setCookies === null || setCookies === void 0 ? void 0 : setCookies.length) && this.options.credentials === 'include') {
703
- this.applyCookies(setCookies);
704
- }
705
303
  const text = await response.text();
706
304
  let parsed = text;
707
305
  const contentType = (_a = response.headers.get('content-type')) !== null && _a !== void 0 ? _a : '';
@@ -747,32 +345,8 @@ function sockressClient(options) {
747
345
  return SockressClient.create(options);
748
346
  }
749
347
  exports.createSockressClient = sockressClient;
750
- function getWebSocketConstructor() {
751
- // Check multiple possible locations for WebSocket
752
- if (typeof WebSocket !== 'undefined') {
753
- return WebSocket;
754
- }
755
- // React Native / Expo
756
- if (typeof global !== 'undefined' && global.WebSocket) {
757
- return global.WebSocket;
758
- }
759
- // Node.js environment
760
- if (typeof globalThis !== 'undefined' && globalThis.WebSocket) {
761
- return globalThis.WebSocket;
762
- }
763
- // Try to require for Node.js environments
764
- try {
765
- if (typeof require !== 'undefined') {
766
- return require('ws');
767
- }
768
- }
769
- catch {
770
- // Ignore require errors
771
- }
772
- return undefined;
773
- }
774
348
  function normalizeOptions(options) {
775
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
349
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
776
350
  if (!options.baseUrl) {
777
351
  throw new Error('baseUrl is required');
778
352
  }
@@ -786,38 +360,55 @@ function normalizeOptions(options) {
786
360
  return originalFetch.apply(globalThis, args);
787
361
  });
788
362
  }
789
- const WebSocketConstructor = getWebSocketConstructor();
790
- const wsFactory = (_b = options.wsFactory) !== null && _b !== void 0 ? _b : (WebSocketConstructor ? (url) => new WebSocketConstructor(url) : undefined);
363
+ const browserOrigin = getBrowserOrigin();
364
+ const origin = (_b = options.origin) !== null && _b !== void 0 ? _b : browserOrigin;
365
+ const wsFactory = isBrowser()
366
+ ? ((_c = options.wsFactory) !== null && _c !== void 0 ? _c : createBrowserWsFactory())
367
+ : undefined;
791
368
  return {
792
369
  baseUrl: options.baseUrl.replace(/\/+$/, ''),
793
- socketPath: (_c = options.socketPath) !== null && _c !== void 0 ? _c : '/sockress',
794
- headers: { ...((_d = options.headers) !== null && _d !== void 0 ? _d : {}) },
795
- timeout: (_e = options.timeout) !== null && _e !== void 0 ? _e : 15000,
796
- reconnectInterval: (_f = options.reconnectInterval) !== null && _f !== void 0 ? _f : 1000,
797
- maxReconnectInterval: (_g = options.maxReconnectInterval) !== null && _g !== void 0 ? _g : 15000,
798
- autoConnect: (_h = options.autoConnect) !== null && _h !== void 0 ? _h : true,
799
- preferSocket: (_j = options.preferSocket) !== null && _j !== void 0 ? _j : true,
370
+ socketPath: (_d = options.socketPath) !== null && _d !== void 0 ? _d : '/sockress',
371
+ headers: { ...((_e = options.headers) !== null && _e !== void 0 ? _e : {}) },
372
+ timeout: (_f = options.timeout) !== null && _f !== void 0 ? _f : 15000,
373
+ reconnectInterval: (_g = options.reconnectInterval) !== null && _g !== void 0 ? _g : 1000,
374
+ maxReconnectInterval: (_h = options.maxReconnectInterval) !== null && _h !== void 0 ? _h : 15000,
375
+ autoConnect: isBrowser() ? ((_j = options.autoConnect) !== null && _j !== void 0 ? _j : true) : false,
376
+ preferSocket: isBrowser() ? ((_k = options.preferSocket) !== null && _k !== void 0 ? _k : true) : false,
800
377
  fetchImpl,
801
378
  wsFactory,
802
- credentials: (_k = options.credentials) !== null && _k !== void 0 ? _k : 'include'
379
+ credentials: (_l = options.credentials) !== null && _l !== void 0 ? _l : 'include',
380
+ origin
803
381
  };
804
382
  }
805
- async function serializeBodyForSocket(body, onProgress) {
383
+ function isBrowser() {
384
+ return typeof window !== 'undefined' && typeof window.document !== 'undefined';
385
+ }
386
+ function getBrowserOrigin() {
387
+ var _a;
388
+ if (!isBrowser()) {
389
+ return undefined;
390
+ }
391
+ return ((_a = window.location) === null || _a === void 0 ? void 0 : _a.origin) || undefined;
392
+ }
393
+ function createBrowserWsFactory() {
394
+ if (typeof WebSocket === 'undefined') {
395
+ return undefined;
396
+ }
397
+ return (url) => new WebSocket(url);
398
+ }
399
+ async function serializeBodyForSocket(body) {
806
400
  if (isFormData(body)) {
807
401
  return {
808
- __formData: await serializeFormData(body, onProgress)
402
+ __formData: await serializeFormData(body)
809
403
  };
810
404
  }
811
405
  return body;
812
406
  }
813
- async function serializeFormData(formData, onProgress) {
407
+ async function serializeFormData(formData) {
814
408
  var _a, _b;
815
409
  const fields = {};
816
410
  const files = {};
817
411
  const entries = collectFormDataEntries(formData);
818
- // Calculate total size for progress tracking
819
- let totalSize = 0;
820
- const fileEntries = [];
821
412
  for (const [key, value] of entries) {
822
413
  if (typeof value === 'string') {
823
414
  if (fields[key]) {
@@ -829,23 +420,7 @@ async function serializeFormData(formData, onProgress) {
829
420
  }
830
421
  continue;
831
422
  }
832
- const size = value.size || 0;
833
- totalSize += size;
834
- fileEntries.push({ key, value, size });
835
- }
836
- // Serialize files with progress tracking
837
- let loadedSize = 0;
838
- for (const { key, value, size } of fileEntries) {
839
423
  const fileBuffer = await value.arrayBuffer();
840
- // Report progress after reading file
841
- loadedSize += size;
842
- if (onProgress) {
843
- onProgress({
844
- loaded: loadedSize,
845
- total: totalSize,
846
- percentage: totalSize > 0 ? Math.round((loadedSize / totalSize) * 100) : undefined
847
- });
848
- }
849
424
  const encoded = arrayBufferToBase64(fileBuffer);
850
425
  if (!files[key]) {
851
426
  files[key] = [];
@@ -859,14 +434,6 @@ async function serializeFormData(formData, onProgress) {
859
434
  data: encoded
860
435
  });
861
436
  }
862
- // Report 100% completion if we had files and progress callback
863
- if (onProgress && fileEntries.length > 0 && totalSize > 0) {
864
- onProgress({
865
- loaded: totalSize,
866
- total: totalSize,
867
- percentage: 100
868
- });
869
- }
870
437
  return { fields, files };
871
438
  }
872
439
  function buildSocketUrl(baseUrl, socketPath) {
@@ -894,21 +461,6 @@ function normalizePath(path) {
894
461
  }
895
462
  return path;
896
463
  }
897
- function parseQueryFromPath(path) {
898
- const qIdx = path.indexOf('?');
899
- if (qIdx === -1) {
900
- return { pathname: path, query: {} };
901
- }
902
- const pathname = path.slice(0, qIdx) || '/';
903
- const search = path.slice(qIdx + 1);
904
- const query = {};
905
- const params = new URLSearchParams(search);
906
- for (const key of params.keys()) {
907
- const values = params.getAll(key);
908
- query[key] = values.length === 1 ? values[0] : values;
909
- }
910
- return { pathname, query };
911
- }
912
464
  function normalizeQuery(query) {
913
465
  const result = {};
914
466
  for (const [key, value] of Object.entries(query)) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,54 +1,54 @@
1
- {
2
- "name": "sockress-client",
3
- "version": "0.2.14",
4
- "description": "Socket-first client SDK for Sockress servers with automatic HTTP fallback and FormData serialization.",
5
- "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "files": [
8
- "dist",
9
- "README.md",
10
- "LICENSE"
11
- ],
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "require": "./dist/index.js",
16
- "import": "./dist/index.js",
17
- "default": "./dist/index.js"
18
- }
19
- },
20
- "scripts": {
21
- "build": "tsc -p tsconfig.json",
22
- "prepublishOnly": "npm run build"
23
- },
24
- "author": {
25
- "name": "Also Coder",
26
- "email": "hello@alsocoder.com",
27
- "url": "https://alsocoder.com"
28
- },
29
- "homepage": "https://alsocoder.com",
30
- "repository": {
31
- "type": "git",
32
- "url": "https://github.com/alsocoders/sockress"
33
- },
34
- "bugs": {
35
- "url": "https://github.com/alsocoders/sockress/issues"
36
- },
37
- "license": "PROPRIETARY",
38
- "keywords": [
39
- "sockress",
40
- "websocket",
41
- "http",
42
- "client",
43
- "upload",
44
- "realtime",
45
- "nodejs",
46
- "browser"
47
- ],
48
- "dependencies": {
49
- "nanoid": "^5.0.7"
50
- },
51
- "devDependencies": {
52
- "@types/node": "^20.14.10"
53
- }
54
- }
1
+ {
2
+ "name": "sockress-client",
3
+ "version": "0.2.15",
4
+ "description": "Socket-first client SDK for Sockress servers with automatic HTTP fallback and FormData serialization.",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "require": "./dist/index.js",
16
+ "import": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "author": {
25
+ "name": "Also Coder",
26
+ "email": "hello@alsocoder.com",
27
+ "url": "https://alsocoder.com"
28
+ },
29
+ "homepage": "https://alsocoder.com",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/alsocoders/sockress"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/alsocoders/sockress/issues"
36
+ },
37
+ "license": "PROPRIETARY",
38
+ "keywords": [
39
+ "sockress",
40
+ "websocket",
41
+ "http",
42
+ "client",
43
+ "upload",
44
+ "realtime",
45
+ "nodejs",
46
+ "browser"
47
+ ],
48
+ "dependencies": {
49
+ "nanoid": "^5.0.7"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "^20.14.10"
53
+ }
54
+ }