@remotion/lambda 4.0.0-preload.13 → 4.0.0-publish.3

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 (132) hide show
  1. package/dist/admin/make-layer-public.js +3 -3
  2. package/dist/api/bucket-exists.d.ts +1 -1
  3. package/dist/api/clean-items.d.ts +1 -1
  4. package/dist/api/create-bucket.d.ts +1 -1
  5. package/dist/api/create-function.d.ts +4 -3
  6. package/dist/api/create-function.js +3 -2
  7. package/dist/api/delete-function.d.ts +1 -1
  8. package/dist/api/delete-site.d.ts +1 -1
  9. package/dist/api/deploy-function.d.ts +3 -2
  10. package/dist/api/deploy-function.js +3 -0
  11. package/dist/api/deploy-site.d.ts +3 -3
  12. package/dist/api/download-media.d.ts +2 -2
  13. package/dist/api/enable-s3-website.d.ts +1 -1
  14. package/dist/api/estimate-price.d.ts +2 -2
  15. package/dist/api/get-aws-client.d.ts +2 -2
  16. package/dist/api/get-aws-client.js +5 -1
  17. package/dist/api/get-buckets.d.ts +1 -1
  18. package/dist/api/get-function-info.d.ts +2 -2
  19. package/dist/api/get-functions.d.ts +2 -2
  20. package/dist/api/get-or-create-bucket.d.ts +1 -1
  21. package/dist/api/get-regions.d.ts +1 -1
  22. package/dist/api/get-render-progress.d.ts +2 -2
  23. package/dist/api/get-sites.d.ts +2 -2
  24. package/dist/api/iam-validation/role-permissions.d.ts +2 -1
  25. package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
  26. package/dist/api/iam-validation/simulate.d.ts +2 -2
  27. package/dist/api/mock-functions.d.ts +3 -3
  28. package/dist/api/presign-url.d.ts +1 -1
  29. package/dist/api/render-media-on-lambda.d.ts +5 -4
  30. package/dist/api/render-media-on-lambda.js +3 -1
  31. package/dist/api/render-still-on-lambda.d.ts +4 -4
  32. package/dist/api/upload-dir.d.ts +2 -2
  33. package/dist/api/upload-dir.js +2 -1
  34. package/dist/cli/args.d.ts +4 -3
  35. package/dist/cli/commands/functions/deploy.js +6 -2
  36. package/dist/cli/commands/render/progress.d.ts +3 -3
  37. package/dist/cli/commands/render/progress.js +11 -3
  38. package/dist/cli/commands/render/render.js +9 -2
  39. package/dist/cli/commands/sites/ls.js +1 -2
  40. package/dist/cli/commands/sites/rm.js +2 -3
  41. package/dist/cli/commands/sites/rmall.js +2 -3
  42. package/dist/cli/commands/still.js +1 -2
  43. package/dist/cli/get-aws-region.d.ts +1 -1
  44. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +2 -2
  45. package/dist/cli/helpers/progress-bar.js +1 -2
  46. package/dist/cli/index.js +10 -0
  47. package/dist/defaults.js +5 -1
  48. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
  49. package/dist/functions/chunk-optimization/collect-data.d.ts +1 -1
  50. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +1 -1
  51. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +1 -1
  52. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +1 -1
  53. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +1 -1
  54. package/dist/functions/chunk-optimization/optimize-profile.d.ts +1 -1
  55. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +5 -2
  56. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +2 -2
  57. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +1 -1
  58. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +1 -1
  59. package/dist/functions/chunk-optimization/types.d.ts +1 -1
  60. package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
  61. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
  62. package/dist/functions/helpers/concat-videos.d.ts +5 -4
  63. package/dist/functions/helpers/concat-videos.js +7 -2
  64. package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
  65. package/dist/functions/helpers/create-post-render-data.js +5 -5
  66. package/dist/functions/helpers/delete-chunks.d.ts +3 -3
  67. package/dist/functions/helpers/expected-out-name.d.ts +1 -1
  68. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -2
  69. package/dist/functions/helpers/format-costs-info.d.ts +1 -1
  70. package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
  71. package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
  72. package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
  73. package/dist/functions/helpers/get-encoding-metadata.d.ts +2 -2
  74. package/dist/functions/helpers/get-files-to-delete.js +2 -2
  75. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -2
  76. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +1 -1
  77. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +1 -1
  78. package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
  79. package/dist/functions/helpers/get-progress.d.ts +2 -2
  80. package/dist/functions/helpers/get-progress.js +14 -11
  81. package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
  82. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  83. package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
  84. package/dist/functions/helpers/inspect-errors.d.ts +3 -3
  85. package/dist/functions/helpers/io.d.ts +5 -5
  86. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
  87. package/dist/functions/helpers/read-with-progress.d.ts +4 -3
  88. package/dist/functions/helpers/read-with-progress.js +6 -1
  89. package/dist/functions/helpers/validate-composition.d.ts +9 -4
  90. package/dist/functions/helpers/validate-composition.js +6 -1
  91. package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
  92. package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
  93. package/dist/functions/index.d.ts +3 -2
  94. package/dist/functions/info.d.ts +1 -1
  95. package/dist/functions/launch.d.ts +1 -1
  96. package/dist/functions/launch.js +7 -1
  97. package/dist/functions/progress.d.ts +1 -1
  98. package/dist/functions/renderer.d.ts +1 -1
  99. package/dist/functions/renderer.js +3 -5
  100. package/dist/functions/start.d.ts +1 -1
  101. package/dist/functions/still.d.ts +1 -1
  102. package/dist/functions/still.js +6 -0
  103. package/dist/index.d.ts +33 -18
  104. package/dist/pricing/price-per-1-s.d.ts +1 -1
  105. package/dist/shared/aws-clients.d.ts +1 -1
  106. package/dist/shared/call-lambda.d.ts +3 -3
  107. package/dist/shared/constants.d.ts +14 -10
  108. package/dist/shared/constants.js +1 -1
  109. package/dist/shared/convert-to-serve-url.d.ts +1 -1
  110. package/dist/shared/get-account-id.d.ts +1 -1
  111. package/dist/shared/get-function-version.d.ts +2 -2
  112. package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
  113. package/dist/shared/get-most-expensive-chunks.js +25 -0
  114. package/dist/shared/hosted-layers.d.ts +2 -2
  115. package/dist/shared/hosted-layers.js +80 -80
  116. package/dist/shared/make-s3-key.d.ts +1 -0
  117. package/dist/shared/make-s3-key.js +11 -0
  118. package/dist/shared/make-s3-url.d.ts +1 -1
  119. package/dist/shared/random-hash.d.ts +2 -2
  120. package/dist/shared/random-hash.js +1 -1
  121. package/dist/shared/return-values.d.ts +7 -7
  122. package/dist/shared/return-values.js +0 -1
  123. package/dist/shared/stream-to-string.d.ts +2 -1
  124. package/dist/shared/validate-aws-region.d.ts +1 -1
  125. package/dist/shared/validate-custom-role-arn.d.ts +1 -0
  126. package/dist/shared/validate-custom-role-arn.js +11 -0
  127. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  128. package/dist/shared/validate-lambda-codec.js +21 -0
  129. package/dist/shared/validate-outname.d.ts +1 -1
  130. package/dist/shared/validate-privacy.d.ts +1 -1
  131. package/package.json +9 -12
  132. package/remotionlambda.zip +0 -0
