@linkshell/host 0.4.44 → 0.4.46
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/host/src/drivers/acp/connection.js +2 -7
- package/dist/host/src/drivers/acp/connection.js.map +1 -1
- package/dist/host/src/drivers/acp/driver.js +2 -4
- package/dist/host/src/drivers/acp/driver.js.map +1 -1
- package/dist/host/src/drivers/auth.js +1 -3
- package/dist/host/src/drivers/auth.js.map +1 -1
- package/dist/host/src/drivers/claude/driver.js +23 -11
- package/dist/host/src/drivers/claude/driver.js.map +1 -1
- package/dist/host/src/drivers/codex/app-server.d.ts +6 -0
- package/dist/host/src/drivers/codex/app-server.js +44 -21
- package/dist/host/src/drivers/codex/app-server.js.map +1 -1
- package/dist/host/src/drivers/codex/driver.d.ts +1 -0
- package/dist/host/src/drivers/codex/driver.js +11 -7
- package/dist/host/src/drivers/codex/driver.js.map +1 -1
- package/dist/host/src/drivers/codex/installation.d.ts +2 -0
- package/dist/host/src/drivers/codex/installation.js +29 -0
- package/dist/host/src/drivers/codex/installation.js.map +1 -0
- package/dist/host/src/fs.d.ts +13 -0
- package/dist/host/src/fs.js +29 -2
- package/dist/host/src/fs.js.map +1 -1
- package/dist/host/src/host.d.ts +1 -0
- package/dist/host/src/host.js +6 -4
- package/dist/host/src/host.js.map +1 -1
- package/dist/host/src/input.d.ts +29 -2
- package/dist/host/src/input.js +113 -5
- package/dist/host/src/input.js.map +1 -1
- package/dist/host/src/local-transport.d.ts +5 -0
- package/dist/host/src/local-transport.js +22 -0
- package/dist/host/src/local-transport.js.map +1 -0
- package/dist/host/src/ports.js +10 -1
- package/dist/host/src/ports.js.map +1 -1
- package/dist/host/src/process.d.ts +12 -0
- package/dist/host/src/process.js +59 -0
- package/dist/host/src/process.js.map +1 -0
- package/dist/host/src/rpc/client.js +2 -3
- package/dist/host/src/rpc/client.js.map +1 -1
- package/dist/host/src/rpc/server.d.ts +1 -0
- package/dist/host/src/rpc/server.js +12 -3
- package/dist/host/src/rpc/server.js.map +1 -1
- package/dist/host/src/screen-h264.d.ts +15 -0
- package/dist/host/src/screen-h264.js +88 -0
- package/dist/host/src/screen-h264.js.map +1 -0
- package/dist/host/src/screen-pacer.d.ts +7 -1
- package/dist/host/src/screen-pacer.js +11 -5
- package/dist/host/src/screen-pacer.js.map +1 -1
- package/dist/host/src/screen-session.d.ts +35 -0
- package/dist/host/src/screen-session.js +26 -0
- package/dist/host/src/screen-session.js.map +1 -0
- package/dist/host/src/screen-viewer.d.ts +1 -1
- package/dist/host/src/screen-viewer.js +373 -42
- package/dist/host/src/screen-viewer.js.map +1 -1
- package/dist/host/src/screen.d.ts +3 -1
- package/dist/host/src/screen.js +560 -165
- package/dist/host/src/screen.js.map +1 -1
- package/dist/host/src/terminals.js +6 -3
- package/dist/host/src/terminals.js.map +1 -1
- package/dist/host/src/windows-screen.d.ts +38 -0
- package/dist/host/src/windows-screen.js +80 -0
- package/dist/host/src/windows-screen.js.map +1 -0
- package/dist/host/src/windows-video.d.ts +78 -0
- package/dist/host/src/windows-video.js +368 -0
- package/dist/host/src/windows-video.js.map +1 -0
- package/dist/host/src/worktrees.js +2 -2
- package/dist/host/src/worktrees.js.map +1 -1
- package/dist/host/tsconfig.tsbuildinfo +1 -1
- package/dist/wire/src/rpc.d.ts +49 -0
- package/dist/wire/src/rpc.js +18 -0
- package/dist/wire/src/rpc.js.map +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import crossSpawn from "cross-spawn";
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
/** Windows npm shims need cmd.exe quoting; raw shell:true would reinterpret user arguments. */
|
|
5
|
+
export const spawnAgent = (command, args, options = {}) => crossSpawn(command, args, { windowsHide: true, ...options });
|
|
6
|
+
/** npm's Windows shim owns a cmd.exe parent; killing only that parent leaks the agent. */
|
|
7
|
+
export async function stopAgent(child) {
|
|
8
|
+
if (!child.pid || child.exitCode !== null || child.signalCode !== null)
|
|
9
|
+
return;
|
|
10
|
+
if (process.platform === "win32") {
|
|
11
|
+
await new Promise(resolve => {
|
|
12
|
+
execFile(join(process.env.SystemRoot || "C:\\Windows", "System32/taskkill.exe"), ["/pid", String(child.pid), "/T", "/F"], { windowsHide: true, timeout: 5000 }, () => {
|
|
13
|
+
if (child.exitCode === null && child.signalCode === null)
|
|
14
|
+
child.kill();
|
|
15
|
+
resolve();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
await new Promise(resolve => {
|
|
21
|
+
const timer = setTimeout(() => { child.kill("SIGKILL"); resolve(); }, 3000);
|
|
22
|
+
child.once("exit", () => { clearTimeout(timer); resolve(); });
|
|
23
|
+
child.kill("SIGTERM");
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export function probeAgent(command, args, options = {}) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const child = spawnAgent(command, args, { env: options.env, stdio: ["ignore", "pipe", "pipe"] });
|
|
29
|
+
let stdout = "", stderr = "", finished = false;
|
|
30
|
+
const finish = (error, terminate = false) => {
|
|
31
|
+
if (finished)
|
|
32
|
+
return;
|
|
33
|
+
finished = true;
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
const settle = () => { if (error)
|
|
36
|
+
reject(Object.assign(error, { stdout, stderr }));
|
|
37
|
+
else
|
|
38
|
+
resolve({ stdout, stderr }); };
|
|
39
|
+
if (terminate)
|
|
40
|
+
void stopAgent(child).finally(settle);
|
|
41
|
+
else
|
|
42
|
+
settle();
|
|
43
|
+
};
|
|
44
|
+
const timer = setTimeout(() => finish(new Error(`${command} timed out`), true), options.timeout ?? 15_000);
|
|
45
|
+
const read = (buffer, which) => {
|
|
46
|
+
if (which === "stdout")
|
|
47
|
+
stdout += buffer.toString();
|
|
48
|
+
else
|
|
49
|
+
stderr += buffer.toString();
|
|
50
|
+
if (stdout.length + stderr.length > 4 * 1024 * 1024)
|
|
51
|
+
finish(new Error(`${command} produced too much output`), true);
|
|
52
|
+
};
|
|
53
|
+
child.stdout.on("data", data => read(data, "stdout"));
|
|
54
|
+
child.stderr.on("data", data => read(data, "stderr"));
|
|
55
|
+
child.once("error", finish);
|
|
56
|
+
child.once("close", code => finish(code === 0 ? undefined : new Error(`${command} exited ${code}`)));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { localWebSocket } from "../local-transport.js";
|
|
2
2
|
import { RpcPeer, } from "@linkshell/wire";
|
|
3
3
|
/** Connects to a host over its unix socket (`path`) or a `ws://` URL. */
|
|
4
4
|
export async function connectHost(target) {
|
|
5
|
-
const
|
|
6
|
-
const socket = new WebSocket(url, { perMessageDeflate: false });
|
|
5
|
+
const socket = localWebSocket(target);
|
|
7
6
|
await new Promise((resolve, reject) => {
|
|
8
7
|
socket.once("open", () => resolve());
|
|
9
8
|
socket.once("error", reject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,OAAO,GAMR,MAAM,iBAAiB,CAAC;AASzB,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0C,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC;QACvB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACjC,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;QACD,gBAAgB,EAAE,OAAO;KAC1B,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;QAC5E,EAAE,CAAC,IAAI,EAAE,QAAQ;YACf,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAChB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,QAAqC,CAAC,CAAC;YAC/C,OAAO,GAAG,EAAE,CAAC,GAAI,CAAC,MAAM,CAAC,QAAqC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -26,6 +26,7 @@ export interface HostRpcServerOptions {
|
|
|
26
26
|
log: (message: string) => void;
|
|
27
27
|
liveActivities?: LiveActivityRelay;
|
|
28
28
|
usage?: UsageStatistics;
|
|
29
|
+
shutdown?: () => void;
|
|
29
30
|
}
|
|
30
31
|
/** Anything that carries JSON-RPC text both ways: a local WebSocket, or an encrypted tunnel through the gateway. */
|
|
31
32
|
export interface RpcTransport {
|
|
@@ -3,7 +3,7 @@ import { createServer } from "node:http";
|
|
|
3
3
|
import { existsSync, rmSync } from "node:fs";
|
|
4
4
|
import WebSocket, { WebSocketServer } from "ws";
|
|
5
5
|
import { RPC_INVALID_PARAMS, RPC_METHOD_NOT_FOUND, RpcError, RpcPeer, isMethodName, methods, } from "@linkshell/wire";
|
|
6
|
-
import { listDirectory, makeDirectory, readFile, searchDirectories, uploadFile } from "../fs.js";
|
|
6
|
+
import { downloadFile, listDirectory, makeDirectory, readFile, searchDirectories, uploadFile } from "../fs.js";
|
|
7
7
|
import { listPorts, ProxyStreams } from "../ports.js";
|
|
8
8
|
import { ScreenShare } from "../screen.js";
|
|
9
9
|
import { DirectPeer } from "../direct.js";
|
|
@@ -54,6 +54,13 @@ export class HostRpcServer {
|
|
|
54
54
|
const terminals = options.terminals;
|
|
55
55
|
const usage = options.usage ?? new UsageStatistics();
|
|
56
56
|
this.handlers = {
|
|
57
|
+
"desktop.shutdown": (params) => {
|
|
58
|
+
if (!options.shutdown || params.pid !== process.pid)
|
|
59
|
+
throw RpcError.app("conflict", "后台服务已改变,请刷新状态后重试");
|
|
60
|
+
// Let the response reach the local CLI before closing its connection.
|
|
61
|
+
setTimeout(() => options.shutdown?.(), 50).unref();
|
|
62
|
+
return {};
|
|
63
|
+
},
|
|
57
64
|
"usage.summary": (params) => usage.summary(params),
|
|
58
65
|
"liveActivities.subscribe": (params) => {
|
|
59
66
|
if (!options.liveActivities)
|
|
@@ -206,6 +213,7 @@ export class HostRpcServer {
|
|
|
206
213
|
"fs.list": (params) => listDirectory(params),
|
|
207
214
|
"fs.search": (params) => searchDirectories(params),
|
|
208
215
|
"fs.read": (params) => readFile(params),
|
|
216
|
+
"fs.download": (params) => downloadFile(params),
|
|
209
217
|
"fs.upload": (params) => uploadFile(params),
|
|
210
218
|
"fs.mkdir": (params) => makeDirectory(params),
|
|
211
219
|
"terminals.list": () => ({ terminals: terminals.list() }),
|
|
@@ -261,7 +269,7 @@ export class HostRpcServer {
|
|
|
261
269
|
};
|
|
262
270
|
}
|
|
263
271
|
async start() {
|
|
264
|
-
if (existsSync(this.options.socketPath))
|
|
272
|
+
if (process.platform !== "win32" && existsSync(this.options.socketPath))
|
|
265
273
|
rmSync(this.options.socketPath, { force: true });
|
|
266
274
|
await this.listen((server) => server.listen(this.options.socketPath));
|
|
267
275
|
if (this.options.tcpPort !== undefined) {
|
|
@@ -281,7 +289,8 @@ export class HostRpcServer {
|
|
|
281
289
|
socket.terminate();
|
|
282
290
|
await Promise.all(closed);
|
|
283
291
|
await Promise.all(this.servers.map((server) => new Promise((resolve) => server.close(() => resolve()))));
|
|
284
|
-
|
|
292
|
+
if (process.platform !== "win32")
|
|
293
|
+
rmSync(this.options.socketPath, { force: true });
|
|
285
294
|
}
|
|
286
295
|
/** The TCP port actually bound (useful when started with port 0). */
|
|
287
296
|
tcpAddress() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/rpc/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqC,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,GAOR,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI/D,kHAAkH;AAClH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAA2C;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AA0CD;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAUK;IATZ,OAAO,GAAa,EAAE,CAAC;IACvB,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;IAC/B,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;IAC1C,OAAO,CAAe;IACtB,cAAc,CAAuB;IAC5B,MAAM,CAAc;IACpB,eAAe,CAAwB;IACvC,QAAQ,CAAmH;IAE5I,YAA6B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QACjG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG;YACd,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE;gBACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;gBACxG,sEAAsE;gBACtE,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,eAAe,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtE,0BAA0B,EAAE,CAAC,MAAqC,EAAE,EAAE;gBACpE,IAAI,CAAC,OAAO,CAAC,cAAc;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;gBAC1F,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,4BAA4B,EAAE,KAAK,EAAE,MAAuC,EAAE,EAAE;gBAC9E,MAAM,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC7D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,eAAe,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YACnE,YAAY,EAAE,CAAC,MAAuB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;YACtF,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACrE,kBAAkB,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpJ,qBAAqB,EAAE,CAAC,MAAgC,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YAC3H,gBAAgB,EAAE,KAAK,EAAE,MAA2B,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7I,kBAAkB,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChJ,eAAe,EAAE,KAAK,EAAE,MAA0B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACvH,cAAc,EAAE,GAAG,EAAE;gBACnB,KAAK,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,MAA0B,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3G,eAAe,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;YACzE,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACzG,eAAe,EAAE,KAAK,EAAE,MAA0B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC5J,UAAU,EAAE,KAAK,EAAE,MAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACtF,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;YACxE,kBAAkB,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE;gBAC1D,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,oBAAoB,EAAE,KAAK,EAAE,MAA+B,EAAE,OAAO,EAAE,EAAE;gBACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,QAAQ;oBAAE,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAe;oBAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBAClG,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC9E,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;iBACvG,CAAC;gBACF,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACxD,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACrE,CAAC;YACD,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9H,CAAC;YACD,gBAAgB,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3F,qBAAqB,EAAE,CAAC,MAAgC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACzI,mBAAmB,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvH,oBAAoB,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3G,yBAAyB,EAAE,KAAK,EAAE,MAAoC,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7J,mBAAmB,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,CAAC;gBACxD,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;aAC9H,CAAC;YACF,kBAAkB,EAAE,CAAC,MAA6B,EAAE,OAAO,EAAE,EAAE;gBAC7D,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpG,CAAC;YACD,sBAAsB,EAAE,CAAC,MAAiC,EAAE,EAAE;gBAC5D,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,gBAAgB,EAAE,CAAC,MAA2B,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,sBAAsB,EAAE,CAAC,MAAiC,EAAE,OAAO,EAAE,EAAE;gBACrE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,IAAI,UAAU;oBAAE,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC9D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE,CAAC,CAAC;gBAC1D,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;aACtG,CAAC;YACF,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE;gBACxD,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,qBAAqB,EAAE,KAAK,EAAE,MAAgC,EAAE,EAAE;gBAChE,MAAM,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjF,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE;gBACxD,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7E,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,qBAAqB,EAAE,KAAK,EAAE,MAAgC,EAAE,EAAE;gBAChE,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,uBAAuB,EAAE,CAAC,MAAkC,EAAE,EAAE;gBAC9D,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3H,kBAAkB,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChI,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1H,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,EAAE;gBACxD,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,eAAe,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YAC1F,oBAAoB,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE;gBAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,mBAAmB,EAAE,KAAK,EAAE,MAA8B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1H,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5G,gBAAgB,EAAE,KAAK,EAAE,MAA2B,EAAE,OAAO,EAAE,EAAE;gBAC/D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1H,IAAI,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACnE,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,iBAAiB,EAAE,CAAC,MAA4B,EAAE,OAAO,EAAE,EAAE;gBAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrD,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK;oBAAE,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC1C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAc,EAAE,OAAO,EAAE,EAAE,EAAE;YACzF,iBAAiB,EAAE,CAAC,OAA6B,EAAE,OAAO,EAAE,EAAE;gBAC5D,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,8CAA8C,CAAC,CAAC;gBACpG,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtG,CAAC;YACD,eAAe,EAAE,CAAC,OAA2B,EAAE,OAAO,EAAE,EAAE;gBACxD,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC;gBAC7F,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,yFAAyF,CAAC,CAAC;gBAClJ,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,MAA2B,EAAE,EAAE;gBACtD,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,SAAS,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;YAC1D,WAAW,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAClE,SAAS,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrD,aAAa,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;YACjE,WAAW,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3D,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;YAC5D,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/F,kBAAkB,EAAE,CAAC,MAA6B,EAAE,OAAO,EAAE,EAAE;gBAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,QAAQ;oBAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACvD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;gBACpG,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACnD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;YAClI,iBAAiB,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;YACzH,kBAAkB,EAAE,CAAC,MAA6B,EAAE,OAAO,EAAE,EAAE;gBAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,QAAQ;oBAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC5D,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,iBAAiB,EAAE,CAAC,MAA4B,EAAE,EAAE;gBAClD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,kBAAkB,EAAE,CAAC,MAA6B,EAAE,EAAE;gBACpD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE,EAAE,CAAC;YACxD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACzC,eAAe,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC;YACxF,YAAY,EAAE,KAAK,EAAE,MAAuB,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACxG,cAAc,EAAE,KAAK,EAAE,MAAyB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAChH,aAAa,EAAE,CAAC,MAAwB,EAAE,OAAO,EAAE,EAAE;gBACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,aAAa,EAAE,CAAC,MAAwB,EAAE,OAAO,EAAE,EAAE;gBACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,iBAAiB,EAAE,CAAC,MAA4B,EAAE,EAAE;gBAClD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,MAA4B,EAAE,OAAO,EAAE,EAAE;gBACjE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC7C,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1H,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvC,yFAAyF;YACzF,2DAA2D;YAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,uGAAuG;QACvG,qGAAqG;QACrG,yBAAyB;QACzB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACtD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,qEAAqE;IACrE,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3C,OAAO,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAEO,MAAM,CAAC,IAA8B,EAAE,OAAkE;QAC/G,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YAC1D,QAAQ,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC;YAC9B,MAAM;YACN,iBAAiB,EAAE,KAAK;YACxB,UAAU,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC5B,YAAY,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,GAAG,EAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;SAClI,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IAC5D,YAAY,CAAC,SAAiB,EAAE,OAA0B;QAChE,+EAA+E;QAC/E,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAC5C,MAAM,KAAK,GAA0D,EAAE,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9F,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE;YAC7D,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,SAAS,IAAI;oBACX,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC;YACJ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACvF,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,MAAiB;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,SAAS,GAA6D,EAAE,CAAC;QAC/E,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;YACvD,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,OAA4B;QAC3C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,gDAAgD;IAChD,SAAS,CAA6B,IAAO,EAAE,MAA6B;QAC1E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,SAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC;YACvB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrG,MAAM,OAAO,GAAsB;YACjC,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,KAAK,EAAE,IAAI,YAAY,CACrB;gBACE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACvE,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;aACrG,EACD,MAAM,CACP;YACD,MAAM;YACN,IAAI;SACL,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1I,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACxG,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YAC3D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CACzE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CACtF,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS;gBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5G,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,aAAa;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACjH,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC9B,wEAAwE;YACxE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;gBACvB,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,MAAe,EAAE,OAA0B;QAChF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAChG,uGAAuG;QACvG,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,MAAM,4BAA4B,CAAC,CAAC;QAC5H,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,MAAM,EAAE,EAAE;gBACrE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACxF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAY,CAAC;QACjD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAa,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtI,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Annex-B access units with a bounded carry buffer, including split start codes. */
|
|
2
|
+
export declare class H264AccessUnits {
|
|
3
|
+
private bytes;
|
|
4
|
+
private scanned;
|
|
5
|
+
private start;
|
|
6
|
+
push(chunk: Buffer, emit: (unit: Buffer, key: boolean) => void): void;
|
|
7
|
+
}
|
|
8
|
+
export declare function h264Nals(unit: Buffer): Buffer[];
|
|
9
|
+
/** RFC 6184 packetization-mode=1. Leave room for RTP extensions, SRTP and UDP. */
|
|
10
|
+
export declare function h264Payloads(unit: Buffer, mtu?: number): Buffer[];
|
|
11
|
+
/** Reliable presses/releases must survive even if a newer lossy move arrived first. */
|
|
12
|
+
export declare class ScreenInputOrder {
|
|
13
|
+
private newest;
|
|
14
|
+
accept(value: unknown, replaceable: boolean): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/** Annex-B access units with a bounded carry buffer, including split start codes. */
|
|
2
|
+
export class H264AccessUnits {
|
|
3
|
+
bytes = Buffer.alloc(0);
|
|
4
|
+
scanned = 0;
|
|
5
|
+
start = -1;
|
|
6
|
+
push(chunk, emit) {
|
|
7
|
+
if (this.bytes.length + chunk.length > 16 * 1024 * 1024)
|
|
8
|
+
throw new Error("H.264 access unit is too large");
|
|
9
|
+
this.bytes = this.bytes.length ? Buffer.concat([this.bytes, chunk]) : chunk;
|
|
10
|
+
for (let i = this.scanned; i + 3 < this.bytes.length; i++) {
|
|
11
|
+
if (this.bytes[i] || this.bytes[i + 1] || this.bytes[i + 2] !== 1 || (this.bytes[i + 3] & 31) !== 9)
|
|
12
|
+
continue;
|
|
13
|
+
const at = i > 0 && this.bytes[i - 1] === 0 ? i - 1 : i;
|
|
14
|
+
if (this.start >= 0 && at > this.start) {
|
|
15
|
+
const unit = this.bytes.subarray(this.start, at);
|
|
16
|
+
const nals = h264Nals(unit);
|
|
17
|
+
// Some hardware encoders emit an AUD as well as the bitstream filter's AUD.
|
|
18
|
+
// An empty delimiter is not a picture and must not consume a queue slot or timestamp.
|
|
19
|
+
if (nals.some(nal => (nal[0] & 31) !== 9))
|
|
20
|
+
emit(unit, nals.some(nal => (nal[0] & 31) === 5));
|
|
21
|
+
}
|
|
22
|
+
this.start = at;
|
|
23
|
+
}
|
|
24
|
+
this.scanned = Math.max(0, this.bytes.length - 3);
|
|
25
|
+
if (this.start > 0) {
|
|
26
|
+
this.bytes = this.bytes.subarray(this.start);
|
|
27
|
+
this.scanned -= this.start;
|
|
28
|
+
this.start = 0;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function h264Nals(unit) {
|
|
33
|
+
const nals = [];
|
|
34
|
+
let start = -1;
|
|
35
|
+
for (let i = 0; i + 2 < unit.length; i++) {
|
|
36
|
+
if (unit[i] || unit[i + 1] || unit[i + 2] !== 1)
|
|
37
|
+
continue;
|
|
38
|
+
let end = i;
|
|
39
|
+
while (end > start && unit[end - 1] === 0)
|
|
40
|
+
end--;
|
|
41
|
+
if (start >= 0 && end > start)
|
|
42
|
+
nals.push(unit.subarray(start, end));
|
|
43
|
+
start = i + 3;
|
|
44
|
+
i += 2;
|
|
45
|
+
}
|
|
46
|
+
if (start >= 0 && start < unit.length)
|
|
47
|
+
nals.push(unit.subarray(start));
|
|
48
|
+
return nals;
|
|
49
|
+
}
|
|
50
|
+
/** RFC 6184 packetization-mode=1. Leave room for RTP extensions, SRTP and UDP. */
|
|
51
|
+
export function h264Payloads(unit, mtu = 1150) {
|
|
52
|
+
if (mtu < 3)
|
|
53
|
+
throw new Error("Invalid H.264 MTU");
|
|
54
|
+
const payloads = [];
|
|
55
|
+
for (const nal of h264Nals(unit)) {
|
|
56
|
+
const type = nal[0] & 31;
|
|
57
|
+
if (type === 9 || type === 12)
|
|
58
|
+
continue;
|
|
59
|
+
if (nal.length <= mtu) {
|
|
60
|
+
payloads.push(nal);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
for (let offset = 1; offset < nal.length; offset += mtu - 2) {
|
|
64
|
+
const end = Math.min(nal.length, offset + mtu - 2);
|
|
65
|
+
payloads.push(Buffer.concat([
|
|
66
|
+
Buffer.from([(nal[0] & 0xe0) | 28, type | (offset === 1 ? 0x80 : 0) | (end === nal.length ? 0x40 : 0)]),
|
|
67
|
+
nal.subarray(offset, end),
|
|
68
|
+
]));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return payloads;
|
|
72
|
+
}
|
|
73
|
+
/** Reliable presses/releases must survive even if a newer lossy move arrived first. */
|
|
74
|
+
export class ScreenInputOrder {
|
|
75
|
+
newest = -1;
|
|
76
|
+
accept(value, replaceable) {
|
|
77
|
+
if (!value || typeof value !== "object")
|
|
78
|
+
return false;
|
|
79
|
+
const event = value;
|
|
80
|
+
if (typeof event.i === "number" && Number.isSafeInteger(event.i) && event.i >= 0) {
|
|
81
|
+
if (replaceable && event.t === "move" && event.i < this.newest)
|
|
82
|
+
return false;
|
|
83
|
+
this.newest = Math.max(this.newest, event.i);
|
|
84
|
+
}
|
|
85
|
+
return !replaceable || event.t === "move" || event.t === "scroll";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=screen-h264.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-h264.js","sourceRoot":"","sources":["../../../src/screen-h264.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,OAAO,eAAe;IAClB,KAAK,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC,CAAC;IACZ,KAAK,GAAG,CAAC,CAAC,CAAC;IAEnB,IAAI,CAAC,KAAa,EAAE,IAA0C;QAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC3G,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC/G,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,4EAA4E;gBAC5E,sFAAsF;gBACtF,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjG,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,GAAG,EAAE,CAAC;QACjD,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACpE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAG,GAAG,IAAI;IACnD,IAAI,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS;QACxC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACxD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;aAC1B,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uFAAuF;AACvF,MAAM,OAAO,gBAAgB;IACnB,MAAM,GAAG,CAAC,CAAC,CAAC;IACpB,MAAM,CAAC,KAAc,EAAE,WAAoB;QACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,KAAK,GAAG,KAAqC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,IAAI,WAAW,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC7E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -31,6 +31,7 @@ export declare const rung: (level: number) => Rung;
|
|
|
31
31
|
/** The level a relayed stream starts at, and never goes above. */
|
|
32
32
|
export declare const RELAY_LEVEL = 2;
|
|
33
33
|
export declare class Pacer {
|
|
34
|
+
private readonly options;
|
|
34
35
|
private seq;
|
|
35
36
|
private shown;
|
|
36
37
|
private readonly sentAt;
|
|
@@ -45,7 +46,12 @@ export declare class Pacer {
|
|
|
45
46
|
private heard;
|
|
46
47
|
private settledAt;
|
|
47
48
|
private lastSent;
|
|
48
|
-
constructor(now: number
|
|
49
|
+
constructor(now: number, options?: {
|
|
50
|
+
maxInFlight?: number;
|
|
51
|
+
behindMs?: number;
|
|
52
|
+
caughtUpMs?: number;
|
|
53
|
+
probeMs?: number;
|
|
54
|
+
});
|
|
49
55
|
/** Whether frames are being dropped for the viewer to catch up. */
|
|
50
56
|
get dropping(): boolean;
|
|
51
57
|
/**
|
|
@@ -37,6 +37,7 @@ const FLOOR_MAX_MS = 800;
|
|
|
37
37
|
/** Behind, and nothing heard for this long: a keyframe goes anyway. Whatever went wrong, the next answer ends it. */
|
|
38
38
|
const PROBE_MS = 8000;
|
|
39
39
|
export class Pacer {
|
|
40
|
+
options;
|
|
40
41
|
seq = 0;
|
|
41
42
|
shown = 0;
|
|
42
43
|
sentAt = new Map();
|
|
@@ -51,7 +52,8 @@ export class Pacer {
|
|
|
51
52
|
heard = false;
|
|
52
53
|
settledAt = 0;
|
|
53
54
|
lastSent = 0;
|
|
54
|
-
constructor(now) {
|
|
55
|
+
constructor(now, options = {}) {
|
|
56
|
+
this.options = options;
|
|
55
57
|
this.calmSince = now;
|
|
56
58
|
}
|
|
57
59
|
/** Whether frames are being dropped for the viewer to catch up. */
|
|
@@ -67,7 +69,7 @@ export class Pacer {
|
|
|
67
69
|
if (this.behindSince === undefined)
|
|
68
70
|
return false;
|
|
69
71
|
const own = Number.isFinite(this.floor) ? Math.min(this.floor, FLOOR_MAX_MS) : 0;
|
|
70
|
-
return this.sentAt.size === 0 || this.lag(now) <= own + CAUGHT_UP_MS || now - this.lastSent >= PROBE_MS;
|
|
72
|
+
return this.sentAt.size === 0 || this.lag(now) <= own + (this.options.caughtUpMs ?? CAUGHT_UP_MS) || now - this.lastSent >= (this.options.probeMs ?? PROBE_MS);
|
|
71
73
|
}
|
|
72
74
|
/** How long ago the oldest frame not yet shown was sent. */
|
|
73
75
|
lag(now) {
|
|
@@ -81,15 +83,15 @@ export class Pacer {
|
|
|
81
83
|
if (paced) {
|
|
82
84
|
const own = Number.isFinite(this.floor) ? Math.min(this.floor, FLOOR_MAX_MS) : 0;
|
|
83
85
|
const lag = this.lag(now);
|
|
84
|
-
if (this.behindSince === undefined && lag > own + BEHIND_MS) {
|
|
86
|
+
if (this.behindSince === undefined && lag > own + (this.options.behindMs ?? BEHIND_MS)) {
|
|
85
87
|
this.behindSince = now;
|
|
86
88
|
this.troubles.push(now);
|
|
87
89
|
this.calmSince = now;
|
|
88
90
|
}
|
|
89
91
|
if (this.behindSince !== undefined) {
|
|
90
92
|
// Back in at a keyframe, once what was sent has been shown (or nearly).
|
|
91
|
-
const caughtUp = this.sentAt.size === 0 || lag <= own + CAUGHT_UP_MS;
|
|
92
|
-
if (!key || (!caughtUp && now - this.lastSent < PROBE_MS))
|
|
93
|
+
const caughtUp = this.sentAt.size === 0 || lag <= own + (this.options.caughtUpMs ?? CAUGHT_UP_MS);
|
|
94
|
+
if (!key || (!caughtUp && now - this.lastSent < (this.options.probeMs ?? PROBE_MS)))
|
|
93
95
|
return undefined;
|
|
94
96
|
if (caughtUp) {
|
|
95
97
|
this.behindSince = undefined;
|
|
@@ -97,6 +99,10 @@ export class Pacer {
|
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
}
|
|
102
|
+
// Independent JPEGs need only a tiny window. Keep it bounded even when ACKs
|
|
103
|
+
// disappear; occasional probes recover a dropped ACK without flooding the relay.
|
|
104
|
+
if (this.options.maxInFlight && this.sentAt.size >= this.options.maxInFlight && now - this.lastSent < (this.options.probeMs ?? PROBE_MS))
|
|
105
|
+
return undefined;
|
|
100
106
|
const seq = ++this.seq;
|
|
101
107
|
this.sentAt.set(seq, now);
|
|
102
108
|
this.lastSent = now;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-pacer.js","sourceRoot":"","sources":["../../../src/screen-pacer.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,uEAAuE;AACvE,4EAA4E;AAC5E,wBAAwB;AAExB,4IAA4I;AAC5I,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IAChE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IAChE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;IAC9D,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5D,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;CAClD,CAAC;AAGX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC;AAEvH,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,wEAAwE;AACxE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,gFAAgF;AAChF,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,+FAA+F;AAC/F,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,gGAAgG;AAChG,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,sEAAsE;AACtE,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,gHAAgH;AAChH,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,mHAAmH;AACnH,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,qHAAqH;AACrH,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,MAAM,OAAO,KAAK;
|
|
1
|
+
{"version":3,"file":"screen-pacer.js","sourceRoot":"","sources":["../../../src/screen-pacer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { StreamProfile } from "./input.js";
|
|
3
|
+
export declare const SCREEN_RETAIN_MS = 120000;
|
|
4
|
+
export declare const screenConfiguration: z.ZodObject<{
|
|
5
|
+
t: z.ZodLiteral<"screen.configure">;
|
|
6
|
+
requestId: z.ZodNumber;
|
|
7
|
+
display: z.ZodNumber;
|
|
8
|
+
width: z.ZodPipeline<z.ZodUnion<[z.ZodEffects<z.ZodLiteral<"native">, number, "native">, z.ZodNumber, z.ZodEffects<z.ZodString, number, string>]>, z.ZodNumber>;
|
|
9
|
+
maxFps: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<30>, z.ZodLiteral<60>, z.ZodLiteral<120>]>>;
|
|
10
|
+
paused: z.ZodBoolean;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
paused: boolean;
|
|
13
|
+
requestId: number;
|
|
14
|
+
t: "screen.configure";
|
|
15
|
+
width: number;
|
|
16
|
+
display: number;
|
|
17
|
+
maxFps?: 30 | 60 | 120 | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
paused: boolean;
|
|
20
|
+
requestId: number;
|
|
21
|
+
t: "screen.configure";
|
|
22
|
+
width: string | number;
|
|
23
|
+
display: number;
|
|
24
|
+
maxFps?: 30 | 60 | 120 | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
export type ScreenConfiguration = Omit<z.infer<typeof screenConfiguration>, "t" | "requestId">;
|
|
27
|
+
export declare function fallbackProfile(level: number, configuration?: Pick<ScreenConfiguration, "width" | "maxFps">): StreamProfile;
|
|
28
|
+
/** Mirrors the helper's even-pixel capture size; dimensions come from the current display list. */
|
|
29
|
+
export declare function fallbackSize(display: {
|
|
30
|
+
w?: number;
|
|
31
|
+
h?: number;
|
|
32
|
+
}, profile: StreamProfile): {
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { rung } from "./screen-pacer.js";
|
|
3
|
+
export const SCREEN_RETAIN_MS = 120_000;
|
|
4
|
+
// URL defaults are permissive for older clients. Stateful changes must be complete and valid
|
|
5
|
+
// before they can release input or change capture on a live connection.
|
|
6
|
+
export const screenConfiguration = z.object({
|
|
7
|
+
t: z.literal("screen.configure"),
|
|
8
|
+
requestId: z.number().int().nonnegative().safe(),
|
|
9
|
+
display: z.number().int().nonnegative().safe(),
|
|
10
|
+
width: z.union([z.literal("native").transform(() => 3840), z.number(), z.string().regex(/^\d+$/).transform(Number)])
|
|
11
|
+
.pipe(z.number().int().min(640).max(3840)),
|
|
12
|
+
maxFps: z.union([z.literal(30), z.literal(60), z.literal(120)]).optional(),
|
|
13
|
+
paused: z.boolean(),
|
|
14
|
+
});
|
|
15
|
+
export function fallbackProfile(level, configuration) {
|
|
16
|
+
const profile = rung(level);
|
|
17
|
+
return { ...profile, width: Math.floor(Math.min(profile.width, configuration?.width ?? profile.width) / 2) * 2, fps: Math.min(profile.fps, configuration?.maxFps ?? profile.fps) };
|
|
18
|
+
}
|
|
19
|
+
/** Mirrors the helper's even-pixel capture size; dimensions come from the current display list. */
|
|
20
|
+
export function fallbackSize(display, profile) {
|
|
21
|
+
if (!display.w || !display.h)
|
|
22
|
+
throw new Error("无法读取当前屏幕尺寸,请重新连接");
|
|
23
|
+
const width = Math.floor(Math.min(display.w, profile.width) / 2) * 2;
|
|
24
|
+
return { width, height: Math.max(2, Math.round(display.h * width / display.w / 2) * 2) };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=screen-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-session.js","sourceRoot":"","sources":["../../../src/screen-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,6FAA6F;AAC7F,wEAAwE;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;SACjH,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAIH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,aAA6D;IAC1G,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACrL,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,OAAmC,EAAE,OAAsB;IACtF,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3F,CAAC"}
|