cursedbelt 3.0.2 → 4.1.0
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/react/components/ListToolbar.d.ts +94 -0
- package/dist/react/components/ListToolbar.d.ts.map +1 -0
- package/dist/react/components/ListToolbar.js +66 -0
- package/dist/react/components/ListToolbar.js.map +1 -0
- package/dist/react/file-tree/FileTree.d.ts +282 -3
- package/dist/react/file-tree/FileTree.d.ts.map +1 -1
- package/dist/react/file-tree/FileTree.js +799 -131
- package/dist/react/file-tree/FileTree.js.map +1 -1
- package/dist/react/file-tree/fileTree.css +151 -0
- package/dist/react/file-tree/fileTreeSelection.d.ts +187 -0
- package/dist/react/file-tree/fileTreeSelection.d.ts.map +1 -0
- package/dist/react/file-tree/fileTreeSelection.js +264 -0
- package/dist/react/file-tree/fileTreeSelection.js.map +1 -0
- package/dist/react/file-tree/index.d.ts +1 -0
- package/dist/react/file-tree/index.d.ts.map +1 -1
- package/dist/react/file-tree/index.js +8 -0
- package/dist/react/file-tree/index.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/lib/form.d.ts +3 -0
- package/dist/react/lib/form.d.ts.map +1 -1
- package/dist/react/lib/form.js +43 -5
- package/dist/react/lib/form.js.map +1 -1
- package/dist/react/media/DenseGalleryShell.d.ts +19 -3
- package/dist/react/media/DenseGalleryShell.d.ts.map +1 -1
- package/dist/react/media/DenseGalleryShell.js +55 -15
- package/dist/react/media/DenseGalleryShell.js.map +1 -1
- package/dist/react/media/FocusViewer.d.ts.map +1 -1
- package/dist/react/media/FocusViewer.js +14 -14
- package/dist/react/media/FocusViewer.js.map +1 -1
- package/dist/react/media/FrameGrabber.d.ts +23 -0
- package/dist/react/media/FrameGrabber.d.ts.map +1 -1
- package/dist/react/media/FrameGrabber.js +67 -1
- package/dist/react/media/FrameGrabber.js.map +1 -1
- package/dist/react/media/MediaResize.d.ts +51 -19
- package/dist/react/media/MediaResize.d.ts.map +1 -1
- package/dist/react/media/MediaResize.js +20 -13
- package/dist/react/media/MediaResize.js.map +1 -1
- package/dist/react/media/VideoChapterEditor.d.ts +67 -0
- package/dist/react/media/VideoChapterEditor.d.ts.map +1 -0
- package/dist/react/media/VideoChapterEditor.js +148 -0
- package/dist/react/media/VideoChapterEditor.js.map +1 -0
- package/dist/react/media/VideoPlayer.d.ts +46 -4
- package/dist/react/media/VideoPlayer.d.ts.map +1 -1
- package/dist/react/media/VideoPlayer.js +124 -11
- package/dist/react/media/VideoPlayer.js.map +1 -1
- package/dist/react/media/VideoTurner.d.ts +15 -2
- package/dist/react/media/VideoTurner.d.ts.map +1 -1
- package/dist/react/media/VideoTurner.js +29 -2
- package/dist/react/media/VideoTurner.js.map +1 -1
- package/dist/react/media/denseGallery.css +104 -46
- package/dist/react/media/hlsSource.d.ts +57 -0
- package/dist/react/media/hlsSource.d.ts.map +1 -1
- package/dist/react/media/hlsSource.js +177 -1
- package/dist/react/media/hlsSource.js.map +1 -1
- package/dist/react/media/index.d.ts +2 -0
- package/dist/react/media/index.d.ts.map +1 -1
- package/dist/react/media/index.js +6 -0
- package/dist/react/media/index.js.map +1 -1
- package/dist/react/media/mediaResize.css +127 -54
- package/dist/react/media/pictureEditor.css +52 -6
- package/dist/react/media/videoChapterEditor.css +203 -0
- package/dist/react/media/videoChapters.d.ts +117 -0
- package/dist/react/media/videoChapters.d.ts.map +1 -0
- package/dist/react/media/videoChapters.js +95 -0
- package/dist/react/media/videoChapters.js.map +1 -0
- package/dist/react/media-gallery/GalleryTable.d.ts +52 -1
- package/dist/react/media-gallery/GalleryTable.d.ts.map +1 -1
- package/dist/react/media-gallery/GalleryTable.js +40 -9
- package/dist/react/media-gallery/GalleryTable.js.map +1 -1
- package/dist/react/media-gallery/MediaGallery.d.ts +107 -4
- package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
- package/dist/react/media-gallery/MediaGallery.js +484 -104
- package/dist/react/media-gallery/MediaGallery.js.map +1 -1
- package/dist/react/media-gallery/MediaMetaEditor.d.ts +48 -0
- package/dist/react/media-gallery/MediaMetaEditor.d.ts.map +1 -0
- package/dist/react/media-gallery/MediaMetaEditor.js +66 -0
- package/dist/react/media-gallery/MediaMetaEditor.js.map +1 -0
- package/dist/react/media-gallery/index.d.ts +2 -0
- package/dist/react/media-gallery/index.d.ts.map +1 -1
- package/dist/react/media-gallery/index.js +5 -0
- package/dist/react/media-gallery/index.js.map +1 -1
- package/dist/react/media-gallery/mediaGallery.css +180 -4
- package/dist/react/media-gallery/mediaMeta.d.ts +62 -0
- package/dist/react/media-gallery/mediaMeta.d.ts.map +1 -0
- package/dist/react/media-gallery/mediaMeta.js +56 -0
- package/dist/react/media-gallery/mediaMeta.js.map +1 -0
- package/dist/react/media-gallery/playbackPreferences.d.ts +77 -0
- package/dist/react/media-gallery/playbackPreferences.d.ts.map +1 -1
- package/dist/react/media-gallery/playbackPreferences.js +42 -0
- package/dist/react/media-gallery/playbackPreferences.js.map +1 -1
- package/dist/react/media-gallery/types.d.ts +34 -0
- package/dist/react/media-gallery/types.d.ts.map +1 -1
- package/dist/scripts/guardrailsEnforce.d.ts +29 -0
- package/dist/scripts/guardrailsEnforce.d.ts.map +1 -0
- package/dist/styles-areas/activity-bar.css +30 -0
- package/dist/styles-areas/analytics.css +672 -0
- package/dist/styles-areas/auth.css +154 -0
- package/dist/styles-areas/calendar.css +416 -0
- package/dist/styles-areas/chart-table.css +41 -0
- package/dist/styles-areas/charts.css +89 -0
- package/dist/styles-areas/chat.css +364 -0
- package/dist/styles-areas/clipboard.css +26 -0
- package/dist/styles-areas/code-editor.css +130 -0
- package/dist/styles-areas/companion-link.css +70 -0
- package/dist/styles-areas/core.css +2503 -0
- package/dist/styles-areas/dashboard-grid.css +84 -0
- package/dist/styles-areas/data-table.css +657 -0
- package/dist/styles-areas/deep-link.css +26 -0
- package/dist/styles-areas/diff-viewer.css +30 -0
- package/dist/styles-areas/disk-usage.css +262 -0
- package/dist/styles-areas/emoji.css +154 -0
- package/dist/styles-areas/fields.css +582 -0
- package/dist/styles-areas/file-tree.css +33 -0
- package/dist/styles-areas/filter-rail.css +235 -0
- package/dist/styles-areas/folder-tree.css +219 -0
- package/dist/styles-areas/keep-awake.css +26 -0
- package/dist/styles-areas/layout-engine.css +239 -0
- package/dist/styles-areas/markdown.css +87 -0
- package/dist/styles-areas/master-detail.css +239 -0
- package/dist/styles-areas/master-lock.css +26 -0
- package/dist/styles-areas/media-gallery.css +351 -0
- package/dist/styles-areas/media.css +658 -0
- package/dist/styles-areas/nav.css +488 -0
- package/dist/styles-areas/notifications.css +245 -0
- package/dist/styles-areas/overlays.css +133 -0
- package/dist/styles-areas/palette.css +140 -0
- package/dist/styles-areas/pdf-viewer.css +47 -0
- package/dist/styles-areas/problem-detail.css +97 -0
- package/dist/styles-areas/rich-text.css +167 -0
- package/dist/styles-areas/sharing.css +153 -0
- package/dist/styles-areas/spreadsheet.css +37 -0
- package/dist/styles-areas/stats.css +281 -0
- package/dist/styles-areas/test-report.css +133 -0
- package/dist/styles-areas/virtual.css +30 -0
- package/dist/styles-areas/wizard.css +381 -0
- package/dist/styles-areas/workbench.css +543 -0
- package/dist/styles-areas/workbook-viewer.css +44 -0
- package/dist/styles-static.css +34 -23
- package/dist/styles.css +34 -23
- package/package.json +130 -32
- package/scripts/checkDistExports.ts +67 -0
- package/scripts/cssRules.ts +125 -0
- package/scripts/fixtureAppCss.ts +344 -0
- package/scripts/generateAreaStyles.ts +253 -0
- package/scripts/guardrailsEnforce.spec.ts +62 -0
- package/scripts/guardrailsEnforce.ts +67 -3
- package/scripts/paths.ts +106 -0
- package/scripts/styleAreas.ts +585 -0
- package/scripts/verify.ts +5 -0
- package/src/barrelsReachNoOptionalPeer.spec.ts +117 -9
- package/src/docsMatchTheSplit.spec.ts +98 -0
- package/src/fixtureAppCss.spec.ts +177 -0
- package/src/namedSubpathsResolve.spec.ts +35 -0
- package/src/publishShape.spec.ts +67 -0
- package/src/react/components/ListToolbar.spec.tsx +172 -0
- package/src/react/components/ListToolbar.tsx +151 -0
- package/src/react/file-tree/FileTree.spec.tsx +1009 -0
- package/src/react/file-tree/FileTree.tsx +1459 -309
- package/src/react/file-tree/fileTree.css +151 -0
- package/src/react/file-tree/fileTreeSelection.spec.ts +327 -0
- package/src/react/file-tree/fileTreeSelection.ts +321 -0
- package/src/react/file-tree/index.ts +21 -0
- package/src/react/index.ts +1 -0
- package/src/react/lib/form.ts +51 -8
- package/src/react/markdown/MarkdownDoc.spec.tsx +1 -1
- package/src/react/media/DenseGalleryShell.tsx +108 -36
- package/src/react/media/FocusViewer.tsx +15 -8
- package/src/react/media/FrameGrabber.spec.tsx +175 -0
- package/src/react/media/FrameGrabber.tsx +67 -0
- package/src/react/media/MediaResize.spec.tsx +84 -14
- package/src/react/media/MediaResize.tsx +51 -19
- package/src/react/media/VideoChapterEditor.tsx +428 -0
- package/src/react/media/VideoPlayer.spec.tsx +111 -1
- package/src/react/media/VideoPlayer.tsx +158 -11
- package/src/react/media/VideoTurner.spec.tsx +67 -0
- package/src/react/media/VideoTurner.tsx +70 -15
- package/src/react/media/denseGallery.css +104 -46
- package/src/react/media/hlsSource.recovery.spec.ts +213 -0
- package/src/react/media/hlsSource.spec.ts +8 -0
- package/src/react/media/hlsSource.ts +189 -1
- package/src/react/media/index.ts +14 -0
- package/src/react/media/mediaResize.css +127 -54
- package/src/react/media/pictureEditor.css +52 -6
- package/src/react/media/videoChapterEditor.css +203 -0
- package/src/react/media/videoChapters.spec.ts +176 -0
- package/src/react/media/videoChapters.ts +181 -0
- package/src/react/media-gallery/GalleryTable.tsx +93 -3
- package/src/react/media-gallery/MediaGallery.spec.tsx +1156 -10
- package/src/react/media-gallery/MediaGallery.tsx +813 -95
- package/src/react/media-gallery/MediaMetaEditor.tsx +237 -0
- package/src/react/media-gallery/galleryTable.spec.ts +41 -1
- package/src/react/media-gallery/index.ts +7 -0
- package/src/react/media-gallery/mediaGallery.css +180 -4
- package/src/react/media-gallery/mediaMeta.spec.ts +95 -0
- package/src/react/media-gallery/mediaMeta.ts +101 -0
- package/src/react/media-gallery/playbackPreferences.spec.ts +172 -0
- package/src/react/media-gallery/playbackPreferences.ts +100 -0
- package/src/react/media-gallery/types.ts +34 -0
- package/src/shippedFilesAreTracked.spec.ts +69 -0
- package/src/styles-areas/activity-bar.css +30 -0
- package/src/styles-areas/analytics.css +672 -0
- package/src/styles-areas/auth.css +154 -0
- package/src/styles-areas/calendar.css +416 -0
- package/src/styles-areas/chart-table.css +41 -0
- package/src/styles-areas/charts.css +89 -0
- package/src/styles-areas/chat.css +364 -0
- package/src/styles-areas/clipboard.css +26 -0
- package/src/styles-areas/code-editor.css +130 -0
- package/src/styles-areas/companion-link.css +70 -0
- package/src/styles-areas/core.css +2503 -0
- package/src/styles-areas/dashboard-grid.css +84 -0
- package/src/styles-areas/data-table.css +657 -0
- package/src/styles-areas/deep-link.css +26 -0
- package/src/styles-areas/diff-viewer.css +30 -0
- package/src/styles-areas/disk-usage.css +262 -0
- package/src/styles-areas/emoji.css +154 -0
- package/src/styles-areas/fields.css +582 -0
- package/src/styles-areas/file-tree.css +33 -0
- package/src/styles-areas/filter-rail.css +235 -0
- package/src/styles-areas/folder-tree.css +219 -0
- package/src/styles-areas/keep-awake.css +26 -0
- package/src/styles-areas/layout-engine.css +239 -0
- package/src/styles-areas/markdown.css +87 -0
- package/src/styles-areas/master-detail.css +239 -0
- package/src/styles-areas/master-lock.css +26 -0
- package/src/styles-areas/media-gallery.css +351 -0
- package/src/styles-areas/media.css +658 -0
- package/src/styles-areas/nav.css +488 -0
- package/src/styles-areas/notifications.css +245 -0
- package/src/styles-areas/overlays.css +133 -0
- package/src/styles-areas/palette.css +140 -0
- package/src/styles-areas/pdf-viewer.css +47 -0
- package/src/styles-areas/problem-detail.css +97 -0
- package/src/styles-areas/rich-text.css +167 -0
- package/src/styles-areas/sharing.css +153 -0
- package/src/styles-areas/spreadsheet.css +37 -0
- package/src/styles-areas/stats.css +281 -0
- package/src/styles-areas/test-report.css +133 -0
- package/src/styles-areas/virtual.css +30 -0
- package/src/styles-areas/wizard.css +381 -0
- package/src/styles-areas/workbench.css +543 -0
- package/src/styles-areas/workbook-viewer.css +44 -0
- package/src/styles-static.css +34 -23
- package/src/styles.css +34 -23
- package/src/stylesAreas.spec.ts +247 -0
- package/src/stylesUtilitiesMatches.spec.ts +6 -77
- package/src/testFilesRunInParallel.spec.ts +79 -0
- package/src/typecheckCachesAreSeparate.spec.ts +128 -0
- package/src/verifyGraph.spec.ts +6 -0
|
@@ -19,6 +19,63 @@ export declare function canPlayHlsNatively(el: HTMLVideoElement): boolean;
|
|
|
19
19
|
* Synchronous for the native and progressive paths; the hls.js path resolves a dynamic
|
|
20
20
|
* import first, so the returned teardown has to be safe to call before that lands.
|
|
21
21
|
*/
|
|
22
|
+
/**
|
|
23
|
+
* How many times a fatal error may be recovered before the ladder is abandoned for the
|
|
24
|
+
* progressive copy.
|
|
25
|
+
*
|
|
26
|
+
* Four is two more than a transient blip needs and far fewer than a dead ladder would consume.
|
|
27
|
+
* The bound is the point: a `startLoad()` in an unbounded error handler is an infinite reload
|
|
28
|
+
* loop against a URL that is never going to answer — a spinner that also hammers the origin,
|
|
29
|
+
* which is strictly worse than the stall it replaced.
|
|
30
|
+
*/
|
|
31
|
+
export declare const RECOVERY_BUDGET = 4;
|
|
32
|
+
/**
|
|
33
|
+
* hls.js settings for an origin that is a home Mac behind a tunnel, not a CDN.
|
|
34
|
+
*
|
|
35
|
+
* Exported so the specs can assert the two numbers that actually matter and so a surface with
|
|
36
|
+
* a genuinely different origin can spread this rather than re-derive it.
|
|
37
|
+
*/
|
|
38
|
+
export declare const HLS_CONFIG: {
|
|
39
|
+
readonly enableWorker: true;
|
|
40
|
+
/**
|
|
41
|
+
* 🔴 90 s of forward buffer, against a default of 30.
|
|
42
|
+
*
|
|
43
|
+
* The player stalls when the buffer empties, and what empties it here is one slow fetch:
|
|
44
|
+
* a cold segment is up to 2.6 s for 4 s of video, so 30 s of buffer survives about a dozen
|
|
45
|
+
* of them back to back. Ninety gives the fetch loop room to fall behind and catch up
|
|
46
|
+
* without the viewer seeing it — which is the whole of *"buffers, plays a few seconds,
|
|
47
|
+
* buffers"*. It is a CEILING, not an allocation: a warm ladder fills it in seconds and a
|
|
48
|
+
* short clip never reaches it.
|
|
49
|
+
*/
|
|
50
|
+
readonly maxBufferLength: 90;
|
|
51
|
+
/** The hard ceiling hls.js will stretch to when bandwidth is plentiful. */
|
|
52
|
+
readonly maxMaxBufferLength: 600;
|
|
53
|
+
/** Bytes, not seconds, and the real limit on a 1080p rung. 120 MB ≈ 90 s at 5 Mbit. */
|
|
54
|
+
readonly maxBufferSize: number;
|
|
55
|
+
/**
|
|
56
|
+
* 🔴 Keep 30 s behind the playhead instead of hls.js's default of everything.
|
|
57
|
+
*
|
|
58
|
+
* Stepping back a few seconds is the commonest thing the owner does with a video and it
|
|
59
|
+
* should never re-fetch. Unbounded back-buffer is the other failure though: a two-hour film
|
|
60
|
+
* accumulates until the browser evicts the whole MediaSource, which presents as the video
|
|
61
|
+
* stopping for no reason.
|
|
62
|
+
*/
|
|
63
|
+
readonly backBufferLength: 30;
|
|
64
|
+
/**
|
|
65
|
+
* 🔴 Start at 5 Mbit rather than hls.js's 500 kbit.
|
|
66
|
+
*
|
|
67
|
+
* The default assumes an unknown internet connection and opens on the bottom rung while it
|
|
68
|
+
* measures. Every viewer here is on the household's own network or a phone on it, the top
|
|
69
|
+
* rung is capped at 5,000 kbit by the encoder ladder, and starting low means the first
|
|
70
|
+
* thing anyone sees is 480p that visibly sharpens. One wrong guess costs one segment.
|
|
71
|
+
*/
|
|
72
|
+
readonly abrEwmaDefaultEstimate: 5000000;
|
|
73
|
+
/** A cold segment off the tunnel can take seconds; 20 s (the default) times out a fetch
|
|
74
|
+
* that was going to succeed, and a timeout counts against the retry budget. */
|
|
75
|
+
readonly fragLoadingTimeOut: 60000;
|
|
76
|
+
readonly manifestLoadingTimeOut: 30000;
|
|
77
|
+
readonly levelLoadingTimeOut: 30000;
|
|
78
|
+
};
|
|
22
79
|
export declare function attachHlsSource(el: HTMLVideoElement, urls: HlsSourceUrls): () => void;
|
|
23
80
|
/** {@link attachHlsSource} as an effect, re-attaching whenever either URL changes. */
|
|
24
81
|
export declare function useHlsSource(ref: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hlsSource.d.ts","sourceRoot":"","sources":["../../../src/react/media/hlsSource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hlsSource.d.ts","sourceRoot":"","sources":["../../../src/react/media/hlsSource.ts"],"names":[],"mappings":"AAgFA,yFAAyF;AACzF,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAKjC;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;IAErB;;;;;;;;;OASG;;IAEH,2EAA2E;;IAE3E,uFAAuF;;IAEvF;;;;;;;OAOG;;IAEH;;;;;;;OAOG;;IAEH;oFACgF;;;;CAIxE,CAAC;AAEX,wBAAgB,eAAe,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,IAAI,CAmHrF;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAC1B,GAAG,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,EACzC,IAAI,EAAE,aAAa,GAClB,IAAI,CAQN"}
|
|
@@ -30,6 +30,37 @@
|
|
|
30
30
|
* ⇧→ mounts one per clip, and thirty clips is thirty live engines still fetching segments for
|
|
31
31
|
* videos nobody is watching. The `destroyed` flag covers the same leak on the async path —
|
|
32
32
|
* an unmount that happens while the dynamic import is in flight.
|
|
33
|
+
*
|
|
34
|
+
* ── 🔴 An hls.js with no ERROR handler stops for good, and that was this file ────────────
|
|
35
|
+
* Owner report, 2026-09-17: *"sometimes a video is playing and starts buffering and ends up
|
|
36
|
+
* pausing instead of trying to wait it out."* That is not a description of a slow network —
|
|
37
|
+
* it is the documented behaviour of an unattended hls.js. The library retries a failing
|
|
38
|
+
* fragment on its own (six times, backing off to ~64 s in total) and then emits a FATAL error
|
|
39
|
+
* and **stops the loop**. Recovery is the application's job and always has been; this module
|
|
40
|
+
* was constructing the engine with `new Hls({ enableWorker: true })` and listening to
|
|
41
|
+
* nothing, so every fatal error was permanent.
|
|
42
|
+
*
|
|
43
|
+
* Three of them are recoverable and are handled here rather than surfaced:
|
|
44
|
+
*
|
|
45
|
+
* | fatal type | what it actually is here | what we do |
|
|
46
|
+
* |---|---|---|
|
|
47
|
+
* | `networkError` on a fragment | the tunnel blinked, or the segment was slow off a cold cache | `startLoad()` from where playback is, with a widening backoff |
|
|
48
|
+
* | `networkError` on the manifest | the ladder token expired mid-film, or bs is down | reload once, then fall back |
|
|
49
|
+
* | `mediaError` | a buffer-append or decode stall | `recoverMediaError()`, then the audio-codec-swap variant, then fall back |
|
|
50
|
+
*
|
|
51
|
+
* 🔴 And every road STILL ends at something playable: once the recoveries are spent, the
|
|
52
|
+
* engine is destroyed and the element is pointed at `streamUrl` **at the time it had reached**
|
|
53
|
+
* — a fallback that restarts a two-hour film from zero is a fallback the owner would rather
|
|
54
|
+
* not have had. That is the property `RECOVERY_BUDGET` bounds; without a budget a genuinely
|
|
55
|
+
* dead ladder becomes an infinite reload loop, which is the same spinner with more requests.
|
|
56
|
+
*
|
|
57
|
+
* ── 🔴 The config is tuned for a HIGH-LATENCY origin, which is what this fleet has ───────
|
|
58
|
+
* hls.js's defaults assume a CDN. These segments come off a home Mac through a tunnel when
|
|
59
|
+
* the edge does not hold them: measured 2026-09-17, a cold segment is 1,215–2,613 ms against
|
|
60
|
+
* ~150 ms warm, for four seconds of video. Two defaults are actively wrong at that latency —
|
|
61
|
+
* a 30 s forward buffer gives the player no room to absorb one slow fetch, and a 500 kbps
|
|
62
|
+
* starting bandwidth estimate makes it open on the bottom rung and climb. Both are widened
|
|
63
|
+
* below, each with its number's reason on the line.
|
|
33
64
|
*/
|
|
34
65
|
import { useEffect } from 'react';
|
|
35
66
|
/**
|
|
@@ -48,9 +79,100 @@ export function canPlayHlsNatively(el) {
|
|
|
48
79
|
* Synchronous for the native and progressive paths; the hls.js path resolves a dynamic
|
|
49
80
|
* import first, so the returned teardown has to be safe to call before that lands.
|
|
50
81
|
*/
|
|
82
|
+
/**
|
|
83
|
+
* How many times a fatal error may be recovered before the ladder is abandoned for the
|
|
84
|
+
* progressive copy.
|
|
85
|
+
*
|
|
86
|
+
* Four is two more than a transient blip needs and far fewer than a dead ladder would consume.
|
|
87
|
+
* The bound is the point: a `startLoad()` in an unbounded error handler is an infinite reload
|
|
88
|
+
* loop against a URL that is never going to answer — a spinner that also hammers the origin,
|
|
89
|
+
* which is strictly worse than the stall it replaced.
|
|
90
|
+
*/
|
|
91
|
+
export const RECOVERY_BUDGET = 4;
|
|
92
|
+
/** Backoff before each retry, in ms. Read by index, clamped to the last entry. */
|
|
93
|
+
const RECOVERY_BACKOFF_MS = [0, 1_000, 3_000, 8_000];
|
|
94
|
+
/**
|
|
95
|
+
* hls.js settings for an origin that is a home Mac behind a tunnel, not a CDN.
|
|
96
|
+
*
|
|
97
|
+
* Exported so the specs can assert the two numbers that actually matter and so a surface with
|
|
98
|
+
* a genuinely different origin can spread this rather than re-derive it.
|
|
99
|
+
*/
|
|
100
|
+
export const HLS_CONFIG = {
|
|
101
|
+
enableWorker: true,
|
|
102
|
+
/**
|
|
103
|
+
* 🔴 90 s of forward buffer, against a default of 30.
|
|
104
|
+
*
|
|
105
|
+
* The player stalls when the buffer empties, and what empties it here is one slow fetch:
|
|
106
|
+
* a cold segment is up to 2.6 s for 4 s of video, so 30 s of buffer survives about a dozen
|
|
107
|
+
* of them back to back. Ninety gives the fetch loop room to fall behind and catch up
|
|
108
|
+
* without the viewer seeing it — which is the whole of *"buffers, plays a few seconds,
|
|
109
|
+
* buffers"*. It is a CEILING, not an allocation: a warm ladder fills it in seconds and a
|
|
110
|
+
* short clip never reaches it.
|
|
111
|
+
*/
|
|
112
|
+
maxBufferLength: 90,
|
|
113
|
+
/** The hard ceiling hls.js will stretch to when bandwidth is plentiful. */
|
|
114
|
+
maxMaxBufferLength: 600,
|
|
115
|
+
/** Bytes, not seconds, and the real limit on a 1080p rung. 120 MB ≈ 90 s at 5 Mbit. */
|
|
116
|
+
maxBufferSize: 120 * 1000 * 1000,
|
|
117
|
+
/**
|
|
118
|
+
* 🔴 Keep 30 s behind the playhead instead of hls.js's default of everything.
|
|
119
|
+
*
|
|
120
|
+
* Stepping back a few seconds is the commonest thing the owner does with a video and it
|
|
121
|
+
* should never re-fetch. Unbounded back-buffer is the other failure though: a two-hour film
|
|
122
|
+
* accumulates until the browser evicts the whole MediaSource, which presents as the video
|
|
123
|
+
* stopping for no reason.
|
|
124
|
+
*/
|
|
125
|
+
backBufferLength: 30,
|
|
126
|
+
/**
|
|
127
|
+
* 🔴 Start at 5 Mbit rather than hls.js's 500 kbit.
|
|
128
|
+
*
|
|
129
|
+
* The default assumes an unknown internet connection and opens on the bottom rung while it
|
|
130
|
+
* measures. Every viewer here is on the household's own network or a phone on it, the top
|
|
131
|
+
* rung is capped at 5,000 kbit by the encoder ladder, and starting low means the first
|
|
132
|
+
* thing anyone sees is 480p that visibly sharpens. One wrong guess costs one segment.
|
|
133
|
+
*/
|
|
134
|
+
abrEwmaDefaultEstimate: 5_000_000,
|
|
135
|
+
/** A cold segment off the tunnel can take seconds; 20 s (the default) times out a fetch
|
|
136
|
+
* that was going to succeed, and a timeout counts against the retry budget. */
|
|
137
|
+
fragLoadingTimeOut: 60_000,
|
|
138
|
+
manifestLoadingTimeOut: 30_000,
|
|
139
|
+
levelLoadingTimeOut: 30_000,
|
|
140
|
+
};
|
|
51
141
|
export function attachHlsSource(el, urls) {
|
|
52
142
|
let destroyed = false;
|
|
53
143
|
let engine = null;
|
|
144
|
+
let pendingRetry = null;
|
|
145
|
+
/**
|
|
146
|
+
* Abandon the ladder for the progressive copy, AT THE POSITION PLAYBACK HAD REACHED.
|
|
147
|
+
*
|
|
148
|
+
* 🔴 The seek is not a nicety. Without it, a fallback forty minutes into a film restarts it
|
|
149
|
+
* from zero — and because a fallback happens exactly when things are already going badly,
|
|
150
|
+
* that is the moment the owner is least likely to forgive it. `currentTime` is read before
|
|
151
|
+
* the engine is destroyed, because destroying it detaches the MediaSource and resets it.
|
|
152
|
+
*/
|
|
153
|
+
const fallBackToProgressive = () => {
|
|
154
|
+
if (destroyed)
|
|
155
|
+
return;
|
|
156
|
+
const at = Number.isFinite(el.currentTime) ? el.currentTime : 0;
|
|
157
|
+
const wasPlaying = !el.paused;
|
|
158
|
+
engine?.destroy();
|
|
159
|
+
engine = null;
|
|
160
|
+
el.src = urls.streamUrl;
|
|
161
|
+
if (at > 0) {
|
|
162
|
+
// `loadedmetadata` is the first moment a seek on a fresh source is honoured; setting
|
|
163
|
+
// `currentTime` before it is silently dropped.
|
|
164
|
+
el.addEventListener('loadedmetadata', () => {
|
|
165
|
+
try {
|
|
166
|
+
el.currentTime = at;
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
/* a source that refuses the seek still plays, from the start */
|
|
170
|
+
}
|
|
171
|
+
if (wasPlaying)
|
|
172
|
+
void el.play?.().catch(() => { });
|
|
173
|
+
}, { once: true });
|
|
174
|
+
}
|
|
175
|
+
};
|
|
54
176
|
if (urls.hlsUrl && canPlayHlsNatively(el)) {
|
|
55
177
|
el.src = urls.hlsUrl;
|
|
56
178
|
}
|
|
@@ -65,8 +187,59 @@ export function attachHlsSource(el, urls) {
|
|
|
65
187
|
el.src = urls.streamUrl;
|
|
66
188
|
return;
|
|
67
189
|
}
|
|
68
|
-
const hls = new Hls(
|
|
190
|
+
const hls = new Hls(HLS_CONFIG);
|
|
69
191
|
engine = hls;
|
|
192
|
+
let spent = 0;
|
|
193
|
+
hls.on(Hls.Events.ERROR, (_event, data) => {
|
|
194
|
+
// Non-fatal errors are hls.js's own retry machinery working. Reacting to them would
|
|
195
|
+
// restart a load that is already in progress.
|
|
196
|
+
if (destroyed || !data?.fatal)
|
|
197
|
+
return;
|
|
198
|
+
if (spent >= RECOVERY_BUDGET) {
|
|
199
|
+
fallBackToProgressive();
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const attempt = spent++;
|
|
203
|
+
if (data.type === Hls.ErrorTypes.MEDIA_ERROR) {
|
|
204
|
+
// 🔴 The SECOND media recovery must be the codec-swap variant, per hls.js's own
|
|
205
|
+
// guidance: calling `recoverMediaError()` twice for the same stall recovers
|
|
206
|
+
// nothing, and the audio-codec swap is what clears the case that keeps recurring.
|
|
207
|
+
if (attempt === 0)
|
|
208
|
+
hls.recoverMediaError();
|
|
209
|
+
else
|
|
210
|
+
hls.swapAudioCodec?.(), hls.recoverMediaError();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (data.type === Hls.ErrorTypes.NETWORK_ERROR) {
|
|
214
|
+
const delay = RECOVERY_BACKOFF_MS[Math.min(attempt, RECOVERY_BACKOFF_MS.length - 1)] ?? 0;
|
|
215
|
+
// 🔴 Backed off, because the commonest cause is an origin that is briefly
|
|
216
|
+
// unreachable — a tunnel reconnecting, this Mac waking. Retrying instantly turns
|
|
217
|
+
// one blip into four and spends the whole budget inside a second.
|
|
218
|
+
//
|
|
219
|
+
// 🔴 And the previous timer is cleared first. Fatal errors arrive in bursts, so
|
|
220
|
+
// without this each one leaks a timer that `detach()` cannot reach — only the
|
|
221
|
+
// last handle was ever held — and a burst of four leaves three of them to fire
|
|
222
|
+
// into an engine React has already unmounted.
|
|
223
|
+
if (pendingRetry)
|
|
224
|
+
clearTimeout(pendingRetry);
|
|
225
|
+
pendingRetry = setTimeout(() => {
|
|
226
|
+
pendingRetry = null;
|
|
227
|
+
if (destroyed)
|
|
228
|
+
return;
|
|
229
|
+
try {
|
|
230
|
+
hls.startLoad();
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
fallBackToProgressive();
|
|
234
|
+
}
|
|
235
|
+
}, delay);
|
|
236
|
+
pendingRetry.unref?.();
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Anything else fatal (a mux error, an unknown type) is not something a reload
|
|
240
|
+
// fixes. The remux is the answer and it is the answer immediately.
|
|
241
|
+
fallBackToProgressive();
|
|
242
|
+
});
|
|
70
243
|
hls.loadSource(urls.hlsUrl);
|
|
71
244
|
hls.attachMedia(el);
|
|
72
245
|
})
|
|
@@ -81,6 +254,9 @@ export function attachHlsSource(el, urls) {
|
|
|
81
254
|
}
|
|
82
255
|
return () => {
|
|
83
256
|
destroyed = true;
|
|
257
|
+
if (pendingRetry)
|
|
258
|
+
clearTimeout(pendingRetry);
|
|
259
|
+
pendingRetry = null;
|
|
84
260
|
engine?.destroy();
|
|
85
261
|
engine = null;
|
|
86
262
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hlsSource.js","sourceRoot":"","sources":["../../../src/react/media/hlsSource.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hlsSource.js","sourceRoot":"","sources":["../../../src/react/media/hlsSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,8 @@ export { composeSelection, FULL_REGION, fitBox, isFullRegion, MAX_ZOOM, normaliz
|
|
|
35
35
|
export { ENHANCE_RANGE, type Enhance, NO_ENHANCE, UPSCALE_FACTORS, filterString, isEnhanced, readEnhance, snapshotSize, writeEnhance, } from './videoEnhance';
|
|
36
36
|
export { VideoTrimmer } from './VideoTrimmer';
|
|
37
37
|
export { VideoCutEditor, type VideoCutEditorProps } from './VideoCutEditor';
|
|
38
|
+
export { VideoChapterEditor, type VideoChapterEditorProps } from './VideoChapterEditor';
|
|
39
|
+
export { type ChapteredVideo, type ChapterSpan, chapterProblem, chapterSpans, MIN_CHAPTER_SECONDS, normalizeChapters, type VideoChapter, } from './videoChapters';
|
|
38
40
|
export { cutListProblem, cutSeconds, cutTimecode, keptSeconds, keptSegments, MIN_CUT_SECONDS, normalizeCuts, type VideoCut, } from 'cursedbelt-core/media/video-cuts';
|
|
39
41
|
export { VirtualMediaGrid, type VirtualMediaGridProps } from './VirtualMediaGrid';
|
|
40
42
|
export { type CapturedPoster, captureVideoPoster, type FrameQuality, pickBestFrame, posterCandidateTimes, type PosterOptions, probeVideo, scoreFrame, type VideoProbe, } from './videoPoster';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/media/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/media/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,KAAK,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,KAAK,0BAA0B,EAC/B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMjG,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACL,KAAK,gBAAgB,EACrB,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,QAAQ,EACb,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,OAAO,EACP,QAAQ,EACR,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,YAAY,EACjB,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,cAAc,EACd,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGrG,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,KAAK,MAAM,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5E,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,KAAK,QAAQ,GACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,KAAK,cAAc,EACnB,kBAAkB,EAClB,KAAK,YAAY,EACjB,aAAa,EACb,oBAAoB,EACpB,KAAK,aAAa,EAClB,UAAU,EACV,UAAU,EACV,KAAK,UAAU,GAChB,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,cAAc,EACnB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -71,6 +71,12 @@ export { VideoTrimmer } from './VideoTrimmer';
|
|
|
71
71
|
// that a server executes, which is the only shape that works on a phone master. See
|
|
72
72
|
// `videoCuts.ts` for the owner's reasoning.
|
|
73
73
|
export { VideoCutEditor } from './VideoCutEditor';
|
|
74
|
+
// Naming points in time and KEEPING them — the other half of the same gesture, and a separate
|
|
75
|
+
// model on purpose: a cut list is a request that costs a re-encode, a chapter list is metadata
|
|
76
|
+
// that applies on save. `videoChapters.ts`'s header says why the model is in this package
|
|
77
|
+
// rather than in `cursedbelt-core` beside `videoCuts.ts`.
|
|
78
|
+
export { VideoChapterEditor } from './VideoChapterEditor';
|
|
79
|
+
export { chapterProblem, chapterSpans, MIN_CHAPTER_SECONDS, normalizeChapters, } from './videoChapters';
|
|
74
80
|
// Re-exported from `core/media`, where the model lives so a SERVER can import it without
|
|
75
81
|
// dragging React in — see the header of `videoCuts.ts`.
|
|
76
82
|
export { cutListProblem, cutSeconds, cutTimecode, keptSeconds, keptSegments, MIN_CUT_SECONDS, normalizeCuts, } from 'cursedbelt-core/media/video-cuts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/media/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/media/index.ts"],"names":[],"mappings":"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"}
|