openrtc 2.3.1 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +77 -5
  2. package/dist/BrowserManagedBroadcastHost-ARCP5MGJ.js +1 -0
  3. package/dist/{ITransport-CjxCQ6q7.d.ts → Connection-CTpuImO-.d.ts} +610 -95
  4. package/dist/DelegatingRuntimeAdapter-D67Ozqo3.d.ts +154 -0
  5. package/dist/IpcRuntimeAdapter-Ddx0MtSI.d.ts +86 -0
  6. package/dist/WasmBridge-ZXBCXBBM.js +1 -0
  7. package/dist/{assembly-Bmi65-tK.d.ts → assembly-DvfsYFCL.d.ts} +41 -19
  8. package/dist/{capabilities-BPuynml5.d.ts → capabilities-CmzzxSvW.d.ts} +14 -7
  9. package/dist/chunk-2GX6GB6L.js +1 -0
  10. package/dist/chunk-2K47N3QP.js +2 -0
  11. package/dist/chunk-72NEEJQG.js +1 -0
  12. package/dist/chunk-AYHD4X2R.js +1 -0
  13. package/dist/chunk-BFN3AVHA.js +2 -0
  14. package/dist/chunk-BGWJHPBC.js +2 -0
  15. package/dist/chunk-CCCYE3XN.js +1 -0
  16. package/dist/chunk-EIJNERKZ.js +1 -0
  17. package/dist/chunk-FEF3DPPB.js +1 -0
  18. package/dist/chunk-GHAJW6SZ.js +2 -0
  19. package/dist/chunk-GTHSRQ7Y.js +2 -0
  20. package/dist/chunk-JPBW67B3.js +1 -0
  21. package/dist/chunk-LLZT3MR6.js +118 -0
  22. package/dist/chunk-N6LGTNUI.js +1 -0
  23. package/dist/{chunk-4MLJXEVV.js → chunk-NDR2ANQB.js} +1 -1
  24. package/dist/chunk-OT7IPLZE.js +1 -0
  25. package/dist/chunk-OWKAJPOI.js +1 -0
  26. package/dist/chunk-TYZS5LXQ.js +2 -0
  27. package/dist/chunk-VFDCIEP6.js +2 -0
  28. package/dist/chunk-VTYVIKTM.js +1 -0
  29. package/dist/chunk-XTYALGJN.js +2 -0
  30. package/dist/{chunk-KRJECX7X.js → chunk-Z4KJHIV5.js} +1 -1
  31. package/dist/chunk-Z54XUIKZ.js +1 -0
  32. package/dist/{controlPlane-KVFZ7BR5.js → controlPlane-IIPEJ77Q.js} +1 -1
  33. package/dist/coreClient.d.ts +3 -4
  34. package/dist/coreClient.js +1 -1
  35. package/dist/{deviceEnrollment-VACC64CQ.js → deviceEnrollment-ZQZ2WP5H.js} +2 -2
  36. package/dist/{deviceKey-Y35WSEQQ.js → deviceKey-EIMDBAQS.js} +1 -1
  37. package/dist/{dist-FIVA6EPA.js → dist-XO466BRG.js} +18 -0
  38. package/dist/index.d.ts +7 -7
  39. package/dist/index.js +1 -1
  40. package/dist/{ipc-CPnNwv6f.d.ts → ipc-DgzKqHH3.d.ts} +3 -0
  41. package/dist/ipcFactory-PRAJ7JP7.js +1 -0
  42. package/dist/native.d.ts +21 -0
  43. package/dist/native.js +1 -0
  44. package/dist/node-browser.d.ts +8 -0
  45. package/dist/node-browser.js +1 -0
  46. package/dist/node.d.ts +87 -0
  47. package/dist/node.js +2 -0
  48. package/dist/openrtc-VCS6V3AN.js +2 -0
  49. package/dist/openrtc_bg.wasm +0 -0
  50. package/dist/protocol-BSBjMb7p.d.ts +6 -0
  51. package/dist/room-ULZ2FGWV.js +1 -0
  52. package/dist/runtime/WasmRuntimeAdapter.d.ts +4 -5
  53. package/dist/runtime/WasmRuntimeAdapter.js +1 -1
  54. package/dist/runtime/device-status.d.ts +1 -2
  55. package/dist/runtime/factories.d.ts +352 -8
  56. package/dist/runtime/factories.js +1 -1
  57. package/dist/runtime/index.d.ts +15 -161
  58. package/dist/runtime/index.js +1 -1
  59. package/dist/server-browser.d.ts +14 -0
  60. package/dist/server-browser.js +1 -0
  61. package/dist/server.d.ts +44 -0
  62. package/dist/server.js +2 -0
  63. package/dist/service-node.d.ts +155 -0
  64. package/dist/service-node.js +1 -0
  65. package/dist/testing/native.d.ts +11 -0
  66. package/dist/testing/native.js +1 -0
  67. package/dist/testing.d.ts +47 -20
  68. package/dist/testing.js +1 -1
  69. package/dist/transport/index.d.ts +7 -18
  70. package/dist/transport/index.js +1 -1
  71. package/dist/types-Cyc-mPjk.d.ts +650 -0
  72. package/package.json +35 -3
  73. package/dist/DelegatingRuntimeAdapter-DE4LTGAJ.d.ts +0 -399
  74. package/dist/IpcRuntimeAdapter-CE0va9Tr.d.ts +0 -19
  75. package/dist/WasmBridge-75F6GKHG.js +0 -1
  76. package/dist/chunk-2L6ULC32.js +0 -1
  77. package/dist/chunk-2SUSPEC4.js +0 -1
  78. package/dist/chunk-7BJKDBLP.js +0 -2
  79. package/dist/chunk-AJQVMVYW.js +0 -1
  80. package/dist/chunk-BOS554IK.js +0 -2
  81. package/dist/chunk-HEAJ7ZUR.js +0 -1
  82. package/dist/chunk-HUG5AX7R.js +0 -1
  83. package/dist/chunk-Q6KXVTSH.js +0 -2
  84. package/dist/chunk-R35AWMNY.js +0 -1
  85. package/dist/chunk-UILOGUOU.js +0 -1
  86. package/dist/chunk-WA434EWD.js +0 -2
  87. package/dist/chunk-XAL4T6TB.js +0 -3
  88. package/dist/chunk-Z2IS6NH2.js +0 -2
  89. package/dist/ipcFactory-32R47AVK.js +0 -1
  90. package/dist/openrtc-MWLNTJI7.js +0 -2
  91. package/dist/types--jQzenZR.d.ts +0 -295
  92. package/dist/types-DDhMQkK8.d.ts +0 -621
