@remotion/cli 4.0.56 → 4.0.57

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.
Files changed (72) hide show
  1. package/dist/benchmark.d.ts +2 -1
  2. package/dist/benchmark.js +11 -10
  3. package/dist/cleanup-before-quit.d.ts +9 -2
  4. package/dist/cleanup-before-quit.js +6 -6
  5. package/dist/cloudrun-command.d.ts +2 -1
  6. package/dist/cloudrun-command.js +4 -4
  7. package/dist/compositions.d.ts +2 -1
  8. package/dist/compositions.js +4 -5
  9. package/dist/config/image-format.d.ts +1 -1
  10. package/dist/config/index.d.ts +1 -1
  11. package/dist/editor/components/Modals.js +1 -1
  12. package/dist/editor/components/NewComposition/RemInput.d.ts +1 -1
  13. package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
  14. package/dist/editor/components/NewComposition/RemTextarea.d.ts +1 -1
  15. package/dist/editor/components/RenderButton.js +1 -1
  16. package/dist/editor/components/RenderModal/RenderModal.d.ts +2 -2
  17. package/dist/editor/components/RenderModal/RenderModal.js +9 -9
  18. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +3 -3
  19. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +3 -3
  20. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
  21. package/dist/editor/components/RenderQueue/actions.d.ts +7 -7
  22. package/dist/editor/components/RenderQueue/actions.js +6 -6
  23. package/dist/editor/components/SidebarRenderButton.js +1 -1
  24. package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
  25. package/dist/editor/state/modals.d.ts +2 -2
  26. package/dist/entry-point.d.ts +2 -1
  27. package/dist/entry-point.js +6 -6
  28. package/dist/get-cli-options.d.ts +3 -2
  29. package/dist/get-cli-options.js +8 -9
  30. package/dist/get-composition-id.js +1 -1
  31. package/dist/get-env.d.ts +2 -1
  32. package/dist/get-env.js +11 -10
  33. package/dist/get-filename.js +1 -1
  34. package/dist/get-input-props.d.ts +2 -1
  35. package/dist/get-input-props.js +10 -6
  36. package/dist/gpu.d.ts +2 -1
  37. package/dist/gpu.js +3 -2
  38. package/dist/index.d.ts +12 -26
  39. package/dist/index.js +13 -28
  40. package/dist/initialize-cli.d.ts +2 -1
  41. package/dist/initialize-cli.js +7 -4
  42. package/dist/log.d.ts +4 -18
  43. package/dist/make-on-download.js +2 -2
  44. package/dist/parse-command-line.js +1 -1
  45. package/dist/preview-server/api-types.d.ts +2 -0
  46. package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
  47. package/dist/preview-server/handler.d.ts +3 -1
  48. package/dist/preview-server/handler.js +2 -1
  49. package/dist/preview-server/render-queue/job.d.ts +5 -5
  50. package/dist/preview-server/render-queue/make-retry-payload.js +3 -3
  51. package/dist/preview-server/render-queue/process-still.js +2 -1
  52. package/dist/preview-server/render-queue/process-video.d.ts +3 -1
  53. package/dist/preview-server/render-queue/process-video.js +3 -2
  54. package/dist/preview-server/render-queue/queue.d.ts +3 -1
  55. package/dist/preview-server/render-queue/queue.js +7 -5
  56. package/dist/preview-server/routes/add-render.js +7 -4
  57. package/dist/preview-server/routes.d.ts +3 -2
  58. package/dist/preview-server/routes.js +2 -1
  59. package/dist/preview-server/start-server.d.ts +2 -0
  60. package/dist/preview-server/start-server.js +1 -0
  61. package/dist/render-flows/render.js +6 -6
  62. package/dist/render-flows/still.js +2 -2
  63. package/dist/render.d.ts +2 -1
  64. package/dist/render.js +3 -3
  65. package/dist/setup-cache.js +3 -3
  66. package/dist/still.d.ts +2 -1
  67. package/dist/still.js +4 -3
  68. package/dist/studio.d.ts +2 -1
  69. package/dist/studio.js +7 -6
  70. package/dist/versions.d.ts +3 -2
  71. package/dist/versions.js +18 -17
  72. package/package.json +8 -8
