@remotion/cli 4.0.497 → 4.0.498

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/benchmark.js CHANGED
@@ -211,6 +211,9 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
211
211
  keyboardShortcutsEnabled,
212
212
  rspack,
213
213
  shouldCache,
214
+ bundlerOverride: null,
215
+ rspackOverride: null,
216
+ webpackOverride: null,
214
217
  });
215
218
  (0, cleanup_before_quit_1.registerCleanupJob)(`Deleting bundle`, () => cleanupBundle());
216
219
  const puppeteerInstance = await browserInstance;
package/dist/bundle.js CHANGED
@@ -106,6 +106,9 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
106
106
  keyboardShortcutsEnabled,
107
107
  rspack,
108
108
  shouldCache,
109
+ bundlerOverride: null,
110
+ rspackOverride: null,
111
+ webpackOverride: null,
109
112
  });
110
113
  log_1.Log.info({ indent: false, logLevel }, chalk_1.chalk.blue(`${existed ? '○' : '+'} ${output}`));
111
114
  if (!gitignoreFolder) {
@@ -109,6 +109,9 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
109
109
  keyboardShortcutsEnabled,
110
110
  rspack,
111
111
  shouldCache,
112
+ bundlerOverride: null,
113
+ rspackOverride: null,
114
+ webpackOverride: null,
112
115
  });
113
116
  (0, cleanup_before_quit_1.registerCleanupJob)(`Cleanup bundle`, () => cleanupBundle());