@@ -1,10 +1,354 @@
1
- import { c as RuntimeFactoryOptions, b as PlutoRuntimeAssembly } from '../assembly-Bmi65-tK.js';
2
- import { I as IpcRuntimeAdapter } from '../IpcRuntimeAdapter-CE0va9Tr.js';
3
- import { W as WasmBridge } from '../DelegatingRuntimeAdapter-DE4LTGAJ.js';
4
- import { P as PlutoIpcBridge } from '../ipc-CPnNwv6f.js';
5
- import '../types-DDhMQkK8.js';
6
- import '../ITransport-CjxCQ6q7.js';
7
- import '../capabilities-BPuynml5.js';
1
+ import { c as RuntimeFactoryOptions, b as PlutoRuntimeAssembly } from '../assembly-DvfsYFCL.js';
2
+ import { N as NativeProjectionBroker, I as IpcRuntimeAdapter } from '../IpcRuntimeAdapter-Ddx0MtSI.js';
3
+ import { X as Device, U as ISignalingBackend, K as DiscoveryMode, N as AuthMode, O as SignalingMode, Q as ClientOptions, T as ExplicitFileDataSendParams, ai as BrowserWasmRuntimeModule, a3 as LocalDeviceInfo, W as RoomMember, aj as BrowserProtocolStore, ak as NamespaceDescriptor, al as IrohMutationReceipt, am as IrohDocEntry, V as RuntimeIdentity, _ as SignalingEnvelope, Y as DeviceStatusSnapshot, k as PeerSessionSnapshot, a5 as BackendPeerBiStream, a6 as BackendPeerUniStream, a7 as PortableMediaPublish, a8 as PortableMediaPublicationStart, a9 as PortableMediaSample, aa as PortableMediaChunk, ab as PortableMediaControl, Z as ManagedConnectionRecord, n as ResolvedPeerIdentity, b as RoomArchitectureSnapshot, c as RoomAuthorityAssignment, an as CoordinationSignalingStore, ao as ManagedRoomMessage, $ as DeviceEvent, a0 as DesiredPeerProjection, ap as CoreClientBridgeHost, ac as NativeConnectParams, ad as NativeConnectResult, a1 as SignalingSession, a2 as SessionEvent, ae as BackendConnectionState } from '../Connection-CTpuImO-.js';
4
+ import { R as RuntimeCapabilities } from '../capabilities-CmzzxSvW.js';
5
+ import { R as RuntimeBridgeOptions } from '../DelegatingRuntimeAdapter-D67Ozqo3.js';
6
+ import { P as PlutoIpcBridge } from '../ipc-DgzKqHH3.js';
7
+
8
+ interface NativeTrustToken {
9
+ token: string;
10
+ expiresAtMs: number;
11
+ }
12
+
13
+ /** Internal-only gateway record before normalization; includes namespace fields omitted from the public Device type. */
14
+ type RawDeviceDoc = Device & {
15
+ appTag?: string;
16
+ tag?: string;
17
+ };
18
+
19
+ /** Public verification material plus an opaque Rust/WASM signer handle. */
20
+ interface WasmPublisherSignerDescriptor {
21
+ handle: string;
22
+ publicKey: Uint8Array;
23
+ }
24
+ interface ResolvedWasmBroadcastGrant {
25
+ token: string;
26
+ issuerPublicKey: Uint8Array;
27
+ signBindingChallenge(message: Uint8Array): Promise<Uint8Array>;
28
+ }
29
+ interface BrowserBroadcastWasmBindings {
30
+ __createOpenRtcBroadcastPublisherSigner(): WasmPublisherSignerDescriptor;
31
+ __prepareOpenRtcBroadcastGrant(token: string, issuerPublicKey: Uint8Array, nowMs: number): {
32
+ handle: string;
33
+ signingBytes: Uint8Array;
34
+ expiresAtMs: number;
35
+ };
36
+ __openOpenRtcBroadcast(token: string, issuerPublicKey: Uint8Array, bindingChallengeHandle: string, bindingSignature: Uint8Array, publisherSignerHandle: string | undefined, nowMs: number): unknown;
37
+ __releaseOpenRtcBroadcastPublisherSigner(handle: string): boolean;
38
+ }
39
+ /**
40
+ * Private browser publisher boundary used by the managed broadcast host.
41
+ *
42
+ * Rust/WASM owns the signing key. JavaScript receives only a public key and an
43
+ * opaque handle, has no sign operation, and cannot export private key bytes.
44
+ * The shared Rust core canonicalizes and verifies every signed media group.
45
+ */
46
+ declare class BrowserBroadcastWasmPublisher {
47
+ private readonly wasm;
48
+ readonly verificationKey: Uint8Array;
49
+ private handle;
50
+ private constructor();
51
+ static create(wasm: BrowserBroadcastWasmBindings): BrowserBroadcastWasmPublisher;
52
+ /** Open a publisher grant previously bound to `verificationKey`. */
53
+ open(grant: ResolvedWasmBroadcastGrant, nowMs?: number): Promise<unknown>;
54
+ close(): void;
55
+ }
56
+
57
+ type WasmBridgeOptions = RuntimeBridgeOptions;
58
+ /**
59
+ * WasmBridge is the browser host wrapper over the Rust/WASM runtime.
60
+ *
61
+ * Allowed:
62
+ * - normalize JS/WASM binding shapes
63
+ * - forward auth, discovery, signaling, and lifecycle calls into Rust
64
+ * - expose typed browser-facing results
65
+ *
66
+ * Not allowed:
67
+ * - become a second lifecycle engine
68
+ * - invent peer identity or connect policy that is not backed by Rust
69
+ * - normalize app-specific payload protocols into runtime behavior
70
+ *
71
+ * Source of truth:
72
+ * - Rust/WASM owns transport/runtime connection state and lifecycle primitives
73
+ * - The selected coordination provider owns browser delivery projections
74
+ * - RuntimeClient owns app-facing orchestration across those surfaces
75
+ */
76
+ declare class WasmBridge implements ISignalingBackend {
77
+ private static readonly EXPLICIT_FILE_PROTOCOL_TYPE;
78
+ private static readonly EXPLICIT_FILE_CHUNK_SIZE_BYTES;
79
+ private static readonly MAX_EXPLICIT_TRANSFER_HEADER_BYTES;
80
+ private static readonly FALLBACK_EXPLICIT_FILE_NAME;
81
+ private static readonly MAX_EXPLICIT_FILE_NAME_CHARS;
82
+ private static readonly FALLBACK_EXPLICIT_MIME_TYPE;
83
+ private static readonly MAX_EXPLICIT_MIME_TYPE_CHARS;
84
+ app: any | null;
85
+ auth: any | null;
86
+ private readonly appTag;
87
+ protected options: {
88
+ appTag: string;
89
+ apiKey?: string;
90
+ discoveryMode?: DiscoveryMode;
91
+ space?: string;
92
+ spaceKey?: string;
93
+ authMode: AuthMode;
94
+ signalingMode?: SignalingMode;
95
+ projectId: string;
96
+ coordinationGateway?: ClientOptions['coordinationGateway'];
97
+ coordinationAvenueOverride?: ClientOptions['coordinationAvenueOverride'];
98
+ coordinationRoomGossipFanout?: ClientOptions['coordinationRoomGossipFanout'];
99
+ coordinationRoomArchitecture?: ClientOptions['coordinationRoomArchitecture'];
100
+ coordinationDevicePublicKeyX?: ClientOptions['coordinationDevicePublicKeyX'];
101
+ coordinationDeviceSign?: ClientOptions['coordinationDeviceSign'];
102
+ initialAutoConnectExcludedDeviceIds?: ClientOptions['initialAutoConnectExcludedDeviceIds'];
103
+ attestationTokenProvider?: ClientOptions['attestationTokenProvider'];
104
+ coordinationPlatformType?: string;
105
+ storagePrefix?: string;
106
+ deviceIdPersistence?: 'persistent' | 'ephemeral';
107
+ endpointIdPersistence?: 'persistent' | 'ephemeral';
108
+ nodeIdPersistence?: 'persistent' | 'ephemeral';
109
+ localDeviceId?: string;
110
+ deviceName?: string;
111
+ strictMode?: boolean;
112
+ turnCredentialsProvider?: () => Promise<{
113
+ iceServers?: RTCIceServer[];
114
+ } | null | undefined>;
115
+ applicationCrypto?: ExplicitFileDataSendParams['applicationCrypto'];
116
+ spaceTokenProvider?: ClientOptions['spaceTokenProvider'];
117
+ spaceAuth?: 'scoped-token';
118
+ };
119
+ private spaceNamespaceIdPromise;
120
+ private cachedSpaceNamespaceId;
121
+ private authListeners;
122
+ private persistenceReady;
123
+ wasmClient: any;
124
+ private readonly createdAtMs;
125
+ private missingWasmWarnings;
126
+ private readonly wasmReadyWarningDelayMs;
127
+ private readonly coordinationHost;
128
+ /** Test seam only; production gateway ownership remains in coordinationHost. */
129
+ private browserCoordinationSignaling;
130
+ private effectiveRoomArchitecture;
131
+ private lastObservedFirebaseUserId;
132
+ private sessionReaders;
133
+ protected authContext: {
134
+ userId: string;
135
+ token?: string | null;
136
+ refreshToken?: string | null;
137
+ customToken?: string | null;
138
+ tokenProvider?: (forceRefresh?: boolean) => Promise<string | null>;
139
+ appCheckTokenProvider?: (forceRefresh?: boolean) => Promise<string | null>;
140
+ expiresAtMs?: number | null;
141
+ } | null;
142
+ private injectedBrowserAuthSessionActive;
143
+ private readonly presenceManager;
144
+ private hasSyncedAuthToWasmClient;
145
+ private lastWasmAuthUserId;
146
+ private lastWasmAuthToken;
147
+ private lastDeliveredConnectionStates;
148
+ private authScopedRuntimeGeneration;
149
+ private coreClient;
150
+ private readonly applicationRouteEscalations;
151
+ private applicationRouteEscalationAttemptKeys;
152
+ private applicationRouteEscalationUnsubscribe;
153
+ private routeSubscriptionGeneration;
154
+ private applicationRouteEscalationSubscriptionEpoch;
155
+ constructor(options: WasmBridgeOptions);
156
+ loadBrowserWasmRuntime(): Promise<BrowserWasmRuntimeModule>;
157
+ get tag(): string;
158
+ capabilities(): RuntimeCapabilities;
159
+ private static readonly WEB_DEVICE_ID_STORAGE_PREFIX;
160
+ private static readonly EPHEMERAL_DEVICE_ID_TTL_MS;
161
+ private getDeviceIdentityStorageKey;
162
+ private getDeviceIdPersistenceMode;
163
+ private isTicketOnlyMode;
164
+ private usesProviderNeutralGrant;
165
+ private createRandomDeviceId;
166
+ protected resolveWebLogicalDeviceId(): string;
167
+ private getDefaultBrowserDeviceName;
168
+ getLocalDeviceInfo(): Promise<LocalDeviceInfo>;
169
+ private getCoordinationSignaling;
170
+ usesCoordinationGateway(): boolean;
171
+ setCoordinationHostAvailability(input: {
172
+ available: boolean;
173
+ reason: string;
174
+ }): void;
175
+ /** Restore the existing gateway delivery subscription after a native host resumes. */
176
+ reconnectCoordinationAfterHostResume(): Promise<void>;
177
+ getCoordinationNativeTrustToken(forceRefresh?: boolean): Promise<NativeTrustToken>;
178
+ invalidateCoordinationNativeTrustToken(): void;
179
+ subscribeCoordinationNativeTrustToken(listener: (token: NativeTrustToken | null) => void, options?: {
180
+ emitCurrent?: boolean;
181
+ }): () => void;
182
+ setCoordinationLocalDeviceId(deviceId: string): void;
183
+ /** Internal native-host hint for provider-neutral roster presentation. */
184
+ setCoordinationPlatformType(platformType: string): void;
185
+ setCoordinationExcludedPeers(excludedPeers: string[]): Promise<void>;
186
+ joinCoordinationRoom(roomId: string, nodeId: string, ticket: string): Promise<void>;
187
+ leaveCoordinationRoom(roomId: string): Promise<void>;
188
+ getCoordinationRoomMembers(roomId: string): Promise<RoomMember[]>;
189
+ watchCoordinationRoomMembers(roomId: string, callback: (members: RoomMember[]) => void): () => void;
190
+ private withWebPresenceMetadata;
191
+ setAuthContext(context: {
192
+ userId: string;
193
+ token?: string | null;
194
+ refreshToken?: string | null;
195
+ customToken?: string | null;
196
+ tokenProvider?: (forceRefresh?: boolean) => Promise<string | null>;
197
+ appCheckTokenProvider?: (forceRefresh?: boolean) => Promise<string | null>;
198
+ expiresAtMs?: number | null;
199
+ } | null): Promise<void>;
200
+ private ensureBrowserPlatformAuth;
201
+ private syncWasmAuthToken;
202
+ private toRuntimeIdentity;
203
+ protected getCurrentUserId(): string | null;
204
+ getCurrentUserIdForScope(): string | null;
205
+ getAuthContext(): Readonly<typeof this.authContext> | null;
206
+ protected isSpaceMode(): boolean;
207
+ getResolvedOptions(): Readonly<typeof this.options>;
208
+ protected getDiscoveryScopeId(): string | null;
209
+ protected matchesTag(device: Pick<RawDeviceDoc, 'tag' | 'appTag'>): boolean;
210
+ matchesLegacyOrCurrentTag(device: Pick<RawDeviceDoc, 'tag' | 'appTag'>): boolean;
211
+ private stopSessionSubscriptions;
212
+ private stopRuntimeAuthScopedLoops;
213
+ stopAuthActivity(options?: {
214
+ userId?: string | null;
215
+ }): Promise<void>;
216
+ setWasmClient(client: any): void;
217
+ /** Private managed-broadcast edge. Rust/WASM retains the private signer. */
218
+ createBroadcastPublisher(): Promise<BrowserBroadcastWasmPublisher>;
219
+ initializePersistentIrohProtocols(store: BrowserProtocolStore): Promise<void>;
220
+ createPersistentIrohNamespace(generation: number, shareRevision: number): Promise<NamespaceDescriptor>;
221
+ importPersistentIrohTicket(ticket: string, generation: number, shareRevision: number): Promise<string>;
222
+ sharePersistentIrohNamespace(namespaceId: string, writable: boolean): Promise<string>;
223
+ removePersistentIrohNamespace(namespaceId: string, generation: number, shareRevision: number): Promise<void>;
224
+ putPersistentIrohBytes(namespaceId: string, key: Uint8Array, value: Uint8Array): Promise<IrohMutationReceipt>;
225
+ setPersistentIrohHash(namespaceId: string, key: Uint8Array, contentHash: string, contentLength: number): Promise<string>;
226
+ deletePersistentIrohPrefix(namespaceId: string, prefix: Uint8Array): Promise<{
227
+ removed: number;
228
+ operationId: string;
229
+ }>;
230
+ queryPersistentIrohNamespace(namespaceId: string, keyPrefix: Uint8Array): Promise<IrohDocEntry[]>;
231
+ hydratePersistentIrohBlob(contentHash: string): Promise<void>;
232
+ acknowledgePersistentIrohOutbox(operationId: string): Promise<void>;
233
+ flushPersistentIrohProtocols(): Promise<void>;
234
+ shutdownPersistentIrohProtocols(): Promise<void>;
235
+ private requirePersistentProtocolHost;
236
+ private warnMissingWasmOnce;
237
+ private waitForWasmClient;
238
+ protected normalizeDevice(raw: Record<string, any>, fallbackId?: string): Device;
239
+ normalizeDeviceRecord(raw: Record<string, any>, fallbackId?: string): Device;
240
+ getResolvedWebLogicalDeviceId(): string;
241
+ encodeSparseFanoutMessage(capability: string, payload: Uint8Array): Promise<Uint8Array>;
242
+ acceptSparseFanoutMessage(capability: string, sourcePeerId: string, payload: Uint8Array): Promise<{
243
+ payload: Uint8Array;
244
+ authorDeviceId: string;
245
+ authorPeerId: string;
246
+ topologyRevision: number;
247
+ hop: number;
248
+ forwardPeerIds: string[];
249
+ forwardPeerLimit: number;
250
+ forwardQueueCapacity: number;
251
+ forward?: Uint8Array;
252
+ }>;
253
+ recordSparseFanoutForwardQueueDrop(capability: string, count: number): Promise<void>;
254
+ private normalizeDeviceStatusSnapshot;
255
+ private normalizePeerSessionSnapshot;
256
+ private toBackendConnectionStateFromPeerSession;
257
+ private normalizeStateSnapshot;
258
+ private stabilizeConnectionState;
259
+ private sameConnectionState;
260
+ private deliverConnectionState;
261
+ private get browserPresenceLoopState();
262
+ private set browserPresenceLoopState(value);
263
+ get currentUser(): RuntimeIdentity | null;
264
+ onAuthChange(callback: (user: RuntimeIdentity | null) => void): () => void;
265
+ checkForSSOToken(): Promise<void>;
266
+ waitForAuth(): Promise<void>;
267
+ signInAnonymously(): Promise<void>;
268
+ signInWithPluto(): Promise<void>;
269
+ signOut(): Promise<void>;
270
+ getTurnCredentials(): Promise<any>;
271
+ updatePresence(localNodeId: string, ticketStr: string, isOnline?: boolean, ttlMs?: number, metadata?: string, deviceNameOverride?: string): Promise<void>;
272
+ refreshLivePresence(localNodeId: string, ticketStr: string, metadata?: string, deviceNameOverride?: string): Promise<void>;
273
+ setOffline(localNodeId: string): Promise<void>;
274
+ updateDevice(deviceId: string, updates: {
275
+ deviceName?: string;
276
+ capabilities?: Device['capabilities'];
277
+ metadata?: string;
278
+ excludedPeers?: string[];
279
+ }): Promise<void>;
280
+ deleteDevice(deviceId: string): Promise<void>;
281
+ cleanupStaleDevices(): Promise<void>;
282
+ sendMessage(targetId: string, payload: string, state?: string, replyPayload?: string): Promise<string>;
283
+ pollMessages(targetId: string): Promise<SignalingEnvelope[]>;
284
+ searchDevices(excludeNodeId?: string): Promise<Device[]>;
285
+ listDeviceStatus(): Promise<DeviceStatusSnapshot[]>;
286
+ getPeerSession(id: string): Promise<PeerSessionSnapshot | null>;
287
+ listPeerSessions(): Promise<PeerSessionSnapshot[]>;
288
+ waitForSettledPeer(id: string, timeoutMs?: number): Promise<PeerSessionSnapshot | null>;
289
+ openPeerBi(id: string, timeoutMs?: number): Promise<BackendPeerBiStream>;
290
+ openPeerBiRaw(id: string, timeoutMs?: number): Promise<BackendPeerBiStream>;
291
+ openPeerUni(id: string, timeoutMs?: number): Promise<BackendPeerUniStream>;
292
+ beginOpenRtcMediaPublication(input: Omit<PortableMediaPublish, 'mediaGeneration'>): PortableMediaPublicationStart;
293
+ encodeOpenRtcMediaSample(input: PortableMediaSample): Uint8Array;
294
+ pauseOpenRtcMediaPublication(publicationId: string): void;
295
+ retireOpenRtcMediaPublication(publicationId: string): void;
296
+ retireOpenRtcMediaReceiver(publicationId: string, mediaGeneration: number): void;
297
+ decodeOpenRtcMediaChunk(encoded: Uint8Array): PortableMediaChunk;
298
+ decodeOpenRtcMediaControl(encoded: Uint8Array): PortableMediaControl;
299
+ sendPeerDatagram(id: string, payload: Uint8Array, maxAgeMs?: number): Promise<boolean>;
300
+ receivePeerDatagram(id: string): Promise<Uint8Array>;
301
+ peerDatagramMaxSize(): number;
302
+ createPeerDatagramPolicy(): unknown;
303
+ resolvePeerRecords(id: string): Promise<ManagedConnectionRecord[]>;
304
+ resolvePeerIdentity(id: string): Promise<ResolvedPeerIdentity>;
305
+ onDevicesChange(callback: (devices: Device[]) => void, excludeNodeId?: string): () => void;
306
+ onRoomArchitectureChange(callback: (snapshot: RoomArchitectureSnapshot) => void): () => void;
307
+ onRoomAuthorityAssignmentChange(callback: (assignment: RoomAuthorityAssignment | null) => void): () => void;
308
+ publishAuthorityAssignment(input: Parameters<NonNullable<CoordinationSignalingStore['publishAuthorityAssignment']>>[0]): Promise<void>;
309
+ publishManagedRoomMessage(input: {
310
+ messageId: string;
311
+ channel: string;
312
+ priority: 0 | 1 | 2 | 3;
313
+ zoneId?: string;
314
+ payload: Uint8Array;
315
+ }): Promise<void>;
316
+ onManagedRoomMessage(callback: (message: ManagedRoomMessage) => void): () => void;
317
+ subscribeDevices(userId: string): Promise<ReadableStream<DeviceEvent[]>>;
318
+ startAutoConnect(userId: string, localDeviceId: string): Promise<void>;
319
+ startAutoConnectOnce(userId: string, localDeviceId: string): Promise<void>;
320
+ notifyDisconnectRequested(remoteNodeId: string): void;
321
+ excludeAutoConnect(deviceId: string, excluded: boolean): Promise<void>;
322
+ disconnectDevice(deviceId: string): Promise<void>;
323
+ submitDesiredPeerProjection(revision: number, peers: DesiredPeerProjection[]): Promise<void>;
324
+ setCoreClient(client: CoreClientBridgeHost | null): void;
325
+ private startApplicationRouteEscalationSubscription;
326
+ private stopApplicationRouteEscalationSubscription;
327
+ private retryManagedApplicationRouteEscalations;
328
+ private escalateManagedApplicationRoute;
329
+ connectToDevice(params: NativeConnectParams): Promise<NativeConnectResult>;
330
+ forceReconnect(): void;
331
+ startPresenceLoop(userId: string, localNodeId: string, deviceName: string, ticket: string, metadata?: string): Promise<void>;
332
+ private ensureSpaceNamespaceIdPromise;
333
+ createSession(session: SignalingSession): Promise<void>;
334
+ updateSession(sessionId: string, updateData: any): Promise<void>;
335
+ subscribeSessions(localDeviceId: string): Promise<ReadableStream<SessionEvent[]>>;
336
+ getLocalDeviceId(): Promise<string | null>;
337
+ isConnected(node_id: string): Promise<boolean>;
338
+ getConnectionStates(): Promise<BackendConnectionState[]>;
339
+ onStateChange(callback: (state: BackendConnectionState) => void): Promise<() => void> | (() => void);
340
+ sendExplicitFilePath(connectionId: string, filePath: string, transferId?: string): Promise<string>;
341
+ private sanitizeExplicitFileName;
342
+ private sanitizeExplicitMimeType;
343
+ private assertExplicitTransferHeaderSize;
344
+ private createWebRTCExplicitTransferId;
345
+ private createWebRTCExplicitTransferFrame;
346
+ sendExplicitFileData(params: ExplicitFileDataSendParams): Promise<void>;
347
+ getTransferHistory(limit?: number): Promise<Array<[string, unknown]>>;
348
+ deleteTransferJob(jobId: string): Promise<void>;
349
+ watchFriendDevices(friendUserIds: string[], callback: (friendDevices: Map<string, any[]>) => void): () => void;
350
+ updateFriendTicket(friendTicket: string | null): Promise<void>;
351
+ }
8
352
 
