@remotion/lambda 4.0.0-alpha.217 → 4.0.0-alpha10

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 (86) hide show
  1. package/dist/admin/bundle-lambda.js +12 -12
  2. package/dist/admin/generate-etag-list.js +4 -4
  3. package/dist/admin/make-layer-public.js +4 -5
  4. package/dist/api/create-bucket.js +34 -1
  5. package/dist/api/create-function.js +4 -4
  6. package/dist/api/delete-function.d.ts +2 -2
  7. package/dist/api/delete-function.js +2 -2
  8. package/dist/api/delete-site.d.ts +4 -4
  9. package/dist/api/delete-site.js +4 -4
  10. package/dist/api/deploy-function.d.ts +8 -7
  11. package/dist/api/deploy-function.js +26 -25
  12. package/dist/api/deploy-site.d.ts +2 -1
  13. package/dist/api/deploy-site.js +7 -4
  14. package/dist/api/download-media.d.ts +1 -1
  15. package/dist/api/download-media.js +3 -3
  16. package/dist/api/get-compositions-on-lambda.d.ts +1 -1
  17. package/dist/api/get-functions.d.ts +3 -3
  18. package/dist/api/get-functions.js +7 -7
  19. package/dist/api/get-or-create-bucket.d.ts +2 -2
  20. package/dist/api/get-or-create-bucket.js +6 -6
  21. package/dist/api/get-render-progress.d.ts +1 -1
  22. package/dist/api/get-render-progress.js +5 -10
  23. package/dist/api/get-sites.d.ts +0 -1
  24. package/dist/api/iam-validation/user-permissions.js +2 -0
  25. package/dist/api/make-lambda-payload.d.ts +5 -0
  26. package/dist/api/make-lambda-payload.js +77 -0
  27. package/dist/api/render-media-on-lambda.d.ts +3 -3
  28. package/dist/api/render-media-on-lambda.js +4 -60
  29. package/dist/api/render-still-on-lambda.d.ts +1 -1
  30. package/dist/api/speculate-function-name.d.ts +3 -3
  31. package/dist/api/speculate-function-name.js +3 -3
  32. package/dist/api/upload-dir.js +7 -7
  33. package/dist/cli/commands/functions/deploy.js +6 -3
  34. package/dist/cli/commands/functions/ls.js +8 -3
  35. package/dist/cli/commands/functions/rm.js +12 -5
  36. package/dist/cli/commands/functions/rmall.js +12 -6
  37. package/dist/cli/commands/quotas/increase.js +2 -2
  38. package/dist/cli/commands/render/render.js +32 -14
  39. package/dist/cli/commands/sites/create.js +5 -1
  40. package/dist/cli/commands/sites/index.js +3 -0
  41. package/dist/cli/commands/still.js +24 -9
  42. package/dist/cli/help.js +4 -0
  43. package/dist/cli/index.js +3 -3
  44. package/dist/cli/log.d.ts +2 -0
  45. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -4
  46. package/dist/functions/helpers/clean-tmpdir.js +7 -7
  47. package/dist/functions/helpers/concat-videos.js +7 -7
  48. package/dist/functions/helpers/get-browser-instance.js +1 -0
  49. package/dist/functions/helpers/get-chromium-executable-path.js +7 -6
  50. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  51. package/dist/functions/helpers/get-files-in-folder.js +5 -5
  52. package/dist/functions/helpers/io.d.ts +8 -2
  53. package/dist/functions/helpers/io.js +22 -2
  54. package/dist/functions/helpers/streamify-response.d.ts +16 -0
  55. package/dist/functions/helpers/streamify-response.js +67 -0
  56. package/dist/functions/helpers/validate-composition.d.ts +4 -3
  57. package/dist/functions/helpers/validate-composition.js +9 -12
  58. package/dist/functions/index.d.ts +1 -18
  59. package/dist/functions/index.js +31 -10
  60. package/dist/functions/launch.js +12 -13
  61. package/dist/functions/renderer.js +6 -6
  62. package/dist/functions/still.js +8 -7
  63. package/dist/index.d.ts +1 -1
  64. package/dist/internals.d.ts +2 -0
  65. package/dist/internals.js +3 -0
  66. package/dist/shared/aws-clients.js +2 -2
  67. package/dist/shared/call-lambda.js +27 -2
  68. package/dist/shared/constants.d.ts +47 -45
  69. package/dist/shared/deserialize-input-props.d.ts +1 -1
  70. package/dist/shared/function-zip-path.js +2 -2
  71. package/dist/shared/get-etag.js +4 -4
  72. package/dist/shared/hosted-layers.js +35 -119
  73. package/dist/shared/invoke-webhook.d.ts +3 -1
  74. package/dist/shared/invoke-webhook.js +4 -4
  75. package/dist/shared/make-s3-key.js +2 -2
  76. package/dist/shared/make-s3-url.js +2 -2
  77. package/dist/shared/read-dir.js +2 -2
  78. package/dist/shared/return-values.d.ts +5 -0
  79. package/dist/shared/serialize-input-props.d.ts +1 -1
  80. package/dist/shared/serialize-input-props.js +1 -1
  81. package/dist/shared/validate-privacy.d.ts +1 -1
  82. package/dist/shared/validate-privacy.js +5 -2
  83. package/package.json +89 -90
  84. package/remotionlambda-arm64.zip +0 -0
  85. package/remotionlambda-x64.zip +0 -0
  86. package/remotionlambda.zip +0 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRenderProgressPayload = exports.makeLambdaRenderMediaPayload = void 0;
