@signalapp/ringrtc 2.69.1 → 2.69.3

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.
@@ -669,7 +669,7 @@ For more information on this, and how to apply and follow the GNU AGPL, see
669
669
 
670
670
  ```
671
671
 
672
- ## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, libsignal-debug 0.89.2, mrp 2.69.1, protobuf 2.69.1, ringrtc 2.69.1, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0
672
+ ## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, libsignal-debug 0.89.2, mrp 2.69.3, protobuf 2.69.3, ringrtc 2.69.3, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0
673
673
 
674
674
  ```
675
675
  GNU AFFERO GENERAL PUBLIC LICENSE
@@ -1783,7 +1783,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1783
1783
 
1784
1784
  ```
1785
1785
 
1786
- ## windows-sys 0.45.0, windows-sys 0.59.0, windows-sys 0.61.2, windows-targets 0.42.2, windows-targets 0.52.6, windows_aarch64_msvc 0.42.2, windows_aarch64_msvc 0.52.6, windows_x86_64_gnu 0.52.6, windows_x86_64_msvc 0.42.2, windows_x86_64_msvc 0.52.6
1786
+ ## windows-sys 0.59.0, windows-sys 0.61.2, windows-targets 0.52.6, windows_aarch64_msvc 0.52.6, windows_x86_64_gnu 0.52.6, windows_x86_64_msvc 0.52.6
1787
1787
 
1788
1788
  ```
1789
1789
  MIT License
@@ -2201,7 +2201,7 @@ DEALINGS IN THE SOFTWARE.
2201
2201
 
2202
2202
  ```
2203
2203
 
2204
- ## jni-sys 0.3.1, jni-sys 0.4.1
2204
+ ## jni-sys 0.4.1
2205
2205
 
2206
2206
  ```
2207
2207
  Copyright (c) 2015 The rust-jni-sys Developers
@@ -3605,7 +3605,7 @@ SOFTWARE.
3605
3605
 
3606
3606
  ```
3607
3607
 
3608
- ## cesu8 1.1.0, jni-sys-macros 0.4.1, neon 1.1.1, objc2-core-foundation 0.3.2, objc2-io-kit 0.3.2, protobuf-parse 3.7.2, tonic-prost-build 0.14.5, windows-collections 0.2.0, windows-collections 0.3.2, windows-core 0.61.2, windows-core 0.62.2, windows-future 0.2.1, windows-future 0.3.2, windows-implement 0.60.2, windows-interface 0.59.3, windows-link 0.1.3, windows-link 0.2.1, windows-numerics 0.2.0, windows-numerics 0.3.1, windows-result 0.3.4, windows-result 0.4.1, windows-strings 0.4.2, windows-strings 0.5.1, windows-threading 0.1.0, windows-threading 0.2.1, windows 0.61.3, windows 0.62.2
3608
+ ## jni-macros 0.22.4, jni-sys-macros 0.4.1, jni 0.22.4, neon 1.1.1, objc2-core-foundation 0.3.2, objc2-io-kit 0.3.2, protobuf-parse 3.7.2, tonic-prost-build 0.14.5, windows-collections 0.2.0, windows-collections 0.3.2, windows-core 0.61.2, windows-core 0.62.2, windows-future 0.2.1, windows-future 0.3.2, windows-implement 0.60.2, windows-interface 0.59.3, windows-link 0.1.3, windows-link 0.2.1, windows-numerics 0.2.0, windows-numerics 0.3.1, windows-result 0.3.4, windows-result 0.4.1, windows-strings 0.4.2, windows-strings 0.5.1, windows-threading 0.1.0, windows-threading 0.2.1, windows 0.61.3, windows 0.62.2
3609
3609
 
3610
3610
  ```
3611
3611
  MIT License
@@ -3629,6 +3629,30 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
3629
3629
 
