@remotion/lambda 4.0.187 → 4.0.189

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 (230) hide show
  1. package/dist/api/__mocks__/clean-items.d.ts +2 -0
  2. package/dist/api/__mocks__/clean-items.js +24 -0
  3. package/dist/api/__mocks__/create-function.d.ts +2 -0
  4. package/dist/api/__mocks__/create-function.js +21 -0
  5. package/dist/api/__mocks__/delete-function.d.ts +2 -0
  6. package/dist/api/__mocks__/delete-function.js +9 -0
  7. package/dist/api/__mocks__/get-functions.d.ts +2 -0
  8. package/dist/api/__mocks__/get-functions.js +9 -0
  9. package/dist/api/__mocks__/upload-dir.d.ts +3 -0
  10. package/dist/api/__mocks__/upload-dir.js +47 -0
  11. package/dist/api/bucket-exists.d.ts +3 -6
  12. package/dist/api/bucket-exists.js +5 -5
  13. package/dist/api/clean-items.d.ts +4 -3
  14. package/dist/api/clean-items.js +7 -7
  15. package/dist/api/create-bucket.d.ts +3 -5
  16. package/dist/api/create-bucket.js +6 -6
  17. package/dist/api/create-function.d.ts +1 -1
  18. package/dist/api/delete-function.d.ts +1 -1
  19. package/dist/api/delete-render.d.ts +10 -3
  20. package/dist/api/delete-render.js +27 -19
  21. package/dist/api/delete-site.d.ts +7 -2
  22. package/dist/api/delete-site.js +23 -15
  23. package/dist/api/deploy-function.d.ts +1 -1
  24. package/dist/api/deploy-function.js +2 -2
  25. package/dist/api/deploy-site.d.ts +9 -5
  26. package/dist/api/deploy-site.js +11 -12
  27. package/dist/api/download-media.d.ts +8 -3
  28. package/dist/api/download-media.js +24 -15
  29. package/dist/api/estimate-price.d.ts +1 -1
  30. package/dist/api/get-aws-client.d.ts +4 -2
  31. package/dist/api/get-aws-client.js +2 -2
  32. package/dist/api/get-buckets.d.ts +4 -4
  33. package/dist/api/get-buckets.js +12 -14
  34. package/dist/api/get-compositions-on-lambda.js +7 -6
  35. package/dist/api/get-function-info.d.ts +1 -1
  36. package/dist/api/get-functions.d.ts +1 -1
  37. package/dist/api/get-or-create-bucket.d.ts +3 -19
  38. package/dist/api/get-or-create-bucket.js +5 -39
  39. package/dist/api/get-regions.d.ts +1 -1
  40. package/dist/api/get-regions.js +1 -2
  41. package/dist/api/get-render-progress.d.ts +4 -3
  42. package/dist/api/get-render-progress.js +2 -2
  43. package/dist/api/get-sites.d.ts +6 -1
  44. package/dist/api/get-sites.js +21 -14
  45. package/dist/api/iam-validation/role-permissions.js +2 -1
  46. package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
  47. package/dist/api/iam-validation/simulate.d.ts +1 -1
  48. package/dist/api/iam-validation/user-permissions.js +2 -1
  49. package/dist/api/make-lambda-payload.d.ts +8 -9
  50. package/dist/api/make-lambda-payload.js +17 -14
  51. package/dist/api/mock-functions.d.ts +1 -1
  52. package/dist/api/presign-url.d.ts +1 -1
  53. package/dist/api/presign-url.js +4 -4
  54. package/dist/api/render-media-on-lambda.d.ts +5 -6
  55. package/dist/api/render-media-on-lambda.js +5 -5
  56. package/dist/api/render-still-on-lambda.d.ts +8 -6
  57. package/dist/api/render-still-on-lambda.js +6 -5
  58. package/dist/api/upload-dir.d.ts +2 -2
  59. package/dist/api/upload-dir.js +2 -2
  60. package/dist/cli/args.d.ts +2 -3
  61. package/dist/cli/commands/render/progress.d.ts +2 -2
  62. package/dist/cli/commands/render/progress.js +6 -5
  63. package/dist/cli/commands/render/render.d.ts +3 -1
  64. package/dist/cli/commands/render/render.js +3 -2
  65. package/dist/cli/commands/sites/create.d.ts +3 -1
  66. package/dist/cli/commands/sites/create.js +6 -5
  67. package/dist/cli/commands/sites/index.d.ts +3 -1
  68. package/dist/cli/commands/sites/index.js +4 -4
  69. package/dist/cli/commands/sites/rm.d.ts +3 -1
  70. package/dist/cli/commands/sites/rm.js +4 -3
  71. package/dist/cli/commands/sites/rmall.d.ts +3 -1
  72. package/dist/cli/commands/sites/rmall.js +4 -3
  73. package/dist/cli/commands/still.d.ts +3 -1
  74. package/dist/cli/commands/still.js +3 -2
  75. package/dist/cli/get-aws-region.d.ts +1 -1
  76. package/dist/cli/helpers/__mocks__/quit.d.ts +1 -0
  77. package/dist/cli/helpers/__mocks__/quit.js +7 -0
  78. package/dist/cli/index.d.ts +3 -1
  79. package/dist/cli/index.js +8 -7
  80. package/dist/client.d.ts +4 -5
  81. package/dist/functions/aws-implementation.d.ts +11 -0
  82. package/dist/functions/aws-implementation.js +49 -0
  83. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +4 -1
  84. package/dist/functions/compositions.d.ts +3 -2
  85. package/dist/functions/compositions.js +18 -15
  86. package/dist/functions/helpers/__mocks__/get-browser-instance.d.ts +3 -0
  87. package/dist/functions/helpers/__mocks__/get-browser-instance.js +12 -0
  88. package/dist/functions/helpers/__mocks__/leak-detection.d.ts +4 -0
  89. package/dist/functions/helpers/__mocks__/leak-detection.js +9 -0
  90. package/dist/functions/helpers/__mocks__/timer.d.ts +2 -0
  91. package/dist/functions/helpers/__mocks__/timer.js +10 -0
  92. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +5 -3
  93. package/dist/functions/helpers/calculate-price-from-bucket.js +2 -3
  94. package/dist/functions/helpers/cleanup-props.d.ts +4 -2
  95. package/dist/functions/helpers/cleanup-props.js +5 -4
  96. package/dist/functions/helpers/concat-videos.d.ts +2 -2
  97. package/dist/functions/helpers/create-post-render-data.d.ts +8 -8
  98. package/dist/functions/helpers/create-post-render-data.js +1 -1
  99. package/dist/functions/helpers/expected-out-name.d.ts +4 -4
  100. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +8 -7
  101. package/dist/functions/helpers/find-output-file-in-bucket.js +5 -6
  102. package/dist/functions/helpers/get-browser-instance.d.ts +3 -2
  103. package/dist/functions/helpers/get-browser-instance.js +3 -4
  104. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  105. package/dist/functions/helpers/get-current-region.js +3 -3
  106. package/dist/functions/helpers/get-custom-out-name.d.ts +5 -5
  107. package/dist/functions/helpers/get-folder-files.d.ts +2 -0
  108. package/dist/functions/helpers/get-folder-files.js +38 -0
  109. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +4 -3
  110. package/dist/functions/helpers/get-output-url-from-metadata.js +4 -5
  111. package/dist/functions/helpers/get-overall-progress-s3.d.ts +5 -4
  112. package/dist/functions/helpers/get-overall-progress-s3.js +5 -7
  113. package/dist/functions/helpers/get-progress.d.ts +8 -7
  114. package/dist/functions/helpers/get-progress.js +7 -5
  115. package/dist/functions/helpers/inspect-errors.d.ts +1 -1
  116. package/dist/functions/helpers/inspect-errors.js +4 -4
  117. package/dist/functions/helpers/io.d.ts +3 -36
  118. package/dist/functions/helpers/io.js +3 -104
  119. package/dist/functions/helpers/lifecycle.d.ts +3 -9
  120. package/dist/functions/helpers/lifecycle.js +6 -16
  121. package/dist/functions/helpers/make-aws-artifact.d.ts +3 -0
  122. package/dist/functions/helpers/make-aws-artifact.js +12 -0
  123. package/dist/functions/helpers/make-timeout-error.d.ts +5 -4
  124. package/dist/functions/helpers/make-timeout-error.js +2 -1
  125. package/dist/functions/helpers/make-timeout-message.d.ts +5 -3
  126. package/dist/functions/helpers/make-timeout-message.js +8 -9
  127. package/dist/functions/helpers/merge-chunks.d.ts +10 -10
  128. package/dist/functions/helpers/merge-chunks.js +7 -8
  129. package/dist/functions/helpers/overall-render-progress.d.ts +18 -23
  130. package/dist/functions/helpers/overall-render-progress.js +5 -5
  131. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +2 -2
  132. package/dist/functions/helpers/print-logging-helper.d.ts +4 -0
  133. package/dist/functions/helpers/print-logging-helper.js +12 -0
  134. package/dist/functions/helpers/read-with-progress.d.ts +4 -3
  135. package/dist/functions/helpers/read-with-progress.js +2 -2
  136. package/dist/functions/helpers/render-has-audio-video.d.ts +3 -2
  137. package/dist/functions/helpers/stream-renderer.d.ts +7 -4
  138. package/dist/functions/helpers/stream-renderer.js +11 -10
  139. package/dist/functions/helpers/streamify-response.d.ts +0 -20
  140. package/dist/functions/helpers/streamify-response.js +1 -62
  141. package/dist/functions/helpers/validate-composition.d.ts +5 -3
  142. package/dist/functions/helpers/validate-composition.js +2 -3
  143. package/dist/functions/index.d.ts +5 -3
  144. package/dist/functions/index.js +98 -72
  145. package/dist/functions/info.d.ts +1 -1
  146. package/dist/functions/info.js +2 -2
  147. package/dist/functions/launch.d.ts +3 -2
  148. package/dist/functions/launch.js +55 -41
  149. package/dist/functions/progress.d.ts +6 -3
  150. package/dist/functions/progress.js +5 -4
  151. package/dist/functions/provider-implementation.d.ts +0 -0
  152. package/dist/functions/provider-implementation.js +1 -0
  153. package/dist/functions/renderer.d.ts +9 -3
  154. package/dist/functions/renderer.js +41 -22
  155. package/dist/functions/start.d.ts +3 -2
  156. package/dist/functions/start.js +13 -16
  157. package/dist/functions/still.d.ts +8 -18
  158. package/dist/functions/still.js +48 -46
  159. package/dist/index.d.ts +6 -7
  160. package/dist/internals.d.ts +18 -14
  161. package/dist/io/delete-file.d.ts +3 -0
  162. package/dist/io/delete-file.js +12 -0
  163. package/dist/io/head-file.d.ts +3 -0
  164. package/dist/io/head-file.js +13 -0
  165. package/dist/io/list-objects.d.ts +3 -0
  166. package/dist/io/list-objects.js +58 -0
  167. package/dist/io/read-file.d.ts +9 -0
  168. package/dist/io/read-file.js +14 -0
  169. package/dist/io/write-file.d.ts +5 -0
  170. package/dist/io/write-file.js +51 -0
  171. package/dist/pricing/aws-regions.d.ts +0 -3
  172. package/dist/pricing/aws-regions.js +0 -44
  173. package/dist/pricing/price-per-1-s.d.ts +1 -1
  174. package/dist/regions.d.ts +3 -2
  175. package/dist/regions.js +43 -3
  176. package/dist/shared/__mocks__/aws-clients.d.ts +2 -0
  177. package/dist/shared/__mocks__/aws-clients.js +62 -0
  178. package/dist/shared/__mocks__/bundle-site.d.ts +2 -0
  179. package/dist/shared/__mocks__/bundle-site.js +32 -0
  180. package/dist/shared/__mocks__/check-credentials.d.ts +1 -0
  181. package/dist/shared/__mocks__/check-credentials.js +5 -0
  182. package/dist/shared/__mocks__/get-account-id.d.ts +2 -0
  183. package/dist/shared/__mocks__/get-account-id.js +11 -0
  184. package/dist/shared/__mocks__/read-dir.d.ts +2 -0
  185. package/dist/shared/__mocks__/read-dir.js +13 -0
  186. package/dist/shared/aws-clients.d.ts +6 -29
  187. package/dist/shared/aws-clients.js +7 -177
  188. package/dist/shared/call-lambda.d.ts +8 -9
  189. package/dist/shared/call-lambda.js +16 -3
  190. package/dist/shared/check-credentials.js +2 -2
  191. package/dist/shared/cleanup-serialized-input-props.d.ts +8 -6
  192. package/dist/shared/cleanup-serialized-input-props.js +7 -8
  193. package/dist/shared/compress-props.d.ts +8 -6
  194. package/dist/shared/compress-props.js +11 -14
  195. package/dist/shared/constants.d.ts +10 -288
  196. package/dist/shared/constants.js +1 -46
  197. package/dist/shared/content-disposition-header.d.ts +1 -6
  198. package/dist/shared/content-disposition-header.js +2 -2
  199. package/dist/shared/convert-to-serve-url.d.ts +2 -2
  200. package/dist/shared/convert-to-serve-url.js +3 -3
  201. package/dist/shared/get-account-id.d.ts +1 -1
  202. package/dist/shared/get-aws-urls.d.ts +2 -2
  203. package/dist/shared/get-credentials.d.ts +9 -0
  204. package/dist/shared/get-credentials.js +53 -0
  205. package/dist/shared/get-function-version.d.ts +1 -1
  206. package/dist/shared/get-function-version.js +2 -1
  207. package/dist/shared/get-s3-client.d.ts +5 -0
  208. package/dist/shared/get-s3-client.js +13 -0
  209. package/dist/shared/get-service-client.d.ts +22 -0
  210. package/dist/shared/get-service-client.js +117 -0
  211. package/dist/shared/hosted-layers.d.ts +1 -1
  212. package/dist/shared/invoke-webhook.d.ts +1 -1
  213. package/dist/shared/lambda-insights-extensions.d.ts +1 -1
  214. package/dist/shared/lifecycle-rules.d.ts +4 -3
  215. package/dist/shared/lifecycle-rules.js +3 -3
  216. package/dist/shared/make-s3-url.d.ts +1 -1
  217. package/dist/shared/random-hash.d.ts +1 -3
  218. package/dist/shared/random-hash.js +3 -4
  219. package/dist/shared/return-values.d.ts +10 -11
  220. package/dist/shared/validate-aws-region.d.ts +1 -1
  221. package/dist/shared/validate-aws-region.js +3 -3
  222. package/dist/shared/validate-bucketname.d.ts +0 -4
  223. package/dist/shared/validate-bucketname.js +3 -23
  224. package/dist/shared/validate-lambda-codec.d.ts +2 -4
  225. package/dist/shared/validate-lambda-codec.js +3 -13
  226. package/dist/shared/validate-outname.js +2 -2
  227. package/dist/shared/validate-privacy.d.ts +1 -1
  228. package/dist/shared/validate-webhook.d.ts +1 -1
  229. package/package.json +11 -9
  230. package/remotionlambda-arm64.zip +0 -0