4
+ const version_1 = require("remotion/version");
5
+ const defaults_1 = require("../defaults");
6
+ const serialize_input_props_1 = require("../shared/serialize-input-props");
7
+ const validate_download_behavior_1 = require("../shared/validate-download-behavior");
8
+ const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
9
+ const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
10
+ const validate_serveurl_1 = require("../shared/validate-serveurl");
11
+ const makeLambdaRenderMediaPayload = 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, }) => {
12
+ if (quality) {
13
+ throw new Error('quality has been renamed to jpegQuality. Please rename the option.');
14
+ }
15
+ const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
16
+ (0, validate_serveurl_1.validateServeUrl)(serveUrl);
17
+ (0, validate_frames_per_lambda_1.validateFramesPerLambda)({
18
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
19
+ durationInFrames: 1,
20
+ });
21
+ (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
22
+ const serializedInputProps = await (0, serialize_input_props_1.serializeInputProps)({
23
+ inputProps: inputProps !== null && inputProps !== void 0 ? inputProps : {},
24
+ region,
25
+ type: 'video-or-audio',
26
+ userSpecifiedBucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
27
+ });
28
+ return {
29
+ rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
30
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
31
+ composition,
32
+ serveUrl,
33
+ inputProps: serializedInputProps,
34
+ codec: actualCodec,
35
+ imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
36
+ crf,
37
+ envVariables,
38
+ pixelFormat,
39
+ proResProfile,
40
+ jpegQuality,
41
+ maxRetries: maxRetries !== null && maxRetries !== void 0 ? maxRetries : 1,
42
+ privacy: privacy !== null && privacy !== void 0 ? privacy : 'public',
43
+ logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
44
+ frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
45
+ outName: outName !== null && outName !== void 0 ? outName : null,
46
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
47
+ chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
48
+ scale: scale !== null && scale !== void 0 ? scale : 1,
49
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
50
+ numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
51
+ concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
52
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
53
+ muted: muted !== null && muted !== void 0 ? muted : false,
54
+ version: version_1.VERSION,
55
+ overwrite: overwrite !== null && overwrite !== void 0 ? overwrite : false,
56
+ audioBitrate: audioBitrate !== null && audioBitrate !== void 0 ? audioBitrate : null,
57
+ videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
58
+ webhook: webhook !== null && webhook !== void 0 ? webhook : null,
59
+ forceHeight: forceHeight !== null && forceHeight !== void 0 ? forceHeight : null,
60
+ forceWidth: forceWidth !== null && forceWidth !== void 0 ? forceWidth : null,
61
+ bucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
62
+ audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
63
+ dumpBrowserLogs: dumpBrowserLogs !== null && dumpBrowserLogs !== void 0 ? dumpBrowserLogs : false,
64
+ type: defaults_1.LambdaRoutines.start,
65
+ };
66
+ };
67
+ exports.makeLambdaRenderMediaPayload = makeLambdaRenderMediaPayload;
68
+ const getRenderProgressPayload = ({ bucketName, renderId, s3OutputProvider, }) => {
69
+ return {
70
+ type: defaults_1.LambdaRoutines.status,
71
+ bucketName,
72
+ renderId,
73
+ version: version_1.VERSION,
74
+ s3OutputProvider,
75
+ };
76
+ };
77
+ exports.getRenderProgressPayload = getRenderProgressPayload;
@@ -8,7 +8,7 @@ export declare type RenderMediaOnLambdaInput = {
8
8
  functionName: string;
9
9
  serveUrl: string;
10
10
  composition: string;
11
- inputProps?: unknown;
11
+ inputProps?: Record<string, unknown>;
12
12
  codec: LambdaCodec;
13
13
  imageFormat?: VideoImageFormat;
14
14
  crf?: number | undefined;
@@ -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.makeLambdaRenderMediaPayload)(input),
92
36
  region,
93
37
  });
