@remotion/cli 3.3.63 → 3.3.65

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.
Files changed (152) hide show
  1. package/package.json +7 -7
  2. package/styles/styles.css +2 -0
  3. package/dist/convert-entry-point-to-serve-url.d.ts +0 -1
  4. package/dist/convert-entry-point-to-serve-url.js +0 -15
  5. package/dist/editor/components/Checkbox.d.ts +0 -5
  6. package/dist/editor/components/Checkbox.js +0 -38
  7. package/dist/editor/components/CollapsableOptions.d.ts +0 -6
  8. package/dist/editor/components/CollapsableOptions.js +0 -35
  9. package/dist/editor/components/CurrentCompositionSideEffects.d.ts +0 -3
  10. package/dist/editor/components/CurrentCompositionSideEffects.js +0 -43
  11. package/dist/editor/components/InlineAction.d.ts +0 -5
  12. package/dist/editor/components/InlineAction.js +0 -34
  13. package/dist/editor/components/Modals.d.ts +0 -2
  14. package/dist/editor/components/Modals.js +0 -23
  15. package/dist/editor/components/RenderButton.d.ts +0 -6
  16. package/dist/editor/components/RenderButton.js +0 -67
  17. package/dist/editor/components/RenderModal/CrfSetting.d.ts +0 -15
  18. package/dist/editor/components/RenderModal/CrfSetting.js +0 -43
  19. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +0 -5
  20. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +0 -14
  21. package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +0 -8
  22. package/dist/editor/components/RenderModal/FrameRangeSetting.js +0 -42
  23. package/dist/editor/components/RenderModal/MutedSetting.d.ts +0 -5
  24. package/dist/editor/components/RenderModal/MutedSetting.js +0 -14
  25. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +0 -5
  26. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +0 -26
  27. package/dist/editor/components/RenderModal/NumberSetting.d.ts +0 -9
  28. package/dist/editor/components/RenderModal/NumberSetting.js +0 -26
  29. package/dist/editor/components/RenderModal/QualitySetting.d.ts +0 -5
  30. package/dist/editor/components/RenderModal/QualitySetting.js +0 -27
  31. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
  32. package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
  33. package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -28
  34. package/dist/editor/components/RenderModal/RenderModal.js +0 -436
  35. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +0 -11
  36. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -15
  37. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +0 -13
  38. package/dist/editor/components/RenderModal/RenderModalAudio.js +0 -22
  39. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +0 -22
  40. package/dist/editor/components/RenderModal/RenderModalBasic.js +0 -70
  41. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +0 -9
  42. package/dist/editor/components/RenderModal/RenderModalGif.js +0 -16
  43. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +0 -2
  44. package/dist/editor/components/RenderModal/RenderModalHr.js +0 -18
  45. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +0 -28
  46. package/dist/editor/components/RenderModal/RenderModalPicture.js +0 -51
  47. package/dist/editor/components/RenderModal/ScaleSetting.d.ts +0 -5
  48. package/dist/editor/components/RenderModal/ScaleSetting.js +0 -11
  49. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +0 -2
  50. package/dist/editor/components/RenderModal/human-readable-codec.js +0 -36
  51. package/dist/editor/components/RenderModal/layout.d.ts +0 -5
  52. package/dist/editor/components/RenderModal/layout.js +0 -31
  53. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
  54. package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
  55. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
  56. package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
  57. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
  58. package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -39
  59. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +0 -5
  60. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +0 -22
  61. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
  62. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
  63. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
  64. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -24
  65. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
  66. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
  67. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
  68. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -23
  69. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
  70. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
  71. package/dist/editor/components/RenderQueue/actions.d.ts +0 -48
  72. package/dist/editor/components/RenderQueue/actions.js +0 -97
  73. package/dist/editor/components/RenderQueue/context.d.ts +0 -19
  74. package/dist/editor/components/RenderQueue/context.js +0 -56
  75. package/dist/editor/components/RenderQueue/index.d.ts +0 -2
  76. package/dist/editor/components/RenderQueue/index.js +0 -18
  77. package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
  78. package/dist/editor/components/RenderQueue/item-style.js +0 -21
  79. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  80. package/dist/editor/components/RenderToolbarIcon.js +0 -78
  81. package/dist/editor/components/RendersTab.d.ts +0 -6
  82. package/dist/editor/components/RendersTab.js +0 -43
  83. package/dist/editor/components/SegmentedControl.d.ts +0 -16
  84. package/dist/editor/components/SegmentedControl.js +0 -63
  85. package/dist/editor/components/SidebarContent.d.ts +0 -5
  86. package/dist/editor/components/SidebarContent.js +0 -52
  87. package/dist/editor/components/Tabs/index.d.ts +0 -11
  88. package/dist/editor/components/Tabs/index.js +0 -51
  89. package/dist/editor/helpers/client-id.d.ts +0 -17
  90. package/dist/editor/helpers/client-id.js +0 -46
  91. package/dist/editor/helpers/use-file-existence.d.ts +0 -1
  92. package/dist/editor/helpers/use-file-existence.js +0 -66
  93. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  94. package/dist/editor/icons/RenderStillIcon.js +0 -8
  95. package/dist/editor/icons/audio.d.ts +0 -2
  96. package/dist/editor/icons/audio.js +0 -6
  97. package/dist/editor/icons/file.d.ts +0 -2
  98. package/dist/editor/icons/file.js +0 -6
  99. package/dist/editor/icons/frame.d.ts +0 -2
  100. package/dist/editor/icons/frame.js +0 -6
  101. package/dist/editor/icons/gear.d.ts +0 -2
  102. package/dist/editor/icons/gear.js +0 -6
  103. package/dist/editor/icons/gif.d.ts +0 -2
  104. package/dist/editor/icons/gif.js +0 -6
  105. package/dist/editor/icons/render.d.ts +0 -5
  106. package/dist/editor/icons/render.js +0 -8
  107. package/dist/editor/icons/video.d.ts +0 -5
  108. package/dist/editor/icons/video.js +0 -8
  109. package/dist/file-watcher.d.ts +0 -9
  110. package/dist/file-watcher.js +0 -35
  111. package/dist/get-default-out-name.d.ts +0 -5
  112. package/dist/get-default-out-name.js +0 -10
  113. package/dist/preview-server/api-routes.d.ts +0 -4
  114. package/dist/preview-server/api-routes.js +0 -17
  115. package/dist/preview-server/api-types.d.ts +0 -27
  116. package/dist/preview-server/api-types.js +0 -2
  117. package/dist/preview-server/file-existence-watchers.d.ts +0 -13
  118. package/dist/preview-server/file-existence-watchers.js +0 -62
  119. package/dist/preview-server/handler.d.ts +0 -9
  120. package/dist/preview-server/handler.js +0 -34
  121. package/dist/preview-server/parse-body.d.ts +0 -2
  122. package/dist/preview-server/parse-body.js +0 -16
  123. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +0 -10
  124. package/dist/preview-server/render-queue/get-default-video-contexts.js +0 -13
  125. package/dist/preview-server/render-queue/job.d.ts +0 -112
  126. package/dist/preview-server/render-queue/job.js +0 -2
  127. package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
  128. package/dist/preview-server/render-queue/make-retry-payload.js +0 -79
  129. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
  130. package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
  131. package/dist/preview-server/render-queue/process-still.d.ts +0 -8
  132. package/dist/preview-server/render-queue/process-still.js +0 -48
  133. package/dist/preview-server/render-queue/process-video.d.ts +0 -8
  134. package/dist/preview-server/render-queue/process-video.js +0 -66
  135. package/dist/preview-server/render-queue/queue.d.ts +0 -21
  136. package/dist/preview-server/render-queue/queue.js +0 -185
  137. package/dist/preview-server/routes/add-render.d.ts +0 -3
  138. package/dist/preview-server/routes/add-render.js +0 -67
  139. package/dist/preview-server/routes/cancel-render.d.ts +0 -3
  140. package/dist/preview-server/routes/cancel-render.js +0 -9
  141. package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
  142. package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
  143. package/dist/preview-server/routes/remove-render.d.ts +0 -3
  144. package/dist/preview-server/routes/remove-render.js +0 -9
  145. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
  146. package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
  147. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
  148. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
  149. package/dist/render-flows/render.d.ts +0 -47
  150. package/dist/render-flows/render.js +0 -279
  151. package/dist/render-flows/still.d.ts +0 -30
  152. package/dist/render-flows/still.js +0 -170
