@hyperframes/engine 0.1.0 → 0.1.2

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.
Files changed (107) hide show
  1. package/README.md +78 -0
  2. package/package.json +5 -3
  3. package/src/config.ts +32 -8
  4. package/src/index.ts +15 -17
  5. package/src/services/audioMixer.ts +33 -8
  6. package/src/services/browserManager.ts +7 -2
  7. package/src/services/chunkEncoder.ts +24 -3
  8. package/src/services/fileServer.ts +3 -1
  9. package/src/services/frameCapture.ts +46 -13
  10. package/src/services/parallelCoordinator.ts +25 -5
  11. package/src/services/screenshotService.ts +4 -1
  12. package/src/services/videoFrameExtractor.ts +19 -4
  13. package/src/services/videoFrameInjector.ts +9 -3
  14. package/src/utils/ffprobe.ts +25 -4
  15. package/src/utils/urlDownloader.ts +5 -1
  16. package/dist/config.d.ts +0 -62
  17. package/dist/config.d.ts.map +0 -1
  18. package/dist/config.js +0 -92
  19. package/dist/config.js.map +0 -1
  20. package/dist/config.test.d.ts +0 -2
  21. package/dist/config.test.d.ts.map +0 -1
  22. package/dist/config.test.js +0 -77
  23. package/dist/config.test.js.map +0 -1
  24. package/dist/index.d.ts +0 -49
  25. package/dist/index.d.ts.map +0 -1
  26. package/dist/index.js +0 -55
  27. package/dist/index.js.map +0 -1
  28. package/dist/services/audioMixer.d.ts +0 -11
  29. package/dist/services/audioMixer.d.ts.map +0 -1
  30. package/dist/services/audioMixer.js +0 -306
  31. package/dist/services/audioMixer.js.map +0 -1
  32. package/dist/services/audioMixer.types.d.ts +0 -27
  33. package/dist/services/audioMixer.types.d.ts.map +0 -1
  34. package/dist/services/audioMixer.types.js +0 -2
  35. package/dist/services/audioMixer.types.js.map +0 -1
  36. package/dist/services/browserManager.d.ts +0 -29
  37. package/dist/services/browserManager.d.ts.map +0 -1
  38. package/dist/services/browserManager.js +0 -175
  39. package/dist/services/browserManager.js.map +0 -1
  40. package/dist/services/chunkEncoder.d.ts +0 -32
  41. package/dist/services/chunkEncoder.d.ts.map +0 -1
  42. package/dist/services/chunkEncoder.js +0 -347
  43. package/dist/services/chunkEncoder.js.map +0 -1
  44. package/dist/services/chunkEncoder.test.d.ts +0 -2
  45. package/dist/services/chunkEncoder.test.d.ts.map +0 -1
  46. package/dist/services/chunkEncoder.test.js +0 -24
  47. package/dist/services/chunkEncoder.test.js.map +0 -1
  48. package/dist/services/chunkEncoder.types.d.ts +0 -26
  49. package/dist/services/chunkEncoder.types.d.ts.map +0 -1
  50. package/dist/services/chunkEncoder.types.js +0 -2
  51. package/dist/services/chunkEncoder.types.js.map +0 -1
  52. package/dist/services/fileServer.d.ts +0 -25
  53. package/dist/services/fileServer.d.ts.map +0 -1
  54. package/dist/services/fileServer.js +0 -138
  55. package/dist/services/fileServer.js.map +0 -1
  56. package/dist/services/frameCapture.d.ts +0 -52
  57. package/dist/services/frameCapture.d.ts.map +0 -1
  58. package/dist/services/frameCapture.js +0 -317
  59. package/dist/services/frameCapture.js.map +0 -1
  60. package/dist/services/parallelCoordinator.d.ts +0 -40
  61. package/dist/services/parallelCoordinator.d.ts.map +0 -1
  62. package/dist/services/parallelCoordinator.js +0 -192
  63. package/dist/services/parallelCoordinator.js.map +0 -1
  64. package/dist/services/parallelCoordinator.test.d.ts +0 -2
  65. package/dist/services/parallelCoordinator.test.d.ts.map +0 -1
  66. package/dist/services/parallelCoordinator.test.js +0 -38
  67. package/dist/services/parallelCoordinator.test.js.map +0 -1
  68. package/dist/services/screenshotService.d.ts +0 -28
  69. package/dist/services/screenshotService.d.ts.map +0 -1
  70. package/dist/services/screenshotService.js +0 -190
  71. package/dist/services/screenshotService.js.map +0 -1
  72. package/dist/services/streamingEncoder.d.ts +0 -49
  73. package/dist/services/streamingEncoder.d.ts.map +0 -1
  74. package/dist/services/streamingEncoder.js +0 -227
  75. package/dist/services/streamingEncoder.js.map +0 -1
  76. package/dist/services/videoFrameExtractor.d.ts +0 -65
  77. package/dist/services/videoFrameExtractor.d.ts.map +0 -1
  78. package/dist/services/videoFrameExtractor.js +0 -302
  79. package/dist/services/videoFrameExtractor.js.map +0 -1
  80. package/dist/services/videoFrameInjector.d.ts +0 -17
  81. package/dist/services/videoFrameInjector.d.ts.map +0 -1
  82. package/dist/services/videoFrameInjector.js +0 -92
  83. package/dist/services/videoFrameInjector.js.map +0 -1
  84. package/dist/types.d.ts +0 -79
  85. package/dist/types.d.ts.map +0 -1
  86. package/dist/types.js +0 -8
  87. package/dist/types.js.map +0 -1
  88. package/dist/utils/ffprobe.d.ts +0 -18
  89. package/dist/utils/ffprobe.d.ts.map +0 -1
  90. package/dist/utils/ffprobe.js +0 -137
  91. package/dist/utils/ffprobe.js.map +0 -1
  92. package/dist/utils/gpuEncoder.d.ts +0 -11
  93. package/dist/utils/gpuEncoder.d.ts.map +0 -1
  94. package/dist/utils/gpuEncoder.js +0 -55
  95. package/dist/utils/gpuEncoder.js.map +0 -1
  96. package/dist/utils/parityContract.d.ts +0 -3
  97. package/dist/utils/parityContract.d.ts.map +0 -1
  98. package/dist/utils/parityContract.js +0 -35
  99. package/dist/utils/parityContract.js.map +0 -1
  100. package/dist/utils/runFfmpeg.d.ts +0 -19
  101. package/dist/utils/runFfmpeg.d.ts.map +0 -1
  102. package/dist/utils/runFfmpeg.js +0 -62
  103. package/dist/utils/runFfmpeg.js.map +0 -1
  104. package/dist/utils/urlDownloader.d.ts +0 -3
  105. package/dist/utils/urlDownloader.d.ts.map +0 -1
  106. package/dist/utils/urlDownloader.js +0 -68
  107. package/dist/utils/urlDownloader.js.map +0 -1
