@remotion/cli 3.0.16 → 3.0.19
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 +2 -1
- package/dist/download-progress.js +4 -1
- 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/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/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 +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 +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 +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 +11 -0
- package/dist/preview-server/update-available.js +44 -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
|
@@ -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 {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* range-parser
|
|
4
|
+
* Copyright(c) 2012-2014 TJ Holowaychuk
|
|
5
|
+
* Copyright(c) 2015-2016 Douglas Christopher Wilson
|
|
6
|
+
* MIT Licensed
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.parseRange = void 0;
|
|
10
|
+
function parseRange(size, str) {
|
|
11
|
+
if (typeof str !== 'string') {
|
|
12
|
+
throw new TypeError('argument str must be a string');
|
|
13
|
+
}
|
|
14
|
+
const index = str.indexOf('=');
|
|
15
|
+
if (index === -1) {
|
|
16
|
+
return -2;
|
|
17
|
+
}
|
|
18
|
+
// split the range string
|
|
19
|
+
const arr = str.slice(index + 1).split(',');
|
|
20
|
+
const ranges = [];
|
|
21
|
+
// add ranges type
|
|
22
|
+
ranges.type = str.slice(0, index);
|
|
23
|
+
// parse all ranges
|
|
24
|
+
for (let i = 0; i < arr.length; i++) {
|
|
25
|
+
const range = arr[i].split('-');
|
|
26
|
+
let start = parseInt(range[0], 10);
|
|
27
|
+
let end = parseInt(range[1], 10);
|
|
28
|
+
// -nnn
|
|
29
|
+
if (isNaN(start)) {
|
|
30
|
+
start = size - end;
|
|
31
|
+
end = size - 1;
|
|
32
|
+
// nnn-
|
|
33
|
+
}
|
|
34
|
+
else if (isNaN(end)) {
|
|
35
|
+
end = size - 1;
|
|
36
|
+
}
|
|
37
|
+
// limit last-byte-pos to current length
|
|
38
|
+
if (end > size - 1) {
|
|
39
|
+
end = size - 1;
|
|
40
|
+
}
|
|
41
|
+
// invalid or unsatisifiable
|
|
42
|
+
if (isNaN(start) || isNaN(end) || start > end || start < 0) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
// add range
|
|
46
|
+
ranges.push({
|
|
47
|
+
start,
|
|
48
|
+
end,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (ranges.length < 1) {
|
|
52
|
+
return -1;
|
|
53
|
+
}
|
|
54
|
+
return combineRanges(ranges);
|
|
55
|
+
}
|
|
56
|
+
exports.parseRange = parseRange;
|
|
57
|
+
function combineRanges(ranges) {
|
|
58
|
+
const ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
|
|
59
|
+
let j = 0;
|
|
60
|
+
for (let i = 1; i < ordered.length; i++) {
|
|
61
|
+
const range = ordered[i];
|
|
62
|
+
const current = ordered[j];
|
|
63
|
+
if (range.start > current.end + 1) {
|
|
64
|
+
// next range
|
|
65
|
+
ordered[++j] = range;
|
|
66
|
+
}
|
|
67
|
+
else if (range.end > current.end) {
|
|
68
|
+
// extend range
|
|
69
|
+
current.end = range.end;
|
|
70
|
+
current.index = Math.min(current.index, range.index);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
ordered.length = j + 1;
|
|
74
|
+
const combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
|
|
75
|
+
combined.type = ranges.type;
|
|
76
|
+
return combined;
|
|
77
|
+
}
|
|
78
|
+
function mapWithIndex(range, index) {
|
|
79
|
+
return {
|
|
80
|
+
start: range.start,
|
|
81
|
+
end: range.end,
|
|
82
|
+
index,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function mapWithoutIndex(range) {
|
|
86
|
+
return {
|
|
87
|
+
start: range.start,
|
|
88
|
+
end: range.end,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function sortByRangeIndex(a, b) {
|
|
92
|
+
return a.index - b.index;
|
|
93
|
+
}
|
|
94
|
+
function sortByRangeStart(a, b) {
|
|
95
|
+
return a.start - b.start;
|
|
96
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ready = void 0;
|
|
4
|
+
function ready(context, callback) {
|
|
5
|
+
if (context.state) {
|
|
6
|
+
callback(context.stats);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
context.callbacks.push(callback);
|
|
10
|
+
}
|
|
11
|
+
exports.ready = ready;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupHooks = void 0;
|
|
4
|
+
const log_1 = require("../../log");
|
|
5
|
+
const is_color_supported_1 = require("./is-color-supported");
|
|
6
|
+
function setupHooks(context) {
|
|
7
|
+
function invalid() {
|
|
8
|
+
// We are now in invalid state
|
|
9
|
+
context.state = false;
|
|
10
|
+
context.stats = undefined;
|
|
11
|
+
}
|
|
12
|
+
function done(stats) {
|
|
13
|
+
context.state = true;
|
|
14
|
+
context.stats = stats;
|
|
15
|
+
// Do the stuff in nextTick, because bundle may be invalidated if a change happened while compiling
|
|
16
|
+
process.nextTick(() => {
|
|
17
|
+
const { logger, state, callbacks } = context;
|
|
18
|
+
// Check if still in valid state
|
|
19
|
+
if (!state || !stats) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
logger.log('Compilation finished');
|
|
23
|
+
const statsOptions = {
|
|
24
|
+
preset: 'normal',
|
|
25
|
+
colors: is_color_supported_1.isColorSupported,
|
|
26
|
+
};
|
|
27
|
+
const printedStats = stats.toString(statsOptions);
|
|
28
|
+
// Avoid extra empty line when `stats: 'none'`
|
|
29
|
+
if (printedStats) {
|
|
30
|
+
log_1.Log.info(printedStats);
|
|
31
|
+
}
|
|
32
|
+
context.callbacks = [];
|
|
33
|
+
callbacks.forEach((callback) => {
|
|
34
|
+
callback(stats);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
context.compiler.hooks.watchRun.tap('remotion', invalid);
|
|
39
|
+
context.compiler.hooks.invalid.tap('remotion', invalid);
|
|
40
|
+
context.compiler.hooks.done.tap('remotion', done);
|
|
41
|
+
}
|
|
42
|
+
exports.setupHooks = setupHooks;
|
|
@@ -0,0 +1,13 @@
|
|
|
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.setupOutputFileSystem = void 0;
|
|
7
|
+
const memfs_1 = __importDefault(require("memfs"));
|
|
8
|
+
function setupOutputFileSystem(context) {
|
|
9
|
+
const outputFileSystem = memfs_1.default.createFsFromVolume(new memfs_1.default.Volume());
|
|
10
|
+
context.compiler.outputFileSystem = outputFileSystem;
|
|
11
|
+
context.outputFileSystem = outputFileSystem;
|
|
12
|
+
}
|
|
13
|
+
exports.setupOutputFileSystem = setupOutputFileSystem;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { webpack } from '@remotion/bundler';
|
|
2
|
+
import type memfs from 'memfs';
|
|
3
|
+
export declare type DevMiddlewareContext = {
|
|
4
|
+
state: boolean;
|
|
5
|
+
stats: webpack.Stats | undefined;
|
|
6
|
+
callbacks: ((stats: webpack.Stats) => undefined | Promise<void>)[];
|
|
7
|
+
compiler: webpack.Compiler;
|
|
8
|
+
logger: ReturnType<webpack.Compiler['getInfrastructureLogger']>;
|
|
9
|
+
outputFileSystem: memfs.IFs | undefined;
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const react_overlay_1 = require("./react-overlay");
|
|
4
|
+
const remotion_overlay_1 = require("./remotion-overlay");
|
|
5
|
+
const Overlay_1 = require("./remotion-overlay/Overlay");
|
|
6
|
+
(0, react_overlay_1.startReportingRuntimeErrors)(() => {
|
|
7
|
+
if (module.hot) {
|
|
8
|
+
module.hot.addStatusHandler((status) => {
|
|
9
|
+
var _a;
|
|
10
|
+
if (status === 'apply') {
|
|
11
|
+
if ((0, react_overlay_1.didUnmountReactApp)()) {
|
|
12
|
+
return window.location.reload();
|
|
13
|
+
}
|
|
14
|
+
(_a = Overlay_1.setErrorsRef.current) === null || _a === void 0 ? void 0 : _a.setErrors({
|
|
15
|
+
type: 'clear',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
(0, remotion_overlay_1.mountRemotionOverlay)();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { ReactFrame } from './proxy-console';
|
|
8
|
+
export declare function massageWarning(warning: string, frames: ReactFrame[]): {
|
|
9
|
+
message: string;
|
|
10
|
+
stack: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Source code adapted from https://github.com/facebook/create-react-app/tree/main/packages/react-error-overlay and refactored in Typescript. This file is MIT-licensed.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.massageWarning = void 0;
|
|
7
|
+
function stripInlineStacktrace(message) {
|
|
8
|
+
return message
|
|
9
|
+
.split('\n')
|
|
10
|
+
.filter((line) => !line.match(/^\s*in/))
|
|
11
|
+
.join('\n'); // " in Foo"
|
|
12
|
+
}
|
|
13
|
+
function massageWarning(warning, frames) {
|
|
14
|
+
const message = stripInlineStacktrace(warning);
|
|
15
|
+
// Reassemble the stack with full filenames provided by React
|
|
16
|
+
let stack = '';
|
|
17
|
+
let lastFilename;
|
|
18
|
+
let lastLineNumber;
|
|
19
|
+
for (let index = 0; index < frames.length; ++index) {
|
|
20
|
+
const { fileName, lineNumber } = frames[index];
|
|
21
|
+
if (fileName === null ||
|
|
22
|
+
lineNumber === null ||
|
|
23
|
+
lineNumber === undefined ||
|
|
24
|
+
fileName === undefined) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (fileName === lastFilename &&
|
|
28
|
+
typeof lineNumber === 'number' &&
|
|
29
|
+
typeof lastLineNumber === 'number' &&
|
|
30
|
+
Math.abs(lineNumber - lastLineNumber) < 3) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
lastFilename = fileName;
|
|
34
|
+
lastLineNumber = lineNumber;
|
|
35
|
+
let { name } = frames[index];
|
|
36
|
+
name = name || '(anonymous function)';
|
|
37
|
+
stack += `in ${name} (at ${fileName}:${lineNumber})\n`;
|
|
38
|
+
}
|
|
39
|
+
return { message, stack };
|
|
40
|
+
}
|
|
41
|
+
exports.massageWarning = massageWarning;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLocationFromBuildError = void 0;
|
|
4
|
+
const remotion_1 = require("remotion");
|
|
5
|
+
const getLocationFromBuildError = (err) => {
|
|
6
|
+
var _a;
|
|
7
|
+
if (!err.stack) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
if (!err.stack.startsWith('Error: Module build failed') &&
|
|
11
|
+
!err.stack.startsWith('Error: Cannot find module')) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const split = err.stack.split('\n');
|
|
15
|
+
return ((_a = split
|
|
16
|
+
.map((s) => {
|
|
17
|
+
if (s.startsWith('Error')) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const matchWebpackOrEsbuild = s.match(/(.*):([0-9]+):([0-9]+): (.*)/);
|
|
21
|
+
if (matchWebpackOrEsbuild) {
|
|
22
|
+
return {
|
|
23
|
+
fileName: matchWebpackOrEsbuild[1],
|
|
24
|
+
lineNumber: Number(matchWebpackOrEsbuild[2]),
|
|
25
|
+
columnNumber: Number(matchWebpackOrEsbuild[3]),
|
|
26
|
+
message: matchWebpackOrEsbuild[4],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const matchMissingModule = s.match(/\s+at(.*)\s\((.*)\)/);
|
|
30
|
+
if (!matchMissingModule) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (s.includes('webpackMissingModule')) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const [, filename] = matchMissingModule;
|
|
37
|
+
return {
|
|
38
|
+
columnNumber: 0,
|
|
39
|
+
lineNumber: 1,
|
|
40
|
+
message: split[0],
|
|
41
|
+
fileName: filename.trim(),
|
|
42
|
+
};
|
|
43
|
+
})
|
|
44
|
+
.filter(remotion_1.Internals.truthy)[0]) !== null && _a !== void 0 ? _a : null);
|
|
45
|
+
};
|
|
46
|
+
exports.getLocationFromBuildError = getLocationFromBuildError;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
export declare type ReactFrame = {
|
|
8
|
+
fileName: string | null;
|
|
9
|
+
lineNumber: number | null;
|
|
10
|
+
name: string | null;
|
|
11
|
+
};
|
|
12
|
+
declare const registerReactStack: () => void;
|
|
13
|
+
declare const unregisterReactStack: () => void;
|
|
14
|
+
declare type ErrorData = {
|
|
15
|
+
type: 'webpack-error';
|
|
16
|
+
message: string;
|
|
17
|
+
frames: ReactFrame[];
|
|
18
|
+
} | {
|
|
19
|
+
type: 'build-error';
|
|
20
|
+
error: Error;
|
|
21
|
+
};
|
|
22
|
+
declare type ConsoleProxyCallback = (data: ErrorData) => void;
|
|
23
|
+
declare const permanentRegister: (type: 'error', callback: ConsoleProxyCallback) => void;
|
|
24
|
+
export { permanentRegister, registerReactStack, unregisterReactStack };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
/*
|
|
4
|
+
Source code adapted from https://github.com/facebook/create-react-app/tree/main/packages/react-error-overlay and refactored in Typescript. This file is MIT-licensed.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.unregisterReactStack = exports.registerReactStack = exports.permanentRegister = void 0;
|
|
8
|
+
const reactFrameStack = [];
|
|
9
|
+
// This is a stripped down barebones version of this proposal:
|
|
10
|
+
// https://gist.github.com/sebmarkbage/bdefa100f19345229d526d0fdd22830f
|
|
11
|
+
// We're implementing just enough to get the invalid element type warnings
|
|
12
|
+
// to display the component stack in React 15.6+:
|
|
13
|
+
// https://github.com/facebook/react/pull/9679
|
|
14
|
+
const registerReactStack = () => {
|
|
15
|
+
if (typeof console !== 'undefined') {
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
console.reactStack = (frames) => reactFrameStack.push(frames);
|
|
18
|
+
// @ts-expect-error
|
|
19
|
+
console.reactStackEnd = () => reactFrameStack.pop();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.registerReactStack = registerReactStack;
|
|
23
|
+
const unregisterReactStack = () => {
|
|
24
|
+
if (typeof console !== 'undefined') {
|
|
25
|
+
// @ts-expect-error
|
|
26
|
+
console.reactStack = undefined;
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
console.reactStackEnd = undefined;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.unregisterReactStack = unregisterReactStack;
|
|
32
|
+
const permanentRegister = function (type, callback) {
|
|
33
|
+
if (typeof console !== 'undefined') {
|
|
34
|
+
const orig = console[type];
|
|
35
|
+
if (typeof orig === 'function') {
|
|
36
|
+
console[type] = function (...args) {
|
|
37
|
+
try {
|
|
38
|
+
const message = args[0];
|
|
39
|
+
if (typeof message === 'string' && reactFrameStack.length > 0) {
|
|
40
|
+
callback({
|
|
41
|
+
type: 'webpack-error',
|
|
42
|
+
message,
|
|
43
|
+
frames: reactFrameStack[reactFrameStack.length - 1],
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (message instanceof Error) {
|
|
47
|
+
callback({
|
|
48
|
+
type: 'build-error',
|
|
49
|
+
error: message,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
// Warnings must never crash. Rethrow with a clean stack.
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
throw err;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return orig.apply(this, args);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
exports.permanentRegister = permanentRegister;
|