Add native self-hosted instance connection to fluxer_desktop
Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
This commit is contained in:
+79
@@ -0,0 +1,79 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
export interface RgbaTransformResult {
|
||||
rgba: Uint8Array;
|
||||
width: number;
|
||||
height: number;
|
||||
}
|
||||
|
||||
export interface DecodedFrame {
|
||||
rgba: Uint8Array;
|
||||
width: number;
|
||||
height: number;
|
||||
delayMs: number;
|
||||
}
|
||||
|
||||
export interface EncodedApngFrame {
|
||||
compressed: Uint8Array;
|
||||
width: number;
|
||||
height: number;
|
||||
delayMs: number;
|
||||
}
|
||||
|
||||
export interface EncodedGifChunk {
|
||||
data: Uint8Array;
|
||||
width: number;
|
||||
height: number;
|
||||
}
|
||||
|
||||
export function assemble_apng_frames(frames: Array<EncodedApngFrame>): Uint8Array;
|
||||
export function assemble_gif_frame_chunks(chunks: Array<EncodedGifChunk>): Uint8Array;
|
||||
export function crop_and_rotate_apng(
|
||||
input: Uint8Array,
|
||||
x: number,
|
||||
y: number,
|
||||
width: number,
|
||||
height: number,
|
||||
rotation_deg: number,
|
||||
resize_width?: number | null,
|
||||
resize_height?: number | null,
|
||||
): Uint8Array;
|
||||
export function crop_and_rotate_gif(
|
||||
input: Uint8Array,
|
||||
x: number,
|
||||
y: number,
|
||||
width: number,
|
||||
height: number,
|
||||
rotation_deg: number,
|
||||
resize_width?: number | null,
|
||||
resize_height?: number | null,
|
||||
): Uint8Array;
|
||||
export function crop_and_rotate_image(
|
||||
input: Uint8Array,
|
||||
format_hint: string,
|
||||
x: number,
|
||||
y: number,
|
||||
width: number,
|
||||
height: number,
|
||||
rotation_deg: number,
|
||||
resize_width?: number | null,
|
||||
resize_height?: number | null,
|
||||
): Uint8Array;
|
||||
export function crop_rotate_rgba(
|
||||
input: Uint8Array,
|
||||
src_width: number,
|
||||
src_height: number,
|
||||
x: number,
|
||||
y: number,
|
||||
width: number,
|
||||
height: number,
|
||||
rotation_deg: number,
|
||||
resize_width?: number | null,
|
||||
resize_height?: number | null,
|
||||
): RgbaTransformResult;
|
||||
export function decode_apng_frames(input: Uint8Array): Array<DecodedFrame>;
|
||||
export function decode_gif_frames(input: Uint8Array): Array<DecodedFrame>;
|
||||
export function encode_apng_frame_payload(frame: DecodedFrame): EncodedApngFrame;
|
||||
export function encode_apng_frames(frames: Array<DecodedFrame>): Uint8Array;
|
||||
export function encode_gif_frame_chunk(frame: DecodedFrame, first?: boolean): EncodedGifChunk;
|
||||
export function encode_gif_frames(frames: Array<DecodedFrame>): Uint8Array;
|
||||
Reference in New Issue
Block a user