@@ -1,306 +0,0 @@
1
- /**
2
- * Audio Mixer Service
3
- *
4
- * Processes and mixes audio tracks using FFmpeg.
5
- */
6
- import { existsSync, mkdirSync, rmSync } from "fs";
7
- import { join, dirname } from "path";
8
- import { parseHTML } from "linkedom";
9
- import { extractAudioMetadata } from "../utils/ffprobe.js";
10
- import { downloadToTemp, isHttpUrl } from "../utils/urlDownloader.js";
11
- import { DEFAULT_CONFIG } from "../config.js";
12
- import { runFfmpeg } from "../utils/runFfmpeg.js";
13
- export function parseAudioElements(html) {
14
- const elements = [];
15
- const { document } = parseHTML(html);
16
- // Parse <audio> elements
17
- const audioEls = document.querySelectorAll("audio[id][src]");
18
- for (const el of audioEls) {
19
- const id = el.getAttribute("id");
20
- const src = el.getAttribute("src");
21
- if (!id || !src)
22
- continue;
23
- const startAttr = el.getAttribute("data-start");
24
- const endAttr = el.getAttribute("data-end");
25
- const mediaStartAttr = el.getAttribute("data-media-start");
26
- const layerAttr = el.getAttribute("data-layer");
27
- const volumeAttr = el.getAttribute("data-volume");
28
- elements.push({
29
- id,
30
- src,
31
- start: startAttr ? parseFloat(startAttr) : 0,
32
- end: endAttr ? parseFloat(endAttr) : 0,
33
- mediaStart: mediaStartAttr ? parseFloat(mediaStartAttr) : 0,
34
- layer: layerAttr ? parseInt(layerAttr) : 0,
35
- volume: volumeAttr ? parseFloat(volumeAttr) : 1.0,
36
- type: "audio",
37
- });
38
- }
39
- // Parse <video> elements with data-has-audio="true"
40
- const videoEls = document.querySelectorAll('video[id][src][data-has-audio="true"]');
41
- for (const el of videoEls) {
42
- const id = el.getAttribute("id");
43
- const src = el.getAttribute("src");
44
- if (!id || !src)
45
- continue;
46
- const startAttr = el.getAttribute("data-start");
47
- const endAttr = el.getAttribute("data-end");
48
- const mediaStartAttr = el.getAttribute("data-media-start");
49
- const layerAttr = el.getAttribute("data-layer");
50
- const volumeAttr = el.getAttribute("data-volume");
51
- elements.push({
52
- id: `${id}-audio`,
53
- src,
54
- start: startAttr ? parseFloat(startAttr) : 0,
55
- end: endAttr ? parseFloat(endAttr) : 0,
56
- mediaStart: mediaStartAttr ? parseFloat(mediaStartAttr) : 0,
57
- layer: layerAttr ? parseInt(layerAttr) : 0,
58
- volume: volumeAttr ? parseFloat(volumeAttr) : 1.0,
59
- type: "video",
60
- });
61
- }
62
- return elements;
63
- }
64
- async function extractAudioFromVideo(videoPath, outputPath, options, signal, config) {
65
- const ffmpegProcessTimeout = config?.ffmpegProcessTimeout ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
66
- const outputDir = dirname(outputPath);
67
- if (!existsSync(outputDir))
68
- mkdirSync(outputDir, { recursive: true });
69
- const args = ["-i", videoPath];
70
- if (options?.startTime !== undefined)
71
- args.push("-ss", String(options.startTime));
72
- if (options?.duration !== undefined)
73
- args.push("-t", String(options.duration));
74
- args.push("-vn", "-acodec", "pcm_s16le", "-ar", "48000", "-ac", "2", "-y", outputPath);
75
- const result = await runFfmpeg(args, { signal, timeout: ffmpegProcessTimeout });
76
- if (signal?.aborted) {
77
- return { success: false, outputPath, durationMs: result.durationMs, error: "Audio extract cancelled" };
78
- }
79
- if (!result.success) {
80
- return {
81
- success: false,
82
- outputPath,
83
- durationMs: result.durationMs,
84
- error: result.exitCode !== null ? `FFmpeg exited with code ${result.exitCode}` : result.stderr,
85
- };
86
- }
87
- return { success: true, outputPath, durationMs: result.durationMs };
88
- }
89
- async function prepareAudioTrack(srcPath, outputPath, mediaStart, duration, signal, config) {
90
- const ffmpegProcessTimeout = config?.ffmpegProcessTimeout ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
91
- const outputDir = dirname(outputPath);
92
- if (!existsSync(outputDir))
93
- mkdirSync(outputDir, { recursive: true });
94
- const args = [
95
- "-ss",
96
- String(mediaStart),
97
- "-t",
98
- String(duration),
99
- "-i",
100
- srcPath,
101
- "-acodec",
102
- "pcm_s16le",
103
- "-ar",
104
- "48000",
105
- "-ac",
106
- "2",
107
- "-y",
108
- outputPath,
109
- ];
110
- const result = await runFfmpeg(args, { signal, timeout: ffmpegProcessTimeout });
111
- if (signal?.aborted) {
112
- return { success: false, outputPath, durationMs: result.durationMs, error: "Audio prepare cancelled" };
113
- }
114
- return {
115
- success: result.success,
116
- outputPath,
117
- durationMs: result.durationMs,
118
- error: !result.success
119
- ? result.exitCode !== null
120
- ? `FFmpeg exited with code ${result.exitCode}: ${result.stderr.slice(-200)}`
121
- : result.stderr
122
- : undefined,
123
- };
124
- }
125
- async function generateSilence(outputPath, duration, signal, config) {
126
- const ffmpegProcessTimeout = config?.ffmpegProcessTimeout ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
127
- const outputDir = dirname(outputPath);
128
- if (!existsSync(outputDir))
129
- mkdirSync(outputDir, { recursive: true });
130
- const args = [
131
- "-f",
132
- "lavfi",
133
- "-i",
134
- "anullsrc=r=48000:cl=stereo",
135
- "-t",
136
- String(duration),
137
- "-acodec",
138
- "pcm_s16le",
139
- "-y",
140
- outputPath,
141
- ];
142
- const result = await runFfmpeg(args, { signal, timeout: ffmpegProcessTimeout });
143
- if (signal?.aborted) {
144
- return { success: false, outputPath, durationMs: result.durationMs, error: "Silence generation cancelled" };
145
- }
146
- return {
147
- success: result.success,
148
- outputPath,
149
- durationMs: result.durationMs,
150
- error: !result.success
151
- ? result.exitCode !== null
152
- ? `FFmpeg exited with code ${result.exitCode}`
153
- : result.stderr
154
- : undefined,
155
- };
156
- }
157
- async function mixAudioTracks(tracks, outputPath, totalDuration, signal, config) {
158
- const ffmpegProcessTimeout = config?.ffmpegProcessTimeout ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
159
- const masterOutputGain = config?.audioGain ?? DEFAULT_CONFIG.audioGain;
160
- if (tracks.length === 0) {
161
- const result = await generateSilence(outputPath, totalDuration, signal, config);
162
- return {
163
- success: result.success,
164
- outputPath,
165
- durationMs: result.durationMs,
166
- tracksProcessed: 0,
167
- error: result.error,
168
- };
169
- }
170
- const outputDir = dirname(outputPath);
171
- if (!existsSync(outputDir))
172
- mkdirSync(outputDir, { recursive: true });
173
- const inputs = [];
174
- const filterParts = [];
175
- tracks.forEach((track, i) => {
176
- inputs.push("-i", track.srcPath);
177
- const delayMs = Math.round(track.start * 1000);
178
- const trimDuration = track.end - track.start;
179
- filterParts.push(`[${i}:a]atrim=0:${trimDuration},volume=${track.volume},adelay=${delayMs}|${delayMs},apad=whole_dur=${totalDuration}[a${i}]`);
180
- });
181
- const mixInputs = tracks.map((_, i) => `[a${i}]`).join("");
182
- const weights = tracks.map(() => "1").join(" ");
183
- const mixFilter = `${mixInputs}amix=inputs=${tracks.length}:duration=longest:dropout_transition=0:normalize=0:weights='${weights}'[mixed]`;
184
- const postMixGainFilter = `[mixed]volume=${masterOutputGain}[out]`;
185
- const fullFilter = [...filterParts, mixFilter, postMixGainFilter].join(";");
186
- const args = [
187
- ...inputs,
188
- "-filter_complex",
189
- fullFilter,
190
- "-map",
191
- "[out]",
192
- "-acodec",
193
- "aac",
194
- "-b:a",
195
- "192k",
196
- "-t",
197
- String(totalDuration),
198
- "-y",
199
- outputPath,
200
- ];
201
- const result = await runFfmpeg(args, { signal, timeout: ffmpegProcessTimeout });
202
- if (signal?.aborted) {
203
- return {
204
- success: false,
205
- outputPath,
206
- durationMs: result.durationMs,
207
- tracksProcessed: 0,
208
- error: "Audio mix cancelled",
209
- };
210
- }
211
- if (!result.success) {
212
- return {
213
- success: false,
214
- outputPath,
215
- durationMs: result.durationMs,
216
- tracksProcessed: 0,
217
- error: result.exitCode !== null ? `FFmpeg exited with code ${result.exitCode}` : result.stderr,
218
- };
219
- }
220
- return { success: true, outputPath, durationMs: result.durationMs, tracksProcessed: tracks.length };
221
- }
222
- export async function processCompositionAudio(elements, baseDir, workDir, outputPath, totalDuration, signal, config) {
223
- const startMs = Date.now();
224
- const tracks = [];
225
- const errors = [];
226
- if (!existsSync(workDir))
227
- mkdirSync(workDir, { recursive: true });
228
- await Promise.all(elements.map(async (element) => {
229
- if (signal?.aborted) {
230
- errors.push(`Cancelled: ${element.id}`);
231
- return;
232
- }
233
- try {
234
- let srcPath = element.src;
235
- if (!srcPath.startsWith("/") && !isHttpUrl(srcPath)) {
236
- srcPath = join(baseDir, srcPath);
237
- }
238
- if (isHttpUrl(srcPath)) {
239
- try {
240
- srcPath = await downloadToTemp(srcPath, workDir);
241
- }
242
- catch (err) {
243
- errors.push(`Download failed: ${element.id} — ${err instanceof Error ? err.message : String(err)}`);
244
- return;
245
- }
246
- }
247
- if (!existsSync(srcPath)) {
248
- errors.push(`Source not found: ${element.id}`);
249
- return;
250
- }
251
- // Fallback: if no duration was specified, probe the actual file
252
- if (element.end - element.start <= 0) {
253
- const metadata = await extractAudioMetadata(srcPath);
254
- const effectiveDuration = metadata.durationSeconds - element.mediaStart;
255
- element.end = element.start + (effectiveDuration > 0 ? effectiveDuration : metadata.durationSeconds);
256
- }
257
- let audioSrcPath = srcPath;
258
- if (element.type === "video") {
259
- const extractedPath = join(workDir, `${element.id}-extracted.wav`);
260
- const extractResult = await extractAudioFromVideo(srcPath, extractedPath, {
261
- startTime: element.mediaStart,
262
- duration: element.end - element.start,
263
- }, signal, config);
264
- if (!extractResult.success) {
265
- errors.push(`Extract failed: ${element.id}`);
266
- return;
267
- }
268
- audioSrcPath = extractedPath;
269
- }
270
- else {
271
- const trimmedPath = join(workDir, `${element.id}-trimmed.wav`);
272
- const prepResult = await prepareAudioTrack(srcPath, trimmedPath, element.mediaStart, element.end - element.start, signal, config);
273
- if (!prepResult.success) {
274
- errors.push(`Prepare failed: ${element.id}`);
275
- return;
276
- }
277
- audioSrcPath = trimmedPath;
278
- }
279
- tracks.push({
280
- id: element.id,
281
- srcPath: audioSrcPath,
282
- start: element.start,
283
- end: element.end,
284
- mediaStart: element.mediaStart,
285
- duration: element.end - element.start,
286
- volume: element.volume || 1.0,
287
- });
288
- }
289
- catch (err) {
290
- errors.push(`Error: ${element.id} — ${err instanceof Error ? err.message : String(err)}`);
291
- }
292
- }));
293
- const mixResult = await mixAudioTracks(tracks, outputPath, totalDuration, signal, config);
294
- try {
295
- rmSync(workDir, { recursive: true, force: true });
296
- }
297
- catch {
298
- /* ignore */
299
- }
300
- return {
301
- ...mixResult,
302
- durationMs: Date.now() - startMs,
303
- error: errors.length > 0 ? `Warnings: ${errors.join(", ")}` : mixResult.error,
304
- };
305
- }
306
- //# sourceMappingURL=audioMixer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioMixer.js","sourceRoot":"","sources":["../../src/services/audioMixer.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- export interface AudioElement {
2
- id: string;
3
- src: string;
4
- start: number;
5
- end: number;
6
- mediaStart: number;
7
- layer: number;
8
- volume?: number;
9
- type: "audio" | "video";
10
- }
11
- export interface AudioTrack {
12
- id: string;
13
- srcPath: string;
14
- start: number;
15
- end: number;
16
- mediaStart: number;
17
- duration: number;
18
- volume: number;
19
- }
20
- export interface MixResult {
21
- success: boolean;
22
- outputPath: string;
23
- durationMs: number;
24
- tracksProcessed: number;
25
- error?: string;
26
- }
27
- //# sourceMappingURL=audioMixer.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioMixer.types.d.ts","sourceRoot":"","sources":["../../src/services/audioMixer.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=audioMixer.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioMixer.types.js","sourceRoot":"","sources":["../../src/services/audioMixer.types.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- /**
2
- * Browser Manager
3
- *
4
- * Manages Puppeteer browser lifecycle: Chrome executable resolution,
5
- * launch args, pooled browser acquisition/release.
6
- */
7
- import type { Browser } from "puppeteer-core";
8
- import { type EngineConfig } from "../config.js";
9
- export type CaptureMode = "beginframe" | "screenshot";
10
- export interface AcquiredBrowser {
11
- browser: Browser;
12
- captureMode: CaptureMode;
13
- }
14
- /**
15
- * Resolve chrome-headless-shell binary for deterministic BeginFrame rendering.
16
- * Checks config.chromePath, then PRODUCER_HEADLESS_SHELL_PATH env var,
17
- * then scans Puppeteer's managed cache at ~/.cache/puppeteer/chrome-headless-shell/.
18
- */
19
- export declare function resolveHeadlessShellPath(config?: Partial<Pick<EngineConfig, "chromePath">>): string | undefined;
20
- export declare const ENABLE_BROWSER_POOL: boolean;
21
- export declare function acquireBrowser(chromeArgs: string[], config?: Partial<Pick<EngineConfig, "browserTimeout" | "protocolTimeout" | "enableBrowserPool" | "chromePath" | "forceScreenshot">>): Promise<AcquiredBrowser>;
22
- export declare function releaseBrowser(browser: Browser, config?: Partial<Pick<EngineConfig, "enableBrowserPool">>): Promise<void>;
23
- export interface BuildChromeArgsOptions {
24
- width: number;
25
- height: number;
26
- captureMode?: CaptureMode;
27
- }
28
- export declare function buildChromeArgs(options: BuildChromeArgsOptions, config?: Partial<Pick<EngineConfig, "disableGpu" | "chromePath">>): string[];
29
- //# sourceMappingURL=browserManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browserManager.d.ts","sourceRoot":"","sources":["../../src/services/browserManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmBjE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CA0B/G;AAOD,eAAO,MAAM,mBAAmB,SAAmC,CAAC;AAEpE,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,CAAC,EAAE,OAAO,CACd,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAClH,GACA,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAef;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,GAChE,MAAM,EAAE,CA4DV"}
@@ -1,175 +0,0 @@
1
- /**
2
- * Browser Manager
3
- *
4
- * Manages Puppeteer browser lifecycle: Chrome executable resolution,
5
- * launch args, pooled browser acquisition/release.
6
- */
7
- import { existsSync, readdirSync } from "fs";
8
- import { join } from "path";
9
- import { homedir } from "os";
10
- import { DEFAULT_CONFIG } from "../config.js";
11
- let _puppeteer;
12
- async function getPuppeteer() {
13
- if (_puppeteer)
14
- return _puppeteer;
15
- try {
16
- const mod = await import("puppeteer");
17
- _puppeteer = mod.default;
18
- }
19
- catch {
20
- const mod = await import("puppeteer-core");
21
- _puppeteer = mod.default;
22
- }
23
- if (!_puppeteer)
24
- throw new Error("Neither puppeteer nor puppeteer-core found");
25
- return _puppeteer;
26
- }
27
- /**
28
- * Resolve chrome-headless-shell binary for deterministic BeginFrame rendering.
29
- * Checks config.chromePath, then PRODUCER_HEADLESS_SHELL_PATH env var,
30
- * then scans Puppeteer's managed cache at ~/.cache/puppeteer/chrome-headless-shell/.
31
- */
32
- export function resolveHeadlessShellPath(config) {
33
- if (config?.chromePath) {
34
- return config.chromePath;
35
- }
36
- if (process.env.PRODUCER_HEADLESS_SHELL_PATH) {
37
- return process.env.PRODUCER_HEADLESS_SHELL_PATH;
38
- }
39
- const baseDir = join(homedir(), ".cache", "puppeteer", "chrome-headless-shell");
40
- if (!existsSync(baseDir))
41
- return undefined;
42
- try {
43
- const versions = readdirSync(baseDir).sort().reverse(); // newest first
44
- for (const version of versions) {
45
- const candidates = [
46
- join(baseDir, version, "chrome-headless-shell-linux64", "chrome-headless-shell"),
47
- join(baseDir, version, "chrome-headless-shell-mac-arm64", "chrome-headless-shell"),
48
- join(baseDir, version, "chrome-headless-shell-mac-x64", "chrome-headless-shell"),
49
- join(baseDir, version, "chrome-headless-shell-win64", "chrome-headless-shell.exe"),
50
- ];
51
- for (const binary of candidates) {
52
- if (existsSync(binary))
53
- return binary;
54
- }
55
- }
56
- }
57
- catch {
58
- // ignore
59
- }
60
- return undefined;
61
- }
62
- let pooledBrowser = null;
63
- let pooledBrowserRefCount = 0;
64
- let pooledCaptureMode = "screenshot";
65
- // Preserve the producer-era export so re-export shims keep the same public API.
66
- export const ENABLE_BROWSER_POOL = DEFAULT_CONFIG.enableBrowserPool;
67
- export async function acquireBrowser(chromeArgs, config) {
68
- const enablePool = config?.enableBrowserPool ?? DEFAULT_CONFIG.enableBrowserPool;
69
- if (enablePool && pooledBrowser) {
70
- pooledBrowserRefCount += 1;
71
- return { browser: pooledBrowser, captureMode: pooledCaptureMode };
72
- }
73
- // Config chromePath overrides env var / auto-detection.
74
- const headlessShell = resolveHeadlessShellPath(config);
75
- // BeginFrame requires chrome-headless-shell AND Linux (crashes on macOS/Windows).
76
- const isLinux = process.platform === "linux";
77
- const forceScreenshot = config?.forceScreenshot ?? DEFAULT_CONFIG.forceScreenshot;
78
- let captureMode;
79
- let executablePath;
80
- if (headlessShell && isLinux && !forceScreenshot) {
81
- captureMode = "beginframe";
82
- executablePath = headlessShell;
83
- }
84
- else {
85
- // Screenshot mode with renderSeek: works on all platforms.
86
- captureMode = "screenshot";
87
- if (headlessShell && !isLinux) {
88
- executablePath = headlessShell;
89
- }
90
- else {
91
- executablePath = undefined; // Puppeteer uses its bundled Chromium
92
- }
93
- }
94
- const ppt = await getPuppeteer();
95
- const browser = await ppt.launch({
96
- headless: true,
97
- args: chromeArgs,
98
- defaultViewport: null,
99
- executablePath,
100
- timeout: config?.browserTimeout ?? DEFAULT_CONFIG.browserTimeout,
101
- protocolTimeout: config?.protocolTimeout ?? DEFAULT_CONFIG.protocolTimeout,
102
- });
103
- if (enablePool) {
104
- pooledBrowser = browser;
105
- pooledBrowserRefCount = 1;
106
- pooledCaptureMode = captureMode;
107
- }
108
- return { browser, captureMode };
109
- }
110
- export async function releaseBrowser(browser, config) {
111
- const enablePool = config?.enableBrowserPool ?? DEFAULT_CONFIG.enableBrowserPool;
112
- if (!enablePool) {
113
- await browser.close().catch(() => { });
114
- return;
115
- }
116
- if (pooledBrowser && pooledBrowser === browser) {
117
- pooledBrowserRefCount = Math.max(0, pooledBrowserRefCount - 1);
118
- if (pooledBrowserRefCount === 0) {
119
- await browser.close().catch(() => { });
120
- pooledBrowser = null;
121
- }
122
- return;
123
- }
124
- await browser.close().catch(() => { });
125
- }
126
- export function buildChromeArgs(options, config) {
127
- // Chrome flags tuned for headless rendering performance.
128
- // Based on Remotion's open-browser.ts flags with additions for our use case.
129
- const chromeArgs = [
130
- "--no-sandbox",
131
- "--disable-setuid-sandbox",
132
- "--disable-dev-shm-usage",
133
- "--enable-webgl",
134
- "--ignore-gpu-blocklist",
135
- "--use-gl=angle",
136
- "--use-angle=swiftshader",
137
- "--font-render-hinting=none",
138
- "--force-color-profile=srgb",
139
- `--window-size=${options.width},${options.height}`,
140
- // Remotion perf flags — prevent Chrome from throttling background tabs/timers
141
- "--disable-background-timer-throttling",
142
- "--disable-backgrounding-occluded-windows",
143
- "--disable-renderer-backgrounding",
144
- "--disable-background-media-suspend",
145
- // Reduce overhead from unused Chrome features
146
- "--disable-breakpad",
147
- "--disable-component-extensions-with-background-pages",
148
- "--disable-default-apps",
149
- "--disable-extensions",
150
- "--disable-hang-monitor",
151
- "--disable-ipc-flooding-protection",
152
- "--disable-popup-blocking",
153
- "--disable-sync",
154
- "--disable-component-update",
155
- "--disable-domain-reliability",
156
- "--disable-print-preview",
157
- "--no-pings",
158
- "--no-zygote",
159
- // Memory
160
- "--force-gpu-mem-available-mb=4096",
161
- "--disk-cache-size=268435456",
162
- // Disable features that add overhead
163
- "--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,IntensiveWakeUpThrottling",
164
- ];
165
- // BeginFrame flags — only when using chrome-headless-shell on Linux
166
- if (options.captureMode !== "screenshot") {
167
- chromeArgs.push("--deterministic-mode", "--enable-begin-frame-control", "--disable-new-content-rendering-timeout", "--run-all-compositor-stages-before-draw", "--disable-threaded-animation", "--disable-threaded-scrolling", "--disable-checker-imaging", "--disable-image-animation-resync", "--enable-surface-synchronization");
168
- }
169
- const gpuDisabled = config?.disableGpu ?? DEFAULT_CONFIG.disableGpu;
170
- if (gpuDisabled) {
171
- chromeArgs.push("--disable-gpu");
172
- }
173
- return chromeArgs;
174
- }
175
- //# sourceMappingURL=browserManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browserManager.js","sourceRoot":"","sources":["../../src/services/browserManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAC;AAEjE,IAAI,UAAqC,CAAC;AAE1C,KAAK,UAAU,YAAY;IACzB,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAqB,CAAC,CAAC;QAChD,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC;AACpB,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAkD;IACzF,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAChF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG;gBACjB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,CAAC;gBAChF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,CAAC;gBAClF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,CAAC;gBAChF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,CAAC;aACnF,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,IAAI,UAAU,CAAC,MAAM,CAAC;oBAAE,OAAO,MAAM,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,IAAI,aAAa,GAAmB,IAAI,CAAC;AACzC,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAC9B,IAAI,iBAAiB,GAAgB,YAAY,CAAC;AAElD,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC,iBAAiB,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAoB,EACpB,MAEC;IAED,MAAM,UAAU,GAAG,MAAM,EAAE,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC;IAEjF,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;QAChC,qBAAqB,IAAI,CAAC,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACpE,CAAC;IAED,wDAAwD;IACxD,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEvD,kFAAkF;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,cAAc,CAAC,eAAe,CAAC;IAClF,IAAI,WAAwB,CAAC;IAC7B,IAAI,cAAkC,CAAC;IAEvC,IAAI,aAAa,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,WAAW,GAAG,YAAY,CAAC;QAC3B,cAAc,GAAG,aAAa,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,2DAA2D;QAC3D,WAAW,GAAG,YAAY,CAAC;QAC3B,IAAI,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,cAAc,GAAG,aAAa,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,SAAS,CAAC,CAAC,sCAAsC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,IAAI;QACrB,cAAc;QACd,OAAO,EAAE,MAAM,EAAE,cAAc,IAAI,cAAc,CAAC,cAAc;QAChE,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,cAAc,CAAC,eAAe;KAC3E,CAAC,CAAC;IACH,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,GAAG,OAAO,CAAC;QACxB,qBAAqB,GAAG,CAAC,CAAC;QAC1B,iBAAiB,GAAG,WAAW,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,MAAyD;IAEzD,MAAM,UAAU,GAAG,MAAM,EAAE,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC;IACjF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC/C,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,qBAAqB,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtC,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAQD,MAAM,UAAU,eAAe,CAC7B,OAA+B,EAC/B,MAAiE;IAEjE,yDAAyD;IACzD,6EAA6E;IAC7E,MAAM,UAAU,GAAG;QACjB,cAAc;QACd,0BAA0B;QAC1B,yBAAyB;QACzB,gBAAgB;QAChB,wBAAwB;QACxB,gBAAgB;QAChB,yBAAyB;QACzB,4BAA4B;QAC5B,4BAA4B;QAC5B,iBAAiB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;QAClD,8EAA8E;QAC9E,uCAAuC;QACvC,0CAA0C;QAC1C,kCAAkC;QAClC,oCAAoC;QACpC,8CAA8C;QAC9C,oBAAoB;QACpB,sDAAsD;QACtD,wBAAwB;QACxB,sBAAsB;QACtB,wBAAwB;QACxB,mCAAmC;QACnC,0BAA0B;QAC1B,gBAAgB;QAChB,4BAA4B;QAC5B,8BAA8B;QAC9B,yBAAyB;QACzB,YAAY;QACZ,aAAa;QACb,SAAS;QACT,mCAAmC;QACnC,6BAA6B;QAC7B,qCAAqC;QACrC,kIAAkI;KACnI,CAAC;IAEF,oEAAoE;IACpE,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACzC,UAAU,CAAC,IAAI,CACb,sBAAsB,EACtB,8BAA8B,EAC9B,yCAAyC,EACzC,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,kCAAkC,EAClC,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,EAAE,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC;IACpE,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Chunk Encoder Service
3
- *
4
- * Encodes captured frames into video using FFmpeg.
5
- * Supports CPU (libx264) and GPU encoding.
6
- */
7
- import { type EngineConfig } from "../config.js";
8
- import type { EncoderOptions, EncodeResult, MuxResult } from "./chunkEncoder.types.js";
9
- export type { EncoderOptions, EncodeResult, MuxResult } from "./chunkEncoder.types.js";
10
- export declare const ENCODER_PRESETS: {
11
- draft: {
12
- preset: string;
13
- quality: number;
14
- codec: "h264";
15
- };
16
- standard: {
17
- preset: string;
18
- quality: number;
19
- codec: "h264";
20
- };
21
- high: {
22
- preset: string;
23
- quality: number;
24
- codec: "h264";
25
- };
26
- };
27
- export { detectGpuEncoder, type GpuEncoder } from "../utils/gpuEncoder.js";
28
- export declare function encodeFramesFromDir(framesDir: string, framePattern: string, outputPath: string, options: EncoderOptions, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegEncodeTimeout">>): Promise<EncodeResult>;
29
- export declare function encodeFramesChunkedConcat(framesDir: string, framePattern: string, outputPath: string, options: EncoderOptions, chunkSizeFrames: number, signal?: AbortSignal): Promise<EncodeResult>;
30
- export declare function muxVideoWithAudio(videoPath: string, audioPath: string, outputPath: string, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegProcessTimeout">>): Promise<MuxResult>;
31
- export declare function applyFaststart(inputPath: string, outputPath: string, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegProcessTimeout">>): Promise<MuxResult>;
32
- //# sourceMappingURL=chunkEncoder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunkEncoder.d.ts","sourceRoot":"","sources":["../../src/services/chunkEncoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEvF,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEvF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAI3B,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA0E3E,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,GAC1D,OAAO,CAAC,YAAY,CAAC,CAiGvB;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAmHvB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC,GAC3D,OAAO,CAAC,SAAS,CAAC,CAsCpB;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC,GAC3D,OAAO,CAAC,SAAS,CAAC,CAmBpB"}