@remotion/lambda 4.0.0-webhook.26 → 4.1.0-alpha2

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 (409) hide show
  1. package/LICENSE.md +8 -8
  2. package/dist/admin/bundle-lambda.d.ts +0 -0
  3. package/dist/admin/bundle-lambda.js +24 -13
  4. package/dist/admin/generate-etag-list.d.ts +1 -0
  5. package/dist/admin/generate-etag-list.js +14 -0
  6. package/dist/admin/make-layer-public.d.ts +0 -0
  7. package/dist/admin/make-layer-public.js +59 -65
  8. package/dist/api/bucket-exists.d.ts +0 -0
  9. package/dist/api/bucket-exists.js +0 -0
  10. package/dist/api/clean-items.d.ts +0 -0
  11. package/dist/api/clean-items.js +1 -1
  12. package/dist/api/create-bucket.d.ts +0 -0
  13. package/dist/api/create-bucket.js +34 -1
  14. package/dist/api/create-function.d.ts +1 -3
  15. package/dist/api/create-function.js +27 -6
  16. package/dist/api/delete-function.d.ts +4 -4
  17. package/dist/api/delete-function.js +3 -3
  18. package/dist/api/delete-render.d.ts +2 -2
  19. package/dist/api/delete-render.js +1 -1
  20. package/dist/api/delete-site.d.ts +7 -7
  21. package/dist/api/delete-site.js +9 -7
  22. package/dist/api/deploy-function.d.ts +11 -13
  23. package/dist/api/deploy-function.js +28 -31
  24. package/dist/api/deploy-site.d.ts +13 -5
  25. package/dist/api/deploy-site.js +61 -25
  26. package/dist/api/download-media.d.ts +4 -8
  27. package/dist/api/download-media.js +5 -9
  28. package/dist/api/estimate-price.d.ts +3 -5
  29. package/dist/api/estimate-price.js +4 -10
  30. package/dist/api/get-aws-client.d.ts +6 -4
  31. package/dist/api/get-aws-client.js +3 -1
  32. package/dist/api/get-buckets.d.ts +1 -1
  33. package/dist/api/get-buckets.js +26 -9
  34. package/dist/api/get-compositions-on-lambda.d.ts +31 -0
  35. package/dist/api/get-compositions-on-lambda.js +56 -0
  36. package/dist/api/get-function-info.d.ts +3 -3
  37. package/dist/api/get-function-info.js +1 -1
  38. package/dist/api/get-functions.d.ts +5 -7
  39. package/dist/api/get-functions.js +8 -10
  40. package/dist/api/get-or-create-bucket.d.ts +6 -6
  41. package/dist/api/get-or-create-bucket.js +10 -18
  42. package/dist/api/get-regions.d.ts +6 -2
  43. package/dist/api/get-regions.js +6 -3
  44. package/dist/api/get-render-progress.d.ts +3 -3
  45. package/dist/api/get-render-progress.js +6 -11
  46. package/dist/api/get-sites.d.ts +4 -5
  47. package/dist/api/get-sites.js +1 -2
  48. package/dist/api/iam-validation/role-permissions.d.ts +0 -0
  49. package/dist/api/iam-validation/role-permissions.js +0 -0
  50. package/dist/api/iam-validation/simulate-rule.d.ts +2 -2
  51. package/dist/api/iam-validation/simulate-rule.js +0 -22
  52. package/dist/api/iam-validation/simulate.d.ts +3 -3
  53. package/dist/api/iam-validation/simulate.js +27 -6
  54. package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
  55. package/dist/api/iam-validation/suggested-policy.js +0 -0
  56. package/dist/api/iam-validation/user-permissions.d.ts +1 -1
  57. package/dist/api/iam-validation/user-permissions.js +3 -8
  58. package/dist/api/make-lambda-payload.d.ts +5 -0
  59. package/dist/api/make-lambda-payload.js +77 -0
  60. package/dist/api/mock-functions.d.ts +0 -0
  61. package/dist/api/mock-functions.js +0 -0
  62. package/dist/api/presign-url.d.ts +4 -5
  63. package/dist/api/presign-url.js +3 -3
  64. package/dist/api/render-media-on-lambda.d.ts +25 -11
  65. package/dist/api/render-media-on-lambda.js +16 -49
  66. package/dist/api/render-still-on-lambda.d.ts +15 -6
  67. package/dist/api/render-still-on-lambda.js +23 -9
  68. package/dist/api/speculate-function-name.d.ts +14 -0
  69. package/dist/api/speculate-function-name.js +22 -0
  70. package/dist/api/upload-dir.d.ts +6 -5
  71. package/dist/api/upload-dir.js +54 -51
  72. package/dist/api/validate-webhook-signature.d.ts +2 -2
  73. package/dist/api/validate-webhook-signature.js +1 -1
  74. package/dist/cli/args.d.ts +7 -5
  75. package/dist/cli/args.js +1 -5
  76. package/dist/cli/commands/compositions/index.d.ts +2 -0
  77. package/dist/cli/commands/compositions/index.js +44 -0
  78. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  79. package/dist/cli/commands/functions/deploy.js +15 -15
  80. package/dist/cli/commands/functions/index.d.ts +0 -0
  81. package/dist/cli/commands/functions/index.js +16 -17
  82. package/dist/cli/commands/functions/ls.d.ts +0 -0
  83. package/dist/cli/commands/functions/ls.js +17 -10
  84. package/dist/cli/commands/functions/rm.d.ts +0 -0
  85. package/dist/cli/commands/functions/rm.js +20 -7
  86. package/dist/cli/commands/functions/rmall.d.ts +0 -0
  87. package/dist/cli/commands/functions/rmall.js +20 -8
  88. package/dist/cli/commands/policies/policies.d.ts +0 -0
  89. package/dist/cli/commands/policies/policies.js +0 -0
  90. package/dist/cli/commands/policies/role.d.ts +0 -0
  91. package/dist/cli/commands/policies/role.js +0 -0
  92. package/dist/cli/commands/policies/user.d.ts +0 -0
  93. package/dist/cli/commands/policies/user.js +0 -0
  94. package/dist/cli/commands/policies/validate.d.ts +0 -0
  95. package/dist/cli/commands/policies/validate.js +0 -0
  96. package/dist/cli/commands/quotas/increase.d.ts +0 -0
  97. package/dist/cli/commands/quotas/increase.js +30 -10
  98. package/dist/cli/commands/quotas/index.d.ts +0 -0
  99. package/dist/cli/commands/quotas/index.js +8 -9
  100. package/dist/cli/commands/quotas/list.d.ts +0 -0
  101. package/dist/cli/commands/quotas/list.js +0 -0
  102. package/dist/cli/commands/regions.d.ts +0 -0
  103. package/dist/cli/commands/regions.js +6 -2
  104. package/dist/cli/commands/render/progress.d.ts +11 -7
  105. package/dist/cli/commands/render/progress.js +55 -45
  106. package/dist/cli/commands/render/render.d.ts +1 -1
  107. package/dist/cli/commands/render/render.js +99 -27
  108. package/dist/cli/commands/sites/create.d.ts +1 -1
  109. package/dist/cli/commands/sites/create.js +36 -33
  110. package/dist/cli/commands/sites/index.d.ts +1 -1
  111. package/dist/cli/commands/sites/index.js +18 -16
  112. package/dist/cli/commands/sites/ls.d.ts +0 -0
  113. package/dist/cli/commands/sites/ls.js +9 -10
  114. package/dist/cli/commands/sites/rm.d.ts +0 -0
  115. package/dist/cli/commands/sites/rm.js +6 -16
  116. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  117. package/dist/cli/commands/sites/rmall.js +5 -16
  118. package/dist/cli/commands/still.d.ts +1 -1
  119. package/dist/cli/commands/still.js +49 -20
  120. package/dist/cli/get-aws-region.d.ts +0 -0
  121. package/dist/cli/get-aws-region.js +0 -0
  122. package/dist/cli/help.d.ts +0 -0
  123. package/dist/cli/help.js +4 -0
  124. package/dist/cli/helpers/confirm.d.ts +0 -0
  125. package/dist/cli/helpers/confirm.js +0 -0
  126. package/dist/cli/helpers/date-string.d.ts +0 -0
  127. package/dist/cli/helpers/date-string.js +0 -0
  128. package/dist/cli/helpers/find-function-name.d.ts +0 -0
  129. package/dist/cli/helpers/find-function-name.js +35 -6
  130. package/dist/cli/helpers/progress-bar.d.ts +12 -7
  131. package/dist/cli/helpers/progress-bar.js +20 -11
  132. package/dist/cli/helpers/quit.d.ts +0 -0
  133. package/dist/cli/helpers/quit.js +0 -0
  134. package/dist/cli/helpers/yes-or-no.d.ts +0 -0
  135. package/dist/cli/helpers/yes-or-no.js +0 -0
  136. package/dist/cli/index.d.ts +1 -1
  137. package/dist/cli/index.js +23 -12
  138. package/dist/cli/is-cli.d.ts +0 -0
  139. package/dist/cli/is-cli.js +0 -0
  140. package/dist/cli/log.d.ts +15 -0
  141. package/dist/cli/log.js +0 -0
  142. package/dist/client.d.ts +8 -2
  143. package/dist/client.js +9 -1
  144. package/dist/defaults.d.ts +0 -0
  145. package/dist/defaults.js +0 -0
  146. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
  147. package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
  148. package/dist/functions/chunk-optimization/types.d.ts +2 -13
  149. package/dist/functions/chunk-optimization/types.js +0 -0
  150. package/dist/functions/compositions.d.ts +8 -0
  151. package/dist/functions/compositions.js +60 -0
  152. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
  153. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
  154. package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
  155. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  156. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
  157. package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
  158. package/dist/functions/helpers/check-if-render-exists.d.ts +0 -0
  159. package/dist/functions/helpers/check-if-render-exists.js +0 -0
  160. package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
  161. package/dist/functions/helpers/clean-tmpdir.js +8 -8
  162. package/dist/functions/helpers/concat-videos.d.ts +13 -5
  163. package/dist/functions/helpers/concat-videos.js +38 -39
  164. package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
  165. package/dist/functions/helpers/create-post-render-data.js +1 -15
  166. package/dist/functions/helpers/delete-chunks.d.ts +0 -0
  167. package/dist/functions/helpers/delete-chunks.js +0 -0
  168. package/dist/functions/helpers/expected-out-name.d.ts +0 -0
  169. package/dist/functions/helpers/expected-out-name.js +2 -2
  170. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
  171. package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
  172. package/dist/functions/helpers/format-costs-info.d.ts +0 -0
  173. package/dist/functions/helpers/format-costs-info.js +0 -0
  174. package/dist/functions/helpers/get-browser-instance.d.ts +1 -2
  175. package/dist/functions/helpers/get-browser-instance.js +7 -3
  176. package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
  177. package/dist/functions/helpers/get-chromium-executable-path.js +8 -6
  178. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
  179. package/dist/functions/helpers/get-cleanup-progress.js +0 -0
  180. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  181. package/dist/functions/helpers/get-current-region.js +0 -0
  182. package/dist/functions/helpers/get-custom-out-name.d.ts +0 -0
  183. package/dist/functions/helpers/get-custom-out-name.js +1 -1
  184. package/dist/functions/helpers/get-encoding-metadata.d.ts +5 -8
  185. package/dist/functions/helpers/get-encoding-metadata.js +7 -17
  186. package/dist/functions/helpers/get-files-in-folder.d.ts +1 -1
  187. package/dist/functions/helpers/get-files-in-folder.js +5 -5
  188. package/dist/functions/helpers/get-files-to-delete.d.ts +1 -1
  189. package/dist/functions/helpers/get-files-to-delete.js +0 -0
  190. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
  191. package/dist/functions/helpers/get-final-encoding-status.js +1 -4
  192. package/dist/functions/helpers/get-folder-size.d.ts +0 -0
  193. package/dist/functions/helpers/get-folder-size.js +0 -0
  194. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +2 -6
  195. package/dist/functions/helpers/get-lambdas-invoked-stats.js +1 -9
  196. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +0 -0
  197. package/dist/functions/helpers/get-output-url-from-metadata.js +0 -0
  198. package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
  199. package/dist/functions/helpers/get-overall-progress.js +7 -5
  200. package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
  201. package/dist/functions/helpers/get-post-render-data.js +0 -0
  202. package/dist/functions/helpers/get-progress.d.ts +0 -0
  203. package/dist/functions/helpers/get-progress.js +43 -42
  204. package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
  205. package/dist/functions/helpers/get-render-metadata.js +0 -0
  206. package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
  207. package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
  208. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  209. package/dist/functions/helpers/get-retry-stats.js +0 -0
  210. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
  211. package/dist/functions/helpers/get-time-to-finish.js +0 -0
  212. package/dist/functions/helpers/inspect-errors.d.ts +0 -0
  213. package/dist/functions/helpers/inspect-errors.js +0 -0
  214. package/dist/functions/helpers/io.d.ts +10 -4
  215. package/dist/functions/helpers/io.js +25 -3
  216. package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
  217. package/dist/functions/helpers/is-enosp-err.js +1 -1
  218. package/dist/functions/helpers/is-warm.d.ts +0 -0
  219. package/dist/functions/helpers/is-warm.js +0 -0
  220. package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
  221. package/dist/functions/helpers/make-timeout-error.js +35 -0
  222. package/dist/functions/helpers/make-timeout-message.d.ts +6 -0
  223. package/dist/functions/helpers/make-timeout-message.js +31 -0
  224. package/dist/functions/helpers/min-max.d.ts +0 -0
  225. package/dist/functions/helpers/min-max.js +0 -0
  226. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +0 -0
  227. package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
  228. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
  229. package/dist/functions/helpers/print-concurrency-curve.js +0 -0
  230. package/dist/functions/helpers/read-with-progress.d.ts +1 -1
  231. package/dist/functions/helpers/read-with-progress.js +1 -1
  232. package/dist/functions/helpers/streamify-response.d.ts +16 -0
  233. package/dist/functions/helpers/streamify-response.js +67 -0
  234. package/dist/functions/helpers/timer.d.ts +0 -0
  235. package/dist/functions/helpers/timer.js +0 -0
  236. package/dist/functions/helpers/validate-composition.d.ts +10 -9
  237. package/dist/functions/helpers/validate-composition.js +16 -13
  238. package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
  239. package/dist/functions/helpers/write-lambda-error.js +0 -0
  240. package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
  241. package/dist/functions/helpers/write-post-render-data.js +0 -0
  242. package/dist/functions/index.d.ts +1 -7
  243. package/dist/functions/index.js +43 -10
  244. package/dist/functions/info.d.ts +0 -0
  245. package/dist/functions/info.js +0 -0
  246. package/dist/functions/launch.d.ts +2 -1
  247. package/dist/functions/launch.js +152 -134
  248. package/dist/functions/progress.d.ts +1 -1
  249. package/dist/functions/progress.js +2 -2
  250. package/dist/functions/renderer.d.ts +1 -1
  251. package/dist/functions/renderer.js +73 -42
  252. package/dist/functions/start.d.ts +1 -1
  253. package/dist/functions/start.js +22 -8
  254. package/dist/functions/still.d.ts +1 -1
  255. package/dist/functions/still.js +80 -37
  256. package/dist/index.d.ts +24 -8
  257. package/dist/index.js +23 -6
  258. package/dist/internals.d.ts +3 -1
  259. package/dist/internals.js +3 -0
  260. package/dist/pricing/aws-regions.d.ts +3 -2
  261. package/dist/pricing/aws-regions.js +31 -1
  262. package/dist/pricing/price-per-1-s.d.ts +0 -0
  263. package/dist/pricing/price-per-1-s.js +413 -39
  264. package/dist/regions.d.ts +0 -0
  265. package/dist/regions.js +0 -0
  266. package/dist/shared/await.d.ts +1 -1
  267. package/dist/shared/await.js +0 -0
  268. package/dist/shared/aws-clients.d.ts +6 -3
  269. package/dist/shared/aws-clients.js +75 -13
  270. package/dist/shared/bundle-site.d.ts +0 -0
  271. package/dist/shared/bundle-site.js +0 -0
  272. package/dist/shared/call-lambda.d.ts +0 -0
  273. package/dist/shared/call-lambda.js +27 -2
  274. package/dist/shared/check-credentials.d.ts +0 -0
  275. package/dist/shared/check-credentials.js +3 -0
  276. package/dist/shared/chunk-progress.d.ts +9 -0
  277. package/dist/shared/chunk-progress.js +2034 -0
  278. package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
  279. package/dist/shared/cleanup-serialized-input-props.js +19 -0
  280. package/dist/shared/constants.d.ts +140 -89
  281. package/dist/shared/constants.js +7 -4
  282. package/dist/shared/content-disposition-header.d.ts +1 -1
  283. package/dist/shared/content-disposition-header.js +0 -0
  284. package/dist/shared/convert-to-serve-url.d.ts +5 -1
  285. package/dist/shared/convert-to-serve-url.js +1 -5
  286. package/dist/shared/deserialize-input-props.d.ts +8 -0
  287. package/dist/shared/deserialize-input-props.js +26 -0
  288. package/dist/shared/docs-url.d.ts +0 -0
  289. package/dist/shared/docs-url.js +0 -0
  290. package/dist/shared/function-zip-path.d.ts +1 -1
  291. package/dist/shared/function-zip-path.js +3 -3
  292. package/dist/shared/get-account-id.d.ts +0 -0
  293. package/dist/shared/get-account-id.js +4 -6
  294. package/dist/shared/{get-cloudwatch-stream-url.d.ts → get-aws-urls.d.ts} +7 -1
  295. package/dist/shared/get-aws-urls.js +12 -0
  296. package/dist/shared/get-etag.d.ts +1 -0
  297. package/dist/shared/get-etag.js +24 -0
  298. package/dist/shared/get-function-version.d.ts +0 -0
  299. package/dist/shared/get-function-version.js +0 -0
  300. package/dist/shared/get-most-expensive-chunks.d.ts +2 -2
  301. package/dist/shared/get-most-expensive-chunks.js +3 -2
  302. package/dist/shared/get-s3-operations.d.ts +10 -0
  303. package/dist/shared/get-s3-operations.js +36 -0
  304. package/dist/shared/hosted-layers.d.ts +5 -8
  305. package/dist/shared/hosted-layers.js +210 -284
  306. package/dist/shared/invoke-webhook.d.ts +5 -18
  307. package/dist/shared/invoke-webhook.js +5 -19
  308. package/dist/shared/is-in-lambda.d.ts +0 -0
  309. package/dist/shared/is-in-lambda.js +0 -0
  310. package/dist/shared/lambda-version-string.d.ts +0 -0
  311. package/dist/shared/lambda-version-string.js +0 -0
  312. package/dist/shared/make-s3-key.d.ts +0 -0
  313. package/dist/shared/make-s3-key.js +2 -2
  314. package/dist/shared/make-s3-url.d.ts +0 -0
  315. package/dist/shared/make-s3-url.js +2 -2
  316. package/dist/shared/p-limit.d.ts +0 -0
  317. package/dist/shared/p-limit.js +0 -0
  318. package/dist/shared/parse-chunk-key.d.ts +4 -0
  319. package/dist/shared/parse-chunk-key.js +14 -0
  320. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
  321. package/dist/shared/parse-lambda-initialized-key.js +0 -0
  322. package/dist/shared/parse-lambda-timings-key.d.ts +1 -1
  323. package/dist/shared/parse-lambda-timings-key.js +0 -0
  324. package/dist/shared/random-hash.d.ts +0 -0
  325. package/dist/shared/random-hash.js +0 -0
  326. package/dist/shared/read-dir.d.ts +9 -0
  327. package/dist/shared/read-dir.js +57 -0
  328. package/dist/shared/return-values.d.ts +7 -0
  329. package/dist/shared/return-values.js +0 -0
  330. package/dist/shared/serialize-input-props.d.ts +8 -0
  331. package/dist/shared/serialize-input-props.js +42 -0
  332. package/dist/shared/sleep.d.ts +0 -0
  333. package/dist/shared/sleep.js +0 -0
  334. package/dist/shared/stream-to-string.d.ts +0 -0
  335. package/dist/shared/stream-to-string.js +0 -0
  336. package/dist/shared/truthy.d.ts +1 -1
  337. package/dist/shared/truthy.js +0 -0
  338. package/dist/shared/validate-aws-region.d.ts +0 -0
  339. package/dist/shared/validate-aws-region.js +0 -0
  340. package/dist/shared/validate-bucketname.d.ts +5 -0
  341. package/dist/shared/validate-bucketname.js +19 -1
  342. package/dist/shared/validate-custom-role-arn.d.ts +0 -0
  343. package/dist/shared/validate-custom-role-arn.js +0 -0
  344. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  345. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  346. package/dist/shared/validate-download-behavior.d.ts +0 -0
  347. package/dist/shared/validate-download-behavior.js +0 -0
  348. package/dist/shared/validate-frames-per-lambda.d.ts +0 -0
  349. package/dist/shared/validate-frames-per-lambda.js +0 -0
  350. package/dist/shared/validate-lambda-codec.d.ts +2 -2
  351. package/dist/shared/validate-lambda-codec.js +1 -1
  352. package/dist/shared/validate-memory-size.d.ts +0 -0
  353. package/dist/shared/validate-memory-size.js +0 -0
  354. package/dist/shared/validate-outname.d.ts +2 -2
  355. package/dist/shared/validate-outname.js +16 -10
  356. package/dist/shared/validate-presign-expiration.d.ts +0 -0
  357. package/dist/shared/validate-presign-expiration.js +0 -0
  358. package/dist/shared/validate-privacy.d.ts +1 -1
  359. package/dist/shared/validate-privacy.js +5 -2
  360. package/dist/shared/validate-retention-period.d.ts +0 -0
  361. package/dist/shared/validate-retention-period.js +0 -0
  362. package/dist/shared/validate-retries.d.ts +0 -0
  363. package/dist/shared/validate-retries.js +0 -0
  364. package/dist/shared/validate-serveurl.d.ts +0 -0
  365. package/dist/shared/validate-serveurl.js +0 -0
  366. package/dist/shared/validate-site-name.d.ts +0 -0
  367. package/dist/shared/validate-site-name.js +0 -0
  368. package/dist/shared/validate-timeout.d.ts +0 -0
  369. package/dist/shared/validate-timeout.js +0 -0
  370. package/package.json +89 -65
  371. package/remotionlambda-arm64.zip +0 -0
  372. package/.prettierrc.js +0 -14
  373. package/client.d.ts +0 -1
  374. package/client.js +0 -1
  375. package/dist/api/enable-s3-website.d.ts +0 -5
  376. package/dist/api/enable-s3-website.js +0 -16
  377. package/dist/cli/helpers/determine-image-format.d.ts +0 -10
  378. package/dist/cli/helpers/determine-image-format.js +0 -47
  379. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
  380. package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
  381. package/dist/cli/helpers/webhook-types.d.ts +0 -6
  382. package/dist/cli/helpers/webhook-types.js +0 -2
  383. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  384. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  385. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  386. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  387. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
  388. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  389. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  390. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  391. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  392. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  393. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  394. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  395. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
  396. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  397. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  398. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -47
  399. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
  400. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  401. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  402. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
  403. package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
  404. package/dist/functions/helpers/get-current-architecture.js +0 -11
  405. package/dist/shared/get-cloudwatch-stream-url.js +0 -7
  406. package/dist/shared/validate-architecture.d.ts +0 -4
  407. package/dist/shared/validate-architecture.js +0 -14
  408. package/remotionlambda.zip +0 -0
  409. package/tsconfig.json +0 -16
