@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,24 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handler = exports.routine = void 0;
3
+ exports.handler = exports.routine = exports.innerRoutine = 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 constants_1 = require("../shared/constants");
6
- const compositions_1 = require("./compositions");
8
+ const aws_implementation_1 = require("./aws-implementation");
7
9
  const clean_tmpdir_1 = require("./helpers/clean-tmpdir");
8
10
  const is_warm_1 = require("./helpers/is-warm");
9
11
  const leak_detection_1 = require("./helpers/leak-detection");
10
12
  const lifecycle_1 = require("./helpers/lifecycle");
11
- const print_cloudwatch_helper_1 = require("./helpers/print-cloudwatch-helper");
13
+ const print_logging_helper_1 = require("./helpers/print-logging-helper");
12
14
  const streamify_response_1 = require("./helpers/streamify-response");
13
- const info_1 = require("./info");
14
15
  const launch_1 = require("./launch");
15
16
  const progress_1 = require("./progress");
16
17
  const renderer_2 = require("./renderer");
17
18
  const start_1 = require("./start");
18
19
  const still_1 = require("./still");
19
- const stream_writer_1 = require("./streaming/stream-writer");
20
- const streaming_1 = require("./streaming/streaming");
21
- const innerHandler = async ({ params, responseWriter, context, }) => {
20
+ const innerHandler = async ({ params, responseWriter, context, providerSpecifics, }) => {
22
21
  (0, leak_detection_1.setCurrentRequestId)(context.awsRequestId);
23
22
  process.env.__RESERVED_IS_INSIDE_REMOTION_LAMBDA = 'true';
24
23
  const timeoutInMilliseconds = context.getRemainingTimeInMillis();
@@ -31,18 +30,20 @@ const innerHandler = async ({ params, responseWriter, context, }) => {
31
30
  const isWarm = (0, is_warm_1.getWarm)();
32
31
  (0, is_warm_1.setWarm)();
33
32
  const currentUserId = context.invokedFunctionArn.split(':')[4];
34
- if (params.type === constants_1.LambdaRoutines.still) {
33
+ if (params.type === client_1.ServerlessRoutines.still) {
35
34
  (0, lifecycle_1.validateDeleteAfter)(params.deleteAfter);
36
- const renderId = (0, lifecycle_1.generateRandomHashWithLifeCycleRule)(params.deleteAfter);
37
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.still, {
38
- renderId,
39
- inputProps: JSON.stringify(params.inputProps),
40
- isWarm,
41
- }, params.logLevel);
35
+ const renderId = (0, lifecycle_1.generateRandomHashWithLifeCycleRule)(params.deleteAfter, providerSpecifics);
36
+ if (providerSpecifics.printLoggingHelper) {
37
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.still, {
38
+ renderId,
39
+ inputProps: JSON.stringify(params.inputProps),
40
+ isWarm,
41
+ }, params.logLevel);
42
+ }
42
43
  try {
43
44
  await new Promise((resolve, reject) => {
44
45
  const onStream = (payload) => {
45
- const message = (0, streaming_1.makeStreamPayload)({
46
+ const message = (0, client_1.makeStreamPayload)({
46
47
  message: payload,
47
48
  });
48
49
  return new Promise((innerResolve, innerReject) => {
@@ -69,6 +70,7 @@ const innerHandler = async ({ params, responseWriter, context, }) => {
69
70
  renderId,
70
71
  onStream,
71
72
  timeoutInMilliseconds,
73
+ providerSpecifics,
72
74
  })
73
75
  .then((r) => {
74
76
  resolve(r);
@@ -84,75 +86,90 @@ const innerHandler = async ({ params, responseWriter, context, }) => {
84
86
  }
85
87
  return;
86
88
  }
87
- if (params.type === constants_1.LambdaRoutines.start) {
88
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.start, {
89
- inputProps: JSON.stringify(params.inputProps),
90
- isWarm,
91
- }, params.logLevel);
89
+ if (params.type === client_1.ServerlessRoutines.start) {
90
+ if (providerSpecifics.printLoggingHelper) {
91
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.start, {
92
+ inputProps: JSON.stringify(params.inputProps),
93
+ isWarm,
94
+ }, params.logLevel);
95
+ }
92
96
  const response = await (0, start_1.startHandler)(params, {
93
97
  expectedBucketOwner: currentUserId,
94
98
  timeoutInMilliseconds,
95
- });
99
+ }, providerSpecifics);
96
100
  await responseWriter.write(Buffer.from(JSON.stringify(response)));
97
101
  await responseWriter.end();
98
102
  return;
99
103
  }
100
- if (params.type === constants_1.LambdaRoutines.launch) {
101
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.launch, {
102
- renderId: params.renderId,
103
- inputProps: JSON.stringify(params.inputProps),
104
- isWarm,
105
- }, params.logLevel);
104
+ if (params.type === client_1.ServerlessRoutines.launch) {
105
+ if (providerSpecifics.printLoggingHelper) {
106
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.launch, {
107
+ renderId: params.renderId,
108
+ inputProps: JSON.stringify(params.inputProps),
109
+ isWarm,
110
+ }, params.logLevel);
111
+ }
106
112
  const response = await (0, launch_1.launchHandler)(params, {
107
113
  expectedBucketOwner: currentUserId,
108
114
  getRemainingTimeInMillis: context.getRemainingTimeInMillis,
109
- });
115
+ }, providerSpecifics);
110
116
  await responseWriter.write(Buffer.from(JSON.stringify(response)));
111
117
  await responseWriter.end();
112
118
  return;
113
119
  }
114
- if (params.type === constants_1.LambdaRoutines.status) {
115
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.status, {
116
- renderId: params.renderId,
117
- isWarm,
118
- }, params.logLevel);
120
+ if (params.type === client_1.ServerlessRoutines.status) {
121
+ if (providerSpecifics.printLoggingHelper) {
122
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.status, {
123
+ renderId: params.renderId,
124
+ isWarm,
125
+ }, params.logLevel);
126
+ }
119
127
  const response = await (0, progress_1.progressHandler)(params, {
120
128
  expectedBucketOwner: currentUserId,
121
129
  timeoutInMilliseconds,
122
130
  retriesRemaining: 2,
131
+ providerSpecifics,
123
132
  });
124
133
  await responseWriter.write(Buffer.from(JSON.stringify(response)));
125
134
  await responseWriter.end();
126
135
  return;
127
136
  }
128
- if (params.type === constants_1.LambdaRoutines.renderer) {
129
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.renderer, {
130
- renderId: params.renderId,
131
- chunk: String(params.chunk),
132
- dumpLogs: String(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')),
133
- resolvedProps: JSON.stringify(params.resolvedProps),
134
- isWarm,
135
- }, params.logLevel);
136
- await new Promise((resolve, reject) => {
137
- (0, renderer_2.rendererHandler)(params, {
138
- expectedBucketOwner: currentUserId,
137
+ if (params.type === client_1.ServerlessRoutines.renderer) {
138
+ if (providerSpecifics.printLoggingHelper) {
139
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.renderer, {
140
+ renderId: params.renderId,
141
+ chunk: String(params.chunk),
142
+ dumpLogs: String(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')),
143
+ resolvedProps: JSON.stringify(params.resolvedProps),
139
144
  isWarm,
140
- }, (payload) => {
141
- const message = (0, streaming_1.makeStreamPayload)({
142
- message: payload,
143
- });
144
- const writeProm = responseWriter.write(message);
145
- return new Promise((innerResolve, innerReject) => {
146
- writeProm
147
- .then(() => {
148
- innerResolve();
149
- })
150
- .catch((err) => {
151
- reject(err);
152
- innerReject(err);
145
+ }, params.logLevel);
146
+ }
147
+ await new Promise((resolve, reject) => {
148
+ (0, renderer_2.rendererHandler)({
149
+ params,
150
+ options: {
151
+ expectedBucketOwner: currentUserId,
152
+ isWarm,
153
+ },
154
+ onStream: (payload) => {
155
+ const message = (0, client_1.makeStreamPayload)({
156
+ message: payload,
153
157
  });
154
- });
155
- }, context)
158
+ const writeProm = responseWriter.write(message);
159
+ return new Promise((innerResolve, innerReject) => {
160
+ writeProm
161
+ .then(() => {
162
+ innerResolve();
163
+ })
164
+ .catch((err) => {
165
+ reject(err);
166
+ innerReject(err);
167
+ });
168
+ });
169
+ },
170
+ requestContext: context,
171
+ providerSpecifics,
172
+ })
156
173
  .then((res) => {
157
174
  resolve(res);
158
175
  })
@@ -163,35 +180,40 @@ const innerHandler = async ({ params, responseWriter, context, }) => {
163
180
  await responseWriter.end();
164
181
  return;
165
182
  }
166
- if (params.type === constants_1.LambdaRoutines.info) {
167
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.info, {
168
- isWarm,
169
- }, params.logLevel);
170
- const response = await (0, info_1.infoHandler)(params);
183
+ if (params.type === client_1.ServerlessRoutines.info) {
184
+ if (providerSpecifics.printLoggingHelper) {
185
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.info, {
186
+ isWarm,
187
+ }, params.logLevel);
188
+ }
189
+ const response = await (0, serverless_1.infoHandler)(params);
171
190
  await responseWriter.write(Buffer.from(JSON.stringify(response)));
172
191
  await responseWriter.end();
173
192
  return;
174
193
  }
175
- if (params.type === constants_1.LambdaRoutines.compositions) {
176
- (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.compositions, {
177
- isWarm,
178
- }, params.logLevel);
179
- const response = await (0, compositions_1.compositionsHandler)(params, {
194
+ if (params.type === client_1.ServerlessRoutines.compositions) {
195
+ if (providerSpecifics.printLoggingHelper) {
196
+ (0, print_logging_helper_1.printLoggingGrepHelper)(client_1.ServerlessRoutines.compositions, {
197
+ isWarm,
198
+ }, params.logLevel);
199
+ }
200
+ const response = await (0, serverless_1.compositionsHandler)(params, {
180
201
  expectedBucketOwner: currentUserId,
181
- });
202
+ }, providerSpecifics);
182
203
  await responseWriter.write(Buffer.from(JSON.stringify(response)));
183
204
  await responseWriter.end();
184
205
  return;
185
206
  }
186
207
  throw new Error(constants_1.COMMAND_NOT_FOUND);
187
208
  };
188
- const routine = async (params, responseStream, context) => {
189
- const responseWriter = (0, stream_writer_1.streamWriter)(responseStream);
209
+ const innerRoutine = async (params, responseStream, context, providerSpecifics) => {
210
+ const responseWriter = (0, serverless_1.streamWriter)(responseStream);
190
211
  try {
191
212
  await innerHandler({
192
213
  params,
193
214
  responseWriter,
194
215
  context,
216
+ providerSpecifics,
195
217
  });
196
218
  }
197
219
  catch (err) {
@@ -204,5 +226,9 @@ const routine = async (params, responseStream, context) => {
204
226
  await responseWriter.end();
205
227
  }
206
228
  };
229
+ exports.innerRoutine = innerRoutine;
230
+ const routine = (params, responseStream, context) => {
231
+ return (0, exports.innerRoutine)(params, responseStream, context, aws_implementation_1.awsImplementation);
232
+ };
207
233
  exports.routine = routine;
208
234
  exports.handler = (0, streamify_response_1.streamifyResponse)(exports.routine);
@@ -1,4 +1,4 @@
1
- import type { LambdaPayload } from '../shared/constants';
1
+ import type { LambdaPayload } from '@remotion/serverless/client';
2
2
  export declare const infoHandler: (lambdaParams: LambdaPayload) => Promise<{
3
3
  version: string;
4
4
  type: "success";
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.infoHandler = void 0;
4
+ const client_1 = require("@remotion/serverless/client");
4
5
  const version_1 = require("remotion/version");
5
- const constants_1 = require("../shared/constants");
6
6
  const infoHandler = (lambdaParams) => {
7
- if (lambdaParams.type !== constants_1.LambdaRoutines.info) {
7
+ if (lambdaParams.type !== client_1.LambdaRoutines.info) {
8
8
  throw new TypeError('Expected info type');
9
9
  }
10
10
  const returnValue = {
@@ -1,9 +1,10 @@
1
- import type { LambdaPayload } from '../shared/constants';
1
+ import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
+ import type { ServerlessPayload } from '@remotion/serverless/client';
2
3
  type Options = {
3
4
  expectedBucketOwner: string;
4
5
  getRemainingTimeInMillis: () => number;
5
6
  };
6
- export declare const launchHandler: (params: LambdaPayload, options: Options) => Promise<{
7
+ export declare const launchHandler: <Provider extends CloudProvider<string, Record<string, unknown>>>(params: ServerlessPayload<Provider>, options: Options, providerSpecifics: ProviderSpecifics<Provider>) => Promise<{
7
8
  type: 'success';
8
9
  }>;
9
10
  export {};
@@ -2,44 +2,44 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.launchHandler = 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
9
  const version_1 = require("remotion/version");
8
- const compress_props_1 = require("../shared/compress-props");
9
10
  const constants_1 = require("../shared/constants");
10
11
  const docs_url_1 = require("../shared/docs-url");
11
12
  const invoke_webhook_1 = require("../shared/invoke-webhook");
12
13
  const validate_1 = require("../shared/validate");
13
14
  const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
14
- const validate_outname_1 = require("../shared/validate-outname");
15
15
  const validate_privacy_1 = require("../shared/validate-privacy");
16
16
  const plan_frame_ranges_1 = require("./chunk-optimization/plan-frame-ranges");
17
17
  const best_frames_per_lambda_param_1 = require("./helpers/best-frames-per-lambda-param");
18
18
  const cleanup_props_1 = require("./helpers/cleanup-props");
19
- const expected_out_name_1 = require("./helpers/expected-out-name");
20
19
  const find_output_file_in_bucket_1 = require("./helpers/find-output-file-in-bucket");
21
- const get_browser_instance_1 = require("./helpers/get-browser-instance");
22
- const get_current_region_1 = require("./helpers/get-current-region");
23
- const io_1 = require("./helpers/io");
24
20
  const merge_chunks_1 = require("./helpers/merge-chunks");
25
21
  const overall_render_progress_1 = require("./helpers/overall-render-progress");
26
22
  const stream_renderer_1 = require("./helpers/stream-renderer");
27
23
  const timer_1 = require("./helpers/timer");
28
- const validate_composition_1 = require("./helpers/validate-composition");
29
- const write_lambda_error_1 = require("./helpers/write-lambda-error");
30
- const innerLaunchHandler = async ({ functionName, params, options, overallProgress, registerCleanupTask, }) => {
24
+ const innerLaunchHandler = async ({ functionName, params, options, overallProgress, registerCleanupTask, providerSpecifics, }) => {
31
25
  var _a, _b, _c, _d, _e;
32
- if (params.type !== constants_1.LambdaRoutines.launch) {
26
+ if (params.type !== client_1.ServerlessRoutines.launch) {
33
27
  throw new Error('Expected launch type');
34
28
  }
35
29
  const startedDate = Date.now();
36
- const browserInstance = (0, get_browser_instance_1.getBrowserInstance)(params.logLevel, false, params.chromiumOptions);
37
- const inputPropsPromise = (0, compress_props_1.decompressInputProps)({
30
+ const browserInstance = (0, serverless_1.getBrowserInstance)({
31
+ logLevel: params.logLevel,
32
+ indent: false,
33
+ chromiumOptions: params.chromiumOptions,
34
+ providerSpecifics,
35
+ });
36
+ const inputPropsPromise = (0, client_1.decompressInputProps)({
38
37
  bucketName: params.bucketName,
39
38
  expectedBucketOwner: options.expectedBucketOwner,
40
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
39
+ region: providerSpecifics.getCurrentRegionInFunction(),
41
40
  serialized: params.inputProps,
42
41
  propsType: 'input-props',
42
+ providerSpecifics,
43
43
  });
44
44
  const logOptions = {
45
45
  indent: false,
@@ -50,7 +50,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
50
50
  const { instance } = await browserInstance;
51
51
  renderer_1.RenderInternals.Log.info(logOptions, 'Validating composition, input props:', serializedInputPropsWithCustomSchema);
52
52
  const startTime = Date.now();
53
- const comp = await (0, validate_composition_1.validateComposition)({
53
+ const comp = await (0, serverless_1.validateComposition)({
54
54
  serveUrl: params.serveUrl,
55
55
  composition: params.composition,
56
56
  browserInstance: instance,
@@ -70,6 +70,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
70
70
  onServeUrlVisited: () => {
71
71
  overallProgress.setServeUrlOpened(Date.now());
72
72
  },
73
+ providerSpecifics,
73
74
  });
74
75
  overallProgress.setCompositionValidated(Date.now());
75
76
  renderer_1.RenderInternals.Log.info(logOptions, 'Composition validated, resolved props', comp.props);
@@ -94,7 +95,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
94
95
  framesPerLambda,
95
96
  durationInFrames: frameCount.length,
96
97
  });
97
- (0, validate_outname_1.validateOutname)({
98
+ (0, serverless_1.validateOutname)({
98
99
  outName: params.outName,
99
100
  codec: params.codec,
100
101
  audioCodecSetting: params.audioCodec,
@@ -112,24 +113,26 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
112
113
  }
113
114
  overallProgress.setExpectedChunks(chunks.length);
114
115
  const sortedChunks = chunks.slice().sort((a, b) => a[0] - b[0]);
115
- const serializedResolved = (0, compress_props_1.serializeOrThrow)(comp.props, 'resolved-props');
116
- const needsToUpload = (0, compress_props_1.getNeedsToUpload)('video-or-audio', [
116
+ const serializedResolved = (0, client_1.serializeOrThrow)(comp.props, 'resolved-props');
117
+ const needsToUpload = (0, client_1.getNeedsToUpload)('video-or-audio', [
117
118
  serializedResolved.length,
118
119
  params.inputProps.type === 'bucket-url'
119
120
  ? params.inputProps.hash.length
120
121
  : params.inputProps.payload.length,
121
122
  ]);
122
- const serializedResolvedProps = await (0, compress_props_1.compressInputProps)({
123
+ const serializedResolvedProps = await (0, client_1.compressInputProps)({
123
124
  propsType: 'resolved-props',
124
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
125
+ region: providerSpecifics.getCurrentRegionInFunction(),
125
126
  stringifiedInputProps: serializedResolved,
126
127
  userSpecifiedBucketName: params.bucketName,
127
128
  needsToUpload,
129
+ providerSpecifics,
128
130
  });
129
131
  registerCleanupTask(() => {
130
132
  return (0, cleanup_props_1.cleanupProps)({
131
133
  serializedResolvedProps,
132
134
  inputProps: params.inputProps,
135
+ providerSpecifics,
133
136
  });
134
137
  });
135
138
  const fps = comp.fps / params.everyNthFrame;
@@ -139,7 +142,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
139
142
  const lambdaPayloads = chunks.map((chunkPayload) => {
140
143
  var _a;
141
144
  const payload = {
142
- type: constants_1.LambdaRoutines.renderer,
145
+ type: client_1.ServerlessRoutines.renderer,
143
146
  frameRange: chunkPayload,
144
147
  serveUrl: params.serveUrl,
145
148
  chunk: sortedChunks.indexOf(chunkPayload),
@@ -207,7 +210,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
207
210
  lambdaVersion: version_1.VERSION,
208
211
  framesPerLambda,
209
212
  memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
210
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
213
+ region: providerSpecifics.getCurrentRegionInFunction(),
211
214
  renderId: params.renderId,
212
215
  outName: (_c = params.outName) !== null && _c !== void 0 ? _c : undefined,
213
216
  privacy: params.privacy,
@@ -219,8 +222,9 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
219
222
  downloadBehavior: params.downloadBehavior,
220
223
  audioBitrate: params.audioBitrate,
221
224
  muted: params.muted,
225
+ functionName: process.env.AWS_LAMBDA_FUNCTION_NAME,
222
226
  };
223
- const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
227
+ const { key, renderBucketName, customCredentials } = (0, client_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
224
228
  ? null
225
229
  : (_e = (_d = params.outName) === null || _d === void 0 ? void 0 : _d.s3OutputProvider) !== null && _e !== void 0 ? _e : null);
226
230
  if (!params.overwrite) {
@@ -229,10 +233,12 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
229
233
  bucketName: params.bucketName,
230
234
  customCredentials,
231
235
  renderMetadata,
232
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
236
+ region: providerSpecifics.getCurrentRegionInFunction(),
237
+ currentRegion: providerSpecifics.getCurrentRegionInFunction(),
238
+ providerSpecifics,
233
239
  });
234
240
  if (output) {
235
- throw new TypeError(`Output file "${key}" in bucket "${renderBucketName}" in region "${(0, get_current_region_1.getCurrentRegionInFunction)()}" already exists. Delete it before re-rendering, or set the 'overwrite' option in renderMediaOnLambda() to overwrite it."`);
241
+ throw new TypeError(`Output file "${key}" in bucket "${renderBucketName}" in region "${providerSpecifics.getCurrentRegionInFunction()}" already exists. Delete it before re-rendering, or set the 'overwrite' option in renderMediaOnLambda() to overwrite it."`);
236
242
  }
237
243
  findOutputFile.end();
238
244
  }
@@ -251,13 +257,14 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
251
257
  .find((a) => a.filename === artifact.filename)) {
252
258
  return { alreadyExisted: true };
253
259
  }
254
- const region = (0, get_current_region_1.getCurrentRegionInFunction)();
255
- const s3Key = (0, constants_1.artifactName)(renderMetadata.renderId, artifact.filename);
260
+ const region = providerSpecifics.getCurrentRegionInFunction();
261
+ const storageKey = (0, client_1.artifactName)(renderMetadata.renderId, artifact.filename);
256
262
  const start = Date.now();
257
263
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, 'Writing artifact ' + artifact.filename + ' to S3');
258
- (0, io_1.lambdaWriteFile)({
264
+ providerSpecifics
265
+ .writeFile({
259
266
  bucketName: renderBucketName,
260
- key: s3Key,
267
+ key: storageKey,
261
268
  body: artifact.content,
262
269
  region,
263
270
  privacy: params.privacy,
@@ -267,12 +274,12 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
267
274
  })
268
275
  .then(() => {
269
276
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, `Wrote artifact to S3 in ${Date.now() - start}ms`);
270
- overallProgress.addReceivedArtifact({
271
- filename: artifact.filename,
272
- sizeInBytes: artifact.content.length,
273
- s3Url: `https://s3.${region}.amazonaws.com/${renderBucketName}/${s3Key}`,
274
- s3Key,
275
- });
277
+ overallProgress.addReceivedArtifact(providerSpecifics.makeArtifactWithDetails({
278
+ region,
279
+ renderBucketName,
280
+ storageKey,
281
+ artifact,
282
+ }));
276
283
  })
277
284
  .catch((err) => {
278
285
  overallProgress.addErrorWithoutUpload({
@@ -302,6 +309,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
302
309
  payload,
303
310
  logLevel: params.logLevel,
304
311
  onArtifact,
312
+ providerSpecifics,
305
313
  });
306
314
  }));
307
315
  const postRenderData = await (0, merge_chunks_1.mergeChunksAndFinishRender)({
@@ -332,12 +340,13 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
332
340
  files: files.sort(),
333
341
  overallProgress,
334
342
  startTime,
343
+ providerSpecifics,
335
344
  });
336
345
  return postRenderData;
337
346
  };
338
- const launchHandler = async (params, options) => {
347
+ const launchHandler = async (params, options, providerSpecifics) => {
339
348
  var _a, _b, _c;
340
- if (params.type !== constants_1.LambdaRoutines.launch) {
349
+ if (params.type !== client_1.ServerlessRoutines.launch) {
341
350
  throw new Error('Expected launch type');
342
351
  }
343
352
  const functionName = (_a = params.rendererFunctionName) !== null && _a !== void 0 ? _a : process.env.AWS_LAMBDA_FUNCTION_NAME;
@@ -363,8 +372,11 @@ const launchHandler = async (params, options) => {
363
372
  const onTimeout = async () => {
364
373
  var _a;
365
374
  renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, 'Function is about to time out. Can not finish render.');
366
- // @ts-expect-error
367
- globalThis._dumpUnreleasedBuffers.emit('dump-unreleased-buffers');
375
+ // @ts-expect-error - We are adding a listener to a global variable
376
+ if (globalThis._dumpUnreleasedBuffers) {
377
+ // @ts-expect-error - We are adding a listener to a global variable
378
+ globalThis._dumpUnreleasedBuffers.emit('dump-unreleased-buffers');
379
+ }
368
380
  runCleanupTasks();
369
381
  if (!params.webhook) {
370
382
  renderer_1.RenderInternals.Log.verbose({
@@ -428,9 +440,10 @@ const launchHandler = async (params, options) => {
428
440
  renderId: params.renderId,
429
441
  bucketName: params.bucketName,
430
442
  expectedBucketOwner: options.expectedBucketOwner,
431
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
443
+ region: providerSpecifics.getCurrentRegionInFunction(),
432
444
  timeoutTimestamp: options.getRemainingTimeInMillis() + Date.now(),
433
445
  logLevel: params.logLevel,
446
+ providerSpecifics,
434
447
  });
435
448
  try {
436
449
  const postRenderData = await innerLaunchHandler({
@@ -439,6 +452,7 @@ const launchHandler = async (params, options) => {
439
452
  options,
440
453
  overallProgress,
441
454
  registerCleanupTask,
455
+ providerSpecifics,
442
456
  });
443
457
  clearTimeout(webhookDueToTimeout);
444
458
  if (!params.webhook || webhookInvoked) {
@@ -504,7 +518,7 @@ const launchHandler = async (params, options) => {
504
518
  stack: err.stack,
505
519
  type: 'stitcher',
506
520
  isFatal: true,
507
- tmpDir: (0, write_lambda_error_1.getTmpDirStateIfENoSp)(err.stack),
521
+ tmpDir: (0, serverless_1.getTmpDirStateIfENoSp)(err.stack, providerSpecifics),
508
522
  attempt: 1,
509
523
  totalAttempts: 1,
510
524
  willRetry: false,
@@ -560,7 +574,7 @@ const launchHandler = async (params, options) => {
560
574
  throw err;
561
575
  }
562
576
  finally {
563
- (0, get_browser_instance_1.forgetBrowserEventLoop)(params.logLevel);
577
+ (0, serverless_1.forgetBrowserEventLoop)(params.logLevel);
564
578
  }
565
579
  };
566
580
  exports.launchHandler = launchHandler;
@@ -1,8 +1,11 @@
1
- import type { LambdaPayload, RenderProgress } from '../shared/constants';
2
- type Options = {
1
+ import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
+ import type { ServerlessPayload } from '@remotion/serverless/client';
3
+ import type { GenericRenderProgress } from '../shared/constants';
4
+ type Options<Provider extends CloudProvider> = {
3
5
  expectedBucketOwner: string;
4
6
  timeoutInMilliseconds: number;
5
7
  retriesRemaining: number;
8
+ providerSpecifics: ProviderSpecifics<Provider>;
6
9
  };
7
- export declare const progressHandler: (lambdaParams: LambdaPayload, options: Options) => Promise<RenderProgress>;
10
+ export declare const progressHandler: <Provider extends CloudProvider<string, Record<string, unknown>>>(lambdaParams: ServerlessPayload<Provider>, options: Options<Provider>) => Promise<GenericRenderProgress<Provider>>;
8
11
  export {};
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.progressHandler = void 0;
4
+ const client_1 = require("@remotion/serverless/client");
4
5
  const version_1 = require("remotion/version");
5
- const constants_1 = require("../shared/constants");
6
- const get_current_region_1 = require("./helpers/get-current-region");
7
6
  const get_progress_1 = require("./helpers/get-progress");
8
7
  const progressHandler = async (lambdaParams, options) => {
9
8
  var _a;
10
- if (lambdaParams.type !== constants_1.LambdaRoutines.status) {
9
+ if (lambdaParams.type !== client_1.ServerlessRoutines.status) {
11
10
  throw new TypeError('Expected status type');
12
11
  }
13
12
  if (lambdaParams.version !== version_1.VERSION) {
@@ -21,10 +20,11 @@ const progressHandler = async (lambdaParams, options) => {
21
20
  bucketName: lambdaParams.bucketName,
22
21
  renderId: lambdaParams.renderId,
23
22
  expectedBucketOwner: options.expectedBucketOwner,
24
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
23
+ region: options.providerSpecifics.getCurrentRegionInFunction(),
25
24
  memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
26
25
  timeoutInMilliseconds: options.timeoutInMilliseconds,
27
26
  customCredentials: (_a = lambdaParams.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
27
+ providerSpecifics: options.providerSpecifics,
28
28
  });
29
29
  return progress;
30
30
  }
@@ -40,6 +40,7 @@ const progressHandler = async (lambdaParams, options) => {
40
40
  expectedBucketOwner: options.expectedBucketOwner,
41
41
  timeoutInMilliseconds: options.timeoutInMilliseconds,
42
42
  retriesRemaining: options.retriesRemaining - 1,
43
+ providerSpecifics: options.providerSpecifics,
43
44
  });
44
45
  }
45
46
  throw err;
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,11 +1,17 @@
1
- import type { LambdaPayload } from '../shared/constants';
1
+ import type { CloudProvider, OnStream, ProviderSpecifics } from '@remotion/serverless';
2
+ import type { ServerlessPayload } from '@remotion/serverless/client';
2
3
  import type { RequestContext } from './helpers/request-context';
3
- import type { OnStream } from './streaming/streaming';
4
4
  type Options = {
5
5
  expectedBucketOwner: string;
6
6
  isWarm: boolean;
7
7
  };
8
- export declare const rendererHandler: (params: LambdaPayload, options: Options, onStream: OnStream, requestContext: RequestContext) => Promise<{
8
+ export declare const rendererHandler: <Provider extends CloudProvider<string, Record<string, unknown>>>({ onStream, options, params, providerSpecifics, requestContext, }: {
9
+ params: ServerlessPayload<Provider>;
10
+ options: Options;
11
+ onStream: OnStream<Provider>;
12
+ requestContext: RequestContext;
13
+ providerSpecifics: ProviderSpecifics<Provider>;
14
+ }) => Promise<{
9
15
  type: 'success';
10
16
  }>;
11
17
  export {};