9
353
  /**
10
354
  * @deprecated Legacy assembly helper. Use `OpenRTC()` for app code.
@@ -16,6 +360,6 @@ declare function createWasmClient(options: RuntimeFactoryOptions): Promise<Pluto
16
360
  * `OpenRTC.native` from `openrtc`.
17
361
  * Removal target: OpenRTC 0.2.0.
18
362
  */
19
- declare function createIpcClient(options: RuntimeFactoryOptions, bridge: PlutoIpcBridge): PlutoRuntimeAssembly<IpcRuntimeAdapter>;
363
+ declare function createIpcClient(options: RuntimeFactoryOptions, bridge: PlutoIpcBridge, projectionBroker?: NativeProjectionBroker): PlutoRuntimeAssembly<IpcRuntimeAdapter>;
20
364
 
21
365
  export { PlutoRuntimeAssembly, RuntimeFactoryOptions, createIpcClient, createWasmClient };
@@ -1 +1 @@
1
- import {a as a$2}from'../chunk-KRJECX7X.js';import {t,a as a$3}from'../chunk-XAL4T6TB.js';import'../chunk-HUG5AX7R.js';import'../chunk-DUY34MGT.js';import'../chunk-R35AWMNY.js';import'../chunk-Z2IS6NH2.js';import'../chunk-AJQVMVYW.js';import {a as a$1}from'../chunk-WA434EWD.js';import'../chunk-HEAJ7ZUR.js';import'../chunk-7BJKDBLP.js';import'../chunk-2L6ULC32.js';import'../chunk-2SUSPEC4.js';var n=false;function a(){n||(n=true,a$3(async()=>{let t=await import('../openrtc-MWLNTJI7.js');return {initWasm:t.default,WasmClient:t.WasmClient,start:t.start}}));}async function d(t){a();let e=a$1(t),{WasmBridge:i}=await import('../WasmBridge-75F6GKHG.js');return a$2(e,new i(e))}function y(t$1,e){let i=a$1(t$1);return a$2(i,new t({...i,bridge:e}))}export{y as createIpcClient,d as createWasmClient};
1
+ import {a as a$2}from'../chunk-Z4KJHIV5.js';import {s}from'../chunk-2K47N3QP.js';import'../chunk-BGWJHPBC.js';import'../chunk-FEF3DPPB.js';import'../chunk-GTHSRQ7Y.js';import {a as a$1}from'../chunk-XTYALGJN.js';import'../chunk-TYZS5LXQ.js';import'../chunk-OT7IPLZE.js';import'../chunk-OWKAJPOI.js';import {a}from'../chunk-VTYVIKTM.js';import'../chunk-72NEEJQG.js';import'../chunk-DUY34MGT.js';import'../chunk-CCCYE3XN.js';import'../chunk-N6LGTNUI.js';import'../chunk-JPBW67B3.js';import'../chunk-2GX6GB6L.js';async function l(e){let t=a$1(e),{WasmBridge:o}=await import('../WasmBridge-ZXBCXBBM.js');return a$2(t,new o(t))}function y(e,t,o=new a){let m=a$1(e);return a$2(m,new s({...m,bridge:t,projectionBroker:o}))}export{y as createIpcClient,l as createWasmClient};
@@ -1,17 +1,15 @@
1
- import { a as PeerReconciliationStats } from '../assembly-Bmi65-tK.js';
2
- export { D as ConnectionActor, d as ConnectionActorError, e as ConnectionActorErrorKind, f as ConnectionActorKey, g as ConnectionActorOptions, h as ConnectionActorState, i as ConnectionActors, j as ConnectionClose, k as ConnectionDial, l as LogicalChannel, P as PolicySnapshot, m as PreferredTransport, n as RUNTIME_POLICY, R as RuntimeClient, o as connectionActorKey, p as connectionActorKeyString, q as getRuntimePolicy } from '../assembly-Bmi65-tK.js';
1
+ import { a as PeerReconciliationStats } from '../assembly-DvfsYFCL.js';
2
+ export { D as ConnectionActor, d as ConnectionActorError, e as ConnectionActorErrorKind, f as ConnectionActorKey, g as ConnectionActorOptions, h as ConnectionActorState, i as ConnectionActors, j as ConnectionClose, k as ConnectionDial, l as LogicalChannel, P as PolicySnapshot, m as PreferredTransport, n as RUNTIME_POLICY, R as RuntimeClient, o as connectionActorKey, p as connectionActorKeyString, q as getRuntimePolicy } from '../assembly-DvfsYFCL.js';
3
3
  import { Client as Client$1 } from '../coreClient.js';