94
38
  return {
@@ -7,7 +7,7 @@ export declare type RenderStillOnLambdaInput = {
7
7
  functionName: string;
8
8
  serveUrl: string;
9
9
  composition: string;
10
- inputProps: unknown;
10
+ inputProps: Record<string, unknown>;
11
11
  imageFormat: StillImageFormat;
12
12
  privacy: Privacy;
13
13
  maxRetries?: number;
@@ -6,9 +6,9 @@ export declare type SpeculateFunctionNameInput = {
6
6
  /**
7
7
  * @description Speculate the name of a lambda function that will be created when you call `deployFunction`, based on the function configuration.
8
8
  * @see [Documentation](https://www.remotion.dev/docs/lambda/speculatefunctionname)
9
- * @param options.memorySizeInMb How much memory is allocated to the Lambda function.
10
- * @param options.diskSizeInMb The amount of storage the function is allocated.
11
- * @param options.timeoutInSeconds Time in seconds until the function times out.
9
+ * @param params.memorySizeInMb How much memory is allocated to the Lambda function.
10
+ * @param params.diskSizeInMb The amount of storage the function is allocated.
11
+ * @param params.timeoutInSeconds Time in seconds until the function times out.
12
12
  * @returns {string} The speculated lambda function name
13
13
  */
14
14
  export declare const speculateFunctionName: ({ memorySizeInMb, diskSizeInMb, timeoutInSeconds, }: SpeculateFunctionNameInput) => string;
@@ -6,9 +6,9 @@ const lambda_version_string_1 = require("../shared/lambda-version-string");
6
6
  /**
7
7
  * @description Speculate the name of a lambda function that will be created when you call `deployFunction`, based on the function configuration.
8
8
  * @see [Documentation](https://www.remotion.dev/docs/lambda/speculatefunctionname)
9
- * @param options.memorySizeInMb How much memory is allocated to the Lambda function.
10
- * @param options.diskSizeInMb The amount of storage the function is allocated.
11
- * @param options.timeoutInSeconds Time in seconds until the function times out.
9
+ * @param params.memorySizeInMb How much memory is allocated to the Lambda function.
10
+ * @param params.diskSizeInMb The amount of storage the function is allocated.
11
+ * @param params.timeoutInSeconds Time in seconds until the function times out.
12
12
  * @returns {string} The speculated lambda function name
13
13
  */
14
14
  const speculateFunctionName = ({ memorySizeInMb, diskSizeInMb, timeoutInSeconds, }) => {
@@ -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;
@@ -31,12 +31,32 @@ const renderCommand = async (args, remotionRoot) => {
31
31
  (0, quit_1.quit)(1);
32
32
  }
33
33
  const region = (0, get_aws_region_1.getAwsRegion)();
34
+ const { chromiumOptions, crf, envVariables, frameRange, inputProps, logLevel, pixelFormat, proResProfile, puppeteerTimeout, jpegQuality, scale, everyNthFrame, numberOfGifLoops, muted, overwrite, audioBitrate, videoBitrate, height, width, browserExecutable, port, } = await cli_1.CliInternals.getCliOptions({
35
+ type: 'series',
36
+ isLambda: true,
37
+ remotionRoot,
38
+ });
34
39
  let composition = args[1];
35
40
  if (!composition) {
36
41
  log_1.Log.info('No compositions passed. Fetching compositions...');
37
42
  (0, validate_serveurl_1.validateServeUrl)(serveUrl);
38
- const comps = await (0, renderer_1.getCompositions)(serveUrl);
39
- const { compositionId } = await cli_1.CliInternals.selectComposition(comps);
43
+ const { compositionId } = await cli_1.CliInternals.getCompositionWithDimensionOverride({
44
+ args,
45
+ compositionIdFromUi: null,
46
+ browserExecutable,
47
+ chromiumOptions,
48
+ downloadMap: undefined,
49
+ envVariables,
50
+ height,
51
+ indent: false,
52
+ inputProps,
53
+ port,
54
+ puppeteerInstance: undefined,
55
+ serveUrlOrWebpackUrl: serveUrl,
56
+ timeoutInMilliseconds: puppeteerTimeout,
57
+ verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
58
+ width,
59
+ });
40
60
  composition = compositionId;
41
61
  }
42
62
  const outName = args_1.parsedLambdaCli['out-name'];
@@ -48,11 +68,6 @@ const renderCommand = async (args, remotionRoot) => {
48
68
  configFile: (_b = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _b !== void 0 ? _b : null,
49
69
  uiCodec: null,
50
70
  });
51
- const { chromiumOptions, crf, envVariables, frameRange, inputProps, logLevel, pixelFormat, proResProfile, puppeteerTimeout, jpegQuality, scale, everyNthFrame, numberOfGifLoops, muted, overwrite, audioBitrate, videoBitrate, height, width, } = await cli_1.CliInternals.getCliOptions({
52
- type: 'series',
53
- isLambda: true,
54
- remotionRoot,
55
- });
56
71
  const imageFormat = cli_1.CliInternals.getVideoImageFormat({
57
72
  codec,
58
73
  uiImageFormat: null,
@@ -61,7 +76,7 @@ const renderCommand = async (args, remotionRoot) => {
61
76
  const maxRetries = (_c = args_1.parsedLambdaCli['max-retries']) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_MAX_RETRIES;
62
77
  (0, validate_retries_1.validateMaxRetries)(maxRetries);
63
78
  const privacy = (_d = args_1.parsedLambdaCli.privacy) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_OUTPUT_PRIVACY;
64
- (0, validate_privacy_1.validatePrivacy)(privacy);
79
+ (0, validate_privacy_1.validatePrivacy)(privacy, true);
65
80
  const framesPerLambda = (_e = args_1.parsedLambdaCli['frames-per-lambda']) !== null && _e !== void 0 ? _e : undefined;
66
81
  (0, validate_frames_per_lambda_1.validateFramesPerLambda)({ framesPerLambda, durationInFrames: 1 });
67
82
  const res = await (0, render_media_on_lambda_1.renderMediaOnLambda)({
@@ -109,6 +124,9 @@ const renderCommand = async (args, remotionRoot) => {
109
124
  const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
110
125
  quiet: cli_1.CliInternals.quietFlagProvided(),
111
126
  cancelSignal: null,
127
+ // No browser logs in Lambda
128
+ updatesDontOverwrite: false,
129
+ indent: false,
112
130
  });
113
131
  log_1.Log.info(cli_1.CliInternals.chalk.gray(`bucket = ${res.bucketName}, function = ${functionName}`));
114
132
  log_1.Log.info(cli_1.CliInternals.chalk.gray(`renderId = ${res.renderId}, codec = ${codec} (${reason})`));
@@ -130,7 +148,7 @@ const renderCommand = async (args, remotionRoot) => {
130
148
  verbose,
131
149
  totalFrames: getTotalFrames(status),
132
150
  timeToEncode: status.timeToEncode,
133
- }));
151
+ }), false);
134
152
  // eslint-disable-next-line no-constant-condition
135
153
  while (true) {
136
154
  await (0, sleep_1.sleep)(1000);
@@ -149,7 +167,7 @@ const renderCommand = async (args, remotionRoot) => {
149
167
  verbose,
150
168
  timeToEncode: newStatus.timeToEncode,
151
169
  totalFrames: getTotalFrames(newStatus),
152
- }));
170
+ }), false);
153
171
  if (newStatus.done) {
154
172
  progressBar.update((0, progress_1.makeProgressString)({
155
173
  progress: newProgress,
@@ -159,7 +177,7 @@ const renderCommand = async (args, remotionRoot) => {
159
177
  verbose,
160
178
  timeToEncode: newStatus.timeToEncode,
161
179
  totalFrames: getTotalFrames(newStatus),
162
- }));
180
+ }), false);
163
181
  if (downloadName) {
164
182
  const downloadStart = Date.now();
165
183
  const { outputPath, sizeInBytes } = await (0, download_media_1.downloadMedia)({
@@ -180,7 +198,7 @@ const renderCommand = async (args, remotionRoot) => {
180
198
  verbose,
181
199
  timeToEncode: newStatus.timeToEncode,
182
200
  totalFrames: getTotalFrames(newStatus),
183
- }));
201
+ }), false);
184
202
  },
