@remotion/renderer 4.0.404 → 4.0.406
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/assets/apply-tone-frequency.d.ts +1 -2
- package/dist/assets/convert-assets-to-file-urls.d.ts +1 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +2 -3
- package/dist/assets/download-and-map-assets-to-file.js +1 -0
- package/dist/assets/download-file.d.ts +1 -0
- package/dist/assets/download-file.js +17 -1
- package/dist/assets/download-map.d.ts +1 -0
- package/dist/assets/download-map.js +2 -0
- package/dist/assets/get-audio-channels.d.ts +2 -3
- package/dist/assets/inline-audio-mixing.d.ts +1 -2
- package/dist/browser/Browser.d.ts +5 -5
- package/dist/browser/Browser.js +65 -74
- package/dist/browser/BrowserFetcher.d.ts +3 -5
- package/dist/browser/BrowserFetcher.js +1 -0
- package/dist/browser/BrowserPage.d.ts +4 -4
- package/dist/browser/BrowserPage.js +223 -218
- package/dist/browser/BrowserRunner.d.ts +1 -2
- package/dist/browser/Connection.js +99 -112
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/ConsoleMessage.js +9 -16
- package/dist/browser/DOMWorld.d.ts +1 -1
- package/dist/browser/DOMWorld.js +75 -89
- package/dist/browser/Errors.js +2 -4
- package/dist/browser/EventEmitter.js +2 -1
- package/dist/browser/ExecutionContext.js +117 -120
- package/dist/browser/FrameManager.js +249 -244
- package/dist/browser/HTTPRequest.js +11 -22
- package/dist/browser/HTTPResponse.js +3 -16
- package/dist/browser/JSHandle.js +17 -30
- package/dist/browser/LifecycleWatcher.js +122 -128
- package/dist/browser/NetworkEventManager.js +31 -40
- package/dist/browser/NetworkManager.js +210 -203
- package/dist/browser/NodeWebSocketTransport.js +3 -0
- package/dist/browser/Target.d.ts +1 -1
- package/dist/browser/Target.js +32 -39
- package/dist/browser/TaskQueue.js +5 -18
- package/dist/browser/TimeoutSettings.js +12 -25
- package/dist/browser/browser-download-progress-bar.d.ts +1 -2
- package/dist/browser/handle-failed-resource.d.ts +1 -2
- package/dist/browser/handle-failed-resource.js +4 -3
- package/dist/call-ffmpeg.d.ts +4 -5
- package/dist/can-concat-seamlessly.d.ts +2 -4
- package/dist/can-use-parallel-encoding.d.ts +1 -2
- package/dist/check-version-requirements.d.ts +1 -2
- package/dist/client.d.ts +181 -181
- package/dist/codec-supports-media.d.ts +3 -4
- package/dist/collect-assets.d.ts +1 -1
- package/dist/combine-audio.d.ts +2 -4
- package/dist/combine-chunks.d.ts +1 -2
- package/dist/combine-video-streams.d.ts +2 -4
- package/dist/compositor/compositor.d.ts +3 -3
- package/dist/compositor/compositor.js +51 -32
- package/dist/compositor/get-executable-path.d.ts +3 -3
- package/dist/compress-audio.d.ts +2 -4
- package/dist/create-audio.d.ts +2 -4
- package/dist/create-silent-audio.d.ts +1 -2
- package/dist/crf.d.ts +4 -6
- package/dist/cycle-browser-tabs.d.ts +1 -2
- package/dist/ensure-browser.d.ts +44 -1
- package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
- package/dist/error-handling/handle-javascript-exception.js +7 -1
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.js +4 -0
- package/dist/error-handling.js +1 -1
- package/dist/esm/client.mjs +7 -2
- package/dist/esm/index.mjs +81 -40
- package/dist/extract-audio.d.ts +2 -3
- package/dist/ffmpeg-args.d.ts +6 -12
- package/dist/get-browser-instance.d.ts +4 -6
- package/dist/get-codec-name.d.ts +3 -6
- package/dist/get-compositions.d.ts +1 -1
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts +2 -3
- package/dist/get-frame-padded-index.d.ts +1 -2
- package/dist/get-local-browser-executable.d.ts +2 -4
- package/dist/get-prores-profile-name.d.ts +1 -3
- package/dist/get-silent-parts.d.ts +4 -5
- package/dist/get-video-metadata.d.ts +3 -4
- package/dist/get-video-threads-flag.d.ts +1 -2
- package/dist/goto-page-or-throw.d.ts +1 -1
- package/dist/guess-extension-for-media.d.ts +2 -3
- package/dist/image-format.d.ts +2 -3
- package/dist/index.d.ts +173 -172
- package/dist/index.js +16 -16
- package/dist/is-audio-codec.d.ts +1 -2
- package/dist/log-level.d.ts +1 -1
- package/dist/logger.d.ts +6 -6
- package/dist/make-page.d.ts +2 -4
- package/dist/memory/from-proc-meminfo.d.ts +1 -2
- package/dist/memory/get-available-memory.d.ts +1 -2
- package/dist/mime-types.js +2 -1
- package/dist/mux-video-and-audio.d.ts +2 -3
- package/dist/offthread-video-server.d.ts +1 -2
- package/dist/offthread-video-server.js +6 -18
- package/dist/open-browser.d.ts +1 -1
- package/dist/open-browser.js +6 -5
- package/dist/options/api-key.js +3 -1
- package/dist/options/audio-bitrate.js +9 -1
- package/dist/options/audio-codec.d.ts +10 -13
- package/dist/options/beep-on-finish.js +1 -1
- package/dist/options/binaries-directory.js +9 -1
- package/dist/options/chrome-mode.d.ts +3 -3
- package/dist/options/chrome-mode.js +6 -1
- package/dist/options/color-space.d.ts +5 -9
- package/dist/options/color-space.js +7 -1
- package/dist/options/crf.js +1 -1
- package/dist/options/cross-site-isolation.js +2 -1
- package/dist/options/dark-mode.js +2 -1
- package/dist/options/delete-after.js +11 -1
- package/dist/options/disallow-parallel-encoding.js +1 -1
- package/dist/options/enable-lambda-insights.js +2 -1
- package/dist/options/enable-multiprocess-on-linux.js +13 -1
- package/dist/options/encoding-buffer-size.js +3 -1
- package/dist/options/encoding-max-rate.js +3 -1
- package/dist/options/enforce-audio.js +1 -1
- package/dist/options/folder-expiry.js +4 -1
- package/dist/options/for-seamless-aac-concatenation.js +3 -1
- package/dist/options/gl.d.ts +6 -6
- package/dist/options/gl.js +28 -2
- package/dist/options/hardware-acceleration.d.ts +2 -2
- package/dist/options/headless.js +4 -1
- package/dist/options/image-sequence-pattern.js +5 -1
- package/dist/options/index.d.ts +25 -25
- package/dist/options/jpeg-quality.js +1 -1
- package/dist/options/latency-hint.js +10 -1
- package/dist/options/license-key.js +2 -1
- package/dist/options/log-level.d.ts +3 -4
- package/dist/options/log-level.js +16 -1
- package/dist/options/metadata.js +7 -2
- package/dist/options/mute.js +1 -1
- package/dist/options/number-of-gif-loops.js +13 -1
- package/dist/options/offthreadvideo-cache-size.js +11 -1
- package/dist/options/offthreadvideo-threads.js +2 -1
- package/dist/options/on-browser-download.js +2 -1
- package/dist/options/options-map.d.ts +93 -93
- package/dist/options/overwrite.js +5 -1
- package/dist/options/prefer-lossless.js +4 -1
- package/dist/options/public-dir.js +2 -1
- package/dist/options/public-license-key.js +3 -1
- package/dist/options/public-path.js +7 -1
- package/dist/options/repro.js +1 -1
- package/dist/options/scale.js +5 -1
- package/dist/options/timeout.js +4 -1
- package/dist/options/video-bitrate.js +7 -1
- package/dist/options/video-cache-size.js +8 -1
- package/dist/options/video-codec.d.ts +6 -6
- package/dist/options/video-codec.js +1 -1
- package/dist/options/webhook-custom-data.js +1 -1
- package/dist/options/x264-preset.d.ts +5 -6
- package/dist/options/x264-preset.js +23 -1
- package/dist/p-limit.d.ts +1 -1
- package/dist/pixel-format.d.ts +2 -3
- package/dist/pool.js +2 -0
- package/dist/port-config.d.ts +5 -6
- package/dist/prespawn-ffmpeg.js +5 -4
- package/dist/prestitcher-memory-usage.d.ts +1 -2
- package/dist/print-useful-error-message.d.ts +1 -2
- package/dist/prores-profile.d.ts +2 -4
- package/dist/puppeteer-evaluate.d.ts +2 -2
- package/dist/puppeteer-screenshot.d.ts +3 -4
- package/dist/pure.d.ts +5 -5
- package/dist/render-frame-and-retry-target-close.d.ts +8 -8
- package/dist/render-frame-with-option-to-reject.d.ts +4 -6
- package/dist/render-frame.d.ts +8 -8
- package/dist/render-has-audio.d.ts +2 -3
- package/dist/render-media.js +2 -1
- package/dist/replace-browser.d.ts +1 -2
- package/dist/repro.d.ts +1 -1
- package/dist/screenshot-task.d.ts +3 -4
- package/dist/seek-to-frame.d.ts +2 -3
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/range-parser.d.ts +2 -2
- package/dist/serve-static.d.ts +1 -2
- package/dist/set-props-and-env.js +3 -1
- package/dist/stringify-ffmpeg-filter.d.ts +1 -2
- package/dist/take-frame.d.ts +1 -2
- package/dist/test-gpu.d.ts +2 -4
- package/dist/validate-even-dimensions-with-codec.d.ts +2 -4
- package/dist/validate-ffmpeg-override.d.ts +1 -1
- package/dist/validate-number-of-gif-loops.d.ts +1 -2
- package/dist/validate-output-filename.d.ts +2 -4
- package/package.json +16 -14
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { Codec } from './codec';
|
|
2
1
|
type MediaSupport = {
|
|
3
2
|
video: boolean;
|
|
4
3
|
audio: boolean;
|
|
5
4
|
};
|
|
6
|
-
export declare const codecSupportsMedia: (codec:
|
|
7
|
-
export declare const codecSupportsCrf: (codec:
|
|
8
|
-
export declare const codecSupportsVideoBitrate: (codec:
|
|
5
|
+
export declare const codecSupportsMedia: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => MediaSupport;
|
|
6
|
+
export declare const codecSupportsCrf: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => boolean;
|
|
7
|
+
export declare const codecSupportsVideoBitrate: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => boolean;
|
|
9
8
|
export {};
|
package/dist/collect-assets.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export declare const collectAssets: ({ frame, freePage, timeoutInMilliseconds, }
|
|
|
4
4
|
frame: number;
|
|
5
5
|
freePage: Page;
|
|
6
6
|
timeoutInMilliseconds: number;
|
|
7
|
-
}) => Promise<(import("remotion/no-react").AudioOrVideoAsset |
|
|
7
|
+
}) => Promise<(import("remotion/no-react").AudioOrVideoAsset | import("remotion/no-react").InlineAudioAsset | ArtifactAsset)[]>;
|
package/dist/combine-audio.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { LogLevel } from './log-level';
|
|
2
1
|
import type { CancelSignal } from './make-cancel-signal';
|
|
3
|
-
import type { AudioCodec } from './options/audio-codec';
|
|
4
2
|
export declare const durationOf1Frame: number;
|
|
5
3
|
export declare const getClosestAlignedTime: (targetTime: number) => number;
|
|
6
4
|
export declare const createCombinedAudio: ({ seamless, filelistDir, files, indent, logLevel, audioBitrate, resolvedAudioCodec, output, chunkDurationInSeconds, addRemotionMetadata, binariesDirectory, fps, cancelSignal, onProgress, }: {
|
|
@@ -8,9 +6,9 @@ export declare const createCombinedAudio: ({ seamless, filelistDir, files, inden
|
|
|
8
6
|
filelistDir: string;
|
|
9
7
|
files: string[];
|
|
10
8
|
indent: boolean;
|
|
11
|
-
logLevel:
|
|
9
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
12
10
|
audioBitrate: string | null;
|
|
13
|
-
resolvedAudioCodec:
|
|
11
|
+
resolvedAudioCodec: "aac" | "mp3" | "opus" | "pcm-16";
|
|
14
12
|
output: string;
|
|
15
13
|
chunkDurationInSeconds: number;
|
|
16
14
|
addRemotionMetadata: boolean;
|
package/dist/combine-chunks.d.ts
CHANGED
|
@@ -30,9 +30,8 @@ type OptionalCombineChunksOptions = {
|
|
|
30
30
|
frameRange: FrameRange | null;
|
|
31
31
|
everyNthFrame: number;
|
|
32
32
|
};
|
|
33
|
-
type AllCombineChunksOptions = MandatoryCombineChunksOptions & OptionalCombineChunksOptions;
|
|
34
33
|
export type CombineChunksOptions = MandatoryCombineChunksOptions & Partial<OptionalCombineChunksOptions>;
|
|
35
|
-
export declare const internalCombineChunks: ({ outputLocation: output, onProgress, codec, fps, numberOfGifLoops, audioBitrate, indent, logLevel, binariesDirectory, cancelSignal, metadata, audioFiles, videoFiles, framesPerChunk, audioCodec, preferLossless, everyNthFrame, frameRange, compositionDurationInFrames, }:
|
|
34
|
+
export declare const internalCombineChunks: ({ outputLocation: output, onProgress, codec, fps, numberOfGifLoops, audioBitrate, indent, logLevel, binariesDirectory, cancelSignal, metadata, audioFiles, videoFiles, framesPerChunk, audioCodec, preferLossless, everyNthFrame, frameRange, compositionDurationInFrames, }: MandatoryCombineChunksOptions & OptionalCombineChunksOptions & {
|
|
36
35
|
indent: boolean;
|
|
37
36
|
}) => Promise<void>;
|
|
38
37
|
export declare const combineChunks: (options: CombineChunksOptions) => Promise<void>;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import type { Codec } from './codec';
|
|
2
|
-
import type { LogLevel } from './log-level';
|
|
3
1
|
import type { CancelSignal } from './make-cancel-signal';
|
|
4
2
|
export declare const combineVideoStreams: ({ fps, codec, filelistDir, numberOfGifLoops, output, indent, logLevel, onProgress, files, addRemotionMetadata, binariesDirectory, cancelSignal, }: {
|
|
5
3
|
fps: number;
|
|
6
|
-
codec:
|
|
4
|
+
codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
|
|
7
5
|
filelistDir: string;
|
|
8
6
|
numberOfGifLoops: number | null;
|
|
9
7
|
output: string;
|
|
10
8
|
indent: boolean;
|
|
11
|
-
logLevel:
|
|
9
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
12
10
|
onProgress: (p: number) => void;
|
|
13
11
|
files: string[];
|
|
14
12
|
addRemotionMetadata: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { LogLevel } from '../log-level';
|
|
2
1
|
import type { CompositorCommand } from './payloads';
|
|
3
2
|
export type Compositor = {
|
|
3
|
+
shutDownOrKill: () => Promise<void>;
|
|
4
4
|
finishCommands: () => Promise<void>;
|
|
5
5
|
executeCommand: <T extends keyof CompositorCommand>(type: T, payload: CompositorCommand[T]) => Promise<Uint8Array>;
|
|
6
6
|
waitForDone: () => Promise<void>;
|
|
@@ -8,7 +8,7 @@ export type Compositor = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare const startLongRunningCompositor: ({ maximumFrameCacheItemsInBytes, logLevel, indent, binariesDirectory, extraThreads, }: {
|
|
10
10
|
maximumFrameCacheItemsInBytes: number | null;
|
|
11
|
-
logLevel:
|
|
11
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
12
12
|
indent: boolean;
|
|
13
13
|
binariesDirectory: string | null;
|
|
14
14
|
extraThreads: number;
|
|
@@ -16,7 +16,7 @@ export declare const startLongRunningCompositor: ({ maximumFrameCacheItemsInByte
|
|
|
16
16
|
export declare const startCompositor: <T extends keyof CompositorCommand>({ type, payload, logLevel, indent, binariesDirectory, }: {
|
|
17
17
|
type: T;
|
|
18
18
|
payload: CompositorCommand[T];
|
|
19
|
-
logLevel:
|
|
19
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
20
20
|
indent: boolean;
|
|
21
21
|
binariesDirectory: string | null;
|
|
22
22
|
}) => Compositor;
|
|
@@ -107,42 +107,61 @@ const startCompositor = ({ type, payload, logLevel, indent, binariesDirectory =
|
|
|
107
107
|
clear();
|
|
108
108
|
stderrChunks = [];
|
|
109
109
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
110
|
+
const waitForDone = () => {
|
|
111
|
+
return new Promise((res, rej) => {
|
|
112
|
+
if (runningStatus.type === 'quit-without-error') {
|
|
113
|
+
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ''}`));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (runningStatus.type === 'quit-with-error') {
|
|
117
|
+
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ''}: ${runningStatus.error}`));
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
resolve = res;
|
|
121
|
+
reject = rej;
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
const finishCommands = async () => {
|
|
125
|
+
// Prevent this function from throwing an error if instead a rejected promise should be returned
|
|
126
|
+
await Promise.resolve();
|
|
127
|
+
if (runningStatus.type === 'quit-with-error') {
|
|
128
|
+
return Promise.reject(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ''}: ${runningStatus.error}`));
|
|
129
|
+
}
|
|
130
|
+
if (runningStatus.type === 'quit-without-error') {
|
|
131
|
+
return Promise.reject(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ''}`));
|
|
132
|
+
}
|
|
133
|
+
return new Promise((res, rej) => {
|
|
134
|
+
child.stdin.write('EOF\n', (e) => {
|
|
135
|
+
if (e) {
|
|
136
|
+
rej(e);
|
|
123
137
|
return;
|
|
124
138
|
}
|
|
125
|
-
|
|
126
|
-
reject = rej;
|
|
139
|
+
res();
|
|
127
140
|
});
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
rej(e);
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
res();
|
|
143
|
-
});
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
const shutDownOrKill = () => {
|
|
144
|
+
const shutDownCase = async () => {
|
|
145
|
+
await finishCommands();
|
|
146
|
+
await waitForDone();
|
|
147
|
+
};
|
|
148
|
+
let timeout = null;
|
|
149
|
+
const killCase = async () => {
|
|
150
|
+
await new Promise((res) => {
|
|
151
|
+
timeout = setTimeout(res, 5000);
|
|
144
152
|
});
|
|
145
|
-
|
|
153
|
+
child.kill('SIGKILL');
|
|
154
|
+
};
|
|
155
|
+
return Promise.race([shutDownCase(), killCase()]).finally(() => {
|
|
156
|
+
if (timeout !== null) {
|
|
157
|
+
clearTimeout(timeout);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
return {
|
|
162
|
+
shutDownOrKill,
|
|
163
|
+
waitForDone,
|
|
164
|
+
finishCommands,
|
|
146
165
|
executeCommand: (command, params) => {
|
|
147
166
|
return new Promise((_resolve, _reject) => {
|
|
148
167
|
if (runningStatus.type === 'quit-without-error') {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { LogLevel } from '../log-level';
|
|
2
|
-
export declare function isMusl({ indent, logLevel
|
|
2
|
+
export declare function isMusl({ indent, logLevel }: {
|
|
3
3
|
indent: boolean;
|
|
4
4
|
logLevel: LogLevel;
|
|
5
5
|
}): boolean;
|
|
6
6
|
export declare const getExecutablePath: ({ indent, logLevel, type, binariesDirectory, }: {
|
|
7
7
|
type: "compositor" | "ffmpeg" | "ffprobe";
|
|
8
8
|
indent: boolean;
|
|
9
|
-
logLevel:
|
|
9
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
10
10
|
binariesDirectory: string | null;
|
|
11
11
|
}) => string;
|
|
12
|
-
export declare const getExecutableDir: (indent: boolean, logLevel:
|
|
12
|
+
export declare const getExecutableDir: (indent: boolean, logLevel: "error" | "info" | "trace" | "verbose" | "warn") => string;
|
package/dist/compress-audio.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { LogLevel } from './log-level';
|
|
2
1
|
import type { CancelSignal } from './make-cancel-signal';
|
|
3
|
-
import type { AudioCodec } from './options/audio-codec';
|
|
4
2
|
export declare const compressAudio: ({ audioCodec, outName, binariesDirectory, indent, logLevel, audioBitrate, cancelSignal, inName, onProgress, chunkLengthInSeconds, fps, }: {
|
|
5
|
-
audioCodec:
|
|
3
|
+
audioCodec: "aac" | "mp3" | "opus" | "pcm-16";
|
|
6
4
|
outName: string;
|
|
7
5
|
indent: boolean;
|
|
8
|
-
logLevel:
|
|
6
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
9
7
|
binariesDirectory: string | null;
|
|
10
8
|
audioBitrate: string | null;
|
|
11
9
|
cancelSignal: CancelSignal | undefined;
|
package/dist/create-audio.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
2
2
|
import type { DownloadMap } from './assets/download-map';
|
|
3
|
-
import type { LogLevel } from './log-level';
|
|
4
3
|
import type { CancelSignal } from './make-cancel-signal';
|
|
5
|
-
import type { AudioCodec } from './options/audio-codec';
|
|
6
4
|
import type { FrameAndAssets } from './render-frames';
|
|
7
5
|
export type SeamlessAudioInfo = {
|
|
8
6
|
chunkLengthInSeconds: number;
|
|
@@ -13,14 +11,14 @@ export declare const createAudio: ({ assets, onDownload, fps, logLevel, onProgre
|
|
|
13
11
|
assets: FrameAndAssets[];
|
|
14
12
|
onDownload: RenderMediaOnDownload | undefined;
|
|
15
13
|
fps: number;
|
|
16
|
-
logLevel:
|
|
14
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
17
15
|
onProgress: (progress: number) => void;
|
|
18
16
|
downloadMap: DownloadMap;
|
|
19
17
|
remotionRoot: string;
|
|
20
18
|
indent: boolean;
|
|
21
19
|
binariesDirectory: string | null;
|
|
22
20
|
audioBitrate: string | null;
|
|
23
|
-
audioCodec:
|
|
21
|
+
audioCodec: "aac" | "mp3" | "opus" | "pcm-16";
|
|
24
22
|
cancelSignal: CancelSignal | undefined;
|
|
25
23
|
chunkLengthInSeconds: number;
|
|
26
24
|
trimLeftOffset: number;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { LogLevel } from './log-level';
|
|
2
1
|
import type { CancelSignal } from './make-cancel-signal';
|
|
3
2
|
export declare const createSilentAudio: ({ outName, indent, logLevel, binariesDirectory, cancelSignal, chunkLengthInSeconds, }: {
|
|
4
3
|
chunkLengthInSeconds: number;
|
|
5
4
|
outName: string;
|
|
6
5
|
indent: boolean;
|
|
7
|
-
logLevel:
|
|
6
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
8
7
|
binariesDirectory: string | null;
|
|
9
8
|
cancelSignal: CancelSignal | undefined;
|
|
10
9
|
}) => Promise<void>;
|
package/dist/crf.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import type { HardwareAccelerationOption } from './client';
|
|
2
|
-
import type { Codec } from './codec';
|
|
3
1
|
export type Crf = number | undefined;
|
|
4
|
-
export declare const getDefaultCrfForCodec: (codec:
|
|
5
|
-
export declare const getValidCrfRanges: (codec:
|
|
2
|
+
export declare const getDefaultCrfForCodec: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => number | null;
|
|
3
|
+
export declare const getValidCrfRanges: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => [number, number];
|
|
6
4
|
export declare const validateQualitySettings: ({ codec, crf, videoBitrate, encodingMaxRate, encodingBufferSize, hardwareAcceleration, }: {
|
|
7
5
|
crf: unknown;
|
|
8
|
-
codec:
|
|
6
|
+
codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
|
|
9
7
|
videoBitrate: string | null;
|
|
10
8
|
encodingMaxRate: string | null;
|
|
11
9
|
encodingBufferSize: string | null;
|
|
12
|
-
hardwareAcceleration:
|
|
10
|
+
hardwareAcceleration: "disable" | "if-possible" | "required";
|
|
13
11
|
}) => string[];
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { LogLevel } from './log-level';
|
|
2
1
|
import type { BrowserReplacer } from './replace-browser';
|
|
3
2
|
export declare const cycleBrowserTabs: ({ puppeteerInstance, concurrency, logLevel, indent, }: {
|
|
4
3
|
puppeteerInstance: BrowserReplacer;
|
|
5
4
|
concurrency: number;
|
|
6
|
-
logLevel:
|
|
5
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
7
6
|
indent: boolean;
|
|
8
7
|
}) => {
|
|
9
8
|
stopCycling: () => void;
|
package/dist/ensure-browser.d.ts
CHANGED
|
@@ -20,5 +20,48 @@ export type EnsureBrowserOptions = Partial<{
|
|
|
20
20
|
browserExecutable: BrowserExecutable;
|
|
21
21
|
} & ToOptions<typeof BrowserSafeApis.optionsMap.ensureBrowser>>;
|
|
22
22
|
export declare const internalEnsureBrowser: (options: InternalEnsureBrowserOptions) => Promise<BrowserStatus>;
|
|
23
|
-
export declare const ensureBrowser: (options?:
|
|
23
|
+
export declare const ensureBrowser: (options?: Partial<{
|
|
24
|
+
browserExecutable: BrowserExecutable;
|
|
25
|
+
} & ToOptions<{
|
|
26
|
+
readonly logLevel: {
|
|
27
|
+
cliFlag: "log";
|
|
28
|
+
name: string;
|
|
29
|
+
ssrName: string;
|
|
30
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
docLink: string;
|
|
32
|
+
getValue: ({ commandLine }: {
|
|
33
|
+
commandLine: Record<string, unknown>;
|
|
34
|
+
}) => {
|
|
35
|
+
value: "error" | "info" | "trace" | "verbose" | "warn";
|
|
36
|
+
source: string;
|
|
37
|
+
};
|
|
38
|
+
setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
|
|
39
|
+
type: "error" | "info" | "trace" | "verbose" | "warn";
|
|
40
|
+
};
|
|
41
|
+
readonly onBrowserDownload: {
|
|
42
|
+
name: string;
|
|
43
|
+
cliFlag: "on-browser-download";
|
|
44
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
ssrName: "onBrowserDownload";
|
|
46
|
+
docLink: string;
|
|
47
|
+
type: import(".").OnBrowserDownload;
|
|
48
|
+
getValue: () => never;
|
|
49
|
+
setConfig: () => never;
|
|
50
|
+
};
|
|
51
|
+
readonly chromeMode: {
|
|
52
|
+
cliFlag: "chrome-mode";
|
|
53
|
+
name: string;
|
|
54
|
+
ssrName: string;
|
|
55
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
docLink: string;
|
|
57
|
+
getValue: ({ commandLine }: {
|
|
58
|
+
commandLine: Record<string, unknown>;
|
|
59
|
+
}) => {
|
|
60
|
+
value: "chrome-for-testing" | "headless-shell";
|
|
61
|
+
source: string;
|
|
62
|
+
};
|
|
63
|
+
setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
|
|
64
|
+
type: "chrome-for-testing" | "headless-shell";
|
|
65
|
+
};
|
|
66
|
+
}>> | undefined) => Promise<BrowserStatus>;
|
|
24
67
|
export {};
|
|
@@ -6,7 +6,7 @@ export declare class ErrorWithStackFrame extends Error {
|
|
|
6
6
|
chunk: number | null;
|
|
7
7
|
name: string;
|
|
8
8
|
delayRenderCall: SymbolicatedStackFrame[] | null;
|
|
9
|
-
constructor({ message, symbolicatedStackFrames, frame, name, delayRenderCall, stack, chunk
|
|
9
|
+
constructor({ message, symbolicatedStackFrames, frame, name, delayRenderCall, stack, chunk }: {
|
|
10
10
|
message: string;
|
|
11
11
|
symbolicatedStackFrames: SymbolicatedStackFrame[] | null;
|
|
12
12
|
frame: number | null;
|
|
@@ -4,6 +4,11 @@ exports.handleJavascriptException = exports.ErrorWithStackFrame = void 0;
|
|
|
4
4
|
const no_react_1 = require("remotion/no-react");
|
|
5
5
|
const symbolicateable_error_1 = require("./symbolicateable-error");
|
|
6
6
|
class ErrorWithStackFrame extends Error {
|
|
7
|
+
symbolicatedStackFrames;
|
|
8
|
+
frame;
|
|
9
|
+
chunk;
|
|
10
|
+
name;
|
|
11
|
+
delayRenderCall;
|
|
7
12
|
constructor({ message, symbolicatedStackFrames, frame, name, delayRenderCall, stack, chunk, }) {
|
|
8
13
|
super(message);
|
|
9
14
|
this.symbolicatedStackFrames = symbolicatedStackFrames;
|
|
@@ -17,7 +22,8 @@ class ErrorWithStackFrame extends Error {
|
|
|
17
22
|
}
|
|
18
23
|
exports.ErrorWithStackFrame = ErrorWithStackFrame;
|
|
19
24
|
const cleanUpErrorMessage = (exception) => {
|
|
20
|
-
var _a, _b, _c
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
var _d;
|
|
21
27
|
let errorMessage = (_a = exception.exceptionDetails.exception) === null || _a === void 0 ? void 0 : _a.description;
|
|
22
28
|
if (!errorMessage) {
|
|
23
29
|
return null;
|
|
@@ -7,7 +7,7 @@ export declare class SymbolicateableError extends Error {
|
|
|
7
7
|
delayRenderCall: UnsymbolicatedStackFrame[] | null;
|
|
8
8
|
frame: number | null;
|
|
9
9
|
chunk: number | null;
|
|
10
|
-
constructor({ message, stack, stackFrame, frame, name, chunk
|
|
10
|
+
constructor({ message, stack, stackFrame, frame, name, chunk }: {
|
|
11
11
|
message: string;
|
|
12
12
|
stack: string | undefined;
|
|
13
13
|
frame: number | null;
|
|
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.SymbolicateableError = void 0;
|
|
7
7
|
const delay_render_embedded_stack_1 = require("../delay-render-embedded-stack");
|
|
8
8
|
class SymbolicateableError extends Error {
|
|
9
|
+
stackFrame;
|
|
10
|
+
delayRenderCall;
|
|
11
|
+
frame;
|
|
12
|
+
chunk;
|
|
9
13
|
constructor({ message, stack, stackFrame, frame, name, chunk, }) {
|
|
10
14
|
super(message);
|
|
11
15
|
this.stack = stack;
|
package/dist/error-handling.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.wrapWithErrorHandling = void 0;
|
|
4
|
-
|
|
4
|
+
const wrap_with_error_handling_1 = require("./wrap-with-error-handling");
|
|
5
5
|
Object.defineProperty(exports, "wrapWithErrorHandling", { enumerable: true, get: function () { return wrap_with_error_handling_1.wrapWithErrorHandling; } });
|
package/dist/esm/client.mjs
CHANGED
|
@@ -2529,11 +2529,16 @@ var scaleOption = {
|
|
|
2529
2529
|
cliFlag: cliFlag42,
|
|
2530
2530
|
description: () => /* @__PURE__ */ jsxs31(Fragment38, {
|
|
2531
2531
|
children: [
|
|
2532
|
-
"Scales the output by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ",
|
|
2532
|
+
"Scales the output dimensions by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ",
|
|
2533
2533
|
/* @__PURE__ */ jsx38("code", {
|
|
2534
2534
|
children: "1.5"
|
|
2535
2535
|
}),
|
|
2536
|
-
".
|
|
2536
|
+
". See ",
|
|
2537
|
+
/* @__PURE__ */ jsx38("a", {
|
|
2538
|
+
href: "https://www.remotion.dev/docs/scaling",
|
|
2539
|
+
children: "Scaling"
|
|
2540
|
+
}),
|
|
2541
|
+
" for more details."
|
|
2537
2542
|
]
|
|
2538
2543
|
}),
|
|
2539
2544
|
ssrName: "scale",
|
package/dist/esm/index.mjs
CHANGED
|
@@ -542,8 +542,14 @@ var tryToObtainBody = async (file) => {
|
|
|
542
542
|
};
|
|
543
543
|
|
|
544
544
|
// src/assets/download-file.ts
|
|
545
|
+
var CANCELLED_ERROR = "cancelled";
|
|
545
546
|
var incorrectContentLengthToken = "Download finished with";
|
|
546
|
-
var downloadFileWithoutRetries = ({
|
|
547
|
+
var downloadFileWithoutRetries = ({
|
|
548
|
+
onProgress,
|
|
549
|
+
url,
|
|
550
|
+
to: toFn,
|
|
551
|
+
abortSignal
|
|
552
|
+
}) => {
|
|
547
553
|
return new Promise((resolve, reject) => {
|
|
548
554
|
let rejected = false;
|
|
549
555
|
let resolved = false;
|
|
@@ -578,11 +584,20 @@ var downloadFileWithoutRetries = ({ onProgress, url, to: toFn }) => {
|
|
|
578
584
|
let closeConnection = () => {
|
|
579
585
|
return;
|
|
580
586
|
};
|
|
587
|
+
const onAbort = () => {
|
|
588
|
+
rejectAndFlag(new Error(CANCELLED_ERROR));
|
|
589
|
+
closeConnection();
|
|
590
|
+
};
|
|
591
|
+
abortSignal.addEventListener("abort", onAbort);
|
|
581
592
|
readFile(url).then(({ response, request }) => {
|
|
582
593
|
closeConnection = () => {
|
|
583
594
|
request.destroy();
|
|
584
595
|
response.destroy();
|
|
585
596
|
};
|
|
597
|
+
if (abortSignal.aborted) {
|
|
598
|
+
onAbort();
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
586
601
|
const contentDisposition = response.headers["content-disposition"] ?? null;
|
|
587
602
|
const contentType = response.headers["content-type"] ?? null;
|
|
588
603
|
const to = toFn(contentDisposition, contentType);
|
|
@@ -634,6 +649,8 @@ var downloadFileWithoutRetries = ({ onProgress, url, to: toFn }) => {
|
|
|
634
649
|
});
|
|
635
650
|
}).catch((err) => {
|
|
636
651
|
rejectAndFlag(err);
|
|
652
|
+
}).finally(() => {
|
|
653
|
+
abortSignal.removeEventListener("abort", onAbort);
|
|
637
654
|
});
|
|
638
655
|
});
|
|
639
656
|
};
|
|
@@ -643,6 +660,9 @@ var downloadFile = async (options, retries = 2, attempt = 1) => {
|
|
|
643
660
|
return res;
|
|
644
661
|
} catch (err) {
|
|
645
662
|
const { message } = err;
|
|
663
|
+
if (message === CANCELLED_ERROR) {
|
|
664
|
+
throw err;
|
|
665
|
+
}
|
|
646
666
|
if (message === "aborted" || message.includes("ECONNRESET") || message.includes(incorrectContentLengthToken) || message.includes("503") || message.includes("502") || message.includes("504") || message.includes("500")) {
|
|
647
667
|
if (retries === 0) {
|
|
648
668
|
throw err;
|
|
@@ -4855,7 +4875,8 @@ var downloadBrowser = async ({
|
|
|
4855
4875
|
});
|
|
4856
4876
|
},
|
|
4857
4877
|
indent,
|
|
4858
|
-
logLevel
|
|
4878
|
+
logLevel,
|
|
4879
|
+
abortSignal: new AbortController().signal
|
|
4859
4880
|
});
|
|
4860
4881
|
await extractZip(archivePath, { dir: outputPath });
|
|
4861
4882
|
const chromePath = path8.join(outputPath, "chrome-linux", "chrome");
|
|
@@ -14541,7 +14562,8 @@ var downloadAsset = async ({
|
|
|
14541
14562
|
contentType
|
|
14542
14563
|
}),
|
|
14543
14564
|
indent,
|
|
14544
|
-
logLevel
|
|
14565
|
+
logLevel,
|
|
14566
|
+
abortSignal: downloadMap.cleanupController.signal
|
|
14545
14567
|
});
|
|
14546
14568
|
notifyAssetIsDownloaded({ src, downloadMap, downloadDir, to });
|
|
14547
14569
|
if (shouldAnalyzeAudioImmediately) {
|
|
@@ -14801,39 +14823,61 @@ ${parsed.backtrace}`));
|
|
|
14801
14823
|
clear();
|
|
14802
14824
|
stderrChunks = [];
|
|
14803
14825
|
});
|
|
14804
|
-
|
|
14805
|
-
|
|
14806
|
-
return new Promise((res, rej) => {
|
|
14807
|
-
if (runningStatus.type === "quit-without-error") {
|
|
14808
|
-
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}`));
|
|
14809
|
-
return;
|
|
14810
|
-
}
|
|
14811
|
-
if (runningStatus.type === "quit-with-error") {
|
|
14812
|
-
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}: ${runningStatus.error}`));
|
|
14813
|
-
return;
|
|
14814
|
-
}
|
|
14815
|
-
resolve2 = res;
|
|
14816
|
-
reject = rej;
|
|
14817
|
-
});
|
|
14818
|
-
},
|
|
14819
|
-
finishCommands: () => {
|
|
14820
|
-
if (runningStatus.type === "quit-with-error") {
|
|
14821
|
-
return Promise.reject(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}: ${runningStatus.error}`));
|
|
14822
|
-
}
|
|
14826
|
+
const waitForDone = () => {
|
|
14827
|
+
return new Promise((res, rej) => {
|
|
14823
14828
|
if (runningStatus.type === "quit-without-error") {
|
|
14824
|
-
|
|
14829
|
+
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}`));
|
|
14830
|
+
return;
|
|
14825
14831
|
}
|
|
14826
|
-
|
|
14827
|
-
|
|
14832
|
+
if (runningStatus.type === "quit-with-error") {
|
|
14833
|
+
rej(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}: ${runningStatus.error}`));
|
|
14834
|
+
return;
|
|
14835
|
+
}
|
|
14836
|
+
resolve2 = res;
|
|
14837
|
+
reject = rej;
|
|
14838
|
+
});
|
|
14839
|
+
};
|
|
14840
|
+
const finishCommands = async () => {
|
|
14841
|
+
await Promise.resolve();
|
|
14842
|
+
if (runningStatus.type === "quit-with-error") {
|
|
14843
|
+
return Promise.reject(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}: ${runningStatus.error}`));
|
|
14844
|
+
}
|
|
14845
|
+
if (runningStatus.type === "quit-without-error") {
|
|
14846
|
+
return Promise.reject(new Error(`Compositor quit${runningStatus.signal ? ` with signal ${runningStatus.signal}` : ""}`));
|
|
14847
|
+
}
|
|
14848
|
+
return new Promise((res, rej) => {
|
|
14849
|
+
child.stdin.write(`EOF
|
|
14828
14850
|
`, (e) => {
|
|
14829
|
-
|
|
14830
|
-
|
|
14831
|
-
|
|
14832
|
-
|
|
14833
|
-
|
|
14834
|
-
});
|
|
14851
|
+
if (e) {
|
|
14852
|
+
rej(e);
|
|
14853
|
+
return;
|
|
14854
|
+
}
|
|
14855
|
+
res();
|
|
14835
14856
|
});
|
|
14836
|
-
}
|
|
14857
|
+
});
|
|
14858
|
+
};
|
|
14859
|
+
const shutDownOrKill = () => {
|
|
14860
|
+
const shutDownCase = async () => {
|
|
14861
|
+
await finishCommands();
|
|
14862
|
+
await waitForDone();
|
|
14863
|
+
};
|
|
14864
|
+
let timeout = null;
|
|
14865
|
+
const killCase = async () => {
|
|
14866
|
+
await new Promise((res) => {
|
|
14867
|
+
timeout = setTimeout(res, 5000);
|
|
14868
|
+
});
|
|
14869
|
+
child.kill("SIGKILL");
|
|
14870
|
+
};
|
|
14871
|
+
return Promise.race([shutDownCase(), killCase()]).finally(() => {
|
|
14872
|
+
if (timeout !== null) {
|
|
14873
|
+
clearTimeout(timeout);
|
|
14874
|
+
}
|
|
14875
|
+
});
|
|
14876
|
+
};
|
|
14877
|
+
return {
|
|
14878
|
+
shutDownOrKill,
|
|
14879
|
+
waitForDone,
|
|
14880
|
+
finishCommands,
|
|
14837
14881
|
executeCommand: (command, params) => {
|
|
14838
14882
|
return new Promise((_resolve, _reject) => {
|
|
14839
14883
|
if (runningStatus.type === "quit-without-error") {
|
|
@@ -14941,13 +14985,8 @@ var startOffthreadVideoServer = ({
|
|
|
14941
14985
|
binariesDirectory
|
|
14942
14986
|
});
|
|
14943
14987
|
return {
|
|
14944
|
-
close:
|
|
14945
|
-
|
|
14946
|
-
await compositor.finishCommands();
|
|
14947
|
-
return compositor.waitForDone();
|
|
14948
|
-
} catch (err) {
|
|
14949
|
-
return Promise.reject(err);
|
|
14950
|
-
}
|
|
14988
|
+
close: () => {
|
|
14989
|
+
return compositor.shutDownOrKill();
|
|
14951
14990
|
},
|
|
14952
14991
|
listener: (req, response) => {
|
|
14953
14992
|
if (!req.url) {
|
|
@@ -15320,13 +15359,15 @@ var makeDownloadMap = () => {
|
|
|
15320
15359
|
isPreventedFromCleanup: () => {
|
|
15321
15360
|
return prevented;
|
|
15322
15361
|
},
|
|
15323
|
-
inlineAudioMixing: makeInlineAudioMixing(dir)
|
|
15362
|
+
inlineAudioMixing: makeInlineAudioMixing(dir),
|
|
15363
|
+
cleanupController: new AbortController
|
|
15324
15364
|
};
|
|
15325
15365
|
};
|
|
15326
15366
|
var cleanDownloadMap = (downloadMap) => {
|
|
15327
15367
|
if (downloadMap.isPreventedFromCleanup()) {
|
|
15328
15368
|
return;
|
|
15329
15369
|
}
|
|
15370
|
+
downloadMap.cleanupController.abort();
|
|
15330
15371
|
deleteDirectory(downloadMap.downloadDir);
|
|
15331
15372
|
deleteDirectory(downloadMap.complexFilter);
|
|
15332
15373
|
deleteDirectory(downloadMap.compositingDir);
|
package/dist/extract-audio.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { LogLevel } from './log-level';
|
|
2
1
|
export declare const extractAudio: (options: {
|
|
3
2
|
videoSource: string;
|
|
4
3
|
audioOutput: string;
|
|
5
|
-
logLevel?:
|
|
6
|
-
binariesDirectory?: string | null;
|
|
4
|
+
logLevel?: "error" | "info" | "trace" | "verbose" | "warn" | undefined;
|
|
5
|
+
binariesDirectory?: string | null | undefined;
|
|
7
6
|
}) => Promise<void>;
|