@remotion/lambda 4.0.0-4x.2 → 4.0.0-audio-mixing.3

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 +28 -6
  8. package/dist/api/bucket-exists.d.ts +0 -0
  9. package/dist/api/bucket-exists.js +1 -1
  10. package/dist/api/clean-items.d.ts +0 -0
  11. package/dist/api/clean-items.js +1 -1
  12. package/dist/api/create-bucket.d.ts +0 -0
  13. package/dist/api/create-bucket.js +1 -1
  14. package/dist/api/create-function.d.ts +0 -0
  15. package/dist/api/create-function.js +24 -2
  16. package/dist/api/delete-function.d.ts +1 -1
  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 +1 -1
  21. package/dist/api/delete-site.js +1 -6
  22. package/dist/api/deploy-function.d.ts +1 -1
  23. package/dist/api/deploy-function.js +8 -4
  24. package/dist/api/deploy-site.d.ts +11 -2
  25. package/dist/api/deploy-site.js +50 -22
  26. package/dist/api/download-media.d.ts +13 -0
  27. package/dist/api/download-media.js +15 -3
  28. package/dist/api/estimate-price.d.ts +1 -1
  29. package/dist/api/estimate-price.js +1 -1
  30. package/dist/api/get-aws-client.d.ts +7 -3
  31. package/dist/api/get-aws-client.js +10 -3
  32. package/dist/api/get-buckets.d.ts +0 -0
  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 +2 -3
  37. package/dist/api/get-function-info.js +1 -1
  38. package/dist/api/get-functions.d.ts +1 -3
  39. package/dist/api/get-functions.js +3 -4
  40. package/dist/api/get-or-create-bucket.d.ts +1 -1
  41. package/dist/api/get-or-create-bucket.js +4 -9
  42. package/dist/api/get-regions.d.ts +6 -2
  43. package/dist/api/get-regions.js +6 -3
  44. package/dist/api/get-render-progress.d.ts +5 -2
  45. package/dist/api/get-render-progress.js +6 -2
  46. package/dist/api/get-sites.d.ts +2 -2
  47. package/dist/api/get-sites.js +1 -2
  48. package/dist/api/iam-validation/role-permissions.d.ts +0 -0
  49. package/dist/api/iam-validation/role-permissions.js +0 -0
  50. package/dist/api/iam-validation/simulate-rule.d.ts +0 -0
  51. package/dist/api/iam-validation/simulate-rule.js +0 -22
  52. package/dist/api/iam-validation/simulate.d.ts +1 -1
  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 +4 -5
  59. package/dist/api/mock-functions.js +0 -0
  60. package/dist/api/presign-url.d.ts +4 -4
  61. package/dist/api/presign-url.js +9 -4
  62. package/dist/api/render-media-on-lambda.d.ts +37 -16
  63. package/dist/api/render-media-on-lambda.js +88 -38
  64. package/dist/api/render-still-on-lambda.d.ts +11 -6
  65. package/dist/api/render-still-on-lambda.js +58 -31
  66. package/dist/api/upload-dir.d.ts +4 -3
  67. package/dist/api/upload-dir.js +57 -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 +9 -2
  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 +4 -4
  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 +9 -5
  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 +72 -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 +0 -0
  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 +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 +8 -2
  139. package/dist/client.js +9 -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 +6 -7
  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 +0 -0
  151. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  152. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +0 -0
  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 -6
  159. package/dist/functions/helpers/concat-videos.js +35 -32
  160. package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
  161. package/dist/functions/helpers/create-post-render-data.js +1 -8
  162. package/dist/functions/helpers/delete-chunks.d.ts +0 -0
  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 +3 -1
  167. package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
  168. package/dist/functions/helpers/format-costs-info.d.ts +0 -0
  169. package/dist/functions/helpers/format-costs-info.js +0 -0
  170. package/dist/functions/helpers/get-browser-instance.d.ts +0 -0
  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 +0 -0
  175. package/dist/functions/helpers/get-cleanup-progress.js +0 -0
  176. package/dist/functions/helpers/get-current-architecture.d.ts +0 -0
  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 -8
  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 +1 -1
  188. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
  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 +4 -3
  193. package/dist/functions/helpers/get-lambdas-invoked-stats.js +2 -10
  194. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +2 -1
  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 +0 -0
  199. package/dist/functions/helpers/get-post-render-data.js +0 -0
  200. package/dist/functions/helpers/get-progress.d.ts +4 -2
  201. package/dist/functions/helpers/get-progress.js +58 -42
  202. package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
  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 +0 -0
  207. package/dist/functions/helpers/get-retry-stats.js +1 -1
  208. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
  209. package/dist/functions/helpers/get-time-to-finish.js +0 -0
  210. package/dist/functions/helpers/inspect-errors.d.ts +0 -0
  211. package/dist/functions/helpers/inspect-errors.js +0 -0
  212. package/dist/functions/helpers/io.d.ts +19 -1
  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 +1 -1
  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 +5 -2
  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 +6 -3
  231. package/dist/functions/helpers/validate-composition.js +9 -2
  232. package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
  233. package/dist/functions/helpers/write-lambda-error.js +2 -0
  234. package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
  235. package/dist/functions/helpers/write-post-render-data.js +2 -0
  236. package/dist/functions/index.d.ts +0 -0
  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 +1 -0
  241. package/dist/functions/launch.js +359 -124
  242. package/dist/functions/progress.d.ts +1 -1
  243. package/dist/functions/progress.js +10 -1
  244. package/dist/functions/renderer.d.ts +0 -0
  245. package/dist/functions/renderer.js +145 -78
  246. package/dist/functions/start.d.ts +5 -1
  247. package/dist/functions/start.js +44 -6
  248. package/dist/functions/still.d.ts +0 -0
  249. package/dist/functions/still.js +72 -21
  250. package/dist/index.d.ts +27 -6
  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 +0 -0
  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 +16 -2
  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 +0 -0
  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 +112 -33
  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 +5 -1
  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 +0 -0
  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 +1 -2
  293. package/dist/shared/get-function-version.js +0 -0
  294. package/dist/shared/get-most-expensive-chunks.d.ts +1 -1
  295. package/dist/shared/get-most-expensive-chunks.js +3 -2
  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 +87 -1
  299. package/dist/shared/hosted-layers.js +432 -123
  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 +0 -0
  307. package/dist/shared/make-s3-key.js +0 -0
  308. package/dist/shared/make-s3-url.d.ts +0 -0
  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 +0 -0
  319. package/dist/shared/random-hash.js +0 -0
  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 +2 -0
  323. package/dist/shared/return-values.js +0 -0
  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 +0 -0
  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 +0 -0
  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 +0 -0
  339. package/dist/shared/validate-custom-role-arn.js +0 -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 +0 -0
  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 +52 -26
  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 -3
  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 -9
  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 -7
  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
