@remotion/cli 4.0.0-spawn.13 → 4.0.0-tts.10
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/compositions.js +2 -1
- package/dist/editor/components/CollapsedCompositionSelector.d.ts +0 -0
- package/dist/editor/components/CollapsedCompositionSelector.js +0 -0
- package/dist/editor/components/CompositionManager.d.ts +0 -0
- package/dist/editor/components/CompositionManager.js +0 -0
- package/dist/editor/components/InitialCompositionLoader.d.ts +0 -0
- package/dist/editor/components/InitialCompositionLoader.js +0 -0
- package/dist/editor/components/MenuBuildIndicator.d.ts +2 -0
- package/dist/editor/components/MenuBuildIndicator.js +26 -0
- package/dist/editor/components/Preview.js +9 -6
- package/dist/editor/components/TopPanel.js +1 -0
- package/dist/editor/helpers/use-compact-ui.d.ts +0 -0
- package/dist/editor/helpers/use-compact-ui.js +0 -0
- package/dist/editor/icons/jump-to-start.d.ts +0 -0
- package/dist/editor/icons/jump-to-start.js +0 -0
- package/dist/editor/state/folders.d.ts +0 -0
- package/dist/editor/state/folders.js +0 -0
- package/dist/editor/state/sidebar.d.ts +0 -0
- package/dist/editor/state/sidebar.js +0 -0
- package/dist/get-cli-options.d.ts +1 -0
- package/dist/get-cli-options.js +2 -0
- package/dist/get-latest-remotion-version.d.ts +1 -0
- package/dist/get-latest-remotion-version.js +31 -0
- package/dist/index.d.ts +1 -0
- package/dist/parse-command-line.d.ts +1 -0
- package/dist/parse-command-line.js +3 -0
- package/dist/preview-server/dev-middleware/compatible-api.d.ts +9 -0
- package/dist/preview-server/dev-middleware/compatible-api.js +28 -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 +223 -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/fast-refresh/helpers.d.ts +39 -0
- package/dist/preview-server/fast-refresh/helpers.js +145 -0
- package/dist/preview-server/fast-refresh/index.d.ts +30 -0
- package/dist/preview-server/fast-refresh/index.js +86 -0
- package/dist/preview-server/fast-refresh/loader.d.ts +35 -0
- package/dist/preview-server/fast-refresh/loader.js +81 -0
- package/dist/preview-server/fast-refresh/runtime.d.ts +35 -0
- package/dist/preview-server/fast-refresh/runtime.js +32 -0
- package/dist/preview-server/get-package-manager.d.ts +8 -0
- package/dist/preview-server/get-package-manager.js +38 -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 +2 -0
- package/dist/preview-server/routes.js +121 -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 +68 -0
- package/dist/preview-server/static-preview.d.ts +1 -0
- package/dist/preview-server/static-preview.js +40 -0
- package/dist/preview-server/update-available.d.ts +10 -0
- package/dist/preview-server/update-available.js +36 -0
- package/dist/preview-server/webpack-cache.d.ts +12 -0
- package/dist/preview-server/webpack-cache.js +66 -0
- package/dist/render.js +6 -1
- package/dist/still.js +2 -1
- package/dist/webpack-cache.d.ts +12 -0
- package/dist/webpack-cache.js +66 -0
- package/package.json +8 -9
package/dist/compositions.js
CHANGED
|
@@ -34,11 +34,12 @@ const listCompositionsCommand = async () => {
|
|
|
34
34
|
}
|
|
35
35
|
const fullPath = path_1.default.join(process.cwd(), file);
|
|
36
36
|
await (0, get_config_file_name_1.loadConfig)();
|
|
37
|
-
const { browserExecutable, ffmpegExecutable, chromiumOptions, envVariables, inputProps, puppeteerTimeout, port, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'get-compositions' });
|
|
37
|
+
const { browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, puppeteerTimeout, port, } = await (0, get_cli_options_1.getCliOptions)({ isLambda: false, type: 'get-compositions' });
|
|
38
38
|
const bundled = await (0, setup_cache_1.bundleOnCli)(fullPath, ['bundling']);
|
|
39
39
|
const compositions = await (0, renderer_1.getCompositions)(bundled, {
|
|
40
40
|
browserExecutable,
|
|
41
41
|
ffmpegExecutable,
|
|
42
|
+
ffprobeExecutable,
|
|
42
43
|
chromiumOptions,
|
|
43
44
|
envVariables,
|
|
44
45
|
inputProps,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuBuildIndicator = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const cwd = {
|
|
7
|
+
fontSize: 13,
|
|
8
|
+
opacity: 0.8,
|
|
9
|
+
};
|
|
10
|
+
const MenuBuildIndicator = () => {
|
|
11
|
+
const [isBuilding, setIsBuilding] = (0, react_1.useState)(false);
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
13
|
+
window.remotion_isBuilding = () => {
|
|
14
|
+
setIsBuilding(true);
|
|
15
|
+
};
|
|
16
|
+
window.remotion_finishedBuilding = () => {
|
|
17
|
+
setIsBuilding(false);
|
|
18
|
+
};
|
|
19
|
+
return () => {
|
|
20
|
+
window.remotion_isBuilding = undefined;
|
|
21
|
+
window.remotion_finishedBuilding = undefined;
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: cwd, title: window.remotion_cwd, children: isBuilding ? 'Building...' : window.remotion_projectName }));
|
|
25
|
+
};
|
|
26
|
+
exports.MenuBuildIndicator = MenuBuildIndicator;
|
|
@@ -8,7 +8,6 @@ const remotion_1 = require("remotion");
|
|
|
8
8
|
const checkerboard_background_1 = require("../helpers/checkerboard-background");
|
|
9
9
|
const checkerboard_1 = require("../state/checkerboard");
|
|
10
10
|
const preview_size_1 = require("../state/preview-size");
|
|
11
|
-
const LoadingIndicator_1 = require("./LoadingIndicator");
|
|
12
11
|
const checkerboardSize = 49;
|
|
13
12
|
const containerStyle = (options) => {
|
|
14
13
|
return {
|
|
@@ -26,9 +25,8 @@ const containerStyle = (options) => {
|
|
|
26
25
|
};
|
|
27
26
|
};
|
|
28
27
|
const Inner = ({ canvasSize }) => {
|
|
29
|
-
var _a;
|
|
30
28
|
const { size: previewSize } = (0, react_1.useContext)(preview_size_1.PreviewSizeContext);
|
|
31
|
-
const
|
|
29
|
+
const portalContainer = (0, react_1.useRef)(null);
|
|
32
30
|
const config = (0, remotion_1.useVideoConfig)();
|
|
33
31
|
const { checkerboard } = (0, react_1.useContext)(checkerboard_1.CheckerboardContext);
|
|
34
32
|
const { centerX, centerY, yCorrection, xCorrection, scale } = player_1.PlayerInternals.calculateScale({
|
|
@@ -66,9 +64,14 @@ const Inner = ({ canvasSize }) => {
|
|
|
66
64
|
xCorrection,
|
|
67
65
|
yCorrection,
|
|
68
66
|
]);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
(0, react_1.useEffect)(() => {
|
|
68
|
+
const { current } = portalContainer;
|
|
69
|
+
current === null || current === void 0 ? void 0 : current.appendChild(remotion_1.Internals.portalNode());
|
|
70
|
+
return () => {
|
|
71
|
+
current === null || current === void 0 ? void 0 : current.removeChild(remotion_1.Internals.portalNode());
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: outer, children: (0, jsx_runtime_1.jsx)("div", { ref: portalContainer, style: style }) }));
|
|
72
75
|
};
|
|
73
76
|
const VideoPreview = ({ canvasSize }) => {
|
|
74
77
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -22,6 +22,7 @@ export declare const getCliOptions: (options: {
|
|
|
22
22
|
stillFrame: number;
|
|
23
23
|
browserExecutable: BrowserExecutable;
|
|
24
24
|
ffmpegExecutable: import("remotion").FfmpegExecutable;
|
|
25
|
+
ffprobeExecutable: import("remotion").FfmpegExecutable;
|
|
25
26
|
logLevel: "verbose" | "info" | "warn" | "error";
|
|
26
27
|
scale: number;
|
|
27
28
|
chromiumOptions: ChromiumOptions;
|
package/dist/get-cli-options.js
CHANGED
|
@@ -144,6 +144,7 @@ const getCliOptions = async (options) => {
|
|
|
144
144
|
const proResProfile = getAndValidateProResProfile(codec);
|
|
145
145
|
const browserExecutable = remotion_1.Internals.getBrowserExecutable();
|
|
146
146
|
const ffmpegExecutable = remotion_1.Internals.getCustomFfmpegExecutable();
|
|
147
|
+
const ffprobeExecutable = remotion_1.Internals.getCustomFfprobeExecutable();
|
|
147
148
|
const scale = remotion_1.Internals.getScale();
|
|
148
149
|
const port = remotion_1.Internals.getServerPort();
|
|
149
150
|
const chromiumOptions = {
|
|
@@ -173,6 +174,7 @@ const getCliOptions = async (options) => {
|
|
|
173
174
|
stillFrame: remotion_1.Internals.getStillFrame(),
|
|
174
175
|
browserExecutable,
|
|
175
176
|
ffmpegExecutable,
|
|
177
|
+
ffprobeExecutable,
|
|
176
178
|
logLevel: remotion_1.Internals.Logging.getLogLevel(),
|
|
177
179
|
scale,
|
|
178
180
|
chromiumOptions,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getLatestRemotionVersion: () => Promise<any>;
|
|
@@ -0,0 +1,31 @@
|
|
|
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.getLatestRemotionVersion = void 0;
|
|
7
|
+
const https_1 = __importDefault(require("https"));
|
|
8
|
+
const getPackageJsonForRemotion = () => {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const req = https_1.default.get('https://registry.npmjs.org/remotion', {
|
|
11
|
+
headers: {
|
|
12
|
+
accept: 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*',
|
|
13
|
+
},
|
|
14
|
+
}, (res) => {
|
|
15
|
+
let data = '';
|
|
16
|
+
res.on('data', (d) => {
|
|
17
|
+
data += d;
|
|
18
|
+
});
|
|
19
|
+
res.on('end', () => resolve(data));
|
|
20
|
+
});
|
|
21
|
+
req.on('error', (error) => {
|
|
22
|
+
reject(error);
|
|
23
|
+
});
|
|
24
|
+
req.end();
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
const getLatestRemotionVersion = async () => {
|
|
28
|
+
const pkgJson = await getPackageJsonForRemotion();
|
|
29
|
+
return JSON.parse(pkgJson)['dist-tags'].latest;
|
|
30
|
+
};
|
|
31
|
+
exports.getLatestRemotionVersion = getLatestRemotionVersion;
|
package/dist/index.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ export declare const CliInternals: {
|
|
|
47
47
|
stillFrame: number;
|
|
48
48
|
browserExecutable: import("remotion").BrowserExecutable;
|
|
49
49
|
ffmpegExecutable: import("remotion").FfmpegExecutable;
|
|
50
|
+
ffprobeExecutable: import("remotion").FfmpegExecutable;
|
|
50
51
|
logLevel: "verbose" | "info" | "warn" | "error";
|
|
51
52
|
scale: number;
|
|
52
53
|
chromiumOptions: import("@remotion/renderer").ChromiumOptions;
|
|
@@ -3,6 +3,7 @@ import { BrowserExecutable, Codec, FfmpegExecutable, ImageFormat, OpenGlRenderer
|
|
|
3
3
|
export declare type CommandLineOptions = {
|
|
4
4
|
['browser-executable']: BrowserExecutable;
|
|
5
5
|
['ffmpeg-executable']: FfmpegExecutable;
|
|
6
|
+
['ffprobe-executable']: FfmpegExecutable;
|
|
6
7
|
['pixel-format']: PixelFormat;
|
|
7
8
|
['image-format']: ImageFormat;
|
|
8
9
|
['prores-profile']: ProResProfile;
|
|
@@ -42,6 +42,9 @@ const parseCommandLine = (type) => {
|
|
|
42
42
|
if (exports.parsedCli['ffmpeg-executable']) {
|
|
43
43
|
remotion_1.Config.Rendering.setFfmpegExecutable((0, path_1.resolve)(exports.parsedCli['ffmpeg-executable']));
|
|
44
44
|
}
|
|
45
|
+
if (exports.parsedCli['ffprobe-executable']) {
|
|
46
|
+
remotion_1.Config.Rendering.setFfprobeExecutable((0, path_1.resolve)(exports.parsedCli['ffprobe-executable']));
|
|
47
|
+
}
|
|
45
48
|
if (typeof exports.parsedCli['bundle-cache'] !== 'undefined') {
|
|
46
49
|
remotion_1.Config.Bundling.setCachingEnabled(exports.parsedCli['bundle-cache'] !== 'false');
|
|
47
50
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import { ReadStream } from 'fs';
|
|
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
|
+
export declare function setHeaderForResponse(res: ServerResponse, name: string, value: string | number): void;
|
|
9
|
+
export declare function send(req: IncomingMessage, res: ServerResponse, bufferOtStream: ReadStream | string | Buffer, byteLength: number): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
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;
|
|
12
|
+
function setHeaderForResponse(res, name, value) {
|
|
13
|
+
res.setHeader(name, typeof value === 'number' ? String(value) : value);
|
|
14
|
+
}
|
|
15
|
+
exports.setHeaderForResponse = setHeaderForResponse;
|
|
16
|
+
function send(req, res, bufferOtStream, byteLength) {
|
|
17
|
+
if (typeof bufferOtStream === 'string' || Buffer.isBuffer(bufferOtStream)) {
|
|
18
|
+
res.end(bufferOtStream);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
setHeaderForResponse(res, 'Content-Length', byteLength);
|
|
22
|
+
if (req.method === 'HEAD') {
|
|
23
|
+
res.end();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
bufferOtStream.pipe(res);
|
|
27
|
+
}
|
|
28
|
+
exports.send = send;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPaths = void 0;
|
|
4
|
+
function getPaths(context) {
|
|
5
|
+
const { stats } = context;
|
|
6
|
+
const publicPaths = [];
|
|
7
|
+
if (!stats) {
|
|
8
|
+
return publicPaths;
|
|
9
|
+
}
|
|
10
|
+
const { compilation } = stats;
|
|
11
|
+
// The `output.path` is always present and always absolute
|
|
12
|
+
const outputPath = compilation.getPath(compilation.outputOptions.path || '');
|
|
13
|
+
const publicPath = compilation.outputOptions.publicPath
|
|
14
|
+
? compilation.getPath(compilation.outputOptions.publicPath)
|
|
15
|
+
: '';
|
|
16
|
+
publicPaths.push({ outputPath, publicPath });
|
|
17
|
+
return publicPaths;
|
|
18
|
+
}
|
|
19
|
+
exports.getPaths = getPaths;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wdm = void 0;
|
|
4
|
+
const middleware_1 = require("./middleware");
|
|
5
|
+
const setup_hooks_1 = require("./setup-hooks");
|
|
6
|
+
const setup_output_filesystem_1 = require("./setup-output-filesystem");
|
|
7
|
+
const wdm = (compiler) => {
|
|
8
|
+
const context = {
|
|
9
|
+
state: false,
|
|
10
|
+
stats: undefined,
|
|
11
|
+
callbacks: [],
|
|
12
|
+
compiler,
|
|
13
|
+
logger: compiler.getInfrastructureLogger('remotion'),
|
|
14
|
+
outputFileSystem: undefined,
|
|
15
|
+
};
|
|
16
|
+
(0, setup_hooks_1.setupHooks)(context);
|
|
17
|
+
(0, setup_output_filesystem_1.setupOutputFileSystem)(context);
|
|
18
|
+
const errorHandler = (error) => {
|
|
19
|
+
if (error) {
|
|
20
|
+
context.logger.error(error);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const watchOptions = context.compiler.options.watchOptions || {};
|
|
24
|
+
context.compiler.watch(watchOptions, errorHandler);
|
|
25
|
+
return (0, middleware_1.middleware)(context);
|
|
26
|
+
};
|
|
27
|
+
exports.wdm = wdm;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isColorSupported: boolean;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var _a;
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.isColorSupported = void 0;
|
|
28
|
+
const tty = __importStar(require("tty"));
|
|
29
|
+
const argv = process.argv || [];
|
|
30
|
+
const env = process.env || {};
|
|
31
|
+
const isDisabled = 'NO_COLOR' in env || argv.includes('--no-color');
|
|
32
|
+
const isForced = 'FORCE_COLOR' in env || argv.includes('--color');
|
|
33
|
+
const isWindows = process.platform === 'win32';
|
|
34
|
+
const isCompatibleTerminal = ((_a = tty === null || tty === void 0 ? void 0 : tty.isatty) === null || _a === void 0 ? void 0 : _a.call(tty, 1)) && env.TERM && env.TERM !== 'dumb';
|
|
35
|
+
const isCI = 'CI' in env &&
|
|
36
|
+
('GITHUB_ACTIONS' in env || 'GITLAB_CI' in env || 'CIRCLECI' in env);
|
|
37
|
+
exports.isColorSupported = !isDisabled && (isForced || isWindows || isCompatibleTerminal || isCI);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
+
import { DevMiddlewareContext } from './types';
|
|
4
|
+
export declare function getFilenameFromUrl(context: DevMiddlewareContext, url: string | undefined): string | undefined;
|
|
5
|
+
export declare function getValueContentRangeHeader(type: string, size: number, range?: {
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
}): string;
|
|
9
|
+
export declare type MiddleWare = (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
|
|
10
|
+
export declare function middleware(context: DevMiddlewareContext): (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
|
|
@@ -0,0 +1,223 @@
|
|
|
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.middleware = exports.getValueContentRangeHeader = exports.getFilenameFromUrl = void 0;
|
|
7
|
+
const renderer_1 = require("@remotion/renderer");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const compatible_api_1 = require("./compatible-api");
|
|
10
|
+
const range_parser_1 = require("./range-parser");
|
|
11
|
+
const ready_1 = require("./ready");
|
|
12
|
+
// eslint-disable-next-line no-restricted-imports
|
|
13
|
+
const querystring_1 = __importDefault(require("querystring"));
|
|
14
|
+
const url_1 = require("url");
|
|
15
|
+
const get_paths_1 = require("./get-paths");
|
|
16
|
+
const cacheStore = new WeakMap();
|
|
17
|
+
const mem = (fn, { cache = new Map() } = {}) => {
|
|
18
|
+
const memoized = (...arguments_) => {
|
|
19
|
+
const [key] = arguments_;
|
|
20
|
+
const cacheItem = cache.get(key);
|
|
21
|
+
if (cacheItem) {
|
|
22
|
+
return cacheItem.data;
|
|
23
|
+
}
|
|
24
|
+
const result = fn.apply(this, arguments_);
|
|
25
|
+
cache.set(key, {
|
|
26
|
+
data: result,
|
|
27
|
+
});
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
cacheStore.set(memoized, cache);
|
|
31
|
+
return memoized;
|
|
32
|
+
};
|
|
33
|
+
const memoizedParse = mem(url_1.parse);
|
|
34
|
+
function getFilenameFromUrl(context, url) {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
const paths = (0, get_paths_1.getPaths)(context);
|
|
37
|
+
let foundFilename;
|
|
38
|
+
let urlObject;
|
|
39
|
+
try {
|
|
40
|
+
// The `url` property of the `request` is contains only `pathname`, `search` and `hash`
|
|
41
|
+
urlObject = memoizedParse(url, false, true);
|
|
42
|
+
}
|
|
43
|
+
catch (_ignoreError) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
for (const { publicPath, outputPath } of paths) {
|
|
47
|
+
let filename;
|
|
48
|
+
let publicPathObject;
|
|
49
|
+
try {
|
|
50
|
+
publicPathObject = memoizedParse(publicPath !== 'auto' && publicPath ? publicPath : '/', false, true);
|
|
51
|
+
}
|
|
52
|
+
catch (_ignoreError) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if ((_a = urlObject.pathname) === null || _a === void 0 ? void 0 : _a.startsWith(publicPathObject.pathname)) {
|
|
56
|
+
filename = outputPath;
|
|
57
|
+
// Strip the `pathname` property from the `publicPath` option from the start of requested url
|
|
58
|
+
// `/complex/foo.js` => `foo.js`
|
|
59
|
+
const pathname = urlObject.pathname.substr(publicPathObject.pathname.length);
|
|
60
|
+
if (pathname) {
|
|
61
|
+
filename = path_1.default.join(outputPath, querystring_1.default.unescape(pathname));
|
|
62
|
+
}
|
|
63
|
+
if (!context.outputFileSystem) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
let fsStats = (_b = context.outputFileSystem) === null || _b === void 0 ? void 0 : _b.statSync(filename);
|
|
68
|
+
if (fsStats.isFile()) {
|
|
69
|
+
foundFilename = filename;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
else if (fsStats.isDirectory()) {
|
|
73
|
+
const indexValue = 'index.html';
|
|
74
|
+
filename = path_1.default.join(filename, indexValue);
|
|
75
|
+
// eslint-disable-next-line max-depth
|
|
76
|
+
try {
|
|
77
|
+
fsStats = context.outputFileSystem.statSync(filename);
|
|
78
|
+
}
|
|
79
|
+
catch (__ignoreError) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
// eslint-disable-next-line max-depth
|
|
83
|
+
if (fsStats.isFile()) {
|
|
84
|
+
foundFilename = filename;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (_ignoreError) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return foundFilename;
|
|
95
|
+
}
|
|
96
|
+
exports.getFilenameFromUrl = getFilenameFromUrl;
|
|
97
|
+
function getValueContentRangeHeader(type, size, range) {
|
|
98
|
+
return `${type} ${range ? `${range.start}-${range.end}` : '*'}/${size}`;
|
|
99
|
+
}
|
|
100
|
+
exports.getValueContentRangeHeader = getValueContentRangeHeader;
|
|
101
|
+
function createHtmlDocument(title, body) {
|
|
102
|
+
return (`${'<!DOCTYPE html>\n' +
|
|
103
|
+
'<html lang="en">\n' +
|
|
104
|
+
'<head>\n' +
|
|
105
|
+
'<meta charset="utf-8">\n' +
|
|
106
|
+
'<title>'}${title}</title>\n` +
|
|
107
|
+
`</head>\n` +
|
|
108
|
+
`<body>\n` +
|
|
109
|
+
`<pre>${body}</pre>\n` +
|
|
110
|
+
`</body>\n` +
|
|
111
|
+
`</html>\n`);
|
|
112
|
+
}
|
|
113
|
+
const BYTES_RANGE_REGEXP = /^ *bytes/i;
|
|
114
|
+
function middleware(context) {
|
|
115
|
+
return function (req, res, next) {
|
|
116
|
+
const acceptedMethods = ['GET', 'HEAD'];
|
|
117
|
+
if (req.method && !acceptedMethods.includes(req.method)) {
|
|
118
|
+
goNext();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
(0, ready_1.ready)(context, processRequest);
|
|
122
|
+
function goNext() {
|
|
123
|
+
return next();
|
|
124
|
+
}
|
|
125
|
+
async function processRequest() {
|
|
126
|
+
var _a;
|
|
127
|
+
const filename = getFilenameFromUrl(context, req.url);
|
|
128
|
+
if (!filename) {
|
|
129
|
+
goNext();
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @type {{key: string, value: string | number}[]}
|
|
134
|
+
*/
|
|
135
|
+
if (!(0, compatible_api_1.getHeaderFromResponse)(res, 'Content-Type')) {
|
|
136
|
+
// content-type name(like application/javascript; charset=utf-8) or false
|
|
137
|
+
const contentType = renderer_1.RenderInternals.mime.contentType(path_1.default.extname(filename));
|
|
138
|
+
// Only set content-type header if media type is known
|
|
139
|
+
// https://tools.ietf.org/html/rfc7231#section-3.1.1.5
|
|
140
|
+
if (contentType) {
|
|
141
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Content-Type', contentType);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (!(0, compatible_api_1.getHeaderFromResponse)(res, 'Accept-Ranges')) {
|
|
145
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Accept-Ranges', 'bytes');
|
|
146
|
+
}
|
|
147
|
+
const rangeHeader = (0, compatible_api_1.getHeaderFromRequest)(req, 'range');
|
|
148
|
+
let start;
|
|
149
|
+
let end;
|
|
150
|
+
if (rangeHeader &&
|
|
151
|
+
BYTES_RANGE_REGEXP.test(rangeHeader) &&
|
|
152
|
+
context.outputFileSystem) {
|
|
153
|
+
const size = await new Promise((resolve) => {
|
|
154
|
+
var _a;
|
|
155
|
+
(_a = context.outputFileSystem) === null || _a === void 0 ? void 0 : _a.lstat(filename, (error, stats) => {
|
|
156
|
+
var _a;
|
|
157
|
+
if (error) {
|
|
158
|
+
context.logger.error(error);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
resolve((_a = stats === null || stats === void 0 ? void 0 : stats.size) !== null && _a !== void 0 ? _a : 0);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
const parsedRanges = (0, range_parser_1.parseRange)(size, rangeHeader);
|
|
165
|
+
if (parsedRanges === -1) {
|
|
166
|
+
const message = "Unsatisfiable range for 'Range' header.";
|
|
167
|
+
context.logger.error(message);
|
|
168
|
+
const existingHeaders = res.getHeaderNames();
|
|
169
|
+
for (const header of existingHeaders) {
|
|
170
|
+
res.removeHeader(header);
|
|
171
|
+
}
|
|
172
|
+
res.statusCode = 416;
|
|
173
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Content-Range', getValueContentRangeHeader('bytes', size));
|
|
174
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Content-Type', 'text/html; charset=utf-8');
|
|
175
|
+
const document = createHtmlDocument(416, `Error: ${message}`);
|
|
176
|
+
const _byteLength = Buffer.byteLength(document);
|
|
177
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Content-Length', Buffer.byteLength(document));
|
|
178
|
+
(0, compatible_api_1.send)(req, res, document, _byteLength);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (parsedRanges === -2) {
|
|
182
|
+
context.logger.error("A malformed 'Range' header was provided. A regular response will be sent for this request.");
|
|
183
|
+
}
|
|
184
|
+
else if (parsedRanges.length > 1) {
|
|
185
|
+
context.logger.error("A 'Range' header with multiple ranges was provided. Multiple ranges are not supported, so a regular response will be sent for this request.");
|
|
186
|
+
}
|
|
187
|
+
if (parsedRanges !== -2 && parsedRanges.length === 1) {
|
|
188
|
+
// Content-Range
|
|
189
|
+
res.statusCode = 206;
|
|
190
|
+
(0, compatible_api_1.setHeaderForResponse)(res, 'Content-Range', getValueContentRangeHeader('bytes', size, parsedRanges[0]));
|
|
191
|
+
[{ start, end }] = parsedRanges;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const isFsSupportsStream = typeof ((_a = context.outputFileSystem) === null || _a === void 0 ? void 0 : _a.createReadStream) === 'function';
|
|
195
|
+
let bufferOtStream;
|
|
196
|
+
let byteLength = 0;
|
|
197
|
+
try {
|
|
198
|
+
if (typeof start !== 'undefined' &&
|
|
199
|
+
typeof end !== 'undefined' &&
|
|
200
|
+
isFsSupportsStream &&
|
|
201
|
+
context.outputFileSystem) {
|
|
202
|
+
bufferOtStream = context.outputFileSystem.createReadStream(filename, {
|
|
203
|
+
start,
|
|
204
|
+
end,
|
|
205
|
+
});
|
|
206
|
+
byteLength = end - start + 1;
|
|
207
|
+
}
|
|
208
|
+
else if (context.outputFileSystem) {
|
|
209
|
+
bufferOtStream = context.outputFileSystem.readFileSync(filename);
|
|
210
|
+
byteLength = bufferOtStream.byteLength;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (_ignoreError) {
|
|
214
|
+
goNext();
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (bufferOtStream) {
|
|
218
|
+
(0, compatible_api_1.send)(req, res, bufferOtStream, byteLength);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
exports.middleware = middleware;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* range-parser
|
|
3
|
+
* Copyright(c) 2012-2014 TJ Holowaychuk
|
|
4
|
+
* Copyright(c) 2015-2016 Douglas Christopher Wilson
|
|
5
|
+
* MIT Licensed
|
|
6
|
+
*/
|
|
7
|
+
declare type Range = {
|
|
8
|
+
start: number;
|
|
9
|
+
end: number;
|
|
10
|
+
};
|
|
11
|
+
declare type Ranges = Range[] & {
|
|
12
|
+
type?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function parseRange(size: number, str: string | string[]): -1 | Ranges | -2;
|
|
15
|
+
export {};
|