@remotion/studio-server 4.0.459 → 4.0.461
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/codemods/delete-jsx-node.d.ts +1 -1
- package/dist/codemods/duplicate-jsx-node.d.ts +1 -1
- package/dist/codemods/jsx-sequence-context.d.ts +1 -1
- package/dist/codemods/update-sequence-props/update-sequence-props.d.ts +35 -0
- package/dist/codemods/update-sequence-props/update-sequence-props.js +224 -0
- package/dist/codemods/update-sequence-props.d.ts +7 -1
- package/dist/codemods/update-sequence-props.js +37 -3
- package/dist/helpers/get-ast-node-path.d.ts +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/preview-server/node-path-cache.d.ts +1 -1
- package/dist/preview-server/routes/apply-visual-control-change.js +4 -4
- package/dist/preview-server/routes/can-update-sequence-props.d.ts +6 -4
- package/dist/preview-server/routes/can-update-sequence-props.js +20 -24
- package/dist/preview-server/routes/delete-jsx-node.js +4 -4
- package/dist/preview-server/routes/duplicate-jsx-node.js +4 -4
- package/dist/preview-server/routes/log-update.d.ts +13 -2
- package/dist/preview-server/routes/log-update.js +40 -31
- package/dist/preview-server/routes/log-updates/format-prop-change.d.ts +9 -0
- package/dist/preview-server/routes/log-updates/format-prop-change.js +29 -0
- package/dist/preview-server/routes/log-updates/format-side-props.d.ts +5 -0
- package/dist/preview-server/routes/log-updates/format-side-props.js +18 -0
- package/dist/preview-server/routes/log-updates/formatting.d.ts +19 -0
- package/dist/preview-server/routes/log-updates/formatting.js +67 -0
- package/dist/preview-server/routes/log-updates/log-update.d.ts +15 -0
- package/dist/preview-server/routes/log-updates/log-update.js +39 -0
- package/dist/preview-server/routes/save-sequence-props.d.ts +3 -2
- package/dist/preview-server/routes/save-sequence-props.js +80 -85
- package/dist/preview-server/routes/update-default-props.js +4 -4
- package/dist/preview-server/sequence-props-watchers.d.ts +3 -2
- package/dist/preview-server/sequence-props-watchers.js +4 -3
- package/dist/preview-server/start-server.d.ts +0 -1
- package/dist/preview-server/start-server.js +0 -1
- package/dist/preview-server/undo-stack.js +1 -1
- package/dist/preview-server/watch-ignore-next-change.d.ts +1 -0
- package/dist/preview-server/watch-ignore-next-change.js +25 -1
- package/dist/routes.js +6 -14
- package/dist/start-studio.d.ts +1 -2
- package/dist/start-studio.js +1 -2
- package/package.json +8 -9
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.suppressBundlerUpdateForFile = exports.setWatchIgnoreNextChangePlugin = void 0;
|
|
3
|
+
exports.reloadPreviouslySuppressedFiles = exports.suppressBundlerUpdateForFile = exports.setWatchIgnoreNextChangePlugin = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
4
5
|
let currentPlugin = null;
|
|
5
6
|
const setWatchIgnoreNextChangePlugin = (plugin) => {
|
|
6
7
|
currentPlugin = plugin;
|
|
@@ -10,3 +11,26 @@ const suppressBundlerUpdateForFile = (absolutePath) => {
|
|
|
10
11
|
currentPlugin === null || currentPlugin === void 0 ? void 0 : currentPlugin.ignoreNextChange(absolutePath);
|
|
11
12
|
};
|
|
12
13
|
exports.suppressBundlerUpdateForFile = suppressBundlerUpdateForFile;
|
|
14
|
+
// Why do we need this?
|
|
15
|
+
// Consider we have a <Sequence>.
|
|
16
|
+
// 1. In visual mode, we update it to layout='none'. This is reflected in the browser and in the code,
|
|
17
|
+
// but Webpack is not aware because we suppressed the file change
|
|
18
|
+
// 2. Reload the page. Sequence registers still as layout={undefined}, then listens to sequence props
|
|
19
|
+
// asynchronously!
|
|
20
|
+
// 3. Server says that layout="none" is the case, props gets updated, and this reloads the <Sequence>.
|
|
21
|
+
// The same happens again - infinite loop!
|
|
22
|
+
// --> When reloading the Studio, it is a good idea to reset Webpack to a non-hacked state.
|
|
23
|
+
const reloadPreviouslySuppressedFiles = async () => {
|
|
24
|
+
if (!currentPlugin) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const files = currentPlugin.consumeSuppressedFilesHistory();
|
|
28
|
+
const now = new Date();
|
|
29
|
+
await Promise.all(files.map(async (file) => {
|
|
30
|
+
try {
|
|
31
|
+
await node_fs_1.promises.utimes(file, now, now);
|
|
32
|
+
}
|
|
33
|
+
catch (_a) { }
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
exports.reloadPreviouslySuppressedFiles = reloadPreviouslySuppressedFiles;
|
package/dist/routes.js
CHANGED
|
@@ -53,6 +53,7 @@ const handler_1 = require("./preview-server/handler");
|
|
|
53
53
|
const parse_body_1 = require("./preview-server/parse-body");
|
|
54
54
|
const public_folder_1 = require("./preview-server/public-folder");
|
|
55
55
|
const serve_static_1 = require("./preview-server/serve-static");
|
|
56
|
+
const watch_ignore_next_change_1 = require("./preview-server/watch-ignore-next-change");
|
|
56
57
|
const editorGuess = (0, open_in_editor_1.guessEditor)();
|
|
57
58
|
const loggedStaticFileHints = new Set();
|
|
58
59
|
const static404 = (response) => {
|
|
@@ -79,6 +80,11 @@ const handleRemotionConfig = (response, remotionRoot) => {
|
|
|
79
80
|
return Promise.resolve();
|
|
80
81
|
};
|
|
81
82
|
const handleFallback = async ({ remotionRoot, hash, response, request, getCurrentInputProps, getEnvVariables, publicDir, getRenderQueue, getRenderDefaults, numberOfAudioTags, audioLatencyHint, gitSource, logLevel, enableCrossSiteIsolation, }) => {
|
|
83
|
+
var _a;
|
|
84
|
+
const acceptsHtml = ((_a = request.headers.accept) !== null && _a !== void 0 ? _a : '').includes('text/html');
|
|
85
|
+
if (request.method === 'GET' && acceptsHtml) {
|
|
86
|
+
await (0, watch_ignore_next_change_1.reloadPreviouslySuppressedFiles)();
|
|
87
|
+
}
|
|
82
88
|
const requestUrl = new URL(request.url, 'http://localhost');
|
|
83
89
|
const { pathname } = requestUrl;
|
|
84
90
|
const staticFileHint = (0, get_static_file_fallback_hint_1.getStaticFileFallbackHint)({
|
|
@@ -311,17 +317,6 @@ const handleBeep = (_, response) => {
|
|
|
311
317
|
readStream.pipe(response);
|
|
312
318
|
return Promise.resolve();
|
|
313
319
|
};
|
|
314
|
-
const handleWasm = (_, response) => {
|
|
315
|
-
const filePath = node_path_1.default.resolve(require.resolve('source-map'), '..', 'lib', 'mappings.wasm');
|
|
316
|
-
const stat = (0, node_fs_1.statSync)(filePath);
|
|
317
|
-
response.writeHead(200, {
|
|
318
|
-
'Content-Type': 'application/wasm',
|
|
319
|
-
'Content-Length': stat.size,
|
|
320
|
-
});
|
|
321
|
-
const readStream = (0, node_fs_1.createReadStream)(filePath);
|
|
322
|
-
readStream.pipe(response);
|
|
323
|
-
return Promise.resolve();
|
|
324
|
-
};
|
|
325
320
|
const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, logLevel, getRenderQueue, getRenderDefaults, numberOfAudioTags, queueMethods: methods, gitSource, binariesDirectory, audioLatencyHint, enableCrossSiteIsolation, }) => {
|
|
326
321
|
const url = new URL(request.url, 'http://localhost');
|
|
327
322
|
if (url.pathname === '/api/file-source') {
|
|
@@ -385,9 +380,6 @@ const handleRoutes = ({ staticHash, staticHashPrefix, outputHash, outputHashPref
|
|
|
385
380
|
if (url.pathname === '/beep.wav') {
|
|
386
381
|
return handleBeep(request, response);
|
|
387
382
|
}
|
|
388
|
-
if (url.pathname === studio_shared_1.SOURCE_MAP_ENDPOINT) {
|
|
389
|
-
return handleWasm(request, response);
|
|
390
|
-
}
|
|
391
383
|
if (url.pathname === '/__remotion_config') {
|
|
392
384
|
return handleRemotionConfig(response, remotionRoot);
|
|
393
385
|
}
|
package/dist/start-studio.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type StartStudioResult = {
|
|
|
6
6
|
} | {
|
|
7
7
|
type: 'already-running';
|
|
8
8
|
};
|
|
9
|
-
export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, maxTimelineTracks, remotionRoot, keyboardShortcutsEnabled, experimentalClientSideRenderingEnabled,
|
|
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";
|
|
@@ -20,7 +20,6 @@ export declare const startStudio: ({ browserArgs, browserFlag, shouldOpenBrowser
|
|
|
20
20
|
remotionRoot: string;
|
|
21
21
|
keyboardShortcutsEnabled: boolean;
|
|
22
22
|
experimentalClientSideRenderingEnabled: boolean;
|
|
23
|
-
experimentalVisualModeEnabled: boolean;
|
|
24
23
|
relativePublicDir: string | null;
|
|
25
24
|
webpackOverride: WebpackOverrideFn;
|
|
26
25
|
poll: number | null;
|
package/dist/start-studio.js
CHANGED
|
@@ -18,7 +18,7 @@ const public_folder_1 = require("./preview-server/public-folder");
|
|
|
18
18
|
const start_server_1 = require("./preview-server/start-server");
|
|
19
19
|
const server_ready_1 = require("./server-ready");
|
|
20
20
|
const watch_root_file_1 = require("./watch-root-file");
|
|
21
|
-
const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEntryPath, logLevel, getCurrentInputProps, getEnvVariables, desiredPort, maxTimelineTracks, remotionRoot, keyboardShortcutsEnabled, experimentalClientSideRenderingEnabled,
|
|
21
|
+
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, }) => {
|
|
22
22
|
try {
|
|
23
23
|
if (typeof Bun === 'undefined') {
|
|
24
24
|
process.title = 'node (npx remotion studio)';
|
|
@@ -72,7 +72,6 @@ const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEn
|
|
|
72
72
|
remotionRoot,
|
|
73
73
|
keyboardShortcutsEnabled,
|
|
74
74
|
experimentalClientSideRenderingEnabled,
|
|
75
|
-
experimentalVisualModeEnabled,
|
|
76
75
|
publicDir,
|
|
77
76
|
webpackOverride,
|
|
78
77
|
poll,
|
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.461",
|
|
7
7
|
"description": "Run a Remotion Studio with a server backend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"sideEffects": false,
|
|
@@ -28,20 +28,19 @@
|
|
|
28
28
|
"@babel/parser": "7.24.1",
|
|
29
29
|
"semver": "7.5.3",
|
|
30
30
|
"prettier": "3.8.1",
|
|
31
|
-
"remotion": "4.0.
|
|
31
|
+
"remotion": "4.0.461",
|
|
32
32
|
"recast": "0.23.11",
|
|
33
|
-
"@remotion/bundler": "4.0.
|
|
34
|
-
"@remotion/renderer": "4.0.
|
|
35
|
-
"@remotion/studio-shared": "4.0.
|
|
33
|
+
"@remotion/bundler": "4.0.461",
|
|
34
|
+
"@remotion/renderer": "4.0.461",
|
|
35
|
+
"@remotion/studio-shared": "4.0.461",
|
|
36
36
|
"memfs": "3.4.3",
|
|
37
|
-
"
|
|
38
|
-
"open": "^8.4.2"
|
|
37
|
+
"open": "8.4.2"
|
|
39
38
|
},
|
|
40
39
|
"devDependencies": {
|
|
41
40
|
"ast-types": "0.16.1",
|
|
42
41
|
"react": "19.2.3",
|
|
43
|
-
"@types/semver": "
|
|
44
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
42
|
+
"@types/semver": "7.5.3",
|
|
43
|
+
"@remotion/eslint-config-internal": "4.0.461",
|
|
45
44
|
"eslint": "9.19.0",
|
|
46
45
|
"@types/node": "20.12.14",
|
|
47
46
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|