@@ -1,4 +1,4 @@
1
- import type { AudioCodec, Codec, ColorSpace, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
1
+ import type { AudioCodec, Codec, ColorSpace, LogLevel, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { EnumPath } from '../../editor/components/RenderModal/SchemaEditor/extract-enum-json-paths';
3
3
  import type { AggregateRenderProgress } from '../../progress-types';
4
4
  import type { RequiredChromiumOptions } from '../../required-chromium-options';
@@ -69,7 +69,7 @@ export type RenderJob = {
69
69
  id: string;
70
70
  outName: string;
71
71
  deletedOutputLocation: boolean;
72
- verbose: boolean;
72
+ logLevel: LogLevel;
73
73
  delayRenderTimeout: number;
74
74
  cancelToken: ReturnType<typeof makeCancelSignal>;
75
75
  chromiumOptions: RequiredChromiumOptions;
@@ -86,13 +86,13 @@ type AddRenderRequestDynamicFields = {
86
86
  jpegQuality: number;
87
87
  frame: number;
88
88
  scale: number;
89
- verbose: boolean;
89
+ logLevel: LogLevel;
90
90
  } | {
91
91
  type: 'sequence';
92
92
  imageFormat: VideoImageFormat;
93
93
  jpegQuality: number | null;
94
94
  scale: number;
95
- verbose: boolean;
95
+ logLevel: LogLevel;
96
96
  concurrency: number;
97
97
  startFrame: number;
98
98
  endFrame: number;
@@ -104,7 +104,7 @@ type AddRenderRequestDynamicFields = {
104
104
  imageFormat: VideoImageFormat;
105
105
  jpegQuality: number | null;
106
106
  scale: number;
107
- verbose: boolean;
107
+ logLevel: LogLevel;
108
108
  concurrency: number;
109
109
  crf: number | null;
110
110
  startFrame: number;
@@ -17,7 +17,7 @@ const makeRetryPayload = (job) => {
17
17
  initialVideoImageFormat: defaults.videoImageFormat,
18
18
  initialJpegQuality: (_a = job.jpegQuality) !== null && _a !== void 0 ? _a : defaults.jpegQuality,
19
19
  initialScale: job.scale,
20
- initialVerbose: job.verbose,
20
+ initialLogLevel: job.logLevel,
21
21
  initialConcurrency: defaults.concurrency,
22
22
  maxConcurrency: defaults.maxConcurrency,
23
23
  minConcurrency: defaults.minConcurrency,
@@ -54,7 +54,7 @@ const makeRetryPayload = (job) => {
54
54
  initialVideoImageFormat: defaults.videoImageFormat,
55
55
  initialJpegQuality: (_b = job.jpegQuality) !== null && _b !== void 0 ? _b : defaults.jpegQuality,
56
56
  initialScale: job.scale,
57
- initialVerbose: job.verbose,
57
+ initialLogLevel: job.logLevel,
58
58
  initialConcurrency: defaults.concurrency,
59
59
  maxConcurrency: defaults.maxConcurrency,
60
60
  minConcurrency: defaults.minConcurrency,
@@ -92,7 +92,7 @@ const makeRetryPayload = (job) => {
92
92
  initialVideoImageFormat: job.imageFormat,
93
93
  initialJpegQuality: (_c = job.jpegQuality) !== null && _c !== void 0 ? _c : defaults.jpegQuality,
94
94
  initialScale: job.scale,
95
- initialVerbose: job.verbose,
95
+ initialLogLevel: job.logLevel,
96
96
  initialFrame: 0,
97
97
  initialConcurrency: job.concurrency,
98
98
  maxConcurrency: defaults.maxConcurrency,
@@ -12,6 +12,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
12
12
  isLambda: false,
13
13
  type: 'still',
14
14
  remotionRoot,
15
+ logLevel: job.logLevel,
15
16
  });
16
17
  const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
17
18
  await (0, still_1.renderStillFlow)({
@@ -35,7 +36,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
35
36
  width: null,
36
37
  compositionIdFromUi: job.compositionId,
37
38
  imageFormatFromUi: job.imageFormat,
38
- logLevel: job.verbose ? 'verbose' : 'info',
39
+ logLevel: job.logLevel,
39
40
  onProgress,
40
41
  indent: true,
41
42
  addCleanupCallback,
@@ -1,8 +1,10 @@
1
+ import type { LogLevel } from '@remotion/renderer';
1
2
  import type { JobProgressCallback, RenderJob } from './job';
2
- export declare const processVideoJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
+ export declare const processVideoJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, logLevel, }: {
3
4
  job: RenderJob;
4
5
  remotionRoot: string;
5
6
  entryPoint: string;
6
7
  onProgress: JobProgressCallback;
7
8
  addCleanupCallback: (cb: () => void) => void;
9
+ logLevel: LogLevel;
8
10
  }) => Promise<void>;
@@ -4,7 +4,7 @@ exports.processVideoJob = void 0;
4
4
  const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to-serve-url");
5
5
  const get_cli_options_1 = require("../../get-cli-options");
6
6
  const render_1 = require("../../render-flows/render");
7
- const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
7
+ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, logLevel, }) => {
8
8
  var _a, _b, _c;
9
9
  if (job.type !== 'video' && job.type !== 'sequence') {
10
10
  throw new Error('Expected video job');
@@ -13,6 +13,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
13
13
  isLambda: false,
14
14
  type: 'still',
15
15
  remotionRoot,
16
+ logLevel,
16
17
  });
17
18
  const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
18
19
  await (0, render_1.renderVideoFlow)({
@@ -34,7 +35,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
34
35
  scale: job.scale,
35
36
  width: null,
36
37
  compositionIdFromUi: job.compositionId,
37
- logLevel: job.verbose ? 'verbose' : 'info',
38
+ logLevel: job.logLevel,
38
39
  onProgress,
39
40
  indent: true,
40
41
  concurrency: job.concurrency,
@@ -1,9 +1,11 @@
1
+ import type { LogLevel } from '@remotion/renderer';
1
2
  import type { RenderJob, RenderJobWithCleanup } from './job';
2
3
  export declare const getRenderQueue: () => RenderJob[];
3
- export declare const addJob: ({ job, entryPoint, remotionRoot, }: {
4
+ export declare const addJob: ({ job, entryPoint, remotionRoot, logLevel, }: {
4
5
  job: RenderJobWithCleanup;
5
6
  entryPoint: string;
6
7
  remotionRoot: string;
8
+ logLevel: LogLevel;
7
9
  }) => void;
8
10
  export declare const removeJob: (jobId: string) => void;
9
11
  export declare const cancelJob: (jobId: string) => void;
@@ -39,7 +39,7 @@ const notifyClientsOfJobUpdate = () => {
39
39
  });
40
40
  });
41
41
  };
42
- const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
42
+ const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, logLevel, }) => {
43
43
  if (job.type === 'still') {
44
44
  await (0, process_still_1.processStill)({
45
45
  job,
@@ -57,14 +57,15 @@ const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanu
57
57
  entryPoint,
58
58
  onProgress,
59
59
  addCleanupCallback,
60
+ logLevel,
60
61
  });
61
62
  return;
62
63
  }
63
64
  throw new Error(`Unknown job ${JSON.stringify(job)}`);
64
65
  };
65
- const addJob = ({ job, entryPoint, remotionRoot, }) => {
66
+ const addJob = ({ job, entryPoint, remotionRoot, logLevel, }) => {
66
67
  jobQueue.push(job);
67
- processJobIfPossible({ entryPoint, remotionRoot });
68
+ processJobIfPossible({ entryPoint, remotionRoot, logLevel });
68
69
  notifyClientsOfJobUpdate();
69
70
  };
70
71
  exports.addJob = addJob;
@@ -93,7 +94,7 @@ const cancelJob = (jobId) => {
93
94
  }
94
95
  };
95
96
  exports.cancelJob = cancelJob;
96
- const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
97
+ const processJobIfPossible = async ({ remotionRoot, entryPoint, logLevel, }) => {
97
98
  const runningJob = jobQueue.find((q) => {
98
99
  return q.status === 'running';
99
100
  });
@@ -160,6 +161,7 @@ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
160
161
  addCleanupCallback: (cleanup) => {
161
162
  jobCleanups.push(cleanup);
162
163
  },
164
+ logLevel,
163
165
  });
164
166
  log_1.Log.info(chalk_1.chalk.gray('╰─ Done in ' + (Date.now() - startTime) + 'ms.'));
165
167
  const { unwatch } = (0, file_watcher_1.installFileWatcher)({
@@ -215,5 +217,5 @@ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
215
217
  finally {
216
218
  await Promise.all(jobCleanups.map((c) => c()));
217
219
  }
218
- processJobIfPossible({ remotionRoot, entryPoint });
220
+ processJobIfPossible({ remotionRoot, entryPoint, logLevel });
219
221
  };
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleAddRender = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  const queue_1 = require("../render-queue/queue");
6
- const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
6
+ const handleAddRender = ({ input, entryPoint, remotionRoot, logLevel, }) => {
7
7
  const id = String(Math.random()).replace('0.', '');
8
8
  if (input.type === 'video') {
9
9
  (0, queue_1.addJob)({
@@ -23,7 +23,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
23
23
  jpegQuality: input.jpegQuality,
24
24
  scale: input.scale,
25
25
  startedAt: Date.now(),
26
- verbose: input.verbose,
26
+ logLevel: input.logLevel,
27
27
  cancelToken: (0, renderer_1.makeCancelSignal)(),
28
28
  concurrency: input.concurrency,
29
29
  crf: input.crf,
@@ -47,6 +47,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
47
47
  colorSpace: input.colorSpace,
48
48
  multiProcessOnLinux: input.multiProcessOnLinux,
49
49
  },
50
+ logLevel,
50
51
  });
51
52
  }
52
53
  if (input.type === 'sequence') {
@@ -65,7 +66,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
65
66
  jpegQuality: input.jpegQuality,
66
67
  scale: input.scale,
67
68
  startedAt: Date.now(),
68
- verbose: input.verbose,
69
+ logLevel: input.logLevel,
69
70
  cancelToken: (0, renderer_1.makeCancelSignal)(),
70
71
  concurrency: input.concurrency,
71
72
  endFrame: input.endFrame,
@@ -77,6 +78,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
77
78
  offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
78
79
  multiProcessOnLinux: input.multiProcessOnLinux,
79
80
  },
81
+ logLevel,
80
82
  });
