@remotion/lambda 4.0.0-imgloading.2 → 4.0.0-jshmr2.1

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 (401) 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 +21 -4
  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 +30 -8
  8. package/dist/api/bucket-exists.d.ts +1 -1
  9. package/dist/api/bucket-exists.js +1 -1
  10. package/dist/api/clean-items.d.ts +1 -1
  11. package/dist/api/clean-items.js +1 -1
  12. package/dist/api/create-bucket.d.ts +1 -1
  13. package/dist/api/create-bucket.js +1 -1
  14. package/dist/api/create-function.d.ts +4 -3
  15. package/dist/api/create-function.js +27 -4
  16. package/dist/api/delete-function.d.ts +2 -2
  17. package/dist/api/delete-function.js +1 -1
  18. package/dist/api/delete-render.d.ts +19 -0
  19. package/dist/api/delete-render.js +66 -0
  20. package/dist/api/delete-site.d.ts +2 -2
  21. package/dist/api/delete-site.js +1 -6
  22. package/dist/api/deploy-function.d.ts +4 -3
  23. package/dist/api/deploy-function.js +11 -4
  24. package/dist/api/deploy-site.d.ts +13 -4
  25. package/dist/api/deploy-site.js +50 -22
  26. package/dist/api/download-media.d.ts +15 -2
  27. package/dist/api/download-media.js +15 -3
  28. package/dist/api/estimate-price.d.ts +3 -3
  29. package/dist/api/estimate-price.js +1 -1
  30. package/dist/api/get-aws-client.d.ts +8 -4
  31. package/dist/api/get-aws-client.js +15 -4
  32. package/dist/api/get-buckets.d.ts +1 -1
  33. package/dist/api/get-buckets.js +27 -10
  34. package/dist/api/get-compositions-on-lambda.d.ts +29 -0
  35. package/dist/api/get-compositions-on-lambda.js +54 -0
  36. package/dist/api/get-function-info.d.ts +3 -4
  37. package/dist/api/get-function-info.js +1 -1
  38. package/dist/api/get-functions.d.ts +3 -5
  39. package/dist/api/get-functions.js +3 -4
  40. package/dist/api/get-or-create-bucket.d.ts +2 -2
  41. package/dist/api/get-or-create-bucket.js +4 -9
  42. package/dist/api/get-regions.d.ts +7 -3
  43. package/dist/api/get-regions.js +6 -3
  44. package/dist/api/get-render-progress.d.ts +7 -4
  45. package/dist/api/get-render-progress.js +6 -2
  46. package/dist/api/get-sites.d.ts +4 -4
  47. package/dist/api/get-sites.js +1 -2
  48. package/dist/api/iam-validation/role-permissions.d.ts +2 -1
  49. package/dist/api/iam-validation/role-permissions.js +0 -0
  50. package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
  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 +25 -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 +1 -8
  58. package/dist/api/mock-functions.d.ts +6 -7
  59. package/dist/api/mock-functions.js +0 -0
  60. package/dist/api/presign-url.d.ts +5 -5
  61. package/dist/api/presign-url.js +9 -4
  62. package/dist/api/render-media-on-lambda.d.ts +38 -17
  63. package/dist/api/render-media-on-lambda.js +88 -38
  64. package/dist/api/render-still-on-lambda.d.ts +12 -7
  65. package/dist/api/render-still-on-lambda.js +58 -31
  66. package/dist/api/upload-dir.d.ts +6 -5
  67. package/dist/api/upload-dir.js +58 -50
  68. package/dist/api/validate-webhook-signature.d.ts +13 -0
  69. package/dist/api/validate-webhook-signature.js +32 -0
  70. package/dist/cli/args.d.ts +13 -5
  71. package/dist/cli/args.js +1 -5
  72. package/dist/cli/commands/compositions/index.d.ts +2 -0
  73. package/dist/cli/commands/compositions/index.js +44 -0
  74. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  75. package/dist/cli/commands/functions/deploy.js +10 -6
  76. package/dist/cli/commands/functions/index.d.ts +0 -0
  77. package/dist/cli/commands/functions/index.js +16 -17
  78. package/dist/cli/commands/functions/ls.d.ts +0 -0
  79. package/dist/cli/commands/functions/ls.js +5 -6
  80. package/dist/cli/commands/functions/rm.d.ts +0 -0
  81. package/dist/cli/commands/functions/rm.js +0 -0
  82. package/dist/cli/commands/functions/rmall.d.ts +0 -0
  83. package/dist/cli/commands/functions/rmall.js +0 -0
  84. package/dist/cli/commands/policies/policies.d.ts +0 -0
  85. package/dist/cli/commands/policies/policies.js +0 -0
  86. package/dist/cli/commands/policies/role.d.ts +0 -0
  87. package/dist/cli/commands/policies/role.js +0 -0
  88. package/dist/cli/commands/policies/user.d.ts +0 -0
  89. package/dist/cli/commands/policies/user.js +0 -0
  90. package/dist/cli/commands/policies/validate.d.ts +0 -0
  91. package/dist/cli/commands/policies/validate.js +0 -0
  92. package/dist/cli/commands/quotas/increase.d.ts +0 -0
  93. package/dist/cli/commands/quotas/increase.js +6 -6
  94. package/dist/cli/commands/quotas/index.d.ts +0 -0
  95. package/dist/cli/commands/quotas/index.js +8 -9
  96. package/dist/cli/commands/quotas/list.d.ts +0 -0
  97. package/dist/cli/commands/quotas/list.js +0 -0
  98. package/dist/cli/commands/regions.d.ts +0 -0
  99. package/dist/cli/commands/regions.js +6 -2
  100. package/dist/cli/commands/render/progress.d.ts +11 -7
  101. package/dist/cli/commands/render/progress.js +66 -48
  102. package/dist/cli/commands/render/render.d.ts +1 -1
  103. package/dist/cli/commands/render/render.js +80 -25
  104. package/dist/cli/commands/sites/create.d.ts +1 -1
  105. package/dist/cli/commands/sites/create.js +25 -26
  106. package/dist/cli/commands/sites/index.d.ts +1 -1
  107. package/dist/cli/commands/sites/index.js +15 -16
  108. package/dist/cli/commands/sites/ls.d.ts +0 -0
  109. package/dist/cli/commands/sites/ls.js +10 -12
  110. package/dist/cli/commands/sites/rm.d.ts +0 -0
  111. package/dist/cli/commands/sites/rm.js +8 -19
  112. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  113. package/dist/cli/commands/sites/rmall.js +7 -19
  114. package/dist/cli/commands/still.d.ts +1 -1
  115. package/dist/cli/commands/still.js +34 -27
  116. package/dist/cli/get-aws-region.d.ts +1 -1
  117. package/dist/cli/get-aws-region.js +2 -1
  118. package/dist/cli/help.d.ts +0 -0
  119. package/dist/cli/help.js +0 -0
  120. package/dist/cli/helpers/confirm.d.ts +0 -0
  121. package/dist/cli/helpers/confirm.js +0 -0
  122. package/dist/cli/helpers/date-string.d.ts +0 -0
  123. package/dist/cli/helpers/date-string.js +0 -0
  124. package/dist/cli/helpers/find-function-name.d.ts +0 -0
  125. package/dist/cli/helpers/find-function-name.js +37 -7
  126. package/dist/cli/helpers/progress-bar.d.ts +9 -3
  127. package/dist/cli/helpers/progress-bar.js +20 -8
  128. package/dist/cli/helpers/quit.d.ts +0 -0
  129. package/dist/cli/helpers/quit.js +0 -0
  130. package/dist/cli/helpers/yes-or-no.d.ts +0 -0
  131. package/dist/cli/helpers/yes-or-no.js +0 -0
  132. package/dist/cli/index.d.ts +1 -1
  133. package/dist/cli/index.js +30 -9
  134. package/dist/cli/is-cli.d.ts +0 -0
  135. package/dist/cli/is-cli.js +0 -0
  136. package/dist/cli/log.d.ts +0 -0
  137. package/dist/cli/log.js +0 -0
  138. package/dist/client.d.ts +8 -2
  139. package/dist/client.js +9 -1
  140. package/dist/defaults.d.ts +0 -0
  141. package/dist/defaults.js +5 -1
  142. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +3 -10
  143. package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -19
  144. package/dist/functions/chunk-optimization/types.d.ts +0 -11
  145. package/dist/functions/chunk-optimization/types.js +0 -0
  146. package/dist/functions/compositions.d.ts +8 -0
  147. package/dist/functions/compositions.js +58 -0
  148. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
  149. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
  150. package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
  151. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  152. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
  153. package/dist/functions/helpers/calculate-price-from-bucket.js +0 -0
  154. package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
  155. package/dist/functions/helpers/check-if-render-exists.js +14 -0
  156. package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
  157. package/dist/functions/helpers/clean-tmpdir.js +1 -1
  158. package/dist/functions/helpers/concat-videos.d.ts +19 -7
  159. package/dist/functions/helpers/concat-videos.js +41 -33
  160. package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
  161. package/dist/functions/helpers/create-post-render-data.js +5 -12
  162. package/dist/functions/helpers/delete-chunks.d.ts +3 -3
  163. package/dist/functions/helpers/delete-chunks.js +0 -0
  164. package/dist/functions/helpers/expected-out-name.d.ts +4 -2
  165. package/dist/functions/helpers/expected-out-name.js +27 -6
  166. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +5 -3
  167. package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
  168. package/dist/functions/helpers/format-costs-info.d.ts +1 -1
  169. package/dist/functions/helpers/format-costs-info.js +0 -0
  170. package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
  171. package/dist/functions/helpers/get-browser-instance.js +2 -2
  172. package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
  173. package/dist/functions/helpers/get-chromium-executable-path.js +3 -2
  174. package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
  175. package/dist/functions/helpers/get-cleanup-progress.js +0 -0
  176. package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
  177. package/dist/functions/helpers/get-current-architecture.js +0 -0
  178. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  179. package/dist/functions/helpers/get-current-region.js +0 -0
  180. package/dist/functions/helpers/get-custom-out-name.d.ts +6 -0
  181. package/dist/functions/helpers/get-custom-out-name.js +31 -0
  182. package/dist/functions/helpers/get-encoding-metadata.d.ts +6 -9
  183. package/dist/functions/helpers/get-encoding-metadata.js +7 -17
  184. package/dist/functions/helpers/get-files-in-folder.d.ts +0 -0
  185. package/dist/functions/helpers/get-files-in-folder.js +0 -0
  186. package/dist/functions/helpers/get-files-to-delete.d.ts +0 -0
  187. package/dist/functions/helpers/get-files-to-delete.js +3 -3
  188. package/dist/functions/helpers/get-final-encoding-status.d.ts +3 -5
  189. package/dist/functions/helpers/get-final-encoding-status.js +1 -4
  190. package/dist/functions/helpers/get-folder-size.d.ts +0 -0
  191. package/dist/functions/helpers/get-folder-size.js +0 -0
  192. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +5 -4
  193. package/dist/functions/helpers/get-lambdas-invoked-stats.js +2 -10
  194. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +3 -2
  195. package/dist/functions/helpers/get-output-url-from-metadata.js +2 -2
  196. package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
  197. package/dist/functions/helpers/get-overall-progress.js +7 -5
  198. package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
  199. package/dist/functions/helpers/get-post-render-data.js +0 -0
  200. package/dist/functions/helpers/get-progress.d.ts +6 -4
  201. package/dist/functions/helpers/get-progress.js +65 -46
  202. package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
  203. package/dist/functions/helpers/get-render-metadata.js +0 -0
  204. package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
  205. package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
  206. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  207. package/dist/functions/helpers/get-retry-stats.js +1 -1
  208. package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
  209. package/dist/functions/helpers/get-time-to-finish.js +0 -0
  210. package/dist/functions/helpers/inspect-errors.d.ts +3 -3
  211. package/dist/functions/helpers/inspect-errors.js +0 -0
  212. package/dist/functions/helpers/io.d.ts +24 -6
  213. package/dist/functions/helpers/io.js +31 -8
  214. package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
  215. package/dist/functions/helpers/is-enosp-err.js +0 -0
  216. package/dist/functions/helpers/is-warm.d.ts +0 -0
  217. package/dist/functions/helpers/is-warm.js +0 -0
  218. package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
  219. package/dist/functions/helpers/make-timeout-error.js +48 -0
  220. package/dist/functions/helpers/min-max.d.ts +1 -1
  221. package/dist/functions/helpers/min-max.js +1 -1
  222. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +2 -2
  223. package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
  224. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
  225. package/dist/functions/helpers/print-concurrency-curve.js +0 -0
  226. package/dist/functions/helpers/read-with-progress.d.ts +6 -3
  227. package/dist/functions/helpers/read-with-progress.js +16 -4
  228. package/dist/functions/helpers/timer.d.ts +0 -0
  229. package/dist/functions/helpers/timer.js +0 -0
  230. package/dist/functions/helpers/validate-composition.d.ts +12 -4
  231. package/dist/functions/helpers/validate-composition.js +14 -2
  232. package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
  233. package/dist/functions/helpers/write-lambda-error.js +2 -0
  234. package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
  235. package/dist/functions/helpers/write-post-render-data.js +2 -0
  236. package/dist/functions/index.d.ts +3 -2
  237. package/dist/functions/index.js +29 -10
  238. package/dist/functions/info.d.ts +2 -2
  239. package/dist/functions/info.js +2 -1
  240. package/dist/functions/launch.d.ts +2 -1
  241. package/dist/functions/launch.js +360 -123
  242. package/dist/functions/progress.d.ts +2 -2
  243. package/dist/functions/progress.js +10 -1
  244. package/dist/functions/renderer.d.ts +1 -1
  245. package/dist/functions/renderer.js +144 -79
  246. package/dist/functions/start.d.ts +6 -2
  247. package/dist/functions/start.js +44 -6
  248. package/dist/functions/still.d.ts +1 -1
  249. package/dist/functions/still.js +78 -21
  250. package/dist/index.d.ts +57 -21
  251. package/dist/index.js +27 -5
  252. package/dist/internals.d.ts +1 -1
  253. package/dist/internals.js +0 -0
  254. package/dist/pricing/aws-regions.d.ts +2 -1
  255. package/dist/pricing/aws-regions.js +31 -1
  256. package/dist/pricing/price-per-1-s.d.ts +1 -1
  257. package/dist/pricing/price-per-1-s.js +413 -39
  258. package/dist/regions.d.ts +0 -0
  259. package/dist/regions.js +0 -0
  260. package/dist/shared/await.d.ts +0 -0
  261. package/dist/shared/await.js +0 -0
  262. package/dist/shared/aws-clients.d.ts +17 -3
  263. package/dist/shared/aws-clients.js +118 -26
  264. package/dist/shared/bundle-site.d.ts +2 -6
  265. package/dist/shared/bundle-site.js +0 -0
  266. package/dist/shared/call-lambda.d.ts +3 -3
  267. package/dist/shared/call-lambda.js +0 -0
  268. package/dist/shared/check-credentials.d.ts +0 -0
  269. package/dist/shared/check-credentials.js +5 -2
  270. package/dist/shared/chunk-progress.d.ts +9 -0
  271. package/dist/shared/chunk-progress.js +2034 -0
  272. package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
  273. package/dist/shared/cleanup-serialized-input-props.js +19 -0
  274. package/dist/shared/constants.d.ts +119 -37
  275. package/dist/shared/constants.js +21 -10
  276. package/dist/shared/content-disposition-header.d.ts +7 -0
  277. package/dist/shared/content-disposition-header.js +19 -0
  278. package/dist/shared/convert-to-serve-url.d.ts +6 -2
  279. package/dist/shared/convert-to-serve-url.js +1 -5
  280. package/dist/shared/deserialize-input-props.d.ts +8 -0
  281. package/dist/shared/deserialize-input-props.js +26 -0
  282. package/dist/shared/docs-url.d.ts +0 -0
  283. package/dist/shared/docs-url.js +0 -0
  284. package/dist/shared/function-zip-path.d.ts +2 -1
  285. package/dist/shared/function-zip-path.js +3 -2
  286. package/dist/shared/get-account-id.d.ts +1 -1
  287. package/dist/shared/get-account-id.js +4 -6
  288. package/dist/shared/get-aws-urls.d.ts +14 -0
  289. package/dist/shared/get-aws-urls.js +12 -0
  290. package/dist/shared/get-etag.d.ts +1 -0
  291. package/dist/shared/get-etag.js +24 -0
  292. package/dist/shared/get-function-version.d.ts +2 -3
  293. package/dist/shared/get-function-version.js +0 -0
  294. package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
  295. package/dist/shared/get-most-expensive-chunks.js +26 -0
  296. package/dist/shared/get-s3-operations.d.ts +10 -0
  297. package/dist/shared/get-s3-operations.js +36 -0
  298. package/dist/shared/hosted-layers.d.ts +89 -3
  299. package/dist/shared/hosted-layers.js +434 -125
  300. package/dist/shared/invoke-webhook.d.ts +46 -0
  301. package/dist/shared/invoke-webhook.js +89 -0
  302. package/dist/shared/is-in-lambda.d.ts +0 -0
  303. package/dist/shared/is-in-lambda.js +5 -1
  304. package/dist/shared/lambda-version-string.d.ts +1 -0
  305. package/dist/shared/lambda-version-string.js +7 -0
  306. package/dist/shared/make-s3-key.d.ts +1 -0
  307. package/dist/shared/make-s3-key.js +11 -0
  308. package/dist/shared/make-s3-url.d.ts +1 -1
  309. package/dist/shared/make-s3-url.js +0 -0
  310. package/dist/shared/p-limit.d.ts +0 -0
  311. package/dist/shared/p-limit.js +0 -0
  312. package/dist/shared/parse-chunk-key.d.ts +4 -0
  313. package/dist/shared/parse-chunk-key.js +14 -0
  314. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
  315. package/dist/shared/parse-lambda-initialized-key.js +0 -0
  316. package/dist/shared/parse-lambda-timings-key.d.ts +0 -0
  317. package/dist/shared/parse-lambda-timings-key.js +0 -0
  318. package/dist/shared/random-hash.d.ts +2 -2
  319. package/dist/shared/random-hash.js +1 -1
  320. package/dist/shared/read-dir.d.ts +9 -0
  321. package/dist/shared/read-dir.js +57 -0
  322. package/dist/shared/return-values.d.ts +9 -7
  323. package/dist/shared/return-values.js +0 -1
  324. package/dist/shared/serialize-input-props.d.ts +8 -0
  325. package/dist/shared/serialize-input-props.js +42 -0
  326. package/dist/shared/sleep.d.ts +0 -0
  327. package/dist/shared/sleep.js +0 -0
  328. package/dist/shared/stream-to-string.d.ts +2 -1
  329. package/dist/shared/stream-to-string.js +0 -0
  330. package/dist/shared/truthy.d.ts +3 -0
  331. package/dist/shared/truthy.js +7 -0
  332. package/dist/shared/validate-architecture.d.ts +0 -0
  333. package/dist/shared/validate-architecture.js +0 -0
  334. package/dist/shared/validate-aws-region.d.ts +1 -1
  335. package/dist/shared/validate-aws-region.js +0 -0
  336. package/dist/shared/validate-bucketname.d.ts +5 -0
  337. package/dist/shared/validate-bucketname.js +19 -1
  338. package/dist/shared/validate-custom-role-arn.d.ts +1 -0
  339. package/dist/shared/validate-custom-role-arn.js +11 -0
  340. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  341. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  342. package/dist/shared/validate-download-behavior.d.ts +1 -0
  343. package/dist/shared/validate-download-behavior.js +21 -0
  344. package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
  345. package/dist/shared/validate-frames-per-lambda.js +4 -3
  346. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  347. package/dist/shared/validate-lambda-codec.js +30 -0
  348. package/dist/shared/validate-memory-size.d.ts +0 -0
  349. package/dist/shared/validate-memory-size.js +0 -0
  350. package/dist/shared/validate-outname.d.ts +3 -2
  351. package/dist/shared/validate-outname.js +10 -1
  352. package/dist/shared/validate-presign-expiration.d.ts +0 -2
  353. package/dist/shared/validate-presign-expiration.js +7 -7
  354. package/dist/shared/validate-privacy.d.ts +1 -1
  355. package/dist/shared/validate-privacy.js +2 -2
  356. package/dist/shared/validate-retention-period.d.ts +0 -0
  357. package/dist/shared/validate-retention-period.js +0 -0
  358. package/dist/shared/validate-retries.d.ts +0 -0
  359. package/dist/shared/validate-retries.js +0 -0
  360. package/dist/shared/validate-serveurl.d.ts +0 -0
  361. package/dist/shared/validate-serveurl.js +0 -0
  362. package/dist/shared/validate-site-name.d.ts +0 -0
  363. package/dist/shared/validate-site-name.js +0 -0
  364. package/dist/shared/validate-timeout.d.ts +0 -0
  365. package/dist/shared/validate-timeout.js +0 -0
  366. package/package.json +55 -32
  367. package/remotionlambda-arm64.zip +0 -0
  368. package/remotionlambda-x64.zip +0 -0
  369. package/remotionlambda.zip +0 -0
  370. package/.prettierrc.js +0 -14
  371. package/client.d.ts +0 -1
  372. package/client.js +0 -1
  373. package/dist/api/enable-s3-website.d.ts +0 -5
  374. package/dist/api/enable-s3-website.js +0 -16
  375. package/dist/cli/helpers/format-bytes.d.ts +0 -6
  376. package/dist/cli/helpers/format-bytes.js +0 -103
  377. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
  378. package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
  379. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  380. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  381. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  382. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  383. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -6
  384. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  385. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  386. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  387. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  388. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  389. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  390. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  391. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -15
  392. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  393. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  394. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -45
  395. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -10
  396. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  397. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  398. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
  399. package/dist/shared/chunk.d.ts +0 -1
  400. package/dist/shared/chunk.js +0 -11
  401. package/tsconfig.json +0 -16
