@remotion/renderer 4.0.428 → 4.0.430

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 (49) hide show
  1. package/README.md +7 -7
  2. package/dist/assets/download-file.js +3 -1
  3. package/dist/browser/BrowserFetcher.js +1 -1
  4. package/dist/browser/BrowserPage.d.ts +1 -1
  5. package/dist/browser/BrowserPage.js +1 -1
  6. package/dist/browser/BrowserRunner.js +1 -1
  7. package/dist/browser/FrameManager.d.ts +1 -1
  8. package/dist/browser/FrameManager.js +2 -2
  9. package/dist/browser/handle-failed-resource.d.ts +1 -1
  10. package/dist/call-ffmpeg.d.ts +1 -1
  11. package/dist/call-ffmpeg.js +1 -1
  12. package/dist/client.d.ts +19 -0
  13. package/dist/compositor/compositor.js +1 -1
  14. package/dist/ensure-browser.js +1 -1
  15. package/dist/esm/client.mjs +779 -742
  16. package/dist/esm/index.mjs +34 -27
  17. package/dist/get-compositions.js +1 -1
  18. package/dist/get-cpu-count.js +13 -2
  19. package/dist/options/{concurrencies.d.ts → benchmark-concurrencies.d.ts} +7 -4
  20. package/dist/options/benchmark-concurrencies.js +28 -0
  21. package/dist/options/{output.d.ts → image-format-option.d.ts} +6 -7
  22. package/dist/options/image-format-option.js +33 -0
  23. package/dist/options/index.d.ts +19 -0
  24. package/dist/options/index.js +2 -0
  25. package/dist/options/{browser-args.d.ts → private-license-key.d.ts} +6 -7
  26. package/dist/options/private-license-key.js +35 -0
  27. package/dist/render-frames.js +1 -1
  28. package/dist/render-media.js +2 -2
  29. package/dist/render-still.js +2 -2
  30. package/dist/select-composition.js +1 -1
  31. package/package.json +15 -14
  32. package/types/ws/index.d.ts +76 -64
  33. package/dist/options/browser-args.js +0 -25
  34. package/dist/options/concurrencies.js +0 -37
  35. package/dist/options/force.d.ts +0 -16
  36. package/dist/options/force.js +0 -24
  37. package/dist/options/help.d.ts +0 -16
  38. package/dist/options/help.js +0 -26
  39. package/dist/options/image-format.d.ts +0 -11
  40. package/dist/options/image-format.js +0 -18
  41. package/dist/options/output.js +0 -38
  42. package/dist/options/png.d.ts +0 -11
  43. package/dist/options/png.js +0 -18
  44. package/dist/options/q.d.ts +0 -19
  45. package/dist/options/q.js +0 -26
  46. package/dist/options/quality.d.ts +0 -11
  47. package/dist/options/quality.js +0 -20
  48. package/dist/options/quiet.d.ts +0 -19
  49. package/dist/options/quiet.js +0 -26