114
117
  const compositions = await renderer_1.RenderInternals.internalGetCompositions({
@@ -1,9 +1,8 @@
1
- import type { WebpackConfiguration } from '@remotion/bundler';
1
+ import type { BundlerOverrideFn, RspackConfiguration, RspackOverrideFn, WebpackConfiguration, WebpackOverrideFn } from '@remotion/bundler';
2
2
  import type { BrowserExecutable, ChromeMode, CodecOrUndefined, ColorSpace, Crf, DeleteAfter, FrameRange, NumberOfGifLoops, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
3
3
  import type { HardwareAccelerationOption } from '@remotion/renderer/client';
4
4
  import type { Concurrency } from './concurrency';
5
- import type { WebpackOverrideFn } from './override-webpack';
6
- export type { Concurrency, WebpackConfiguration, WebpackOverrideFn };
5
+ export type { BundlerOverrideFn, Concurrency, RspackConfiguration, RspackOverrideFn, WebpackConfiguration, WebpackOverrideFn, };
7
6
  declare global {
8
7
  interface RemotionBundlingOptions {
9
8
  /**
@@ -39,6 +38,8 @@ declare global {
39
38
  * You can set an absolute path or a relative path that will be resolved from the closest package.json location.
40
39
  */
41
40
  readonly setPublicDir: (publicDir: string | null) => void;
41
+ readonly overrideBundlerConfig: (f: BundlerOverrideFn) => void;
42
+ readonly overrideRspackConfig: (f: RspackOverrideFn) => void;
42
43
  readonly overrideWebpackConfig: (f: WebpackOverrideFn) => void;
43
44
  }
44
45
  interface RemotionConfigObject {
@@ -470,12 +471,16 @@ export declare const ConfigInternals: {
470
471
  getStillFrame: () => number;
471
472
  getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
472
473
  getDotEnvLocation: () => string | null;
474
+ getBundlerOverrideFn: () => BundlerOverrideFn;
475
+ getRspackOverrideFn: () => RspackOverrideFn;
473
476
  getWebpackOverrideFn: () => WebpackOverrideFn;
474
477
  getWebpackCaching: () => boolean;
475
478
  getOutputLocation: () => string | null;
476
479
  setStillFrame: (frame: number) => void;
477
480
  getMaxTimelineTracks: () => number;
478
481
  defaultOverrideFunction: WebpackOverrideFn;
482
+ defaultBundlerOverrideFunction: BundlerOverrideFn;
483
+ defaultRspackOverrideFunction: RspackOverrideFn;
479
484
  getFfmpegOverrideFunction: () => import("@remotion/renderer").FfmpegOverrideFn;
480
485
  getMetadata: () => Record<string, string>;
481
486
  getEntryPoint: () => string | null;
@@ -50,6 +50,8 @@ exports.Config = {
50
50
  setWebpackPollingInMilliseconds: webpackPollOption.setConfig,
51
51
  setShouldOpenBrowser: noOpenOption.setConfig,
52
52
  setBufferStateDelayInMilliseconds: buffer_state_delay_in_milliseconds_1.setBufferStateDelayInMilliseconds,
53
+ overrideBundlerConfig: override_webpack_1.overrideBundlerConfig,
54
+ overrideRspackConfig: override_webpack_1.overrideRspackConfig,
53
55
  overrideWebpackConfig: override_webpack_1.overrideWebpackConfig,
54
56
  setCachingEnabled: bundleCacheOption.setConfig,
55
57
  setPort: preview_server_1.setPort,
@@ -170,7 +172,7 @@ const resetConfigOptions = () => {
170
172
  (0, ffmpeg_override_1.resetFfmpegOverrideFunction)();
171
173
  (0, metadata_1.resetMetadata)();
172
174
  (0, output_location_1.resetOutputLocation)();
173
- (0, override_webpack_1.resetWebpackOverride)();
175
+ (0, override_webpack_1.resetBundlerOverrides)();
174
176
  (0, preview_server_1.resetPreviewServerPorts)();
175
177
  (0, still_frame_1.resetStillFrame)();
176
178
  };
@@ -183,12 +185,16 @@ exports.ConfigInternals = {
183
185
  getStillFrame: still_frame_1.getStillFrame,
184
186
  getShouldOutputImageSequence: image_sequence_1.getShouldOutputImageSequence,
185
187
  getDotEnvLocation: env_file_1.getDotEnvLocation,
188
+ getBundlerOverrideFn: override_webpack_1.getBundlerOverrideFn,
189
+ getRspackOverrideFn: override_webpack_1.getRspackOverrideFn,
186
190
  getWebpackOverrideFn: override_webpack_1.getWebpackOverrideFn,
187
191
  getWebpackCaching: webpack_caching_1.getWebpackCaching,
188
192
  getOutputLocation: output_location_1.getOutputLocation,
189
193
  setStillFrame: still_frame_1.setStillFrame,
190
194
  getMaxTimelineTracks: studio_server_1.StudioServerInternals.getMaxTimelineTracks,
191
195
  defaultOverrideFunction: override_webpack_1.defaultOverrideFunction,
196
+ defaultBundlerOverrideFunction: override_webpack_1.defaultBundlerOverrideFunction,
197
+ defaultRspackOverrideFunction: override_webpack_1.defaultRspackOverrideFunction,
192
198
  getFfmpegOverrideFunction: ffmpeg_override_1.getFfmpegOverrideFunction,
193
199
  getMetadata: metadata_1.getMetadata,
194
200
  getEntryPoint: entry_point_1.getEntryPoint,
@@ -1,6 +1,12 @@
1
- import type { WebpackConfiguration } from '@remotion/bundler';
2
- export type WebpackOverrideFn = (currentConfiguration: WebpackConfiguration) => WebpackConfiguration | Promise<WebpackConfiguration>;
1
+ import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
2
+ export type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn, } from '@remotion/bundler';
3
3
  export declare const defaultOverrideFunction: WebpackOverrideFn;
4
+ export declare const defaultRspackOverrideFunction: RspackOverrideFn;
5
+ export declare const defaultBundlerOverrideFunction: BundlerOverrideFn;
4
6
  export declare const getWebpackOverrideFn: () => WebpackOverrideFn;
7
+ export declare const getRspackOverrideFn: () => RspackOverrideFn;
8
+ export declare const getBundlerOverrideFn: () => BundlerOverrideFn;
5
9
  export declare const overrideWebpackConfig: (fn: WebpackOverrideFn) => void;
6
- export declare const resetWebpackOverride: () => void;
10
+ export declare const overrideRspackConfig: (fn: RspackOverrideFn) => void;
11
+ export declare const overrideBundlerConfig: (fn: BundlerOverrideFn) => void;
12
+ export declare const resetBundlerOverrides: () => void;
@@ -1,19 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resetWebpackOverride = exports.overrideWebpackConfig = exports.getWebpackOverrideFn = exports.defaultOverrideFunction = void 0;
3
+ exports.resetBundlerOverrides = exports.overrideBundlerConfig = exports.overrideRspackConfig = exports.overrideWebpackConfig = exports.getBundlerOverrideFn = exports.getRspackOverrideFn = exports.getWebpackOverrideFn = exports.defaultBundlerOverrideFunction = exports.defaultRspackOverrideFunction = exports.defaultOverrideFunction = void 0;
4
4
  const defaultOverrideFunction = (config) => config;
5
5
  exports.defaultOverrideFunction = defaultOverrideFunction;
6
- let overrideFn = exports.defaultOverrideFunction;
6
+ const defaultRspackOverrideFunction = (config) => config;
7
+ exports.defaultRspackOverrideFunction = defaultRspackOverrideFunction;
8
+ const defaultBundlerOverrideFunction = (config) => config;
9
+ exports.defaultBundlerOverrideFunction = defaultBundlerOverrideFunction;
10
+ let webpackOverrideFn = exports.defaultOverrideFunction;
11
+ let rspackOverrideFn = exports.defaultRspackOverrideFunction;
12
+ let bundlerOverrideFn = exports.defaultBundlerOverrideFunction;
7
13
  const getWebpackOverrideFn = () => {
8
- return overrideFn;
14
+ return webpackOverrideFn;
9
15
  };
10
16
  exports.getWebpackOverrideFn = getWebpackOverrideFn;
17
+ const getRspackOverrideFn = () => {
18
+ return rspackOverrideFn;
19
+ };
20
+ exports.getRspackOverrideFn = getRspackOverrideFn;
21
+ const getBundlerOverrideFn = () => {
22
+ return bundlerOverrideFn;
23
+ };
24
+ exports.getBundlerOverrideFn = getBundlerOverrideFn;
11
25
  const overrideWebpackConfig = (fn) => {
12
- const prevOverride = overrideFn;
13
- overrideFn = async (c) => fn(await prevOverride(c));
26
+ const prevOverride = webpackOverrideFn;
27
+ webpackOverrideFn = async (c) => fn(await prevOverride(c));
14
28
  };
15
29
  exports.overrideWebpackConfig = overrideWebpackConfig;
16
- const resetWebpackOverride = () => {
17
- overrideFn = exports.defaultOverrideFunction;
30
+ const overrideRspackConfig = (fn) => {
31
+ const prevOverride = rspackOverrideFn;
32
+ rspackOverrideFn = async (c) => fn(await prevOverride(c));
33
+ };
34
+ exports.overrideRspackConfig = overrideRspackConfig;
35
+ const overrideBundlerConfig = (fn) => {
36
+ const prevOverride = bundlerOverrideFn;
37
+ bundlerOverrideFn = async (c, context) => fn(await prevOverride(c, context), context);
38
+ };
39
+ exports.overrideBundlerConfig = overrideBundlerConfig;
40
+ const resetBundlerOverrides = () => {
41
+ webpackOverrideFn = exports.defaultOverrideFunction;
42
+ rspackOverrideFn = exports.defaultRspackOverrideFunction;
43
+ bundlerOverrideFn = exports.defaultBundlerOverrideFunction;
18
44
  };
19
- exports.resetWebpackOverride = resetWebpackOverride;
45
+ exports.resetBundlerOverrides = resetBundlerOverrides;
@@ -881,10 +881,7 @@ declare const benchmarkConcurrenciesOption: {
881
881
  getValue: ({ commandLine }: {
882
882
  commandLine: Record<string, unknown>;
883
883
  }) => {
884
- value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan";
885
- source: string;
886
- } | {
887
- value: null;
884
+ value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
888
885
  source: string;
889
886
  };
890
887
  setConfig: (value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null) => void;
@@ -1,6 +1,7 @@
1
+ import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
1
2
  import type { BrowserExecutable, CancelSignal, ChromiumOptions, Crf, FfmpegOverrideFn, FrameRange, NumberOfGifLoops } from '@remotion/renderer';
2
3
  import type { JobProgressCallback } from '@remotion/studio-server';
3
- export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, fps, durationInFrames, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, gopSize, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, audioLatencyHint, imageSequencePattern, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, sampleRate, }: {
4
+ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, fps, durationInFrames, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, gopSize, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, audioLatencyHint, imageSequencePattern, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, sampleRate, bundlerOverride, rspackOverride, webpackOverride, }: {
4
5
  remotionRoot: string;
5
6
  fullEntryPoint: string;
6
7
  entryPointReason: string;
@@ -68,4 +69,7 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
68
69
  keyboardShortcutsEnabled: boolean;
69
70
  shouldCache: boolean;
70
71
  sampleRate: number;
72
+ bundlerOverride: BundlerOverrideFn | null;
73
+ rspackOverride: RspackOverrideFn | null;
74
+ webpackOverride: WebpackOverrideFn | null;
71
75
  }) => Promise<void>;
@@ -61,7 +61,7 @@ const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying
61
61
  const truthy_1 = require("../truthy");
62
62
  const user_passed_output_location_1 = require("../user-passed-output-location");
63
63
  const add_log_to_aggregate_progress_1 = require("./add-log-to-aggregate-progress");
64
- const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, fps, durationInFrames, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, gopSize, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, audioLatencyHint, imageSequencePattern, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, sampleRate, }) => {
64
+ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, fps, durationInFrames, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, gopSize, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, audioLatencyHint, imageSequencePattern, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, sampleRate, bundlerOverride, rspackOverride, webpackOverride, }) => {
65
65
  var _a;
66
66
  renderer_1.RenderInternals.validateConcurrency({
67
67
  value: concurrency,
@@ -191,6 +191,9 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
191
191
  keyboardShortcutsEnabled,
192
192
  rspack,
193
193
  shouldCache,
194
+ bundlerOverride,
195
+ rspackOverride,
196
+ webpackOverride,
194
197
  });
195
198
  addCleanupCallback(`Cleanup bundle`, () => cleanupBundle());
196
199
  const onDownload = (0, make_on_download_1.makeOnDownload)({
@@ -1,6 +1,7 @@
1
+ import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
1
2
  import type { BrowserExecutable, CancelSignal, ChromiumOptions } from '@remotion/renderer';
2
3
  import type { JobProgressCallback } from '@remotion/studio-server';
3
- export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, width, fps, durationInFrames, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, audioLatencyHint, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, }: {
4
+ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, width, fps, durationInFrames, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, audioLatencyHint, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }: {
4
5
  remotionRoot: string;
5
6
  fullEntryPoint: string;
6
7
  entryPointReason: string;
@@ -40,4 +41,7 @@ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPoin
40
41
  askAIEnabled: boolean;
41
42
  keyboardShortcutsEnabled: boolean;
42
43
  shouldCache: boolean;
44
+ bundlerOverride: BundlerOverrideFn | null;
45
+ rspackOverride: RspackOverrideFn | null;
46
+ webpackOverride: WebpackOverrideFn | null;
43
47
  }) => Promise<void>;
@@ -28,7 +28,7 @@ const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying
28
28
  const truthy_1 = require("../truthy");
29
29
  const user_passed_output_location_1 = require("../user-passed-output-location");
30
30
  const add_log_to_aggregate_progress_1 = require("./add-log-to-aggregate-progress");
31
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, width, fps, durationInFrames, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, audioLatencyHint, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, }) => {
31
+ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, width, fps, durationInFrames, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, audioLatencyHint, mediaCacheSizeInBytes, rspack, askAIEnabled, keyboardShortcutsEnabled, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }) => {
32
32
  const isVerbose = renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose');
33
33
  log_1.Log.verbose({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
34
34
  const aggregate = (0, progress_types_1.initialAggregateRenderProgress)();
@@ -114,6 +114,9 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
114
114
  keyboardShortcutsEnabled,
115
115
  rspack,
116
116
  shouldCache,
117
+ bundlerOverride,
118
+ rspackOverride,
119
+ webpackOverride,
117
120
  });
118
121
  const server = await renderer_1.RenderInternals.prepareServer({
119
122
  offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : renderer_1.RenderInternals.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
@@ -61,6 +61,9 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
61
61
  keyboardShortcutsEnabled,
62
62
  rspack: fixedConfig.rspack,
63
63
  shouldCache,
64
+ bundlerOverride: fixedConfig.bundlerOverride,
65
+ rspackOverride: fixedConfig.rspackOverride,
66
+ webpackOverride: fixedConfig.webpackOverride,
64
67
  });
65
68
  };
66
69
  exports.processStill = processStill;
@@ -99,6 +99,9 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
99
99
  keyboardShortcutsEnabled,
100
100
  rspack: fixedConfig.rspack,
101
101
  shouldCache,
102
+ bundlerOverride: fixedConfig.bundlerOverride,
103
+ rspackOverride: fixedConfig.rspackOverride,
104
+ webpackOverride: fixedConfig.webpackOverride,
102
105
  });
