@remotion/renderer 4.0.210 → 4.0.212

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.
@@ -14,11 +14,12 @@ type RedirectInfo = {
14
14
  export declare class NetworkEventManager {
15
15
  #private;
16
16
  forget(networkRequestId: NetworkRequestId): void;
17
- responseExtraInfo(networkRequestId: NetworkRequestId): ResponseReceivedExtraInfoEvent[];
17
+ queueFailedLoadInfo(networkRequestId: NetworkRequestId, event: LoadingFailedEvent): void;
18
+ getFailedLoadInfo(networkRequestId: NetworkRequestId): LoadingFailedEvent | undefined;
19
+ getResponseExtraInfo(networkRequestId: NetworkRequestId): ResponseReceivedExtraInfoEvent[];
18
20
  private queuedRedirectInfo;
19
21
  queueRedirectInfo(fetchRequestId: FetchRequestId, redirectInfo: RedirectInfo): void;
20
22
  takeQueuedRedirectInfo(fetchRequestId: FetchRequestId): RedirectInfo | undefined;
21
- numRequestsInProgress(): number;
22
23
  storeRequestWillBeSent(networkRequestId: NetworkRequestId, event: RequestWillBeSentEvent): void;
23
24
  getRequestWillBeSent(networkRequestId: NetworkRequestId): RequestWillBeSentEvent | undefined;
24
25
  forgetRequestWillBeSent(networkRequestId: NetworkRequestId): void;
@@ -4,7 +4,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
5
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
6
  };
7
- var _NetworkEventManager_requestWillBeSentMap, _NetworkEventManager_requestPausedMap, _NetworkEventManager_httpRequestsMap, _NetworkEventManager_responseReceivedExtraInfoMap, _NetworkEventManager_queuedRedirectInfoMap, _NetworkEventManager_queuedEventGroupMap;
7
+ var _NetworkEventManager_requestWillBeSentMap, _NetworkEventManager_requestPausedMap, _NetworkEventManager_httpRequestsMap, _NetworkEventManager_responseReceivedExtraInfoMap, _NetworkEventManager_queuedRedirectInfoMap, _NetworkEventManager_queuedEventGroupMap, _NetworkEventManager_failedLoadInfoMap;
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NetworkEventManager = void 0;
10
10
  class NetworkEventManager {
@@ -15,6 +15,7 @@ class NetworkEventManager {
15
15
  _NetworkEventManager_responseReceivedExtraInfoMap.set(this, new Map());
16
16
  _NetworkEventManager_queuedRedirectInfoMap.set(this, new Map());
17
17
  _NetworkEventManager_queuedEventGroupMap.set(this, new Map());
18
+ _NetworkEventManager_failedLoadInfoMap.set(this, new Map());
18
19
  }
19
20
  forget(networkRequestId) {
20
21
  __classPrivateFieldGet(this, _NetworkEventManager_requestWillBeSentMap, "f").delete(networkRequestId);
@@ -22,8 +23,16 @@ class NetworkEventManager {
22
23
  __classPrivateFieldGet(this, _NetworkEventManager_queuedEventGroupMap, "f").delete(networkRequestId);
23
24
  __classPrivateFieldGet(this, _NetworkEventManager_queuedRedirectInfoMap, "f").delete(networkRequestId);
24
25
  __classPrivateFieldGet(this, _NetworkEventManager_responseReceivedExtraInfoMap, "f").delete(networkRequestId);
26
+ __classPrivateFieldGet(this, _NetworkEventManager_failedLoadInfoMap, "f").delete(networkRequestId);
25
27
  }
26
- responseExtraInfo(networkRequestId) {
28
+ queueFailedLoadInfo(networkRequestId, event) {
29
+ __classPrivateFieldGet(this, _NetworkEventManager_failedLoadInfoMap, "f").set(networkRequestId, { event });
30
+ }
31
+ getFailedLoadInfo(networkRequestId) {
32
+ var _a;
33
+ return (_a = __classPrivateFieldGet(this, _NetworkEventManager_failedLoadInfoMap, "f").get(networkRequestId)) === null || _a === void 0 ? void 0 : _a.event;
34
+ }
35
+ getResponseExtraInfo(networkRequestId) {
27
36
  if (!__classPrivateFieldGet(this, _NetworkEventManager_responseReceivedExtraInfoMap, "f").has(networkRequestId)) {
28
37
  __classPrivateFieldGet(this, _NetworkEventManager_responseReceivedExtraInfoMap, "f").set(networkRequestId, []);
29
38
  }
@@ -41,11 +50,6 @@ class NetworkEventManager {
41
50
  takeQueuedRedirectInfo(fetchRequestId) {
42
51
  return this.queuedRedirectInfo(fetchRequestId).shift();
43
52
  }
44
- numRequestsInProgress() {
45
- return [...__classPrivateFieldGet(this, _NetworkEventManager_httpRequestsMap, "f")].filter(([, request]) => {
46
- return !request.response();
47
- }).length;
48
- }
49
53
  storeRequestWillBeSent(networkRequestId, event) {
50
54
  __classPrivateFieldGet(this, _NetworkEventManager_requestWillBeSentMap, "f").set(networkRequestId, event);
51
55
  }
@@ -78,4 +82,4 @@ class NetworkEventManager {
78
82
  }
79
83
  }
80
84
  exports.NetworkEventManager = NetworkEventManager;
81
- _NetworkEventManager_requestWillBeSentMap = new WeakMap(), _NetworkEventManager_requestPausedMap = new WeakMap(), _NetworkEventManager_httpRequestsMap = new WeakMap(), _NetworkEventManager_responseReceivedExtraInfoMap = new WeakMap(), _NetworkEventManager_queuedRedirectInfoMap = new WeakMap(), _NetworkEventManager_queuedEventGroupMap = new WeakMap();
85
+ _NetworkEventManager_requestWillBeSentMap = new WeakMap(), _NetworkEventManager_requestPausedMap = new WeakMap(), _NetworkEventManager_httpRequestsMap = new WeakMap(), _NetworkEventManager_responseReceivedExtraInfoMap = new WeakMap(), _NetworkEventManager_queuedRedirectInfoMap = new WeakMap(), _NetworkEventManager_queuedEventGroupMap = new WeakMap(), _NetworkEventManager_failedLoadInfoMap = new WeakMap();
@@ -33,6 +33,5 @@ export declare class NetworkManager extends EventEmitter {
33
33
  #private;
34
34
  constructor(client: CDPSession, frameManager: FrameManager, indent: boolean, logLevel: LogLevel);
35
35
  initialize(): Promise<void>;
36
- numRequestsInProgress(): number;
37
36
  }
38
37
  export {};
@@ -28,8 +28,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
28
28
  var _NetworkManager_instances, _NetworkManager_client, _NetworkManager_frameManager, _NetworkManager_networkEventManager, _NetworkManager_indent, _NetworkManager_logLevel, _NetworkManager_onRequestWillBeSent, _NetworkManager_onRequestPaused, _NetworkManager_patchRequestEventHeaders, _NetworkManager_onRequest, _NetworkManager_onRequestServedFromCache, _NetworkManager_handleRequestRedirect, _NetworkManager_emitResponseEvent, _NetworkManager_onResponseReceived, _NetworkManager_onResponseReceivedExtraInfo, _NetworkManager_forgetRequest, _NetworkManager_onLoadingFinished, _NetworkManager_emitLoadingFinished, _NetworkManager_onLoadingFailed, _NetworkManager_emitLoadingFailed;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.NetworkManager = exports.NetworkManagerEmittedEvents = void 0;
31
- const logger_1 = require("../logger");
32
31
  const EventEmitter_1 = require("./EventEmitter");
32
+ const handle_failed_resource_1 = require("./handle-failed-resource");
33
33
  const HTTPRequest_1 = require("./HTTPRequest");
34
34
  const HTTPResponse_1 = require("./HTTPResponse");
35
35
  const NetworkEventManager_1 = require("./NetworkEventManager");
@@ -60,9 +60,6 @@ class NetworkManager extends EventEmitter_1.EventEmitter {
60
60
  async initialize() {
61
61
  await __classPrivateFieldGet(this, _NetworkManager_client, "f").send('Network.enable');
62
62
  }
63
- numRequestsInProgress() {
64
- return __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").numRequestsInProgress();
65
- }
66
63
  }
67
64
  exports.NetworkManager = NetworkManager;
68
65
  _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakMap(), _NetworkManager_networkEventManager = new WeakMap(), _NetworkManager_indent = new WeakMap(), _NetworkManager_logLevel = new WeakMap(), _NetworkManager_instances = new WeakSet(), _NetworkManager_onRequestWillBeSent = function _NetworkManager_onRequestWillBeSent(event) {
@@ -108,7 +105,7 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
108
105
  let redirectResponseExtraInfo = null;
109
106
  if (event.redirectHasExtraInfo) {
110
107
  redirectResponseExtraInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f")
111
- .responseExtraInfo(event.requestId)
108
+ .getResponseExtraInfo(event.requestId)
112
109
  .shift();
113
110
  if (!redirectResponseExtraInfo) {
114
111
  __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").queueRedirectInfo(event.requestId, {
@@ -146,7 +143,6 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
146
143
  if (!request) {
147
144
  return;
148
145
  }
149
- __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").responseExtraInfo(responseReceived.requestId);
150
146
  const response = new HTTPResponse_1.HTTPResponse(responseReceived.response, extraInfo);
151
147
  request._response = response;
152
148
  }, _NetworkManager_onResponseReceived = function _NetworkManager_onResponseReceived(event) {
@@ -154,7 +150,7 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
154
150
  let extraInfo = null;
155
151
  if (request && !request._fromMemoryCache && event.hasExtraInfo) {
156
152
  extraInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f")
157
- .responseExtraInfo(event.requestId)
153
+ .getResponseExtraInfo(event.requestId)
158
154
  .shift();
159
155
  if (!extraInfo) {
160
156
  // Wait until we get the corresponding ExtraInfo event.
@@ -171,7 +167,9 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
171
167
  // request.
172
168
  const redirectInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").takeQueuedRedirectInfo(event.requestId);
173
169
  if (redirectInfo) {
174
- __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").responseExtraInfo(event.requestId).push(event);
170
+ __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f")
171
+ .getResponseExtraInfo(event.requestId)
172
+ .push(event);
175
173
  __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_onRequest).call(this, redirectInfo.event, redirectInfo.fetchRequestId);
176
174
  return;
177
175
  }
@@ -190,7 +188,7 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
190
188
  return;
191
189
  }
192
190
  // Wait until we get another event that can use this ExtraInfo event.
193
- __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").responseExtraInfo(event.requestId).push(event);
191
+ __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getResponseExtraInfo(event.requestId).push(event);
194
192
  }, _NetworkManager_forgetRequest = function _NetworkManager_forgetRequest(request, events) {
195
193
  const requestId = request._requestId;
196
194
  __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").forgetRequest(requestId);
@@ -226,22 +224,23 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
226
224
  __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_emitLoadingFailed).call(this, event);
227
225
  }
228
226
  }, _NetworkManager_emitLoadingFailed = function _NetworkManager_emitLoadingFailed(event) {
229
- var _a;
230
227
  const request = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getRequest(event.requestId);
231
228
  // For certain requestIds we never receive requestWillBeSent event.
232
229
  // @see https://crbug.com/750469
233
230
  if (!request) {
234
231
  return;
235
232
  }
236
- if (!event.canceled) {
237
- logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, `Browser failed to load ${request._url} (${event.type}): ${event.errorText}`);
238
- if (event.errorText === 'net::ERR_FAILED' &&
239
- event.type === 'Fetch' &&
240
- ((_a = request._url) === null || _a === void 0 ? void 0 : _a.includes('/proxy'))) {
241
- logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
242
- logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
243
- logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'Consider increasing the disk size of your Lambda function.');
244
- }
233
+ if (event.canceled) {
234
+ __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
235
+ return;
245
236
  }
237
+ const extraInfo = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getResponseExtraInfo(event.requestId);
238
+ (0, handle_failed_resource_1.handleFailedResource)({
239
+ extraInfo,
240
+ event,
241
+ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"),
242
+ logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f"),
243
+ request,
244
+ });
246
245
  __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
247
246
  };
@@ -0,0 +1,10 @@
1
+ import type { LogLevel } from '../log-level';
2
+ import type { HTTPRequest } from './HTTPRequest';
3
+ import type { LoadingFailedEvent, ResponseReceivedExtraInfoEvent } from './devtools-types';
4
+ export declare const handleFailedResource: ({ extraInfo, logLevel, indent, request, event, }: {
5
+ extraInfo: ResponseReceivedExtraInfoEvent[];
6
+ logLevel: LogLevel;
7
+ indent: boolean;
8
+ request: HTTPRequest;
9
+ event: LoadingFailedEvent;
10
+ }) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleFailedResource = void 0;
4
+ const logger_1 = require("../logger");
5
+ const handleFailedResource = ({ extraInfo, logLevel, indent, request, event, }) => {
6
+ var _a, _b;
7
+ const firstExtraInfo = (_a = extraInfo[0]) !== null && _a !== void 0 ? _a : null;
8
+ logger_1.Log.warn({ indent, logLevel }, `Browser failed to load ${request._url} (${event.type}): ${event.errorText}`);
9
+ if (firstExtraInfo) {
10
+ logger_1.Log.warn({ indent, logLevel }, `HTTP status code: ${firstExtraInfo.statusCode}, headers:`);
11
+ logger_1.Log.warn({ indent, logLevel }, JSON.stringify(firstExtraInfo.headers, null, 2));
12
+ }
13
+ if (event.errorText === 'net::ERR_FAILED' &&
14
+ event.type === 'Fetch' &&
15
+ ((_b = request._url) === null || _b === void 0 ? void 0 : _b.includes('/proxy'))) {
16
+ logger_1.Log.warn({ indent, logLevel }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
17
+ logger_1.Log.warn({ indent, logLevel }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
18
+ logger_1.Log.warn({ indent, logLevel }, 'Consider increasing the disk size of your Lambda function.');
19
+ }
20
+ };
21
+ exports.handleFailedResource = handleFailedResource;
package/dist/client.d.ts CHANGED
@@ -10,10 +10,10 @@ export declare const BrowserSafeApis: {
10
10
  x264PresetOptions: readonly ["ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", "placebo"];
11
11
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
12
12
  validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
13
- validPixelFormatsForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
13
+ validPixelFormatsForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
14
14
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
15
15
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
16
- DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
16
+ DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
17
17
  DEFAULT_TIMEOUT: number;
18
18
  DEFAULT_JPEG_QUALITY: number;
19
19
  DEFAULT_COLOR_SPACE: "default";
@@ -467,19 +467,19 @@ export declare const BrowserSafeApis: {
467
467
  cliFlag: "gl";
468
468
  docLink: string;
469
469
  name: string;
470
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
470
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
471
471
  ssrName: string;
472
472
  description: () => import("react/jsx-runtime").JSX.Element;
473
473
  getValue: ({ commandLine }: {
474
474
  commandLine: Record<string, unknown>;
475
475
  }) => {
476
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
476
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
477
477
  source: string;
478
478
  } | {
479
479
  value: null;
480
480
  source: string;
481
481
  };
482
- setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
482
+ setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
483
483
  };
484
484
  enableLambdaInsights: {
485
485
  name: string;
@@ -4,9 +4,6 @@ export declare const createFfmpegComplexFilter: ({ filters, downloadMap, }: {
4
4
  filters: PreprocessedAudioTrack[];
5
5
  downloadMap: DownloadMap;
6
6
  }) => Promise<{
7
- complexFilterFlag: [
8
- string,
9
- string
10
- ] | null;
7
+ complexFilterFlag: [string, string] | null;
11
8
  cleanup: () => void;
12
9
  }>;
package/dist/index.d.ts CHANGED
@@ -141,10 +141,10 @@ export declare const RenderInternals: {
141
141
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
142
142
  DEFAULT_BROWSER: "chrome";
143
143
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
144
- DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
145
- validateOpenGlRenderer: (option: unknown) => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
144
+ DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
145
+ validateOpenGlRenderer: (option: unknown) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
146
146
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
147
- DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
147
+ DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
148
148
  validateJpegQuality: (q: unknown) => void;
149
149
  DEFAULT_TIMEOUT: number;
150
150
  DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
@@ -338,7 +338,7 @@ export declare const RenderInternals: {
338
338
  makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif")[]>;
339
339
  defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">;
340
340
  getExecutablePath: ({ indent, logLevel, type, binariesDirectory, }: {
341
- type: "compositor" | "ffmpeg" | "ffprobe";
341
+ type: "ffmpeg" | "ffprobe" | "compositor";
342
342
  indent: boolean;
343
343
  logLevel: "verbose" | "info" | "warn" | "error";
344
344
  binariesDirectory: string | null;
@@ -767,7 +767,7 @@ export declare const RenderInternals: {
767
767
  scale: number;
768
768
  port: number | null;
769
769
  cancelSignal: import("./make-cancel-signal").CancelSignal | undefined;
770
- composition: Omit<import("remotion").VideoConfig, "props" | "defaultProps">;
770
+ composition: Omit<import("remotion").VideoConfig, "defaultProps" | "props">;
771
771
  indent: boolean;
772
772
  server: import("./prepare-server").RemotionServer | undefined;
773
773
  muted: boolean;
@@ -1,19 +1,19 @@
1
1
  export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
3
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
4
- export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
4
+ export declare const getChromiumOpenGlRenderer: () => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
5
5
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
6
6
  export declare const glOption: {
7
7
  cliFlag: "gl";
8
8
  docLink: string;
9
9
  name: string;
10
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
10
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
11
11
  ssrName: string;
12
12
  description: () => import("react/jsx-runtime").JSX.Element;
13
13
  getValue: ({ commandLine }: {
14
14
  commandLine: Record<string, unknown>;
15
15
  }) => {
16
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
16
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
17
17
  source: string;
18
18
  } | {
19
19
  value: null;
@@ -245,19 +245,19 @@ export declare const allOptions: {
245
245
  cliFlag: "gl";
246
246
  docLink: string;
247
247
  name: string;
248
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
248
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
249
249
  ssrName: string;
250
250
  description: () => import("react/jsx-runtime").JSX.Element;
251
251
  getValue: ({ commandLine }: {
252
252
  commandLine: Record<string, unknown>;
253
253
  }) => {
254
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
254
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
255
255
  source: string;
256
256
  } | {
257
257
  value: null;
258
258
  source: string;
259
259
  };
260
- setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
260
+ setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
261
261
  };
262
262
  enableLambdaInsights: {
263
263
  name: string;
@@ -13,7 +13,8 @@ exports.mutedOption = {
13
13
  docLink: 'https://www.remotion.dev/docs/using-audio/#muted-property',
14
14
  type: false,
15
15
  getValue: ({ commandLine }) => {
16
- if (commandLine[cliFlag] !== undefined) {
16
+ // we set in minimist `muted` default as null
17
+ if (commandLine[cliFlag] !== null) {
17
18
  return {
18
19
  source: 'cli',
19
20
  value: commandLine[cliFlag],
@@ -2,5 +2,5 @@ import type { Codec } from './codec';
2
2
  export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
3
3
  export type PixelFormat = (typeof validPixelFormats)[number];
4
4
  export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
5
- export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
5
+ export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
6
6
  export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  /// <reference types="bun-types" />
3
2
  /// <reference types="node" />
4
3
  /// <reference types="node" />
@@ -7,6 +6,7 @@
7
6
  /// <reference types="node" />
8
7
  /// <reference types="bun-types" />
9
8
  /// <reference types="bun-types" />
9
+ /// <reference types="node" />
10
10
  import type { NetworkInterfaceInfo } from 'os';
11
11
  import os from 'os';
12
12
  type PortConfig = {
@@ -14,7 +14,7 @@ type PortConfig = {
14
14
  hostsToTry: string[];
15
15
  };
16
16
  export declare const getPortConfig: (preferIpv4: boolean) => PortConfig;
17
- export declare const getHostToBind: (flattened: os.NetworkInterfaceInfo[], preferIpv4: boolean) => "::" | "0.0.0.0";
17
+ export declare const getHostToBind: (flattened: os.NetworkInterfaceInfo[], preferIpv4: boolean) => "0.0.0.0" | "::";
18
18
  export declare const getHostsToTry: (flattened: os.NetworkInterfaceInfo[]) => string[];
19
19
  export declare const flattenNetworkInterfaces: (networkInterfaces: NodeJS.Dict<NetworkInterfaceInfo[]>) => NetworkInterfaceInfo[];
20
20
  export declare const isIpV6Supported: (flattened: os.NetworkInterfaceInfo[]) => boolean;
@@ -201,6 +201,7 @@ const serveHandler = async (request, response, config) => {
201
201
  `bytes ${streamOpts.start}-${streamOpts.end}/${stats.size}`;
202
202
  headers['Content-Length'] = String(streamOpts.end - streamOpts.start + 1);
203
203
  }
204
+ headers['Cache-Control'] = 'no-cache, no-store, must-revalidate';
204
205
  response.writeHead(response.statusCode || 200, headers);
205
206
  stream.pipe(response);
206
207
  };
@@ -3161,9 +3161,9 @@ var defaultBrowserDownloadProgress = ({
3161
3161
  }) => () => {
3162
3162
  Log.info({ indent, logLevel }, "Downloading Chrome Headless Shell https://www.remotion.dev/docs/miscellaneous/chrome-headless-shell");
3163
3163
  Log.info({ indent, logLevel }, `Customize this behavior by adding a onBrowserDownload function to ${api}.`);
3164
+ let lastProgress = 0;
3164
3165
  return {
3165
3166
  onProgress: (progress) => {
3166
- let lastProgress = 0;
3167
3167
  if (progress.downloadedBytes > lastProgress + 1e7) {
3168
3168
  lastProgress = progress.downloadedBytes;
3169
3169
  Log.info({ indent, logLevel }, `Downloading Chrome Headless Shell - ${toMegabytes(progress.downloadedBytes)}/${toMegabytes(progress.totalSizeInBytes)}`);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.210",
6
+ "version": "4.0.212",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.17.1",
21
- "remotion": "4.0.210",
22
- "@remotion/streaming": "4.0.210"
21
+ "remotion": "4.0.212",
22
+ "@remotion/streaming": "4.0.212"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0",
@@ -34,13 +34,13 @@
34
34
  "@types/ws": "8.5.10"
35
35
  },
36
36
  "optionalDependencies": {
37
- "@remotion/compositor-darwin-arm64": "4.0.210",
38
- "@remotion/compositor-darwin-x64": "4.0.210",
39
- "@remotion/compositor-linux-arm64-gnu": "4.0.210",
40
- "@remotion/compositor-linux-arm64-musl": "4.0.210",
41
- "@remotion/compositor-win32-x64-msvc": "4.0.210",
42
- "@remotion/compositor-linux-x64-musl": "4.0.210",
43
- "@remotion/compositor-linux-x64-gnu": "4.0.210"
37
+ "@remotion/compositor-darwin-x64": "4.0.212",
38
+ "@remotion/compositor-darwin-arm64": "4.0.212",
39
+ "@remotion/compositor-linux-arm64-gnu": "4.0.212",
40
+ "@remotion/compositor-linux-arm64-musl": "4.0.212",
41
+ "@remotion/compositor-linux-x64-musl": "4.0.212",
42
+ "@remotion/compositor-linux-x64-gnu": "4.0.212",
43
+ "@remotion/compositor-win32-x64-msvc": "4.0.212"
44
44
  },
45
45
  "keywords": [
46
46
  "remotion",
@@ -1,11 +0,0 @@
1
- export declare const streamingKey = "remotion_buffer:";
2
- export declare const makeStreamer: (onMessage: (statusType: 'success' | 'error', nonce: string, data: Uint8Array) => void) => {
3
- onData: (data: Uint8Array) => void;
4
- getOutputBuffer: () => Uint8Array;
5
- clear: () => void;
6
- };
7
- export declare const makeStreamPayloadMessage: ({ status, body, nonce, }: {
8
- nonce: string;
9
- status: 0 | 1;
10
- body: Uint8Array;
11
- }) => Uint8Array;
package/dist/streaming.js DELETED
@@ -1,140 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeStreamPayloadMessage = exports.makeStreamer = exports.streamingKey = void 0;
4
- exports.streamingKey = 'remotion_buffer:';
5
- const magicWordStr = 'remotion_buffer:';
6
- const makeStreamer = (onMessage) => {
7
- const separator = new Uint8Array(magicWordStr.length);
8
- for (let i = 0; i < magicWordStr.length; i++) {
9
- separator[i] = magicWordStr.charCodeAt(i);
10
- }
11
- let unprocessedBuffers = [];
12
- let outputBuffer = new Uint8Array(0);
13
- let missingData = null;
14
- const processInput = () => {
15
- let separatorIndex = outputBuffer.indexOf(separator[0]); // Start checking for the first byte of the separator
16
- if (separatorIndex === -1 ||
17
- outputBuffer
18
- .subarray(separatorIndex, separatorIndex + separator.length)
19
- .toString() !== separator.toString()) {
20
- return;
21
- }
22
- separatorIndex += separator.length;
23
- let nonceString = '';
24
- let lengthString = '';
25
- let statusString = '';
26
- // eslint-disable-next-line no-constant-condition
27
- while (true) {
28
- if (separatorIndex > outputBuffer.length - 1) {
29
- return;
30
- }
31
- const nextDigit = outputBuffer[separatorIndex];
32
- separatorIndex++;
33
- if (nextDigit === 0x3a) {
34
- break;
35
- }
36
- nonceString += String.fromCharCode(nextDigit);
37
- }
38
- // eslint-disable-next-line no-constant-condition
39
- while (true) {
40
- if (separatorIndex > outputBuffer.length - 1) {
41
- return;
42
- }
43
- const nextDigit = outputBuffer[separatorIndex];
44
- separatorIndex++;
45
- if (nextDigit === 0x3a) {
46
- break;
47
- }
48
- lengthString += String.fromCharCode(nextDigit);
49
- }
50
- // eslint-disable-next-line no-constant-condition
51
- while (true) {
52
- if (separatorIndex > outputBuffer.length - 1) {
53
- return;
54
- }
55
- const nextDigit = outputBuffer[separatorIndex];
56
- if (nextDigit === 0x3a) {
57
- break;
58
- }
59
- separatorIndex++;
60
- statusString += String.fromCharCode(nextDigit);
61
- }
62
- const length = Number(lengthString);
63
- const status = Number(statusString);
64
- const dataLength = outputBuffer.length - separatorIndex - 1;
65
- if (dataLength < length) {
66
- missingData = {
67
- dataMissing: length - dataLength,
68
- };
69
- return;
70
- }
71
- const data = outputBuffer.subarray(separatorIndex + 1, separatorIndex + 1 + Number(lengthString));
72
- onMessage(status === 1 ? 'error' : 'success', nonceString, data);
73
- missingData = null;
74
- outputBuffer = outputBuffer.subarray(separatorIndex + Number(lengthString) + 1);
75
- processInput();
76
- };
77
- const onData = (data) => {
78
- unprocessedBuffers.push(data);
79
- const separatorIndex = data.indexOf(separator[0]);
80
- if (separatorIndex === -1) {
81
- if (missingData) {
82
- missingData.dataMissing -= data.length;
83
- }
84
- if (!missingData || missingData.dataMissing > 0) {
85
- return;
86
- }
87
- }
88
- unprocessedBuffers.unshift(outputBuffer);
89
- outputBuffer = new Uint8Array(unprocessedBuffers.reduce((acc, val) => acc + val.length, 0));
90
- let offset = 0;
91
- for (const buf of unprocessedBuffers) {
92
- outputBuffer.set(buf, offset);
93
- offset += buf.length;
94
- }
95
- unprocessedBuffers = [];
96
- processInput();
97
- };
98
- return {
99
- onData,
100
- getOutputBuffer: () => outputBuffer,
101
- clear: () => {
102
- unprocessedBuffers = [];
103
- outputBuffer = new Uint8Array(0);
104
- },
105
- };
106
- };
107
- exports.makeStreamer = makeStreamer;
108
- const makeStreamPayloadMessage = ({ status, body, nonce, }) => {
109
- const nonceArr = new TextEncoder().encode(nonce);
110
- const magicWordArr = new TextEncoder().encode(magicWordStr);
111
- const separatorArr = new TextEncoder().encode(':');
112
- const bodyLengthArr = new TextEncoder().encode(body.length.toString());
113
- const statusArr = new TextEncoder().encode(String(status));
114
- // Calculate total length of new Uint8Array
115
- const totalLength = nonceArr.length +
116
- magicWordArr.length +
117
- separatorArr.length * 3 +
118
- bodyLengthArr.length +
119
- statusArr.length +
120
- body.length;
121
- // Create a new Uint8Array to hold all combined parts
122
- const concat = new Uint8Array(totalLength);
123
- let offset = 0;
124
- // Function to append data to concat
125
- const appendToConcat = (data) => {
126
- concat.set(data, offset);
127
- offset += data.length;
128
- };
129
- // Building the final Uint8Array
130
- appendToConcat(magicWordArr);
131
- appendToConcat(nonceArr);
132
- appendToConcat(separatorArr);
133
- appendToConcat(bodyLengthArr);
134
- appendToConcat(separatorArr);
135
- appendToConcat(statusArr);
136
- appendToConcat(separatorArr);
137
- appendToConcat(body);
138
- return concat;
139
- };
140
- exports.makeStreamPayloadMessage = makeStreamPayloadMessage;