@remotion/lambda 4.0.0-defer.6 → 4.0.0-esm.17

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 (396) 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 +28 -6
  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 +2 -2
  15. package/dist/api/create-function.js +0 -0
  16. package/dist/api/delete-function.d.ts +1 -1
  17. package/dist/api/delete-function.js +0 -0
  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 +1 -1
  21. package/dist/api/delete-site.js +0 -5
  22. package/dist/api/deploy-function.d.ts +2 -2
  23. package/dist/api/deploy-function.js +7 -3
  24. package/dist/api/deploy-site.d.ts +10 -3
  25. package/dist/api/deploy-site.js +39 -20
  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 +2 -2
  29. package/dist/api/estimate-price.js +0 -0
  30. package/dist/api/get-aws-client.d.ts +7 -3
  31. package/dist/api/get-aws-client.js +9 -2
  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 +52 -0
  36. package/dist/api/get-function-info.d.ts +2 -3
  37. package/dist/api/get-function-info.js +0 -0
  38. package/dist/api/get-functions.d.ts +2 -2
  39. package/dist/api/get-functions.js +2 -1
  40. package/dist/api/get-or-create-bucket.d.ts +1 -1
  41. package/dist/api/get-or-create-bucket.js +2 -7
  42. package/dist/api/get-regions.d.ts +6 -2
  43. package/dist/api/get-regions.js +5 -2
  44. package/dist/api/get-render-progress.d.ts +6 -3
  45. package/dist/api/get-render-progress.js +5 -1
  46. package/dist/api/get-sites.d.ts +2 -2
  47. package/dist/api/get-sites.js +0 -0
  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 +2 -2
  53. package/dist/api/iam-validation/simulate.js +24 -5
  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 +0 -0
  57. package/dist/api/iam-validation/user-permissions.js +0 -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 +3 -2
  61. package/dist/api/presign-url.js +6 -1
  62. package/dist/api/render-media-on-lambda.d.ts +35 -16
  63. package/dist/api/render-media-on-lambda.js +82 -37
  64. package/dist/api/render-still-on-lambda.d.ts +12 -7
  65. package/dist/api/render-still-on-lambda.js +55 -31
  66. package/dist/api/upload-dir.d.ts +6 -5
  67. package/dist/api/upload-dir.js +39 -21
  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 +9 -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 +42 -0
  74. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  75. package/dist/cli/commands/functions/deploy.js +2 -1
  76. package/dist/cli/commands/functions/index.d.ts +0 -0
  77. package/dist/cli/commands/functions/index.js +0 -0
  78. package/dist/cli/commands/functions/ls.d.ts +0 -0
  79. package/dist/cli/commands/functions/ls.js +0 -0
  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 +0 -0
  94. package/dist/cli/commands/quotas/index.d.ts +0 -0
  95. package/dist/cli/commands/quotas/index.js +0 -0
  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 +5 -1
  100. package/dist/cli/commands/render/progress.d.ts +11 -7
  101. package/dist/cli/commands/render/progress.js +68 -43
  102. package/dist/cli/commands/render/render.d.ts +1 -1
  103. package/dist/cli/commands/render/render.js +72 -25
  104. package/dist/cli/commands/sites/create.d.ts +1 -1
  105. package/dist/cli/commands/sites/create.js +21 -9
  106. package/dist/cli/commands/sites/index.d.ts +1 -1
  107. package/dist/cli/commands/sites/index.js +2 -2
  108. package/dist/cli/commands/sites/ls.d.ts +0 -0
  109. package/dist/cli/commands/sites/ls.js +1 -2
  110. package/dist/cli/commands/sites/rm.d.ts +0 -0
  111. package/dist/cli/commands/sites/rm.js +2 -3
  112. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  113. package/dist/cli/commands/sites/rmall.js +2 -3
  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 +3 -2
  126. package/dist/cli/helpers/progress-bar.d.ts +9 -3
  127. package/dist/cli/helpers/progress-bar.js +20 -5
  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 +20 -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 +5 -2
  139. package/dist/client.js +5 -1
  140. package/dist/defaults.d.ts +0 -0
  141. package/dist/defaults.js +0 -0
  142. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +2 -6
  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 +57 -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 +17 -7
  159. package/dist/functions/helpers/concat-videos.js +34 -32
  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 +1 -1
  172. package/dist/functions/helpers/get-chromium-executable-path.d.ts +0 -0
  173. package/dist/functions/helpers/get-chromium-executable-path.js +2 -1
  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 +5 -9
  183. package/dist/functions/helpers/get-encoding-metadata.js +4 -18
  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 +1 -1
  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 +63 -34
  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/min-max.d.ts +1 -1
  219. package/dist/functions/helpers/min-max.js +1 -1
  220. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +2 -2
  221. package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
  222. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
  223. package/dist/functions/helpers/print-concurrency-curve.js +0 -0
  224. package/dist/functions/helpers/read-with-progress.d.ts +6 -3
  225. package/dist/functions/helpers/read-with-progress.js +16 -4
  226. package/dist/functions/helpers/timer.d.ts +0 -0
  227. package/dist/functions/helpers/timer.js +0 -0
  228. package/dist/functions/helpers/validate-composition.d.ts +7 -4
  229. package/dist/functions/helpers/validate-composition.js +7 -2
  230. package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
  231. package/dist/functions/helpers/write-lambda-error.js +2 -0
  232. package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
  233. package/dist/functions/helpers/write-post-render-data.js +2 -0
  234. package/dist/functions/index.d.ts +3 -2
  235. package/dist/functions/index.js +29 -10
  236. package/dist/functions/info.d.ts +2 -2
  237. package/dist/functions/info.js +2 -1
  238. package/dist/functions/launch.d.ts +2 -1
  239. package/dist/functions/launch.js +343 -123
  240. package/dist/functions/progress.d.ts +2 -2
  241. package/dist/functions/progress.js +10 -1
  242. package/dist/functions/renderer.d.ts +1 -1
  243. package/dist/functions/renderer.js +126 -77
  244. package/dist/functions/start.d.ts +6 -2
  245. package/dist/functions/start.js +40 -4
  246. package/dist/functions/still.d.ts +1 -1
  247. package/dist/functions/still.js +63 -17
  248. package/dist/index.d.ts +50 -20
  249. package/dist/index.js +17 -3
  250. package/dist/internals.d.ts +1 -1
  251. package/dist/internals.js +0 -0
  252. package/dist/pricing/aws-regions.d.ts +2 -1
  253. package/dist/pricing/aws-regions.js +31 -1
  254. package/dist/pricing/price-per-1-s.d.ts +1 -1
  255. package/dist/pricing/price-per-1-s.js +413 -39
  256. package/dist/regions.d.ts +0 -0
  257. package/dist/regions.js +0 -0
  258. package/dist/shared/await.d.ts +0 -0
  259. package/dist/shared/await.js +0 -0
  260. package/dist/shared/aws-clients.d.ts +17 -3
  261. package/dist/shared/aws-clients.js +118 -26
  262. package/dist/shared/bundle-site.d.ts +2 -6
  263. package/dist/shared/bundle-site.js +0 -0
  264. package/dist/shared/call-lambda.d.ts +3 -3
  265. package/dist/shared/call-lambda.js +0 -0
  266. package/dist/shared/check-credentials.d.ts +0 -0
  267. package/dist/shared/check-credentials.js +5 -2
  268. package/dist/shared/chunk-progress.d.ts +9 -0
  269. package/dist/shared/chunk-progress.js +2034 -0
  270. package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
  271. package/dist/shared/cleanup-serialized-input-props.js +19 -0
  272. package/dist/shared/constants.d.ts +107 -37
  273. package/dist/shared/constants.js +20 -10
  274. package/dist/shared/content-disposition-header.d.ts +7 -0
  275. package/dist/shared/content-disposition-header.js +19 -0
  276. package/dist/shared/convert-to-serve-url.d.ts +6 -2
  277. package/dist/shared/convert-to-serve-url.js +1 -5
  278. package/dist/shared/deserialize-input-props.d.ts +8 -0
  279. package/dist/shared/deserialize-input-props.js +26 -0
  280. package/dist/shared/docs-url.d.ts +0 -0
  281. package/dist/shared/docs-url.js +0 -0
  282. package/dist/shared/function-zip-path.d.ts +2 -1
  283. package/dist/shared/function-zip-path.js +3 -2
  284. package/dist/shared/get-account-id.d.ts +1 -1
  285. package/dist/shared/get-account-id.js +4 -6
  286. package/dist/shared/get-aws-urls.d.ts +13 -0
  287. package/dist/{cli/helpers/get-cloudwatch-stream-url.js → shared/get-aws-urls.js} +5 -1
  288. package/dist/shared/get-etag.d.ts +1 -0
  289. package/dist/shared/get-etag.js +24 -0
  290. package/dist/shared/get-function-version.d.ts +2 -3
  291. package/dist/shared/get-function-version.js +0 -0
  292. package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
  293. package/dist/shared/get-most-expensive-chunks.js +25 -0
  294. package/dist/shared/get-s3-operations.d.ts +10 -0
  295. package/dist/shared/get-s3-operations.js +36 -0
  296. package/dist/shared/hosted-layers.d.ts +2 -2
  297. package/dist/shared/hosted-layers.js +368 -60
  298. package/dist/shared/invoke-webhook.d.ts +46 -0
  299. package/dist/shared/invoke-webhook.js +89 -0
  300. package/dist/shared/is-in-lambda.d.ts +0 -0
  301. package/dist/shared/is-in-lambda.js +5 -1
  302. package/dist/shared/lambda-version-string.d.ts +1 -0
  303. package/dist/shared/lambda-version-string.js +7 -0
  304. package/dist/shared/make-s3-key.d.ts +0 -0
  305. package/dist/shared/make-s3-key.js +0 -0
  306. package/dist/shared/make-s3-url.d.ts +1 -1
  307. package/dist/shared/make-s3-url.js +0 -0
  308. package/dist/shared/p-limit.d.ts +0 -0
  309. package/dist/shared/p-limit.js +0 -0
  310. package/dist/shared/parse-chunk-key.d.ts +4 -0
  311. package/dist/shared/parse-chunk-key.js +14 -0
  312. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
  313. package/dist/shared/parse-lambda-initialized-key.js +0 -0
  314. package/dist/shared/parse-lambda-timings-key.d.ts +0 -0
  315. package/dist/shared/parse-lambda-timings-key.js +0 -0
  316. package/dist/shared/random-hash.d.ts +0 -0
  317. package/dist/shared/random-hash.js +0 -0
  318. package/dist/shared/read-dir.d.ts +9 -0
  319. package/dist/shared/read-dir.js +57 -0
  320. package/dist/shared/return-values.d.ts +9 -7
  321. package/dist/shared/return-values.js +0 -1
  322. package/dist/shared/serialize-input-props.d.ts +7 -0
  323. package/dist/shared/serialize-input-props.js +42 -0
  324. package/dist/shared/sleep.d.ts +0 -0
  325. package/dist/shared/sleep.js +0 -0
  326. package/dist/shared/stream-to-string.d.ts +1 -1
  327. package/dist/shared/stream-to-string.js +0 -0
  328. package/dist/shared/truthy.d.ts +3 -0
  329. package/dist/shared/truthy.js +7 -0
  330. package/dist/shared/validate-architecture.d.ts +0 -0
  331. package/dist/shared/validate-architecture.js +0 -0
  332. package/dist/shared/validate-aws-region.d.ts +1 -1
  333. package/dist/shared/validate-aws-region.js +0 -0
  334. package/dist/shared/validate-bucketname.d.ts +5 -0
  335. package/dist/shared/validate-bucketname.js +19 -1
  336. package/dist/shared/validate-custom-role-arn.d.ts +0 -0
  337. package/dist/shared/validate-custom-role-arn.js +0 -0
  338. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  339. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  340. package/dist/shared/validate-download-behavior.d.ts +1 -0
  341. package/dist/shared/validate-download-behavior.js +21 -0
  342. package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
  343. package/dist/shared/validate-frames-per-lambda.js +4 -3
  344. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  345. package/dist/shared/validate-lambda-codec.js +29 -0
  346. package/dist/shared/validate-memory-size.d.ts +0 -0
  347. package/dist/shared/validate-memory-size.js +0 -0
  348. package/dist/shared/validate-outname.d.ts +3 -2
  349. package/dist/shared/validate-outname.js +5 -1
  350. package/dist/shared/validate-presign-expiration.d.ts +0 -2
  351. package/dist/shared/validate-presign-expiration.js +7 -7
  352. package/dist/shared/validate-privacy.d.ts +1 -1
  353. package/dist/shared/validate-privacy.js +2 -2
  354. package/dist/shared/validate-retention-period.d.ts +0 -0
  355. package/dist/shared/validate-retention-period.js +0 -0
  356. package/dist/shared/validate-retries.d.ts +0 -0
  357. package/dist/shared/validate-retries.js +0 -0
  358. package/dist/shared/validate-serveurl.d.ts +0 -0
  359. package/dist/shared/validate-serveurl.js +0 -0
  360. package/dist/shared/validate-site-name.d.ts +0 -0
  361. package/dist/shared/validate-site-name.js +0 -0
  362. package/dist/shared/validate-timeout.d.ts +0 -0
  363. package/dist/shared/validate-timeout.js +0 -0
  364. package/package.json +25 -26
  365. package/remotionlambda-arm64.zip +0 -0
  366. package/remotionlambda-x64.zip +0 -0
  367. package/remotionlambda.zip +0 -0
  368. package/.prettierrc.js +0 -14
  369. package/dist/api/enable-s3-website.d.ts +0 -5
  370. package/dist/api/enable-s3-website.js +0 -16
  371. package/dist/cli/helpers/format-bytes.d.ts +0 -6
  372. package/dist/cli/helpers/format-bytes.js +0 -103
  373. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
  374. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  375. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  376. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  377. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  378. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
  379. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  380. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  381. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  382. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  383. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  384. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  385. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  386. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
  387. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  388. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  389. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -45
  390. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
  391. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  392. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  393. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
  394. package/dist/shared/chunk.d.ts +0 -1
  395. package/dist/shared/chunk.js +0 -11
  396. package/tsconfig.json +0 -16