@@ -1,18 +1,21 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { RenderProgress } from '../shared/constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { CustomCredentials } from '../shared/aws-clients';
3
+ import type { RenderProgress } from '../shared/constants';
3
4
  export declare type GetRenderInput = {
4
5
  functionName: string;
5
6
  bucketName: string;
6
7
  renderId: string;
7
8
  region: AwsRegion;
9
+ s3OutputProvider?: CustomCredentials;
8
10
  };
9
11
  /**
10
12
  * @description Gets the current status of a render originally triggered via renderMediaOnLambda().
11
- * @link https://remotion.dev/docs/lambda/getrenderprogress
13
+ * @see [Documentation](https://remotion.dev/docs/lambda/getrenderprogress)
12
14
  * @param {string} params.functionName The name of the function used to trigger the render.
13
15
  * @param {string} params.bucketName The name of the bucket that was used in the render.
14
16
  * @param {string} params.renderId The ID of the render that was returned by `renderMediaOnLambda()`.
15
17
  * @param {AwsRegion} params.region The region in which the render was triggered.
18
+ * @param {CustomCredentials} params.s3OutputProvider? Endpoint and credentials if the output file is stored outside of AWS.
16
19
  * @returns {Promise<RenderProgress>} See documentation for this function to see all properties on the return object.
17
20
  */