103
106
  };
104
107
  exports.processVideoJob = processVideoJob;
@@ -1,5 +1,9 @@
1
+ import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
1
2
  export type StudioRenderJobFixedConfig = {
3
+ readonly bundlerOverride: BundlerOverrideFn;
2
4
  readonly publicDir: string | null;
3
5
  readonly rendererPort: number | null;
6
+ readonly rspackOverride: RspackOverrideFn;
4
7
  readonly rspack: boolean;
8
+ readonly webpackOverride: WebpackOverrideFn;
5
9
  };
package/dist/render.js CHANGED
@@ -231,6 +231,9 @@ const render = async (remotionRoot, args, logLevel) => {
231
231
  rspack,
232
232
  sampleRate,
233
233
  shouldCache,
234
+ bundlerOverride: null,
235
+ rspackOverride: null,
236
+ webpackOverride: null,
234
237
  });
235
238
  };
236
239
  exports.render = render;
@@ -1,6 +1,7 @@
1
+ import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
1
2
  import type { BundlingState, CopyingState } from '@remotion/studio-server';
2
3
  import type { GitSource } from '@remotion/studio-shared';
3
- export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, }: {
4
+ export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }: {
4
5
  fullPath: string;
5
6
  remotionRoot: string;
6
7
  publicDir: string | null;
@@ -23,11 +24,14 @@ export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publi
23
24
  keyboardShortcutsEnabled: boolean;
24
25
  rspack: boolean;
25
26
  shouldCache: boolean;
27
+ bundlerOverride: BundlerOverrideFn | null;
28
+ rspackOverride: RspackOverrideFn | null;
29
+ webpackOverride: WebpackOverrideFn | null;
26
30
  }) => Promise<{
27
31
  urlOrBundle: string;
28
32
  cleanup: () => void;
29
33
  }>;
