mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
chore(deps): upgrade all dependencies, toolchains and images (#2825)
This commit is contained in:
1 parent
56e04e7b53
commit
3b552e00ef
510 files changed
+23614
-37473
No files matched your search
@@ -181,7 +181,7 @@ import type {
|
||||
ScreenShareCaptureOptions,
|
||||
TrackPublishOptions,
|
||||
} from 'livekit-client';
|
||||
import {makeObservable, observable} from 'mobx';
|
||||
import {makeObservable, observableRef} from 'mobx';
|
||||
|
||||
const logger = new Logger('MediaEngineFacade');
|
||||
|
||||
@@ -403,7 +403,7 @@ class MediaEngineFacade extends Store {
|
||||
setNativeAudioCaptureBridgeLifecycleBridge(this.voiceEngineV2SourceLifecycleBridge);
|
||||
this.syncVoiceEngineV2AudioControlsFromAppState();
|
||||
makeObservable<this, 'facadeSnapshot'>(this, {
|
||||
facadeSnapshot: observable.ref,
|
||||
facadeSnapshot: observableRef,
|
||||
});
|
||||
this.initializeEngineStoreSync();
|
||||
this.initializeVoiceEngineV2ConnectionLifecycleSync();
|
||||
|
||||
@@ -199,7 +199,7 @@ export function parseScreenShareMigrationMessage(payload: Uint8Array): ScreenSha
|
||||
}
|
||||
}
|
||||
|
||||
export function encodeScreenShareMigrationMessage(message: ScreenShareMigrationMessage): Uint8Array {
|
||||
export function encodeScreenShareMigrationMessage(message: ScreenShareMigrationMessage): Uint8Array<ArrayBuffer> {
|
||||
return TEXT_ENCODER.encode(JSON.stringify(message));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {makeObservable, observable, runInAction} from 'mobx';
|
||||
import {makeObservable, observableRef, runInAction} from 'mobx';
|
||||
import {useSyncExternalStore} from 'react';
|
||||
|
||||
export type StoreListener = () => void;
|
||||
@@ -20,7 +20,7 @@ export class Store implements StoreLike {
|
||||
|
||||
constructor() {
|
||||
makeObservable<this, 'storeVersion'>(this, {
|
||||
storeVersion: observable.ref,
|
||||
storeVersion: observableRef,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -824,7 +824,7 @@ function subscribeToVoiceMediaGraphPublication<TFailure extends VoiceMediaGraphF
|
||||
});
|
||||
const commands = observerReplacementCommands(event, existing?.observedElement ?? null, event.observedElement);
|
||||
if (event.hasPublication) {
|
||||
if (!existing || !existing.publicationAvailable) {
|
||||
if (!existing?.publicationAvailable) {
|
||||
commands.push(subscribePublicationCommand(event, nextEntry));
|
||||
} else {
|
||||
const commandTarget = voiceMediaGraphSubscriptionCommandTarget(event);
|
||||
@@ -993,7 +993,7 @@ function markVoiceMediaGraphSubscriptionPublicationMissing<TFailure extends Voic
|
||||
target: VoiceMediaGraphSubscriptionTarget,
|
||||
): VoiceMediaGraphSnapshot<TFailure> {
|
||||
const entry = selectVoiceMediaGraphSubscriptionEntry(snapshot, target.participantIdentity, target.source);
|
||||
if (!entry || !entry.publicationAvailable) return snapshot;
|
||||
if (!entry?.publicationAvailable) return snapshot;
|
||||
return setVoiceMediaGraphSubscriptionEntry(snapshot, updateSubscriptionAvailability(entry, false));
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
type VoiceMediaGraphClockPort,
|
||||
} from '@app/features/voice/engine/VoiceMediaGraphClock';
|
||||
import {checkVoiceMediaGraphInvariants} from '@app/features/voice/engine/VoiceMediaGraphInvariants';
|
||||
import {makeObservable, observable} from 'mobx';
|
||||
import {makeObservable, observableRef} from 'mobx';
|
||||
|
||||
const logger = new Logger('VoiceMediaGraphStore');
|
||||
const LOGGED_VIOLATION_LIMIT = 256;
|
||||
@@ -33,7 +33,7 @@ export class VoiceMediaGraphStore extends Store {
|
||||
super();
|
||||
this.clock = clock;
|
||||
makeObservable(this, {
|
||||
graph: observable.ref,
|
||||
graph: observableRef,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ import type {
|
||||
TrackPublishOptions,
|
||||
} from 'livekit-client';
|
||||
import {Room as LiveKitRoom, RoomEvent, Track} from 'livekit-client';
|
||||
import {makeObservable, observable} from 'mobx';
|
||||
import {makeObservable, observableRef} from 'mobx';
|
||||
import type {Subscription} from 'rxjs';
|
||||
import {timer} from 'rxjs';
|
||||
|
||||
@@ -214,8 +214,8 @@ export class VoiceEngineV2AppConnectionHostAdapter extends Store {
|
||||
constructor() {
|
||||
super();
|
||||
makeObservable(this, {
|
||||
connectionState: observable.ref,
|
||||
hotSwapState: observable.ref,
|
||||
connectionState: observableRef,
|
||||
hotSwapState: observableRef,
|
||||
});
|
||||
this.throttle.subscribe(() => this.emitChange());
|
||||
this.reconnect.subscribe(() => this.emitChange());
|
||||
|
||||
@@ -88,12 +88,11 @@ function buildOperatingError(method: string, reason: string): Error {
|
||||
return error;
|
||||
}
|
||||
|
||||
function toUint8Array(payload: ArrayBuffer | ArrayBufferView): Uint8Array {
|
||||
if (payload instanceof Uint8Array) return payload;
|
||||
if (ArrayBuffer.isView(payload)) {
|
||||
return new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength);
|
||||
}
|
||||
return new Uint8Array(payload);
|
||||
function toUint8Array(payload: ArrayBuffer | ArrayBufferView): Uint8Array<ArrayBuffer> {
|
||||
if (!ArrayBuffer.isView(payload)) return new Uint8Array(payload);
|
||||
const {buffer, byteOffset, byteLength} = payload;
|
||||
if (buffer instanceof ArrayBuffer) return new Uint8Array(buffer, byteOffset, byteLength);
|
||||
return new Uint8Array(buffer, byteOffset, byteLength).slice();
|
||||
}
|
||||
|
||||
function isDataPayload(value: unknown): value is ArrayBuffer | ArrayBufferView {
|
||||
|
||||
+5
-5
@@ -357,7 +357,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store {
|
||||
|
||||
async unmuteScreenShareAudioPublicationInternal(participant: LocalParticipant, reason: string): Promise<void> {
|
||||
const publication = participant.getTrackPublication(Track.Source.ScreenShareAudio);
|
||||
if (!publication || !publication.isMuted) {
|
||||
if (!publication?.isMuted) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
@@ -771,7 +771,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store {
|
||||
options: {includeSelfWindowAudio?: boolean; replaceExisting?: boolean} = {},
|
||||
): Promise<boolean> {
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) return false;
|
||||
if (!participant?.isScreenShareEnabled) return false;
|
||||
if (!linuxRule) return false;
|
||||
if (options.replaceExisting !== true) {
|
||||
const reconfigured = await reconfigureLinuxNativeAudioRouting(linuxRule, options);
|
||||
@@ -807,7 +807,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store {
|
||||
|
||||
async ensureWindowScreenShareAudioPublication(room: Room | null, sourceId: string): Promise<boolean> {
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) return false;
|
||||
if (!participant?.isScreenShareEnabled) return false;
|
||||
const targetPid = await getElectronAPI()
|
||||
?.nativeAudio?.resolveAudioRootPidForSource(sourceId)
|
||||
.catch((error) => {
|
||||
@@ -842,7 +842,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store {
|
||||
|
||||
async ensureDeviceScreenShareMicPublication(room: Room | null, audioDeviceId: string): Promise<boolean> {
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) return false;
|
||||
if (!participant?.isScreenShareEnabled) return false;
|
||||
await ensureNativeMicrophonePermissionForDeviceShare('replace');
|
||||
const micTrack = await createLocalAudioTrack({
|
||||
deviceId: audioDeviceId && audioDeviceId !== 'default' ? audioDeviceId : undefined,
|
||||
@@ -1038,7 +1038,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store {
|
||||
return false;
|
||||
}
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) return false;
|
||||
if (!participant?.isScreenShareEnabled) return false;
|
||||
const screenSharePublication = participant.getTrackPublication(Track.Source.ScreenShare);
|
||||
const screenShareTrack = screenSharePublication?.videoTrack;
|
||||
if (!screenShareTrack) {
|
||||
|
||||
@@ -689,7 +689,7 @@ export class VoiceEngineV2AppScreenShareLiveKitFlows {
|
||||
return false;
|
||||
}
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) {
|
||||
if (!room || !participant?.isScreenShareEnabled) {
|
||||
logger.warn('No active screen share to replace');
|
||||
return false;
|
||||
}
|
||||
@@ -733,7 +733,7 @@ export class VoiceEngineV2AppScreenShareLiveKitFlows {
|
||||
return false;
|
||||
}
|
||||
const participant = room?.localParticipant;
|
||||
if (!participant || !participant.isScreenShareEnabled) {
|
||||
if (!room || !participant?.isScreenShareEnabled) {
|
||||
logger.warn('No active screen share to replace');
|
||||
return false;
|
||||
}
|
||||
@@ -772,7 +772,7 @@ export class VoiceEngineV2AppScreenShareLiveKitFlows {
|
||||
return false;
|
||||
}
|
||||
const participant = room?.localParticipant;
|
||||
if (!room || !participant || !participant.isScreenShareEnabled) {
|
||||
if (!room || !participant?.isScreenShareEnabled) {
|
||||
logger.warn('No active screen share to republish');
|
||||
return false;
|
||||
}
|
||||
@@ -892,7 +892,7 @@ export class VoiceEngineV2AppScreenShareLiveKitFlows {
|
||||
const sourceVideoTrack =
|
||||
screenShareTrack.mediaStream?.getVideoTracks()[0] ??
|
||||
(videoHadProcessor ? undefined : screenShareTrack.mediaStreamTrack);
|
||||
if (!sourceVideoTrack || sourceVideoTrack.readyState !== 'live') {
|
||||
if (sourceVideoTrack?.readyState !== 'live') {
|
||||
throw new Error('Active screen share has no live source video track to preserve');
|
||||
}
|
||||
const audioPublications = getLocalScreenShareAudioPublications(participant);
|
||||
|
||||
@@ -169,7 +169,7 @@ type RoomWithEngine = Room & {
|
||||
};
|
||||
|
||||
interface StatsSource {
|
||||
getStats(): Promise<StatsReportMap>;
|
||||
getStats(): Promise<StatsReportMap | undefined>;
|
||||
getTransceivers?(): ReadonlyArray<StatsTransceiver>;
|
||||
}
|
||||
|
||||
@@ -539,6 +539,7 @@ async function collectFromStatsSource(
|
||||
transport: TransportInfo | null;
|
||||
}> {
|
||||
const reports = await source.getStats();
|
||||
if (!reports) return {tracks: [], rtt: 0, transport: null};
|
||||
const midToSenderTrackId = new Map<string, string>();
|
||||
for (const transceiver of source.getTransceivers?.() ?? []) {
|
||||
const senderTrackId = transceiver.sender?.track?.id;
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
type VoiceGatewayVoiceStates,
|
||||
} from '@app/features/voice/engine/VoiceGatewayStateMachine';
|
||||
import {ME} from '@fluxer/constants/src/AppConstants';
|
||||
import {makeObservable, observable} from 'mobx';
|
||||
import {makeObservable, observable, observableRef} from 'mobx';
|
||||
|
||||
const logger = new Logger('VoiceEngineV2AppVoiceStateAdapter');
|
||||
|
||||
@@ -53,10 +53,10 @@ export class VoiceEngineV2AppVoiceStateAdapter extends Store {
|
||||
constructor() {
|
||||
super();
|
||||
makeObservable<this, 'snapshot' | 'voiceStates' | 'userVoiceStates' | 'connectionVoiceStates'>(this, {
|
||||
snapshot: observable.ref,
|
||||
voiceStates: observable.ref,
|
||||
userVoiceStates: observable.ref,
|
||||
connectionVoiceStates: observable.ref,
|
||||
snapshot: observableRef,
|
||||
voiceStates: observableRef,
|
||||
userVoiceStates: observableRef,
|
||||
connectionVoiceStates: observableRef,
|
||||
});
|
||||
this.applyVoiceGatewayStateContext(this.snapshot.context);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user