@remotion/lambda 4.0.0-preload.17 → 4.0.0-reorg.10

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 (158) hide show
  1. package/dist/admin/bundle-lambda.js +1 -0
  2. package/dist/admin/make-layer-public.js +3 -3
  3. package/dist/api/bucket-exists.d.ts +1 -1
  4. package/dist/api/clean-items.d.ts +1 -1
  5. package/dist/api/create-bucket.d.ts +1 -1
  6. package/dist/api/create-function.d.ts +4 -3
  7. package/dist/api/create-function.js +3 -2
  8. package/dist/api/delete-function.d.ts +1 -1
  9. package/dist/api/delete-site.d.ts +1 -1
  10. package/dist/api/deploy-function.d.ts +3 -2
  11. package/dist/api/deploy-function.js +3 -0
  12. package/dist/api/deploy-site.d.ts +3 -3
  13. package/dist/api/deploy-site.js +2 -3
  14. package/dist/api/download-media.d.ts +2 -2
  15. package/dist/api/enable-s3-website.d.ts +1 -1
  16. package/dist/api/estimate-price.d.ts +2 -2
  17. package/dist/api/get-aws-client.d.ts +2 -2
  18. package/dist/api/get-aws-client.js +5 -1
  19. package/dist/api/get-buckets.d.ts +1 -1
  20. package/dist/api/get-function-info.d.ts +2 -2
  21. package/dist/api/get-functions.d.ts +2 -2
  22. package/dist/api/get-or-create-bucket.d.ts +1 -1
  23. package/dist/api/get-regions.d.ts +1 -1
  24. package/dist/api/get-render-progress.d.ts +2 -2
  25. package/dist/api/get-sites.d.ts +2 -2
  26. package/dist/api/iam-validation/role-permissions.d.ts +2 -1
  27. package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
  28. package/dist/api/iam-validation/simulate.d.ts +2 -2
  29. package/dist/api/mock-functions.d.ts +3 -3
  30. package/dist/api/presign-url.d.ts +3 -2
  31. package/dist/api/render-media-on-lambda.d.ts +13 -8
  32. package/dist/api/render-media-on-lambda.js +12 -5
  33. package/dist/api/render-still-on-lambda.d.ts +7 -6
  34. package/dist/api/render-still-on-lambda.js +4 -4
  35. package/dist/api/upload-dir.d.ts +2 -2
  36. package/dist/api/upload-dir.js +2 -1
  37. package/dist/cli/args.d.ts +5 -3
  38. package/dist/cli/commands/functions/deploy.js +6 -2
  39. package/dist/cli/commands/render/progress.d.ts +4 -4
  40. package/dist/cli/commands/render/progress.js +11 -3
  41. package/dist/cli/commands/render/render.js +13 -3
  42. package/dist/cli/commands/sites/create.js +2 -3
  43. package/dist/cli/commands/sites/ls.js +1 -2
  44. package/dist/cli/commands/sites/rm.js +2 -3
  45. package/dist/cli/commands/sites/rmall.js +2 -3
  46. package/dist/cli/commands/still.js +1 -2
  47. package/dist/cli/get-aws-region.d.ts +1 -1
  48. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +2 -2
  49. package/dist/cli/helpers/progress-bar.js +1 -2
  50. package/dist/cli/index.js +11 -1
  51. package/dist/defaults.js +5 -1
  52. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
  53. package/dist/functions/chunk-optimization/collect-data.d.ts +1 -1
  54. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +1 -1
  55. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +1 -1
  56. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +1 -1
  57. package/dist/functions/chunk-optimization/is-valid-profile.js +2 -2
  58. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +1 -1
  59. package/dist/functions/chunk-optimization/optimize-profile.d.ts +1 -1
  60. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +7 -4
  61. package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -6
  62. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +2 -2
  63. package/dist/functions/chunk-optimization/s3-optimization-file.js +1 -0
  64. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +1 -1
  65. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +1 -1
  66. package/dist/functions/chunk-optimization/types.d.ts +2 -1
  67. package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
  68. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
  69. package/dist/functions/helpers/concat-videos.d.ts +6 -4
  70. package/dist/functions/helpers/concat-videos.js +8 -2
  71. package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
  72. package/dist/functions/helpers/create-post-render-data.js +5 -5
  73. package/dist/functions/helpers/delete-chunks.d.ts +3 -3
  74. package/dist/functions/helpers/expected-out-name.d.ts +1 -1
  75. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -2
  76. package/dist/functions/helpers/format-costs-info.d.ts +1 -1
  77. package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
  78. package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
  79. package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
  80. package/dist/functions/helpers/get-encoding-metadata.d.ts +2 -2
  81. package/dist/functions/helpers/get-files-to-delete.js +2 -2
  82. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -2
  83. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +1 -1
  84. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +1 -1
  85. package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
  86. package/dist/functions/helpers/get-progress.d.ts +2 -2
  87. package/dist/functions/helpers/get-progress.js +12 -10
  88. package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
  89. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  90. package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
  91. package/dist/functions/helpers/inspect-errors.d.ts +3 -3
  92. package/dist/functions/helpers/io.d.ts +8 -6
  93. package/dist/functions/helpers/io.js +3 -1
  94. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
  95. package/dist/functions/helpers/read-with-progress.d.ts +3 -2
  96. package/dist/functions/helpers/read-with-progress.js +13 -1
  97. package/dist/functions/helpers/validate-composition.d.ts +5 -4
  98. package/dist/functions/helpers/validate-composition.js +2 -1
  99. package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
  100. package/dist/functions/helpers/write-lambda-error.js +1 -0
  101. package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
  102. package/dist/functions/helpers/write-post-render-data.js +1 -0
  103. package/dist/functions/index.d.ts +3 -2
  104. package/dist/functions/index.js +4 -4
  105. package/dist/functions/info.d.ts +1 -1
  106. package/dist/functions/launch.d.ts +1 -1
  107. package/dist/functions/launch.js +28 -16
  108. package/dist/functions/progress.d.ts +1 -1
  109. package/dist/functions/renderer.d.ts +1 -1
  110. package/dist/functions/renderer.js +16 -11
  111. package/dist/functions/start.d.ts +1 -1
  112. package/dist/functions/start.js +5 -2
  113. package/dist/functions/still.d.ts +1 -1
  114. package/dist/functions/still.js +10 -6
  115. package/dist/index.d.ts +33 -18
  116. package/dist/pricing/price-per-1-s.d.ts +1 -1
  117. package/dist/shared/aws-clients.d.ts +1 -1
  118. package/dist/shared/bundle-site.d.ts +1 -6
  119. package/dist/shared/call-lambda.d.ts +3 -3
  120. package/dist/shared/check-credentials.js +2 -2
  121. package/dist/shared/constants.d.ts +27 -11
  122. package/dist/shared/constants.js +1 -1
  123. package/dist/shared/content-disposition-header.d.ts +7 -0
  124. package/dist/shared/content-disposition-header.js +19 -0
  125. package/dist/shared/convert-to-serve-url.d.ts +1 -1
  126. package/dist/shared/get-account-id.d.ts +1 -1
  127. package/dist/shared/get-function-version.d.ts +2 -2
  128. package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
  129. package/dist/shared/get-most-expensive-chunks.js +25 -0
  130. package/dist/shared/hosted-layers.d.ts +2 -2
  131. package/dist/shared/hosted-layers.js +80 -80
  132. package/dist/shared/make-s3-key.d.ts +1 -0
  133. package/dist/shared/make-s3-key.js +11 -0
  134. package/dist/shared/make-s3-url.d.ts +1 -1
  135. package/dist/shared/random-hash.d.ts +2 -2
  136. package/dist/shared/random-hash.js +1 -1
  137. package/dist/shared/return-values.d.ts +7 -7
  138. package/dist/shared/return-values.js +0 -1
  139. package/dist/shared/stream-to-string.d.ts +2 -1
  140. package/dist/shared/truthy.d.ts +3 -0
  141. package/dist/shared/truthy.js +7 -0
  142. package/dist/shared/validate-aws-region.d.ts +1 -1
  143. package/dist/shared/validate-custom-role-arn.d.ts +1 -0
  144. package/dist/shared/validate-custom-role-arn.js +11 -0
  145. package/dist/shared/validate-download-behavior.d.ts +1 -0
  146. package/dist/shared/validate-download-behavior.js +21 -0
  147. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  148. package/dist/shared/validate-lambda-codec.js +29 -0
  149. package/dist/shared/validate-outname.d.ts +1 -1
  150. package/dist/shared/validate-presign-expiration.d.ts +0 -2
  151. package/dist/shared/validate-presign-expiration.js +7 -7
  152. package/dist/shared/validate-privacy.d.ts +1 -1
  153. package/package.json +10 -12
  154. package/remotionlambda.zip +0 -0
  155. package/dist/cli/helpers/format-bytes.d.ts +0 -6
  156. package/dist/cli/helpers/format-bytes.js +0 -103
  157. package/dist/shared/chunk.d.ts +0 -1
  158. package/dist/shared/chunk.js +0 -11