4
- import { b as Avenue } from '../types--jQzenZR.js';
5
- import * as Draft14 from '@moq/net';
6
- import { a7 as SignalingOptions, I as ISignalingBackend, m as RuntimeIdentity, l as RoomMember, n as SignalingEnvelope, u as SignalingSession, D as Device, r as DesiredPeerProjection, w as BackendConnectionState, a6 as AppLimits, G as GrantScope, Y as JoinRoomOptions, W as ChannelMetadata, a2 as CryptoStreams, a8 as RoomCreationMode, h as ClientOptions, z as PayloadCrypto, k as DiscoveryMode, a1 as ProtocolCapabilityMap, a9 as ScanningLoopOptions, aa as ScanningLoopHandle, ab as RuntimeBootstrapOptions, ac as RuntimeBootstrapResult, F as ApplicationPayloadReadinessOptions, ad as ManagedApplicationRouteOptions, Q as PeerState, T as PeerScope, U as PeerHealth, V as ChannelDescriptor, ae as JoinRequest, N as NativeConnectParams, t as NativeConnectResult } from '../ITransport-CjxCQ6q7.js';
7
- import { a as Connection, t as ConnectionTarget, m as RawConnection } from '../types-DDhMQkK8.js';
8
- export { v as AutoConnectPolicy, B as BrowserProtocolStore, C as ChannelDescriptor, w as ChannelFraming, i as ConnectionEvent, g as ConnectionState, x as ConnectionStatus, k as DeviceConnectOptions, y as DevicePresence, l as DeviceProfile, D as DeviceStatus, I as IncomingStream, q as IrohDocEntry, p as IrohMutationReceipt, J as JoinRoomOptions, L as LocalDeviceInfo, M as ManagedOptions, j as ManagedSession, N as NamespaceDescriptor, z as PayloadRouteOptions, P as PeerConnectOptions, E as PeerLifecycleStatus, b as PeerReadiness, F as PeerSessionSnapshot, d as PeerStreamOptions, u as PresenceLoopOptions, G as PresencePolicy, h as ReadinessOptions, H as RuntimeAuthContext, r as RuntimeAuthIdentity, o as RuntimeClientOptions, e as RuntimeDevice, c as RuntimePeerHealth, K as RuntimePeerScope, R as RuntimePeerState, n as RuntimeRoomMember, s as RuntimeSession, S as ScopedChannelOptions, f as ScopedLogicalChannel, O as SessionKind, Q as SessionPlatform } from '../types-DDhMQkK8.js';
9
- import { R as RuntimeCapabilities } from '../capabilities-BPuynml5.js';
10
- export { B as BROWSER_CAPABILITIES, a as CapabilityHost, C as CapabilityProfile, N as NATIVE_CAPABILITIES, b as NativeRuntimeStatus, c as RuntimeAdapterKind, T as TransportStatus, d as browserCapabilities, e as capabilityProfile, f as cloneCapabilities, s as statusCapabilities } from '../capabilities-BPuynml5.js';
4
+ import { c as Avenue } from '../types-Cyc-mPjk.js';
5
+ import { aB as SignalingOptions, U as ISignalingBackend, V as RuntimeIdentity, W as RoomMember, _ as SignalingEnvelope, a1 as SignalingSession, X as Device, a0 as DesiredPeerProjection, ae as BackendConnectionState, ay as AppLimits, G as GrantScope, j as Connection, aC as JoinRoomOptions, aD as ChannelMetadata, as as CryptoStreams, aE as RoomCreationMode, Q as ClientOptions, ar as PayloadCrypto, K as DiscoveryMode, aF as ProtocolCapabilityMap, aG as ScanningLoopOptions, aH as ScanningLoopHandle, aI as RuntimeBootstrapOptions, aJ as RuntimeBootstrapResult, aK as ApplicationPayloadReadinessOptions, aL as ManagedApplicationRouteOptions, aM as PeerState, aN as PeerScope, aO as PeerHealth, aP as ChannelDescriptor, aQ as JoinRequest, ac as NativeConnectParams, ad as NativeConnectResult, az as ConnectionTarget, A as RawConnection } from '../Connection-CTpuImO-.js';
6
+ export { aR as AutoConnectPolicy, aj as BrowserProtocolStore, C as ChannelDescriptor, aS as ChannelFraming, t as ConnectionEvent, r as ConnectionState, aT as ConnectionStatus, v as DeviceConnectOptions, aU as DevicePresence, z as DeviceProfile, D as DeviceStatus, I as IncomingStream, am as IrohDocEntry, al as IrohMutationReceipt, J as JoinRoomOptions, L as LocalDeviceInfo, M as ManagedOptions, u as ManagedSession, ak as NamespaceDescriptor, aV as PayloadRouteOptions, i as PeerConnectOptions, aW as PeerLifecycleStatus, l as PeerReadiness, aX as PeerSessionSnapshot, o as PeerStreamOptions, aa as PortableMediaChunk, ab as PortableMediaControl, a8 as PortableMediaPublicationStart, a7 as PortableMediaPublish, a9 as PortableMediaSample, aA as PresenceLoopOptions, aY as PresencePolicy, s as ReadinessOptions, aZ as RuntimeAuthContext, aw as RuntimeAuthIdentity, H as RuntimeClientOptions, p as RuntimeDevice, m as RuntimePeerHealth, a_ as RuntimePeerScope, h as RuntimePeerState, B as RuntimeRoomMember, ax as RuntimeSession, S as ScopedChannelOptions, q as ScopedLogicalChannel, a$ as SessionKind, b0 as SessionPlatform } from '../Connection-CTpuImO-.js';
7
+ import { R as RuntimeCapabilities } from '../capabilities-CmzzxSvW.js';
8
+ export { B as BROWSER_CAPABILITIES, a as CapabilityHost, b as CapabilityMaturity, C as CapabilityProfile, N as NATIVE_CAPABILITIES, c as NativeRuntimeStatus, P as ProductCapabilityMaturity, d as RuntimeAdapterKind, T as TransportStatus, e as browserCapabilities, f as capabilityProfile, g as cloneCapabilities, s as statusCapabilities } from '../capabilities-CmzzxSvW.js';
11
9
  export { DeviceActiveOptions, isDeviceActive, isDeviceConnectable, isDeviceRoutable } from './device-status.js';
