@remotion/cli 4.0.0-fastlambda.8 → 4.0.0-lambda.1
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/bundle-on-cli.d.ts +2 -0
- package/dist/bundle-on-cli.js +41 -0
- package/dist/bundle.d.ts +1 -0
- package/dist/bundle.js +31 -0
- package/dist/compositions.js +14 -3
- package/dist/download-progress.js +4 -1
- package/dist/editor/components/AudioWaveform.js +2 -2
- package/dist/editor/components/AudioWaveformBar.js +1 -1
- package/dist/editor/components/Canvas.js +1 -1
- package/dist/editor/components/CheckboardToggle.js +1 -1
- package/dist/editor/components/ClipboardIcon.js +1 -1
- package/dist/editor/components/CollapsedCompositionSelector.d.ts +4 -0
- package/dist/editor/components/CollapsedCompositionSelector.js +39 -0
- package/dist/editor/components/CompositionSelector.js +5 -45
- package/dist/editor/components/CompositionSelectorItem.js +3 -3
- package/dist/editor/components/ControlButton.js +1 -1
- package/dist/editor/components/CopyButton.js +2 -2
- package/dist/editor/components/CurrentComposition.js +2 -2
- package/dist/editor/components/Editor.js +24 -8
- package/dist/editor/components/EditorContent.js +3 -2
- package/dist/editor/components/FpsCounter.js +1 -1
- package/dist/editor/components/InitialCompositionLoader.d.ts +4 -0
- package/dist/editor/components/InitialCompositionLoader.js +60 -0
- package/dist/editor/components/KeyboardShortcutsModal.js +1 -1
- package/dist/editor/components/LoadingIndicator.js +1 -1
- package/dist/editor/components/LoopToggle.js +1 -1
- package/dist/editor/components/Menu/MenuDivider.js +1 -1
- package/dist/editor/components/Menu/MenuItem.js +3 -3
- package/dist/editor/components/Menu/MenuSubItem.js +3 -3
- package/dist/editor/components/Menu/SubMenu.js +1 -1
- package/dist/editor/components/MenuBuildIndicator.d.ts +2 -0
- package/dist/editor/components/MenuBuildIndicator.js +26 -0
- package/dist/editor/components/MenuToolbar.js +69 -9
- package/dist/editor/components/ModalContainer.js +1 -1
- package/dist/editor/components/ModalHeader.js +1 -1
- package/dist/editor/components/MuteToggle.js +1 -1
- package/dist/editor/components/NewComposition/CancelButton.js +1 -1
- package/dist/editor/components/NewComposition/ComboBox.js +3 -3
- package/dist/editor/components/NewComposition/CopyHint.js +1 -1
- package/dist/editor/components/NewComposition/InputDragger.js +2 -2
- package/dist/editor/components/NewComposition/MenuContent.js +1 -1
- package/dist/editor/components/NewComposition/NewCompAspectRatio.js +1 -1
- package/dist/editor/components/NewComposition/NewCompDuration.js +1 -1
- package/dist/editor/components/NewComposition/NewComposition.js +4 -4
- package/dist/editor/components/NewComposition/RemInput.js +1 -1
- package/dist/editor/components/NewComposition/ToggleAspectRatio.js +1 -1
- package/dist/editor/components/NewComposition/ValidationMessage.js +2 -2
- package/dist/editor/components/NoRegisterRoot.d.ts +2 -0
- package/dist/editor/components/NoRegisterRoot.js +41 -0
- package/dist/editor/components/PlayPause.js +40 -11
- package/dist/editor/components/PlaybackRateSelector.js +2 -2
- package/dist/editor/components/Preview.js +10 -7
- package/dist/editor/components/PreviewToolbar.js +1 -1
- package/dist/editor/components/RichTimelineToggle.js +1 -1
- package/dist/editor/components/SizeSelector.js +2 -2
- package/dist/editor/components/Splitter/SplitterContainer.js +1 -1
- package/dist/editor/components/Splitter/SplitterElement.js +4 -2
- package/dist/editor/components/Splitter/SplitterHandle.d.ts +4 -1
- package/dist/editor/components/Splitter/SplitterHandle.js +28 -7
- package/dist/editor/components/Thumbnail.js +1 -1
- package/dist/editor/components/TimeValue.js +1 -1
- package/dist/editor/components/Timeline/LoopedIndicator.js +2 -2
- package/dist/editor/components/Timeline/LoopedTimelineIndicators.js +3 -3
- package/dist/editor/components/Timeline/MaxTimelineTracks.js +1 -1
- package/dist/editor/components/Timeline/Timeline.js +2 -1
- package/dist/editor/components/Timeline/TimelineCollapseToggle.js +2 -2
- package/dist/editor/components/Timeline/TimelineDragHandler.js +1 -1
- package/dist/editor/components/Timeline/TimelineInOutPointer.js +2 -2
- package/dist/editor/components/Timeline/TimelineInOutPointerHandle.js +1 -1
- package/dist/editor/components/Timeline/TimelineList.js +1 -1
- package/dist/editor/components/Timeline/TimelineListItem.js +1 -1
- package/dist/editor/components/Timeline/TimelineSequence.js +1 -1
- package/dist/editor/components/Timeline/TimelineSequenceFrame.js +1 -1
- package/dist/editor/components/Timeline/TimelineSlider.js +1 -1
- package/dist/editor/components/Timeline/TimelineSliderHandle.js +1 -1
- package/dist/editor/components/Timeline/TimelineTracks.js +2 -2
- package/dist/editor/components/Timeline/TimelineVideoInfo.js +1 -1
- package/dist/editor/components/TimelineInOutToggle.js +1 -1
- package/dist/editor/components/TopPanel.js +24 -1
- package/dist/editor/components/UpdateCheck.d.ts +1 -1
- package/dist/editor/components/UpdateCheck.js +1 -1
- package/dist/editor/components/UpdateModal/UpdateModal.js +1 -1
- package/dist/editor/components/layout.js +4 -4
- package/dist/editor/helpers/use-compact-ui.d.ts +1 -0
- package/dist/editor/helpers/use-compact-ui.js +18 -0
- package/dist/editor/icons/Checkmark.js +1 -1
- package/dist/editor/icons/caret.d.ts +1 -1
- package/dist/editor/icons/caret.js +4 -4
- package/dist/editor/icons/film.js +1 -1
- package/dist/editor/icons/folder.js +2 -2
- package/dist/editor/icons/jump-to-start.d.ts +2 -0
- package/dist/editor/icons/jump-to-start.js +8 -0
- package/dist/editor/icons/keys.js +3 -3
- package/dist/editor/icons/lock.js +2 -2
- package/dist/editor/icons/media-volume.js +2 -2
- package/dist/editor/icons/pause.js +1 -1
- package/dist/editor/icons/play.js +1 -1
- package/dist/editor/icons/step-back.js +1 -1
- package/dist/editor/icons/step-forward.js +1 -1
- package/dist/editor/icons/still.js +1 -1
- package/dist/editor/icons/timeline.js +1 -1
- package/dist/editor/icons/timelineInOutPointer.js +2 -2
- package/dist/editor/state/folders.d.ts +11 -0
- package/dist/editor/state/folders.js +23 -0
- package/dist/editor/state/highest-z-index.js +2 -2
- package/dist/editor/state/keybindings.js +1 -1
- package/dist/editor/state/sidebar.d.ts +12 -0
- package/dist/editor/state/sidebar.js +40 -0
- package/dist/editor/state/z-index.js +1 -1
- package/dist/get-cli-options.d.ts +3 -1
- package/dist/get-cli-options.js +8 -2
- package/dist/get-latest-remotion-version.d.ts +1 -0
- package/dist/get-latest-remotion-version.js +31 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +5 -1
- package/dist/lambda-command.js +5 -1
- package/dist/parse-command-line.d.ts +1 -0
- package/dist/parse-command-line.js +6 -0
- package/dist/prepare-entry-point.d.ts +11 -0
- package/dist/prepare-entry-point.js +36 -0
- package/dist/preview-server/dev-middleware/compatible-api.d.ts +7 -0
- package/dist/preview-server/dev-middleware/compatible-api.js +20 -0
- package/dist/preview-server/dev-middleware/get-paths.d.ts +7 -0
- package/dist/preview-server/dev-middleware/get-paths.js +19 -0
- package/dist/preview-server/dev-middleware/index.d.ts +3 -0
- package/dist/preview-server/dev-middleware/index.js +27 -0
- package/dist/preview-server/dev-middleware/is-color-supported.d.ts +1 -0
- package/dist/preview-server/dev-middleware/is-color-supported.js +37 -0
- package/dist/preview-server/dev-middleware/middleware.d.ts +10 -0
- package/dist/preview-server/dev-middleware/middleware.js +224 -0
- package/dist/preview-server/dev-middleware/range-parser.d.ts +15 -0
- package/dist/preview-server/dev-middleware/range-parser.js +96 -0
- package/dist/preview-server/dev-middleware/ready.d.ts +3 -0
- package/dist/preview-server/dev-middleware/ready.js +11 -0
- package/dist/preview-server/dev-middleware/setup-hooks.d.ts +2 -0
- package/dist/preview-server/dev-middleware/setup-hooks.js +42 -0
- package/dist/preview-server/dev-middleware/setup-output-filesystem.d.ts +2 -0
- package/dist/preview-server/dev-middleware/setup-output-filesystem.js +13 -0
- package/dist/preview-server/dev-middleware/types.d.ts +10 -0
- package/dist/preview-server/dev-middleware/types.js +2 -0
- package/dist/preview-server/error-overlay/entry-basic.d.ts +1 -0
- package/dist/preview-server/error-overlay/entry-basic.js +21 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/format-warning.d.ts +11 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/format-warning.js +41 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts +7 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/map-error-to-react-stack.js +46 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/proxy-console.d.ts +24 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/proxy-console.js +64 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/resolve-file-source.d.ts +3 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/resolve-file-source.js +31 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/stack-trace-limit.d.ts +3 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/stack-trace-limit.js +43 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-error.d.ts +4 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-error.js +45 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-rejection.d.ts +4 -0
- package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-rejection.js +41 -0
- package/dist/preview-server/error-overlay/react-overlay/index.d.ts +2 -0
- package/dist/preview-server/error-overlay/react-overlay/index.js +21 -0
- package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.d.ts +8 -0
- package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.js +79 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.d.ts +1 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.js +21 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-lines-around.d.ts +14 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-lines-around.js +24 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-source-map.d.ts +13 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-source-map.js +58 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-stack-frames.d.ts +2 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/get-stack-frames.js +27 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.d.ts +12 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.js +460 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/parser.d.ts +2 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/parser.js +117 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/stack-frame.d.ts +40 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/stack-frame.js +31 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/unmapper.d.ts +2 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/unmapper.js +64 -0
- package/dist/preview-server/error-overlay/remotion-overlay/AskOnDiscord.d.ts +2 -0
- package/dist/preview-server/error-overlay/remotion-overlay/AskOnDiscord.js +14 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Button.d.ts +6 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Button.js +24 -0
- package/dist/preview-server/error-overlay/remotion-overlay/CodeFrame.d.ts +6 -0
- package/dist/preview-server/error-overlay/remotion-overlay/CodeFrame.js +28 -0
- package/dist/preview-server/error-overlay/remotion-overlay/DismissButton.d.ts +2 -0
- package/dist/preview-server/error-overlay/remotion-overlay/DismissButton.js +23 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.d.ts +5 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.js +45 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.d.ts +4 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.js +61 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.d.ts +6 -0
- package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.js +41 -0
- package/dist/preview-server/error-overlay/remotion-overlay/OpenInEditor.d.ts +5 -0
- package/dist/preview-server/error-overlay/remotion-overlay/OpenInEditor.js +91 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Overlay.d.ts +14 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Overlay.js +49 -0
- package/dist/preview-server/error-overlay/remotion-overlay/SearchGitHubIssues.d.ts +4 -0
- package/dist/preview-server/error-overlay/remotion-overlay/SearchGitHubIssues.js +13 -0
- package/dist/preview-server/error-overlay/remotion-overlay/StackFrame.d.ts +8 -0
- package/dist/preview-server/error-overlay/remotion-overlay/StackFrame.js +48 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Symbolicating.d.ts +2 -0
- package/dist/preview-server/error-overlay/remotion-overlay/Symbolicating.js +8 -0
- package/dist/preview-server/error-overlay/remotion-overlay/carets.d.ts +3 -0
- package/dist/preview-server/error-overlay/remotion-overlay/carets.js +12 -0
- package/dist/preview-server/error-overlay/remotion-overlay/format-location.d.ts +1 -0
- package/dist/preview-server/error-overlay/remotion-overlay/format-location.js +10 -0
- package/dist/preview-server/error-overlay/remotion-overlay/index.d.ts +1 -0
- package/dist/preview-server/error-overlay/remotion-overlay/index.js +18 -0
- package/dist/preview-server/get-package-manager.d.ts +9 -0
- package/dist/preview-server/get-package-manager.js +40 -0
- package/dist/preview-server/hot-middleware/client.d.ts +19 -0
- package/dist/preview-server/hot-middleware/client.js +177 -0
- package/dist/preview-server/hot-middleware/index.d.ts +8 -0
- package/dist/preview-server/hot-middleware/index.js +150 -0
- package/dist/preview-server/hot-middleware/process-update.d.ts +12 -0
- package/dist/preview-server/hot-middleware/process-update.js +144 -0
- package/dist/preview-server/hot-middleware/strip-ansi.d.ts +1 -0
- package/dist/preview-server/hot-middleware/strip-ansi.js +21 -0
- package/dist/preview-server/hot-middleware/types.d.ts +27 -0
- package/dist/preview-server/hot-middleware/types.js +10 -0
- package/dist/preview-server/project-info.d.ts +5 -0
- package/dist/preview-server/project-info.js +22 -0
- package/dist/preview-server/routes.d.ts +7 -0
- package/dist/preview-server/routes.js +128 -0
- package/dist/preview-server/serve-static.d.ts +9 -0
- package/dist/preview-server/serve-static.js +77 -0
- package/dist/preview-server/start-server.d.ts +8 -0
- package/dist/preview-server/start-server.js +69 -0
- package/dist/preview-server/update-available.d.ts +11 -0
- package/dist/preview-server/update-available.js +44 -0
- package/dist/preview.js +2 -2
- package/dist/previewEntry.js +2 -2
- package/dist/print-error.js +1 -0
- package/dist/print-help.js +3 -3
- package/dist/render.js +30 -24
- package/dist/still.js +46 -15
- package/dist/upgrade.js +9 -7
- package/dist/versions.js +3 -0
- package/dist/webpack-cache.d.ts +12 -0
- package/dist/webpack-cache.js +66 -0
- package/package.json +12 -10
- package/web/favicon.png +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleRoutes = void 0;
|
|
7
|
+
const bundler_1 = require("@remotion/bundler");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const url_1 = require("url");
|
|
11
|
+
const get_file_source_1 = require("./error-overlay/react-overlay/utils/get-file-source");
|
|
12
|
+
const open_in_editor_1 = require("./error-overlay/react-overlay/utils/open-in-editor");
|
|
13
|
+
const project_info_1 = require("./project-info");
|
|
14
|
+
const serve_static_1 = require("./serve-static");
|
|
15
|
+
const update_available_1 = require("./update-available");
|
|
16
|
+
const handleUpdate = async (_, response) => {
|
|
17
|
+
const data = await (0, update_available_1.isUpdateAvailableWithTimeout)();
|
|
18
|
+
response.setHeader('content-type', 'application/json');
|
|
19
|
+
response.writeHead(200);
|
|
20
|
+
response.end(JSON.stringify(data));
|
|
21
|
+
};
|
|
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
|
+
};
|
|
27
|
+
const handleFallback = async (hash, _, response) => {
|
|
28
|
+
const edit = await editorGuess;
|
|
29
|
+
const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit[0]);
|
|
30
|
+
response.setHeader('content-type', 'text/html');
|
|
31
|
+
response.writeHead(200);
|
|
32
|
+
response.end(bundler_1.BundlerInternals.indexHtml(hash, '/', displayName));
|
|
33
|
+
};
|
|
34
|
+
const handleProjectInfo = async (_, response) => {
|
|
35
|
+
const data = await (0, project_info_1.getProjectInfo)();
|
|
36
|
+
response.setHeader('content-type', 'application/json');
|
|
37
|
+
response.writeHead(200);
|
|
38
|
+
response.end(JSON.stringify(data));
|
|
39
|
+
};
|
|
40
|
+
const handleFileSource = async (search, _, response) => {
|
|
41
|
+
if (!search.startsWith('?')) {
|
|
42
|
+
throw new Error('query must start with ?');
|
|
43
|
+
}
|
|
44
|
+
const query = new url_1.URLSearchParams(search);
|
|
45
|
+
const f = query.get('f');
|
|
46
|
+
if (typeof f !== 'string') {
|
|
47
|
+
throw new Error('must pass `f` parameter');
|
|
48
|
+
}
|
|
49
|
+
const data = await (0, get_file_source_1.getFileSource)(decodeURIComponent(f));
|
|
50
|
+
response.writeHead(200);
|
|
51
|
+
response.write(data);
|
|
52
|
+
return response.end();
|
|
53
|
+
};
|
|
54
|
+
const handleOpenInEditor = async (req, res) => {
|
|
55
|
+
try {
|
|
56
|
+
const b = await new Promise((_resolve) => {
|
|
57
|
+
let data = '';
|
|
58
|
+
req.on('data', (chunk) => {
|
|
59
|
+
data += chunk;
|
|
60
|
+
});
|
|
61
|
+
req.on('end', () => {
|
|
62
|
+
_resolve(data.toString());
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
const body = JSON.parse(b);
|
|
66
|
+
if (!('stack' in body)) {
|
|
67
|
+
throw new TypeError('Need to pass stack');
|
|
68
|
+
}
|
|
69
|
+
const stack = body.stack;
|
|
70
|
+
const guess = await editorGuess;
|
|
71
|
+
const didOpen = await (0, open_in_editor_1.launchEditor)({
|
|
72
|
+
colNumber: stack.originalColumnNumber,
|
|
73
|
+
editor: guess[0],
|
|
74
|
+
fileName: path_1.default.resolve(process.cwd(), stack.originalFileName),
|
|
75
|
+
lineNumber: stack.originalLineNumber,
|
|
76
|
+
vsCodeNewWindow: false,
|
|
77
|
+
});
|
|
78
|
+
res.setHeader('content-type', 'application/json');
|
|
79
|
+
res.writeHead(200);
|
|
80
|
+
res.end(JSON.stringify({
|
|
81
|
+
success: didOpen,
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
res.setHeader('content-type', 'application/json');
|
|
86
|
+
res.writeHead(200);
|
|
87
|
+
res.end(JSON.stringify({
|
|
88
|
+
success: false,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const handleFavicon = (_, response) => {
|
|
93
|
+
const filePath = path_1.default.join(__dirname, '..', '..', 'web', 'favicon.png');
|
|
94
|
+
const stat = (0, fs_1.statSync)(filePath);
|
|
95
|
+
response.writeHead(200, {
|
|
96
|
+
'Content-Type': 'image/png',
|
|
97
|
+
'Content-Length': stat.size,
|
|
98
|
+
});
|
|
99
|
+
const readStream = (0, fs_1.createReadStream)(filePath);
|
|
100
|
+
readStream.pipe(response);
|
|
101
|
+
};
|
|
102
|
+
const handleRoutes = ({ hash, hashPrefix, request, response, }) => {
|
|
103
|
+
const url = new URL(request.url, 'http://localhost');
|
|
104
|
+
if (url.pathname === '/api/update') {
|
|
105
|
+
return handleUpdate(request, response);
|
|
106
|
+
}
|
|
107
|
+
if (url.pathname === '/api/project-info') {
|
|
108
|
+
return handleProjectInfo(request, response);
|
|
109
|
+
}
|
|
110
|
+
if (url.pathname === '/api/file-source') {
|
|
111
|
+
return handleFileSource(url.search, request, response);
|
|
112
|
+
}
|
|
113
|
+
if (url.pathname === '/api/open-in-editor') {
|
|
114
|
+
return handleOpenInEditor(request, response);
|
|
115
|
+
}
|
|
116
|
+
if (url.pathname === '/remotion.png') {
|
|
117
|
+
return handleFavicon(request, response);
|
|
118
|
+
}
|
|
119
|
+
if (url.pathname.startsWith(hash)) {
|
|
120
|
+
const root = path_1.default.join(process.cwd(), 'public');
|
|
121
|
+
return (0, serve_static_1.serveStatic)(root, hash, request, response);
|
|
122
|
+
}
|
|
123
|
+
if (url.pathname.startsWith(hashPrefix)) {
|
|
124
|
+
return static404(response);
|
|
125
|
+
}
|
|
126
|
+
return handleFallback(hash, request, response);
|
|
127
|
+
};
|
|
128
|
+
exports.handleRoutes = handleRoutes;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* serve-static
|
|
3
|
+
* Copyright(c) 2010 Sencha Inc.
|
|
4
|
+
* Copyright(c) 2011 TJ Holowaychuk
|
|
5
|
+
* Copyright(c) 2014-2016 Douglas Christopher Wilson
|
|
6
|
+
* MIT Licensed
|
|
7
|
+
*/
|
|
8
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
9
|
+
export declare const serveStatic: (root: string, hash: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* serve-static
|
|
4
|
+
* Copyright(c) 2010 Sencha Inc.
|
|
5
|
+
* Copyright(c) 2011 TJ Holowaychuk
|
|
6
|
+
* Copyright(c) 2014-2016 Douglas Christopher Wilson
|
|
7
|
+
* MIT Licensed
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.serveStatic = void 0;
|
|
11
|
+
const renderer_1 = require("@remotion/renderer");
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const middleware_1 = require("./dev-middleware/middleware");
|
|
15
|
+
const range_parser_1 = require("./dev-middleware/range-parser");
|
|
16
|
+
const serveStatic = async function (root, hash, req, res) {
|
|
17
|
+
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
18
|
+
// method not allowed
|
|
19
|
+
res.statusCode = 405;
|
|
20
|
+
res.setHeader('Allow', 'GET, HEAD');
|
|
21
|
+
res.setHeader('Content-Length', '0');
|
|
22
|
+
res.end();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const path = (0, path_1.join)(root, new URL(req.url, 'http://localhost').pathname.replace(new RegExp(`^${hash}`), ''));
|
|
26
|
+
if (!renderer_1.RenderInternals.isPathInside(path, root)) {
|
|
27
|
+
res.writeHead(500);
|
|
28
|
+
res.write('Not allowed to read');
|
|
29
|
+
res.end();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const exists = (0, fs_1.existsSync)(path);
|
|
33
|
+
if (!exists) {
|
|
34
|
+
res.writeHead(404);
|
|
35
|
+
res.write(`${path} does not exist`);
|
|
36
|
+
res.end();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const lstat = await fs_1.promises.lstat(path);
|
|
40
|
+
const isDirectory = lstat.isDirectory();
|
|
41
|
+
if (isDirectory) {
|
|
42
|
+
res.writeHead(500);
|
|
43
|
+
res.write('Is a directory');
|
|
44
|
+
res.end();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const hasRange = req.headers.range && lstat.size;
|
|
48
|
+
if (!hasRange) {
|
|
49
|
+
const readStream = (0, fs_1.createReadStream)(path);
|
|
50
|
+
res.setHeader('content-type', renderer_1.RenderInternals.mime.lookup(path) || 'application/octet-stream');
|
|
51
|
+
res.setHeader('content-length', lstat.size);
|
|
52
|
+
res.writeHead(200);
|
|
53
|
+
readStream.pipe(res);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const range = (0, range_parser_1.parseRange)(lstat.size, req.headers.range);
|
|
57
|
+
if (typeof range === 'object' && range.type === 'bytes') {
|
|
58
|
+
const { start, end } = range[0];
|
|
59
|
+
res.setHeader('content-type', renderer_1.RenderInternals.mime.lookup(path) || 'application/octet-stream');
|
|
60
|
+
res.setHeader('content-range', (0, middleware_1.getValueContentRangeHeader)('bytes', lstat.size, {
|
|
61
|
+
end,
|
|
62
|
+
start,
|
|
63
|
+
}));
|
|
64
|
+
res.setHeader('content-length', end - start + 1);
|
|
65
|
+
res.writeHead(206);
|
|
66
|
+
const readStream = (0, fs_1.createReadStream)(path, {
|
|
67
|
+
start,
|
|
68
|
+
end,
|
|
69
|
+
});
|
|
70
|
+
readStream.pipe(res);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
res.statusCode = 416;
|
|
74
|
+
res.setHeader('Content-Range', `bytes */${lstat.size}`);
|
|
75
|
+
res.end();
|
|
76
|
+
};
|
|
77
|
+
exports.serveStatic = serveStatic;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebpackOverrideFn } from 'remotion';
|
|
2
|
+
export declare const startServer: (entry: string, userDefinedComponent: string, options?: {
|
|
3
|
+
webpackOverride?: WebpackOverrideFn;
|
|
4
|
+
inputProps?: object;
|
|
5
|
+
envVariables?: Record<string, string>;
|
|
6
|
+
port: number | null;
|
|
7
|
+
maxTimelineTracks?: number;
|
|
8
|
+
}) => Promise<number>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.startServer = void 0;
|
|
7
|
+
const bundler_1 = require("@remotion/bundler");
|
|
8
|
+
const renderer_1 = require("@remotion/renderer");
|
|
9
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const http_1 = __importDefault(require("http"));
|
|
12
|
+
const os_1 = __importDefault(require("os"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const remotion_1 = require("remotion");
|
|
15
|
+
const dev_middleware_1 = require("./dev-middleware");
|
|
16
|
+
const hot_middleware_1 = require("./hot-middleware");
|
|
17
|
+
const routes_1 = require("./routes");
|
|
18
|
+
const startServer = async (entry, userDefinedComponent, options) => {
|
|
19
|
+
var _a, _b, _c, _d, _e;
|
|
20
|
+
const tmpDir = await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-graphics'));
|
|
21
|
+
const config = bundler_1.BundlerInternals.webpackConfig({
|
|
22
|
+
entry,
|
|
23
|
+
userDefinedComponent,
|
|
24
|
+
outDir: tmpDir,
|
|
25
|
+
environment: 'development',
|
|
26
|
+
webpackOverride: (_a = options === null || options === void 0 ? void 0 : options.webpackOverride) !== null && _a !== void 0 ? _a : remotion_1.Internals.getWebpackOverrideFn(),
|
|
27
|
+
inputProps: (_b = options === null || options === void 0 ? void 0 : options.inputProps) !== null && _b !== void 0 ? _b : {},
|
|
28
|
+
envVariables: (_c = options === null || options === void 0 ? void 0 : options.envVariables) !== null && _c !== void 0 ? _c : {},
|
|
29
|
+
maxTimelineTracks: (_d = options === null || options === void 0 ? void 0 : options.maxTimelineTracks) !== null && _d !== void 0 ? _d : 15,
|
|
30
|
+
entryPoints: [
|
|
31
|
+
require.resolve('./hot-middleware/client'),
|
|
32
|
+
require.resolve('./error-overlay/entry-basic.js'),
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
const compiler = (0, bundler_1.webpack)(config);
|
|
36
|
+
const hashPrefix = '/static-';
|
|
37
|
+
const hash = `${hashPrefix}${crypto_1.default.randomBytes(6).toString('hex')}`;
|
|
38
|
+
const wdmMiddleware = (0, dev_middleware_1.wdm)(compiler);
|
|
39
|
+
const whm = (0, hot_middleware_1.webpackHotMiddleware)(compiler);
|
|
40
|
+
const server = http_1.default.createServer((request, response) => {
|
|
41
|
+
new Promise((resolve) => {
|
|
42
|
+
wdmMiddleware(request, response, () => {
|
|
43
|
+
resolve();
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(() => {
|
|
47
|
+
return new Promise((resolve) => {
|
|
48
|
+
whm(request, response, () => {
|
|
49
|
+
resolve();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
})
|
|
53
|
+
.then(() => {
|
|
54
|
+
(0, routes_1.handleRoutes)({ hash, hashPrefix, request, response });
|
|
55
|
+
})
|
|
56
|
+
.catch((err) => {
|
|
57
|
+
response.setHeader('content-type', 'application/json');
|
|
58
|
+
response.writeHead(500);
|
|
59
|
+
response.end(JSON.stringify({
|
|
60
|
+
err: err.message,
|
|
61
|
+
}));
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
const desiredPort = (_e = options === null || options === void 0 ? void 0 : options.port) !== null && _e !== void 0 ? _e : undefined;
|
|
65
|
+
const port = await renderer_1.RenderInternals.getDesiredPort(desiredPort, 3000, 3100);
|
|
66
|
+
server.listen(port);
|
|
67
|
+
return port;
|
|
68
|
+
};
|
|
69
|
+
exports.startServer = startServer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PackageManager } from './get-package-manager';
|
|
2
|
+
declare type Info = {
|
|
3
|
+
currentVersion: string;
|
|
4
|
+
latestVersion: string;
|
|
5
|
+
updateAvailable: boolean;
|
|
6
|
+
timedOut: boolean;
|
|
7
|
+
packageManager: PackageManager | 'unknown';
|
|
8
|
+
};
|
|
9
|
+
export declare const getRemotionVersion: () => any;
|
|
10
|
+
export declare const isUpdateAvailableWithTimeout: () => Promise<Info>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isUpdateAvailableWithTimeout = exports.getRemotionVersion = void 0;
|
|
7
|
+
const semver_1 = __importDefault(require("semver"));
|
|
8
|
+
const get_latest_remotion_version_1 = require("../get-latest-remotion-version");
|
|
9
|
+
const get_package_manager_1 = require("./get-package-manager");
|
|
10
|
+
const isUpdateAvailable = async (currentVersion) => {
|
|
11
|
+
const latest = await (0, get_latest_remotion_version_1.getLatestRemotionVersion)();
|
|
12
|
+
const pkgManager = (0, get_package_manager_1.getPackageManager)();
|
|
13
|
+
return {
|
|
14
|
+
updateAvailable: semver_1.default.lt(currentVersion, latest),
|
|
15
|
+
currentVersion,
|
|
16
|
+
latestVersion: latest,
|
|
17
|
+
timedOut: false,
|
|
18
|
+
packageManager: pkgManager === 'unknown' ? 'unknown' : pkgManager.manager,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const getRemotionVersion = () => {
|
|
22
|
+
// careful when refactoring this file, path must be adjusted
|
|
23
|
+
const packageJson = require('../../package.json');
|
|
24
|
+
const { version } = packageJson;
|
|
25
|
+
return version;
|
|
26
|
+
};
|
|
27
|
+
exports.getRemotionVersion = getRemotionVersion;
|
|
28
|
+
const isUpdateAvailableWithTimeout = () => {
|
|
29
|
+
const version = (0, exports.getRemotionVersion)();
|
|
30
|
+
const threeSecTimeout = new Promise((resolve) => {
|
|
31
|
+
const pkgManager = (0, get_package_manager_1.getPackageManager)();
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
resolve({
|
|
34
|
+
currentVersion: version,
|
|
35
|
+
latestVersion: version,
|
|
36
|
+
updateAvailable: false,
|
|
37
|
+
timedOut: true,
|
|
38
|
+
packageManager: pkgManager === 'unknown' ? 'unknown' : pkgManager.manager,
|
|
39
|
+
});
|
|
40
|
+
}, 3000);
|
|
41
|
+
});
|
|
42
|
+
return Promise.race([threeSecTimeout, isUpdateAvailable(version)]);
|
|
43
|
+
};
|
|
44
|
+
exports.isUpdateAvailableWithTimeout = isUpdateAvailableWithTimeout;
|
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
|
|
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,
|
package/dist/previewEntry.js
CHANGED
|
@@ -9,10 +9,10 @@ const remotion_1 = require("remotion");
|
|
|
9
9
|
require("../styles/styles.css");
|
|
10
10
|
const Editor_1 = require("./editor/components/Editor");
|
|
11
11
|
remotion_1.Internals.CSSUtils.injectCSS(remotion_1.Internals.CSSUtils.makeDefaultCSS(null, '#1f2428'));
|
|
12
|
-
const content = ((0, jsx_runtime_1.jsx)(remotion_1.Internals.RemotionRoot, { children: (0, jsx_runtime_1.jsx)(Editor_1.Editor, {}
|
|
12
|
+
const content = ((0, jsx_runtime_1.jsx)(remotion_1.Internals.RemotionRoot, { children: (0, jsx_runtime_1.jsx)(Editor_1.Editor, {}) }));
|
|
13
13
|
if (client_1.default.createRoot) {
|
|
14
14
|
client_1.default.createRoot(remotion_1.Internals.getPreviewDomElement()).render(content);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
client_1.default.render((0, jsx_runtime_1.jsx)(remotion_1.Internals.RemotionRoot, { children: (0, jsx_runtime_1.jsx)(Editor_1.Editor, {}
|
|
17
|
+
client_1.default.render((0, jsx_runtime_1.jsx)(remotion_1.Internals.RemotionRoot, { children: (0, jsx_runtime_1.jsx)(Editor_1.Editor, {}) }), remotion_1.Internals.getPreviewDomElement());
|
|
18
18
|
}
|
package/dist/print-error.js
CHANGED
package/dist/print-help.js
CHANGED
|
@@ -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 <
|
|
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 <
|
|
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 <
|
|
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/render.js
CHANGED
|
@@ -31,13 +31,13 @@ const render = async () => {
|
|
|
31
31
|
? file
|
|
32
32
|
: path_1.default.join(process.cwd(), file);
|
|
33
33
|
await (0, initialize_render_cli_1.initializeRenderCli)('sequence');
|
|
34
|
-
const { codec, proResProfile, parallelism, frameRange, shouldOutputImageSequence, absoluteOutputFile, overwrite, inputProps, envVariables, quality, browser, crf, pixelFormat, imageFormat, browserExecutable, ffmpegExecutable, scale, chromiumOptions, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'series' });
|
|
34
|
+
const { codec, proResProfile, parallelism, frameRange, shouldOutputImageSequence, absoluteOutputFile, overwrite, inputProps, envVariables, quality, browser, crf, pixelFormat, imageFormat, browserExecutable, ffmpegExecutable, ffprobeExecutable, scale, chromiumOptions, port, puppeteerTimeout, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'series' });
|
|
35
35
|
if (!absoluteOutputFile) {
|
|
36
36
|
throw new Error('assertion error - expected absoluteOutputFile to not be null');
|
|
37
37
|
}
|
|
38
38
|
log_1.Log.verbose('Browser executable: ', browserExecutable);
|
|
39
39
|
await (0, validate_ffmpeg_version_1.checkAndValidateFfmpegVersion)({
|
|
40
|
-
ffmpegExecutable
|
|
40
|
+
ffmpegExecutable,
|
|
41
41
|
});
|
|
42
42
|
const browserInstance = (0, renderer_1.openBrowser)(browser, {
|
|
43
43
|
browserExecutable,
|
|
@@ -53,9 +53,22 @@ const render = async () => {
|
|
|
53
53
|
const urlOrBundle = renderer_1.RenderInternals.isServeUrl(fullPath)
|
|
54
54
|
? fullPath
|
|
55
55
|
: await (0, setup_cache_1.bundleOnCli)(fullPath, steps);
|
|
56
|
-
const
|
|
56
|
+
const onDownload = (src) => {
|
|
57
|
+
const id = Math.random();
|
|
58
|
+
const download = {
|
|
59
|
+
id,
|
|
60
|
+
name: src,
|
|
61
|
+
progress: 0,
|
|
62
|
+
};
|
|
63
|
+
downloads.push(download);
|
|
64
|
+
updateRenderProgress();
|
|
65
|
+
return ({ percent }) => {
|
|
66
|
+
download.progress = percent;
|
|
67
|
+
updateRenderProgress();
|
|
68
|
+
};
|
|
69
|
+
};
|
|
57
70
|
const puppeteerInstance = await browserInstance;
|
|
58
|
-
const comps = await (0, renderer_1.getCompositions)(
|
|
71
|
+
const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
|
|
59
72
|
inputProps,
|
|
60
73
|
puppeteerInstance,
|
|
61
74
|
envVariables,
|
|
@@ -140,16 +153,20 @@ const render = async () => {
|
|
|
140
153
|
}
|
|
141
154
|
},
|
|
142
155
|
outputDir,
|
|
143
|
-
serveUrl,
|
|
156
|
+
serveUrl: urlOrBundle,
|
|
144
157
|
dumpBrowserLogs: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose'),
|
|
145
158
|
envVariables,
|
|
146
159
|
frameRange,
|
|
147
160
|
parallelism,
|
|
148
161
|
puppeteerInstance,
|
|
149
162
|
quality,
|
|
150
|
-
timeoutInMilliseconds:
|
|
163
|
+
timeoutInMilliseconds: puppeteerTimeout,
|
|
151
164
|
chromiumOptions,
|
|
152
165
|
scale,
|
|
166
|
+
ffmpegExecutable,
|
|
167
|
+
ffprobeExecutable,
|
|
168
|
+
browserExecutable,
|
|
169
|
+
port,
|
|
153
170
|
});
|
|
154
171
|
renderedDoneIn = Date.now() - startTime;
|
|
155
172
|
updateRenderProgress();
|
|
@@ -165,6 +182,7 @@ const render = async () => {
|
|
|
165
182
|
crf,
|
|
166
183
|
envVariables,
|
|
167
184
|
ffmpegExecutable,
|
|
185
|
+
ffprobeExecutable,
|
|
168
186
|
frameRange,
|
|
169
187
|
imageFormat,
|
|
170
188
|
inputProps,
|
|
@@ -182,21 +200,8 @@ const render = async () => {
|
|
|
182
200
|
pixelFormat,
|
|
183
201
|
proResProfile,
|
|
184
202
|
quality,
|
|
185
|
-
serveUrl,
|
|
186
|
-
onDownload
|
|
187
|
-
const id = Math.random();
|
|
188
|
-
const download = {
|
|
189
|
-
id,
|
|
190
|
-
name: src,
|
|
191
|
-
progress: 0,
|
|
192
|
-
};
|
|
193
|
-
downloads.push(download);
|
|
194
|
-
updateRenderProgress();
|
|
195
|
-
return ({ percent }) => {
|
|
196
|
-
download.progress = percent;
|
|
197
|
-
updateRenderProgress();
|
|
198
|
-
};
|
|
199
|
-
},
|
|
203
|
+
serveUrl: urlOrBundle,
|
|
204
|
+
onDownload,
|
|
200
205
|
dumpBrowserLogs: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose'),
|
|
201
206
|
onStart: ({ frameCount }) => {
|
|
202
207
|
totalFrames = frameCount;
|
|
@@ -204,6 +209,7 @@ const render = async () => {
|
|
|
204
209
|
chromiumOptions,
|
|
205
210
|
timeoutInMilliseconds: remotion_1.Internals.getCurrentPuppeteerTimeout(),
|
|
206
211
|
scale,
|
|
212
|
+
port,
|
|
207
213
|
});
|
|
208
214
|
log_1.Log.info();
|
|
209
215
|
log_1.Log.info();
|
|
@@ -225,8 +231,8 @@ const render = async () => {
|
|
|
225
231
|
log_1.Log.warn('Do you have minimum required Node.js version?');
|
|
226
232
|
}
|
|
227
233
|
log_1.Log.info(chalk_1.default.green('\nYour video is ready!'));
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
234
|
+
if (remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose')) {
|
|
235
|
+
remotion_1.Internals.perf.logPerf();
|
|
236
|
+
}
|
|
231
237
|
};
|
|
232
238
|
exports.render = render;
|
package/dist/still.js
CHANGED
|
@@ -33,7 +33,7 @@ const still = async () => {
|
|
|
33
33
|
log_1.Log.verbose('Output file has a PNG extension, therefore setting the image format to PNG.');
|
|
34
34
|
remotion_1.Config.Rendering.setImageFormat('png');
|
|
35
35
|
}
|
|
36
|
-
const { inputProps, envVariables, quality, browser, imageFormat, stillFrame, browserExecutable, chromiumOptions, scale, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'still' });
|
|
36
|
+
const { inputProps, envVariables, quality, browser, imageFormat, stillFrame, browserExecutable, chromiumOptions, scale, ffmpegExecutable, ffprobeExecutable, overwrite, puppeteerTimeout, port, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'still' });
|
|
37
37
|
log_1.Log.verbose('Browser executable: ', browserExecutable);
|
|
38
38
|
if (imageFormat === 'none') {
|
|
39
39
|
log_1.Log.error('No image format was selected - this is probably an error in Remotion - please post your command on Github Issues for help.');
|
|
@@ -63,14 +63,17 @@ const still = async () => {
|
|
|
63
63
|
const urlOrBundle = renderer_1.RenderInternals.isServeUrl(fullPath)
|
|
64
64
|
? Promise.resolve(fullPath)
|
|
65
65
|
: await (0, setup_cache_1.bundleOnCli)(fullPath, steps);
|
|
66
|
-
const { serveUrl, closeServer } = await renderer_1.RenderInternals.prepareServer(await urlOrBundle);
|
|
67
66
|
const puppeteerInstance = await browserInstance;
|
|
68
|
-
const comps = await (0, renderer_1.getCompositions)(
|
|
67
|
+
const comps = await (0, renderer_1.getCompositions)(await urlOrBundle, {
|
|
69
68
|
inputProps,
|
|
70
69
|
puppeteerInstance,
|
|
71
70
|
envVariables,
|
|
72
|
-
timeoutInMilliseconds:
|
|
71
|
+
timeoutInMilliseconds: puppeteerTimeout,
|
|
73
72
|
chromiumOptions,
|
|
73
|
+
port,
|
|
74
|
+
browserExecutable,
|
|
75
|
+
ffmpegExecutable,
|
|
76
|
+
ffprobeExecutable,
|
|
74
77
|
});
|
|
75
78
|
const compositionId = (0, get_composition_id_1.getCompositionId)(comps);
|
|
76
79
|
const composition = comps.find((c) => c.id === compositionId);
|
|
@@ -79,11 +82,42 @@ const still = async () => {
|
|
|
79
82
|
}
|
|
80
83
|
const renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)((0, parse_command_line_1.quietFlagProvided)());
|
|
81
84
|
const renderStart = Date.now();
|
|
85
|
+
const downloads = [];
|
|
86
|
+
let frames = 0;
|
|
87
|
+
const totalFrames = 1;
|
|
88
|
+
const updateProgress = () => {
|
|
89
|
+
renderProgress.update((0, progress_bar_1.makeRenderingAndStitchingProgress)({
|
|
90
|
+
rendering: {
|
|
91
|
+
frames,
|
|
92
|
+
concurrency: 1,
|
|
93
|
+
doneIn: frames === totalFrames ? Date.now() - renderStart : null,
|
|
94
|
+
steps,
|
|
95
|
+
totalFrames,
|
|
96
|
+
},
|
|
97
|
+
downloads,
|
|
98
|
+
stitching: null,
|
|
99
|
+
}));
|
|
100
|
+
};
|
|
101
|
+
updateProgress();
|
|
102
|
+
const onDownload = (src) => {
|
|
103
|
+
const id = Math.random();
|
|
104
|
+
const download = {
|
|
105
|
+
id,
|
|
106
|
+
name: src,
|
|
107
|
+
progress: 0,
|
|
108
|
+
};
|
|
109
|
+
downloads.push(download);
|
|
110
|
+
updateProgress();
|
|
111
|
+
return ({ percent }) => {
|
|
112
|
+
download.progress = percent;
|
|
113
|
+
updateProgress();
|
|
114
|
+
};
|
|
115
|
+
};
|
|
82
116
|
await (0, renderer_1.renderStill)({
|
|
83
117
|
composition,
|
|
84
118
|
frame: stillFrame,
|
|
85
119
|
output: userOutput,
|
|
86
|
-
serveUrl,
|
|
120
|
+
serveUrl: await urlOrBundle,
|
|
87
121
|
quality,
|
|
88
122
|
dumpBrowserLogs: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose'),
|
|
89
123
|
envVariables,
|
|
@@ -92,18 +126,15 @@ const still = async () => {
|
|
|
92
126
|
chromiumOptions,
|
|
93
127
|
timeoutInMilliseconds: remotion_1.Internals.getCurrentPuppeteerTimeout(),
|
|
94
128
|
scale,
|
|
129
|
+
ffmpegExecutable,
|
|
130
|
+
browserExecutable,
|
|
131
|
+
overwrite,
|
|
132
|
+
onDownload,
|
|
95
133
|
});
|
|
134
|
+
frames = 1;
|
|
135
|
+
updateProgress();
|
|
136
|
+
log_1.Log.info();
|
|
96
137
|
const closeBrowserPromise = puppeteerInstance.close();
|
|
97
|
-
closeServer().catch((err) => {
|
|
98
|
-
log_1.Log.error('Could not close web server', err);
|
|
99
|
-
});
|
|
100
|
-
renderProgress.update((0, progress_bar_1.makeRenderingProgress)({
|
|
101
|
-
frames: 1,
|
|
102
|
-
concurrency: 1,
|
|
103
|
-
doneIn: Date.now() - renderStart,
|
|
104
|
-
steps,
|
|
105
|
-
totalFrames: 1,
|
|
106
|
-
}));
|
|
107
138
|
log_1.Log.info(chalk_1.default.green('\nYour still frame is ready!'));
|
|
108
139
|
const seconds = Math.round((Date.now() - startTime) / 1000);
|
|
109
140
|
log_1.Log.info([
|