@remotion/lambda 4.0.0-oops.3 → 4.0.0-prefetch.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 (184) hide show
  1. package/dist/admin/bundle-lambda.js +1 -0
  2. package/dist/admin/make-layer-public.js +8 -8
  3. package/dist/api/bucket-exists.d.ts +1 -1
  4. package/dist/api/clean-items.d.ts +1 -1
  5. package/dist/api/clean-items.js +2 -5
  6. package/dist/api/create-bucket.d.ts +1 -1
  7. package/dist/api/create-function.d.ts +4 -3
  8. package/dist/api/create-function.js +3 -2
  9. package/dist/api/delete-function.d.ts +1 -1
  10. package/dist/api/delete-site.d.ts +1 -1
  11. package/dist/api/deploy-function.d.ts +3 -2
  12. package/dist/api/deploy-function.js +7 -2
  13. package/dist/api/deploy-site.d.ts +3 -3
  14. package/dist/api/deploy-site.js +2 -3
  15. package/dist/api/download-media.d.ts +2 -2
  16. package/dist/api/enable-s3-website.d.ts +1 -1
  17. package/dist/api/estimate-price.d.ts +2 -2
  18. package/dist/api/get-aws-client.d.ts +2 -2
  19. package/dist/api/get-aws-client.js +5 -1
  20. package/dist/api/get-buckets.d.ts +1 -1
  21. package/dist/api/get-function-info.d.ts +2 -3
  22. package/dist/api/get-functions.d.ts +2 -2
  23. package/dist/api/get-functions.js +2 -1
  24. package/dist/api/get-or-create-bucket.d.ts +1 -1
  25. package/dist/api/get-regions.d.ts +1 -1
  26. package/dist/api/get-render-progress.d.ts +2 -2
  27. package/dist/api/get-render-progress.js +2 -0
  28. package/dist/api/get-sites.d.ts +2 -2
  29. package/dist/api/iam-validation/role-permissions.d.ts +2 -1
  30. package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
  31. package/dist/api/iam-validation/simulate.d.ts +2 -2
  32. package/dist/api/mock-functions.d.ts +6 -7
  33. package/dist/api/presign-url.d.ts +3 -2
  34. package/dist/api/presign-url.js +5 -0
  35. package/dist/api/render-media-on-lambda.d.ts +15 -8
  36. package/dist/api/render-media-on-lambda.js +58 -32
  37. package/dist/api/render-still-on-lambda.d.ts +9 -7
  38. package/dist/api/render-still-on-lambda.js +49 -31
  39. package/dist/api/upload-dir.d.ts +2 -2
  40. package/dist/api/upload-dir.js +9 -4
  41. package/dist/cli/args.d.ts +5 -3
  42. package/dist/cli/commands/functions/deploy.js +8 -3
  43. package/dist/cli/commands/render/progress.d.ts +4 -4
  44. package/dist/cli/commands/render/progress.js +11 -3
  45. package/dist/cli/commands/render/render.js +15 -10
  46. package/dist/cli/commands/sites/create.js +2 -3
  47. package/dist/cli/commands/sites/ls.js +1 -2
  48. package/dist/cli/commands/sites/rm.js +2 -3
  49. package/dist/cli/commands/sites/rmall.js +2 -3
  50. package/dist/cli/commands/still.js +2 -9
  51. package/dist/cli/get-aws-region.d.ts +1 -1
  52. package/dist/cli/get-aws-region.js +2 -1
  53. package/dist/cli/helpers/find-function-name.js +3 -2
  54. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +2 -2
  55. package/dist/cli/helpers/progress-bar.js +1 -2
  56. package/dist/cli/index.js +11 -1
  57. package/dist/defaults.js +5 -1
  58. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
  59. package/dist/functions/chunk-optimization/can-use-optimization.js +2 -2
  60. package/dist/functions/chunk-optimization/collect-data.d.ts +1 -1
  61. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +1 -1
  62. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +1 -1
  63. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +1 -1
  64. package/dist/functions/chunk-optimization/is-valid-profile.js +2 -2
  65. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +1 -1
  66. package/dist/functions/chunk-optimization/optimize-profile.d.ts +1 -1
  67. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +3 -3
  68. package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -6
  69. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +2 -2
  70. package/dist/functions/chunk-optimization/s3-optimization-file.js +1 -0
  71. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +1 -1
  72. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +1 -1
  73. package/dist/functions/chunk-optimization/types.d.ts +2 -2
  74. package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
  75. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
  76. package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
  77. package/dist/functions/helpers/check-if-render-exists.js +14 -0
  78. package/dist/functions/helpers/concat-videos.d.ts +6 -4
  79. package/dist/functions/helpers/concat-videos.js +8 -2
  80. package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
  81. package/dist/functions/helpers/create-post-render-data.js +12 -7
  82. package/dist/functions/helpers/delete-chunks.d.ts +3 -3
  83. package/dist/functions/helpers/expected-out-name.d.ts +1 -1
  84. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -2
  85. package/dist/functions/helpers/find-output-file-in-bucket.js +6 -0
  86. package/dist/functions/helpers/format-costs-info.d.ts +1 -1
  87. package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
  88. package/dist/functions/helpers/get-browser-instance.js +3 -1
  89. package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
  90. package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
  91. package/dist/functions/helpers/get-encoding-metadata.d.ts +2 -2
  92. package/dist/functions/helpers/get-files-to-delete.js +3 -3
  93. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -2
  94. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +8 -3
  95. package/dist/functions/helpers/get-lambdas-invoked-stats.js +8 -8
  96. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +1 -1
  97. package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
  98. package/dist/functions/helpers/get-progress.d.ts +2 -2
  99. package/dist/functions/helpers/get-progress.js +22 -11
  100. package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
  101. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  102. package/dist/functions/helpers/get-retry-stats.js +1 -1
  103. package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
  104. package/dist/functions/helpers/inspect-errors.d.ts +3 -3
  105. package/dist/functions/helpers/io.d.ts +13 -6
  106. package/dist/functions/helpers/io.js +21 -3
  107. package/dist/functions/helpers/min-max.d.ts +1 -1
  108. package/dist/functions/helpers/min-max.js +1 -1
  109. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +2 -2
  110. package/dist/functions/helpers/read-with-progress.d.ts +3 -2
  111. package/dist/functions/helpers/read-with-progress.js +13 -1
  112. package/dist/functions/helpers/validate-composition.d.ts +10 -4
  113. package/dist/functions/helpers/validate-composition.js +7 -1
  114. package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
  115. package/dist/functions/helpers/write-lambda-error.js +1 -0
  116. package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
  117. package/dist/functions/helpers/write-post-render-data.js +1 -0
  118. package/dist/functions/index.d.ts +3 -2
  119. package/dist/functions/index.js +14 -7
  120. package/dist/functions/info.d.ts +2 -2
  121. package/dist/functions/info.js +2 -1
  122. package/dist/functions/launch.d.ts +1 -1
  123. package/dist/functions/launch.js +73 -26
  124. package/dist/functions/progress.d.ts +1 -1
  125. package/dist/functions/progress.js +7 -0
  126. package/dist/functions/renderer.d.ts +1 -1
  127. package/dist/functions/renderer.js +105 -71
  128. package/dist/functions/start.d.ts +6 -2
  129. package/dist/functions/start.js +25 -3
  130. package/dist/functions/still.d.ts +1 -1
  131. package/dist/functions/still.js +26 -7
  132. package/dist/index.d.ts +33 -18
  133. package/dist/pricing/price-per-1-s.d.ts +1 -1
  134. package/dist/shared/aws-clients.d.ts +1 -1
  135. package/dist/shared/bundle-site.d.ts +1 -6
  136. package/dist/shared/call-lambda.d.ts +3 -3
  137. package/dist/shared/check-credentials.js +2 -2
  138. package/dist/shared/constants.d.ts +38 -17
  139. package/dist/shared/constants.js +8 -7
  140. package/dist/shared/content-disposition-header.d.ts +7 -0
  141. package/dist/shared/content-disposition-header.js +19 -0
  142. package/dist/shared/convert-to-serve-url.d.ts +1 -1
  143. package/dist/shared/get-account-id.d.ts +1 -1
  144. package/dist/shared/get-cloudwatch-stream-url.d.ts +8 -0
  145. package/dist/shared/get-cloudwatch-stream-url.js +7 -0
  146. package/dist/shared/get-function-version.d.ts +2 -3
  147. package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
  148. package/dist/shared/get-most-expensive-chunks.js +25 -0
  149. package/dist/shared/hosted-layers.d.ts +2 -2
  150. package/dist/shared/hosted-layers.js +60 -60
  151. package/dist/shared/is-in-lambda.js +5 -1
  152. package/dist/shared/lambda-version-string.d.ts +1 -0
  153. package/dist/shared/lambda-version-string.js +7 -0
  154. package/dist/shared/make-s3-key.d.ts +1 -0
  155. package/dist/shared/make-s3-key.js +11 -0
  156. package/dist/shared/make-s3-url.d.ts +1 -1
  157. package/dist/shared/p-limit.d.ts +1 -0
  158. package/dist/shared/p-limit.js +57 -0
  159. package/dist/shared/random-hash.d.ts +2 -2
  160. package/dist/shared/random-hash.js +1 -1
  161. package/dist/shared/return-values.d.ts +7 -7
  162. package/dist/shared/return-values.js +0 -1
  163. package/dist/shared/stream-to-string.d.ts +2 -1
  164. package/dist/shared/truthy.d.ts +3 -0
  165. package/dist/shared/truthy.js +7 -0
  166. package/dist/shared/validate-aws-region.d.ts +1 -1
  167. package/dist/shared/validate-custom-role-arn.d.ts +1 -0
  168. package/dist/shared/validate-custom-role-arn.js +11 -0
  169. package/dist/shared/validate-download-behavior.d.ts +1 -0
  170. package/dist/shared/validate-download-behavior.js +21 -0
  171. package/dist/shared/validate-frames-per-lambda.js +1 -1
  172. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  173. package/dist/shared/validate-lambda-codec.js +30 -0
  174. package/dist/shared/validate-outname.d.ts +1 -1
  175. package/dist/shared/validate-presign-expiration.d.ts +0 -2
  176. package/dist/shared/validate-presign-expiration.js +7 -7
  177. package/dist/shared/validate-privacy.d.ts +1 -1
  178. package/dist/shared/validate-privacy.js +2 -2
  179. package/package.json +13 -14
  180. package/remotionlambda.zip +0 -0
  181. package/dist/cli/helpers/format-bytes.d.ts +0 -6
  182. package/dist/cli/helpers/format-bytes.js +0 -103
  183. package/dist/shared/chunk.d.ts +0 -1
  184. 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);
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_lambda_1 = require("@aws-sdk/client-lambda");
4
4
  const aws_policies_1 = require("aws-policies");