30
- export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, }: {
34
+ export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }: {
31
35
  fullPath: string;
32
36
  remotionRoot: string;
33
37
  publicDir: string | null;
@@ -50,4 +54,7 @@ export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgre
50
54
  askAIEnabled: boolean;
51
55
  rspack: boolean;
52
56
  shouldCache: boolean;
57
+ bundlerOverride: BundlerOverrideFn | null;
58
+ rspackOverride: RspackOverrideFn | null;
59
+ webpackOverride: WebpackOverrideFn | null;
53
60
  }) => Promise<string>;
@@ -13,7 +13,7 @@ const get_render_defaults_1 = require("./get-render-defaults");
13
13
  const log_1 = require("./log");
14
14
  const progress_bar_1 = require("./progress-bar");
15
15
  const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
16
- const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, }) => {
16
+ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }) => {
17
17
  const isServeUrl = renderer_1.RenderInternals.isServeUrl(fullPath);
18
18
  const isBundle = (0, fs_1.existsSync)(fullPath) && (0, fs_1.existsSync)(path_1.default.join(fullPath, 'index.html'));
19
19
  if (isServeUrl || isBundle) {
@@ -52,6 +52,9 @@ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, on
52
52
  keyboardShortcutsEnabled,
53
53
  rspack,
54
54
  shouldCache,
55
+ bundlerOverride,
56
+ rspackOverride,
57
+ webpackOverride,
55
58
  });
