@remotion/studio-server 4.0.502 → 4.0.504
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/detect-outdated-remotion-skills.d.ts +25 -0
- package/dist/detect-outdated-remotion-skills.js +73 -0
- package/dist/helpers/custom-editor.d.ts +37 -0
- package/dist/helpers/custom-editor.js +167 -0
- package/dist/helpers/editor-registry.d.ts +18 -0
- package/dist/helpers/editor-registry.js +500 -0
- package/dist/helpers/open-in-editor.d.ts +4 -4
- package/dist/helpers/open-in-editor.js +23 -87
- package/dist/helpers/resolve-editor.d.ts +27 -0
- package/dist/helpers/resolve-editor.js +90 -0
- package/dist/helpers/resolve-file-inside-project.d.ts +2 -0
- package/dist/helpers/resolve-file-inside-project.js +5 -2
- package/dist/index.d.ts +17 -1
- package/dist/index.js +9 -1
- package/dist/preview-server/api-routes.js +6 -1
- package/dist/preview-server/api-types.d.ts +2 -1
- package/dist/preview-server/element-install-state.d.ts +9 -2
- package/dist/preview-server/element-install-state.js +15 -5
- package/dist/preview-server/handler.d.ts +3 -1
- package/dist/preview-server/handler.js +2 -1
- package/dist/preview-server/routes/can-update-sequence-props.js +2 -1
- package/dist/preview-server/routes/default-editor.d.ts +8 -0
- package/dist/preview-server/routes/default-editor.js +131 -0
- package/dist/preview-server/routes/delete-effect-keyframe.d.ts +3 -0
- package/dist/preview-server/routes/delete-effect-keyframe.js +89 -0
- package/dist/preview-server/routes/delete-sequence-keyframe.d.ts +3 -0
- package/dist/preview-server/routes/delete-sequence-keyframe.js +82 -0
- package/dist/preview-server/routes/element-install-plan.d.ts +33 -0
- package/dist/preview-server/routes/element-install-plan.js +122 -0
- package/dist/preview-server/routes/insert-element.d.ts +1 -1
- package/dist/preview-server/routes/insert-element.js +70 -107
- package/dist/preview-server/routes/install-dependency.d.ts +2 -1
- package/dist/preview-server/routes/install-dependency.js +33 -44
- package/dist/preview-server/routes/open-in-editor.d.ts +5 -1
- package/dist/preview-server/routes/open-in-editor.js +42 -12
- package/dist/preview-server/routes/prepare-element-install.d.ts +3 -0
- package/dist/preview-server/routes/prepare-element-install.js +25 -0
- package/dist/preview-server/routes/safe-element-install-path.d.ts +9 -0
- package/dist/preview-server/routes/safe-element-install-path.js +58 -0
- package/dist/preview-server/routes/save-props-mutex.d.ts +1 -0
- package/dist/preview-server/routes/save-props-mutex.js +11 -0
- package/dist/preview-server/routes/update-public-license.d.ts +4 -0
- package/dist/preview-server/routes/update-public-license.js +9 -5
- package/dist/preview-server/start-server.d.ts +2 -0
- package/dist/preview-server/start-server.js +1 -0
- package/dist/preview-server/studio-protocol/handle-discovery.js +57 -26
- package/dist/preview-server/studio-protocol/handle-install.js +13 -3
- package/dist/preview-server/studio-protocol/handle-license-key.d.ts +6 -0
- package/dist/preview-server/studio-protocol/handle-license-key.js +129 -0
- package/dist/preview-server/studio-protocol/origin-policy.d.ts +6 -3
- package/dist/preview-server/studio-protocol/origin-policy.js +43 -17
- package/dist/preview-server/update-available.d.ts +6 -0
- package/dist/preview-server/update-available.js +30 -4
- package/dist/remotion-skill-names.d.ts +2 -0
- package/dist/remotion-skill-names.js +16 -0
- package/dist/routes.d.ts +3 -1
- package/dist/routes.js +16 -5
- package/dist/start-studio.d.ts +3 -1
- package/dist/start-studio.js +2 -1
- package/package.json +8 -8
|
@@ -1,39 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handleStudioProtocolOptions = exports.setStudioProtocolCorsHeaders = exports.
|
|
4
|
-
const
|
|
3
|
+
exports.handleStudioProtocolOptions = exports.setStudioProtocolCorsHeaders = exports.getAllowedLicenseKeyOrigin = exports.getAllowedStudioProtocolOrigin = void 0;
|
|
4
|
+
const isLoopbackHttp = (url) => url.protocol === 'http:' &&
|
|
5
|
+
(url.hostname === 'localhost' || url.hostname === '127.0.0.1');
|
|
6
|
+
const getAllowedStudioProtocolOrigin = (origin) => {
|
|
5
7
|
if (!origin) {
|
|
6
|
-
return
|
|
8
|
+
return null;
|
|
7
9
|
}
|
|
8
10
|
try {
|
|
9
11
|
const url = new URL(origin);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
(url.hostname === 'localhost' || url.hostname === '127.0.0.1')));
|
|
12
|
+
if (url.protocol !== 'https:' && !isLoopbackHttp(url)) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return url.origin;
|
|
15
16
|
}
|
|
16
17
|
catch (_a) {
|
|
17
|
-
return
|
|
18
|
+
return null;
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
|
-
exports.
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
exports.getAllowedStudioProtocolOrigin = getAllowedStudioProtocolOrigin;
|
|
22
|
+
const getAllowedLicenseKeyOrigin = (origin) => {
|
|
23
|
+
if (!origin) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const url = new URL(origin);
|
|
28
|
+
if (isLoopbackHttp(url)) {
|
|
29
|
+
return url.origin;
|
|
30
|
+
}
|
|
31
|
+
if (url.origin === 'https://remotion.pro' ||
|
|
32
|
+
url.origin === 'https://www.remotion.pro') {
|
|
33
|
+
return url.origin;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
catch (_a) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.getAllowedLicenseKeyOrigin = getAllowedLicenseKeyOrigin;
|
|
42
|
+
const setStudioProtocolCorsHeaders = ({ licenseKey, request, response, }) => {
|
|
43
|
+
const origin = licenseKey
|
|
44
|
+
? (0, exports.getAllowedLicenseKeyOrigin)(request.headers.origin)
|
|
45
|
+
: (0, exports.getAllowedStudioProtocolOrigin)(request.headers.origin);
|
|
46
|
+
if (origin === null) {
|
|
24
47
|
return;
|
|
25
48
|
}
|
|
26
49
|
response.setHeader('Access-Control-Allow-Origin', origin);
|
|
27
|
-
response.setHeader('Vary', 'Origin');
|
|
50
|
+
response.setHeader('Vary', 'Origin, Access-Control-Request-Headers, Access-Control-Request-Private-Network');
|
|
28
51
|
response.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
29
52
|
response.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
30
53
|
response.setHeader('Access-Control-Max-Age', '600');
|
|
31
54
|
response.setHeader('Access-Control-Allow-Private-Network', 'true');
|
|
32
55
|
};
|
|
33
56
|
exports.setStudioProtocolCorsHeaders = setStudioProtocolCorsHeaders;
|
|
34
|
-
const handleStudioProtocolOptions = ({ request, response, }) => {
|
|
35
|
-
(0, exports.setStudioProtocolCorsHeaders)({ request, response });
|
|
36
|
-
|
|
57
|
+
const handleStudioProtocolOptions = ({ licenseKey, request, response, }) => {
|
|
58
|
+
(0, exports.setStudioProtocolCorsHeaders)({ licenseKey, request, response });
|
|
59
|
+
const origin = licenseKey
|
|
60
|
+
? (0, exports.getAllowedLicenseKeyOrigin)(request.headers.origin)
|
|
61
|
+
: (0, exports.getAllowedStudioProtocolOrigin)(request.headers.origin);
|
|
62
|
+
response.writeHead(origin === null ? 403 : 204);
|
|
37
63
|
response.end();
|
|
38
64
|
return Promise.resolve();
|
|
39
65
|
};
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { UpdateAvailableResponse } from '@remotion/studio-shared';
|
|
2
|
+
export declare const isUpdateAvailable: ({ remotionRoot, currentVersion, logLevel, getLatestVersion, }: {
|
|
3
|
+
remotionRoot: string;
|
|
4
|
+
currentVersion: string;
|
|
5
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
6
|
+
getLatestVersion: (() => Promise<string>) | null;
|
|
7
|
+
}) => Promise<UpdateAvailableResponse>;
|
|
2
8
|
export declare const getRemotionVersion: () => any;
|
|
3
9
|
export declare const isUpdateAvailableWithTimeout: (remotionRoot: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn") => Promise<UpdateAvailableResponse>;
|
|
@@ -3,12 +3,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isUpdateAvailableWithTimeout = exports.getRemotionVersion = void 0;
|
|
6
|
+
exports.isUpdateAvailableWithTimeout = exports.getRemotionVersion = exports.isUpdateAvailable = void 0;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
7
9
|
const semver_1 = __importDefault(require("semver"));
|
|
10
|
+
const detect_outdated_remotion_skills_1 = require("../detect-outdated-remotion-skills");
|
|
8
11
|
const get_latest_remotion_version_1 = require("../get-latest-remotion-version");
|
|
9
12
|
const get_package_manager_1 = require("./get-package-manager");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
13
|
+
const getSkillsUpdateInfo = ({ remotionRoot, currentVersion, }) => {
|
|
14
|
+
const projectSkills = (0, detect_outdated_remotion_skills_1.detectOutdatedRemotionSkills)({
|
|
15
|
+
cwd: remotionRoot,
|
|
16
|
+
currentVersion,
|
|
17
|
+
}).project;
|
|
18
|
+
return {
|
|
19
|
+
skillsUpdateAvailable: projectSkills.type === 'outdated',
|
|
20
|
+
remotionUpgradeSkillAvailable: (0, node_fs_1.existsSync)(node_path_1.default.join(remotionRoot, '.agents', 'skills', 'remotion-upgrade', 'SKILL.md')),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const isUpdateAvailable = async ({ remotionRoot, currentVersion, logLevel, getLatestVersion, }) => {
|
|
24
|
+
const latest = await (getLatestVersion !== null && getLatestVersion !== void 0 ? getLatestVersion : get_latest_remotion_version_1.getLatestRemotionVersion)();
|
|
25
|
+
const skillsUpdateInfo = getSkillsUpdateInfo({ remotionRoot, currentVersion });
|
|
12
26
|
const pkgManager = (0, get_package_manager_1.getPackageManager)({
|
|
13
27
|
remotionRoot,
|
|
14
28
|
packageManager: undefined,
|
|
@@ -17,12 +31,14 @@ const isUpdateAvailable = async ({ remotionRoot, currentVersion, logLevel, }) =>
|
|
|
17
31
|
});
|
|
18
32
|
return {
|
|
19
33
|
updateAvailable: semver_1.default.lt(currentVersion, latest),
|
|
34
|
+
...skillsUpdateInfo,
|
|
20
35
|
currentVersion,
|
|
21
36
|
latestVersion: latest,
|
|
22
37
|
timedOut: false,
|
|
23
38
|
packageManager: pkgManager === 'unknown' ? 'unknown' : pkgManager.manager,
|
|
24
39
|
};
|
|
25
40
|
};
|
|
41
|
+
exports.isUpdateAvailable = isUpdateAvailable;
|
|
26
42
|
const getRemotionVersion = () => {
|
|
27
43
|
// careful when refactoring this file, path must be adjusted
|
|
28
44
|
const packageJson = require('../../package.json');
|
|
@@ -32,6 +48,10 @@ const getRemotionVersion = () => {
|
|
|
32
48
|
exports.getRemotionVersion = getRemotionVersion;
|
|
33
49
|
const isUpdateAvailableWithTimeout = (remotionRoot, logLevel) => {
|
|
34
50
|
const version = (0, exports.getRemotionVersion)();
|
|
51
|
+
const skillsUpdateInfo = getSkillsUpdateInfo({
|
|
52
|
+
remotionRoot,
|
|
53
|
+
currentVersion: version,
|
|
54
|
+
});
|
|
35
55
|
const threeSecTimeout = new Promise((resolve) => {
|
|
36
56
|
const pkgManager = (0, get_package_manager_1.getPackageManager)({
|
|
37
57
|
remotionRoot,
|
|
@@ -44,6 +64,7 @@ const isUpdateAvailableWithTimeout = (remotionRoot, logLevel) => {
|
|
|
44
64
|
currentVersion: version,
|
|
45
65
|
latestVersion: version,
|
|
46
66
|
updateAvailable: false,
|
|
67
|
+
...skillsUpdateInfo,
|
|
47
68
|
timedOut: true,
|
|
48
69
|
packageManager: pkgManager === 'unknown' ? 'unknown' : pkgManager.manager,
|
|
49
70
|
});
|
|
@@ -51,7 +72,12 @@ const isUpdateAvailableWithTimeout = (remotionRoot, logLevel) => {
|
|
|
51
72
|
});
|
|
52
73
|
return Promise.race([
|
|
53
74
|
threeSecTimeout,
|
|
54
|
-
|
|
75
|
+
(0, exports.isUpdateAvailable)({
|
|
76
|
+
remotionRoot,
|
|
77
|
+
currentVersion: version,
|
|
78
|
+
logLevel,
|
|
79
|
+
getLatestVersion: null,
|
|
80
|
+
}),
|
|
55
81
|
]);
|
|
56
82
|
};
|
|
57
83
|
exports.isUpdateAvailableWithTimeout = isUpdateAvailableWithTimeout;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const remotionSkillNames: readonly ["remotion-best-practices", "remotion-captions", "remotion-create", "remotion-docs", "remotion-interactivity", "remotion-maps", "remotion-markup", "remotion-multimedia", "remotion-render", "remotion-saas", "remotion-upgrade"];
|
|
2
|
+
export type RemotionSkillName = (typeof remotionSkillNames)[number];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.remotionSkillNames = void 0;
|
|
4
|
+
exports.remotionSkillNames = [
|
|
5
|
+
'remotion-best-practices',
|
|
6
|
+
'remotion-captions',
|
|
7
|
+
'remotion-create',
|
|
8
|
+
'remotion-docs',
|
|
9
|
+
'remotion-interactivity',
|
|
10
|
+
'remotion-maps',
|
|
11
|
+
'remotion-markup',
|
|
12
|
+
'remotion-multimedia',
|
|
13
|
+
'remotion-render',
|
|
14
|
+
'remotion-saas',
|
|
15
|
+
'remotion-upgrade',
|
|
16
|
+
];
|
package/dist/routes.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { DefaultEditor } from '@remotion/renderer';
|
|
2
3
|
import type { GitSource, RenderDefaults, RenderJob, StudioRuntimeConfig } from '@remotion/studio-shared';
|
|
3
4
|
import type { QueueMethods } from './preview-server/api-types';
|
|
4
5
|
import type { LiveEventsServer } from './preview-server/live-events';
|
|
5
|
-
export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, queueMethods: methods, gitSource, binariesDirectory, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, getStudioRuntimeConfig, configFile, }: {
|
|
6
|
+
export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, queueMethods: methods, gitSource, binariesDirectory, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, getStudioRuntimeConfig, getDefaultEditor, configFile, }: {
|
|
6
7
|
staticHash: string;
|
|
7
8
|
staticHashPrefix: string;
|
|
8
9
|
outputHash: string;
|
|
@@ -26,5 +27,6 @@ export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash,
|
|
|
26
27
|
getPreviewSampleRate: () => number | null;
|
|
27
28
|
enableCrossSiteIsolation: boolean;
|
|
28
29
|
getStudioRuntimeConfig: () => StudioRuntimeConfig;
|
|
30
|
+
getDefaultEditor: () => DefaultEditor | null;
|
|
29
31
|
configFile: string | null;
|
|
30
32
|
}) => Promise<void>;
|
package/dist/routes.js
CHANGED
|
@@ -55,6 +55,7 @@ const open_in_editor_1 = require("./preview-server/routes/open-in-editor");
|
|
|
55
55
|
const serve_static_1 = require("./preview-server/serve-static");
|
|
56
56
|
const handle_discovery_1 = require("./preview-server/studio-protocol/handle-discovery");
|
|
57
57
|
const handle_install_1 = require("./preview-server/studio-protocol/handle-install");
|
|
58
|
+
const handle_license_key_1 = require("./preview-server/studio-protocol/handle-license-key");
|
|
58
59
|
const origin_policy_1 = require("./preview-server/studio-protocol/origin-policy");
|
|
59
60
|
const validate_same_origin_1 = require("./preview-server/validate-same-origin");
|
|
60
61
|
const watch_ignore_next_change_1 = require("./preview-server/watch-ignore-next-change");
|
|
@@ -82,7 +83,7 @@ const handleRemotionConfig = (response, remotionRoot) => {
|
|
|
82
83
|
response.end(JSON.stringify(body));
|
|
83
84
|
return Promise.resolve();
|
|
84
85
|
};
|
|
85
|
-
const handleFallback = async ({ remotionRoot, hash, response, request, getCurrentInputProps, getEnvVariables, publicDir, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, getAudioLatencyHint, getPreviewSampleRate, gitSource, logLevel, enableCrossSiteIsolation, getStudioRuntimeConfig, }) => {
|
|
86
|
+
const handleFallback = async ({ remotionRoot, hash, response, request, getCurrentInputProps, getEnvVariables, publicDir, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, getAudioLatencyHint, getPreviewSampleRate, gitSource, logLevel, enableCrossSiteIsolation, getStudioRuntimeConfig, getDefaultEditor, }) => {
|
|
86
87
|
var _a, _b;
|
|
87
88
|
const acceptsHtml = ((_a = request.headers.accept) !== null && _a !== void 0 ? _a : '').includes('text/html');
|
|
88
89
|
if (request.method === 'GET' && acceptsHtml) {
|
|
@@ -105,7 +106,7 @@ const handleFallback = async ({ remotionRoot, hash, response, request, getCurren
|
|
|
105
106
|
`Change \`"${pathname}"\` to \`staticFile("${pathname}")\` to fix the error.`,
|
|
106
107
|
].join('\n'));
|
|
107
108
|
}
|
|
108
|
-
const displayName = await (0, open_in_editor_1.getEditorName)();
|
|
109
|
+
const displayName = await (0, open_in_editor_1.getEditorName)({ getDefaultEditor, logLevel });
|
|
109
110
|
response.setHeader('content-type', 'text/html');
|
|
110
111
|
if (enableCrossSiteIsolation) {
|
|
111
112
|
response.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
|
|
@@ -251,7 +252,7 @@ const handleBeep = (_, response) => {
|
|
|
251
252
|
readStream.pipe(response);
|
|
252
253
|
return Promise.resolve();
|
|
253
254
|
};
|
|
254
|
-
const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, queueMethods: methods, gitSource, binariesDirectory, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, getStudioRuntimeConfig, configFile, }) => {
|
|
255
|
+
const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, getRenderQueue, getRenderDefaults, getNumberOfAudioTags, queueMethods: methods, gitSource, binariesDirectory, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, getStudioRuntimeConfig, getDefaultEditor, configFile, }) => {
|
|
255
256
|
const url = new URL(request.url, 'http://localhost');
|
|
256
257
|
if (url.pathname === '/api/file-source') {
|
|
257
258
|
return handleFileSource({
|
|
@@ -279,9 +280,14 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
|
|
|
279
280
|
});
|
|
280
281
|
}
|
|
281
282
|
if (url.pathname === '/api/studio-protocol' ||
|
|
282
|
-
url.pathname === '/api/studio-protocol/install'
|
|
283
|
+
url.pathname === '/api/studio-protocol/install' ||
|
|
284
|
+
url.pathname === '/api/studio-protocol/license-key') {
|
|
283
285
|
if (request.method === 'OPTIONS') {
|
|
284
|
-
return (0, origin_policy_1.handleStudioProtocolOptions)({
|
|
286
|
+
return (0, origin_policy_1.handleStudioProtocolOptions)({
|
|
287
|
+
licenseKey: url.pathname === '/api/studio-protocol/license-key',
|
|
288
|
+
request,
|
|
289
|
+
response,
|
|
290
|
+
});
|
|
285
291
|
}
|
|
286
292
|
if (url.pathname === '/api/studio-protocol') {
|
|
287
293
|
return (0, handle_discovery_1.handleStudioProtocolDiscovery)({
|
|
@@ -292,6 +298,9 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
|
|
|
292
298
|
response,
|
|
293
299
|
});
|
|
294
300
|
}
|
|
301
|
+
if (url.pathname === '/api/studio-protocol/license-key') {
|
|
302
|
+
return (0, handle_license_key_1.handleStudioProtocolLicenseKey)({ configFile, request, response });
|
|
303
|
+
}
|
|
295
304
|
return (0, handle_install_1.handleStudioProtocolInstall)({
|
|
296
305
|
focusStudioTab: (studioUrl) => {
|
|
297
306
|
(0, better_opn_1.focusBrowserTab)({ url: studioUrl }).catch(() => undefined);
|
|
@@ -314,6 +323,7 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
|
|
|
314
323
|
binariesDirectory,
|
|
315
324
|
publicDir,
|
|
316
325
|
configFile,
|
|
326
|
+
getDefaultEditor,
|
|
317
327
|
});
|
|
318
328
|
}
|
|
319
329
|
}
|
|
@@ -374,6 +384,7 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
|
|
|
374
384
|
getPreviewSampleRate,
|
|
375
385
|
enableCrossSiteIsolation,
|
|
376
386
|
getStudioRuntimeConfig,
|
|
387
|
+
getDefaultEditor,
|
|
377
388
|
});
|
|
378
389
|
};
|
|
379
390
|
exports.handleRoutes = handleRoutes;
|
package/dist/start-studio.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BundlerOverrideFn, RspackOverrideFn, WebpackOverrideFn } from '@remotion/bundler';
|
|
2
|
+
import type { DefaultEditor } from '@remotion/renderer';
|
|
2
3
|
import type { GitSource, RenderDefaults, RenderJob, StudioRuntimeConfig } from '@remotion/studio-shared';
|
|
3
4
|
import type { QueueMethods } from './preview-server/api-types';
|
|
4
5
|
export type StartStudioResult = {
|
|
@@ -6,7 +7,7 @@ export type StartStudioResult = {
|
|
|
6
7
|
} | {
|
|
7
8
|
type: 'already-running';
|
|
8
9
|
};
|
|
9
|
-
export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, remotionRoot, relativePublicDir, bundlerOverride, rspackOverride, webpackOverride, poll, getRenderDefaults, getRenderQueue, getNumberOfAudioTags, queueMethods, previewEntry, gitSource, binariesDirectory, forceIPv4, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, forceNew, rspack, getStudioRuntimeConfig, configFile, }: {
|
|
10
|
+
export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, remotionRoot, relativePublicDir, bundlerOverride, rspackOverride, webpackOverride, poll, getRenderDefaults, getRenderQueue, getNumberOfAudioTags, queueMethods, previewEntry, gitSource, binariesDirectory, forceIPv4, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, forceNew, rspack, getStudioRuntimeConfig, getDefaultEditor, configFile, }: {
|
|
10
11
|
browserArgs: string;
|
|
11
12
|
browserFlag: string;
|
|
12
13
|
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
@@ -35,5 +36,6 @@ export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser
|
|
|
35
36
|
forceNew: boolean;
|
|
36
37
|
rspack: boolean;
|
|
37
38
|
getStudioRuntimeConfig: () => StudioRuntimeConfig;
|
|
39
|
+
getDefaultEditor: () => DefaultEditor | null;
|
|
38
40
|
configFile: string | null;
|
|
39
41
|
}) => Promise<StartStudioResult>;
|
package/dist/start-studio.js
CHANGED
|
@@ -19,7 +19,7 @@ const public_folder_1 = require("./preview-server/public-folder");
|
|
|
19
19
|
const start_server_1 = require("./preview-server/start-server");
|
|
20
20
|
const server_ready_1 = require("./server-ready");
|
|
21
21
|
const watch_root_file_1 = require("./watch-root-file");
|
|
22
|
-
const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, remotionRoot, relativePublicDir, bundlerOverride, rspackOverride, webpackOverride, poll, getRenderDefaults, getRenderQueue, getNumberOfAudioTags, queueMethods, previewEntry, gitSource, binariesDirectory, forceIPv4, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, forceNew, rspack, getStudioRuntimeConfig, configFile, }) => {
|
|
22
|
+
const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, remotionRoot, relativePublicDir, bundlerOverride, rspackOverride, webpackOverride, poll, getRenderDefaults, getRenderQueue, getNumberOfAudioTags, queueMethods, previewEntry, gitSource, binariesDirectory, forceIPv4, getAudioLatencyHint, getPreviewSampleRate, enableCrossSiteIsolation, forceNew, rspack, getStudioRuntimeConfig, getDefaultEditor, configFile, }) => {
|
|
23
23
|
try {
|
|
24
24
|
if (typeof Bun === 'undefined') {
|
|
25
25
|
process.title = 'node (npx remotion studio)';
|
|
@@ -93,6 +93,7 @@ const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEn
|
|
|
93
93
|
forceNew,
|
|
94
94
|
rspack,
|
|
95
95
|
getStudioRuntimeConfig,
|
|
96
|
+
getDefaultEditor,
|
|
96
97
|
configFile,
|
|
97
98
|
});
|
|
98
99
|
if (result.type === 'already-running') {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio-server"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/studio-server",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.504",
|
|
7
7
|
"description": "Run a Remotion Studio with a server backend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@remotion/studio-protocol": "4.0.
|
|
26
|
+
"@remotion/studio-protocol": "4.0.504",
|
|
27
27
|
"@babel/types": "7.24.0",
|
|
28
28
|
"@babel/parser": "7.24.1",
|
|
29
29
|
"@svgr/core": "8.1.0",
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"semver": "7.5.3",
|
|
33
33
|
"zod": "4.4.3",
|
|
34
34
|
"prettier": "3.8.1",
|
|
35
|
-
"remotion": "4.0.
|
|
35
|
+
"remotion": "4.0.504",
|
|
36
36
|
"recast": "0.23.11",
|
|
37
|
-
"@remotion/bundler": "4.0.
|
|
38
|
-
"@remotion/renderer": "4.0.
|
|
39
|
-
"@remotion/studio-codemods": "4.0.
|
|
40
|
-
"@remotion/studio-shared": "4.0.
|
|
37
|
+
"@remotion/bundler": "4.0.504",
|
|
38
|
+
"@remotion/renderer": "4.0.504",
|
|
39
|
+
"@remotion/studio-codemods": "4.0.504",
|
|
40
|
+
"@remotion/studio-shared": "4.0.504",
|
|
41
41
|
"memfs": "3.4.3",
|
|
42
42
|
"open": "8.4.2"
|
|
43
43
|
},
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"ast-types": "0.16.1",
|
|
46
46
|
"react": "19.2.3",
|
|
47
47
|
"@types/semver": "7.5.3",
|
|
48
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
48
|
+
"@remotion/eslint-config-internal": "4.0.504",
|
|
49
49
|
"eslint": "9.19.0",
|
|
50
50
|
"@types/node": "20.12.14",
|
|
51
51
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|