@hyperframes/engine 0.7.89 → 0.7.92
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/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/services/extractionCache.d.ts +6 -3
- package/dist/services/extractionCache.d.ts.map +1 -1
- package/dist/services/extractionCache.js +4 -1
- package/dist/services/extractionCache.js.map +1 -1
- package/dist/services/systemMemory.d.ts +5 -0
- package/dist/services/systemMemory.d.ts.map +1 -1
- package/dist/services/systemMemory.js +6 -2
- package/dist/services/systemMemory.js.map +1 -1
- package/dist/services/videoFrameExtractor.d.ts +79 -1
- package/dist/services/videoFrameExtractor.d.ts.map +1 -1
- package/dist/services/videoFrameExtractor.js +331 -52
- package/dist/services/videoFrameExtractor.js.map +1 -1
- package/dist/utils/ffprobe.d.ts +33 -0
- package/dist/utils/ffprobe.d.ts.map +1 -1
- package/dist/utils/ffprobe.js +298 -18
- package/dist/utils/ffprobe.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
export type { HfProtocol, HfMediaElement, HfTransitionMeta, CaptureOptions, CaptureVideoMetadataHint, CaptureResult, CaptureBufferResult, CapturePerfSummary, CaptureWarning, CaptureWarningCode, SubTimelineWaitOutcome, } from "./types.js";
|
|
33
33
|
export { resolveConfig, validateEngineConfigSnapshot, DEFAULT_CONFIG, scaleProtocolTimeoutForComposition, shouldClampToScreenshotForConcreteGpu, applyConcreteGpuScreenshotClamp, resolveExtractCacheDir, defaultExtractCacheDir, EXTRACT_CACHE_DIR_DISABLED_ALIASES, type EngineConfig, type ExtractCacheDirResolution, } from "./config.js";
|
|
34
34
|
export { DEFAULT_VP9_CPU_USED, MAX_VP9_CPU_USED, MIN_VP9_CPU_USED, normalizeVp9CpuUsed, } from "./services/vp9Options.js";
|
|
35
|
-
export { getSystemTotalMb, isLowMemorySystem, LOW_MEMORY_TOTAL_MB_THRESHOLD, } from "./services/systemMemory.js";
|
|
35
|
+
export { getCgroupMemoryLimitMb, getSystemTotalMb, isLowMemorySystem, LOW_MEMORY_TOTAL_MB_THRESHOLD, } from "./services/systemMemory.js";
|
|
36
36
|
export { acquireBrowser, releaseBrowser, drainBrowserPool, resolveHeadlessShellPath, resolveBrowserGpuMode, buildChromeArgs, ENABLE_BROWSER_POOL, BrowserLeasePool, type BuildChromeArgsOptions, type BrowserLaunchFingerprint, type BrowserLease, type BrowserPoolState, type CaptureMode, type AcquiredBrowser, } from "./services/browserManager.js";
|
|
37
37
|
export { augmentProtocolTimeoutError, isProtocolTimeoutError, } from "./services/protocolTimeoutErrorHint.js";
|
|
38
38
|
export { augmentPageNavigationTimeoutError, isPageNavigationTimeoutError, type NavigationTimeoutHintContext, } from "./services/pageNavigationTimeoutErrorHint.js";
|
|
@@ -42,7 +42,7 @@ export { beginFrameCapture, pageScreenshotCapture, getCdpSession, injectVideoFra
|
|
|
42
42
|
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, type GpuEncoder, } from "./services/chunkEncoder.js";
|
|
43
43
|
export type { EncoderOptions, EncodeResult, MuxResult } from "./services/chunkEncoder.types.js";
|
|
44
44
|
export { spawnStreamingEncoder, createFrameReorderBuffer, type StreamingEncoder, type StreamingEncoderOptions, type StreamingEncoderResult, type FrameReorderBuffer, } from "./services/streamingEncoder.js";
|
|
45
|
-
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, VideoSourceExtractionError, type VideoElement, type ImageElement, type ExtractedFrames, type ExtractionOptions, type ExtractionResult, type ExtractionPhaseBreakdown, type VideoExtractionFailure, type VideoExtractionFailureKind, type VideoFrameFormat, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
45
|
+
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveTimelineExtractionWindow, resolveVideoExtractionWindow, resolveFinalFrameExtractionWindow, resolveVideoExtractionDuration, resolvePlayableVideoDuration, extractionFrameCountForDuration, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, VideoSourceExtractionError, type VideoElement, type ImageElement, type ExtractedFrames, type ExtractionOptions, type ExtractionResult, type ExtractionPhaseBreakdown, type TimelineExtractionWindow, type VideoExtractionFailure, type VideoExtractionFailureKind, type VideoFrameFormat, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
46
46
|
export { createVideoFrameInjector } from "./services/videoFrameInjector.js";
|
|
47
47
|
export { parseAudioElements, processCompositionAudio } from "./services/audioMixer.js";
|
|
48
48
|
export { cloneCaptureWarning, cloneCaptureWarnings } from "./services/captureWarning.js";
|
|
@@ -52,7 +52,7 @@ export { createFileServer, type FileServerOptions, type FileServerHandle, } from
|
|
|
52
52
|
export { quantizeTimeToFrame, MEDIA_VISUAL_STYLE_PROPERTIES } from "@hyperframes/core";
|
|
53
53
|
export { assertSwiftShader, readWebGlVendorInfo, SwiftShaderAssertionError, BROWSER_GPU_NOT_SOFTWARE, } from "./utils/assertSwiftShader.js";
|
|
54
54
|
export { readWebGlVendorInfoFromCanvas } from "./utils/readWebGlVendorInfoFromCanvas.js";
|
|
55
|
-
export { extractMediaMetadata, extractVideoMetadata, extractAudioMetadata, analyzeKeyframeIntervals, type VideoMetadata, type AudioMetadata, type KeyframeAnalysis, } from "./utils/ffprobe.js";
|
|
55
|
+
export { extractMediaMetadata, extractVideoMetadata, extractFinalVideoFrameTimestamp, extractAudioMetadata, probeMediaProfile, analyzeKeyframeIntervals, type VideoMetadata, type AudioMetadata, type MediaProbeProfile, type KeyframeAnalysis, } from "./utils/ffprobe.js";
|
|
56
56
|
export { assertPublicHttpsUrl, downloadToTemp, isHttpUrl } from "./utils/urlDownloader.js";
|
|
57
57
|
export { runFfmpeg, formatFfmpegError, type RunFfmpegOptions, type RunFfmpegResult, } from "./utils/runFfmpeg.js";
|
|
58
58
|
export { ManagedChildProcess, type ManagedChildProcessOptions, type ManagedChildProcessOutcome, type ManagedProcessTerminationReason, } from "./utils/managedChildProcess.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
// ── Configuration ──────────────────────────────────────────────────────────────
|
|
33
33
|
export { resolveConfig, validateEngineConfigSnapshot, DEFAULT_CONFIG, scaleProtocolTimeoutForComposition, shouldClampToScreenshotForConcreteGpu, applyConcreteGpuScreenshotClamp, resolveExtractCacheDir, defaultExtractCacheDir, EXTRACT_CACHE_DIR_DISABLED_ALIASES, } from "./config.js";
|
|
34
34
|
export { DEFAULT_VP9_CPU_USED, MAX_VP9_CPU_USED, MIN_VP9_CPU_USED, normalizeVp9CpuUsed, } from "./services/vp9Options.js";
|
|
35
|
-
export { getSystemTotalMb, isLowMemorySystem, LOW_MEMORY_TOTAL_MB_THRESHOLD, } from "./services/systemMemory.js";
|
|
35
|
+
export { getCgroupMemoryLimitMb, getSystemTotalMb, isLowMemorySystem, LOW_MEMORY_TOTAL_MB_THRESHOLD, } from "./services/systemMemory.js";
|
|
36
36
|
// ── Browser management ─────────────────────────────────────────────────────────
|
|
37
37
|
export { acquireBrowser, releaseBrowser, drainBrowserPool, resolveHeadlessShellPath, resolveBrowserGpuMode, buildChromeArgs, ENABLE_BROWSER_POOL, BrowserLeasePool, } from "./services/browserManager.js";
|
|
38
38
|
export { augmentProtocolTimeoutError, isProtocolTimeoutError, } from "./services/protocolTimeoutErrorHint.js";
|
|
@@ -46,7 +46,7 @@ export { beginFrameCapture, pageScreenshotCapture, getCdpSession, injectVideoFra
|
|
|
46
46
|
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, } from "./services/chunkEncoder.js";
|
|
47
47
|
export { spawnStreamingEncoder, createFrameReorderBuffer, } from "./services/streamingEncoder.js";
|
|
48
48
|
// ── Media processing ───────────────────────────────────────────────────────────
|
|
49
|
-
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, VideoSourceExtractionError, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
49
|
+
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveTimelineExtractionWindow, resolveVideoExtractionWindow, resolveFinalFrameExtractionWindow, resolveVideoExtractionDuration, resolvePlayableVideoDuration, extractionFrameCountForDuration, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, VideoSourceExtractionError, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
50
50
|
export { createVideoFrameInjector } from "./services/videoFrameInjector.js";
|
|
51
51
|
export { parseAudioElements, processCompositionAudio } from "./services/audioMixer.js";
|
|
52
52
|
export { cloneCaptureWarning, cloneCaptureWarnings } from "./services/captureWarning.js";
|
|
@@ -58,7 +58,7 @@ export { createFileServer, } from "./services/fileServer.js";
|
|
|
58
58
|
export { quantizeTimeToFrame, MEDIA_VISUAL_STYLE_PROPERTIES } from "@hyperframes/core";
|
|
59
59
|
export { assertSwiftShader, readWebGlVendorInfo, SwiftShaderAssertionError, BROWSER_GPU_NOT_SOFTWARE, } from "./utils/assertSwiftShader.js";
|
|
60
60
|
export { readWebGlVendorInfoFromCanvas } from "./utils/readWebGlVendorInfoFromCanvas.js";
|
|
61
|
-
export { extractMediaMetadata, extractVideoMetadata, extractAudioMetadata, analyzeKeyframeIntervals, } from "./utils/ffprobe.js";
|
|
61
|
+
export { extractMediaMetadata, extractVideoMetadata, extractFinalVideoFrameTimestamp, extractAudioMetadata, probeMediaProfile, analyzeKeyframeIntervals, } from "./utils/ffprobe.js";
|
|
62
62
|
export { assertPublicHttpsUrl, downloadToTemp, isHttpUrl } from "./utils/urlDownloader.js";
|
|
63
63
|
export { runFfmpeg, formatFfmpegError, } from "./utils/runFfmpeg.js";
|
|
64
64
|
export { ManagedChildProcess, } from "./utils/managedChildProcess.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAiBH,kFAAkF;AAClF,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,+BAA+B,EAC/B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,GAGnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GAOjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAE7B,MAAM,8CAA8C,CAAC;AAEtD,mFAAmF;AACnF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EAEjC,kCAAkC,EAClC,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,6BAA6B,EAE7B,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AAEtC,mFAAmF;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,kFAAkF;AAClF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;AAExC,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,11 @@ export declare const GC_MARKER = ".hf-last-gc";
|
|
|
44
44
|
* VFR-to-CFR re-encode, changing frame contents for VFR sources under
|
|
45
45
|
* identical key tuples. Without the bump, warm v2 entries (two-pass frames)
|
|
46
46
|
* would keep being served across the deploy boundary.
|
|
47
|
+
* v3 -> v4: the target fps identity is the exact FFmpeg argument instead of
|
|
48
|
+
* a JavaScript number. This invalidates entries created after rational NTSC
|
|
49
|
+
* rates had already been rounded to a decimal.
|
|
47
50
|
*/
|
|
48
|
-
export declare const SCHEMA_PREFIX = "hfcache-
|
|
51
|
+
export declare const SCHEMA_PREFIX = "hfcache-v4-";
|
|
49
52
|
export type CacheFrameFormat = "jpg" | "png";
|
|
50
53
|
export interface CacheKeyInput {
|
|
51
54
|
/** Absolute path to the source video file. Part of the key so moved files
|
|
@@ -61,8 +64,8 @@ export interface CacheKeyInput {
|
|
|
61
64
|
* so callers that pass an unresolved "natural duration" still produce a
|
|
62
65
|
* stable key across invocations. */
|
|
63
66
|
duration: number;
|
|
64
|
-
/**
|
|
65
|
-
fps:
|
|
67
|
+
/** Exact target output frame-rate argument (for example `30000/1001`). */
|
|
68
|
+
fps: string;
|
|
66
69
|
/** Output image format. */
|
|
67
70
|
format: CacheFrameFormat;
|
|
68
71
|
/** Optional source transform applied during extraction. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractionCache.d.ts","sourceRoot":"","sources":["../../src/services/extractionCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAeH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD,8EAA8E;AAC9E,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"extractionCache.d.ts","sourceRoot":"","sources":["../../src/services/extractionCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,8 +46,11 @@ export const GC_MARKER = ".hf-last-gc";
|
|
|
46
46
|
* VFR-to-CFR re-encode, changing frame contents for VFR sources under
|
|
47
47
|
* identical key tuples. Without the bump, warm v2 entries (two-pass frames)
|
|
48
48
|
* would keep being served across the deploy boundary.
|
|
49
|
+
* v3 -> v4: the target fps identity is the exact FFmpeg argument instead of
|
|
50
|
+
* a JavaScript number. This invalidates entries created after rational NTSC
|
|
51
|
+
* rates had already been rounded to a decimal.
|
|
49
52
|
*/
|
|
50
|
-
export const SCHEMA_PREFIX = "hfcache-
|
|
53
|
+
export const SCHEMA_PREFIX = "hfcache-v4-";
|
|
51
54
|
/** Truncated hex chars of SHA-256 used for the entry directory name. */
|
|
52
55
|
const KEY_HEX_CHARS = 16;
|
|
53
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractionCache.js","sourceRoot":"","sources":["../../src/services/extractionCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE9C,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"extractionCache.js","sourceRoot":"","sources":["../../src/services/extractionCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
export declare function parseCgroupLimitMb(v2Content: string | null, v1Content: string | null): number | null;
|
|
12
12
|
/** Test-only: reset the cached cgroup memory probe. */
|
|
13
13
|
export declare function _resetCgroupLimitCacheForTests(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Actual Linux cgroup memory ceiling in MiB, or null when the process is not
|
|
16
|
+
* cgroup-limited. Unlike getSystemTotalMb this never falls back to host RAM.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCgroupMemoryLimitMb(): number | null;
|
|
14
19
|
/** Total physical RAM in MiB. */
|
|
15
20
|
export declare function getSystemTotalMb(): number;
|
|
16
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemMemory.d.ts","sourceRoot":"","sources":["../../src/services/systemMemory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,GAAG,IAAI,CAMf;AAoCD,uDAAuD;AACvD,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD;
|
|
1
|
+
{"version":3,"file":"systemMemory.d.ts","sourceRoot":"","sources":["../../src/services/systemMemory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,GAAG,IAAI,CAMf;AAoCD,uDAAuD;AACvD,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAsBtD;AAqCD,iCAAiC;AACjC,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAA2B,GAAG,OAAO,CAE/E"}
|
|
@@ -62,7 +62,11 @@ export function _resetCgroupLimitCacheForTests() {
|
|
|
62
62
|
_cachedCgroupLimitMb = undefined;
|
|
63
63
|
_warnedCgroupReadFailure = false;
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Actual Linux cgroup memory ceiling in MiB, or null when the process is not
|
|
67
|
+
* cgroup-limited. Unlike getSystemTotalMb this never falls back to host RAM.
|
|
68
|
+
*/
|
|
69
|
+
export function getCgroupMemoryLimitMb() {
|
|
66
70
|
if (_cachedCgroupLimitMb !== undefined)
|
|
67
71
|
return _cachedCgroupLimitMb;
|
|
68
72
|
if (process.platform !== "linux") {
|
|
@@ -114,7 +118,7 @@ function warnCgroupReadFailure(path, error) {
|
|
|
114
118
|
/** Total physical RAM in MiB. */
|
|
115
119
|
export function getSystemTotalMb() {
|
|
116
120
|
const hostTotalMb = Math.floor(totalmem() / BYTES_PER_MIB);
|
|
117
|
-
const cgroupLimitMb =
|
|
121
|
+
const cgroupLimitMb = getCgroupMemoryLimitMb();
|
|
118
122
|
return cgroupLimitMb === null ? hostTotalMb : Math.min(hostTotalMb, cgroupLimitMb);
|
|
119
123
|
}
|
|
120
124
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemMemory.js","sourceRoot":"","sources":["../../src/services/systemMemory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,MAAM,oBAAoB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,yEAAyE;AACzE,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,2BAA2B,GAAG,6CAA6C,CAAC;AAClF,kHAAkH;AAClH,MAAM,+BAA+B,GAAG,EAAE,IAAI,GAAG,CAAC;AAElD,IAAI,oBAA+C,CAAC;AACpD,IAAI,wBAAwB,GAAG,KAAK,CAAC;AAErC,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAChC,SAAwB,EACxB,SAAwB;IAExB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAsB;IAClD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe,EAAE,kBAA2B;IAC5E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,kBAAkB,KAAK,SAAS,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,8BAA8B;IAC5C,oBAAoB,GAAG,SAAS,CAAC;IACjC,wBAAwB,GAAG,KAAK,CAAC;AACnC,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"systemMemory.js","sourceRoot":"","sources":["../../src/services/systemMemory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Pre-extracts video frames using FFmpeg for frame-accurate rendering.
|
|
5
5
|
* Videos are replaced with <img> elements during capture.
|
|
6
6
|
*/
|
|
7
|
+
import { type FpsInput } from "@hyperframes/core";
|
|
7
8
|
import { type VideoMetadata } from "../utils/ffprobe.js";
|
|
8
9
|
import { type HdrTransfer } from "../utils/hdr.js";
|
|
9
10
|
import { type EngineConfig } from "../config.js";
|
|
@@ -44,12 +45,32 @@ export declare const VIDEO_FRAME_FORMATS: readonly ["auto", "jpg", "png"];
|
|
|
44
45
|
export type VideoFrameFormat = (typeof VIDEO_FRAME_FORMATS)[number];
|
|
45
46
|
/** Runtime guard for {@link VideoFrameFormat} over an untrusted value. */
|
|
46
47
|
export declare function isVideoFrameFormat(value: unknown): value is VideoFrameFormat;
|
|
48
|
+
/**
|
|
49
|
+
* Resolve the frame count produced for a requested extraction duration.
|
|
50
|
+
*
|
|
51
|
+
* CFR extraction uses FFmpeg's fps filter, whose end boundary rounds to the
|
|
52
|
+
* nearest frame. The VFR path normalizes with `-fps_mode cfr -r`, whose end
|
|
53
|
+
* boundary rounds up. Keep this calculation shared by superset slicing and
|
|
54
|
+
* producer coverage accounting so a complete VFR extraction cannot be
|
|
55
|
+
* rejected because the two paths disagree by one frame.
|
|
56
|
+
*/
|
|
57
|
+
export declare function extractionFrameCountForDuration(durationSeconds: number, fps: FpsInput, isVFR: boolean): number;
|
|
47
58
|
export interface ExtractionOptions {
|
|
48
|
-
|
|
59
|
+
/** Exact configured rate. Rational rates are passed to FFmpeg verbatim. */
|
|
60
|
+
fps: FpsInput;
|
|
49
61
|
outputDir: string;
|
|
50
62
|
quality?: number;
|
|
51
63
|
format?: VideoFrameFormat;
|
|
52
64
|
sdrToHdrTransfer?: HdrTransfer;
|
|
65
|
+
/** Extract exactly one frame at `startTime`. Used only after ffprobe has
|
|
66
|
+
* resolved the actual final decoded-frame timestamp for a held tail. */
|
|
67
|
+
finalFrameOnly?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Absolute composition/timeline end in seconds. Applied only after source
|
|
70
|
+
* metadata resolves open-ended/natural-duration media. Invisible negative
|
|
71
|
+
* preroll is trimmed while advancing mediaStart to preserve source alignment.
|
|
72
|
+
*/
|
|
73
|
+
timelineEnd?: number;
|
|
53
74
|
/**
|
|
54
75
|
* Bounded per-source FFmpeg retries. Default 0 preserves stable behavior;
|
|
55
76
|
* the producer may canary at most one retry after observing typed failures.
|
|
@@ -170,6 +191,62 @@ export declare function extractVideoFramesRange(videoPath: string, videoId: stri
|
|
|
170
191
|
*/
|
|
171
192
|
outputDirOverride?: string): Promise<ExtractedFrames>;
|
|
172
193
|
export declare function classifyFfmpegSpawnError(error: unknown, stderr?: string): VideoSourceExtractionError;
|
|
194
|
+
/**
|
|
195
|
+
* Return the range that can actually produce video frames.
|
|
196
|
+
*
|
|
197
|
+
* Container duration may include a longer audio stream or mux padding. Using
|
|
198
|
+
* it for video extraction planning can reserve raw-frame scratch for seconds
|
|
199
|
+
* where no video frames exist. `extractMediaMetadata` already falls back to
|
|
200
|
+
* the container duration when ffprobe omits the stream duration; keep the
|
|
201
|
+
* explicit fallback here for callers supplying older/manual metadata.
|
|
202
|
+
*/
|
|
203
|
+
export declare function resolvePlayableVideoDuration(metadata: VideoMetadata): number;
|
|
204
|
+
export interface TimelineExtractionWindow {
|
|
205
|
+
compositionStart: number;
|
|
206
|
+
mediaStart: number;
|
|
207
|
+
durationSeconds: number;
|
|
208
|
+
/**
|
|
209
|
+
* Preserve the authored timeline origin and mediaStart for lookup. This is
|
|
210
|
+
* required when a looped visible interval crosses a source boundary and
|
|
211
|
+
* still needs modulo phase against the complete extracted source cycle.
|
|
212
|
+
*/
|
|
213
|
+
preserveTimelinePhase?: boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Keep the authored end while rebasing start/mediaStart to the extracted
|
|
216
|
+
* source suffix. Non-looping lookup then holds the suffix's final frame
|
|
217
|
+
* through the remainder of the authored slot.
|
|
218
|
+
*/
|
|
219
|
+
preserveTimelineEnd?: boolean;
|
|
220
|
+
/** This window reaches a held tail and must be checked against the actual
|
|
221
|
+
* final decoded-frame timestamp before extraction. */
|
|
222
|
+
ensureFinalFrame?: boolean;
|
|
223
|
+
/** Source timestamp used by FFmpeg when it differs from the logical lookup
|
|
224
|
+
* mediaStart (the one-frame held-tail representation). */
|
|
225
|
+
extractionMediaStart?: number;
|
|
226
|
+
/** FFmpeg emits one decoded frame; lookup then holds that frame. */
|
|
227
|
+
finalFrameOnly?: boolean;
|
|
228
|
+
}
|
|
229
|
+
type TimelineWindowVideo = Pick<VideoElement, "start" | "end" | "mediaStart"> & Partial<Pick<VideoElement, "loop">>;
|
|
230
|
+
/**
|
|
231
|
+
* Intersect an authored slot with the render timeline, then select the
|
|
232
|
+
* smallest playable source range that preserves timeline lookup semantics.
|
|
233
|
+
*
|
|
234
|
+
* A finite authored slot can outlive the source. In that case FFmpeg should
|
|
235
|
+
* still extract at most one source range: lookup either wraps that range for
|
|
236
|
+
* loops or holds its final frame for non-looping video. Keeping the authored
|
|
237
|
+
* timeline origin separate from the extracted range is what makes both
|
|
238
|
+
* behaviours survive the source-duration cap.
|
|
239
|
+
*/
|
|
240
|
+
export declare function resolveTimelineExtractionWindow(video: TimelineWindowVideo, resolvedDuration: number, timelineEnd?: number, sourceDuration?: number): TimelineExtractionWindow;
|
|
241
|
+
/**
|
|
242
|
+
* Replace a held-tail suffix that starts at/after the final decoded timestamp
|
|
243
|
+
* with one exact frame. This keeps raw HDR scratch O(one frame) without
|
|
244
|
+
* assuming a one-second seek window contains a CFR/VFR timestamp.
|
|
245
|
+
*/
|
|
246
|
+
export declare function resolveFinalFrameExtractionWindow(videoPath: string, video: TimelineWindowVideo, metadata: VideoMetadata, window: TimelineExtractionWindow, signal?: AbortSignal): Promise<TimelineExtractionWindow>;
|
|
247
|
+
/** Resolve source duration first, then intersect it with the render timeline. */
|
|
248
|
+
export declare function resolveVideoExtractionWindow(video: TimelineWindowVideo, metadata: VideoMetadata, timelineEnd?: number): TimelineExtractionWindow;
|
|
249
|
+
export declare function resolveVideoExtractionDuration(video: TimelineWindowVideo, metadata: VideoMetadata, timelineEnd?: number): number;
|
|
173
250
|
export declare function codecMayHaveAlpha(codec: string | undefined): boolean;
|
|
174
251
|
export declare function decoderForCodec(codec: string | undefined): string;
|
|
175
252
|
export declare function resolveFrameFormat(metadata: VideoMetadata, requested?: VideoFrameFormat): CacheFrameFormat;
|
|
@@ -228,4 +305,5 @@ export declare class FrameLookupTable {
|
|
|
228
305
|
cleanup(): void;
|
|
229
306
|
}
|
|
230
307
|
export declare function createFrameLookupTable(videos: VideoElement[], extracted: ExtractedFrames[]): FrameLookupTable;
|
|
308
|
+
export {};
|
|
231
309
|
//# sourceMappingURL=videoFrameExtractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"AACA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAKH,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAWL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,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,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iCAAkC,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CA2DR;AAED,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B;6EACyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAUD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;sEAEkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,0BAA0B,GAClC,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,GACf,0BAA0B,GAC1B,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAIjD,QAAQ,CAAC,IAAI,EAAE,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO;IAE3B,QAAQ,CAAC,UAAU,EAAE,MAAM;IAN7B,QAAQ,CAAC,qCAAqC,EAAG,IAAI,CAAU;gBAGpD,IAAI,EAAE,0BAA0B,EAChC,SAAS,EAAE,OAAO,EAC3B,OAAO,EAAE,MAAM,EACN,UAAU,GAAE,MAAgB;CAKxC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAOhG;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAkJvF;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACzB,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,wBAAwB,CAAC;CAC1C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAwD/D;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAqC/D;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAC5D;;;;;GAKG;AACH,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,eAAe,CAAC,CAsK1B;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,SAAK,GAAG,0BAA0B,CAuBhG;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAK5E;AAED,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;2DACuD;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;+DAC2D;IAC3D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,KAAK,GAAG,YAAY,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAOtC;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,mBAAmB,EAC1B,gBAAgB,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,wBAAwB,CAsE1B;AAED;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,wBAAwB,CAwB1B;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAYD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKjE;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,gBAAgB,GAC3B,gBAAgB,CAIlB;AA6ND;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CA0CR;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,EAC1B,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CACd,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC,CACxF,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA+oB3B;AA0BD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,UAAQ,EACZ,UAAU,SAAI,GACb,MAAM,GAAG,IAAI,CAGf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQhE;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CASA;IACd,OAAO,CAAC,aAAa,CAOb;IACR,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAuB;IAEvC,QAAQ,CACN,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,IAAI,UAAQ,GACX,IAAI;IAQP,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAe5D,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,gBAAgB;IA4CxB,sBAAsB,CACpB,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAsBzD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IASxD,OAAO,IAAI,IAAI;CAchB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EAAE,EACtB,SAAS,EAAE,eAAe,EAAE,GAC3B,gBAAgB,CAWlB"}
|