@remotion/cli 4.0.37 → 4.0.39

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.
@@ -1 +1 @@
1
- export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn", setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1
+ export declare const getLogLevel: () => "verbose" | "info" | "warn" | "error", setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
@@ -0,0 +1,3 @@
1
+ import type { x264Preset } from '@remotion/renderer';
2
+ export declare const getPresetProfile: () => x264Preset | undefined;
3
+ export declare const setPresetProfile: (profile: x264Preset | undefined) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setPresetProfile = exports.getPresetProfile = void 0;
4
+ let preset;
5
+ const getPresetProfile = () => {
6
+ return preset;
7
+ };
8
+ exports.getPresetProfile = getPresetProfile;
9
+ const setPresetProfile = (profile) => {
10
+ preset = profile;
11
+ };
12
+ exports.setPresetProfile = setPresetProfile;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import type { Bug } from './UpdateCheck';
3
+ export declare const KnownBugs: React.FC<{
4
+ bugs: Bug[];
5
+ }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KnownBugs = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const OpenIssueButton_1 = require("./UpdateModal/OpenIssueButton");
6
+ const container = {
7
+ display: 'flex',
8
+ flexDirection: 'row',
9
+ alignItems: 'center',
10
+ };
11
+ const KnownBugs = ({ bugs }) => {
12
+ const bugElements = bugs.map((bug) => {
13
+ return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsxs)("div", { children: ["\uD83E\uDEB2 ", bug.title] }), (0, jsx_runtime_1.jsx)(OpenIssueButton_1.OpenIssueButton, { link: bug.link })] }, bug.description + bug.link));
14
+ });
15
+ return (0, jsx_runtime_1.jsx)("div", { children: bugElements });
16
+ };
17
+ exports.KnownBugs = KnownBugs;
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
12
12
  status: 'error' | 'warning' | 'ok';
13
13
  isFocused: boolean;
14
14
  isHovered: boolean;
15
- }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#f1c40f";
16
- export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | "rightAlign" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
15
+ }) => "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232" | "#f1c40f";
16
+ export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status" | "rightAlign"> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -4,5 +4,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>
4
4
  status: RemInputStatus;
5
5
  name: string;
6
6
  };
7
- export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
7
+ export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status"> & React.RefAttributes<HTMLInputElement>>;
8
8
  export {};
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const OpenIssueButton: React.FC<{
3
+ link: string;
4
+ }>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenIssueButton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const colors_1 = require("../../helpers/colors");
7
+ const svgStyle = {
8
+ width: '11px',
9
+ height: '11px',
10
+ };
11
+ const buttonStyle = {
12
+ border: 'none',
13
+ width: '24px',
14
+ height: '24px',
15
+ display: 'flex',
16
+ justifyContent: 'center',
17
+ alignItems: 'center',
18
+ };
19
+ const OpenIssueButton = ({ link }) => {
20
+ const [hovered, setHovered] = (0, react_1.useState)(false);
21
+ const buttonTooltip = `Open GitHub issue in new Tab`;
22
+ const handleClick = (0, react_1.useCallback)(() => {
23
+ window.open(link, '_blank');
24
+ }, [link]);
25
+ const svgFillColor = (0, react_1.useMemo)(() => {
26
+ return hovered ? 'white' : colors_1.LIGHT_TEXT;
27
+ }, [hovered]);
28
+ const openInEditorSvg = ((0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 512 512", style: svgStyle, children: (0, jsx_runtime_1.jsx)("path", { fill: svgFillColor, d: "M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z" }) }));
29
+ const onPointerEnter = (0, react_1.useCallback)(() => {
30
+ setHovered(true);
31
+ }, []);
32
+ const onPointerLeave = (0, react_1.useCallback)(() => {
33
+ setHovered(false);
34
+ }, []);
35
+ return ((0, jsx_runtime_1.jsx)("button", { title: buttonTooltip, type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: buttonStyle, onClick: handleClick, children: openInEditorSvg }));
36
+ };
37
+ exports.OpenIssueButton = OpenIssueButton;
@@ -31,6 +31,7 @@ const commands = {
31
31
  npm: 'npm run upgrade',
32
32
  yarn: 'yarn upgrade',
33
33
  pnpm: 'pnpm run upgrade',
34
+ bun: 'bun run upgrade',
34
35
  unknown: 'npm run upgrade',
35
36
  };
36
37
  const UpdateModal = ({ info }) => {
@@ -16,4 +16,4 @@ export declare const BLUE_DISABLED = "#284f73";
16
16
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
17
17
  selected: boolean;
18
18
  hovered: boolean;
19
- }) => "transparent" | "rgba(255, 255, 255, 0.06)" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)";
19
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
@@ -13,9 +13,11 @@ const candidates = [
13
13
  node_path_1.default.join('src', 'index.ts'),
14
14
  node_path_1.default.join('src', 'index.tsx'),
15
15
  node_path_1.default.join('src', 'index.js'),
16
+ node_path_1.default.join('src', 'index.mjs'),
16
17
  node_path_1.default.join('remotion', 'index.tsx'),
17
18
  node_path_1.default.join('remotion', 'index.ts'),
18
19
  node_path_1.default.join('remotion', 'index.js'),
20
+ node_path_1.default.join('remotion', 'index.mjs'),
19
21
  ];
