openrtc 2.4.0 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +97 -5
  2. package/dist/BrowserManagedBroadcastHost-ARCP5MGJ.js +1 -0
  3. package/dist/{Connection-DZ5eP5hL.d.ts → Connection-CTpuImO-.d.ts} +168 -4
  4. package/dist/{DelegatingRuntimeAdapter-4cgiIWMN.d.ts → DelegatingRuntimeAdapter-D67Ozqo3.d.ts} +7 -3
  5. package/dist/{IpcRuntimeAdapter-Dduaxscj.d.ts → IpcRuntimeAdapter-Ddx0MtSI.d.ts} +8 -2
  6. package/dist/NativeManagedBroadcastHost-WCQ6TPUU.js +1 -0
  7. package/dist/WasmBridge-LWMCETW4.js +1 -0
  8. package/dist/{assembly-By3UBQsE.d.ts → assembly-LOFcpH3S.d.ts} +9 -3
  9. package/dist/{capabilities-B2mHv_H7.d.ts → capabilities-CmzzxSvW.d.ts} +13 -2
  10. package/dist/chunk-6Q2LAXM4.js +1 -0
  11. package/dist/chunk-AAZPQQXX.js +2 -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-CNAW5BZ3.js +2 -0
  17. package/dist/chunk-DUY34MGT.js +1 -0
  18. package/dist/{chunk-5XOLKH66.js → chunk-EFTDXE6M.js} +1 -1
  19. package/dist/chunk-FB5M6GIW.js +2 -0
  20. package/dist/chunk-J7NBMQQA.js +2 -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-PLIWPC45.js +1 -0
  25. package/dist/chunk-TZLNKQNJ.js +1 -0
  26. package/dist/chunk-VFDCIEP6.js +2 -0
  27. package/dist/{chunk-P2SHJMS3.js → chunk-VTYVIKTM.js} +1 -1
  28. package/dist/chunk-XTYALGJN.js +2 -0
  29. package/dist/{controlPlane-7E6KGQPP.js → controlPlane-IIPEJ77Q.js} +1 -1
  30. package/dist/coreClient.d.ts +3 -3
  31. package/dist/coreClient.js +1 -1
  32. package/dist/{deviceEnrollment-CBJYXZ43.js → deviceEnrollment-ZQZ2WP5H.js} +1 -1
  33. package/dist/{deviceKey-Y35WSEQQ.js → deviceKey-EIMDBAQS.js} +1 -1
  34. package/dist/index.d.ts +6 -5
  35. package/dist/index.js +1 -1
  36. package/dist/ipcFactory-PDVLUG2W.js +1 -0
  37. package/dist/native.d.ts +5 -5
  38. package/dist/native.js +1 -1
  39. package/dist/node-browser.d.ts +8 -0
  40. package/dist/node-browser.js +1 -0
  41. package/dist/node.d.ts +91 -0
  42. package/dist/node.js +2 -0
  43. package/dist/openrtc-SQF7H4ZE.js +2 -0
  44. package/dist/openrtc_bg.wasm +0 -0
  45. package/dist/room-A2FMQRNZ.js +1 -0
  46. package/dist/runtime/WasmRuntimeAdapter.d.ts +3 -3
  47. package/dist/runtime/WasmRuntimeAdapter.js +1 -1
  48. package/dist/runtime/device-status.d.ts +1 -1
  49. package/dist/runtime/factories.d.ts +75 -6
  50. package/dist/runtime/factories.js +1 -1
  51. package/dist/runtime/index.d.ts +11 -10
  52. package/dist/runtime/index.js +1 -1
  53. package/dist/server-browser.d.ts +14 -0
  54. package/dist/server-browser.js +1 -0
  55. package/dist/server.d.ts +44 -0
  56. package/dist/server.js +2 -0
  57. package/dist/service-node.d.ts +156 -0
  58. package/dist/service-node.js +1 -0
  59. package/dist/testing/native.d.ts +4 -4
  60. package/dist/testing/native.js +1 -1
  61. package/dist/testing.d.ts +40 -5
  62. package/dist/testing.js +1 -1
  63. package/dist/transport/index.d.ts +2 -2
  64. package/dist/{types-BArEthJr.d.ts → types-Cyc-mPjk.d.ts} +189 -2
  65. package/native/darwin-arm64/openrtc-node-host +0 -0
  66. package/native/darwin-arm64/openrtc-node-host.manifest.json +20 -0
  67. package/native/darwin-x64/openrtc-node-host +0 -0
  68. package/native/darwin-x64/openrtc-node-host.manifest.json +20 -0
  69. package/native/linux-x64/openrtc-node-host +0 -0
  70. package/native/linux-x64/openrtc-node-host.manifest.json +20 -0
  71. package/native/openrtc-node-host-signing-public.pem +3 -0
  72. package/package.json +28 -4
  73. package/dist/WasmBridge-3W2HHADU.js +0 -1
  74. package/dist/chunk-2LATKLCC.js +0 -118
  75. package/dist/chunk-6OFAKLDB.js +0 -2
  76. package/dist/chunk-AJQVMVYW.js +0 -1
  77. package/dist/chunk-BCGCJGIV.js +0 -2
  78. package/dist/chunk-BOS554IK.js +0 -2
  79. package/dist/chunk-GNW63SM6.js +0 -2
  80. package/dist/chunk-MI3ZMVPK.js +0 -2
  81. package/dist/chunk-WB66633N.js +0 -1
  82. package/dist/chunk-XEHBTMJQ.js +0 -1
  83. package/dist/chunk-YYI6AY6W.js +0 -2
  84. package/dist/ipcFactory-4PCGKZIN.js +0 -1
  85. package/dist/openrtc-5HAYVDHT.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { PeerNamespace, ChannelNamespace, DiagnosticsNamespace, DeviceNamespace } from './coreClient.js';