@@ -2,25 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEncodingMetadata = void 0;
4
4
  const defaults_1 = require("../../defaults");
5
- const stream_to_string_1 = require("../../shared/stream-to-string");
6
- const io_1 = require("./io");
7
- const getEncodingMetadata = async ({ exists, bucketName, renderId, region, expectedBucketOwner, }) => {
5
+ const chunk_progress_1 = require("../../shared/chunk-progress");
6
+ const getEncodingMetadata = ({ exists, frameCount, }) => {
8
7
  if (!exists) {
9
8
  return null;
10
9
  }
11
- try {
12
- const Body = await (0, io_1.lambdaReadFile)({
13
- bucketName,
14
- key: (0, defaults_1.encodingProgressKey)(renderId),
15
- region,
16
- expectedBucketOwner,
17
- });
18
- const encodingProgress = JSON.parse(await (0, stream_to_string_1.streamToString)(Body));
19
- return encodingProgress;
20
- }
21
- catch (err) {
22
- // The file may not yet have been fully written or already have been cleaned up again
23
- return null;
24
- }
10
+ const framesEncoded = (0, chunk_progress_1.getProgressOfChunk)(exists.ETag);
11
+ // We only report every 100 frames encoded so that we are able to report up to 2000 * 100 ETags => 200000 frames
12
+ return {
13
+ framesEncoded: Math.min(frameCount, framesEncoded * defaults_1.ENCODING_PROGRESS_STEP_SIZE),
14
+ };
25
15
  };
26
16
  exports.getEncodingMetadata = getEncodingMetadata;
File without changes
File without changes
File without changes
@@ -12,7 +12,7 @@ const getFilesToDelete = ({ chunkCount, renderId, }) => {
12
12
  .map((_x, i) => (0, constants_1.lambdaTimingsPrefixForChunk)(renderId, i));
13
13
  return [
14
14
  {
15
- name: (0, constants_1.lambdaInitializedPrefix)(renderId),
15
+ name: (0, constants_1.lambdaChunkInitializedPrefix)(renderId),
16
16
  type: 'prefix',
17
17
  },
18
18
  ...chunks.map((i) => {
@@ -1,8 +1,6 @@
1
1
  import type { EncodingProgress, RenderMetadata } from '../../shared/constants';
2
- import type { LambdaInvokeStats } from './get-lambdas-invoked-stats';
3
- export declare const getFinalEncodingStatus: ({ encodingStatus: encodingProgress, renderMetadata, outputFileExists, lambdaInvokeStatus, }: {
4
- encodingStatus: EncodingProgress | null;
2
+ export declare const getFinalEncodingStatus: ({ encodingProgress, renderMetadata, outputFileExists, }: {
3
+ encodingProgress: EncodingProgress | null;
5
4
  renderMetadata: RenderMetadata | null;
6
5
  outputFileExists: boolean;
7
- lambdaInvokeStatus: LambdaInvokeStats;
8
6
  }) => EncodingProgress | null;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFinalEncodingStatus = void 0;
4
- const getFinalEncodingStatus = ({ encodingStatus: encodingProgress, renderMetadata, outputFileExists, lambdaInvokeStatus, }) => {
4
+ const getFinalEncodingStatus = ({ encodingProgress, renderMetadata, outputFileExists, }) => {
5
5
  if (!renderMetadata) {
6
6
  return null;
7
7
  }
@@ -11,9 +11,6 @@ const getFinalEncodingStatus = ({ encodingStatus: encodingProgress, renderMetada
11
11
  if (outputFileExists) {
12
12
  return {
13
13
  framesEncoded: renderMetadata.videoConfig.durationInFrames,
14
- totalFrames: renderMetadata.videoConfig.durationInFrames,
15
- doneIn: null,
16
- timeToInvoke: lambdaInvokeStatus.timeToInvokeLambdas,
17
14
  };
18
15
  }
19
16
  return null;
File without changes
File without changes
@@ -1,7 +1,8 @@
1
1
  import type { _Object } from '@aws-sdk/client-s3';
2
2
  export declare type LambdaInvokeStats = {
3
- timeToInvokeLambdas: number | null;
4
- allLambdasInvoked: boolean;
5
3
  lambdasInvoked: number;
6
4
  };
7
- export declare const getLambdasInvokedStats: (contents: _Object[], renderId: string, estimatedRenderLambdaInvokations: number | null, startDate: number | null) => LambdaInvokeStats;
5
+ export declare const getLambdasInvokedStats: ({ contents, renderId, }: {
6
+ contents: _Object[];
7
+ renderId: string;
8
+ }) => LambdaInvokeStats;
@@ -3,19 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLambdasInvokedStats = void 0;
4
4
  const constants_1 = require("../../shared/constants");
5
5
  const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
6
- const min_max_1 = require("./min-max");
7
- const getLambdasInvokedStats = (contents, renderId, estimatedRenderLambdaInvokations, startDate) => {
6
+ const getLambdasInvokedStats = ({ contents, renderId, }) => {
8
7
  const lambdasInvoked = contents
9
- .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaInitializedPrefix)(renderId)); })
8
+ .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
10
9
  .filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt === 1);
11
- const allLambdasInvoked = lambdasInvoked.length === estimatedRenderLambdaInvokations;
12
- const timeToInvokeLambdas = allLambdasInvoked && startDate
13
- ? (0, min_max_1.max)(lambdasInvoked.map((l) => { var _a; return (_a = l.LastModified) === null || _a === void 0 ? void 0 : _a.getTime(); })) -
14
- startDate
15
- : null;
16
10
  return {
17
- timeToInvokeLambdas,
18
- allLambdasInvoked,
19
11
  lambdasInvoked: lambdasInvoked.length,
20
12
  };
21
13
  };
@@ -1,2 +1,3 @@
1
1
  import type { RenderMetadata } from '../../defaults';
2
- export declare const getOutputUrlFromMetadata: (renderMetadata: RenderMetadata, bucketName: string) => string;
2
+ import type { CustomCredentials } from '../../shared/aws-clients';
3
+ export declare const getOutputUrlFromMetadata: (renderMetadata: RenderMetadata, bucketName: string, customCredentials: CustomCredentials | null) => string;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOutputUrlFromMetadata = void 0;
4
4
  const expected_out_name_1 = require("./expected-out-name");
5
5
  const get_current_region_1 = require("./get-current-region");
6
- const getOutputUrlFromMetadata = (renderMetadata, bucketName) => {
7
- const outname = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName);
6
+ const getOutputUrlFromMetadata = (renderMetadata, bucketName, customCredentials) => {
7
+ const outname = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials);
8
8
  return `https://s3.${(0, get_current_region_1.getCurrentRegionInFunction)()}.amazonaws.com/${outname.renderBucketName}/${outname.key}`;
9
9
  };
10
10
  exports.getOutputUrlFromMetadata = getOutputUrlFromMetadata;
@@ -1,6 +1,7 @@
1
- export declare const getOverallProgress: ({ cleanup, encoding, rendering, invoking, }: {
1
+ export declare const getOverallProgress: ({ cleanup, encoding, rendering, invoking, frames, }: {
2
2
  cleanup: number;
3
3
  encoding: number;
4
4
  rendering: number;
5
5
  invoking: number;
6
+ frames: number;
6
7
  }) => number;
@@ -3,14 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOverallProgress = void 0;
4
4
  const weights = {
5
5
  cleanup: 0.1,
6
- encoding: 0.3,
7
- rendering: 0.3,
8
- invoking: 0.3,
6
+ encoding: 0.225,
7
+ rendering: 0.225,
8
+ frames: 0.225,
9
+ invoking: 0.225,
9
10
  };
10
- const getOverallProgress = ({ cleanup, encoding, rendering, invoking, }) => {
11
+ const getOverallProgress = ({ cleanup, encoding, rendering, invoking, frames, }) => {
11
12
  return (cleanup * weights.cleanup +
12
13
  encoding * weights.encoding +
13
14
  rendering * weights.rendering +
14
- invoking * weights.invoking);
15
+ invoking * weights.invoking +
16
+ frames * weights.frames);
15
17
  };
16
18
  exports.getOverallProgress = getOverallProgress;
File without changes
File without changes
@@ -1,10 +1,12 @@
1
1
  import type { AwsRegion } from '../../pricing/aws-regions';
2
+ import type { CustomCredentials } from '../../shared/aws-clients';
2
3
  import type { RenderProgress } from '../../shared/constants';
3
- export declare const getProgress: ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMiliseconds, }: {
4
+ export declare const getProgress: ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, }: {
4
5
  bucketName: string;
5
6
  renderId: string;
6
7
  expectedBucketOwner: string;
7
8
  region: AwsRegion;
8
9
  memorySizeInMb: number;
9
- timeoutInMiliseconds: number;
10
+ timeoutInMilliseconds: number;
11
+ customCredentials: CustomCredentials | null;
10
12
  }) => Promise<RenderProgress>;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProgress = void 0;
4
+ const renderer_1 = require("@remotion/renderer");
4
5
  const remotion_1 = require("remotion");
6
+ const chunk_progress_1 = require("../../shared/chunk-progress");
5
7
  const constants_1 = require("../../shared/constants");
6
- const docs_url_1 = require("../../shared/docs-url");
7
8
  const calculate_chunk_times_1 = require("./calculate-chunk-times");
8
9
  const calculate_price_from_bucket_1 = require("./calculate-price-from-bucket");
10
+ const check_if_render_exists_1 = require("./check-if-render-exists");
9
11
  const expected_out_name_1 = require("./expected-out-name");
10
12
  const find_output_file_in_bucket_1 = require("./find-output-file-in-bucket");
11
13
  const format_costs_info_1 = require("./format-costs-info");
@@ -18,12 +20,14 @@ const get_lambdas_invoked_stats_1 = require("./get-lambdas-invoked-stats");
18
20
  const get_overall_progress_1 = require("./get-overall-progress");
19
21
  const get_post_render_data_1 = require("./get-post-render-data");
20
22
  const get_render_metadata_1 = require("./get-render-metadata");
23
+ const get_rendered_frames_progress_1 = require("./get-rendered-frames-progress");
21
24
  const get_retry_stats_1 = require("./get-retry-stats");
22
25
  const get_time_to_finish_1 = require("./get-time-to-finish");
23
26
  const inspect_errors_1 = require("./inspect-errors");
24
27
  const io_1 = require("./io");
25
- const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMiliseconds, }) => {
26
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
28
+ const make_timeout_error_1 = require("./make-timeout-error");
29
+ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, }) => {
30
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
27
31
  const postRenderData = await (0, get_post_render_data_1.getPostRenderData)({
28
32
  bucketName,
29
33
  region,
@@ -31,8 +35,10 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
31
35
  expectedBucketOwner,
32
36
  });
33
37
  if (postRenderData) {
34
- const outData = (0, expected_out_name_1.getExpectedOutName)(postRenderData.renderMetadata, bucketName);
38
+ const outData = (0, expected_out_name_1.getExpectedOutName)(postRenderData.renderMetadata, bucketName, customCredentials);
39
+ const totalFrameCount = renderer_1.RenderInternals.getFramesToRender(postRenderData.renderMetadata.frameRange, postRenderData.renderMetadata.everyNthFrame).length;
35
40
  return {
41
+ framesRendered: totalFrameCount,
36
42
  bucket: bucketName,
37
43
  renderSize: postRenderData.renderSize,
38
44
  chunks: postRenderData.renderMetadata.totalChunks,
@@ -50,10 +56,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
50
56
  currentTime: Date.now(),
51
57
  done: true,
52
58
  encodingStatus: {
53
- framesEncoded: postRenderData.renderMetadata.videoConfig.durationInFrames,
54
- totalFrames: postRenderData.renderMetadata.videoConfig.durationInFrames,
55
- doneIn: postRenderData.timeToEncode,
56
- timeToInvoke: postRenderData.timeToInvokeLambdas,
59
+ framesEncoded: totalFrameCount,
57
60
  },
58
61
  errors: postRenderData.errors,
59
62
  fatalErrorEncountered: false,
@@ -63,12 +66,13 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
63
66
  renderMetadata: postRenderData.renderMetadata,
64
67
  timeToFinish: postRenderData.timeToFinish,
65
68
  timeToFinishChunks: postRenderData.timeToRenderChunks,
66
- timeToInvokeLambdas: postRenderData.timeToInvokeLambdas,
67
69
  overallProgress: 1,
68
70
  retriesInfo: postRenderData.retriesInfo,
69
71
  outKey: outData.key,
70
72
  outBucket: outData.renderBucketName,
71
73
  mostExpensiveFrameRanges: (_a = postRenderData.mostExpensiveFrameRanges) !== null && _a !== void 0 ? _a : null,
74
+ timeToEncode: postRenderData.timeToEncode,
75
+ outputSizeInBytes: postRenderData.outputSize,
72
76
  };
73
77
  }
74
78
  const contents = await (0, io_1.lambdaLs)({
@@ -78,14 +82,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
78
82
  expectedBucketOwner,
79
83
  });
80
84
  const renderMetadataExists = Boolean(contents.find((c) => c.Key === (0, constants_1.renderMetadataKey)(renderId)));
81
- const [encodingStatus, renderMetadata, errorExplanations] = await Promise.all([
82
- (0, get_encoding_metadata_1.getEncodingMetadata)({
83
- exists: Boolean(contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId))),
84
- bucketName,
85
- renderId,
86
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
87
- expectedBucketOwner,
88
- }),
85
+ const [renderMetadata, errorExplanations] = await Promise.all([
89
86
  renderMetadataExists
90
87
  ? (0, get_render_metadata_1.getRenderMetadata)({
91
88
  bucketName,
@@ -102,11 +99,16 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
102
99
  expectedBucketOwner,
103
100
  }),
104
101
  ]);
102
+ if ((renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.type) === 'still') {
103
+ throw new Error("You don't need to call getRenderProgress() on a still render. Once you have obtained the `renderId`, the render is already done! 😉");
104
+ }
105
+ (0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
105
106
  const outputFile = renderMetadata
106
107
  ? await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
107
108
  bucketName,
108
109
  renderMetadata,
109
110
  region,
111
+ customCredentials,
110
112
  })
111
113
  : null;
112
114
  const accruedSoFar = Number((0, calculate_price_from_bucket_1.estimatePriceFromBucket)({
@@ -131,46 +133,58 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
131
133
  renderMetadata,
132
134
  });
133
135
  const chunks = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); });
136
+ const framesRendered = renderMetadata
137
+ ? (0, get_rendered_frames_progress_1.getRenderedFramesProgress)({
138
+ contents,
139
+ everyNthFrame: renderMetadata.everyNthFrame,
140
+ frameRange: renderMetadata.frameRange,
141
+ framesPerLambda: renderMetadata.framesPerLambda,
142
+ renderId,
143
+ })
144
+ : 0;
145
+ console.log('etags', contents
146
+ .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
147
+ .map((c) => {
148
+ return (0, chunk_progress_1.getProgressOfChunk)(c.ETag);
149
+ }));
134
150
  const allChunks = chunks.length === ((_f = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _f !== void 0 ? _f : Infinity);
135
151
  const renderSize = contents
136
152
  .map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
137
153
  .reduce((a, b) => a + b, 0);
138
- const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)(contents, renderId, (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _g !== void 0 ? _g : null, (_h = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.startedDate) !== null && _h !== void 0 ? _h : null);
154
+ const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
155
+ contents,
156
+ renderId,
157
+ });
139
158
  const retriesInfo = (0, get_retry_stats_1.getRetryStats)({
140
159
  contents,
141
160
  renderId,
142
161
  });