81
83
  }
82
84
  if (input.type === 'still') {
@@ -94,7 +96,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
94
96
  scale: input.scale,
95
97
  cleanup: [],
96
98
  deletedOutputLocation: false,
97
- verbose: input.verbose,
99
+ logLevel: input.logLevel,
98
100
  cancelToken: (0, renderer_1.makeCancelSignal)(),
99
101
  chromiumOptions: input.chromiumOptions,
100
102
  delayRenderTimeout: input.delayRenderTimeout,
@@ -105,6 +107,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
105
107
  },
106
108
  entryPoint,
107
109
  remotionRoot,
110
+ logLevel,
108
111
  });
109
112
  }
110
113
  return Promise.resolve(undefined);
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
1
+ import type { LogLevel } from '@remotion/renderer';
2
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
3
  import type { LiveEventsServer } from './live-events';
4
- export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
4
+ export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, }: {
5
5
  staticHash: string;
6
6
  staticHashPrefix: string;
7
7
  outputHash: string;
@@ -14,4 +14,5 @@ export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash,
14
14
  remotionRoot: string;
15
15
  entryPoint: string;
16
16
  publicDir: string;
17
+ logLevel: LogLevel;
17
18
  }) => void | Promise<void> | Promise<ServerResponse<IncomingMessage> | undefined>;