3630
3630
  ```
3631
3631
 
3632
+ ## simdutf8 0.1.5
3633
+
3634
+ ```
3635
+ MIT License
3636
+
3637
+ Permission is hereby granted, free of charge, to any person obtaining a copy
3638
+ of this software and associated documentation files (the "Software"), to deal
3639
+ in the Software without restriction, including without limitation the rights
3640
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3641
+ copies of the Software, and to permit persons to whom the Software is
3642
+ furnished to do so, subject to the following conditions:
3643
+
3644
+ The above copyright notice and this permission notice shall be included in all
3645
+ copies or substantial portions of the Software.
3646
+
3647
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3648
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3649
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3650
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3651
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3652
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3653
+ SOFTWARE.
3654
+ ```
3655
+
3632
3656
  ## ident_case 1.0.1
3633
3657
 
3634
3658
  ```
@@ -3654,7 +3678,7 @@ SOFTWARE.
3654
3678
 
3655
3679
  ```
3656
3680
 
3657
- ## curve25519-dalek-derive 0.1.1, anyhow 1.0.102, displaydoc 0.2.5, fastrand 2.4.1, home 0.5.12, itoa 1.0.18, linkme-impl 0.3.35, linkme 0.3.35, linux-raw-sys 0.12.1, linux-raw-sys 0.4.15, num_enum 0.7.6, num_enum_derive 0.7.6, once_cell 1.21.4, prettyplease 0.2.37, proc-macro-crate 3.5.0, proc-macro2 1.0.106, quote 1.0.45, rustix 0.38.44, rustix 1.1.4, rustversion 1.0.22, semver 1.0.28, send_wrapper 0.6.0, serde 1.0.228, serde_core 1.0.228, serde_derive 1.0.228, serde_json 1.0.149, syn 2.0.117, thiserror-impl 1.0.69, thiserror-impl 2.0.18, thiserror 1.0.69, thiserror 2.0.18, unicode-ident 1.0.24, zmij 1.0.21
3681
+ ## curve25519-dalek-derive 0.1.1, anyhow 1.0.102, displaydoc 0.2.5, fastrand 2.4.1, home 0.5.12, itoa 1.0.18, linkme-impl 0.3.35, linkme 0.3.35, linux-raw-sys 0.12.1, linux-raw-sys 0.4.15, num_enum 0.7.6, num_enum_derive 0.7.6, once_cell 1.21.4, prettyplease 0.2.37, proc-macro-crate 3.5.0, proc-macro2 1.0.106, quote 1.0.45, rustix 0.38.44, rustix 1.1.4, rustversion 1.0.22, semver 1.0.28, send_wrapper 0.6.0, serde 1.0.228, serde_core 1.0.228, serde_derive 1.0.228, serde_json 1.0.149, simd_cesu8 1.1.1, syn 2.0.117, thiserror-impl 1.0.69, thiserror-impl 2.0.18, thiserror 1.0.69, thiserror 2.0.18, unicode-ident 1.0.24, zmij 1.0.21
3658
3682
 
3659
3683
  ```
3660
3684
  Permission is hereby granted, free of charge, to any
@@ -3977,33 +4001,6 @@ SOFTWARE.
3977
4001
 