162
+ const frameCount = renderMetadata
163
+ ? renderer_1.RenderInternals.getFramesToRender(renderMetadata.frameRange, renderMetadata.everyNthFrame).length
164
+ : null;
165
+ const encodingStatus = (0, get_encoding_metadata_1.getEncodingMetadata)({
166
+ exists: contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId)),
167
+ frameCount: frameCount === null ? 0 : frameCount,
168
+ });
143
169
  const finalEncodingStatus = (0, get_final_encoding_status_1.getFinalEncodingStatus)({
144
- encodingStatus,
170
+ encodingProgress: encodingStatus,
145
171
  outputFileExists: Boolean(outputFile),
146
172
  renderMetadata,
147
- lambdaInvokeStatus: lambdasInvokedStats,
148
173
  });
149
174
  const chunkCount = outputFile
150
- ? (_j = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _j !== void 0 ? _j : 0
175
+ ? (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _g !== void 0 ? _g : 0
151
176
  : chunks.length;
152
177
  // We add a 20 second buffer for it, since AWS timeshifts can be quite a lot. Once it's 20sec over the limit, we consider it timed out
153
178
  const isBeyondTimeout = renderMetadata &&
154
- Date.now() > renderMetadata.startedDate + timeoutInMiliseconds + 20000;
179
+ Date.now() > renderMetadata.startedDate + timeoutInMilliseconds + 20000;
155
180
  const allErrors = [
156
181
  isBeyondTimeout
157
- ? {
158
- attempt: 1,
159
- chunk: null,
160
- explanation: `The main function timed out after ${timeoutInMiliseconds}ms. Consider increasing the timeout of your function. You can use the "--timeout" parameter when deploying a function via CLI, or the "timeoutInSeconds" parameter when using the deployFunction API. ${docs_url_1.DOCS_URL}/docs/lambda/cli/functions#deploy`,
161
- frame: null,
162
- isFatal: true,
163
- s3Location: '',
164
- stack: new Error().stack,
165
- tmpDir: null,
166
- totalAttempts: 1,
167
- type: 'stitcher',
168
- willRetry: false,
169
- }
182
+ ? (0, make_timeout_error_1.makeTimeoutError)({ timeoutInMilliseconds, renderMetadata, chunks })
170
183
  : null,
171
184
  ...errorExplanations,
172
185
  ].filter(remotion_1.Internals.truthy);
173
186
  return {
187
+ framesRendered,
174
188
  chunks: chunkCount,
175
189
  done: false,
176
190
  encodingStatus,
@@ -178,7 +192,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
178
192
  renderId,
179
193
  renderMetadata,
180
194
  bucket: bucketName,
181
- outputFile: (_k = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _k !== void 0 ? _k : null,
195
+ outputFile: (_h = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _h !== void 0 ? _h : null,
182
196
  timeToFinish,
183
197
  errors: allErrors,
184
198
  fatalErrorEncountered: allErrors.some((f) => f.isFatal && !f.willRetry),
@@ -193,27 +207,29 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
193
207
  type: 'absolute-time',
194
208
  })
195
209
  : null,
196
- timeToInvokeLambdas: (_l = encodingStatus === null || encodingStatus === void 0 ? void 0 : encodingStatus.timeToInvoke) !== null && _l !== void 0 ? _l : lambdasInvokedStats.timeToInvokeLambdas,
197
210
  overallProgress: (0, get_overall_progress_1.getOverallProgress)({
198
211
  cleanup: cleanup ? cleanup.filesDeleted / cleanup.minFilesToDelete : 0,
199
- encoding: finalEncodingStatus && renderMetadata
200
- ? finalEncodingStatus.framesEncoded /
201
- renderMetadata.videoConfig.durationInFrames
212
+ encoding: finalEncodingStatus && renderMetadata && frameCount
213
+ ? finalEncodingStatus.framesEncoded / frameCount
202
214
  : 0,
203
215
  invoking: renderMetadata
204
216
  ? lambdasInvokedStats.lambdasInvoked /
205
217
  renderMetadata.estimatedRenderLambdaInvokations
206
218
  : 0,
207
219
  rendering: renderMetadata ? chunkCount / renderMetadata.totalChunks : 0,
220
+ frames: frameCount === null ? 0 : framesRendered / frameCount,
208
221
  }),
209
222
  retriesInfo,
210
223
  outKey: outputFile && renderMetadata
211
- ? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName).key
224
+ ? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials).key
212
225
  : null,
213
226
  outBucket: outputFile && renderMetadata
214
- ? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName).renderBucketName
227
+ ? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials)
228
+ .renderBucketName
215
229
  : null,
