From 02f5bd5929298bb7b5e047b725a13e4796d43b71 Mon Sep 17 00:00:00 2001 From: Simon Chan <1330321+yume-chan@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:44:57 +0800 Subject: [PATCH] feat(adb-scrcpy): add aliases for all AdbScrcpyOptions versions --- .changeset/light-pears-bake.md | 6 + .../src/1_15/impl/create-connection.ts | 29 +++++ .../adb-scrcpy/src/1_15/impl/get-displays.ts | 38 ++++++ .../adb-scrcpy/src/1_15/impl/get-encoders.ts | 24 ++++ libraries/adb-scrcpy/src/1_15/impl/index.ts | 3 + libraries/adb-scrcpy/src/1_15/index.ts | 1 + libraries/adb-scrcpy/src/1_15/options.ts | 30 +++++ libraries/adb-scrcpy/src/1_15_1.ts | 33 +++++ libraries/adb-scrcpy/src/1_16.ts | 33 +++++ libraries/adb-scrcpy/src/1_17.ts | 33 +++++ libraries/adb-scrcpy/src/1_18.ts | 33 +++++ libraries/adb-scrcpy/src/1_19.ts | 33 +++++ libraries/adb-scrcpy/src/1_20.ts | 33 +++++ libraries/adb-scrcpy/src/1_21.ts | 33 +++++ .../src/1_22/impl/create-connection.ts | 34 +++++ libraries/adb-scrcpy/src/1_22/impl/index.ts | 2 + libraries/adb-scrcpy/src/1_22/index.ts | 1 + libraries/adb-scrcpy/src/1_22/options.ts | 33 +++++ libraries/adb-scrcpy/src/1_23.ts | 33 +++++ libraries/adb-scrcpy/src/1_24.ts | 33 +++++ libraries/adb-scrcpy/src/1_25.ts | 33 +++++ .../src/2_0/impl/create-connection.ts | 35 +++++ .../adb-scrcpy/src/2_0/impl/get-encoders.ts | 38 ++++++ libraries/adb-scrcpy/src/2_0/impl/index.ts | 3 + libraries/adb-scrcpy/src/2_0/index.ts | 1 + libraries/adb-scrcpy/src/2_0/options.ts | 30 +++++ .../src/2_1/impl/create-connection.ts | 40 ++++++ libraries/adb-scrcpy/src/2_1/impl/index.ts | 2 + libraries/adb-scrcpy/src/2_1/index.ts | 1 + libraries/adb-scrcpy/src/2_1/options.ts | 33 +++++ libraries/adb-scrcpy/src/2_1_1.ts | 33 +++++ libraries/adb-scrcpy/src/2_2.ts | 33 +++++ libraries/adb-scrcpy/src/2_3.ts | 33 +++++ libraries/adb-scrcpy/src/2_3_1.ts | 33 +++++ libraries/adb-scrcpy/src/2_4.ts | 33 +++++ libraries/adb-scrcpy/src/2_5.ts | 33 +++++ libraries/adb-scrcpy/src/2_6.ts | 33 +++++ libraries/adb-scrcpy/src/2_7.ts | 33 +++++ libraries/adb-scrcpy/src/3_0.ts | 33 +++++ libraries/adb-scrcpy/src/3_0_1.ts | 33 +++++ libraries/adb-scrcpy/src/3_0_2.ts | 33 +++++ libraries/adb-scrcpy/src/3_1.ts | 33 +++++ libraries/adb-scrcpy/src/client.ts | 2 +- libraries/adb-scrcpy/src/index.ts | 26 +++- libraries/adb-scrcpy/src/latest.ts | 11 ++ libraries/adb-scrcpy/src/options/1_16.ts | 120 ------------------ libraries/adb-scrcpy/src/options/1_22.ts | 42 ------ libraries/adb-scrcpy/src/options/2_0.ts | 79 ------------ libraries/adb-scrcpy/src/options/2_1.ts | 52 -------- libraries/adb-scrcpy/src/options/index.ts | 6 - libraries/adb-scrcpy/src/options/latest.ts | 1 - .../adb-scrcpy/src/{options => }/types.ts | 2 +- libraries/scrcpy/src/1_15/index.ts | 1 - libraries/scrcpy/src/1_15_1.ts | 4 +- libraries/scrcpy/src/1_16.ts | 4 +- libraries/scrcpy/src/1_17/index.ts | 1 - libraries/scrcpy/src/1_18/index.ts | 1 - libraries/scrcpy/src/1_19.ts | 4 +- libraries/scrcpy/src/1_20.ts | 4 +- libraries/scrcpy/src/1_21/index.ts | 1 - libraries/scrcpy/src/1_22/index.ts | 1 - libraries/scrcpy/src/1_23/index.ts | 1 - libraries/scrcpy/src/1_24/index.ts | 1 - libraries/scrcpy/src/1_25/index.ts | 1 - libraries/scrcpy/src/2_0/index.ts | 1 - libraries/scrcpy/src/2_1/index.ts | 1 - libraries/scrcpy/src/2_1_1.ts | 4 +- libraries/scrcpy/src/2_2/index.ts | 1 - libraries/scrcpy/src/2_3/index.ts | 1 - libraries/scrcpy/src/2_3_1.ts | 4 +- libraries/scrcpy/src/2_4/index.ts | 1 - libraries/scrcpy/src/2_5.ts | 4 +- libraries/scrcpy/src/2_6/index.ts | 1 - libraries/scrcpy/src/2_6_1.ts | 4 +- libraries/scrcpy/src/2_7/index.ts | 1 - libraries/scrcpy/src/3_0/index.ts | 1 - libraries/scrcpy/src/3_0_1.ts | 4 +- libraries/scrcpy/src/3_0_2.ts | 4 +- libraries/scrcpy/src/3_1/index.ts | 1 - libraries/scrcpy/src/latest.ts | 4 +- 80 files changed, 1181 insertions(+), 331 deletions(-) create mode 100644 .changeset/light-pears-bake.md create mode 100644 libraries/adb-scrcpy/src/1_15/impl/create-connection.ts create mode 100644 libraries/adb-scrcpy/src/1_15/impl/get-displays.ts create mode 100644 libraries/adb-scrcpy/src/1_15/impl/get-encoders.ts create mode 100644 libraries/adb-scrcpy/src/1_15/impl/index.ts create mode 100644 libraries/adb-scrcpy/src/1_15/index.ts create mode 100644 libraries/adb-scrcpy/src/1_15/options.ts create mode 100644 libraries/adb-scrcpy/src/1_15_1.ts create mode 100644 libraries/adb-scrcpy/src/1_16.ts create mode 100644 libraries/adb-scrcpy/src/1_17.ts create mode 100644 libraries/adb-scrcpy/src/1_18.ts create mode 100644 libraries/adb-scrcpy/src/1_19.ts create mode 100644 libraries/adb-scrcpy/src/1_20.ts create mode 100644 libraries/adb-scrcpy/src/1_21.ts create mode 100644 libraries/adb-scrcpy/src/1_22/impl/create-connection.ts create mode 100644 libraries/adb-scrcpy/src/1_22/impl/index.ts create mode 100644 libraries/adb-scrcpy/src/1_22/index.ts create mode 100644 libraries/adb-scrcpy/src/1_22/options.ts create mode 100644 libraries/adb-scrcpy/src/1_23.ts create mode 100644 libraries/adb-scrcpy/src/1_24.ts create mode 100644 libraries/adb-scrcpy/src/1_25.ts create mode 100644 libraries/adb-scrcpy/src/2_0/impl/create-connection.ts create mode 100644 libraries/adb-scrcpy/src/2_0/impl/get-encoders.ts create mode 100644 libraries/adb-scrcpy/src/2_0/impl/index.ts create mode 100644 libraries/adb-scrcpy/src/2_0/index.ts create mode 100644 libraries/adb-scrcpy/src/2_0/options.ts create mode 100644 libraries/adb-scrcpy/src/2_1/impl/create-connection.ts create mode 100644 libraries/adb-scrcpy/src/2_1/impl/index.ts create mode 100644 libraries/adb-scrcpy/src/2_1/index.ts create mode 100644 libraries/adb-scrcpy/src/2_1/options.ts create mode 100644 libraries/adb-scrcpy/src/2_1_1.ts create mode 100644 libraries/adb-scrcpy/src/2_2.ts create mode 100644 libraries/adb-scrcpy/src/2_3.ts create mode 100644 libraries/adb-scrcpy/src/2_3_1.ts create mode 100644 libraries/adb-scrcpy/src/2_4.ts create mode 100644 libraries/adb-scrcpy/src/2_5.ts create mode 100644 libraries/adb-scrcpy/src/2_6.ts create mode 100644 libraries/adb-scrcpy/src/2_7.ts create mode 100644 libraries/adb-scrcpy/src/3_0.ts create mode 100644 libraries/adb-scrcpy/src/3_0_1.ts create mode 100644 libraries/adb-scrcpy/src/3_0_2.ts create mode 100644 libraries/adb-scrcpy/src/3_1.ts create mode 100644 libraries/adb-scrcpy/src/latest.ts delete mode 100644 libraries/adb-scrcpy/src/options/1_16.ts delete mode 100644 libraries/adb-scrcpy/src/options/1_22.ts delete mode 100644 libraries/adb-scrcpy/src/options/2_0.ts delete mode 100644 libraries/adb-scrcpy/src/options/2_1.ts delete mode 100644 libraries/adb-scrcpy/src/options/index.ts delete mode 100644 libraries/adb-scrcpy/src/options/latest.ts rename libraries/adb-scrcpy/src/{options => }/types.ts (88%) diff --git a/.changeset/light-pears-bake.md b/.changeset/light-pears-bake.md new file mode 100644 index 00000000..4fa8deb9 --- /dev/null +++ b/.changeset/light-pears-bake.md @@ -0,0 +1,6 @@ +--- +"@yume-chan/adb-scrcpy": minor +"@yume-chan/scrcpy": minor +--- + +Add alias for all AdbScrcpyOptions versions diff --git a/libraries/adb-scrcpy/src/1_15/impl/create-connection.ts b/libraries/adb-scrcpy/src/1_15/impl/create-connection.ts new file mode 100644 index 00000000..5c4dfd32 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/impl/create-connection.ts @@ -0,0 +1,29 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyOptions1_15 } from "@yume-chan/scrcpy"; + +import type { + AdbScrcpyConnection, + AdbScrcpyConnectionOptions, +} from "../../connection.js"; +import { + AdbScrcpyForwardConnection, + AdbScrcpyReverseConnection, +} from "../../connection.js"; + +export function createConnection( + adb: Adb, + options: Pick, +): AdbScrcpyConnection { + const connectionOptions: AdbScrcpyConnectionOptions = { + scid: undefined, // Not Supported + video: true, // Always enabled + audio: false, // Not Supported + control: true, // Always enabled even when `--no-control` is specified + sendDummyByte: true, // Always enabled + }; + if (options.tunnelForward) { + return new AdbScrcpyForwardConnection(adb, connectionOptions); + } else { + return new AdbScrcpyReverseConnection(adb, connectionOptions); + } +} diff --git a/libraries/adb-scrcpy/src/1_15/impl/get-displays.ts b/libraries/adb-scrcpy/src/1_15/impl/get-displays.ts new file mode 100644 index 00000000..c6e1796c --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/impl/get-displays.ts @@ -0,0 +1,38 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyOptions1_15 } from "@yume-chan/scrcpy"; + +import { AdbScrcpyClient, AdbScrcpyExitedError } from "../../client.js"; +import type { AdbScrcpyOptions } from "../../types.js"; + +export async function getDisplays( + adb: Adb, + path: string, + options: AdbScrcpyOptions>, +): Promise { + try { + // Server will exit before opening connections when an invalid display id was given + // so `start` will throw an `AdbScrcpyExitedError` + const client = await AdbScrcpyClient.start(adb, path, options); + + // If the server didn't exit, manually stop it and throw an error + await client.close(); + throw new Error("Unexpected server output"); + } catch (e) { + if (e instanceof AdbScrcpyExitedError) { + if (e.output[0]?.startsWith("[server] ERROR:")) { + throw e; + } + + const displays: ScrcpyDisplay[] = []; + for (const line of e.output) { + const display = options.parseDisplay(line); + if (display) { + displays.push(display); + } + } + return displays; + } + + throw e; + } +} diff --git a/libraries/adb-scrcpy/src/1_15/impl/get-encoders.ts b/libraries/adb-scrcpy/src/1_15/impl/get-encoders.ts new file mode 100644 index 00000000..26161864 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/impl/get-encoders.ts @@ -0,0 +1,24 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyEncoder, ScrcpyOptions1_15 } from "@yume-chan/scrcpy"; + +import { AdbScrcpyClient } from "../../client.js"; +import type { AdbScrcpyOptions } from "../../types.js"; + +export async function getEncoders( + adb: Adb, + path: string, + options: AdbScrcpyOptions>, +): Promise { + const client = await AdbScrcpyClient.start(adb, path, options); + + const encoders: ScrcpyEncoder[] = []; + + for await (const line of client.stdout) { + const encoder = options.parseEncoder(line); + if (encoder) { + encoders.push(encoder); + } + } + + return encoders; +} diff --git a/libraries/adb-scrcpy/src/1_15/impl/index.ts b/libraries/adb-scrcpy/src/1_15/impl/index.ts new file mode 100644 index 00000000..5208fca1 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/impl/index.ts @@ -0,0 +1,3 @@ +export * from "./create-connection.js"; +export * from "./get-displays.js"; +export * from "./get-encoders.js"; diff --git a/libraries/adb-scrcpy/src/1_15/index.ts b/libraries/adb-scrcpy/src/1_15/index.ts new file mode 100644 index 00000000..e9939706 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/index.ts @@ -0,0 +1 @@ +export * from "./options.js"; diff --git a/libraries/adb-scrcpy/src/1_15/options.ts b/libraries/adb-scrcpy/src/1_15/options.ts new file mode 100644 index 00000000..c46284ae --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15/options.ts @@ -0,0 +1,30 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_15 } from "@yume-chan/scrcpy"; + +import type { AdbScrcpyConnection } from "../connection.js"; +import { AdbScrcpyOptions } from "../types.js"; + +import { createConnection, getDisplays, getEncoders } from "./impl/index.js"; + +export class AdbScrcpyOptions1_15 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_15.Init, version?: string) { + super(new ScrcpyOptions1_15(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_15 { + export type Init = ScrcpyOptions1_15.Init; +} diff --git a/libraries/adb-scrcpy/src/1_15_1.ts b/libraries/adb-scrcpy/src/1_15_1.ts new file mode 100644 index 00000000..e3024483 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_15_1.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_15_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_15_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_15_1.Init, version?: string) { + super(new ScrcpyOptions1_15_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_15_1 { + export type Init = ScrcpyOptions1_15_1.Init; +} diff --git a/libraries/adb-scrcpy/src/1_16.ts b/libraries/adb-scrcpy/src/1_16.ts new file mode 100644 index 00000000..fc3b6e16 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_16.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_16 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_16 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_16.Init, version?: string) { + super(new ScrcpyOptions1_16(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_16 { + export type Init = ScrcpyOptions1_16.Init; +} diff --git a/libraries/adb-scrcpy/src/1_17.ts b/libraries/adb-scrcpy/src/1_17.ts new file mode 100644 index 00000000..dc7d4d8f --- /dev/null +++ b/libraries/adb-scrcpy/src/1_17.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_17 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_17 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_17.Init, version?: string) { + super(new ScrcpyOptions1_17(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_17 { + export type Init = ScrcpyOptions1_17.Init; +} diff --git a/libraries/adb-scrcpy/src/1_18.ts b/libraries/adb-scrcpy/src/1_18.ts new file mode 100644 index 00000000..6505cf26 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_18.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_18 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_18 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_18.Init, version?: string) { + super(new ScrcpyOptions1_18(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_18 { + export type Init = ScrcpyOptions1_18.Init; +} diff --git a/libraries/adb-scrcpy/src/1_19.ts b/libraries/adb-scrcpy/src/1_19.ts new file mode 100644 index 00000000..ef681e39 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_19.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_19 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_19 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_19.Init, version?: string) { + super(new ScrcpyOptions1_19(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_19 { + export type Init = ScrcpyOptions1_19.Init; +} diff --git a/libraries/adb-scrcpy/src/1_20.ts b/libraries/adb-scrcpy/src/1_20.ts new file mode 100644 index 00000000..8294dc64 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_20.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_20 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_20 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_20.Init, version?: string) { + super(new ScrcpyOptions1_20(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_20 { + export type Init = ScrcpyOptions1_20.Init; +} diff --git a/libraries/adb-scrcpy/src/1_21.ts b/libraries/adb-scrcpy/src/1_21.ts new file mode 100644 index 00000000..1885a485 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_21.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_21 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_21 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_21.Init, version?: string) { + super(new ScrcpyOptions1_21(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_21 { + export type Init = ScrcpyOptions1_21.Init; +} diff --git a/libraries/adb-scrcpy/src/1_22/impl/create-connection.ts b/libraries/adb-scrcpy/src/1_22/impl/create-connection.ts new file mode 100644 index 00000000..c9fc8b21 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_22/impl/create-connection.ts @@ -0,0 +1,34 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyOptions1_22 } from "@yume-chan/scrcpy"; + +import type { + AdbScrcpyConnection, + AdbScrcpyConnectionOptions, +} from "../../connection.js"; +import { + AdbScrcpyForwardConnection, + AdbScrcpyReverseConnection, +} from "../../connection.js"; + +export function createConnection( + adb: Adb, + options: Required< + Pick< + ScrcpyOptions1_22.Init, + "tunnelForward" | "control" | "sendDummyByte" + > + >, +): AdbScrcpyConnection { + const connectionOptions: AdbScrcpyConnectionOptions = { + scid: undefined, // Not Supported + video: true, // Always enabled + audio: false, // Not Supported + control: options.control, + sendDummyByte: options.sendDummyByte, + }; + if (options.tunnelForward) { + return new AdbScrcpyForwardConnection(adb, connectionOptions); + } else { + return new AdbScrcpyReverseConnection(adb, connectionOptions); + } +} diff --git a/libraries/adb-scrcpy/src/1_22/impl/index.ts b/libraries/adb-scrcpy/src/1_22/impl/index.ts new file mode 100644 index 00000000..8108cf7d --- /dev/null +++ b/libraries/adb-scrcpy/src/1_22/impl/index.ts @@ -0,0 +1,2 @@ +export * from "../../1_15/impl/index.js"; +export { createConnection } from "./create-connection.js"; diff --git a/libraries/adb-scrcpy/src/1_22/index.ts b/libraries/adb-scrcpy/src/1_22/index.ts new file mode 100644 index 00000000..e9939706 --- /dev/null +++ b/libraries/adb-scrcpy/src/1_22/index.ts @@ -0,0 +1 @@ +export * from "./options.js"; diff --git a/libraries/adb-scrcpy/src/1_22/options.ts b/libraries/adb-scrcpy/src/1_22/options.ts new file mode 100644 index 00000000..65cfa56f --- /dev/null +++ b/libraries/adb-scrcpy/src/1_22/options.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_22 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "../1_15/impl/index.js"; +import type { AdbScrcpyConnection } from "../connection.js"; +import { AdbScrcpyOptions } from "../types.js"; + +export class AdbScrcpyOptions1_22 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_22.Init, version?: string) { + super(new ScrcpyOptions1_22(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_22 { + export type Init = ScrcpyOptions1_22.Init; +} diff --git a/libraries/adb-scrcpy/src/1_23.ts b/libraries/adb-scrcpy/src/1_23.ts new file mode 100644 index 00000000..64494f8f --- /dev/null +++ b/libraries/adb-scrcpy/src/1_23.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_23 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_22/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_23 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_23.Init, version?: string) { + super(new ScrcpyOptions1_23(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_23 { + export type Init = ScrcpyOptions1_23.Init; +} diff --git a/libraries/adb-scrcpy/src/1_24.ts b/libraries/adb-scrcpy/src/1_24.ts new file mode 100644 index 00000000..4c613f2b --- /dev/null +++ b/libraries/adb-scrcpy/src/1_24.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_24 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_22/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_24 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_24.Init, version?: string) { + super(new ScrcpyOptions1_24(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_24 { + export type Init = ScrcpyOptions1_24.Init; +} diff --git a/libraries/adb-scrcpy/src/1_25.ts b/libraries/adb-scrcpy/src/1_25.ts new file mode 100644 index 00000000..3aea1e7e --- /dev/null +++ b/libraries/adb-scrcpy/src/1_25.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions1_25 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./1_22/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions1_25 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions1_25.Init, version?: string) { + super(new ScrcpyOptions1_25(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions1_25 { + export type Init = ScrcpyOptions1_25.Init; +} diff --git a/libraries/adb-scrcpy/src/2_0/impl/create-connection.ts b/libraries/adb-scrcpy/src/2_0/impl/create-connection.ts new file mode 100644 index 00000000..cfce9f78 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_0/impl/create-connection.ts @@ -0,0 +1,35 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyOptions2_0 } from "@yume-chan/scrcpy"; +import { toScrcpyOptionValue } from "@yume-chan/scrcpy"; + +import type { + AdbScrcpyConnection, + AdbScrcpyConnectionOptions, +} from "../../connection.js"; +import { + AdbScrcpyForwardConnection, + AdbScrcpyReverseConnection, +} from "../../connection.js"; + +export function createConnection( + adb: Adb, + options: Required< + Pick< + ScrcpyOptions2_0.Init, + "tunnelForward" | "control" | "sendDummyByte" | "scid" | "audio" + > + >, +): AdbScrcpyConnection { + const connectionOptions: AdbScrcpyConnectionOptions = { + scid: toScrcpyOptionValue(options.scid, undefined), + video: true, // Always enabled + audio: options.audio, + control: options.control, + sendDummyByte: options.sendDummyByte, + }; + if (options.tunnelForward) { + return new AdbScrcpyForwardConnection(adb, connectionOptions); + } else { + return new AdbScrcpyReverseConnection(adb, connectionOptions); + } +} diff --git a/libraries/adb-scrcpy/src/2_0/impl/get-encoders.ts b/libraries/adb-scrcpy/src/2_0/impl/get-encoders.ts new file mode 100644 index 00000000..acb61f4f --- /dev/null +++ b/libraries/adb-scrcpy/src/2_0/impl/get-encoders.ts @@ -0,0 +1,38 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyEncoder, ScrcpyOptions1_15 } from "@yume-chan/scrcpy"; + +import { AdbScrcpyClient, AdbScrcpyExitedError } from "../../client.js"; +import type { AdbScrcpyOptions } from "../../types.js"; + +export async function getEncoders( + adb: Adb, + path: string, + options: AdbScrcpyOptions>, +): Promise { + try { + // Similar to `getDisplays`, now the server won't create video sockets, + // so `start` will throw an `AdbScrcpyExitedError` instead + const client = await AdbScrcpyClient.start(adb, path, options); + + // If the server didn't exit, manually stop it and throw an error + await client.close(); + throw new Error("Unexpected server output"); + } catch (e) { + if (e instanceof AdbScrcpyExitedError) { + if (e.output[0]?.startsWith("[server] ERROR:")) { + throw e; + } + + const encoders: ScrcpyEncoder[] = []; + for (const line of e.output) { + const encoder = options.parseEncoder(line); + if (encoder) { + encoders.push(encoder); + } + } + return encoders; + } + + throw e; + } +} diff --git a/libraries/adb-scrcpy/src/2_0/impl/index.ts b/libraries/adb-scrcpy/src/2_0/impl/index.ts new file mode 100644 index 00000000..99f375e4 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_0/impl/index.ts @@ -0,0 +1,3 @@ +export * from "../../1_22/impl/index.js"; +export { createConnection } from "./create-connection.js"; +export { getEncoders } from "./get-encoders.js"; diff --git a/libraries/adb-scrcpy/src/2_0/index.ts b/libraries/adb-scrcpy/src/2_0/index.ts new file mode 100644 index 00000000..e9939706 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_0/index.ts @@ -0,0 +1 @@ +export * from "./options.js"; diff --git a/libraries/adb-scrcpy/src/2_0/options.ts b/libraries/adb-scrcpy/src/2_0/options.ts new file mode 100644 index 00000000..18a0d13d --- /dev/null +++ b/libraries/adb-scrcpy/src/2_0/options.ts @@ -0,0 +1,30 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_0 } from "@yume-chan/scrcpy"; + +import type { AdbScrcpyConnection } from "../connection.js"; +import { AdbScrcpyOptions } from "../types.js"; + +import { createConnection, getDisplays, getEncoders } from "./impl/index.js"; + +export class AdbScrcpyOptions2_0 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_0.Init, version?: string) { + super(new ScrcpyOptions2_0(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_0 { + export type Init = ScrcpyOptions2_0.Init; +} diff --git a/libraries/adb-scrcpy/src/2_1/impl/create-connection.ts b/libraries/adb-scrcpy/src/2_1/impl/create-connection.ts new file mode 100644 index 00000000..64cb6023 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_1/impl/create-connection.ts @@ -0,0 +1,40 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyOptions2_1 } from "@yume-chan/scrcpy"; +import { toScrcpyOptionValue } from "@yume-chan/scrcpy"; + +import type { + AdbScrcpyConnection, + AdbScrcpyConnectionOptions, +} from "../../connection.js"; +import { + AdbScrcpyForwardConnection, + AdbScrcpyReverseConnection, +} from "../../connection.js"; + +export function createConnection( + adb: Adb, + options: Required< + Pick< + ScrcpyOptions2_1.Init, + | "tunnelForward" + | "control" + | "sendDummyByte" + | "scid" + | "audio" + | "video" + > + >, +): AdbScrcpyConnection { + const connectionOptions: AdbScrcpyConnectionOptions = { + scid: toScrcpyOptionValue(options.scid, undefined), + video: options.video, + audio: options.audio, + control: options.control, + sendDummyByte: options.sendDummyByte, + }; + if (options.tunnelForward) { + return new AdbScrcpyForwardConnection(adb, connectionOptions); + } else { + return new AdbScrcpyReverseConnection(adb, connectionOptions); + } +} diff --git a/libraries/adb-scrcpy/src/2_1/impl/index.ts b/libraries/adb-scrcpy/src/2_1/impl/index.ts new file mode 100644 index 00000000..7b2a9e32 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_1/impl/index.ts @@ -0,0 +1,2 @@ +export * from "../../2_0/impl/index.js"; +export { createConnection } from "./create-connection.js"; diff --git a/libraries/adb-scrcpy/src/2_1/index.ts b/libraries/adb-scrcpy/src/2_1/index.ts new file mode 100644 index 00000000..e9939706 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_1/index.ts @@ -0,0 +1 @@ +export * from "./options.js"; diff --git a/libraries/adb-scrcpy/src/2_1/options.ts b/libraries/adb-scrcpy/src/2_1/options.ts new file mode 100644 index 00000000..b8dc8818 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_1/options.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "../2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "../connection.js"; +import { AdbScrcpyOptions } from "../types.js"; + +export class AdbScrcpyOptions2_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_1.Init, version?: string) { + super(new ScrcpyOptions2_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_1 { + export type Init = ScrcpyOptions2_1.Init; +} diff --git a/libraries/adb-scrcpy/src/2_1_1.ts b/libraries/adb-scrcpy/src/2_1_1.ts new file mode 100644 index 00000000..231a7248 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_1_1.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_1_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_1_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_1_1.Init, version?: string) { + super(new ScrcpyOptions2_1_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_1_1 { + export type Init = ScrcpyOptions2_1_1.Init; +} diff --git a/libraries/adb-scrcpy/src/2_2.ts b/libraries/adb-scrcpy/src/2_2.ts new file mode 100644 index 00000000..2f41915d --- /dev/null +++ b/libraries/adb-scrcpy/src/2_2.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_2 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_2 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_2.Init, version?: string) { + super(new ScrcpyOptions2_2(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_2 { + export type Init = ScrcpyOptions2_2.Init; +} diff --git a/libraries/adb-scrcpy/src/2_3.ts b/libraries/adb-scrcpy/src/2_3.ts new file mode 100644 index 00000000..f8ca3b1e --- /dev/null +++ b/libraries/adb-scrcpy/src/2_3.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_3 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_3 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_3.Init, version?: string) { + super(new ScrcpyOptions2_3(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_3 { + export type Init = ScrcpyOptions2_3.Init; +} diff --git a/libraries/adb-scrcpy/src/2_3_1.ts b/libraries/adb-scrcpy/src/2_3_1.ts new file mode 100644 index 00000000..14e029cd --- /dev/null +++ b/libraries/adb-scrcpy/src/2_3_1.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_3_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_3_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_3_1.Init, version?: string) { + super(new ScrcpyOptions2_3_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_3_1 { + export type Init = ScrcpyOptions2_3_1.Init; +} diff --git a/libraries/adb-scrcpy/src/2_4.ts b/libraries/adb-scrcpy/src/2_4.ts new file mode 100644 index 00000000..7f522516 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_4.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_4 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_4 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_4.Init, version?: string) { + super(new ScrcpyOptions2_4(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_4 { + export type Init = ScrcpyOptions2_4.Init; +} diff --git a/libraries/adb-scrcpy/src/2_5.ts b/libraries/adb-scrcpy/src/2_5.ts new file mode 100644 index 00000000..1f864314 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_5.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_5 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_5 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_5.Init, version?: string) { + super(new ScrcpyOptions2_5(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_5 { + export type Init = ScrcpyOptions2_5.Init; +} diff --git a/libraries/adb-scrcpy/src/2_6.ts b/libraries/adb-scrcpy/src/2_6.ts new file mode 100644 index 00000000..a5cfd509 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_6.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_6 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_6 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_6.Init, version?: string) { + super(new ScrcpyOptions2_6(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_6 { + export type Init = ScrcpyOptions2_6.Init; +} diff --git a/libraries/adb-scrcpy/src/2_7.ts b/libraries/adb-scrcpy/src/2_7.ts new file mode 100644 index 00000000..45c998f8 --- /dev/null +++ b/libraries/adb-scrcpy/src/2_7.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions2_7 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions2_7 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions2_7.Init, version?: string) { + super(new ScrcpyOptions2_7(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions2_7 { + export type Init = ScrcpyOptions2_7.Init; +} diff --git a/libraries/adb-scrcpy/src/3_0.ts b/libraries/adb-scrcpy/src/3_0.ts new file mode 100644 index 00000000..3fb7e03f --- /dev/null +++ b/libraries/adb-scrcpy/src/3_0.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions3_0 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions3_0 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions3_0.Init, version?: string) { + super(new ScrcpyOptions3_0(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions3_0 { + export type Init = ScrcpyOptions3_0.Init; +} diff --git a/libraries/adb-scrcpy/src/3_0_1.ts b/libraries/adb-scrcpy/src/3_0_1.ts new file mode 100644 index 00000000..28671a11 --- /dev/null +++ b/libraries/adb-scrcpy/src/3_0_1.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions3_0_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions3_0_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions3_0_1.Init, version?: string) { + super(new ScrcpyOptions3_0_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions3_0_1 { + export type Init = ScrcpyOptions3_0_1.Init; +} diff --git a/libraries/adb-scrcpy/src/3_0_2.ts b/libraries/adb-scrcpy/src/3_0_2.ts new file mode 100644 index 00000000..c666ac3d --- /dev/null +++ b/libraries/adb-scrcpy/src/3_0_2.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions3_0_2 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions3_0_2 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions3_0_2.Init, version?: string) { + super(new ScrcpyOptions3_0_2(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions3_0_2 { + export type Init = ScrcpyOptions3_0_2.Init; +} diff --git a/libraries/adb-scrcpy/src/3_1.ts b/libraries/adb-scrcpy/src/3_1.ts new file mode 100644 index 00000000..5a38e207 --- /dev/null +++ b/libraries/adb-scrcpy/src/3_1.ts @@ -0,0 +1,33 @@ +import type { Adb } from "@yume-chan/adb"; +import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; +import { ScrcpyOptions3_1 } from "@yume-chan/scrcpy"; + +import { + createConnection, + getDisplays, + getEncoders, +} from "./2_1/impl/index.js"; +import type { AdbScrcpyConnection } from "./connection.js"; +import { AdbScrcpyOptions } from "./types.js"; + +export class AdbScrcpyOptions3_1 extends AdbScrcpyOptions { + constructor(init: ScrcpyOptions3_1.Init, version?: string) { + super(new ScrcpyOptions3_1(init, version)); + } + + override getEncoders(adb: Adb, path: string): Promise { + return getEncoders(adb, path, this); + } + + override getDisplays(adb: Adb, path: string): Promise { + return getDisplays(adb, path, this); + } + + override createConnection(adb: Adb): AdbScrcpyConnection { + return createConnection(adb, this.value); + } +} + +export namespace AdbScrcpyOptions3_1 { + export type Init = ScrcpyOptions3_1.Init; +} diff --git a/libraries/adb-scrcpy/src/client.ts b/libraries/adb-scrcpy/src/client.ts index dc866fc4..330cbce6 100644 --- a/libraries/adb-scrcpy/src/client.ts +++ b/libraries/adb-scrcpy/src/client.ts @@ -39,7 +39,7 @@ import { import { ExactReadableEndedError } from "@yume-chan/struct"; import type { AdbScrcpyConnection } from "./connection.js"; -import type { AdbScrcpyOptions } from "./options/index.js"; +import type { AdbScrcpyOptions } from "./types.js"; function arrayToStream(array: T[]): ReadableStream { return new PushReadableStream(async (controller) => { diff --git a/libraries/adb-scrcpy/src/index.ts b/libraries/adb-scrcpy/src/index.ts index 6a95ebdd..e8902c84 100644 --- a/libraries/adb-scrcpy/src/index.ts +++ b/libraries/adb-scrcpy/src/index.ts @@ -1,3 +1,27 @@ +export * from "./1_15/index.js"; +export * from "./1_15_1.js"; +export * from "./1_16.js"; +export * from "./1_17.js"; +export * from "./1_18.js"; +export * from "./1_19.js"; +export * from "./1_20.js"; +export * from "./1_21.js"; +export * from "./1_22/index.js"; +export * from "./1_23.js"; +export * from "./1_24.js"; +export * from "./1_25.js"; +export * from "./2_0/index.js"; +export * from "./2_1/index.js"; +export * from "./2_2.js"; +export * from "./2_3.js"; +export * from "./2_4.js"; +export * from "./2_5.js"; +export * from "./2_6.js"; +export * from "./2_7.js"; +export * from "./3_0.js"; +export * from "./3_0_1.js"; +export * from "./3_0_2.js"; +export * from "./3_1.js"; export * from "./client.js"; export * from "./connection.js"; -export * from "./options/index.js"; +export * from "./latest.js"; diff --git a/libraries/adb-scrcpy/src/latest.ts b/libraries/adb-scrcpy/src/latest.ts new file mode 100644 index 00000000..266ecd09 --- /dev/null +++ b/libraries/adb-scrcpy/src/latest.ts @@ -0,0 +1,11 @@ +import { AdbScrcpyOptions3_1 } from "./3_1.js"; + +export class AdbScrcpyOptionsLatest extends AdbScrcpyOptions3_1 { + constructor(init: AdbScrcpyOptions3_1.Init, version: string) { + super(init, version); + } +} + +export namespace AdbScrcpyOptionsLatest { + export type Init = AdbScrcpyOptions3_1.Init; +} diff --git a/libraries/adb-scrcpy/src/options/1_16.ts b/libraries/adb-scrcpy/src/options/1_16.ts deleted file mode 100644 index ec58ccdd..00000000 --- a/libraries/adb-scrcpy/src/options/1_16.ts +++ /dev/null @@ -1,120 +0,0 @@ -import type { Adb } from "@yume-chan/adb"; -import type { - ScrcpyDisplay, - ScrcpyEncoder, - ScrcpyOptions1_16Impl, -} from "@yume-chan/scrcpy"; -import { WritableStream } from "@yume-chan/stream-extra"; - -import { AdbScrcpyClient, AdbScrcpyExitedError } from "../client.js"; -import type { - AdbScrcpyConnection, - AdbScrcpyConnectionOptions, -} from "../connection.js"; -import { - AdbScrcpyForwardConnection, - AdbScrcpyReverseConnection, -} from "../connection.js"; - -import { AdbScrcpyOptions } from "./types.js"; - -export class AdbScrcpyOptions1_16 extends AdbScrcpyOptions< - // Only pick options that are used in this class, - // so changes in `ScrcpyOptionsInitX_XX` won't affect type assignability with this class - Pick -> { - static createConnection( - adb: Adb, - connectionOptions: AdbScrcpyConnectionOptions, - tunnelForward: boolean, - ): AdbScrcpyConnection { - if (tunnelForward) { - return new AdbScrcpyForwardConnection(adb, connectionOptions); - } else { - return new AdbScrcpyReverseConnection(adb, connectionOptions); - } - } - - static async getEncoders( - adb: Adb, - path: string, - options: AdbScrcpyOptions< - Pick - >, - ): Promise { - const client = await AdbScrcpyClient.start(adb, path, options); - - const encoders: ScrcpyEncoder[] = []; - - // `client.stdout` is supplied by user and may not support async iteration - await client.stdout.pipeTo( - new WritableStream({ - write: (line) => { - const encoder = options.parseEncoder(line); - if (encoder) { - encoders.push(encoder); - } - }, - }), - ); - - return encoders; - } - - static async getDisplays( - adb: Adb, - path: string, - options: AdbScrcpyOptions< - Pick - >, - ): Promise { - try { - // Server will exit before opening connections when an invalid display id was given - // so `start` will throw an `AdbScrcpyExitedError` - const client = await AdbScrcpyClient.start(adb, path, options); - - // If the server didn't exit, manually stop it and throw an error - await client.close(); - throw new Error("Unexpected server output"); - } catch (e) { - if (e instanceof AdbScrcpyExitedError) { - if (e.output[0]?.startsWith("[server] ERROR:")) { - throw e; - } - - const displays: ScrcpyDisplay[] = []; - for (const line of e.output) { - const display = options.parseDisplay(line); - if (display) { - displays.push(display); - } - } - return displays; - } - - throw e; - } - } - - override getEncoders(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getEncoders(adb, path, this); - } - - override getDisplays(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getDisplays(adb, path, this); - } - - override createConnection(adb: Adb): AdbScrcpyConnection { - return AdbScrcpyOptions1_16.createConnection( - adb, - { - scid: undefined, // Not Supported - video: true, // Always enabled - audio: false, // Not Supported - control: true, // Always enabled even when `--no-control` is specified - sendDummyByte: true, // Always enabled - }, - this.value.tunnelForward, - ); - } -} diff --git a/libraries/adb-scrcpy/src/options/1_22.ts b/libraries/adb-scrcpy/src/options/1_22.ts deleted file mode 100644 index 513c4e8c..00000000 --- a/libraries/adb-scrcpy/src/options/1_22.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { Adb } from "@yume-chan/adb"; -import type { - ScrcpyDisplay, - ScrcpyEncoder, - ScrcpyOptions1_22Impl, -} from "@yume-chan/scrcpy"; - -import type { AdbScrcpyConnection } from "../connection.js"; - -import { AdbScrcpyOptions1_16 } from "./1_16.js"; -import { AdbScrcpyOptions } from "./types.js"; - -export class AdbScrcpyOptions1_22 extends AdbScrcpyOptions< - // Only pick options that are used in this class, - // so changes in `ScrcpyOptionsInitX_XX` won't affect type assignability with this class - Pick< - ScrcpyOptions1_22Impl.Init, - "tunnelForward" | "control" | "sendDummyByte" - > -> { - override getEncoders(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getEncoders(adb, path, this); - } - - override getDisplays(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getDisplays(adb, path, this); - } - - override createConnection(adb: Adb): AdbScrcpyConnection { - return AdbScrcpyOptions1_16.createConnection( - adb, - { - scid: undefined, // Not Supported - video: true, // Always enabled - audio: false, // Not Supported - control: this.value.control, - sendDummyByte: this.value.sendDummyByte, - }, - this.value.tunnelForward, - ); - } -} diff --git a/libraries/adb-scrcpy/src/options/2_0.ts b/libraries/adb-scrcpy/src/options/2_0.ts deleted file mode 100644 index 61b6fc45..00000000 --- a/libraries/adb-scrcpy/src/options/2_0.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { Adb } from "@yume-chan/adb"; -import type { - ScrcpyDisplay, - ScrcpyEncoder, - ScrcpyOptions1_16Impl, - ScrcpyOptions2_0Impl, -} from "@yume-chan/scrcpy"; -import { toScrcpyOptionValue } from "@yume-chan/scrcpy"; - -import { AdbScrcpyClient, AdbScrcpyExitedError } from "../client.js"; -import type { AdbScrcpyConnection } from "../connection.js"; - -import { AdbScrcpyOptions1_16 } from "./1_16.js"; -import { AdbScrcpyOptions } from "./types.js"; - -export class AdbScrcpyOptions2_0 extends AdbScrcpyOptions< - // Only pick options that are used in this class, - // so changes in `ScrcpyOptionsInitX_XX` won't affect type assignability with this class - Pick< - ScrcpyOptions2_0Impl.Init, - "tunnelForward" | "control" | "sendDummyByte" | "scid" | "audio" - > -> { - static async getEncoders( - adb: Adb, - path: string, - options: AdbScrcpyOptions< - Pick - >, - ): Promise { - try { - // Similar to `AdbScrcpyOptions1_16.getDisplays`, - // server start procedure won't complete and `start `will throw - const client = await AdbScrcpyClient.start(adb, path, options); - - // If the server didn't exit, manually stop it and throw an error - await client.close(); - throw new Error("Unexpected server output"); - } catch (e) { - if (e instanceof AdbScrcpyExitedError) { - const encoders: ScrcpyEncoder[] = []; - for (const line of e.output) { - const encoder = options.parseEncoder(line); - if (encoder) { - encoders.push(encoder); - } - } - return encoders; - } - - throw e; - } - } - - override async getEncoders( - adb: Adb, - path: string, - ): Promise { - return AdbScrcpyOptions2_0.getEncoders(adb, path, this); - } - - override getDisplays(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getDisplays(adb, path, this); - } - - override createConnection(adb: Adb): AdbScrcpyConnection { - return AdbScrcpyOptions1_16.createConnection( - adb, - { - scid: toScrcpyOptionValue(this.value.scid, undefined), - video: true, // Always enabled - audio: this.value.audio, - control: this.value.control, - sendDummyByte: this.value.sendDummyByte, - }, - this.value.tunnelForward, - ); - } -} diff --git a/libraries/adb-scrcpy/src/options/2_1.ts b/libraries/adb-scrcpy/src/options/2_1.ts deleted file mode 100644 index a08bb90b..00000000 --- a/libraries/adb-scrcpy/src/options/2_1.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Adb } from "@yume-chan/adb"; -import type { - ScrcpyDisplay, - ScrcpyEncoder, - ScrcpyOptions2_1Impl, -} from "@yume-chan/scrcpy"; -import { toScrcpyOptionValue } from "@yume-chan/scrcpy"; - -import type { AdbScrcpyConnection } from "../connection.js"; - -import { AdbScrcpyOptions1_16 } from "./1_16.js"; -import { AdbScrcpyOptions2_0 } from "./2_0.js"; -import { AdbScrcpyOptions } from "./types.js"; - -export class AdbScrcpyOptions2_1 extends AdbScrcpyOptions< - // Only pick options that are used in this class, - // so changes in `ScrcpyOptionsInitX_XX` won't affect type assignability with this class - Pick< - ScrcpyOptions2_1Impl.Init, - | "tunnelForward" - | "control" - | "sendDummyByte" - | "scid" - | "audio" - | "video" - > -> { - override async getEncoders( - adb: Adb, - path: string, - ): Promise { - return AdbScrcpyOptions2_0.getEncoders(adb, path, this); - } - - override getDisplays(adb: Adb, path: string): Promise { - return AdbScrcpyOptions1_16.getDisplays(adb, path, this); - } - - override createConnection(adb: Adb): AdbScrcpyConnection { - return AdbScrcpyOptions1_16.createConnection( - adb, - { - scid: toScrcpyOptionValue(this.value.scid, undefined), - video: this.value.video, - audio: this.value.audio, - control: this.value.control, - sendDummyByte: this.value.sendDummyByte, - }, - this.value.tunnelForward, - ); - } -} diff --git a/libraries/adb-scrcpy/src/options/index.ts b/libraries/adb-scrcpy/src/options/index.ts deleted file mode 100644 index 2473d599..00000000 --- a/libraries/adb-scrcpy/src/options/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./1_16.js"; -export * from "./1_22.js"; -export * from "./2_0.js"; -export * from "./2_1.js"; -export * from "./latest.js"; -export * from "./types.js"; diff --git a/libraries/adb-scrcpy/src/options/latest.ts b/libraries/adb-scrcpy/src/options/latest.ts deleted file mode 100644 index abbd9125..00000000 --- a/libraries/adb-scrcpy/src/options/latest.ts +++ /dev/null @@ -1 +0,0 @@ -export { AdbScrcpyOptions2_1 as AdbScrcpyOptionsLatest } from "./2_1.js"; diff --git a/libraries/adb-scrcpy/src/options/types.ts b/libraries/adb-scrcpy/src/types.ts similarity index 88% rename from libraries/adb-scrcpy/src/options/types.ts rename to libraries/adb-scrcpy/src/types.ts index 76b68178..96438030 100644 --- a/libraries/adb-scrcpy/src/options/types.ts +++ b/libraries/adb-scrcpy/src/types.ts @@ -2,7 +2,7 @@ import type { Adb } from "@yume-chan/adb"; import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy"; import { ScrcpyOptionsWrapper } from "@yume-chan/scrcpy"; -import type { AdbScrcpyConnection } from "../connection.js"; +import type { AdbScrcpyConnection } from "./connection.js"; export abstract class AdbScrcpyOptions< T extends object, diff --git a/libraries/scrcpy/src/1_15/index.ts b/libraries/scrcpy/src/1_15/index.ts index 6062d068..e9939706 100644 --- a/libraries/scrcpy/src/1_15/index.ts +++ b/libraries/scrcpy/src/1_15/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_15Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_15_1.ts b/libraries/scrcpy/src/1_15_1.ts index 1146a21b..3812630f 100644 --- a/libraries/scrcpy/src/1_15_1.ts +++ b/libraries/scrcpy/src/1_15_1.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions1_15_1 extends ScrcpyOptions1_15 { } } -export { ScrcpyOptions1_15Impl as ScrcpyOptions1_15_1Impl } from "./1_15/index.js"; +export namespace ScrcpyOptions1_15_1 { + export type Init = ScrcpyOptions1_15.Init; +} diff --git a/libraries/scrcpy/src/1_16.ts b/libraries/scrcpy/src/1_16.ts index 4d8e4475..58f76711 100644 --- a/libraries/scrcpy/src/1_16.ts +++ b/libraries/scrcpy/src/1_16.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions1_15 { } } -export { ScrcpyOptions1_15Impl as ScrcpyOptions1_16Impl } from "./1_15/index.js"; +export namespace ScrcpyOptions1_16 { + export type Init = ScrcpyOptions1_15.Init; +} diff --git a/libraries/scrcpy/src/1_17/index.ts b/libraries/scrcpy/src/1_17/index.ts index b45b9a7b..e9939706 100644 --- a/libraries/scrcpy/src/1_17/index.ts +++ b/libraries/scrcpy/src/1_17/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_17Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_18/index.ts b/libraries/scrcpy/src/1_18/index.ts index a1c44dde..e9939706 100644 --- a/libraries/scrcpy/src/1_18/index.ts +++ b/libraries/scrcpy/src/1_18/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_18Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_19.ts b/libraries/scrcpy/src/1_19.ts index 1fa5573a..7851a343 100644 --- a/libraries/scrcpy/src/1_19.ts +++ b/libraries/scrcpy/src/1_19.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions1_19 extends ScrcpyOptions1_18 { } } -export { ScrcpyOptions1_18Impl as ScrcpyOptions1_19Impl } from "./1_18/index.js"; +export namespace ScrcpyOptions1_19 { + export type Init = ScrcpyOptions1_18.Init; +} diff --git a/libraries/scrcpy/src/1_20.ts b/libraries/scrcpy/src/1_20.ts index b2c8d739..2f7c800d 100644 --- a/libraries/scrcpy/src/1_20.ts +++ b/libraries/scrcpy/src/1_20.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions1_20 extends ScrcpyOptions1_18 { } } -export { ScrcpyOptions1_18Impl as ScrcpyOptions1_20Impl } from "./1_18/index.js"; +export namespace ScrcpyOptions1_20 { + export type Init = ScrcpyOptions1_18.Init; +} diff --git a/libraries/scrcpy/src/1_21/index.ts b/libraries/scrcpy/src/1_21/index.ts index 2bd6404a..e9939706 100644 --- a/libraries/scrcpy/src/1_21/index.ts +++ b/libraries/scrcpy/src/1_21/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_21Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_22/index.ts b/libraries/scrcpy/src/1_22/index.ts index a237fa3b..e9939706 100644 --- a/libraries/scrcpy/src/1_22/index.ts +++ b/libraries/scrcpy/src/1_22/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_22Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_23/index.ts b/libraries/scrcpy/src/1_23/index.ts index b789fe95..e9939706 100644 --- a/libraries/scrcpy/src/1_23/index.ts +++ b/libraries/scrcpy/src/1_23/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_23Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_24/index.ts b/libraries/scrcpy/src/1_24/index.ts index cc97ae8f..e9939706 100644 --- a/libraries/scrcpy/src/1_24/index.ts +++ b/libraries/scrcpy/src/1_24/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_24Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/1_25/index.ts b/libraries/scrcpy/src/1_25/index.ts index c3687a5a..e9939706 100644 --- a/libraries/scrcpy/src/1_25/index.ts +++ b/libraries/scrcpy/src/1_25/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions1_25Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_0/index.ts b/libraries/scrcpy/src/2_0/index.ts index da86c22f..e9939706 100644 --- a/libraries/scrcpy/src/2_0/index.ts +++ b/libraries/scrcpy/src/2_0/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_0Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_1/index.ts b/libraries/scrcpy/src/2_1/index.ts index 20801630..e9939706 100644 --- a/libraries/scrcpy/src/2_1/index.ts +++ b/libraries/scrcpy/src/2_1/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_1Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_1_1.ts b/libraries/scrcpy/src/2_1_1.ts index a9d753f2..8cb232ec 100644 --- a/libraries/scrcpy/src/2_1_1.ts +++ b/libraries/scrcpy/src/2_1_1.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions2_1_1 extends ScrcpyOptions2_1 { } } -export { ScrcpyOptions2_1Impl as ScrcpyOptions2_1_1Impl } from "./2_1/index.js"; +export namespace ScrcpyOptions2_1_1 { + export type Init = ScrcpyOptions2_1.Init; +} diff --git a/libraries/scrcpy/src/2_2/index.ts b/libraries/scrcpy/src/2_2/index.ts index b74a1ecb..e9939706 100644 --- a/libraries/scrcpy/src/2_2/index.ts +++ b/libraries/scrcpy/src/2_2/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_2Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_3/index.ts b/libraries/scrcpy/src/2_3/index.ts index 62ac68a4..e9939706 100644 --- a/libraries/scrcpy/src/2_3/index.ts +++ b/libraries/scrcpy/src/2_3/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_3Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_3_1.ts b/libraries/scrcpy/src/2_3_1.ts index 05673943..e5670c9f 100644 --- a/libraries/scrcpy/src/2_3_1.ts +++ b/libraries/scrcpy/src/2_3_1.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions2_3_1 extends ScrcpyOptions2_3 { } } -export { ScrcpyOptions2_3Impl as ScrcpyOptions2_3_1Impl } from "./2_3/index.js"; +export namespace ScrcpyOptions2_3_1 { + export type Init = ScrcpyOptions2_3.Init; +} diff --git a/libraries/scrcpy/src/2_4/index.ts b/libraries/scrcpy/src/2_4/index.ts index f5a3cf5d..e9939706 100644 --- a/libraries/scrcpy/src/2_4/index.ts +++ b/libraries/scrcpy/src/2_4/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_4Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_5.ts b/libraries/scrcpy/src/2_5.ts index ef113306..990e5dd4 100644 --- a/libraries/scrcpy/src/2_5.ts +++ b/libraries/scrcpy/src/2_5.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions2_5 extends ScrcpyOptions2_4 { } } -export { ScrcpyOptions2_4Impl as ScrcpyOptions2_5Impl } from "./2_4/index.js"; +export namespace ScrcpyOptions2_5 { + export type Init = ScrcpyOptions2_4.Init; +} diff --git a/libraries/scrcpy/src/2_6/index.ts b/libraries/scrcpy/src/2_6/index.ts index 453e213f..e9939706 100644 --- a/libraries/scrcpy/src/2_6/index.ts +++ b/libraries/scrcpy/src/2_6/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_6Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/2_6_1.ts b/libraries/scrcpy/src/2_6_1.ts index 5565dba7..aae1842e 100644 --- a/libraries/scrcpy/src/2_6_1.ts +++ b/libraries/scrcpy/src/2_6_1.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions2_6_1 extends ScrcpyOptions2_6 { } } -export { ScrcpyOptions2_6Impl as ScrcpyOptions2_6_1Impl } from "./2_6/index.js"; +export namespace ScrcpyOptions2_6_1 { + export type Init = ScrcpyOptions2_6.Init; +} diff --git a/libraries/scrcpy/src/2_7/index.ts b/libraries/scrcpy/src/2_7/index.ts index 9cb9867d..e9939706 100644 --- a/libraries/scrcpy/src/2_7/index.ts +++ b/libraries/scrcpy/src/2_7/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions2_7Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/3_0/index.ts b/libraries/scrcpy/src/3_0/index.ts index e1df529f..e9939706 100644 --- a/libraries/scrcpy/src/3_0/index.ts +++ b/libraries/scrcpy/src/3_0/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions3_0Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/3_0_1.ts b/libraries/scrcpy/src/3_0_1.ts index 74b7f3fe..4645d4ef 100644 --- a/libraries/scrcpy/src/3_0_1.ts +++ b/libraries/scrcpy/src/3_0_1.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions3_0_1 extends ScrcpyOptions3_0 { } } -export { ScrcpyOptions3_0Impl as ScrcpyOptions3_0_1Impl } from "./3_0/index.js"; +export namespace ScrcpyOptions3_0_1 { + export type Init = ScrcpyOptions3_0.Init; +} diff --git a/libraries/scrcpy/src/3_0_2.ts b/libraries/scrcpy/src/3_0_2.ts index 0d1d787a..6989e4cb 100644 --- a/libraries/scrcpy/src/3_0_2.ts +++ b/libraries/scrcpy/src/3_0_2.ts @@ -6,4 +6,6 @@ export class ScrcpyOptions3_0_2 extends ScrcpyOptions3_0 { } } -export { ScrcpyOptions3_0Impl as ScrcpyOptions3_0_2Impl } from "./3_0/index.js"; +export namespace ScrcpyOptions3_0_2 { + export type Init = ScrcpyOptions3_0.Init; +} diff --git a/libraries/scrcpy/src/3_1/index.ts b/libraries/scrcpy/src/3_1/index.ts index 38426e54..e9939706 100644 --- a/libraries/scrcpy/src/3_1/index.ts +++ b/libraries/scrcpy/src/3_1/index.ts @@ -1,2 +1 @@ -export * as ScrcpyOptions3_1Impl from "./impl/index.js"; export * from "./options.js"; diff --git a/libraries/scrcpy/src/latest.ts b/libraries/scrcpy/src/latest.ts index 7559039d..73412232 100644 --- a/libraries/scrcpy/src/latest.ts +++ b/libraries/scrcpy/src/latest.ts @@ -6,7 +6,9 @@ export class ScrcpyOptionsLatest extends ScrcpyOptions3_1 { } } -export { ScrcpyOptions3_1Impl as ScrcpyOptionsLatestImpl } from "./3_1/index.js"; +export namespace ScrcpyOptionsLatest { + export type Init = ScrcpyOptions3_1.Init; +} export { BackOrScreenOnControlMessage as ScrcpyBackOrScreenOnControlMessage,