@remotion/cli 4.0.0-alpha5 → 4.0.0-alpha6
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/better-opn/index.js +3 -3
- package/dist/cloudrun-command.d.ts +1 -0
- package/dist/cloudrun-command.js +27 -0
- package/dist/color-math.js +3 -1
- package/dist/convert-entry-point-to-serve-url.js +2 -2
- package/dist/editor/components/MenuToolbar.js +15 -3
- package/dist/editor/components/RenderModal/CliCopyButton.js +42 -9
- package/dist/editor/components/RenderModal/InfoTooltip.js +2 -1
- package/dist/editor/components/RenderModal/OptionExplainer.js +13 -3
- package/dist/editor/components/RenderModal/RenderModalPicture.js +1 -1
- package/dist/editor/components/SidebarCollapserControls.js +12 -6
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/colors.js +1 -1
- package/dist/entry-point.js +17 -17
- package/dist/ffmpeg.js +8 -3
- package/dist/file-watcher.js +5 -5
- package/dist/get-cli-options.js +4 -4
- package/dist/get-config-file-name.js +6 -6
- package/dist/get-env.js +10 -10
- package/dist/get-input-props.js +9 -9
- package/dist/get-network-address.js +2 -2
- package/dist/index.js +4 -0
- package/dist/load-config.js +8 -8
- package/dist/preview-server/api-types.d.ts +1 -1
- package/dist/preview-server/dev-middleware/compatible-api.d.ts +2 -2
- package/dist/preview-server/dev-middleware/middleware.d.ts +1 -1
- package/dist/preview-server/dev-middleware/middleware.js +7 -7
- package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.js +5 -5
- package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.js +17 -17
- package/dist/preview-server/file-existence-watchers.js +3 -3
- package/dist/preview-server/get-absolute-public-dir.js +3 -3
- package/dist/preview-server/get-package-manager.js +3 -3
- package/dist/preview-server/handler.d.ts +1 -1
- package/dist/preview-server/hot-middleware/index.d.ts +1 -1
- package/dist/preview-server/hot-middleware/index.js +2 -2
- package/dist/preview-server/live-events.d.ts +1 -1
- package/dist/preview-server/parse-body.d.ts +1 -1
- package/dist/preview-server/project-info.js +5 -5
- package/dist/preview-server/public-folder.js +8 -8
- package/dist/preview-server/render-queue/open-directory-in-finder.js +8 -8
- package/dist/preview-server/render-queue/queue.js +2 -2
- package/dist/preview-server/routes/can-update-default-props.js +2 -2
- package/dist/preview-server/routes/update-default-props.js +3 -3
- package/dist/preview-server/routes.d.ts +1 -1
- package/dist/preview-server/routes.js +8 -8
- package/dist/preview-server/serve-static.d.ts +1 -1
- package/dist/preview-server/serve-static.js +7 -7
- package/dist/preview-server/start-server.js +2 -2
- package/dist/preview.js +4 -4
- package/dist/render-flows/render.js +5 -5
- package/dist/render-flows/still.js +3 -3
- package/dist/resolve-from.js +5 -5
- package/dist/upgrade.js +2 -2
- package/dist/versions.js +2 -2
- package/package.json +7 -7
package/dist/get-input-props.js
CHANGED
|
@@ -4,23 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getInputProps = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const log_1 = require("./log");
|
|
11
11
|
const parse_command_line_1 = require("./parse-command-line");
|
|
12
12
|
const getInputProps = (onUpdate) => {
|
|
13
13
|
if (!parse_command_line_1.parsedCli.props) {
|
|
14
14
|
return {};
|
|
15
15
|
}
|
|
16
|
-
const jsonFile =
|
|
16
|
+
const jsonFile = node_path_1.default.resolve(process.cwd(), parse_command_line_1.parsedCli.props);
|
|
17
17
|
try {
|
|
18
|
-
if (
|
|
19
|
-
const rawJsonData =
|
|
18
|
+
if (node_fs_1.default.existsSync(jsonFile)) {
|
|
19
|
+
const rawJsonData = node_fs_1.default.readFileSync(jsonFile, 'utf-8');
|
|
20
20
|
if (onUpdate) {
|
|
21
|
-
|
|
21
|
+
node_fs_1.default.watchFile(jsonFile, { interval: 100 }, () => {
|
|
22
22
|
try {
|
|
23
|
-
onUpdate(JSON.parse(
|
|
23
|
+
onUpdate(JSON.parse(node_fs_1.default.readFileSync(jsonFile, 'utf-8')));
|
|
24
24
|
log_1.Log.info(`Updated input props from ${jsonFile}.`);
|
|
25
25
|
}
|
|
26
26
|
catch (err) {
|
|
@@ -36,7 +36,7 @@ const getInputProps = (onUpdate) => {
|
|
|
36
36
|
log_1.Log.error('You passed --props but it was neither valid JSON nor a file path to a valid JSON file.');
|
|
37
37
|
log_1.Log.info('Got the following value:', parse_command_line_1.parsedCli.props);
|
|
38
38
|
log_1.Log.error('Check that your input is parseable using `JSON.parse` and try again.');
|
|
39
|
-
if (
|
|
39
|
+
if (node_os_1.default.platform() === 'win32') {
|
|
40
40
|
log_1.Log.warn('Note: Windows handles escaping of quotes very weirdly in the command line.');
|
|
41
41
|
log_1.Log.warn('This might have led to you having this problem.');
|
|
42
42
|
log_1.Log.warn('Consider using the alternative API for --props which is to pass');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getNetworkAddress = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_os_1 = require("node:os");
|
|
5
5
|
const getNetworkAddress = () => {
|
|
6
|
-
for (const interfaceDetails of Object.values((0,
|
|
6
|
+
for (const interfaceDetails of Object.values((0, node_os_1.networkInterfaces)())) {
|
|
7
7
|
if (!interfaceDetails)
|
|
8
8
|
continue;
|
|
9
9
|
for (const details of interfaceDetails) {
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const minimist_1 = __importDefault(require("minimist"));
|
|
|
23
23
|
const benchmark_1 = require("./benchmark");
|
|
24
24
|
const chalk_1 = require("./chalk");
|
|
25
25
|
const cleanup_before_quit_1 = require("./cleanup-before-quit");
|
|
26
|
+
const cloudrun_command_1 = require("./cloudrun-command");
|
|
26
27
|
const compositions_1 = require("./compositions");
|
|
27
28
|
const determine_image_format_1 = require("./determine-image-format");
|
|
28
29
|
const download_progress_1 = require("./download-progress");
|
|
@@ -72,6 +73,9 @@ const cli = async () => {
|
|
|
72
73
|
else if (command === 'lambda') {
|
|
73
74
|
await (0, lambda_command_1.lambdaCommand)(remotionRoot, args);
|
|
74
75
|
}
|
|
76
|
+
else if (command === 'cloudrun') {
|
|
77
|
+
await (0, cloudrun_command_1.cloudrunCommand)(remotionRoot, args);
|
|
78
|
+
}
|
|
75
79
|
else if (command === 'render') {
|
|
76
80
|
await (0, render_1.render)(remotionRoot, args);
|
|
77
81
|
}
|
package/dist/load-config.js
CHANGED
|
@@ -5,14 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.loadConfigFile = void 0;
|
|
7
7
|
const bundler_1 = require("@remotion/bundler");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
11
11
|
const log_1 = require("./log");
|
|
12
12
|
const loadConfigFile = async (remotionRoot, configFileName, isJavascript) => {
|
|
13
|
-
const resolved =
|
|
14
|
-
const tsconfigJson =
|
|
15
|
-
if (!isJavascript && !
|
|
13
|
+
const resolved = node_path_1.default.resolve(remotionRoot, configFileName);
|
|
14
|
+
const tsconfigJson = node_path_1.default.join(remotionRoot, 'tsconfig.json');
|
|
15
|
+
if (!isJavascript && !node_fs_1.default.existsSync(tsconfigJson)) {
|
|
16
16
|
log_1.Log.error('Could not find a tsconfig.json file in your project. Did you delete it? Create a tsconfig.json in the root of your project. Copy the default file from https://github.com/remotion-dev/template-helloworld/blob/main/tsconfig.json.');
|
|
17
17
|
log_1.Log.error('The root directory is:', remotionRoot);
|
|
18
18
|
process.exit(1);
|
|
@@ -39,13 +39,13 @@ const loadConfigFile = async (remotionRoot, configFileName, isJavascript) => {
|
|
|
39
39
|
const str = new TextDecoder().decode(result.outputFiles[0].contents);
|
|
40
40
|
const currentCwd = process.cwd();
|
|
41
41
|
// The config file is always executed from the Remotion root, if `process.cwd()` is being used. We cannot enforce this in worker threads used for testing
|
|
42
|
-
if (
|
|
42
|
+
if (node_worker_threads_1.isMainThread) {
|
|
43
43
|
process.chdir(remotionRoot);
|
|
44
44
|
}
|
|
45
45
|
// Exectute the contents of the config file
|
|
46
46
|
// eslint-disable-next-line no-eval
|
|
47
47
|
eval(str);
|
|
48
|
-
if (
|
|
48
|
+
if (node_worker_threads_1.isMainThread) {
|
|
49
49
|
process.chdir(currentCwd);
|
|
50
50
|
}
|
|
51
51
|
return resolved;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
3
|
import type { AddRenderRequest, CancelRenderRequest, CancelRenderResponse, CanUpdateDefaultPropsRequest, CanUpdateDefaultPropsResponse, OpenInFileExplorerRequest, RemoveRenderRequest, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UnsubscribeFromFileExistenceRequest, UpdateDefaultPropsRequest } from './render-queue/job';
|
|
4
4
|
export declare type ApiHandler<ReqData, ResData> = (params: {
|
|
5
5
|
input: ReqData;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
import type { ReadStream } from 'fs';
|
|
5
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
4
|
+
import type { ReadStream } from 'node:fs';
|
|
5
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
6
6
|
export declare function setHeaderForResponse(res: ServerResponse, name: string, value: string | number): void;
|
|
7
7
|
export declare function send(req: IncomingMessage, res: ServerResponse, bufferOtStream: ReadStream | string | Buffer, byteLength: number): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
3
|
import type { DevMiddlewareContext } from './types';
|
|
4
4
|
export declare function getValueContentRangeHeader(type: string, size: number, range?: {
|
|
5
5
|
start: number;
|
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.middleware = exports.getValueContentRangeHeader = void 0;
|
|
7
7
|
const renderer_1 = require("@remotion/renderer");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_querystring_1 = __importDefault(require("node:querystring"));
|
|
10
|
+
const node_url_1 = require("node:url");
|
|
11
11
|
const compatible_api_1 = require("./compatible-api");
|
|
12
12
|
const get_paths_1 = require("./get-paths");
|
|
13
13
|
const range_parser_1 = require("./range-parser");
|
|
@@ -29,7 +29,7 @@ const mem = (fn, { cache = new Map() } = {}) => {
|
|
|
29
29
|
cacheStore.set(memoized, cache);
|
|
30
30
|
return memoized;
|
|
31
31
|
};
|
|
32
|
-
const memoizedParse = mem(
|
|
32
|
+
const memoizedParse = mem(node_url_1.parse);
|
|
33
33
|
function getFilenameFromUrl(context, url) {
|
|
34
34
|
var _a, _b;
|
|
35
35
|
const paths = (0, get_paths_1.getPaths)(context);
|
|
@@ -57,7 +57,7 @@ function getFilenameFromUrl(context, url) {
|
|
|
57
57
|
// `/complex/foo.js` => `foo.js`
|
|
58
58
|
const pathname = urlObject.pathname.substr(publicPathObject.pathname.length);
|
|
59
59
|
if (pathname) {
|
|
60
|
-
filename =
|
|
60
|
+
filename = node_path_1.default.join(outputPath, node_querystring_1.default.unescape(pathname));
|
|
61
61
|
}
|
|
62
62
|
if (!context.outputFileSystem) {
|
|
63
63
|
continue;
|
|
@@ -70,7 +70,7 @@ function getFilenameFromUrl(context, url) {
|
|
|
70
70
|
}
|
|
71
71
|
else if (fsStats.isDirectory()) {
|
|
72
72
|
const indexValue = 'index.html';
|
|
73
|
-
filename =
|
|
73
|
+
filename = node_path_1.default.join(filename, indexValue);
|
|
74
74
|
// eslint-disable-next-line max-depth
|
|
75
75
|
try {
|
|
76
76
|
fsStats = context.outputFileSystem.statSync(filename);
|
|
@@ -132,7 +132,7 @@ function middleware(context) {
|
|
|
132
132
|
*/
|
|
133
133
|
if (!res.getHeader('Content-Type')) {
|
|
134
134
|
// content-type name(like application/javascript; charset=utf-8) or false
|
|
135
|
-
const contentType = renderer_1.RenderInternals.mimeContentType(
|
|
135
|
+
const contentType = renderer_1.RenderInternals.mimeContentType(node_path_1.default.extname(filename));
|
|
136
136
|
// Only set content-type header if media type is known
|
|
137
137
|
// https://tools.ietf.org/html/rfc7231#section-3.1.1.5
|
|
138
138
|
if (contentType) {
|
|
@@ -4,18 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getFileSource = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const allowedFileExtensions = ['js', 'ts', 'tsx', 'jsx', 'map', 'mjs'];
|
|
10
10
|
const getFileSource = (remotionRoot, p) => {
|
|
11
11
|
if (!allowedFileExtensions.find((extension) => p.endsWith(extension))) {
|
|
12
12
|
throw new Error(`Not allowed to open ${p}`);
|
|
13
13
|
}
|
|
14
|
-
const resolved =
|
|
15
|
-
const relativeToProcessCwd =
|
|
14
|
+
const resolved = node_path_1.default.resolve(remotionRoot, p);
|
|
15
|
+
const relativeToProcessCwd = node_path_1.default.relative(remotionRoot, resolved);
|
|
16
16
|
if (relativeToProcessCwd.startsWith('..')) {
|
|
17
17
|
throw new Error(`Not allowed to open ${relativeToProcessCwd}`);
|
|
18
18
|
}
|
|
19
|
-
return
|
|
19
|
+
return node_fs_1.default.promises.readFile(p, 'utf-8');
|
|
20
20
|
};
|
|
21
21
|
exports.getFileSource = getFileSource;
|
|
@@ -28,13 +28,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.launchEditor = exports.guessEditor = exports.getDisplayNameForEditor = void 0;
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
31
|
+
const node_child_process_1 = __importStar(require("node:child_process"));
|
|
32
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
33
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
34
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
35
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
36
36
|
const log_1 = require("../../../../log");
|
|
37
|
-
const execProm =
|
|
37
|
+
const execProm = node_util_1.default.promisify(node_child_process_1.exec);
|
|
38
38
|
const isVsCodeDerivative = (editor) => {
|
|
39
39
|
return (editor === 'code' ||
|
|
40
40
|
editor === 'code-insiders' ||
|
|
@@ -253,8 +253,8 @@ const COMMON_EDITORS_WIN = [
|
|
|
253
253
|
// alphanumeric characters, periods, dashes, slashes, and underscores.
|
|
254
254
|
const WINDOWS_FILE_NAME_WHITELIST = /^([A-Za-z]:[/\\])?(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/;
|
|
255
255
|
function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
|
|
256
|
-
const editorBasename =
|
|
257
|
-
const isFolder =
|
|
256
|
+
const editorBasename = node_path_1.default.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
|
|
257
|
+
const isFolder = node_fs_1.default.existsSync(fileName) && node_fs_1.default.lstatSync(fileName).isDirectory();
|
|
258
258
|
switch (editorBasename) {
|
|
259
259
|
case 'atom':
|
|
260
260
|
case 'Atom':
|
|
@@ -341,7 +341,7 @@ async function guessEditor() {
|
|
|
341
341
|
const runningProcesses = output.split('\r\n');
|
|
342
342
|
for (let i = 0; i < runningProcesses.length; i++) {
|
|
343
343
|
const processPath = runningProcesses[i].trim();
|
|
344
|
-
const processName =
|
|
344
|
+
const processName = node_path_1.default.basename(processPath);
|
|
345
345
|
if (COMMON_EDITORS_WIN.indexOf(processName) !== -1) {
|
|
346
346
|
availableEditors.push({
|
|
347
347
|
process: processPath,
|
|
@@ -394,7 +394,7 @@ async function guessEditor() {
|
|
|
394
394
|
exports.guessEditor = guessEditor;
|
|
395
395
|
let _childProcess = null;
|
|
396
396
|
async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNewWindow, }) {
|
|
397
|
-
if (!
|
|
397
|
+
if (!node_fs_1.default.existsSync(fileName)) {
|
|
398
398
|
return false;
|
|
399
399
|
}
|
|
400
400
|
// Sanitize lineNumber to prevent malicious use on win32
|
|
@@ -413,14 +413,14 @@ async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNew
|
|
|
413
413
|
}
|
|
414
414
|
if (process.platform === 'linux' &&
|
|
415
415
|
fileName.startsWith('/mnt/') &&
|
|
416
|
-
/Microsoft/i.test(
|
|
416
|
+
/Microsoft/i.test(node_os_1.default.release())) {
|
|
417
417
|
// Assume WSL / "Bash on Ubuntu on Windows" is being used, and
|
|
418
418
|
// that the file exists on the Windows file system.
|
|
419
419
|
// `os.release()` is "4.4.0-43-Microsoft" in the current release
|
|
420
420
|
// build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364
|
|
421
421
|
// When a Windows editor is specified, interop functionality can
|
|
422
422
|
// handle the path translation, but only if a relative path is used.
|
|
423
|
-
fileName =
|
|
423
|
+
fileName = node_path_1.default.relative('', fileName);
|
|
424
424
|
}
|
|
425
425
|
// cmd.exe on Windows is vulnerable to RCE attacks given a file name of the
|
|
426
426
|
// form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use a whitelist
|
|
@@ -429,7 +429,7 @@ async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNew
|
|
|
429
429
|
if (process.platform === 'win32' &&
|
|
430
430
|
!WINDOWS_FILE_NAME_WHITELIST.test(fileName.trim())) {
|
|
431
431
|
log_1.Log.error();
|
|
432
|
-
log_1.Log.error('Could not open ' +
|
|
432
|
+
log_1.Log.error('Could not open ' + node_path_1.default.basename(fileName) + ' in the editor.');
|
|
433
433
|
log_1.Log.error();
|
|
434
434
|
log_1.Log.error('When running on Windows, file names are checked against a whitelist ' +
|
|
435
435
|
'to protect against remote code execution attacks. File names may ' +
|
|
@@ -450,14 +450,14 @@ async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNew
|
|
|
450
450
|
// instances attach to the stdin/stdout which gets confusing.
|
|
451
451
|
_childProcess.kill('SIGKILL');
|
|
452
452
|
}
|
|
453
|
-
const isWin =
|
|
453
|
+
const isWin = node_os_1.default.platform() === 'win32';
|
|
454
454
|
const where = isWin ? 'where' : 'which';
|
|
455
455
|
const binaryToUse = await new Promise((resolve) => {
|
|
456
456
|
if (editor.command === editor.process) {
|
|
457
457
|
resolve(editor.command);
|
|
458
458
|
return;
|
|
459
459
|
}
|
|
460
|
-
|
|
460
|
+
node_child_process_1.default.exec(`${where} "${editor.command}"`, (err) => {
|
|
461
461
|
if (err) {
|
|
462
462
|
resolve(editor.process);
|
|
463
463
|
}
|
|
@@ -470,10 +470,10 @@ async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNew
|
|
|
470
470
|
if (process.platform === 'win32') {
|
|
471
471
|
// On Windows, launch the editor in a shell because spawn can only
|
|
472
472
|
// launch .exe files.
|
|
473
|
-
_childProcess =
|
|
473
|
+
_childProcess = node_child_process_1.default.spawn('cmd.exe', ['/C', binaryToUse].concat(args), { stdio: 'inherit', detached: true });
|
|
474
474
|
}
|
|
475
475
|
else {
|
|
476
|
-
_childProcess =
|
|
476
|
+
_childProcess = node_child_process_1.default.spawn(binaryToUse, args, {
|
|
477
477
|
stdio: 'inherit',
|
|
478
478
|
});
|
|
479
479
|
}
|
|
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.unsubscribeClientFileExistenceWatchers = exports.unsubscribeFromFileExistenceWatchers = exports.subscribeToFileExistenceWatchers = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const file_watcher_1 = require("../file-watcher");
|
|
9
9
|
const live_events_1 = require("./live-events");
|
|
10
10
|
const fileExistenceWatchers = {};
|
|
11
11
|
const subscribeToFileExistenceWatchers = ({ file: relativeFile, remotionRoot, clientId, }) => {
|
|
12
|
-
const file =
|
|
12
|
+
const file = node_path_1.default.resolve(remotionRoot, relativeFile);
|
|
13
13
|
const { unwatch, exists } = (0, file_watcher_1.installFileWatcher)({
|
|
14
14
|
file,
|
|
15
15
|
onChange: (type) => {
|
|
@@ -42,7 +42,7 @@ const subscribeToFileExistenceWatchers = ({ file: relativeFile, remotionRoot, cl
|
|
|
42
42
|
exports.subscribeToFileExistenceWatchers = subscribeToFileExistenceWatchers;
|
|
43
43
|
const unsubscribeFromFileExistenceWatchers = ({ file, remotionRoot, clientId, }) => {
|
|
44
44
|
var _a, _b;
|
|
45
|
-
const actualPath =
|
|
45
|
+
const actualPath = node_path_1.default.resolve(remotionRoot, file);
|
|
46
46
|
if (!fileExistenceWatchers[clientId]) {
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getAbsolutePublicDir = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const getAbsolutePublicDir = ({ userPassedPublicDir, remotionRoot, }) => {
|
|
9
9
|
const publicDir = userPassedPublicDir
|
|
10
|
-
?
|
|
11
|
-
:
|
|
10
|
+
? node_path_1.default.resolve(remotionRoot, userPassedPublicDir)
|
|
11
|
+
: node_path_1.default.join(remotionRoot, 'public');
|
|
12
12
|
return publicDir;
|
|
13
13
|
};
|
|
14
14
|
exports.getAbsolutePublicDir = getAbsolutePublicDir;
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getPackageManager = exports.lockFilePaths = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
exports.lockFilePaths = [
|
|
10
10
|
{
|
|
11
11
|
path: 'package-lock.json',
|
|
@@ -36,7 +36,7 @@ const getPackageManager = (remotionRoot, packageManager) => {
|
|
|
36
36
|
}
|
|
37
37
|
return manager;
|
|
38
38
|
}
|
|
39
|
-
const existingPkgManagers = exports.lockFilePaths.filter((p) =>
|
|
39
|
+
const existingPkgManagers = exports.lockFilePaths.filter((p) => node_fs_1.default.existsSync(node_path_1.default.join(remotionRoot, p.path)));
|
|
40
40
|
if (existingPkgManagers.length === 0) {
|
|
41
41
|
return 'unknown';
|
|
42
42
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
import type { ApiHandler } from './api-types';
|
|
3
3
|
export declare const handleRequest: <Req, Res>({ remotionRoot, request, response, entryPoint, handler, }: {
|
|
4
4
|
remotionRoot: string;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* and rewritten in TypeScript. This file is MIT licensed
|
|
5
5
|
*/
|
|
6
6
|
import type { webpack } from '@remotion/bundler';
|
|
7
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
7
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
8
8
|
declare global {
|
|
9
9
|
const __webpack_hash__: unknown;
|
|
10
10
|
interface HotNotifierInfo {
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.webpackHotMiddleware = void 0;
|
|
9
|
-
const
|
|
9
|
+
const node_url_1 = require("node:url");
|
|
10
10
|
const log_1 = require("../../log");
|
|
11
11
|
const types_1 = require("./types");
|
|
12
12
|
const pathMatch = function (url, path) {
|
|
13
13
|
try {
|
|
14
|
-
return (0,
|
|
14
|
+
return (0, node_url_1.parse)(url).pathname === path;
|
|
15
15
|
}
|
|
16
16
|
catch (e) {
|
|
17
17
|
return false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
3
|
import type { EventSourceEvent } from '../event-source-events';
|
|
4
4
|
export declare type LiveEventsServer = {
|
|
5
5
|
sendEventToClient: (event: EventSourceEvent) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'http';
|
|
1
|
+
import type { IncomingMessage } from 'node:http';
|
|
2
2
|
export declare const parseRequestBody: (req: IncomingMessage) => Promise<unknown>;
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getProjectInfo = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const getProjectInfo = (remotionRoot) => {
|
|
10
10
|
var _a;
|
|
11
11
|
const pathsToLookFor = [
|
|
@@ -17,13 +17,13 @@ const getProjectInfo = (remotionRoot) => {
|
|
|
17
17
|
'src/Video.tsx',
|
|
18
18
|
'src/Video.jsx',
|
|
19
19
|
].map((p) => {
|
|
20
|
-
return
|
|
20
|
+
return node_path_1.default.join(remotionRoot, p);
|
|
21
21
|
});
|
|
22
|
-
const videoFile = (_a = pathsToLookFor.find((p) => (0,
|
|
22
|
+
const videoFile = (_a = pathsToLookFor.find((p) => (0, node_fs_1.existsSync)(p))) !== null && _a !== void 0 ? _a : null;
|
|
23
23
|
return Promise.resolve({
|
|
24
24
|
videoFile,
|
|
25
25
|
relativeVideoFile: videoFile
|
|
26
|
-
?
|
|
26
|
+
? node_path_1.default.relative(remotionRoot, videoFile)
|
|
27
27
|
: null,
|
|
28
28
|
});
|
|
29
29
|
};
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getFiles = exports.fetchFolder = exports.initPublicFolderWatch = void 0;
|
|
7
7
|
const bundler_1 = require("@remotion/bundler");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const env_supports_fs_recursive_1 = require("./env-supports-fs-recursive");
|
|
11
11
|
let files = [];
|
|
12
12
|
const initPublicFolderWatch = ({ publicDir, onUpdate, staticHash, }) => {
|
|
@@ -23,16 +23,16 @@ const fetchFolder = ({ publicDir, staticHash, }) => {
|
|
|
23
23
|
}).map((f) => {
|
|
24
24
|
return {
|
|
25
25
|
...f,
|
|
26
|
-
name: f.name.split(
|
|
26
|
+
name: f.name.split(node_path_1.default.sep).join('/'),
|
|
27
27
|
};
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
30
|
exports.fetchFolder = fetchFolder;
|
|
31
31
|
const watchPublicFolder = ({ publicDir, onUpdate, staticHash, }) => {
|
|
32
|
-
if (!(0,
|
|
33
|
-
const parentDir =
|
|
32
|
+
if (!(0, node_fs_1.existsSync)(publicDir)) {
|
|
33
|
+
const parentDir = node_path_1.default.dirname(publicDir);
|
|
34
34
|
const onDirChange = () => {
|
|
35
|
-
if ((0,
|
|
35
|
+
if ((0, node_fs_1.existsSync)(publicDir)) {
|
|
36
36
|
watchPublicFolder({
|
|
37
37
|
publicDir,
|
|
38
38
|
onUpdate,
|
|
@@ -41,10 +41,10 @@ const watchPublicFolder = ({ publicDir, onUpdate, staticHash, }) => {
|
|
|
41
41
|
watcher.close();
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
-
const watcher = (0,
|
|
44
|
+
const watcher = (0, node_fs_1.watch)(parentDir, {}, onDirChange);
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
(0,
|
|
47
|
+
(0, node_fs_1.watch)(publicDir, { recursive: (0, env_supports_fs_recursive_1.envSupportsFsRecursive)() }, () => {
|
|
48
48
|
(0, exports.fetchFolder)({ publicDir, staticHash });
|
|
49
49
|
onUpdate();
|
|
50
50
|
});
|
|
@@ -4,22 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.openDirectoryInFinder = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const node_os_1 = require("node:os");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const truthy_1 = require("../../truthy");
|
|
11
11
|
const openDirectoryInFinder = (dirToOpen, allowedDirectory) => {
|
|
12
|
-
const resolved =
|
|
13
|
-
const relativeToProcessCwd =
|
|
12
|
+
const resolved = node_path_1.default.resolve(allowedDirectory, dirToOpen);
|
|
13
|
+
const relativeToProcessCwd = node_path_1.default.relative(allowedDirectory, resolved);
|
|
14
14
|
if (relativeToProcessCwd.startsWith('..')) {
|
|
15
15
|
throw new Error(`Not allowed to open ${relativeToProcessCwd}`);
|
|
16
16
|
}
|
|
17
|
-
const command = (0,
|
|
17
|
+
const command = (0, node_os_1.platform)() === 'darwin'
|
|
18
18
|
? 'open'
|
|
19
|
-
: (0,
|
|
19
|
+
: (0, node_os_1.platform)() === 'linux'
|
|
20
20
|
? 'xdg-open'
|
|
21
21
|
: 'start';
|
|
22
|
-
const p = (0,
|
|
22
|
+
const p = (0, node_child_process_1.spawn)(command, [(0, node_os_1.platform)() === 'darwin' ? '-R' : null, dirToOpen].filter(truthy_1.truthy));
|
|
23
23
|
const stderrChunks = [];
|
|
24
24
|
p.stderr.on('data', (d) => stderrChunks.push(d));
|
|
25
25
|
return new Promise((resolve, reject) => {
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.cancelJob = exports.removeJob = exports.addJob = exports.getRenderQueue = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const chalk_1 = require("../../chalk");
|
|
9
9
|
const file_watcher_1 = require("../../file-watcher");
|
|
10
10
|
const handle_common_errors_1 = require("../../handle-common-errors");
|
|
@@ -156,7 +156,7 @@ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
|
|
|
156
156
|
});
|
|
157
157
|
log_1.Log.info(chalk_1.chalk.gray('╰─ Done in ' + (Date.now() - startTime) + 'ms.'));
|
|
158
158
|
const { unwatch } = (0, file_watcher_1.installFileWatcher)({
|
|
159
|
-
file:
|
|
159
|
+
file: node_path_1.default.resolve(remotionRoot, nextJob.outName),
|
|
160
160
|
onChange: (type) => {
|
|
161
161
|
if (type === 'created') {
|
|
162
162
|
updateJob(nextJob.id, (job) => ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.canUpdateDefaultPropsHandler = exports.checkIfTypeScriptFile = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
5
|
const update_default_props_1 = require("../../codemods/update-default-props");
|
|
6
6
|
const project_info_1 = require("../project-info");
|
|
7
7
|
const checkIfTypeScriptFile = (file) => {
|
|
@@ -22,7 +22,7 @@ const canUpdateDefaultPropsHandler = async ({ input: { compositionId }, remotion
|
|
|
22
22
|
(0, exports.checkIfTypeScriptFile)(projectInfo.videoFile);
|
|
23
23
|
await (0, update_default_props_1.updateDefaultProps)({
|
|
24
24
|
compositionId,
|
|
25
|
-
input: (0,
|
|
25
|
+
input: (0, node_fs_1.readFileSync)(projectInfo.videoFile, 'utf-8'),
|
|
26
26
|
newDefaultProps: {},
|
|
27
27
|
});
|
|
28
28
|
return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updateDefaultPropsHandler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
5
|
const update_default_props_1 = require("../../codemods/update-default-props");
|
|
6
6
|
const date_serialization_1 = require("../../editor/components/RenderModal/SchemaEditor/date-serialization");
|
|
7
7
|
const project_info_1 = require("../project-info");
|
|
@@ -16,9 +16,9 @@ const updateDefaultPropsHandler = async ({ input: { compositionId, defaultProps
|
|
|
16
16
|
// TODO: Pass error to frontend
|
|
17
17
|
const updated = await (0, update_default_props_1.updateDefaultProps)({
|
|
18
18
|
compositionId,
|
|
19
|
-
input: (0,
|
|
19
|
+
input: (0, node_fs_1.readFileSync)(projectInfo.videoFile, 'utf-8'),
|
|
20
20
|
newDefaultProps: (0, date_serialization_1.deserializeJSONWithDate)(defaultProps),
|
|
21
21
|
});
|
|
22
|
-
(0,
|
|
22
|
+
(0, node_fs_1.writeFileSync)(projectInfo.videoFile, updated);
|
|
23
23
|
};
|
|
24
24
|
exports.updateDefaultPropsHandler = updateDefaultPropsHandler;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
import type { LiveEventsServer } from './live-events';
|
|
3
3
|
export declare const handleRoutes: ({ hash, hashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
|
|
4
4
|
hash: string;
|