@@ -1,10 +1,10 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
- import type { AwsRegion } from '../../client';
3
- import type { PostRenderData, RenderMetadata } from '../../shared/constants';
2
+ import type { CloudProvider, LambdaErrorInfo, ProviderSpecifics, ReceivedArtifact } from '@remotion/serverless';
3
+ import { type RenderMetadata } from '@remotion/serverless/client';
4
+ import type { PostRenderData } from '../../shared/constants';
4
5
  import type { ParsedTiming } from '../../shared/parse-lambda-timings-key';
5
6
  import type { ChunkRetry } from './get-retry-stats';
6
- import type { LambdaErrorInfo } from './write-lambda-error';
7
- export type OverallRenderProgress = {
7
+ export type OverallRenderProgress<Provider extends CloudProvider> = {
8
8
  chunks: number[];
9
9
  framesRendered: number;
10
10
  framesEncoded: number;
@@ -14,23 +14,17 @@ export type OverallRenderProgress = {
14
14
  timeToRenderFrames: number | null;
15
15
  lambdasInvoked: number;
16
16
  retries: ChunkRetry[];
17
- postRenderData: PostRenderData | null;
17
+ postRenderData: PostRenderData<Provider> | null;
18
18
  timings: ParsedTiming[];
19
- renderMetadata: RenderMetadata | null;
19
+ renderMetadata: RenderMetadata<Provider> | null;
20
20
  errors: LambdaErrorInfo[];
21
21
  timeoutTimestamp: number;
22
22
  functionLaunched: number;
23
23
  serveUrlOpened: number | null;
24
24
  compositionValidated: number | null;
25
- receivedArtifact: ReceivedArtifact[];
25
+ receivedArtifact: ReceivedArtifact<Provider>[];
26
26
  };
27
- export type ReceivedArtifact = {
28
- filename: string;
29
- sizeInBytes: number;
30
- s3Url: string;
31
- s3Key: string;
32
- };
33
- export type OverallProgressHelper = {
27
+ export type OverallProgressHelper<Provider extends CloudProvider> = {
34
28
  upload: () => Promise<void>;
35
29
  setFrames: ({ encoded, rendered, index, }: {
36
30
  rendered: number;
@@ -42,22 +36,23 @@ export type OverallProgressHelper = {
42
36
  setCombinedFrames: (framesEncoded: number) => void;
43
37
  setTimeToCombine: (timeToCombine: number) => void;
44
38
  addRetry: (retry: ChunkRetry) => void;
45
- setPostRenderData: (postRenderData: PostRenderData) => void;
46
- setRenderMetadata: (renderMetadata: RenderMetadata) => void;
39
+ setPostRenderData: (postRenderData: PostRenderData<Provider>) => void;
40
+ setRenderMetadata: (renderMetadata: RenderMetadata<Provider>) => void;
47
41
  addErrorWithoutUpload: (errorInfo: LambdaErrorInfo) => void;
48
42
  setExpectedChunks: (expectedChunks: number) => void;
49
- get: () => OverallRenderProgress;
43
+ get: () => OverallRenderProgress<Provider>;
50
44
  setServeUrlOpened: (timestamp: number) => void;
51
45
  setCompositionValidated: (timestamp: number) => void;
52
- addReceivedArtifact: (asset: ReceivedArtifact) => void;
53
- getReceivedArtifacts: () => ReceivedArtifact[];
46
+ addReceivedArtifact: (asset: ReceivedArtifact<Provider>) => void;
47
+ getReceivedArtifacts: () => ReceivedArtifact<Provider>[];
54
48
  };
55
- export declare const makeInitialOverallRenderProgress: (timeoutTimestamp: number) => OverallRenderProgress;
56
- export declare const makeOverallRenderProgress: ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, }: {
49
+ export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
50
+ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }: {
57
51
  renderId: string;
58
52
  bucketName: string;
59
53
  expectedBucketOwner: string;
60
- region: AwsRegion;
54
+ region: Provider["region"];
61
55
  timeoutTimestamp: number;
62
56
  logLevel: LogLevel;
63
- }) => OverallProgressHelper;
57
+ providerSpecifics: ProviderSpecifics<Provider>;
58
+ }) => OverallProgressHelper<Provider>;
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeOverallRenderProgress = exports.makeInitialOverallRenderProgress = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const constants_1 = require("../../shared/constants");
6
- const io_1 = require("./io");
5
+ const client_1 = require("@remotion/serverless/client");
7
6
  const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
8
7
  return {
9
8
  chunks: [],
@@ -27,7 +26,7 @@ const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
27
26
  };
28
27
  };
29
28
  exports.makeInitialOverallRenderProgress = makeInitialOverallRenderProgress;
30
- const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, }) => {
29
+ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }) => {
31
30
  let framesRendered = [];
32
31
  let framesEncoded = [];
33
32
  let lambdasInvoked = [];
@@ -49,13 +48,14 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
49
48
  }
