@remotion/renderer 4.0.246 → 4.0.248
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/BrowserFetcher.d.ts +4 -2
- package/dist/browser/BrowserFetcher.js +41 -18
- package/dist/browser/browser-download-progress-bar.js +13 -3
- package/dist/client.d.ts +150 -2
- package/dist/client.js +2 -0
- package/dist/ensure-browser.d.ts +2 -3
- package/dist/ensure-browser.js +9 -13
- package/dist/get-browser-instance.d.ts +3 -1
- package/dist/get-browser-instance.js +2 -1
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/get-compositions.js +5 -2
- package/dist/get-local-browser-executable.d.ts +3 -1
- package/dist/get-local-browser-executable.js +4 -8
- package/dist/index.d.ts +125 -8
- package/dist/open-browser.d.ts +6 -5
- package/dist/open-browser.js +14 -5
- package/dist/options/chrome-mode.d.ts +17 -0
- package/dist/options/chrome-mode.js +46 -0
- package/dist/options/gl.d.ts +1 -1
- package/dist/options/index.d.ts +17 -2
- package/dist/options/index.js +2 -0
- package/dist/options/metadata.d.ts +1 -1
- package/dist/options/on-browser-download.d.ts +4 -1
- package/dist/options/options-map.d.ts +132 -0
- package/dist/options/options-map.js +12 -0
- package/dist/options/webhook-custom-data.d.ts +1 -1
- package/dist/render-frames.js +5 -2
- package/dist/render-media.d.ts +1 -1
- package/dist/render-media.js +9 -3
- package/dist/render-still.js +9 -3
- package/dist/select-composition.js +5 -2
- package/dist/test-gpu.d.ts +3 -1
- package/dist/test-gpu.js +2 -1
- package/ensure-browser.mjs +66 -48
- package/package.json +12 -12
- package/dist/get-local-browser.d.ts +0 -1
- package/dist/get-local-browser.js +0 -19
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import type { LogLevel } from '../log-level';
|
|
17
|
+
import { ChromeMode } from '../options/chrome-mode';
|
|
17
18
|
import type { DownloadBrowserProgressFn } from '../options/on-browser-download';
|
|
18
19
|
interface BrowserFetcherRevisionInfo {
|
|
19
20
|
folderPath: string;
|
|
@@ -21,11 +22,12 @@ interface BrowserFetcherRevisionInfo {
|
|
|
21
22
|
url: string;
|
|
22
23
|
local: boolean;
|
|
23
24
|
}
|
|
24
|
-
export declare const downloadBrowser: ({ logLevel, indent, onProgress, version, }: {
|
|
25
|
+
export declare const downloadBrowser: ({ logLevel, indent, onProgress, version, chromeMode, }: {
|
|
25
26
|
logLevel: LogLevel;
|
|
26
27
|
indent: boolean;
|
|
27
28
|
onProgress: DownloadBrowserProgressFn;
|
|
28
29
|
version: string | null;
|
|
30
|
+
chromeMode: ChromeMode;
|
|
29
31
|
}) => Promise<BrowserFetcherRevisionInfo | undefined>;
|
|
30
|
-
export declare const getRevisionInfo: () => BrowserFetcherRevisionInfo;
|
|
32
|
+
export declare const getRevisionInfo: (chromeMode: ChromeMode) => BrowserFetcherRevisionInfo;
|
|
31
33
|
export {};
|
|
@@ -53,11 +53,17 @@ const get_download_destination_1 = require("./get-download-destination");
|
|
|
53
53
|
const TESTED_VERSION = '123.0.6312.86';
|
|
54
54
|
// https://github.com/microsoft/playwright/tree/v1.42.0
|
|
55
55
|
const PLAYWRIGHT_VERSION = '1105'; // 123.0.6312.4
|
|
56
|
-
function getChromeDownloadUrl({ platform, version, }) {
|
|
56
|
+
function getChromeDownloadUrl({ platform, version, chromeMode, }) {
|
|
57
57
|
if (platform === 'linux-arm64') {
|
|
58
|
+
if (chromeMode === 'chrome-for-testing') {
|
|
59
|
+
throw new Error(`chromeMode: 'chrome-for-testing' is not supported on platform linux-arm64`);
|
|
60
|
+
}
|
|
58
61
|
return `https://playwright.azureedge.net/builds/chromium/${version !== null && version !== void 0 ? version : PLAYWRIGHT_VERSION}/chromium-linux-arm64.zip`;
|
|
59
62
|
}
|
|
60
|
-
|
|
63
|
+
if (chromeMode === 'headless-shell') {
|
|
64
|
+
return `https://storage.googleapis.com/chrome-for-testing-public/${version !== null && version !== void 0 ? version : TESTED_VERSION}/${platform}/chrome-headless-shell-${platform}.zip`;
|
|
65
|
+
}
|
|
66
|
+
return `https://storage.googleapis.com/chrome-for-testing-public/${version !== null && version !== void 0 ? version : TESTED_VERSION}/${platform}/chrome-${platform}.zip`;
|
|
61
67
|
}
|
|
62
68
|
const mkdirAsync = fs.promises.mkdir;
|
|
63
69
|
const unlinkAsync = (0, node_util_1.promisify)(fs.unlink.bind(fs));
|
|
@@ -81,22 +87,24 @@ const getPlatform = () => {
|
|
|
81
87
|
throw new Error('Unsupported platform: ' + platform);
|
|
82
88
|
}
|
|
83
89
|
};
|
|
84
|
-
const
|
|
85
|
-
const
|
|
90
|
+
const getDownloadsFolder = (chromeMode) => {
|
|
91
|
+
const destination = chromeMode === 'headless-shell'
|
|
92
|
+
? 'chrome-headless-shell'
|
|
93
|
+
: 'chrome-for-testing';
|
|
86
94
|
return path.join((0, get_download_destination_1.getDownloadsCacheDir)(), destination);
|
|
87
95
|
};
|
|
88
|
-
const downloadBrowser = async ({ logLevel, indent, onProgress, version, }) => {
|
|
96
|
+
const downloadBrowser = async ({ logLevel, indent, onProgress, version, chromeMode, }) => {
|
|
89
97
|
const platform = getPlatform();
|
|
90
|
-
const downloadURL = getChromeDownloadUrl({ platform, version });
|
|
98
|
+
const downloadURL = getChromeDownloadUrl({ platform, version, chromeMode });
|
|
91
99
|
const fileName = downloadURL.split('/').pop();
|
|
92
100
|
if (!fileName) {
|
|
93
101
|
throw new Error(`A malformed download URL was found: ${downloadURL}.`);
|
|
94
102
|
}
|
|
95
|
-
const downloadsFolder = getDownloadsFolder();
|
|
103
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
96
104
|
const archivePath = path.join(downloadsFolder, fileName);
|
|
97
105
|
const outputPath = getFolderPath(downloadsFolder, platform);
|
|
98
106
|
if (await existsAsync(outputPath)) {
|
|
99
|
-
return (0, exports.getRevisionInfo)();
|
|
107
|
+
return (0, exports.getRevisionInfo)(chromeMode);
|
|
100
108
|
}
|
|
101
109
|
if (!(await existsAsync(downloadsFolder))) {
|
|
102
110
|
await mkdirAsync(downloadsFolder, {
|
|
@@ -143,7 +151,7 @@ const downloadBrowser = async ({ logLevel, indent, onProgress, version, }) => {
|
|
|
143
151
|
await unlinkAsync(archivePath);
|
|
144
152
|
}
|
|
145
153
|
}
|
|
146
|
-
const revisionInfo = (0, exports.getRevisionInfo)();
|
|
154
|
+
const revisionInfo = (0, exports.getRevisionInfo)(chromeMode);
|
|
147
155
|
(0, make_file_executable_1.makeFileExecutableIfItIsNot)(revisionInfo.executablePath);
|
|
148
156
|
return revisionInfo;
|
|
149
157
|
};
|
|
@@ -151,20 +159,35 @@ exports.downloadBrowser = downloadBrowser;
|
|
|
151
159
|
const getFolderPath = (downloadsFolder, platform) => {
|
|
152
160
|
return path.resolve(downloadsFolder, platform);
|
|
153
161
|
};
|
|
154
|
-
const getExecutablePath = () => {
|
|
155
|
-
const downloadsFolder = getDownloadsFolder();
|
|
162
|
+
const getExecutablePath = (chromeMode) => {
|
|
163
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
156
164
|
const platform = getPlatform();
|
|
157
165
|
const folderPath = getFolderPath(downloadsFolder, platform);
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
166
|
+
if (chromeMode === 'chrome-for-testing') {
|
|
167
|
+
if (platform === 'mac-arm64' || platform === 'mac-x64') {
|
|
168
|
+
return path.join(folderPath, `chrome-${platform}`, 'Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing');
|
|
169
|
+
}
|
|
170
|
+
if (platform === 'win64') {
|
|
171
|
+
return path.join(folderPath, 'chrome-win64', 'chrome.exe');
|
|
172
|
+
}
|
|
173
|
+
if (platform === 'linux64' || platform === 'linux-arm64') {
|
|
174
|
+
return path.join(folderPath, 'chrome-linux64', 'chrome');
|
|
175
|
+
}
|
|
176
|
+
throw new Error('unsupported platform' + platform);
|
|
177
|
+
}
|
|
178
|
+
if (chromeMode === 'headless-shell') {
|
|
179
|
+
return path.join(folderPath, `chrome-headless-shell-${platform}`, platform === 'win64'
|
|
180
|
+
? 'chrome-headless-shell.exe'
|
|
181
|
+
: 'chrome-headless-shell');
|
|
182
|
+
}
|
|
183
|
+
throw new Error('unsupported chrome mode' + chromeMode);
|
|
161
184
|
};
|
|
162
|
-
const getRevisionInfo = () => {
|
|
163
|
-
const executablePath = getExecutablePath();
|
|
164
|
-
const downloadsFolder = getDownloadsFolder();
|
|
185
|
+
const getRevisionInfo = (chromeMode) => {
|
|
186
|
+
const executablePath = getExecutablePath(chromeMode);
|
|
187
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
165
188
|
const platform = getPlatform();
|
|
166
189
|
const folderPath = getFolderPath(downloadsFolder, platform);
|
|
167
|
-
const url = getChromeDownloadUrl({ platform, version: null });
|
|
190
|
+
const url = getChromeDownloadUrl({ platform, version: null, chromeMode });
|
|
168
191
|
const local = fs.existsSync(folderPath);
|
|
169
192
|
return {
|
|
170
193
|
executablePath,
|
|
@@ -3,8 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.defaultBrowserDownloadProgress = void 0;
|
|
4
4
|
const logger_1 = require("../logger");
|
|
5
5
|
const to_megabytes_1 = require("../to-megabytes");
|
|
6
|
-
const defaultBrowserDownloadProgress = ({ indent, logLevel, api, }) => () => {
|
|
7
|
-
|
|
6
|
+
const defaultBrowserDownloadProgress = ({ indent, logLevel, api, }) => ({ chromeMode }) => {
|
|
7
|
+
if (chromeMode === 'chrome-for-testing') {
|
|
8
|
+
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome for Testing https://www.remotion.dev/chrome-for-testing');
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome Headless Shell https://www.remotion.dev/chrome-headless-shell');
|
|
12
|
+
}
|
|
8
13
|
logger_1.Log.info({ indent, logLevel }, `Customize this behavior by adding a onBrowserDownload function to ${api}.`);
|
|
9
14
|
let lastProgress = 0;
|
|
10
15
|
return {
|
|
@@ -12,7 +17,12 @@ const defaultBrowserDownloadProgress = ({ indent, logLevel, api, }) => () => {
|
|
|
12
17
|
if (progress.downloadedBytes > lastProgress + 10000000 ||
|
|
13
18
|
progress.percent === 1) {
|
|
14
19
|
lastProgress = progress.downloadedBytes;
|
|
15
|
-
|
|
20
|
+
if (chromeMode === 'chrome-for-testing') {
|
|
21
|
+
logger_1.Log.info({ indent, logLevel }, `Downloading Chrome for Testing - ${(0, to_megabytes_1.toMegabytes)(progress.downloadedBytes)}/${(0, to_megabytes_1.toMegabytes)(progress.totalSizeInBytes)}`);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
logger_1.Log.info({ indent, logLevel }, `Downloading Chrome Headless Shell - ${(0, to_megabytes_1.toMegabytes)(progress.downloadedBytes)}/${(0, to_megabytes_1.toMegabytes)(progress.totalSizeInBytes)}`);
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
},
|
|
18
28
|
version: null,
|
package/dist/client.d.ts
CHANGED
|
@@ -394,7 +394,7 @@ export declare const BrowserSafeApis: {
|
|
|
394
394
|
webhookCustomDataOption: {
|
|
395
395
|
name: string;
|
|
396
396
|
cliFlag: "webhook-custom-data";
|
|
397
|
-
description: (type: "
|
|
397
|
+
description: (type: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
398
398
|
ssrName: "customData";
|
|
399
399
|
docLink: string;
|
|
400
400
|
type: Record<string, unknown> | null;
|
|
@@ -807,7 +807,7 @@ export declare const BrowserSafeApis: {
|
|
|
807
807
|
metadataOption: {
|
|
808
808
|
name: string;
|
|
809
809
|
cliFlag: "metadata";
|
|
810
|
-
description: (mode: "
|
|
810
|
+
description: (mode: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
811
811
|
docLink: string;
|
|
812
812
|
type: import("./options/metadata").Metadata;
|
|
813
813
|
getValue: ({ commandLine }: {
|
|
@@ -836,6 +836,21 @@ export declare const BrowserSafeApis: {
|
|
|
836
836
|
};
|
|
837
837
|
setConfig: (value: import("./options/hardware-acceleration").HardwareAccelerationOption) => void;
|
|
838
838
|
};
|
|
839
|
+
chromeModeOption: {
|
|
840
|
+
cliFlag: "chrome-mode";
|
|
841
|
+
name: string;
|
|
842
|
+
ssrName: string;
|
|
843
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
844
|
+
docLink: string;
|
|
845
|
+
getValue: ({ commandLine }: {
|
|
846
|
+
commandLine: Record<string, unknown>;
|
|
847
|
+
}) => {
|
|
848
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
849
|
+
source: string;
|
|
850
|
+
};
|
|
851
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
852
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
853
|
+
};
|
|
839
854
|
};
|
|
840
855
|
validColorSpaces: readonly ["default", "bt709", "bt2020-ncl"];
|
|
841
856
|
optionsMap: {
|
|
@@ -1168,6 +1183,21 @@ export declare const BrowserSafeApis: {
|
|
|
1168
1183
|
};
|
|
1169
1184
|
setConfig: (value: import("./options/hardware-acceleration").HardwareAccelerationOption) => void;
|
|
1170
1185
|
};
|
|
1186
|
+
readonly chromeMode: {
|
|
1187
|
+
cliFlag: "chrome-mode";
|
|
1188
|
+
name: string;
|
|
1189
|
+
ssrName: string;
|
|
1190
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1191
|
+
docLink: string;
|
|
1192
|
+
getValue: ({ commandLine }: {
|
|
1193
|
+
commandLine: Record<string, unknown>;
|
|
1194
|
+
}) => {
|
|
1195
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
1196
|
+
source: string;
|
|
1197
|
+
};
|
|
1198
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
1199
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
1200
|
+
};
|
|
1171
1201
|
};
|
|
1172
1202
|
readonly stitchFramesToVideo: {
|
|
1173
1203
|
readonly separateAudioTo: {
|
|
@@ -1293,6 +1323,21 @@ export declare const BrowserSafeApis: {
|
|
|
1293
1323
|
getValue: () => never;
|
|
1294
1324
|
setConfig: () => never;
|
|
1295
1325
|
};
|
|
1326
|
+
readonly chromeMode: {
|
|
1327
|
+
cliFlag: "chrome-mode";
|
|
1328
|
+
name: string;
|
|
1329
|
+
ssrName: string;
|
|
1330
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1331
|
+
docLink: string;
|
|
1332
|
+
getValue: ({ commandLine }: {
|
|
1333
|
+
commandLine: Record<string, unknown>;
|
|
1334
|
+
}) => {
|
|
1335
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
1336
|
+
source: string;
|
|
1337
|
+
};
|
|
1338
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
1339
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
1340
|
+
};
|
|
1296
1341
|
};
|
|
1297
1342
|
readonly getCompositions: {
|
|
1298
1343
|
readonly offthreadVideoCacheSizeInBytes: {
|
|
@@ -1368,6 +1413,21 @@ export declare const BrowserSafeApis: {
|
|
|
1368
1413
|
getValue: () => never;
|
|
1369
1414
|
setConfig: () => never;
|
|
1370
1415
|
};
|
|
1416
|
+
readonly chromeMode: {
|
|
1417
|
+
cliFlag: "chrome-mode";
|
|
1418
|
+
name: string;
|
|
1419
|
+
ssrName: string;
|
|
1420
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1421
|
+
docLink: string;
|
|
1422
|
+
getValue: ({ commandLine }: {
|
|
1423
|
+
commandLine: Record<string, unknown>;
|
|
1424
|
+
}) => {
|
|
1425
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
1426
|
+
source: string;
|
|
1427
|
+
};
|
|
1428
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
1429
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
1430
|
+
};
|
|
1371
1431
|
};
|
|
1372
1432
|
readonly selectComposition: {
|
|
1373
1433
|
readonly offthreadVideoCacheSizeInBytes: {
|
|
@@ -1443,6 +1503,21 @@ export declare const BrowserSafeApis: {
|
|
|
1443
1503
|
getValue: () => never;
|
|
1444
1504
|
setConfig: () => never;
|
|
1445
1505
|
};
|
|
1506
|
+
readonly chromeMode: {
|
|
1507
|
+
cliFlag: "chrome-mode";
|
|
1508
|
+
name: string;
|
|
1509
|
+
ssrName: string;
|
|
1510
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1511
|
+
docLink: string;
|
|
1512
|
+
getValue: ({ commandLine }: {
|
|
1513
|
+
commandLine: Record<string, unknown>;
|
|
1514
|
+
}) => {
|
|
1515
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
1516
|
+
source: string;
|
|
1517
|
+
};
|
|
1518
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
1519
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
1520
|
+
};
|
|
1446
1521
|
};
|
|
1447
1522
|
readonly renderFrames: {
|
|
1448
1523
|
readonly forSeamlessAacConcatenation: {
|
|
@@ -1551,6 +1626,21 @@ export declare const BrowserSafeApis: {
|
|
|
1551
1626
|
getValue: () => never;
|
|
1552
1627
|
setConfig: () => never;
|
|
1553
1628
|
};
|
|
1629
|
+
readonly chromeMode: {
|
|
1630
|
+
cliFlag: "chrome-mode";
|
|
1631
|
+
name: string;
|
|
1632
|
+
ssrName: string;
|
|
1633
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1634
|
+
docLink: string;
|
|
1635
|
+
getValue: ({ commandLine }: {
|
|
1636
|
+
commandLine: Record<string, unknown>;
|
|
1637
|
+
}) => {
|
|
1638
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
1639
|
+
source: string;
|
|
1640
|
+
};
|
|
1641
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
1642
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
1643
|
+
};
|
|
1554
1644
|
};
|
|
1555
1645
|
readonly renderMediaOnLambda: {
|
|
1556
1646
|
readonly offthreadVideoCacheSizeInBytes: {
|
|
@@ -2293,6 +2383,63 @@ export declare const BrowserSafeApis: {
|
|
|
2293
2383
|
getValue: () => never;
|
|
2294
2384
|
setConfig: () => never;
|
|
2295
2385
|
};
|
|
2386
|
+
readonly chromeMode: {
|
|
2387
|
+
cliFlag: "chrome-mode";
|
|
2388
|
+
name: string;
|
|
2389
|
+
ssrName: string;
|
|
2390
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
2391
|
+
docLink: string;
|
|
2392
|
+
getValue: ({ commandLine }: {
|
|
2393
|
+
commandLine: Record<string, unknown>;
|
|
2394
|
+
}) => {
|
|
2395
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
2396
|
+
source: string;
|
|
2397
|
+
};
|
|
2398
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
2399
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
2400
|
+
};
|
|
2401
|
+
};
|
|
2402
|
+
readonly openBrowser: {
|
|
2403
|
+
readonly logLevel: {
|
|
2404
|
+
cliFlag: "log";
|
|
2405
|
+
name: string;
|
|
2406
|
+
ssrName: string;
|
|
2407
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
2408
|
+
docLink: string;
|
|
2409
|
+
getValue: ({ commandLine }: {
|
|
2410
|
+
commandLine: Record<string, unknown>;
|
|
2411
|
+
}) => {
|
|
2412
|
+
value: import("./log-level").LogLevel;
|
|
2413
|
+
source: string;
|
|
2414
|
+
};
|
|
2415
|
+
setConfig: (newLogLevel: import("./log-level").LogLevel) => void;
|
|
2416
|
+
type: import("./log-level").LogLevel;
|
|
2417
|
+
};
|
|
2418
|
+
readonly onBrowserDownload: {
|
|
2419
|
+
name: string;
|
|
2420
|
+
cliFlag: "on-browser-download";
|
|
2421
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
2422
|
+
ssrName: "onBrowserDownload";
|
|
2423
|
+
docLink: string;
|
|
2424
|
+
type: import(".").OnBrowserDownload;
|
|
2425
|
+
getValue: () => never;
|
|
2426
|
+
setConfig: () => never;
|
|
2427
|
+
};
|
|
2428
|
+
readonly chromeMode: {
|
|
2429
|
+
cliFlag: "chrome-mode";
|
|
2430
|
+
name: string;
|
|
2431
|
+
ssrName: string;
|
|
2432
|
+
description: () => import("react/jsx-runtime").JSX.Element;
|
|
2433
|
+
docLink: string;
|
|
2434
|
+
getValue: ({ commandLine }: {
|
|
2435
|
+
commandLine: Record<string, unknown>;
|
|
2436
|
+
}) => {
|
|
2437
|
+
value: import("./options/chrome-mode").ChromeMode;
|
|
2438
|
+
source: string;
|
|
2439
|
+
};
|
|
2440
|
+
setConfig: (newChromeMode: import("./options/chrome-mode").ChromeMode) => void;
|
|
2441
|
+
type: import("./options/chrome-mode").ChromeMode;
|
|
2442
|
+
};
|
|
2296
2443
|
};
|
|
2297
2444
|
readonly deploySiteLambda: {
|
|
2298
2445
|
readonly logLevel: {
|
|
@@ -2349,4 +2496,5 @@ export declare const BrowserSafeApis: {
|
|
|
2349
2496
|
logLevels: readonly ["verbose", "info", "warn", "error"];
|
|
2350
2497
|
getOutputCodecOrUndefined: () => import("./codec").CodecOrUndefined;
|
|
2351
2498
|
getExtensionFromAudioCodec: (audioCodec: import("./options/audio-codec").AudioCodec) => "mp3" | "aac" | "wav" | "opus";
|
|
2499
|
+
validChromeModeOptions: readonly ["headless-shell", "chrome-for-testing"];
|
|
2352
2500
|
};
|
package/dist/client.js
CHANGED
|
@@ -12,6 +12,7 @@ const jpeg_quality_1 = require("./jpeg-quality");
|
|
|
12
12
|
const log_level_1 = require("./log-level");
|
|
13
13
|
const options_1 = require("./options");
|
|
14
14
|
const audio_codec_1 = require("./options/audio-codec");
|
|
15
|
+
const chrome_mode_1 = require("./options/chrome-mode");
|
|
15
16
|
const color_space_1 = require("./options/color-space");
|
|
16
17
|
const gl_1 = require("./options/gl");
|
|
17
18
|
const hardware_acceleration_1 = require("./options/hardware-acceleration");
|
|
@@ -52,4 +53,5 @@ exports.BrowserSafeApis = {
|
|
|
52
53
|
logLevels: log_level_1.logLevels,
|
|
53
54
|
getOutputCodecOrUndefined: video_codec_1.getOutputCodecOrUndefined,
|
|
54
55
|
getExtensionFromAudioCodec: audio_codec_1.getExtensionFromAudioCodec,
|
|
56
|
+
validChromeModeOptions: chrome_mode_1.validChromeModeOptions,
|
|
55
57
|
};
|
package/dist/ensure-browser.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { BrowserExecutable } from './browser-executable';
|
|
2
2
|
import type { BrowserSafeApis } from './client';
|
|
3
|
+
import type { ChromeMode } from './options/chrome-mode';
|
|
3
4
|
import type { ToOptions } from './options/option';
|
|
4
5
|
export type BrowserStatus = {
|
|
5
6
|
type: 'user-defined-path';
|
|
6
7
|
path: string;
|
|
7
|
-
} | {
|
|
8
|
-
type: 'local-browser';
|
|
9
|
-
path: string;
|
|
10
8
|
} | {
|
|
11
9
|
type: 'local-puppeteer-browser';
|
|
12
10
|
path: string;
|
|
@@ -16,6 +14,7 @@ export type BrowserStatus = {
|
|
|
16
14
|
type InternalEnsureBrowserOptions = {
|
|
17
15
|
browserExecutable: BrowserExecutable;
|
|
18
16
|
indent: boolean;
|
|
17
|
+
chromeMode: ChromeMode;
|
|
19
18
|
} & ToOptions<typeof BrowserSafeApis.optionsMap.ensureBrowser>;
|
|
20
19
|
export type EnsureBrowserOptions = Partial<{
|
|
21
20
|
browserExecutable: BrowserExecutable;
|
package/dist/ensure-browser.js
CHANGED
|
@@ -7,15 +7,14 @@ exports.ensureBrowser = exports.internalEnsureBrowser = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const BrowserFetcher_1 = require("./browser/BrowserFetcher");
|
|
9
9
|
const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
|
|
10
|
-
const get_local_browser_1 = require("./get-local-browser");
|
|
11
10
|
let currentEnsureBrowserOperation = Promise.resolve();
|
|
12
|
-
const internalEnsureBrowserUncapped = async ({ indent, logLevel, browserExecutable, onBrowserDownload, }) => {
|
|
13
|
-
const status = getBrowserStatus(browserExecutable);
|
|
11
|
+
const internalEnsureBrowserUncapped = async ({ indent, logLevel, browserExecutable, onBrowserDownload, chromeMode, }) => {
|
|
12
|
+
const status = getBrowserStatus({ browserExecutable, chromeMode });
|
|
14
13
|
if (status.type === 'no-browser') {
|
|
15
|
-
const { onProgress, version } = onBrowserDownload();
|
|
16
|
-
await (0, BrowserFetcher_1.downloadBrowser)({ indent, logLevel, onProgress, version });
|
|
14
|
+
const { onProgress, version } = onBrowserDownload({ chromeMode });
|
|
15
|
+
await (0, BrowserFetcher_1.downloadBrowser)({ indent, logLevel, onProgress, version, chromeMode });
|
|
17
16
|
}
|
|
18
|
-
const newStatus = getBrowserStatus(browserExecutable);
|
|
17
|
+
const newStatus = getBrowserStatus({ browserExecutable, chromeMode });
|
|
19
18
|
return newStatus;
|
|
20
19
|
};
|
|
21
20
|
const internalEnsureBrowser = (options) => {
|
|
@@ -23,18 +22,14 @@ const internalEnsureBrowser = (options) => {
|
|
|
23
22
|
return currentEnsureBrowserOperation;
|
|
24
23
|
};
|
|
25
24
|
exports.internalEnsureBrowser = internalEnsureBrowser;
|
|
26
|
-
const getBrowserStatus = (browserExecutable) => {
|
|
25
|
+
const getBrowserStatus = ({ browserExecutable, chromeMode, }) => {
|
|
27
26
|
if (browserExecutable) {
|
|
28
27
|
if (!fs_1.default.existsSync(browserExecutable)) {
|
|
29
28
|
throw new Error(`"browserExecutable" was specified as '${browserExecutable}' but the path doesn't exist. Pass "null" for "browserExecutable" to download a browser automatically.`);
|
|
30
29
|
}
|
|
31
30
|
return { path: browserExecutable, type: 'user-defined-path' };
|
|
32
31
|
}
|
|
33
|
-
const
|
|
34
|
-
if (localBrowser !== null) {
|
|
35
|
-
return { path: localBrowser, type: 'local-browser' };
|
|
36
|
-
}
|
|
37
|
-
const revision = (0, BrowserFetcher_1.getRevisionInfo)();
|
|
32
|
+
const revision = (0, BrowserFetcher_1.getRevisionInfo)(chromeMode);
|
|
38
33
|
if (revision.local && fs_1.default.existsSync(revision.executablePath)) {
|
|
39
34
|
return { path: revision.executablePath, type: 'local-puppeteer-browser' };
|
|
40
35
|
}
|
|
@@ -45,7 +40,7 @@ const getBrowserStatus = (browserExecutable) => {
|
|
|
45
40
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/ensure-browser)
|
|
46
41
|
*/
|
|
47
42
|
const ensureBrowser = (options) => {
|
|
48
|
-
var _a, _b, _c, _d;
|
|
43
|
+
var _a, _b, _c, _d, _e;
|
|
49
44
|
const indent = false;
|
|
50
45
|
const logLevel = (_a = options === null || options === void 0 ? void 0 : options.logLevel) !== null && _a !== void 0 ? _a : 'info';
|
|
51
46
|
return (0, exports.internalEnsureBrowser)({
|
|
@@ -57,6 +52,7 @@ const ensureBrowser = (options) => {
|
|
|
57
52
|
indent: false,
|
|
58
53
|
logLevel,
|
|
59
54
|
}),
|
|
55
|
+
chromeMode: (_e = options === null || options === void 0 ? void 0 : options.chromeMode) !== null && _e !== void 0 ? _e : 'headless-shell',
|
|
60
56
|
});
|
|
61
57
|
};
|
|
62
58
|
exports.ensureBrowser = ensureBrowser;
|
|
@@ -3,8 +3,9 @@ import type { HeadlessBrowser } from './browser/Browser';
|
|
|
3
3
|
import type { Page } from './browser/BrowserPage';
|
|
4
4
|
import type { LogLevel } from './log-level';
|
|
5
5
|
import type { ChromiumOptions } from './open-browser';
|
|
6
|
+
import type { ChromeMode } from './options/chrome-mode';
|
|
6
7
|
import type { OnBrowserDownload } from './options/on-browser-download';
|
|
7
|
-
export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, logLevel, onBrowserDownload, }: {
|
|
8
|
+
export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, logLevel, onBrowserDownload, chromeMode, }: {
|
|
8
9
|
passedInInstance: HeadlessBrowser | undefined;
|
|
9
10
|
browserExecutable: BrowserExecutable | null;
|
|
10
11
|
chromiumOptions: ChromiumOptions;
|
|
@@ -12,6 +13,7 @@ export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable
|
|
|
12
13
|
forceDeviceScaleFactor: number | undefined;
|
|
13
14
|
logLevel: LogLevel;
|
|
14
15
|
onBrowserDownload: OnBrowserDownload;
|
|
16
|
+
chromeMode: ChromeMode;
|
|
15
17
|
}) => Promise<{
|
|
16
18
|
cleanupPage: () => Promise<void>;
|
|
17
19
|
page: Page;
|
|
@@ -4,7 +4,7 @@ exports.getPageAndCleanupFn = void 0;
|
|
|
4
4
|
const browser_1 = require("./browser");
|
|
5
5
|
const logger_1 = require("./logger");
|
|
6
6
|
const open_browser_1 = require("./open-browser");
|
|
7
|
-
const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, logLevel, onBrowserDownload, }) => {
|
|
7
|
+
const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, logLevel, onBrowserDownload, chromeMode, }) => {
|
|
8
8
|
if (passedInInstance) {
|
|
9
9
|
const page = await passedInInstance.newPage(() => null, logLevel, indent);
|
|
10
10
|
return {
|
|
@@ -30,6 +30,7 @@ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromi
|
|
|
30
30
|
viewport: null,
|
|
31
31
|
logLevel,
|
|
32
32
|
onBrowserDownload,
|
|
33
|
+
chromeMode,
|
|
33
34
|
});
|
|
34
35
|
const browserPage = await browserInstance.newPage(() => null, logLevel, indent);
|
|
35
36
|
return {
|
package/dist/get-codec-name.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const hasSpecifiedUnsupportedHardwareQualifySettings: ({ encoding
|
|
|
9
9
|
encodingMaxRate: string | null;
|
|
10
10
|
encodingBufferSize: string | null;
|
|
11
11
|
crf: unknown;
|
|
12
|
-
}) => "
|
|
12
|
+
}) => "encodingMaxRate" | "encodingBufferSize" | "crf" | null;
|
|
13
13
|
export declare const getCodecName: ({ codec, encodingMaxRate, encodingBufferSize, crf, hardwareAcceleration, logLevel, indent, }: {
|
|
14
14
|
codec: Codec;
|
|
15
15
|
hardwareAcceleration: HardwareAccelerationOption;
|
package/dist/get-compositions.js
CHANGED
|
@@ -81,7 +81,7 @@ const innerGetCompositions = async ({ envVariables, serializedInputPropsWithCust
|
|
|
81
81
|
};
|
|
82
82
|
});
|
|
83
83
|
};
|
|
84
|
-
const internalGetCompositionsRaw = async ({ browserExecutable, chromiumOptions, envVariables, indent, serializedInputPropsWithCustomSchema, onBrowserLog, port, puppeteerInstance, serveUrlOrWebpackUrl, server, timeoutInMilliseconds, logLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, }) => {
|
|
84
|
+
const internalGetCompositionsRaw = async ({ browserExecutable, chromiumOptions, envVariables, indent, serializedInputPropsWithCustomSchema, onBrowserLog, port, puppeteerInstance, serveUrlOrWebpackUrl, server, timeoutInMilliseconds, logLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }) => {
|
|
85
85
|
const { page, cleanupPage } = await (0, get_browser_instance_1.getPageAndCleanupFn)({
|
|
86
86
|
passedInInstance: puppeteerInstance,
|
|
87
87
|
browserExecutable,
|
|
@@ -90,6 +90,7 @@ const internalGetCompositionsRaw = async ({ browserExecutable, chromiumOptions,
|
|
|
90
90
|
indent,
|
|
91
91
|
logLevel,
|
|
92
92
|
onBrowserDownload,
|
|
93
|
+
chromeMode,
|
|
93
94
|
});
|
|
94
95
|
const cleanup = [cleanupPage];
|
|
95
96
|
return new Promise((resolve, reject) => {
|
|
@@ -130,6 +131,7 @@ const internalGetCompositionsRaw = async ({ browserExecutable, chromiumOptions,
|
|
|
130
131
|
offthreadVideoCacheSizeInBytes,
|
|
131
132
|
binariesDirectory,
|
|
132
133
|
onBrowserDownload,
|
|
134
|
+
chromeMode,
|
|
133
135
|
});
|
|
134
136
|
})
|
|
135
137
|
.then((comp) => {
|
|
@@ -154,7 +156,7 @@ const getCompositions = (serveUrlOrWebpackUrl, config) => {
|
|
|
154
156
|
if (!serveUrlOrWebpackUrl) {
|
|
155
157
|
throw new Error('No serve URL or webpack bundle directory was passed to getCompositions().');
|
|
156
158
|
}
|
|
157
|
-
const { browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, logLevel: passedLogLevel, onBrowserDownload, binariesDirectory, offthreadVideoCacheSizeInBytes, } = config !== null && config !== void 0 ? config : {};
|
|
159
|
+
const { browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, logLevel: passedLogLevel, onBrowserDownload, binariesDirectory, offthreadVideoCacheSizeInBytes, chromeMode, } = config !== null && config !== void 0 ? config : {};
|
|
158
160
|
const indent = false;
|
|
159
161
|
const logLevel = passedLogLevel !== null && passedLogLevel !== void 0 ? passedLogLevel : 'info';
|
|
160
162
|
return (0, exports.internalGetCompositions)({
|
|
@@ -181,6 +183,7 @@ const getCompositions = (serveUrlOrWebpackUrl, config) => {
|
|
|
181
183
|
logLevel,
|
|
182
184
|
api: 'getCompositions()',
|
|
183
185
|
}),
|
|
186
|
+
chromeMode: chromeMode !== null && chromeMode !== void 0 ? chromeMode : 'headless-shell',
|
|
184
187
|
});
|
|
185
188
|
};
|
|
186
189
|
exports.getCompositions = getCompositions;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { BrowserExecutable } from './browser-executable';
|
|
2
2
|
import type { LogLevel } from './log-level';
|
|
3
|
-
|
|
3
|
+
import type { ChromeMode } from './options/chrome-mode';
|
|
4
|
+
export declare const getLocalBrowserExecutable: ({ preferredBrowserExecutable, logLevel, indent, chromeMode, }: {
|
|
4
5
|
preferredBrowserExecutable: BrowserExecutable;
|
|
5
6
|
logLevel: LogLevel;
|
|
6
7
|
indent: boolean;
|
|
8
|
+
chromeMode: ChromeMode;
|
|
7
9
|
}) => string;
|
|
@@ -6,30 +6,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getLocalBrowserExecutable = void 0;
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const BrowserFetcher_1 = require("./browser/BrowserFetcher");
|
|
9
|
-
const get_local_browser_1 = require("./get-local-browser");
|
|
10
9
|
const logger_1 = require("./logger");
|
|
11
|
-
const getBrowserStatus = ({ browserExecutablePath, indent, logLevel, }) => {
|
|
10
|
+
const getBrowserStatus = ({ browserExecutablePath, indent, logLevel, chromeMode, }) => {
|
|
12
11
|
if (browserExecutablePath) {
|
|
13
12
|
if (!node_fs_1.default.existsSync(browserExecutablePath)) {
|
|
14
13
|
logger_1.Log.warn({ indent, logLevel }, `Browser executable was specified as '${browserExecutablePath}' but the path doesn't exist.`);
|
|
15
14
|
}
|
|
16
15
|
return { path: browserExecutablePath, type: 'user-defined-path' };
|
|
17
16
|
}
|
|
18
|
-
const
|
|
19
|
-
if (localBrowser !== null) {
|
|
20
|
-
return { path: localBrowser, type: 'local-browser' };
|
|
21
|
-
}
|
|
22
|
-
const revision = (0, BrowserFetcher_1.getRevisionInfo)();
|
|
17
|
+
const revision = (0, BrowserFetcher_1.getRevisionInfo)(chromeMode);
|
|
23
18
|
if (revision.local && node_fs_1.default.existsSync(revision.executablePath)) {
|
|
24
19
|
return { path: revision.executablePath, type: 'local-puppeteer-browser' };
|
|
25
20
|
}
|
|
26
21
|
return { type: 'no-browser' };
|
|
27
22
|
};
|
|
28
|
-
const getLocalBrowserExecutable = ({ preferredBrowserExecutable, logLevel, indent, }) => {
|
|
23
|
+
const getLocalBrowserExecutable = ({ preferredBrowserExecutable, logLevel, indent, chromeMode, }) => {
|
|
29
24
|
const status = getBrowserStatus({
|
|
30
25
|
browserExecutablePath: preferredBrowserExecutable,
|
|
31
26
|
indent,
|
|
32
27
|
logLevel,
|
|
28
|
+
chromeMode,
|
|
33
29
|
});
|
|
34
30
|
if (status.type === 'no-browser') {
|
|
35
31
|
throw new TypeError('No browser found for rendering frames! Please open a GitHub issue and describe ' +
|