185
203
  });
186
204
  progressBar.update((0, progress_1.makeProgressString)({
@@ -195,7 +213,7 @@ const renderCommand = async (args, remotionRoot) => {
195
213
  verbose,
196
214
  timeToEncode: newStatus.timeToEncode,
197
215
  totalFrames: getTotalFrames(newStatus),
198
- }));
216
+ }), false);
199
217
  log_1.Log.info();
200
218
  log_1.Log.info();
201
219
  log_1.Log.info('Done!', outputPath, cli_1.CliInternals.formatBytes(sizeInBytes));
@@ -245,7 +263,7 @@ const renderCommand = async (args, remotionRoot) => {
245
263
  stack: err.stack,
246
264
  stackFrame: frames,
247
265
  });
248
- await cli_1.CliInternals.handleCommonError(errorWithStackFrame);
266
+ await cli_1.CliInternals.handleCommonError(errorWithStackFrame, logLevel);
249
267
  }
250
268
  (0, quit_1.quit)(1);
251
269
  }
@@ -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;
@@ -89,6 +92,7 @@ const sitesCreateSubcommand = async (args, remotionRoot) => {
89
92
  webpackOverride: (_c = config_1.ConfigInternals.getWebpackOverrideFn()) !== null && _c !== void 0 ? _c : ((f) => f),
90
93
  },