@@ -200,7 +200,7 @@ const handleFavicon = (_, response) => {
200
200
  const readStream = (0, node_fs_1.createReadStream)(filePath);
201
201
  readStream.pipe(response);
202
202
  };
203
- const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }) => {
203
+ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, }) => {
204
204
  const url = new URL(request.url, 'http://localhost');
205
205
  if (url.pathname === '/api/project-info') {
206
206
  return handleProjectInfo(remotionRoot, request, response);
@@ -224,6 +224,7 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
224
224
  handler: value,
225
225
  request,
226
226
  response,
227
+ logLevel,
227
228
  });
228
229
  }
229
230
  }
@@ -1,4 +1,5 @@
1
1
  import type { WebpackOverrideFn } from '@remotion/bundler';
2
+ import type { LogLevel } from '@remotion/renderer';
2
3
  import type { LiveEventsServer } from './live-events';
3
4
  export declare const startServer: (options: {
4
5
  entry: string;
@@ -17,6 +18,7 @@ export declare const startServer: (options: {
17
18
  staticHashPrefix: string;
18
19
  outputHash: string;
19
20
  outputHashPrefix: string;
21
+ logLevel: LogLevel;
20
22
  }) => Promise<{
21
23
  port: number;
22
24
  liveEventsServer: LiveEventsServer;
@@ -62,6 +62,7 @@ const startServer = async (options) => {
62
62
  remotionRoot: options.remotionRoot,
63
63
  entryPoint: options.userDefinedComponent,
64
64
  publicDir: options.publicDir,
65
+ logLevel: options.logLevel,
65
66
  });
66
67
  })