216
230
  mostExpensiveFrameRanges: null,
231
+ timeToEncode: null,
232
+ outputSizeInBytes: (_j = outputFile === null || outputFile === void 0 ? void 0 : outputFile.size) !== null && _j !== void 0 ? _j : null,
217
233
  };
218
234
  };
219
235
  exports.getProgress = getProgress;
File without changes
File without changes
@@ -0,0 +1,8 @@
1
+ import type { _Object } from '@aws-sdk/client-s3';
2
+ export declare const getRenderedFramesProgress: ({ contents, renderId, framesPerLambda, everyNthFrame, frameRange, }: {
3
+ contents: _Object[];
4
+ renderId: string;
5
+ framesPerLambda: number;
6
+ frameRange: [number, number];
7
+ everyNthFrame: number;
8
+ }) => number;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRenderedFramesProgress = void 0;
4
+ const chunk_progress_1 = require("../../shared/chunk-progress");
5
+ const constants_1 = require("../../shared/constants");
6
+ const parse_chunk_key_1 = require("../../shared/parse-chunk-key");
7
+ const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
8
+ const plan_frame_ranges_1 = require("../chunk-optimization/plan-frame-ranges");
9
+ const getRenderedFramesProgress = ({ contents, renderId, framesPerLambda, everyNthFrame, frameRange, }) => {
10
+ const chunkProgress = {};
11
+ const { chunks } = (0, plan_frame_ranges_1.planFrameRanges)({
12
+ everyNthFrame,
13
+ frameRange,
14
+ framesPerLambda,
15
+ });
16
+ // Sort, so only the latest attempt is used
17
+ const sortedChunks = contents
18
+ .filter((c) => {
19
+ return c.Key.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId));
20
+ })
21
+ .sort((a, b) => {
22
+ return a.Key.localeCompare(b.Key);
23
+ });
24
+ for (const chunk of sortedChunks) {
25
+ const key = (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(chunk.Key);
26
+ chunkProgress[key.chunk] = (0, chunk_progress_1.getProgressOfChunk)(chunk.ETag);
27
+ }
28
+ for (const chunk of contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); })) {
29
+ const parsed = (0, parse_chunk_key_1.parseLambdaChunkKey)(chunk.Key);
30
+ const frameRangeInChunk = chunks[parsed.chunk];
31
+ chunkProgress[parsed.chunk] =
32
+ frameRangeInChunk[1] - frameRangeInChunk[0] + 1;
33
+ }
34
+ const framesRendered = Object.values(chunkProgress).reduce((a, b) => a + b, 0);
35
+ return framesRendered;
36
+ };
37
+ exports.getRenderedFramesProgress = getRenderedFramesProgress;
File without changes
@@ -5,7 +5,7 @@ const constants_1 = require("../../shared/constants");
5
5
  const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
