@remotion/cli 3.0.19 → 3.0.22

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.
@@ -25,6 +25,7 @@ const FramePersistor_1 = require("./FramePersistor");
25
25
  const GlobalKeybindings_1 = require("./GlobalKeybindings");
26
26
  const KeyboardShortcutsModal_1 = require("./KeyboardShortcutsModal");
27
27
  const NewComposition_1 = __importDefault(require("./NewComposition/NewComposition"));
28
+ const NoRegisterRoot_1 = require("./NoRegisterRoot");
28
29
  const UpdateModal_1 = require("./UpdateModal/UpdateModal");
29
30
  const background = {
30
31
  backgroundColor: colors_1.BACKGROUND,
@@ -34,10 +35,16 @@ const background = {
34
35
  flexDirection: 'column',
35
36
  position: 'absolute',
36
37
  };
37
- const Root = remotion_1.Internals.getRoot();
38
38
  const Editor = () => {
39
39
  const [emitter] = (0, react_1.useState)(() => new player_1.PlayerInternals.PlayerEmitter());
40
40
  const [size, setSizeState] = (0, react_1.useState)(() => (0, preview_size_1.loadPreviewSizeOption)());
41
+ const [Root, setRoot] = (0, react_1.useState)(() => remotion_1.Internals.getRoot());
42
+ const [waitForRoot] = (0, react_1.useState)(() => {
43
+ if (Root) {
44
+ return 0;
45
+ }
46
+ return (0, remotion_1.delayRender)('Waiting for registerRoot()');
47
+ });
41
48
  const [checkerboard, setCheckerboardState] = (0, react_1.useState)(() => (0, checkerboard_1.loadCheckerboardOption)());
42
49
  const setCheckerboard = (0, react_1.useCallback)((newValue) => {
43
50
  setCheckerboardState((prevState) => {
@@ -112,10 +119,17 @@ const Editor = () => {
112
119
  setSelectedModal: setModalContextType,
113
120
  };
114
121
  }, [modalContextType]);
115
- if (!Root) {
116
- throw new Error('Root has not been registered. ');
117
- }
118
- return ((0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(rich_timeline_1.RichTimelineContext.Provider, { value: richTimelineCtx, children: (0, jsx_runtime_1.jsx)(checkerboard_1.CheckerboardContext.Provider, { value: checkerboardCtx, children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeContext.Provider, { value: previewSizeCtx, children: (0, jsx_runtime_1.jsx)(modals_1.ModalsContext.Provider, { value: modalsContext, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.TimelineInOutContext.Provider, { value: timelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, { value: mediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, { value: setMediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEventEmitterContext.Provider, { value: emitter, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsxs)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: [(0, jsx_runtime_1.jsxs)("div", { style: background, children: [(0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}), (0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, {}), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] }), modalContextType &&
122
+ (0, react_1.useEffect)(() => {
123
+ if (Root) {
124
+ return;
125
+ }
126
+ const cleanup = remotion_1.Internals.waitForRoot((NewRoot) => {
127
+ setRoot(() => NewRoot);
128
+ (0, remotion_1.continueRender)(waitForRoot);
129
+ });
130
+ return () => cleanup();
131
+ }, [Root, waitForRoot]);
132
+ return ((0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(rich_timeline_1.RichTimelineContext.Provider, { value: richTimelineCtx, children: (0, jsx_runtime_1.jsx)(checkerboard_1.CheckerboardContext.Provider, { value: checkerboardCtx, children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeContext.Provider, { value: previewSizeCtx, children: (0, jsx_runtime_1.jsx)(modals_1.ModalsContext.Provider, { value: modalsContext, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.TimelineInOutContext.Provider, { value: timelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, { value: mediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, { value: setMediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEventEmitterContext.Provider, { value: emitter, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsxs)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: [(0, jsx_runtime_1.jsxs)("div", { style: background, children: [Root === null ? null : (0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}), Root === null ? ((0, jsx_runtime_1.jsx)(NoRegisterRoot_1.NoRegisterRoot, {})) : ((0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, {})), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] }), modalContextType &&
119
133
  modalContextType.type === 'new-comp' && ((0, jsx_runtime_1.jsx)(NewComposition_1.default, { initialCompType: modalContextType.compType })), modalContextType &&
120
134
  modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info })), modalContextType &&
121
135
  modalContextType.type === 'shortcuts' && ((0, jsx_runtime_1.jsx)(KeyboardShortcutsModal_1.KeyboardShortcuts, {}))] }) }) }) }) }) }) }) }) }) }) }) }) }) }));
