@fishjam-cloud/webrtc-client 0.25.2 → 0.26.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +33 -0
- package/package.json +3 -3
- package/dist/protobufs/fishjam/media_events/peer/peer.d.ts +0 -130
- package/dist/protobufs/fishjam/media_events/peer/peer.js +0 -1283
- package/dist/protobufs/fishjam/media_events/server/server.d.ts +0 -197
- package/dist/protobufs/fishjam/media_events/server/server.js +0 -2121
- package/dist/protobufs/fishjam/media_events/shared.d.ts +0 -48
- package/dist/protobufs/fishjam/media_events/shared.js +0 -315
- package/dist/webrtc-client/src/CommandsQueue.d.ts +0 -23
- package/dist/webrtc-client/src/CommandsQueue.js +0 -87
- package/dist/webrtc-client/src/ConnectionManager.d.ts +0 -17
- package/dist/webrtc-client/src/ConnectionManager.js +0 -49
- package/dist/webrtc-client/src/bitrate.d.ts +0 -12
- package/dist/webrtc-client/src/bitrate.js +0 -15
- package/dist/webrtc-client/src/dataChannels/DataChannel.d.ts +0 -56
- package/dist/webrtc-client/src/dataChannels/DataChannel.js +0 -144
- package/dist/webrtc-client/src/dataChannels/DataChannelManager.d.ts +0 -83
- package/dist/webrtc-client/src/dataChannels/DataChannelManager.js +0 -184
- package/dist/webrtc-client/src/deferred.d.ts +0 -8
- package/dist/webrtc-client/src/deferred.js +0 -17
- package/dist/webrtc-client/src/index.d.ts +0 -6
- package/dist/webrtc-client/src/index.js +0 -4
- package/dist/webrtc-client/src/internal.d.ts +0 -27
- package/dist/webrtc-client/src/internal.js +0 -18
- package/dist/webrtc-client/src/logger.d.ts +0 -5
- package/dist/webrtc-client/src/logger.js +0 -15
- package/dist/webrtc-client/src/mediaEvent.d.ts +0 -13
- package/dist/webrtc-client/src/mediaEvent.js +0 -20
- package/dist/webrtc-client/src/tracks/Local.d.ts +0 -49
- package/dist/webrtc-client/src/tracks/Local.js +0 -243
- package/dist/webrtc-client/src/tracks/LocalTrack.d.ts +0 -61
- package/dist/webrtc-client/src/tracks/LocalTrack.js +0 -212
- package/dist/webrtc-client/src/tracks/LocalTrackManager.d.ts +0 -39
- package/dist/webrtc-client/src/tracks/LocalTrackManager.js +0 -76
- package/dist/webrtc-client/src/tracks/Remote.d.ts +0 -32
- package/dist/webrtc-client/src/tracks/Remote.js +0 -165
- package/dist/webrtc-client/src/tracks/RemoteTrack.d.ts +0 -40
- package/dist/webrtc-client/src/tracks/RemoteTrack.js +0 -71
- package/dist/webrtc-client/src/tracks/TrackCommon.d.ts +0 -9
- package/dist/webrtc-client/src/tracks/TrackCommon.js +0 -1
- package/dist/webrtc-client/src/tracks/bandwidth.d.ts +0 -1
- package/dist/webrtc-client/src/tracks/bandwidth.js +0 -27
- package/dist/webrtc-client/src/tracks/encodings.d.ts +0 -3
- package/dist/webrtc-client/src/tracks/encodings.js +0 -11
- package/dist/webrtc-client/src/tracks/muteTrackUtils.d.ts +0 -3
- package/dist/webrtc-client/src/tracks/muteTrackUtils.js +0 -23
- package/dist/webrtc-client/src/tracks/transceivers.d.ts +0 -2
- package/dist/webrtc-client/src/tracks/transceivers.js +0 -93
- package/dist/webrtc-client/src/types.d.ts +0 -340
- package/dist/webrtc-client/src/types.js +0 -1
- package/dist/webrtc-client/src/webRTCEndpoint.d.ts +0 -350
- package/dist/webrtc-client/src/webRTCEndpoint.js +0 -747
- package/dist/webrtc-client/tests/events/bandwidthEstimationEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/bandwidthEstimationEvent.test.js +0 -21
- package/dist/webrtc-client/tests/events/connectedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/connectedEvent.test.js +0 -70
- package/dist/webrtc-client/tests/events/encodingSwitchedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/encodingSwitchedEvent.test.js +0 -60
- package/dist/webrtc-client/tests/events/endpointAddedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/endpointAddedEvent.test.js +0 -57
- package/dist/webrtc-client/tests/events/endpointRemovedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/endpointRemovedEvent.test.js +0 -64
- package/dist/webrtc-client/tests/events/endpointUpdatedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/endpointUpdatedEvent.test.js +0 -78
- package/dist/webrtc-client/tests/events/trackAddedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/trackAddedEvent.test.js +0 -84
- package/dist/webrtc-client/tests/events/trackRemovedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/trackRemovedEvent.test.js +0 -26
- package/dist/webrtc-client/tests/events/trackUpdatedEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/trackUpdatedEvent.test.js +0 -77
- package/dist/webrtc-client/tests/events/vadNotificationEvent.test.d.ts +0 -1
- package/dist/webrtc-client/tests/events/vadNotificationEvent.test.js +0 -42
- package/dist/webrtc-client/tests/fixtures.d.ts +0 -27
- package/dist/webrtc-client/tests/fixtures.js +0 -172
- package/dist/webrtc-client/tests/methods/addTrackMethod.test.d.ts +0 -1
- package/dist/webrtc-client/tests/methods/addTrackMethod.test.js +0 -46
- package/dist/webrtc-client/tests/methods/cleanUpMethod.test.d.ts +0 -1
- package/dist/webrtc-client/tests/methods/cleanUpMethod.test.js +0 -14
- package/dist/webrtc-client/tests/methods/connectMethod.test.d.ts +0 -1
- package/dist/webrtc-client/tests/methods/connectMethod.test.js +0 -40
- package/dist/webrtc-client/tests/methods/disconnectMethod.test.d.ts +0 -1
- package/dist/webrtc-client/tests/methods/disconnectMethod.test.js +0 -29
- package/dist/webrtc-client/tests/mocks.d.ts +0 -5
- package/dist/webrtc-client/tests/mocks.js +0 -80
- package/dist/webrtc-client/tests/utils.d.ts +0 -3
- package/dist/webrtc-client/tests/utils.js +0 -56
package/dist/index.d.mts
CHANGED
|
@@ -563,6 +563,24 @@ declare class WebRTCEndpoint extends WebRTCEndpoint_base {
|
|
|
563
563
|
* ```
|
|
564
564
|
*/
|
|
565
565
|
connect: (metadata: unknown) => void;
|
|
566
|
+
/**
|
|
567
|
+
* Returns the current audio level for a local audio track, if available.
|
|
568
|
+
*
|
|
569
|
+
* This method only works for local **audio** tracks that have been negotiated
|
|
570
|
+
* with the remote peer and for which an underlying `RTCRtpSender` and
|
|
571
|
+
* statistics are available.
|
|
572
|
+
*
|
|
573
|
+
* @param trackId - Identifier of the local track to query, as used when
|
|
574
|
+
* adding or managing local tracks on this endpoint.
|
|
575
|
+
* @returns A promise that resolves to `{ level: number }` when an audio
|
|
576
|
+
* level can be determined for the given track, or `null` if:
|
|
577
|
+
* - the track does not exist,
|
|
578
|
+
* - the track is not an audio track,
|
|
579
|
+
* - the track has not yet been negotiated / no sender exists
|
|
580
|
+
*/
|
|
581
|
+
getLocalTrackAudioLevel(trackId: string): Promise<{
|
|
582
|
+
level: number;
|
|
583
|
+
} | null>;
|
|
566
584
|
/**
|
|
567
585
|
* Feeds media event received from RTC Engine to {@link WebRTCEndpoint}.
|
|
568
586
|
* This function should be called whenever some media event from RTC Engine
|
package/dist/index.mjs
CHANGED
|
@@ -4236,6 +4236,18 @@ var LocalTrack = class {
|
|
|
4236
4236
|
{}
|
|
4237
4237
|
);
|
|
4238
4238
|
};
|
|
4239
|
+
getAudioLevel = async () => {
|
|
4240
|
+
if (!this.sender) return null;
|
|
4241
|
+
try {
|
|
4242
|
+
const stats = await this.sender.getStats();
|
|
4243
|
+
const source = [...stats.values()].find(
|
|
4244
|
+
(r) => r.type === "media-source" && r.kind === "audio" && typeof r.audioLevel === "number"
|
|
4245
|
+
);
|
|
4246
|
+
return source ? { level: source.audioLevel } : null;
|
|
4247
|
+
} catch {
|
|
4248
|
+
return null;
|
|
4249
|
+
}
|
|
4250
|
+
};
|
|
4239
4251
|
createTrackVariantBitratesEvent = () => {
|
|
4240
4252
|
};
|
|
4241
4253
|
};
|
|
@@ -4454,6 +4466,9 @@ var Local = class {
|
|
|
4454
4466
|
localTrack.addTrackToConnection();
|
|
4455
4467
|
});
|
|
4456
4468
|
};
|
|
4469
|
+
getLocalTrackAudioLevel = async (trackId) => {
|
|
4470
|
+
return this.localTracks[trackId]?.getAudioLevel() ?? null;
|
|
4471
|
+
};
|
|
4457
4472
|
};
|
|
4458
4473
|
|
|
4459
4474
|
// src/tracks/LocalTrackManager.ts
|
|
@@ -4785,6 +4800,24 @@ var WebRTCEndpoint = class extends EventEmitter3 {
|
|
|
4785
4800
|
const connect = MediaEvent_Connect.create({ metadataJson: JSON.stringify(metadata) });
|
|
4786
4801
|
this.sendMediaEvent({ connect });
|
|
4787
4802
|
};
|
|
4803
|
+
/**
|
|
4804
|
+
* Returns the current audio level for a local audio track, if available.
|
|
4805
|
+
*
|
|
4806
|
+
* This method only works for local **audio** tracks that have been negotiated
|
|
4807
|
+
* with the remote peer and for which an underlying `RTCRtpSender` and
|
|
4808
|
+
* statistics are available.
|
|
4809
|
+
*
|
|
4810
|
+
* @param trackId - Identifier of the local track to query, as used when
|
|
4811
|
+
* adding or managing local tracks on this endpoint.
|
|
4812
|
+
* @returns A promise that resolves to `{ level: number }` when an audio
|
|
4813
|
+
* level can be determined for the given track, or `null` if:
|
|
4814
|
+
* - the track does not exist,
|
|
4815
|
+
* - the track is not an audio track,
|
|
4816
|
+
* - the track has not yet been negotiated / no sender exists
|
|
4817
|
+
*/
|
|
4818
|
+
getLocalTrackAudioLevel(trackId) {
|
|
4819
|
+
return this.local.getLocalTrackAudioLevel(trackId);
|
|
4820
|
+
}
|
|
4788
4821
|
/**
|
|
4789
4822
|
* Feeds media event received from RTC Engine to {@link WebRTCEndpoint}.
|
|
4790
4823
|
* This function should be called whenever some media event from RTC Engine
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fishjam-cloud/webrtc-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0-rc.0",
|
|
4
4
|
"description": "Typescript client library for ExWebRTC/WebRTC endpoint in Membrane RTC Engine",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Fishjam Team",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@faker-js/faker": "^9.6.0",
|
|
53
|
-
"@fishjam-cloud/protobufs": "
|
|
53
|
+
"@fishjam-cloud/protobufs": "0.10.2",
|
|
54
54
|
"@playwright/test": "^1.51.1",
|
|
55
55
|
"@types/events": "^3.0.3",
|
|
56
56
|
"@types/node": "^22.14.0",
|
|
@@ -76,4 +76,4 @@
|
|
|
76
76
|
"yarn lint"
|
|
77
77
|
]
|
|
78
78
|
}
|
|
79
|
-
}
|
|
79
|
+
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
-
import { Candidate, Variant } from "../shared";
|
|
3
|
-
export declare const protobufPackage = "fishjam.media_events.peer";
|
|
4
|
-
/** Defines any type of message sent from Peer to Membrane RTC Engine */
|
|
5
|
-
export interface MediaEvent {
|
|
6
|
-
connect?: MediaEvent_Connect | undefined;
|
|
7
|
-
disconnect?: MediaEvent_Disconnect | undefined;
|
|
8
|
-
updateEndpointMetadata?: MediaEvent_UpdateEndpointMetadata | undefined;
|
|
9
|
-
updateTrackMetadata?: MediaEvent_UpdateTrackMetadata | undefined;
|
|
10
|
-
renegotiateTracks?: MediaEvent_RenegotiateTracks | undefined;
|
|
11
|
-
candidate?: Candidate | undefined;
|
|
12
|
-
sdpOffer?: MediaEvent_SdpOffer | undefined;
|
|
13
|
-
trackBitrates?: MediaEvent_TrackBitrates | undefined;
|
|
14
|
-
enableTrackVariant?: MediaEvent_EnableTrackVariant | undefined;
|
|
15
|
-
disableTrackVariant?: MediaEvent_DisableTrackVariant | undefined;
|
|
16
|
-
setTargetTrackVariant?: MediaEvent_SetTargetTrackVariant | undefined;
|
|
17
|
-
unmuteTrack?: MediaEvent_UnmuteTrack | undefined;
|
|
18
|
-
}
|
|
19
|
-
export interface MediaEvent_VariantBitrate {
|
|
20
|
-
variant: Variant;
|
|
21
|
-
bitrate: number;
|
|
22
|
-
}
|
|
23
|
-
/** Sent when a peer wants to join WebRTC Endpoint. */
|
|
24
|
-
export interface MediaEvent_Connect {
|
|
25
|
-
metadataJson: string;
|
|
26
|
-
}
|
|
27
|
-
/** Sent when a peer disconnects from WebRTC Endpoint. */
|
|
28
|
-
export interface MediaEvent_Disconnect {
|
|
29
|
-
}
|
|
30
|
-
/** Sent when a peer wants to update its metadata */
|
|
31
|
-
export interface MediaEvent_UpdateEndpointMetadata {
|
|
32
|
-
metadataJson: string;
|
|
33
|
-
}
|
|
34
|
-
/** Sent when a peer wants to update its track's metadata */
|
|
35
|
-
export interface MediaEvent_UpdateTrackMetadata {
|
|
36
|
-
trackId: string;
|
|
37
|
-
metadataJson: string;
|
|
38
|
-
}
|
|
39
|
-
/** Sent when peer wants to renegotiate connection due to adding a track or removing a track */
|
|
40
|
-
export interface MediaEvent_RenegotiateTracks {
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Sent as a response to `offerData` media event during renegotiation
|
|
44
|
-
* Maps contain only information about current peer's `sendonly` tracks.
|
|
45
|
-
* The "mid" is an identifier used to associate an RTP packet with an MLine from the SDP offer/answer.
|
|
46
|
-
*/
|
|
47
|
-
export interface MediaEvent_SdpOffer {
|
|
48
|
-
/** The value of the `sessionDescription.sdp` */
|
|
49
|
-
sdp: string;
|
|
50
|
-
trackIdToMetadataJson: {
|
|
51
|
-
[key: string]: string;
|
|
52
|
-
};
|
|
53
|
-
/** Maps track_id to its bitrate. The track_id in the TrackBitrates message is ignored (we use the map key), so it can be omitted. */
|
|
54
|
-
trackIdToBitrates: {
|
|
55
|
-
[key: string]: MediaEvent_TrackBitrates;
|
|
56
|
-
};
|
|
57
|
-
midToTrackId: {
|
|
58
|
-
[key: string]: string;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
export interface MediaEvent_SdpOffer_TrackIdToMetadataJsonEntry {
|
|
62
|
-
key: string;
|
|
63
|
-
value: string;
|
|
64
|
-
}
|
|
65
|
-
export interface MediaEvent_SdpOffer_TrackIdToBitratesEntry {
|
|
66
|
-
key: string;
|
|
67
|
-
value: MediaEvent_TrackBitrates | undefined;
|
|
68
|
-
}
|
|
69
|
-
export interface MediaEvent_SdpOffer_MidToTrackIdEntry {
|
|
70
|
-
key: string;
|
|
71
|
-
value: string;
|
|
72
|
-
}
|
|
73
|
-
/** Sent when Peer wants to update its track's bitrate */
|
|
74
|
-
export interface MediaEvent_TrackBitrates {
|
|
75
|
-
trackId: string;
|
|
76
|
-
/** Bitrate of each variant. For non-simulcast tracks use VARIANT_UNSPECIFIED. */
|
|
77
|
-
variantBitrates: MediaEvent_VariantBitrate[];
|
|
78
|
-
}
|
|
79
|
-
/** Sent when client disables one of the track variants */
|
|
80
|
-
export interface MediaEvent_DisableTrackVariant {
|
|
81
|
-
trackId: string;
|
|
82
|
-
variant: Variant;
|
|
83
|
-
}
|
|
84
|
-
/** Sent when client enables one of the track variants */
|
|
85
|
-
export interface MediaEvent_EnableTrackVariant {
|
|
86
|
-
trackId: string;
|
|
87
|
-
variant: Variant;
|
|
88
|
-
}
|
|
89
|
-
export interface MediaEvent_SetTargetTrackVariant {
|
|
90
|
-
trackId: string;
|
|
91
|
-
variant: Variant;
|
|
92
|
-
}
|
|
93
|
-
export interface MediaEvent_UnmuteTrack {
|
|
94
|
-
trackId: string;
|
|
95
|
-
}
|
|
96
|
-
export declare const MediaEvent: MessageFns<MediaEvent>;
|
|
97
|
-
export declare const MediaEvent_VariantBitrate: MessageFns<MediaEvent_VariantBitrate>;
|
|
98
|
-
export declare const MediaEvent_Connect: MessageFns<MediaEvent_Connect>;
|
|
99
|
-
export declare const MediaEvent_Disconnect: MessageFns<MediaEvent_Disconnect>;
|
|
100
|
-
export declare const MediaEvent_UpdateEndpointMetadata: MessageFns<MediaEvent_UpdateEndpointMetadata>;
|
|
101
|
-
export declare const MediaEvent_UpdateTrackMetadata: MessageFns<MediaEvent_UpdateTrackMetadata>;
|
|
102
|
-
export declare const MediaEvent_RenegotiateTracks: MessageFns<MediaEvent_RenegotiateTracks>;
|
|
103
|
-
export declare const MediaEvent_SdpOffer: MessageFns<MediaEvent_SdpOffer>;
|
|
104
|
-
export declare const MediaEvent_SdpOffer_TrackIdToMetadataJsonEntry: MessageFns<MediaEvent_SdpOffer_TrackIdToMetadataJsonEntry>;
|
|
105
|
-
export declare const MediaEvent_SdpOffer_TrackIdToBitratesEntry: MessageFns<MediaEvent_SdpOffer_TrackIdToBitratesEntry>;
|
|
106
|
-
export declare const MediaEvent_SdpOffer_MidToTrackIdEntry: MessageFns<MediaEvent_SdpOffer_MidToTrackIdEntry>;
|
|
107
|
-
export declare const MediaEvent_TrackBitrates: MessageFns<MediaEvent_TrackBitrates>;
|
|
108
|
-
export declare const MediaEvent_DisableTrackVariant: MessageFns<MediaEvent_DisableTrackVariant>;
|
|
109
|
-
export declare const MediaEvent_EnableTrackVariant: MessageFns<MediaEvent_EnableTrackVariant>;
|
|
110
|
-
export declare const MediaEvent_SetTargetTrackVariant: MessageFns<MediaEvent_SetTargetTrackVariant>;
|
|
111
|
-
export declare const MediaEvent_UnmuteTrack: MessageFns<MediaEvent_UnmuteTrack>;
|
|
112
|
-
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
113
|
-
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
114
|
-
[K in keyof T]?: DeepPartial<T[K]>;
|
|
115
|
-
} : Partial<T>;
|
|
116
|
-
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
117
|
-
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
118
|
-
[K in keyof P]: Exact<P[K], I[K]>;
|
|
119
|
-
} & {
|
|
120
|
-
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
121
|
-
};
|
|
122
|
-
export interface MessageFns<T> {
|
|
123
|
-
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
124
|
-
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
125
|
-
fromJSON(object: any): T;
|
|
126
|
-
toJSON(message: T): unknown;
|
|
127
|
-
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
128
|
-
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
129
|
-
}
|
|
130
|
-
export {};
|