@@ -13,6 +13,11 @@ const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expecte
13
13
  Key: key,
14
14
  });
15
15
  const presigned = await (0, s3_request_presigner_1.getSignedUrl)(client, command);
16
- return renderer_1.RenderInternals.downloadFile(presigned, outputPath, onProgress);
16
+ const { to, sizeInBytes } = await renderer_1.RenderInternals.downloadFile({
17
+ url: presigned,
18
+ onProgress,
19
+ to: () => outputPath,
20
+ });
21
+ return { sizeInBytes, to };
17
22
  };
18
23
  exports.lambdaDownloadFileWithProgress = lambdaDownloadFileWithProgress;
@@ -1,12 +1,17 @@
1
- import { openBrowser } from '@remotion/renderer';
2
- import { TCompMetadata } from 'remotion';
3
- import { Await } from '../../shared/await';
1
+ import type { ChromiumOptions, openBrowser } from '@remotion/renderer';
2
+ import type { FfmpegExecutable, TCompMetadata } from 'remotion';
3
+ import type { Await } from '../../shared/await';
4
4
  declare type ValidateCompositionOptions = {
5
5
  serveUrl: string;
6
6
  composition: string;
7
7
  browserInstance: Await<ReturnType<typeof openBrowser>>;
8
8
  inputProps: unknown;
9
9
  envVariables: Record<string, string> | undefined;
10
+ ffmpegExecutable: FfmpegExecutable;
11
+ ffprobeExecutable: FfmpegExecutable;
12
+ timeoutInMilliseconds: number;
13
+ chromiumOptions: ChromiumOptions;
14
+ port: number | null;
10
15
  };