67
68
  .catch((err) => {
@@ -51,7 +51,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
51
51
  var _a;
52
52
  const downloads = [];
53
53
  if (browserExecutable) {
54
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
54
+ log_1.Log.verbose({ indent, logLevel }, 'Browser executable: ', browserExecutable);
55
55
  }
56
56
  const browserInstance = renderer_1.RenderInternals.internalOpenBrowser({
57
57
  browser,
@@ -186,7 +186,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
186
186
  fromUi: outputLocationFromUI,
187
187
  logLevel,
188
188
  });
189
- log_1.Log.verboseAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
189
+ log_1.Log.verbose({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
190
190
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Composition = ${compositionId} (${reason}), Codec = ${codec} (${codecReason}), Output = ${relativeOutputLocation}`));
191
191
  const absoluteOutputFile = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
192
192
  const exists = (0, node_fs_1.existsSync)(absoluteOutputFile);
@@ -213,7 +213,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
213
213
  const outputDir = shouldOutputImageSequence
214
214
  ? absoluteOutputFile
215
215
  : await node_fs_1.default.promises.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), 'react-motion-render'));
216
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Output dir', outputDir);
216
+ log_1.Log.verbose({ indent, logLevel }, 'Output dir', outputDir);
217
217
  await renderer_1.RenderInternals.internalRenderFrames({
218
218
  imageFormat,
219
219
  serializedInputPropsWithCustomSchema,
@@ -331,12 +331,12 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
331
331
  });
332
332
  updateRenderProgress({ newline: true, printToConsole: true });
333
333
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`${exists ? '○' : '+'} ${absoluteOutputFile}`));
334
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Slowest frames:`);
334
+ log_1.Log.verbose({ indent, logLevel }, `Slowest frames:`);
335
335
  slowestFrames.forEach(({ frame, time }) => {
336
- log_1.Log.verboseAdvanced({ indent, logLevel }, ` Frame ${frame} (${time.toFixed(3)}ms)`);
336
+ log_1.Log.verbose({ indent, logLevel }, ` Frame ${frame} (${time.toFixed(3)}ms)`);
337
337
  });
338
338
  for (const line of renderer_1.RenderInternals.perf.getPerf()) {
339
- log_1.Log.verboseAdvanced({ indent, logLevel }, line);
339
+ log_1.Log.verbose({ indent, logLevel }, line);
340
340
  }
341
341
  };
342
342
  exports.renderVideoFlow = renderVideoFlow;
@@ -51,7 +51,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
51
51
  onProgress({ message, value: progress, ...aggregate });
52
52
  };
53
53
  if (browserExecutable) {
54
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
54
+ log_1.Log.verbose({ indent, logLevel }, 'Browser executable: ', browserExecutable);
55
55
  }
56
56
  const browserInstance = renderer_1.RenderInternals.internalOpenBrowser({
57
57
  browser,
@@ -137,7 +137,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
137
137
  (0, node_fs_1.mkdirSync)(node_path_1.default.join(absoluteOutputLocation, '..'), {
138
138
  recursive: true,
139
139
  });
140
- log_1.Log.verboseAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
140
+ log_1.Log.verbose({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
141
141
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Composition = ${compositionId} (${reason}), Format = ${imageFormat} (${source}), Output = ${relativeOutputLocation}`));
142
142
  const renderStart = Date.now();
143
143
  aggregate.rendering = {
package/dist/render.d.ts CHANGED
@@ -1 +1,2 @@
1
- export declare const render: (remotionRoot: string, args: string[]) => Promise<void>;
1
+ import type { LogLevel } from '@remotion/renderer';
2
+ export declare const render: (remotionRoot: string, args: string[], logLevel: LogLevel) => Promise<void>;
package/dist/render.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.render = void 0;
4
- // eslint-disable-next-line no-restricted-imports
5
4
  const remotion_1 = require("remotion");
6
5
  const cleanup_before_quit_1 = require("./cleanup-before-quit");
7
6
  const config_1 = require("./config");
@@ -12,8 +11,8 @@ const get_cli_options_1 = require("./get-cli-options");
12
11
  const log_1 = require("./log");
13
12
  const parse_command_line_1 = require("./parse-command-line");
14
13
  const render_1 = require("./render-flows/render");
15
- const render = async (remotionRoot, args) => {
16
- const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)(args, remotionRoot);
14
+ const render = async (remotionRoot, args, logLevel) => {
15
+ const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)(args, remotionRoot, logLevel);
17
16
  if (!file) {
18
17
  log_1.Log.error('No entry point specified. Pass more arguments:');
19
18
  log_1.Log.error(' npx remotion render [entry-point] [composition-name] [out-name]');
@@ -29,6 +28,7 @@ const render = async (remotionRoot, args) => {
29
28
  isLambda: false,
30
29
  type: 'series',
31
30
  remotionRoot,
31
+ logLevel,
32
32
  });
33
33
  const audioCodec = (0, get_audio_codec_1.getResolvedAudioCodec)();
34
34
  await (0, render_1.renderVideoFlow)({
@@ -137,14 +137,14 @@ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallba
137
137
  progress: 1,
138
138
  doneIn: Date.now() - bundleStartTime,
139
139
  };
140
- log_1.Log.verboseAdvanced({ logLevel, indent }, 'Bundling done in', bundlingState.doneIn + 'ms');
140
+ log_1.Log.verbose({ logLevel, indent }, 'Bundling done in', bundlingState.doneIn + 'ms');
141
141
  copyingState = {
142
142
  ...copyingState,
143
143
  doneIn: copyStart ? Date.now() - copyStart : 0,
144
144
  };
145
- log_1.Log.verboseAdvanced({ logLevel, indent }, 'Copying done in ', copyingState.doneIn + 'ms');
145
+ log_1.Log.verbose({ logLevel, indent }, 'Copying done in ', copyingState.doneIn + 'ms');
146
146
  updateProgress(true);
147
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Bundled under', bundled);
147
+ log_1.Log.verbose({ indent, logLevel }, 'Bundled under', bundled);
148
148
  const cacheExistedAfter = bundler_1.BundlerInternals.cacheExists(remotionRoot, 'production', hash) === 'exists';
149
149
  if (cacheExistedAfter) {
150
150
  if (cacheExistedBefore === 'does-not-exist' ||
package/dist/still.d.ts CHANGED
@@ -1 +1,2 @@
1
- export declare const still: (remotionRoot: string, args: string[]) => Promise<void>;
1
+ import type { LogLevel } from '@remotion/renderer';
2
+ export declare const still: (remotionRoot: string, args: string[], logLevel: LogLevel) => Promise<void>;
package/dist/still.js CHANGED
@@ -9,8 +9,8 @@ const get_cli_options_1 = require("./get-cli-options");
9
9
  const log_1 = require("./log");
10
10
  const parse_command_line_1 = require("./parse-command-line");
11
11
  const still_1 = require("./render-flows/still");
12
- const still = async (remotionRoot, args) => {
13
- const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)(args, remotionRoot);
12
+ const still = async (remotionRoot, args, logLevel) => {
13
+ const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)(args, remotionRoot, logLevel);
14
14
  if (!file) {
15
15
  log_1.Log.error('No entry point specified. Pass more arguments:');
16
16
  log_1.Log.error(' npx remotion render [entry-point] [composition-name] [out-name]');
@@ -22,10 +22,11 @@ const still = async (remotionRoot, args) => {
22
22
  log_1.Log.error('--frames flag was passed to the `still` command. This flag only works with the `render` command. Did you mean `--frame`? See reference: https://www.remotion.dev/docs/cli/');
23
23
  process.exit(1);
24
24
  }
25
- const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
25
+ const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
26
26
  isLambda: false,
27
27
  type: 'still',
28
28
  remotionRoot,
29
+ logLevel,
29
30
  });
30
31
  await (0, still_1.renderStillFlow)({
31
32
  remotionRoot,
package/dist/studio.d.ts CHANGED
@@ -1 +1,2 @@
1
- export declare const studioCommand: (remotionRoot: string, args: string[]) => Promise<void>;
1
+ import type { LogLevel } from '@remotion/renderer';
2
+ export declare const studioCommand: (remotionRoot: string, args: string[], logLevel: LogLevel) => Promise<void>;
package/dist/studio.js CHANGED
@@ -55,9 +55,9 @@ const getPort = () => {
55
55
  }
56
56
  return null;
57
57
  };
58
- const studioCommand = async (remotionRoot, args) => {
59
- const { file, reason } = (0, entry_point_1.findEntryPoint)(args, remotionRoot);
60
- log_1.Log.verbose('Entry point:', file, 'reason:', reason);
58
+ const studioCommand = async (remotionRoot, args, logLevel) => {
59
+ const { file, reason } = (0, entry_point_1.findEntryPoint)(args, remotionRoot, logLevel);
60
+ log_1.Log.verbose({ indent: false, logLevel }, 'Entry point:', file, 'reason:', reason);
61
61
  if (!file) {
62
62
  log_1.Log.error('No Remotion entrypoint was found. Specify an additional argument manually:');
63
63
  log_1.Log.error(' npx remotion studio src/index.ts');
@@ -74,7 +74,7 @@ const studioCommand = async (remotionRoot, args) => {
74
74
  newProps,
75
75
  });
76
76
  });
77
- });
77
+ }, logLevel);
78
78
  let envVariables = await (0, get_env_1.getEnvironmentVariables)((newEnvVariables) => {
79
79
  (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
80
80
  envVariables = newEnvVariables;
@@ -83,7 +83,7 @@ const studioCommand = async (remotionRoot, args) => {
83
83
  newEnvVariables,
84
84
  });
85
85
  });
86
- });
86
+ }, logLevel);
87
87
  const publicDir = (0, get_absolute_public_dir_1.getAbsolutePublicDir)({
88
88
  userPassedPublicDir: config_1.ConfigInternals.getPublicDir(),
89
89
  remotionRoot,
@@ -130,6 +130,7 @@ const studioCommand = async (remotionRoot, args) => {
130
130
  staticHashPrefix,
131
131
  outputHash,
132
132
  outputHashPrefix,
133
+ logLevel,
133
134
  });
134
135
  (0, live_events_1.setLiveEventsListener)(liveEventsServer);
135
136
  const networkAddress = (0, get_network_address_1.getNetworkAddress)();
@@ -149,7 +150,7 @@ const studioCommand = async (remotionRoot, args) => {
149
150
  });
150
151
  }
151
152
  else {
152
- log_1.Log.verbose(`Not opening browser, reason: ${reasonForBrowserDecision}`);
153
+ log_1.Log.verbose({ indent: false, logLevel }, `Not opening browser, reason: ${reasonForBrowserDecision}`);
153
154
  }
154
155
  await new Promise(noop);
155
156
  };
@@ -1,3 +1,4 @@
1
+ import type { LogLevel } from '@remotion/renderer';
1
2
  export declare const VERSIONS_COMMAND = "versions";
2
- export declare const validateVersionsBeforeCommand: (remotionRoot: string) => Promise<void>;
3
- export declare const versionsCommand: (remotionRoot: string) => Promise<void>;
3
+ export declare const validateVersionsBeforeCommand: (remotionRoot: string, logLevel: LogLevel) => Promise<void>;
4
+ export declare const versionsCommand: (remotionRoot: string, logLevel: LogLevel) => Promise<void>;
package/dist/versions.js CHANGED
@@ -36,38 +36,39 @@ const getAllVersions = async (remotionRoot) => {
36
36
  return (await Promise.all(list_of_remotion_packages_1.listOfRemotionPackages.map(async (p) => [p, await getVersion(remotionRoot, p)]))).filter(([, version]) => version);
37
37
  };
38
38
  exports.VERSIONS_COMMAND = 'versions';
39
- const validateVersionsBeforeCommand = async (remotionRoot) => {
39
+ const validateVersionsBeforeCommand = async (remotionRoot, logLevel) => {
40
40
  const versions = await getAllVersions(remotionRoot);
41
41
  const grouped = groupBy(versions);
42
42
  const installedVersions = Object.keys(grouped);
43
43
  if (installedVersions.length === 1) {
44
44
  return;
45
45
  }
46
- log_1.Log.warn('-------------');
47
- log_1.Log.warn('Version mismatch:');
46
+ const logOptions = { indent: false, logLevel };
47
+ log_1.Log.warn(logOptions, '-------------');
48
+ log_1.Log.warn(logOptions, 'Version mismatch:');
48
49
  for (const version of installedVersions) {
49
- log_1.Log.warn(`- On version: ${version}`);
50
+ log_1.Log.warn(logOptions, `- On version: ${version}`);
50
51
  for (const pkg of grouped[version]) {
51
- log_1.Log.warn(` - ${pkg}`);
52
+ log_1.Log.warn(logOptions, ` - ${pkg}`);
52
53
  }
53
54
  log_1.Log.info();
54
55
  }
55
- log_1.Log.warn('You may experience breakages such as:');
56
- log_1.Log.warn('- React context and hooks not working');
57
- log_1.Log.warn('- Type errors and feature incompatibilities');
58
- log_1.Log.warn('- Failed renders and unclear errors');
59
- log_1.Log.warn();
60
- log_1.Log.warn('To resolve:');
61
- log_1.Log.warn('- Make sure your package.json has all Remotion packages pointing to the same version.');
62
- log_1.Log.warn('- Remove the `^` character in front of a version to pin a package.');
56
+ log_1.Log.warn(logOptions, 'You may experience breakages such as:');
57
+ log_1.Log.warn(logOptions, '- React context and hooks not working');
58
+ log_1.Log.warn(logOptions, '- Type errors and feature incompatibilities');
59
+ log_1.Log.warn(logOptions, '- Failed renders and unclear errors');
60
+ log_1.Log.warn(logOptions);
61
+ log_1.Log.warn(logOptions, 'To resolve:');
62
+ log_1.Log.warn(logOptions, '- Make sure your package.json has all Remotion packages pointing to the same version.');
63
+ log_1.Log.warn(logOptions, '- Remove the `^` character in front of a version to pin a package.');
63
64
  if (!renderer_1.RenderInternals.isEqualOrBelowLogLevel(config_1.ConfigInternals.Logging.getLogLevel(), 'verbose')) {
64
- log_1.Log.warn('- Run `npx remotion versions --log=verbose` to see the path of the modules resolved.');
65
+ log_1.Log.warn(logOptions, '- Run `npx remotion versions --log=verbose` to see the path of the modules resolved.');
65
66
  }
66
- log_1.Log.warn('-------------');
67
+ log_1.Log.warn(logOptions, '-------------');
67
68
  log_1.Log.info();
68
69
  };
69
70
  exports.validateVersionsBeforeCommand = validateVersionsBeforeCommand;
70
- const versionsCommand = async (remotionRoot) => {
71
+ const versionsCommand = async (remotionRoot, logLevel) => {
71
72
  (0, parse_command_line_1.parseCommandLine)();
72
73
  const versions = await getAllVersions(remotionRoot);
73
74
  const grouped = groupBy(versions);
@@ -78,7 +79,7 @@ const versionsCommand = async (remotionRoot) => {
78
79
  log_1.Log.info(`On version: ${version}`);
79
80
  for (const pkg of grouped[version]) {
80
81
  log_1.Log.info(`- ${pkg}`);
81
- log_1.Log.verbose(` ${(0, resolve_from_1.resolveFrom)(remotionRoot, `${pkg}/package.json`)}`);
82
+ log_1.Log.verbose({ indent: false, logLevel }, ` ${(0, resolve_from_1.resolveFrom)(remotionRoot, `${pkg}/package.json`)}`);
82
83
  }
83
84
  log_1.Log.info();
84
85
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.56",
3
+ "version": "4.0.57",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -35,11 +35,11 @@
35
35
  "prompts": "2.4.1",
36
36
  "semver": "7.5.3",
37
37
  "source-map": "0.6.1",
38
- "@remotion/bundler": "4.0.56",
39
- "@remotion/media-utils": "4.0.56",
40
- "@remotion/player": "4.0.56",
41
- "@remotion/renderer": "4.0.56",
42
- "remotion": "4.0.56"
38
+ "@remotion/bundler": "4.0.57",
39
+ "@remotion/player": "4.0.57",
40
+ "@remotion/media-utils": "4.0.57",
41
+ "remotion": "4.0.57",
42
+ "@remotion/renderer": "4.0.57"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -65,8 +65,8 @@
65
65
  "react-dom": "^18.0.0",
66
66
  "vitest": "0.31.1",
67
67
  "zod": "^3.22.3",
68
- "@remotion/zod-types": "4.0.56",
69
- "@remotion/tailwind": "4.0.56"
68
+ "@remotion/tailwind": "4.0.57",
69
+ "@remotion/zod-types": "4.0.57"
70
70
  },
71
71
  "keywords": [
72
72
  "remotion",