20
22
  const findCommonPath = (remotionRoot) => {
21
23
  return candidates.find((candidate) => (0, node_fs_1.existsSync)(node_path_1.default.resolve(remotionRoot, candidate)));
@@ -21,7 +21,7 @@ export declare const getCliOptions: (options: {
21
21
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
22
22
  stillFrame: number;
23
23
  browserExecutable: BrowserExecutable;
24
- logLevel: "error" | "verbose" | "info" | "warn";
24
+ logLevel: "verbose" | "info" | "warn" | "error";
25
25
  scale: number;
26
26
  chromiumOptions: ChromiumOptions;
27
27
  overwrite: boolean;
@@ -0,0 +1,2 @@
1
+ import type { LogLevel } from '@remotion/renderer';
2
+ export declare const handleCommonError: (err: Error, logLevel: LogLevel) => Promise<void>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleCommonError = void 0;
4
+ const chalk_1 = require("./chalk");
5
+ const log_1 = require("./log");
6
+ const print_error_1 = require("./print-error");
7
+ const truthy_1 = require("./truthy");
8
+ const handleCommonError = async (err, logLevel) => {
9
+ var _a;
10
+ await (0, print_error_1.printError)(err, logLevel);
11
+ if (err.message.includes('Could not play video with')) {
12
+ log_1.Log.info();
13
+ log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/media-playback-error');
14
+ }
15
+ if (err.message.includes('A delayRender()') &&
16
+ err.message.includes('was called but not cleared after')) {
17
+ log_1.Log.info();
18
+ log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/timeout');
19
+ }
20
+ if (err.message.includes('Target closed')) {
21
+ log_1.Log.info();
22
+ log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/target-closed');
23
+ }
24
+ if (err.message.includes('ENAMETOOLONG')) {
25
+ log_1.Log.info();
26
+ log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/enametoolong');
27
+ }
28
+ if (err.message.includes('Error creating WebGL context')) {
29
+ log_1.Log.info();
30
+ log_1.Log.warn('💡 You might need to set the OpenGL renderer to "angle" (or "swangle" if rendering on lambda). Learn why at https://www.remotion.dev/docs/three');
31
+ log_1.Log.warn("💡 Check how it's done at https://www.remotion.dev/docs/chromium-flags#--gl");
32
+ }
33
+ if (err.message.includes('The bucket does not allow ACLs')) {
34
+ log_1.Log.info();
35
+ log_1.Log.info(chalk_1.chalk.green('💡 Fix this issue https://remotion.dev/docs/lambda/troubleshooting/bucket-disallows-acl'));
36
+ }
37
+ if (err.message.includes('Minified React error #306')) {
38
+ const componentName = (_a = err.message.match(/<\w+>/)) === null || _a === void 0 ? void 0 : _a[0];
39
+ log_1.Log.info([
40
+ '💡 This error indicates that the component',
41
+ componentName ? `(${componentName})` : null,
42
+ 'you are trying to render is not imported correctly.',
43
+ ]
44
+ .filter(truthy_1.truthy)
45
+ .join(' '));
46
+ log_1.Log.info();
47
+ log_1.Log.info(' Check the root file and ensure that the component is not undefined.');
48
+ log_1.Log.info(' Oftentimes, this happens if the component is missing the `export` keyword');
49
+ log_1.Log.info(' or if the component was renamed and the import statement not properly adjusted.');
50
+ }
51
+ if (err.message.includes('GLIBC_')) {
52
+ log_1.Log.info('💡 Remotion requires at least Libc 2.35.');
53
+ log_1.Log.info('💡 Get help for this issue: https://github.com/remotion-dev/remotion/issues/2439');
54
+ }
55
+ if (err.message.includes('EBADF')) {
56
+ log_1.Log.info('💡 This error might be fixed by changing your Node version:');
57
+ log_1.Log.info(' https://github.com/remotion-dev/remotion/issues/2452');
58
+ }
59
+ };
60
+ exports.handleCommonError = handleCommonError;
package/dist/index.d.ts CHANGED
@@ -63,24 +63,24 @@ export declare const CliInternals: {
63
63
  verbose: (message?: any, ...optionalParams: any[]) => void;
64
64
  verboseAdvanced: (options: {
65
65
  indent: boolean;
66
- logLevel: "error" | "verbose" | "info" | "warn";
66
+ logLevel: "verbose" | "info" | "warn" | "error";
67
67
  } & {
68
68
  tag?: string | undefined;
69
69
  }, message?: any, ...optionalParams: any[]) => void;
70
70
  info: (message?: any, ...optionalParams: any[]) => void;
71
71
  infoAdvanced: (options: {
72
72
  indent: boolean;
73
- logLevel: "error" | "verbose" | "info" | "warn";
73
+ logLevel: "verbose" | "info" | "warn" | "error";
74
74
  }, message?: any, ...optionalParams: any[]) => void;
75
75
  warn: (message?: any, ...optionalParams: any[]) => void;
76
76
  warnAdvanced: (options: {
77
77
  indent: boolean;
78
- logLevel: "error" | "verbose" | "info" | "warn";
78
+ logLevel: "verbose" | "info" | "warn" | "error";
79
79
  }, message?: any, ...optionalParams: any[]) => void;
80
80
  error: (message?: any, ...optionalParams: any[]) => void;
81
81
  errorAdvanced: (options: {
82
82
  indent: boolean;
83
- logLevel: "error" | "verbose" | "info" | "warn";
83
+ logLevel: "verbose" | "info" | "warn" | "error";
84
84
  } & {
85
85
  tag?: string | undefined;
86
86
  }, message?: any, ...optionalParams: any[]) => void;
@@ -106,7 +106,7 @@ export declare const CliInternals: {
106
106
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
107
107
  stillFrame: number;
108
108
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
109
- logLevel: "error" | "verbose" | "info" | "warn";
109
+ logLevel: "verbose" | "info" | "warn" | "error";
110
110
  scale: number;
111
111
  chromiumOptions: import("@remotion/renderer").ChromiumOptions;
112
112
  overwrite: boolean;
@@ -189,7 +189,7 @@ export declare const CliInternals: {
189
189
  } & {
190
190
  _: string[];
191
191
  };
192
- printError: (err: Error, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
192
+ printError: (err: Error, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
193
193
  formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
194
194
  locale: string;
195
195
  bits?: boolean | undefined;
@@ -231,7 +231,7 @@ export declare const CliInternals: {
231
231
  };
232
232
  listOfRemotionPackages: string[];
233
233
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
234
- logLevel: "error" | "verbose" | "info" | "warn";
234
+ logLevel: "verbose" | "info" | "warn" | "error";
235
235
  }) => boolean;
236
236
  getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
237
237
  height: number | null;
@@ -246,7 +246,7 @@ export declare const CliInternals: {
246
246
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
247
247
  serveUrlOrWebpackUrl: string;
248
248
  indent: boolean;
249
- logLevel: "error" | "verbose" | "info" | "warn";
249
+ logLevel: "verbose" | "info" | "warn" | "error";
250
250
  serializedInputPropsWithCustomSchema: string;
251
251
  server: import("@remotion/renderer").RemotionServer;
252
252
  offthreadVideoCacheSizeInBytes: number | null;
package/dist/index.js CHANGED
@@ -62,6 +62,10 @@ const cli = async () => {
62
62
  if (command !== versions_1.VERSIONS_COMMAND) {
63
63
  await (0, versions_1.validateVersionsBeforeCommand)(remotionRoot);
64
64
  }
65
+ const isBun = typeof Bun !== 'undefined';
66
+ if (isBun) {
67
+ log_1.Log.warn('You are running Remotion with Bun. Visit https://remotion.dev/bun for known bugs and status updates.');
68
+ }
65
69
  const isStudio = command === 'studio' || command === 'preview';
66
70
  const errorSymbolicationLock = isStudio
67
71
  ? 0
@@ -36,12 +36,15 @@ const loadConfigFile = async (remotionRoot, configFileName, isJavascript) => {
36
36
  }
37
37
  process.exit(1);
38
38
  }
39
- const str = new TextDecoder().decode(result.outputFiles[0].contents);
39
+ let str = new TextDecoder().decode(result.outputFiles[0].contents);
40
40
  const currentCwd = process.cwd();
41
41
  // The config file is always executed from the Remotion root, if `process.cwd()` is being used. We cannot enforce this in worker threads used for testing
42
42
  if (node_worker_threads_1.isMainThread) {
43
43
  process.chdir(remotionRoot);
44
44
  }
45
+ if (process.env.PATCH_BUN_DEVELOPMENT) {
46
+ str = str.replace('@remotion/cli/config', './config');
47
+ }
45
48
  // Exectute the contents of the config file
46
49
  // eslint-disable-next-line no-eval
47
50
  eval(str);
package/dist/log.d.ts CHANGED
@@ -2,24 +2,24 @@ export declare const Log: {
2
2
  verbose: (message?: any, ...optionalParams: any[]) => void;
3
3
  verboseAdvanced: (options: {
4
4
  indent: boolean;
5
- logLevel: "error" | "verbose" | "info" | "warn";
5
+ logLevel: "verbose" | "info" | "warn" | "error";
6
6
  } & {
7
7
  tag?: string | undefined;
8
8
  }, message?: any, ...optionalParams: any[]) => void;
9
9
  info: (message?: any, ...optionalParams: any[]) => void;
10
10
  infoAdvanced: (options: {
11
11
  indent: boolean;
12
- logLevel: "error" | "verbose" | "info" | "warn";
12
+ logLevel: "verbose" | "info" | "warn" | "error";
13
13
  }, message?: any, ...optionalParams: any[]) => void;
14
14
  warn: (message?: any, ...optionalParams: any[]) => void;
15
15
  warnAdvanced: (options: {
16
16
  indent: boolean;
17
- logLevel: "error" | "verbose" | "info" | "warn";
17
+ logLevel: "verbose" | "info" | "warn" | "error";
18
18
  }, message?: any, ...optionalParams: any[]) => void;
19
19
  error: (message?: any, ...optionalParams: any[]) => void;
20
20
  errorAdvanced: (options: {
21
21
  indent: boolean;
22
- logLevel: "error" | "verbose" | "info" | "warn";
22
+ logLevel: "verbose" | "info" | "warn" | "error";
23
23
  } & {
24
24
  tag?: string | undefined;
25
25
  }, message?: any, ...optionalParams: any[]) => void;
@@ -1,4 +1,4 @@
1
- export type PackageManager = 'npm' | 'yarn' | 'pnpm';
1
+ export type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';
2
2
  type LockfilePath = {
3
3
  manager: PackageManager;
4
4
  path: string;
@@ -25,6 +25,12 @@ exports.lockFilePaths = [
25
25
  installCommand: 'pnpm i',
26
26
  startCommand: 'pnpm start',
27
27
  },
28
+ {
29
+ path: 'bun.lockb',
30
+ manager: 'bun',
31
+ installCommand: 'bun i',
32
+ startCommand: 'bun start',
33
+ },
28
34
  ];
29
35
  const getPackageManager = (remotionRoot, packageManager) => {
30
36
  if (packageManager) {
package/dist/upgrade.js CHANGED
@@ -17,6 +17,7 @@ const getUpgradeCommand = ({ manager, packages, version, }) => {
17
17
  npm: ['i', '--save-exact', ...pkgList],
18
18
  pnpm: ['i', '--save-exact', ...pkgList],
19
19
  yarn: ['add', '--exact', ...pkgList],
20
+ bun: ['i', ...pkgList],
20
21
  };
21
22
  return commands[manager];
22
23
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.37",
3
+ "version": "4.0.39",
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/media-utils": "4.0.37",
39
- "@remotion/player": "4.0.37",
40
- "remotion": "4.0.37",
41
- "@remotion/bundler": "4.0.37",
42
- "@remotion/renderer": "4.0.37"
38
+ "@remotion/bundler": "4.0.39",
39
+ "@remotion/media-utils": "4.0.39",
40
+ "@remotion/player": "4.0.39",
41
+ "@remotion/renderer": "4.0.39",
42
+ "remotion": "4.0.39"
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.21.4",
68
- "@remotion/tailwind": "4.0.37",
69
- "@remotion/zod-types": "4.0.37"
68
+ "@remotion/zod-types": "4.0.39",
69
+ "@remotion/tailwind": "4.0.39"
70
70
  },
71
71
  "keywords": [
72
72
  "remotion",