@remotion/cloudrun 4.0.380 → 4.0.381

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,7 +14,7 @@ const cloudrun_crash_logs_1 = require("../../helpers/cloudrun-crash-logs");
14
14
  const log_1 = require("../../log");
15
15
  const renderArgsCheck_1 = require("./helpers/renderArgsCheck");
16
16
  exports.RENDER_COMMAND = 'render';
17
- const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, numberOfGifLoopsOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, metadataOption, mediaCacheSizeInBytesOption, } = client_1.BrowserSafeApis.options;
17
+ const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, numberOfGifLoopsOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, metadataOption, mediaCacheSizeInBytesOption, darkModeOption, } = client_1.BrowserSafeApis.options;
18
18
  const renderCommand = async (args, remotionRoot, logLevel) => {
19
19
  var _a, _b, _c, _d;
20
20
  const { serveUrl, cloudRunUrl, outName, forceBucketName, downloadName, privacy, region, } = await (0, renderArgsCheck_1.renderArgsCheck)(exports.RENDER_COMMAND, args, logLevel);
@@ -56,6 +56,9 @@ const renderCommand = async (args, remotionRoot, logLevel) => {
56
56
  const mediaCacheSizeInBytes = mediaCacheSizeInBytesOption.getValue({
57
57
  commandLine: cli_1.CliInternals.parsedCli,
58
58
  }).value;
59
+ const darkMode = darkModeOption.getValue({
60
+ commandLine: cli_1.CliInternals.parsedCli,
61
+ }).value;
59
62
  let composition = args[1];
60
63
  const chromiumOptions = {
61
64
  disableWebSecurity,
@@ -64,6 +67,7 @@ const renderCommand = async (args, remotionRoot, logLevel) => {
64
67
  headless,
65
68
  ignoreCertificateErrors,
66
69
  userAgent,
70
+ darkMode,
67
71
  };
68
72
  if (!composition) {
69
73
  log_1.Log.info({ indent: false, logLevel }, 'No compositions passed. Fetching compositions...');
@@ -13,7 +13,7 @@ const cloudrun_crash_logs_1 = require("../helpers/cloudrun-crash-logs");
13
13
  const log_1 = require("../log");
14
14
  const renderArgsCheck_1 = require("./render/helpers/renderArgsCheck");
15
15
  exports.STILL_COMMAND = 'still';
16
- const { offthreadVideoCacheSizeInBytesOption, scaleOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, delayRenderTimeoutInMillisecondsOption, headlessOption, binariesDirectoryOption, mediaCacheSizeInBytesOption, } = client_1.BrowserSafeApis.options;
16
+ const { offthreadVideoCacheSizeInBytesOption, scaleOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, delayRenderTimeoutInMillisecondsOption, headlessOption, binariesDirectoryOption, mediaCacheSizeInBytesOption, darkModeOption, } = client_1.BrowserSafeApis.options;
17
17
  const stillCommand = async (args, remotionRoot, logLevel) => {
18
18
  var _a, _b;
19
19
  const { serveUrl, cloudRunUrl, outName, forceBucketName, privacy, downloadName, region, } = await (0, renderArgsCheck_1.renderArgsCheck)(exports.STILL_COMMAND, args, logLevel);
@@ -30,6 +30,9 @@ const stillCommand = async (args, remotionRoot, logLevel) => {
30
30
  const headless = headlessOption.getValue({
31
31
  commandLine: cli_1.CliInternals.parsedCli,
32
32
  }).value;
33
+ const darkMode = darkModeOption.getValue({
34
+ commandLine: cli_1.CliInternals.parsedCli,
35
+ }).value;
33
36
  const chromiumOptions = {
34
37
  disableWebSecurity,
35
38
  enableMultiProcessOnLinux,
@@ -37,6 +40,7 @@ const stillCommand = async (args, remotionRoot, logLevel) => {
37
40
  headless,
38
41
  ignoreCertificateErrors,
39
42
  userAgent,
43
+ darkMode,
40
44
  };
41
45
  const offthreadVideoCacheSizeInBytes = offthreadVideoCacheSizeInBytesOption.getValue({
42
46
  commandLine: cli_1.CliInternals.parsedCli,
@@ -46,18 +46,21 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
46
46
  gl: z.ZodNullable<z.ZodOptional<z.ZodEnum<["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"]>>>;
47
47
  headless: z.ZodOptional<z.ZodBoolean>;
48
48
  userAgent: z.ZodNullable<z.ZodOptional<z.ZodString>>;
49
+ darkMode: z.ZodOptional<z.ZodBoolean>;
49
50
  }, "strip", z.ZodTypeAny, {
50
51
  ignoreCertificateErrors?: boolean | undefined;
51
52
  disableWebSecurity?: boolean | undefined;
52
53
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
53
54
  headless?: boolean | undefined;
54
55
  userAgent?: string | null | undefined;
56
+ darkMode?: boolean | undefined;
55
57
  }, {
56
58
  ignoreCertificateErrors?: boolean | undefined;
57
59
  disableWebSecurity?: boolean | undefined;
58
60
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
59
61
  headless?: boolean | undefined;
60
62
  userAgent?: string | null | undefined;
63
+ darkMode?: boolean | undefined;
61
64
  }>>;
62
65
  muted: z.ZodBoolean;
63
66
  outputBucket: z.ZodString;
@@ -155,6 +158,7 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
155
158
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
156
159
  headless?: boolean | undefined;
157
160
  userAgent?: string | null | undefined;
161
+ darkMode?: boolean | undefined;
158
162
  } | undefined;
159
163
  outName?: string | undefined;
160
164
  privacy?: "public" | "private" | "no-acl" | undefined;
@@ -214,6 +218,7 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
214
218
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
215
219
  headless?: boolean | undefined;
216
220
  userAgent?: string | null | undefined;
221
+ darkMode?: boolean | undefined;
217
222
  } | undefined;
218
223
  outName?: string | undefined;
219
224
  privacy?: "public" | "private" | "no-acl" | undefined;
@@ -243,18 +248,21 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
243
248
  gl: z.ZodNullable<z.ZodOptional<z.ZodEnum<["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"]>>>;
244
249
  headless: z.ZodOptional<z.ZodBoolean>;
245
250
  userAgent: z.ZodNullable<z.ZodOptional<z.ZodString>>;
251
+ darkMode: z.ZodOptional<z.ZodBoolean>;
246
252
  }, "strip", z.ZodTypeAny, {
247
253
  ignoreCertificateErrors?: boolean | undefined;
248
254
  disableWebSecurity?: boolean | undefined;
249
255
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
250
256
  headless?: boolean | undefined;
251
257
  userAgent?: string | null | undefined;
258
+ darkMode?: boolean | undefined;
252
259
  }, {
253
260
  ignoreCertificateErrors?: boolean | undefined;
254
261
  disableWebSecurity?: boolean | undefined;
255
262
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
256
263
  headless?: boolean | undefined;
257
264
  userAgent?: string | null | undefined;
265
+ darkMode?: boolean | undefined;
258
266
  }>>;
259
267
  outputBucket: z.ZodString;
260
268
  outName: z.ZodNullable<z.ZodString>;
@@ -332,6 +340,7 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
332
340
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
333
341
  headless?: boolean | undefined;
334
342
  userAgent?: string | null | undefined;
343
+ darkMode?: boolean | undefined;
335
344
  } | undefined;
336
345
  metadata?: Record<string, string> | null | undefined;
337
346
  renderIdOverride?: string | null | undefined;
@@ -374,6 +383,7 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<"type", [z.ZodObje
374
383
  gl?: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null | undefined;
375
384
  headless?: boolean | undefined;
376
385
  userAgent?: string | null | undefined;
386
+ darkMode?: boolean | undefined;
377
387
  } | undefined;
378
388
  metadata?: Record<string, string> | null | undefined;
379
389
  renderIdOverride?: string | null | undefined;
@@ -16,6 +16,7 @@ const chromiumOptions = zod_1.z.object({
16
16
  gl: zod_1.z.enum(client_1.BrowserSafeApis.validOpenGlRenderers).optional().nullable(),
17
17
  headless: zod_1.z.boolean().optional(),
18
18
  userAgent: zod_1.z.string().optional().nullable(),
19
+ darkMode: zod_1.z.boolean().optional(),
19
20
  });
20
21
  const logLevel = zod_1.z.enum(client_1.BrowserSafeApis.logLevels);
21
22
  const downloadBehavior = zod_1.z.discriminatedUnion('type', [
@@ -10,7 +10,7 @@ const get_composition_from_body_1 = require("./helpers/get-composition-from-body
10
10
  const get_download_behavior_setting_1 = require("./helpers/get-download-behavior-setting");
11
11
  const write_cloudrun_error_1 = require("./helpers/write-cloudrun-error");
12
12
  const renderMediaSingleThread = async (body, res) => {
13
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
13
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
14
14
  if (body.type !== 'media') {
15
15
  throw new Error('expected type media');
16
16
  }
@@ -70,8 +70,13 @@ const renderMediaSingleThread = async (body, res) => {
70
70
  res.writeHead(200, { 'Content-Type': 'text/html' });
71
71
  const actualChromiumOptions = {
72
72
  ...body.chromiumOptions,
73
+ ignoreCertificateErrors: (_c = (_b = body.chromiumOptions) === null || _b === void 0 ? void 0 : _b.ignoreCertificateErrors) !== null && _c !== void 0 ? _c : false,
74
+ disableWebSecurity: (_e = (_d = body.chromiumOptions) === null || _d === void 0 ? void 0 : _d.disableWebSecurity) !== null && _e !== void 0 ? _e : false,
75
+ headless: (_g = (_f = body.chromiumOptions) === null || _f === void 0 ? void 0 : _f.headless) !== null && _g !== void 0 ? _g : true,
76
+ userAgent: (_j = (_h = body.chromiumOptions) === null || _h === void 0 ? void 0 : _h.userAgent) !== null && _j !== void 0 ? _j : null,
77
+ darkMode: (_l = (_k = body.chromiumOptions) === null || _k === void 0 ? void 0 : _k.darkMode) !== null && _l !== void 0 ? _l : false,
73
78
  // Override the `null` value, which might come from CLI with swANGLE
74
- gl: (_c = (_b = body.chromiumOptions) === null || _b === void 0 ? void 0 : _b.gl) !== null && _c !== void 0 ? _c : 'swangle',
79
+ gl: (_o = (_m = body.chromiumOptions) === null || _m === void 0 ? void 0 : _m.gl) !== null && _o !== void 0 ? _o : 'swangle',
75
80
  enableMultiProcessOnLinux: true,
76
81
  };
77
82
  const onArtifact = () => {
@@ -80,8 +85,8 @@ const renderMediaSingleThread = async (body, res) => {
80
85
  await renderer_1.RenderInternals.internalRenderMedia({
81
86
  composition: {
82
87
  ...composition,
83
- height: (_d = body.forceHeight) !== null && _d !== void 0 ? _d : composition.height,
84
- width: (_e = body.forceWidth) !== null && _e !== void 0 ? _e : composition.width,
88
+ height: (_p = body.forceHeight) !== null && _p !== void 0 ? _p : composition.height,
89
+ width: (_q = body.forceWidth) !== null && _q !== void 0 ? _q : composition.width,
85
90
  },
86
91
  serveUrl: body.serveUrl,
87
92
  codec: body.codec,
@@ -92,17 +97,17 @@ const renderMediaSingleThread = async (body, res) => {
92
97
  indent: undefined,
93
98
  staticBase: null,
94
99
  }).serializedString,
95
- jpegQuality: (_f = body.jpegQuality) !== null && _f !== void 0 ? _f : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
100
+ jpegQuality: (_r = body.jpegQuality) !== null && _r !== void 0 ? _r : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
96
101
  audioCodec: body.audioCodec,
97
- audioBitrate: (_g = body.audioBitrate) !== null && _g !== void 0 ? _g : null,
102
+ audioBitrate: (_s = body.audioBitrate) !== null && _s !== void 0 ? _s : null,
98
103
  videoBitrate: body.videoBitrate,
99
104
  encodingMaxRate: body.encodingMaxRate,
100
105
  encodingBufferSize: body.encodingBufferSize,
101
106
  crf: body.crf,
102
- pixelFormat: (_h = body.pixelFormat) !== null && _h !== void 0 ? _h : renderer_1.RenderInternals.DEFAULT_PIXEL_FORMAT,
103
- imageFormat: (_j = body.imageFormat) !== null && _j !== void 0 ? _j : renderer_1.RenderInternals.DEFAULT_VIDEO_IMAGE_FORMAT,
107
+ pixelFormat: (_t = body.pixelFormat) !== null && _t !== void 0 ? _t : renderer_1.RenderInternals.DEFAULT_PIXEL_FORMAT,
108
+ imageFormat: (_u = body.imageFormat) !== null && _u !== void 0 ? _u : renderer_1.RenderInternals.DEFAULT_VIDEO_IMAGE_FORMAT,
104
109
  scale: body.scale,
105
- proResProfile: (_k = body.proResProfile) !== null && _k !== void 0 ? _k : undefined,
110
+ proResProfile: (_v = body.proResProfile) !== null && _v !== void 0 ? _v : undefined,
106
111
  x264Preset: body.x264Preset,
107
112
  everyNthFrame: body.everyNthFrame,
108
113
  numberOfGifLoops: body.numberOfGifLoops,
@@ -113,9 +118,9 @@ const renderMediaSingleThread = async (body, res) => {
113
118
  muted: body.muted,
114
119
  logLevel: body.logLevel,
115
120
  browserExecutable: null,
116
- timeoutInMilliseconds: (_l = body.delayRenderTimeoutInMilliseconds) !== null && _l !== void 0 ? _l : renderer_1.RenderInternals.DEFAULT_TIMEOUT,
121
+ timeoutInMilliseconds: (_w = body.delayRenderTimeoutInMilliseconds) !== null && _w !== void 0 ? _w : renderer_1.RenderInternals.DEFAULT_TIMEOUT,
117
122
  cancelSignal: undefined,
118
- concurrency: (_m = body.concurrency) !== null && _m !== void 0 ? _m : null,
123
+ concurrency: (_x = body.concurrency) !== null && _x !== void 0 ? _x : null,
119
124
  disallowParallelEncoding: false,
120
125
  enforceAudioTrack: body.enforceAudioTrack,
121
126
  ffmpegOverride: undefined,
@@ -142,7 +147,7 @@ const renderMediaSingleThread = async (body, res) => {
142
147
  throw new Error('Should not download a browser in Cloud Run');
143
148
  },
144
149
  onArtifact,
145
- metadata: (_o = body.metadata) !== null && _o !== void 0 ? _o : null,
150
+ metadata: (_y = body.metadata) !== null && _y !== void 0 ? _y : null,
146
151
  hardwareAcceleration: 'disable',
147
152
  chromeMode: 'headless-shell',
148
153
  onLog: renderer_1.RenderInternals.defaultOnLog,
@@ -153,7 +158,7 @@ const renderMediaSingleThread = async (body, res) => {
153
158
  const uploadedResponse = await storage
154
159
  .bucket(body.outputBucket)
155
160
  .upload(tempFilePath, {
156
- destination: `renders/${renderId}/${(_p = body.outName) !== null && _p !== void 0 ? _p : defaultOutName}`,
161
+ destination: `renders/${renderId}/${(_z = body.outName) !== null && _z !== void 0 ? _z : defaultOutName}`,
157
162
  predefinedAcl: publicUpload ? 'publicRead' : 'projectPrivate',
158
163
  metadata: (0, get_download_behavior_setting_1.getDownloadBehaviorSetting)(body.downloadBehavior),
159
164
  });
@@ -11,7 +11,7 @@ const get_composition_from_body_1 = require("./helpers/get-composition-from-body
11
11
  const get_download_behavior_setting_1 = require("./helpers/get-download-behavior-setting");
12
12
  const write_cloudrun_error_1 = require("./helpers/write-cloudrun-error");
13
13
  const renderStillSingleThread = async (body, res) => {
14
- var _a, _b, _c, _d, _e, _f, _g;
14
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
15
15
  if (body.type !== 'still') {
16
16
  throw new Error('expected type still');
17
17
  }
@@ -29,15 +29,20 @@ const renderStillSingleThread = async (body, res) => {
29
29
  const tempFilePath = '/tmp/still.png';
30
30
  const actualChromiumOptions = {
31
31
  ...body.chromiumOptions,
32
+ darkMode: (_c = (_b = body.chromiumOptions) === null || _b === void 0 ? void 0 : _b.darkMode) !== null && _c !== void 0 ? _c : false,
33
+ disableWebSecurity: (_e = (_d = body.chromiumOptions) === null || _d === void 0 ? void 0 : _d.disableWebSecurity) !== null && _e !== void 0 ? _e : false,
34
+ headless: (_g = (_f = body.chromiumOptions) === null || _f === void 0 ? void 0 : _f.headless) !== null && _g !== void 0 ? _g : true,
35
+ userAgent: (_j = (_h = body.chromiumOptions) === null || _h === void 0 ? void 0 : _h.userAgent) !== null && _j !== void 0 ? _j : null,
36
+ ignoreCertificateErrors: (_l = (_k = body.chromiumOptions) === null || _k === void 0 ? void 0 : _k.ignoreCertificateErrors) !== null && _l !== void 0 ? _l : false,
32
37
  // Override the `null` value, which might come from CLI with swANGLE
33
- gl: (_c = (_b = body.chromiumOptions) === null || _b === void 0 ? void 0 : _b.gl) !== null && _c !== void 0 ? _c : 'swangle',
38
+ gl: (_o = (_m = body.chromiumOptions) === null || _m === void 0 ? void 0 : _m.gl) !== null && _o !== void 0 ? _o : 'swangle',
34
39
  enableMultiProcessOnLinux: true,
35
40
  };
36
41
  await renderer_1.RenderInternals.internalRenderStill({
37
42
  composition: {
38
43
  ...composition,
39
- height: (_d = body.forceHeight) !== null && _d !== void 0 ? _d : composition.height,
40
- width: (_e = body.forceWidth) !== null && _e !== void 0 ? _e : composition.width,
44
+ height: (_p = body.forceHeight) !== null && _p !== void 0 ? _p : composition.height,
45
+ width: (_q = body.forceWidth) !== null && _q !== void 0 ? _q : composition.width,
41
46
  },
42
47
  serveUrl: body.serveUrl,
43
48
  output: tempFilePath,
@@ -47,7 +52,7 @@ const renderStillSingleThread = async (body, res) => {
47
52
  indent: undefined,
48
53
  staticBase: null,
49
54
  }).serializedString,
50
- jpegQuality: (_f = body.jpegQuality) !== null && _f !== void 0 ? _f : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
55
+ jpegQuality: (_r = body.jpegQuality) !== null && _r !== void 0 ? _r : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
51
56
  imageFormat: body.imageFormat,
52
57
  scale: body.scale,
53
58
  envVariables: body.envVariables,
@@ -84,7 +89,7 @@ const renderStillSingleThread = async (body, res) => {
84
89
  const uploadedResponse = await storage
85
90
  .bucket(body.outputBucket)
86
91
  .upload(tempFilePath, {
87
- destination: `renders/${renderId}/${(_g = body.outName) !== null && _g !== void 0 ? _g : 'out.png'}`,
92
+ destination: `renders/${renderId}/${(_s = body.outName) !== null && _s !== void 0 ? _s : 'out.png'}`,
88
93
  predefinedAcl: publicUpload ? 'publicRead' : 'projectPrivate',
89
94
  metadata: (0, get_download_behavior_setting_1.getDownloadBehaviorSetting)(body.downloadBehavior),
90
95
  });
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cloudrun"
4
4
  },
5
5
  "name": "@remotion/cloudrun",
6
- "version": "4.0.380",
6
+ "version": "4.0.381",
7
7
  "description": "Render Remotion videos on Google Cloud Run",
8
8
  "main": "dist/index.js",
9
9
  "sideEffects": false,
@@ -21,17 +21,17 @@
21
21
  "@google-cloud/storage": "7.15.2",
22
22
  "@google-cloud/resource-manager": "5.3.1",
23
23
  "@google-cloud/logging": "11.2.0",
24
- "@remotion/bundler": "4.0.380",
25
- "@remotion/cli": "4.0.380",
26
- "@remotion/renderer": "4.0.380",
24
+ "@remotion/bundler": "4.0.381",
25
+ "@remotion/cli": "4.0.381",
26
+ "@remotion/renderer": "4.0.381",
27
27
  "google-auth-library": "8.7.0",
28
- "remotion": "4.0.380",
28
+ "remotion": "4.0.381",
29
29
  "zod": "3.22.3"
30
30
  },
31
31
  "devDependencies": {
32
- "@remotion/compositor-linux-x64-gnu": "4.0.380",
32
+ "@remotion/compositor-linux-x64-gnu": "4.0.381",
33
33
  "@types/minimist": "1.2.2",
34
- "@remotion/eslint-config-internal": "4.0.380",
34
+ "@remotion/eslint-config-internal": "4.0.381",
35
35
  "eslint": "9.19.0",
36
36
  "@types/node": "20.12.14"
37
37
  },