@@ -1,3 +0,0 @@
1
- import type { RenderModalState } from '../../editor/state/modals';
2
- import type { RenderJob } from './job';
3
- export declare const makeRetryPayload: (job: RenderJob) => RenderModalState;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeRetryPayload = void 0;
4
- const get_default_video_contexts_1 = require("./get-default-video-contexts");
5
- const makeRetryPayload = (job) => {
6
- var _a, _b, _c;
7
- const defaults = window.remotion_renderDefaults;
8
- if (!defaults) {
9
- throw new Error('defaults not set');
10
- }
11
- if (job.type === 'still') {
12
- const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
13
- defaultCodec: defaults.codec,
14
- isStill: true,
15
- });
16
- return {
17
- type: 'render',
18
- compositionId: job.compositionId,
19
- initialFrame: job.frame,
20
- initialStillImageFormat: job.imageFormat,
21
- // TODO: Take from config
22
- initialVideoImageFormat: 'jpeg',
23
- initialQuality: (_a = job.quality) !== null && _a !== void 0 ? _a : defaults.quality,
24
- initialOutName: job.outName,
25
- initialScale: job.scale,
26
- initialVerbose: job.verbose,
27
- initialAudioCodec,
28
- initialRenderType,
29
- initialVideoCodec,
30
- initialConcurrency: defaults.concurrency,
31
- maxConcurrency: defaults.maxConcurrency,
32
- minConcurrency: defaults.minConcurrency,
33
- initialMuted: defaults.muted,
34
- initialEnforceAudioTrack: defaults.enforceAudioTrack,
35
- initialProResProfile: defaults.proResProfile,
36
- initialPixelFormat: defaults.pixelFormat,
37
- initialAudioBitrate: defaults.audioBitrate,
38
- initialVideoBitrate: defaults.videoBitrate,
39
- initialEveryNthFrame: defaults.everyNthFrame,
40
- initialNumberOfGifLoops: defaults.numberOfGifLoops,
41
- initialDelayRenderTimeout: defaults.delayRenderTimeout,
42
- };
43
- }
44
- if (job.type === 'video') {
45
- const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
46
- defaultCodec: defaults.codec,
47
- isStill: false,
48
- });
49
- return {
50
- type: 'render',
51
- compositionId: job.compositionId,
52
- // TODO: Take from config
53
- initialStillImageFormat: 'png',
54
- initialVideoImageFormat: job.imageFormat,
55
- initialQuality: (_b = job.quality) !== null && _b !== void 0 ? _b : defaults.quality,
56
- initialOutName: job.outName,
57
- initialScale: job.scale,
58
- initialVerbose: job.verbose,
59
- initialFrame: 0,
60
- initialConcurrency: job.concurrency,
61
- maxConcurrency: defaults.maxConcurrency,
62
- minConcurrency: defaults.minConcurrency,
63
- initialMuted: job.muted,
64
- initialAudioCodec,
65
- initialEnforceAudioTrack: job.enforceAudioTrack,
66
- initialRenderType,
67
- initialVideoCodec,
68
- initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
69
- initialPixelFormat: job.pixelFormat,
70
- initialAudioBitrate: job.audioBitrate,
71
- initialVideoBitrate: job.videoBitrate,
72
- initialEveryNthFrame: job.everyNthFrame,
73
- initialNumberOfGifLoops: job.numberOfGifLoops,
74
- initialDelayRenderTimeout: job.delayRenderTimeout,
75
- };
76
- }
77
- throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
78
- };
79
- exports.makeRetryPayload = makeRetryPayload;
@@ -1 +0,0 @@
1
- export declare const openDirectoryInFinder: (dirToOpen: string) => Promise<void>;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.openDirectoryInFinder = void 0;
4
- const child_process_1 = require("child_process");
5
- const os_1 = require("os");
6
- const truthy_1 = require("../../truthy");
7
- const openDirectoryInFinder = (dirToOpen) => {
8
- const command = (0, os_1.platform)() === 'darwin'
9
- ? 'open'
10
- : (0, os_1.platform)() === 'linux'
11
- ? 'xdg-open'
12
- : 'start';
13
- const p = (0, child_process_1.spawn)(command, [(0, os_1.platform)() === 'darwin' ? '-R' : null, dirToOpen].filter(truthy_1.truthy));
14
- const stderrChunks = [];
15
- p.stderr.on('data', (d) => stderrChunks.push(d));
16
- return new Promise((resolve, reject) => {
17
- p.on('exit', (code) => {
18
- if (code === 0) {
19
- resolve();
20
- }
21
- else {
22
- const message = Buffer.concat(stderrChunks).toString('utf-8');
23
- reject(new Error(message));
24
- }
25
- });
26
- p.on('error', (err) => {
27
- p.kill();
28
- if (err) {
29
- reject(err);
30
- }
31
- });
32
- });
33
- };
34
- exports.openDirectoryInFinder = openDirectoryInFinder;
@@ -1,8 +0,0 @@
1
- import type { JobProgressCallback, RenderJob } from './job';
2
- export declare const processStill: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
- job: RenderJob;
4
- remotionRoot: string;
5
- entryPoint: string;
6
- onProgress: JobProgressCallback;
7
- addCleanupCallback: (cb: () => void) => void;
8
- }) => Promise<void>;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processStill = void 0;
4
- const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to-serve-url");
5
- const get_cli_options_1 = require("../../get-cli-options");
6
- const still_1 = require("../../render-flows/still");
7
- const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
- var _a;
9
- if (job.type !== 'still') {
10
- throw new Error('Expected still job');
11
- }
12
- const { publicDir, browserExecutable, chromiumOptions, envVariables, inputProps, port, browser, puppeteerTimeout, } = await (0, get_cli_options_1.getCliOptions)({
13
- isLambda: false,
14
- type: 'still',
15
- remotionRoot,
16
- });
17
- const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
18
- await (0, still_1.renderStillFlow)({
19
- remotionRoot,
20
- browser,
21
- browserExecutable,
22
- chromiumOptions,
23
- entryPointReason: 'same as preview',
24
- envVariables,
25
- height: null,
26
- fullEntryPoint,
27
- inputProps,
28
- overwrite: true,
29
- port,
30
- publicDir,
31
- puppeteerTimeout,
32
- quality: (_a = job.quality) !== null && _a !== void 0 ? _a : undefined,
33
- remainingArgs: [],
34
- scale: job.scale,
35
- stillFrame: job.frame,
36
- width: null,
37
- compositionIdFromUi: job.compositionId,
38
- imageFormatFromUi: job.imageFormat,
39
- configFileImageFormat: undefined,
40
- logLevel: job.verbose ? 'verbose' : 'info',
41
- onProgress,
42
- indentOutput: true,
43
- addCleanupCallback,
44
- cancelSignal: job.cancelToken.cancelSignal,
45
- });
46
- // TODO: Accept CLI options
47
- };
48
- exports.processStill = processStill;
@@ -1,8 +0,0 @@
1
- import type { JobProgressCallback, RenderJob } from './job';
2
- export declare const processVideoJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
- job: RenderJob;
4
- remotionRoot: string;
5
- entryPoint: string;
6
- onProgress: JobProgressCallback;
7
- addCleanupCallback: (cb: () => void) => void;
8
- }) => Promise<void>;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processVideoJob = void 0;
4
- const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to-serve-url");
5
- const get_cli_options_1 = require("../../get-cli-options");
6
- const render_1 = require("../../render-flows/render");
7
- const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
- var _a, _b;
9
- if (job.type !== 'video') {
10
- throw new Error('Expected video job');
11
- }
12
- // TODO: Change until none can be derived from UI
13
- const { publicDir, browserExecutable, chromiumOptions, envVariables, inputProps, port, browser, ffmpegOverride, } = await (0, get_cli_options_1.getCliOptions)({
14
- isLambda: false,
15
- type: 'still',
16
- remotionRoot,
17
- });
18
- const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
19
- await (0, render_1.renderCompFlow)({
20
- remotionRoot,
21
- browser,
22
- browserExecutable,
23
- chromiumOptions,
24
- entryPointReason: 'same as preview',
25
- envVariables,
26
- height: null,
27
- fullEntryPoint,
28
- inputProps,
29
- overwrite: true,
30
- port,
31
- publicDir,
32
- puppeteerTimeout: job.delayRenderTimeout,
33
- quality: (_a = job.quality) !== null && _a !== void 0 ? _a : undefined,
34
- remainingArgs: [],
35
- scale: job.scale,
36
- width: null,
37
- compositionIdFromUi: job.compositionId,
38
- configFileImageFormat: undefined,
39
- logLevel: job.verbose ? 'verbose' : 'info',
40
- onProgress,
41
- indent: true,
42
- concurrency: job.concurrency,
43
- everyNthFrame: job.everyNthFrame,
44
- frameRange: [job.startFrame, job.endFrame],
45
- quiet: false,
46
- shouldOutputImageSequence: false,
47
- addCleanupCallback,
48
- outputLocationFromUI: job.outName,
49
- uiCodec: job.codec,
50
- uiImageFormat: job.imageFormat,
51
- cancelSignal: job.cancelToken.cancelSignal,
52
- crf: job.crf,
53
- ffmpegOverride,
54
- audioBitrate: job.audioBitrate,
55
- muted: job.muted,
56
- enforceAudioTrack: job.enforceAudioTrack,
57
- proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
58
- pixelFormat: job.pixelFormat,
59
- videoBitrate: job.videoBitrate,
60
- numberOfGifLoops: job.numberOfGifLoops,
61
- // TODO
62
- audioCodec: null,
63
- });
64
- // TODO: Accept CLI options
65
- };
66
- exports.processVideoJob = processVideoJob;
@@ -1,21 +0,0 @@
1
- import type { JobProgressCallback, RenderJob, RenderJobWithCleanup } from './job';
2
- export declare const getRenderQueue: () => RenderJob[];
3
- export declare const notifyClientsOfJobUpdate: () => void;
4
- export declare const processJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
5
- job: RenderJob;
6
- remotionRoot: string;
7
- entryPoint: string;
8
- onProgress: JobProgressCallback;
9
- addCleanupCallback: (cb: () => void) => void;
10
- }) => Promise<void>;
11
- export declare const addJob: ({ job, entryPoint, remotionRoot, }: {
12
- job: RenderJobWithCleanup;
13
- entryPoint: string;
14
- remotionRoot: string;
15
- }) => void;
16
- export declare const removeJob: (jobId: string) => void;
17
- export declare const cancelJob: (jobId: string) => void;
18
- export declare const processJobIfPossible: ({ remotionRoot, entryPoint, }: {
19
- remotionRoot: string;
20
- entryPoint: string;
21
- }) => Promise<void>;
@@ -1,185 +0,0 @@
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.processJobIfPossible = exports.cancelJob = exports.removeJob = exports.addJob = exports.processJob = exports.notifyClientsOfJobUpdate = exports.getRenderQueue = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const chalk_1 = require("../../chalk");
9
- const file_watcher_1 = require("../../file-watcher");
10
- const log_1 = require("../../log");
11
- const live_events_1 = require("../live-events");
12
- const process_still_1 = require("./process-still");
13
- const process_video_1 = require("./process-video");
14
- let jobQueue = [];
15
- const updateJob = (id, updater) => {
16
- jobQueue = jobQueue.map((j) => {
17
- if (id === j.id) {
18
- return updater(j);
19
- }
20
- return j;
21
- });
22
- (0, exports.notifyClientsOfJobUpdate)();
23
- };
24
- const getRenderQueue = () => {
25
- return jobQueue.map((j) => {
26
- const { cleanup, ...rest } = j;
27
- return rest;
28
- });
29
- };
30
- exports.getRenderQueue = getRenderQueue;
31
- const notifyClientsOfJobUpdate = () => {
32
- (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
33
- listener.sendEventToClient({
34
- type: 'render-queue-updated',
35
- queue: (0, exports.getRenderQueue)(),
36
- });
37
- });
38
- };
39
- exports.notifyClientsOfJobUpdate = notifyClientsOfJobUpdate;
40
- const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
41
- if (job.type === 'still') {
42
- await (0, process_still_1.processStill)({
43
- job,
44
- remotionRoot,
45
- entryPoint,
46
- onProgress,
47
- addCleanupCallback,
48
- });
49
- return;
50
- }
51
- if (job.type === 'video') {
52
- await (0, process_video_1.processVideoJob)({
53
- job,
54
- remotionRoot,
55
- entryPoint,
56
- onProgress,
57
- addCleanupCallback,
58
- });
59
- return;
60
- }
61
- throw new Error(`Unknown job ${JSON.stringify(job)}`);
62
- };
63
- exports.processJob = processJob;
64
- const addJob = ({ job, entryPoint, remotionRoot, }) => {
65
- jobQueue.push(job);
66
- (0, exports.processJobIfPossible)({ entryPoint, remotionRoot });
67
- (0, exports.notifyClientsOfJobUpdate)();
68
- };
69
- exports.addJob = addJob;
70
- const removeJob = (jobId) => {
71
- jobQueue = jobQueue.filter((job) => {
72
- if (job.id === jobId) {
73
- job.cleanup.forEach((c) => {
74
- c();
75
- });
76
- return false;
77
- }
78
- return true;
79
- });
80
- (0, exports.notifyClientsOfJobUpdate)();
81
- };
82
- exports.removeJob = removeJob;
83
- const cancelJob = (jobId) => {
84
- for (const job of jobQueue) {
85
- if (job.id === jobId) {
86
- if (job.status !== 'running') {
87
- throw new Error('Job is not running');
88
- }
89
- job.cancelToken.cancel();
90
- break;
91
- }
92
- }
93
- };
94
- exports.cancelJob = cancelJob;
95
- const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
96
- const nextJob = jobQueue.find((q) => {
97
- return q.status === 'idle';
98
- });
99
- if (!nextJob) {
100
- return;
101
- }
102
- const jobCleanups = [];
103
- try {
104
- updateJob(nextJob.id, (job) => {
105
- return {
106
- ...job,
107
- status: 'running',
108
- progress: 0,
109
- message: 'Starting job...',
110
- };
111
- });
112
- const startTime = Date.now();
113
- log_1.Log.info(chalk_1.chalk.gray('╭─ Starting render '));
114
- await (0, exports.processJob)({
115
- job: nextJob,
116
- entryPoint,
117
- remotionRoot,
118
- onProgress: ({ message, progress }) => {
119
- updateJob(nextJob.id, (job) => {
120
- // Ignore late callbacks of progress updates after cancelling
121
- if (job.status === 'failed' || job.status === 'done') {
122
- return job;
123
- }
124
- return {
125
- ...job,
126
- status: 'running',
127
- progress,
128
- message,
129
- };
130
- });
131
- },
132
- addCleanupCallback: (cleanup) => {
133
- jobCleanups.push(cleanup);
134
- },
135
- });
136
- log_1.Log.info(chalk_1.chalk.gray('╰─ Done in ' + (Date.now() - startTime) + 'ms.'));
137
- const { unwatch } = (0, file_watcher_1.installFileWatcher)({
138
- file: path_1.default.resolve(remotionRoot, nextJob.outName),
139
- onChange: (type) => {
140
- if (type === 'created') {
141
- updateJob(nextJob.id, (job) => ({
142
- ...job,
143
- deletedOutputLocation: false,
144
- }));
145
- }
146
- if (type === 'deleted') {
147
- updateJob(nextJob.id, (job) => ({
148
- ...job,
149
- deletedOutputLocation: true,
150
- }));
151
- }
152
- },
153
- });
154
- updateJob(nextJob.id, (job) => ({
155
- ...job,
156
- status: 'done',
157
- cleanup: [...job.cleanup, unwatch],
158
- }));
159
- }
160
- catch (err) {
161
- // TODO: Tell to look in preview to find the error
162
- log_1.Log.error(chalk_1.chalk.gray('╰─ Render failed:'), err);
163
- updateJob(nextJob.id, (job) => {
164
- return {
165
- ...job,
166
- status: 'failed',
167
- error: {
168
- message: err.message,
169
- stack: err.stack,
170
- },
171
- };
172
- });
173
- (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
174
- listener.sendEventToClient({
175
- type: 'render-job-failed',
176
- compositionId: nextJob.compositionId,
177
- error: err,
178
- });
179
- });
180
- }
181
- finally {
182
- await Promise.all(jobCleanups.map((c) => c()));
183
- }
184
- };
185
- exports.processJobIfPossible = processJobIfPossible;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { AddRenderRequest } from '../render-queue/job';
3
- export declare const handleAddRender: ApiHandler<AddRenderRequest, undefined>;
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleAddRender = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const queue_1 = require("../render-queue/queue");
6
- const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
7
- const id = String(Math.random()).replace('0.', '');
8
- if (input.type === 'video') {
9
- (0, queue_1.addJob)({
10
- entryPoint,
11
- remotionRoot,
12
- job: {
13
- cleanup: [],
14
- codec: input.codec,
15
- compositionId: input.compositionId,
16
- deletedOutputLocation: false,
17
- type: 'video',
18
- status: 'idle',
19
- id,
20
- imageFormat: input.imageFormat,
21
- outName: input.outName,
22
- quality: input.quality,
23
- scale: input.scale,
24
- startedAt: Date.now(),
25
- verbose: input.verbose,
26
- cancelToken: (0, renderer_1.makeCancelSignal)(),
27
- concurrency: input.concurrency,
28
- crf: input.crf,
29
- endFrame: input.endFrame,
30
- startFrame: input.startFrame,
31
- muted: input.muted,
32
- enforceAudioTrack: input.enforceAudioTrack,
33
- proResProfile: input.proResProfile,
34
- pixelFormat: input.pixelFormat,
35
- audioBitrate: input.audioBitrate,
36
- videoBitrate: input.videoBitrate,
37
- everyNthFrame: input.everyNthFrame,
38
- numberOfGifLoops: input.numberOfGifLoops,
39
- delayRenderTimeout: input.delayRenderTimeout,
40
- },
41
- });
42
- }
43
- if (input.type === 'still') {
44
- (0, queue_1.addJob)({
45
- job: {
46
- compositionId: input.compositionId,
47
- id: String(Math.random()).replace('0.', ''),
48
- startedAt: Date.now(),
49
- type: 'still',
50
- outName: input.outName,
51
- status: 'idle',
52
- imageFormat: input.imageFormat,
53
- quality: input.quality,
54
- frame: input.frame,
55
- scale: input.scale,
56
- cleanup: [],
57
- deletedOutputLocation: false,
58
- verbose: input.verbose,
59
- cancelToken: (0, renderer_1.makeCancelSignal)(),
60
- },
61
- entryPoint,
62
- remotionRoot,
63
- });
64
- }
65
- return Promise.resolve(undefined);
66
- };
67
- exports.handleAddRender = handleAddRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { CancelRenderRequest, CancelRenderResponse } from '../render-queue/job';
3
- export declare const handleCancelRender: ApiHandler<CancelRenderRequest, CancelRenderResponse>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleCancelRender = void 0;
4
- const queue_1 = require("../render-queue/queue");
5
- const handleCancelRender = ({ input: { jobId } }) => {
6
- (0, queue_1.cancelJob)(jobId);
7
- return Promise.resolve({});
8
- };
9
- exports.handleCancelRender = handleCancelRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { OpenInFileExplorerRequest } from '../render-queue/job';
3
- export declare const handleOpenInFileExplorer: ApiHandler<OpenInFileExplorerRequest, void>;
@@ -1,14 +0,0 @@
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.handleOpenInFileExplorer = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const open_directory_in_finder_1 = require("../render-queue/open-directory-in-finder");
9
- const handleOpenInFileExplorer = ({ input: { directory }, remotionRoot }) => {
10
- const actualDirectory = path_1.default.resolve(remotionRoot, directory);
11
- // TODO: Disallow opening file that is not in Remotion CWD
12
- return (0, open_directory_in_finder_1.openDirectoryInFinder)(actualDirectory);
13
- };
14
- exports.handleOpenInFileExplorer = handleOpenInFileExplorer;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { RemoveRenderRequest } from '../render-queue/job';
3
- export declare const handleRemoveRender: ApiHandler<RemoveRenderRequest, undefined>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRemoveRender = void 0;
4
- const queue_1 = require("../render-queue/queue");
5
- const handleRemoveRender = ({ input: { jobId }, }) => {
6
- (0, queue_1.removeJob)(jobId);
7
- return Promise.resolve(undefined);
8
- };
9
- exports.handleRemoveRender = handleRemoveRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse } from '../render-queue/job';
3
- export declare const subscribeToFileExistence: ApiHandler<SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribeToFileExistence = void 0;
4
- const file_existence_watchers_1 = require("../file-existence-watchers");
5
- const subscribeToFileExistence = ({ input: { file, clientId }, remotionRoot }) => {
6
- const { exists } = (0, file_existence_watchers_1.subscribeToFileExistenceWatchers)({
7
- file,
8
- remotionRoot,
9
- clientId,
10
- });
11
- return Promise.resolve({ exists });
12
- };
13
- exports.subscribeToFileExistence = subscribeToFileExistence;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { UnsubscribeFromFileExistenceRequest } from '../render-queue/job';
3
- export declare const unsubscribeFromFileExistence: ApiHandler<UnsubscribeFromFileExistenceRequest, undefined>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsubscribeFromFileExistence = void 0;
4
- const file_existence_watchers_1 = require("../file-existence-watchers");
5
- const unsubscribeFromFileExistence = ({ input, remotionRoot }) => {
6
- (0, file_existence_watchers_1.unsubscribeFromFileExistenceWatchers)({
7
- file: input.file,
8
- clientId: input.clientId,
9
- remotionRoot,
10
- });
11
- return Promise.resolve(undefined);
12
- };
13
- exports.unsubscribeFromFileExistence = unsubscribeFromFileExistence;