@@ -0,0 +1,7 @@
1
+ import type { AwsRegion } from '../client';
2
+ import type { SerializedInputProps } from './constants';
3
+ export declare const cleanupSerializedInputProps: ({ serialized, region, bucketName, }: {
4
+ serialized: SerializedInputProps;
5
+ region: AwsRegion;
6
+ bucketName: string;
7
+ }) => Promise<number>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanupSerializedInputProps = void 0;
4
+ const io_1 = require("../functions/helpers/io");
5
+ const constants_1 = require("./constants");
6
+ const cleanupSerializedInputProps = async ({ serialized, region, bucketName, }) => {
7
+ if (serialized.type === 'payload') {
8
+ return 0;
9
+ }
10
+ const time = Date.now();
11
+ await (0, io_1.lambdaDeleteFile)({
12
+ bucketName,
13
+ key: (0, constants_1.inputPropsKey)(serialized.hash),
14
+ region,
15
+ customCredentials: null,
16
+ });
17
+ return Date.now() - time;
18
+ };
19
+ exports.cleanupSerializedInputProps = cleanupSerializedInputProps;
@@ -1,9 +1,13 @@
1
- import { ChromiumOptions } from '@remotion/renderer';
2
- import { Codec, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile, VideoConfig } from 'remotion';
3
- import { ChunkRetry } from '../functions/helpers/get-retry-stats';
4
- import { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
5
- import { AwsRegion } from '../pricing/aws-regions';
6
- import { LambdaArchitecture } from './validate-architecture';
1
+ import type { ChromiumOptions, Codec, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
2
+ import type { VideoConfig } from 'remotion';
3
+ import type { ChunkRetry } from '../functions/helpers/get-retry-stats';
4
+ import type { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
5
+ import type { AwsRegion } from '../pricing/aws-regions';
6
+ import type { CustomCredentials, CustomCredentialsWithoutSensitiveData } from './aws-clients';
7
+ import type { DownloadBehavior } from './content-disposition-header';
8
+ import type { ExpensiveChunk } from './get-most-expensive-chunks';
9
+ import type { LambdaArchitecture } from './validate-architecture';
10
+ import type { LambdaCodec } from './validate-lambda-codec';
7
11
  export declare const MIN_MEMORY = 512;
8
12
  export declare const MAX_MEMORY = 10240;
9
13
  export declare const DEFAULT_MEMORY_SIZE = 2048;
@@ -18,7 +22,7 @@ export declare const COMMAND_NOT_FOUND = "Command not found";
18
22
  export declare const DEFAULT_REGION: AwsRegion;
19
23
  export declare const DEFAULT_MAX_RETRIES = 1;
20
24
  export declare const MAX_FUNCTIONS_PER_RENDER = 200;
21
- export declare const DEFAULT_EPHEMERAL_STORAGE_IN_MB = 512;
25
+ export declare const DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
22
26
  export declare const MIN_EPHEMERAL_STORAGE_IN_MB = 512;
23
27
  export declare const MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
24
28
  export declare const DEFAULT_OUTPUT_PRIVACY: Privacy;
@@ -29,8 +33,9 @@ export declare const LOG_GROUP_PREFIX = "/aws/lambda/";
29
33
  export declare const rendersPrefix: (renderId: string) => string;
30
34
  export declare const encodingProgressKey: (renderId: string) => string;
31
35
  export declare const renderMetadataKey: (renderId: string) => string;
32
- export declare const lambdaInitializedPrefix: (renderId: string) => string;
33
- export declare const lambdaInitializedKey: ({ renderId, chunk, attempt, }: {
36
+ export declare const initalizedMetadataKey: (renderId: string) => string;
37
+ export declare const lambdaChunkInitializedPrefix: (renderId: string) => string;
38
+ export declare const lambdaChunkInitializedKey: ({ renderId, chunk, attempt, }: {
34
39
  attempt: number;
35
40
  renderId: string;
36
41
  chunk: number;
@@ -58,17 +63,24 @@ export declare const getErrorFileName: ({ renderId, chunk, attempt, }: {
58
63
  export declare type OutNameInput = string | {
59
64
  bucketName: string;
60
65
  key: string;
66
+ s3OutputProvider?: CustomCredentials;
67
+ };
68
+ export declare type OutNameInputWithoutCredentials = string | {
69
+ bucketName: string;
70
+ key: string;
71
+ s3OutputProvider?: CustomCredentialsWithoutSensitiveData;
61
72
  };
62
73
  export declare type OutNameOutput = {
63
74
  renderBucketName: string;
64
75
  key: string;
76
+ customCredentials: CustomCredentials | null;
65
77
  };
66
- export declare const optimizationProfile: (siteId: string, compositionId: string) => string;
67
78
  export declare const getSitesKey: (siteId: string) => string;
68
79
  export declare const outName: (renderId: string, extension: string) => string;
69
80
  export declare const outStillName: (renderId: string, imageFormat: ImageFormat) => string;
70
81
  export declare const customOutName: (renderId: string, bucketName: string, name: OutNameInput) => OutNameOutput;
71
82
  export declare const postRenderDataKey: (renderId: string) => string;
83
+ export declare const inputPropsKey: (hash: string) => string;
72
84
  export declare const RENDERER_PATH_TOKEN = "remotion-bucket";
73
85
  export declare const CONCAT_FOLDER_TOKEN = "remotion-concat";
74
86
  export declare const REMOTION_CONCATED_TOKEN = "remotion-concated-token";
@@ -79,8 +91,20 @@ export declare enum LambdaRoutines {
79
91
  launch = "launch",
80
92
  status = "status",
81
93
  renderer = "renderer",
82
- still = "still"
94
+ still = "still",
95
+ compositions = "compositions"
83
96
  }
97
+ declare type WebhookOption = null | {
98
+ url: string;
99
+ secret: string | null;
100
+ };
101
+ export declare type SerializedInputProps = {
102
+ type: 'bucket-url';
103
+ hash: string;
104
+ } | {
105
+ type: 'payload';
106
+ payload: unknown;
107
+ };
84
108
  export declare type LambdaPayloads = {
85
109
  info: {
86
110
  type: LambdaRoutines.info;
@@ -90,8 +114,8 @@ export declare type LambdaPayloads = {
90
114
  serveUrl: string;
91
115
  composition: string;
92
116
  framesPerLambda: number | null;
93
- inputProps: unknown;
94
- codec: Codec;
117
+ inputProps: SerializedInputProps;
118
+ codec: LambdaCodec;
95
119
  imageFormat: ImageFormat;
96
120
  crf: number | undefined;
97
121
  envVariables: Record<string, string> | undefined;
@@ -106,6 +130,18 @@ export declare type LambdaPayloads = {
106
130
  timeoutInMilliseconds: number;
107
131
  chromiumOptions: ChromiumOptions;
108
132
  scale: number;
133
+ everyNthFrame: number;
134
+ numberOfGifLoops: number | null;
135
+ concurrencyPerLambda: number;
136
+ downloadBehavior: DownloadBehavior;
137
+ muted: boolean;
138
+ version: string;
139
+ overwrite: boolean;
140
+ audioBitrate: string | null;
141
+ videoBitrate: string | null;
142
+ webhook: WebhookOption;
143
+ forceHeight: number | null;
144
+ forceWidth: number | null;
109
145
  };
110
146
  launch: {
111
147
  type: LambdaRoutines.launch;
@@ -113,10 +149,10 @@ export declare type LambdaPayloads = {
113
149
  composition: string;
114
150
  framesPerLambda: number | null;
115
151
  bucketName: string;
116
- inputProps: unknown;
152
+ inputProps: SerializedInputProps;
117
153
  renderId: string;
118
154
  imageFormat: ImageFormat;
119
- codec: Codec;
155
+ codec: LambdaCodec;
120
156
  crf: number | undefined;
121
157
  envVariables: Record<string, string> | undefined;
122
158
  pixelFormat: PixelFormat | undefined;
@@ -130,13 +166,27 @@ export declare type LambdaPayloads = {
130
166
  timeoutInMilliseconds: number;
131
167
  chromiumOptions: ChromiumOptions;
132
168
  scale: number;
169
+ everyNthFrame: number;
170
+ numberOfGifLoops: number | null;
171
+ concurrencyPerLambda: number;
172
+ downloadBehavior: DownloadBehavior;
173
+ muted: boolean;
174
+ overwrite: boolean;
175
+ audioBitrate: string | null;
176
+ videoBitrate: string | null;
177
+ webhook: WebhookOption;
178
+ forceHeight: number | null;
179
+ forceWidth: number | null;
133
180
  };
134
181
  status: {
135
182
  type: LambdaRoutines.status;
136
183
  bucketName: string;
137
184
  renderId: string;
185
+ version: string;
186
+ s3OutputProvider?: CustomCredentials;
138
187
  };
139
188
  renderer: {
189
+ concurrencyPerLambda: number;
140
190
  type: LambdaRoutines.renderer;
141
191
  serveUrl: string;
142
192
  frameRange: [number, number];
@@ -148,10 +198,10 @@ export declare type LambdaPayloads = {
148
198
  width: number;
149
199
  durationInFrames: number;
150
200
  retriesLeft: number;
151
- inputProps: unknown;
201
+ inputProps: SerializedInputProps;
152
202
  renderId: string;
153
203
  imageFormat: ImageFormat;
154
- codec: Codec;
204
+ codec: LambdaCodec;
155
205
  crf: number | undefined;
156
206
  proResProfile: ProResProfile | undefined;
157
207
  pixelFormat: PixelFormat | undefined;
@@ -163,12 +213,16 @@ export declare type LambdaPayloads = {
163
213
  timeoutInMilliseconds: number;
164
214
  chromiumOptions: ChromiumOptions;
165
215
  scale: number;
216
+ everyNthFrame: number;
217
+ muted: boolean;
218
+ audioBitrate: string | null;
219
+ videoBitrate: string | null;
166
220
  };
167
221
  still: {
168
222
  type: LambdaRoutines.still;
169
223
  serveUrl: string;
170
224
  composition: string;
171
- inputProps: unknown;
225
+ inputProps: SerializedInputProps;
172
226
  imageFormat: ImageFormat;
173
227
  envVariables: Record<string, string> | undefined;
174
228
  attempt: number;
@@ -177,18 +231,29 @@ export declare type LambdaPayloads = {
177
231
  frame: number;
178
232
  privacy: Privacy;
179
233
  logLevel: LogLevel;
180
- outName: string | null;
234
+ outName: OutNameInput | null;
181
235
  timeoutInMilliseconds: number;
182
236
  chromiumOptions: ChromiumOptions;
183
237
  scale: number;
238
+ downloadBehavior: DownloadBehavior | null;
239
+ version: string;
240
+ forceHeight: number | null;
241
+ forceWidth: number | null;
242
+ };
243
+ compositions: {
244
+ type: LambdaRoutines.compositions;
245
+ version: string;
246
+ chromiumOptions: ChromiumOptions;
247
+ logLevel: LogLevel;
248
+ inputProps: SerializedInputProps;
249
+ envVariables: Record<string, string> | undefined;
250
+ timeoutInMilliseconds: number;
251
+ serveUrl: string;
184
252
  };
185
253
  };
186
254
  export declare type LambdaPayload = LambdaPayloads[LambdaRoutines];
187
255
  export declare type EncodingProgress = {
188
256
  framesEncoded: number;
189
- totalFrames: number | null;
190
- doneIn: number | null;
191
- timeToInvoke: number | null;
192
257
  };
193
258
  export declare type RenderMetadata = {
194
259
  siteId: string;
@@ -199,26 +264,27 @@ export declare type RenderMetadata = {
199
264
  estimatedRenderLambdaInvokations: number;
200
265
  compositionId: string;
201
266
  codec: Codec | null;
202
- usesOptimizationProfile: boolean;
203
267
  type: 'still' | 'video';
204
268
  imageFormat: ImageFormat;
205
- inputProps: unknown;
269
+ inputProps: SerializedInputProps;
206
270
  framesPerLambda: number;
207
271
  memorySizeInMb: number;
208
- lambdaVersion: LambdaVersions;
272
+ lambdaVersion: string;
209
273
  region: AwsRegion;
210
274
  renderId: string;
211
- outName: OutNameInput | undefined;
275
+ outName: OutNameInputWithoutCredentials | undefined;
276
+ privacy: Privacy;
277
+ frameRange: [number, number];
278
+ everyNthFrame: number;
279
+ };
280
+ export declare type AfterRenderCost = {
281
+ estimatedCost: number;
282
+ estimatedDisplayCost: string;
283
+ currency: string;
284
+ disclaimer: string;
212
285
  };
213
- export declare type LambdaVersions = '2022-06-14' | '2022-06-08' | '2022-06-07' | '2022-06-02' | '2022-05-31' | '2022-05-28' | '2022-05-27' | '2022-05-19' | '2022-05-16' | '2022-05-11' | '2022-05-07' | '2022-05-06' | '2022-05-03' | '2022-04-20' | '2022-04-19' | '2022-04-18' | '2022-04-09' | '2022-04-08' | '2022-04-05' | '2022-04-02' | '2022-03-29' | '2022-03-17' | '2022-03-02' | '2022-03-01' | '2022-02-27' | '2022-02-14' | '2022-02-12' | '2022-02-09' | '2022-02-08' | '2022-02-07' | '2022-02-06' | '2022-02-05' | '2022-02-04' | '2022-02-03' | '2022-01-23' | '2022-01-19' | '2022-01-11' | '2022-01-10' | '2022-01-09' | '2022-01-06' | '2022-01-05' | '2021-12-22' | '2021-12-17' | '2021-12-16' | '2021-12-15' | '2021-12-14' | '2021-12-13' | '2021-12-11' | '2021-12-10' | '2021-12-04' | '2021-11-29' | '2021-11-27' | '2021-11-24' | '2021-11-22' | '2021-11-19' | '2021-11-18' | '2021-11-15' | '2021-11-12' | '2021-11-10' | '2021-11-01' | '2021-10-29' | '2021-10-27' | '2021-10-21' | '2021-10-19' | '2021-10-07' | '2021-10-03' | '2021-10-01' | '2021-09-15' | '2021-09-06' | '2021-08-06' | '2021-07-14' | '2021-07-05' | '2021-07-02' | '2021-06-23' | 'n/a';
214
- export declare const CURRENT_VERSION: LambdaVersions;
215
286
  export declare type PostRenderData = {
216
- cost: {
217
- estimatedCost: number;
218
- estimatedDisplayCost: string;
219
- currency: string;
220
- disclaimer: string;
221
- };
287
+ cost: AfterRenderCost;
222
288
  outputFile: string;
223
289
  outputSize: number;
224
290
  renderSize: number;
@@ -231,8 +297,8 @@ export declare type PostRenderData = {
231
297
  timeToEncode: number;
232
298
  timeToCleanUp: number;
233
299
  timeToRenderChunks: number;
234
- timeToInvokeLambdas: number;
235
300
  retriesInfo: ChunkRetry[];
301
+ mostExpensiveFrameRanges: ExpensiveChunk[] | undefined;
236
302
  };
237
303
  export declare type CostsInfo = {
238
304
  accruedSoFar: number;
@@ -264,10 +330,14 @@ export declare type RenderProgress = {
264
330
  lambdasInvoked: number;
265
331
  cleanup: CleanupInfo | null;
266
332
  timeToFinishChunks: number | null;
267
- timeToInvokeLambdas: number | null;
333
+ timeToEncode: number | null;
268
334
  overallProgress: number;
269
335
  retriesInfo: ChunkRetry[];
336
+ mostExpensiveFrameRanges: ExpensiveChunk[] | null;
337
+ framesRendered: number;
338
+ outputSizeInBytes: number | null;
270
339
  };
271
- export declare type Privacy = 'public' | 'private';
340
+ export declare type Privacy = 'public' | 'private' | 'no-acl';
272
341
  export declare const LAMBDA_CONCURRENCY_LIMIT_QUOTA = "L-B99A9384";
273
342
  export declare const LAMBDA_BURST_LIMIT_QUOTA = "L-548AE339";
343
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LAMBDA_BURST_LIMIT_QUOTA = exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = exports.CURRENT_VERSION = exports.LambdaRoutines = exports.REMOTION_FILELIST_TOKEN = exports.REMOTION_CONCATED_TOKEN = exports.CONCAT_FOLDER_TOKEN = exports.RENDERER_PATH_TOKEN = exports.postRenderDataKey = exports.customOutName = exports.outStillName = exports.outName = exports.getSitesKey = exports.optimizationProfile = exports.getErrorFileName = exports.getErrorKeyPrefix = exports.chunkKeyForIndex = exports.chunkKey = exports.lambdaTimingsKey = exports.lambdaLogsPrefix = exports.lambdaTimingsPrefixForChunk = exports.lambdaTimingsPrefix = exports.lambdaInitializedKey = exports.lambdaInitializedPrefix = exports.renderMetadataKey = exports.encodingProgressKey = exports.rendersPrefix = exports.LOG_GROUP_PREFIX = exports.RENDER_FN_PREFIX = exports.REMOTION_BUCKET_PREFIX = exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = exports.DEFAULT_OUTPUT_PRIVACY = exports.MAX_EPHEMERAL_STORAGE_IN_MB = exports.MIN_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = exports.MAX_FUNCTIONS_PER_RENDER = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_REGION = exports.COMMAND_NOT_FOUND = exports.BINARY_NAME = exports.DEFAULT_FRAMES_PER_LAMBDA = exports.MINIMUM_FRAMES_PER_LAMBDA = exports.MAX_TIMEOUT = exports.MIN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.DEFAULT_ARCHITECTURE = exports.DEFAULT_MEMORY_SIZE = exports.MAX_MEMORY = exports.MIN_MEMORY = void 0;
3
+ exports.LAMBDA_BURST_LIMIT_QUOTA = exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = exports.LambdaRoutines = exports.REMOTION_FILELIST_TOKEN = exports.REMOTION_CONCATED_TOKEN = exports.CONCAT_FOLDER_TOKEN = exports.RENDERER_PATH_TOKEN = exports.inputPropsKey = exports.postRenderDataKey = exports.customOutName = exports.outStillName = exports.outName = exports.getSitesKey = exports.getErrorFileName = exports.getErrorKeyPrefix = exports.chunkKeyForIndex = exports.chunkKey = exports.lambdaTimingsKey = exports.lambdaLogsPrefix = exports.lambdaTimingsPrefixForChunk = exports.lambdaTimingsPrefix = exports.lambdaChunkInitializedKey = exports.lambdaChunkInitializedPrefix = exports.initalizedMetadataKey = exports.renderMetadataKey = exports.encodingProgressKey = exports.rendersPrefix = exports.LOG_GROUP_PREFIX = exports.RENDER_FN_PREFIX = exports.REMOTION_BUCKET_PREFIX = exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = exports.DEFAULT_OUTPUT_PRIVACY = exports.MAX_EPHEMERAL_STORAGE_IN_MB = exports.MIN_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = exports.MAX_FUNCTIONS_PER_RENDER = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_REGION = exports.COMMAND_NOT_FOUND = exports.BINARY_NAME = exports.DEFAULT_FRAMES_PER_LAMBDA = exports.MINIMUM_FRAMES_PER_LAMBDA = exports.MAX_TIMEOUT = exports.MIN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.DEFAULT_ARCHITECTURE = exports.DEFAULT_MEMORY_SIZE = exports.MAX_MEMORY = exports.MIN_MEMORY = void 0;
4
4
  exports.MIN_MEMORY = 512;
5
5
  exports.MAX_MEMORY = 10240;
6
6
  exports.DEFAULT_MEMORY_SIZE = 2048;
@@ -15,7 +15,7 @@ exports.COMMAND_NOT_FOUND = 'Command not found';
15
15
  exports.DEFAULT_REGION = 'us-east-1';
16
16
  exports.DEFAULT_MAX_RETRIES = 1;
17
17
  exports.MAX_FUNCTIONS_PER_RENDER = 200;
18
- exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = 512;
18
+ exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
19
19
  exports.MIN_EPHEMERAL_STORAGE_IN_MB = 512;
20
20
  exports.MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
21
21
  exports.DEFAULT_OUTPUT_PRIVACY = 'public';
@@ -29,10 +29,12 @@ const encodingProgressKey = (renderId) => `${(0, exports.rendersPrefix)(renderId
29
29
  exports.encodingProgressKey = encodingProgressKey;
30
30
  const renderMetadataKey = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/pre-render-metadata.json`;
31
31
  exports.renderMetadataKey = renderMetadataKey;
32
- const lambdaInitializedPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-initialized`;
33
- exports.lambdaInitializedPrefix = lambdaInitializedPrefix;
34
- const lambdaInitializedKey = ({ renderId, chunk, attempt, }) => `${(0, exports.lambdaInitializedPrefix)(renderId)}-chunk:${chunk}-attempt:${attempt}.txt`;
35
- exports.lambdaInitializedKey = lambdaInitializedKey;
32
+ const initalizedMetadataKey = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/initialized.txt`;
33
+ exports.initalizedMetadataKey = initalizedMetadataKey;
34
+ const lambdaChunkInitializedPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-initialized`;
35
+ exports.lambdaChunkInitializedPrefix = lambdaChunkInitializedPrefix;
36
+ const lambdaChunkInitializedKey = ({ renderId, chunk, attempt, }) => `${(0, exports.lambdaChunkInitializedPrefix)(renderId)}-chunk:${chunk}-attempt:${attempt}.txt`;
37
+ exports.lambdaChunkInitializedKey = lambdaChunkInitializedKey;
36
38
  const lambdaTimingsPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-timings/chunk:`;
37
39
  exports.lambdaTimingsPrefix = lambdaTimingsPrefix;
38
40
  const lambdaTimingsPrefixForChunk = (renderId, chunk) => (0, exports.lambdaTimingsPrefix)(renderId) + String(chunk).padStart(8, '0');
@@ -49,8 +51,6 @@ const getErrorKeyPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}
49
51
  exports.getErrorKeyPrefix = getErrorKeyPrefix;
50
52
  const getErrorFileName = ({ renderId, chunk, attempt, }) => (0, exports.getErrorKeyPrefix)(renderId) + ':chunk-' + chunk + ':attempt-' + attempt;
51
53
  exports.getErrorFileName = getErrorFileName;
52
- const optimizationProfile = (siteId, compositionId) => `optimization-profiles/${siteId}/${compositionId}/optimization-profile`;
53
- exports.optimizationProfile = optimizationProfile;
54
54
  const getSitesKey = (siteId) => `sites/${siteId}`;
55
55
  exports.getSitesKey = getSitesKey;
56
56
  const outName = (renderId, extension) => `${(0, exports.rendersPrefix)(renderId)}/out.${extension}`;
@@ -58,19 +58,29 @@ exports.outName = outName;
58
58
  const outStillName = (renderId, imageFormat) => `${(0, exports.rendersPrefix)(renderId)}/out.${imageFormat}`;
59
59
  exports.outStillName = outStillName;
60
60
  const customOutName = (renderId, bucketName, name) => {
61
+ var _a;
61
62
  if (typeof name === 'string') {
62
63
  return {
63
64
  renderBucketName: bucketName,
64
65
  key: `${(0, exports.rendersPrefix)(renderId)}/${name}`,
66
+ customCredentials: null,
65
67
  };
66
68
  }
67
- return { key: name.key, renderBucketName: name.bucketName };
69
+ return {
70
+ key: name.key,
71
+ renderBucketName: name.bucketName,
72
+ customCredentials: (_a = name.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
73
+ };
68
74
  };
69
75
  exports.customOutName = customOutName;
70
76
  const postRenderDataKey = (renderId) => {
71
77
  return `${(0, exports.rendersPrefix)(renderId)}/post-render-metadata.json`;
72
78
  };
73
79
  exports.postRenderDataKey = postRenderDataKey;
80
+ const inputPropsKey = (hash) => {
81
+ return `input-props/${hash}.json`;
82
+ };
83
+ exports.inputPropsKey = inputPropsKey;
74
84
  exports.RENDERER_PATH_TOKEN = 'remotion-bucket';
75
85
  exports.CONCAT_FOLDER_TOKEN = 'remotion-concat';
76
86
  exports.REMOTION_CONCATED_TOKEN = 'remotion-concated-token';
@@ -83,7 +93,7 @@ var LambdaRoutines;
83
93
  LambdaRoutines["status"] = "status";
84
94
  LambdaRoutines["renderer"] = "renderer";
85
95
  LambdaRoutines["still"] = "still";
96
+ LambdaRoutines["compositions"] = "compositions";
86
97
  })(LambdaRoutines = exports.LambdaRoutines || (exports.LambdaRoutines = {}));
87
- exports.CURRENT_VERSION = '2022-06-14';
88
98
  exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = 'L-B99A9384';
89
99
  exports.LAMBDA_BURST_LIMIT_QUOTA = 'L-548AE339';
@@ -0,0 +1,7 @@
1
+ export declare type DownloadBehavior = {
2
+ type: 'play-in-browser';
3
+ } | {
4
+ type: 'download';
5
+ fileName: string | null;
6
+ };
7
+ export declare const getContentDispositionHeader: (behavior: DownloadBehavior | null) => string | undefined;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // By setting the Content-Disposition header in an S3 object,
3
+ // you can control if the user downloads the item if you
4
+ // visit the link
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getContentDispositionHeader = void 0;
7
+ const getContentDispositionHeader = (behavior) => {
8
+ if (behavior === null) {
9
+ return undefined;
10
+ }
11
+ if (behavior.type === 'play-in-browser') {
12
+ return undefined;
13
+ }
14
+ if (behavior.fileName === null) {
15
+ return `attachment`;
16
+ }
17
+ return `attachment; filename="${behavior.fileName}"`;
18
+ };
19
+ exports.getContentDispositionHeader = getContentDispositionHeader;
@@ -1,2 +1,6 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- export declare const convertToServeUrl: (urlOrId: string, region: AwsRegion) => Promise<string>;
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
+ export declare const convertToServeUrl: ({ urlOrId, region, bucketName, }: {
3
+ urlOrId: string;
4
+ region: AwsRegion;
5
+ bucketName: string;
6
+ }) => string;
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertToServeUrl = void 0;
4
- const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
5
4
  const docs_url_1 = require("./docs-url");
6
- const convertToServeUrl = async (urlOrId, region) => {
5
+ const convertToServeUrl = ({ urlOrId, region, bucketName, }) => {
7
6
  if (urlOrId.startsWith('src/')) {
8
7
  throw new Error(`Remotion Lambda can only render based on a URL in the cloud. It seems like you passed a local file: ${urlOrId}. Read the setup guide for Remotion Lambda ${docs_url_1.DOCS_URL}/docs/lambda/setup`);
9
8
  }
10
9
  if (urlOrId.startsWith('http://') || urlOrId.startsWith('https://')) {
11
10
  return urlOrId;
12
11
  }
13
- const { bucketName } = await (0, get_or_create_bucket_1.getOrCreateBucket)({
14
- region,
15
- });
16
12
  return `https://${bucketName}.s3.${region}.amazonaws.com/sites/${urlOrId}/index.html`;
17
13
  };
18
14
  exports.convertToServeUrl = convertToServeUrl;
@@ -0,0 +1,8 @@
1
+ import type { AwsRegion } from '../client';
2
+ import type { SerializedInputProps } from './constants';
3
+ export declare const deserializeInputProps: ({ serialized, region, bucketName, expectedBucketOwner, }: {
4
+ serialized: SerializedInputProps;
5
+ region: AwsRegion;
6
+ bucketName: string;
7
+ expectedBucketOwner: string;
8
+ }) => Promise<object>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializeInputProps = void 0;
4
+ const io_1 = require("../functions/helpers/io");
5
+ const constants_1 = require("./constants");
6
+ const stream_to_string_1 = require("./stream-to-string");
7
+ const deserializeInputProps = async ({ serialized, region, bucketName, expectedBucketOwner, }) => {
8
+ if (serialized.type === 'payload') {
9
+ return JSON.parse(serialized.payload);
10
+ }
11
+ try {
12
+ const response = await (0, io_1.lambdaReadFile)({
13
+ bucketName,
14
+ expectedBucketOwner,
15
+ key: (0, constants_1.inputPropsKey)(serialized.hash),
16
+ region,
17
+ });
18
+ const body = await (0, stream_to_string_1.streamToString)(response);
19
+ const payload = JSON.parse(body);
20
+ return payload;
21
+ }
22
+ catch (err) {
23
+ throw new Error(`Failed to parse input props that were serialized: ${err.stack}`);
24
+ }
25
+ };
26
+ exports.deserializeInputProps = deserializeInputProps;
File without changes
File without changes
@@ -1 +1,2 @@
1
- export declare const FUNCTION_ZIP: string;
1
+ export declare const FUNCTION_ZIP_ARM64: string;
2
+ export declare const FUNCTION_ZIP_X86_64: string;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FUNCTION_ZIP = void 0;
6
+ exports.FUNCTION_ZIP_X86_64 = exports.FUNCTION_ZIP_ARM64 = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
- exports.FUNCTION_ZIP = path_1.default.join(path_1.default.resolve(__dirname, '..', '..'), `remotionlambda.zip`);
8
+ exports.FUNCTION_ZIP_ARM64 = path_1.default.join(path_1.default.resolve(__dirname, '..', '..'), `remotionlambda-arm64.zip`);
9
+ exports.FUNCTION_ZIP_X86_64 = path_1.default.join(path_1.default.resolve(__dirname, '..', '..'), `remotionlambda-x64.zip`);
@@ -1,4 +1,4 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
2
2
  export declare const getAccountId: (options: {
3
3
  region: AwsRegion;
4
4
  }) => Promise<string>;
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAccountId = 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("./aws-clients");
6
6
  const validate_aws_region_1 = require("./validate-aws-region");
7
7
  const getAccountId = async (options) => {
8
- var _a, _b;
9
8
  (0, validate_aws_region_1.validateAwsRegion)(options.region);
10
- const user = await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.GetUserCommand({}));
11
- const accountId = (_b = (_a = user.User) === null || _a === void 0 ? void 0 : _a.Arn) === null || _b === void 0 ? void 0 : _b.match(/aws:iam::([0-9]+)/);
12
- if (!accountId) {
9
+ const callerIdentity = await (0, aws_clients_1.getStsClient)(options.region).send(new client_sts_1.GetCallerIdentityCommand({}));
10
+ if (!callerIdentity.Account) {
13
11
  throw new Error('Cannot get account ID');
14
12
  }
15
- return accountId[1];
13
+ return callerIdentity.Account;
16
14
  };
17
15
  exports.getAccountId = getAccountId;
@@ -0,0 +1,13 @@
1
+ import type { AwsRegion } from '../client';
2
+ import type { LambdaRoutines } from './constants';
3
+ export declare const getCloudwatchStreamUrl: ({ region, functionName, method, renderId, }: {
4
+ region: AwsRegion;
5
+ functionName: string;
6
+ method: LambdaRoutines;
7
+ renderId: string;
8
+ }) => string;
9
+ export declare const getS3RenderUrl: ({ renderId, region, bucketName, }: {
10
+ renderId: string;
11
+ region: AwsRegion;
12
+ bucketName: string;
13
+ }) => string;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCloudwatchStreamUrl = void 0;
3
+ exports.getS3RenderUrl = exports.getCloudwatchStreamUrl = void 0;
4
4
  const getCloudwatchStreamUrl = ({ region, functionName, method, renderId, }) => {
5
5
  return `https://${region}.console.aws.amazon.com/cloudwatch/home?region=${region}#logsV2:log-groups/log-group/$252Faws$252Flambda$252F${functionName}/log-events$3FfilterPattern$3D$2522method$253D${method}$252CrenderId$253D${renderId}$2522`;
6
6
  };
7
7
  exports.getCloudwatchStreamUrl = getCloudwatchStreamUrl;
8
+ const getS3RenderUrl = ({ renderId, region, bucketName, }) => {
9
+ return `https://s3.console.aws.amazon.com/s3/buckets/${bucketName}?region=${region}&prefix=renders/${renderId}/`;
10
+ };
11
+ exports.getS3RenderUrl = getS3RenderUrl;
@@ -0,0 +1 @@
1
+ export declare const getEtagOfFile: (filePath: string) => Promise<string>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getEtagOfFile = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ const chunk = 1024 * 1024 * 5; // 5MB
10
+ const md5 = (data) => crypto_1.default.createHash('md5').update(data).digest('hex');
11
+ const getEtagOfFile = async (filePath) => {
12
+ const stream = await fs_1.default.promises.readFile(filePath);
13
+ if (stream.length <= chunk) {
14
+ return `"${md5(stream)}"`;
15
+ }
16
+ const md5Chunks = [];
17
+ const chunksNumber = Math.ceil(stream.length / chunk);
18
+ for (let i = 0; i < chunksNumber; i++) {
19
+ const chunkStream = stream.slice(i * chunk, (i + 1) * chunk);
20
+ md5Chunks.push(md5(chunkStream));
21
+ }
22
+ return `"${md5(Buffer.from(md5Chunks.join(''), 'hex'))}-${chunksNumber}"`;
23
+ };
24
+ exports.getEtagOfFile = getEtagOfFile;
@@ -1,6 +1,5 @@
1
- import { AwsRegion } from '../pricing/aws-regions';
2
- import { LambdaVersions } from './constants';
1
+ import type { AwsRegion } from '../pricing/aws-regions';
3
2
  export declare const getFunctionVersion: ({ functionName, region, }: {
4
3
  functionName: string;
5
4
  region: AwsRegion;
6
- }) => Promise<LambdaVersions>;
5
+ }) => Promise<string>;
File without changes
@@ -0,0 +1,8 @@
1
+ import type { ParsedTiming } from './parse-lambda-timings-key';
2
+ export declare const OVERHEAD_TIME_PER_LAMBDA = 100;
3
+ export declare type ExpensiveChunk = {
4
+ chunk: number;
5
+ frameRange: [number, number];
6
+ timeInMilliseconds: number;
7
+ };
8
+ export declare const getMostExpensiveChunks: (parsedTimings: ParsedTiming[], framesPerLambda: number) => ExpensiveChunk[];