3978
4002
  ```
3979
4003
 
3980
- ## jni 0.21.1
3981
-
3982
- ```
3983
- The MIT License (MIT)
3984
-
3985
- Copyright (c) 2016 Prevoty, Inc. and jni-rs contributors
3986
-
3987
- Permission is hereby granted, free of charge, to any person obtaining a copy
3988
- of this software and associated documentation files (the "Software"), to deal
3989
- in the Software without restriction, including without limitation the rights
3990
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3991
- copies of the Software, and to permit persons to whom the Software is
3992
- furnished to do so, subject to the following conditions:
3993
-
3994
- The above copyright notice and this permission notice shall be included in all
3995
- copies or substantial portions of the Software.
3996
-
3997
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3998
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3999
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4000
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4001
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4002
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4003
- SOFTWARE.
4004
-
4005
- ```
4006
-
4007
4004
  ## same-file 1.0.6, winapi-util 0.1.11
4008
4005
 
4009
4006
  ```
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { RingRTCType } from './ringrtc/Service';
2
- export { AnswerMessage, AudioDevice, DataMode, BusyMessage, Call, CallEndReason, CallId, CallLogLevel, CallMessageUrgency, CallRejectReason, CallSettings, CallState, CallingMessage, ConnectionState, DeviceId, GroupCall, GroupCallKind, GroupCallObserver, GroupMemberInfo, HangupMessage, HangupType, HttpMethod, HttpResult, IceCandidateMessage, JoinState, LocalDeviceState, OfferMessage, OfferType, OpaqueMessage, PeekDeviceInfo, PeekInfo, PeekStatusCodes, Reaction, RemoteDeviceState, RingCancelReason, RingRTCType, RingUpdate, SpeechEvent, UserId, VideoFrameSender, VideoFrameSource, VideoPixelFormatEnum, videoPixelFormatToEnum, VideoRequest, callIdFromEra, callIdFromRingId, } from './ringrtc/Service';
2
+ export type { AudioDevice, CallId, CallSettings, DeviceId, GroupCallObserver, HttpResult, PeekDeviceInfo, PeekInfo, Reaction, UserId, VideoFrameSender, VideoFrameSource, } from './ringrtc/Service';
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';
3
4
  export { CallLinkRootKey, CallLinkRestrictions, CallLinkState, } from './ringrtc/CallLinks';
4
5
  export { CallSummary, QualityStats } from './ringrtc/CallSummary';
5
6
  export declare const RingRTC: RingRTCType;
@@ -24,15 +24,15 @@ class CallLinkRootKey {
24
24
  return new CallLinkRootKey(Native_1.default.CallLinkRootKey_generate());
25
25
  }
26
26
  static generateAdminPassKey() {
27
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
27
+ // oxlint-disable-next-line typescript/no-unsafe-return
28
28
  return Native_1.default.CallLinkRootKey_generateAdminPasskey();
29
29
  }
30
30
  deriveRoomId() {
31
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
31
+ // oxlint-disable-next-line typescript/no-unsafe-return
32
32
  return Native_1.default.CallLinkRootKey_deriveRoomId(this.bytes);
33
33
  }
34
34
  toString() {
35
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
35
+ // oxlint-disable-next-line typescript/no-unsafe-return
36
36
  return Native_1.default.CallLinkRootKey_toFormattedString(this.bytes);
37
37
  }
38
38
  }
@@ -37,8 +37,8 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  };
38
38
  })();
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- const os = __importStar(require("os"));
41
- const process = __importStar(require("process"));
42
- // eslint-disable-next-line @typescript-eslint/no-var-requires, import/no-dynamic-require
40
+ const os = __importStar(require("node:os"));
41
+ const process = __importStar(require("node:process"));
42
+ // oxlint-disable-next-line typescript/no-var-requires import/no-dynamic-require node/global-require
43
43
  exports.default = require(`../../build/${os.platform()}/libringrtc-${process.arch}.node`);
44
44
  //# sourceMappingURL=Native.js.map
@@ -1,5 +1,5 @@
1
1
  import { CallLinkState, CallLinkRestrictions, CallLinkRootKey } from './CallLinks';
2
- import { CallSummary } from './CallSummary';
2
+ import type { CallSummary } from './CallSummary';
3
3
  export declare const callIdFromEra: (era: string) => CallId;
4
4
  export declare function callIdFromRingId(ringId: bigint): CallId;