18
- export declare const getRenderProgress: ({ functionName, bucketName, renderId, region, }: GetRenderInput) => Promise<RenderProgress>;
21
+ export declare const getRenderProgress: ({ functionName, bucketName, renderId, region, s3OutputProvider, }: GetRenderInput) => Promise<RenderProgress>;
@@ -1,24 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRenderProgress = void 0;
4
+ const version_1 = require("remotion/version");
4
5
  const call_lambda_1 = require("../shared/call-lambda");
5
6
  const constants_1 = require("../shared/constants");
6
7
  /**
7
8
  * @description Gets the current status of a render originally triggered via renderMediaOnLambda().
8
- * @link https://remotion.dev/docs/lambda/getrenderprogress
9
+ * @see [Documentation](https://remotion.dev/docs/lambda/getrenderprogress)
9
10
  * @param {string} params.functionName The name of the function used to trigger the render.
10
11
  * @param {string} params.bucketName The name of the bucket that was used in the render.
11
12
  * @param {string} params.renderId The ID of the render that was returned by `renderMediaOnLambda()`.
12
13
  * @param {AwsRegion} params.region The region in which the render was triggered.
14
+ * @param {CustomCredentials} params.s3OutputProvider? Endpoint and credentials if the output file is stored outside of AWS.
13
15
  * @returns {Promise<RenderProgress>} See documentation for this function to see all properties on the return object.
14
16
  */
