@remotion/lambda 4.0.0-alpha5 → 4.0.0-alpha7

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 (54) hide show
  1. package/dist/admin/bundle-lambda.js +11 -10
  2. package/dist/admin/generate-etag-list.js +4 -4
  3. package/dist/api/create-function.js +2 -2
  4. package/dist/api/deploy-site.js +2 -2
  5. package/dist/api/download-media.js +2 -2
  6. package/dist/api/get-sites.d.ts +0 -1
  7. package/dist/api/make-lambda-payload.d.ts +41 -0
  8. package/dist/api/make-lambda-payload.js +65 -0
  9. package/dist/api/render-media-on-lambda.d.ts +2 -2
  10. package/dist/api/render-media-on-lambda.js +4 -60
  11. package/dist/api/upload-dir.js +7 -7
  12. package/dist/cli/commands/functions/deploy.js +6 -3
  13. package/dist/cli/commands/functions/ls.js +8 -3
  14. package/dist/cli/commands/functions/rm.js +12 -5
  15. package/dist/cli/commands/functions/rmall.js +12 -6
  16. package/dist/cli/commands/quotas/increase.js +2 -2
  17. package/dist/cli/commands/render/render.js +9 -6
  18. package/dist/cli/commands/sites/create.js +4 -1
  19. package/dist/cli/commands/still.js +1 -1
  20. package/dist/cli/help.js +4 -0
  21. package/dist/cli/index.js +3 -3
  22. package/dist/cli/log.d.ts +2 -0
  23. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -4
  24. package/dist/functions/helpers/clean-tmpdir.js +7 -7
  25. package/dist/functions/helpers/concat-videos.js +7 -7
  26. package/dist/functions/helpers/get-browser-instance.js +1 -0
  27. package/dist/functions/helpers/get-chromium-executable-path.js +4 -8
  28. package/dist/functions/helpers/get-files-in-folder.js +5 -5
  29. package/dist/functions/helpers/io.d.ts +1 -1
  30. package/dist/functions/launch.js +10 -12
  31. package/dist/functions/renderer.js +6 -6
  32. package/dist/functions/still.js +6 -6
  33. package/dist/index.d.ts +1 -1
  34. package/dist/internals.d.ts +40 -0
  35. package/dist/internals.js +2 -0
  36. package/dist/shared/aws-clients.js +2 -2
  37. package/dist/shared/call-lambda.js +11 -0
  38. package/dist/shared/function-zip-path.js +2 -2
  39. package/dist/shared/get-etag.js +4 -4
  40. package/dist/shared/hosted-layers.js +0 -84
  41. package/dist/shared/invoke-webhook.d.ts +3 -1
  42. package/dist/shared/invoke-webhook.js +4 -4
  43. package/dist/shared/make-s3-key.js +2 -2
  44. package/dist/shared/make-s3-url.js +2 -2
  45. package/dist/shared/read-dir.js +2 -2
  46. package/dist/shared/serialize-input-props.js +1 -1
  47. package/dist/shared/validate-privacy.js +1 -1
  48. package/package.json +8 -8
  49. package/remotionlambda-arm64.zip +0 -0
  50. package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
  51. package/dist/functions/helpers/get-current-architecture.js +0 -11
  52. package/dist/shared/validate-architecture.d.ts +0 -4
  53. package/dist/shared/validate-architecture.js +0 -14
  54. package/remotionlambda-x64.zip +0 -0
@@ -5,20 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const bundler_1 = require("@remotion/bundler");
7
7
  const compositor_linux_arm64_gnu_1 = require("@remotion/compositor-linux-arm64-gnu");
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
10
  const quit_1 = require("../cli/helpers/quit");
11
11
  const function_zip_path_1 = require("../shared/function-zip-path");
12
12
  const zl = require("zip-lib");