56
59
  return {
57
60
  urlOrBundle: bundled,
@@ -59,7 +62,7 @@ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, on
59
62
  };
60
63
  };
61
64
  exports.bundleOnCliOrTakeServeUrl = bundleOnCliOrTakeServeUrl;
62
- const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, }) => {
65
+ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, askAIEnabled, keyboardShortcutsEnabled, rspack, shouldCache, bundlerOverride, rspackOverride, webpackOverride, }) => {
63
66
  var _a;
64
67
  const symlinkState = {
65
68
  symlinks: [],
@@ -103,7 +106,9 @@ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallba
103
106
  };
104
107
  const options = {
105
108
  enableCaching: shouldCache,
106
- webpackOverride: (_a = config_1.ConfigInternals.getWebpackOverrideFn()) !== null && _a !== void 0 ? _a : ((f) => f),
109
+ bundlerOverride: bundlerOverride !== null && bundlerOverride !== void 0 ? bundlerOverride : config_1.ConfigInternals.getBundlerOverrideFn(),
110
+ rspackOverride: rspackOverride !== null && rspackOverride !== void 0 ? rspackOverride : config_1.ConfigInternals.getRspackOverrideFn(),
111
+ webpackOverride: (_a = webpackOverride !== null && webpackOverride !== void 0 ? webpackOverride : config_1.ConfigInternals.getWebpackOverrideFn()) !== null && _a !== void 0 ? _a : ((f) => f),
107
112
  rootDir: remotionRoot,
108
113
  publicDir,
109
114
  onPublicDirCopyProgress,
@@ -123,8 +128,6 @@ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallba
123
128
  onProgress,
124
129
  options,
125
130
  resolvedRemotionRoot: remotionRoot,
126
- bufferStateDelayInMilliseconds,
127
- maxTimelineTracks,
128
131
  });
