@edge-base/web 0.2.0 → 0.2.2

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/dist/room.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * - namespace + roomId identification (replaces single roomId)
10
10
  */
11
11
  import type { TokenManager } from './token-manager.js';
12
- import { RoomRealtimeMediaTransport, type RoomRealtimeMediaTransportOptions } from './room-realtime-media.js';
12
+ import { createSubscription, type Subscription } from '@edge-base/core';
13
13
  import { type RoomCloudflareMediaTransportOptions } from './room-cloudflare-media.js';
14
14
  import { type RoomP2PMediaTransportOptions } from './room-p2p-media.js';
15
15
  export interface RoomOptions {
@@ -24,9 +24,8 @@ export interface RoomOptions {
24
24
  /** Timeout for WebSocket connection establishment in ms (default: 15000) */
25
25
  connectionTimeout?: number;
26
26
  }
27
- export interface Subscription {
28
- unsubscribe(): void;
29
- }
27
+ export type { Subscription };
28
+ export { createSubscription };
30
29
  export type SharedStateHandler = (state: Record<string, unknown>, changes: Record<string, unknown>) => void;
31
30
  export type PlayerStateHandler = (state: Record<string, unknown>, changes: Record<string, unknown>) => void;
32
31
  export type MessageHandler = (data: unknown) => void;
@@ -362,14 +361,6 @@ export declare class RoomClient {
362
361
  createSession: (payload?: RoomCloudflareRealtimeKitCreateSessionRequest) => Promise<RoomCloudflareRealtimeKitCreateSessionResponse>;
363
362
  };
364
363
  transport: (options?: RoomMediaTransportOptions) => RoomMediaTransport;
365
- realtime: {
366
- createSession: (payload?: RoomRealtimeCreateSessionRequest) => Promise<RoomRealtimeCreateSessionResponse>;
367
- getIceServers: (payload?: RoomRealtimeIceServersRequest) => Promise<RoomRealtimeIceServersResponse>;
368
- addTracks: (payload: RoomRealtimeTracksRequest) => Promise<RoomRealtimeTracksResponse>;
369
- renegotiate: (payload: RoomRealtimeRenegotiateRequest) => Promise<RoomRealtimeTracksResponse>;
370
- closeTracks: (payload: RoomRealtimeCloseTracksRequest) => Promise<RoomRealtimeTracksResponse>;
371
- transport: (options?: RoomRealtimeMediaTransportOptions) => RoomRealtimeMediaTransport;
372
- };
373
364
  onTrack: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
374
365
  onTrackRemoved: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
375
366
  onStateChange: (handler: (member: RoomMember, state: RoomMemberMediaState) => void) => Subscription;
@@ -396,7 +387,6 @@ export declare class RoomClient {
396
387
  * Useful for lobby screens where you need room info before joining.
397
388
  */
398
389
  static getMetadata(baseUrl: string, namespace: string, roomId: string): Promise<Record<string, unknown>>;
399
- private requestRealtimeMedia;
400
390
  private requestCloudflareRealtimeKitMedia;
401
391
  private requestRoomMedia;
402
392
  /** Connect to the room, authenticate, and join */
@@ -421,14 +411,14 @@ export declare class RoomClient {
421
411
  * Subscribe to shared state changes.
422
412
  * Called on full sync and on each shared_delta.
423
413
  *
424
- * @returns Subscription with unsubscribe()
414
+ * @returns Subscription (callable & .unsubscribe())
425
415
  */
426
416
  onSharedState(handler: SharedStateHandler): Subscription;
427
417
  /**
428
418
  * Subscribe to player state changes.
429
419
  * Called on full sync and on each player_delta.
430
420
  *
431
- * @returns Subscription with unsubscribe()
421
+ * @returns Subscription (callable & .unsubscribe())
432
422
  */
433
423
  onPlayerState(handler: PlayerStateHandler): Subscription;
434
424
  /**
@@ -437,13 +427,13 @@ export declare class RoomClient {
437
427
  * @example
438
428
  * room.onMessage('game_over', (data) => { console.log(data.winner); });
439
429
  *
440
- * @returns Subscription with unsubscribe()
430
+ * @returns Subscription (callable & .unsubscribe())
441
431
  */
442
432
  onMessage(messageType: string, handler: MessageHandler): Subscription;
443
433
  /**
444
434
  * Subscribe to ALL messages regardless of type.
445
435
  *
446
- * @returns Subscription with unsubscribe()
436
+ * @returns Subscription (callable & .unsubscribe())
447
437
  */
448
438
  onAnyMessage(handler: (messageType: string, data: unknown) => void): Subscription;
449
439
  /** Subscribe to errors */
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
package/dist/room.js CHANGED
@@ -1,8 +1,8 @@
1
- import { EdgeBaseError } from '@edge-base/core';
1
+ import { EdgeBaseError, createSubscription } from '@edge-base/core';
2
2
  import { refreshAccessToken } from './auth-refresh.js';
3
- import { RoomRealtimeMediaTransport, } from './room-realtime-media.js';
4
3
  import { RoomCloudflareMediaTransport, } from './room-cloudflare-media.js';
5
4
  import { RoomP2PMediaTransport, } from './room-p2p-media.js';
5
+ export { createSubscription };
6
6
  // ─── Helpers ───
7
7
  const UNSAFE_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
8
8
  function deepSet(obj, path, value) {
@@ -215,7 +215,10 @@ export class RoomClient {
215
215
  createSession: (payload) => this.requestCloudflareRealtimeKitMedia('session', 'POST', payload),
216
216
  },
217
217
  transport: (options) => {
218
- const provider = options?.provider ?? 'cloudflare_realtimekit';
218
+ // Infer provider from options: if cloudflareRealtimeKit config is present, use it;
219
+ // otherwise default to p2p for zero-config local development.
220
+ const hasCloudflareConfig = options && 'cloudflareRealtimeKit' in options && options.cloudflareRealtimeKit != null;
221
+ const provider = options?.provider ?? (hasCloudflareConfig ? 'cloudflare_realtimekit' : 'p2p');
219
222
  if (provider === 'p2p') {
220
223
  const p2pOptions = options?.p2p;
221
224
  return new RoomP2PMediaTransport(this, p2pOptions);
@@ -223,14 +226,6 @@ export class RoomClient {
223
226
  const cloudflareOptions = options?.cloudflareRealtimeKit;
224
227
  return new RoomCloudflareMediaTransport(this, cloudflareOptions);
225
228
  },
226
- realtime: {
227
- createSession: (payload) => this.requestRealtimeMedia('session', 'POST', payload),
228
- getIceServers: (payload) => this.requestRealtimeMedia('turn', 'POST', payload),
229
- addTracks: (payload) => this.requestRealtimeMedia('tracks/new', 'POST', payload),
230
- renegotiate: (payload) => this.requestRealtimeMedia('renegotiate', 'PUT', payload),
231
- closeTracks: (payload) => this.requestRealtimeMedia('tracks/close', 'PUT', payload),
232
- transport: (options) => new RoomRealtimeMediaTransport(this, options),
233
- },
234
229
  onTrack: (handler) => this.onMediaTrack(handler),
235
230
  onTrackRemoved: (handler) => this.onMediaTrackRemoved(handler),
236
231
  onStateChange: (handler) => this.onMediaStateChange(handler),
@@ -288,9 +283,6 @@ export class RoomClient {
288
283
  }
289
284
  return res.json();
290
285
  }
291
- async requestRealtimeMedia(path, method, payload) {
292
- return this.requestRoomMedia('realtime', path, method, payload);
293
- }
294
286
  async requestCloudflareRealtimeKitMedia(path, method, payload) {
295
287
  return this.requestRoomMedia('cloudflare_realtimekit', path, method, payload);
296
288
  }
@@ -418,33 +410,29 @@ export class RoomClient {
418
410
  * Subscribe to shared state changes.
419
411
  * Called on full sync and on each shared_delta.
420
412
  *
421
- * @returns Subscription with unsubscribe()
413
+ * @returns Subscription (callable & .unsubscribe())
422
414
  */
423
415
  onSharedState(handler) {
424
416
  this.sharedStateHandlers.push(handler);
425
- return {
426
- unsubscribe: () => {
427
- const idx = this.sharedStateHandlers.indexOf(handler);
428
- if (idx >= 0)
429
- this.sharedStateHandlers.splice(idx, 1);
430
- },
431
- };
417
+ return createSubscription(() => {
418
+ const idx = this.sharedStateHandlers.indexOf(handler);
419
+ if (idx >= 0)
420
+ this.sharedStateHandlers.splice(idx, 1);
421
+ });
432
422
  }
433
423
  /**
434
424
  * Subscribe to player state changes.
435
425
  * Called on full sync and on each player_delta.
436
426
  *
437
- * @returns Subscription with unsubscribe()
427
+ * @returns Subscription (callable & .unsubscribe())
438
428
  */
439
429
  onPlayerState(handler) {
440
430
  this.playerStateHandlers.push(handler);
441
- return {
442
- unsubscribe: () => {
443
- const idx = this.playerStateHandlers.indexOf(handler);
444
- if (idx >= 0)
445
- this.playerStateHandlers.splice(idx, 1);
446
- },
447
- };
431
+ return createSubscription(() => {
432
+ const idx = this.playerStateHandlers.indexOf(handler);
433
+ if (idx >= 0)
434
+ this.playerStateHandlers.splice(idx, 1);
435
+ });
448
436
  }
449
437
  /**
450
438
  * Subscribe to messages of a specific type sent by room.sendMessage().
@@ -452,186 +440,154 @@ export class RoomClient {
452
440
  * @example
453
441
  * room.onMessage('game_over', (data) => { console.log(data.winner); });
454
442
  *
455
- * @returns Subscription with unsubscribe()
443
+ * @returns Subscription (callable & .unsubscribe())
456
444
  */
457
445
  onMessage(messageType, handler) {
458
446
  if (!this.messageHandlers.has(messageType)) {
459
447
  this.messageHandlers.set(messageType, []);
460
448
  }
461
449
  this.messageHandlers.get(messageType).push(handler);
462
- return {
463
- unsubscribe: () => {
464
- const handlers = this.messageHandlers.get(messageType);
465
- if (handlers) {
466
- const idx = handlers.indexOf(handler);
467
- if (idx >= 0)
468
- handlers.splice(idx, 1);
469
- }
470
- },
471
- };
450
+ return createSubscription(() => {
451
+ const handlers = this.messageHandlers.get(messageType);
452
+ if (handlers) {
453
+ const idx = handlers.indexOf(handler);
454
+ if (idx >= 0)
455
+ handlers.splice(idx, 1);
456
+ }
457
+ });
472
458
  }
473
459
  /**
474
460
  * Subscribe to ALL messages regardless of type.
475
461
  *
476
- * @returns Subscription with unsubscribe()
462
+ * @returns Subscription (callable & .unsubscribe())
477
463
  */
478
464
  onAnyMessage(handler) {
479
465
  this.allMessageHandlers.push(handler);
480
- return {
481
- unsubscribe: () => {
482
- const idx = this.allMessageHandlers.indexOf(handler);
483
- if (idx >= 0)
484
- this.allMessageHandlers.splice(idx, 1);
485
- },
486
- };
466
+ return createSubscription(() => {
467
+ const idx = this.allMessageHandlers.indexOf(handler);
468
+ if (idx >= 0)
469
+ this.allMessageHandlers.splice(idx, 1);
470
+ });
487
471
  }
488
472
  /** Subscribe to errors */
489
473
  onError(handler) {
490
474
  this.errorHandlers.push(handler);
491
- return {
492
- unsubscribe: () => {
493
- const idx = this.errorHandlers.indexOf(handler);
494
- if (idx >= 0)
495
- this.errorHandlers.splice(idx, 1);
496
- },
497
- };
475
+ return createSubscription(() => {
476
+ const idx = this.errorHandlers.indexOf(handler);
477
+ if (idx >= 0)
478
+ this.errorHandlers.splice(idx, 1);
479
+ });
498
480
  }
499
481
  /** Subscribe to kick events */
500
482
  onKicked(handler) {
501
483
  this.kickedHandlers.push(handler);
502
- return {
503
- unsubscribe: () => {
504
- const idx = this.kickedHandlers.indexOf(handler);
505
- if (idx >= 0)
506
- this.kickedHandlers.splice(idx, 1);
507
- },
508
- };
484
+ return createSubscription(() => {
485
+ const idx = this.kickedHandlers.indexOf(handler);
486
+ if (idx >= 0)
487
+ this.kickedHandlers.splice(idx, 1);
488
+ });
509
489
  }
510
490
  onSignal(event, handler) {
511
491
  if (!this.signalHandlers.has(event)) {
512
492
  this.signalHandlers.set(event, []);
513
493
  }
514
494
  this.signalHandlers.get(event).push(handler);
515
- return {
516
- unsubscribe: () => {
517
- const handlers = this.signalHandlers.get(event);
518
- if (!handlers)
519
- return;
520
- const index = handlers.indexOf(handler);
521
- if (index >= 0)
522
- handlers.splice(index, 1);
523
- },
524
- };
495
+ return createSubscription(() => {
496
+ const handlers = this.signalHandlers.get(event);
497
+ if (!handlers)
498
+ return;
499
+ const index = handlers.indexOf(handler);
500
+ if (index >= 0)
501
+ handlers.splice(index, 1);
502
+ });
525
503
  }
526
504
  onAnySignal(handler) {
527
505
  this.anySignalHandlers.push(handler);
528
- return {
529
- unsubscribe: () => {
530
- const index = this.anySignalHandlers.indexOf(handler);
531
- if (index >= 0)
532
- this.anySignalHandlers.splice(index, 1);
533
- },
534
- };
506
+ return createSubscription(() => {
507
+ const index = this.anySignalHandlers.indexOf(handler);
508
+ if (index >= 0)
509
+ this.anySignalHandlers.splice(index, 1);
510
+ });
535
511
  }
536
512
  onMembersSync(handler) {
537
513
  this.memberSyncHandlers.push(handler);
538
- return {
539
- unsubscribe: () => {
540
- const index = this.memberSyncHandlers.indexOf(handler);
541
- if (index >= 0)
542
- this.memberSyncHandlers.splice(index, 1);
543
- },
544
- };
514
+ return createSubscription(() => {
515
+ const index = this.memberSyncHandlers.indexOf(handler);
516
+ if (index >= 0)
517
+ this.memberSyncHandlers.splice(index, 1);
518
+ });
545
519
  }
546
520
  onMemberJoin(handler) {
547
521
  this.memberJoinHandlers.push(handler);
548
- return {
549
- unsubscribe: () => {
550
- const index = this.memberJoinHandlers.indexOf(handler);
551
- if (index >= 0)
552
- this.memberJoinHandlers.splice(index, 1);
553
- },
554
- };
522
+ return createSubscription(() => {
523
+ const index = this.memberJoinHandlers.indexOf(handler);
524
+ if (index >= 0)
525
+ this.memberJoinHandlers.splice(index, 1);
526
+ });
555
527
  }
556
528
  onMemberLeave(handler) {
557
529
  this.memberLeaveHandlers.push(handler);
558
- return {
559
- unsubscribe: () => {
560
- const index = this.memberLeaveHandlers.indexOf(handler);
561
- if (index >= 0)
562
- this.memberLeaveHandlers.splice(index, 1);
563
- },
564
- };
530
+ return createSubscription(() => {
531
+ const index = this.memberLeaveHandlers.indexOf(handler);
532
+ if (index >= 0)
533
+ this.memberLeaveHandlers.splice(index, 1);
534
+ });
565
535
  }
566
536
  onMemberStateChange(handler) {
567
537
  this.memberStateHandlers.push(handler);
568
- return {
569
- unsubscribe: () => {
570
- const index = this.memberStateHandlers.indexOf(handler);
571
- if (index >= 0)
572
- this.memberStateHandlers.splice(index, 1);
573
- },
574
- };
538
+ return createSubscription(() => {
539
+ const index = this.memberStateHandlers.indexOf(handler);
540
+ if (index >= 0)
541
+ this.memberStateHandlers.splice(index, 1);
542
+ });
575
543
  }
576
544
  onReconnect(handler) {
577
545
  this.reconnectHandlers.push(handler);
578
- return {
579
- unsubscribe: () => {
580
- const index = this.reconnectHandlers.indexOf(handler);
581
- if (index >= 0)
582
- this.reconnectHandlers.splice(index, 1);
583
- },
584
- };
546
+ return createSubscription(() => {
547
+ const index = this.reconnectHandlers.indexOf(handler);
548
+ if (index >= 0)
549
+ this.reconnectHandlers.splice(index, 1);
550
+ });
585
551
  }
586
552
  onConnectionStateChange(handler) {
587
553
  this.connectionStateHandlers.push(handler);
588
- return {
589
- unsubscribe: () => {
590
- const index = this.connectionStateHandlers.indexOf(handler);
591
- if (index >= 0)
592
- this.connectionStateHandlers.splice(index, 1);
593
- },
594
- };
554
+ return createSubscription(() => {
555
+ const index = this.connectionStateHandlers.indexOf(handler);
556
+ if (index >= 0)
557
+ this.connectionStateHandlers.splice(index, 1);
558
+ });
595
559
  }
596
560
  onMediaTrack(handler) {
597
561
  this.mediaTrackHandlers.push(handler);
598
- return {
599
- unsubscribe: () => {
600
- const index = this.mediaTrackHandlers.indexOf(handler);
601
- if (index >= 0)
602
- this.mediaTrackHandlers.splice(index, 1);
603
- },
604
- };
562
+ return createSubscription(() => {
563
+ const index = this.mediaTrackHandlers.indexOf(handler);
564
+ if (index >= 0)
565
+ this.mediaTrackHandlers.splice(index, 1);
566
+ });
605
567
  }
606
568
  onMediaTrackRemoved(handler) {
607
569
  this.mediaTrackRemovedHandlers.push(handler);
608
- return {
609
- unsubscribe: () => {
610
- const index = this.mediaTrackRemovedHandlers.indexOf(handler);
611
- if (index >= 0)
612
- this.mediaTrackRemovedHandlers.splice(index, 1);
613
- },
614
- };
570
+ return createSubscription(() => {
571
+ const index = this.mediaTrackRemovedHandlers.indexOf(handler);
572
+ if (index >= 0)
573
+ this.mediaTrackRemovedHandlers.splice(index, 1);
574
+ });
615
575
  }
616
576
  onMediaStateChange(handler) {
617
577
  this.mediaStateHandlers.push(handler);
618
- return {
619
- unsubscribe: () => {
620
- const index = this.mediaStateHandlers.indexOf(handler);
621
- if (index >= 0)
622
- this.mediaStateHandlers.splice(index, 1);
623
- },
624
- };
578
+ return createSubscription(() => {
579
+ const index = this.mediaStateHandlers.indexOf(handler);
580
+ if (index >= 0)
581
+ this.mediaStateHandlers.splice(index, 1);
582
+ });
625
583
  }
626
584
  onMediaDeviceChange(handler) {
627
585
  this.mediaDeviceHandlers.push(handler);
628
- return {
629
- unsubscribe: () => {
630
- const index = this.mediaDeviceHandlers.indexOf(handler);
631
- if (index >= 0)
632
- this.mediaDeviceHandlers.splice(index, 1);
633
- },
634
- };
586
+ return createSubscription(() => {
587
+ const index = this.mediaDeviceHandlers.indexOf(handler);
588
+ if (index >= 0)
589
+ this.mediaDeviceHandlers.splice(index, 1);
590
+ });
635
591
  }
636
592
  async sendSignal(event, payload, options) {
637
593
  if (!this.ws || !this.connected || !this.authenticated) {