@remotion/studio-server 4.0.91
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/.eslintrc +13 -0
- package/.turbo/turbo-build.log +4 -0
- package/LICENSE.md +45 -0
- package/README.md +3 -0
- package/dist/ansi-diff.d.ts +41 -0
- package/dist/ansi-diff.js +220 -0
- package/dist/better-opn/index.d.ts +6 -0
- package/dist/better-opn/index.js +202 -0
- package/dist/codemods/update-default-props.d.ts +7 -0
- package/dist/codemods/update-default-props.js +137 -0
- package/dist/file-watcher.d.ts +9 -0
- package/dist/file-watcher.js +35 -0
- package/dist/get-latest-remotion-version.d.ts +1 -0
- package/dist/get-latest-remotion-version.js +31 -0
- package/dist/get-network-address.d.ts +1 -0
- package/dist/get-network-address.js +16 -0
- package/dist/helpers/get-file-source.d.ts +1 -0
- package/dist/helpers/get-file-source.js +22 -0
- package/dist/helpers/open-in-editor.d.ts +16 -0
- package/dist/helpers/open-in-editor.js +503 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.js +27 -0
- package/dist/max-timeline-tracks.d.ts +2 -0
- package/dist/max-timeline-tracks.js +25 -0
- package/dist/open-directory-in-finder.d.ts +1 -0
- package/dist/open-directory-in-finder.js +49 -0
- package/dist/preview-server/api-routes.d.ts +5 -0
- package/dist/preview-server/api-routes.js +25 -0
- package/dist/preview-server/api-types.d.ts +23 -0
- package/dist/preview-server/api-types.js +2 -0
- package/dist/preview-server/dev-middleware/compatible-api.d.ts +7 -0
- package/dist/preview-server/dev-middleware/compatible-api.js +20 -0
- package/dist/preview-server/dev-middleware/get-paths.d.ts +7 -0
- package/dist/preview-server/dev-middleware/get-paths.js +19 -0
- package/dist/preview-server/dev-middleware/index.d.ts +3 -0
- package/dist/preview-server/dev-middleware/index.js +27 -0
- package/dist/preview-server/dev-middleware/middleware.d.ts +9 -0
- package/dist/preview-server/dev-middleware/middleware.js +222 -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 +52 -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/env-supports-fs-recursive.d.ts +1 -0
- package/dist/preview-server/env-supports-fs-recursive.js +18 -0
- package/dist/preview-server/file-existence-watchers.d.ts +13 -0
- package/dist/preview-server/file-existence-watchers.js +62 -0
- package/dist/preview-server/get-absolute-public-dir.d.ts +4 -0
- package/dist/preview-server/get-absolute-public-dir.js +14 -0
- package/dist/preview-server/get-package-manager.d.ts +10 -0
- package/dist/preview-server/get-package-manager.js +62 -0
- package/dist/preview-server/handler.d.ts +12 -0
- package/dist/preview-server/handler.js +36 -0
- package/dist/preview-server/hot-middleware/index.d.ts +102 -0
- package/dist/preview-server/hot-middleware/index.js +149 -0
- package/dist/preview-server/hot-middleware/types.d.ts +2 -0
- package/dist/preview-server/hot-middleware/types.js +2 -0
- package/dist/preview-server/live-events.d.ts +10 -0
- package/dist/preview-server/live-events.js +76 -0
- package/dist/preview-server/parse-body.d.ts +2 -0
- package/dist/preview-server/parse-body.js +16 -0
- package/dist/preview-server/project-info.d.ts +2 -0
- package/dist/preview-server/project-info.js +32 -0
- package/dist/preview-server/public-folder.d.ts +12 -0
- package/dist/preview-server/public-folder.js +58 -0
- package/dist/preview-server/routes/add-render.d.ts +3 -0
- package/dist/preview-server/routes/add-render.js +122 -0
- package/dist/preview-server/routes/can-update-default-props.d.ts +4 -0
- package/dist/preview-server/routes/can-update-default-props.js +40 -0
- package/dist/preview-server/routes/cancel-render.d.ts +3 -0
- package/dist/preview-server/routes/cancel-render.js +8 -0
- package/dist/preview-server/routes/copy-still-to-clipboard-handler.d.ts +3 -0
- package/dist/preview-server/routes/copy-still-to-clipboard-handler.js +17 -0
- package/dist/preview-server/routes/open-in-file-explorer.d.ts +3 -0
- package/dist/preview-server/routes/open-in-file-explorer.js +8 -0
- package/dist/preview-server/routes/remove-render.d.ts +3 -0
- package/dist/preview-server/routes/remove-render.js +8 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.js +13 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.js +13 -0
- package/dist/preview-server/routes/update-available.d.ts +3 -0
- package/dist/preview-server/routes/update-available.js +9 -0
- package/dist/preview-server/routes/update-default-props.d.ts +3 -0
- package/dist/preview-server/routes/update-default-props.js +34 -0
- package/dist/preview-server/serve-static.d.ts +14 -0
- package/dist/preview-server/serve-static.js +75 -0
- package/dist/preview-server/start-server.d.ts +31 -0
- package/dist/preview-server/start-server.js +123 -0
- package/dist/preview-server/update-available.d.ts +3 -0
- package/dist/preview-server/update-available.js +47 -0
- package/dist/routes.d.ts +24 -0
- package/dist/routes.js +242 -0
- package/dist/server-ready.d.ts +2 -0
- package/dist/server-ready.js +13 -0
- package/dist/start-studio.d.ts +26 -0
- package/dist/start-studio.js +117 -0
- package/dist/watch-root-file.d.ts +1 -0
- package/dist/watch-root-file.js +22 -0
- package/package.json +54 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/web/beep.wav +0 -0
- package/web/favicon.png +0 -0
|
@@ -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,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupHooks = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
const no_react_1 = require("remotion/no-react");
|
|
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: 'errors-warnings',
|
|
25
|
+
colors: renderer_1.RenderInternals.isColorSupported(),
|
|
26
|
+
};
|
|
27
|
+
const printedStats = stats.toString(statsOptions);
|
|
28
|
+
const lines = printedStats
|
|
29
|
+
.split('\n')
|
|
30
|
+
.map((a) => a.trimEnd())
|
|
31
|
+
.filter(no_react_1.NoReactInternals.truthy)
|
|
32
|
+
.map((a) => {
|
|
33
|
+
if (a.startsWith('webpack compiled')) {
|
|
34
|
+
return `Built in ${stats.endTime - stats.startTime}ms`;
|
|
35
|
+
}
|
|
36
|
+
return a;
|
|
37
|
+
})
|
|
38
|
+
.join('\n');
|
|
39
|
+
if (lines) {
|
|
40
|
+
renderer_1.RenderInternals.Log.info(lines);
|
|
41
|
+
}
|
|
42
|
+
context.callbacks = [];
|
|
43
|
+
callbacks.forEach((callback) => {
|
|
44
|
+
callback(stats);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
context.compiler.hooks.watchRun.tap('remotion', invalid);
|
|
49
|
+
context.compiler.hooks.invalid.tap('remotion', invalid);
|
|
50
|
+
context.compiler.hooks.done.tap('remotion', done);
|
|
51
|
+
}
|
|
52
|
+
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 type { webpack } from '@remotion/bundler';
|
|
2
|
+
import type memfs from 'memfs';
|
|
3
|
+
export 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 declare const envSupportsFsRecursive: () => boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.envSupportsFsRecursive = void 0;
|
|
4
|
+
const envSupportsFsRecursive = () => {
|
|
5
|
+
const nodeVersion = process.version.replace('v', '').split('.');
|
|
6
|
+
if (process.platform === 'darwin' || process.platform === 'win32') {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
if (parseInt(nodeVersion[0], 10) > 19) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (parseInt(nodeVersion[0], 10) === 19 &&
|
|
13
|
+
parseInt(nodeVersion[1], 10) >= 1) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
exports.envSupportsFsRecursive = envSupportsFsRecursive;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const subscribeToFileExistenceWatchers: ({ file: relativeFile, remotionRoot, clientId, }: {
|
|
2
|
+
file: string;
|
|
3
|
+
remotionRoot: string;
|
|
4
|
+
clientId: string;
|
|
5
|
+
}) => {
|
|
6
|
+
exists: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const unsubscribeFromFileExistenceWatchers: ({ file, remotionRoot, clientId, }: {
|
|
9
|
+
file: string;
|
|
10
|
+
remotionRoot: string;
|
|
11
|
+
clientId: string;
|
|
12
|
+
}) => void;
|
|
13
|
+
export declare const unsubscribeClientFileExistenceWatchers: (clientId: string) => void;
|
|
@@ -0,0 +1,62 @@
|
|
|
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.unsubscribeClientFileExistenceWatchers = exports.unsubscribeFromFileExistenceWatchers = exports.subscribeToFileExistenceWatchers = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const file_watcher_1 = require("../file-watcher");
|
|
9
|
+
const live_events_1 = require("./live-events");
|
|
10
|
+
const fileExistenceWatchers = {};
|
|
11
|
+
const subscribeToFileExistenceWatchers = ({ file: relativeFile, remotionRoot, clientId, }) => {
|
|
12
|
+
const file = node_path_1.default.resolve(remotionRoot, relativeFile);
|
|
13
|
+
const { unwatch, exists } = (0, file_watcher_1.installFileWatcher)({
|
|
14
|
+
file,
|
|
15
|
+
onChange: (type) => {
|
|
16
|
+
if (type === 'created') {
|
|
17
|
+
(0, live_events_1.waitForLiveEventsListener)().then((listener) => {
|
|
18
|
+
listener.sendEventToClient({
|
|
19
|
+
type: 'watched-file-undeleted',
|
|
20
|
+
// Must be relative file because that's what the client expects
|
|
21
|
+
file: relativeFile,
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (type === 'deleted') {
|
|
26
|
+
(0, live_events_1.waitForLiveEventsListener)().then((listener) => {
|
|
27
|
+
listener.sendEventToClient({
|
|
28
|
+
type: 'watched-file-deleted',
|
|
29
|
+
// Must be relative file because that's what the client expects
|
|
30
|
+
file: relativeFile,
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
if (!fileExistenceWatchers[clientId]) {
|
|
37
|
+
fileExistenceWatchers[clientId] = {};
|
|
38
|
+
}
|
|
39
|
+
fileExistenceWatchers[clientId][file] = unwatch;
|
|
40
|
+
return { exists };
|
|
41
|
+
};
|
|
42
|
+
exports.subscribeToFileExistenceWatchers = subscribeToFileExistenceWatchers;
|
|
43
|
+
const unsubscribeFromFileExistenceWatchers = ({ file, remotionRoot, clientId, }) => {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const actualPath = node_path_1.default.resolve(remotionRoot, file);
|
|
46
|
+
if (!fileExistenceWatchers[clientId]) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
(_b = (_a = fileExistenceWatchers[clientId])[actualPath]) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
50
|
+
delete fileExistenceWatchers[clientId][actualPath];
|
|
51
|
+
};
|
|
52
|
+
exports.unsubscribeFromFileExistenceWatchers = unsubscribeFromFileExistenceWatchers;
|
|
53
|
+
const unsubscribeClientFileExistenceWatchers = (clientId) => {
|
|
54
|
+
if (!fileExistenceWatchers[clientId]) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
Object.values(fileExistenceWatchers[clientId]).forEach((unwatch) => {
|
|
58
|
+
unwatch();
|
|
59
|
+
});
|
|
60
|
+
delete fileExistenceWatchers[clientId];
|
|
61
|
+
};
|
|
62
|
+
exports.unsubscribeClientFileExistenceWatchers = unsubscribeClientFileExistenceWatchers;
|
|
@@ -0,0 +1,14 @@
|
|
|
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.getAbsolutePublicDir = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const getAbsolutePublicDir = ({ userPassedPublicDir, remotionRoot, }) => {
|
|
9
|
+
const publicDir = userPassedPublicDir
|
|
10
|
+
? node_path_1.default.resolve(remotionRoot, userPassedPublicDir)
|
|
11
|
+
: node_path_1.default.join(remotionRoot, 'public');
|
|
12
|
+
return publicDir;
|
|
13
|
+
};
|
|
14
|
+
exports.getAbsolutePublicDir = getAbsolutePublicDir;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PackageManager } from '@remotion/studio-shared';
|
|
2
|
+
type LockfilePath = {
|
|
3
|
+
manager: PackageManager;
|
|
4
|
+
path: string;
|
|
5
|
+
installCommand: string;
|
|
6
|
+
startCommand: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const lockFilePaths: LockfilePath[];
|
|
9
|
+
export declare const getPackageManager: (remotionRoot: string, packageManager: string | undefined) => LockfilePath | 'unknown';
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
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.getPackageManager = exports.lockFilePaths = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
exports.lockFilePaths = [
|
|
10
|
+
{
|
|
11
|
+
path: 'package-lock.json',
|
|
12
|
+
manager: 'npm',
|
|
13
|
+
installCommand: 'npm i',
|
|
14
|
+
startCommand: 'npm start',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
path: 'yarn.lock',
|
|
18
|
+
manager: 'yarn',
|
|
19
|
+
installCommand: 'yarn add',
|
|
20
|
+
startCommand: 'yarn start',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
path: 'pnpm-lock.yaml',
|
|
24
|
+
manager: 'pnpm',
|
|
25
|
+
installCommand: 'pnpm i',
|
|
26
|
+
startCommand: 'pnpm start',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
path: 'bun.lockb',
|
|
30
|
+
manager: 'bun',
|
|
31
|
+
installCommand: 'bun i',
|
|
32
|
+
startCommand: 'bun start',
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
const getPackageManager = (remotionRoot, packageManager) => {
|
|
36
|
+
if (packageManager) {
|
|
37
|
+
const manager = exports.lockFilePaths.find((p) => p.manager === packageManager);
|
|
38
|
+
if (!manager) {
|
|
39
|
+
throw new Error(`The package manager ${packageManager} is not supported. Supported package managers are ${exports.lockFilePaths
|
|
40
|
+
.map((p) => p.manager)
|
|
41
|
+
.join(', ')}`);
|
|
42
|
+
}
|
|
43
|
+
return manager;
|
|
44
|
+
}
|
|
45
|
+
const existingPkgManagers = exports.lockFilePaths.filter((p) => node_fs_1.default.existsSync(node_path_1.default.join(remotionRoot, p.path)));
|
|
46
|
+
if (existingPkgManagers.length === 0) {
|
|
47
|
+
return 'unknown';
|
|
48
|
+
}
|
|
49
|
+
if (existingPkgManagers.length > 1) {
|
|
50
|
+
const error = [
|
|
51
|
+
`Found multiple lockfiles:`,
|
|
52
|
+
...existingPkgManagers.map((m) => {
|
|
53
|
+
return `- ${m.path}`;
|
|
54
|
+
}),
|
|
55
|
+
'',
|
|
56
|
+
'This can lead to bugs, delete all but one of these files and run this command again.',
|
|
57
|
+
].join('\n');
|
|
58
|
+
throw new Error(error);
|
|
59
|
+
}
|
|
60
|
+
return existingPkgManagers[0];
|
|
61
|
+
};
|
|
62
|
+
exports.getPackageManager = getPackageManager;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LogLevel } from '@remotion/renderer';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
|
+
import type { ApiHandler, QueueMethods } from './api-types';
|
|
4
|
+
export declare const handleRequest: <Req, Res>({ remotionRoot, request, response, entryPoint, handler, logLevel, methods, }: {
|
|
5
|
+
remotionRoot: string;
|
|
6
|
+
request: IncomingMessage;
|
|
7
|
+
response: ServerResponse;
|
|
8
|
+
entryPoint: string;
|
|
9
|
+
handler: ApiHandler<Req, Res>;
|
|
10
|
+
logLevel: LogLevel;
|
|
11
|
+
methods: QueueMethods;
|
|
12
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleRequest = void 0;
|
|
4
|
+
const parse_body_1 = require("./parse-body");
|
|
5
|
+
const handleRequest = async ({ remotionRoot, request, response, entryPoint, handler, logLevel, methods, }) => {
|
|
6
|
+
if (request.method === 'OPTIONS') {
|
|
7
|
+
response.statusCode = 200;
|
|
8
|
+
response.end();
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
response.setHeader('content-type', 'application/json');
|
|
12
|
+
response.writeHead(200);
|
|
13
|
+
try {
|
|
14
|
+
const body = (await (0, parse_body_1.parseRequestBody)(request));
|
|
15
|
+
const outputData = await handler({
|
|
16
|
+
entryPoint,
|
|
17
|
+
remotionRoot,
|
|
18
|
+
request,
|
|
19
|
+
response,
|
|
20
|
+
input: body,
|
|
21
|
+
logLevel,
|
|
22
|
+
methods,
|
|
23
|
+
});
|
|
24
|
+
response.end(JSON.stringify({
|
|
25
|
+
success: true,
|
|
26
|
+
data: outputData,
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
response.end(JSON.stringify({
|
|
31
|
+
success: false,
|
|
32
|
+
error: err.message,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.handleRequest = handleRequest;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source code is adapted from
|
|
3
|
+
* https://github.com/webpack-contrib/webpack-hot-middleware#readme
|
|
4
|
+
* and rewritten in TypeScript. This file is MIT licensed
|
|
5
|
+
*/
|
|
6
|
+
import type { webpack } from '@remotion/bundler';
|
|
7
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
8
|
+
declare global {
|
|
9
|
+
const __webpack_hash__: unknown;
|
|
10
|
+
interface HotNotifierInfo {
|
|
11
|
+
type: 'self-declined' | 'declined' | 'unaccepted' | 'accepted' | 'disposed' | 'accept-errored' | 'self-accept-errored' | 'self-accept-error-handler-errored';
|
|
12
|
+
/**
|
|
13
|
+
* The module in question.
|
|
14
|
+
*/
|
|
15
|
+
moduleId: number;
|
|
16
|
+
/**
|
|
17
|
+
* For errors: the module id owning the accept handler.
|
|
18
|
+
*/
|
|
19
|
+
dependencyId?: number | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* For declined/accepted/unaccepted: the chain from where the update was propagated.
|
|
22
|
+
*/
|
|
23
|
+
chain?: number[] | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* For declined: the module id of the declining parent
|
|
26
|
+
*/
|
|
27
|
+
parentId?: number | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* For accepted: the modules that are outdated and will be disposed
|
|
30
|
+
*/
|
|
31
|
+
outdatedModules?: number[] | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* For accepted: The location of accept handlers that will handle the update
|
|
34
|
+
*/
|
|
35
|
+
outdatedDependencies?: {
|
|
36
|
+
[dependencyId: number]: number[];
|
|
37
|
+
} | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* For errors: the thrown error
|
|
40
|
+
*/
|
|
41
|
+
error?: Error | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* For self-accept-error-handler-errored: the error thrown by the module
|
|
44
|
+
* before the error handler tried to handle it.
|
|
45
|
+
*/
|
|
46
|
+
originalError?: Error | undefined;
|
|
47
|
+
}
|
|
48
|
+
interface AcceptOptions {
|
|
49
|
+
/**
|
|
50
|
+
* If true the update process continues even if some modules are not accepted (and would bubble to the entry point).
|
|
51
|
+
*/
|
|
52
|
+
ignoreUnaccepted?: boolean | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Ignore changes made to declined modules.
|
|
55
|
+
*/
|
|
56
|
+
ignoreDeclined?: boolean | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Ignore errors throw in accept handlers, error handlers and while reevaluating module.
|
|
59
|
+
*/
|
|
60
|
+
ignoreErrored?: boolean | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Notifier for declined modules.
|
|
63
|
+
*/
|
|
64
|
+
onDeclined?: ((info: HotNotifierInfo) => void) | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Notifier for unaccepted modules.
|
|
67
|
+
*/
|
|
68
|
+
onUnaccepted?: ((info: HotNotifierInfo) => void) | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Notifier for accepted modules.
|
|
71
|
+
*/
|
|
72
|
+
onAccepted?: ((info: HotNotifierInfo) => void) | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Notifier for disposed modules.
|
|
75
|
+
*/
|
|
76
|
+
onDisposed?: ((info: HotNotifierInfo) => void) | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Notifier for errors.
|
|
79
|
+
*/
|
|
80
|
+
onErrored?: ((info: HotNotifierInfo) => void) | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Indicates that apply() is automatically called by check function
|
|
83
|
+
*/
|
|
84
|
+
autoApply?: boolean | undefined;
|
|
85
|
+
}
|
|
86
|
+
const __webpack_module__: {
|
|
87
|
+
id: string;
|
|
88
|
+
exports: unknown;
|
|
89
|
+
hot: {
|
|
90
|
+
accept: () => void;
|
|
91
|
+
dispose: (onDispose: (data: Record<string, unknown>) => void) => void;
|
|
92
|
+
invalidate: () => void;
|
|
93
|
+
data?: Record<string, unknown>;
|
|
94
|
+
addStatusHandler(callback: (status: string) => void): void;
|
|
95
|
+
status(): string;
|
|
96
|
+
apply(options?: AcceptOptions): Promise<ModuleId[]>;
|
|
97
|
+
check(autoApply?: boolean): Promise<null | ModuleId[]>;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
type ModuleId = string | number;
|
|
101
|
+
}
|
|
102
|
+
export declare const webpackHotMiddleware: (compiler: webpack.Compiler) => (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
|