@signalapp/ringrtc 2.70.2 → 2.72.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/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RingRTCType } from './ringrtc/Service';
2
- export type { AudioDevice, CallId, CallSettings, DeviceId, GroupCallObserver, HttpResult, PeekDeviceInfo, PeekInfo, Reaction, UserId, VideoFrameSender, VideoFrameSource, } from './ringrtc/Service';
2
+ export type { AudioDevice, CallId, CallSettings, DeviceId, GroupCallObserver, GroupCallSvcConfig, HttpResult, PeekDeviceInfo, PeekInfo, Reaction, UserId, VideoFrameSender, VideoFrameSource, } from './ringrtc/Service';
3
3
  export { AnswerMessage, DataMode, BusyMessage, Call, CallEndReason, CallLogLevel, CallMessageUrgency, CallRejectReason, CallState, CallingMessage, ConnectionState, GroupCall, GroupCallKind, GroupMemberInfo, HangupMessage, HangupType, HttpMethod, IceCandidateMessage, JoinState, LocalDeviceState, OfferMessage, OfferType, OpaqueMessage, PeekStatusCodes, RemoteDeviceState, RingCancelReason, RingRTCType, RingUpdate, SpeechEvent, VideoPixelFormatEnum, videoPixelFormatToEnum, VideoRequest, callIdFromEra, callIdFromRingId, } from './ringrtc/Service';
4
4
  export { CallLinkRootKey, CallLinkRestrictions, CallLinkState, } from './ringrtc/CallLinks';
5
5
  export { CallSummary, QualityStats } from './ringrtc/CallSummary';
@@ -6,6 +6,7 @@ export declare class CallLinkRootKey {
6
6
  static generate(): CallLinkRootKey;
7
7
  static generateAdminPassKey(): Uint8Array<ArrayBuffer>;
8
8
  deriveRoomId(): Uint8Array<ArrayBuffer>;
9
+ toUnredactedString(): string;
9
10
  toString(): string;
10
11
  }
