openrtc 1.0.26 → 2.0.0-rc.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 +143 -205
- package/dist/DelegatingRuntimeAdapter-DqfHkjLy.d.ts +373 -0
- package/dist/ITransport-BsPcaov7.d.ts +16 -0
- package/dist/OpenRTCShared-TKAQLONA.js +1 -0
- package/dist/WasmBridge-2A22U7RU.js +1 -0
- package/dist/auth/index.js +1 -1
- package/dist/auth/internal.js +1 -1
- package/dist/{capabilities-CaqXOIUU.d.ts → capabilities-YSskrE8H.d.ts} +1 -1
- package/dist/chunk-2QHDEGVX.js +1 -0
- package/dist/chunk-4K2QPYGT.js +2 -0
- package/dist/chunk-7Z6N46RB.js +2 -0
- package/dist/chunk-A3IAG6EL.js +1 -0
- package/dist/chunk-BXFXPIXO.js +1 -0
- package/dist/chunk-CEMN2JKR.js +3 -0
- package/dist/chunk-DTWEQS3J.js +1 -0
- package/dist/chunk-GW7P3D54.js +1 -0
- package/dist/chunk-K37WVIZL.js +1 -0
- package/dist/chunk-N26S7V4N.js +1 -0
- package/dist/chunk-N4SX7C3W.js +2 -0
- package/dist/chunk-NB4H5TP3.js +1 -0
- package/dist/chunk-NT5YHZQH.js +1 -0
- package/dist/chunk-PODAMIL6.js +2 -0
- package/dist/chunk-RD3JEGGF.js +2 -0
- package/dist/chunk-UEYM6WTT.js +2 -0
- package/dist/chunk-VK6KX433.js +1 -0
- package/dist/chunk-WMRCP3YX.js +1 -0
- package/dist/chunk-XE43HAXV.js +2 -0
- package/dist/chunk-YBXGNKM7.js +2 -0
- package/dist/chunk-YGJ6OAPR.js +1 -0
- package/dist/factories-O5575ECL.js +1 -0
- package/dist/index.d.ts +11 -65
- package/dist/index.js +1 -1
- package/dist/ipcFactory-FBNUVH7V.js +1 -0
- package/dist/native.d.ts +9 -15
- package/dist/native.js +1 -1
- package/dist/openrtc_bg.wasm +0 -0
- package/dist/runtime/WasmRuntimeAdapter.d.ts +3 -3
- package/dist/runtime/WasmRuntimeAdapter.js +1 -1
- package/dist/runtime/device-status.d.ts +3 -2
- package/dist/runtime/index.d.ts +110 -17
- package/dist/runtime/index.js +2 -1
- package/dist/runtime/tauri.d.ts +4 -4
- package/dist/runtime/tauri.js +1 -1
- package/dist/{tauri-BpsecNrp.d.ts → tauri-Cz9n17g8.d.ts} +2 -2
- package/dist/testing.d.ts +29 -0
- package/dist/testing.js +1 -0
- package/dist/transport/index.d.ts +47 -7
- package/dist/transport/index.js +1 -1
- package/dist/{assembly-CscFVHYK.d.ts → types-BDc7AZYI.d.ts} +446 -28
- package/dist/{types-BJU2GoVb.d.ts → types-BUXwspL0.d.ts} +11 -17
- package/dist/{types-zT2QwuCv.d.ts → types-BVJr065k.d.ts} +43 -3
- package/package.json +15 -4
- package/dist/DelegatingRuntimeAdapter-Cg3jFk1b.d.ts +0 -133
- package/dist/chunk-2W2YWRIZ.js +0 -1
- package/dist/chunk-BW6OKBHV.js +0 -2
- package/dist/chunk-D4JYPV6F.js +0 -2
- package/dist/chunk-DIBUXEEO.js +0 -1
- package/dist/chunk-DXJZDB7Q.js +0 -3
- package/dist/chunk-OCSZA6PK.js +0 -2
- package/dist/chunk-PPGIC6DR.js +0 -2
- package/dist/chunk-QBAVJDN2.js +0 -2
- package/dist/chunk-QT2ASNI3.js +0 -1
- package/dist/framing-zRvEKOld.d.ts +0 -29
- package/dist/spaceTokens-CiwcKKr2.d.ts +0 -297
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { H as GrantScope, q as ISignalingBackend, Y as ConnectDeviceHooks, Z as ConnectDeviceOptions, _ as ConnectDeviceResult, u as ManagedConnectionRecord, m as PeerSessionSnapshot, v as ResolvedPeerIdentity, $ as AppLimits, N as NativeConnectParams, z as NativeConnectResult, E as ExplicitFileDataSendParams } from './types-BVJr065k.js';
|
|
1
2
|
import { A as AuthContext } from './IEngineBridge-BbsT8hof.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { R as RuntimeCapabilities, a as RuntimeCapabilityProfile } from './capabilities-CaqXOIUU.js';
|
|
3
|
+
import { a as RuntimePeerState, b as RuntimeConnectionStateSnapshot, c as RuntimePeerReadinessSnapshot, d as RuntimePeerConnectOptions, C as Connection, e as RuntimeIncomingStream, R as RuntimeClientOptions, f as RuntimeAuthIdentity, g as RuntimeLocalDeviceInfo, h as RuntimeLocalDeviceProfile, i as RuntimeDevice, j as RuntimeManagedSessionOptions, k as RuntimeManagedSession, l as RuntimeDeviceStatusSnapshot, m as RuntimeDeviceConnectOptions, n as RuntimeSession, o as RuntimeJoinRoomOptions, p as RuntimeRoomMember, q as RuntimeConnectionTarget, r as RuntimeScopedChannelOptions, s as RuntimeScopedLogicalChannel, t as RuntimePeerStreamOptions, u as RuntimeRawConnection, v as RuntimeChannelDescriptor, w as RuntimePresenceLoopOptions, x as RuntimePeerHealth, y as RuntimeApplicationPayloadReadinessOptions, z as RuntimeConnectionEvent } from './types-BUXwspL0.js';
|
|
4
|
+
import { R as RuntimeCapabilities, a as RuntimeCapabilityProfile } from './capabilities-YSskrE8H.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Coalesced peer reconciliation scheduler and full reconcile orchestration.
|
|
@@ -75,30 +75,6 @@ interface Session {
|
|
|
75
75
|
/** Tear down all subscriptions and disconnect scope-tagged connections. */
|
|
76
76
|
dispose(): void;
|
|
77
77
|
}
|
|
78
|
-
declare class ScopedSession implements Session {
|
|
79
|
-
readonly scope: string;
|
|
80
|
-
private _disposed;
|
|
81
|
-
private readonly runtime;
|
|
82
|
-
private readonly allowAllPeers;
|
|
83
|
-
private readonly allowedPeerIds;
|
|
84
|
-
private readonly cleanups;
|
|
85
|
-
constructor(runtime: RuntimeClient, options: SessionOptions);
|
|
86
|
-
get disposed(): boolean;
|
|
87
|
-
/** Returns true when this session should receive events for this peer. */
|
|
88
|
-
private matchesPeer;
|
|
89
|
-
private matchesConnectionState;
|
|
90
|
-
private matchesStream;
|
|
91
|
-
watchPeerStates(callback: (peers: RuntimePeerState[]) => void): () => void;
|
|
92
|
-
onConnectionStateChange(callback: (state: RuntimeConnectionStateSnapshot) => void): (() => void) | Promise<() => void>;
|
|
93
|
-
listConnectedPeers(): RuntimePeerState[];
|
|
94
|
-
getPeerReadiness(peerId: string): Promise<RuntimePeerReadinessSnapshot>;
|
|
95
|
-
connectPeer(options: RuntimePeerConnectOptions): Promise<Connection>;
|
|
96
|
-
disconnectPeer(peerId: string): Promise<void>;
|
|
97
|
-
onIncomingStream(callback: (stream: RuntimeIncomingStream) => void): () => void;
|
|
98
|
-
dispose(): void;
|
|
99
|
-
private releaseScopedPeersOnDispose;
|
|
100
|
-
private assertNotDisposed;
|
|
101
|
-
}
|
|
102
78
|
|
|
103
79
|
/**
|
|
104
80
|
* Phase 4 of the OpenRTC auth + connection remediation plan
|
|
@@ -320,6 +296,7 @@ declare class RuntimeClient {
|
|
|
320
296
|
private managedSessionOptions;
|
|
321
297
|
private managedSessionTransition;
|
|
322
298
|
private managedSessionStartInFlight;
|
|
299
|
+
private terminalShutdown;
|
|
323
300
|
private readonly managedReconciliationTasks;
|
|
324
301
|
private managedReconciliationTimer;
|
|
325
302
|
private readonly managedReconciliationFollowupTimers;
|
|
@@ -617,6 +594,14 @@ declare class RuntimeClient {
|
|
|
617
594
|
connect(): Promise<void>;
|
|
618
595
|
/** Disconnect from the runtime (alias for stop()) */
|
|
619
596
|
disconnect(): void;
|
|
597
|
+
/**
|
|
598
|
+
* Await the provider-neutral terminal lifecycle before destroying this
|
|
599
|
+
* runtime instance. Consumers that may create a replacement runtime in the
|
|
600
|
+
* same page should use this instead of composing setOffline(), stop(), and
|
|
601
|
+
* destroy() themselves: the active adapter owns presence, coordination
|
|
602
|
+
* sockets, session readers, and scoped connection actors.
|
|
603
|
+
*/
|
|
604
|
+
shutdown(): Promise<void>;
|
|
620
605
|
/**
|
|
621
606
|
* Terminal teardown of the runtime instance. Unlike stop()/disconnect()
|
|
622
607
|
* (which only stop the listen loop and are used during normal operation),
|
|
@@ -715,4 +700,437 @@ interface PlutoRuntimeAssembly<TBackend extends RuntimeAdapterWithAuth = Runtime
|
|
|
715
700
|
setAutoConnectExcluded(deviceId: string, excluded: boolean): Promise<void>;
|
|
716
701
|
}
|
|
717
702
|
|
|
718
|
-
|
|
703
|
+
type OpenRTCChannelConnectOptions = Omit<RuntimeScopedChannelOptions, 'scope' | 'deviceId' | 'ticket'> & {
|
|
704
|
+
/**
|
|
705
|
+
* Device selected from `client.devices.*`. Passing the device object lets
|
|
706
|
+
* OpenRTC reuse its current ticket for native and ticket-gated routes.
|
|
707
|
+
*/
|
|
708
|
+
device?: string | RuntimeDevice;
|
|
709
|
+
deviceId?: string | null;
|
|
710
|
+
ticket?: string;
|
|
711
|
+
/**
|
|
712
|
+
* Logical channel lifecycle scope. Most app channels should use the default
|
|
713
|
+
* `session`; pass a custom scope only when you intentionally manage peer
|
|
714
|
+
* lifecycle separately from the channel.
|
|
715
|
+
*/
|
|
716
|
+
scope?: RuntimeScopedChannelOptions['scope'];
|
|
717
|
+
};
|
|
718
|
+
type OpenRTCDeviceSessionOptions = Omit<RuntimeManagedSessionOptions, 'platform'> & {
|
|
719
|
+
/**
|
|
720
|
+
* Runtime host for the managed user-device session. Normal apps can omit
|
|
721
|
+
* this: `OpenRTC(...)` defaults to `web`, and `OpenRTC.native(...)` defaults
|
|
722
|
+
* to `native`.
|
|
723
|
+
*/
|
|
724
|
+
platform?: RuntimeManagedSessionOptions['platform'];
|
|
725
|
+
};
|
|
726
|
+
interface OpenRTCDeviceNamespace {
|
|
727
|
+
startSession(options?: OpenRTCDeviceSessionOptions): Promise<RuntimeManagedSession>;
|
|
728
|
+
stopSession(options?: {
|
|
729
|
+
preserveBackendSession?: boolean;
|
|
730
|
+
}): Promise<void>;
|
|
731
|
+
list(): Promise<RuntimeDevice[]>;
|
|
732
|
+
listWithStatus(): Promise<RuntimeDeviceStatusSnapshot[]>;
|
|
733
|
+
watch(callback: (devices: RuntimeDevice[]) => void): () => void;
|
|
734
|
+
watchWithStatus(callback: (devices: RuntimeDeviceStatusSnapshot[]) => void): () => void;
|
|
735
|
+
connect(device: string | RuntimeDevice, options?: RuntimeDeviceConnectOptions): Promise<ConnectDeviceResult>;
|
|
736
|
+
/**
|
|
737
|
+
* @deprecated Use `devices.connect()`. Retry and route recovery are owned by
|
|
738
|
+
* OpenRTC; legacy consumer-provided connection hooks are ignored.
|
|
739
|
+
*/
|
|
740
|
+
connectWithRetry(device: string | RuntimeDevice, hooks: ConnectDeviceHooks, options: ConnectDeviceOptions): Promise<ConnectDeviceResult>;
|
|
741
|
+
disconnect(deviceId: string): Promise<void>;
|
|
742
|
+
update(deviceId: string, updates: {
|
|
743
|
+
deviceName?: string;
|
|
744
|
+
capabilities?: RuntimeDevice['capabilities'];
|
|
745
|
+
metadata?: string;
|
|
746
|
+
}): Promise<void>;
|
|
747
|
+
delete(deviceId: string): Promise<void>;
|
|
748
|
+
localId(): Promise<string | null>;
|
|
749
|
+
localInfo(): Promise<RuntimeLocalDeviceInfo | null>;
|
|
750
|
+
localProfile(options?: {
|
|
751
|
+
deviceName?: string;
|
|
752
|
+
localDeviceId?: string | null;
|
|
753
|
+
platform?: 'native' | 'web';
|
|
754
|
+
userId?: string | null;
|
|
755
|
+
}): Promise<RuntimeLocalDeviceProfile>;
|
|
756
|
+
updateLocalName(deviceName: string): Promise<RuntimeLocalDeviceInfo | null>;
|
|
757
|
+
}
|
|
758
|
+
interface OpenRTCPeerNamespace {
|
|
759
|
+
watch(callback: (peers: RuntimePeerState[]) => void): () => void;
|
|
760
|
+
watchLifecycle(callback: (peers: RuntimePeerState[]) => void): () => void;
|
|
761
|
+
get(id: string): RuntimePeerState | undefined;
|
|
762
|
+
listConnected(): RuntimePeerState[];
|
|
763
|
+
connect(options: RuntimePeerConnectOptions): Promise<Connection>;
|
|
764
|
+
disconnect(id: string, scope?: string): Promise<void>;
|
|
765
|
+
forceDisconnect(id: string): Promise<void>;
|
|
766
|
+
session(id: string): Promise<PeerSessionSnapshot | null>;
|
|
767
|
+
sessions(): Promise<PeerSessionSnapshot[]>;
|
|
768
|
+
waitConnected(id: string, timeoutMs?: number): Promise<PeerSessionSnapshot | null>;
|
|
769
|
+
readiness(id: string, timeoutMs?: number): Promise<RuntimePeerReadinessSnapshot>;
|
|
770
|
+
health(id: string): Promise<RuntimePeerHealth>;
|
|
771
|
+
identity(id: string): Promise<ResolvedPeerIdentity>;
|
|
772
|
+
addScope(id: string, scope?: string): RuntimePeerState | undefined;
|
|
773
|
+
releaseScope(id: string, scope?: string): RuntimePeerState | undefined;
|
|
774
|
+
scopes(id: string): string[];
|
|
775
|
+
refresh(): Promise<RuntimePeerState[]>;
|
|
776
|
+
}
|
|
777
|
+
interface OpenRTCChannelNamespace {
|
|
778
|
+
register(descriptor: RuntimeChannelDescriptor): void;
|
|
779
|
+
unregister(channelId: string): void;
|
|
780
|
+
list(): RuntimeChannelDescriptor[];
|
|
781
|
+
openBi(id: string, channelId: string, options?: Omit<RuntimePeerStreamOptions, 'channelId'>): Promise<{
|
|
782
|
+
connection: Connection;
|
|
783
|
+
readable: ReadableStream<Uint8Array>;
|
|
784
|
+
writable: WritableStream<Uint8Array>;
|
|
785
|
+
}>;
|
|
786
|
+
openUni(id: string, channelId: string, options?: Omit<RuntimePeerStreamOptions, 'channelId'>): Promise<{
|
|
787
|
+
connection: Connection;
|
|
788
|
+
writable: WritableStream<Uint8Array>;
|
|
789
|
+
}>;
|
|
790
|
+
onIncoming(callback: (stream: RuntimeIncomingStream) => boolean | void): () => void;
|
|
791
|
+
onIncomingChannel(channelId: string, callback: (stream: RuntimeIncomingStream & {
|
|
792
|
+
channel: NonNullable<RuntimeIncomingStream['channel']>;
|
|
793
|
+
}) => boolean | void): () => void;
|
|
794
|
+
connect(options: OpenRTCChannelConnectOptions): Promise<RuntimeScopedLogicalChannel>;
|
|
795
|
+
connectScoped(options: RuntimeScopedChannelOptions): Promise<RuntimeScopedLogicalChannel>;
|
|
796
|
+
}
|
|
797
|
+
interface OpenRTCRoomNamespace {
|
|
798
|
+
create(roomId?: string): Promise<string>;
|
|
799
|
+
join(roomId: string, options?: RuntimeJoinRoomOptions): Promise<Connection[]>;
|
|
800
|
+
leave(roomId: string): Promise<void>;
|
|
801
|
+
watch(roomId: string, callback: (members: RuntimeRoomMember[]) => void): () => void;
|
|
802
|
+
members(roomId: string): Promise<RuntimeRoomMember[]>;
|
|
803
|
+
}
|
|
804
|
+
interface OpenRTCTicketNamespace {
|
|
805
|
+
raw(): Promise<string>;
|
|
806
|
+
share(options?: {
|
|
807
|
+
maxConnections?: number;
|
|
808
|
+
}): Promise<string>;
|
|
809
|
+
grant(scope: GrantScope, options?: {
|
|
810
|
+
maxConnections?: number;
|
|
811
|
+
}): Promise<string>;
|
|
812
|
+
revoke(scope: GrantScope): Promise<string[]>;
|
|
813
|
+
}
|
|
814
|
+
interface OpenRTCDiagnosticsNamespace {
|
|
815
|
+
status(): Promise<{
|
|
816
|
+
runtime: 'tauri' | 'browser' | 'unknown';
|
|
817
|
+
wasmLoaded: boolean;
|
|
818
|
+
localNodeId?: string;
|
|
819
|
+
userId?: string;
|
|
820
|
+
}>;
|
|
821
|
+
policy(): RuntimePolicySnapshot;
|
|
822
|
+
capabilities(): RuntimeCapabilities;
|
|
823
|
+
capabilityProfile(): RuntimeCapabilityProfile;
|
|
824
|
+
connectionStates(): Promise<RuntimeConnectionStateSnapshot[]>;
|
|
825
|
+
onConnectionStateChange(callback: (state: RuntimeConnectionStateSnapshot) => void): Promise<() => void> | (() => void);
|
|
826
|
+
connections(): Connection[];
|
|
827
|
+
applicationReadyConnections(options?: RuntimeApplicationPayloadReadinessOptions): Connection[];
|
|
828
|
+
onConnection(callback: (connection: Connection) => void): () => void;
|
|
829
|
+
onDisconnection(callback: (connection: Connection) => void): () => void;
|
|
830
|
+
onConnectionEvent(callback: (event: RuntimeConnectionEvent) => void): () => void;
|
|
831
|
+
forceReconnectSnapshot(): void;
|
|
832
|
+
peerReconciliation(): Readonly<PeerReconciliationStats>;
|
|
833
|
+
}
|
|
834
|
+
interface OpenRTCAdvancedNamespace {
|
|
835
|
+
readonly runtime: RuntimeClient;
|
|
836
|
+
readonly assembly: PlutoRuntimeAssembly;
|
|
837
|
+
nodeId(): Promise<string>;
|
|
838
|
+
nodeIdFromTicket(ticket: string): Promise<string | null>;
|
|
839
|
+
endpointTicket(): Promise<string>;
|
|
840
|
+
connectRaw(target: {
|
|
841
|
+
ticket: string;
|
|
842
|
+
timeoutMs?: number;
|
|
843
|
+
}): Promise<RuntimeRawConnection>;
|
|
844
|
+
openBi(nodeId: string): Promise<{
|
|
845
|
+
readable: ReadableStream<Uint8Array>;
|
|
846
|
+
writable: WritableStream<Uint8Array>;
|
|
847
|
+
}>;
|
|
848
|
+
openUni(nodeId: string): Promise<WritableStream<Uint8Array>>;
|
|
849
|
+
isConnected(nodeId: string): Promise<boolean>;
|
|
850
|
+
disconnectNode(nodeId: string): Promise<void>;
|
|
851
|
+
setAutoConnectExcluded(deviceId: string, excluded: boolean): Promise<void>;
|
|
852
|
+
notifyNetworkChange(reason?: string): Promise<void>;
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* OpenRTCClient extends RuntimeClient with auth helpers that were
|
|
856
|
+
* previously only available on PlutoRuntimeAssembly.
|
|
857
|
+
*
|
|
858
|
+
* This is the unified type returned by OpenRTC() and OpenRTC.native().
|
|
859
|
+
*/
|
|
860
|
+
interface OpenRTCClient$1 extends RuntimeClient {
|
|
861
|
+
readonly devices: OpenRTCDeviceNamespace;
|
|
862
|
+
readonly peers: OpenRTCPeerNamespace;
|
|
863
|
+
readonly channels: OpenRTCChannelNamespace;
|
|
864
|
+
readonly rooms: OpenRTCRoomNamespace;
|
|
865
|
+
readonly tickets: OpenRTCTicketNamespace;
|
|
866
|
+
readonly diagnostics: OpenRTCDiagnosticsNamespace;
|
|
867
|
+
readonly advanced: OpenRTCAdvancedNamespace;
|
|
868
|
+
/** @deprecated Use setAuth() instead */
|
|
869
|
+
setAuthContext(context: AuthContext | null): Promise<void>;
|
|
870
|
+
/** Set auth context for the runtime */
|
|
871
|
+
setAuth(context: AuthContext | null): Promise<void>;
|
|
872
|
+
/** Sync Pluto-hosted auth to the runtime */
|
|
873
|
+
syncPlutoAuth(options?: {
|
|
874
|
+
userId?: string | null;
|
|
875
|
+
forceRefresh?: boolean;
|
|
876
|
+
}): Promise<void>;
|
|
877
|
+
/** Bind Pluto auth host to auto-sync on token changes */
|
|
878
|
+
bindPlutoAuthHost(): () => void;
|
|
879
|
+
/** Sign in via Pluto SSO */
|
|
880
|
+
signIn(): Promise<void>;
|
|
881
|
+
/** Sign out and clear auth context */
|
|
882
|
+
signOut(): Promise<void>;
|
|
883
|
+
/**
|
|
884
|
+
* @deprecated Use `client.devices.startSession(...)` for the public
|
|
885
|
+
* user-device avenue lifecycle. This top-level method remains for
|
|
886
|
+
* RuntimeClient compatibility and advanced integrations.
|
|
887
|
+
*/
|
|
888
|
+
startManagedSession(options: RuntimeManagedSessionOptions): Promise<RuntimeManagedSession>;
|
|
889
|
+
/**
|
|
890
|
+
* @deprecated Use `client.devices.stopSession(...)` for the public
|
|
891
|
+
* user-device avenue lifecycle.
|
|
892
|
+
*/
|
|
893
|
+
stopManagedSession(options?: {
|
|
894
|
+
preserveBackendSession?: boolean;
|
|
895
|
+
}): Promise<void>;
|
|
896
|
+
/** @deprecated Use `client.rooms.create(...)`. */
|
|
897
|
+
createRoom(roomId?: string): Promise<string>;
|
|
898
|
+
/** @deprecated Use `client.rooms.join(...)`. */
|
|
899
|
+
joinRoom(roomId: string, options?: RuntimeJoinRoomOptions): Promise<Connection[]>;
|
|
900
|
+
/** @deprecated Use `client.rooms.leave(...)`. */
|
|
901
|
+
leaveRoom(roomId: string): Promise<void>;
|
|
902
|
+
/** @deprecated Use `client.rooms.watch(...)`. */
|
|
903
|
+
watchRoom(roomId: string, callback: (members: RuntimeRoomMember[]) => void): () => void;
|
|
904
|
+
/** @deprecated Use `client.rooms.members(...)`. */
|
|
905
|
+
getRoomMembers(roomId: string): Promise<RuntimeRoomMember[]>;
|
|
906
|
+
/** @deprecated Use `client.tickets.raw(...)`. */
|
|
907
|
+
getInvite(): Promise<string>;
|
|
908
|
+
/** @deprecated Use `client.tickets.raw(...)`. */
|
|
909
|
+
getTicket(): Promise<string>;
|
|
910
|
+
/** @deprecated Use `client.tickets.share(...)` or `client.tickets.grant(...)`. */
|
|
911
|
+
getTicketWithToken(scope: GrantScope, maxConnections?: number): Promise<string>;
|
|
912
|
+
/** @deprecated Use `client.tickets.revoke(...)`. */
|
|
913
|
+
revokeTokensByScope(scope: GrantScope): Promise<string[]>;
|
|
914
|
+
/** @deprecated Use `client.peers.connect(...)`. */
|
|
915
|
+
connectPeer(options: RuntimePeerConnectOptions): Promise<Connection>;
|
|
916
|
+
/** @deprecated Use `client.peers.connect(...)`. */
|
|
917
|
+
connectTo(options: RuntimePeerConnectOptions): Promise<Connection>;
|
|
918
|
+
/** @deprecated Use `client.peers.waitConnected(...)`. */
|
|
919
|
+
waitForConnectedPeer(id: string, timeoutMs?: number): Promise<PeerSessionSnapshot | null>;
|
|
920
|
+
/** @deprecated Use `client.channels.connect(...)`; use `client.channels.connectScoped(...)` only for custom lifecycle scopes. */
|
|
921
|
+
connectScopedChannel(options: RuntimeScopedChannelOptions): Promise<RuntimeScopedLogicalChannel>;
|
|
922
|
+
/** @deprecated Use `client.channels.openBi(...)`. */
|
|
923
|
+
openPeerBi(id: string, options?: RuntimePeerStreamOptions): Promise<{
|
|
924
|
+
connection: Connection;
|
|
925
|
+
readable: ReadableStream<Uint8Array>;
|
|
926
|
+
writable: WritableStream<Uint8Array>;
|
|
927
|
+
}>;
|
|
928
|
+
/** @deprecated Use `client.channels.openUni(...)`. */
|
|
929
|
+
openPeerUni(id: string, options?: RuntimePeerStreamOptions): Promise<{
|
|
930
|
+
connection: Connection;
|
|
931
|
+
writable: WritableStream<Uint8Array>;
|
|
932
|
+
}>;
|
|
933
|
+
/**
|
|
934
|
+
* Access to the underlying PlutoRuntimeAssembly for backward compatibility.
|
|
935
|
+
* @deprecated Access methods directly on the client instead.
|
|
936
|
+
*/
|
|
937
|
+
readonly runtime: RuntimeClient;
|
|
938
|
+
/**
|
|
939
|
+
* Access to the underlying PlutoRuntimeAssembly for backward compatibility.
|
|
940
|
+
* @internal
|
|
941
|
+
*/
|
|
942
|
+
readonly _assembly: PlutoRuntimeAssembly;
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
interface OpenRTCAuthProvider {
|
|
946
|
+
/** Registered provider ID from the developer app capability manifest. */
|
|
947
|
+
readonly providerId?: string;
|
|
948
|
+
getAssertion(input: {
|
|
949
|
+
audience: 'https://api.openrtc.app/v2/assertions/exchange';
|
|
950
|
+
forceRefresh: boolean;
|
|
951
|
+
}): Promise<string | null>;
|
|
952
|
+
/**
|
|
953
|
+
* Optional identity-epoch observer. Notify only when the signed-in
|
|
954
|
+
* principal/session changes (login, logout, account switch, or explicit
|
|
955
|
+
* revocation). Do not notify for ordinary OAuth/Firebase access-token
|
|
956
|
+
* refreshes: OpenRTC refreshes its own avenue grant in place.
|
|
957
|
+
*/
|
|
958
|
+
subscribe?(listener: () => void): () => void;
|
|
959
|
+
}
|
|
960
|
+
interface OpenRTCAttestationProvider {
|
|
961
|
+
readonly kind: 'firebase-app-check' | 'apple-app-attest' | 'play-integrity' | `custom:${string}`;
|
|
962
|
+
/**
|
|
963
|
+
* Describes what the provider actually signs. Reusable app-integrity
|
|
964
|
+
* tokens (for example Firebase App Check) do not become request-bound just
|
|
965
|
+
* because OpenRTC supplies an enrollment challenge. The server derives and
|
|
966
|
+
* enforces the authoritative binding from the registered provider kind;
|
|
967
|
+
* this field keeps host integrations and diagnostics honest.
|
|
968
|
+
*/
|
|
969
|
+
readonly evidenceBinding: 'app-session' | 'request-challenge';
|
|
970
|
+
getEvidence(input: {
|
|
971
|
+
challenge: string;
|
|
972
|
+
apiKey: string;
|
|
973
|
+
}): Promise<{
|
|
974
|
+
token: string;
|
|
975
|
+
}>;
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* Optional consumer-owned bot challenge. Core OpenRTC does not render a UI or
|
|
979
|
+
* load a CAPTCHA dependency; the host supplies a fresh token only when its
|
|
980
|
+
* developer manifest requires anonymous capability verification.
|
|
981
|
+
*/
|
|
982
|
+
interface OpenRTCBotVerificationProvider {
|
|
983
|
+
getToken(input: {
|
|
984
|
+
action: 'openrtc_capability';
|
|
985
|
+
apiKey: string;
|
|
986
|
+
}): Promise<string>;
|
|
987
|
+
}
|
|
988
|
+
interface OpenRTCUsageUpdate {
|
|
989
|
+
sessionCreditsUsd: number;
|
|
990
|
+
operation: string;
|
|
991
|
+
estimated: boolean;
|
|
992
|
+
}
|
|
993
|
+
interface OpenRTCUsageWarning extends OpenRTCUsageUpdate {
|
|
994
|
+
thresholdCreditsUsd: number;
|
|
995
|
+
kind: 'warning' | 'session-limit';
|
|
996
|
+
}
|
|
997
|
+
interface OpenRTCTransportPreferences {
|
|
998
|
+
iroh?: boolean;
|
|
999
|
+
webrtc?: boolean;
|
|
1000
|
+
relay?: boolean;
|
|
1001
|
+
moq?: boolean;
|
|
1002
|
+
ble?: boolean;
|
|
1003
|
+
/**
|
|
1004
|
+
* Advanced privacy mode. `relay-only` suppresses direct Iroh addresses,
|
|
1005
|
+
* local discovery, and host/srflx WebRTC candidates. It also requires the
|
|
1006
|
+
* developer manifest's relay opt-in.
|
|
1007
|
+
*/
|
|
1008
|
+
privacy?: 'direct' | 'relay-only';
|
|
1009
|
+
/**
|
|
1010
|
+
* Advanced native integration for hosts whose Rust process owns the
|
|
1011
|
+
* application protocol registry (for example, a Tauri file-transfer host).
|
|
1012
|
+
* Normal SDK consumers should leave this disabled.
|
|
1013
|
+
*/
|
|
1014
|
+
nativeHostProtocols?: boolean;
|
|
1015
|
+
priority?: readonly ('iroh' | 'webrtc' | 'moq' | 'ble')[];
|
|
1016
|
+
}
|
|
1017
|
+
interface OpenRTCOptions {
|
|
1018
|
+
apiKey: string;
|
|
1019
|
+
auth?: OpenRTCAuthProvider;
|
|
1020
|
+
trust?: {
|
|
1021
|
+
attestation?: OpenRTCAttestationProvider;
|
|
1022
|
+
botVerification?: OpenRTCBotVerificationProvider;
|
|
1023
|
+
};
|
|
1024
|
+
usage?: {
|
|
1025
|
+
warnAtSessionCreditsUsd?: number;
|
|
1026
|
+
maxSessionCreditsUsd?: number;
|
|
1027
|
+
onUsage?: (event: OpenRTCUsageUpdate) => void;
|
|
1028
|
+
onWarning?: (warning: OpenRTCUsageWarning) => void;
|
|
1029
|
+
};
|
|
1030
|
+
transports?: OpenRTCTransportPreferences;
|
|
1031
|
+
}
|
|
1032
|
+
type OpenRTCAccessMode = 'capability' | 'authenticated';
|
|
1033
|
+
type OpenRTCLatestStateMode = 'reliable' | 'latest-state';
|
|
1034
|
+
interface OpenRTCCapabilityHandle {
|
|
1035
|
+
readonly kind: 'devices' | 'space' | 'room' | 'ticket';
|
|
1036
|
+
readonly id: string;
|
|
1037
|
+
readonly peers: OpenRTCPeerNamespace;
|
|
1038
|
+
readonly channels: OpenRTCChannelNamespace;
|
|
1039
|
+
readonly diagnostics: OpenRTCDiagnosticsNamespace;
|
|
1040
|
+
readonly closed: boolean;
|
|
1041
|
+
close(): Promise<void>;
|
|
1042
|
+
}
|
|
1043
|
+
interface OpenRTCDevicesHandle extends OpenRTCCapabilityHandle {
|
|
1044
|
+
readonly kind: 'devices';
|
|
1045
|
+
localId(): ReturnType<OpenRTCDeviceNamespace['localId']>;
|
|
1046
|
+
localInfo(): ReturnType<OpenRTCDeviceNamespace['localInfo']>;
|
|
1047
|
+
list(): ReturnType<OpenRTCDeviceNamespace['list']>;
|
|
1048
|
+
listWithStatus(): ReturnType<OpenRTCDeviceNamespace['listWithStatus']>;
|
|
1049
|
+
watch: OpenRTCDeviceNamespace['watch'];
|
|
1050
|
+
connect: OpenRTCDeviceNamespace['connect'];
|
|
1051
|
+
disconnect: OpenRTCDeviceNamespace['disconnect'];
|
|
1052
|
+
}
|
|
1053
|
+
interface OpenRTCSpaceHandle extends OpenRTCCapabilityHandle {
|
|
1054
|
+
readonly kind: 'space';
|
|
1055
|
+
readonly delivery: OpenRTCLatestStateMode;
|
|
1056
|
+
leave(): Promise<void>;
|
|
1057
|
+
}
|
|
1058
|
+
interface OpenRTCRoomHandle extends OpenRTCCapabilityHandle {
|
|
1059
|
+
readonly kind: 'room';
|
|
1060
|
+
readonly membership: 'ephemeral' | 'durable';
|
|
1061
|
+
leave(): Promise<void>;
|
|
1062
|
+
}
|
|
1063
|
+
interface OpenRTCTicketHandle extends OpenRTCCapabilityHandle {
|
|
1064
|
+
readonly kind: 'ticket';
|
|
1065
|
+
readonly token: string;
|
|
1066
|
+
}
|
|
1067
|
+
interface OpenRTCDevicesStartOptions {
|
|
1068
|
+
auth?: OpenRTCAuthProvider;
|
|
1069
|
+
autoConnect?: 'none' | 'online';
|
|
1070
|
+
/** Optional local profile; it does not alter the durable device identity. */
|
|
1071
|
+
profile?: {
|
|
1072
|
+
name?: string;
|
|
1073
|
+
/**
|
|
1074
|
+
* Optional application-owned public presence metadata. It is bounded
|
|
1075
|
+
* to 4 KiB and folded into the initial connection/presence operation.
|
|
1076
|
+
*/
|
|
1077
|
+
metadata?: string;
|
|
1078
|
+
};
|
|
1079
|
+
maxPeers?: number;
|
|
1080
|
+
/** Requires the app manifest's advanced-fanout opt-in. */
|
|
1081
|
+
advancedFanout?: boolean;
|
|
1082
|
+
}
|
|
1083
|
+
interface OpenRTCSpaceJoinOptions {
|
|
1084
|
+
access?: 'capability';
|
|
1085
|
+
identity?: 'ephemeral';
|
|
1086
|
+
payload?: OpenRTCLatestStateMode;
|
|
1087
|
+
maxPeers?: number;
|
|
1088
|
+
/** Requires the app manifest's advanced-fanout opt-in. */
|
|
1089
|
+
advancedFanout?: boolean;
|
|
1090
|
+
}
|
|
1091
|
+
interface OpenRTCRoomJoinOptions {
|
|
1092
|
+
access?: OpenRTCAccessMode;
|
|
1093
|
+
membership?: 'ephemeral' | 'durable';
|
|
1094
|
+
auth?: OpenRTCAuthProvider;
|
|
1095
|
+
maxPeers?: number;
|
|
1096
|
+
/** Requires the app manifest's advanced-fanout opt-in. */
|
|
1097
|
+
advancedFanout?: boolean;
|
|
1098
|
+
}
|
|
1099
|
+
interface OpenRTCTicketIssueOptions {
|
|
1100
|
+
maxPeers?: number;
|
|
1101
|
+
/** Requires the app manifest's advanced-fanout opt-in. */
|
|
1102
|
+
advancedFanout?: boolean;
|
|
1103
|
+
}
|
|
1104
|
+
interface OpenRTCChannelCatalog {
|
|
1105
|
+
register(descriptor: RuntimeChannelDescriptor): () => void;
|
|
1106
|
+
list(): readonly RuntimeChannelDescriptor[];
|
|
1107
|
+
}
|
|
1108
|
+
interface OpenRTCUsageNamespace {
|
|
1109
|
+
estimate(input: {
|
|
1110
|
+
operation: string;
|
|
1111
|
+
units?: number;
|
|
1112
|
+
}): {
|
|
1113
|
+
creditsUsd: number;
|
|
1114
|
+
estimated: true;
|
|
1115
|
+
};
|
|
1116
|
+
readonly sessionCreditsUsd: number;
|
|
1117
|
+
}
|
|
1118
|
+
interface OpenRTCClient {
|
|
1119
|
+
readonly devices: {
|
|
1120
|
+
start(options?: OpenRTCDevicesStartOptions): Promise<OpenRTCDevicesHandle>;
|
|
1121
|
+
};
|
|
1122
|
+
readonly spaces: {
|
|
1123
|
+
join(id: string, options?: OpenRTCSpaceJoinOptions): Promise<OpenRTCSpaceHandle>;
|
|
1124
|
+
};
|
|
1125
|
+
readonly rooms: {
|
|
1126
|
+
join(id: string, options?: OpenRTCRoomJoinOptions): Promise<OpenRTCRoomHandle>;
|
|
1127
|
+
};
|
|
1128
|
+
readonly tickets: {
|
|
1129
|
+
issue(id: string, options?: OpenRTCTicketIssueOptions): Promise<OpenRTCTicketHandle>;
|
|
1130
|
+
};
|
|
1131
|
+
readonly channels: OpenRTCChannelCatalog;
|
|
1132
|
+
readonly usage: OpenRTCUsageNamespace;
|
|
1133
|
+
close(): Promise<void>;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
export { DriveGrantActorHandle as A, type DriveGrantActorHandleOptions as B, DriveGrantActorRegistry as C, DriveGrantActorError as D, type DriveGrantActorState as E, type DriveGrantClose as F, type DriveGrantDial as G, type DriveGrantConnectionKey as H, type DriveGrantLogicalChannelHandle as I, type DriveGrantPreferredTransport as J, getRuntimePolicy as K, driveGrantConnectionKey as L, driveGrantConnectionKeyToString as M, type OpenRTCOptions as O, type PlutoRuntimeAssembly as P, type RuntimeFactoryOptions as R, type OpenRTCClient as a, type OpenRTCAccessMode as b, type OpenRTCAttestationProvider as c, type OpenRTCAuthProvider as d, type OpenRTCBotVerificationProvider as e, type OpenRTCCapabilityHandle as f, type OpenRTCChannelCatalog as g, type OpenRTCDevicesHandle as h, type OpenRTCDevicesStartOptions as i, type OpenRTCLatestStateMode as j, type OpenRTCRoomHandle as k, type OpenRTCRoomJoinOptions as l, type OpenRTCSpaceHandle as m, type OpenRTCSpaceJoinOptions as n, type OpenRTCTicketHandle as o, type OpenRTCTicketIssueOptions as p, type OpenRTCTransportPreferences as q, type OpenRTCUsageNamespace as r, type OpenRTCUsageUpdate as s, type OpenRTCUsageWarning as t, type OpenRTCClient$1 as u, type PeerReconciliationStats as v, OPENRTC_RUNTIME_POLICY as w, RuntimeClient as x, type RuntimePolicySnapshot as y, type DriveGrantActorErrorKind as z };
|
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
import { A as AuthContext } from './IEngineBridge-BbsT8hof.js';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
interface ITransport {
|
|
5
|
-
readonly name: string;
|
|
6
|
-
readonly isReady: boolean;
|
|
7
|
-
init(localNodeId: string, remoteNodeId: string, options: any): Promise<void>;
|
|
8
|
-
send(data: Uint8Array): Promise<void>;
|
|
9
|
-
close(): void;
|
|
10
|
-
onMessage(callback: (data: Uint8Array) => void): void;
|
|
11
|
-
onStateChange(callback: (state: 'connecting' | 'connected' | 'failed' | 'disconnected') => void): void;
|
|
12
|
-
handleSignalingMessage?(msg: any): void;
|
|
13
|
-
getSignalingHandler?(): (msg: any) => Promise<void>;
|
|
14
|
-
getNativeTransport?(): any;
|
|
15
|
-
getNegotiationId?(): string | null;
|
|
16
|
-
getDataChannelReadyState?(): string | null;
|
|
17
|
-
}
|
|
2
|
+
import { C as ConnectionOptions, A as ApplicationPayloadCrypto, a as ApplicationPayloadReadinessOptions, b as ApplicationPayloadRouteOptions, P as ProtocolName, c as ApplicationPayloadSendOptions, T as TransportLatencySnapshot, d as PeerState, e as PeerScope, f as PeerHealth, g as ChannelDescriptor$1, I as IncomingStreamChannelMetadata, D as Device, B as BackendConnectionState, L as LocalDeviceInfo, h as DeviceStatusSnapshot, M as ManagedDeviceConnectOptions, i as ClientOptions, S as SignalingSession, R as RuntimeIdentity, J as JoinRoomOptions, j as RoomMember, k as DevicePresenceStatus, l as PeerLifecycleStatus, m as PeerSessionSnapshot } from './types-BVJr065k.js';
|
|
3
|
+
import { I as ITransport } from './ITransport-BsPcaov7.js';
|
|
18
4
|
|
|
19
5
|
type ConnectionHealth = 'unknown' | 'healthy' | 'suspect' | 'stale';
|
|
20
6
|
|
|
@@ -483,6 +469,12 @@ interface RuntimeScopedChannelOptions {
|
|
|
483
469
|
channelId: string;
|
|
484
470
|
timeoutMs?: number;
|
|
485
471
|
respectManualDisconnect?: boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Reuse an application-ready route owned by an active capability and fail
|
|
474
|
+
* if none exists. Protocol packages use this to open a named channel
|
|
475
|
+
* without gaining authority to dial, repair, or add an admission avenue.
|
|
476
|
+
*/
|
|
477
|
+
existingRouteOnly?: boolean;
|
|
486
478
|
/**
|
|
487
479
|
* Native product protocols such as Plutonium drive-view expect a plaintext
|
|
488
480
|
* stream label before payload frames. OpenRTC owns that handshake here so
|
|
@@ -507,6 +499,7 @@ interface RuntimeScopedLogicalChannel {
|
|
|
507
499
|
lastSendTransport?: ProtocolName | 'stream' | null;
|
|
508
500
|
framing: RuntimeLogicalChannelFraming;
|
|
509
501
|
nativeLabel: boolean;
|
|
502
|
+
delivery: 'reliable' | 'latest-state';
|
|
510
503
|
};
|
|
511
504
|
}
|
|
512
505
|
/**
|
|
@@ -545,6 +538,7 @@ type RuntimeAutoConnectPolicy = 'enabled' | 'disabled' | 'scoped-only';
|
|
|
545
538
|
type RuntimePresencePolicy = 'online' | 'disabled';
|
|
546
539
|
type RuntimeConnectionStateSnapshot = BackendConnectionState;
|
|
547
540
|
type RuntimeApplicationPayloadReadinessOptions = ApplicationPayloadReadinessOptions;
|
|
541
|
+
type RuntimeApplicationPayloadRouteOptions = ApplicationPayloadRouteOptions;
|
|
548
542
|
type RuntimeUiConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'failed';
|
|
549
543
|
interface RuntimePeerReadinessSnapshot {
|
|
550
544
|
requestedId: string;
|
|
@@ -601,4 +595,4 @@ type SessionOptions = RuntimeManagedSessionOptions;
|
|
|
601
595
|
type Session = RuntimeManagedSession;
|
|
602
596
|
type ChannelDescriptor = RuntimeChannelDescriptor;
|
|
603
597
|
|
|
604
|
-
export { type Session as $, type
|
|
598
|
+
export { type Session as $, type ChannelDescriptor as A, type ConnectionEvent as B, Connection as C, type ConnectionTarget as D, type DeviceProfile as E, type PeerReadiness as F, type PeerStreamOptions as G, type PresenceLoopOptions as H, type IncomingStream as I, type RawConnection as J, type RuntimeApplicationPayloadRouteOptions as K, type RuntimeAuthContext as L, type RuntimeAutoConnectPolicy as M, type RuntimeDevicePresenceStatus as N, type RuntimeDeviceStatus as O, type PeerConnectOptions as P, type RuntimeLogicalChannelFraming as Q, type RuntimeClientOptions as R, type RuntimeManagedSessionKind as S, type RuntimeManagedSessionPlatform as T, type RuntimePeerLifecycleStatus as U, type RuntimePeerScope as V, type RuntimePeerSessionSnapshot as W, type RuntimePresencePolicy as X, type RuntimeUiConnectionStatus as Y, type ScopedChannelOptions as Z, type ScopedLogicalChannel as _, type RuntimePeerState as a, type SessionOptions as a0, type RuntimeConnectionStateSnapshot as b, type RuntimePeerReadinessSnapshot as c, type RuntimePeerConnectOptions as d, type RuntimeIncomingStream as e, type RuntimeAuthIdentity as f, type RuntimeLocalDeviceInfo as g, type RuntimeLocalDeviceProfile as h, type RuntimeDevice as i, type RuntimeManagedSessionOptions as j, type RuntimeManagedSession as k, type RuntimeDeviceStatusSnapshot as l, type RuntimeDeviceConnectOptions as m, type RuntimeSession as n, type RuntimeJoinRoomOptions as o, type RuntimeRoomMember as p, type RuntimeConnectionTarget as q, type RuntimeScopedChannelOptions as r, type RuntimeScopedLogicalChannel as s, type RuntimePeerStreamOptions as t, type RuntimeRawConnection as u, type RuntimeChannelDescriptor as v, type RuntimePresenceLoopOptions as w, type RuntimePeerHealth as x, type RuntimeApplicationPayloadReadinessOptions as y, type RuntimeConnectionEvent as z };
|
|
@@ -17,6 +17,14 @@ interface CoordinationGatewayOptions {
|
|
|
17
17
|
* verify the matching identity tenant and token audience.
|
|
18
18
|
*/
|
|
19
19
|
environment: 'staging' | 'production';
|
|
20
|
+
/**
|
|
21
|
+
* Test-runtime authority for an insecure loopback gateway. The public v2
|
|
22
|
+
* constructor never sets this flag; `openrtc/testing` owns it for local
|
|
23
|
+
* emulator harnesses. Non-loopback HTTP/WS endpoints still fail closed.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
testingAllowInsecureLoopback?: boolean;
|
|
20
28
|
/**
|
|
21
29
|
* Opaque native trust token loader.
|
|
22
30
|
*
|
|
@@ -29,6 +37,33 @@ interface CoordinationGatewayOptions {
|
|
|
29
37
|
token: string;
|
|
30
38
|
expiresAtMs: number;
|
|
31
39
|
} | null | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* OpenRTC 2.0's provider-neutral grant source. This is installed by the
|
|
42
|
+
* public capability client, never supplied as a public endpoint or token
|
|
43
|
+
* hook by application code.
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
grantProvider?: (input: CoordinationGatewayGrantRequest) => Promise<CoordinationGatewayGrant>;
|
|
48
|
+
}
|
|
49
|
+
interface CoordinationGatewayGrantRequest {
|
|
50
|
+
avenue: {
|
|
51
|
+
kind: 'user' | 'space' | 'room' | 'session';
|
|
52
|
+
id: string;
|
|
53
|
+
};
|
|
54
|
+
deviceId: string;
|
|
55
|
+
runtimeInstanceId: string;
|
|
56
|
+
ticketFingerprint: string;
|
|
57
|
+
purpose: 'presence' | 'device-control';
|
|
58
|
+
refreshGrant?: string;
|
|
59
|
+
}
|
|
60
|
+
interface CoordinationGatewayGrant {
|
|
61
|
+
protocolVersion: 1 | 2;
|
|
62
|
+
gatewayUrl: string;
|
|
63
|
+
routeKey: string;
|
|
64
|
+
token: string;
|
|
65
|
+
expiresAtMs: number;
|
|
66
|
+
avenue: CoordinationGatewayGrantRequest['avenue'];
|
|
32
67
|
}
|
|
33
68
|
|
|
34
69
|
interface AppLimits {
|
|
@@ -131,6 +166,8 @@ interface ChannelDescriptor {
|
|
|
131
166
|
readiness: ChannelReadinessMode;
|
|
132
167
|
promotionPolicy?: ChannelPromotionPolicy;
|
|
133
168
|
signalingPolicy?: ChannelSignalingPolicy;
|
|
169
|
+
/** Drop queued superseded payloads while retaining reliable delivery for the newest state. */
|
|
170
|
+
delivery?: 'reliable' | 'latest-state';
|
|
134
171
|
description?: string;
|
|
135
172
|
}
|
|
136
173
|
type ProtocolName = 'iroh' | 'iroh-quic' | 'iroh-relay' | 'iroh-lan' | 'ble' | 'webrtc' | 'webrtc-lan' | 'webrtc-turn' | 'moq';
|
|
@@ -182,8 +219,6 @@ interface ProtocolCapability {
|
|
|
182
219
|
reason?: string;
|
|
183
220
|
}
|
|
184
221
|
type ProtocolCapabilityMap = Record<ProtocolName, ProtocolCapability>;
|
|
185
|
-
/** Space discovery always uses namespace-scoped Firebase tokens. */
|
|
186
|
-
type SpaceAuthMode = 'scoped-token';
|
|
187
222
|
type SpaceTokenProvider = () => Promise<{
|
|
188
223
|
customToken: string;
|
|
189
224
|
uid?: string;
|
|
@@ -242,6 +277,11 @@ interface ClientOptions {
|
|
|
242
277
|
* Hosted production clients receive the managed production default.
|
|
243
278
|
*/
|
|
244
279
|
coordinationGateway?: CoordinationGatewayOptions;
|
|
280
|
+
/** @internal One capability maps to exactly one gateway avenue. */
|
|
281
|
+
coordinationAvenueOverride?: {
|
|
282
|
+
kind: 'user' | 'space' | 'room' | 'session';
|
|
283
|
+
id: string;
|
|
284
|
+
};
|
|
245
285
|
/**
|
|
246
286
|
* Supplies the provider-neutral platform-attestation token used by the
|
|
247
287
|
* configured coordination control plane.
|
|
@@ -1040,4 +1080,4 @@ interface JoinRequest {
|
|
|
1040
1080
|
state: 'pending' | 'accepted' | 'rejected';
|
|
1041
1081
|
}
|
|
1042
1082
|
|
|
1043
|
-
export type {
|
|
1083
|
+
export type { AppLimits as $, ApplicationPayloadCrypto as A, BackendConnectionState as B, ConnectionOptions as C, Device as D, ExplicitFileDataSendParams as E, SessionEvent as F, NativeManagedSessionStartResult as G, GrantScope as H, IncomingStreamChannelMetadata as I, JoinRoomOptions as J, RouteDescriptor as K, LocalDeviceInfo as L, ManagedDeviceConnectOptions as M, NativeConnectParams as N, ProtocolCapability as O, ProtocolName as P, ProtocolCapabilityMap as Q, RuntimeIdentity as R, SignalingSession as S, TransportLatencySnapshot as T, ApplicationCryptoStreamTools as U, ApplicationCryptoBiStream as V, RouteFamily as W, RouteImplementationKind as X, ConnectDeviceHooks as Y, ConnectDeviceOptions as Z, ConnectDeviceResult as _, ApplicationPayloadReadinessOptions as a, SignalingOptions as a0, RoomCreationMode as a1, ScanningLoopOptions as a2, ScanningLoopHandle as a3, RuntimeBootstrapOptions as a4, RuntimeBootstrapResult as a5, ManagedApplicationRouteOptions as a6, JoinRequest as a7, SpaceTokenProvider as a8, ApplicationPayloadRouteOptions as b, ApplicationPayloadSendOptions as c, PeerState as d, PeerScope as e, PeerHealth as f, ChannelDescriptor as g, DeviceStatusSnapshot as h, ClientOptions as i, RoomMember as j, DevicePresenceStatus as k, PeerLifecycleStatus as l, PeerSessionSnapshot as m, DiscoveryMode as n, AuthMode as o, SignalingMode as p, ISignalingBackend as q, SignalingEnvelope as r, BackendPeerBiStream as s, BackendPeerUniStream as t, ManagedConnectionRecord as u, ResolvedPeerIdentity as v, DeviceEvent as w, DesiredPeerProjection as x, CoreClientBridgeHost as y, NativeConnectResult as z };
|