5
5
  declare class Config {
@@ -7,16 +7,16 @@ declare class Config {
7
7
  }
8
8
  type GroupId = Uint8Array<ArrayBuffer>;
9
9
  type GroupCallUserId = Uint8Array<ArrayBuffer>;
10
- export interface PeekDeviceInfo {
10
+ export type PeekDeviceInfo = {
11
11
  demuxId: number;
12
12
  userId?: GroupCallUserId;
13
- }
14
- export interface Reaction {
13
+ };
14
+ export type Reaction = {
15
15
  demuxId: number;
16
16
  value: string;
17
- }
17
+ };
18
18
  /** type returned by Rust */
19
- export interface RawPeekInfo {
19
+ export type RawPeekInfo = {
20
20
  devices: Array<PeekDeviceInfo>;
21
21
  creator?: GroupCallUserId;
22
22
  eraId?: string;
@@ -27,9 +27,9 @@ export interface RawPeekInfo {
27
27
  deviceCountExcludingPendingDevices: number;
28
28
  pendingUsers: Array<GroupCallUserId>;
29
29
  callLinkState?: RawCallLinkState;
30
- }
30
+ };
31
31
  /** type derived from RawPeekInfo */
32
- export interface PeekInfo {
32
+ export type PeekInfo = {
33
33
  devices: Array<PeekDeviceInfo>;
34
34
  creator?: GroupCallUserId;
35
35
  eraId?: string;
@@ -40,7 +40,7 @@ export interface PeekInfo {
40
40
  deviceCountExcludingPendingDevices: number;
41
41
  pendingUsers: Array<GroupCallUserId>;
42
42
  callLinkState?: CallLinkState;
43
- }
43
+ };
44
44
  export declare enum PeekStatusCodes {
45
45
  EXPIRED_CALL_LINK = 703,
46
46
  INVALID_CALL_LINK = 704
@@ -69,13 +69,13 @@ export declare class ReceivedAudioLevel {
69
69
  level: RawAudioLevel;
70
70
  constructor(demuxId: number, level: RawAudioLevel);
71
71
  }
72
- interface RawCallLinkState {
72
+ type RawCallLinkState = {
73
73
  name: string;
74
74
  rawRestrictions: number;
75
75
  revoked: boolean;
76
76
  expiration: Date;
77
77
  rootKey: Uint8Array<ArrayBuffer>;
78
- }
78
+ };
79
79
  export type EmptyObj = Record<PropertyKey, never>;
80
80
  export type HttpResult<T> = {
81
81
  success: true;
@@ -87,11 +87,11 @@ export type HttpResult<T> = {
87
87
  export declare class RingRTCType {
88
88
  private readonly callManager;
89
89
  private _call;
90
- private _groupCallByClientId;
91
- private _peekRequests;
92
- private _callLinkRequests;
93
- private _emptyRequests;
94
- private _callInfoByCallId;
90
+ private readonly _groupCallByClientId;
91
+ private readonly _peekRequests;
92
+ private readonly _callLinkRequests;
93
+ private readonly _emptyRequests;
94
+ private readonly _callInfoByCallId;
95
95
  private getCallInfoKey;
96
96
  handleOutgoingSignaling: ((remoteUserId: UserId, message: CallingMessage) => Promise<boolean>) | null;
97
97
  handleIncomingCall: ((call: Call) => Promise<boolean>) | null;
@@ -311,26 +311,26 @@ export declare class RingRTCType {
311
311
  */
312
312
  setVoiceProcessingEnabled(enabled: boolean): void;
313
313
  }
314
- export interface CallSettings {
314
+ export type CallSettings = {
315
315
  iceServers: Array<IceServer>;
316
316
  hideIp: boolean;
317
317
  dataMode: DataMode;
318
318
  audioLevelsIntervalMillis?: number;
319
319
  dredDuration?: number;
320
- }
321
- interface IceServer {
320
+ };
321
+ type IceServer = {
322
322
  username?: string;
323
323
  password?: string;
324
324
  /** Provide hostname when urls contain IP addresses instead of hostname */
325
325
  hostname?: string;
326
326
  urls: Array<string>;
327
- }
328
- export interface AudioDevice {
327
+ };
328
+ export type AudioDevice = {
329
329
  name: string;
330
330
  index: number;
331
331
  uniqueId: string;
332
332
  i18nKey?: string;
333
- }
333
+ };
334
334
  export declare enum VideoPixelFormatEnum {
335
335
  I420 = 0,
336
336
  Nv12 = 1,
@@ -343,7 +343,7 @@ export declare function videoPixelFormatToEnum(format: VideoPixelFormat): VideoP
343
343
  * VideoFrameSender is used to transmit video frames (from a camera or screen share) over
344
344
  * RTP via the RingRTC library.
345
345
  */
346
- export interface VideoFrameSender {
346
+ export type VideoFrameSender = {
347
347
  /**
348
348
  * Sends a video frame to be transmitted via RingRTC.
349
349
  *
@@ -353,11 +353,11 @@ export interface VideoFrameSender {
353
353
  * @param buffer - The raw video frame data
354
354
  */
355
355
  sendVideoFrame(width: number, height: number, format: VideoPixelFormatEnum, buffer: Uint8Array<ArrayBuffer>): void;
356
- }
356
+ };
357
357
  /**
358
358
  * Interface for retrieving received video frames from the RingRTC library.
359
359
  */
360
- export interface VideoFrameSource {
360
+ export type VideoFrameSource = {
361
361
  /**
362
362
  * Copies the latest frame into `buffer`.
363
363
  *
@@ -375,7 +375,7 @@ export interface VideoFrameSource {
375
375
  * Returns undefined if no new frame is available
376
376
  */
377
377
  receiveVideoFrame(buffer: Uint8Array<ArrayBuffer>, maxWidth: number, maxHeight: number): [number, number] | undefined;
378
- }
378
+ };
379
379
  export declare class Call {
380
380
  private readonly _callManager;
381
381
  private readonly _remoteUserId;
@@ -514,7 +514,7 @@ export declare enum GroupCallKind {
514
514
  SignalGroup = 0,
515
515
  CallLink = 1
516
516
  }
517
- export interface GroupCallObserver {
517
+ export type GroupCallObserver = {
518
518
  requestMembershipProof(groupCall: GroupCall): void;
519
519
  requestGroupMembers(groupCall: GroupCall): void;
520
520
  onLocalDeviceStateChanged(groupCall: GroupCall): void;
@@ -528,14 +528,14 @@ export interface GroupCallObserver {
528
528
  onSpeechEvent(groupCall: GroupCall, event: SpeechEvent): void;
529
529
  onRemoteMute(groupCall: GroupCall, demuxId: number): void;
530
530
  onObservedRemoteMute(groupCall: GroupCall, sourceDemuxId: number, targetDemuxId: number): void;
531
- }
531
+ };
532
532
  export declare class GroupCall {
533
533
  private readonly _kind;
534
534
  private readonly _callManager;
535
535
  private readonly _observer;
536
536
  private readonly _clientId;
537
537
  get clientId(): GroupCallClientId;
538
- private _localDeviceState;
538
+ private readonly _localDeviceState;
539
539
  private _remoteDeviceStates;
540
540
  private _peekInfo;
541
541
  constructor(kind: GroupCallKind, callManager: CallManager, observer: GroupCallObserver, clientId: GroupCallClientId);
@@ -653,7 +653,7 @@ export declare enum RingCancelReason {
653
653
  DeclinedByUser = 0,
654
654
  Busy = 1
655
655
  }
656
- export interface CallManager {
656
+ export type CallManager = {
657
657
  setConfig(config: Config): void;
658
658
  setSelfUuid(uuid: Uint8Array<ArrayBuffer>): void;
659
659
  addAsset(assetGroup: string, filePath: string | null, content: Uint8Array<ArrayBuffer> | null): void;
@@ -718,8 +718,8 @@ export interface CallManager {
718
718
  getAudioOutputs(): Array<AudioDevice>;
719
719
  setAudioOutput(index: number): void;
720
720
  setVoiceProcessingEnabled(enabled: boolean): void;
721
- }
722
- export interface CallManagerCallbacks {
721
+ };
722
+ export type CallManagerCallbacks = {
723
723
  onStartOutgoingCall(remoteUserId: UserId, callId: CallId): void;
724
724
  onStartIncomingCall(remoteUserId: UserId, callId: CallId, isVideoCall: boolean): void;
725
725
  onCallState(remoteUserId: UserId, state: CallState): void;
@@ -751,7 +751,7 @@ export interface CallManagerCallbacks {
751
751
  handlePeekResponse(requestId: number, statusCode: number, rawInfo: RawPeekInfo | undefined): void;
752
752
  handleEnded(clientId: GroupCallClientId, reason: CallEndReason, summary: CallSummary): void;
753
753
  onLogMessage(level: number, fileName: string, line: number, message: string): void;
754
- }
754
+ };
755
755
  export declare enum CallState {
756
756
  Prering = "idle",
757
757
  Ringing = "ringing",
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.CallLogLevel = exports.CallRejectReason = exports.CallEndReason = exports.CallState = exports.RingCancelReason = exports.DataMode = exports.HangupType = exports.OpaqueMessage = exports.HangupMessage = exports.BusyMessage = exports.IceCandidateMessage = exports.AnswerMessage = exports.OfferType = exports.OfferMessage = exports.CallingMessage = exports.GroupCall = exports.GroupCallKind = exports.VideoRequest = exports.GroupMemberInfo = exports.RemoteDeviceState = exports.LocalDeviceState = exports.HttpMethod = exports.RingUpdate = exports.CallMessageUrgency = exports.SpeechEvent = exports.JoinState = exports.ConnectionState = exports.Call = exports.VideoPixelFormatEnum = exports.RingRTCType = exports.ReceivedAudioLevel = exports.NetworkRoute = exports.PeekStatusCodes = exports.callIdFromEra = void 0;
11
11
  exports.callIdFromRingId = callIdFromRingId;
12
12
  exports.videoPixelFormatToEnum = videoPixelFormatToEnum;
13
- /* eslint-disable max-classes-per-file */
14
13
  const CallLinks_1 = require("./CallLinks");
15
14
  const Native_1 = __importDefault(require("./Native"));
16
15
  const INVALID_CLIENT_ID = 0;
@@ -29,17 +28,16 @@ class NativeCallManager {
29
28
  this.createCallEndpoint(config);
30
29
  }
31
30
  createCallEndpoint(config) {
32
- const fieldTrials = Object.assign({
31
+ const fieldTrials = {
33
32
  'RingRTC-AnyAddressPortsKillSwitch': 'Enabled',
34
33
  'RingRTC-PruneTurnPorts': 'Enabled',
35
34
  'WebRTC-Bwe-ProbingConfiguration': 'skip_if_est_larger_than_fraction_of_max:0.99',
36
35
  'WebRTC-IncreaseIceCandidatePriorityHostSrflx': 'Enabled',
37
- }, config.field_trials);
38
- /* eslint-disable prefer-template */
36
+ ...config.field_trials,
37
+ };
39
38
  const fieldTrialsString = Object.entries(fieldTrials)
40
39
  .map(([k, v]) => `${k}/${v}`)
41
40
  .join('/') + '/';
42
- /* eslint-enable prefer-template */
43
41
  Object.defineProperty(this, Native_1.default.callEndpointPropertyKey, {
44
42
  configurable: true, // allows it to be changed
45
43
  get() {
@@ -48,7 +46,7 @@ class NativeCallManager {
48
46
  configurable: true, // allows it to be changed
49
47
  value: callEndpoint,
50
48
  });
51
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
49
+ // oxlint-disable-next-line typescript/no-unsafe-return
52
50
  return callEndpoint;
53
51
  },
54
52
  });
@@ -213,9 +211,7 @@ function rawCallLinkStateToCallLinkState(raw) {
213
211
  }
214
212
  return new CallLinks_1.CallLinkState(raw.name, restrictions, raw.revoked, raw.expiration, new CallLinks_1.CallLinkRootKey(raw.rootKey));
215
213
  }
216
- else {
217
- return undefined;
218
- }
214
+ return undefined;
219
215
  }
220
216
  function rawPeekInfoToPeekInfo(raw) {
221
217
  return {
@@ -553,6 +549,7 @@ class RingRTCType {
553
549
  }
554
550
  sendSignaling(remoteUserId, remoteDeviceId, callId, broadcast, message) {
555
551
  if (!broadcast) {
552
+ // oxlint-disable-next-line eslint/no-param-reassign
556
553
  message.destinationDeviceId = remoteDeviceId;
557
554
  }
558
555
  (async () => {
@@ -760,15 +757,13 @@ class RingRTCType {
760
757
  if (result.success) {
761
758
  return result.value;
762
759
  }
763
- else {
764
- return {
765
- devices: [],
766
- deviceCount: 0,
767
- deviceCountIncludingPendingDevices: 0,
768
- deviceCountExcludingPendingDevices: 0,
769
- pendingUsers: [],
770
- };
771
- }
760
+ return {
761
+ devices: [],
762
+ deviceCount: 0,
763
+ deviceCountIncludingPendingDevices: 0,
764
+ deviceCountExcludingPendingDevices: 0,
765
+ pendingUsers: [],
766
+ };
772
767
  });
773
768
  }
774
769
  // Called by UX
@@ -1692,7 +1687,7 @@ class GroupCall {
1692
1687
  handleRemoteDevicesChanged(remoteDeviceStates) {
1693
1688
  // We don't get aspect ratios from RingRTC, so make sure to copy them over.
1694
1689
  for (const noo of remoteDeviceStates) {
1695
- const old = this._remoteDeviceStates?.find(old => old.demuxId == noo.demuxId);
1690
+ const old = this._remoteDeviceStates?.find(candidate => candidate.demuxId == noo.demuxId);
1696
1691
  noo.videoAspectRatio = old?.videoAspectRatio;
1697
1692
  }
1698
1693
  this._remoteDeviceStates = remoteDeviceStates;
@@ -1893,9 +1888,8 @@ var CallLogLevel;
1893
1888
  })(CallLogLevel || (exports.CallLogLevel = CallLogLevel = {}));
1894
1889
  function sillyDeadlockProtection(f) {
1895
1890
  void (async () => {
1896
- // This is a silly way of preventing a deadlock.
1897
- // eslint-disable-next-line @typescript-eslint/await-thenable
1898
- await 0;
1891
+ // Yield so f() runs after unwinding the calling stack.
1892
+ await Promise.resolve();
1899
1893
  f();
1900
1894
  })();
1901
1895
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalapp/ringrtc",
3
- "version": "2.69.1",
3
+ "version": "2.69.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/signalapp/ringrtc.git",
@@ -24,8 +24,8 @@
24
24
  "build": "tsc && bash scripts/build-help.sh",
25
25
  "clean": "rimraf dist",
26
26
  "test": "electron-mocha --renderer --recursive dist/test --timeout 10000 --require source-map-support/register",
27
- "eslint": "eslint .",
28
- "lint": "npm run format --list-different && npm run eslint",
27
+ "oxlint": "oxlint --format=stylish",
28
+ "lint": "npm run format --list-different && npm run oxlint",
29
29
  "format": "prettier --write .",
30
30
  "check-format": "prettier . --check",
31
31
  "install": "node scripts/fetch-prebuild.js",
@@ -33,38 +33,41 @@
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": "2e30f2e6034c45be8afca7eddc1fac94ba777d3fe4a9c57ef9fc45b26858f341"
36
+ "prebuildChecksum": "a7e38685218a66685156cb329a6062ba8278030e753faf7c12a665df5a36d254"
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.2"
42
+ "tar": "7.5.15"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/chai": "5.2.3",
46
- "@types/chai-as-promised": "^8.0.2",
47
- "@types/lodash": "^4.17.21",
46
+ "@types/chai-as-promised": "8.0.2",
47
+ "@types/lodash": "4.17.21",
48
48
  "@types/mocha": "10.0.10",
49
49
  "@types/node": "25.0.3",
50
50
  "@types/sinon-chai": "^4.0.0",
51
51
  "chai": "6.2.2",
52
- "chai-as-promised": "^8.0.2",
53
- "electron": "39.2.4",
52
+ "chai-as-promised": "8.0.2",
53
+ "electron": "42.3.0",
54
54
  "electron-mocha": "13.1.0",
55
- "eslint": "8.56.0",
56
- "eslint-config-airbnb-typescript-prettier": "5.0.0",
57
- "eslint-config-prettier": "9.1.0",
58
- "eslint-plugin-import": "2.29.0",
59
- "eslint-plugin-mocha": "10.2.0",
60
- "eslint-plugin-more": "1.0.5",
61
- "lodash": "4.17.23",
62
- "mocha": "11.3.0",
63
- "prettier": "3.7.4",
64
- "rimraf": "6.1.2",
65
- "sinon": "^21.0.1",
66
- "sinon-chai": "^4.0.1",
55
+ "lodash": "4.18.1",
56
+ "mocha": "11.7.6",
57
+ "oxlint": "1.65.0",
58
+ "oxlint-tsgolint": "0.22.1",
59
+ "prettier": "3.8.3",
60
+ "rimraf": "6.1.3",
61
+ "sinon": "22.0.0",
62
+ "sinon-chai": "4.0.1",
67
63
  "source-map-support": "^0.5.21",
68
- "typescript": "5.9.3"
64
+ "typescript": "6.0.3"
65
+ },
66
+ "overrides": {
67
+ "mocha": {
68
+ "brace-expansion": "2.0.3",
69
+ "diff": "8.0.3",
70
+ "serialize-javascript": "7.0.5"
71
+ }
69
72
  }
70
73
  }
@@ -3,16 +3,14 @@
3
3
  // SPDX-License-Identifier: AGPL-3.0-only
4
4
  //
5
5
 
6
- /* eslint-disable no-console */
7
-
8
- const https = require('https');
6
+ const https = require('node:https');
9
7
  const { HttpsProxyAgent } = require('https-proxy-agent');
10
- const fs = require('fs');
11
- const path = require('path');
12
- const crypto = require('crypto');
8
+ const fs = require('node:fs');
9
+ const path = require('node:path');
10
+ const crypto = require('node:crypto');
13
11
  const tar = require('tar');
14
- const { Transform } = require('stream');
15
- const { pipeline } = require('stream/promises');
12
+ const { Transform } = require('node:stream');
13
+ const { pipeline } = require('node:stream/promises');
16
14
 
17
15
  const VERSION = process.env.npm_package_version;
18
16
 
@@ -35,7 +33,7 @@ if (process.env.npm_package_json) {
35
33
  }
36
34
 
37
35
  const URL = config.prebuildUrl.replace(
38
- '${npm_package_version}', // eslint-disable-line no-template-curly-in-string
36
+ '${npm_package_version}', // oxlint-disable-line eslint/no-template-curly-in-string
39
37
  VERSION
40
38
  );
41
39
  const HASH = config.prebuildChecksum;
@@ -71,7 +69,7 @@ async function downloadIfNeeded() {
71
69
  function download() {
72
70
  console.log(`downloading ${URL}`);
73
71
  return new Promise((resolve, reject) => {
74
- let options = {};
72
+ const options = {};
75
73
  if (process.env.HTTPS_PROXY != undefined) {
76
74
  options.agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);
77
75
  }
@@ -107,4 +105,4 @@ function download() {
107
105
  });
108
106
  }
109
107
 
110
- main();
108
+ void main();