@@ -6,15 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.rendererHandler = void 0;
7
7
  const client_lambda_1 = require("@aws-sdk/client-lambda");
8
8
  const renderer_1 = require("@remotion/renderer");
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const version_1 = require("remotion/version");
11
12
  const aws_clients_1 = require("../shared/aws-clients");
13
+ const chunk_progress_1 = require("../shared/chunk-progress");
12
14
  const constants_1 = require("../shared/constants");
13
- const clean_tmpdir_1 = require("./helpers/clean-tmpdir");
15
+ const deserialize_input_props_1 = require("../shared/deserialize-input-props");
14
16
  const get_browser_instance_1 = require("./helpers/get-browser-instance");
17
+ const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
15
18
  const get_current_region_1 = require("./helpers/get-current-region");
16
- const get_files_in_folder_1 = require("./helpers/get-files-in-folder");
17
- const get_folder_size_1 = require("./helpers/get-folder-size");
18
19
  const io_1 = require("./helpers/io");
19
20
  const write_lambda_error_1 = require("./helpers/write-lambda-error");
20
21
  const renderHandler = async (params, options, logs) => {
@@ -22,6 +23,15 @@ const renderHandler = async (params, options, logs) => {
22
23
  if (params.type !== constants_1.LambdaRoutines.renderer) {
23
24
  throw new Error('Params must be renderer');
24
25
  }
26
+ if (params.launchFunctionConfig.version !== version_1.VERSION) {
27
+ throw new Error(`The version of the function that was specified as "rendererFunctionName" is ${version_1.VERSION} but the version of the function that invoked the render is ${params.launchFunctionConfig.version}. Please make sure that the version of the function that is specified as "rendererFunctionName" is the same as the version of the function that is invoked.`);
28
+ }
29
+ const inputPropsPromise = (0, deserialize_input_props_1.deserializeInputProps)({
30
+ bucketName: params.bucketName,
31
+ expectedBucketOwner: options.expectedBucketOwner,
32
+ region: (0, get_current_region_1.getCurrentRegionInFunction)(),
33
+ serialized: params.inputProps,
34
+ });
25
35
  const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'), (_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {});
26
36
  const outputPath = renderer_1.RenderInternals.tmpDir('remotion-render-');
27
37
  if (typeof params.chunk !== 'number') {
@@ -38,13 +48,18 @@ const renderHandler = async (params, options, logs) => {
38
48
  startDate: start,
39
49
  };
40
50
  const outdir = renderer_1.RenderInternals.tmpDir(constants_1.RENDERER_PATH_TOKEN);
41
- const outputLocation = path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(params.codec, 'chunk')}`);
42
- const chunkCodec = params.codec === 'gif' ? 'h264-mkv' : params.codec;
43
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
51
+ const chunkCodec = params.codec === 'gif' || params.codec === 'h264'
52
+ ? 'h264-mkv'
53
+ : params.codec;
54
+ const outputLocation = node_path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(chunkCodec, renderer_1.RenderInternals.getDefaultAudioCodec({
55
+ codec: params.codec,
56
+ preferLossless: true,
57
+ }))}`);
44
58
  const downloads = {};
59
+ const inputProps = await inputPropsPromise;
45
60
  await new Promise((resolve, reject) => {
46
- var _a;
47
- (0, renderer_1.renderMedia)({
61
+ var _a, _b, _c, _d, _e;
62
+ renderer_1.RenderInternals.internalRenderMedia({
48
63
  composition: {
49
64
  id: params.composition,
50
65
  durationInFrames: params.durationInFrames,
@@ -53,12 +68,20 @@ const renderHandler = async (params, options, logs) => {
53
68
  width: params.width,
54
69
  },
55
70
  imageFormat: params.imageFormat,
56
- inputProps: params.inputProps,
71
+ inputProps,
57
72
  frameRange: params.frameRange,
58
73
  onProgress: ({ renderedFrames, encodedFrames, stitchStage }) => {
59
- if (renderedFrames % 10 === 0 &&
74
+ if (renderedFrames % 5 === 0 &&
60
75
  renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')) {
61
76
  console.log(`Rendered ${renderedFrames} frames, encoded ${encodedFrames} frames, stage = ${stitchStage}`);
77
+ (0, chunk_progress_1.writeLambdaInitializedFile)({
78
+ attempt: params.attempt,
79
+ bucketName: params.bucketName,
80
+ chunk: params.chunk,
81
+ expectedBucketOwner: options.expectedBucketOwner,
82
+ framesRendered: renderedFrames,
83
+ renderId: params.renderId,
84
+ }).catch((err) => reject(err));
62
85
  }
63
86
  const allFrames = renderer_1.RenderInternals.getFramesToRender(params.frameRange, params.everyNthFrame);
64
87
  if (renderedFrames === allFrames.length) {
@@ -68,42 +91,28 @@ const renderHandler = async (params, options, logs) => {
68
91
  },
69
92
  concurrency: params.concurrencyPerLambda,
70
93
  onStart: () => {
71
- (0, io_1.lambdaWriteFile)({
72
- privacy: 'private',
94
+ (0, chunk_progress_1.writeLambdaInitializedFile)({
95
+ attempt: params.attempt,
73
96
  bucketName: params.bucketName,
74
- body: JSON.stringify({
75
- filesCleaned: clean_tmpdir_1.deletedFilesSize,
76
- filesInTmp: fs_1.default.readdirSync('/tmp'),
77
- isWarm: options.isWarm,
78
- deletedFiles: clean_tmpdir_1.deletedFiles,
79
- tmpSize: (0, get_folder_size_1.getFolderSizeRecursively)('/tmp'),
80
- tmpDirFiles: (0, get_files_in_folder_1.getFolderFiles)('/tmp'),
81
- }),
82
- key: (0, constants_1.lambdaChunkInitializedKey)({
83
- renderId: params.renderId,
84
- chunk: params.chunk,
85
- attempt: params.attempt,
86
- }),
87
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
97
+ chunk: params.chunk,
88
98
  expectedBucketOwner: options.expectedBucketOwner,
89
- downloadBehavior: null,
90
- customCredentials: null,
99
+ framesRendered: 0,
100
+ renderId: params.renderId,
91
101
  }).catch((err) => reject(err));
92
102
  },
93
103
  puppeteerInstance: browserInstance,
94
104
  serveUrl: params.serveUrl,
95
- quality: params.quality,
96
- envVariables: params.envVariables,
97
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
105
+ jpegQuality: (_a = params.jpegQuality) !== null && _a !== void 0 ? _a : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
106
+ envVariables: (_b = params.envVariables) !== null && _b !== void 0 ? _b : {},
107
+ dumpBrowserLogs: (_c = params.dumpBrowserLogs) !== null && _c !== void 0 ? _c : renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
98
108
  verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
99
109
  onBrowserLog: (log) => {
100
110
  logs.push(log);
101
111
  },
102
112
  outputLocation,
103
113
  codec: chunkCodec,
104
- crf: (_a = params.crf) !== null && _a !== void 0 ? _a : undefined,
105
- ffmpegExecutable: process.env.NODE_ENV === 'test' ? null : '/opt/bin/ffmpeg',
106
- pixelFormat: params.pixelFormat,
114
+ crf: (_d = params.crf) !== null && _d !== void 0 ? _d : null,
115
+ pixelFormat: (_e = params.pixelFormat) !== null && _e !== void 0 ? _e : renderer_1.RenderInternals.DEFAULT_PIXEL_FORMAT,
107
116
  proResProfile: params.proResProfile,
108
117
  onDownload: (src) => {
109
118
  console.log('Downloading', src);
@@ -133,11 +142,31 @@ const renderHandler = async (params, options, logs) => {
133
142
  port: null,
134
143
  everyNthFrame: params.everyNthFrame,
135
144
  numberOfGifLoops: null,
136
- downloadMap,
137
145
  muted: params.muted,
138
146
  enforceAudioTrack: true,
147
+ audioBitrate: params.audioBitrate,
148
+ videoBitrate: params.videoBitrate,
149
+ // Lossless flag takes priority over audio codec
150
+ // https://github.com/remotion-dev/remotion/issues/1647
151
+ // Special flag only in Lambda renderer which improves the audio quality
152
+ audioCodec: null,
153
+ preferLossless: true,
154
+ browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
155
+ cancelSignal: undefined,
156
+ disallowParallelEncoding: false,
157
+ ffmpegOverride: ({ args }) => args,
158
+ indent: false,
159
+ onCtrlCExit: () => undefined,
160
+ server: undefined,
161
+ })
162
+ .then(({ slowestFrames }) => {
163
+ console.log();
164
+ console.log(`Slowest frames:`);
165
+ slowestFrames.forEach(({ frame, time }) => {
166
+ console.log(`Frame ${frame} (${time.toFixed(3)}ms)`);
167
+ });
168
+ resolve();
139
169
  })
140
- .then(() => resolve())
141
170
  .catch((err) => reject(err));
142
171
  });
143
172
  const endRendered = Date.now();
@@ -151,7 +180,7 @@ const renderHandler = async (params, options, logs) => {
151
180
  renderId: params.renderId,
152
181
  index: params.chunk,
153
182
  }),
154
- body: fs_1.default.createReadStream(outputLocation),
183
+ body: node_fs_1.default.createReadStream(outputLocation),
155
184
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
156
185
  privacy: params.privacy,
157
186
  expectedBucketOwner: options.expectedBucketOwner,
@@ -159,8 +188,8 @@ const renderHandler = async (params, options, logs) => {
159
188
  customCredentials: null,
160
189
  });
161
190
  await Promise.all([
162
- fs_1.default.promises.rm(outputLocation, { recursive: true }),
163
- fs_1.default.promises.rm(outputPath, { recursive: true }),
191
+ node_fs_1.default.promises.rm(outputLocation, { recursive: true }),
192
+ node_fs_1.default.promises.rm(outputPath, { recursive: true }),
164
193
  (0, io_1.lambdaWriteFile)({
165
194
  bucketName: params.bucketName,
166
195
  body: JSON.stringify(condensedTimingData, null, 2),
@@ -188,13 +217,15 @@ const rendererHandler = async (params, options) => {
188
217
  }
189
218
  catch (err) {
190
219
  if (process.env.NODE_ENV === 'test') {
220
+ console.log({ err });
191
221
  throw err;
192
222
  }
193
223
  // If this error is encountered, we can just retry as it
194
224
  // is a very rare error to occur
195
225
  const isBrowserError = err.message.includes('FATAL:zygote_communication_linux.cc') ||
196
226
  err.message.includes('error while loading shared libraries: libnss3.so');
197
- const willRetry = isBrowserError || params.retriesLeft > 0;
227
+ const shouldNotRetry = err.name === 'CancelledError';
228
+ const willRetry = (isBrowserError || params.retriesLeft > 0) && !shouldNotRetry;
198
229
  console.log('Error occurred');
199
230
  console.log(err);
200
231
  await (0, write_lambda_error_1.writeLambdaError)({
@@ -1,5 +1,5 @@
1
1
  import type { LambdaPayload } from '../shared/constants';
2
- declare type Options = {
2
+ type Options = {
3
3
  expectedBucketOwner: string;
4
4
  };
5
5
  export declare const startHandler: (params: LambdaPayload, options: Options) => Promise<{
@@ -6,28 +6,35 @@ const version_1 = require("remotion/version");
6
6
  const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
7
7
  const aws_clients_1 = require("../shared/aws-clients");
8
8
  const constants_1 = require("../shared/constants");
9
+ const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
9
10
  const random_hash_1 = require("../shared/random-hash");
10
11
  const get_current_region_1 = require("./helpers/get-current-region");
11
12
  const io_1 = require("./helpers/io");
12
13
  const startHandler = async (params, options) => {
13
- var _a;
14
+ var _a, _b;
14
15
  if (params.type !== constants_1.LambdaRoutines.start) {
15
16
  throw new TypeError('Expected type start');
16
17
  }
17
18
  if (params.version !== version_1.VERSION) {
18
19
  if (!params.version) {
19
- throw new Error(`Version mismatch: When calling renderMediaOnLambda(), the deployed Lambda function had version ${version_1.VERSION} but the @remotion/lambda package is an older version. Align the versions.`);
20
+ throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
20
21
  }
21
- throw new Error(`Version mismatch: When calling renderMediaOnLambda(), get deployed Lambda function had version ${version_1.VERSION} and the @remotion/lambda package has version ${params.version}. Align the versions.`);
22
+ throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${params.version}. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
22
23
  }
23
- const { bucketName } = await (0, get_or_create_bucket_1.getOrCreateBucket)({
24
+ const region = (0, get_current_region_1.getCurrentRegionInFunction)();
25
+ const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
24
26
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
27
+ })).bucketName;
28
+ const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
29
+ urlOrId: params.serveUrl,
30
+ region,
31
+ bucketName,
25
32
  });
26
33
  const renderId = (0, random_hash_1.randomHash)({ randomInTests: true });
27
34
  const initialFile = (0, io_1.lambdaWriteFile)({
28
35
  bucketName,
29
36
  downloadBehavior: null,
30
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
37
+ region,
31
38
  body: 'Render was initialized',
32
39
  expectedBucketOwner: options.expectedBucketOwner,
33
40
  key: (0, constants_1.initalizedMetadataKey)(renderId),
@@ -38,7 +45,7 @@ const startHandler = async (params, options) => {
38
45
  type: constants_1.LambdaRoutines.launch,
39
46
  framesPerLambda: params.framesPerLambda,
40
47
  composition: params.composition,
41
- serveUrl: params.serveUrl,
48
+ serveUrl: realServeUrl,
42
49
  inputProps: params.inputProps,
43
50
  bucketName,
44
51
  renderId,
@@ -48,10 +55,10 @@ const startHandler = async (params, options) => {
48
55
  envVariables: params.envVariables,
49
56
  pixelFormat: params.pixelFormat,
50
57
  proResProfile: params.proResProfile,
51
- quality: params.quality,
58
+ jpegQuality: params.jpegQuality,
52
59
  maxRetries: params.maxRetries,
53
60
  privacy: params.privacy,
54
- logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a : 'info',
61
+ logLevel: (_b = params.logLevel) !== null && _b !== void 0 ? _b : 'info',
55
62
  frameRange: params.frameRange,
56
63
  outName: params.outName,
57
64
  timeoutInMilliseconds: params.timeoutInMilliseconds,
@@ -64,6 +71,13 @@ const startHandler = async (params, options) => {
64
71
  muted: params.muted,
65
72
  overwrite: params.overwrite,
66
73
  webhook: params.webhook,
74
+ audioBitrate: params.audioBitrate,
75
+ videoBitrate: params.videoBitrate,
76
+ forceHeight: params.forceHeight,
77
+ forceWidth: params.forceWidth,
78
+ rendererFunctionName: params.rendererFunctionName,
79
+ audioCodec: params.audioCodec,
80
+ dumpBrowserLogs: params.dumpBrowserLogs,
67
81
  };
68
82
  await (0, aws_clients_1.getLambdaClient)((0, get_current_region_1.getCurrentRegionInFunction)()).send(new client_lambda_1.InvokeCommand({
69
83
  FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME,
@@ -1,5 +1,5 @@
1
1
  import type { LambdaPayload } from '../shared/constants';
2
- declare type Options = {
2
+ type Options = {
3
3
  expectedBucketOwner: string;
4
4
  };
5
5
  declare const innerStillHandler: (lambdaParams: LambdaPayload, renderId: string, options: Options) => Promise<{
@@ -6,13 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.stillHandler = void 0;
7
7
  const client_lambda_1 = require("@aws-sdk/client-lambda");
8
8
  const renderer_1 = require("@remotion/renderer");
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
11
  const version_1 = require("remotion/version");
12
12
  const estimate_price_1 = require("../api/estimate-price");
13
13
  const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
14
14
  const aws_clients_1 = require("../shared/aws-clients");
15
+ const cleanup_serialized_input_props_1 = require("../shared/cleanup-serialized-input-props");
15
16
  const constants_1 = require("../shared/constants");
17
+ const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
18
+ const deserialize_input_props_1 = require("../shared/deserialize-input-props");
16
19
  const make_s3_url_1 = require("../shared/make-s3-url");
17
20
  const random_hash_1 = require("../shared/random-hash");
18
21
  const validate_download_behavior_1 = require("../shared/validate-download-behavior");
@@ -21,48 +24,69 @@ const validate_privacy_1 = require("../shared/validate-privacy");
21
24
  const expected_out_name_1 = require("./helpers/expected-out-name");
22
25
  const format_costs_info_1 = require("./helpers/format-costs-info");
23
26
  const get_browser_instance_1 = require("./helpers/get-browser-instance");
24
- const get_current_architecture_1 = require("./helpers/get-current-architecture");
27
+ const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
25
28
  const get_current_region_1 = require("./helpers/get-current-region");
26
29
  const get_output_url_from_metadata_1 = require("./helpers/get-output-url-from-metadata");
27
30
  const io_1 = require("./helpers/io");
28
31
  const validate_composition_1 = require("./helpers/validate-composition");
29
32
  const write_lambda_error_1 = require("./helpers/write-lambda-error");
30
33
  const innerStillHandler = async (lambdaParams, renderId, options) => {
31
- var _a, _b;
34
+ var _a, _b, _c, _d, _e, _f, _g;
32
35
  if (lambdaParams.type !== constants_1.LambdaRoutines.still) {
33
36
  throw new TypeError('Expected still type');
34
37
  }
35
38
  if (lambdaParams.version !== version_1.VERSION) {
36
39
  if (!lambdaParams.version) {
37
- throw new Error(`Version mismatch: When calling renderStillOnLambda(), the deployed Lambda function had version ${version_1.VERSION} but the @remotion/lambda package is an older version. Align the versions.`);
40
+ throw new Error(`Version mismatch: When calling renderStillOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
38
41
  }
39
- throw new Error(`Version mismatch: When calling renderStillOnLambda(), get deployed Lambda function had version ${version_1.VERSION} and the @remotion/lambda package has version ${lambdaParams.version}. Align the versions.`);
42
+ throw new Error(`Version mismatch: When calling renderStillOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${lambdaParams.version}. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
40
43
  }
41
44
  (0, validate_download_behavior_1.validateDownloadBehavior)(lambdaParams.downloadBehavior);
42
- (0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy);
43
- (0, validate_outname_1.validateOutname)(lambdaParams.outName);
45
+ (0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy, true);
46
+ (0, validate_outname_1.validateOutname)(lambdaParams.outName, null, null);
44
47
  const start = Date.now();
45
- const [{ bucketName }, browserInstance] = await Promise.all([
46
- (0, get_or_create_bucket_1.getOrCreateBucket)({
48
+ const [bucketName, browserInstance] = await Promise.all([
49
+ (_a = lambdaParams.bucketName) !== null && _a !== void 0 ? _a : (0, get_or_create_bucket_1.getOrCreateBucket)({
47
50
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
48
- }),
49
- (0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose'), (_a = lambdaParams.chromiumOptions) !== null && _a !== void 0 ? _a : {}),
51
+ }).then((b) => b.bucketName),
52
+ (0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose'), (_b = lambdaParams.chromiumOptions) !== null && _b !== void 0 ? _b : {}),
50
53
  ]);
51
54
  const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
52
- const outputPath = path_1.default.join(outputDir, 'output');
53
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
55
+ const outputPath = node_path_1.default.join(outputDir, 'output');
56
+ const region = (0, get_current_region_1.getCurrentRegionInFunction)();
57
+ const inputProps = await (0, deserialize_input_props_1.deserializeInputProps)({
58
+ bucketName,
59
+ expectedBucketOwner: options.expectedBucketOwner,
60
+ region,
61
+ serialized: lambdaParams.inputProps,
62
+ });
63
+ const serveUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
64
+ urlOrId: lambdaParams.serveUrl,
65
+ region,
66
+ bucketName,
67
+ });
68
+ const verbose = renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose');
69
+ const server = await renderer_1.RenderInternals.prepareServer({
70
+ concurrency: 1,
71
+ indent: false,
72
+ port: null,
73
+ remotionRoot: process.cwd(),
74
+ verbose,
75
+ webpackConfigOrServeUrl: serveUrl,
76
+ });
54
77
  const composition = await (0, validate_composition_1.validateComposition)({
55
- serveUrl: lambdaParams.serveUrl,
78
+ serveUrl,
56
79
  browserInstance,
57
80
  composition: lambdaParams.composition,
58
- inputProps: lambdaParams.inputProps,
59
- envVariables: lambdaParams.envVariables,
60
- ffmpegExecutable: null,
61
- ffprobeExecutable: null,
81
+ inputProps,
82
+ envVariables: (_c = lambdaParams.envVariables) !== null && _c !== void 0 ? _c : {},
62
83
  chromiumOptions: lambdaParams.chromiumOptions,
63
84
  timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
64
85
  port: null,
65
- downloadMap,
86
+ forceHeight: lambdaParams.forceHeight,
87
+ forceWidth: lambdaParams.forceWidth,
88
+ logLevel: lambdaParams.logLevel,
89
+ server,
66
90
  });
67
91
  const renderMetadata = {
68
92
  startedDate: Date.now(),
@@ -71,10 +95,9 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
71
95
  compositionId: lambdaParams.composition,
72
96
  estimatedTotalLambdaInvokations: 1,
73
97
  estimatedRenderLambdaInvokations: 1,
74
- siteId: (0, make_s3_url_1.getServeUrlHash)(lambdaParams.serveUrl),
98
+ siteId: (0, make_s3_url_1.getServeUrlHash)(serveUrl),
75
99
  totalChunks: 1,
76
100
  type: 'still',
77
- usesOptimizationProfile: false,
78
101
  imageFormat: lambdaParams.imageFormat,
79
102
  inputProps: lambdaParams.inputProps,
80
103
  lambdaVersion: version_1.VERSION,
@@ -82,8 +105,11 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
82
105
  memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
83
106
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
84
107
  renderId,
85
- outName: (_b = lambdaParams.outName) !== null && _b !== void 0 ? _b : undefined,
108
+ outName: (_d = lambdaParams.outName) !== null && _d !== void 0 ? _d : undefined,
86
109
  privacy: lambdaParams.privacy,
110
+ everyNthFrame: 1,
111
+ frameRange: [lambdaParams.frame, lambdaParams.frame],
112
+ audioCodec: null,
87
113
  };
88
114
  await (0, io_1.lambdaWriteFile)({
89
115
  bucketName,
@@ -95,45 +121,59 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
95
121
  downloadBehavior: null,
96
122
  customCredentials: null,
97
123
  });
98
- await (0, renderer_1.renderStill)({
124
+ await renderer_1.RenderInternals.internalRenderStill({
99
125
  composition,
100
126
  output: outputPath,
101
- serveUrl: lambdaParams.serveUrl,
102
- dumpBrowserLogs: false,
103
- envVariables: lambdaParams.envVariables,
127
+ serveUrl,
128
+ dumpBrowserLogs: (_e = lambdaParams.dumpBrowserLogs) !== null && _e !== void 0 ? _e : verbose,
129
+ envVariables: (_f = lambdaParams.envVariables) !== null && _f !== void 0 ? _f : {},
104
130
  frame: renderer_1.RenderInternals.convertToPositiveFrameIndex({
105
131
  frame: lambdaParams.frame,
106
132
  durationInFrames: composition.durationInFrames,
107
133
  }),
108
134
  imageFormat: lambdaParams.imageFormat,
109
- inputProps: lambdaParams.inputProps,
135
+ inputProps,
110
136
  overwrite: false,
111
137
  puppeteerInstance: browserInstance,
112
- quality: lambdaParams.quality,
138
+ jpegQuality: (_g = lambdaParams.jpegQuality) !== null && _g !== void 0 ? _g : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
113
139
  chromiumOptions: lambdaParams.chromiumOptions,
114
140
  scale: lambdaParams.scale,
115
141
  timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
116
- downloadMap,
142
+ browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
143
+ cancelSignal: null,
144
+ indent: false,
145
+ onBrowserLog: null,
146
+ onDownload: null,
147
+ port: null,
148
+ server,
149
+ verbose,
117
150
  });
118
151
  const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, (0, expected_out_name_1.getCredentialsFromOutName)(lambdaParams.outName));
119
- const { size } = await fs_1.default.promises.stat(outputPath);
152
+ const { size } = await node_fs_1.default.promises.stat(outputPath);
120
153
  await (0, io_1.lambdaWriteFile)({
121
154
  bucketName: renderBucketName,
122
155
  key,
123
156
  privacy: lambdaParams.privacy,
124
- body: fs_1.default.createReadStream(outputPath),
157
+ body: node_fs_1.default.createReadStream(outputPath),
125
158
  expectedBucketOwner: options.expectedBucketOwner,
126
159
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
127
160
  downloadBehavior: lambdaParams.downloadBehavior,
128
161
  customCredentials,
129
162
  });
130
- await fs_1.default.promises.rm(outputPath, { recursive: true });
163
+ await Promise.all([
164
+ node_fs_1.default.promises.rm(outputPath, { recursive: true }),
165
+ (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
166
+ bucketName,
167
+ region: (0, get_current_region_1.getCurrentRegionInFunction)(),
168
+ serialized: lambdaParams.inputProps,
169
+ }),
170
+ server.closeServer(true),
171
+ ]);
131
172
  const estimatedPrice = (0, estimate_price_1.estimatePrice)({
132
173
  durationInMiliseconds: Date.now() - start + 100,
133
174
  memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
134
175
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
135
176
  lambdasInvoked: 1,
136
- architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
137
177
  // We cannot determine the ephemeral storage size, so we
138
178
  // overestimate the price, but will only have a miniscule effect (~0.2%)
139
179
  diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
@@ -147,6 +187,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
147
187
  };
148
188
  };
149
189
  const stillHandler = async (params, options) => {
190
+ var _a;
150
191
  if (params.type !== constants_1.LambdaRoutines.still) {
151
192
  throw new Error('Params must be renderer');
152
193
  }
@@ -171,10 +212,12 @@ const stillHandler = async (params, options) => {
171
212
  // @ts-expect-error
172
213
  Payload: JSON.stringify(retryPayload),
173
214
  }));
174
- const { bucketName } = await (0, get_or_create_bucket_1.getOrCreateBucket)({
215
+ const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
175
216
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
176
- });
177
- (0, write_lambda_error_1.writeLambdaError)({
217
+ })).bucketName;
218
+ // `await` elided on purpose here; using `void` to mark it as intentional
219
+ // eslint-disable-next-line no-void
220
+ void (0, write_lambda_error_1.writeLambdaError)({
178
221
  bucketName,
179
222
  errorInfo: {
180
223
  chunk: null,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { DeleteFunctionInput } from './api/delete-function';
2
2
  import { deleteFunction } from './api/delete-function';
3
+ import type { DeleteRenderInput } from './api/delete-render';
3
4
  import { deleteRender } from './api/delete-render';
4
5
  import type { DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
5
6
  import { deleteSite } from './api/delete-site';
@@ -8,11 +9,13 @@ import { deployFunction } from './api/deploy-function';
8
9
  import type { DeploySiteInput, DeploySiteOutput } from './api/deploy-site';
9
10
  import { deploySite } from './api/deploy-site';
10
11
  import type { DownloadMediaInput, DownloadMediaOutput } from './api/download-media';
11
- import { downloadMedia, downloadVideo } from './api/download-media';
12
+ import { downloadMedia } from './api/download-media';
12
13
  import type { EstimatePriceInput } from './api/estimate-price';
13
14
  import { estimatePrice } from './api/estimate-price';
14
15
  import type { GetAwsClientInput, GetAwsClientOutput } from './api/get-aws-client';
15
16
  import { getAwsClient } from './api/get-aws-client';
17
+ import type { GetCompositionsOnLambdaInput, GetCompositionsOnLambdaOutput } from './api/get-compositions-on-lambda';
18
+ import { getCompositionsOnLambda } from './api/get-compositions-on-lambda';
16
19
  import type { FunctionInfo, GetFunctionInfoInput } from './api/get-function-info';
17
20
  import { getFunctionInfo } from './api/get-function-info';
18
21
  import type { GetFunctionsInput } from './api/get-functions';
@@ -23,22 +26,35 @@ import { getRegions } from './api/get-regions';
23
26
  import type { GetRenderInput } from './api/get-render-progress';
24
27
  import { getRenderProgress } from './api/get-render-progress';
25
28
  import type { GetSitesInput, GetSitesOutput } from './api/get-sites';
26
- import { getSites } from './api/get-sites';
27
29
  import type { SimulatePermissionsInput, SimulatePermissionsOutput } from './api/iam-validation/simulate';
28
30
  import { simulatePermissions } from './api/iam-validation/simulate';
29
31
  import { getRolePolicy, getUserPolicy } from './api/iam-validation/suggested-policy';
30
- import { presignUrl } from './api/presign-url';
31
32
  import type { RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput } from './api/render-media-on-lambda';
32
- import { renderMediaOnLambda, renderVideoOnLambda } from './api/render-media-on-lambda';
33
+ import { renderVideoOnLambda } from './api/render-media-on-lambda';
33
34
  import type { RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from './api/render-still-on-lambda';
34
- import { renderStillOnLambda } from './api/render-still-on-lambda';
35
35
  import { validateWebhookSignature } from './api/validate-webhook-signature';
36
36
  import type { LambdaLSInput, LambdaLsReturnType } from './functions/helpers/io';
37
+ import type { EnhancedErrorInfo, LambdaErrorInfo } from './functions/helpers/write-lambda-error';
37
38
  import { LambdaInternals } from './internals';
38
39
  import type { AwsRegion } from './pricing/aws-regions';
39
40
  import type { CustomCredentials } from './shared/aws-clients';
40
41
  import type { RenderProgress } from './shared/constants';
41
42
  import type { WebhookPayload } from './shared/invoke-webhook';
42
- import type { LambdaArchitecture } from './shared/validate-architecture';
43
- export { deleteSite, deployFunction, deploySite, downloadMedia, downloadVideo, getFunctions, getUserPolicy, getRolePolicy, getSites, getOrCreateBucket, getRenderProgress, renderVideoOnLambda, renderMediaOnLambda, simulatePermissions, deleteFunction, getFunctionInfo, estimatePrice, LambdaInternals, renderStillOnLambda, getRegions, getAwsClient, presignUrl, deleteRender, validateWebhookSignature, };
44
- 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, CustomCredentials, WebhookPayload, };
43
+ /**
44
+ * @deprecated Import this from `@remotion/lambda/client` instead
45
+ */
46
+ declare const renderMediaOnLambda: (input: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
47
+ /**
48
+ * @deprecated Import this from `@remotion/lambda/client` instead
49
+ */
50
+ declare const renderStillOnLambda: ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, dumpBrowserLogs, }: RenderStillOnLambdaInput) => Promise<RenderStillOnLambdaOutput>;
51
+ /**
52
+ * @deprecated Import this from `@remotion/lambda/client` instead
53
+ */
54
+ declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
55
+ /**
56
+ * @deprecated Import this from `@remotion/lambda/client` instead
57
+ */
58
+ declare const getSites: ({ region, }: GetSitesInput) => Promise<GetSitesOutput>;
59
+ export { deleteSite, deployFunction, deploySite, downloadMedia, getFunctions, getUserPolicy, getRolePolicy, getSites, getOrCreateBucket, getRenderProgress, renderVideoOnLambda, renderMediaOnLambda, simulatePermissions, deleteFunction, getFunctionInfo, estimatePrice, LambdaInternals, renderStillOnLambda, getRegions, getAwsClient, presignUrl, deleteRender, validateWebhookSignature, getCompositionsOnLambda, };
60
+ 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, CustomCredentials, WebhookPayload, LambdaErrorInfo, EnhancedErrorInfo, DeleteRenderInput, GetCompositionsOnLambdaOutput, GetCompositionsOnLambdaInput, };