@remotion/cli 3.3.75 → 3.3.77

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 (158) hide show
  1. package/dist/config/still-frame.js +5 -1
  2. package/dist/convert-entry-point-to-serve-url.d.ts +1 -0
  3. package/dist/convert-entry-point-to-serve-url.js +15 -0
  4. package/dist/editor/components/Checkbox.d.ts +5 -0
  5. package/dist/editor/components/Checkbox.js +38 -0
  6. package/dist/editor/components/CollapsableOptions.d.ts +6 -0
  7. package/dist/editor/components/CollapsableOptions.js +35 -0
  8. package/dist/editor/components/CurrentCompositionSideEffects.d.ts +3 -0
  9. package/dist/editor/components/CurrentCompositionSideEffects.js +43 -0
  10. package/dist/editor/components/InlineAction.d.ts +5 -0
  11. package/dist/editor/components/InlineAction.js +34 -0
  12. package/dist/editor/components/Modals.d.ts +2 -0
  13. package/dist/editor/components/Modals.js +23 -0
  14. package/dist/editor/components/RenderButton.d.ts +6 -0
  15. package/dist/editor/components/RenderButton.js +67 -0
  16. package/dist/editor/components/RenderModal/CrfSetting.d.ts +15 -0
  17. package/dist/editor/components/RenderModal/CrfSetting.js +43 -0
  18. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +5 -0
  19. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +14 -0
  20. package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +8 -0
  21. package/dist/editor/components/RenderModal/FrameRangeSetting.js +42 -0
  22. package/dist/editor/components/RenderModal/MutedSetting.d.ts +5 -0
  23. package/dist/editor/components/RenderModal/MutedSetting.js +14 -0
  24. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
  25. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
  26. package/dist/editor/components/RenderModal/NumberSetting.d.ts +9 -0
  27. package/dist/editor/components/RenderModal/NumberSetting.js +26 -0
  28. package/dist/editor/components/RenderModal/QualitySetting.d.ts +5 -0
  29. package/dist/editor/components/RenderModal/QualitySetting.js +27 -0
  30. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +5 -0
  31. package/dist/editor/components/RenderModal/RenderErrorModal.js +64 -0
  32. package/dist/editor/components/RenderModal/RenderModal.d.ts +28 -0
  33. package/dist/editor/components/RenderModal/RenderModal.js +484 -0
  34. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +11 -0
  35. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +15 -0
  36. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +13 -0
  37. package/dist/editor/components/RenderModal/RenderModalAudio.js +22 -0
  38. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +24 -0
  39. package/dist/editor/components/RenderModal/RenderModalBasic.js +87 -0
  40. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
  41. package/dist/editor/components/RenderModal/RenderModalGif.js +16 -0
  42. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
  43. package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
  44. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
  45. package/dist/editor/components/RenderModal/RenderModalPicture.js +51 -0
  46. package/dist/editor/components/RenderModal/ScaleSetting.d.ts +5 -0
  47. package/dist/editor/components/RenderModal/ScaleSetting.js +11 -0
  48. package/dist/editor/components/RenderModal/human-readable-audio-codecs.d.ts +2 -0
  49. package/dist/editor/components/RenderModal/human-readable-audio-codecs.js +18 -0
  50. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
  51. package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
  52. package/dist/editor/components/RenderModal/layout.d.ts +5 -0
  53. package/dist/editor/components/RenderModal/layout.js +31 -0
  54. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +5 -0
  55. package/dist/editor/components/RenderQueue/CircularProgress.js +18 -0
  56. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +5 -0
  57. package/dist/editor/components/RenderQueue/RenderQueueError.js +26 -0
  58. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +5 -0
  59. package/dist/editor/components/RenderQueue/RenderQueueItem.js +39 -0
  60. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +5 -0
  61. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +22 -0
  62. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +5 -0
  63. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +27 -0
  64. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +5 -0
  65. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +24 -0
  66. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +5 -0
  67. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +27 -0
  68. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +5 -0
  69. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +23 -0
  70. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +5 -0
  71. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +22 -0
  72. package/dist/editor/components/RenderQueue/actions.d.ts +49 -0
  73. package/dist/editor/components/RenderQueue/actions.js +98 -0
  74. package/dist/editor/components/RenderQueue/context.d.ts +19 -0
  75. package/dist/editor/components/RenderQueue/context.js +56 -0
  76. package/dist/editor/components/RenderQueue/index.d.ts +2 -0
  77. package/dist/editor/components/RenderQueue/index.js +18 -0
  78. package/dist/editor/components/RenderQueue/item-style.d.ts +2 -0
  79. package/dist/editor/components/RenderQueue/item-style.js +21 -0
  80. package/dist/editor/components/RenderToolbarIcon.d.ts +2 -0
  81. package/dist/editor/components/RenderToolbarIcon.js +78 -0
  82. package/dist/editor/components/RendersTab.d.ts +6 -0
  83. package/dist/editor/components/RendersTab.js +43 -0
  84. package/dist/editor/components/SegmentedControl.d.ts +16 -0
  85. package/dist/editor/components/SegmentedControl.js +63 -0
  86. package/dist/editor/components/SidebarContent.d.ts +5 -0
  87. package/dist/editor/components/SidebarContent.js +52 -0
  88. package/dist/editor/components/Tabs/index.d.ts +11 -0
  89. package/dist/editor/components/Tabs/index.js +51 -0
  90. package/dist/editor/helpers/client-id.d.ts +17 -0
  91. package/dist/editor/helpers/client-id.js +46 -0
  92. package/dist/editor/helpers/use-file-existence.d.ts +1 -0
  93. package/dist/editor/helpers/use-file-existence.js +66 -0
  94. package/dist/editor/icons/RenderStillIcon.d.ts +3 -0
  95. package/dist/editor/icons/RenderStillIcon.js +8 -0
  96. package/dist/editor/icons/audio.d.ts +2 -0
  97. package/dist/editor/icons/audio.js +6 -0
  98. package/dist/editor/icons/file.d.ts +2 -0
  99. package/dist/editor/icons/file.js +6 -0
  100. package/dist/editor/icons/frame.d.ts +2 -0
  101. package/dist/editor/icons/frame.js +6 -0
  102. package/dist/editor/icons/gear.d.ts +2 -0
  103. package/dist/editor/icons/gear.js +6 -0
  104. package/dist/editor/icons/gif.d.ts +2 -0
  105. package/dist/editor/icons/gif.js +6 -0
  106. package/dist/editor/icons/render.d.ts +5 -0
  107. package/dist/editor/icons/render.js +8 -0
  108. package/dist/editor/icons/video.d.ts +5 -0
  109. package/dist/editor/icons/video.js +8 -0
  110. package/dist/ffmpeg.d.ts +2 -0
  111. package/dist/ffmpeg.js +21 -0
  112. package/dist/file-watcher.d.ts +9 -0
  113. package/dist/file-watcher.js +35 -0
  114. package/dist/gcp-command.d.ts +1 -0
  115. package/dist/gcp-command.js +27 -0
  116. package/dist/get-default-out-name.d.ts +5 -0
  117. package/dist/get-default-out-name.js +10 -0
  118. package/dist/preview-server/api-routes.d.ts +4 -0
  119. package/dist/preview-server/api-routes.js +17 -0
  120. package/dist/preview-server/api-types.d.ts +27 -0
  121. package/dist/preview-server/api-types.js +2 -0
  122. package/dist/preview-server/file-existence-watchers.d.ts +13 -0
  123. package/dist/preview-server/file-existence-watchers.js +62 -0
  124. package/dist/preview-server/handler.d.ts +9 -0
  125. package/dist/preview-server/handler.js +34 -0
  126. package/dist/preview-server/parse-body.d.ts +2 -0
  127. package/dist/preview-server/parse-body.js +16 -0
  128. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +10 -0
  129. package/dist/preview-server/render-queue/get-default-video-contexts.js +13 -0
  130. package/dist/preview-server/render-queue/job.d.ts +114 -0
  131. package/dist/preview-server/render-queue/job.js +2 -0
  132. package/dist/preview-server/render-queue/make-retry-payload.d.ts +3 -0
  133. package/dist/preview-server/render-queue/make-retry-payload.js +79 -0
  134. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +1 -0
  135. package/dist/preview-server/render-queue/open-directory-in-finder.js +34 -0
  136. package/dist/preview-server/render-queue/process-still.d.ts +8 -0
  137. package/dist/preview-server/render-queue/process-still.js +47 -0
  138. package/dist/preview-server/render-queue/process-video.d.ts +8 -0
  139. package/dist/preview-server/render-queue/process-video.js +64 -0
  140. package/dist/preview-server/render-queue/queue.d.ts +21 -0
  141. package/dist/preview-server/render-queue/queue.js +185 -0
  142. package/dist/preview-server/routes/add-render.d.ts +3 -0
  143. package/dist/preview-server/routes/add-render.js +68 -0
  144. package/dist/preview-server/routes/cancel-render.d.ts +3 -0
  145. package/dist/preview-server/routes/cancel-render.js +9 -0
  146. package/dist/preview-server/routes/open-in-file-explorer.d.ts +3 -0
  147. package/dist/preview-server/routes/open-in-file-explorer.js +14 -0
  148. package/dist/preview-server/routes/remove-render.d.ts +3 -0
  149. package/dist/preview-server/routes/remove-render.js +9 -0
  150. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +3 -0
  151. package/dist/preview-server/routes/subscribe-to-file-existence.js +13 -0
  152. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +3 -0
  153. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +13 -0
  154. package/dist/render-flows/render.d.ts +46 -0
  155. package/dist/render-flows/render.js +279 -0
  156. package/dist/render-flows/still.d.ts +29 -0
  157. package/dist/render-flows/still.js +171 -0
  158. package/package.json +6 -6
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tab = exports.Tabs = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const colors_1 = require("../../helpers/colors");
7
+ const z_index_1 = require("../../state/z-index");
8
+ const tabsContainer = {
9
+ display: 'flex',
10
+ flexDirection: 'row',
11
+ };
12
+ const Tabs = ({ children, style }) => {
13
+ const definiteStyle = (0, react_1.useMemo)(() => {
14
+ return {
15
+ ...tabsContainer,
16
+ ...style,
17
+ };
18
+ }, [style]);
19
+ return (0, jsx_runtime_1.jsx)("div", { style: definiteStyle, children: children });
20
+ };
21
+ exports.Tabs = Tabs;
22
+ const selectorButton = {
23
+ border: 'none',
24
+ flex: 1,
25
+ padding: 8,
26
+ fontSize: 13,
27
+ };
28
+ const Tab = ({ children, onClick, style, selected }) => {
29
+ const [hovered, setHovered] = (0, react_1.useState)(false);
30
+ const { tabIndex } = (0, z_index_1.useZIndex)();
31
+ const onPointerEnter = (0, react_1.useCallback)(() => {
32
+ setHovered(true);
33
+ }, []);
34
+ const onPointerLeave = (0, react_1.useCallback)(() => {
35
+ setHovered(false);
36
+ }, []);
37
+ const definiteStyle = (0, react_1.useMemo)(() => {
38
+ return {
39
+ ...selectorButton,
40
+ backgroundColor: selected
41
+ ? colors_1.SELECTED_BACKGROUND
42
+ : hovered
43
+ ? colors_1.CLEAR_HOVER
44
+ : 'transparent',
45
+ color: selected ? 'white' : colors_1.LIGHT_TEXT,
46
+ ...style,
47
+ };
48
+ }, [hovered, selected, style]);
49
+ return ((0, jsx_runtime_1.jsx)("button", { style: definiteStyle, type: "button", onClick: onClick, tabIndex: tabIndex, onPointerLeave: onPointerLeave, onPointerEnter: onPointerEnter, children: children }));
50
+ };
51
+ exports.Tab = Tab;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ declare type PreviewServerState = {
3
+ type: 'init';
4
+ } | {
5
+ type: 'connected';
6
+ clientId: string;
7
+ } | {
8
+ type: 'disconnected';
9
+ };
10
+ export declare const PreviewServerConnectionCtx: React.Context<PreviewServerState>;
11
+ export declare const previewServerConnectionRef: React.RefObject<{
12
+ set: (jobs: PreviewServerState) => void;
13
+ }>;
14
+ export declare const PreviewServerConnection: React.FC<{
15
+ children: React.ReactNode;
16
+ }>;
17
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.PreviewServerConnection = exports.previewServerConnectionRef = exports.PreviewServerConnectionCtx = void 0;
27
+ const jsx_runtime_1 = require("react/jsx-runtime");
28
+ const react_1 = __importStar(require("react"));
29
+ exports.PreviewServerConnectionCtx = react_1.default.createContext({
30
+ type: 'init',
31
+ });
32
+ exports.previewServerConnectionRef = (0, react_1.createRef)();
33
+ const PreviewServerConnection = ({ children }) => {
34
+ const [state, setState] = react_1.default.useState({
35
+ type: 'init',
36
+ });
37
+ (0, react_1.useImperativeHandle)(exports.previewServerConnectionRef, () => {
38
+ return {
39
+ set: (newState) => {
40
+ setState(newState);
41
+ },
42
+ };
43
+ }, []);
44
+ return ((0, jsx_runtime_1.jsx)(exports.PreviewServerConnectionCtx.Provider, { value: state, children: children }));
45
+ };
46
+ exports.PreviewServerConnection = PreviewServerConnection;
@@ -0,0 +1 @@
1
+ export declare const useFileExistence: (outName: string) => boolean;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFileExistence = void 0;
4
+ const react_1 = require("react");
5
+ const event_source_1 = require("../../event-source");
6
+ const actions_1 = require("../components/RenderQueue/actions");
7
+ const client_id_1 = require("./client-id");
8
+ const useFileExistence = (outName) => {
9
+ const [exists, setExists] = (0, react_1.useState)(false);
10
+ const state = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
11
+ const clientId = state.type === 'connected' ? state.clientId : undefined;
12
+ const currentOutName = (0, react_1.useRef)('');
13
+ currentOutName.current = outName;
14
+ (0, react_1.useEffect)(() => {
15
+ if (!clientId) {
16
+ return;
17
+ }
18
+ (0, actions_1.subscribeToFileExistenceWatcher)({
19
+ file: outName,
20
+ clientId,
21
+ }).then((_exists) => {
22
+ if (currentOutName.current === outName) {
23
+ setExists(_exists);
24
+ }
25
+ });
26
+ return () => {
27
+ (0, actions_1.unsubscribeFromFileExistenceWatcher)({ file: outName, clientId });
28
+ };
29
+ }, [clientId, outName]);
30
+ (0, react_1.useEffect)(() => {
31
+ const listener = (event) => {
32
+ if (event.type !== 'watched-file-deleted') {
33
+ return;
34
+ }
35
+ if (event.file !== currentOutName.current) {
36
+ return;
37
+ }
38
+ if (currentOutName.current === outName) {
39
+ setExists(false);
40
+ }
41
+ };
42
+ const unsub = (0, event_source_1.subscribeToEvent)('watched-file-deleted', listener);
43
+ return () => {
44
+ unsub();
45
+ };
46
+ }, [outName]);
47
+ (0, react_1.useEffect)(() => {
48
+ const listener = (event) => {
49
+ if (event.type !== 'watched-file-undeleted') {
50
+ return;
51
+ }
52
+ if (event.file !== outName) {
53
+ return;
54
+ }
55
+ if (currentOutName.current === outName) {
56
+ setExists(true);
57
+ }
58
+ };
59
+ const unsub = (0, event_source_1.subscribeToEvent)('watched-file-undeleted', listener);
60
+ return () => {
61
+ unsub();
62
+ };
63
+ }, [outName]);
64
+ return exists;
65
+ };
66
+ exports.useFileExistence = useFileExistence;
@@ -0,0 +1,3 @@
1
+ import type { SVGProps } from 'react';
2
+ import React from 'react';
3
+ export declare const RenderStill: React.FC<SVGProps<SVGSVGElement>>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderStill = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const RenderStill = (props) => {
6
+ return ((0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 512 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M144 288C144 226.1 194.1 176 256 176C317.9 176 368 226.1 368 288C368 349.9 317.9 400 256 400C194.1 400 144 349.9 144 288zM256 224C220.7 224 192 252.7 192 288C192 323.3 220.7 352 256 352C291.3 352 320 323.3 320 288C320 252.7 291.3 224 256 224zM362.9 64.82L373.3 96H448C483.3 96 512 124.7 512 160V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V160C0 124.7 28.65 96 64 96H138.7L149.1 64.82C155.6 45.22 173.9 32 194.6 32H317.4C338.1 32 356.4 45.22 362.9 64.82H362.9zM64 144C55.16 144 48 151.2 48 160V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V160C464 151.2 456.8 144 448 144H338.7L317.4 80H194.6L173.3 144H64z" }) }));
7
+ };
8
+ exports.RenderStill = RenderStill;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const AudioIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const AudioIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M243 32.32C105.5 39.15 0 157.8 0 295.5v120.4C0 451.3 28.63 480 64 480h32c17.62 0 32-14.38 32-32V288c0-17.62-14.38-32-32-32H64c-10.79 0-20.8 2.9-29.72 7.7 14.2-106.8 100.5-193.9 210.4-199.4 120.5-5.965 221.7 83.92 234 199.9-9.08-5.1-19.48-8.2-30.68-8.2h-32c-17.62 0-32 14.38-32 32v160c0 17.62 14.38 32 32 32h32c35.38 0 64-28.75 64-64.13V287.9c0-145.4-122-262.88-269-255.58zM64 288h32v160H64c-17.62 0-32-14.5-32-32.13v-95.75C32 302.5 46.38 288 64 288zm416 127.9c0 17.6-14.4 32.1-32 32.1h-32V288h32c17.62 0 32 14.5 32 32.13v95.77z" }) }));
6
+ exports.AudioIcon = AudioIcon;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const FileIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const FileIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 384 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M0 64C0 28.65 28.65 0 64 0h156.1c12.7 0 25 5.057 34 14.06L369.9 129.9c9 9 14.1 21.3 14.1 34V448c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V64zm352 128H240c-26.5 0-48-21.5-48-48V32H64c-17.67 0-32 14.33-32 32v384c0 17.7 14.33 32 32 32h256c17.7 0 32-14.3 32-32V192zm-4.7-39.4L231.4 36.69c-2-2.07-4.6-3.51-7.4-4.21V144c0 8.8 7.2 16 16 16h111.5c-.7-2.8-2.1-5.4-4.2-7.4z" }) }));
6
+ exports.FileIcon = FileIcon;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const PicIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PicIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const PicIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M324.9 157.8c-11.38-17.38-39.89-17.31-51.23-.063L200.5 268.5l-16.4-22.6c-11.4-16.8-38.2-16-49.7 0l-64.52 89.16c-6.797 9.406-7.75 21.72-2.547 32C72.53 377.5 83.05 384 94.75 384h322.5c11.41 0 21.8-6.281 27.14-16.38a30.922 30.922 0 0 0-1.516-31.56L324.9 157.8zM95.8 352l62.39-87.38 29.91 41.34c3.1 4.24 8.3 7.24 13.3 6.64 5.25-.125 10.12-2.781 13.02-7.188l83.83-129.9L415 352H95.8zM447.1 32h-384C28.65 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zM480 416c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h384c17.64 0 32 14.36 32 32v320zM144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm0-64c8.822 0 15.1 7.178 15.1 16s-6.3 16-15.1 16-16-7.2-16-16 7.2-16 16-16z" }) }));
6
+ exports.PicIcon = PicIcon;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const GearIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GearIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const GearIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M168 255.1c0-47.7 39.4-88 88-88s88 40.3 88 88c0 49.5-39.4 88.9-88 88.9s-88-39.4-88-88.9zm88-56c-30.9 0-56 26-56 56 0 31.8 25.1 56 56 56s56-24.2 56-56c0-30-25.1-56-56-56zM65.67 230.6l-40.33-36.8c-11.12-10.1-13.68-26.6-6.16-39.6l30.24-52.4c7.52-13.02 23.09-19.05 37.42-14.48l51.96 16.58c13.4-10.34 28.2-18.94 44-25.47l11.7-53.27C197.7 10.47 210.7 0 225.8 0h60.4c15.1 0 28.1 10.47 31.3 25.16l11.7 53.27c14.9 6.53 30.6 15.13 44 25.47l52-16.58c14.3-4.57 29.9 1.46 37.4 14.48l30.2 52.4c7.5 13 5 29.5-6.1 39.6l-40.4 36.8c1.1 8.3 1.7 16.8 1.7 24.5 0 9.5-.6 18-1.7 26.3l40.4 36.8c11.1 10.1 13.6 26.6 6.1 39.6l-30.2 52.4c-7.5 13-23.1 19-37.4 14.5l-52-16.6c-13.4 10.3-29.1 18.9-44 25.5l-11.7 53.2c-3.2 14.7-16.2 25.2-31.3 25.2h-60.4c-15.1 0-28.1-10.5-31.3-25.2l-11.7-53.2c-15.8-6.6-30.6-15.2-44-25.5l-51.96 16.6c-14.33 4.5-29.9-1.5-37.42-14.5l-30.24-52.4c-7.52-13-4.96-29.5 6.16-39.6l40.33-36.8c-1.1-8.3-1.67-16.8-1.67-26.3 0-7.7.57-16.2 1.67-24.5zm92.73-101.4-13.3 10.3-67.97-21.7-30.24 52.4 52.69 48-2.19 16.6c-.92 6.9-1.39 14-1.39 20.3 0 8.1.47 15.2 1.39 22.1l2.19 16.6-52.69 48 30.24 52.4 67.97-21.7 13.3 10.3c11.1 8.6 23.5 15.8 36.6 20.3l15.5 7.3 15.3 69.6h60.4l15.3-69.6 14.6-7.3c14-4.5 26.4-11.7 37.5-20.3l13.3-10.3 68 21.7 30.2-52.4-52.7-48 2.2-16.6c.9-6.9 1.4-14 1.4-21.2 0-7.2-.5-14.3-1.4-21.2l-2.2-16.6 52.7-48-30.2-52.4-68 21.7-13.3-10.3c-11.1-8.6-23.5-15.8-37.5-21.2l-14.6-6.4L286.2 32h-60.4l-15.3 69.6L195 108c-13.1 5.4-25.5 12.6-36.6 21.2z" }) }));
6
+ exports.GearIcon = GearIcon;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const GifIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GifIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const GifIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 576 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96c0-35.35-28.7-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h448c17.64 0 32 14.36 32 32v320zm-80-256h-96c-8.8 0-16 7.2-16 16v160c0 8.844 7.156 16 16 16s16-7.156 16-16v-64h56c8.844 0 16-7.156 16-16s-7.156-16-16-16h-56v-48h80c8.8 0 16-7.2 16-16s-7.2-16-16-16zm-160 0c-8.8 0-16 7.2-16 16v160c0 8.844 7.156 16 16 16s16-7.156 16-16V176c0-8.8-7.2-16-16-16zm-64 80h-64c-8.8 0-16 7.2-16 16s7.156 16 16 16h48v33.45c-24.83 19.91-69.13 18.16-91.48-4.203-24.95-24.95-24.95-65.55 0-90.5 25.03-25 64.19-25 89.22 0 6.25 6.25 16.38 6.25 22.62 0s6.25-16.38 0-22.62c-37.69-37.72-96.78-37.72-134.5 0-37.42 37.42-37.42 98.33 0 135.8C127.8 341.8 153.5 352 180.6 352c27.06 0 52.84-10.25 70.7-28.12 3-2.98 4.7-7.08 4.7-11.28V256c0-8.8-7.2-16-16-16z" }) }));
6
+ exports.GifIcon = GifIcon;
@@ -0,0 +1,5 @@
1
+ import type { SVGProps } from 'react';
2
+ import React from 'react';
3
+ export declare const RenderIcon: React.FC<{
4
+ svgProps: SVGProps<SVGSVGElement>;
5
+ }>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const RenderIcon = (props) => {
6
+ return ((0, jsx_runtime_1.jsx)("svg", { ...props.svgProps, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: 'currentColor', d: "M408 143.1C408 166.1 390.1 183.1 368 183.1C345.9 183.1 328 166.1 328 143.1C328 121.9 345.9 103.1 368 103.1C390.1 103.1 408 121.9 408 143.1zM384 312.1V394.2C384 419.7 370.6 443.2 348.7 456.2L260.2 508.6C252.8 513 243.6 513.1 236.1 508.9C228.6 504.6 224 496.6 224 488V373.3C224 350.6 215 328.1 199 312.1C183 296.1 161.4 288 138.7 288H24C15.38 288 7.414 283.4 3.146 275.9C-1.123 268.4-1.042 259.2 3.357 251.8L55.83 163.3C68.79 141.4 92.33 127.1 117.8 127.1H199.9C281.7-3.798 408.8-8.546 483.9 5.272C495.6 7.411 504.6 16.45 506.7 28.07C520.5 103.2 515.8 230.3 384 312.1V312.1zM197.9 253.9C210.8 260.2 222.6 268.7 232.1 279C243.3 289.4 251.8 301.2 258.1 314.1C363.9 284.1 414.8 234.5 439.7 188C464.7 141.3 466.1 90.47 461.7 50.33C421.5 45.02 370.7 47.34 323.1 72.33C277.5 97.16 227.9 148.1 197.9 253.9H197.9zM41.98 345.5C76.37 311.1 132.1 311.1 166.5 345.5C200.9 379.9 200.9 435.6 166.5 470C117 519.5 .4765 511.5 .4765 511.5C.4765 511.5-7.516 394.1 41.98 345.5V345.5zM64.58 447.4C64.58 447.4 103.3 450.1 119.8 433.6C131.2 422.2 131.2 403.6 119.8 392.2C108.3 380.8 89.81 380.8 78.38 392.2C61.92 408.7 64.58 447.4 64.58 447.4z" }) }));
7
+ };
8
+ exports.RenderIcon = RenderIcon;
@@ -0,0 +1,5 @@
1
+ import type { SVGProps } from 'react';
2
+ import React from 'react';
3
+ export declare const FilmIcon: React.FC<SVGProps<SVGSVGElement> & {
4
+ color: string;
5
+ }>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilmIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const FilmIcon = ({ color, ...props }) => {
6
+ return ((0, jsx_runtime_1.jsx)("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M448 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM384 64v176H128V64H384zM32 96c0-17.64 14.36-32 32-32h32v80H32V96zM32 176h64v64H32V176zM32 272h64v64H32V272zM64 448c-17.64 0-32-14.36-32-32v-48h64V448H64zM128 448V272h256V448H128zM480 416c0 17.64-14.36 32-32 32h-32v-80h64V416zM480 336h-64v-64h64V336zM480 240h-64v-64h64V240zM480 144h-64V64h32c17.64 0 32 14.36 32 32V144z" }) }));
7
+ };
8
+ exports.FilmIcon = FilmIcon;
@@ -0,0 +1,2 @@
1
+ export declare const ffmpegCommand: (_root: string, args: string[]) => never;
2
+ export declare const ffprobeCommand: (_root: string, args: string[]) => never;
package/dist/ffmpeg.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ffprobeCommand = exports.ffmpegCommand = void 0;
4
+ const renderer_1 = require("@remotion/renderer");
5
+ const child_process_1 = require("child_process");
6
+ const ffmpegCommand = (_root, args) => {
7
+ const done = (0, child_process_1.spawnSync)(renderer_1.RenderInternals.getExecutablePath('ffmpeg'), args, {
8
+ ...renderer_1.RenderInternals.callFfExtraOptions(),
9
+ stdio: 'inherit',
10
+ });
11
+ process.exit(done.status);
12
+ };
13
+ exports.ffmpegCommand = ffmpegCommand;
14
+ const ffprobeCommand = (_root, args) => {
15
+ const done = (0, child_process_1.spawnSync)(renderer_1.RenderInternals.getExecutablePath('ffprobe'), args, {
16
+ ...renderer_1.RenderInternals.callFfExtraOptions(),
17
+ stdio: 'inherit',
18
+ });
19
+ process.exit(done.status);
20
+ };
21
+ exports.ffprobeCommand = ffprobeCommand;
@@ -0,0 +1,9 @@
1
+ declare type FileChangeType = 'created' | 'deleted' | 'changed';
2
+ export declare const installFileWatcher: ({ file, onChange, }: {
3
+ file: string;
4
+ onChange: (type: FileChangeType) => void;
5
+ }) => {
6
+ exists: boolean;
7
+ unwatch: () => void;
8
+ };
9
+ export {};
@@ -0,0 +1,35 @@
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.installFileWatcher = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const installFileWatcher = ({ file, onChange, }) => {
9
+ const existedAtBeginning = fs_1.default.existsSync(file);
10
+ let existedBefore = existedAtBeginning;
11
+ const listener = () => {
12
+ const existsNow = fs_1.default.existsSync(file);
13
+ if (!existedBefore && existsNow) {
14
+ onChange('created');
15
+ existedBefore = true;
16
+ return;
17
+ }
18
+ if (existedBefore && !existsNow) {
19
+ onChange('deleted');
20
+ existedBefore = false;
21
+ return;
22
+ }
23
+ if (existsNow) {
24
+ onChange('changed');
25
+ }
26
+ };
27
+ fs_1.default.watchFile(file, { interval: 100 }, listener);
28
+ return {
29
+ exists: existedAtBeginning,
30
+ unwatch: () => {
31
+ fs_1.default.unwatchFile(file, listener);
32
+ },
33
+ };
34
+ };
35
+ exports.installFileWatcher = installFileWatcher;
@@ -0,0 +1 @@
1
+ export declare const gcpCommand: (remotionRoot: string, args: string[]) => Promise<never>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcpCommand = void 0;
4
+ const log_1 = require("./log");
5
+ const get_package_manager_1 = require("./preview-server/get-package-manager");
6
+ const update_available_1 = require("./preview-server/update-available");
7
+ const gcpCommand = async (remotionRoot, args) => {
8
+ try {
9
+ const path = require.resolve('@remotion/gcp', {
10
+ paths: [remotionRoot],
11
+ });
12
+ const { GCPInternals } = require(path);
13
+ await GCPInternals.executeCommand(args, remotionRoot);
14
+ process.exit(0);
15
+ }
16
+ catch (err) {
17
+ const manager = (0, get_package_manager_1.getPackageManager)(remotionRoot, undefined);
18
+ const installCommand = manager === 'unknown' ? 'npm i' : manager.installCommand;
19
+ log_1.Log.error(err);
20
+ log_1.Log.error('Remotion GCP is not installed.');
21
+ log_1.Log.info('');
22
+ log_1.Log.info('You can install it using:');
23
+ log_1.Log.info(`${installCommand} @remotion/gcp@${(0, update_available_1.getRemotionVersion)()}`);
24
+ process.exit(1);
25
+ }
26
+ };
27
+ exports.gcpCommand = gcpCommand;
@@ -0,0 +1,5 @@
1
+ export declare const getDefaultOutLocation: ({ compositionName, defaultExtension, type, }: {
2
+ compositionName: string;
3
+ defaultExtension: string;
4
+ type: 'asset' | 'sequence';
5
+ }) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultOutLocation = void 0;
4
+ const getDefaultOutLocation = ({ compositionName, defaultExtension, type, }) => {
5
+ if (type === 'sequence') {
6
+ return `out/${compositionName}`;
7
+ }
8
+ return `out/${compositionName}.${defaultExtension}`;
9
+ };
10
+ exports.getDefaultOutLocation = getDefaultOutLocation;
@@ -0,0 +1,4 @@
1
+ import type { ApiHandler, ApiRoutes } from './api-types';
2
+ export declare const allApiRoutes: {
3
+ [key in keyof ApiRoutes]: ApiHandler<ApiRoutes[key]['Request'], ApiRoutes[key]['Response']>;
4
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allApiRoutes = void 0;
4
+ const add_render_1 = require("./routes/add-render");
5
+ const cancel_render_1 = require("./routes/cancel-render");
6
+ const open_in_file_explorer_1 = require("./routes/open-in-file-explorer");
7
+ const remove_render_1 = require("./routes/remove-render");
8
+ const subscribe_to_file_existence_1 = require("./routes/subscribe-to-file-existence");
9
+ const unsubscribe_from_file_existence_1 = require("./routes/unsubscribe-from-file-existence");
10
+ exports.allApiRoutes = {
11
+ '/api/cancel': cancel_render_1.handleCancelRender,
12
+ '/api/render': add_render_1.handleAddRender,
13
+ '/api/unsubscribe-from-file-existence': unsubscribe_from_file_existence_1.unsubscribeFromFileExistence,
14
+ '/api/subscribe-to-file-existence': subscribe_to_file_existence_1.subscribeToFileExistence,
15
+ '/api/remove-render': remove_render_1.handleRemoveRender,
16
+ '/api/open-in-file-explorer': open_in_file_explorer_1.handleOpenInFileExplorer,
17
+ };
@@ -0,0 +1,27 @@
1
+ /// <reference types="node" />
2
+ import type { IncomingMessage, ServerResponse } from 'http';
3
+ import type { AddRenderRequest, CancelRenderRequest, CancelRenderResponse, OpenInFileExplorerRequest, RemoveRenderRequest, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UnsubscribeFromFileExistenceRequest } from './render-queue/job';
4
+ export declare type ApiHandler<ReqData, ResData> = (params: {
5
+ input: ReqData;
6
+ entryPoint: string;
7
+ remotionRoot: string;
8
+ request: IncomingMessage;
9
+ response: ServerResponse;
10
+ }) => Promise<ResData>;
11
+ export declare type ApiRoute<ReqData, ResData> = {
12
+ handler: ApiHandler<ReqData, ResData>;
13
+ endpoint: string;
14
+ };
15
+ declare type ReqAndRes<A, B> = {
16
+ Request: A;
17
+ Response: B;
18
+ };
19
+ export declare type ApiRoutes = {
20
+ '/api/cancel': ReqAndRes<CancelRenderRequest, CancelRenderResponse>;
21
+ '/api/render': ReqAndRes<AddRenderRequest, undefined>;
22
+ '/api/unsubscribe-from-file-existence': ReqAndRes<UnsubscribeFromFileExistenceRequest, undefined>;
23
+ '/api/subscribe-to-file-existence': ReqAndRes<SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse>;
24
+ '/api/remove-render': ReqAndRes<RemoveRenderRequest, undefined>;
25
+ '/api/open-in-file-explorer': ReqAndRes<OpenInFileExplorerRequest, void>;
26
+ };
27
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ export declare const subscribeToFileExistenceWatchers: ({ file: relativeFile, remotionRoot, clientId, }: {
2
+ file: string;
3
+ remotionRoot: string;
4
+ clientId: string;
5
+ }) => {
6
+ exists: boolean;
7
+ };
8
+ export declare const unsubscribeFromFileExistenceWatchers: ({ file, remotionRoot, clientId, }: {
9
+ file: string;
10
+ remotionRoot: string;
11
+ clientId: string;
12
+ }) => void;
13
+ export declare const unsubscribeClientFileExistenceWatchers: (clientId: string) => void;
@@ -0,0 +1,62 @@
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.unsubscribeClientFileExistenceWatchers = exports.unsubscribeFromFileExistenceWatchers = exports.subscribeToFileExistenceWatchers = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const file_watcher_1 = require("../file-watcher");
9
+ const live_events_1 = require("./live-events");
10
+ const fileExistenceWatchers = {};
11
+ const subscribeToFileExistenceWatchers = ({ file: relativeFile, remotionRoot, clientId, }) => {
12
+ const file = path_1.default.resolve(remotionRoot, relativeFile);
13
+ const { unwatch, exists } = (0, file_watcher_1.installFileWatcher)({
14
+ file,
15
+ onChange: (type) => {
16
+ if (type === 'created') {
17
+ (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
18
+ listener.sendEventToClient({
19
+ type: 'watched-file-undeleted',
20
+ // Must be relative file because that's what the client expects
21
+ file: relativeFile,
22
+ });
23
+ });
24
+ }
25
+ if (type === 'deleted') {
26
+ (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
27
+ listener.sendEventToClient({
28
+ type: 'watched-file-deleted',
29
+ // Must be relative file because that's what the client expects
30
+ file: relativeFile,
31
+ });
32
+ });
33
+ }
34
+ },
35
+ });
36
+ if (!fileExistenceWatchers[clientId]) {
37
+ fileExistenceWatchers[clientId] = {};
38
+ }
39
+ fileExistenceWatchers[clientId][file] = unwatch;
40
+ return { exists };
41
+ };
42
+ exports.subscribeToFileExistenceWatchers = subscribeToFileExistenceWatchers;
43
+ const unsubscribeFromFileExistenceWatchers = ({ file, remotionRoot, clientId, }) => {
44
+ var _a, _b;
45
+ const actualPath = path_1.default.resolve(remotionRoot, file);
46
+ if (!fileExistenceWatchers[clientId]) {
47
+ return;
48
+ }
49
+ (_b = (_a = fileExistenceWatchers[clientId])[actualPath]) === null || _b === void 0 ? void 0 : _b.call(_a);
50
+ delete fileExistenceWatchers[clientId][actualPath];
51
+ };
52
+ exports.unsubscribeFromFileExistenceWatchers = unsubscribeFromFileExistenceWatchers;
53
+ const unsubscribeClientFileExistenceWatchers = (clientId) => {
54
+ if (!fileExistenceWatchers[clientId]) {
55
+ return;
56
+ }
57
+ Object.values(fileExistenceWatchers[clientId]).forEach((unwatch) => {
58
+ unwatch();
59
+ });
60
+ delete fileExistenceWatchers[clientId];
61
+ };
62
+ exports.unsubscribeClientFileExistenceWatchers = unsubscribeClientFileExistenceWatchers;
@@ -0,0 +1,9 @@
1
+ import type { IncomingMessage, ServerResponse } from 'http';
2
+ import type { ApiHandler } from './api-types';
3
+ export declare const handleRequest: <Req, Res>({ remotionRoot, request, response, entryPoint, handler, }: {
4
+ remotionRoot: string;
5
+ request: IncomingMessage;
6
+ response: ServerResponse;
7
+ entryPoint: string;
8
+ handler: ApiHandler<Req, Res>;
9
+ }) => Promise<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleRequest = void 0;
4
+ const parse_body_1 = require("./parse-body");
5
+ const handleRequest = async ({ remotionRoot, request, response, entryPoint, handler, }) => {
6
+ if (request.method === 'OPTIONS') {
7
+ response.statusCode = 200;
8
+ response.end();
9
+ return;
10
+ }
11
+ response.setHeader('content-type', 'application/json');
12
+ response.writeHead(200);
13
+ try {
14
+ const body = (await (0, parse_body_1.parseRequestBody)(request));
15
+ const outputData = await handler({
16
+ entryPoint,
17
+ remotionRoot,
18
+ request,
19
+ response,
20
+ input: body,
21
+ });
22
+ response.end(JSON.stringify({
23
+ success: true,
24
+ data: outputData,
25
+ }));
26
+ }
27
+ catch (err) {
28
+ response.end(JSON.stringify({
29
+ success: false,
30
+ error: err.message,
31
+ }));
32
+ }
33
+ };
34
+ exports.handleRequest = handleRequest;
@@ -0,0 +1,2 @@
1
+ import type { IncomingMessage } from 'http';
2
+ export declare const parseRequestBody: (req: IncomingMessage) => Promise<unknown>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRequestBody = void 0;
4
+ const parseRequestBody = async (req) => {
5
+ const body = await new Promise((_resolve) => {
6
+ let data = '';
7
+ req.on('data', (chunk) => {
8
+ data += chunk;
9
+ });
10
+ req.on('end', () => {
11
+ _resolve(data.toString());
12
+ });
13
+ });
14
+ return JSON.parse(body);
15
+ };
16
+ exports.parseRequestBody = parseRequestBody;