13
13
  const bundleLambda = async () => {
14
- const outdir = path_1.default.join(__dirname, '..', `build-render`);
15
- fs_1.default.mkdirSync(outdir, {
14
+ const outdir = node_path_1.default.join(__dirname, '..', `build-render`);
15
+ node_fs_1.default.mkdirSync(outdir, {
16
16
  recursive: true,
17
17
  });
18
- const outfile = path_1.default.join(outdir, 'index.js');
19
- fs_1.default.rmSync(outdir, { recursive: true });
20
- fs_1.default.mkdirSync(outdir, { recursive: true });
21
- const template = require.resolve(path_1.default.join(__dirname, '..', 'functions', 'index'));
18
+ const outfile = node_path_1.default.join(outdir, 'index.js');
19
+ node_fs_1.default.rmSync(outdir, { recursive: true });
20
+ node_fs_1.default.mkdirSync(outdir, { recursive: true });
21
+ const template = require.resolve(node_path_1.default.join(__dirname, '..', 'functions', 'index'));
22
22
  await bundler_1.BundlerInternals.esbuild.build({
23
23
  platform: 'node',
24
24
  target: 'node16',
@@ -36,9 +36,10 @@ const bundleLambda = async () => {
36
36
  ],
37
37
  });
38
38
  const compositorFile = `${outdir}/compositor`;
39
- fs_1.default.copyFileSync(compositor_linux_arm64_gnu_1.binaryPath, compositorFile);
39
+ node_fs_1.default.copyFileSync(compositor_linux_arm64_gnu_1.binaryPath, compositorFile);
40
+ node_fs_1.default.cpSync(compositor_linux_arm64_gnu_1.ffmpegCwd, `${outdir}/ffmpeg`, { recursive: true });
40
41
  await zl.archiveFolder(outdir, function_zip_path_1.FUNCTION_ZIP_ARM64);
41
- fs_1.default.rmSync(outdir, { recursive: true });
42
+ node_fs_1.default.rmSync(outdir, { recursive: true });
42
43
  };
43
44
  bundleLambda()
44
45
  .then(() => {
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const crypto_1 = __importDefault(require("crypto"));
7
- const fs_1 = require("fs");
8
- const md5 = (data) => crypto_1.default.createHash('md5').update(data).digest('hex');
6
+ const node_crypto_1 = __importDefault(require("node:crypto"));
7
+ const node_fs_1 = require("node:fs");
8
+ const md5 = (data) => node_crypto_1.default.createHash('md5').update(data).digest('hex');
9
9
  const chunks = [];
10
10
  for (let i = 0; i < 2000; i++) {
11
11
  const etag = `"${md5(String(i))}"`;
12
12
  chunks.push(etag);
13
13
  }
14
- (0, fs_1.writeFileSync)('etags.json', JSON.stringify(chunks));
14
+ (0, node_fs_1.writeFileSync)('etags.json', JSON.stringify(chunks));
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFunction = void 0;
4
4
  const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
5
5
  const client_lambda_1 = require("@aws-sdk/client-lambda");
6
- const fs_1 = require("fs");
6
+ const node_fs_1 = require("node:fs");
7
7
  const defaults_1 = require("../defaults");
8
8
  const aws_clients_1 = require("../shared/aws-clients");
9
9
  const hosted_layers_1 = require("../shared/hosted-layers");
@@ -33,7 +33,7 @@ const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, funct
33
33
  const defaultRoleName = `arn:aws:iam::${accountId}:role/${suggested_policy_1.ROLE_NAME}`;
34
34
  const { FunctionName } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.CreateFunctionCommand({
35
35
  Code: {
36
- ZipFile: (0, fs_1.readFileSync)(zipFile),
36
+ ZipFile: (0, node_fs_1.readFileSync)(zipFile),
37
37
  },
38
38
  FunctionName: functionName,
39
39
  Handler: 'index.handler',
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.deploySite = void 0;
7
- const fs_1 = __importDefault(require("fs"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const io_1 = require("../functions/helpers/io");
9
9
  const bundle_site_1 = require("../shared/bundle-site");
10
10
  const constants_1 = require("../shared/constants");
@@ -87,7 +87,7 @@ const deploySite = async ({ bucketName, entryPoint, siteName, options, region, }
87
87
  })),
88
88
  ]);
89
89
  if (!process.env.VITEST) {
90
- fs_1.default.rmSync(bundled, {
90
+ node_fs_1.default.rmSync(bundled, {
91
91
  recursive: true,
92
92
  });
93
93
  }
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.downloadMedia = void 0;
7
7
  const renderer_1 = require("@remotion/renderer");
8
- const path_1 = __importDefault(require("path"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
9
  const expected_out_name_1 = require("../functions/helpers/expected-out-name");
10
10
  const get_render_metadata_1 = require("../functions/helpers/get-render-metadata");
11
11
  const read_with_progress_1 = require("../functions/helpers/read-with-progress");
@@ -32,7 +32,7 @@ const downloadMedia = async (input) => {
32
32
  region: input.region,
33
33
  renderId: input.renderId,
34
34
  });
35
- const outputPath = path_1.default.resolve(process.cwd(), input.outPath);
35
+ const outputPath = node_path_1.default.resolve(process.cwd(), input.outPath);
36
36
  renderer_1.RenderInternals.ensureOutputDirectory(outputPath);
37
37
  const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, input.bucketName, (_a = input.customCredentials) !== null && _a !== void 0 ? _a : null);
38
38
  const { sizeInBytes } = await (0, read_with_progress_1.lambdaDownloadFileWithProgress)({
@@ -9,7 +9,6 @@ declare type Site = {
9
9
  };
10
10
  export declare type GetSitesInput = {
11
11
  region: AwsRegion;
12
- bucketName?: string;
13
12
  };
14
13
  export declare type GetSitesOutput = {
15
14
  sites: Site[];
@@ -0,0 +1,41 @@
1
+ import type { RenderMediaOnLambdaInput } from './render-media-on-lambda';
2
+ export declare const makeLambdaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, downloadBehavior, muted, overwrite, dumpBrowserLogs, jpegQuality, quality, }: RenderMediaOnLambdaInput) => Promise<{
3
+ rendererFunctionName: string | null;
4
+ framesPerLambda: number | null;
5
+ composition: string;
6
+ serveUrl: string;
7
+ inputProps: import("../defaults").SerializedInputProps;
8
+ codec: "h264" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "gif" | "prores";
9
+ imageFormat: "png" | "jpeg" | "none";
10
+ crf: number | undefined;
11
+ envVariables: Record<string, string> | undefined;
12
+ pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le" | undefined;
13
+ proResProfile: "standard" | "4444-xq" | "4444" | "hq" | "light" | "proxy" | undefined;
14
+ jpegQuality: number | undefined;
15
+ maxRetries: number;
16
+ privacy: import("../defaults").Privacy;
17
+ logLevel: "error" | "verbose" | "info" | "warn";
18
+ frameRange: import("@remotion/renderer").FrameRange | null;
19
+ outName: import("../defaults").OutNameInput | null;
20
+ timeoutInMilliseconds: number;
21
+ chromiumOptions: import("@remotion/renderer").ChromiumOptions;
22
+ scale: number;
23
+ everyNthFrame: number;
24
+ numberOfGifLoops: number;
25
+ concurrencyPerLambda: number;
26
+ downloadBehavior: import("../shared/content-disposition-header").DownloadBehavior;
27
+ muted: boolean;
28
+ version: string;
29
+ overwrite: boolean;
30
+ audioBitrate: string | null;
31
+ videoBitrate: string | null;
32
+ webhook: {
33
+ url: string;
34
+ secret: string | null;
35
+ } | null;
36
+ forceHeight: number | null;
37
+ forceWidth: number | null;
38
+ bucketName: string | null;
39
+ audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null;
40
+ dumpBrowserLogs: boolean;
41
+ }>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeLambdaPayload = void 0;
4
+ const version_1 = require("remotion/version");
5
+ const serialize_input_props_1 = require("../shared/serialize-input-props");
6
+ const validate_download_behavior_1 = require("../shared/validate-download-behavior");
7
+ const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
8
+ const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
9
+ const validate_serveurl_1 = require("../shared/validate-serveurl");
10
+ const makeLambdaPayload = async ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, downloadBehavior, muted, overwrite, dumpBrowserLogs, jpegQuality, quality, }) => {
11
+ if (quality) {
12
+ throw new Error('quality has been renamed to jpegQuality. Please rename the option.');
13
+ }
14
+ const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
15
+ (0, validate_serveurl_1.validateServeUrl)(serveUrl);
16
+ (0, validate_frames_per_lambda_1.validateFramesPerLambda)({
17
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
18
+ durationInFrames: 1,
19
+ });
20
+ (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
21
+ const serializedInputProps = await (0, serialize_input_props_1.serializeInputProps)({
22
+ inputProps,
23
+ region,
24
+ type: 'video-or-audio',
25
+ userSpecifiedBucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
26
+ });
27
+ return {
28
+ rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
29
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
30
+ composition,
31
+ serveUrl,
32
+ inputProps: serializedInputProps,
33
+ codec: actualCodec,
34
+ imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
35
+ crf,
36
+ envVariables,
37
+ pixelFormat,
38
+ proResProfile,
39
+ jpegQuality,
40
+ maxRetries: maxRetries !== null && maxRetries !== void 0 ? maxRetries : 1,
41
+ privacy: privacy !== null && privacy !== void 0 ? privacy : 'public',
42
+ logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
43
+ frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
44
+ outName: outName !== null && outName !== void 0 ? outName : null,
45
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
46
+ chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
47
+ scale: scale !== null && scale !== void 0 ? scale : 1,
48
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
49
+ numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
50
+ concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
51
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
52
+ muted: muted !== null && muted !== void 0 ? muted : false,
53
+ version: version_1.VERSION,
54
+ overwrite: overwrite !== null && overwrite !== void 0 ? overwrite : false,
55
+ audioBitrate: audioBitrate !== null && audioBitrate !== void 0 ? audioBitrate : null,
56
+ videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
57
+ webhook: webhook !== null && webhook !== void 0 ? webhook : null,
58
+ forceHeight: forceHeight !== null && forceHeight !== void 0 ? forceHeight : null,
59
+ forceWidth: forceWidth !== null && forceWidth !== void 0 ? forceWidth : null,
60
+ bucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
61
+ audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
62
+ dumpBrowserLogs: dumpBrowserLogs !== null && dumpBrowserLogs !== void 0 ? dumpBrowserLogs : false,
63
+ };
64
+ };
65
+ exports.makeLambdaPayload = makeLambdaPayload;
@@ -74,8 +74,8 @@ export declare type RenderMediaOnLambdaOutput = {
74
74
  * @param params.dumpBrowserLogs Whether to print browser logs to CloudWatch
75
75
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
76
76
  */
77
- export declare const renderMediaOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, jpegQuality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, dumpBrowserLogs, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
77
+ export declare const renderMediaOnLambda: (input: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
78
78
  /**
79
79
  * @deprecated Renamed to renderMediaOnLambda()
80
80
  */
81
- export declare const renderVideoOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, jpegQuality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, dumpBrowserLogs, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
81
+ export declare const renderVideoOnLambda: (input: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
@@ -1,15 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderVideoOnLambda = exports.renderMediaOnLambda = void 0;
4
- const version_1 = require("remotion/version");
5
4
  const call_lambda_1 = require("../shared/call-lambda");
6
5
  const constants_1 = require("../shared/constants");
7
6
  const get_aws_urls_1 = require("../shared/get-aws-urls");
8
- const serialize_input_props_1 = require("../shared/serialize-input-props");
9
- const validate_download_behavior_1 = require("../shared/validate-download-behavior");
10
- const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
11
- const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
12
- const validate_serveurl_1 = require("../shared/validate-serveurl");
7
+ const make_lambda_payload_1 = require("./make-lambda-payload");
13
8
  /**
14
9
  * @description Triggers a render on a lambda given a composition and a lambda function.
15
10
  * @see [Documentation](https://remotion.dev/docs/lambda/rendermediaonlambda)
@@ -30,65 +25,14 @@ const validate_serveurl_1 = require("../shared/validate-serveurl");
30
25
  * @param params.dumpBrowserLogs Whether to print browser logs to CloudWatch
31
26
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
32
27
  */
33
- const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, jpegQuality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, dumpBrowserLogs, }) => {
28
+ const renderMediaOnLambda = async (input) => {
34
29
  var _a;
35
- if (quality) {
36
- throw new Error(`"quality" has been renamed. Use "jpegQuality" instead.`);
37
- }
38
- const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
39
- (0, validate_serveurl_1.validateServeUrl)(serveUrl);
40
- (0, validate_frames_per_lambda_1.validateFramesPerLambda)({
41
- framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
42
- durationInFrames: 1,
43
- });
44
- (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
45
- const serializedInputProps = await (0, serialize_input_props_1.serializeInputProps)({
46
- inputProps,
47
- region,
48
- type: 'video-or-audio',
49
- userSpecifiedBucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
50
- });
30
+ const { functionName, region, rendererFunctionName } = input;
51
31
  try {
52
32
  const res = await (0, call_lambda_1.callLambda)({
53
33
  functionName,
54
34
  type: constants_1.LambdaRoutines.start,
55
- payload: {
56
- rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
57
- framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
58
- composition,
59
- serveUrl,
60
- inputProps: serializedInputProps,
61
- codec: actualCodec,
62
- imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
63
- crf,
64
- envVariables,
65
- pixelFormat,
66
- proResProfile,
67
- jpegQuality,
68
- maxRetries: maxRetries !== null && maxRetries !== void 0 ? maxRetries : 1,
69
- privacy: privacy !== null && privacy !== void 0 ? privacy : 'public',
70
- logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
71
- frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
72
- outName: outName !== null && outName !== void 0 ? outName : null,
73
- timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
74
- chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
75
- scale: scale !== null && scale !== void 0 ? scale : 1,
76
- everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
77
- numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
78
- concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
79
- downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
80
- muted: muted !== null && muted !== void 0 ? muted : false,
81
- version: version_1.VERSION,
82
- overwrite: overwrite !== null && overwrite !== void 0 ? overwrite : false,
83
- audioBitrate: audioBitrate !== null && audioBitrate !== void 0 ? audioBitrate : null,
84
- videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
85
- webhook: webhook !== null && webhook !== void 0 ? webhook : null,
86
- forceHeight: forceHeight !== null && forceHeight !== void 0 ? forceHeight : null,
87
- forceWidth: forceWidth !== null && forceWidth !== void 0 ? forceWidth : null,
88
- bucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
89
- audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
90
- dumpBrowserLogs: dumpBrowserLogs !== null && dumpBrowserLogs !== void 0 ? dumpBrowserLogs : false,
91
- },
35
+ payload: await (0, make_lambda_payload_1.makeLambdaPayload)(input),
92
36
  region,
93
37
  });
94
38
  return {
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.uploadDir = exports.getDirFiles = void 0;
7
7
  const lib_storage_1 = require("@aws-sdk/lib-storage");
8
- const fs_1 = require("fs");
9
8
  const mime_types_1 = __importDefault(require("mime-types"));
10
- const path_1 = __importDefault(require("path"));
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = __importDefault(require("node:path"));
11
11
  const aws_clients_1 = require("../shared/aws-clients");
12
12
  const make_s3_key_1 = require("../shared/make-s3-key");
13
13
  const getDirFiles = (entry) => {
@@ -15,14 +15,14 @@ const getDirFiles = (entry) => {
15
15
  };
16
16
  exports.getDirFiles = getDirFiles;
17
17
  async function getFiles(directory, originalDirectory, toUpload) {
18
- const dirents = await fs_1.promises.readdir(directory, { withFileTypes: true });
18
+ const dirents = await node_fs_1.promises.readdir(directory, { withFileTypes: true });
19
19
  const _files = await Promise.all(dirents
20
20
  .map((dirent) => {
21
- const res = path_1.default.resolve(directory, dirent.name);
21
+ const res = node_path_1.default.resolve(directory, dirent.name);
22
22
  return [dirent, res];
23
23
  })
24
24
  .filter(([dirent, res]) => {
25
- const relative = path_1.default.relative(originalDirectory, res);
25
+ const relative = node_path_1.default.relative(originalDirectory, res);
26
26
  if (dirent.isDirectory()) {
27
27
  return true;
28
28
  }
@@ -32,7 +32,7 @@ async function getFiles(directory, originalDirectory, toUpload) {
32
32
  return true;
33
33
  })
34
34
  .map(async ([dirent, res]) => {
35
- const { size } = await fs_1.promises.stat(res);
35
+ const { size } = await node_fs_1.promises.stat(res);
36
36
  return dirent.isDirectory()
37
37
  ? getFiles(res, originalDirectory, toUpload)
38
38
  : [
@@ -53,7 +53,7 @@ const uploadDir = async ({ bucket, region, localDir, onProgress, keyPrefix, priv
53
53
  const client = (0, aws_clients_1.getS3Client)(region, null);
54
54
  const uploads = files.map((filePath) => {
55
55
  const Key = (0, make_s3_key_1.makeS3Key)(keyPrefix, localDir, filePath.name);
56
- const Body = (0, fs_1.createReadStream)(filePath.name);
56
+ const Body = (0, node_fs_1.createReadStream)(filePath.name);
57
57
  const ContentType = mime_types_1.default.lookup(Key) || 'application/octet-stream';
58
58
  const ACL = privacy === 'no-acl'
59
59
  ? undefined
@@ -39,8 +39,11 @@ CloudWatch Retention Period = ${cloudWatchLogRetentionPeriodInDays} days
39
39
  const output = cli_1.CliInternals.createOverwriteableCliOutput({
40
40
  quiet: cli_1.CliInternals.quietFlagProvided(),
41
41
  cancelSignal: null,
42
+ // No browser logs
43
+ updatesDontOverwrite: false,
44
+ indent: false,
42
45
  });
43
- output.update('Deploying Lambda...');
46
+ output.update('Deploying Lambda...', false);
44
47
  const { functionName, alreadyExisted } = await (0, deploy_function_1.deployFunction)({
45
48
  createCloudWatchLogGroup,
46
49
  region,
@@ -54,10 +57,10 @@ CloudWatch Retention Period = ${cloudWatchLogRetentionPeriodInDays} days
54
57
  cli_1.CliInternals.Log.info(functionName);
55
58
  }
56
59
  if (alreadyExisted) {
57
- output.update(`Already exists as ${functionName}\n`);
60
+ output.update(`Already exists as ${functionName}`, true);
58
61
  }
59
62
  else {
60
- output.update(`Deployed as ${functionName}\n`);
63
+ output.update(`Deployed as ${functionName}\n`, true);
61
64
  }
62
65
  };
63
66
  exports.functionsDeploySubcommand = functionsDeploySubcommand;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.functionsLsCommand = exports.FUNCTIONS_LS_SUBCOMMAND = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
+ const renderer_1 = require("@remotion/renderer");
5
6
  const get_functions_1 = require("../../../api/get-functions");
6
7
  const get_aws_region_1 = require("../../get-aws-region");
7
8
  const NAME_COLS = 70;
@@ -15,8 +16,12 @@ const functionsLsCommand = async () => {
15
16
  const fetchingOutput = cli_1.CliInternals.createOverwriteableCliOutput({
16
17
  quiet: cli_1.CliInternals.quietFlagProvided(),
17
18
  cancelSignal: null,
19
+ updatesDontOverwrite: cli_1.CliInternals.shouldUseNonOverlayingLogger({
20
+ logLevel: renderer_1.RenderInternals.getLogLevel(),
21
+ }),
22
+ indent: false,
18
23
  });
19
- fetchingOutput.update('Getting functions...');
24
+ fetchingOutput.update('Getting functions...', false);
20
25
  const functions = await (0, get_functions_1.getFunctions)({
21
26
  region,
22
27
  compatibleOnly: false,
@@ -29,9 +34,9 @@ const functionsLsCommand = async () => {
29
34
  cli_1.CliInternals.Log.info(functions.map((f) => f.functionName).join(' '));
30
35
  return;
31
36
  }
32
- fetchingOutput.update('Getting function info...');
37
+ fetchingOutput.update('Getting function info...', false);
33
38
  const pluralized = functions.length === 1 ? 'function' : 'functions';
34
- fetchingOutput.update(`${functions.length} ${pluralized} in the ${region} region`);
39
+ fetchingOutput.update(`${functions.length} ${pluralized} in the ${region} region`, true);
35
40
  cli_1.CliInternals.Log.info();
36
41
  cli_1.CliInternals.Log.info(cli_1.CliInternals.chalk.gray([
37
42
  'Name'.padEnd(NAME_COLS, ' '),
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.functionsRmCommand = exports.FUNCTIONS_RM_SUBCOMMAND = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
+ const renderer_1 = require("@remotion/renderer");
5
6
  const delete_function_1 = require("../../../api/delete-function");
6
7
  const get_function_info_1 = require("../../../api/get-function-info");
7
8
  const constants_1 = require("../../../shared/constants");
@@ -29,8 +30,11 @@ const functionsRmCommand = async (args) => {
29
30
  const infoOutput = cli_1.CliInternals.createOverwriteableCliOutput({
30
31
  quiet: cli_1.CliInternals.quietFlagProvided(),
31
32
  cancelSignal: null,
33
+ // No browser logs
34
+ updatesDontOverwrite: false,
35
+ indent: false,
32
36
  });
33
- infoOutput.update('Getting function info...');
37
+ infoOutput.update('Getting function info...', false);
34
38
  const info = await (0, get_function_info_1.getFunctionInfo)({
35
39
  region,
36
40
  functionName,
@@ -40,16 +44,19 @@ const functionsRmCommand = async (args) => {
40
44
  'Memory: '.padEnd(LEFT_COL, ' ') + ' ' + info.memorySizeInMb + 'MB',
41
45
  'Timeout: '.padEnd(LEFT_COL, ' ') + ' ' + info.timeoutInSeconds + 'sec',
42
46
  'Version: '.padEnd(LEFT_COL, ' ') + ' ' + info.version,
43
- ].join('\n'));
44
- log_1.Log.info();
47
+ ].join('\n'), true);
45
48
  await (0, confirm_1.confirmCli)({ delMessage: 'Delete? (Y/n)', allowForceFlag: true });
46
49
  const output = cli_1.CliInternals.createOverwriteableCliOutput({
47
50
  quiet: cli_1.CliInternals.quietFlagProvided(),
48
51
  cancelSignal: null,
52
+ updatesDontOverwrite: cli_1.CliInternals.shouldUseNonOverlayingLogger({
53
+ logLevel: renderer_1.RenderInternals.getLogLevel(),
54
+ }),
55
+ indent: false,
49
56
  });
50
- output.update('Deleting...');
57
+ output.update('Deleting...', false);
51
58
  await (0, delete_function_1.deleteFunction)({ region, functionName });
52
- output.update('Deleted!\n');
59
+ output.update('Deleted!', true);
53
60
  }
54
61
  };
55
62
  exports.functionsRmCommand = functionsRmCommand;
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.functionsRmallCommand = exports.FUNCTIONS_RMALL_SUBCOMMAND = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
+ const renderer_1 = require("@remotion/renderer");
5
6
  const delete_function_1 = require("../../../api/delete-function");
6
7
  const get_function_info_1 = require("../../../api/get-function-info");
7
8
  const get_functions_1 = require("../../../api/get-functions");
8
9
  const get_aws_region_1 = require("../../get-aws-region");
9
10
  const confirm_1 = require("../../helpers/confirm");
10
- const log_1 = require("../../log");
11
11
  exports.FUNCTIONS_RMALL_SUBCOMMAND = 'rmall';
12
12
  const LEFT_COL = 16;
13
13
  const functionsRmallCommand = async () => {
@@ -20,8 +20,11 @@ const functionsRmallCommand = async () => {
20
20
  const infoOutput = cli_1.CliInternals.createOverwriteableCliOutput({
21
21
  quiet: cli_1.CliInternals.quietFlagProvided(),
22
22
  cancelSignal: null,
23
+ // No browser logs
24
+ updatesDontOverwrite: false,
25
+ indent: false,
23
26
  });
24
- infoOutput.update('Getting function info...');
27
+ infoOutput.update('Getting function info...', false);
25
28
  const info = await (0, get_function_info_1.getFunctionInfo)({
26
29
  region,
27
30
  functionName: fun.functionName,
@@ -31,16 +34,19 @@ const functionsRmallCommand = async () => {
31
34
  'Memory: '.padEnd(LEFT_COL, ' ') + ' ' + info.memorySizeInMb + 'MB',
32
35
  'Timeout: '.padEnd(LEFT_COL, ' ') + ' ' + info.timeoutInSeconds + 'sec',
33
36
  'Version: '.padEnd(LEFT_COL, ' ') + ' ' + info.version,
34
- ].join('\n'));
35
- log_1.Log.info();
37
+ ].join('\n'), true);
36
38
  await (0, confirm_1.confirmCli)({ delMessage: 'Delete? (Y/n)', allowForceFlag: true });
37
39
  const output = cli_1.CliInternals.createOverwriteableCliOutput({
38
40
  quiet: cli_1.CliInternals.quietFlagProvided(),
39
41
  cancelSignal: null,
42
+ updatesDontOverwrite: cli_1.CliInternals.shouldUseNonOverlayingLogger({
43
+ logLevel: renderer_1.RenderInternals.getLogLevel(),
44
+ }),
45
+ indent: false,
40
46
  });
41
- output.update('Deleting...');
47
+ output.update('Deleting...', false);
42
48
  await (0, delete_function_1.deleteFunction)({ region, functionName: fun.functionName });
43
- output.update('Deleted!\n');
49
+ output.update('Deleted!', true);
44
50
  }
45
51
  };
46
52
  exports.functionsRmallCommand = functionsRmallCommand;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.quotasIncreaseCommand = exports.INCREASE_SUBCOMMAND = void 0;
4
4
  const client_service_quotas_1 = require("@aws-sdk/client-service-quotas");
5
- const process_1 = require("process");
5
+ const node_process_1 = require("node:process");
6
6
  const _1 = require(".");
7
7
  const defaults_1 = require("../../../defaults");
8
8
  const aws_clients_1 = require("../../../shared/aws-clients");
@@ -36,7 +36,7 @@ const quotasIncreaseCommand = async () => {
36
36
  if (openCase) {
37
37
  log_1.Log.warn(`A request to increase it to ${openCase.DesiredValue} is already pending:`);
38
38
  log_1.Log.warn(`https://${region}.console.aws.amazon.com/support/home#/case/?displayId=${openCase.CaseId}`);
39
- (0, process_1.exit)(1);
39
+ (0, node_process_1.exit)(1);
40
40
  }
41
41
  const concurrencyCurrent = (_b = concurrencyLimit.Quota) === null || _b === void 0 ? void 0 : _b.Value;
42
42
  const defaultConcurrency = (_c = defaultConcurrencyLimit.Quota) === null || _c === void 0 ? void 0 : _c.Value;
@@ -109,6 +109,9 @@ const renderCommand = async (args, remotionRoot) => {
109
109
  const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
110
110
  quiet: cli_1.CliInternals.quietFlagProvided(),
111
111
  cancelSignal: null,
112
+ // No browser logs in Lambda
113
+ updatesDontOverwrite: false,
114
+ indent: false,
112
115
  });
113
116
  log_1.Log.info(cli_1.CliInternals.chalk.gray(`bucket = ${res.bucketName}, function = ${functionName}`));
114
117
  log_1.Log.info(cli_1.CliInternals.chalk.gray(`renderId = ${res.renderId}, codec = ${codec} (${reason})`));
@@ -130,7 +133,7 @@ const renderCommand = async (args, remotionRoot) => {
130
133
  verbose,
131
134
  totalFrames: getTotalFrames(status),
132
135
  timeToEncode: status.timeToEncode,
133
- }));
136
+ }), false);
134
137
  // eslint-disable-next-line no-constant-condition
135
138
  while (true) {
136
139
  await (0, sleep_1.sleep)(1000);
@@ -149,7 +152,7 @@ const renderCommand = async (args, remotionRoot) => {
149
152
  verbose,
150
153
  timeToEncode: newStatus.timeToEncode,
151
154
  totalFrames: getTotalFrames(newStatus),
152
- }));
155
+ }), false);
153
156
  if (newStatus.done) {
154
157
  progressBar.update((0, progress_1.makeProgressString)({
155
158
  progress: newProgress,
@@ -159,7 +162,7 @@ const renderCommand = async (args, remotionRoot) => {
159
162
  verbose,
160
163
  timeToEncode: newStatus.timeToEncode,
161
164
  totalFrames: getTotalFrames(newStatus),
162
- }));
165
+ }), false);
163
166
  if (downloadName) {
164
167
  const downloadStart = Date.now();
165
168
  const { outputPath, sizeInBytes } = await (0, download_media_1.downloadMedia)({
@@ -180,7 +183,7 @@ const renderCommand = async (args, remotionRoot) => {
180
183
  verbose,
181
184
  timeToEncode: newStatus.timeToEncode,
182
185
  totalFrames: getTotalFrames(newStatus),
183
- }));
186
+ }), false);
184
187
  },
185
188
  });
186
189
  progressBar.update((0, progress_1.makeProgressString)({
@@ -195,7 +198,7 @@ const renderCommand = async (args, remotionRoot) => {
195
198
  verbose,
196
199
  timeToEncode: newStatus.timeToEncode,
197
200
  totalFrames: getTotalFrames(newStatus),
198
- }));
201
+ }), false);
199
202
  log_1.Log.info();
200
203
  log_1.Log.info();
201
204
  log_1.Log.info('Done!', outputPath, cli_1.CliInternals.formatBytes(sizeInBytes));
@@ -245,7 +248,7 @@ const renderCommand = async (args, remotionRoot) => {
245
248
  stack: err.stack,
246
249
  stackFrame: frames,
247
250
  });
248
- await cli_1.CliInternals.handleCommonError(errorWithStackFrame);
251
+ await cli_1.CliInternals.handleCommonError(errorWithStackFrame, logLevel);
249
252
  }
250
253
  (0, quit_1.quit)(1);
251
254
  }
@@ -33,6 +33,9 @@ const sitesCreateSubcommand = async (args, remotionRoot) => {
33
33
  const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
34
34
  quiet: cli_1.CliInternals.quietFlagProvided(),
35
35
  cancelSignal: null,
36
+ // No browser logs
37
+ updatesDontOverwrite: false,
38
+ indent: false,
36
39
  });
37
40
  const multiProgress = {
38
41
  bundleProgress: {
@@ -54,7 +57,7 @@ const sitesCreateSubcommand = async (args, remotionRoot) => {
54
57
  (0, progress_bar_1.makeBundleProgress)(multiProgress.bundleProgress),
55
58
  (0, progress_bar_1.makeBucketProgress)(multiProgress.bucketProgress),
56
59
  (0, progress_bar_1.makeDeployProgressBar)(multiProgress.deployProgress),
57
- ].join('\n'));
60
+ ].join('\n'), false);
58
61
  };
59
62
  const bucketStart = Date.now();
60
63
  const cliBucketName = (_b = args_1.parsedLambdaCli['force-bucket-name']) !== null && _b !== void 0 ? _b : null;