@remotion/cli 4.0.507 → 4.0.508

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.
@@ -34,11 +34,26 @@ const defaultBrowserDownloadProgress = ({ indent, logLevel, quiet, onProgress, }
34
34
  const productName = chromeMode === 'chrome-for-testing'
35
35
  ? 'Chrome for Testing'
36
36
  : 'Headless Shell';
37
+ const startedAt = Date.now();
38
+ let doneIn = null;
39
+ // Must fire in both logger modes - the Studio UI relies on it to display
40
+ // the download progress (https://github.com/remotion-dev/remotion/issues/10228).
41
+ const updateDownloadState = (progress) => {
42
+ if (progress.percent === 1) {
43
+ doneIn = Date.now() - startedAt;
44
+ }
45
+ onProgress({
46
+ alreadyAvailable: progress.alreadyAvailable,
47
+ progress: progress.percent,
48
+ doneIn,
49
+ });
50
+ };
37
51
  if (updatesDontOverwrite) {
38
52
  let lastProgress = 0;
39
53
  return {
40
54
  version: null,
41
55
  onProgress: (progress) => {
56
+ updateDownloadState(progress);
42
57
  if (progress.downloadedBytes > lastProgress + 10000000) {
43
58
  lastProgress = progress.downloadedBytes;
44
59
  log_1.Log.info({ indent, logLevel }, `Getting ${productName} - ${renderer_1.RenderInternals.toMegabytes(progress.downloadedBytes)}/${renderer_1.RenderInternals.toMegabytes(progress.totalSizeInBytes)}`);
@@ -56,19 +71,10 @@ const defaultBrowserDownloadProgress = ({ indent, logLevel, quiet, onProgress, }
56
71
  updatesDontOverwrite,
57
72
  logLevel,
58
73
  });
59
- const startedAt = Date.now();
60
- let doneIn = null;
61
74
  return {
62
75
  version: null,
63
76
  onProgress: (progress) => {
64
- if (progress.percent === 1) {
65
- doneIn = Date.now() - startedAt;
66
- }
67
- onProgress({
68
- alreadyAvailable: progress.alreadyAvailable,
69
- progress: progress.percent,
70
- doneIn,
71
- });
77
+ updateDownloadState(progress);
72
78
  cliOutput.update(makeDownloadProgress({
73
79
  doneIn,
74
80
  bytesDownloaded: progress.downloadedBytes,
@@ -99,6 +99,7 @@ exports.listOfRemotionPackages = [
99
99
  '@remotion/design',
100
100
  '@remotion/studio-protocol',
101
101
  '@remotion/light-leaks',
102
+ '@remotion/mac-cursors',
102
103
  '@remotion/rough-notation',
103
104
  '@remotion/starburst',
104
105
  '@remotion/vercel',
@@ -28,6 +28,7 @@ export declare const makeRenderingAndStitchingProgress: ({ prog, isUsingParallel
28
28
  progress: number;
29
29
  message: string;
30
30
  };
31
+ export declare const getGuiProgressSubtitle: (progress: AggregateRenderProgress) => string;
31
32
  export declare const printFact: (printLevel: "error" | "info" | "trace" | "verbose" | "warn") => ({ indent, logLevel, left, right, color, link, }: {
32
33
  indent: boolean;
33
34
  logLevel: "error" | "info" | "trace" | "verbose" | "warn";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printFact = exports.makeRenderingAndStitchingProgress = exports.getRightLabelWidth = exports.makeBundlingAndCopyProgress = exports.createOverwriteableCliOutput = exports.LABEL_WIDTH = void 0;
3
+ exports.printFact = exports.getGuiProgressSubtitle = exports.makeRenderingAndStitchingProgress = exports.getRightLabelWidth = exports.makeBundlingAndCopyProgress = exports.createOverwriteableCliOutput = exports.LABEL_WIDTH = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  const pure_1 = require("@remotion/renderer/pure");
6
6
  const studio_server_1 = require("@remotion/studio-server");
@@ -234,11 +234,17 @@ const makeRenderingAndStitchingProgress = ({ prog, isUsingParallelEncoding, }) =
234
234
  const progress = ((_b = bundling === null || bundling === void 0 ? void 0 : bundling.progress) !== null && _b !== void 0 ? _b : 0) * 0.3 +
235
235
  renderProgress * 0.6 +
236
236
  stitchingProgress * 0.1;
237
- return { output, progress, message: getGuiProgressSubtitle(prog) };
237
+ return { output, progress, message: (0, exports.getGuiProgressSubtitle)(prog) };
238
238
  };
239
239
  exports.makeRenderingAndStitchingProgress = makeRenderingAndStitchingProgress;
240
240
  const getGuiProgressSubtitle = (progress) => {
241
241
  var _a, _b;
242
+ if (progress.browser.error) {
243
+ return 'Failed to download browser';
244
+ }
245
+ if (!progress.browser.alreadyAvailable && progress.browser.doneIn === null) {
246
+ return `Downloading browser ${Math.round(progress.browser.progress * 100)}%`;
247
+ }
242
248
  // Handle floating point inaccuracies
243
249
  const bundlingProgress = ((_a = progress.bundling) === null || _a === void 0 ? void 0 : _a.progress) || 0;
244
250
  if (bundlingProgress < 0.99999) {
@@ -270,6 +276,7 @@ const getGuiProgressSubtitle = (progress) => {
270
276
  }
271
277
  return `Encoded ${progress.stitching.frames}/${progress.stitching.totalFrames}`;
272
278
  };
279
+ exports.getGuiProgressSubtitle = getGuiProgressSubtitle;
273
280
  const printFact = (printLevel) => ({ indent, logLevel, left, right, color, link, }) => {
274
281
  const fn = (str) => {
275
282
  if (color === 'gray') {
@@ -99,13 +99,24 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
99
99
  logLevel,
100
100
  quiet: (0, parsed_cli_1.quietFlagProvided)(),
101
101
  });
102
- await renderer_1.RenderInternals.internalEnsureBrowser({
103
- browserExecutable,
104
- indent,
105
- logLevel,
106
- onBrowserDownload,
107
- chromeMode,
108
- });
102
+ try {
103
+ await renderer_1.RenderInternals.internalEnsureBrowser({
104
+ browserExecutable,
105
+ indent,
106
+ logLevel,
107
+ onBrowserDownload,
108
+ chromeMode,
109
+ });
110
+ }
111
+ catch (err) {
112
+ updateBrowserProgress({
113
+ progress: browserState.progress,
114
+ doneIn: null,
115
+ alreadyAvailable: false,
116
+ error: true,
117
+ });
118
+ throw err;
119
+ }
109
120
  const browserInstance = renderer_1.RenderInternals.internalOpenBrowser({
110
121
  browser,
111
122
  browserExecutable,
@@ -139,7 +150,9 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
139
150
  logs: logsProgress,
140
151
  };
141
152
  onProgress({
142
- message: `Downloading ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'} ${Math.round(progress.progress * 100)}%`,
153
+ message: progress.error
154
+ ? `Failed to download ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'}`
155
+ : `Downloading ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'} ${Math.round(progress.progress * 100)}%`,
143
156
  value: 0,
144
157
  ...aggregateRenderProgress,
145
158
  });
@@ -53,7 +53,9 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
53
53
  function updateBrowserProgress(progress) {
54
54
  aggregate.browser = progress;
55
55
  onProgress({
56
- message: `Downloading ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'} ${Math.round(progress.progress * 100)}%`,
56
+ message: progress.error
57
+ ? `Failed to download ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'}`
58
+ : `Downloading ${chromeMode === 'chrome-for-testing' ? 'Chrome for Testing' : 'Headless Shell'} ${Math.round(progress.progress * 100)}%`,
57
59
  value: 0,
58
60
  ...aggregate,
59
61
  });
@@ -64,13 +66,24 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
64
66
  logLevel,
65
67
  onProgress: updateBrowserProgress,
66
68
  });
67
- await renderer_1.RenderInternals.internalEnsureBrowser({
68
- browserExecutable,
69
- indent,
70
- logLevel,
71
- onBrowserDownload,
72
- chromeMode,
73
- });
69
+ try {
70
+ await renderer_1.RenderInternals.internalEnsureBrowser({
71
+ browserExecutable,
72
+ indent,
73
+ logLevel,
74
+ onBrowserDownload,
75
+ chromeMode,
76
+ });
77
+ }
78
+ catch (err) {
79
+ updateBrowserProgress({
80
+ progress: aggregate.browser.progress,
81
+ doneIn: null,
82
+ alreadyAvailable: false,
83
+ error: true,
84
+ });
85
+ throw err;
86
+ }
74
87
  const browserInstance = renderer_1.RenderInternals.internalOpenBrowser({
75
88
  browser,
76
89
  browserExecutable,
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.507",
6
+ "version": "4.0.508",
7
7
  "description": "Control Remotion features using the `npx remotion` command",
8
8
  "main": "dist/index.js",
9
9
  "bin": {
@@ -37,18 +37,18 @@
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "dependencies": {
39
39
  "@babel/parser": "7.24.1",
40
- "@remotion/bundler": "4.0.507",
41
- "@remotion/media-utils": "4.0.507",
42
- "@remotion/player": "4.0.507",
43
- "@remotion/renderer": "4.0.507",
44
- "@remotion/studio-shared": "4.0.507",
45
- "@remotion/studio-server": "4.0.507",
46
- "@remotion/studio": "4.0.507",
40
+ "@remotion/bundler": "4.0.508",
41
+ "@remotion/media-utils": "4.0.508",
42
+ "@remotion/player": "4.0.508",
43
+ "@remotion/renderer": "4.0.508",
44
+ "@remotion/studio-shared": "4.0.508",
45
+ "@remotion/studio-server": "4.0.508",
46
+ "@remotion/studio": "4.0.508",
47
47
  "dotenv": "17.3.1",
48
48
  "minimist": "1.2.6",
49
49
  "prompts": "2.4.2",
50
50
  "semver": "7.5.3",
51
- "remotion": "4.0.507"
51
+ "remotion": "4.0.508"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "react": ">=16.8.0",
@@ -60,14 +60,14 @@
60
60
  "@types/prettier": "2.7.2",
61
61
  "@types/semver": "7.5.3",
62
62
  "@types/node": "20.12.14",
63
- "@remotion/zod-types": "4.0.507",
64
- "@remotion/tailwind-v4": "4.0.507",
65
- "@remotion/enable-scss": "4.0.507",
66
- "@remotion/skia": "4.0.507",
63
+ "@remotion/zod-types": "4.0.508",
64
+ "@remotion/tailwind-v4": "4.0.508",
65
+ "@remotion/enable-scss": "4.0.508",
66
+ "@remotion/skia": "4.0.508",
67
67
  "react": "19.2.3",
68
68
  "react-dom": "19.2.3",
69
69
  "zod": "4.4.3",
70
- "@remotion/eslint-config-internal": "4.0.507",
70
+ "@remotion/eslint-config-internal": "4.0.508",
71
71
  "eslint": "9.19.0",
72
72
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
73
73
  },