12
- export { a as IpcAdapterOptions, I as IpcRuntimeAdapter } from '../IpcRuntimeAdapter-CE0va9Tr.js';
13
- export { P as NativeBridge, N as NativeIpcFailureKind, P as PlutoIpcBridge, a as PlutoIpcUnlisten, c as classifyIpcFailure, i as isIpcUnavailable } from '../ipc-CPnNwv6f.js';
14
- import '../DelegatingRuntimeAdapter-DE4LTGAJ.js';
10
+ export { a as IpcAdapterOptions, I as IpcRuntimeAdapter } from '../IpcRuntimeAdapter-Ddx0MtSI.js';
11
+ export { P as NativeBridge, N as NativeIpcFailureKind, P as PlutoIpcBridge, a as PlutoIpcUnlisten, c as classifyIpcFailure, i as isIpcUnavailable } from '../ipc-DgzKqHH3.js';
12
+ import '../DelegatingRuntimeAdapter-D67Ozqo3.js';
15
13
 
16
14
  declare class Signaling {
17
15
  private readonly appTag;
@@ -54,7 +52,7 @@ declare class Signaling {
54
52
  startAutoConnect(userId: string, localDeviceId: string): void;
55
53
  submitDesiredPeerProjection(revision: number, peers: DesiredPeerProjection[]): Promise<void>;
56
54
  notifyDisconnectRequested(remoteNodeId: string): void;
57
- startPresenceLoop(userId: string, localNodeId: string, deviceName: string, ticket: string, metadata?: string): void;
55
+ startPresenceLoop(userId: string, localNodeId: string, deviceName: string, ticket: string, metadata?: string): Promise<void>;
58
56
  forceReconnect(): void;
59
57
  isConnected(nodeId: string): Promise<boolean>;
60
58
  getConnectionStates(): Promise<BackendConnectionState[]>;
@@ -71,142 +69,6 @@ type CapabilityRuntime = Client$1;
71
69
  */
72
70
  declare function runtimeForCapability(handle: Avenue): CapabilityRuntime;
73
71
 
74
- interface MoQSubscriberOptions {
75
- maxPendingSubscriptions?: number;
76
- maxSubscribeRetries?: number;
77
- subscribeRetryDelayMs?: number;
78
- maxBufferedGroupsPerTrack?: number;
79
- maxBufferedFramesPerGroup?: number;
80
- maxBufferedBytesPerTrack?: number;
81
- maxObjectPayloadBytes?: number;
82
- onSubscriptionTerminated?: (namespace: string, name: string, error: unknown) => void;
83
- }
84
- /** Draft-14 subscriber facade; session reconnect remains owned by MoQController. */
85
- declare class MoQSubscriber {
86
- private readonly session;
87
- private readonly onObject;
88
- private readonly subscriptions;
89
- private readonly maxSubscriptions;
90
- private readonly maxSubscribeRetries;
91
- private readonly subscribeRetryDelayMs;
92
- private readonly maxObjectPayloadBytes;
93
- private readonly onSubscriptionTerminated?;
94
- private closed;
95
- constructor(session: MoQSession, onObject: (trackNamespace: string, trackName: string, object: Uint8Array, metadata: unknown) => void, options?: MoQSubscriberOptions);
96
- subscribe(namespace: string, name: string): Promise<void>;
97
- close(): void;
98
- private consume;
99
- }
100
-
101
- interface TransportInterface {
102
- createBidirectionalStream(): Promise<{
103
- readable: ReadableStream<Uint8Array>;
104
- writable: WritableStream<Uint8Array>;
105
- }>;
106
- createUnidirectionalStream(): Promise<WritableStream<Uint8Array>>;
107
- incomingBidirectionalStreams: ReadableStream<unknown>;
108
- incomingUnidirectionalStreams: ReadableStream<ReadableStream<Uint8Array>>;
109
- close(): void;
110
- ready: Promise<void>;
111
- }
112
- interface MoQSessionOptions {
113
- onSubscriptionTerminated?: (namespace: string, name: string, error: unknown) => void;
114
- }
115
- interface MoQDatagramDuplex {
116
- readonly maxDatagramSize?: number;
117
- readonly readable: ReadableStream<Uint8Array>;
118
- readonly writable: WritableStream<Uint8Array>;
119
- close(): void;
120
- }
121
- /**
122
- * Draft-14 MoQT adapter. The OpenRTC controller owns reconnect and lifecycle;
123
- * this class owns only one negotiated relay session and its protocol handles.
124
- */
125
- declare class MoQSession {
126
- readonly transport: TransportInterface;
127
- private readonly relayUrl;
128
- readonly publisher: MoQPublisher;
129
- readonly subscriber: MoQSubscriber;
130
- setupComplete: boolean;
131
- private connection;
132
- private closeListeners;
133
- private closed;
134
- private closeEmitted;
135
- private setupResolve;
136
- private readonly setupPromise;
137
- constructor(transport: TransportInterface, onObject?: (ns: string, name: string, obj: Uint8Array, meta: unknown) => void, role?: number, relayUrl?: URL, options?: MoQSessionOptions);
138
- requireConnection(): Draft14.Connection.Established;
139
- /**
140
- * Open the patched Draft 14 object-datagram surface used only by the Iroh
141
- * packet carrier. Existing application-data publishing remains on subgroup
142
- * streams and never shares readiness with this duplex.
143
- */
144
- openDatagramDuplex(publishNamespace: string, subscribeNamespace: string, trackName: string): Promise<MoQDatagramDuplex>;
145
- init(): Promise<void>;
146
- waitForSetup(): Promise<void>;
147
- onClose(callback: (reason?: unknown) => void): () => void;
148
- close(): void;
149
- private emitClose;
150
- }
151
-
152
- interface MoQPublisherOptions {
153
- maxPendingAnnounces?: number;
154
- announceTimeoutMs?: number;
155
- maxSubscribedTracks?: number;
156
- maxActivePublishers?: number;
157
- maxTrackIdChars?: number;
158
- /**
159
- * Reject an application object before it reaches a relay track. This must
160
- * match the receiver-side default so browser and native clients apply the
161
- * same hard egress boundary.
162
- */
163
- maxObjectPayloadBytes?: number;
164
- }
165
- interface TrackPublisher {
166
- close(): void;
167
- push(data: Uint8Array, init: {
168
- isKey: boolean;
169
- timestamp: number;
170
- closeAfterPush?: boolean;
171
- }): Promise<void>;
172
- }
173
- /** Draft-14 publisher facade preserving OpenRTC's existing data-track API. */
174
- declare class MoQPublisher {
175
- private readonly session;
176
- private readonly namespaces;
177
- private readonly activePublishers;
178
- private readonly maxNamespaces;
179
- private readonly maxSubscribedTracks;
180
- private readonly maxActivePublishers;
181
- private readonly maxTrackIdChars;
182
- private readonly maxObjectPayloadBytes;
183
- private closed;
184
- constructor(session: MoQSession, options?: MoQPublisherOptions);
185
- announce(namespace: string): Promise<void>;
186
- hasNamespace(namespace: string): boolean;
187
- hasTrackSubscriber(namespace: string, name: string): boolean;
188
- createTrack(namespace: string, name: string): Promise<TrackPublisher>;
189
- close(): void;
190
- private acceptTrackRequests;
191
- private totalSubscriberCount;
192
- private resolveTrackId;
193
- }
194
-
195
- /**
196
- * Browser MoQ session controller.
197
- *
198
- * Owns the WebTransport-backed MoQ relay session, reconnect state, peer
199
- * subscriptions, and direct MoQ data helpers. `Client` remains the facade so
200
- * existing SDK calls and test spies keep working while MoQ stops contributing
201
- * more lifecycle state to the god object.
202
- */
203
-
204
- type MoQBundle = {
205
- session: MoQSession;
206
- publisher: MoQPublisher;
207
- subscriber: MoQSubscriber;
208
- };
209
-
210
72
  interface RoomClientHost {
211
73
  wasmClient: any;
212
74
  roomCreationMode: 'client-open' | 'client-auth' | 'server-only';
@@ -251,11 +113,14 @@ type ProtocolHint = 'control' | 'explicit' | 'native-main' | 'unknown';
251
113
  type IncomingStreamEvent = {
252
114
  type: 'bi' | 'uni';
253
115
  stream: any;
116
+ connectionId?: string;
254
117
  remoteNodeId: string;
255
118
  transportStableId?: number;
256
119
  traceId?: string;
257
120
  protocolHint?: ProtocolHint;
258
121
  channel?: ChannelMetadata | null;
122
+ applicationAuthorized?: boolean;
123
+ admissionCandidate?: boolean;
259
124
  applicationCrypto?: CryptoStreams;
260
125
  invalid?: boolean;
261
126
  };
@@ -318,18 +183,11 @@ declare class Client {
318
183
  subscribeSessions(localDeviceId: string, callback: (session: SignalingSession) => void | Promise<void>): Promise<() => void>;
319
184
  startScanningLoop(options: ScanningLoopOptions): Promise<ScanningLoopHandle>;
320
185
  bootstrapRuntime(options: RuntimeBootstrapOptions): Promise<RuntimeBootstrapResult>;
321
- updateTransportConfig(transports: ClientOptions['transports']): void;
186
+ updateTransportConfig(transports: ClientOptions['transports']): Promise<void>;
322
187
  init(): Promise<void>;
323
188
  ensureAuthenticated(reason: 'init' | 'room-op' | 'discovery'): Promise<void>;
324
189
  refreshRuntimeAuthToken(reason?: 'runtime-start' | 'managed-session'): Promise<void>;
325
- get moqState(): string;
326
- get moq(): MoQBundle | null;
327
- onMoQReady(cb: () => void): () => void;
328
- onMoQFailed(cb: () => void): () => void;
329
190
  refreshTransportCapabilities(reason?: string): Promise<void>;
330
- onMoQObject(callback: (ns: string, name: string, obj: Uint8Array, meta: any) => void): () => void;
331
- subscribeMoQPeer(connection: Connection): void;
332
- subscribeMoQPeerNode(peerId: string, subscriptionKey?: string): void;
333
191
  connect(ticket: string, timeoutMs?: number, expectedDeviceId?: string | null, channelId?: string, options?: {
334
192
  admissionAlreadyPresented?: boolean;
335
193
  approvedScope?: string | null;
@@ -413,10 +271,6 @@ declare class Client {
413
271
  listChannels(): ChannelDescriptor[];
414
272
  onChannelStream(channelId: string, callback: (stream: IncomingStreamEvent) => boolean | void): () => void;
415
273
  onRoomJoinRequest(callback: (request: JoinRequest) => void): () => void;
416
- isMoQDataReady(peerId: string | null): boolean;
417
- sendMoQData(peerId: string | null, data: Uint8Array, options?: {
418
- alreadyProtected?: boolean;
419
- }): Promise<void>;
420
274
  }
421
275
 
422
276
  /**
@@ -1 +1 @@
1
- export{a as runtimeFromCapability}from'../chunk-UILOGUOU.js';import'../chunk-ZA44REGI.js';export{a as isDeviceActive,c as isDeviceConnectable,b as isDeviceRoutable}from'../chunk-CK6WQV7J.js';export{i as ConnectionActor,f as ConnectionActorError,j as ConnectionActors,b as ConnectionController,t as IpcRuntimeAdapter,s as RuntimeClient,e as clog,q as concatRuntimeBytes,g as connectionActorKey,h as connectionActorKeyString,p as createJsonDecoder,l as createU32Decoder,n as decodeJsonPayload,o as encodeJsonFrame,m as encodeJsonPayload,k as encodeU32Frame,d as grantCorrelation,r as readRuntimeU32BE,c as renderCorrelation}from'../chunk-XAL4T6TB.js';export{a as classifyIpcFailure,b as isIpcUnavailable}from'../chunk-HUG5AX7R.js';import'../chunk-DUY34MGT.js';import'../chunk-R35AWMNY.js';export{s as BROWSER_CAPABILITIES,t as NATIVE_CAPABILITIES,q as RUNTIME_POLICY,v as browserCapabilities,x as capabilityProfile,u as cloneCapabilities,r as getRuntimePolicy,i as logTeardownTrace,w as statusCapabilities}from'../chunk-Z2IS6NH2.js';import'../chunk-AJQVMVYW.js';import'../chunk-WA434EWD.js';import'../chunk-HEAJ7ZUR.js';import'../chunk-7BJKDBLP.js';export{b as openRtcDebug,a as openRtcDebugEnabled,c as openRtcDebugInfo,d as openRtcDebugLog}from'../chunk-2L6ULC32.js';import'../chunk-2SUSPEC4.js';
1
+ export{a as isDeviceActive,c as isDeviceConnectable,b as isDeviceRoutable}from'../chunk-CK6WQV7J.js';export{h as ConnectionActor,e as ConnectionActorError,i as ConnectionActors,a as ConnectionController,s as IpcRuntimeAdapter,r as RuntimeClient,d as clog,p as concatRuntimeBytes,f as connectionActorKey,g as connectionActorKeyString,o as createJsonDecoder,k as createU32Decoder,m as decodeJsonPayload,n as encodeJsonFrame,l as encodeJsonPayload,j as encodeU32Frame,c as grantCorrelation,q as readRuntimeU32BE,b as renderCorrelation}from'../chunk-2K47N3QP.js';import'../chunk-BGWJHPBC.js';import'../chunk-FEF3DPPB.js';export{q as BROWSER_CAPABILITIES,r as NATIVE_CAPABILITIES,o as RUNTIME_POLICY,t as browserCapabilities,v as capabilityProfile,s as cloneCapabilities,p as getRuntimePolicy,h as logTeardownTrace,d as openRtcDebug,c as openRtcDebugEnabled,e as openRtcDebugInfo,f as openRtcDebugLog,u as statusCapabilities}from'../chunk-GTHSRQ7Y.js';import'../chunk-XTYALGJN.js';import'../chunk-TYZS5LXQ.js';import'../chunk-OT7IPLZE.js';import'../chunk-OWKAJPOI.js';export{a as classifyIpcFailure,b as isIpcUnavailable}from'../chunk-72NEEJQG.js';export{a as runtimeFromCapability}from'../chunk-Z54XUIKZ.js';import'../chunk-ZA44REGI.js';import'../chunk-LLZT3MR6.js';import'../chunk-DUY34MGT.js';import'../chunk-CCCYE3XN.js';import'../chunk-N6LGTNUI.js';import'../chunk-JPBW67B3.js';import'../chunk-2GX6GB6L.js';
@@ -0,0 +1,14 @@
1
+ export { AuthorityAssignmentInput, AuthorityInterestAssignment, AuthorityServiceGrant, AuthorityServiceGrantRequest, Ed25519Signer } from './service-node.js';
2
+ import './types-Cyc-mPjk.js';
3
+ import './coreClient.js';
4
+ import './assembly-DvfsYFCL.js';
5
+ import './Connection-CTpuImO-.js';
6
+ import './capabilities-CmzzxSvW.js';
7
+
8
+ /** Browser export for `openrtc/server`; secret-bearing helpers are unavailable. */
9
+
10
+ declare class AuthorityServiceControlPlane {
11
+ constructor();
12
+ }
13
+
14
+ export { AuthorityServiceControlPlane };
@@ -0,0 +1 @@
1
+ var e=class{constructor(){throw new Error("[OpenRTC] openrtc/server is unavailable in browsers; request a delegated grant from your backend.")}};export{e as AuthorityServiceControlPlane};