@@ -12,6 +12,7 @@ const sidebar_1 = require("../state/sidebar");
12
12
  const timeline_ref_1 = require("../state/timeline-ref");
13
13
  const layout_1 = require("./layout");
14
14
  const MenuItem_1 = require("./Menu/MenuItem");
15
+ const MenuBuildIndicator_1 = require("./MenuBuildIndicator");
15
16
  const SizeSelector_1 = require("./SizeSelector");
16
17
  const TimelineInOutToggle_1 = require("./TimelineInOutToggle");
17
18
  const UpdateCheck_1 = require("./UpdateCheck");
@@ -28,10 +29,6 @@ const row = {
28
29
  const flex = {
29
30
  flex: 1,
30
31
  };
31
- const cwd = {
32
- fontSize: 13,
33
- opacity: 0.8,
34
- };
35
32
  const openExternal = (link) => {
36
33
  window.open(link, '_blank');
37
34
  };
@@ -484,6 +481,6 @@ const MenuToolbar = () => {
484
481
  }, [setSelected]);
485
482
  return ((0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", className: "css-reset", style: row, children: [structure.map((s) => {
486
483
  return ((0, jsx_runtime_1.jsx)(MenuItem_1.MenuItem, { selected: selected === s.id, onItemSelected: itemClicked, onItemHovered: itemHovered, id: s.id, label: s.label, onItemQuit: onItemQuit, menu: s, onPreviousMenu: onPreviousMenu, onNextMenu: onNextMenu, leaveLeftPadding: s.leaveLeftPadding }, s.id));
487
- }), (0, jsx_runtime_1.jsx)(UpdateCheck_1.UpdateCheck, {}), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)("div", { style: cwd, title: window.remotion_cwd, children: window.remotion_projectName })] }));
484
+ }), (0, jsx_runtime_1.jsx)(UpdateCheck_1.UpdateCheck, {}), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)(MenuBuildIndicator_1.MenuBuildIndicator, {})] }));
488
485
  };