2
- import { C as ChannelDescriptor, P as PlutoIrohConfiguration, a as PlutoRTCConfiguration, b as PlutoMoQConfiguration, R as RouteOptimization, c as ProtocolName } from './Connection-DZ5eP5hL.js';
2
+ import { R as RoomArchitectureMode, b as RoomArchitectureSnapshot, c as RoomAuthorityAssignment, C as ChannelDescriptor, P as PlutoIrohConfiguration, d as PlutoRTCConfiguration, e as PlutoMoQConfiguration, f as RouteOptimization, g as ProtocolName } from './Connection-CTpuImO-.js';
3
3
 
4
4
  interface AuthProvider {
5
5
  /** Registered provider ID from the developer app capability manifest. */
@@ -317,6 +317,10 @@ interface Connection {
317
317
  interface Channel<T> {
318
318
  send(message: T): Promise<void>;
319
319
  sendTo(peerId: string, message: T): Promise<void>;
320
+ /**
321
+ * The event peerId is the authenticated device ID for sparse broadcasts;
322
+ * direct channels retain the connection peer ID.
323
+ */
320
324
  onMessage(callback: (event: {
321
325
  peerId: string;
322
326
  message: T;
@@ -362,6 +366,14 @@ interface Space extends Avenue {
362
366
  interface Room extends Avenue {
363
367
  readonly kind: 'room';
364
368
  readonly membership: 'ephemeral' | 'durable';
369
+ /** Current room-wide architecture chosen by the gateway policy owner. */
370
+ architecture(): RoomArchitectureSnapshot;
371
+ /** Emits the current snapshot immediately, then later committed changes. */
372
+ onArchitectureChanged(callback: (snapshot: RoomArchitectureSnapshot) => void): () => void;
373
+ /** Current signed application-interest assignment, if authority mode has assigned this client. */
374
+ authorityAssignment(): RoomAuthorityAssignment | null;
375
+ /** Emits the current assignment immediately, then later admitted revisions. */
376
+ onAuthorityAssignmentChanged(callback: (assignment: RoomAuthorityAssignment | null) => void): () => void;
365
377
  leave(): Promise<void>;
366
378
  }
367
379
  interface Ticket extends Avenue {
@@ -378,6 +390,12 @@ interface Ticket extends Avenue {
378
390
  interface DeviceOptions {
379
391
  auth?: AuthProvider;
380
392
  autoConnect?: 'none' | 'online';
393
+ /**
394
+ * Durable device IDs that automatic discovery must not connect to.
395
+ * Load persisted exclusions before calling `devices.start()` so the Rust
396
+ * owner and the first coordination presence share one atomic policy.
397
+ */
398
+ autoConnectExcludedDeviceIds?: readonly string[];
381
399
  /** Optional local profile; it does not alter the durable device identity. */
382
400
  profile?: DeviceProfile;
383
401
  maxPeers?: number;
@@ -400,9 +418,20 @@ interface RoomOptions {
400
418
  identity?: 'session';
401
419
  auth?: AuthProvider;
402
420
  maxPeers?: number;
421
+ /**
422
+ * Declares the room's delivery semantics for architecture selection.
423
+ * Reliable is the safe default. Sparse rooms require latest-state data.
424
+ */
425
+ payload?: Delivery;
426
+ /**
427
+ * Defaults to auto. A fixed mode is room-wide and may still fail safety or
428
+ * budget gates. Managed is reserved but unavailable in 2.5.
429
+ */
430
+ architecture?: RoomArchitectureMode;
403
431
  /**
404
432
  * Requires the app manifest's reviewed advanced-fanout opt-in. Rooms then
405
433
  * use a four-neighbor sparse overlay with bounded named-channel gossip.
434
+ * @deprecated Use `architecture: 'sparse'`. Removed in the next major.
406
435
  */
407
436
  advancedFanout?: boolean;
408
437
  }
@@ -425,9 +454,133 @@ interface Usage {
425
454
  creditsUsd: number;
426
455
  estimated: true;
427
456
  };
457
+ estimateRoom(input: RoomUsageEstimateInput): RoomUsageEstimate;
428
458
  readonly sessionCreditsUsd: number;
429
459
  }
460
+ interface RoomUsageEstimateInput {
461
+ /** Managed quotes are unavailable in 2.5 and fail with `room-architecture-unavailable`. */
462
+ architecture?: RoomArchitectureMode;
463
+ maxMembers: number;
464
+ durationSeconds: number;
465
+ delivery: Delivery;
466
+ maxPayloadBytes: number;
467
+ maxMessagesPerSecond: number;
468
+ }
469
+ interface RoomUsageEstimate {
470
+ architecture: RoomArchitectureMode;
471
+ effectiveArchitecture: Exclude<RoomArchitectureMode, 'auto'>;
472
+ creditsUsd: number;
473
+ estimated: true;
474
+ expiresAtMs: number;
475
+ assumptions: readonly string[];
476
+ }
477
+ type OfflineAssurance = 'software' | 'hardware-backed' | 'manufacturer' | 'gateway';
478
+ interface OfflineRuntimeSupport {
479
+ provisioning: boolean;
480
+ localMesh: boolean;
481
+ cloudRequired: false;
482
+ reason?: string;
483
+ }
484
+ interface OfflineEnrollmentRequest {
485
+ body: {
486
+ protocol: 'openrtc-offline-device/1';
487
+ trustDomain: string;
488
+ deviceId: string;
489
+ endpointId: string;
490
+ proofPublicKey: string;
491
+ enrollmentNonce: string;
492
+ requestedRoles: string[];
493
+ /** Informational request metadata; the fleet issuer certifies the credential assurance. */
494
+ requestedAssurance: OfflineAssurance;
495
+ createdAtMs: number;
496
+ };
497
+ proofSignature: string;
498
+ }
499
+ interface Offline {
500
+ support(): Promise<OfflineRuntimeSupport>;
501
+ /** Native Rust signs this request; private key bytes never enter JavaScript. */
502
+ createEnrollmentRequest(options: {
503
+ trustDomain: string;
504
+ requestedRoles: string[];
505
+ }): Promise<OfflineEnrollmentRequest>;
506
+ }
507
+ /** Opaque, short-lived, installation-bound broadcast authority. */
508
+ type BroadcastGrant = string & {
509
+ readonly __openrtcBroadcastGrant: unique symbol;
510
+ };
511
+ /** Single-use bearer invitation. Send it only to the intended recipient. */
512
+ type BroadcastInvite = string & {
513
+ readonly __openrtcBroadcastInvite: unique symbol;
514
+ };
515
+ type BroadcastRole = 'owner' | 'publisher' | 'subscriber' | 'processor';
516
+ type BroadcastState = 'opening' | 'live' | 'retrying' | 'closed' | 'failed';
517
+ interface BroadcastSource {
518
+ /** Anonymous slot such as `host-a`; never a device, endpoint, or provider ID. */
519
+ readonly id: string;
520
+ readonly alias?: string;
521
+ }
522
+ interface BroadcastTrackEvent extends MediaTrackEvent {
523
+ readonly source: BroadcastSource;
524
+ }
525
+ interface BroadcastMedia {
526
+ addTrack(track: MediaStreamTrack, options?: MediaTrackOptions): Promise<MediaSender>;
527
+ removeTrack(sender: MediaSender): Promise<void>;
528
+ onTrack(callback: (event: BroadcastTrackEvent) => void): () => void;
529
+ senders(): readonly MediaSender[];
530
+ receivers(): readonly MediaReceiver[];
531
+ }
532
+ interface BroadcastStats {
533
+ queuedMediaBytes: number;
534
+ droppedMediaObjects: number;
535
+ publishedBytes: number;
536
+ deliveredBytes: number;
537
+ retries: number;
538
+ }
539
+ /** Non-peer relay publication/subscription. It never exposes a carrier or provider handle. */
540
+ interface BroadcastSession {
541
+ readonly id: string;
542
+ readonly role: BroadcastRole;
543
+ readonly state: BroadcastState;
544
+ readonly media: BroadcastMedia;
545
+ getStats(): Promise<BroadcastStats>;
546
+ close(): Promise<void>;
547
+ }
548
+ /**
549
+ * Runtime-owned publisher identity. Only its public verification key is
550
+ * exportable; the sign-only private key remains inside native Rust or WASM.
551
+ */
552
+ interface BroadcastPublisher {
553
+ readonly verificationKey: Uint8Array;
554
+ open(grant: BroadcastGrant): Promise<BroadcastSession>;
555
+ close(): Promise<void>;
556
+ }
557
+ interface BroadcastCreateOptions {
558
+ /** Rust/WASM/native signer whose public key is bound into the owner grant. */
559
+ publisher: BroadcastPublisher;
560
+ auth?: AuthProvider;
561
+ sourceSlot?: string;
562
+ maxPublishers: number;
563
+ maxSubscribers: number;
564
+ maxBitrateBps: number;
565
+ maxDurationSeconds: number;
566
+ maxEgressBytes: number;
567
+ /** Actual initial owner publication reservation, not the broadcast ceiling. */
568
+ publisherBitrateBps: number;
569
+ /** Actual initial owner/viewer egress reservation, not the broadcast ceiling. */
570
+ reservedEgressBytes: number;
571
+ }
572
+ interface BroadcastInviteOptions {
573
+ role: 'publisher' | 'subscriber';
574
+ /** Required for publishers; obtained from that co-host's prepared signer. */
575
+ publicationVerificationKey?: Uint8Array;
576
+ /** Required and unique for publishers; omitted for subscribers. */
577
+ sourceSlot?: string;
578
+ bitrateBps: number;
579
+ durationSeconds: number;
580
+ reservedEgressBytes: number;
581
+ }
430
582
  interface Client {
583
+ readonly offline: Offline;
431
584
  readonly devices: {
432
585
  /**
433
586
  * Returns this installation's durable, app-scoped device ID without
@@ -455,9 +608,43 @@ interface Client {
455
608
  readonly tickets: {
456
609
  issue(id: string, options?: TicketOptions): Promise<Ticket>;
457
610
  };
611
+ readonly broadcasts: {
612
+ /** Reserve hard limits and mint a device/key-bound owner grant. */
613
+ create(options: BroadcastCreateOptions): Promise<BroadcastGrant>;
614
+ /** The signed grant decides the role; options cannot promote the caller. */
615
+ open(grant: BroadcastGrant): Promise<BroadcastSession>;
616
+ /** Familiar viewer alias for `open`; the grant still decides the role. */
617
+ subscribe(grant: BroadcastGrant): Promise<BroadcastSession>;
618
+ /** Prepare a runtime-owned signer before requesting a publisher grant. */
619
+ preparePublisher(): Promise<BroadcastPublisher>;
620
+ /** Renewal advances the grant generation; it never mutates in place. */
621
+ renew(grant: BroadcastGrant, options?: {
622
+ auth?: AuthProvider;
623
+ }): Promise<BroadcastGrant>;
624
+ /** Create a single-use role invitation; capacity is reserved on accept. */
625
+ invite(ownerGrant: BroadcastGrant, options: BroadcastInviteOptions & {
626
+ auth?: AuthProvider;
627
+ }): Promise<BroadcastInvite>;
628
+ /** Bind an invitation to this installation and mint its role grant. */
629
+ accept(invite: BroadcastInvite, options?: {
630
+ auth?: AuthProvider;
631
+ }): Promise<BroadcastGrant>;
632
+ /** Owner-only targeted revoke; the accepted invitation identifies one role/source. */
633
+ revoke(ownerGrant: BroadcastGrant, options: {
634
+ invite: BroadcastInvite;
635
+ auth?: AuthProvider;
636
+ }): Promise<void>;
637
+ /** Retire this installation's own role grant. */
638
+ leave(grant: BroadcastGrant, options?: {
639
+ auth?: AuthProvider;
640
+ }): Promise<void>;
641
+ close(grant: BroadcastGrant, options?: {
642
+ auth?: AuthProvider;
643
+ }): Promise<void>;
644
+ };
458
645
  readonly channels: Channels;
459
646
  readonly usage: Usage;
460
647
  close(): Promise<void>;
461
648
  }
462
649
 
463
- export type { AccessMode as A, BotVerificationProvider as B, Client as C, Delivery as D, EnrolledDevice as E, State as F, TicketOptions as G, Transports as H, IncomingPeerBidirectionalStream as I, UsageUpdate as J, UsageWarning as K, MediaConnection as M, Options as O, PeerBidirectionalStream as P, Room as R, Space as S, Ticket as T, Usage as U, AttestationProvider as a, AuthProvider as b, Avenue as c, Channel as d, Channels as e, Connection as f, DeviceOptions as g, DeviceProfile as h, Devices as i, IncomingPeerUnidirectionalStream as j, MediaIncomingDemuxStats as k, MediaKind as l, MediaLatencySummary as m, MediaReceiver as n, MediaReceiverStats as o, MediaSender as p, MediaSenderStats as q, MediaStats as r, MediaTrackEvent as s, MediaTrackOptions as t, PeerDatagramDuplexStream as u, PeerDatagramStats as v, PeerStreamOptions as w, PeerStreamTransport as x, RoomOptions as y, SpaceOptions as z };
650
+ export type { Space as $, AccessMode as A, BotVerificationProvider as B, Client as C, Delivery as D, EnrolledDevice as E, MediaReceiverStats as F, MediaSender as G, MediaSenderStats as H, IncomingPeerBidirectionalStream as I, MediaStats as J, MediaTrackEvent as K, MediaTrackOptions as L, MediaConnection as M, Offline as N, Options as O, OfflineAssurance as P, OfflineEnrollmentRequest as Q, OfflineRuntimeSupport as R, PeerBidirectionalStream as S, PeerDatagramDuplexStream as T, PeerDatagramStats as U, PeerStreamOptions as V, PeerStreamTransport as W, Room as X, RoomOptions as Y, RoomUsageEstimate as Z, RoomUsageEstimateInput as _, AttestationProvider as a, SpaceOptions as a0, State as a1, Ticket as a2, TicketOptions as a3, Transports as a4, Usage as a5, UsageUpdate as a6, UsageWarning as a7, AuthProvider as b, Avenue as c, BroadcastCreateOptions as d, BroadcastGrant as e, BroadcastInvite as f, BroadcastInviteOptions as g, BroadcastMedia as h, BroadcastPublisher as i, BroadcastRole as j, BroadcastSession as k, BroadcastSource as l, BroadcastState as m, BroadcastStats as n, BroadcastTrackEvent as o, Channel as p, Channels as q, Connection as r, DeviceOptions as s, DeviceProfile as t, Devices as u, IncomingPeerUnidirectionalStream as v, MediaIncomingDemuxStats as w, MediaKind as x, MediaLatencySummary as y, MediaReceiver as z };
@@ -0,0 +1,20 @@
1
+ {
2
+ "schema": 1,
3
+ "kind": "openrtc-node-host",
4
+ "platform": "darwin",
5
+ "arch": "arm64",
6
+ "rustTarget": "aarch64-apple-darwin",
7
+ "sourceCommit": "7e9df67b81fbf03ff8ea44ef1d9290ac13184d9f",
8
+ "sourceDigest": "aee854c5405a8e501c3f0e9f281603c2932baf7aea446c2c89b4aab842552285",
9
+ "binarySha256": "ad50f30cdb3ae513715305cd602e1bbec8a4680f8a243d569ea989612108da9a",
10
+ "protocol": {
11
+ "lifecycleOwner": "rust-peer-session",
12
+ "maxApplicationPayloadBytes": 65536,
13
+ "maxCommandBytes": 98304,
14
+ "maxConfigBytes": 24576,
15
+ "protocolVersion": 1
16
+ },
17
+ "signingKeySha256": "0391c617f3df12611b419e129cace36fa792e73da03271649cbed9e9f9f155ef",
18
+ "signatureAlgorithm": "ed25519",
19
+ "signature": "kuVunfgJyW3DkEwwEvuMU47xuzh5NIUdisyqaZvuplAVVaS7f5p9ZSPsXkWnHtQbXhgH3ZhuaJYqX1wXA+OBCw=="
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "schema": 1,
3
+ "kind": "openrtc-node-host",
4
+ "platform": "darwin",
5
+ "arch": "x64",
6
+ "rustTarget": "x86_64-apple-darwin",
7
+ "sourceCommit": "7e9df67b81fbf03ff8ea44ef1d9290ac13184d9f",
8
+ "sourceDigest": "aee854c5405a8e501c3f0e9f281603c2932baf7aea446c2c89b4aab842552285",
9
+ "binarySha256": "81ba3b60cc6dae1423e1900b3f979d9137753c8910bf0f52a3348f665cca6ad3",
10
+ "protocol": {
11
+ "lifecycleOwner": "rust-peer-session",
12
+ "maxApplicationPayloadBytes": 65536,
13
+ "maxCommandBytes": 98304,
14
+ "maxConfigBytes": 24576,
15
+ "protocolVersion": 1
16
+ },
17
+ "signingKeySha256": "0391c617f3df12611b419e129cace36fa792e73da03271649cbed9e9f9f155ef",
18
+ "signatureAlgorithm": "ed25519",
19
+ "signature": "EjbOwXt3VTPv77rMa7/YeCPysIJ5++27/nquXRIsheUQ3zt4urwQKuSS/xvY85Ja8K2TIqdNv7DuT1RunBj/DQ=="
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "schema": 1,
3
+ "kind": "openrtc-node-host",
4
+ "platform": "linux",
5
+ "arch": "x64",
6
+ "rustTarget": "x86_64-unknown-linux-gnu",
7
+ "sourceCommit": "7e9df67b81fbf03ff8ea44ef1d9290ac13184d9f",
8
+ "sourceDigest": "aee854c5405a8e501c3f0e9f281603c2932baf7aea446c2c89b4aab842552285",
9
+ "binarySha256": "3f8c966edeb58ca295fc2f71718c677066ba7d1bdbdf4cdaebde478352a62450",
10
+ "protocol": {
11
+ "lifecycleOwner": "rust-peer-session",
12
+ "maxApplicationPayloadBytes": 65536,
13
+ "maxCommandBytes": 98304,
14
+ "maxConfigBytes": 24576,
15
+ "protocolVersion": 1
16
+ },
17
+ "signingKeySha256": "0391c617f3df12611b419e129cace36fa792e73da03271649cbed9e9f9f155ef",
18
+ "signatureAlgorithm": "ed25519",
19
+ "signature": "TLarVzgrLm5M479wd6mP1tycTMvCRTWc3PGQBJBt9X/SbtuQJIQpb24FHxuVNgGOhdu+X+IQcGKTKO8LPABuBQ=="
20
+ }
@@ -0,0 +1,3 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MCowBQYDK2VwAyEAenesayXDgA9M3xDYvja7IU6RJF74haGncLNwkx3c708=
3
+ -----END PUBLIC KEY-----
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrtc",
3
- "version": "2.4.0",
3
+ "version": "2.5.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -27,6 +27,7 @@
27
27
  "dist/**/*.js",
28
28
  "dist/**/*.d.ts",
29
29
  "dist/**/*.wasm",
30
+ "native/**/*",
30
31
  "LICENSE",
31
32
  "README.md"
32
33
  ],
@@ -39,6 +40,26 @@
39
40
  "types": "./dist/native.d.ts",
40
41
  "import": "./dist/native.js"
41
42
  },
43
+ "./node": {
44
+ "browser": {
45
+ "types": "./dist/node-browser.d.ts",
46
+ "import": "./dist/node-browser.js"
47
+ },
48
+ "types": "./dist/node.d.ts",
49
+ "import": "./dist/node.js"
50
+ },
51
+ "./server": {
52
+ "browser": {
53
+ "types": "./dist/server-browser.d.ts",
54
+ "import": "./dist/server-browser.js"
55
+ },
56
+ "types": "./dist/server.d.ts",
57
+ "import": "./dist/server.js"
58
+ },
59
+ "./service-node": {
60
+ "types": "./dist/service-node.d.ts",
61
+ "import": "./dist/service-node.js"
62
+ },
42
63
  "./testing": {
43
64
  "types": "./dist/testing.d.ts",
44
65
  "import": "./dist/testing.js"
@@ -68,12 +89,14 @@
68
89
  "scripts": {
69
90
  "build": "tsup",
70
91
  "check:lightweight-entry": "node scripts/check-lightweight-entry.mjs",
71
- "check:native-bundle": "node scripts/check-native-bundle.mjs",
92
+ "check:native-bundle": "node scripts/check-native-bundle.mjs && pnpm --dir ../.. verify:node-host:released",
72
93
  "check:media-ownership": "vitest run tests/contract/MediaOwnershipAudit.test.ts --no-file-parallelism --maxWorkers=1",
94
+ "check:entrypoints": "node scripts/check-entrypoints.mjs",
95
+ "check:pack-install": "node scripts/check-pack-install.mjs",
73
96
  "build:clean": "rm -rf dist && pnpm run build",
74
- "release:prepare": "pnpm run build:wasm && pnpm run build:clean && pnpm run check:lightweight-entry && pnpm run check:native-bundle",
97
+ "release:prepare": "pnpm run build:wasm && pnpm run build:clean && pnpm run check:lightweight-entry && pnpm run check:native-bundle && pnpm run check:entrypoints && pnpm run check:pack-install",
75
98
  "build:types": "tsc --noEmit",
76
- "build:wasm": "cd ../../crates/openrtc && OPENRTC_REPO_ROOT=$(cd ../.. && pwd) && CARGO_REGISTRY_ROOT=${CARGO_HOME:-$HOME/.cargo} && RUSTUP_TOOLCHAIN=nightly RUSTFLAGS=\"-Zlocation-detail=none --remap-path-prefix=$HOME=/home --remap-path-prefix=$CARGO_REGISTRY_ROOT=/cargo --remap-path-prefix=$OPENRTC_REPO_ROOT=/openrtc\" wasm-pack build --target web --out-dir ../../packages/openrtc/wasm . --features iroh-protocols-wasm,transport-webrtc,transport-moq && rm -rf ../../packages/openrtc/wasm/.gitignore",
99
+ "build:wasm": "node ../../scripts/build-openrtc-wasm-artifact.mjs",
77
100
  "test": "pnpm run test:deterministic && pnpm run test:emulator",
78
101
  "test:deterministic": "OPENRTC_DETERMINISTIC_TESTS=1 vitest run tests/unit tests/contract",
79
102
  "test:emulator": "node ../../tests/emulator/run-emulator-suite.mjs",
@@ -99,6 +122,7 @@
99
122
  "tsup": "^8.5.1",
100
123
  "typescript": "^5.0.0",
101
124
  "vitest": "^4.0.18",
125
+ "ws": "8.21.0",
102
126
  "zod": "^4.4.3"
103
127
  },
104
128
  "directories": {
@@ -1 +0,0 @@
1
- export{a as WasmBridge}from'./chunk-YYI6AY6W.js';import'./chunk-GNW63SM6.js';import'./chunk-OT7IPLZE.js';import'./chunk-AJQVMVYW.js';import'./chunk-JPBW67B3.js';import'./chunk-MI3ZMVPK.js';import'./chunk-OWKAJPOI.js';import'./chunk-2GX6GB6L.js';