6
6
  const getRetryStats = ({ contents, renderId, }) => {
7
7
  const retries = contents
8
- .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaInitializedPrefix)(renderId)); })
8
+ .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
9
9
  .filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt !== 1);
10
10
  return retries.map((retry) => {
11
11
  var _a;
File without changes
File without changes
File without changes
File without changes
@@ -2,7 +2,9 @@ import type { _Object } from '@aws-sdk/client-s3';
2
2
  import type { ReadStream } from 'fs';
3
3
  import type { Readable } from 'stream';
4
4
  import type { AwsRegion } from '../../pricing/aws-regions';
5
+ import type { CustomCredentials } from '../../shared/aws-clients';
5
6
  import type { Privacy } from '../../shared/constants';
7
+ import type { DownloadBehavior } from '../../shared/content-disposition-header';
6
8
  export declare type LambdaLSInput = {
7
9
  bucketName: string;
8
10
  prefix: string;
@@ -12,13 +14,21 @@ export declare type LambdaLSInput = {
12
14
  };
13
15
  export declare type LambdaLsReturnType = Promise<_Object[]>;
14
16
  export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
15
- export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, }: {
17
+ export declare const lambdaDeleteFile: ({ bucketName, key, region, customCredentials, }: {
18
+ region: AwsRegion;
19
+ bucketName: string;
20
+ key: string;
21
+ customCredentials: CustomCredentials | null;
22
+ }) => Promise<void>;
23
+ export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }: {
16
24
  bucketName: string;
17
25
  key: string;
18
26
  body: ReadStream | string;
19
27
  region: AwsRegion;
20
28
  privacy: Privacy;
21
29
  expectedBucketOwner: string | null;
30
+ downloadBehavior: DownloadBehavior | null;
31
+ customCredentials: CustomCredentials | null;
22
32
  }) => Promise<void>;
23
33
  export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketOwner, }: {
24
34
  bucketName: string;
@@ -26,3 +36,11 @@ export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketO
26
36
  region: AwsRegion;
27
37
  expectedBucketOwner: string;
28
38
  }) => Promise<Readable>;