91
94
  region: (0, get_aws_region_1.getAwsRegion)(),
95
+ privacy: args_1.parsedLambdaCli.privacy,
92
96
  });
93
97
  const uploadDuration = Date.now() - uploadStart;
94
98
  multiProgress.deployProgress = {
@@ -22,6 +22,9 @@ const printSitesHelp = () => {
22
22
  cli_1.CliInternals.Log.info();
23
23
  cli_1.CliInternals.Log.info(`${constants_1.BINARY_NAME} ${exports.SITES_COMMAND} ${rm_1.SITES_RM_COMMAND} <site-id>`);
24
24
  cli_1.CliInternals.Log.info(cli_1.CliInternals.chalk.gray('Remove a site from the S3 bucket.'));
25
+ cli_1.CliInternals.Log.info();
26
+ cli_1.CliInternals.Log.info(`${constants_1.BINARY_NAME} ${exports.SITES_COMMAND} ${rmall_1.SITES_RMALL_COMMAND}`);
27
+ cli_1.CliInternals.Log.info(cli_1.CliInternals.chalk.gray('Remove all sites from the S3 bucket.'));
25
28
  };
26
29
  const sitesCommand = (args, remotionRoot) => {
27
30
  if (args[0] === ls_1.SITES_LS_SUBCOMMAND) {