15
- const getRenderProgress = async ({ functionName, bucketName, renderId, region, }) => {
17
+ const getRenderProgress = async ({ functionName, bucketName, renderId, region, s3OutputProvider, }) => {
16
18
  const result = await (0, call_lambda_1.callLambda)({
17
19
  functionName,
18
20
  type: constants_1.LambdaRoutines.status,
19
21
  payload: {
20
22
  bucketName,
21
23
  renderId,
24
+ version: version_1.VERSION,
25
+ s3OutputProvider,
22
26
  },
23
27
  region,
24
28
  });
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { BucketWithLocation } from './get-buckets';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { BucketWithLocation } from './get-buckets';
3
3
  declare type Site = {
4
4
  sizeInBytes: number;
5
5
  lastModified: number | null;
@@ -9,15 +9,15 @@ declare type Site = {
9
9
  };
10
10
  export declare type GetSitesInput = {
11
11
  region: AwsRegion;
12
+ bucketName?: string;
12
13
  };
13
14
  export declare type GetSitesOutput = {
14
15
  sites: Site[];
15
16
  buckets: BucketWithLocation[];
16
17
  };
17
18
  /**
18
- *
19
19
  * @description Gets all the deployed sites for a certain AWS region.
20
- * @link https://remotion.dev/docs/lambda/getsites
20
+ * @see [Documentation](https://remotion.dev/docs/lambda/getsites)
21
21
  * @param {AwsRegion} params.region The AWS region that you want to query for.
22
22
  * @returns {Promise<GetSitesOutput>} A Promise containing an object with `sites` and `bucket` keys. Consult documentation for details.
23
23
  */
@@ -7,9 +7,8 @@ const get_account_id_1 = require("../shared/get-account-id");
7
7
  const make_s3_url_1 = require("../shared/make-s3-url");
8
8
  const get_buckets_1 = require("./get-buckets");
9
9
  /**
10
- *
11
10
  * @description Gets all the deployed sites for a certain AWS region.
12
- * @link https://remotion.dev/docs/lambda/getsites
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/getsites)
13
12
  * @param {AwsRegion} params.region The AWS region that you want to query for.
14
13
  * @returns {Promise<GetSitesOutput>} A Promise containing an object with `sites` and `bucket` keys. Consult documentation for details.
15
14
  */
@@ -1,4 +1,5 @@
1
- import { iam, lambda, logs, s3 } from 'aws-policies';
1
+ import type { iam } from 'aws-policies';
2
+ import { lambda, logs, s3 } from 'aws-policies';
2
3
  export declare const rolePermissions: {
3
4
  actions: (s3 | iam | lambda | logs)[];
4
5
  resource: string[];
File without changes
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../../pricing/aws-regions';
1
+ import type { AwsRegion } from '../../pricing/aws-regions';
2
2
  export declare type EvalDecision = 'allowed' | 'explicitDeny' | 'implicitDeny';
3
3
  export declare type SimulationResult = {
4
4
  decision: EvalDecision;
@@ -2,32 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.simulateRule = void 0;
4
4
  const client_iam_1 = require("@aws-sdk/client-iam");
5
- const aws_policies_1 = require("aws-policies");
6
5
  const aws_clients_1 = require("../../shared/aws-clients");
7
6
  const simulateRule = async (options) => {
8
7
  var _a;
9
8
  try {
10
- if (options.actionNames.includes(aws_policies_1.iam.GetUser)) {
11
- try {
12
- await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.GetUserCommand({}));
13
- const result = [
14
- {
15
- decision: 'allowed',
16
- name: aws_policies_1.iam.GetUser,
17
- },
18
- ];
19
- return result;
20
- }
21
- catch (err) {
22
- const result = [
23
- {
24
- decision: 'explicitDeny',
25
- name: aws_policies_1.iam.GetUser,
26
- },
27
- ];
28
- return result;
29
- }
30
- }
31
9
  const res = await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.SimulatePrincipalPolicyCommand({
32
10
  ActionNames: options.actionNames,
33
11
  PolicySourceArn: options.arn,
@@ -1,5 +1,5 @@
1
- import { AwsRegion } from '../../pricing/aws-regions';
2
- import { SimulationResult } from './simulate-rule';
1
+ import type { AwsRegion } from '../../pricing/aws-regions';
2
+ import type { SimulationResult } from './simulate-rule';
3
3
  export declare const logPermissionOutput: (output: SimulationResult) => string;
4
4
  export declare type SimulatePermissionsInput = {
5
5
  region: AwsRegion;
@@ -10,7 +10,7 @@ export declare type SimulatePermissionsOutput = {
10
10
  };
11
11
  /**
12
12
  * @description Simulates calls using the AWS Simulator to validate the correct permissions.
13
- * @link http://remotion.dev/docs/lambda/simulatepermissions
13
+ * @see [Documentation](http://remotion.dev/docs/lambda/simulatepermissions)
14
14
  * @param {AwsRegion} options.region The region which you would like to validate
15
15
  * @param {(result: SimulationResult) => void} options.onSimulation The region which you would like to validate
16
16
  * @returns {Promise<SimulatePermissionsOutput>} See documentation for detailed response structure.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.simulatePermissions = exports.logPermissionOutput = void 0;
4
- const client_iam_1 = require("@aws-sdk/client-iam");
4
+ const client_sts_1 = require("@aws-sdk/client-sts");
5
5
  const aws_clients_1 = require("../../shared/aws-clients");
6
6
  const simulate_rule_1 = require("./simulate-rule");
7
7
  const user_permissions_1 = require("./user-permissions");
@@ -19,22 +19,41 @@ const logPermissionOutput = (output) => {
19
19
  exports.logPermissionOutput = logPermissionOutput;
20
20
  /**
21
21
  * @description Simulates calls using the AWS Simulator to validate the correct permissions.
22
- * @link http://remotion.dev/docs/lambda/simulatepermissions
22
+ * @see [Documentation](http://remotion.dev/docs/lambda/simulatepermissions)
23
23
  * @param {AwsRegion} options.region The region which you would like to validate
24
24
  * @param {(result: SimulationResult) => void} options.onSimulation The region which you would like to validate
25
25
  * @returns {Promise<SimulatePermissionsOutput>} See documentation for detailed response structure.
26
26
  */
27
27
  const simulatePermissions = async (options) => {
28
28
  var _a;
29
- const user = await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.GetUserCommand({}));
30
- if (!user || !user.User) {
31
- throw new Error('No valid AWS user detected');
29
+ const callerIdentity = await (0, aws_clients_1.getStsClient)(options.region).send(new client_sts_1.GetCallerIdentityCommand({}));
30
+ if (!callerIdentity || !callerIdentity.Arn) {
31
+ throw new Error('No valid AWS Caller Identity detected');
32
+ }
33
+ const callerIdentityArnComponents = callerIdentity.Arn.match(/arn:aws:([^:]+)::(\d+):([^/]+)(.*)/);
34
+ if (!callerIdentityArnComponents) {
35
+ throw new Error('Unknown AWS Caller Identity ARN detected');
36
+ }
37
+ const callerIdentityArnType = callerIdentityArnComponents[1];
38
+ let callerArn;
39
+ if (callerIdentityArnType === 'iam' && callerIdentityArnComponents[3] === 'user') {
40
+ callerArn = callerIdentity.Arn;
41
+ }
42
+ else if (callerIdentityArnType === 'sts' && callerIdentityArnComponents[3] === 'assumed-role') {
43
+ const assumedRoleComponents = callerIdentityArnComponents[4].match(/\/([^/]+)\/(.*)/);
44
+ if (!assumedRoleComponents) {
45
+ throw new Error('Unsupported AWS Caller Identity as Assumed-Role ARN detected');
46
+ }
47
+ callerArn = `arn:aws:iam::${callerIdentityArnComponents[2]}:role/${assumedRoleComponents[1]}`;
48
+ }
49
+ else {
50
+ throw new Error('Unsupported AWS Caller Identity ARN detected');
32
51
  }
33
52
  const results = [];
34
53
  for (const per of user_permissions_1.requiredPermissions) {
35
54
  const result = await (0, simulate_rule_1.simulateRule)({
36
55
  actionNames: per.actions,
37
- arn: user.User.Arn,
56
+ arn: callerArn,
38
57
  region: options.region,
39
58
  resource: per.resource,
40
59
  retries: 2,
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  import { iam, lambda, logs, s3, servicequotas } from 'aws-policies';
2
2
  export declare const requiredPermissions: {
3
- actions: (s3 | iam | lambda | logs | servicequotas)[];
3
+ actions: (s3 | iam | lambda | 'lambda:PutRuntimeManagementConfig' | logs | servicequotas)[];
4
4
  resource: string[];
5
5
  id: string;
6
6
  }[];
@@ -15,12 +15,6 @@ exports.requiredPermissions = [
15
15
  ],
16
16
  resource: ['*'],
17
17
  },
18
- {
19
- id: 'Identity',
20
- actions: [aws_policies_1.iam.GetUser],
21
- // eslint-disable-next-line no-template-curly-in-string
22
- resource: ['arn:aws:iam::*:user/${aws:username}'],
23
- },
24
18
  {
25
19
  id: 'PermissionValidation',
26
20
  actions: [aws_policies_1.iam.SimulatePrincipalPolicy],
@@ -43,8 +37,6 @@ exports.requiredPermissions = [
43
37
  aws_policies_1.s3.GetBucketLocation,
44
38
  aws_policies_1.s3.PutBucketAcl,
45
39
  aws_policies_1.s3.DeleteBucket,
46
- aws_policies_1.s3.PutBucketWebsite,
47
- aws_policies_1.s3.DeleteBucketWebsite,
48
40
  ],
49
41
  resource: [`arn:aws:s3:::${constants_1.REMOTION_BUCKET_PREFIX}*`],
50
42
  },
@@ -66,6 +58,7 @@ exports.requiredPermissions = [
66
58
  aws_policies_1.lambda.CreateFunction,
67
59
  aws_policies_1.lambda.DeleteFunction,
68
60
  aws_policies_1.lambda.PutFunctionEventInvokeConfig,
61
+ 'lambda:PutRuntimeManagementConfig',
69
62
  ],
70
63
  resource: [`arn:aws:lambda:*:*:function:${constants_1.RENDER_FN_PREFIX}*`],
71
64
  },
@@ -1,19 +1,18 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from '../shared/constants';
3
- import { FunctionInfo } from './get-function-info';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ import type { FunctionInfo } from './get-function-info';
4
3
  export declare let mockFunctionsStore: (FunctionInfo & {
5
4
  region: AwsRegion;
6
- version: LambdaVersions;
5
+ version: string;
7
6
  })[];
8
7
  export declare const addFunction: (fn: FunctionInfo, region: AwsRegion) => void;
9
8
  export declare const deleteMockFunction: (name: string, region: string) => void;
10
9
  export declare const findFunction: (name: string, region: string) => (FunctionInfo & {
11
10
  region: AwsRegion;
12
- version: LambdaVersions;
11
+ version: string;
13
12
  }) | undefined;
14
- export declare const getAllMockFunctions: (region: string, version: LambdaVersions | null) => (FunctionInfo & {
13
+ export declare const getAllMockFunctions: (region: string, version: string | null) => (FunctionInfo & {
15
14
  region: AwsRegion;
16
- version: LambdaVersions;
15
+ version: string;
17
16
  })[];
18
17
  export declare const cleanFnStore: () => void;
19
18
  export declare const markFunctionAsIncompatible: (functionName: string) => void;
File without changes
@@ -1,14 +1,14 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- export declare type PresignURLInput = {
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ export declare type PresignUrlInput<CheckIfObjectExists extends boolean = boolean> = {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
5
5
  objectKey: string;
6
- checkIfObjectExists?: boolean;
6
+ checkIfObjectExists?: CheckIfObjectExists;
7
7
  expiresInSeconds: number;
8
8
  };
9
9
  /**
10
10
  * @description Returns a public url of an object stored in Remotion's S3 bucket.
11
- * @link https://remotion.dev/docs/lambda/presignurl
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
12
12
  * @param {AwsRegion} params.region The region in which the S3 bucket resides in.
13
13
  * @param {string} params.bucketName The name of the bucket to fetch the object from.
14
14
  * @param {string} params.objectKey Key of the S3 object to get.
@@ -16,4 +16,4 @@ export declare type PresignURLInput = {
16
16
  * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
17
17
  * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
18
  */
19
- export declare const presignUrl: ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignURLInput) => Promise<string | null>;
19
+ export declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
@@ -8,7 +8,7 @@ const validate_bucketname_1 = require("../shared/validate-bucketname");
8
8
  const validate_presign_expiration_1 = require("../shared/validate-presign-expiration");
9
9
  /**
10
10
  * @description Returns a public url of an object stored in Remotion's S3 bucket.
11
- * @link https://remotion.dev/docs/lambda/presignurl
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
12
12
  * @param {AwsRegion} params.region The region in which the S3 bucket resides in.
13
13
  * @param {string} params.bucketName The name of the bucket to fetch the object from.
14
14
  * @param {string} params.objectKey Key of the S3 object to get.
@@ -16,11 +16,11 @@ const validate_presign_expiration_1 = require("../shared/validate-presign-expira
16
16
  * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
17
17
  * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
18
  */
19
- const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists = false, expiresInSeconds, }) => {
19
+ const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }) => {
20
20
  (0, validate_bucketname_1.validateBucketName)(bucketName, { mustStartWithRemotion: false });
21
21
  (0, validate_presign_expiration_1.validatePresignExpiration)(expiresInSeconds);
22
- const s3Client = (0, aws_clients_1.getS3Client)(region);
23
- if (checkIfObjectExists) {
22
+ const s3Client = (0, aws_clients_1.getS3Client)(region, null);
23
+ if (checkIfObjectExists === true) {
24
24
  try {
25
25
  await s3Client.send(new client_s3_1.HeadObjectCommand({
26
26
  Bucket: bucketName,
@@ -31,6 +31,11 @@ const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists =
31
31
  if (err.name === 'NotFound') {
32
32
  return null;
33
33
  }
34
+ if (err.message === 'UnknownError' ||
35
+ err.$metadata
36
+ .httpStatusCode === 403) {
37
+ throw new Error(`Unable to access item "${objectKey}" from bucket "${bucketName}". You must have permission for both "s3:GetObject" and "s3:ListBucket" actions.`);
38
+ }
34
39
  throw err;
35
40
  }
36
41
  }
@@ -1,54 +1,75 @@
1
- import type { ChromiumOptions } from '@remotion/renderer';
2
- import { FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from 'remotion';
3
- import { AwsRegion } from '../pricing/aws-regions';
4
- import { Privacy } from '../shared/constants';
1
+ import type { AudioCodec, ChromiumOptions, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
2
+ import type { AwsRegion } from '../pricing/aws-regions';
3
+ import type { OutNameInput, Privacy } from '../shared/constants';
4
+ import type { DownloadBehavior } from '../shared/content-disposition-header';
5
+ import type { LambdaCodec } from '../shared/validate-lambda-codec';
5
6
  export declare type RenderMediaOnLambdaInput = {
6
7
  region: AwsRegion;
7
8
  functionName: string;
8
9
  serveUrl: string;
9
10
  composition: string;
10
- inputProps: unknown;
11
- codec: 'h264-mkv' | 'mp3' | 'aac' | 'wav';
12
- imageFormat: ImageFormat;
11
+ inputProps?: unknown;
12
+ codec: LambdaCodec;
13
+ imageFormat?: ImageFormat;
13
14
  crf?: number | undefined;
14
15
  envVariables?: Record<string, string>;
15
16
  pixelFormat?: PixelFormat;
16
17
  proResProfile?: ProResProfile;
17
- privacy: Privacy;
18
+ privacy?: Privacy;
18
19
  quality?: number;
19
- maxRetries: number;
20
+ maxRetries?: number;
20
21
  framesPerLambda?: number;
21
22
  logLevel?: LogLevel;
22
23
  frameRange?: FrameRange;
23
- outName?: string;
24
+ outName?: OutNameInput;
24
25
  timeoutInMilliseconds?: number;
25
26
  chromiumOptions?: ChromiumOptions;
26
27
  scale?: number;
28
+ everyNthFrame?: number;
29
+ numberOfGifLoops?: number | null;
30
+ concurrencyPerLambda?: number;
31
+ downloadBehavior?: DownloadBehavior | null;
32
+ muted?: boolean;
33
+ overwrite?: boolean;
34
+ audioBitrate?: string | null;
35
+ videoBitrate?: string | null;
36
+ webhook?: {
37
+ url: string;
38
+ secret: string | null;
39
+ };
40
+ forceWidth?: number | null;
41
+ forceHeight?: number | null;
42
+ rendererFunctionName?: string | null;
43
+ forceBucketName?: string;
44
+ audioCodec?: AudioCodec | null;
27
45
  };
28
46
  export declare type RenderMediaOnLambdaOutput = {
29
47
  renderId: string;
30
48
  bucketName: string;
49
+ cloudWatchLogs: string;
50
+ folderInS3Console: string;
31
51
  };
32
52
  /**
33
53
  * @description Triggers a render on a lambda given a composition and a lambda function.
34
- * @link https://remotion.dev/docs/lambda/rendermediaonlambda
54
+ * @see [Documentation](https://remotion.dev/docs/lambda/rendermediaonlambda)
35
55
  * @param params.functionName The name of the Lambda function that should be used
36
56
  * @param params.serveUrl The URL of the deployed project
37
57
  * @param params.composition The ID of the composition which should be rendered.
38
58
  * @param params.inputProps The input props that should be passed to the composition.
39
- * @param params.codec The video codec which should be used for encoding.
40
- * @param params.imageFormat In which image format the frames should be rendered.
59
+ * @param params.codec The media codec which should be used for encoding.
60
+ * @param params.imageFormat In which image format the frames should be rendered. Default "jpeg"
41
61
  * @param params.crf The constant rate factor to be used during encoding.
42
62
  * @param params.envVariables Object containing environment variables to be inserted into the video environment
43
63
  * @param params.proResProfile The ProRes profile if rendering a ProRes video
44
64
  * @param params.quality JPEG quality if JPEG was selected as the image format.
45
- * @param params.region The AWS region in which the video should be rendered.
46
- * @param params.maxRetries How often rendering a chunk may fail before the video render gets aborted.
65
+ * @param params.region The AWS region in which the media should be rendered.
66
+ * @param params.maxRetries How often rendering a chunk may fail before the media render gets aborted. Default "1"
47
67
  * @param params.logLevel Level of logging that Lambda function should perform. Default "info".
68
+ * @param params.webhook Configuration for webhook called upon completion or timeout of the render.
48
69
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
49
70
  */
50
- export declare const renderMediaOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
71
+ export declare const renderMediaOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
51
72
  /**
52
73
  * @deprecated Renamed to renderMediaOnLambda()
53
74
  */
54
- export declare const renderVideoOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
75
+ export declare const renderVideoOnLambda: ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, }: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
@@ -1,64 +1,114 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderVideoOnLambda = exports.renderMediaOnLambda = void 0;
4
- const remotion_1 = require("remotion");
4
+ const version_1 = require("remotion/version");
5
5
  const call_lambda_1 = require("../shared/call-lambda");
6
6
  const constants_1 = require("../shared/constants");
7
- const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
7
+ const get_aws_urls_1 = require("../shared/get-aws-urls");
8
+ const serialize_input_props_1 = require("../shared/serialize-input-props");
9
+ const validate_download_behavior_1 = require("../shared/validate-download-behavior");
8
10
  const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
11
+ const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
9
12
  const validate_serveurl_1 = require("../shared/validate-serveurl");
10
13
  /**
11
14
  * @description Triggers a render on a lambda given a composition and a lambda function.
12
- * @link https://remotion.dev/docs/lambda/rendermediaonlambda
15
+ * @see [Documentation](https://remotion.dev/docs/lambda/rendermediaonlambda)
13
16
  * @param params.functionName The name of the Lambda function that should be used
14
17
  * @param params.serveUrl The URL of the deployed project
15
18
  * @param params.composition The ID of the composition which should be rendered.
16
19
  * @param params.inputProps The input props that should be passed to the composition.
17
- * @param params.codec The video codec which should be used for encoding.
18
- * @param params.imageFormat In which image format the frames should be rendered.
20
+ * @param params.codec The media codec which should be used for encoding.
21
+ * @param params.imageFormat In which image format the frames should be rendered. Default "jpeg"
19
22
  * @param params.crf The constant rate factor to be used during encoding.
20
23
  * @param params.envVariables Object containing environment variables to be inserted into the video environment
21
24
  * @param params.proResProfile The ProRes profile if rendering a ProRes video
22
25
  * @param params.quality JPEG quality if JPEG was selected as the image format.
23
- * @param params.region The AWS region in which the video should be rendered.
24
- * @param params.maxRetries How often rendering a chunk may fail before the video render gets aborted.
26
+ * @param params.region The AWS region in which the media should be rendered.
27
+ * @param params.maxRetries How often rendering a chunk may fail before the media render gets aborted. Default "1"
25
28
  * @param params.logLevel Level of logging that Lambda function should perform. Default "info".
29
+ * @param params.webhook Configuration for webhook called upon completion or timeout of the render.
26
30
  * @returns {Promise<RenderMediaOnLambdaOutput>} See documentation for detailed structure
27
31
  */
28
- const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, }) => {
32
+ const renderMediaOnLambda = async ({ functionName, serveUrl, inputProps, codec, imageFormat, crf, envVariables, pixelFormat, proResProfile, quality, region, maxRetries, composition, framesPerLambda, privacy, logLevel, frameRange, outName, timeoutInMilliseconds, chromiumOptions, scale, numberOfGifLoops, everyNthFrame, concurrencyPerLambda, downloadBehavior, muted, overwrite, audioBitrate, videoBitrate, webhook, forceHeight, forceWidth, rendererFunctionName, forceBucketName: bucketName, audioCodec, }) => {
33
+ var _a;
34
+ const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
29
35
  (0, validate_serveurl_1.validateServeUrl)(serveUrl);
30
- (0, validate_frames_per_lambda_1.validateFramesPerLambda)(framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null);
31
- const realServeUrl = await (0, convert_to_serve_url_1.convertToServeUrl)(serveUrl, region);
32
- const res = await (0, call_lambda_1.callLambda)({
33
- functionName,
34
- type: constants_1.LambdaRoutines.start,
35
- payload: {
36
- framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
37
- composition,
38
- serveUrl: realServeUrl,
39
- inputProps,
40
- codec,
41
- imageFormat,
42
- crf,
43
- envVariables,
44
- pixelFormat,
45
- proResProfile,
46
- quality,
47
- maxRetries,
48
- privacy,
49
- logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : remotion_1.Internals.Logging.DEFAULT_LOG_LEVEL,
50
- frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
51
- outName: outName !== null && outName !== void 0 ? outName : null,
52
- timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : remotion_1.Internals.DEFAULT_PUPPETEER_TIMEOUT,
53
- chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
54
- scale: scale !== null && scale !== void 0 ? scale : 1,
55
- },
36
+ (0, validate_frames_per_lambda_1.validateFramesPerLambda)({
37
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
38
+ durationInFrames: 1,
39
+ });
40
+ (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
41
+ const serializedInputProps = await (0, serialize_input_props_1.serializeInputProps)({
42
+ inputProps,
56
43
  region,
44
+ type: 'video-or-audio',
45
+ userSpecifiedBucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
57
46
  });
58
- return {
59
- renderId: res.renderId,
60
- bucketName: res.bucketName,
61
- };
47
+ try {
48
+ const res = await (0, call_lambda_1.callLambda)({
49
+ functionName,
50
+ type: constants_1.LambdaRoutines.start,
51
+ payload: {
52
+ rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
53
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
54
+ composition,
55
+ serveUrl,
56
+ inputProps: serializedInputProps,
57
+ codec: actualCodec,
58
+ imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
59
+ crf,
60
+ envVariables,
61
+ pixelFormat,
62
+ proResProfile,
63
+ quality,
64
+ maxRetries: maxRetries !== null && maxRetries !== void 0 ? maxRetries : 1,
65
+ privacy: privacy !== null && privacy !== void 0 ? privacy : 'public',
66
+ logLevel: logLevel !== null && logLevel !== void 0 ? logLevel : 'info',
67
+ frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
68
+ outName: outName !== null && outName !== void 0 ? outName : null,
69
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
70
+ chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
71
+ scale: scale !== null && scale !== void 0 ? scale : 1,
72
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
73
+ numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
74
+ concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
75
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
76
+ muted: muted !== null && muted !== void 0 ? muted : false,
77
+ version: version_1.VERSION,
78
+ overwrite: overwrite !== null && overwrite !== void 0 ? overwrite : false,
79
+ audioBitrate: audioBitrate !== null && audioBitrate !== void 0 ? audioBitrate : null,
80
+ videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
81
+ webhook: webhook !== null && webhook !== void 0 ? webhook : null,
82
+ forceHeight: forceHeight !== null && forceHeight !== void 0 ? forceHeight : null,
83
+ forceWidth: forceWidth !== null && forceWidth !== void 0 ? forceWidth : null,
84
+ bucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
85
+ audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
86
+ },
87
+ region,
88
+ });
89
+ return {
90
+ renderId: res.renderId,
91
+ bucketName: res.bucketName,
92
+ cloudWatchLogs: (0, get_aws_urls_1.getCloudwatchStreamUrl)({
93
+ functionName,
94
+ method: constants_1.LambdaRoutines.renderer,
95
+ region,
96
+ renderId: res.renderId,
97
+ rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
98
+ }),
99
+ folderInS3Console: (0, get_aws_urls_1.getS3RenderUrl)({
100
+ bucketName: res.bucketName,
101
+ renderId: res.renderId,
102
+ region,
103
+ }),
104
+ };
105
+ }
106
+ catch (err) {
107
+ if ((_a = err.stack) === null || _a === void 0 ? void 0 : _a.includes('UnrecognizedClientException')) {
108
+ throw new Error('UnrecognizedClientException: The AWS credentials provided were probably mixed up. Learn how to fix this issue here: https://remotion.dev/docs/lambda/troubleshooting/unrecognizedclientexception');
109
+ }
110
+ throw err;
111
+ }
62
112
  };
63
113
  exports.renderMediaOnLambda = renderMediaOnLambda;
64
114
  /**