@remotion/renderer 4.0.0-webhook.27 → 4.1.0-alpha1
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/LICENSE.md +8 -8
- package/README.md +9 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/dist/assets/calculate-asset-positions.d.ts +0 -0
- package/dist/assets/calculate-asset-positions.js +1 -0
- package/dist/assets/calculate-atempo.d.ts +0 -0
- package/dist/assets/calculate-atempo.js +0 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +0 -0
- package/dist/assets/convert-assets-to-file-urls.js +0 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts +6 -4
- package/dist/assets/download-and-map-assets-to-file.js +49 -19
- package/dist/assets/download-file.d.ts +8 -5
- package/dist/assets/download-file.js +71 -8
- package/dist/assets/download-map.d.ts +8 -29
- package/dist/assets/download-map.js +15 -16
- package/dist/assets/ffmpeg-volume-expression.d.ts +4 -3
- package/dist/assets/ffmpeg-volume-expression.js +5 -3
- package/dist/assets/flatten-volume-array.d.ts +0 -0
- package/dist/assets/flatten-volume-array.js +0 -0
- package/dist/assets/get-audio-channels.d.ts +2 -2
- package/dist/assets/get-audio-channels.js +14 -12
- package/dist/assets/read-file.d.ts +1 -1
- package/dist/assets/read-file.js +5 -7
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
- package/dist/assets/sanitize-filename.d.ts +0 -0
- package/dist/assets/sanitize-filename.js +0 -0
- package/dist/assets/sanitize-filepath.d.ts +0 -0
- package/dist/assets/sanitize-filepath.js +2 -2
- package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
- package/dist/assets/truncate-utf8-bytes.js +0 -0
- package/dist/assets/types.d.ts +5 -4
- package/dist/assets/types.js +0 -0
- package/dist/audio-codec.d.ts +28 -0
- package/dist/audio-codec.js +83 -0
- package/dist/browser/Browser.d.ts +16 -14
- package/dist/browser/Browser.js +69 -72
- package/dist/browser/BrowserConnector.d.ts +0 -0
- package/dist/browser/BrowserConnector.js +0 -0
- package/dist/browser/BrowserFetcher.d.ts +16 -64
- package/dist/browser/BrowserFetcher.js +147 -235
- package/dist/browser/BrowserPage.d.ts +21 -6
- package/dist/browser/BrowserPage.js +54 -22
- package/dist/browser/BrowserRunner.d.ts +1 -1
- package/dist/browser/BrowserRunner.js +32 -22
- package/dist/browser/Connection.d.ts +0 -0
- package/dist/browser/Connection.js +1 -1
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/ConsoleMessage.js +0 -0
- package/dist/browser/DOMWorld.d.ts +5 -4
- package/dist/browser/DOMWorld.js +16 -9
- package/dist/browser/Errors.d.ts +0 -0
- package/dist/browser/Errors.js +0 -0
- package/dist/browser/EvalTypes.d.ts +7 -7
- package/dist/browser/EvalTypes.js +0 -0
- package/dist/browser/EventEmitter.d.ts +0 -0
- package/dist/browser/EventEmitter.js +0 -0
- package/dist/browser/ExecutionContext.d.ts +0 -0
- package/dist/browser/ExecutionContext.js +0 -0
- package/dist/browser/FrameManager.d.ts +0 -2
- package/dist/browser/FrameManager.js +13 -17
- package/dist/browser/HTTPRequest.d.ts +0 -0
- package/dist/browser/HTTPRequest.js +0 -0
- package/dist/browser/HTTPResponse.d.ts +0 -0
- package/dist/browser/HTTPResponse.js +0 -0
- package/dist/browser/JSHandle.d.ts +0 -0
- package/dist/browser/JSHandle.js +14 -14
- package/dist/browser/LaunchOptions.d.ts +2 -2
- package/dist/browser/LaunchOptions.js +0 -0
- package/dist/browser/Launcher.d.ts +9 -3
- package/dist/browser/Launcher.js +16 -29
- package/dist/browser/LifecycleWatcher.d.ts +1 -1
- package/dist/browser/LifecycleWatcher.js +0 -0
- package/dist/browser/NetworkEventManager.d.ts +4 -4
- package/dist/browser/NetworkEventManager.js +0 -0
- package/dist/browser/NetworkManager.d.ts +0 -0
- package/dist/browser/NetworkManager.js +0 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
- package/dist/browser/NodeWebSocketTransport.js +21 -21
- package/dist/browser/Product.d.ts +1 -1
- package/dist/browser/Product.js +0 -0
- package/dist/browser/PuppeteerNode.d.ts +2 -5
- package/dist/browser/PuppeteerNode.js +2 -11
- package/dist/browser/PuppeteerViewport.d.ts +0 -0
- package/dist/browser/PuppeteerViewport.js +0 -0
- package/dist/browser/ScreenshotOptions.d.ts +0 -14
- package/dist/browser/ScreenshotOptions.js +0 -1
- package/dist/browser/Target.d.ts +4 -3
- package/dist/browser/Target.js +8 -2
- package/dist/browser/TaskQueue.d.ts +0 -0
- package/dist/browser/TaskQueue.js +0 -0
- package/dist/browser/TimeoutSettings.d.ts +0 -0
- package/dist/browser/TimeoutSettings.js +0 -0
- package/dist/browser/assert.d.ts +0 -0
- package/dist/browser/assert.js +0 -0
- package/dist/browser/create-browser-fetcher.d.ts +0 -0
- package/dist/browser/create-browser-fetcher.js +34 -48
- package/dist/browser/devtools-commands.d.ts +5 -1
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +92 -10
- package/dist/browser/devtools-types.js +0 -0
- package/dist/browser/get-download-destination.d.ts +0 -0
- package/dist/browser/get-download-destination.js +8 -8
- package/dist/browser/is-target-closed-err.d.ts +1 -0
- package/dist/browser/is-target-closed-err.js +9 -0
- package/dist/browser/mitt/index.d.ts +6 -6
- package/dist/browser/mitt/index.js +0 -0
- package/dist/browser/node.d.ts +0 -0
- package/dist/browser/node.js +0 -0
- package/dist/browser/revisions.d.ts +1 -1
- package/dist/browser/revisions.js +0 -0
- package/dist/browser/should-log-message.d.ts +24 -0
- package/dist/browser/should-log-message.js +72 -0
- package/dist/browser/util.d.ts +2 -2
- package/dist/browser/util.js +0 -0
- package/dist/browser-executable.d.ts +1 -1
- package/dist/browser-executable.js +0 -0
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser-log.js +0 -0
- package/dist/browser.d.ts +1 -1
- package/dist/browser.js +0 -0
- package/dist/calculate-ffmpeg-filters.d.ts +2 -1
- package/dist/calculate-ffmpeg-filters.js +1 -0
- package/dist/call-ffmpeg.d.ts +14 -0
- package/dist/call-ffmpeg.js +42 -0
- package/dist/can-use-parallel-encoding.d.ts +0 -0
- package/dist/can-use-parallel-encoding.js +0 -0
- package/dist/chalk/index.d.ts +54 -0
- package/dist/chalk/index.js +135 -0
- package/dist/chalk/is-color-supported.d.ts +1 -0
- package/dist/chalk/is-color-supported.js +37 -0
- package/dist/check-apple-silicon.d.ts +1 -1
- package/dist/check-apple-silicon.js +8 -47
- package/dist/chunk.d.ts +0 -0
- package/dist/chunk.js +0 -0
- package/dist/client.d.ts +204 -0
- package/dist/client.js +49 -0
- package/dist/codec-supports-media.d.ts +3 -2
- package/dist/codec-supports-media.js +20 -5
- package/dist/codec.d.ts +2 -2
- package/dist/codec.js +0 -0
- package/dist/combine-videos.d.ts +6 -2
- package/dist/combine-videos.js +17 -17
- package/dist/compositor/compose.d.ts +26 -0
- package/dist/compositor/compose.js +82 -0
- package/dist/compositor/compositor.d.ts +11 -0
- package/dist/compositor/compositor.js +219 -0
- package/dist/compositor/get-executable-path.d.ts +1 -0
- package/dist/compositor/get-executable-path.js +57 -0
- package/dist/compositor/make-nonce.d.ts +1 -0
- package/dist/compositor/make-nonce.js +8 -0
- package/dist/compositor/payloads.d.ts +68 -0
- package/dist/{ffmpeg-executable.js → compositor/payloads.js} +0 -0
- package/dist/compress-assets.d.ts +0 -0
- package/dist/compress-assets.js +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
- package/dist/convert-to-positive-frame-index.d.ts +0 -0
- package/dist/convert-to-positive-frame-index.js +0 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +5 -1
- package/dist/create-ffmpeg-complex-filter.js +6 -4
- package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
- package/dist/create-ffmpeg-merge-filter.js +21 -13
- package/dist/create-silent-audio.d.ts +1 -3
- package/dist/create-silent-audio.js +3 -6
- package/dist/crf.d.ts +6 -2
- package/dist/crf.js +41 -8
- package/dist/cycle-browser-tabs.d.ts +2 -5
- package/dist/cycle-browser-tabs.js +5 -5
- package/dist/delay-render-embedded-stack.d.ts +0 -0
- package/dist/delay-render-embedded-stack.js +0 -0
- package/dist/delete-directory.d.ts +1 -1
- package/dist/delete-directory.js +43 -17
- package/dist/does-have-m2-bug.d.ts +3 -0
- package/dist/does-have-m2-bug.js +12 -0
- package/dist/ensure-frames-in-order.d.ts +0 -0
- package/dist/ensure-frames-in-order.js +0 -0
- package/dist/ensure-output-directory.d.ts +0 -0
- package/dist/ensure-output-directory.js +5 -5
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
- package/dist/error-handling/handle-javascript-exception.js +10 -0
- package/dist/error-handling/symbolicate-error.d.ts +0 -0
- package/dist/error-handling/symbolicate-error.js +6 -3
- package/dist/error-handling/symbolicateable-error.d.ts +0 -0
- package/dist/error-handling/symbolicateable-error.js +0 -0
- package/dist/ffmpeg-filter-file.d.ts +6 -1
- package/dist/ffmpeg-filter-file.js +40 -8
- package/dist/ffmpeg-override.d.ts +1 -1
- package/dist/ffmpeg-override.js +0 -0
- package/dist/file-extensions.d.ts +14 -0
- package/dist/file-extensions.js +76 -0
- package/dist/find-closest-package-json.d.ts +2 -0
- package/dist/find-closest-package-json.js +31 -0
- package/dist/frame-range.d.ts +1 -1
- package/dist/frame-range.js +0 -0
- package/dist/get-browser-instance.d.ts +8 -3
- package/dist/get-browser-instance.js +10 -5
- package/dist/get-codec-name.d.ts +0 -0
- package/dist/get-codec-name.js +0 -0
- package/dist/get-compositions.d.ts +27 -14
- package/dist/get-compositions.js +72 -39
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +11 -4
- package/dist/get-duration-from-frame-range.d.ts +0 -0
- package/dist/get-duration-from-frame-range.js +0 -0
- package/dist/get-extension-from-codec.d.ts +5 -1
- package/dist/get-extension-from-codec.js +56 -32
- package/dist/get-extension-of-filename.d.ts +0 -0
- package/dist/get-extension-of-filename.js +5 -1
- package/dist/get-frame-padded-index.d.ts +3 -2
- package/dist/get-frame-padded-index.js +3 -2
- package/dist/get-frame-to-render.d.ts +0 -0
- package/dist/get-frame-to-render.js +1 -1
- package/dist/get-local-browser-executable.d.ts +0 -0
- package/dist/get-local-browser-executable.js +7 -15
- package/dist/get-port.d.ts +4 -1
- package/dist/get-port.js +8 -8
- package/dist/get-prores-profile-name.d.ts +0 -0
- package/dist/get-prores-profile-name.js +0 -0
- package/dist/get-video-threads-flag.d.ts +0 -0
- package/dist/get-video-threads-flag.js +3 -3
- package/dist/guess-extension-for-media.d.ts +3 -1
- package/dist/guess-extension-for-media.js +4 -7
- package/dist/image-format.d.ts +12 -6
- package/dist/image-format.js +19 -13
- package/dist/index.d.ts +368 -49
- package/dist/index.js +68 -46
- package/dist/is-audio-codec.d.ts +0 -0
- package/dist/is-audio-codec.js +0 -0
- package/dist/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/jpeg-quality.d.ts +2 -0
- package/dist/jpeg-quality.js +22 -0
- package/dist/locks.d.ts +7 -0
- package/dist/locks.js +44 -0
- package/dist/log-level.d.ts +1 -1
- package/dist/log-level.js +0 -0
- package/dist/logger.d.ts +24 -0
- package/dist/logger.js +68 -0
- package/dist/make-cancel-signal.d.ts +13 -2
- package/dist/make-cancel-signal.js +24 -1
- package/dist/merge-audio-track.d.ts +4 -4
- package/dist/merge-audio-track.js +38 -33
- package/dist/mime-db.d.ts +0 -0
- package/dist/mime-db.js +0 -0
- package/dist/mime-types.d.ts +0 -0
- package/dist/mime-types.js +3 -3
- package/dist/normalize-serve-url.d.ts +0 -0
- package/dist/normalize-serve-url.js +0 -0
- package/dist/offthread-video-server.d.ts +47 -11
- package/dist/offthread-video-server.js +111 -58
- package/dist/open-browser.d.ts +21 -6
- package/dist/open-browser.js +37 -16
- package/dist/options/audio-bitrate.d.ts +2 -0
- package/dist/options/audio-bitrate.js +11 -0
- package/dist/options/crf.d.ts +2 -0
- package/dist/options/crf.js +11 -0
- package/dist/options/enforce-audio.d.ts +2 -0
- package/dist/options/enforce-audio.js +11 -0
- package/dist/options/jpeg-quality.d.ts +2 -0
- package/dist/options/jpeg-quality.js +11 -0
- package/dist/options/mute.d.ts +2 -0
- package/dist/options/mute.js +11 -0
- package/dist/options/option.d.ts +8 -0
- package/dist/options/option.js +2 -0
- package/dist/options/scale.d.ts +2 -0
- package/dist/options/scale.js +11 -0
- package/dist/options/video-bitrate.d.ts +2 -0
- package/dist/options/video-bitrate.js +11 -0
- package/dist/options/video-codec.d.ts +2 -0
- package/dist/options/video-codec.js +11 -0
- package/dist/overwrite.d.ts +0 -0
- package/dist/overwrite.js +0 -0
- package/dist/p-limit.d.ts +0 -0
- package/dist/p-limit.js +0 -0
- package/dist/parse-browser-error-stack.d.ts +1 -1
- package/dist/parse-browser-error-stack.js +0 -0
- package/dist/parse-ffmpeg-progress.d.ts +0 -0
- package/dist/parse-ffmpeg-progress.js +0 -0
- package/dist/perf.d.ts +2 -2
- package/dist/perf.js +9 -7
- package/dist/pixel-format.d.ts +2 -2
- package/dist/pixel-format.js +3 -0
- package/dist/pool.d.ts +0 -0
- package/dist/pool.js +0 -0
- package/dist/prepare-server.d.ts +25 -10
- package/dist/prepare-server.js +71 -18
- package/dist/preprocess-audio-track.d.ts +7 -5
- package/dist/preprocess-audio-track.js +7 -8
- package/dist/prespawn-ffmpeg.d.ts +20 -10
- package/dist/prespawn-ffmpeg.js +67 -29
- package/dist/prestitcher-memory-usage.d.ts +0 -4
- package/dist/prestitcher-memory-usage.js +4 -5
- package/dist/prores-profile.d.ts +6 -4
- package/dist/prores-profile.js +8 -8
- package/dist/provide-screenshot.d.ts +8 -4
- package/dist/provide-screenshot.js +5 -2
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +20 -12
- package/dist/puppeteer-screenshot.d.ts +12 -2
- package/dist/puppeteer-screenshot.js +18 -45
- package/dist/redirect-status-codes.d.ts +1 -0
- package/dist/redirect-status-codes.js +6 -0
- package/dist/render-frames.d.ts +52 -35
- package/dist/render-frames.js +248 -143
- package/dist/render-media.d.ts +76 -29
- package/dist/render-media.js +324 -195
- package/dist/render-still.d.ts +46 -19
- package/dist/render-still.js +128 -69
- package/dist/replace-browser.d.ts +6 -0
- package/dist/replace-browser.js +47 -0
- package/dist/resolve-asset-src.d.ts +0 -0
- package/dist/resolve-asset-src.js +2 -2
- package/dist/sample-rate.d.ts +0 -0
- package/dist/sample-rate.js +0 -0
- package/dist/screenshot-dom-element.d.ts +8 -4
- package/dist/screenshot-dom-element.js +15 -4
- package/dist/screenshot-task.d.ts +11 -2
- package/dist/screenshot-task.js +43 -13
- package/dist/seek-to-frame.d.ts +1 -0
- package/dist/seek-to-frame.js +49 -3
- package/dist/select-composition.d.ts +41 -0
- package/dist/select-composition.js +156 -0
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/index.js +21 -19
- package/dist/serve-handler/is-path-inside.d.ts +0 -0
- package/dist/serve-handler/is-path-inside.js +3 -3
- package/dist/serve-handler/range-parser.d.ts +0 -0
- package/dist/serve-handler/range-parser.js +0 -0
- package/dist/serve-static.d.ts +8 -6
- package/dist/serve-static.js +85 -59
- package/dist/set-props-and-env.d.ts +5 -3
- package/dist/set-props-and-env.js +18 -10
- package/dist/stitch-frames-to-video.d.ts +39 -16
- package/dist/stitch-frames-to-video.js +210 -121
- package/dist/stringify-ffmpeg-filter.d.ts +10 -2
- package/dist/stringify-ffmpeg-filter.js +37 -34
- package/dist/symbolicate-stacktrace.d.ts +16 -3
- package/dist/symbolicate-stacktrace.js +49 -24
- package/dist/take-frame-and-compose.d.ts +22 -0
- package/dist/take-frame-and-compose.js +103 -0
- package/dist/tmp-dir.d.ts +0 -0
- package/dist/tmp-dir.js +7 -8
- package/dist/truthy.d.ts +1 -1
- package/dist/truthy.js +0 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +2 -0
- package/dist/validate-concurrency.js +21 -10
- package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
- package/dist/validate-even-dimensions-with-codec.js +0 -0
- package/dist/validate-every-nth-frame.d.ts +2 -1
- package/dist/validate-every-nth-frame.js +8 -1
- package/dist/validate-ffmpeg-override.d.ts +0 -0
- package/dist/validate-ffmpeg-override.js +0 -0
- package/dist/validate-number-of-gif-loops.d.ts +2 -0
- package/dist/validate-number-of-gif-loops.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +2 -3
- package/dist/validate-opengl-renderer.js +9 -4
- package/dist/validate-output-filename.d.ts +7 -2
- package/dist/validate-output-filename.js +20 -51
- package/dist/validate-puppeteer-timeout.d.ts +0 -0
- package/dist/validate-puppeteer-timeout.js +1 -0
- package/dist/validate-scale.d.ts +0 -0
- package/dist/validate-scale.js +0 -0
- package/dist/validate-videobitrate.d.ts +1 -0
- package/dist/validate-videobitrate.js +20 -0
- package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
- package/dist/ws/ws-types.d.ts +0 -0
- package/dist/ws/ws-types.js +2 -1
- package/install-toolchain.mjs +36 -0
- package/package.json +70 -60
- package/types/ws/index.d.ts +5 -5
- package/.prettierrc.js +0 -14
- package/dist/assets/dl-browser.d.ts +0 -1
- package/dist/assets/dl-browser.js +0 -38
- package/dist/assets/get-video-stream-duration.d.ts +0 -4
- package/dist/assets/get-video-stream-duration.js +0 -59
- package/dist/calculate-sar-dar-pixels.d.ts +0 -9
- package/dist/calculate-sar-dar-pixels.js +0 -19
- package/dist/convert-to-pcm.d.ts +0 -6
- package/dist/convert-to-pcm.js +0 -20
- package/dist/ensure-presentation-timestamp.d.ts +0 -2
- package/dist/ensure-presentation-timestamp.js +0 -69
- package/dist/extract-frame-from-video.d.ts +0 -16
- package/dist/extract-frame-from-video.js +0 -277
- package/dist/ffmpeg-executable.d.ts +0 -1
- package/dist/ffmpeg-flags.d.ts +0 -12
- package/dist/ffmpeg-flags.js +0 -45
- package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -1
- package/dist/frame-to-ffmpeg-timestamp.js +0 -8
- package/dist/get-audio-codec-name.d.ts +0 -2
- package/dist/get-audio-codec-name.js +0 -28
- package/dist/get-video-info.d.ts +0 -3
- package/dist/get-video-info.js +0 -49
- package/dist/is-beyond-last-frame.d.ts +0 -3
- package/dist/is-beyond-last-frame.js +0 -12
- package/dist/last-frame-from-video-cache.d.ts +0 -17
- package/dist/last-frame-from-video-cache.js +0 -55
- package/dist/legacy-webpack-config.d.ts +0 -9
- package/dist/legacy-webpack-config.js +0 -13
- package/dist/quality.d.ts +0 -1
- package/dist/quality.js +0 -21
- package/dist/validate-ffmpeg.d.ts +0 -2
- package/dist/validate-ffmpeg.js +0 -72
- package/dist/validate-frame.d.ts +0 -1
- package/dist/validate-frame.js +0 -24
- package/tsconfig.json +0 -10
- package/vitest.config.ts +0 -8
|
@@ -1,15 +1,28 @@
|
|
|
1
|
+
import type { BasicSourceMapConsumer, IndexedSourceMapConsumer } from 'source-map';
|
|
2
|
+
import { SourceMapConsumer } from 'source-map';
|
|
1
3
|
import type { UnsymbolicatedStackFrame } from './parse-browser-error-stack';
|
|
2
|
-
|
|
4
|
+
type ScriptLine = {
|
|
3
5
|
lineNumber: number;
|
|
4
6
|
content: string;
|
|
5
7
|
highlight: boolean;
|
|
6
8
|
};
|
|
7
|
-
export
|
|
9
|
+
export type SymbolicatedStackFrame = {
|
|
8
10
|
originalFunctionName: string | null;
|
|
9
11
|
originalFileName: string | null;
|
|
10
12
|
originalLineNumber: number | null;
|
|
11
13
|
originalColumnNumber: number | null;
|
|
12
14
|
originalScriptCode: ScriptLine[] | null;
|
|
13
15
|
};
|
|
14
|
-
export declare const
|
|
16
|
+
export declare const symbolicateStackTraceFromRemoteFrames: (frames: UnsymbolicatedStackFrame[]) => Promise<SymbolicatedStackFrame[]>;
|
|
17
|
+
export declare const symbolicateFromSources: (frames: UnsymbolicatedStackFrame[], mapValues: Record<string, SourceMapConsumer | null>) => SymbolicatedStackFrame[];
|
|
18
|
+
export declare const symbolicateStackFrame: (frame: UnsymbolicatedStackFrame, map: SourceMapConsumer) => {
|
|
19
|
+
originalColumnNumber: number | null;
|
|
20
|
+
originalFileName: string | null;
|
|
21
|
+
originalFunctionName: string | null;
|
|
22
|
+
originalLineNumber: number | null;
|
|
23
|
+
originalScriptCode: ScriptLine[] | null;
|
|
24
|
+
};
|
|
25
|
+
export declare const getSourceMapFromRemoteFile: (fileName: string) => Promise<IndexedSourceMapConsumer | null>;
|
|
26
|
+
export declare const getSourceMapFromLocalFile: (fileName: string) => Promise<IndexedSourceMapConsumer | null>;
|
|
27
|
+
export type AnySourceMapConsumer = BasicSourceMapConsumer | IndexedSourceMapConsumer;
|
|
15
28
|
export {};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
6
|
+
exports.getSourceMapFromLocalFile = exports.getSourceMapFromRemoteFile = exports.symbolicateStackFrame = exports.symbolicateFromSources = exports.symbolicateStackTraceFromRemoteFrames = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
4
9
|
const source_map_1 = require("source-map");
|
|
5
10
|
const read_file_1 = require("./assets/read-file");
|
|
6
11
|
const truthy_1 = require("./truthy");
|
|
@@ -19,7 +24,7 @@ function extractSourceMapUrl(fileContents) {
|
|
|
19
24
|
}
|
|
20
25
|
return match[1].toString();
|
|
21
26
|
}
|
|
22
|
-
async
|
|
27
|
+
const getSourceMap = async (filePath, fileContents, type) => {
|
|
23
28
|
const sm = extractSourceMapUrl(fileContents);
|
|
24
29
|
if (sm === null) {
|
|
25
30
|
return null;
|
|
@@ -33,11 +38,16 @@ async function getSourceMap(fileUri, fileContents) {
|
|
|
33
38
|
const converted = window.atob(sm.substring(match2[0].length));
|
|
34
39
|
return new source_map_1.SourceMapConsumer(JSON.parse(converted));
|
|
35
40
|
}
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
if (type === 'local') {
|
|
42
|
+
// Find adjacent file: bundle.js -> bundle.js.map
|
|
43
|
+
const newFilePath = path_1.default.join(path_1.default.dirname(filePath), sm);
|
|
44
|
+
return new source_map_1.SourceMapConsumer((0, fs_1.readFileSync)(newFilePath, 'utf8'));
|
|
45
|
+
}
|
|
46
|
+
const index = filePath.lastIndexOf('/');
|
|
47
|
+
const url = filePath.substring(0, index + 1) + sm;
|
|
38
48
|
const obj = await fetchUrl(url);
|
|
39
49
|
return new source_map_1.SourceMapConsumer(obj);
|
|
40
|
-
}
|
|
50
|
+
};
|
|
41
51
|
const fetchUrl = async (url) => {
|
|
42
52
|
const res = await (0, read_file_1.readFile)(url);
|
|
43
53
|
return new Promise((resolve, reject) => {
|
|
@@ -69,42 +79,57 @@ const getOriginalPosition = (source_map, line, column) => {
|
|
|
69
79
|
});
|
|
70
80
|
return { line: result.line, column: result.column, source: result.source };
|
|
71
81
|
};
|
|
72
|
-
const
|
|
82
|
+
const symbolicateStackTraceFromRemoteFrames = async (frames) => {
|
|
73
83
|
const uniqueFileNames = [
|
|
74
84
|
...new Set(frames
|
|
75
85
|
.map((f) => f.fileName)
|
|
76
86
|
.filter((f) => f.startsWith('http://') || f.startsWith('https://'))
|
|
77
87
|
.filter(truthy_1.truthy)),
|
|
78
88
|
];
|
|
79
|
-
const maps = await Promise.all(uniqueFileNames.map(
|
|
80
|
-
|
|
81
|
-
return getSourceMap(fileName, fileContents);
|
|
89
|
+
const maps = await Promise.all(uniqueFileNames.map((fileName) => {
|
|
90
|
+
return (0, exports.getSourceMapFromRemoteFile)(fileName);
|
|
82
91
|
}));
|
|
83
92
|
const mapValues = {};
|
|
84
93
|
for (let i = 0; i < uniqueFileNames.length; i++) {
|
|
85
94
|
mapValues[uniqueFileNames[i]] = maps[i];
|
|
86
95
|
}
|
|
96
|
+
return (0, exports.symbolicateFromSources)(frames, mapValues);
|
|
97
|
+
};
|
|
98
|
+
exports.symbolicateStackTraceFromRemoteFrames = symbolicateStackTraceFromRemoteFrames;
|
|
99
|
+
const symbolicateFromSources = (frames, mapValues) => {
|
|
87
100
|
return frames
|
|
88
101
|
.map((frame) => {
|
|
89
102
|
const map = mapValues[frame.fileName];
|
|
90
103
|
if (!map) {
|
|
91
104
|
return null;
|
|
92
105
|
}
|
|
93
|
-
|
|
94
|
-
const { functionName } = frame;
|
|
95
|
-
let hasSource = null;
|
|
96
|
-
hasSource = pos.source ? map.sourceContentFor(pos.source, false) : null;
|
|
97
|
-
const scriptCode = hasSource && pos.line
|
|
98
|
-
? getLinesAround(pos.line, 3, hasSource.split('\n'))
|
|
99
|
-
: null;
|
|
100
|
-
return {
|
|
101
|
-
originalColumnNumber: pos.column,
|
|
102
|
-
originalFileName: pos.source,
|
|
103
|
-
originalFunctionName: functionName,
|
|
104
|
-
originalLineNumber: pos.line ? pos.line : null,
|
|
105
|
-
originalScriptCode: scriptCode,
|
|
106
|
-
};
|
|
106
|
+
return (0, exports.symbolicateStackFrame)(frame, map);
|
|
107
107
|
})
|
|
108
108
|
.filter(truthy_1.truthy);
|
|
109
109
|
};
|
|
110
|
-
exports.
|
|
110
|
+
exports.symbolicateFromSources = symbolicateFromSources;
|
|
111
|
+
const symbolicateStackFrame = (frame, map) => {
|
|
112
|
+
const pos = getOriginalPosition(map, frame.lineNumber, frame.columnNumber);
|
|
113
|
+
const hasSource = pos.source ? map.sourceContentFor(pos.source, false) : null;
|
|
114
|
+
const scriptCode = hasSource && pos.line
|
|
115
|
+
? getLinesAround(pos.line, 3, hasSource.split('\n'))
|
|
116
|
+
: null;
|
|
117
|
+
return {
|
|
118
|
+
originalColumnNumber: pos.column,
|
|
119
|
+
originalFileName: pos.source,
|
|
120
|
+
originalFunctionName: frame.functionName,
|
|
121
|
+
originalLineNumber: pos.line,
|
|
122
|
+
originalScriptCode: scriptCode,
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
exports.symbolicateStackFrame = symbolicateStackFrame;
|
|
126
|
+
const getSourceMapFromRemoteFile = async (fileName) => {
|
|
127
|
+
const fileContents = await fetchUrl(fileName);
|
|
128
|
+
return getSourceMap(fileName, fileContents, 'remote');
|
|
129
|
+
};
|
|
130
|
+
exports.getSourceMapFromRemoteFile = getSourceMapFromRemoteFile;
|
|
131
|
+
const getSourceMapFromLocalFile = (fileName) => {
|
|
132
|
+
const fileContents = (0, fs_1.readFileSync)(fileName, 'utf8');
|
|
133
|
+
return getSourceMap(fileName, fileContents, 'local');
|
|
134
|
+
};
|
|
135
|
+
exports.getSourceMapFromLocalFile = getSourceMapFromLocalFile;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { TAsset } from 'remotion';
|
|
3
|
+
import type { DownloadMap } from './assets/download-map';
|
|
4
|
+
import type { Page } from './browser/BrowserPage';
|
|
5
|
+
import type { Compositor } from './compositor/compositor';
|
|
6
|
+
import type { StillImageFormat, VideoImageFormat } from './image-format';
|
|
7
|
+
export declare const takeFrameAndCompose: ({ freePage, imageFormat, jpegQuality, frame, width, height, output, scale, downloadMap, wantsBuffer, compositor, }: {
|
|
8
|
+
freePage: Page;
|
|
9
|
+
imageFormat: VideoImageFormat | StillImageFormat;
|
|
10
|
+
jpegQuality: number | undefined;
|
|
11
|
+
frame: number;
|
|
12
|
+
height: number;
|
|
13
|
+
width: number;
|
|
14
|
+
output: string | null;
|
|
15
|
+
scale: number;
|
|
16
|
+
downloadMap: DownloadMap;
|
|
17
|
+
wantsBuffer: boolean;
|
|
18
|
+
compositor: Compositor;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
buffer: Buffer | null;
|
|
21
|
+
collectedAssets: TAsset[];
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.takeFrameAndCompose = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const compose_1 = require("./compositor/compose");
|
|
10
|
+
const provide_screenshot_1 = require("./provide-screenshot");
|
|
11
|
+
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
12
|
+
const truthy_1 = require("./truthy");
|
|
13
|
+
const takeFrameAndCompose = async ({ freePage, imageFormat, jpegQuality, frame, width, height, output, scale, downloadMap, wantsBuffer, compositor, }) => {
|
|
14
|
+
var _a;
|
|
15
|
+
const [clipRegion, collectedAssets] = await Promise.all([
|
|
16
|
+
(0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
17
|
+
pageFunction: () => {
|
|
18
|
+
if (typeof window.remotion_getClipRegion === 'undefined') {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return window.remotion_getClipRegion();
|
|
22
|
+
},
|
|
23
|
+
args: [],
|
|
24
|
+
frame,
|
|
25
|
+
page: freePage,
|
|
26
|
+
}),
|
|
27
|
+
(0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
28
|
+
pageFunction: () => {
|
|
29
|
+
return window.remotion_collectAssets();
|
|
30
|
+
},
|
|
31
|
+
args: [],
|
|
32
|
+
frame,
|
|
33
|
+
page: freePage,
|
|
34
|
+
}),
|
|
35
|
+
]);
|
|
36
|
+
if (imageFormat === 'none') {
|
|
37
|
+
return { buffer: null, collectedAssets };
|
|
38
|
+
}
|
|
39
|
+
const needsComposing = clipRegion === null
|
|
40
|
+
? null
|
|
41
|
+
: {
|
|
42
|
+
tmpFile: node_path_1.default.join(downloadMap.compositingDir, `${frame}.${imageFormat}`),
|
|
43
|
+
finalOutFile: output !== null && output !== void 0 ? output : node_path_1.default.join(downloadMap.compositingDir, `${frame}-final.${imageFormat}`),
|
|
44
|
+
clipRegion: clipRegion,
|
|
45
|
+
};
|
|
46
|
+
if (clipRegion !== 'hide') {
|
|
47
|
+
const shouldMakeBuffer = wantsBuffer && !needsComposing;
|
|
48
|
+
const buf = await (0, provide_screenshot_1.provideScreenshot)({
|
|
49
|
+
page: freePage,
|
|
50
|
+
imageFormat,
|
|
51
|
+
jpegQuality,
|
|
52
|
+
options: {
|
|
53
|
+
frame,
|
|
54
|
+
output: shouldMakeBuffer ? null : (_a = needsComposing === null || needsComposing === void 0 ? void 0 : needsComposing.tmpFile) !== null && _a !== void 0 ? _a : output,
|
|
55
|
+
},
|
|
56
|
+
height,
|
|
57
|
+
width,
|
|
58
|
+
clipRegion,
|
|
59
|
+
});
|
|
60
|
+
if (shouldMakeBuffer) {
|
|
61
|
+
return { buffer: buf, collectedAssets };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (needsComposing) {
|
|
65
|
+
if (imageFormat === 'pdf') {
|
|
66
|
+
throw new Error("You cannot use compositor APIs (like <Clipper>) if `imageFormat` is 'pdf'.");
|
|
67
|
+
}
|
|
68
|
+
if (imageFormat === 'webp') {
|
|
69
|
+
throw new Error("You cannot use compositor APIs (like <Clipper>) if `imageFormat` is 'webp'.");
|
|
70
|
+
}
|
|
71
|
+
await (0, compose_1.compose)({
|
|
72
|
+
height: height * scale,
|
|
73
|
+
width: width * scale,
|
|
74
|
+
layers: [
|
|
75
|
+
needsComposing.clipRegion === 'hide'
|
|
76
|
+
? null
|
|
77
|
+
: {
|
|
78
|
+
type: imageFormat === 'jpeg'
|
|
79
|
+
? 'JpgImage'
|
|
80
|
+
: 'PngImage',
|
|
81
|
+
params: {
|
|
82
|
+
height: needsComposing.clipRegion.height * scale,
|
|
83
|
+
width: needsComposing.clipRegion.width * scale,
|
|
84
|
+
src: needsComposing.tmpFile,
|
|
85
|
+
x: needsComposing.clipRegion.x * scale,
|
|
86
|
+
y: needsComposing.clipRegion.y * scale,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
].filter(truthy_1.truthy),
|
|
90
|
+
output: needsComposing.finalOutFile,
|
|
91
|
+
downloadMap,
|
|
92
|
+
imageFormat: imageFormat === 'jpeg' ? 'Jpeg' : 'Png',
|
|
93
|
+
compositor,
|
|
94
|
+
});
|
|
95
|
+
if (wantsBuffer) {
|
|
96
|
+
const buffer = await node_fs_1.default.promises.readFile(needsComposing.finalOutFile);
|
|
97
|
+
await node_fs_1.default.promises.unlink(needsComposing.finalOutFile);
|
|
98
|
+
return { buffer, collectedAssets };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { buffer: null, collectedAssets };
|
|
102
|
+
};
|
|
103
|
+
exports.takeFrameAndCompose = takeFrameAndCompose;
|
package/dist/tmp-dir.d.ts
CHANGED
|
File without changes
|
package/dist/tmp-dir.js
CHANGED
|
@@ -27,9 +27,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.tmpDir = void 0;
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
30
|
+
const node_fs_1 = __importStar(require("node:fs"));
|
|
31
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
32
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
33
33
|
const alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
34
34
|
const randomHash = () => {
|
|
35
35
|
return new Array(10)
|
|
@@ -40,15 +40,14 @@ const randomHash = () => {
|
|
|
40
40
|
.join('');
|
|
41
41
|
};
|
|
42
42
|
const tmpDir = (str) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
((_a = fs_1.default.rmSync) !== null && _a !== void 0 ? _a : fs_1.default.rmdirSync)(newDir, {
|
|
43
|
+
const newDir = node_path_1.default.join(node_os_1.default.tmpdir(), str + randomHash());
|
|
44
|
+
if (node_fs_1.default.existsSync(newDir)) {
|
|
45
|
+
node_fs_1.default.rmSync(newDir, {
|
|
47
46
|
recursive: true,
|
|
48
47
|
force: true,
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
|
-
(0,
|
|
50
|
+
(0, node_fs_1.mkdirSync)(newDir);
|
|
52
51
|
return newDir;
|
|
53
52
|
};
|
|
54
53
|
exports.tmpDir = tmpDir;
|
package/dist/truthy.d.ts
CHANGED
package/dist/truthy.js
CHANGED
|
File without changes
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RenderAssetInfo } from './assets/download-map';
|
|
2
|
-
export
|
|
2
|
+
export type RenderFramesOutput = {
|
|
3
3
|
frameCount: number;
|
|
4
4
|
assetsInfo: RenderAssetInfo;
|
|
5
5
|
};
|
|
6
|
-
export
|
|
6
|
+
export type OnStartData = {
|
|
7
7
|
frameCount: number;
|
|
8
8
|
};
|
package/dist/types.js
CHANGED
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateConcurrency = void 0;
|
|
3
|
+
exports.getMinConcurrency = exports.getMaxConcurrency = exports.validateConcurrency = void 0;
|
|
4
4
|
const validateConcurrency = (value, setting) => {
|
|
5
5
|
if (typeof value === 'undefined') {
|
|
6
6
|
return;
|
|
@@ -8,17 +8,28 @@ const validateConcurrency = (value, setting) => {
|
|
|
8
8
|
if (value === null) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
if (typeof value !== 'number') {
|
|
12
|
-
throw new Error(setting + ' must
|
|
11
|
+
if (typeof value !== 'number' && typeof value !== 'string') {
|
|
12
|
+
throw new Error(setting + ' must a number or a string but is ' + value);
|
|
13
13
|
}
|
|
14
|
-
if (value
|
|
15
|
-
|
|
14
|
+
if (typeof value === 'number') {
|
|
15
|
+
if (value % 1 !== 0) {
|
|
16
|
+
throw new Error(setting + ' must be an integer, but is ' + value);
|
|
17
|
+
}
|
|
18
|
+
if (value < (0, exports.getMinConcurrency)()) {
|
|
19
|
+
throw new Error(`${setting} must be at least ${(0, exports.getMinConcurrency)()}, but is ${JSON.stringify(value)}`);
|
|
20
|
+
}
|
|
21
|
+
if (value > (0, exports.getMaxConcurrency)()) {
|
|
22
|
+
throw new Error(`${setting} is set higher than the amount of CPU cores available. Available CPU cores: ${(0, exports.getMaxConcurrency)()}, value set: ${value}`);
|
|
23
|
+
}
|
|
16
24
|
}
|
|
17
|
-
if (value
|
|
18
|
-
throw new Error(setting
|
|
19
|
-
}
|
|
20
|
-
if (value > require('os').cpus().length) {
|
|
21
|
-
throw new Error(`${setting} is set higher than the amount of CPU cores available. Available CPU cores: ${require('os').cpus().length}, value set: ${value}`);
|
|
25
|
+
else if (!/^\d+(\.\d+)?%$/.test(value)) {
|
|
26
|
+
throw new Error(`${setting} must be a number or percentage, but is ${JSON.stringify(value)}`);
|
|
22
27
|
}
|
|
23
28
|
};
|
|
24
29
|
exports.validateConcurrency = validateConcurrency;
|
|
30
|
+
const getMaxConcurrency = () => {
|
|
31
|
+
return require('os').cpus().length;
|
|
32
|
+
};
|
|
33
|
+
exports.getMaxConcurrency = getMaxConcurrency;
|
|
34
|
+
const getMinConcurrency = () => 1;
|
|
35
|
+
exports.getMinConcurrency = getMinConcurrency;
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Codec } from './codec';
|
|
2
|
+
export declare const validateEveryNthFrame: (everyNthFrame: unknown, codec: Codec) => 1 | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateEveryNthFrame = void 0;
|
|
4
|
-
const validateEveryNthFrame = (everyNthFrame) => {
|
|
4
|
+
const validateEveryNthFrame = (everyNthFrame, codec) => {
|
|
5
5
|
if (typeof everyNthFrame === 'undefined') {
|
|
6
6
|
throw new TypeError(`Argument missing for parameter "everyNthFrame"`);
|
|
7
7
|
}
|
|
@@ -17,5 +17,12 @@ const validateEveryNthFrame = (everyNthFrame) => {
|
|
|
17
17
|
if (everyNthFrame % 1 !== 0) {
|
|
18
18
|
throw new RangeError(`Argument for everyNthFrame must be an integer, but got ${everyNthFrame}`);
|
|
19
19
|
}
|
|
20
|
+
if (everyNthFrame === 1) {
|
|
21
|
+
return everyNthFrame;
|
|
22
|
+
}
|
|
23
|
+
// h264-mkv because that is what is being used on Lambda
|
|
24
|
+
if (codec !== 'gif' && codec !== 'h264-mkv') {
|
|
25
|
+
throw new Error(`"everyNthFrame" can only be set if "codec" is set to "gif". The codec is "${codec}"`);
|
|
26
|
+
}
|
|
20
27
|
};
|
|
21
28
|
exports.validateEveryNthFrame = validateEveryNthFrame;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateNumberOfGifLoops = void 0;
|
|
4
|
+
const validateNumberOfGifLoops = (numberOfGifLoops, codec) => {
|
|
5
|
+
if (typeof numberOfGifLoops === 'undefined' || numberOfGifLoops === null) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (typeof numberOfGifLoops !== 'number') {
|
|
9
|
+
throw new TypeError(`Argument passed to "numberOfGifLoops" is not a number: ${numberOfGifLoops}`);
|
|
10
|
+
}
|
|
11
|
+
if (numberOfGifLoops < 0) {
|
|
12
|
+
throw new RangeError(`The value for "numberOfGifLoops" cannot be below 0, but is ${numberOfGifLoops}`);
|
|
13
|
+
}
|
|
14
|
+
if (!Number.isFinite(numberOfGifLoops)) {
|
|
15
|
+
throw new RangeError(`"numberOfGifLoops" ${numberOfGifLoops} is not finite`);
|
|
16
|
+
}
|
|
17
|
+
if (numberOfGifLoops % 1 !== 0) {
|
|
18
|
+
throw new RangeError(`Argument for numberOfGifLoops must be an integer, but got ${numberOfGifLoops}`);
|
|
19
|
+
}
|
|
20
|
+
if (codec !== 'gif') {
|
|
21
|
+
throw new Error(`"everyNthFrame" can only be set if "codec" is set to "gif". The codec is "${codec}"`);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.validateNumberOfGifLoops = validateNumberOfGifLoops;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
declare const
|
|
2
|
-
export
|
|
1
|
+
export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
|
|
2
|
+
export type OpenGlRenderer = typeof validOpenGlRenderers[number];
|
|
3
3
|
export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
|
|
4
4
|
export declare const validateOpenGlRenderer: (option: OpenGlRenderer | null) => OpenGlRenderer | null;
|
|
5
|
-
export {};
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = void 0;
|
|
4
|
-
|
|
3
|
+
exports.validateOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = exports.validOpenGlRenderers = void 0;
|
|
4
|
+
exports.validOpenGlRenderers = [
|
|
5
|
+
'swangle',
|
|
6
|
+
'angle',
|
|
7
|
+
'egl',
|
|
8
|
+
'swiftshader',
|
|
9
|
+
];
|
|
5
10
|
exports.DEFAULT_OPENGL_RENDERER = null;
|
|
6
11
|
const validateOpenGlRenderer = (option) => {
|
|
7
12
|
if (option === null) {
|
|
8
13
|
return null;
|
|
9
14
|
}
|
|
10
|
-
if (!
|
|
11
|
-
throw new TypeError(`${option} is not a valid GL backend. Accepted values: ${
|
|
15
|
+
if (!exports.validOpenGlRenderers.includes(option)) {
|
|
16
|
+
throw new TypeError(`${option} is not a valid GL backend. Accepted values: ${exports.validOpenGlRenderers.join(', ')}`);
|
|
12
17
|
}
|
|
13
18
|
return option;
|
|
14
19
|
};
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const validateOutputFilename: (codec
|
|
1
|
+
import type { AudioCodec } from './audio-codec';
|
|
2
|
+
export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
|
|
3
|
+
codec: T;
|
|
4
|
+
audioCodec: AudioCodec | null;
|
|
5
|
+
extension: string;
|
|
6
|
+
preferLossless: boolean;
|
|
7
|
+
}) => void;
|
|
@@ -1,57 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateOutputFilename = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (codec === 'prores') {
|
|
26
|
-
const allowedProResExtensions = ['mov', 'mkv', 'mxf'];
|
|
27
|
-
if (!extension || !allowedProResExtensions.includes(extension)) {
|
|
28
|
-
throw new TypeError(`When using the 'prores' codec, the output must end in one of those extensions: ${allowedProResExtensions
|
|
29
|
-
.map((a) => `.${a}`)
|
|
30
|
-
.join(', ')}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (codec === 'mp3') {
|
|
34
|
-
if (extension !== 'mp3') {
|
|
35
|
-
throw new TypeError("When using the 'mp3' codec, the output must end in .mp3");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (codec === 'aac') {
|
|
39
|
-
const allowedAacExtensions = ['aac', '3gp', 'm4a', 'm4b', 'mpg', 'mpeg'];
|
|
40
|
-
if (!extension || !allowedAacExtensions.includes(extension)) {
|
|
41
|
-
throw new TypeError(`When using the 'aac' codec, the output must end in one of those extensions: ${allowedAacExtensions
|
|
42
|
-
.map((a) => `.${a}`)
|
|
43
|
-
.join(', ')}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (codec === 'wav') {
|
|
47
|
-
if (extension !== 'wav') {
|
|
48
|
-
throw new TypeError("When using the 'wav' codec, the output location must end in .wav.");
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (codec === 'gif') {
|
|
52
|
-
if (extension !== 'gif') {
|
|
53
|
-
throw new TypeError('When using the GIF codec, the output filename must end in .gif.');
|
|
54
|
-
}
|
|
4
|
+
const audio_codec_1 = require("./audio-codec");
|
|
5
|
+
const file_extensions_1 = require("./file-extensions");
|
|
6
|
+
const validateOutputFilename = ({ codec, audioCodec, extension, preferLossless, }) => {
|
|
7
|
+
if (!file_extensions_1.defaultFileExtensionMap[codec]) {
|
|
8
|
+
throw new TypeError(`The codec "${codec}" is not supported. Supported codecs are: ${Object.keys(file_extensions_1.defaultFileExtensionMap).join(', ')}`);
|
|
9
|
+
}
|
|
10
|
+
const map = file_extensions_1.defaultFileExtensionMap[codec];
|
|
11
|
+
const resolvedAudioCodec = audioCodec !== null && audioCodec !== void 0 ? audioCodec : (0, audio_codec_1.getDefaultAudioCodec)({ codec, preferLossless });
|
|
12
|
+
if (resolvedAudioCodec === null) {
|
|
13
|
+
if (extension !== map.default) {
|
|
14
|
+
throw new TypeError(`When using the ${codec} codec, the output filename must end in .${map.default}.`);
|
|
15
|
+
}
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (!(resolvedAudioCodec in map.forAudioCodec)) {
|
|
19
|
+
throw new Error(`Audio codec ${resolvedAudioCodec} is not supported for codec ${codec}`);
|
|
20
|
+
}
|
|
21
|
+
const acceptableExtensions = map.forAudioCodec[resolvedAudioCodec].possible;
|
|
22
|
+
if (!acceptableExtensions.includes(extension)) {
|
|
23
|
+
throw new TypeError(`When using the ${codec} codec with the ${resolvedAudioCodec} audio codec, the output filename must end in one of the following: ${acceptableExtensions.join(', ')}.`);
|
|
55
24
|
}
|
|
56
25
|
};
|
|
57
26
|
exports.validateOutputFilename = validateOutputFilename;
|
|
File without changes
|
|
@@ -8,6 +8,7 @@ const validatePuppeteerTimeout = (timeoutInMilliseconds) => {
|
|
|
8
8
|
if (typeof timeoutInMilliseconds !== 'number') {
|
|
9
9
|
throw new TypeError(`'timeoutInMilliseconds' should be a number, but is: ${JSON.stringify(timeoutInMilliseconds)}`);
|
|
10
10
|
}
|
|
11
|
+
// Value also appears in packages/cli/src/editor/components/RenderModal/RenderModalAdvanced.tsx
|
|
11
12
|
if (timeoutInMilliseconds < 7000 && process.env.NODE_ENV !== 'test') {
|
|
12
13
|
throw new TypeError(`'timeoutInMilliseconds' should be bigger or equal than 7000, but is ${timeoutInMilliseconds}`);
|
|
13
14
|
}
|
package/dist/validate-scale.d.ts
CHANGED
|
File without changes
|
package/dist/validate-scale.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateBitrate: (bitrate: unknown, name: string) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateBitrate = void 0;
|
|
4
|
+
const validateBitrate = (bitrate, name) => {
|
|
5
|
+
if (bitrate === null || typeof bitrate === 'undefined') {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (typeof bitrate === 'number') {
|
|
9
|
+
throw new TypeError(`"${name}" must be a string ending in "K" or "M". Got a number: ${bitrate}`);
|
|
10
|
+
}
|
|
11
|
+
if (typeof bitrate !== 'string') {
|
|
12
|
+
throw new TypeError(`"${name}" must be a string or null, but got ${JSON.stringify(bitrate)}`);
|
|
13
|
+
}
|
|
14
|
+
if (!bitrate.endsWith('K') &&
|
|
15
|
+
!bitrate.endsWith('k') &&
|
|
16
|
+
!bitrate.endsWith('M')) {
|
|
17
|
+
throw new TypeError(`"${name}" must end in "K", "k" or "M", but got ${JSON.stringify(bitrate)}`);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.validateBitrate = validateBitrate;
|
|
File without changes
|