5
- const __1 = require("..");
5
+ const version_1 = require("remotion/version");
6
+ const get_regions_1 = require("../api/get-regions");
6
7
  const quit_1 = require("../cli/helpers/quit");
7
8
  const aws_clients_1 = require("../shared/aws-clients");
8
- const constants_1 = require("../shared/constants");
9
9
  const runtimes = ['nodejs14.x'];
10
10
  const archictures = ['arm64', 'x86_64'];
11
11
  const layerInfo = {
@@ -35,24 +35,24 @@ 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
- for (const region of (0, __1.getRegions)()) {
40
+ for (const region of (0, get_regions_1.getRegions)()) {
41
41
  for (const layer of layers) {
42
42
  const layerName = `remotion-binaries-${layer}-${architecture}`;
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}-v4-${architecture}.zip`,
46
+ S3Key: `remotion-layer-${layer}-v8-${architecture}.zip`,
47
47
  },
48
48
  LayerName: layerName,
49
49
  LicenseInfo: layer === 'chromium'
50
- ? 'Compiled from Chromium source. Read Chromium License: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/LICENSE'
50
+ ? 'Chromium 104, 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 UNIX .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
- Description: constants_1.CURRENT_VERSION,
55
+ Description: version_1.VERSION,
56
56
  }));
57
57
  await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.AddLayerVersionPermissionCommand({
58
58
  Action: aws_policies_1.lambda.GetLayerVersion,
@@ -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,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.cleanItems = void 0;
7
4
  const client_s3_1 = require("@aws-sdk/client-s3");
8
- const p_limit_1 = __importDefault(require("p-limit"));
9
5
  const aws_clients_1 = require("../shared/aws-clients");
10
- const limit = (0, p_limit_1.default)(10);
6
+ const p_limit_1 = require("../shared/p-limit");
7
+ const limit = (0, p_limit_1.pLimit)(10);
11
8
  const cleanItems = async ({ bucket, onAfterItemDeleted, onBeforeItemDeleted, region, list, }) => {
12
9
  return Promise.all(list.map((object) => limit(async () => {
13
10
  onBeforeItemDeleted({
@@ -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;
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deployFunction = void 0;
4
+ const version_1 = require("remotion/version");
4
5
  const get_functions_1 = require("../api/get-functions");
5
6
  const constants_1 = require("../shared/constants");
6
7
  const function_zip_path_1 = require("../shared/function-zip-path");
7
8
  const get_account_id_1 = require("../shared/get-account-id");
9
+ const lambda_version_string_1 = require("../shared/lambda-version-string");
8
10
  const validate_architecture_1 = require("../shared/validate-architecture");
9
11
  const validate_aws_region_1 = require("../shared/validate-aws-region");
12
+ const validate_custom_role_arn_1 = require("../shared/validate-custom-role-arn");
10
13
  const validate_disk_size_in_mb_1 = require("../shared/validate-disk-size-in-mb");
11
14
  const validate_memory_size_1 = require("../shared/validate-memory-size");
12
15
  const validate_retention_period_1 = require("../shared/validate-retention-period");
@@ -33,8 +36,9 @@ const deployFunction = async (options) => {
33
36
  (0, validate_retention_period_1.validateCloudWatchRetentionPeriod)(options.cloudWatchLogRetentionPeriodInDays);
34
37
  (0, validate_architecture_1.validateArchitecture)(options.architecture);
35
38
  (0, validate_disk_size_in_mb_1.validateDiskSizeInMb)(diskSizeInMb);
39
+ (0, validate_custom_role_arn_1.validateCustomRoleArn)(options.customRoleArn);
36
40
  const fnNameRender = [
37
- `${constants_1.RENDER_FN_PREFIX}${constants_1.CURRENT_VERSION}`,
41
+ `${constants_1.RENDER_FN_PREFIX}${lambda_version_string_1.LAMBDA_VERSION_STRING}`,
38
42
  `mem${options.memorySizeInMb}mb`,
39
43
  `disk${diskSizeInMb}mb`,
40
44
  `${options.timeoutInSeconds}sec`,
@@ -44,7 +48,7 @@ const deployFunction = async (options) => {
44
48
  compatibleOnly: true,
45
49
  region: options.region,
46
50
  });
47
- const alreadyDeployed = fns.find((f) => f.version === constants_1.CURRENT_VERSION &&
51
+ const alreadyDeployed = fns.find((f) => f.version === version_1.VERSION &&
48
52
  f.memorySizeInMb === options.memorySizeInMb &&
49
53
  f.timeoutInSeconds === options.timeoutInSeconds &&
50
54
  f.diskSizeInMb === diskSizeInMb);
@@ -60,6 +64,7 @@ const deployFunction = async (options) => {
60
64
  alreadyCreated: Boolean(alreadyDeployed),
61
65
  architecture: options.architecture,
62
66
  ephemerealStorageInMb: diskSizeInMb,
67
+ customRoleArn: options.customRoleArn,
63
68
  });
64
69
  if (!created.FunctionName) {
65
70
  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,10 +1,9 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from '../shared/constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
3
2
  export declare type FunctionInfo = {
4
3
  functionName: string;
5
4
  timeoutInSeconds: number;
6
5
  memorySizeInMb: number;
7
- version: LambdaVersions | null;
6
+ version: string | null;
8
7
  diskSizeInMb: number;
9
8
  };
10
9
  export declare type GetFunctionInfoInput = {
@@ -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;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFunctions = void 0;
4
4
  const client_lambda_1 = require("@aws-sdk/client-lambda");
5
+ const version_1 = require("remotion/version");
5
6
  const aws_clients_1 = require("../shared/aws-clients");
6
7
  const constants_1 = require("../shared/constants");
7
8
  const get_function_version_1 = require("../shared/get-function-version");
@@ -73,7 +74,7 @@ const getFunctions = async (options) => {
73
74
  if (!options.compatibleOnly) {
74
75
  return true;
75
76
  }
76
- return l.version === constants_1.CURRENT_VERSION;
77
+ return l.version === version_1.VERSION;
77
78
  });
78
79
  };
79
80
  exports.getFunctions = getFunctions;
@@ -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,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRenderProgress = void 0;
4
+ const version_1 = require("remotion/version");
4
5
  const call_lambda_1 = require("../shared/call-lambda");
5
6
  const constants_1 = require("../shared/constants");
6
7
  /**
@@ -19,6 +20,7 @@ const getRenderProgress = async ({ functionName, bucketName, renderId, region, }
19
20
  payload: {
20
21
  bucketName,
21
22
  renderId,
23
+ version: version_1.VERSION,
22
24
  },
23
25
  region,
24
26
  });
@@ -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,19 +1,18 @@
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 { FunctionInfo } from './get-function-info';
4
3
  export declare let mockFunctionsStore: (FunctionInfo & {
5
4
  region: AwsRegion;
6
- version: LambdaVersions;
5
+ version: string;
7
6
  })[];
8
7
  export declare const addFunction: (fn: FunctionInfo, region: AwsRegion) => void;
9
8
  export declare const deleteMockFunction: (name: string, region: string) => void;
10
9
  export declare const findFunction: (name: string, region: string) => (FunctionInfo & {
11
10
  region: AwsRegion;
12
- version: LambdaVersions;
11
+ version: string;
13
12
  }) | undefined;
14
- export declare const getAllMockFunctions: (region: string, version: LambdaVersions | null) => (FunctionInfo & {
13
+ export declare const getAllMockFunctions: (region: string, version: string | null) => (FunctionInfo & {
15
14
  region: AwsRegion;
16
- version: LambdaVersions;
15
+ version: string;
17
16
  })[];
18
17
  export declare const cleanFnStore: () => void;
19
18
  export declare const markFunctionAsIncompatible: (functionName: string) => void;
@@ -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 {};
@@ -31,6 +31,11 @@ const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists =
31
31
  if (err.name === 'NotFound') {
32
32
  return null;
33
33
  }
34
+ if (err.message === 'UnknownError' ||
35
+ err.$metadata
36
+ .httpStatusCode === 403) {
37
+ throw new Error(`Unable to access item "${objectKey}" from bucket "${bucketName}". You must have permission for both "s3:GetObject" and "s3:ListBucket" actions.`);
38
+ }
34
39
  throw err;
35
40
  }
36
41
  }
@@ -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,14 +21,20 @@ 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;
32
+ muted?: boolean;
27
33
  };
28
34
  export declare type RenderMediaOnLambdaOutput = {
29
35
  renderId: string;
30
36
  bucketName: string;
37
+ cloudWatchLogs: string;
31
38
  };
32
39
  /**
33
40
  * @description Triggers a render on a lambda given a composition and a lambda function.
@@ -47,8 +54,8 @@ export declare type RenderMediaOnLambdaOutput = {
47
54
  * @param params.logLevel Level of logging that Lambda function should perform. Default "info".
48
55
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
49
56
  */
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>;
57
+ 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, muted, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
51
58
  /**
52
59
  * @deprecated Renamed to renderMediaOnLambda()
53
60
  */
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>;
61
+ 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, muted, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;