@remotion/bundler 3.1.7 → 3.1.11
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/bundler.d.ts +7 -0
- package/dist/bundler.js +76 -0
- package/dist/dev-middleware/compatible-api.d.ts +10 -0
- package/dist/dev-middleware/compatible-api.js +44 -0
- package/dist/dev-middleware/get-filename-from-url.d.ts +2 -0
- package/dist/dev-middleware/get-filename-from-url.js +92 -0
- package/dist/dev-middleware/get-paths.d.ts +7 -0
- package/dist/dev-middleware/get-paths.js +19 -0
- package/dist/dev-middleware/index.d.ts +3 -0
- package/dist/dev-middleware/index.js +57 -0
- package/dist/dev-middleware/is-color-supported.d.ts +1 -0
- package/dist/dev-middleware/is-color-supported.js +37 -0
- package/dist/dev-middleware/middleware.d.ts +4 -0
- package/dist/dev-middleware/middleware.js +141 -0
- package/dist/dev-middleware/range-parser.d.ts +15 -0
- package/dist/dev-middleware/range-parser.js +96 -0
- package/dist/dev-middleware/ready.d.ts +5 -0
- package/dist/dev-middleware/ready.js +13 -0
- package/dist/dev-middleware/setup-hooks.d.ts +2 -0
- package/dist/dev-middleware/setup-hooks.js +44 -0
- package/dist/dev-middleware/setup-output-filesystem.d.ts +2 -0
- package/dist/dev-middleware/setup-output-filesystem.js +13 -0
- package/dist/dev-middleware/types.d.ts +11 -0
- package/dist/dev-middleware/types.js +2 -0
- package/dist/error-overlay/entry-basic.d.ts +1 -0
- package/dist/error-overlay/entry-basic.js +21 -0
- package/dist/error-overlay/react-overlay/effects/format-warning.d.ts +11 -0
- package/dist/error-overlay/react-overlay/effects/format-warning.js +41 -0
- package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts +7 -0
- package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.js +46 -0
- package/dist/error-overlay/react-overlay/effects/proxy-console.d.ts +24 -0
- package/dist/error-overlay/react-overlay/effects/proxy-console.js +63 -0
- package/dist/error-overlay/react-overlay/effects/resolve-file-source.d.ts +3 -0
- package/dist/error-overlay/react-overlay/effects/resolve-file-source.js +31 -0
- package/dist/error-overlay/react-overlay/effects/stack-trace-limit.d.ts +3 -0
- package/dist/error-overlay/react-overlay/effects/stack-trace-limit.js +43 -0
- package/dist/error-overlay/react-overlay/effects/unhandled-error.d.ts +4 -0
- package/dist/error-overlay/react-overlay/effects/unhandled-error.js +45 -0
- package/dist/error-overlay/react-overlay/effects/unhandled-rejection.d.ts +4 -0
- package/dist/error-overlay/react-overlay/effects/unhandled-rejection.js +41 -0
- package/dist/error-overlay/react-overlay/index.d.ts +2 -0
- package/dist/error-overlay/react-overlay/index.js +21 -0
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.d.ts +8 -0
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +78 -0
- package/dist/error-overlay/react-overlay/utils/get-file-source.d.ts +1 -0
- package/dist/error-overlay/react-overlay/utils/get-file-source.js +21 -0
- package/dist/error-overlay/react-overlay/utils/get-lines-around.d.ts +14 -0
- package/dist/error-overlay/react-overlay/utils/get-lines-around.js +24 -0
- package/dist/error-overlay/react-overlay/utils/get-source-map.d.ts +13 -0
- package/dist/error-overlay/react-overlay/utils/get-source-map.js +58 -0
- package/dist/error-overlay/react-overlay/utils/get-stack-frames.d.ts +2 -0
- package/dist/error-overlay/react-overlay/utils/get-stack-frames.js +27 -0
- package/dist/error-overlay/react-overlay/utils/open-in-editor.d.ts +12 -0
- package/dist/error-overlay/react-overlay/utils/open-in-editor.js +459 -0
- package/dist/error-overlay/react-overlay/utils/parser.d.ts +2 -0
- package/dist/error-overlay/react-overlay/utils/parser.js +117 -0
- package/dist/error-overlay/react-overlay/utils/stack-frame.d.ts +40 -0
- package/dist/error-overlay/react-overlay/utils/stack-frame.js +31 -0
- package/dist/error-overlay/react-overlay/utils/unmapper.d.ts +2 -0
- package/dist/error-overlay/react-overlay/utils/unmapper.js +64 -0
- package/dist/error-overlay/remotion-overlay/AskOnDiscord.d.ts +2 -0
- package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +14 -0
- package/dist/error-overlay/remotion-overlay/Button.d.ts +6 -0
- package/dist/error-overlay/remotion-overlay/Button.js +24 -0
- package/dist/error-overlay/remotion-overlay/CodeFrame.d.ts +6 -0
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +28 -0
- package/dist/error-overlay/remotion-overlay/DismissButton.d.ts +2 -0
- package/dist/error-overlay/remotion-overlay/DismissButton.js +23 -0
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.d.ts +5 -0
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +45 -0
- package/dist/error-overlay/remotion-overlay/ErrorLoader.d.ts +4 -0
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +61 -0
- package/dist/error-overlay/remotion-overlay/ErrorTitle.d.ts +6 -0
- package/dist/error-overlay/remotion-overlay/ErrorTitle.js +41 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts +5 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +90 -0
- package/dist/error-overlay/remotion-overlay/Overlay.d.ts +14 -0
- package/dist/error-overlay/remotion-overlay/Overlay.js +49 -0
- package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.d.ts +4 -0
- package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +13 -0
- package/dist/error-overlay/remotion-overlay/StackFrame.d.ts +8 -0
- package/dist/error-overlay/remotion-overlay/StackFrame.js +48 -0
- package/dist/error-overlay/remotion-overlay/Symbolicating.d.ts +2 -0
- package/dist/error-overlay/remotion-overlay/Symbolicating.js +8 -0
- package/dist/error-overlay/remotion-overlay/carets.d.ts +3 -0
- package/dist/error-overlay/remotion-overlay/carets.js +12 -0
- package/dist/error-overlay/remotion-overlay/format-location.d.ts +1 -0
- package/dist/error-overlay/remotion-overlay/format-location.js +10 -0
- package/dist/error-overlay/remotion-overlay/index.d.ts +1 -0
- package/dist/error-overlay/remotion-overlay/index.js +18 -0
- package/dist/get-latest-remotion-version.d.ts +1 -0
- package/dist/get-latest-remotion-version.js +31 -0
- package/dist/get-package-manager.d.ts +8 -0
- package/dist/get-package-manager.js +38 -0
- package/dist/get-port.d.ts +1 -0
- package/dist/get-port.js +80 -0
- package/dist/hot-middleware/client.d.ts +19 -0
- package/dist/hot-middleware/client.js +206 -0
- package/dist/hot-middleware/index.d.ts +13 -0
- package/dist/hot-middleware/index.js +180 -0
- package/dist/hot-middleware/process-update.d.ts +12 -0
- package/dist/hot-middleware/process-update.js +147 -0
- package/dist/hot-middleware/strip-ansi.d.ts +1 -0
- package/dist/hot-middleware/strip-ansi.js +21 -0
- package/dist/hot-middleware/types.d.ts +37 -0
- package/dist/hot-middleware/types.js +17 -0
- package/dist/is-path-inside.d.ts +1 -0
- package/dist/is-path-inside.js +27 -0
- package/dist/p-limit.d.ts +1 -0
- package/dist/p-limit.js +57 -0
- package/dist/project-info.d.ts +5 -0
- package/dist/project-info.js +22 -0
- package/dist/routes.d.ts +2 -0
- package/dist/routes.js +121 -0
- package/dist/serve-static.d.ts +9 -0
- package/dist/serve-static.js +81 -0
- package/dist/setup-environment.js +3 -1
- package/dist/start-server-pure.d.ts +8 -0
- package/dist/start-server-pure.js +68 -0
- package/dist/start-server.d.ts +8 -0
- package/dist/start-server.js +132 -0
- package/dist/static-preview.d.ts +1 -0
- package/dist/static-preview.js +40 -0
- package/dist/test/expect-to-throw.d.ts +1 -0
- package/dist/test/expect-to-throw.js +14 -0
- package/dist/test/latest-remotion-version.test.d.ts +1 -0
- package/dist/test/latest-remotion-version.test.js +6 -0
- package/dist/test/parse-error-stack.test.d.ts +1 -0
- package/dist/test/parse-error-stack.test.js +17 -0
- package/dist/test/parse-module-not-found.test.d.ts +1 -0
- package/dist/test/parse-module-not-found.test.js +17 -0
- package/dist/test/secure-source-read.test.d.ts +1 -0
- package/dist/test/secure-source-read.test.js +8 -0
- package/dist/ts-alias-plugin.d.ts +4 -0
- package/dist/ts-alias-plugin.js +21 -0
- package/dist/update-available.d.ts +10 -0
- package/dist/update-available.js +36 -0
- package/package.json +3 -3
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.serveStatic = void 0;
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const mime_types_1 = __importDefault(require("mime-types"));
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const middleware_1 = require("./dev-middleware/middleware");
|
|
18
|
+
const range_parser_1 = require("./dev-middleware/range-parser");
|
|
19
|
+
const is_path_inside_1 = require("./is-path-inside");
|
|
20
|
+
const serveStatic = async function (root, hash, req, res) {
|
|
21
|
+
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
22
|
+
// method not allowed
|
|
23
|
+
res.statusCode = 405;
|
|
24
|
+
res.setHeader('Allow', 'GET, HEAD');
|
|
25
|
+
res.setHeader('Content-Length', '0');
|
|
26
|
+
res.end();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const path = (0, path_1.join)(root, new URL(req.url, 'http://localhost').pathname.replace(new RegExp(`^${hash}`), ''));
|
|
30
|
+
if (!(0, is_path_inside_1.isPathInside)(path, root)) {
|
|
31
|
+
res.writeHead(500);
|
|
32
|
+
res.write('Not allowed to read');
|
|
33
|
+
res.end();
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const exists = (0, fs_1.existsSync)(path);
|
|
37
|
+
if (!exists) {
|
|
38
|
+
res.writeHead(404);
|
|
39
|
+
res.write('Not found');
|
|
40
|
+
res.end();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const lstat = await fs_1.promises.lstat(path);
|
|
44
|
+
const isDirectory = lstat.isDirectory();
|
|
45
|
+
if (isDirectory) {
|
|
46
|
+
res.writeHead(500);
|
|
47
|
+
res.write('Is a directory');
|
|
48
|
+
res.end();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const hasRange = req.headers.range && lstat.size;
|
|
52
|
+
if (!hasRange) {
|
|
53
|
+
const readStream = (0, fs_1.createReadStream)(path);
|
|
54
|
+
res.setHeader('content-type', mime_types_1.default.lookup(path) || 'application/octet-stream');
|
|
55
|
+
res.setHeader('content-length', lstat.size);
|
|
56
|
+
res.writeHead(200);
|
|
57
|
+
readStream.pipe(res);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const range = (0, range_parser_1.parseRange)(lstat.size, req.headers.range);
|
|
61
|
+
if (typeof range === 'object' && range.type === 'bytes') {
|
|
62
|
+
const { start, end } = range[0];
|
|
63
|
+
res.setHeader('content-type', mime_types_1.default.lookup(path) || 'application/octet-stream');
|
|
64
|
+
res.setHeader('content-range', (0, middleware_1.getValueContentRangeHeader)('bytes', lstat.size, {
|
|
65
|
+
end,
|
|
66
|
+
start,
|
|
67
|
+
}));
|
|
68
|
+
res.setHeader('content-length', end - start + 1);
|
|
69
|
+
res.writeHead(206);
|
|
70
|
+
const readStream = (0, fs_1.createReadStream)(path, {
|
|
71
|
+
start,
|
|
72
|
+
end,
|
|
73
|
+
});
|
|
74
|
+
readStream.pipe(res);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
res.statusCode = 416;
|
|
78
|
+
res.setHeader('Content-Range', `bytes */${lstat.size}`);
|
|
79
|
+
res.end();
|
|
80
|
+
};
|
|
81
|
+
exports.serveStatic = serveStatic;
|
|
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const remotion_1 = require("remotion");
|
|
4
4
|
remotion_1.Internals.setupEnvVariables();
|
|
5
5
|
remotion_1.Internals.CSSUtils.injectCSS(`
|
|
6
|
-
.css-reset * {
|
|
6
|
+
.css-reset, .css-reset * {
|
|
7
7
|
font-size: 16px;
|
|
8
8
|
line-height: 1;
|
|
9
9
|
color: white;
|
|
10
10
|
font-family: Arial, Helvetica, sans-serif;
|
|
11
|
+
background: transparent;
|
|
12
|
+
box-sizing: border-box;
|
|
11
13
|
}
|
|
12
14
|
`);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebpackOverrideFn } from 'remotion';
|
|
2
|
+
export declare const startServerPure: (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,68 @@
|
|
|
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.startServerPure = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const http_1 = __importDefault(require("http"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const remotion_1 = require("remotion");
|
|
13
|
+
const webpack_1 = __importDefault(require("webpack"));
|
|
14
|
+
const dev_middleware_1 = require("./dev-middleware");
|
|
15
|
+
const get_port_1 = require("./get-port");
|
|
16
|
+
const hot_middleware_1 = require("./hot-middleware");
|
|
17
|
+
const routes_1 = require("./routes");
|
|
18
|
+
const webpack_config_1 = require("./webpack-config");
|
|
19
|
+
const startServerPure = async (entry, userDefinedComponent, options) => {
|
|
20
|
+
var _a, _b, _c, _d, _e;
|
|
21
|
+
const tmpDir = await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-graphics'));
|
|
22
|
+
const config = (0, webpack_config_1.webpackConfig)({
|
|
23
|
+
entry,
|
|
24
|
+
userDefinedComponent,
|
|
25
|
+
outDir: tmpDir,
|
|
26
|
+
environment: 'development',
|
|
27
|
+
webpackOverride: (_a = options === null || options === void 0 ? void 0 : options.webpackOverride) !== null && _a !== void 0 ? _a : remotion_1.Internals.getWebpackOverrideFn(),
|
|
28
|
+
inputProps: (_b = options === null || options === void 0 ? void 0 : options.inputProps) !== null && _b !== void 0 ? _b : {},
|
|
29
|
+
envVariables: (_c = options === null || options === void 0 ? void 0 : options.envVariables) !== null && _c !== void 0 ? _c : {},
|
|
30
|
+
maxTimelineTracks: (_d = options === null || options === void 0 ? void 0 : options.maxTimelineTracks) !== null && _d !== void 0 ? _d : 15,
|
|
31
|
+
});
|
|
32
|
+
const compiler = (0, webpack_1.default)(config);
|
|
33
|
+
const hash = `/static-${crypto_1.default.randomBytes(6).toString('hex')}`;
|
|
34
|
+
/**
|
|
35
|
+
* TODO: Put static server
|
|
36
|
+
*/
|
|
37
|
+
const wdmMiddleware = (0, dev_middleware_1.wdm)(compiler);
|
|
38
|
+
const whm = (0, hot_middleware_1.webpackHotMiddleware)(compiler);
|
|
39
|
+
const server = http_1.default.createServer((request, response) => {
|
|
40
|
+
new Promise((resolve) => {
|
|
41
|
+
wdmMiddleware(request, response, () => {
|
|
42
|
+
resolve();
|
|
43
|
+
});
|
|
44
|
+
})
|
|
45
|
+
.then(() => {
|
|
46
|
+
return new Promise((resolve) => {
|
|
47
|
+
whm(request, response, () => {
|
|
48
|
+
resolve();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
})
|
|
52
|
+
.then(() => {
|
|
53
|
+
(0, routes_1.handleRoutes)(hash, request, response);
|
|
54
|
+
})
|
|
55
|
+
.catch((err) => {
|
|
56
|
+
response.setHeader('content-type', 'application/json');
|
|
57
|
+
response.writeHead(500);
|
|
58
|
+
response.end(JSON.stringify({
|
|
59
|
+
err: err.message,
|
|
60
|
+
}));
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
const desiredPort = (_e = options === null || options === void 0 ? void 0 : options.port) !== null && _e !== void 0 ? _e : undefined;
|
|
64
|
+
const port = await (0, get_port_1.getDesiredPort)(desiredPort, 3000, 3100);
|
|
65
|
+
server.listen(port);
|
|
66
|
+
return port;
|
|
67
|
+
};
|
|
68
|
+
exports.startServerPure = startServerPure;
|
|
@@ -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,132 @@
|
|
|
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 crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const express_1 = __importDefault(require("express"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const remotion_1 = require("remotion");
|
|
13
|
+
const webpack_1 = __importDefault(require("webpack"));
|
|
14
|
+
const dev_middleware_1 = require("./dev-middleware");
|
|
15
|
+
const get_file_source_1 = require("./error-overlay/react-overlay/utils/get-file-source");
|
|
16
|
+
const open_in_editor_1 = require("./error-overlay/react-overlay/utils/open-in-editor");
|
|
17
|
+
const get_port_1 = require("./get-port");
|
|
18
|
+
const hot_middleware_1 = require("./hot-middleware");
|
|
19
|
+
const project_info_1 = require("./project-info");
|
|
20
|
+
const static_preview_1 = require("./static-preview");
|
|
21
|
+
const update_available_1 = require("./update-available");
|
|
22
|
+
const webpack_config_1 = require("./webpack-config");
|
|
23
|
+
const startServer = async (entry, userDefinedComponent, options) => {
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
|
+
const app = (0, express_1.default)();
|
|
26
|
+
const editorGuess = (0, open_in_editor_1.guessEditor)();
|
|
27
|
+
const tmpDir = await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-graphics'));
|
|
28
|
+
const config = (0, webpack_config_1.webpackConfig)({
|
|
29
|
+
entry,
|
|
30
|
+
userDefinedComponent,
|
|
31
|
+
outDir: tmpDir,
|
|
32
|
+
environment: 'development',
|
|
33
|
+
webpackOverride: (_a = options === null || options === void 0 ? void 0 : options.webpackOverride) !== null && _a !== void 0 ? _a : remotion_1.Internals.getWebpackOverrideFn(),
|
|
34
|
+
inputProps: (_b = options === null || options === void 0 ? void 0 : options.inputProps) !== null && _b !== void 0 ? _b : {},
|
|
35
|
+
envVariables: (_c = options === null || options === void 0 ? void 0 : options.envVariables) !== null && _c !== void 0 ? _c : {},
|
|
36
|
+
maxTimelineTracks: (_d = options === null || options === void 0 ? void 0 : options.maxTimelineTracks) !== null && _d !== void 0 ? _d : 15,
|
|
37
|
+
});
|
|
38
|
+
const compiler = (0, webpack_1.default)(config);
|
|
39
|
+
const hash = `/static-${crypto_1.default.randomBytes(6).toString('hex')}`;
|
|
40
|
+
app.use(hash, express_1.default.static(path_1.default.join(process.cwd(), 'public'), {
|
|
41
|
+
cacheControl: true,
|
|
42
|
+
dotfiles: 'allow',
|
|
43
|
+
etag: true,
|
|
44
|
+
extensions: false,
|
|
45
|
+
fallthrough: false,
|
|
46
|
+
immutable: false,
|
|
47
|
+
index: false,
|
|
48
|
+
lastModified: true,
|
|
49
|
+
maxAge: 0,
|
|
50
|
+
redirect: true,
|
|
51
|
+
}));
|
|
52
|
+
app.use((0, dev_middleware_1.wdm)(compiler));
|
|
53
|
+
app.use((0, hot_middleware_1.webpackHotMiddleware)(compiler));
|
|
54
|
+
app.get('/api/update', (_req, res) => {
|
|
55
|
+
(0, update_available_1.isUpdateAvailableWithTimeout)()
|
|
56
|
+
.then((data) => {
|
|
57
|
+
res.json(data);
|
|
58
|
+
})
|
|
59
|
+
.catch((err) => {
|
|
60
|
+
res.status(500).json({
|
|
61
|
+
err: err.message,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
app.get('/api/project-info', (_req, res) => {
|
|
66
|
+
(0, project_info_1.getProjectInfo)()
|
|
67
|
+
.then((data) => {
|
|
68
|
+
res.json(data);
|
|
69
|
+
})
|
|
70
|
+
.catch((err) => {
|
|
71
|
+
res.status(500).json({
|
|
72
|
+
err: err.message,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
app.get('/api/file-source', (req, res) => {
|
|
77
|
+
const { f } = req.query;
|
|
78
|
+
if (typeof f !== 'string') {
|
|
79
|
+
throw new Error('must pass `f` parameter');
|
|
80
|
+
}
|
|
81
|
+
(0, get_file_source_1.getFileSource)(decodeURIComponent(f))
|
|
82
|
+
.then((data) => {
|
|
83
|
+
res.write(data);
|
|
84
|
+
return res.end();
|
|
85
|
+
})
|
|
86
|
+
.catch((err) => {
|
|
87
|
+
res.status(500).json({
|
|
88
|
+
err: err.message,
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
app.use(express_1.default.json());
|
|
93
|
+
app.post('/api/open-in-editor', async (req, res) => {
|
|
94
|
+
try {
|
|
95
|
+
const body = req.body;
|
|
96
|
+
if (!('stack' in body)) {
|
|
97
|
+
throw new TypeError('Need to pass stack');
|
|
98
|
+
}
|
|
99
|
+
const stack = body.stack;
|
|
100
|
+
const guess = await editorGuess;
|
|
101
|
+
const didOpen = await (0, open_in_editor_1.launchEditor)({
|
|
102
|
+
colNumber: stack.originalColumnNumber,
|
|
103
|
+
editor: guess[0],
|
|
104
|
+
fileName: path_1.default.resolve(process.cwd(), stack.originalFileName),
|
|
105
|
+
lineNumber: stack.originalLineNumber,
|
|
106
|
+
vsCodeNewWindow: false,
|
|
107
|
+
});
|
|
108
|
+
res.json({
|
|
109
|
+
success: didOpen,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
res.json({
|
|
114
|
+
success: false,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
app.use('favicon.png', (_req, res) => {
|
|
119
|
+
res.sendFile(path_1.default.join(__dirname, '..', 'web', 'favicon.png'));
|
|
120
|
+
});
|
|
121
|
+
const edit = await editorGuess;
|
|
122
|
+
const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit[0]);
|
|
123
|
+
app.use('*', (_, res) => {
|
|
124
|
+
res.set('content-type', 'text/html');
|
|
125
|
+
res.end((0, static_preview_1.indexHtml)(hash, '/', displayName));
|
|
126
|
+
});
|
|
127
|
+
const desiredPort = (_e = options === null || options === void 0 ? void 0 : options.port) !== null && _e !== void 0 ? _e : undefined;
|
|
128
|
+
const port = await (0, get_port_1.getDesiredPort)(desiredPort, 3000, 3100);
|
|
129
|
+
app.listen(port);
|
|
130
|
+
return port;
|
|
131
|
+
};
|
|
132
|
+
exports.startServer = startServer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const indexHtml: (staticHash: string, baseDir: string, editorName: string | null) => string;
|
|
@@ -0,0 +1,40 @@
|
|
|
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.indexHtml = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const indexHtml = (staticHash, baseDir, editorName) => `
|
|
9
|
+
<!DOCTYPE html>
|
|
10
|
+
<html lang="en">
|
|
11
|
+
<head>
|
|
12
|
+
<meta charset="UTF-8" />
|
|
13
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
14
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" />
|
|
15
|
+
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
16
|
+
<title>Remotion Preview</title>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<script>window.remotion_staticBase = "${staticHash}";</script>
|
|
20
|
+
<div id="video-container"></div>
|
|
21
|
+
<div id="explainer-container"></div>
|
|
22
|
+
${editorName
|
|
23
|
+
? `<script>window.remotion_editorName = "${editorName}";</script>`
|
|
24
|
+
: '<script>window.remotion_editorName = null;</script>'}
|
|
25
|
+
<script>window.remotion_projectName = ${JSON.stringify(path_1.default.basename(process.cwd()))};</script>
|
|
26
|
+
<script>window.remotion_cwd = ${JSON.stringify(process.cwd())};</script>
|
|
27
|
+
|
|
28
|
+
<div id="container"></div>
|
|
29
|
+
<div id="menuportal-0"></div>
|
|
30
|
+
<div id="menuportal-1"></div>
|
|
31
|
+
<div id="menuportal-2"></div>
|
|
32
|
+
<div id="menuportal-3"></div>
|
|
33
|
+
<div id="menuportal-4"></div>
|
|
34
|
+
<div id="menuportal-5"></div>
|
|
35
|
+
<div id="remotion-error-overlay"></div>
|
|
36
|
+
<script src="${baseDir}bundle.js"></script>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
|
39
|
+
`.trim();
|
|
40
|
+
exports.indexHtml = indexHtml;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const expectToThrow: (func: Function, err: RegExp) => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectToThrow = void 0;
|
|
4
|
+
const expectToThrow = (func, err) => {
|
|
5
|
+
// Even though the error is caught, it still gets printed to the console
|
|
6
|
+
// so we mock that out to avoid the wall of red text.
|
|
7
|
+
jest.spyOn(console, 'error');
|
|
8
|
+
// @ts-expect-error
|
|
9
|
+
console.error.mockImplementation(() => undefined);
|
|
10
|
+
expect(func).toThrow(err);
|
|
11
|
+
// @ts-expect-error
|
|
12
|
+
console.error.mockRestore();
|
|
13
|
+
};
|
|
14
|
+
exports.expectToThrow = expectToThrow;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const get_latest_remotion_version_1 = require("../get-latest-remotion-version");
|
|
4
|
+
test('Should be able to get a Remotion version', async () => {
|
|
5
|
+
expect(await (0, get_latest_remotion_version_1.getLatestRemotionVersion)()).toMatch(/^(([0-9]+)\.([0-9]+)\.([0-9]+))$/);
|
|
6
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const map_error_to_react_stack_1 = require("../error-overlay/react-overlay/effects/map-error-to-react-stack");
|
|
4
|
+
const message = 'Module build failed (from ../../node_modules/.pnpm/esbuild-loader@2.15.1_webpack@5.60.0/node_modules/esbuild-loader/dist/index.js):\nError: Transform failed with 1 error:\n/Users/jonathanburger/remotion/packages/example/src/Video.tsx:31:83: error: Expected ">" but found "\\": 100}\'`\\n\\t\\t\\t\\tdurationInFrames={inputProps?.duration ?? 20}\\n\\t\\t\\t/>\\n\\t\\t\\t<Composition\\n\\t\\t\\t\\tid=\\""\n at failureErrorWithLog (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1475:15)\n at /Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1264:29\n at /Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:611:9\n at handleIncomingPacket (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:708:9)\n at Socket.readFromStdout (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:578:7)\n at Socket.emit (node:events:390:28)\n at addChunk (node:internal/streams/readable:315:12)\n at readableAddChunk (node:internal/streams/readable:289:9)\n at Socket.Readable.push (node:internal/streams/readable:228:10)\n at Pipe.onStreamRead (node:internal/stream_base_commons:199:23)';
|
|
5
|
+
const stack = 'Error: Module build failed (from ../../node_modules/.pnpm/esbuild-loader@2.15.1_webpack@5.60.0/node_modules/esbuild-loader/dist/index.js):\nError: Transform failed with 1 error:\n/Users/jonathanburger/remotion/packages/example/src/Video.tsx:31:83: error: Expected ">" but found "\\": 100}\'`\\n\\t\\t\\t\\tdurationInFrames={inputProps?.duration ?? 20}\\n\\t\\t\\t/>\\n\\t\\t\\t<Composition\\n\\t\\t\\t\\tid=\\""\n at failureErrorWithLog (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1475:15)\n at /Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1264:29\n at /Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:611:9\n at handleIncomingPacket (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:708:9)\n at Socket.readFromStdout (/Users/jonathanburger/remotion/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:578:7)\n at Socket.emit (node:events:390:28)\n at addChunk (node:internal/streams/readable:315:12)\n at readableAddChunk (node:internal/streams/readable:289:9)\n at Socket.Readable.push (node:internal/streams/readable:228:10)\n at Pipe.onStreamRead (node:internal/stream_base_commons:199:23)';
|
|
6
|
+
test('Parse error stack', () => {
|
|
7
|
+
expect((0, map_error_to_react_stack_1.getLocationFromBuildError)({
|
|
8
|
+
stack,
|
|
9
|
+
message,
|
|
10
|
+
name: 'Error',
|
|
11
|
+
})).toEqual({
|
|
12
|
+
fileName: '/Users/jonathanburger/remotion/packages/example/src/Video.tsx',
|
|
13
|
+
lineNumber: 31,
|
|
14
|
+
columnNumber: 83,
|
|
15
|
+
message: 'error: Expected ">" but found "\\": 100}\'`\\n\\t\\t\\t\\tdurationInFrames={inputProps?.duration ?? 20}\\n\\t\\t\\t/>\\n\\t\\t\\t<Composition\\n\\t\\t\\t\\tid=\\""',
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const map_error_to_react_stack_1 = require("../error-overlay/react-overlay/effects/map-error-to-react-stack");
|
|
4
|
+
const message = "Cannot find module 'does not exist'";
|
|
5
|
+
const stack = "Error: Cannot find module 'does not exist'\n at webpackMissingModule (http://localhost:3000/bundle.js:1669:50)\n at ./src/Video.tsx (http://localhost:3000/bundle.js:1669:139)\n at Module.options.factory (http://localhost:3000/bundle.js:142235:31)\n at __webpack_require__ (http://localhost:3000/bundle.js:141612:33)\n at fn (http://localhost:3000/bundle.js:141890:21)\n at ./src/index.tsx (http://localhost:3000/bundle.js:2114:64)\n at Module.options.factory (http://localhost:3000/bundle.js:142235:31)\n at __webpack_require__ (http://localhost:3000/bundle.js:141612:33)\n at http://localhost:3000/bundle.js:142842:11\n at http://localhost:3000/bundle.js:142846:12";
|
|
6
|
+
test('Parse error stack', () => {
|
|
7
|
+
expect((0, map_error_to_react_stack_1.getLocationFromBuildError)({
|
|
8
|
+
stack,
|
|
9
|
+
message,
|
|
10
|
+
name: 'Error',
|
|
11
|
+
})).toEqual({
|
|
12
|
+
fileName: './src/Video.tsx',
|
|
13
|
+
lineNumber: 1,
|
|
14
|
+
columnNumber: 0,
|
|
15
|
+
message: "Error: Cannot find module 'does not exist'",
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const get_file_source_1 = require("../error-overlay/react-overlay/utils/get-file-source");
|
|
4
|
+
const expect_to_throw_1 = require("./expect-to-throw");
|
|
5
|
+
test('Should not allow to read files outside of the project', () => {
|
|
6
|
+
(0, expect_to_throw_1.expectToThrow)(() => (0, get_file_source_1.getFileSource)('/etc/passwd'), /Not allowed to open/);
|
|
7
|
+
(0, expect_to_throw_1.expectToThrow)(() => (0, get_file_source_1.getFileSource)('.env'), /Not allowed to open/);
|
|
8
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.myPlugin = void 0;
|
|
4
|
+
// tsc-helpers.js
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const tsconfig = require('../../tsconfig.json');
|
|
7
|
+
const fixBaseUrl = (importPath) => importPath.startsWith('./')
|
|
8
|
+
? importPath
|
|
9
|
+
: // Assumption: this is an aliased import
|
|
10
|
+
// Read tsconfig directly to avoid any drift
|
|
11
|
+
path.join(tsconfig.compilerOptions.baseUrl, importPath);
|
|
12
|
+
// some-plugin.js
|
|
13
|
+
exports.myPlugin = {
|
|
14
|
+
name: 'my-plugin',
|
|
15
|
+
setup: (build) => {
|
|
16
|
+
build.onResolve({ filter: /(.*)/ }, async (args) => {
|
|
17
|
+
args.path = fixBaseUrl(args.path);
|
|
18
|
+
// 🍕 delicious
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
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 isUpdateAvailableWithTimeout: () => Promise<Info>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
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 = 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
|
+
return {
|
|
13
|
+
updateAvailable: semver_1.default.lt(currentVersion, latest),
|
|
14
|
+
currentVersion,
|
|
15
|
+
latestVersion: latest,
|
|
16
|
+
timedOut: false,
|
|
17
|
+
packageManager: (0, get_package_manager_1.getPackageManager)(),
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
const isUpdateAvailableWithTimeout = () => {
|
|
21
|
+
const packageJson = require('../package.json');
|
|
22
|
+
const { version } = packageJson;
|
|
23
|
+
const threeSecTimeout = new Promise((resolve) => {
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
resolve({
|
|
26
|
+
currentVersion: version,
|
|
27
|
+
latestVersion: version,
|
|
28
|
+
updateAvailable: false,
|
|
29
|
+
timedOut: true,
|
|
30
|
+
packageManager: (0, get_package_manager_1.getPackageManager)(),
|
|
31
|
+
});
|
|
32
|
+
}, 3000);
|
|
33
|
+
});
|
|
34
|
+
return Promise.race([threeSecTimeout, isUpdateAvailable(version)]);
|
|
35
|
+
};
|
|
36
|
+
exports.isUpdateAvailableWithTimeout = isUpdateAvailableWithTimeout;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/bundler",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.11",
|
|
4
4
|
"description": "Bundler for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"css-loader": "5.2.7",
|
|
27
27
|
"esbuild": "0.14.19",
|
|
28
28
|
"react-refresh": "0.9.0",
|
|
29
|
-
"remotion": "3.1.
|
|
29
|
+
"remotion": "3.1.11",
|
|
30
30
|
"style-loader": "2.0.0",
|
|
31
31
|
"webpack": "5.72.0"
|
|
32
32
|
},
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "bc4184c9faf944a3bac2fd56bdf990cc74e3ec94"
|
|
67
67
|
}
|