489
486
  exports.MenuToolbar = MenuToolbar;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const NoRegisterRoot: React.FC;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoRegisterRoot = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const label = {
7
+ fontSize: 13,
8
+ color: 'white',
9
+ fontFamily: 'Arial, Helvetica, sans-serif',
10
+ };
11
+ const container = {
12
+ display: 'flex',
13
+ justifyContent: 'center',
14
+ alignItems: 'center',
15
+ flex: 1,
16
+ flexDirection: 'column',
17
+ textAlign: 'center',
18
+ lineHeight: 1.5,
19
+ };
20
+ const link = {
21
+ color: 'white',
22
+ textDecoration: 'none',
23
+ borderBottom: '1px solid',
24
+ };
25
+ const NoRegisterRoot = () => {
26
+ const [show, setShow] = (0, react_1.useState)(() => false);
27
+ (0, react_1.useEffect)(() => {
28
+ // Only show after 2 seconds so there is no flicker when the load is really fast
29
+ const timeout = setTimeout(() => {
30
+ setShow(true);
31
+ }, 2000);
32
+ return () => {
33
+ clearTimeout(timeout);
34
+ };
35
+ }, []);
36
+ if (!show) {
37
+ return null;
38
+ }
39
+ return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Waiting for registerRoot() to get called." }), (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["Learn more:", ' ', (0, jsx_runtime_1.jsx)("a", { target: '_blank', style: link, href: "https://www.remotion.dev/docs/register-root", children: "remotion.dev/docs/register-root" })] })] }));
40
+ };
41
+ exports.NoRegisterRoot = NoRegisterRoot;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { PackageManager } from '@remotion/bundler';
2
+ import { PackageManager } from '../../preview-server/get-package-manager';
3
3
  export declare type UpdateInfo = {
4
4
  currentVersion: string;
5
5
  latestVersion: string;
@@ -4,6 +4,8 @@ exports.lambdaCommand = void 0;
4
4
  const initialize_render_cli_1 = require("./initialize-render-cli");
5
5
  const log_1 = require("./log");
6
6
  const parse_command_line_1 = require("./parse-command-line");
7
+ const get_package_manager_1 = require("./preview-server/get-package-manager");
8
+ const update_available_1 = require("./preview-server/update-available");
7
9
  const lambdaCommand = async () => {
8
10
  try {
9
11
  const path = require.resolve('@remotion/lambda', {
@@ -15,11 +17,13 @@ const lambdaCommand = async () => {
15
17
  process.exit(0);
16
18
  }
17
19
  catch (err) {
20
+ const manager = (0, get_package_manager_1.getPackageManager)();
21
+ const installCommand = manager === 'unknown' ? 'npm i' : manager.installCommand;
18
22
  log_1.Log.error(err);
19
23
  log_1.Log.error('Remotion Lambda is not installed.');
20
24
  log_1.Log.info('');
21
25
  log_1.Log.info('You can install it using:');
22
- log_1.Log.info('npm i @remotion/lambda');
26
+ log_1.Log.info(`${installCommand} i @remotion/lambda@${(0, update_available_1.getRemotionVersion)()}`);
23
27
  process.exit(1);
24
28
  }
25
29
  };
@@ -3,7 +3,5 @@
3
3
  /// <reference types="node" />
4
4
  import { ReadStream } from 'fs';
5
5
  import { IncomingMessage, ServerResponse } from 'http';
6
- export declare function getHeaderFromRequest(req: IncomingMessage, name: string): string | string[] | undefined;
7
- export declare function getHeaderFromResponse(res: ServerResponse, name: string): string | number | string[] | undefined;
8
6
  export declare function setHeaderForResponse(res: ServerResponse, name: string, value: string | number): void;
9
7
  export declare function send(req: IncomingMessage, res: ServerResponse, bufferOtStream: ReadStream | string | Buffer, byteLength: number): void;
@@ -1,14 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.send = exports.setHeaderForResponse = exports.getHeaderFromResponse = exports.getHeaderFromRequest = void 0;
4
- function getHeaderFromRequest(req, name) {
5
- return req.headers[name];
6
- }
7
- exports.getHeaderFromRequest = getHeaderFromRequest;
8
- function getHeaderFromResponse(res, name) {
9
- return res.getHeader(name);
10
- }
11
- exports.getHeaderFromResponse = getHeaderFromResponse;
3
+ exports.send = exports.setHeaderForResponse = void 0;
12
4
  function setHeaderForResponse(res, name, value) {
13
5
  res.setHeader(name, typeof value === 'number' ? String(value) : value);
14
6
  }
@@ -132,7 +132,7 @@ function middleware(context) {
132
132
  /**
133
133
  * @type {{key: string, value: string | number}[]}
134
134
  */
135
- if (!(0, compatible_api_1.getHeaderFromResponse)(res, 'Content-Type')) {
135
+ if (!res.getHeader('Content-Type')) {
136
136
  // content-type name(like application/javascript; charset=utf-8) or false
137
137
  const contentType = renderer_1.RenderInternals.mime.contentType(path_1.default.extname(filename));
138
138
  // Only set content-type header if media type is known
@@ -141,10 +141,11 @@ function middleware(context) {
141
141
  (0, compatible_api_1.setHeaderForResponse)(res, 'Content-Type', contentType);
142
142
  }
143
143
  }
144
- if (!(0, compatible_api_1.getHeaderFromResponse)(res, 'Accept-Ranges')) {
144
+ if (!res.getHeader('Accept-Ranges')) {
145
+ res.setHeader('Accept-Ranges', 'bytes');
145
146
  (0, compatible_api_1.setHeaderForResponse)(res, 'Accept-Ranges', 'bytes');
146
147
  }
147
- const rangeHeader = (0, compatible_api_1.getHeaderFromRequest)(req, 'range');
148
+ const rangeHeader = req.headers.range;
148
149
  let start;
149
150
  let end;
150
151
  if (rangeHeader &&
@@ -1,2 +1,7 @@
1
1
  import { IncomingMessage, ServerResponse } from 'http';
2
- export declare const handleRoutes: (hash: string, request: IncomingMessage, response: ServerResponse) => void | Promise<void>;
2
+ export declare const handleRoutes: ({ hash, hashPrefix, request, response, }: {
3
+ hash: string;
4
+ hashPrefix: string;
5
+ request: IncomingMessage;
6
+ response: ServerResponse;
7
+ }) => void | Promise<void>;
@@ -20,6 +20,10 @@ const handleUpdate = async (_, response) => {
20
20
  response.end(JSON.stringify(data));
21
21
  };
22
22
  const editorGuess = (0, open_in_editor_1.guessEditor)();
23
+ const static404 = (response) => {
24
+ response.writeHead(404);
25
+ response.end('The static/ prefix has been changed, this URL is no longer valid.');
26
+ };
23
27
  const handleFallback = async (hash, _, response) => {
24
28
  const edit = await editorGuess;
25
29
  const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit[0]);
@@ -86,7 +90,7 @@ const handleOpenInEditor = async (req, res) => {
86
90
  }
87
91
  };
88
92
  const handleFavicon = (_, response) => {
89
- const filePath = path_1.default.join(__dirname, '..', 'web', 'favicon.png');
93
+ const filePath = path_1.default.join(__dirname, '..', '..', 'web', 'favicon.png');
90
94
  const stat = (0, fs_1.statSync)(filePath);
91
95
  response.writeHead(200, {
92
96
  'Content-Type': 'image/png',
@@ -95,7 +99,7 @@ const handleFavicon = (_, response) => {
95
99
  const readStream = (0, fs_1.createReadStream)(filePath);
96
100
  readStream.pipe(response);
97
101
  };
98
- const handleRoutes = (hash, request, response) => {
102
+ const handleRoutes = ({ hash, hashPrefix, request, response, }) => {
99
103
  const url = new URL(request.url, 'http://localhost');
100
104
  if (url.pathname === '/api/update') {
101
105
  return handleUpdate(request, response);
@@ -116,6 +120,9 @@ const handleRoutes = (hash, request, response) => {
116
120
  const root = path_1.default.join(process.cwd(), 'public');
117
121
  return (0, serve_static_1.serveStatic)(root, hash, request, response);
118
122
  }
123
+ if (url.pathname.startsWith(hashPrefix)) {
124
+ return static404(response);
125
+ }
119
126
  return handleFallback(hash, request, response);
120
127
  };
121
128
  exports.handleRoutes = handleRoutes;
@@ -32,7 +32,7 @@ const serveStatic = async function (root, hash, req, res) {
32
32
  const exists = (0, fs_1.existsSync)(path);
33
33
  if (!exists) {
34
34
  res.writeHead(404);
35
- res.write('Not found');
35
+ res.write(`${path} does not exist`);
36
36
  res.end();
37
37
  return;
38
38
  }
@@ -33,7 +33,8 @@ const startServer = async (entry, userDefinedComponent, options) => {
33
33
  ],
34
34
  });
35
35
  const compiler = (0, bundler_1.webpack)(config);
36
- const hash = `/static-${crypto_1.default.randomBytes(6).toString('hex')}`;
36
+ const hashPrefix = '/static-';
37
+ const hash = `${hashPrefix}${crypto_1.default.randomBytes(6).toString('hex')}`;
37
38
  const wdmMiddleware = (0, dev_middleware_1.wdm)(compiler);
38
39
  const whm = (0, hot_middleware_1.webpackHotMiddleware)(compiler);
39
40
  const server = http_1.default.createServer((request, response) => {
@@ -50,7 +51,7 @@ const startServer = async (entry, userDefinedComponent, options) => {
50
51
  });
51
52
  })
52
53
  .then(() => {
53
- (0, routes_1.handleRoutes)(hash, request, response);
54
+ (0, routes_1.handleRoutes)({ hash, hashPrefix, request, response });
54
55
  })
55
56
  .catch((err) => {
56
57
  response.setHeader('content-type', 'application/json');
package/dist/preview.js CHANGED
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.previewCommand = void 0;
7
- const bundler_1 = require("@remotion/bundler");
8
7
  const better_opn_1 = __importDefault(require("better-opn"));
9
8
  const path_1 = __importDefault(require("path"));
10
9
  const remotion_1 = require("remotion");
@@ -13,6 +12,7 @@ const get_input_props_1 = require("./get-input-props");
13
12
  const initialize_render_cli_1 = require("./initialize-render-cli");
14
13
  const log_1 = require("./log");
15
14
  const parse_command_line_1 = require("./parse-command-line");
15
+ const start_server_1 = require("./preview-server/start-server");
16
16
  const noop = () => undefined;
17
17
  const previewCommand = async () => {
18
18
  const file = parse_command_line_1.parsedCli._[1];
@@ -27,7 +27,7 @@ const previewCommand = async () => {
27
27
  await (0, initialize_render_cli_1.initializeRenderCli)('preview');
28
28
  const inputProps = (0, get_input_props_1.getInputProps)();
29
29
  const envVariables = await (0, get_env_1.getEnvironmentVariables)();
30
- const port = await bundler_1.BundlerInternals.startServer(path_1.default.resolve(__dirname, 'previewEntry.js'), fullPath, {
30
+ const port = await (0, start_server_1.startServer)(path_1.default.resolve(__dirname, 'previewEntry.js'), fullPath, {
31
31
  inputProps,
32
32
  envVariables,
33
33
  port: desiredPort,
@@ -18,11 +18,11 @@ const printHelp = () => {
18
18
  log_1.Log.info();
19
19
  log_1.Log.info('Available commands:');
20
20
  log_1.Log.info('');
21
- log_1.Log.info('remotion preview <index-file.ts>');
21
+ log_1.Log.info('remotion preview <entry-point.ts>');
22
22
  log_1.Log.info(chalk_1.default.gray('Start the preview server.'));
23
23
  printFlags([['--props', 'Pass input props as filename or as JSON']]);
24
24
  log_1.Log.info();
25
- log_1.Log.info('remotion render <index-file.ts> <comp-name> <output-file.mp4>');
25
+ log_1.Log.info('remotion render <entry-point.ts> <comp-name> <output-file.mp4>');
26
26
  log_1.Log.info(chalk_1.default.gray('Render video, audio or an image sequence.'));
27
27
  printFlags([
28
28
  ['--props', 'Pass input props as filename or as JSON'],
@@ -43,7 +43,7 @@ const printHelp = () => {
43
43
  ['--env-file', 'Specify a location for a dotenv file'],
44
44
  ]);
45
45
  log_1.Log.info();
46
- log_1.Log.info('remotion still <index-file.ts> <comp-name> <still.png>');
46
+ log_1.Log.info('remotion still <entry-point.ts> <comp-name> <still.png>');
47
47
  log_1.Log.info(chalk_1.default.gray('Render a still frame and save it as an image.'));
48
48
  printFlags([
49
49
  ['--frame', 'Which frame to render (default 0)'],
package/dist/upgrade.js CHANGED
@@ -4,12 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.upgrade = void 0;
7
- const bundler_1 = require("@remotion/bundler");
8
- const execa_1 = __importDefault(require("execa"));
7
+ const renderer_1 = require("@remotion/renderer");
9
8
  const fs_1 = __importDefault(require("fs"));
10
9
  const path_1 = __importDefault(require("path"));
11
10
  const remotion_1 = require("remotion");
11
+ const get_latest_remotion_version_1 = require("./get-latest-remotion-version");
12
12
  const log_1 = require("./log");
13
+ const get_package_manager_1 = require("./preview-server/get-package-manager");
13
14
  const getUpgradeCommand = ({ manager, packages, version, }) => {
14
15
  const pkgList = packages.map((p) => `${p}@^${version}`);
15
16
  const commands = {
@@ -28,10 +29,10 @@ const upgrade = async () => {
28
29
  }
29
30
  const packageJson = require(packageJsonFilePath);
30
31
  const dependencies = Object.keys(packageJson.dependencies);
31
- const latestRemotionVersion = await bundler_1.BundlerInternals.getLatestRemotionVersion();
32
- const manager = bundler_1.BundlerInternals.getPackageManager();
32
+ const latestRemotionVersion = await (0, get_latest_remotion_version_1.getLatestRemotionVersion)();
33
+ const manager = (0, get_package_manager_1.getPackageManager)();
33
34
  if (manager === 'unknown') {
34
- throw new Error(`No lockfile was found in your project (one of ${bundler_1.BundlerInternals.lockFilePaths
35
+ throw new Error(`No lockfile was found in your project (one of ${get_package_manager_1.lockFilePaths
35
36
  .map((p) => p.path)
36
37
  .join(', ')}). Install dependencies using your favorite manager!`);
37
38
  }
@@ -48,8 +49,8 @@ const upgrade = async () => {
48
49
  '@remotion/gif',
49
50
  'remotion',
50
51
  ].filter((u) => dependencies.includes(u));
51
- const prom = (0, execa_1.default)(manager, getUpgradeCommand({
52
- manager,
52
+ const prom = renderer_1.RenderInternals.execa(manager.manager, getUpgradeCommand({
53
+ manager: manager.manager,
53
54
  packages: toUpgrade,
54
55
  version: latestRemotionVersion,
55
56
  }), {
package/dist/versions.js CHANGED
@@ -17,6 +17,7 @@ const packages = [
17
17
  '@remotion/media-utils',
18
18
  '@remotion/babel-loader',
19
19
  '@remotion/lambda',
20
+ '@remotion/preload',
20
21
  '@remotion/three',
21
22
  '@remotion/gif',
22
23
  'remotion',
@@ -82,6 +83,8 @@ const versionsCommand = async () => {
82
83
  const versions = await getAllVersions();
83
84
  const grouped = groupBy(versions);
84
85
  const installedVersions = Object.keys(grouped);
86
+ log_1.Log.info(`Node.JS = ${process.version}, OS = ${process.platform}`);
87
+ log_1.Log.info();
85
88
  for (const version of installedVersions) {
86
89
  log_1.Log.info(`On version: ${version}`);
87
90
  for (const pkg of grouped[version]) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "3.0.19",
3
+ "version": "3.0.22",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -23,17 +23,18 @@
23
23
  "author": "Jonny Burger <jonny@remotion.dev>",
24
24
  "license": "SEE LICENSE IN LICENSE.md",
25
25
  "dependencies": {
26
- "@remotion/bundler": "3.0.19",
27
- "@remotion/media-utils": "3.0.19",
28
- "@remotion/player": "3.0.19",
29
- "@remotion/renderer": "3.0.19",
26
+ "@remotion/bundler": "3.0.22",
27
+ "@remotion/media-utils": "3.0.22",
28
+ "@remotion/player": "3.0.22",
29
+ "@remotion/renderer": "3.0.22",
30
30
  "better-opn": "2.1.1",
31
31
  "chalk": "4.1.2",
32
32
  "dotenv": "9.0.2",
33
- "execa": "5.1.1",
33
+ "memfs": "3.4.3",
34
34
  "minimist": "1.2.6",
35
- "remotion": "3.0.19",
36
- "semver": "7.3.5"
35
+ "remotion": "3.0.22",
36
+ "semver": "7.3.5",
37
+ "source-map": "0.6.1"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "react": ">=16.8.0",
@@ -46,6 +47,8 @@
46
47
  "@types/node": "^16.7.5",
47
48
  "@types/react": "18.0.1",
48
49
  "@types/react-dom": "18.0.0",
50
+ "@types/semver": "^7.3.4",
51
+ "@types/webpack-env": "^1.16.0",
49
52
  "@typescript-eslint/eslint-plugin": "5.18.0",
50
53
  "@typescript-eslint/parser": "5.18.0",
51
54
  "eslint": "8.13.0",
@@ -71,5 +74,5 @@
71
74
  "publishConfig": {
72
75
  "access": "public"
73
76
  },
74
- "gitHead": "388ef0a2eacf9dbadbc860fdb8d6b3e32acb10f3"
77
+ "gitHead": "e79cfa299f58a26c84a637174875941898cdab97"
75
78
  }
Binary file