129
132
  const cacheExistedBefore = bundler_1.BundlerInternals.cacheExists(remotionRoot, 'production', hash);
130
133
  if (cacheExistedBefore !== 'does-not-exist' && !shouldCache) {
package/dist/still.js CHANGED
@@ -155,6 +155,9 @@ const still = async (remotionRoot, args, logLevel) => {
155
155
  keyboardShortcutsEnabled,
156
156
  rspack,
157
157
  shouldCache,
158
+ bundlerOverride: null,
159
+ rspackOverride: null,
160
+ webpackOverride: null,
158
161
  });
159
162
  };
160
163
  exports.still = still;
package/dist/studio.js CHANGED
@@ -83,9 +83,6 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
83
83
  });
84
84
  });
85
85
  }, logLevel, false);
86
- const keyboardShortcutsEnabled = keyboardShortcutsOption.getValue({
87
- commandLine: parsed_cli_1.parsedCli,
88
- }).value;
89
86
  const binariesDirectory = binariesDirectoryOption.getValue({
90
87
  commandLine: parsed_cli_1.parsedCli,
91
88
  }).value;
@@ -99,14 +96,11 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
99
96
  const enableCrossSiteIsolation = enableCrossSiteIsolationOption.getValue({
100
97
  commandLine: parsed_cli_1.parsedCli,
101
98
  }).value;
102
- const askAIEnabled = askAIOption.getValue({
103
- commandLine: parsed_cli_1.parsedCli,
104
- }).value;
105
- const interactivityEnabled = interactivityOption.getValue({
106
- commandLine: parsed_cli_1.parsedCli,
107
- }).value;
108
99
  const gitSource = (0, get_github_repository_1.getGitSource)({ remotionRoot, disableGitSource, logLevel });
109
100
  const useRspack = rspackOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
101
+ const bundlerOverride = config_1.ConfigInternals.getBundlerOverrideFn();
102
+ const rspackOverride = config_1.ConfigInternals.getRspackOverrideFn();
103
+ const webpackOverride = config_1.ConfigInternals.getWebpackOverrideFn();
110
104
  if (useRspack) {
111
105
  log_1.Log.warn({ indent: false, logLevel }, 'Enabling experimental Rspack bundler.');
112
106
  }
@@ -136,11 +130,11 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
136
130
  getCurrentInputProps: () => inputProps,
137
131
  getEnvVariables: () => envVariables,
138
132
  desiredPort,
139
- keyboardShortcutsEnabled,
140
- maxTimelineTracks: config_1.ConfigInternals.getMaxTimelineTracks(),
141
133
  remotionRoot,