11
- export declare const validateComposition: ({ serveUrl, composition, browserInstance, inputProps, envVariables, }: ValidateCompositionOptions) => Promise<TCompMetadata>;
16
+ export declare const validateComposition: ({ serveUrl, composition, browserInstance, inputProps, envVariables, timeoutInMilliseconds, ffmpegExecutable, ffprobeExecutable, chromiumOptions, port, }: ValidateCompositionOptions) => Promise<TCompMetadata>;
12
17
  export {};
@@ -2,11 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateComposition = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const validateComposition = async ({ serveUrl, composition, browserInstance, inputProps, envVariables, }) => {
5
+ const validateComposition = async ({ serveUrl, composition, browserInstance, inputProps, envVariables, timeoutInMilliseconds, ffmpegExecutable, ffprobeExecutable, chromiumOptions, port, }) => {
6
6
  const compositions = await (0, renderer_1.getCompositions)(serveUrl, {
7
7
  puppeteerInstance: browserInstance,
8
8
  inputProps: inputProps,
9
9
  envVariables,
10
+ ffmpegExecutable,
11
+ ffprobeExecutable,
12
+ timeoutInMilliseconds,
13
+ chromiumOptions,
14
+ port,
10
15
  });
11
16
  const found = compositions.find((c) => c.id === composition);
12
17
  if (!found) {
@@ -1,4 +1,4 @@
1
- import { FileNameAndSize } from './get-files-in-folder';
1
+ import type { FileNameAndSize } from './get-files-in-folder';
2
2
  export declare type LambdaErrorInfo = {
3
3
  type: 'renderer' | 'browser' | 'stitcher';
4
4
  message: string;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../../pricing/aws-regions';
2
- import { PostRenderData } from '../../shared/constants';
1
+ import type { AwsRegion } from '../../pricing/aws-regions';
2
+ import type { PostRenderData } from '../../shared/constants';
3
3
  export declare const writePostRenderData: ({ bucketName, renderId, postRenderData, expectedBucketOwner, region, }: {
4
4
  bucketName: string;
5
5
  renderId: string;
@@ -1,5 +1,6 @@
1
- import { LambdaPayload, LambdaRoutines } from '../shared/constants';
2
- import { LambdaReturnValues } from '../shared/return-values';
1
+ import type { LambdaPayload } from '../shared/constants';
2
+ import { LambdaRoutines } from '../shared/constants';
3
+ import type { LambdaReturnValues } from '../shared/return-values';
3
4
  export declare const handler: <T extends LambdaRoutines>(params: LambdaPayload, context: {
4
5
  invokedFunctionArn: string;
5
6
  getRemainingTimeInMillis: () => number;
@@ -1,4 +1,4 @@
1
- import { LambdaPayload, LambdaVersions } from '../shared/constants';
1
+ import type { LambdaPayload, LambdaVersions } from '../shared/constants';
2
2
  export declare const infoHandler: (lambdaParams: LambdaPayload) => Promise<{
3
3
  version: LambdaVersions;
4
4
  }>;
@@ -1,4 +1,4 @@
1
- import { LambdaPayload } from '../shared/constants';
1
+ import type { LambdaPayload } from '../shared/constants';
2
2
  declare type Options = {
3
3
  expectedBucketOwner: string;
4
4
  };
@@ -61,6 +61,11 @@ const innerLaunchHandler = async (params, options) => {
61
61
  browserInstance,
62
62
  inputProps: params.inputProps,
63
63
  envVariables: params.envVariables,
64
+ ffmpegExecutable: null,
65
+ ffprobeExecutable: null,
66
+ timeoutInMilliseconds: params.timeoutInMilliseconds,
67
+ chromiumOptions: params.chromiumOptions,
68
+ port: null,
64
69
  });
65
70
  remotion_1.Internals.validateDurationInFrames(comp.durationInFrames, 'passed to <Component />');
66
71
  remotion_1.Internals.validateFps(comp.fps, 'passed to <Component />');
@@ -105,7 +110,7 @@ const innerLaunchHandler = async (params, options) => {
105
110
  inputProps: params.inputProps,
106
111
  renderId: params.renderId,
107
112
  imageFormat: params.imageFormat,
108
- codec: params.codec,
113
+ codec: params.codec === 'h264' ? 'h264-mkv' : params.codec,
109
114
  crf: params.crf,
110
115
  envVariables: params.envVariables,
111
116
  pixelFormat: params.pixelFormat,
@@ -220,6 +225,7 @@ const innerLaunchHandler = async (params, options) => {
220
225
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
221
226
  codec: params.codec,
222
227
  expectedBucketOwner: options.expectedBucketOwner,
228
+ fps: comp.fps,
223
229
  });
224
230
  if (!encodingStop) {
225
231
  encodingStop = Date.now();
@@ -1,4 +1,4 @@
1
- import { LambdaPayload, RenderProgress } from '../shared/constants';
1
+ import type { LambdaPayload, RenderProgress } from '../shared/constants';
2
2
  declare type Options = {
3
3
  expectedBucketOwner: string;
4
4
  timeoutInMiliseconds: number;
@@ -1,4 +1,4 @@
1
- import { LambdaPayload } from '../shared/constants';
1
+ import type { LambdaPayload } from '../shared/constants';
2
2
  declare type Options = {
3
3
  expectedBucketOwner: string;
4
4
  isWarm: boolean;
@@ -101,15 +101,13 @@ const renderHandler = async (params, options, logs) => {
101
101
  proResProfile: params.proResProfile,
102
102
  onDownload: (src) => {
103
103
  console.log('Downloading', src);
104
- return ({ percent }) => {
105
- if (remotion_1.Internals.Logging.isEqualOrBelowLogLevel(params.logLevel, 'verbose')) {
106
- console.log(`Download progress of ${src}: ${percent}`);
107
- }
108
- };
104
+ return () => undefined;
109
105
  },
110
106
  overwrite: false,
111
107
  chromiumOptions: params.chromiumOptions,
112
108
  scale: params.scale,
109
+ timeoutInMilliseconds: params.timeoutInMilliseconds,
110
+ port: null,
113
111
  });
114
112
  const endRendered = Date.now();
115
113
  console.log('Adding silent audio, chunk', params.chunk);
@@ -1,4 +1,4 @@
1
- import { LambdaPayload } from '../shared/constants';
1
+ import type { LambdaPayload } from '../shared/constants';
2
2
  export declare const startHandler: (params: LambdaPayload) => Promise<{
3
3
  bucketName: string;
4
4
  renderId: string;
@@ -1,4 +1,4 @@
1
- import { LambdaPayload } from '../shared/constants';
1
+ import type { LambdaPayload } from '../shared/constants';
2
2
  declare type Options = {
3
3
  expectedBucketOwner: string;
4
4
  };
@@ -48,6 +48,11 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
48
48
  composition: lambdaParams.composition,
49
49
  inputProps: lambdaParams.inputProps,
50
50
  envVariables: lambdaParams.envVariables,
51
+ ffmpegExecutable: null,
52
+ ffprobeExecutable: null,
53
+ chromiumOptions: lambdaParams.chromiumOptions,
54
+ timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
55
+ port: null,
51
56
  });
52
57
  const renderMetadata = {
53
58
  startedDate: Date.now(),
@@ -91,6 +96,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
91
96
  quality: lambdaParams.quality,
92
97
  chromiumOptions: lambdaParams.chromiumOptions,
93
98
  scale: lambdaParams.scale,
99
+ timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
94
100
  });
95
101
  const { key: outName, renderBucketName } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName);
96
102
  const { size } = await fs_1.default.promises.stat(outputPath);
package/dist/index.d.ts CHANGED
@@ -1,25 +1,40 @@
1
- import { deleteFunction, DeleteFunctionInput } from './api/delete-function';
2
- import { deleteSite, DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
3
- import { deployFunction, DeployFunctionInput, DeployFunctionOutput } from './api/deploy-function';
4
- import { deploySite, DeploySiteInput, DeploySiteOutput } from './api/deploy-site';
5
- import { downloadMedia, DownloadMediaInput, DownloadMediaOutput, downloadVideo } from './api/download-media';
6
- import { estimatePrice, EstimatePriceInput } from './api/estimate-price';
7
- import { getAwsClient, GetAwsClientInput, GetAwsClientOutput } from './api/get-aws-client';
8
- import { FunctionInfo, getFunctionInfo, GetFunctionInfoInput } from './api/get-function-info';
9
- import { getFunctions, GetFunctionsInput } from './api/get-functions';
10
- import { getOrCreateBucket, GetOrCreateBucketInput, GetOrCreateBucketOutput } from './api/get-or-create-bucket';
1
+ import type { DeleteFunctionInput } from './api/delete-function';
2
+ import { deleteFunction } from './api/delete-function';
3
+ import type { DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
4
+ import { deleteSite } from './api/delete-site';
5
+ import type { DeployFunctionInput, DeployFunctionOutput } from './api/deploy-function';
6
+ import { deployFunction } from './api/deploy-function';
7
+ import type { DeploySiteInput, DeploySiteOutput } from './api/deploy-site';
8
+ import { deploySite } from './api/deploy-site';
9
+ import type { DownloadMediaInput, DownloadMediaOutput } from './api/download-media';
10
+ import { downloadMedia, downloadVideo } from './api/download-media';
11
+ import type { EstimatePriceInput } from './api/estimate-price';
12
+ import { estimatePrice } from './api/estimate-price';
13
+ import type { GetAwsClientInput, GetAwsClientOutput } from './api/get-aws-client';
14
+ import { getAwsClient } from './api/get-aws-client';
15
+ import type { FunctionInfo, GetFunctionInfoInput } from './api/get-function-info';
16
+ import { getFunctionInfo } from './api/get-function-info';
17
+ import type { GetFunctionsInput } from './api/get-functions';
18
+ import { getFunctions } from './api/get-functions';
19
+ import type { GetOrCreateBucketInput, GetOrCreateBucketOutput } from './api/get-or-create-bucket';
20
+ import { getOrCreateBucket } from './api/get-or-create-bucket';
11
21
  import { getRegions } from './api/get-regions';
12
- import { GetRenderInput, getRenderProgress } from './api/get-render-progress';
13
- import { getSites, GetSitesInput, GetSitesOutput } from './api/get-sites';
14
- import { simulatePermissions, SimulatePermissionsInput, SimulatePermissionsOutput } from './api/iam-validation/simulate';
22
+ import type { GetRenderInput } from './api/get-render-progress';
23
+ import { getRenderProgress } from './api/get-render-progress';
24
+ import type { GetSitesInput, GetSitesOutput } from './api/get-sites';
25
+ import { getSites } from './api/get-sites';
26
+ import type { SimulatePermissionsInput, SimulatePermissionsOutput } from './api/iam-validation/simulate';
27
+ import { simulatePermissions } from './api/iam-validation/simulate';
15
28
  import { getRolePolicy, getUserPolicy } from './api/iam-validation/suggested-policy';
16
29
  import { presignUrl } from './api/presign-url';
17
- import { renderMediaOnLambda, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, renderVideoOnLambda } from './api/render-media-on-lambda';
18
- import { renderStillOnLambda, RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from './api/render-still-on-lambda';
19
- import { LambdaLSInput, LambdaLsReturnType } from './functions/helpers/io';
30
+ import type { RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput } from './api/render-media-on-lambda';
31
+ import { renderMediaOnLambda, renderVideoOnLambda } from './api/render-media-on-lambda';
32
+ import type { RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from './api/render-still-on-lambda';
33
+ import { renderStillOnLambda } from './api/render-still-on-lambda';
34
+ import type { LambdaLSInput, LambdaLsReturnType } from './functions/helpers/io';
20
35
  import { LambdaInternals } from './internals';
21
- import { AwsRegion } from './pricing/aws-regions';
36
+ import type { AwsRegion } from './pricing/aws-regions';
22
37
  import type { RenderProgress } from './shared/constants';
23
- import { LambdaArchitecture } from './shared/validate-architecture';
38
+ import type { LambdaArchitecture } from './shared/validate-architecture';
24
39
  export { deleteSite, deployFunction, deploySite, downloadMedia, downloadVideo, getFunctions, getUserPolicy, getRolePolicy, getSites, getOrCreateBucket, getRenderProgress, renderVideoOnLambda, renderMediaOnLambda, simulatePermissions, deleteFunction, getFunctionInfo, estimatePrice, LambdaInternals, renderStillOnLambda, getRegions, getAwsClient, presignUrl, };
25
40
  export type { AwsRegion, RenderProgress, DeploySiteInput, DeploySiteOutput, LambdaLsReturnType, LambdaLSInput, DeleteSiteInput, DeleteSiteOutput, EstimatePriceInput, DeployFunctionInput, DeployFunctionOutput, DeleteFunctionInput, GetFunctionInfoInput, FunctionInfo, GetFunctionsInput, GetSitesInput, GetSitesOutput, DownloadMediaInput, DownloadMediaOutput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderInput, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderStillOnLambdaInput, RenderStillOnLambdaOutput, SimulatePermissionsInput, SimulatePermissionsOutput, GetAwsClientInput, GetAwsClientOutput, LambdaArchitecture, };
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from './aws-regions';
1
+ import type { AwsRegion } from './aws-regions';
2
2
  export declare const pricing: {
3
3
  [key in AwsRegion]: {
4
4
  'Lambda Duration': {
@@ -3,7 +3,7 @@ import { IAMClient } from '@aws-sdk/client-iam';
3
3
  import { LambdaClient } from '@aws-sdk/client-lambda';
4
4
  import { S3Client } from '@aws-sdk/client-s3';
5
5
  import { ServiceQuotasClient } from '@aws-sdk/client-service-quotas';
6
- import { AwsRegion } from '../pricing/aws-regions';
6
+ import type { AwsRegion } from '../pricing/aws-regions';
7
7
  export declare type ServiceMapping = {
8
8
  s3: S3Client;
9
9
  cloudwatch: CloudWatchLogsClient;
@@ -1,6 +1,6 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaPayloads, LambdaRoutines } from './constants';
3
- import { LambdaReturnValues } from './return-values';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaPayloads, LambdaRoutines } from './constants';
3
+ import type { LambdaReturnValues } from './return-values';
4
4
  export declare const callLambda: <T extends LambdaRoutines>({ functionName, type, payload, region, }: {
5
5
  functionName: string;
6
6
  type: T;
@@ -1,9 +1,11 @@
1
- import { ChromiumOptions } from '@remotion/renderer';
2
- import { Codec, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile, VideoConfig } from 'remotion';
3
- import { ChunkRetry } from '../functions/helpers/get-retry-stats';
4
- import { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
5
- import { AwsRegion } from '../pricing/aws-regions';
6
- import { LambdaArchitecture } from './validate-architecture';
1
+ import type { ChromiumOptions } from '@remotion/renderer';
2
+ import type { Codec, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile, VideoConfig } from 'remotion';
3
+ import type { ChunkRetry } from '../functions/helpers/get-retry-stats';
4
+ import type { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
5
+ import type { AwsRegion } from '../pricing/aws-regions';
6
+ import type { ExpensiveChunk } from './get-most-expensive-chunks';
7
+ import type { LambdaArchitecture } from './validate-architecture';
8
+ import type { LambdaCodec } from './validate-lambda-codec';
7
9
  export declare const MIN_MEMORY = 512;
8
10
  export declare const MAX_MEMORY = 10240;
9
11
  export declare const DEFAULT_MEMORY_SIZE = 2048;
@@ -91,7 +93,7 @@ export declare type LambdaPayloads = {
91
93
  composition: string;
92
94
  framesPerLambda: number | null;
93
95
  inputProps: unknown;
94
- codec: Codec;
96
+ codec: LambdaCodec;
95
97
  imageFormat: ImageFormat;
96
98
  crf: number | undefined;
97
99
  envVariables: Record<string, string> | undefined;
@@ -116,7 +118,7 @@ export declare type LambdaPayloads = {
116
118
  inputProps: unknown;
117
119
  renderId: string;
118
120
  imageFormat: ImageFormat;
119
- codec: Codec;
121
+ codec: LambdaCodec;
120
122
  crf: number | undefined;
121
123
  envVariables: Record<string, string> | undefined;
122
124
  pixelFormat: PixelFormat | undefined;
@@ -151,7 +153,7 @@ export declare type LambdaPayloads = {
151
153
  inputProps: unknown;
152
154
  renderId: string;
153
155
  imageFormat: ImageFormat;
154
- codec: Codec;
156
+ codec: Exclude<Codec, 'h264'>;
155
157
  crf: number | undefined;
156
158
  proResProfile: ProResProfile | undefined;
157
159
  pixelFormat: PixelFormat | undefined;
@@ -210,7 +212,7 @@ export declare type RenderMetadata = {
210
212
  renderId: string;
211
213
  outName: OutNameInput | undefined;
212
214
  };
213
- export declare type LambdaVersions = '2022-05-19' | '2022-05-16' | '2022-05-11' | '2022-05-07' | '2022-05-06' | '2022-05-03' | '2022-04-20' | '2022-04-19' | '2022-04-18' | '2022-04-09' | '2022-04-08' | '2022-04-05' | '2022-04-02' | '2022-03-29' | '2022-03-17' | '2022-03-02' | '2022-03-01' | '2022-02-27' | '2022-02-14' | '2022-02-12' | '2022-02-09' | '2022-02-08' | '2022-02-07' | '2022-02-06' | '2022-02-05' | '2022-02-04' | '2022-02-03' | '2022-01-23' | '2022-01-19' | '2022-01-11' | '2022-01-10' | '2022-01-09' | '2022-01-06' | '2022-01-05' | '2021-12-22' | '2021-12-17' | '2021-12-16' | '2021-12-15' | '2021-12-14' | '2021-12-13' | '2021-12-11' | '2021-12-10' | '2021-12-04' | '2021-11-29' | '2021-11-27' | '2021-11-24' | '2021-11-22' | '2021-11-19' | '2021-11-18' | '2021-11-15' | '2021-11-12' | '2021-11-10' | '2021-11-01' | '2021-10-29' | '2021-10-27' | '2021-10-21' | '2021-10-19' | '2021-10-07' | '2021-10-03' | '2021-10-01' | '2021-09-15' | '2021-09-06' | '2021-08-06' | '2021-07-14' | '2021-07-05' | '2021-07-02' | '2021-06-23' | 'n/a';
215
+ export declare type LambdaVersions = '2022-07-04' | '2022-06-30' | '2022-06-29' | '2022-06-25' | '2022-06-22' | '2022-06-21' | '2022-06-14' | '2022-06-08' | '2022-06-07' | '2022-06-02' | '2022-05-31' | '2022-05-28' | '2022-05-27' | '2022-05-19' | '2022-05-16' | '2022-05-11' | '2022-05-07' | '2022-05-06' | '2022-05-03' | '2022-04-20' | '2022-04-19' | '2022-04-18' | '2022-04-09' | '2022-04-08' | '2022-04-05' | '2022-04-02' | '2022-03-29' | '2022-03-17' | '2022-03-02' | '2022-03-01' | '2022-02-27' | '2022-02-14' | '2022-02-12' | '2022-02-09' | '2022-02-08' | '2022-02-07' | '2022-02-06' | '2022-02-05' | '2022-02-04' | '2022-02-03' | '2022-01-23' | '2022-01-19' | '2022-01-11' | '2022-01-10' | '2022-01-09' | '2022-01-06' | '2022-01-05' | '2021-12-22' | '2021-12-17' | '2021-12-16' | '2021-12-15' | '2021-12-14' | '2021-12-13' | '2021-12-11' | '2021-12-10' | '2021-12-04' | '2021-11-29' | '2021-11-27' | '2021-11-24' | '2021-11-22' | '2021-11-19' | '2021-11-18' | '2021-11-15' | '2021-11-12' | '2021-11-10' | '2021-11-01' | '2021-10-29' | '2021-10-27' | '2021-10-21' | '2021-10-19' | '2021-10-07' | '2021-10-03' | '2021-10-01' | '2021-09-15' | '2021-09-06' | '2021-08-06' | '2021-07-14' | '2021-07-05' | '2021-07-02' | '2021-06-23' | 'n/a';
214
216
  export declare const CURRENT_VERSION: LambdaVersions;
215
217
  export declare type PostRenderData = {
216
218
  cost: {
@@ -233,6 +235,7 @@ export declare type PostRenderData = {
233
235
  timeToRenderChunks: number;
234
236
  timeToInvokeLambdas: number;
235
237
  retriesInfo: ChunkRetry[];
238
+ mostExpensiveFrameRanges: ExpensiveChunk[] | undefined;
236
239
  };
237
240
  export declare type CostsInfo = {
238
241
  accruedSoFar: number;
@@ -267,6 +270,7 @@ export declare type RenderProgress = {
267
270
  timeToInvokeLambdas: number | null;
268
271
  overallProgress: number;
269
272
  retriesInfo: ChunkRetry[];
273
+ mostExpensiveFrameRanges: ExpensiveChunk[] | null;
270
274
  };
271
275
  export declare type Privacy = 'public' | 'private';
272
276
  export declare const LAMBDA_CONCURRENCY_LIMIT_QUOTA = "L-B99A9384";
@@ -84,6 +84,6 @@ var LambdaRoutines;
84
84
  LambdaRoutines["renderer"] = "renderer";
85
85
  LambdaRoutines["still"] = "still";
86
86
  })(LambdaRoutines = exports.LambdaRoutines || (exports.LambdaRoutines = {}));
87
- exports.CURRENT_VERSION = '2022-05-19';
87
+ exports.CURRENT_VERSION = '2022-07-04';
88
88
  exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = 'L-B99A9384';
89
89
  exports.LAMBDA_BURST_LIMIT_QUOTA = 'L-548AE339';
@@ -1,2 +1,2 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const convertToServeUrl: (urlOrId: string, region: AwsRegion) => Promise<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 getAccountId: (options: {
3
3
  region: AwsRegion;
4
4
  }) => Promise<string>;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from './constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaVersions } from './constants';
3
3
  export declare const getFunctionVersion: ({ functionName, region, }: {
4
4
  functionName: string;
5
5
  region: AwsRegion;
@@ -0,0 +1,8 @@
1
+ import type { ParsedTiming } from './parse-lambda-timings-key';
2
+ export declare const OVERHEAD_TIME_PER_LAMBDA = 100;
3
+ export declare type ExpensiveChunk = {
4
+ chunk: number;
5
+ frameRange: [number, number];
6
+ timeInMilliseconds: number;
7
+ };
8
+ export declare const getMostExpensiveChunks: (parsedTimings: ParsedTiming[], framesPerLambda: number) => ExpensiveChunk[];
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMostExpensiveChunks = exports.OVERHEAD_TIME_PER_LAMBDA = void 0;
4
+ exports.OVERHEAD_TIME_PER_LAMBDA = 100;
5
+ const getMostExpensiveChunks = (parsedTimings, framesPerLambda) => {
6
+ const mostExpensiveChunks = parsedTimings
7
+ .slice(0)
8
+ .sort((a, b) => {
9
+ const durA = a.rendered - a.start;
10
+ const durB = b.rendered - b.start;
11
+ return durB - durA;
12
+ })
13
+ .slice(0, 5);
14
+ return mostExpensiveChunks.map((c) => {
15
+ return {
16
+ timeInMilliseconds: c.rendered - c.start,
17
+ chunk: c.chunk,
18
+ frameRange: [
19
+ framesPerLambda * c.chunk,
20
+ framesPerLambda * (c.chunk + 1) - 1,
21
+ ],
22
+ };
23
+ });
24
+ };
25
+ exports.getMostExpensiveChunks = getMostExpensiveChunks;
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaArchitecture } from './validate-architecture';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { LambdaArchitecture } from './validate-architecture';
3
3
  export declare const REMOTION_HOSTED_LAYER_ARN = "arn:aws:lambda:*:678892195805:layer:remotion-binaries-*";
4
4
  export declare type HostedLayers = {
5
5
  [architecture in LambdaArchitecture]: {