50
49
  const toWrite = JSON.stringify(getCurrentProgress());
51
50
  const start = Date.now();
52
- currentUploadPromise = (0, io_1.lambdaWriteFile)({
51
+ currentUploadPromise = providerSpecifics
52
+ .writeFile({
53
53
  body: toWrite,
54
54
  bucketName,
55
55
  customCredentials: null,
56
56
  downloadBehavior: null,
57
57
  expectedBucketOwner,
58
- key: (0, constants_1.overallProgressKey)(renderId),
58
+ key: (0, client_1.overallProgressKey)(renderId),
59
59
  privacy: 'private',
60
60
  region,
61
61
  })
@@ -1,3 +1,3 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
- import type { LambdaRoutines } from '../../defaults';
3
- export declare const printCloudwatchHelper: (type: LambdaRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
2
+ import type { ServerlessRoutines } from '@remotion/serverless/client';
3
+ export declare const printCloudwatchHelper: (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
@@ -0,0 +1,4 @@
1
+ import type { LogLevel } from '@remotion/renderer';
2
+ import type { ServerlessRoutines } from '@remotion/serverless/client';
3
+ export type PrintLoggingHelper = (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
4
+ export declare const printLoggingGrepHelper: PrintLoggingHelper;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printLoggingGrepHelper = void 0;
4
+ const renderer_1 = require("@remotion/renderer");
5
+ const printLoggingGrepHelper = (type, data, logLevel) => {
6
+ const d = Object.keys(data).reduce((a, b) => {
7
+ return [...a, `${b}=${data[b]}`];
8
+ }, []);
9
+ const msg = [`method=${type}`, ...d].join(',');
10
+ renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, msg);
11
+ };
12
+ exports.printLoggingGrepHelper = printLoggingGrepHelper;
@@ -1,6 +1,7 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
- import type { AwsRegion } from '../../pricing/aws-regions';
3
- import type { CustomCredentials } from '../../shared/aws-clients';
2
+ import type { CustomCredentials } from '@remotion/serverless/client';
3
+ import type { AwsRegion } from '../../regions';
4
+ import type { AwsProvider } from '../aws-implementation';
4
5
  export type LambdaReadFileProgress = (progress: {
5
6
  totalSize: number;
6
7
  downloaded: number;
@@ -13,7 +14,7 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
13
14
  expectedBucketOwner: string;
14
15
  outputPath: string;
15
16
  onProgress: LambdaReadFileProgress;
16
- customCredentials: CustomCredentials | null;
17
+ customCredentials: CustomCredentials<AwsProvider> | null;
17
18
  logLevel: LogLevel;
18
19
  }) => Promise<{
19
20
  sizeInBytes: number;
@@ -4,9 +4,9 @@ exports.lambdaDownloadFileWithProgress = void 0;
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
6
6
  const renderer_1 = require("@remotion/renderer");
7
- const aws_clients_1 = require("../../shared/aws-clients");
7
+ const get_s3_client_1 = require("../../shared/get-s3-client");
8
8
  const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }) => {
9
- const client = (0, aws_clients_1.getS3Client)(region, customCredentials);
9
+ const client = (0, get_s3_client_1.getS3Client)(region, customCredentials);
10
10
  const command = new client_s3_1.GetObjectCommand({
11
11
  Bucket: bucketName,
12
12
  ExpectedBucketOwner: customCredentials ? undefined : expectedBucketOwner,
@@ -1,5 +1,6 @@
1
- import type { RenderMetadata } from '../../defaults';
2
- export declare const lambdaRenderHasAudioVideo: (renderMetadata: RenderMetadata) => {
1
+ import type { CloudProvider } from '@remotion/serverless';
2
+ import type { RenderMetadata } from '@remotion/serverless/client';
3
+ export declare const lambdaRenderHasAudioVideo: <Provider extends CloudProvider<string, Record<string, unknown>>>(renderMetadata: RenderMetadata<Provider>) => {
3
4
  hasAudio: boolean;
4
5
  hasVideo: boolean;
5
6
  };
@@ -1,14 +1,17 @@
1
1
  import type { EmittedArtifact, LogLevel } from '@remotion/renderer';
2
- import type { LambdaPayload } from '../../defaults';
2
+ import type { CloudProvider } from '@remotion/serverless';
3
+ import { type ProviderSpecifics } from '@remotion/serverless';
4
+ import type { ServerlessPayload } from '@remotion/serverless/client';
3
5
  import type { OverallProgressHelper } from './overall-render-progress';
4
- export declare const streamRendererFunctionWithRetry: ({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, }: {
5
- payload: LambdaPayload;
6
+ export declare const streamRendererFunctionWithRetry: <Provider extends CloudProvider<string, Record<string, unknown>>>({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, }: {
7
+ payload: ServerlessPayload<Provider>;
6
8
  functionName: string;
7
9
  outdir: string;
8
- overallProgress: OverallProgressHelper;
10
+ overallProgress: OverallProgressHelper<Provider>;
9
11
  files: string[];
10
12
  logLevel: LogLevel;
11
13
  onArtifact: (asset: EmittedArtifact) => {
12
14
  alreadyExisted: boolean;
13
15
  };
16
+ providerSpecifics: ProviderSpecifics<Provider>;
14
17
  }) => Promise<unknown>;
@@ -2,14 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.streamRendererFunctionWithRetry = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
+ const serverless_1 = require("@remotion/serverless");
6
+ const client_1 = require("@remotion/serverless/client");
5
7
  const fs_1 = require("fs");
6
8
  const path_1 = require("path");
7
- const defaults_1 = require("../../defaults");
8
9
  const call_lambda_1 = require("../../shared/call-lambda");
9
- const get_current_region_1 = require("./get-current-region");
10
- const serialize_artifact_1 = require("./serialize-artifact");
11
- const streamRenderer = ({ payload, functionName, outdir, overallProgress, files, logLevel, onArtifact, }) => {
12
- if (payload.type !== defaults_1.LambdaRoutines.renderer) {
10
+ const streamRenderer = ({ payload, functionName, outdir, overallProgress, files, logLevel, onArtifact, providerSpecifics, }) => {
11
+ if (payload.type !== client_1.ServerlessRoutines.renderer) {
13
12
  throw new Error('Expected renderer type');
14
13
  }
15
14
  return new Promise((resolve) => {
@@ -46,7 +45,7 @@ const streamRenderer = ({ payload, functionName, outdir, overallProgress, files,
46
45
  return;
47
46
  }
48
47
  if (message.type === 'artifact-emitted') {
49
- const artifact = (0, serialize_artifact_1.deserializeArtifact)(message.payload.artifact);
48
+ const artifact = (0, serverless_1.deserializeArtifact)(message.payload.artifact);
50
49
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Received artifact on frame ${message.payload.artifact.frame}:`, artifact.filename, artifact.content.length + 'bytes.');
51
50
  const { alreadyExisted } = onArtifact(artifact);
52
51
  if (alreadyExisted) {
@@ -86,9 +85,9 @@ const streamRenderer = ({ payload, functionName, outdir, overallProgress, files,
86
85
  functionName,
87
86
  payload,
88
87
  retriesRemaining: 1,
89
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
88
+ region: providerSpecifics.getCurrentRegionInFunction(),
90
89
  timeoutInTest: 12000,
91
- type: defaults_1.LambdaRoutines.renderer,
90
+ type: client_1.ServerlessRoutines.renderer,
92
91
  receivedStreamingPayload,
93
92
  })
94
93
  .then(() => {
@@ -105,8 +104,8 @@ const streamRenderer = ({ payload, functionName, outdir, overallProgress, files,
105
104
  });
106
105
  });
107
106
  };
108
- const streamRendererFunctionWithRetry = async ({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, }) => {
109
- if (payload.type !== defaults_1.LambdaRoutines.renderer) {
107
+ const streamRendererFunctionWithRetry = async ({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, }) => {
108
+ if (payload.type !== client_1.ServerlessRoutines.renderer) {
110
109
  throw new Error('Expected renderer type');
111
110
  }
112
111
  const result = await streamRenderer({
@@ -117,6 +116,7 @@ const streamRendererFunctionWithRetry = async ({ payload, files, functionName, o
117
116
  payload,
118
117
  logLevel,
119
118
  onArtifact,
119
+ providerSpecifics,
120
120
  });
121
121
  if (result.type === 'error') {
122
122
  if (!result.shouldRetry) {
@@ -139,6 +139,7 @@ const streamRendererFunctionWithRetry = async ({ payload, files, functionName, o
139
139
  },
140
140
  logLevel,
141
141
  onArtifact,
142
+ providerSpecifics,
142
143
  });
143
144
  }
144
145
  };
@@ -1,21 +1 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { Writable } from 'stream';
4
- type Chunk = {
5
- PayloadChunk: {
6
- Payload: string | Buffer | null;
7
- };
8
- InvokeComplete: boolean;
9
- };
10
- export declare class ResponseStream extends Writable {
11
- private queue;
12
- private waitingResolve;
13
- private response;
14
- constructor();
15
- _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
16
- _finish(): void;
17
- getBufferedData(): Buffer;
18
- [Symbol.asyncIterator](): AsyncGenerator<Chunk, void, void>;
19
- }
20
1
  export declare function streamifyResponse(handler: Function): Function;
21
- export {};
@@ -1,67 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.streamifyResponse = exports.ResponseStream = void 0;
4
- const stream_1 = require("stream");
5
- class ResponseStream extends stream_1.Writable {
6
- constructor() {
7
- super();
8
- this.queue = [];
9
- this.waitingResolve = [];
10
- this.response = [];
11
- }
12
- _write(chunk, encoding, callback) {
13
- const data = Buffer.from(chunk, encoding);
14
- const resolve = this.waitingResolve.shift();
15
- if (resolve) {
16
- resolve({ PayloadChunk: { Payload: data }, InvokeComplete: false });
17
- }
18
- else {
19
- this.queue.push({ PayloadChunk: { Payload: data }, InvokeComplete: false });
20
- }
21
- this.response.push(Buffer.from(chunk, encoding));
22
- callback();
23
- }
24
- _finish() {
25
- const resolve = this.waitingResolve.shift();
26
- if (resolve) {
27
- resolve({ PayloadChunk: { Payload: null }, InvokeComplete: true });
28
- }
29
- else {
30
- this.queue.push({ PayloadChunk: { Payload: null }, InvokeComplete: true });
31
- }
32
- }
33
- getBufferedData() {
34
- return Buffer.concat(this.response);
35
- }
36
- async *[Symbol.asyncIterator]() {
37
- while (true) {
38
- if (this.queue.length > 0) {
39
- const shifted = this.queue.shift();
40
- yield shifted;
41
- if (shifted.InvokeComplete) {
42
- break;
43
- }
44
- }
45
- else {
46
- // Wait for new data to be written
47
- const shifted = await new Promise((resolve) => {
48
- this.waitingResolve.push((data) => {
49
- Promise.resolve(data).then((d) => {
50
- if (d) {
51
- resolve(d);
52
- }
53
- });
54
- });
55
- });
56
- yield shifted;
57
- if (shifted.InvokeComplete) {
58
- break;
59
- }
60
- }
61
- }
62
- }
63
- }
64
- exports.ResponseStream = ResponseStream;
3
+ exports.streamifyResponse = void 0;
65
4
  function streamifyResponse(handler) {
66
5
  // Check if we are inside Lambda
67
6
  if (process.env.AWS_LAMBDA_FUNCTION_VERSION &&
@@ -1,7 +1,8 @@
1
1
  import type { ChromiumOptions, LogLevel, OnBrowserDownload, openBrowser, RemotionServer } from '@remotion/renderer';
2
+ import type { ProviderSpecifics } from '@remotion/serverless';
3
+ import type { Await } from '@remotion/serverless/client';
2
4
  import type { VideoConfig } from 'remotion/no-react';
3
- import type { Await } from '../../shared/await';
4
- type ValidateCompositionOptions = {
5
+ type ValidateCompositionOptions<Region extends string> = {
5
6
  serveUrl: string;
6
7
  composition: string;
7
8
  browserInstance: Await<ReturnType<typeof openBrowser>>;
@@ -17,6 +18,7 @@ type ValidateCompositionOptions = {
17
18
  offthreadVideoCacheSizeInBytes: number | null;
18
19
  onBrowserDownload: OnBrowserDownload;
19
20
  onServeUrlVisited: () => void;
21
+ providerSpecifics: ProviderSpecifics<Region>;
20
22
  };
21
- export declare const validateComposition: ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, }: ValidateCompositionOptions) => Promise<VideoConfig>;
23
+ export declare const validateComposition: <Region extends string>({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, }: ValidateCompositionOptions<Region>) => Promise<VideoConfig>;
22
24
  export {};
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateComposition = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const get_chromium_executable_path_1 = require("./get-chromium-executable-path");
6
- const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, }) => {
5
+ const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, }) => {
7
6
  const { metadata: comp } = await renderer_1.RenderInternals.internalSelectComposition({
8
7
  id: composition,
9
8
  puppeteerInstance: browserInstance,
@@ -12,7 +11,7 @@ const validateComposition = async ({ serveUrl, composition, browserInstance, ser
12
11
  timeoutInMilliseconds,
13
12
  chromiumOptions,
14
13
  port,
15
- browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
14
+ browserExecutable: providerSpecifics.getChromiumPath(),
16
15
  serveUrl,
17
16
  logLevel,
18
17
  indent: false,
@@ -1,10 +1,12 @@
1
- import type { LambdaPayload } from '../shared/constants';
1
+ import type { CloudProvider, ProviderSpecifics, ResponseStream } from '@remotion/serverless';
2
+ import type { ServerlessPayload } from '@remotion/serverless/client';
3
+ import type { AwsProvider } from './aws-implementation';
2
4
  import type { RequestContext } from './helpers/request-context';
3
- import type { ResponseStream } from './helpers/streamify-response';
4
5
  export type OrError<T> = T | {
5
6
  type: 'error';
6
7
  message: string;
7
8
  stack: string;
8
9
  };
9
- export declare const routine: (params: LambdaPayload, responseStream: ResponseStream, context: RequestContext) => Promise<void>;
10
+ export declare const innerRoutine: <Provider extends CloudProvider<string, Record<string, unknown>>>(params: ServerlessPayload<Provider>, responseStream: ResponseStream, context: RequestContext, providerSpecifics: ProviderSpecifics<Provider>) => Promise<void>;
11
+ export declare const routine: (params: ServerlessPayload<AwsProvider>, responseStream: ResponseStream, context: RequestContext) => Promise<void>;
10
12
  export declare const handler: Function;