142
134
  relativePublicDir,
143
- webpackOverride: config_1.ConfigInternals.getWebpackOverrideFn(),
135
+ bundlerOverride,
136
+ rspackOverride,
137
+ webpackOverride,
144
138
  poll: webpackPollOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value,
145
139
  getRenderDefaults: () => (0, get_render_defaults_1.getRenderDefaults)(logLevel),
146
140
  getRenderQueue: queue_1.getRenderQueue,
@@ -149,26 +143,27 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
149
143
  addJob: (options) => (0, queue_1.addJob)({
150
144
  ...options,
151
145
  fixedConfig: {
146
+ bundlerOverride,
152
147
  publicDir: relativePublicDir,
153
148
  rendererPort,
149
+ rspackOverride,
154
150
  rspack: useRspack,
151
+ webpackOverride,
155
152
  },
156
153
  }),
157
154
  cancelJob: queue_1.cancelJob,
158
155
  removeJob: queue_1.removeJob,
159
156
  },
160
157
  gitSource,
161
- bufferStateDelayInMilliseconds: config_1.ConfigInternals.getBufferStateDelayInMilliseconds(),
162
158
  binariesDirectory,
163
159
  forceIPv4: ipv4Option.getValue({ commandLine: parsed_cli_1.parsedCli }).value,
164
160
  getAudioLatencyHint,
165
161
  getPreviewSampleRate,
166
162
  enableCrossSiteIsolation,
167
- askAIEnabled,
168
- interactivityEnabled,
169
163
  forceNew: forceNewStudioOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value,
170
164
  rspack: useRspack,
171
165
  getStudioRuntimeConfig,
166
+ configFile,
172
167
  });
173
168
  if (result.type === 'already-running') {
174
169
  return;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cli"
4
4
  },
5
5
  "name": "@remotion/cli",
6
- "version": "4.0.497",
6
+ "version": "4.0.498",
7
7
  "description": "Control Remotion features using the `npx remotion` command",
8
8
  "main": "dist/index.js",
9
9
  "bin": {
@@ -36,17 +36,17 @@
36
36
  "author": "Jonny Burger <jonny@remotion.dev>",
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "dependencies": {
39
- "@remotion/bundler": "4.0.497",
40
- "@remotion/media-utils": "4.0.497",
41
- "@remotion/player": "4.0.497",
42
- "@remotion/renderer": "4.0.497",
43
- "@remotion/studio-shared": "4.0.497",
44
- "@remotion/studio-server": "4.0.497",
45
- "@remotion/studio": "4.0.497",
39
+ "@remotion/bundler": "4.0.498",
40
+ "@remotion/media-utils": "4.0.498",
41
+ "@remotion/player": "4.0.498",
42
+ "@remotion/renderer": "4.0.498",
43
+ "@remotion/studio-shared": "4.0.498",
44
+ "@remotion/studio-server": "4.0.498",
45
+ "@remotion/studio": "4.0.498",
46
46
  "dotenv": "17.3.1",
47
47
  "minimist": "1.2.6",
48
48
  "prompts": "2.4.2",
49
- "remotion": "4.0.497"
49
+ "remotion": "4.0.498"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": ">=16.8.0",
@@ -57,14 +57,14 @@
57
57
  "@types/prompts": "2.4.9",
58
58
  "@types/prettier": "2.7.2",
59
59
  "@types/node": "20.12.14",
60
- "@remotion/zod-types": "4.0.497",
61
- "@remotion/tailwind-v4": "4.0.497",
62
- "@remotion/enable-scss": "4.0.497",
63
- "@remotion/skia": "4.0.497",
60
+ "@remotion/zod-types": "4.0.498",
61
+ "@remotion/tailwind-v4": "4.0.498",
62
+ "@remotion/enable-scss": "4.0.498",
63
+ "@remotion/skia": "4.0.498",
64
64
  "react": "19.2.3",
65
65
  "react-dom": "19.2.3",
66
66
  "zod": "4.3.6",
67
- "@remotion/eslint-config-internal": "4.0.497",
67
+ "@remotion/eslint-config-internal": "4.0.498",
68
68
  "eslint": "9.19.0",
69
69
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
70
70
  },