@@ -544,6 +544,7 @@ var tryToObtainBody = async (file) => {
544
544
  // src/assets/download-file.ts
545
545
  var CANCELLED_ERROR = "cancelled";
546
546
  var incorrectContentLengthToken = "Download finished with";
547
+ var noDataSentToken = "but the server sent no data for";
547
548
  var downloadFileWithoutRetries = ({
548
549
  onProgress,
549
550
  url,
@@ -578,7 +579,7 @@ var downloadFileWithoutRetries = ({
578
579
  if (resolved) {
579
580
  return;
580
581
  }
581
- rejectAndFlag(new Error(`Tried to download file ${url}, but the server sent no data for 20 seconds`));
582
+ rejectAndFlag(new Error(`Tried to download file ${url}, ${noDataSentToken} 20 seconds`));
582
583
  }, 20000);
583
584
  };
584
585
  refreshTimeout();
@@ -663,7 +664,7 @@ var downloadFile = async (options, retries = 2, attempt = 1) => {
663
664
  if (message === CANCELLED_ERROR) {
664
665
  throw err;
665
666
  }
666
- if (message === "aborted" || message.includes("ECONNRESET") || message.includes(incorrectContentLengthToken) || message.includes("503") || message.includes("502") || message.includes("504") || message.includes("500")) {
667
+ if (message === "aborted" || message.includes("ECONNRESET") || message.includes(incorrectContentLengthToken) || message.includes(noDataSentToken) || message.includes("503") || message.includes("502") || message.includes("504") || message.includes("500")) {
667
668
  if (retries === 0) {
668
669
  throw err;
669
670
  }
@@ -1776,6 +1777,14 @@ class ExecutionContext {
1776
1777
  }
1777
1778
  }
1778
1779
 
1780
+ // src/browser/flaky-errors.ts
1781
+ var isTargetClosedErr = (error) => {
1782
+ return error?.message?.includes("Target closed") || error?.message?.includes("Session closed");
1783
+ };
1784
+ var isFlakyNetworkError = (error) => {
1785
+ return error?.message?.includes("ERR_CONNECTION_REFUSED") || error?.message?.includes("ERR_CONNECTION_RESET") || error?.message?.includes("ERR_CONNECTION_TIMED_OUT") || error?.message?.includes("ERR_INTERNET_DISCONNECTED") || error?.message?.includes("ERR_NAME_RESOLUTION_FAILED") || error?.message?.includes("ERR_ADDRESS_UNREACHABLE") || error?.message?.includes("ERR_NETWORK_CHANGED");
1786
+ };
1787
+
1779
1788
  // src/browser/handle-failed-resource.ts
1780
1789
  var handleFailedResource = ({
1781
1790
  extraInfo,
@@ -2243,14 +2252,6 @@ class LifecycleWatcher {
2243
2252
  }
2244
2253
  }
2245
2254
 
2246
- // src/browser/flaky-errors.ts
2247
- var isTargetClosedErr = (error) => {
2248
- return error?.message?.includes("Target closed") || error?.message?.includes("Session closed");
2249
- };
2250
- var isFlakyNetworkError = (error) => {
2251
- return error?.message?.includes("ERR_CONNECTION_REFUSED") || error?.message?.includes("ERR_CONNECTION_RESET") || error?.message?.includes("ERR_CONNECTION_TIMED_OUT") || error?.message?.includes("ERR_INTERNET_DISCONNECTED") || error?.message?.includes("ERR_NAME_RESOLUTION_FAILED") || error?.message?.includes("ERR_ADDRESS_UNREACHABLE") || error?.message?.includes("ERR_NETWORK_CHANGED");
2252
- };
2253
-
2254
2255
  // src/browser/FrameManager.ts
2255
2256
  var UTILITY_WORLD_NAME = "__puppeteer_utility_world__";
2256
2257
  var FrameManagerEmittedEvents = {
@@ -3858,9 +3859,9 @@ class BrowserContext extends EventEmitter {
3858
3859
  }
3859
3860
 
3860
3861
  // src/call-ffmpeg.ts
3861
- import execa from "execa";
3862
3862
  import { spawn as spawn2 } from "node:child_process";
3863
3863
  import path5 from "path";
3864
+ import execa from "execa";
3864
3865
 
3865
3866
  // src/compositor/get-executable-path.ts
3866
3867
  import path4 from "path";
@@ -4725,7 +4726,7 @@ var defaultOnLog = ({ logLevel, tag, previewString }) => {
4725
4726
 
4726
4727
  // src/open-browser.ts
4727
4728
  import fs10 from "node:fs";
4728
- import os4 from "node:os";
4729
+ import os5 from "node:os";
4729
4730
  import path9 from "node:path";
4730
4731
 
4731
4732
  // src/browser/Launcher.ts
@@ -4765,8 +4766,8 @@ import fs8 from "fs";
4765
4766
  import * as fs7 from "node:fs";
4766
4767
  import * as os3 from "node:os";
4767
4768
  import * as path8 from "node:path";
4768
- import extractZip from "extract-zip";
4769
4769
  import { promisify } from "node:util";
4770
+ import extractZip from "extract-zip";
4770
4771
 
4771
4772
  // src/browser/get-chrome-download-url.ts
4772
4773
  import * as fs5 from "node:fs";
@@ -5178,7 +5179,7 @@ var getLocalBrowserExecutable = ({
5178
5179
 
5179
5180
  // src/get-cpu-count.ts
5180
5181
  import { execSync as execSync2 } from "node:child_process";
5181
- import { cpus } from "node:os";
5182
+ import os4 from "node:os";
5182
5183
  var nprocCount;
5183
5184
  var getConcurrencyFromNProc = () => {
5184
5185
  if (nprocCount !== undefined) {
@@ -5192,8 +5193,14 @@ var getConcurrencyFromNProc = () => {
5192
5193
  return null;
5193
5194
  }
5194
5195
  };
5196
+ var getNodeCpuCount = () => {
5197
+ if (typeof os4.availableParallelism === "function") {
5198
+ return os4.availableParallelism();
5199
+ }
5200
+ return os4.cpus().length;
5201
+ };
5195
5202
  var getCpuCount = () => {
5196
- const node = cpus().length;
5203
+ const node = getNodeCpuCount();
5197
5204
  const nproc = getConcurrencyFromNProc();
5198
5205
  if (nproc === null) {
5199
5206
  return node;
@@ -5342,8 +5349,8 @@ var MEMORY_USAGE_PER_THREAD = 400000000;
5342
5349
  var RESERVED_MEMORY = 2000000000;
5343
5350
  var getIdealVideoThreadsFlag = (logLevel) => {
5344
5351
  const freeMemory = getAvailableMemory(logLevel);
5345
- const cpus2 = getCpuCount();
5346
- const maxRecommendedBasedOnCpus = cpus2 * 2 / 3;
5352
+ const cpus = getCpuCount();
5353
+ const maxRecommendedBasedOnCpus = cpus * 2 / 3;
5347
5354
  const maxRecommendedBasedOnMemory = (freeMemory - RESERVED_MEMORY) / MEMORY_USAGE_PER_THREAD;
5348
5355
  const maxRecommended = Math.min(maxRecommendedBasedOnCpus, maxRecommendedBasedOnMemory);
5349
5356
  return Math.max(1, Math.round(maxRecommended));
@@ -5441,7 +5448,7 @@ var internalOpenBrowser = async ({
5441
5448
  if (chromiumOptions.userAgent) {
5442
5449
  Log.verbose({ indent, logLevel, tag: "openBrowser()" }, `Using custom user agent: ${chromiumOptions.userAgent}`);
5443
5450
  }
5444
- const userDataDir = await fs10.promises.mkdtemp(path9.join(os4.tmpdir(), "puppeteer_dev_chrome_profile-"));
5451
+ const userDataDir = await fs10.promises.mkdtemp(path9.join(os5.tmpdir(), "puppeteer_dev_chrome_profile-"));
5445
5452
  const browserInstance = await launchChrome({
5446
5453
  executablePath,
5447
5454
  logLevel,
@@ -14857,9 +14864,9 @@ import { VERSION as VERSION2 } from "remotion/version";
14857
14864
  import { URLSearchParams } from "node:url";
14858
14865
 
14859
14866
  // src/compositor/compositor.ts
14860
- import { makeStreamer } from "@remotion/streaming";
14861
14867
  import { spawn as spawn3 } from "node:child_process";
14862
14868
  import path12 from "node:path";
14869
+ import { makeStreamer } from "@remotion/streaming";
14863
14870
 
14864
14871
  // src/compositor/make-nonce.ts
14865
14872
  var makeNonce = () => {
@@ -15275,7 +15282,7 @@ class OffthreadVideoServerEmitter {
15275
15282
 
15276
15283
  // src/tmp-dir.ts
15277
15284
  import fs12, { mkdirSync } from "node:fs";
15278
- import os5 from "node:os";
15285
+ import os6 from "node:os";
15279
15286
  import path13 from "node:path";
15280
15287
  var alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
15281
15288
  var randomHash = () => {
@@ -15284,7 +15291,7 @@ var randomHash = () => {
15284
15291
  }).join("");
15285
15292
  };
15286
15293
  var tmpDir = (str) => {
15287
- const newDir = path13.join(os5.tmpdir(), str + randomHash());
15294
+ const newDir = path13.join(os6.tmpdir(), str + randomHash());
15288
15295
  if (fs12.existsSync(newDir)) {
15289
15296
  fs12.rmSync(newDir, {
15290
15297
  recursive: true,
@@ -15730,13 +15737,13 @@ var makeRange = (from, to) => {
15730
15737
  };
15731
15738
 
15732
15739
  // src/port-config.ts
15733
- import os6 from "os";
15740
+ import os7 from "os";
15734
15741
  var cached = null;
15735
15742
  var getPortConfig = (preferIpv4) => {
15736
15743
  if (cached) {
15737
15744
  return cached;
15738
15745
  }
15739
- const networkInterfaces = os6.networkInterfaces();
15746
+ const networkInterfaces = os7.networkInterfaces();
15740
15747
  const flattened = flattenNetworkInterfaces(networkInterfaces);
15741
15748
  const host = getHostToBind(flattened, preferIpv4);
15742
15749
  const hostsToTry = getHostsToTry(flattened);
@@ -19569,10 +19576,10 @@ var renderFrames = (options) => {
19569
19576
  };
19570
19577
 
19571
19578
  // src/render-media.ts
19572
- import { LicensingInternals } from "@remotion/licensing";
19573
19579
  import fs17 from "node:fs";
19574
- import os7 from "node:os";
19580
+ import os8 from "node:os";
19575
19581
  import path26 from "node:path";
19582
+ import { LicensingInternals } from "@remotion/licensing";
19576
19583
  import { NoReactInternals as NoReactInternals15 } from "remotion/no-react";
19577
19584
 
19578
19585
  // src/crf.ts
@@ -21794,7 +21801,7 @@ var internalRenderMediaRaw = ({
21794
21801
  }
21795
21802
  const imageFormat = isAudioCodec(codec) ? "none" : provisionalImageFormat ?? compositionWithPossibleUnevenDimensions.defaultVideoImageFormat ?? DEFAULT_VIDEO_IMAGE_FORMAT;
21796
21803
  validateSelectedPixelFormatAndImageFormatCombination(pixelFormat, imageFormat);
21797
- const workingDir = fs17.mkdtempSync(path26.join(os7.tmpdir(), "react-motion-render"));
21804
+ const workingDir = fs17.mkdtempSync(path26.join(os8.tmpdir(), "react-motion-render"));
21798
21805
  const preEncodedFileLocation = parallelEncoding ? path26.join(workingDir, "pre-encode." + getFileExtensionFromCodec(codec, audioCodec)) : null;
21799
21806
  if (onCtrlCExit && workingDir) {
21800
21807
  onCtrlCExit(`Delete ${workingDir}`, () => deleteDirectory(workingDir));
@@ -22290,9 +22297,9 @@ var renderMedia = ({
22290
22297
  };
22291
22298
 
22292
22299
  // src/render-still.ts
22293
- import { LicensingInternals as LicensingInternals2 } from "@remotion/licensing";
22294
22300
  import fs18, { statSync as statSync2 } from "node:fs";
22295
22301
  import path27 from "node:path";
22302
+ import { LicensingInternals as LicensingInternals2 } from "@remotion/licensing";
22296
22303
  import { NoReactInternals as NoReactInternals16 } from "remotion/no-react";
22297
22304
  var innerRenderStill = async ({
22298
22305
  composition,
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositions = exports.internalGetCompositions = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
6
5
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
6
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
7
7
  const default_on_log_1 = require("./default-on-log");
8
8
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
9
9
  const find_closest_package_json_1 = require("./find-closest-package-json");
@@ -2,10 +2,13 @@
2
2
  // Kubernetes uses the following command to spawn Docker containers:
3
3
  // docker run --cpuset-cpus="0,1" to assign only 2 CPUs.
4
4
  // However, Node.js returns the core count of the host system (up to 96!)
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
5
8
  Object.defineProperty(exports, "__esModule", { value: true });
6
9
  exports.getCpuCount = exports.getConcurrencyFromNProc = void 0;
7
10
  const node_child_process_1 = require("node:child_process");
8
- const node_os_1 = require("node:os");
11
+ const node_os_1 = __importDefault(require("node:os"));
9
12
  let nprocCount;
10
13
  // We also get it from nproc and use the minimum of the two.
11
14
  const getConcurrencyFromNProc = () => {
@@ -22,8 +25,16 @@ const getConcurrencyFromNProc = () => {
22
25
  }
23
26
  };
24
27
  exports.getConcurrencyFromNProc = getConcurrencyFromNProc;
28
+ const getNodeCpuCount = () => {
29
+ // os.availableParallelism() is faster and respects cgroup CPU limits in containers.
30
+ // Available since Node 18.14 / 19.4.
31
+ if (typeof node_os_1.default.availableParallelism === 'function') {
32
+ return node_os_1.default.availableParallelism();
33
+ }
34
+ return node_os_1.default.cpus().length;
35
+ };
25
36
  const getCpuCount = () => {
26
- const node = (0, node_os_1.cpus)().length;
37
+ const node = getNodeCpuCount();
27
38
  const nproc = (0, exports.getConcurrencyFromNProc)();
28
39
  if (nproc === null) {
29
40
  return node;
@@ -1,16 +1,19 @@
1
- export declare const concurrenciesOption: {
1
+ export declare const benchmarkConcurrenciesOption: {
2
2
  name: string;
3
3
  cliFlag: "concurrencies";
4
- ssrName: "concurrencies";
5
4
  description: () => import("react/jsx-runtime").JSX.Element;
5
+ ssrName: null;
6
6
  docLink: string;
7
- type: string;
7
+ type: string | null;
8
8
  getValue: ({ commandLine }: {
9
9
  commandLine: Record<string, unknown>;
10
10
  }) => {
11
11
  value: string;
12
12
  source: string;
13
+ } | {
14
+ value: null;
15
+ source: string;
13
16
  };
14
- setConfig: (value: string) => void;
17
+ setConfig: (value: string | null) => void;
15
18
  id: "concurrencies";
16
19
  };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.benchmarkConcurrenciesOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ let currentConcurrencies = null;
6
+ const cliFlag = 'concurrencies';
7
+ exports.benchmarkConcurrenciesOption = {
8
+ name: 'Benchmark concurrencies',
9
+ cliFlag,
10
+ description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Specify which concurrency values should be used while benchmarking. Multiple values can be passed separated by comma. Learn more about", ' ', jsx_runtime_1.jsx("a", { href: "https://remotion.dev/docs/terminology/concurrency", children: "concurrency" }),
11
+ "."] })),
12
+ ssrName: null,
13
+ docLink: 'https://www.remotion.dev/docs/cli/benchmark#--concurrencies',
14
+ type: null,
15
+ getValue: ({ commandLine }) => {
16
+ if (commandLine[cliFlag] !== undefined) {
17
+ return { value: commandLine[cliFlag], source: 'cli' };
18
+ }
19
+ if (currentConcurrencies !== null) {
20
+ return { value: currentConcurrencies, source: 'config' };
21
+ }
22
+ return { value: null, source: 'default' };
23
+ },
24
+ setConfig: (value) => {
25
+ currentConcurrencies = value;
26
+ },
27
+ id: cliFlag,
28
+ };
@@ -1,19 +1,18 @@
1
- export declare const outputOption: {
1
+ export declare const imageFormatOption: {
2
2
  name: string;
3
- cliFlag: "output";
4
- ssrName: "output";
3
+ cliFlag: "image-format";
5
4
  description: () => import("react/jsx-runtime").JSX.Element;
5
+ ssrName: "imageFormat";
6
6
  docLink: string;
7
- type: string | undefined;
7
+ type: string | null;
8
8
  getValue: ({ commandLine }: {
9
9
  commandLine: Record<string, unknown>;
10
10
  }) => {
11
11
  value: string;
12
12
  source: string;
13
13
  } | {
14
+ value: null;
14
15
  source: string;
15
- value: undefined;
16
16
  };
17
- setConfig: (value: string | undefined) => void;
18
- id: "output";
17
+ setConfig(value: string | null): void;
19
18
  };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imageFormatOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ let imageFormat = null;
6
+ const cliFlag = 'image-format';
7
+ exports.imageFormatOption = {
8
+ name: 'Image Format',
9
+ cliFlag,
10
+ description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Determines which in which image format to render. Can be either", ' ', jsx_runtime_1.jsx("code", { children: "\"jpeg\"" }),
11
+ ", ",
12
+ jsx_runtime_1.jsx("code", { children: "\"png\"" }),
13
+ ",", ' ', jsx_runtime_1.jsx("code", { children: "\"webp\"" }),
14
+ ", ",
15
+ jsx_runtime_1.jsx("code", { children: "\"pdf\"" }),
16
+ ", or", ' ', jsx_runtime_1.jsx("code", { children: "\"none\"" }),
17
+ " depending on the render type."] })),
18
+ ssrName: 'imageFormat',
19
+ docLink: 'https://www.remotion.dev/docs/config#setvideoimageformat',
20
+ type: null,
21
+ getValue: ({ commandLine }) => {
22
+ if (commandLine[cliFlag] !== undefined) {
23
+ return { value: commandLine[cliFlag], source: 'cli' };
24
+ }
25
+ if (imageFormat !== null) {
26
+ return { value: imageFormat, source: 'config' };
27
+ }
28
+ return { value: null, source: 'default' };
29
+ },
30
+ setConfig(value) {
31
+ imageFormat = value;
32
+ },
33
+ };
@@ -19,6 +19,25 @@ export declare const allOptions: {
19
19
  type: "aac" | "mp3" | "opus" | "pcm-16";
20
20
  id: "audio-codec";
21
21
  };
22
+ benchmarkConcurrenciesOption: {
23
+ name: string;
24
+ cliFlag: "concurrencies";
25
+ description: () => import("react/jsx-runtime").JSX.Element;
26
+ ssrName: null;
27
+ docLink: string;
28
+ type: string | null;
29
+ getValue: ({ commandLine }: {
30
+ commandLine: Record<string, unknown>;
31
+ }) => {
32
+ value: string;
33
+ source: string;
34
+ } | {
35
+ value: null;
36
+ source: string;
37
+ };
38
+ setConfig: (value: string | null) => void;
39
+ id: "concurrencies";
40
+ };
22
41
  browserExecutableOption: {
23
42
  name: string;
24
43
  cliFlag: "browser-executable";
@@ -6,6 +6,7 @@ const ask_ai_1 = require("./ask-ai");
6
6
  const audio_bitrate_1 = require("./audio-bitrate");
7
7
  const audio_codec_1 = require("./audio-codec");
8
8
  const beep_on_finish_1 = require("./beep-on-finish");
9
+ const benchmark_concurrencies_1 = require("./benchmark-concurrencies");
9
10
  const binaries_directory_1 = require("./binaries-directory");
10
11
  const browser_1 = require("./browser");
11
12
  const browser_executable_1 = require("./browser-executable");
@@ -90,6 +91,7 @@ const webpack_poll_1 = require("./webpack-poll");
90
91
  const x264_preset_1 = require("./x264-preset");
91
92
  exports.allOptions = {
92
93
  audioCodecOption: audio_codec_1.audioCodecOption,
94
+ benchmarkConcurrenciesOption: benchmark_concurrencies_1.benchmarkConcurrenciesOption,
93
95
  browserExecutableOption: browser_executable_1.browserExecutableOption,
94
96
  concurrencyOption: concurrency_1.concurrencyOption,
95
97
  scaleOption: scale_1.scaleOption,
@@ -1,16 +1,15 @@
1
- export declare const browserArgsOption: {
1
+ export declare const privateLicenseKeyOption: {
2
2
  name: string;
3
- cliFlag: "browser-args";
4
- ssrName: "browserArgs";
3
+ cliFlag: "private-license-key";
5
4
  description: () => import("react/jsx-runtime").JSX.Element;
5
+ ssrName: "privateLicenseKey";
6
6
  docLink: string;
7
- type: string;
8
7
  getValue: ({ commandLine }: {
9
8
  commandLine: Record<string, unknown>;
10
9
  }) => {
11
- value: string;
12
10
  source: string;
11
+ value: string | null;
13
12
  };
14
- setConfig: (value: string) => void;
15
- id: "browser-args";
13
+ setConfig: (value: string | null) => void;
14
+ type: string | null;
16
15
  };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.privateLicenseKeyOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const cliFlag = 'private-license-key';
6
+ let currentPrivateLicenseKey = null;
7
+ exports.privateLicenseKeyOption = {
8
+ name: 'Private License Key',
9
+ cliFlag,
10
+ description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The private license key for your company license, obtained from the \"Usage\" tab on ", (0, jsx_runtime_1.jsx)("a", { href: "https://remotion.pro/dashboard", children: "remotion.pro" }), ". If you are eligible for the free license, pass \"free-license\"."] })),
11
+ ssrName: 'privateLicenseKey',
12
+ docLink: 'https://www.remotion.dev/docs/licensing',
13
+ getValue: ({ commandLine }) => {
14
+ if (commandLine[cliFlag] !== undefined) {
15
+ return {
16
+ source: 'cli',
17
+ value: commandLine[cliFlag],
18
+ };
19
+ }
20
+ if (currentPrivateLicenseKey !== null) {
21
+ return {
22
+ source: 'config',
23
+ value: currentPrivateLicenseKey,
24
+ };
25
+ }
26
+ return {
27
+ source: 'default',
28
+ value: null,
29
+ };
30
+ },
31
+ setConfig: (value) => {
32
+ currentPrivateLicenseKey = value;
33
+ },
34
+ type: null,
35
+ };
@@ -8,9 +8,9 @@ const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const no_react_1 = require("remotion/no-react");
10
10
  const browser_1 = require("./browser");
11
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
12
11
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
13
12
  const flaky_errors_1 = require("./browser/flaky-errors");
13
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
14
14
  const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
15
15
  const cycle_browser_tabs_1 = require("./cycle-browser-tabs");
16
16
  const default_on_log_1 = require("./default-on-log");
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderMedia = exports.internalRenderMedia = void 0;
7
- const licensing_1 = require("@remotion/licensing");
8
7
  const node_fs_1 = __importDefault(require("node:fs"));
9
8
  const node_os_1 = __importDefault(require("node:os"));
10
9
  const node_path_1 = __importDefault(require("node:path"));
10
+ const licensing_1 = require("@remotion/licensing");
11
11
  const no_react_1 = require("remotion/no-react");
12
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
13
12
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
13
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
14
14
  const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
15
15
  const codec_supports_media_1 = require("./codec-supports-media");
16
16
  const crf_1 = require("./crf");
@@ -37,13 +37,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.renderStill = exports.internalRenderStill = void 0;
40
- const licensing_1 = require("@remotion/licensing");
41
40
  const node_fs_1 = __importStar(require("node:fs"));
42
41
  const node_path_1 = __importDefault(require("node:path"));
42
+ const licensing_1 = require("@remotion/licensing");
43
43
  const no_react_1 = require("remotion/no-react");
44
44
  const browser_1 = require("./browser");
45
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
46
45
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
46
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
47
47
  const collect_assets_1 = require("./collect-assets");
48
48
  const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
49
49
  const default_on_log_1 = require("./default-on-log");
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.selectComposition = exports.internalSelectComposition = exports.internalSelectCompositionRaw = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
5
  const _1 = require(".");
6
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
7
6
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
7
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
8
8
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
9
9
  const find_closest_package_json_1 = require("./find-closest-package-json");
10
10
  const get_browser_instance_1 = require("./get-browser-instance");
package/package.json CHANGED
@@ -3,13 +3,14 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.428",
6
+ "version": "4.0.430",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
10
  "sideEffects": false,
11
11
  "scripts": {
12
- "formatting": "prettier src --check",
12
+ "formatting": "oxfmt src --check",
13
+ "format": "oxfmt src",
13
14
  "lint": "eslint src",
14
15
  "test": "bun test src",
15
16
  "watch": "tsgo -w",
@@ -23,11 +24,11 @@
23
24
  "dependencies": {
24
25
  "execa": "5.1.1",
25
26
  "extract-zip": "2.0.1",
26
- "remotion": "4.0.428",
27
- "@remotion/streaming": "4.0.428",
27
+ "remotion": "4.0.429",
28
+ "@remotion/streaming": "4.0.429",
28
29
  "source-map": "^0.8.0-beta.0",
29
30
  "ws": "8.17.1",
30
- "@remotion/licensing": "4.0.428"
31
+ "@remotion/licensing": "4.0.429"
31
32
  },
32
33
  "peerDependencies": {
33
34
  "react": ">=16.8.0",
@@ -41,19 +42,19 @@
41
42
  "react-dom": "19.2.3",
42
43
  "@typescript/native-preview": "7.0.0-dev.20260217.1",
43
44
  "@types/ws": "8.5.10",
44
- "@remotion/example-videos": "4.0.428",
45
- "@remotion/eslint-config-internal": "4.0.428",
45
+ "@remotion/example-videos": "4.0.429",
46
+ "@remotion/eslint-config-internal": "4.0.429",
46
47
  "eslint": "9.19.0",
47
48
  "@types/node": "20.12.14"
48
49
  },
49
50
  "optionalDependencies": {
50
- "@remotion/compositor-darwin-arm64": "4.0.428",
51
- "@remotion/compositor-darwin-x64": "4.0.428",
52
- "@remotion/compositor-linux-arm64-gnu": "4.0.428",
53
- "@remotion/compositor-linux-arm64-musl": "4.0.428",
54
- "@remotion/compositor-linux-x64-gnu": "4.0.428",
55
- "@remotion/compositor-linux-x64-musl": "4.0.428",
56
- "@remotion/compositor-win32-x64-msvc": "4.0.428"
51
+ "@remotion/compositor-darwin-arm64": "4.0.429",
52
+ "@remotion/compositor-darwin-x64": "4.0.429",
53
+ "@remotion/compositor-linux-arm64-gnu": "4.0.429",
54
+ "@remotion/compositor-linux-arm64-musl": "4.0.429",
55
+ "@remotion/compositor-linux-x64-gnu": "4.0.429",
56
+ "@remotion/compositor-linux-x64-musl": "4.0.429",
57
+ "@remotion/compositor-win32-x64-msvc": "4.0.429"
57
58
  },
58
59
  "keywords": [
59
60
  "remotion",