@@ -25,6 +25,7 @@ const bundleLambda = async () => {
25
25
  bundle: true,
26
26
  outfile,
27
27
  entryPoints: [template],
28
+ treeShaking: true,
28
29
  });
29
30
  await zl.archiveFolder(outdir, function_zip_path_1.FUNCTION_ZIP);
30
31
  fs_1.default.unlinkSync(outfile);
@@ -35,7 +35,7 @@ const layerInfo = {
35
35
  },
36
36
  };
37
37
  const makeLayerPublic = async () => {
38
- const layers = ['remotion', 'ffmpeg', 'chromium'];
38
+ const layers = ['fonts', 'ffmpeg', 'chromium'];
39
39
  for (const architecture of archictures) {
40
40
  for (const region of (0, __1.getRegions)()) {
41
41
  for (const layer of layers) {
@@ -43,14 +43,14 @@ const makeLayerPublic = async () => {
43
43
  const { Version, LayerArn } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.PublishLayerVersionCommand({
44
44
  Content: {
45
45
  S3Bucket: 'remotionlambda-binaries-' + region,
46
- S3Key: `remotion-layer-${layer}-v5-${architecture}.zip`,
46
+ S3Key: `remotion-layer-${layer}-v6-${architecture}.zip`,
47
47
  },
48
48
  LayerName: layerName,
49
49
  LicenseInfo: layer === 'chromium'
50
50
  ? 'Chromium 101, compiled from source. Read Chromium License: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/LICENSE'
51
51
  : layer === 'ffmpeg'
52
52
  ? 'Compiled from FFMPEG source. Read FFMPEG license: https://ffmpeg.org/legal.html'
53
- : 'Contains Amazon Linux .so files and Noto Sans font. Read Noto Sans License: https://fonts.google.com/noto/specimen/Noto+Sans/about',
53
+ : 'Contains Noto Sans font. Read Noto Sans License: https://fonts.google.com/noto/specimen/Noto+Sans/about',
54
54
  CompatibleRuntimes: runtimes,
55
55
  Description: constants_1.CURRENT_VERSION,
56
56
  }));
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const bucketExistsInRegion: ({ bucketName, region, expectedBucketOwner, }: {
3
3
  bucketName: string;
4
4
  region: AwsRegion;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const cleanItems: ({ bucket, onAfterItemDeleted, onBeforeItemDeleted, region, list, }: {
3
3
  bucket: string;
4
4
  region: AwsRegion;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const createBucket: ({ region, bucketName, }: {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
@@ -1,6 +1,6 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaArchitecture } from '../shared/validate-architecture';
3
- export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, }: {
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaArchitecture } from '../shared/validate-architecture';
3
+ export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, customRoleArn, }: {
4
4
  createCloudWatchLogGroup: boolean;
5
5
  region: AwsRegion;
6
6
  zipFile: string;
@@ -12,6 +12,7 @@ export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFil
12
12
  retentionInDays: number;
13
13
  ephemerealStorageInMb: number;
14
14
  architecture: LambdaArchitecture;
15
+ customRoleArn: string;
15
16
  }) => Promise<{
16
17
  FunctionName: string;
17
18
  }>;
@@ -8,7 +8,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");
10
10
  const suggested_policy_1 = require("./iam-validation/suggested-policy");
11
- const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, }) => {
11
+ const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, customRoleArn, }) => {
12
12
  if (createCloudWatchLogGroup) {
13
13
  try {
14
14
  await (0, aws_clients_1.getCloudWatchLogsClient)(region).send(new client_cloudwatch_logs_1.CreateLogGroupCommand({
@@ -29,13 +29,14 @@ const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, funct
29
29
  if (alreadyCreated) {
30
30
  return { FunctionName: functionName };
31
31
  }
32
+ const defaultRoleName = `arn:aws:iam::${accountId}:role/${suggested_policy_1.ROLE_NAME}`;
32
33
  const { FunctionName } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.CreateFunctionCommand({
33
34
  Code: {
34
35
  ZipFile: (0, fs_1.readFileSync)(zipFile),
35
36
  },
36
37
  FunctionName: functionName,
37
38
  Handler: 'index.handler',
38
- Role: `arn:aws:iam::${accountId}:role/${suggested_policy_1.ROLE_NAME}`,
39
+ Role: customRoleArn !== null && customRoleArn !== void 0 ? customRoleArn : defaultRoleName,
39
40
  Runtime: 'nodejs14.x',
40
41
  Description: 'Renders a Remotion video.',
41
42
  MemorySize: memorySizeInMb,
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare type DeleteFunctionInput = {
3
3
  region: AwsRegion;
4
4
  functionName: string;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare type DeleteSiteInput = {
3
3
  bucketName: string;
4
4
  siteName: string;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaArchitecture } from '../shared/validate-architecture';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaArchitecture } from '../shared/validate-architecture';
3
3
  export declare type DeployFunctionInput = {
4
4
  createCloudWatchLogGroup: boolean;
5
5
  cloudWatchLogRetentionPeriodInDays?: number;
@@ -8,6 +8,7 @@ export declare type DeployFunctionInput = {
8
8
  memorySizeInMb: number;
9
9
  architecture: LambdaArchitecture;
10
10
  diskSizeInMb?: number;
11
+ customRoleArn?: string;
11
12
  };
12
13
  export declare type DeployFunctionOutput = {
13
14
  functionName: string;
@@ -7,6 +7,7 @@ const function_zip_path_1 = require("../shared/function-zip-path");
7
7
  const get_account_id_1 = require("../shared/get-account-id");
8
8
  const validate_architecture_1 = require("../shared/validate-architecture");
9
9
  const validate_aws_region_1 = require("../shared/validate-aws-region");
10
+ const validate_custom_role_arn_1 = require("../shared/validate-custom-role-arn");
10
11
  const validate_disk_size_in_mb_1 = require("../shared/validate-disk-size-in-mb");
11
12
  const validate_memory_size_1 = require("../shared/validate-memory-size");
12
13
  const validate_retention_period_1 = require("../shared/validate-retention-period");
@@ -33,6 +34,7 @@ const deployFunction = async (options) => {
33
34
  (0, validate_retention_period_1.validateCloudWatchRetentionPeriod)(options.cloudWatchLogRetentionPeriodInDays);
34
35
  (0, validate_architecture_1.validateArchitecture)(options.architecture);
35
36
  (0, validate_disk_size_in_mb_1.validateDiskSizeInMb)(diskSizeInMb);
37
+ (0, validate_custom_role_arn_1.validateCustomRoleArn)(options.customRoleArn);
36
38
  const fnNameRender = [
37
39
  `${constants_1.RENDER_FN_PREFIX}${constants_1.CURRENT_VERSION}`,
38
40
  `mem${options.memorySizeInMb}mb`,
@@ -60,6 +62,7 @@ const deployFunction = async (options) => {
60
62
  alreadyCreated: Boolean(alreadyDeployed),
61
63
  architecture: options.architecture,
62
64
  ephemerealStorageInMb: diskSizeInMb,
65
+ customRoleArn: options.customRoleArn,
63
66
  });
64
67
  if (!created.FunctionName) {
65
68
  throw new Error('Lambda was created but has no name');
@@ -1,6 +1,6 @@
1
- import { WebpackOverrideFn } from 'remotion';
2
- import { AwsRegion } from '../pricing/aws-regions';
3
- import { UploadDirProgress } from './upload-dir';
1
+ import type { WebpackOverrideFn } from 'remotion';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
+ import type { UploadDirProgress } from './upload-dir';
4
4
  export declare type DeploySiteInput = {
5
5
  entryPoint: string;
6
6
  bucketName: string;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deploySite = void 0;
4
- const remotion_1 = require("remotion");
5
4
  const delete_site_1 = require("../api/delete-site");
6
5
  const bundle_site_1 = require("../shared/bundle-site");
7
6
  const constants_1 = require("../shared/constants");
@@ -46,8 +45,8 @@ const deploySite = async ({ bucketName, entryPoint, siteName, options, region, }
46
45
  });
47
46
  const bundled = await (0, bundle_site_1.bundleSite)(entryPoint, (_a = options === null || options === void 0 ? void 0 : options.onBundleProgress) !== null && _a !== void 0 ? _a : (() => undefined), {
48
47
  publicPath: `/${subFolder}/`,
49
- webpackOverride: (_b = options === null || options === void 0 ? void 0 : options.webpackOverride) !== null && _b !== void 0 ? _b : remotion_1.Internals.getWebpackOverrideFn(),
50
- enableCaching: (_c = options === null || options === void 0 ? void 0 : options.enableCaching) !== null && _c !== void 0 ? _c : remotion_1.Internals.getWebpackCaching(),
48
+ webpackOverride: (_b = options === null || options === void 0 ? void 0 : options.webpackOverride) !== null && _b !== void 0 ? _b : ((f) => f),
49
+ enableCaching: (_c = options === null || options === void 0 ? void 0 : options.enableCaching) !== null && _c !== void 0 ? _c : true,
51
50
  });
52
51
  await Promise.all([
53
52
  (0, upload_dir_1.uploadDir)({
@@ -1,5 +1,5 @@
1
- import { LambdaReadFileProgress } from '../functions/helpers/read-with-progress';
2
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { LambdaReadFileProgress } from '../functions/helpers/read-with-progress';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
3
  export declare type DownloadMediaInput = {
4
4
  region: AwsRegion;
5
5
  bucketName: string;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const enableS3Website: ({ region, bucketName, }: {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaArchitecture } from '../shared/validate-architecture';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaArchitecture } from '../shared/validate-architecture';
3
3
  export declare type EstimatePriceInput = {
4
4
  region: AwsRegion;
5
5
  durationInMiliseconds: number;
@@ -3,8 +3,8 @@ import * as IamSdk from '@aws-sdk/client-iam';
3
3
  import * as LambdaSDK from '@aws-sdk/client-lambda';
4
4
  import * as S3SDK from '@aws-sdk/client-s3';
5
5
  import * as ServiceQuotasSDK from '@aws-sdk/client-service-quotas';
6
- import { AwsRegion } from '../client';
7
- import { ServiceMapping } from '../shared/aws-clients';
6
+ import type { AwsRegion } from '../client';
7
+ import type { ServiceMapping } from '../shared/aws-clients';
8
8
  export declare type GetAwsClientInput<T extends keyof ServiceMapping> = {
9
9
  region: AwsRegion;
10
10
  service: T;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare type BucketWithLocation = {
3
3
  name: string;
4
4
  creationDate: number;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from '../shared/constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaVersions } from '../shared/constants';
3
3
  export declare type FunctionInfo = {
4
4
  functionName: string;
5
5
  timeoutInSeconds: number;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { FunctionInfo } from './get-function-info';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { FunctionInfo } from './get-function-info';
3
3
  export declare type GetFunctionsInput = {
4
4
  region: AwsRegion;
5
5
  compatibleOnly: boolean;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare type GetOrCreateBucketInput = {
3
3
  region: AwsRegion;
4
4
  onBucketEnsured?: () => void;
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  /**
3
3
  * @description Gets an array of all supported AWS regions of this release of Remotion Lambda.
4
4
  * @link https://remotion.dev/docs/lambda/getregions
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { RenderProgress } from '../shared/constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { RenderProgress } from '../shared/constants';
3
3
  export declare type GetRenderInput = {
4
4
  functionName: string;
5
5
  bucketName: string;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { BucketWithLocation } from './get-buckets';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { BucketWithLocation } from './get-buckets';
3
3
  declare type Site = {
4
4
  sizeInBytes: number;
5
5
  lastModified: number | null;
@@ -1,4 +1,5 @@
1
- import { iam, lambda, logs, s3 } from 'aws-policies';
1
+ import type { iam } from 'aws-policies';
2
+ import { lambda, logs, s3 } from 'aws-policies';
2
3
  export declare const rolePermissions: {
3
4
  actions: (s3 | iam | lambda | logs)[];
4
5
  resource: string[];
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../../pricing/aws-regions';
1
+ import type { AwsRegion } from '../../pricing/aws-regions';
2
2
  export declare type EvalDecision = 'allowed' | 'explicitDeny' | 'implicitDeny';
3
3
  export declare type SimulationResult = {
4
4
  decision: EvalDecision;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../../pricing/aws-regions';
2
- import { SimulationResult } from './simulate-rule';
1
+ import type { AwsRegion } from '../../pricing/aws-regions';
2
+ import type { SimulationResult } from './simulate-rule';
3
3
  export declare const logPermissionOutput: (output: SimulationResult) => string;
4
4
  export declare type SimulatePermissionsInput = {
5
5
  region: AwsRegion;
@@ -1,6 +1,6 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from '../shared/constants';
3
- import { FunctionInfo } from './get-function-info';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaVersions } from '../shared/constants';
3
+ import type { FunctionInfo } from './get-function-info';
4
4
  export declare let mockFunctionsStore: (FunctionInfo & {
5
5
  region: AwsRegion;
6
6
  version: LambdaVersions;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- export declare type PresignURLInput = {
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ declare type PresignURLInput = {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
5
5
  objectKey: string;
@@ -17,3 +17,4 @@ export declare type PresignURLInput = {
17
17
  * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
18
  */
19
19
  export declare const presignUrl: ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignURLInput) => Promise<string | null>;
20
+ export {};
@@ -1,14 +1,15 @@
1
- import type { ChromiumOptions } from '@remotion/renderer';
2
- import { FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from 'remotion';
3
- import { AwsRegion } from '../pricing/aws-regions';
4
- import { Privacy } from '../shared/constants';
1
+ import type { ChromiumOptions, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
+ import type { OutNameInput, Privacy } from '../shared/constants';
4
+ import type { DownloadBehavior } from '../shared/content-disposition-header';
5
+ import type { LambdaCodec } from '../shared/validate-lambda-codec';
5
6
  export declare type RenderMediaOnLambdaInput = {
6
7
  region: AwsRegion;
7
8
  functionName: string;
8
9
  serveUrl: string;
9
10
  composition: string;
10
11
  inputProps: unknown;
11
- codec: 'h264-mkv' | 'mp3' | 'aac' | 'wav';
12
+ codec: LambdaCodec;
12
13
  imageFormat: ImageFormat;
13
14
  crf?: number | undefined;
14
15
  envVariables?: Record<string, string>;
@@ -20,10 +21,14 @@ export declare type RenderMediaOnLambdaInput = {
20
21
  framesPerLambda?: number;
21
22
  logLevel?: LogLevel;
22
23
  frameRange?: FrameRange;
23
- outName?: string;
24
+ outName?: OutNameInput;
24
25
  timeoutInMilliseconds?: number;
25
26
  chromiumOptions?: ChromiumOptions;
26
27
  scale?: number;
28
+ everyNthFrame?: number;
29
+ numberOfGifLoops?: number | null;
30
+ concurrencyPerLambda?: number;
31
+ downloadBehavior?: DownloadBehavior | null;
27
32
  };
28
33
  export declare type RenderMediaOnLambdaOutput = {
29
34
  renderId: string;
@@ -47,8 +52,8 @@ export declare type RenderMediaOnLambdaOutput = {
47
52
  * @param params.logLevel Level of logging that Lambda function should perform. Default "info".
48
53
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
49
54
  */
50
- export declare const renderMediaOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
55
+ export declare const renderMediaOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
51
56
  /**
52
57
  * @deprecated Renamed to renderMediaOnLambda()
53
58
  */
54
- export declare const renderVideoOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
59
+ export declare const renderVideoOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderVideoOnLambda = exports.renderMediaOnLambda = void 0;
4
- const remotion_1 = require("remotion");
5
4
  const call_lambda_1 = require("../shared/call-lambda");
6
5
  const constants_1 = require("../shared/constants");
7
6
  const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
7
+ const validate_download_behavior_1 = require("../shared/validate-download-behavior");
8
8
  const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
9
+ const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
9
10
  const validate_serveurl_1 = require("../shared/validate-serveurl");
10
11
  /**
11
12
  * @description Triggers a render on a lambda given a composition and a lambda function.
@@ -25,9 +26,11 @@ const validate_serveurl_1 = require("../shared/validate-serveurl");
25
26
  * @param params.logLevel Level of logging that Lambda function should perform. Default "info".
26
27
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
27
28
  */
28
- const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }) => {
29
+ const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, }) => {
30
+ const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
29
31
  (0, validate_serveurl_1.validateServeUrl)(serveUrl);
30
32
  (0, validate_frames_per_lambda_1.validateFramesPerLambda)(framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null);
33
+ (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
31
34
  const realServeUrl = await (0, convert_to_serve_url_1.convertToServeUrl)(serveUrl, region);
32
35
  const res = await (0, call_lambda_1.callLambda)({
33
36
  functionName,
@@ -37,7 +40,7 @@ const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec,
37
40
  composition,
38
41
  serveUrl: realServeUrl,
39
42
  inputProps,
40
- codec,
43
+ codec: actualCodec,
41
44
  imageFormat,
42
45
  crf,
43
46
  envVariables,
@@ -46,12 +49,16 @@ const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec,
46
49
  quality,
47
50
  maxRetries,
48
51
  privacy,
49
- logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : remotion_1.Internals.Logging.DEFAULT_LOG_LEVEL,
52
+ logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
50
53
  frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
51
54
  outName: outName !== null && outName !== void 0 ? outName : null,
52
- timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : remotion_1.Internals.DEFAULT_PUPPETEER_TIMEOUT,
55
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
53
56
  chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
54
57
  scale: scale !== null && scale !== void 0 ? scale : 1,
58
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
59
+ numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
60
+ concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
61
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
55
62
  },
56
63
  region,
57
64
  });
@@ -1,7 +1,7 @@
1
- import { ChromiumOptions } from '@remotion/renderer';
2
- import { LogLevel, StillImageFormat } from 'remotion';
3
- import { AwsRegion } from '../pricing/aws-regions';
4
- import { CostsInfo } from '../shared/constants';
1
+ import type { ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
+ import type { CostsInfo, OutNameInput } from '../shared/constants';
4
+ import type { DownloadBehavior } from '../shared/content-disposition-header';
5
5
  export declare type RenderStillOnLambdaInput = {
6
6
  region: AwsRegion;
7
7
  functionName: string;
@@ -15,10 +15,11 @@ export declare type RenderStillOnLambdaInput = {
15
15
  quality?: number;
16
16
  frame?: number;
17
17
  logLevel?: LogLevel;
18
- outName?: string;
18
+ outName?: OutNameInput;
19
19
  timeoutInMilliseconds?: number;
20
20
  chromiumOptions?: ChromiumOptions;
21
21
  scale?: number;
22
+ downloadBehavior?: DownloadBehavior;
22
23
  };
23
24
  export declare type RenderStillOnLambdaOutput = {
24
25
  estimatedPrice: CostsInfo;
@@ -43,4 +44,4 @@ export declare type RenderStillOnLambdaOutput = {
43
44
  * @param params.privacy Whether the item in the S3 bucket should be public. Possible values: `"private"` and `"public"`
44
45
  * @returns {Promise<RenderStillOnLambdaOutput>} See documentation for exact response structure.
45
46
  */
46
- export declare const renderStillOnLambda: ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, }: RenderStillOnLambdaInput) => Promise<RenderStillOnLambdaOutput>;
47
+ export declare const renderStillOnLambda: ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, }: RenderStillOnLambdaInput) => Promise<RenderStillOnLambdaOutput>;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderStillOnLambda = void 0;
4
- const remotion_1 = require("remotion");
5
4
  const call_lambda_1 = require("../shared/call-lambda");
6
5
  const constants_1 = require("../shared/constants");
7
6
  const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
@@ -21,7 +20,7 @@ const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
21
20
  * @param params.privacy Whether the item in the S3 bucket should be public. Possible values: `"private"` and `"public"`
22
21
  * @returns {Promise<RenderStillOnLambdaOutput>} See documentation for exact response structure.
23
22
  */
24
- const renderStillOnLambda = async ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, }) => {
23
+ const renderStillOnLambda = async ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, }) => {
25
24
  const realServeUrl = await (0, convert_to_serve_url_1.convertToServeUrl)(serveUrl, region);
26
25
  const res = await (0, call_lambda_1.callLambda)({
27
26
  functionName,
@@ -37,11 +36,12 @@ const renderStillOnLambda = async ({ functionName, serveUrl, inputProps, imageFo
37
36
  frame: frame !== null && frame !== void 0 ? frame : 0,
38
37
  privacy,
39
38
  attempt: 1,
40
- logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : remotion_1.Internals.Logging.DEFAULT_LOG_LEVEL,
39
+ logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
41
40
  outName: outName !== null && outName !== void 0 ? outName : null,
42
- timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : remotion_1.Internals.DEFAULT_PUPPETEER_TIMEOUT,
41
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
43
42
  chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
44
43
  scale: scale !== null && scale !== void 0 ? scale : 1,
44
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
45
45
  },
46
46
  region,
47
47
  });
@@ -1,5 +1,5 @@
1
- import { Privacy } from '../defaults';
2
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { Privacy } from '../defaults';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
3
  export declare type UploadDirProgress = {
4
4
  totalFiles: number;
5
5
  filesUploaded: number;
@@ -10,6 +10,7 @@ const fs_1 = require("fs");
10
10
  const mime_types_1 = __importDefault(require("mime-types"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const aws_clients_1 = require("../shared/aws-clients");
13
+ const make_s3_key_1 = require("../shared/make-s3-key");
13
14
  const getDirFiles = (entry) => {
14
15
  throw new TypeError('should only be executed in test ' + JSON.stringify(entry));
15
16
  };
@@ -38,7 +39,7 @@ const uploadDir = async ({ bucket, region, dir, onProgress, folder, privacy, })
38
39
  }
39
40
  const client = (0, aws_clients_1.getS3Client)(region);
40
41
  const uploads = files.map(async (filePath) => {
41
- const Key = `${folder}/${path_1.default.relative(dir, filePath.name)}`;
42
+ const Key = (0, make_s3_key_1.makeS3Key)(folder, dir, filePath.name);
42
43
  const Body = (0, fs_1.createReadStream)(filePath.name);
43
44
  const ContentType = mime_types_1.default.lookup(Key) || 'application/octet-stream';
44
45
  const ACL = privacy === 'private' ? 'private' : 'public-read';
@@ -1,7 +1,7 @@
1
1
  import minimist from 'minimist';
2
- import { AwsRegion } from '../pricing/aws-regions';
3
- import { Privacy } from '../shared/constants';
4
- import { LambdaArchitecture } from '../shared/validate-architecture';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
+ import type { Privacy } from '../shared/constants';
4
+ import type { LambdaArchitecture } from '../shared/validate-architecture';
5
5
  declare type LambdaCommandLineOptions = {
6
6
  help: boolean;
7
7
  region: AwsRegion;
@@ -19,8 +19,10 @@ declare type LambdaCommandLineOptions = {
19
19
  ['disable-cloudwatch']: boolean;
20
20
  ['max-retries']: number;
21
21
  ['frames-per-lambda']: number;
22
+ ['concurrency-per-lambda']: number;
22
23
  ['out-name']: string | undefined;
23
24
  ['architecture']: LambdaArchitecture;
25
+ ['custom-role-arn']: string | undefined;
24
26
  privacy: Privacy;
25
27
  };
26
28
  export declare const parsedLambdaCli: LambdaCommandLineOptions & minimist.ParsedArgs;
@@ -6,6 +6,7 @@ const log_1 = require("@remotion/cli/dist/log");
6
6
  const deploy_function_1 = require("../../../api/deploy-function");
7
7
  const constants_1 = require("../../../shared/constants");
8
8
  const validate_architecture_1 = require("../../../shared/validate-architecture");
9
+ const validate_custom_role_arn_1 = require("../../../shared/validate-custom-role-arn");
9
10
  const validate_disk_size_in_mb_1 = require("../../../shared/validate-disk-size-in-mb");
10
11
  const validate_memory_size_1 = require("../../../shared/validate-memory-size");
11
12
  const validate_timeout_1 = require("../../../shared/validate-timeout");
@@ -13,18 +14,20 @@ const args_1 = require("../../args");
13
14
  const get_aws_region_1 = require("../../get-aws-region");
14
15
  exports.FUNCTIONS_DEPLOY_SUBCOMMAND = 'deploy';
15
16
  const functionsDeploySubcommand = async () => {
16
- var _a, _b, _c, _d, _e;
17
+ var _a, _b, _c, _d, _e, _f;
17
18
  const region = (0, get_aws_region_1.getAwsRegion)();
18
19
  const timeoutInSeconds = (_a = args_1.parsedLambdaCli.timeout) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_TIMEOUT;
19
20
  const memorySizeInMb = (_b = args_1.parsedLambdaCli.memory) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_MEMORY_SIZE;
20
21
  const diskSizeInMb = (_c = args_1.parsedLambdaCli.disk) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_EPHEMERAL_STORAGE_IN_MB;
21
22
  const architecture = (_d = args_1.parsedLambdaCli.architecture) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_ARCHITECTURE;
23
+ const customRoleArn = (_e = args_1.parsedLambdaCli['custom-role-arn']) !== null && _e !== void 0 ? _e : undefined;
22
24
  const createCloudWatchLogGroup = !args_1.parsedLambdaCli['disable-cloudwatch'];
23
- const cloudWatchLogRetentionPeriodInDays = (_e = args_1.parsedLambdaCli['retention-period']) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_CLOUDWATCH_RETENTION_PERIOD;
25
+ const cloudWatchLogRetentionPeriodInDays = (_f = args_1.parsedLambdaCli['retention-period']) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_CLOUDWATCH_RETENTION_PERIOD;
24
26
  (0, validate_memory_size_1.validateMemorySize)(memorySizeInMb);
25
27
  (0, validate_timeout_1.validateTimeout)(timeoutInSeconds);
26
28
  (0, validate_architecture_1.validateArchitecture)(architecture);
27
29
  (0, validate_disk_size_in_mb_1.validateDiskSizeInMb)(diskSizeInMb);
30
+ (0, validate_custom_role_arn_1.validateCustomRoleArn)(customRoleArn);
28
31
  if (!cli_1.CliInternals.quietFlagProvided()) {
29
32
  log_1.Log.info(cli_1.CliInternals.chalk.gray(`
30
33
  Region = ${region}
@@ -47,6 +50,7 @@ CloudWatch Retention Period = ${cloudWatchLogRetentionPeriodInDays} days
47
50
  cloudWatchLogRetentionPeriodInDays,
48
51
  architecture,
49
52
  diskSizeInMb,
53
+ customRoleArn,
50
54
  });
51
55
  if (cli_1.CliInternals.quietFlagProvided()) {
52
56
  log_1.Log.info(functionName);