39
+ export declare const lambdaHeadCommand: ({ bucketName, key, region, }: {
40
+ bucketName: string;
41
+ key: string;
42
+ region: AwsRegion;
43
+ }) => Promise<{
44
+ LastModified?: Date | undefined;
45
+ ContentLength?: number | undefined;
46
+ }>;
@@ -3,14 +3,15 @@ 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.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaLs = void 0;
6
+ exports.lambdaHeadCommand = exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
7
7
  const client_s3_1 = require("@aws-sdk/client-s3");
8
8
  const mime_types_1 = __importDefault(require("mime-types"));
9
9
  const aws_clients_1 = require("../../shared/aws-clients");
10
+ const content_disposition_header_1 = require("../../shared/content-disposition-header");
10
11
  const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
11
12
  var _a, _b, _c;
12
13
  try {
13
- const list = await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.ListObjectsV2Command({
14
+ const list = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
14
15
  Bucket: bucketName,
15
16
  Prefix: prefix,
16
17
  ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
@@ -36,7 +37,7 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
36
37
  }
37
38
  // Prevent from accessing a foreign bucket, retry without ExpectedBucketOwner and see if it works. If it works then it's an owner mismatch.
38
39
  if ((_c = err.stack) === null || _c === void 0 ? void 0 : _c.includes('AccessDenied')) {
39
- await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.ListObjectsV2Command({
40
+ await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
40
41
  Bucket: bucketName,
41
42
  Prefix: prefix,
42
43
  }));
@@ -46,19 +47,33 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
46
47
  }
47
48
  };
