@remotion/cli 3.3.25 → 3.3.27
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/config/log.d.ts +1 -1
- package/dist/editor/components/NewComposition/RemInput.d.ts +3 -1
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/event-source-events.d.ts +4 -0
- package/dist/event-source.js +3 -0
- package/dist/get-cli-options.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
- package/dist/preview-server/public-folder.d.ts +8 -3
- package/dist/preview-server/public-folder.js +26 -10
- package/dist/preview-server/routes.d.ts +2 -2
- package/dist/preview-server/routes.js +6 -5
- package/dist/preview-server/start-server.d.ts +6 -1
- package/dist/preview-server/start-server.js +6 -9
- package/dist/preview.js +29 -2
- package/package.json +9 -9
- package/dist/convert-entry-point-to-serve-url.d.ts +0 -1
- package/dist/convert-entry-point-to-serve-url.js +0 -15
- package/dist/editor/components/CollapsableOptions.d.ts +0 -6
- package/dist/editor/components/CollapsableOptions.js +0 -35
- package/dist/editor/components/InlineAction.d.ts +0 -5
- package/dist/editor/components/InlineAction.js +0 -34
- package/dist/editor/components/RenderButton.d.ts +0 -6
- package/dist/editor/components/RenderButton.js +0 -43
- package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
- package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
- package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -11
- package/dist/editor/components/RenderModal/RenderModal.js +0 -262
- package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
- package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
- package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
- package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -38
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -30
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -22
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
- package/dist/editor/components/RenderQueue/actions.d.ts +0 -32
- package/dist/editor/components/RenderQueue/actions.js +0 -75
- package/dist/editor/components/RenderQueue/context.d.ts +0 -19
- package/dist/editor/components/RenderQueue/context.js +0 -54
- package/dist/editor/components/RenderQueue/index.d.ts +0 -2
- package/dist/editor/components/RenderQueue/index.js +0 -18
- package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
- package/dist/editor/components/RenderQueue/item-style.js +0 -21
- package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
- package/dist/editor/components/RenderToolbarIcon.js +0 -47
- package/dist/editor/components/RendersTab.d.ts +0 -6
- package/dist/editor/components/RendersTab.js +0 -44
- package/dist/editor/components/SegmentedControl.d.ts +0 -15
- package/dist/editor/components/SegmentedControl.js +0 -46
- package/dist/editor/components/SidebarContent.d.ts +0 -5
- package/dist/editor/components/SidebarContent.js +0 -51
- package/dist/editor/components/Tabs/index.d.ts +0 -11
- package/dist/editor/components/Tabs/index.js +0 -51
- package/dist/editor/helpers/use-file-existence.d.ts +0 -1
- package/dist/editor/helpers/use-file-existence.js +0 -57
- package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
- package/dist/editor/icons/RenderStillIcon.js +0 -8
- package/dist/editor/icons/render.d.ts +0 -5
- package/dist/editor/icons/render.js +0 -8
- package/dist/editor/icons/video.d.ts +0 -5
- package/dist/editor/icons/video.js +0 -8
- package/dist/file-watcher.d.ts +0 -9
- package/dist/file-watcher.js +0 -35
- package/dist/find-closest-package-json.d.ts +0 -2
- package/dist/find-closest-package-json.js +0 -35
- package/dist/get-default-out-name.d.ts +0 -4
- package/dist/get-default-out-name.js +0 -8
- package/dist/preview-server/actions.d.ts +0 -0
- package/dist/preview-server/actions.js +0 -1
- package/dist/preview-server/api-routes.d.ts +0 -4
- package/dist/preview-server/api-routes.js +0 -15
- package/dist/preview-server/api-types.d.ts +0 -26
- package/dist/preview-server/api-types.js +0 -2
- package/dist/preview-server/file-existence-watchers.d.ts +0 -10
- package/dist/preview-server/file-existence-watchers.js +0 -46
- package/dist/preview-server/get-file-existence.d.ts +0 -2
- package/dist/preview-server/get-file-existence.js +0 -36
- package/dist/preview-server/get-files-in-public-folder.d.ts +0 -2
- package/dist/preview-server/get-files-in-public-folder.js +0 -7
- package/dist/preview-server/handler.d.ts +0 -9
- package/dist/preview-server/handler.js +0 -34
- package/dist/preview-server/live-event-listener.d.ts +0 -0
- package/dist/preview-server/live-event-listener.js +0 -1
- package/dist/preview-server/parse-body.d.ts +0 -2
- package/dist/preview-server/parse-body.js +0 -16
- package/dist/preview-server/render-queue/add-render.d.ts +0 -3
- package/dist/preview-server/render-queue/add-render.js +0 -34
- package/dist/preview-server/render-queue/index.d.ts +0 -18
- package/dist/preview-server/render-queue/index.js +0 -146
- package/dist/preview-server/render-queue/job.d.ts +0 -79
- package/dist/preview-server/render-queue/job.js +0 -2
- package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
- package/dist/preview-server/render-queue/make-retry-payload.js +0 -32
- package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
- package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
- package/dist/preview-server/render-queue/open-in-file-explorer.d.ts +0 -2
- package/dist/preview-server/render-queue/open-in-file-explorer.js +0 -31
- package/dist/preview-server/render-queue/process-still.d.ts +0 -8
- package/dist/preview-server/render-queue/process-still.js +0 -50
- package/dist/preview-server/render-queue/process-video.d.ts +0 -8
- package/dist/preview-server/render-queue/process-video.js +0 -57
- package/dist/preview-server/render-queue/queue.d.ts +0 -20
- package/dist/preview-server/render-queue/queue.js +0 -169
- package/dist/preview-server/render-queue/remove-render.d.ts +0 -2
- package/dist/preview-server/render-queue/remove-render.js +0 -29
- package/dist/preview-server/routes/add-render.d.ts +0 -3
- package/dist/preview-server/routes/add-render.js +0 -52
- package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
- package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
- package/dist/preview-server/routes/remove-render.d.ts +0 -3
- package/dist/preview-server/routes/remove-render.js +0 -9
- package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
- package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
- package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
- package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -9
- package/dist/preview-server/write-files-definition-file.d.ts +0 -2
- package/dist/preview-server/write-files-definition-file.js +0 -37
- package/dist/render-flows/render.d.ts +0 -35
- package/dist/render-flows/render.js +0 -245
- package/dist/render-flows/still.d.ts +0 -31
- package/dist/render-flows/still.js +0 -168
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { StillImageFormat } from '@remotion/renderer';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export declare const RenderModal: React.FC<{
|
|
4
|
-
compositionId: string;
|
|
5
|
-
initialFrame: number;
|
|
6
|
-
initialImageFormat: StillImageFormat;
|
|
7
|
-
initialQuality: number | null;
|
|
8
|
-
initialScale: number;
|
|
9
|
-
initialVerbose: boolean;
|
|
10
|
-
initialOutName: string;
|
|
11
|
-
}>;
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModal = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const Button_1 = require("../../../preview-server/error-overlay/remotion-overlay/Button");
|
|
7
|
-
const colors_1 = require("../../helpers/colors");
|
|
8
|
-
const use_file_existence_1 = require("../../helpers/use-file-existence");
|
|
9
|
-
const modals_1 = require("../../state/modals");
|
|
10
|
-
const CollapsableOptions_1 = require("../CollapsableOptions");
|
|
11
|
-
const layout_1 = require("../layout");
|
|
12
|
-
const ModalContainer_1 = require("../ModalContainer");
|
|
13
|
-
const ModalHeader_1 = require("../ModalHeader");
|
|
14
|
-
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
15
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
16
|
-
const ValidationMessage_1 = require("../NewComposition/ValidationMessage");
|
|
17
|
-
const actions_1 = require("../RenderQueue/actions");
|
|
18
|
-
const SegmentedControl_1 = require("../SegmentedControl");
|
|
19
|
-
const SidebarContent_1 = require("../SidebarContent");
|
|
20
|
-
const initialState = { type: 'idle' };
|
|
21
|
-
const reducer = (state, action) => {
|
|
22
|
-
if (action.type === 'start') {
|
|
23
|
-
return {
|
|
24
|
-
type: 'load',
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (action.type === 'fail') {
|
|
28
|
-
return {
|
|
29
|
-
type: 'error',
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (action.type === 'succeed') {
|
|
33
|
-
return {
|
|
34
|
-
type: 'success',
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return state;
|
|
38
|
-
};
|
|
39
|
-
const container = {};
|
|
40
|
-
const optionRow = {
|
|
41
|
-
display: 'flex',
|
|
42
|
-
flexDirection: 'row',
|
|
43
|
-
alignItems: 'flex-start',
|
|
44
|
-
minHeight: 40,
|
|
45
|
-
paddingLeft: 16,
|
|
46
|
-
paddingRight: 16,
|
|
47
|
-
};
|
|
48
|
-
const label = {
|
|
49
|
-
width: 150,
|
|
50
|
-
fontSize: 14,
|
|
51
|
-
lineHeight: '40px',
|
|
52
|
-
color: colors_1.LIGHT_TEXT,
|
|
53
|
-
};
|
|
54
|
-
const rightRow = {
|
|
55
|
-
display: 'flex',
|
|
56
|
-
flexDirection: 'row',
|
|
57
|
-
justifyContent: 'flex-end',
|
|
58
|
-
alignSelf: 'center',
|
|
59
|
-
flex: 1,
|
|
60
|
-
};
|
|
61
|
-
const buttonRow = {
|
|
62
|
-
display: 'flex',
|
|
63
|
-
flexDirection: 'row',
|
|
64
|
-
justifyContent: 'flex-end',
|
|
65
|
-
borderTop: '1px solid black',
|
|
66
|
-
paddingTop: 8,
|
|
67
|
-
paddingBottom: 8,
|
|
68
|
-
paddingLeft: 16,
|
|
69
|
-
paddingRight: 16,
|
|
70
|
-
};
|
|
71
|
-
const input = {
|
|
72
|
-
minWidth: 250,
|
|
73
|
-
textAlign: 'right',
|
|
74
|
-
};
|
|
75
|
-
const MIN_QUALITY = 1;
|
|
76
|
-
const MAX_QUALITY = 100;
|
|
77
|
-
const MIN_SCALE = 0.1;
|
|
78
|
-
const MAX_SCALE = 10;
|
|
79
|
-
// TODO: Prevent rendering when preview server is disconnected
|
|
80
|
-
const RenderModal = ({ compositionId, initialFrame, initialImageFormat, initialQuality, initialScale, initialVerbose, initialOutName, }) => {
|
|
81
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
82
|
-
const onQuit = (0, react_1.useCallback)(() => {
|
|
83
|
-
setSelectedModal(null);
|
|
84
|
-
}, [setSelectedModal]);
|
|
85
|
-
const isMounted = (0, react_1.useRef)(true);
|
|
86
|
-
const [state, dispatch] = (0, react_1.useReducer)(reducer, initialState);
|
|
87
|
-
const [frame, setFrame] = (0, react_1.useState)(() => initialFrame);
|
|
88
|
-
const [imageFormat, setImageFormat] = (0, react_1.useState)(() => initialImageFormat);
|
|
89
|
-
const [quality, setQuality] = (0, react_1.useState)(() => initialQuality !== null && initialQuality !== void 0 ? initialQuality : 80);
|
|
90
|
-
const [scale, setScale] = (0, react_1.useState)(() => initialScale);
|
|
91
|
-
const [verbose, setVerboseLogging] = (0, react_1.useState)(() => initialVerbose);
|
|
92
|
-
const [outName, setOutName] = (0, react_1.useState)(() => initialOutName);
|
|
93
|
-
const dispatchIfMounted = (0, react_1.useCallback)((payload) => {
|
|
94
|
-
if (isMounted.current === false)
|
|
95
|
-
return;
|
|
96
|
-
dispatch(payload);
|
|
97
|
-
}, []);
|
|
98
|
-
const onValueChange = (0, react_1.useCallback)((e) => {
|
|
99
|
-
setOutName(e.target.value);
|
|
100
|
-
}, []);
|
|
101
|
-
const setPng = (0, react_1.useCallback)(() => {
|
|
102
|
-
setImageFormat('png');
|
|
103
|
-
setOutName((prev) => {
|
|
104
|
-
if (prev.endsWith('.jpeg') || prev.endsWith('.jpg')) {
|
|
105
|
-
return prev.replace(/.jpe?g$/g, '.png');
|
|
106
|
-
}
|
|
107
|
-
return prev;
|
|
108
|
-
});
|
|
109
|
-
}, []);
|
|
110
|
-
const setJpeg = (0, react_1.useCallback)(() => {
|
|
111
|
-
setImageFormat('jpeg');
|
|
112
|
-
setOutName((prev) => {
|
|
113
|
-
if (prev.endsWith('.png')) {
|
|
114
|
-
return prev.replace(/.png$/g, '.jpeg');
|
|
115
|
-
}
|
|
116
|
-
return prev;
|
|
117
|
-
});
|
|
118
|
-
}, []);
|
|
119
|
-
const onClickStill = (0, react_1.useCallback)(() => {
|
|
120
|
-
var _a;
|
|
121
|
-
(_a = SidebarContent_1.leftSidebarTabs.current) === null || _a === void 0 ? void 0 : _a.selectRendersPanel();
|
|
122
|
-
dispatchIfMounted({ type: 'start' });
|
|
123
|
-
(0, actions_1.addStillRenderJob)({
|
|
124
|
-
compositionId,
|
|
125
|
-
outName,
|
|
126
|
-
imageFormat,
|
|
127
|
-
quality: imageFormat === 'jpeg' ? quality : null,
|
|
128
|
-
frame,
|
|
129
|
-
scale,
|
|
130
|
-
verbose,
|
|
131
|
-
})
|
|
132
|
-
.then(() => {
|
|
133
|
-
dispatchIfMounted({ type: 'succeed' });
|
|
134
|
-
setSelectedModal(null);
|
|
135
|
-
})
|
|
136
|
-
.catch(() => {
|
|
137
|
-
dispatchIfMounted({ type: 'fail' });
|
|
138
|
-
});
|
|
139
|
-
}, [
|
|
140
|
-
compositionId,
|
|
141
|
-
dispatchIfMounted,
|
|
142
|
-
frame,
|
|
143
|
-
imageFormat,
|
|
144
|
-
outName,
|
|
145
|
-
quality,
|
|
146
|
-
scale,
|
|
147
|
-
setSelectedModal,
|
|
148
|
-
verbose,
|
|
149
|
-
]);
|
|
150
|
-
const onClickVideo = (0, react_1.useCallback)(() => {
|
|
151
|
-
var _a;
|
|
152
|
-
(_a = SidebarContent_1.leftSidebarTabs.current) === null || _a === void 0 ? void 0 : _a.selectRendersPanel();
|
|
153
|
-
dispatchIfMounted({ type: 'start' });
|
|
154
|
-
(0, actions_1.addVideoRenderJob)({
|
|
155
|
-
compositionId,
|
|
156
|
-
outName,
|
|
157
|
-
imageFormat,
|
|
158
|
-
quality: imageFormat === 'jpeg' ? quality : null,
|
|
159
|
-
scale,
|
|
160
|
-
verbose,
|
|
161
|
-
// TODO: Make this configurable
|
|
162
|
-
codec: 'h264',
|
|
163
|
-
})
|
|
164
|
-
.then(() => {
|
|
165
|
-
dispatchIfMounted({ type: 'succeed' });
|
|
166
|
-
setSelectedModal(null);
|
|
167
|
-
})
|
|
168
|
-
.catch(() => {
|
|
169
|
-
dispatchIfMounted({ type: 'fail' });
|
|
170
|
-
});
|
|
171
|
-
}, [
|
|
172
|
-
compositionId,
|
|
173
|
-
dispatchIfMounted,
|
|
174
|
-
imageFormat,
|
|
175
|
-
outName,
|
|
176
|
-
quality,
|
|
177
|
-
scale,
|
|
178
|
-
setSelectedModal,
|
|
179
|
-
verbose,
|
|
180
|
-
]);
|
|
181
|
-
const onQualityChangedDirectly = (0, react_1.useCallback)((newQuality) => {
|
|
182
|
-
setQuality(newQuality);
|
|
183
|
-
}, []);
|
|
184
|
-
const onQualityChanged = (0, react_1.useCallback)((e) => {
|
|
185
|
-
setQuality((q) => {
|
|
186
|
-
const newQuality = parseInt(e.target.value, 10);
|
|
187
|
-
if (Number.isNaN(newQuality)) {
|
|
188
|
-
return q;
|
|
189
|
-
}
|
|
190
|
-
const newQualityClamped = Math.min(MAX_QUALITY, Math.max(newQuality, MIN_QUALITY));
|
|
191
|
-
return newQualityClamped;
|
|
192
|
-
});
|
|
193
|
-
}, []);
|
|
194
|
-
const onScaleSetDirectly = (0, react_1.useCallback)((newScale) => {
|
|
195
|
-
setScale(newScale);
|
|
196
|
-
}, []);
|
|
197
|
-
const onScaleChanged = (0, react_1.useCallback)((e) => {
|
|
198
|
-
setScale((q) => {
|
|
199
|
-
const newQuality = parseFloat(e.target.value);
|
|
200
|
-
if (Number.isNaN(newQuality)) {
|
|
201
|
-
return q;
|
|
202
|
-
}
|
|
203
|
-
const newScaleClamped = Math.min(MAX_SCALE, Math.max(newQuality, MIN_SCALE));
|
|
204
|
-
return newScaleClamped;
|
|
205
|
-
});
|
|
206
|
-
}, []);
|
|
207
|
-
const onFrameSetDirectly = (0, react_1.useCallback)((newFrame) => {
|
|
208
|
-
setFrame(newFrame);
|
|
209
|
-
}, []);
|
|
210
|
-
const onFrameChanged = (0, react_1.useCallback)((e) => {
|
|
211
|
-
setFrame((q) => {
|
|
212
|
-
const newFrame = parseFloat(e.target.value);
|
|
213
|
-
if (Number.isNaN(newFrame)) {
|
|
214
|
-
return q;
|
|
215
|
-
}
|
|
216
|
-
// TODO: User could change frame inbetween 😈
|
|
217
|
-
return newFrame;
|
|
218
|
-
});
|
|
219
|
-
}, []);
|
|
220
|
-
(0, react_1.useEffect)(() => {
|
|
221
|
-
return () => {
|
|
222
|
-
isMounted.current = false;
|
|
223
|
-
};
|
|
224
|
-
}, []);
|
|
225
|
-
const existence = (0, use_file_existence_1.useFileExistence)(outName);
|
|
226
|
-
const imageFormatOptions = (0, react_1.useMemo)(() => {
|
|
227
|
-
return [
|
|
228
|
-
{
|
|
229
|
-
label: 'PNG',
|
|
230
|
-
onClick: setPng,
|
|
231
|
-
key: 'png',
|
|
232
|
-
selected: imageFormat === 'png',
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
label: 'JPEG',
|
|
236
|
-
onClick: setJpeg,
|
|
237
|
-
key: 'jpeg',
|
|
238
|
-
selected: imageFormat === 'jpeg',
|
|
239
|
-
},
|
|
240
|
-
];
|
|
241
|
-
}, [imageFormat, setJpeg, setPng]);
|
|
242
|
-
const onVerboseLoggingChanged = (0, react_1.useCallback)((e) => {
|
|
243
|
-
setVerboseLogging(e.target.checked);
|
|
244
|
-
}, []);
|
|
245
|
-
return ((0, jsx_runtime_1.jsxs)(ModalContainer_1.ModalContainer, { onOutsideClick: onQuit, onEscape: onQuit, children: [(0, jsx_runtime_1.jsx)(ModalHeader_1.NewCompHeader, { title: `Render ${compositionId}` }), (0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { block: true, y: 0.5 }), (0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Output name" }), (0, jsx_runtime_1.jsx)("div", { style: rightRow, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput
|
|
246
|
-
// TODO: Validate and reject folders or weird file names
|
|
247
|
-
, {
|
|
248
|
-
// TODO: Validate and reject folders or weird file names
|
|
249
|
-
warning: existence, style: input, type: "text", value: outName, onChange: onValueChange }), existence ? ((0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: "Will be overwritten" })) : null] }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Frame" }), (0, jsx_runtime_1.jsxs)("div", { style: rightRow, children: [(0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger
|
|
250
|
-
// TODO: Hide if it is a still
|
|
251
|
-
, {
|
|
252
|
-
// TODO: Hide if it is a still
|
|
253
|
-
value: frame, onChange: onFrameChanged,
|
|
254
|
-
// TODO: Actual frame
|
|
255
|
-
placeholder: "0-100", onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0,
|
|
256
|
-
// TODO: Add actual frame
|
|
257
|
-
max: Infinity }), ' '] })] }), (0, jsx_runtime_1.jsxs)(CollapsableOptions_1.CollapsableOptions, { showLabel: "Show advanced settings", hideLabel: "Hide advanced settings", children: [(0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Scale" }), (0, jsx_runtime_1.jsx)("div", { style: rightRow, children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: scale, onChange: onScaleChanged, placeholder: "0.1-10",
|
|
258
|
-
// TODO: Does not allow non-integer steps
|
|
259
|
-
// TODO: Cannot click and type in 0.2
|
|
260
|
-
onValueChange: onScaleSetDirectly, name: "scale", step: 0.05, min: MIN_SCALE, max: MAX_SCALE }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "Verbose logging" }), (0, jsx_runtime_1.jsx)("div", { style: rightRow, children: (0, jsx_runtime_1.jsx)("input", { type: 'checkbox', checked: verbose, onChange: onVerboseLoggingChanged }) })] }), imageFormat === 'jpeg' && ((0, jsx_runtime_1.jsxs)("div", { style: optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: label, children: "JPEG Quality" }), (0, jsx_runtime_1.jsx)("div", { style: rightRow, children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: quality, onChange: onQualityChanged, placeholder: "0-100", onValueChange: onQualityChangedDirectly, name: "quality", step: 1, min: MIN_QUALITY, max: MAX_QUALITY }) })] }))] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { block: true, y: 0.5 }), (0, jsx_runtime_1.jsxs)("div", { style: buttonRow, children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { autoFocus: true, onClick: onClickVideo, disabled: state.type === 'load', children: state.type === 'idle' ? 'Render video' : 'Rendering...' }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { block: true, x: 0.5 }), (0, jsx_runtime_1.jsx)(Button_1.Button, { autoFocus: true, onClick: onClickStill, disabled: state.type === 'load', children: state.type === 'idle' ? 'Render still' : 'Rendering...' })] })] })] }));
|
|
261
|
-
};
|
|
262
|
-
exports.RenderModal = RenderModal;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CircularProgress = exports.RENDER_STATUS_INDICATOR_SIZE = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const colors_1 = require("../../helpers/colors");
|
|
6
|
-
exports.RENDER_STATUS_INDICATOR_SIZE = 16;
|
|
7
|
-
const STROKE_WIDTH = 3;
|
|
8
|
-
const container = {
|
|
9
|
-
height: exports.RENDER_STATUS_INDICATOR_SIZE,
|
|
10
|
-
width: exports.RENDER_STATUS_INDICATOR_SIZE,
|
|
11
|
-
transform: `rotate(-90deg)`,
|
|
12
|
-
};
|
|
13
|
-
const CircularProgress = ({ progress }) => {
|
|
14
|
-
const r = exports.RENDER_STATUS_INDICATOR_SIZE / 2 - STROKE_WIDTH;
|
|
15
|
-
const circumference = r * Math.PI * 2;
|
|
16
|
-
return ((0, jsx_runtime_1.jsx)("svg", { style: container, viewBox: `0 0 ${exports.RENDER_STATUS_INDICATOR_SIZE} ${exports.RENDER_STATUS_INDICATOR_SIZE}`, children: (0, jsx_runtime_1.jsx)("circle", { r: exports.RENDER_STATUS_INDICATOR_SIZE / 2 - STROKE_WIDTH, stroke: colors_1.LIGHT_TEXT, fill: "none", strokeWidth: STROKE_WIDTH, cx: exports.RENDER_STATUS_INDICATOR_SIZE / 2, cy: exports.RENDER_STATUS_INDICATOR_SIZE / 2, strokeDasharray: `${circumference} ${circumference}`, strokeMiterlimit: 0, strokeDashoffset: (1 - progress) * circumference }) }));
|
|
17
|
-
};
|
|
18
|
-
exports.CircularProgress = CircularProgress;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueError = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const modals_1 = require("../../state/modals");
|
|
7
|
-
const z_index_1 = require("../../state/z-index");
|
|
8
|
-
const item_style_1 = require("./item-style");
|
|
9
|
-
const outputLocation = {
|
|
10
|
-
...item_style_1.renderQueueItemSubtitleStyle,
|
|
11
|
-
};
|
|
12
|
-
const RenderQueueError = ({ job }) => {
|
|
13
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
14
|
-
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
15
|
-
const onClick = (0, react_1.useCallback)(() => {
|
|
16
|
-
setSelectedModal({
|
|
17
|
-
type: 'render-error',
|
|
18
|
-
job,
|
|
19
|
-
});
|
|
20
|
-
}, [job, setSelectedModal]);
|
|
21
|
-
if (job.status !== 'failed') {
|
|
22
|
-
throw new Error('should not have rendered this component');
|
|
23
|
-
}
|
|
24
|
-
return ((0, jsx_runtime_1.jsx)("button", { onClick: onClick, type: "button", style: outputLocation, tabIndex: tabIndex, title: job.error.message, children: job.error.message }));
|
|
25
|
-
};
|
|
26
|
-
exports.RenderQueueError = RenderQueueError;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueItem = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const layout_1 = require("../layout");
|
|
6
|
-
const RenderQueueError_1 = require("./RenderQueueError");
|
|
7
|
-
const RenderQueueItemStatus_1 = require("./RenderQueueItemStatus");
|
|
8
|
-
const RenderQueueOutputName_1 = require("./RenderQueueOutputName");
|
|
9
|
-
const RenderQueueProgressMessage_1 = require("./RenderQueueProgressMessage");
|
|
10
|
-
const RenderQueueRemoveItem_1 = require("./RenderQueueRemoveItem");
|
|
11
|
-
const RenderQueueRepeat_1 = require("./RenderQueueRepeat");
|
|
12
|
-
const container = {
|
|
13
|
-
padding: 12,
|
|
14
|
-
display: 'flex',
|
|
15
|
-
flexDirection: 'row',
|
|
16
|
-
paddingBottom: 10,
|
|
17
|
-
paddingRight: 4,
|
|
18
|
-
};
|
|
19
|
-
const title = {
|
|
20
|
-
fontSize: 13,
|
|
21
|
-
lineHeight: 1,
|
|
22
|
-
};
|
|
23
|
-
const right = {
|
|
24
|
-
flex: 1,
|
|
25
|
-
display: 'flex',
|
|
26
|
-
flexDirection: 'column',
|
|
27
|
-
overflow: 'hidden',
|
|
28
|
-
};
|
|
29
|
-
const subtitle = {
|
|
30
|
-
maxWidth: '100%',
|
|
31
|
-
flex: 1,
|
|
32
|
-
display: 'flex',
|
|
33
|
-
overflow: 'hidden',
|
|
34
|
-
};
|
|
35
|
-
const RenderQueueItem = ({ job }) => {
|
|
36
|
-
return ((0, jsx_runtime_1.jsxs)(layout_1.Row, { style: container, align: "center", children: [(0, jsx_runtime_1.jsx)(RenderQueueItemStatus_1.RenderQueueItemStatus, { job: job }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsxs)("div", { style: right, children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: job.compositionId }), (0, jsx_runtime_1.jsx)("div", { style: subtitle, children: job.status === 'done' ? ((0, jsx_runtime_1.jsx)(RenderQueueOutputName_1.RenderQueueOutputName, { job: job })) : job.status === 'failed' ? ((0, jsx_runtime_1.jsx)(RenderQueueError_1.RenderQueueError, { job: job })) : job.status === 'running' ? ((0, jsx_runtime_1.jsx)(RenderQueueProgressMessage_1.RenderQueueProgressMessage, { job: job })) : null })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)(RenderQueueRepeat_1.RenderQueueRepeatItem, { job: job }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)(RenderQueueRemoveItem_1.RenderQueueRemoveItem, { job: job })] }));
|
|
37
|
-
};
|
|
38
|
-
exports.RenderQueueItem = RenderQueueItem;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueItemStatus = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const colors_1 = require("../../helpers/colors");
|
|
6
|
-
const CircularProgress_1 = require("./CircularProgress");
|
|
7
|
-
const iconStyle = {
|
|
8
|
-
height: CircularProgress_1.RENDER_STATUS_INDICATOR_SIZE,
|
|
9
|
-
width: CircularProgress_1.RENDER_STATUS_INDICATOR_SIZE,
|
|
10
|
-
};
|
|
11
|
-
const RenderQueueItemStatus = ({ job }) => {
|
|
12
|
-
if (job.status === 'failed') {
|
|
13
|
-
return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }) }));
|
|
14
|
-
}
|
|
15
|
-
if (job.status === 'idle') {
|
|
16
|
-
return ((0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
|
|
17
|
-
}
|
|
18
|
-
if (job.status === 'done') {
|
|
19
|
-
return ((0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }));
|
|
20
|
-
}
|
|
21
|
-
if (job.status === 'running') {
|
|
22
|
-
// Add a minimum progress to avoid the progress bar from disappearing
|
|
23
|
-
return (0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: Math.max(0.07, job.progress) });
|
|
24
|
-
}
|
|
25
|
-
throw new Error('Unknown job status');
|
|
26
|
-
};
|
|
27
|
-
exports.RenderQueueItemStatus = RenderQueueItemStatus;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueOutputName = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
7
|
-
const actions_1 = require("./actions");
|
|
8
|
-
const item_style_1 = require("./item-style");
|
|
9
|
-
const RenderQueueOutputName = ({ job }) => {
|
|
10
|
-
const onClick = (0, react_1.useCallback)(() => {
|
|
11
|
-
(0, actions_1.openInFileExplorer)({ directory: job.outName }).catch((err) => {
|
|
12
|
-
var _a;
|
|
13
|
-
(_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
|
|
14
|
-
content: `Could not open file: ${err.message}`,
|
|
15
|
-
created: Date.now(),
|
|
16
|
-
duration: 2000,
|
|
17
|
-
id: String(Math.random()),
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}, [job.outName]);
|
|
21
|
-
const style = (0, react_1.useMemo)(() => {
|
|
22
|
-
return {
|
|
23
|
-
...item_style_1.renderQueueItemSubtitleStyle,
|
|
24
|
-
cursor: job.deletedOutputLocation ? 'inherit' : 'pointer',
|
|
25
|
-
textDecoration: job.deletedOutputLocation ? 'line-through' : 'none',
|
|
26
|
-
};
|
|
27
|
-
}, [job.deletedOutputLocation]);
|
|
28
|
-
return ((0, jsx_runtime_1.jsx)("button", { onClick: onClick, type: "button", style: style, disabled: job.deletedOutputLocation, title: job.deletedOutputLocation ? 'File was deleted' : job.outName, children: job.outName }));
|
|
29
|
-
};
|
|
30
|
-
exports.RenderQueueOutputName = RenderQueueOutputName;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueProgressMessage = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const modals_1 = require("../../state/modals");
|
|
7
|
-
const z_index_1 = require("../../state/z-index");
|
|
8
|
-
const item_style_1 = require("./item-style");
|
|
9
|
-
const outputLocation = {
|
|
10
|
-
...item_style_1.renderQueueItemSubtitleStyle,
|
|
11
|
-
};
|
|
12
|
-
const RenderQueueProgressMessage = ({ job }) => {
|
|
13
|
-
if (job.status !== 'running') {
|
|
14
|
-
throw new Error('should not have rendered this component');
|
|
15
|
-
}
|
|
16
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
17
|
-
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
18
|
-
const onClick = (0, react_1.useCallback)(() => {
|
|
19
|
-
// TODO: Show progress instead
|
|
20
|
-
setSelectedModal({
|
|
21
|
-
type: 'render-error',
|
|
22
|
-
job,
|
|
23
|
-
});
|
|
24
|
-
}, [job, setSelectedModal]);
|
|
25
|
-
return ((0, jsx_runtime_1.jsx)("button", { onClick: onClick, type: "button", style: outputLocation, tabIndex: tabIndex, title: job.message, children: job.message }));
|
|
26
|
-
};
|
|
27
|
-
exports.RenderQueueProgressMessage = RenderQueueProgressMessage;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueRemoveItem = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const InlineAction_1 = require("../InlineAction");
|
|
7
|
-
const actions_1 = require("./actions");
|
|
8
|
-
const RenderQueueRemoveItem = ({ job }) => {
|
|
9
|
-
const onClick = (0, react_1.useCallback)(() => {
|
|
10
|
-
(0, actions_1.removeRenderJob)(job).catch((err) => {
|
|
11
|
-
// TODO: Handle error
|
|
12
|
-
console.log(err);
|
|
13
|
-
});
|
|
14
|
-
}, [job]);
|
|
15
|
-
const icon = (0, react_1.useMemo)(() => {
|
|
16
|
-
return {
|
|
17
|
-
height: 12,
|
|
18
|
-
};
|
|
19
|
-
}, []);
|
|
20
|
-
return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: icon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z" }) }) }));
|
|
21
|
-
};
|
|
22
|
-
exports.RenderQueueRemoveItem = RenderQueueRemoveItem;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderQueueRepeatItem = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const make_retry_payload_1 = require("../../../preview-server/render-queue/make-retry-payload");
|
|
7
|
-
const modals_1 = require("../../state/modals");
|
|
8
|
-
const InlineAction_1 = require("../InlineAction");
|
|
9
|
-
const RenderQueueRepeatItem = ({ job }) => {
|
|
10
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
11
|
-
const onClick = (0, react_1.useCallback)(() => {
|
|
12
|
-
const retryPayload = (0, make_retry_payload_1.makeRetryPayload)(job);
|
|
13
|
-
setSelectedModal(retryPayload);
|
|
14
|
-
}, [job, setSelectedModal]);
|
|
15
|
-
const icon = (0, react_1.useMemo)(() => {
|
|
16
|
-
return {
|
|
17
|
-
height: 12,
|
|
18
|
-
};
|
|
19
|
-
}, []);
|
|
20
|
-
return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z" }) }) }));
|
|
21
|
-
};
|
|
22
|
-
exports.RenderQueueRepeatItem = RenderQueueRepeatItem;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Codec, StillImageFormat } from '@remotion/renderer';
|
|
2
|
-
import type { ApiRoutes } from '../../../preview-server/api-types';
|
|
3
|
-
import type { RenderJob } from '../../../preview-server/render-queue/job';
|
|
4
|
-
export declare const callApi: <Endpoint extends keyof ApiRoutes>(endpoint: Endpoint, body: ApiRoutes[Endpoint]["Request"]) => Promise<ApiRoutes[Endpoint]["Response"]>;
|
|
5
|
-
export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, quality, frame, scale, verbose, }: {
|
|
6
|
-
compositionId: string;
|
|
7
|
-
outName: string;
|
|
8
|
-
imageFormat: StillImageFormat;
|
|
9
|
-
quality: number | null;
|
|
10
|
-
frame: number;
|
|
11
|
-
scale: number;
|
|
12
|
-
verbose: boolean;
|
|
13
|
-
}) => Promise<undefined>;
|
|
14
|
-
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, quality, scale, verbose, codec, }: {
|
|
15
|
-
compositionId: string;
|
|
16
|
-
outName: string;
|
|
17
|
-
imageFormat: StillImageFormat;
|
|
18
|
-
quality: number | null;
|
|
19
|
-
scale: number;
|
|
20
|
-
verbose: boolean;
|
|
21
|
-
codec: Codec;
|
|
22
|
-
}) => Promise<undefined>;
|
|
23
|
-
export declare const unsubscribeFromFileExistenceWatcher: ({ file }: {
|
|
24
|
-
file: string;
|
|
25
|
-
}) => Promise<undefined>;
|
|
26
|
-
export declare const subscribeToFileExistenceWatcher: ({ file, }: {
|
|
27
|
-
file: string;
|
|
28
|
-
}) => Promise<boolean>;
|
|
29
|
-
export declare const openInFileExplorer: ({ directory }: {
|
|
30
|
-
directory: string;
|
|
31
|
-
}) => Promise<void>;
|
|
32
|
-
export declare const removeRenderJob: (job: RenderJob) => Promise<undefined>;
|