11
12
  export declare class CallLinkState {
@@ -31,10 +31,14 @@ class CallLinkRootKey {
31
31
  // oxlint-disable-next-line typescript/no-unsafe-return
32
32
  return Native_1.default.CallLinkRootKey_deriveRoomId(this.bytes);
33
33
  }
34
- toString() {
34
+ toUnredactedString() {
35
35
  // oxlint-disable-next-line typescript/no-unsafe-return
36
36
  return Native_1.default.CallLinkRootKey_toFormattedString(this.bytes);
37
37
  }
38
+ toString() {
39
+ // oxlint-disable-next-line typescript/no-unsafe-return
40
+ return Native_1.default.CallLinkRootKey_toRedactedString(this.bytes);
41
+ }
38
42
  }
39
43
  exports.CallLinkRootKey = CallLinkRootKey;
40
44
  class CallLinkState {
@@ -238,8 +238,8 @@ export declare class RingRTCType {
238
238
  deleteCallLink(sfuUrl: string, authCredentialPresentation: Uint8Array<ArrayBuffer>, linkRootKey: CallLinkRootKey, adminPasskey: Uint8Array<ArrayBuffer>): Promise<HttpResult<undefined>>;
239
239
  receivedHttpResponse(requestId: number, status: number, body: Uint8Array<ArrayBuffer>): void;
240
240
  httpRequestFailed(requestId: number, debugInfo: string | undefined): void;
241
- getGroupCall(groupId: GroupId, sfuUrl: string, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number | undefined, dredDuration: number | undefined, observer: GroupCallObserver): GroupCall | undefined;
242
- getCallLinkCall(sfuUrl: string, endorsementPublicKey: Uint8Array<ArrayBuffer>, authCredentialPresentation: Uint8Array<ArrayBuffer>, rootKey: CallLinkRootKey, adminPasskey: Uint8Array<ArrayBuffer> | undefined, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number | undefined, dredDuration: number | undefined, observer: GroupCallObserver): GroupCall | undefined;
241
+ getGroupCall(groupId: GroupId, sfuUrl: string, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number | undefined, dredDuration: number | undefined, svcConfig: GroupCallSvcConfig | undefined, observer: GroupCallObserver): GroupCall | undefined;
242
+ getCallLinkCall(sfuUrl: string, endorsementPublicKey: Uint8Array<ArrayBuffer>, authCredentialPresentation: Uint8Array<ArrayBuffer>, rootKey: CallLinkRootKey, adminPasskey: Uint8Array<ArrayBuffer> | undefined, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number | undefined, dredDuration: number | undefined, svcConfig: GroupCallSvcConfig | undefined, observer: GroupCallObserver): GroupCall | undefined;
243
243
  peekGroupCall(sfuUrl: string, membershipProof: Uint8Array<ArrayBuffer>, groupMembers: Array<GroupMemberInfo>): Promise<PeekInfo>;
244
244
  setMicrophoneWarmupEnabled(warmup: boolean): void;
245
245
  peekCallLinkCall(sfuUrl: string, authCredentialPresentation: Uint8Array<ArrayBuffer>, rootKey: CallLinkRootKey): Promise<HttpResult<PeekInfo>>;
@@ -311,12 +311,22 @@ export declare class RingRTCType {
311
311
  */
312
312
  setVoiceProcessingEnabled(enabled: boolean): void;
313
313
  }
314
+ type CallConfig = {
315
+ dataMode: DataMode;
316
+ dredDuration: number;
317
+ enableVp9Encode: boolean;
318
+ enableVp9Decode: boolean;
319
+ statsIntervalSecs?: number;
320
+ };
314
321
  export type CallSettings = {
315
322
  iceServers: Array<IceServer>;
316
323
  hideIp: boolean;
317
324
  dataMode: DataMode;
318
325
  audioLevelsIntervalMillis?: number;
319
326
  dredDuration?: number;
327
+ enableVp9Encode?: boolean;
328
+ enableVp9Decode?: boolean;
329
+ statsIntervalSecs?: number;
320
330
  };
321
331
  type IceServer = {
322
332
  username?: string;
@@ -529,6 +539,11 @@ export type GroupCallObserver = {
529
539
  onRemoteMute(groupCall: GroupCall, demuxId: number): void;
530
540
  onObservedRemoteMute(groupCall: GroupCall, sourceDemuxId: number, targetDemuxId: number): void;
531
541
  };
542
+ export type GroupCallSvcConfig = {
543
+ mode: string;
544
+ modeForScreenshare: string;
545
+ maxBitrateBps: number | undefined;
546
+ };
532
547
  export declare class GroupCall {
533
548
  private readonly _kind;
534
549
  private readonly _callManager;
@@ -658,7 +673,7 @@ export type CallManager = {
658
673
  setSelfUuid(uuid: Uint8Array<ArrayBuffer>): void;
659
674
  addAsset(assetGroup: string, filePath: string | null, content: Uint8Array<ArrayBuffer> | null): void;
660
675
  createOutgoingCall(remoteUserId: UserId, isVideoCall: boolean, localDeviceId: DeviceId): CallId;
661
- proceed(callId: CallId, iceServers: Array<IceServer>, hideIp: boolean, dataMode: DataMode, audioLevelsIntervalMillis: number, dredDuration: number): void;
676
+ proceed(callId: CallId, iceServers: Array<IceServer>, hideIp: boolean, callConfig: CallConfig, audioLevelsIntervalMillis: number): void;
662
677
  accept(callId: CallId): void;
663
678
  ignore(callId: CallId): void;
664
679
  hangup(): void;
@@ -680,8 +695,8 @@ export type CallManager = {
680
695
  receivedCallMessage(remoteUserId: Uint8Array<ArrayBuffer>, remoteDeviceId: DeviceId, localDeviceId: DeviceId, data: Uint8Array<ArrayBuffer>, messageAgeSec: number): void;
681
696
  receivedHttpResponse(requestId: number, status: number, body: Uint8Array<ArrayBuffer>): void;
682
697
  httpRequestFailed(requestId: number, debugInfo: string | undefined): void;
683
- createGroupCallClient(groupId: GroupId, sfuUrl: string, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number, dredDuration: number): GroupCallClientId;
684
- createCallLinkCallClient(sfuUrl: string, endorsementPublicKey: Uint8Array<ArrayBuffer>, authCredentialPresentation: Uint8Array<ArrayBuffer>, linkRootKey: Uint8Array<ArrayBuffer>, adminPasskey: Uint8Array<ArrayBuffer> | undefined, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number, dredDuration: number): GroupCallClientId;
698
+ createGroupCallClient(groupId: GroupId, sfuUrl: string, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number, dredDuration: number, svcConfig: GroupCallSvcConfig | undefined): GroupCallClientId;
699
+ createCallLinkCallClient(sfuUrl: string, endorsementPublicKey: Uint8Array<ArrayBuffer>, authCredentialPresentation: Uint8Array<ArrayBuffer>, linkRootKey: Uint8Array<ArrayBuffer>, adminPasskey: Uint8Array<ArrayBuffer> | undefined, hkdfExtraInfo: Uint8Array<ArrayBuffer>, audioLevelsIntervalMillis: number, dredDuration: number, svcConfig: GroupCallSvcConfig | undefined): GroupCallClientId;
685
700
  deleteGroupCallClient(clientId: GroupCallClientId): void;
686
701
  connect(clientId: GroupCallClientId): void;
687
702
  join(clientId: GroupCallClientId): void;
@@ -390,7 +390,13 @@ class RingRTCType {
390
390
  }
391
391
  proceed(callId, settings) {
392
392
  sillyDeadlockProtection(() => {
393
- this.callManager.proceed(callId, settings.iceServers, settings.hideIp, settings.dataMode, settings.audioLevelsIntervalMillis || 0, settings.dredDuration ?? 0);
393
+ this.callManager.proceed(callId, settings.iceServers, settings.hideIp, {
394
+ dataMode: settings.dataMode,
395
+ dredDuration: settings.dredDuration ?? 0,
396
+ enableVp9Encode: settings.enableVp9Encode ?? true,
397
+ enableVp9Decode: settings.enableVp9Decode ?? true,
398
+ statsIntervalSecs: settings.statsIntervalSecs,
399
+ }, settings.audioLevelsIntervalMillis || 0);
394
400
  });
395
401
  }
396
402
  // Called by Rust
@@ -724,8 +730,8 @@ class RingRTCType {
724
730
  }
725
731
  // Group Calls
726
732
  // Called by UX
727
- getGroupCall(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis, dredDuration, observer) {
728
- const clientId = this.callManager.createGroupCallClient(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis ?? 0, dredDuration ?? 0);
733
+ getGroupCall(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis, dredDuration, svcConfig, observer) {
734
+ const clientId = this.callManager.createGroupCallClient(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis ?? 0, dredDuration ?? 0, svcConfig);
729
735
  if (clientId === INVALID_CLIENT_ID) {
730
736
  // Return undefined since the group call client creation failed.
731
737
  return undefined;
@@ -735,8 +741,8 @@ class RingRTCType {
735
741
  return groupCall;
736
742
  }
737
743
  // Called by UX
738
- getCallLinkCall(sfuUrl, endorsementPublicKey, authCredentialPresentation, rootKey, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis, dredDuration, observer) {
739
- const clientId = this.callManager.createCallLinkCallClient(sfuUrl, endorsementPublicKey, authCredentialPresentation, rootKey.bytes, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis || 0, dredDuration ?? 0);
744
+ getCallLinkCall(sfuUrl, endorsementPublicKey, authCredentialPresentation, rootKey, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis, dredDuration, svcConfig, observer) {
745
+ const clientId = this.callManager.createCallLinkCallClient(sfuUrl, endorsementPublicKey, authCredentialPresentation, rootKey.bytes, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis || 0, dredDuration ?? 0, svcConfig);
740
746
  if (clientId === INVALID_CLIENT_ID) {
741
747
  // Return undefined since the call link client creation failed.
742
748
  return undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalapp/ringrtc",
3
- "version": "2.70.2",
3
+ "version": "2.72.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/signalapp/ringrtc.git",
@@ -33,13 +33,13 @@
33
33
  },
34
34
  "config": {
35
35
  "prebuildUrl": "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${npm_package_version}.tar.gz",
36
- "prebuildChecksum": "5833836ccafc7eb27fae603bf80c33e8d7d4b70e7a9c63d1b44988c5b1f78cf0"
36
+ "prebuildChecksum": "5030c683f0f181b0f132e58881c0d5e371f68185141de0e50c865d851b8b01de"
37
37
  },
38
38
  "author": "",
39
39
  "license": "AGPL-3.0-only",
40
40
  "dependencies": {
41
41
  "https-proxy-agent": "7.0.6",
42
- "tar": "7.5.15"
42
+ "tar": "7.5.22"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/chai": "5.2.3",