48
49
  exports.lambdaLs = lambdaLs;
49
- const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, }) => {
50
- await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.PutObjectCommand({
50
+ const lambdaDeleteFile = async ({ bucketName, key, region, customCredentials, }) => {
51
+ await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.DeleteObjectCommand({
52
+ Bucket: bucketName,
53
+ Key: key,
54
+ }));
55
+ };
56
+ exports.lambdaDeleteFile = lambdaDeleteFile;
57
+ const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
58
+ await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.PutObjectCommand({
51
59
  Bucket: bucketName,
52
60
  Key: key,
53
61
  Body: body,
54
- ACL: privacy === 'private' ? 'private' : 'public-read',
55
- ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
62
+ ACL: privacy === 'no-acl'
63
+ ? undefined
64
+ : privacy === 'private'
65
+ ? 'private'
66
+ : 'public-read',
67
+ ExpectedBucketOwner: customCredentials
68
+ ? undefined
69
+ : expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
56
70
  ContentType: mime_types_1.default.lookup(key) || 'application/octet-stream',
71
+ ContentDisposition: (0, content_disposition_header_1.getContentDispositionHeader)(downloadBehavior),
57
72
  }));
58
73
  };
59
74
  exports.lambdaWriteFile = lambdaWriteFile;
60
75
  const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, }) => {
61
- const { Body } = await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.GetObjectCommand({
76
+ const { Body } = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.GetObjectCommand({
62
77
  Bucket: bucketName,
63
78
  Key: key,
64
79
  ExpectedBucketOwner: expectedBucketOwner,
@@ -66,3 +81,11 @@ const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, })
66
81
  return Body;
67
82
  };
68
83
  exports.lambdaReadFile = lambdaReadFile;
84
+ const lambdaHeadCommand = async ({ bucketName, key, region, }) => {
85
+ const head = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.HeadObjectCommand({
86
+ Bucket: bucketName,
87
+ Key: key,
88
+ }));
89
+ return head;
90
+ };
91
+ exports.lambdaHeadCommand = lambdaHeadCommand;
File without changes
File without changes
File without changes
File without changes