@remotion/studio-server 4.0.424 → 4.0.426
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/index.d.ts +3 -3
- package/dist/maybe-open-browser.d.ts +2 -3
- package/dist/maybe-open-browser.js +4 -22
- package/dist/preview-server/__tests__/multiple-lockfiles.test.d.ts +1 -0
- package/dist/preview-server/__tests__/multiple-lockfiles.test.js +37 -0
- package/dist/preview-server/dev-middleware/setup-hooks.js +2 -1
- package/dist/preview-server/start-server.d.ts +1 -0
- package/dist/preview-server/start-server.js +11 -3
- package/dist/start-studio.d.ts +3 -3
- package/dist/start-studio.js +4 -5
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ export { ApiRoutes, CopyStillToClipboardRequest, getDefaultOutLocation, OpenInFi
|
|
|
2
2
|
export type { AggregateRenderProgress, BundlingState, CopyingState, DownloadProgress, HotMiddlewareOptions, JobProgressCallback, ModuleMap, PackageManager, ProjectInfo, RenderingProgressInput, RenderJob, RenderJobWithCleanup, RequiredChromiumOptions, StitchingProgressInput, UiOpenGlOptions, } from '@remotion/studio-shared';
|
|
3
3
|
import { AnsiDiff } from './ansi-diff';
|
|
4
4
|
export declare const StudioServerInternals: {
|
|
5
|
-
startStudio: ({ browserArgs, browserFlag,
|
|
5
|
+
startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, maxTimelineTracks, remotionRoot, keyboardShortcutsEnabled, experimentalClientSideRenderingEnabled, relativePublicDir, webpackOverride, poll, getRenderDefaults, getRenderQueue, numberOfAudioTags, queueMethods, previewEntry, gitSource, bufferStateDelayInMilliseconds, binariesDirectory, forceIPv4, audioLatencyHint, enableCrossSiteIsolation, askAIEnabled, forceNew, rspack, }: {
|
|
6
6
|
browserArgs: string;
|
|
7
7
|
browserFlag: string;
|
|
8
8
|
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
9
|
-
|
|
9
|
+
shouldOpenBrowser: boolean;
|
|
10
10
|
fullEntryPath: string;
|
|
11
11
|
getCurrentInputProps: () => object;
|
|
12
12
|
getEnvVariables: () => Record<string, string>;
|
|
@@ -25,13 +25,13 @@ export declare const StudioServerInternals: {
|
|
|
25
25
|
audioLatencyHint: AudioContextLatencyCategory | null;
|
|
26
26
|
enableCrossSiteIsolation: boolean;
|
|
27
27
|
queueMethods: import("./preview-server/api-types").QueueMethods;
|
|
28
|
-
parsedCliOpen: boolean;
|
|
29
28
|
previewEntry: string;
|
|
30
29
|
gitSource: import("@remotion/studio-shared").GitSource | null;
|
|
31
30
|
binariesDirectory: string | null;
|
|
32
31
|
forceIPv4: boolean;
|
|
33
32
|
askAIEnabled: boolean;
|
|
34
33
|
forceNew: boolean;
|
|
34
|
+
rspack: boolean;
|
|
35
35
|
}) => Promise<import("./start-studio").StartStudioResult>;
|
|
36
36
|
getRemotionVersion: () => any;
|
|
37
37
|
waitForLiveEventsListener: () => Promise<import("./preview-server/live-events").LiveEventsServer>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export declare const maybeOpenBrowser: ({ browserArgs, browserFlag,
|
|
1
|
+
export declare const maybeOpenBrowser: ({ browserArgs, browserFlag, shouldOpenBrowser, url, logLevel, }: {
|
|
2
2
|
browserArgs: string;
|
|
3
3
|
browserFlag: string;
|
|
4
|
-
|
|
5
|
-
parsedCliOpen: boolean;
|
|
4
|
+
shouldOpenBrowser: boolean;
|
|
6
5
|
url: string;
|
|
7
6
|
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
8
7
|
}) => Promise<{
|
|
@@ -3,30 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.maybeOpenBrowser = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const better_opn_1 = require("./better-opn");
|
|
6
|
-
const
|
|
6
|
+
const maybeOpenBrowser = async ({ browserArgs, browserFlag, shouldOpenBrowser, url, logLevel, }) => {
|
|
7
7
|
var _a;
|
|
8
|
-
if (parsedCliOpen === false) {
|
|
9
|
-
return {
|
|
10
|
-
shouldOpenBrowser: false,
|
|
11
|
-
reasonForBrowserDecision: '--no-open specified',
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
8
|
if (((_a = process.env.BROWSER) !== null && _a !== void 0 ? _a : '').toLowerCase() === 'none') {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
reasonForBrowserDecision: 'env BROWSER=none was set',
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (configValueShouldOpenBrowser === false) {
|
|
21
|
-
return { shouldOpenBrowser: false, reasonForBrowserDecision: 'Config file' };
|
|
9
|
+
renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, 'Not opening browser, reason: env BROWSER=none was set');
|
|
10
|
+
return { didOpenBrowser: false };
|
|
22
11
|
}
|
|
23
|
-
return { shouldOpenBrowser: true, reasonForBrowserDecision: 'default' };
|
|
24
|
-
};
|
|
25
|
-
const maybeOpenBrowser = async ({ browserArgs, browserFlag, configValueShouldOpenBrowser, parsedCliOpen, url, logLevel, }) => {
|
|
26
|
-
const { reasonForBrowserDecision, shouldOpenBrowser } = getShouldOpenBrowser({
|
|
27
|
-
configValueShouldOpenBrowser,
|
|
28
|
-
parsedCliOpen,
|
|
29
|
-
});
|
|
30
12
|
if (shouldOpenBrowser) {
|
|
31
13
|
await (0, better_opn_1.openBrowser)({
|
|
32
14
|
url,
|
|
@@ -35,7 +17,7 @@ const maybeOpenBrowser = async ({ browserArgs, browserFlag, configValueShouldOpe
|
|
|
35
17
|
});
|
|
36
18
|
}
|
|
37
19
|
else {
|
|
38
|
-
renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel },
|
|
20
|
+
renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, 'Not opening browser, reason: --no-open specified or config file');
|
|
39
21
|
}
|
|
40
22
|
return { didOpenBrowser: shouldOpenBrowser };
|
|
41
23
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
const bun_test_1 = require("bun:test");
|
|
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
|
+
const get_package_manager_1 = require("../get-package-manager");
|
|
11
|
+
(0, bun_test_1.describe)('getPackageManager multiple lockfiles', () => {
|
|
12
|
+
let tempDir;
|
|
13
|
+
(0, bun_test_1.beforeEach)(() => {
|
|
14
|
+
tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'remotion-test-'));
|
|
15
|
+
});
|
|
16
|
+
(0, bun_test_1.afterEach)(() => {
|
|
17
|
+
node_fs_1.default.rmSync(tempDir, { recursive: true, force: true });
|
|
18
|
+
});
|
|
19
|
+
(0, bun_test_1.test)('should not throw error when multiple lockfiles are detected', () => {
|
|
20
|
+
node_fs_1.default.writeFileSync(node_path_1.default.join(tempDir, 'package-lock.json'), '{}');
|
|
21
|
+
node_fs_1.default.writeFileSync(node_path_1.default.join(tempDir, 'bun.lock'), '');
|
|
22
|
+
// Should not throw
|
|
23
|
+
const manager = (0, get_package_manager_1.getPackageManager)(tempDir, undefined, 0);
|
|
24
|
+
// Should return one of them (usually the first one in the list, which is npm)
|
|
25
|
+
(0, bun_test_1.expect)(manager).not.toBe('unknown');
|
|
26
|
+
if (typeof manager !== 'string') {
|
|
27
|
+
(0, bun_test_1.expect)(['npm', 'bun']).toContain(manager.manager);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
(0, bun_test_1.test)('should return npm if only package-lock.json exists', () => {
|
|
31
|
+
node_fs_1.default.writeFileSync(node_path_1.default.join(tempDir, 'package-lock.json'), '{}');
|
|
32
|
+
const manager = (0, get_package_manager_1.getPackageManager)(tempDir, undefined, 0);
|
|
33
|
+
if (typeof manager !== 'string') {
|
|
34
|
+
(0, bun_test_1.expect)(manager.manager).toBe('npm');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -30,7 +30,8 @@ function setupHooks(context, logLevel) {
|
|
|
30
30
|
.map((a) => a.trimEnd())
|
|
31
31
|
.filter(no_react_1.NoReactInternals.truthy)
|
|
32
32
|
.map((a) => {
|
|
33
|
-
if (a.startsWith('webpack compiled')
|
|
33
|
+
if (a.startsWith('webpack compiled') ||
|
|
34
|
+
a.startsWith('Rspack compiled')) {
|
|
34
35
|
return `Built in ${stats.endTime - stats.startTime}ms`;
|
|
35
36
|
}
|
|
36
37
|
return a;
|
|
@@ -26,7 +26,7 @@ const startServer = async (options) => {
|
|
|
26
26
|
});
|
|
27
27
|
return detection.type === 'match' ? 'stop' : 'continue';
|
|
28
28
|
};
|
|
29
|
-
const
|
|
29
|
+
const configArgs = {
|
|
30
30
|
entry: options.entry,
|
|
31
31
|
userDefinedComponent: options.userDefinedComponent,
|
|
32
32
|
outDir: null,
|
|
@@ -39,8 +39,16 @@ const startServer = async (options) => {
|
|
|
39
39
|
poll: options.poll,
|
|
40
40
|
bufferStateDelayInMilliseconds: options.bufferStateDelayInMilliseconds,
|
|
41
41
|
askAIEnabled: options.askAIEnabled,
|
|
42
|
-
}
|
|
43
|
-
|
|
42
|
+
};
|
|
43
|
+
let compiler;
|
|
44
|
+
if (options.rspack) {
|
|
45
|
+
const [, rspackConf] = await bundler_1.BundlerInternals.rspackConfig(configArgs);
|
|
46
|
+
compiler = bundler_1.BundlerInternals.createRspackCompiler(rspackConf);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const [, webpackConf] = await bundler_1.BundlerInternals.webpackConfig(configArgs);
|
|
50
|
+
compiler = (0, bundler_1.webpack)(webpackConf);
|
|
51
|
+
}
|
|
44
52
|
const wdmMiddleware = (0, dev_middleware_1.wdm)(compiler, options.logLevel);
|
|
45
53
|
const whm = (0, hot_middleware_1.webpackHotMiddleware)(compiler, options.logLevel);
|
|
46
54
|
const liveEventsServer = (0, live_events_1.makeLiveEventsRouter)(options.logLevel);
|
package/dist/start-studio.d.ts
CHANGED
|
@@ -6,11 +6,11 @@ export type StartStudioResult = {
|
|
|
6
6
|
} | {
|
|
7
7
|
type: 'already-running';
|
|
8
8
|
};
|
|
9
|
-
export declare const startStudio: ({ browserArgs, browserFlag,
|
|
9
|
+
export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, maxTimelineTracks, remotionRoot, keyboardShortcutsEnabled, experimentalClientSideRenderingEnabled, relativePublicDir, webpackOverride, poll, getRenderDefaults, getRenderQueue, numberOfAudioTags, queueMethods, previewEntry, gitSource, bufferStateDelayInMilliseconds, binariesDirectory, forceIPv4, audioLatencyHint, enableCrossSiteIsolation, askAIEnabled, forceNew, rspack, }: {
|
|
10
10
|
browserArgs: string;
|
|
11
11
|
browserFlag: string;
|
|
12
12
|
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
13
|
-
|
|
13
|
+
shouldOpenBrowser: boolean;
|
|
14
14
|
fullEntryPath: string;
|
|
15
15
|
getCurrentInputProps: () => object;
|
|
16
16
|
getEnvVariables: () => Record<string, string>;
|
|
@@ -29,11 +29,11 @@ export declare const startStudio: ({ browserArgs, browserFlag, configValueShould
|
|
|
29
29
|
audioLatencyHint: AudioContextLatencyCategory | null;
|
|
30
30
|
enableCrossSiteIsolation: boolean;
|
|
31
31
|
queueMethods: QueueMethods;
|
|
32
|
-
parsedCliOpen: boolean;
|
|
33
32
|
previewEntry: string;
|
|
34
33
|
gitSource: GitSource | null;
|
|
35
34
|
binariesDirectory: string | null;
|
|
36
35
|
forceIPv4: boolean;
|
|
37
36
|
askAIEnabled: boolean;
|
|
38
37
|
forceNew: boolean;
|
|
38
|
+
rspack: boolean;
|
|
39
39
|
}) => Promise<StartStudioResult>;
|
package/dist/start-studio.js
CHANGED
|
@@ -17,7 +17,7 @@ const public_folder_1 = require("./preview-server/public-folder");
|
|
|
17
17
|
const start_server_1 = require("./preview-server/start-server");
|
|
18
18
|
const server_ready_1 = require("./server-ready");
|
|
19
19
|
const watch_root_file_1 = require("./watch-root-file");
|
|
20
|
-
const startStudio = async ({ browserArgs, browserFlag,
|
|
20
|
+
const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, maxTimelineTracks, remotionRoot, keyboardShortcutsEnabled, experimentalClientSideRenderingEnabled, relativePublicDir, webpackOverride, poll, getRenderDefaults, getRenderQueue, numberOfAudioTags, queueMethods, previewEntry, gitSource, bufferStateDelayInMilliseconds, binariesDirectory, forceIPv4, audioLatencyHint, enableCrossSiteIsolation, askAIEnabled, forceNew, rspack, }) => {
|
|
21
21
|
try {
|
|
22
22
|
if (typeof Bun === 'undefined') {
|
|
23
23
|
process.title = 'node (npx remotion studio)';
|
|
@@ -89,14 +89,14 @@ const startStudio = async ({ browserArgs, browserFlag, configValueShouldOpenBrow
|
|
|
89
89
|
enableCrossSiteIsolation,
|
|
90
90
|
askAIEnabled,
|
|
91
91
|
forceNew,
|
|
92
|
+
rspack,
|
|
92
93
|
});
|
|
93
94
|
if (result.type === 'already-running') {
|
|
94
95
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Already running on port ${result.port}.`);
|
|
95
96
|
const res = await (0, maybe_open_browser_1.maybeOpenBrowser)({
|
|
96
97
|
browserArgs,
|
|
97
98
|
browserFlag,
|
|
98
|
-
|
|
99
|
-
parsedCliOpen,
|
|
99
|
+
shouldOpenBrowser,
|
|
100
100
|
url: `http://localhost:${result.port}`,
|
|
101
101
|
logLevel,
|
|
102
102
|
});
|
|
@@ -119,8 +119,7 @@ const startStudio = async ({ browserArgs, browserFlag, configValueShouldOpenBrow
|
|
|
119
119
|
await (0, maybe_open_browser_1.maybeOpenBrowser)({
|
|
120
120
|
browserArgs,
|
|
121
121
|
browserFlag,
|
|
122
|
-
|
|
123
|
-
parsedCliOpen,
|
|
122
|
+
shouldOpenBrowser,
|
|
124
123
|
url: `http://localhost:${port}`,
|
|
125
124
|
logLevel,
|
|
126
125
|
});
|
package/package.json
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
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.426",
|
|
7
7
|
"description": "Run a Remotion Studio with a server backend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"sideEffects": false,
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint src",
|
|
12
12
|
"test": "bun test src",
|
|
13
|
-
"formatting": "prettier
|
|
13
|
+
"formatting": "prettier src --check",
|
|
14
14
|
"make": "tsgo -d"
|
|
15
15
|
},
|
|
16
16
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@babel/parser": "7.24.1",
|
|
27
27
|
"semver": "7.5.3",
|
|
28
|
-
"remotion": "4.0.
|
|
28
|
+
"remotion": "4.0.426",
|
|
29
29
|
"recast": "0.23.11",
|
|
30
|
-
"@remotion/bundler": "4.0.
|
|
31
|
-
"@remotion/renderer": "4.0.
|
|
32
|
-
"@remotion/studio-shared": "4.0.
|
|
30
|
+
"@remotion/bundler": "4.0.426",
|
|
31
|
+
"@remotion/renderer": "4.0.426",
|
|
32
|
+
"@remotion/studio-shared": "4.0.426",
|
|
33
33
|
"memfs": "3.4.3",
|
|
34
34
|
"source-map": "0.7.3",
|
|
35
35
|
"open": "^8.4.2"
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"react": "19.2.3",
|
|
40
40
|
"@babel/types": "7.24.0",
|
|
41
41
|
"@types/semver": "^7.3.4",
|
|
42
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
42
|
+
"@remotion/eslint-config-internal": "4.0.426",
|
|
43
43
|
"eslint": "9.19.0",
|
|
44
44
|
"@types/node": "20.12.14",
|
|
45
45
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|