@edge-base/react-native 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -1
- package/dist/index.cjs +1246 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +169 -1
- package/dist/index.d.ts +169 -1
- package/dist/index.js +1246 -11
- package/dist/index.js.map +1 -1
- package/package.json +12 -4
package/dist/index.d.cts
CHANGED
|
@@ -430,6 +430,100 @@ declare class DatabaseLiveClient implements IDatabaseLiveSubscriber {
|
|
|
430
430
|
private handleContextChange;
|
|
431
431
|
}
|
|
432
432
|
|
|
433
|
+
interface ParticipantMapLike<TParticipant> extends Iterable<TParticipant> {
|
|
434
|
+
values(): IterableIterator<TParticipant>;
|
|
435
|
+
on(event: 'participantJoined', handler: (participant: TParticipant) => void): void;
|
|
436
|
+
on(event: 'participantLeft', handler: (participant: TParticipant) => void): void;
|
|
437
|
+
on(event: 'participantsCleared', handler: () => void): void;
|
|
438
|
+
on(event: 'participantsUpdate', handler: () => void): void;
|
|
439
|
+
off(event: 'participantJoined', handler: (participant: TParticipant) => void): void;
|
|
440
|
+
off(event: 'participantLeft', handler: (participant: TParticipant) => void): void;
|
|
441
|
+
off(event: 'participantsCleared', handler: () => void): void;
|
|
442
|
+
off(event: 'participantsUpdate', handler: () => void): void;
|
|
443
|
+
}
|
|
444
|
+
type ParticipantEventHandlers = {
|
|
445
|
+
audioUpdate: (payload: {
|
|
446
|
+
audioEnabled: boolean;
|
|
447
|
+
audioTrack: MediaStreamTrack;
|
|
448
|
+
}) => void;
|
|
449
|
+
videoUpdate: (payload: {
|
|
450
|
+
videoEnabled: boolean;
|
|
451
|
+
videoTrack: MediaStreamTrack;
|
|
452
|
+
}) => void;
|
|
453
|
+
screenShareUpdate: (payload: {
|
|
454
|
+
screenShareEnabled: boolean;
|
|
455
|
+
screenShareTracks: {
|
|
456
|
+
audio?: MediaStreamTrack;
|
|
457
|
+
video?: MediaStreamTrack;
|
|
458
|
+
};
|
|
459
|
+
}) => void;
|
|
460
|
+
};
|
|
461
|
+
interface RoomCloudflareKitParticipant {
|
|
462
|
+
id: string;
|
|
463
|
+
customParticipantId?: string;
|
|
464
|
+
userId?: string;
|
|
465
|
+
audioTrack?: MediaStreamTrack;
|
|
466
|
+
audioEnabled?: boolean;
|
|
467
|
+
videoTrack?: MediaStreamTrack;
|
|
468
|
+
videoEnabled?: boolean;
|
|
469
|
+
screenShareTracks?: {
|
|
470
|
+
audio?: MediaStreamTrack;
|
|
471
|
+
video?: MediaStreamTrack;
|
|
472
|
+
};
|
|
473
|
+
screenShareEnabled?: boolean;
|
|
474
|
+
on<TEvent extends keyof ParticipantEventHandlers>(event: TEvent, handler: ParticipantEventHandlers[TEvent]): void;
|
|
475
|
+
off<TEvent extends keyof ParticipantEventHandlers>(event: TEvent, handler: ParticipantEventHandlers[TEvent]): void;
|
|
476
|
+
}
|
|
477
|
+
interface RoomCloudflareKitSelf {
|
|
478
|
+
id: string;
|
|
479
|
+
audioTrack?: MediaStreamTrack;
|
|
480
|
+
videoTrack?: MediaStreamTrack;
|
|
481
|
+
screenShareTracks?: {
|
|
482
|
+
audio?: MediaStreamTrack;
|
|
483
|
+
video?: MediaStreamTrack;
|
|
484
|
+
};
|
|
485
|
+
enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
|
|
486
|
+
enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
|
|
487
|
+
enableScreenShare(): Promise<void>;
|
|
488
|
+
disableAudio(): Promise<void>;
|
|
489
|
+
disableVideo(): Promise<void>;
|
|
490
|
+
disableScreenShare(): Promise<void>;
|
|
491
|
+
getDeviceById(deviceId: string, kind: string): Promise<unknown>;
|
|
492
|
+
setDevice(device: unknown): Promise<void>;
|
|
493
|
+
}
|
|
494
|
+
interface RoomCloudflareKitClient {
|
|
495
|
+
join?(): Promise<void>;
|
|
496
|
+
leave?(state?: unknown): Promise<void>;
|
|
497
|
+
joinRoom?(): Promise<void>;
|
|
498
|
+
leaveRoom?(state?: unknown): Promise<void>;
|
|
499
|
+
readonly participants: {
|
|
500
|
+
active?: ParticipantMapLike<RoomCloudflareKitParticipant>;
|
|
501
|
+
joined?: ParticipantMapLike<RoomCloudflareKitParticipant>;
|
|
502
|
+
};
|
|
503
|
+
readonly self: RoomCloudflareKitSelf;
|
|
504
|
+
}
|
|
505
|
+
interface RoomCloudflareKitClientFactory {
|
|
506
|
+
init(options: {
|
|
507
|
+
authToken: string;
|
|
508
|
+
defaults: {
|
|
509
|
+
audio: boolean;
|
|
510
|
+
video: boolean;
|
|
511
|
+
};
|
|
512
|
+
}): Promise<RoomCloudflareKitClient>;
|
|
513
|
+
}
|
|
514
|
+
interface RoomCloudflareMediaTransportOptions {
|
|
515
|
+
autoSubscribe?: boolean;
|
|
516
|
+
mediaDevices?: Pick<MediaDevices, 'getUserMedia' | 'getDisplayMedia' | 'enumerateDevices'>;
|
|
517
|
+
clientFactory?: RoomCloudflareKitClientFactory;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
interface RoomP2PMediaTransportOptions {
|
|
521
|
+
rtcConfiguration?: RTCConfiguration;
|
|
522
|
+
peerConnectionFactory?: (configuration: RTCConfiguration) => RTCPeerConnection;
|
|
523
|
+
mediaDevices?: Pick<MediaDevices, 'getUserMedia' | 'getDisplayMedia'>;
|
|
524
|
+
signalPrefix?: string;
|
|
525
|
+
}
|
|
526
|
+
|
|
433
527
|
/**
|
|
434
528
|
* RoomClient v2 — Client-side room connection for real-time multiplayer state.
|
|
435
529
|
*
|
|
@@ -450,6 +544,8 @@ interface RoomOptions {
|
|
|
450
544
|
reconnectBaseDelay?: number;
|
|
451
545
|
/** Timeout for send() requests in ms (default: 10000) */
|
|
452
546
|
sendTimeout?: number;
|
|
547
|
+
/** Timeout for WebSocket connection establishment in ms (default: 15000) */
|
|
548
|
+
connectionTimeout?: number;
|
|
453
549
|
}
|
|
454
550
|
interface Subscription {
|
|
455
551
|
unsubscribe(): void;
|
|
@@ -490,6 +586,7 @@ interface RoomMediaTrack {
|
|
|
490
586
|
muted: boolean;
|
|
491
587
|
publishedAt?: number;
|
|
492
588
|
adminDisabled?: boolean;
|
|
589
|
+
providerSessionId?: string;
|
|
493
590
|
}
|
|
494
591
|
interface RoomMemberMediaKindState {
|
|
495
592
|
published: boolean;
|
|
@@ -498,6 +595,7 @@ interface RoomMemberMediaKindState {
|
|
|
498
595
|
deviceId?: string;
|
|
499
596
|
publishedAt?: number;
|
|
500
597
|
adminDisabled?: boolean;
|
|
598
|
+
providerSessionId?: string;
|
|
501
599
|
}
|
|
502
600
|
interface RoomMemberMediaState {
|
|
503
601
|
audio?: RoomMemberMediaKindState;
|
|
@@ -513,6 +611,66 @@ interface RoomMediaDeviceChange {
|
|
|
513
611
|
kind: RoomMediaKind;
|
|
514
612
|
deviceId: string;
|
|
515
613
|
}
|
|
614
|
+
interface RoomCloudflareRealtimeKitCreateSessionRequest {
|
|
615
|
+
connectionId?: string;
|
|
616
|
+
customParticipantId?: string;
|
|
617
|
+
name?: string;
|
|
618
|
+
picture?: string;
|
|
619
|
+
}
|
|
620
|
+
interface RoomCloudflareRealtimeKitCreateSessionResponse {
|
|
621
|
+
sessionId: string;
|
|
622
|
+
meetingId: string;
|
|
623
|
+
participantId: string;
|
|
624
|
+
authToken: string;
|
|
625
|
+
presetName: string;
|
|
626
|
+
connectionId?: string;
|
|
627
|
+
reused?: boolean;
|
|
628
|
+
}
|
|
629
|
+
interface RoomMediaTransportConnectPayload {
|
|
630
|
+
connectionId?: string;
|
|
631
|
+
customParticipantId?: string;
|
|
632
|
+
name?: string;
|
|
633
|
+
picture?: string;
|
|
634
|
+
}
|
|
635
|
+
interface RoomMediaRemoteTrackEvent {
|
|
636
|
+
kind: RoomMediaKind;
|
|
637
|
+
track: MediaStreamTrack;
|
|
638
|
+
stream?: MediaStream;
|
|
639
|
+
trackName?: string;
|
|
640
|
+
providerSessionId?: string;
|
|
641
|
+
participantId?: string;
|
|
642
|
+
customParticipantId?: string;
|
|
643
|
+
userId?: string;
|
|
644
|
+
}
|
|
645
|
+
interface RoomMediaTransport {
|
|
646
|
+
connect(payload?: RoomMediaTransportConnectPayload): Promise<string>;
|
|
647
|
+
enableAudio(constraints?: MediaTrackConstraints | boolean): Promise<MediaStreamTrack>;
|
|
648
|
+
enableVideo(constraints?: MediaTrackConstraints | boolean): Promise<MediaStreamTrack>;
|
|
649
|
+
startScreenShare(constraints?: unknown): Promise<MediaStreamTrack>;
|
|
650
|
+
disableAudio(): Promise<void>;
|
|
651
|
+
disableVideo(): Promise<void>;
|
|
652
|
+
stopScreenShare(): Promise<void>;
|
|
653
|
+
setMuted(kind: Extract<RoomMediaKind, 'audio' | 'video'>, muted: boolean): Promise<void>;
|
|
654
|
+
switchDevices(payload: {
|
|
655
|
+
audioInputId?: string;
|
|
656
|
+
videoInputId?: string;
|
|
657
|
+
screenInputId?: string;
|
|
658
|
+
}): Promise<void>;
|
|
659
|
+
onRemoteTrack(handler: (event: RoomMediaRemoteTrackEvent) => void): Subscription;
|
|
660
|
+
getSessionId(): string | null;
|
|
661
|
+
getPeerConnection(): RTCPeerConnection | null;
|
|
662
|
+
destroy(): void;
|
|
663
|
+
}
|
|
664
|
+
type RoomMediaTransportProvider = 'cloudflare_realtimekit' | 'p2p';
|
|
665
|
+
interface RoomCloudflareRealtimeKitTransportFactoryOptions {
|
|
666
|
+
provider?: 'cloudflare_realtimekit';
|
|
667
|
+
cloudflareRealtimeKit?: RoomCloudflareMediaTransportOptions;
|
|
668
|
+
}
|
|
669
|
+
interface RoomP2PTransportFactoryOptions {
|
|
670
|
+
provider: 'p2p';
|
|
671
|
+
p2p?: RoomP2PMediaTransportOptions;
|
|
672
|
+
}
|
|
673
|
+
type RoomMediaTransportOptions = RoomCloudflareRealtimeKitTransportFactoryOptions | RoomP2PTransportFactoryOptions;
|
|
516
674
|
declare class RoomClient {
|
|
517
675
|
private baseUrl;
|
|
518
676
|
private tokenManager;
|
|
@@ -585,6 +743,7 @@ declare class RoomClient {
|
|
|
585
743
|
};
|
|
586
744
|
readonly members: {
|
|
587
745
|
list: () => RoomMember[];
|
|
746
|
+
current: () => RoomMember | null;
|
|
588
747
|
onSync: (handler: (members: RoomMember[]) => void) => Subscription;
|
|
589
748
|
onJoin: (handler: (member: RoomMember) => void) => Subscription;
|
|
590
749
|
onLeave: (handler: (member: RoomMember, reason: RoomMemberLeaveReason) => void) => Subscription;
|
|
@@ -632,6 +791,10 @@ declare class RoomClient {
|
|
|
632
791
|
screenInputId?: string;
|
|
633
792
|
}) => Promise<void>;
|
|
634
793
|
};
|
|
794
|
+
cloudflareRealtimeKit: {
|
|
795
|
+
createSession: (payload?: RoomCloudflareRealtimeKitCreateSessionRequest) => Promise<RoomCloudflareRealtimeKitCreateSessionResponse>;
|
|
796
|
+
};
|
|
797
|
+
transport: (options?: RoomMediaTransportOptions) => RoomMediaTransport;
|
|
635
798
|
onTrack: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
|
|
636
799
|
onTrackRemoved: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
|
|
637
800
|
onStateChange: (handler: (member: RoomMember, state: RoomMemberMediaState) => void) => Subscription;
|
|
@@ -653,6 +816,8 @@ declare class RoomClient {
|
|
|
653
816
|
* Returns developer-defined metadata set by room.setMetadata() on the server.
|
|
654
817
|
*/
|
|
655
818
|
getMetadata(): Promise<Record<string, unknown>>;
|
|
819
|
+
private requestCloudflareRealtimeKitMedia;
|
|
820
|
+
private requestRoomMedia;
|
|
656
821
|
/**
|
|
657
822
|
* Static: Get room metadata without creating a RoomClient instance.
|
|
658
823
|
* Useful for lobby screens where you need room info before joining.
|
|
@@ -662,6 +827,8 @@ declare class RoomClient {
|
|
|
662
827
|
join(): Promise<void>;
|
|
663
828
|
/** Leave the room and disconnect. Cleans up all pending requests. */
|
|
664
829
|
leave(): void;
|
|
830
|
+
/** Destroy the room client, cleaning up all listeners and the auth subscription. */
|
|
831
|
+
destroy(): void;
|
|
665
832
|
/**
|
|
666
833
|
* Send an action to the server.
|
|
667
834
|
* Returns a Promise that resolves with the action result from the server.
|
|
@@ -775,6 +942,7 @@ declare class RoomClient {
|
|
|
775
942
|
private upsertMediaTrack;
|
|
776
943
|
private removeMediaTrack;
|
|
777
944
|
private mergeMediaState;
|
|
945
|
+
private rejectAllPendingRequests;
|
|
778
946
|
private rejectPendingVoidRequests;
|
|
779
947
|
private setConnectionState;
|
|
780
948
|
private sendRaw;
|
|
@@ -1243,4 +1411,4 @@ declare function useTurnstile({ baseUrl, action, }: UseTurnstileOptions): UseTur
|
|
|
1243
1411
|
*/
|
|
1244
1412
|
declare function isPlatformWeb(): boolean;
|
|
1245
1413
|
|
|
1246
|
-
export { type AppStateAdapter, type AsyncStorageAdapter, AuthClient, type AuthResult, type AuthStateChangeHandler, ClientAnalytics, ClientEdgeBase, DatabaseLiveClient, type DatabaseLiveClientAdapter, type DatabaseLiveOptions, type FilterEntry, type FilterOperator, type JuneClientOptions, LifecycleManager, type LinkingAdapter, type PasskeysAuthOptions, PushClient, type PushMessage, type PushMessageHandler, type PushPermissionProvider, type PushPermissionStatus, type PushPlatform, type PushTokenProvider, RoomClient, type RoomConnectionState, type RoomMediaDeviceChange, type RoomMediaKind, type RoomMediaMember, type RoomMediaTrack, type RoomMember, type RoomMemberLeaveReason, type RoomMemberMediaKindState, type RoomMemberMediaState, type RoomOptions, type RoomReconnectInfo, type RoomSignalMeta, type Session, type SignInOptions, type SignUpOptions, type Subscription, TokenManager, type TokenPair, type TokenUser, TurnstileWebView, type TurnstileWebViewProps, type UpdateProfileOptions, type UseLifecycleOptions, type UseTurnstileOptions, type UseTurnstileResult, createClient, isPlatformWeb, matchesFilter, useLifecycle, useTurnstile };
|
|
1414
|
+
export { type AppStateAdapter, type AsyncStorageAdapter, AuthClient, type AuthResult, type AuthStateChangeHandler, ClientAnalytics, ClientEdgeBase, DatabaseLiveClient, type DatabaseLiveClientAdapter, type DatabaseLiveOptions, type FilterEntry, type FilterOperator, type JuneClientOptions, LifecycleManager, type LinkingAdapter, type PasskeysAuthOptions, PushClient, type PushMessage, type PushMessageHandler, type PushPermissionProvider, type PushPermissionStatus, type PushPlatform, type PushTokenProvider, RoomClient, type RoomCloudflareRealtimeKitCreateSessionRequest, type RoomCloudflareRealtimeKitCreateSessionResponse, type RoomCloudflareRealtimeKitTransportFactoryOptions, type RoomConnectionState, type RoomMediaDeviceChange, type RoomMediaKind, type RoomMediaMember, type RoomMediaRemoteTrackEvent, type RoomMediaTrack, type RoomMediaTransport, type RoomMediaTransportConnectPayload, type RoomMediaTransportOptions, type RoomMediaTransportProvider, type RoomMember, type RoomMemberLeaveReason, type RoomMemberMediaKindState, type RoomMemberMediaState, type RoomOptions, type RoomP2PTransportFactoryOptions, type RoomReconnectInfo, type RoomSignalMeta, type Session, type SignInOptions, type SignUpOptions, type Subscription, TokenManager, type TokenPair, type TokenUser, TurnstileWebView, type TurnstileWebViewProps, type UpdateProfileOptions, type UseLifecycleOptions, type UseTurnstileOptions, type UseTurnstileResult, createClient, isPlatformWeb, matchesFilter, useLifecycle, useTurnstile };
|
package/dist/index.d.ts
CHANGED
|
@@ -430,6 +430,100 @@ declare class DatabaseLiveClient implements IDatabaseLiveSubscriber {
|
|
|
430
430
|
private handleContextChange;
|
|
431
431
|
}
|
|
432
432
|
|
|
433
|
+
interface ParticipantMapLike<TParticipant> extends Iterable<TParticipant> {
|
|
434
|
+
values(): IterableIterator<TParticipant>;
|
|
435
|
+
on(event: 'participantJoined', handler: (participant: TParticipant) => void): void;
|
|
436
|
+
on(event: 'participantLeft', handler: (participant: TParticipant) => void): void;
|
|
437
|
+
on(event: 'participantsCleared', handler: () => void): void;
|
|
438
|
+
on(event: 'participantsUpdate', handler: () => void): void;
|
|
439
|
+
off(event: 'participantJoined', handler: (participant: TParticipant) => void): void;
|
|
440
|
+
off(event: 'participantLeft', handler: (participant: TParticipant) => void): void;
|
|
441
|
+
off(event: 'participantsCleared', handler: () => void): void;
|
|
442
|
+
off(event: 'participantsUpdate', handler: () => void): void;
|
|
443
|
+
}
|
|
444
|
+
type ParticipantEventHandlers = {
|
|
445
|
+
audioUpdate: (payload: {
|
|
446
|
+
audioEnabled: boolean;
|
|
447
|
+
audioTrack: MediaStreamTrack;
|
|
448
|
+
}) => void;
|
|
449
|
+
videoUpdate: (payload: {
|
|
450
|
+
videoEnabled: boolean;
|
|
451
|
+
videoTrack: MediaStreamTrack;
|
|
452
|
+
}) => void;
|
|
453
|
+
screenShareUpdate: (payload: {
|
|
454
|
+
screenShareEnabled: boolean;
|
|
455
|
+
screenShareTracks: {
|
|
456
|
+
audio?: MediaStreamTrack;
|
|
457
|
+
video?: MediaStreamTrack;
|
|
458
|
+
};
|
|
459
|
+
}) => void;
|
|
460
|
+
};
|
|
461
|
+
interface RoomCloudflareKitParticipant {
|
|
462
|
+
id: string;
|
|
463
|
+
customParticipantId?: string;
|
|
464
|
+
userId?: string;
|
|
465
|
+
audioTrack?: MediaStreamTrack;
|
|
466
|
+
audioEnabled?: boolean;
|
|
467
|
+
videoTrack?: MediaStreamTrack;
|
|
468
|
+
videoEnabled?: boolean;
|
|
469
|
+
screenShareTracks?: {
|
|
470
|
+
audio?: MediaStreamTrack;
|
|
471
|
+
video?: MediaStreamTrack;
|
|
472
|
+
};
|
|
473
|
+
screenShareEnabled?: boolean;
|
|
474
|
+
on<TEvent extends keyof ParticipantEventHandlers>(event: TEvent, handler: ParticipantEventHandlers[TEvent]): void;
|
|
475
|
+
off<TEvent extends keyof ParticipantEventHandlers>(event: TEvent, handler: ParticipantEventHandlers[TEvent]): void;
|
|
476
|
+
}
|
|
477
|
+
interface RoomCloudflareKitSelf {
|
|
478
|
+
id: string;
|
|
479
|
+
audioTrack?: MediaStreamTrack;
|
|
480
|
+
videoTrack?: MediaStreamTrack;
|
|
481
|
+
screenShareTracks?: {
|
|
482
|
+
audio?: MediaStreamTrack;
|
|
483
|
+
video?: MediaStreamTrack;
|
|
484
|
+
};
|
|
485
|
+
enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
|
|
486
|
+
enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
|
|
487
|
+
enableScreenShare(): Promise<void>;
|
|
488
|
+
disableAudio(): Promise<void>;
|
|
489
|
+
disableVideo(): Promise<void>;
|
|
490
|
+
disableScreenShare(): Promise<void>;
|
|
491
|
+
getDeviceById(deviceId: string, kind: string): Promise<unknown>;
|
|
492
|
+
setDevice(device: unknown): Promise<void>;
|
|
493
|
+
}
|
|
494
|
+
interface RoomCloudflareKitClient {
|
|
495
|
+
join?(): Promise<void>;
|
|
496
|
+
leave?(state?: unknown): Promise<void>;
|
|
497
|
+
joinRoom?(): Promise<void>;
|
|
498
|
+
leaveRoom?(state?: unknown): Promise<void>;
|
|
499
|
+
readonly participants: {
|
|
500
|
+
active?: ParticipantMapLike<RoomCloudflareKitParticipant>;
|
|
501
|
+
joined?: ParticipantMapLike<RoomCloudflareKitParticipant>;
|
|
502
|
+
};
|
|
503
|
+
readonly self: RoomCloudflareKitSelf;
|
|
504
|
+
}
|
|
505
|
+
interface RoomCloudflareKitClientFactory {
|
|
506
|
+
init(options: {
|
|
507
|
+
authToken: string;
|
|
508
|
+
defaults: {
|
|
509
|
+
audio: boolean;
|
|
510
|
+
video: boolean;
|
|
511
|
+
};
|
|
512
|
+
}): Promise<RoomCloudflareKitClient>;
|
|
513
|
+
}
|
|
514
|
+
interface RoomCloudflareMediaTransportOptions {
|
|
515
|
+
autoSubscribe?: boolean;
|
|
516
|
+
mediaDevices?: Pick<MediaDevices, 'getUserMedia' | 'getDisplayMedia' | 'enumerateDevices'>;
|
|
517
|
+
clientFactory?: RoomCloudflareKitClientFactory;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
interface RoomP2PMediaTransportOptions {
|
|
521
|
+
rtcConfiguration?: RTCConfiguration;
|
|
522
|
+
peerConnectionFactory?: (configuration: RTCConfiguration) => RTCPeerConnection;
|
|
523
|
+
mediaDevices?: Pick<MediaDevices, 'getUserMedia' | 'getDisplayMedia'>;
|
|
524
|
+
signalPrefix?: string;
|
|
525
|
+
}
|
|
526
|
+
|
|
433
527
|
/**
|
|
434
528
|
* RoomClient v2 — Client-side room connection for real-time multiplayer state.
|
|
435
529
|
*
|
|
@@ -450,6 +544,8 @@ interface RoomOptions {
|
|
|
450
544
|
reconnectBaseDelay?: number;
|
|
451
545
|
/** Timeout for send() requests in ms (default: 10000) */
|
|
452
546
|
sendTimeout?: number;
|
|
547
|
+
/** Timeout for WebSocket connection establishment in ms (default: 15000) */
|
|
548
|
+
connectionTimeout?: number;
|
|
453
549
|
}
|
|
454
550
|
interface Subscription {
|
|
455
551
|
unsubscribe(): void;
|
|
@@ -490,6 +586,7 @@ interface RoomMediaTrack {
|
|
|
490
586
|
muted: boolean;
|
|
491
587
|
publishedAt?: number;
|
|
492
588
|
adminDisabled?: boolean;
|
|
589
|
+
providerSessionId?: string;
|
|
493
590
|
}
|
|
494
591
|
interface RoomMemberMediaKindState {
|
|
495
592
|
published: boolean;
|
|
@@ -498,6 +595,7 @@ interface RoomMemberMediaKindState {
|
|
|
498
595
|
deviceId?: string;
|
|
499
596
|
publishedAt?: number;
|
|
500
597
|
adminDisabled?: boolean;
|
|
598
|
+
providerSessionId?: string;
|
|
501
599
|
}
|
|
502
600
|
interface RoomMemberMediaState {
|
|
503
601
|
audio?: RoomMemberMediaKindState;
|
|
@@ -513,6 +611,66 @@ interface RoomMediaDeviceChange {
|
|
|
513
611
|
kind: RoomMediaKind;
|
|
514
612
|
deviceId: string;
|
|
515
613
|
}
|
|
614
|
+
interface RoomCloudflareRealtimeKitCreateSessionRequest {
|
|
615
|
+
connectionId?: string;
|
|
616
|
+
customParticipantId?: string;
|
|
617
|
+
name?: string;
|
|
618
|
+
picture?: string;
|
|
619
|
+
}
|
|
620
|
+
interface RoomCloudflareRealtimeKitCreateSessionResponse {
|
|
621
|
+
sessionId: string;
|
|
622
|
+
meetingId: string;
|
|
623
|
+
participantId: string;
|
|
624
|
+
authToken: string;
|
|
625
|
+
presetName: string;
|
|
626
|
+
connectionId?: string;
|
|
627
|
+
reused?: boolean;
|
|
628
|
+
}
|
|
629
|
+
interface RoomMediaTransportConnectPayload {
|
|
630
|
+
connectionId?: string;
|
|
631
|
+
customParticipantId?: string;
|
|
632
|
+
name?: string;
|
|
633
|
+
picture?: string;
|
|
634
|
+
}
|
|
635
|
+
interface RoomMediaRemoteTrackEvent {
|
|
636
|
+
kind: RoomMediaKind;
|
|
637
|
+
track: MediaStreamTrack;
|
|
638
|
+
stream?: MediaStream;
|
|
639
|
+
trackName?: string;
|
|
640
|
+
providerSessionId?: string;
|
|
641
|
+
participantId?: string;
|
|
642
|
+
customParticipantId?: string;
|
|
643
|
+
userId?: string;
|
|
644
|
+
}
|
|
645
|
+
interface RoomMediaTransport {
|
|
646
|
+
connect(payload?: RoomMediaTransportConnectPayload): Promise<string>;
|
|
647
|
+
enableAudio(constraints?: MediaTrackConstraints | boolean): Promise<MediaStreamTrack>;
|
|
648
|
+
enableVideo(constraints?: MediaTrackConstraints | boolean): Promise<MediaStreamTrack>;
|
|
649
|
+
startScreenShare(constraints?: unknown): Promise<MediaStreamTrack>;
|
|
650
|
+
disableAudio(): Promise<void>;
|
|
651
|
+
disableVideo(): Promise<void>;
|
|
652
|
+
stopScreenShare(): Promise<void>;
|
|
653
|
+
setMuted(kind: Extract<RoomMediaKind, 'audio' | 'video'>, muted: boolean): Promise<void>;
|
|
654
|
+
switchDevices(payload: {
|
|
655
|
+
audioInputId?: string;
|
|
656
|
+
videoInputId?: string;
|
|
657
|
+
screenInputId?: string;
|
|
658
|
+
}): Promise<void>;
|
|
659
|
+
onRemoteTrack(handler: (event: RoomMediaRemoteTrackEvent) => void): Subscription;
|
|
660
|
+
getSessionId(): string | null;
|
|
661
|
+
getPeerConnection(): RTCPeerConnection | null;
|
|
662
|
+
destroy(): void;
|
|
663
|
+
}
|
|
664
|
+
type RoomMediaTransportProvider = 'cloudflare_realtimekit' | 'p2p';
|
|
665
|
+
interface RoomCloudflareRealtimeKitTransportFactoryOptions {
|
|
666
|
+
provider?: 'cloudflare_realtimekit';
|
|
667
|
+
cloudflareRealtimeKit?: RoomCloudflareMediaTransportOptions;
|
|
668
|
+
}
|
|
669
|
+
interface RoomP2PTransportFactoryOptions {
|
|
670
|
+
provider: 'p2p';
|
|
671
|
+
p2p?: RoomP2PMediaTransportOptions;
|
|
672
|
+
}
|
|
673
|
+
type RoomMediaTransportOptions = RoomCloudflareRealtimeKitTransportFactoryOptions | RoomP2PTransportFactoryOptions;
|
|
516
674
|
declare class RoomClient {
|
|
517
675
|
private baseUrl;
|
|
518
676
|
private tokenManager;
|
|
@@ -585,6 +743,7 @@ declare class RoomClient {
|
|
|
585
743
|
};
|
|
586
744
|
readonly members: {
|
|
587
745
|
list: () => RoomMember[];
|
|
746
|
+
current: () => RoomMember | null;
|
|
588
747
|
onSync: (handler: (members: RoomMember[]) => void) => Subscription;
|
|
589
748
|
onJoin: (handler: (member: RoomMember) => void) => Subscription;
|
|
590
749
|
onLeave: (handler: (member: RoomMember, reason: RoomMemberLeaveReason) => void) => Subscription;
|
|
@@ -632,6 +791,10 @@ declare class RoomClient {
|
|
|
632
791
|
screenInputId?: string;
|
|
633
792
|
}) => Promise<void>;
|
|
634
793
|
};
|
|
794
|
+
cloudflareRealtimeKit: {
|
|
795
|
+
createSession: (payload?: RoomCloudflareRealtimeKitCreateSessionRequest) => Promise<RoomCloudflareRealtimeKitCreateSessionResponse>;
|
|
796
|
+
};
|
|
797
|
+
transport: (options?: RoomMediaTransportOptions) => RoomMediaTransport;
|
|
635
798
|
onTrack: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
|
|
636
799
|
onTrackRemoved: (handler: (track: RoomMediaTrack, member: RoomMember) => void) => Subscription;
|
|
637
800
|
onStateChange: (handler: (member: RoomMember, state: RoomMemberMediaState) => void) => Subscription;
|
|
@@ -653,6 +816,8 @@ declare class RoomClient {
|
|
|
653
816
|
* Returns developer-defined metadata set by room.setMetadata() on the server.
|
|
654
817
|
*/
|
|
655
818
|
getMetadata(): Promise<Record<string, unknown>>;
|
|
819
|
+
private requestCloudflareRealtimeKitMedia;
|
|
820
|
+
private requestRoomMedia;
|
|
656
821
|
/**
|
|
657
822
|
* Static: Get room metadata without creating a RoomClient instance.
|
|
658
823
|
* Useful for lobby screens where you need room info before joining.
|
|
@@ -662,6 +827,8 @@ declare class RoomClient {
|
|
|
662
827
|
join(): Promise<void>;
|
|
663
828
|
/** Leave the room and disconnect. Cleans up all pending requests. */
|
|
664
829
|
leave(): void;
|
|
830
|
+
/** Destroy the room client, cleaning up all listeners and the auth subscription. */
|
|
831
|
+
destroy(): void;
|
|
665
832
|
/**
|
|
666
833
|
* Send an action to the server.
|
|
667
834
|
* Returns a Promise that resolves with the action result from the server.
|
|
@@ -775,6 +942,7 @@ declare class RoomClient {
|
|
|
775
942
|
private upsertMediaTrack;
|
|
776
943
|
private removeMediaTrack;
|
|
777
944
|
private mergeMediaState;
|
|
945
|
+
private rejectAllPendingRequests;
|
|
778
946
|
private rejectPendingVoidRequests;
|
|
779
947
|
private setConnectionState;
|
|
780
948
|
private sendRaw;
|
|
@@ -1243,4 +1411,4 @@ declare function useTurnstile({ baseUrl, action, }: UseTurnstileOptions): UseTur
|
|
|
1243
1411
|
*/
|
|
1244
1412
|
declare function isPlatformWeb(): boolean;
|
|
1245
1413
|
|
|
1246
|
-
export { type AppStateAdapter, type AsyncStorageAdapter, AuthClient, type AuthResult, type AuthStateChangeHandler, ClientAnalytics, ClientEdgeBase, DatabaseLiveClient, type DatabaseLiveClientAdapter, type DatabaseLiveOptions, type FilterEntry, type FilterOperator, type JuneClientOptions, LifecycleManager, type LinkingAdapter, type PasskeysAuthOptions, PushClient, type PushMessage, type PushMessageHandler, type PushPermissionProvider, type PushPermissionStatus, type PushPlatform, type PushTokenProvider, RoomClient, type RoomConnectionState, type RoomMediaDeviceChange, type RoomMediaKind, type RoomMediaMember, type RoomMediaTrack, type RoomMember, type RoomMemberLeaveReason, type RoomMemberMediaKindState, type RoomMemberMediaState, type RoomOptions, type RoomReconnectInfo, type RoomSignalMeta, type Session, type SignInOptions, type SignUpOptions, type Subscription, TokenManager, type TokenPair, type TokenUser, TurnstileWebView, type TurnstileWebViewProps, type UpdateProfileOptions, type UseLifecycleOptions, type UseTurnstileOptions, type UseTurnstileResult, createClient, isPlatformWeb, matchesFilter, useLifecycle, useTurnstile };
|
|
1414
|
+
export { type AppStateAdapter, type AsyncStorageAdapter, AuthClient, type AuthResult, type AuthStateChangeHandler, ClientAnalytics, ClientEdgeBase, DatabaseLiveClient, type DatabaseLiveClientAdapter, type DatabaseLiveOptions, type FilterEntry, type FilterOperator, type JuneClientOptions, LifecycleManager, type LinkingAdapter, type PasskeysAuthOptions, PushClient, type PushMessage, type PushMessageHandler, type PushPermissionProvider, type PushPermissionStatus, type PushPlatform, type PushTokenProvider, RoomClient, type RoomCloudflareRealtimeKitCreateSessionRequest, type RoomCloudflareRealtimeKitCreateSessionResponse, type RoomCloudflareRealtimeKitTransportFactoryOptions, type RoomConnectionState, type RoomMediaDeviceChange, type RoomMediaKind, type RoomMediaMember, type RoomMediaRemoteTrackEvent, type RoomMediaTrack, type RoomMediaTransport, type RoomMediaTransportConnectPayload, type RoomMediaTransportOptions, type RoomMediaTransportProvider, type RoomMember, type RoomMemberLeaveReason, type RoomMemberMediaKindState, type RoomMemberMediaState, type RoomOptions, type RoomP2PTransportFactoryOptions, type RoomReconnectInfo, type RoomSignalMeta, type Session, type SignInOptions, type SignUpOptions, type Subscription, TokenManager, type TokenPair, type TokenUser, TurnstileWebView, type TurnstileWebViewProps, type UpdateProfileOptions, type UseLifecycleOptions, type UseTurnstileOptions, type UseTurnstileResult, createClient, isPlatformWeb, matchesFilter, useLifecycle, useTurnstile };
|