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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/LICENSE.md +8 -8
  2. package/dist/admin/bundle-lambda.d.ts +0 -0
  3. package/dist/admin/bundle-lambda.js +24 -13
  4. package/dist/admin/generate-etag-list.d.ts +1 -0
  5. package/dist/admin/generate-etag-list.js +14 -0
  6. package/dist/admin/make-layer-public.d.ts +0 -0
  7. package/dist/admin/make-layer-public.js +59 -65
  8. package/dist/api/bucket-exists.d.ts +0 -0
  9. package/dist/api/bucket-exists.js +0 -0
  10. package/dist/api/clean-items.d.ts +0 -0
  11. package/dist/api/clean-items.js +1 -1
  12. package/dist/api/create-bucket.d.ts +0 -0
  13. package/dist/api/create-bucket.js +34 -1
  14. package/dist/api/create-function.d.ts +1 -3
  15. package/dist/api/create-function.js +27 -6
  16. package/dist/api/delete-function.d.ts +4 -4
  17. package/dist/api/delete-function.js +3 -3
  18. package/dist/api/delete-render.d.ts +2 -2
  19. package/dist/api/delete-render.js +1 -1
  20. package/dist/api/delete-site.d.ts +7 -7
  21. package/dist/api/delete-site.js +9 -7
  22. package/dist/api/deploy-function.d.ts +11 -13
  23. package/dist/api/deploy-function.js +28 -31
  24. package/dist/api/deploy-site.d.ts +13 -5
  25. package/dist/api/deploy-site.js +61 -25
  26. package/dist/api/download-media.d.ts +4 -8
  27. package/dist/api/download-media.js +5 -9
  28. package/dist/api/estimate-price.d.ts +3 -5
  29. package/dist/api/estimate-price.js +4 -10
  30. package/dist/api/get-aws-client.d.ts +6 -4
  31. package/dist/api/get-aws-client.js +3 -1
  32. package/dist/api/get-buckets.d.ts +1 -1
  33. package/dist/api/get-buckets.js +26 -9
  34. package/dist/api/get-compositions-on-lambda.d.ts +31 -0
  35. package/dist/api/get-compositions-on-lambda.js +56 -0
  36. package/dist/api/get-function-info.d.ts +3 -3
  37. package/dist/api/get-function-info.js +1 -1
  38. package/dist/api/get-functions.d.ts +5 -7
  39. package/dist/api/get-functions.js +8 -10
  40. package/dist/api/get-or-create-bucket.d.ts +6 -6
  41. package/dist/api/get-or-create-bucket.js +10 -18
  42. package/dist/api/get-regions.d.ts +6 -2
  43. package/dist/api/get-regions.js +6 -3
  44. package/dist/api/get-render-progress.d.ts +3 -3
  45. package/dist/api/get-render-progress.js +6 -11
  46. package/dist/api/get-sites.d.ts +4 -5
  47. package/dist/api/get-sites.js +1 -2
  48. package/dist/api/iam-validation/role-permissions.d.ts +0 -0
  49. package/dist/api/iam-validation/role-permissions.js +0 -0
  50. package/dist/api/iam-validation/simulate-rule.d.ts +2 -2
  51. package/dist/api/iam-validation/simulate-rule.js +0 -22
  52. package/dist/api/iam-validation/simulate.d.ts +3 -3
  53. package/dist/api/iam-validation/simulate.js +27 -6
  54. package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
  55. package/dist/api/iam-validation/suggested-policy.js +0 -0
  56. package/dist/api/iam-validation/user-permissions.d.ts +1 -1
  57. package/dist/api/iam-validation/user-permissions.js +3 -8
  58. package/dist/api/make-lambda-payload.d.ts +5 -0
  59. package/dist/api/make-lambda-payload.js +77 -0
  60. package/dist/api/mock-functions.d.ts +0 -0
  61. package/dist/api/mock-functions.js +0 -0
  62. package/dist/api/presign-url.d.ts +4 -5
  63. package/dist/api/presign-url.js +3 -3
  64. package/dist/api/render-media-on-lambda.d.ts +25 -11
  65. package/dist/api/render-media-on-lambda.js +16 -49
  66. package/dist/api/render-still-on-lambda.d.ts +15 -6
  67. package/dist/api/render-still-on-lambda.js +23 -9
  68. package/dist/api/speculate-function-name.d.ts +14 -0
  69. package/dist/api/speculate-function-name.js +22 -0
  70. package/dist/api/upload-dir.d.ts +6 -5
  71. package/dist/api/upload-dir.js +54 -51
  72. package/dist/api/validate-webhook-signature.d.ts +2 -2
  73. package/dist/api/validate-webhook-signature.js +1 -1
  74. package/dist/cli/args.d.ts +7 -5
  75. package/dist/cli/args.js +1 -5
  76. package/dist/cli/commands/compositions/index.d.ts +2 -0
  77. package/dist/cli/commands/compositions/index.js +44 -0
  78. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  79. package/dist/cli/commands/functions/deploy.js +15 -15
  80. package/dist/cli/commands/functions/index.d.ts +0 -0
  81. package/dist/cli/commands/functions/index.js +16 -17
  82. package/dist/cli/commands/functions/ls.d.ts +0 -0
  83. package/dist/cli/commands/functions/ls.js +17 -10
  84. package/dist/cli/commands/functions/rm.d.ts +0 -0
  85. package/dist/cli/commands/functions/rm.js +20 -7
  86. package/dist/cli/commands/functions/rmall.d.ts +0 -0
  87. package/dist/cli/commands/functions/rmall.js +20 -8
  88. package/dist/cli/commands/policies/policies.d.ts +0 -0
  89. package/dist/cli/commands/policies/policies.js +0 -0
  90. package/dist/cli/commands/policies/role.d.ts +0 -0
  91. package/dist/cli/commands/policies/role.js +0 -0
  92. package/dist/cli/commands/policies/user.d.ts +0 -0
  93. package/dist/cli/commands/policies/user.js +0 -0
  94. package/dist/cli/commands/policies/validate.d.ts +0 -0
  95. package/dist/cli/commands/policies/validate.js +0 -0
  96. package/dist/cli/commands/quotas/increase.d.ts +0 -0
  97. package/dist/cli/commands/quotas/increase.js +30 -10
  98. package/dist/cli/commands/quotas/index.d.ts +0 -0
  99. package/dist/cli/commands/quotas/index.js +8 -9
  100. package/dist/cli/commands/quotas/list.d.ts +0 -0
  101. package/dist/cli/commands/quotas/list.js +0 -0
  102. package/dist/cli/commands/regions.d.ts +0 -0
  103. package/dist/cli/commands/regions.js +6 -2
  104. package/dist/cli/commands/render/progress.d.ts +11 -7
  105. package/dist/cli/commands/render/progress.js +55 -45
  106. package/dist/cli/commands/render/render.d.ts +1 -1
  107. package/dist/cli/commands/render/render.js +99 -27
  108. package/dist/cli/commands/sites/create.d.ts +1 -1
  109. package/dist/cli/commands/sites/create.js +36 -33
  110. package/dist/cli/commands/sites/index.d.ts +1 -1
  111. package/dist/cli/commands/sites/index.js +18 -16
  112. package/dist/cli/commands/sites/ls.d.ts +0 -0
  113. package/dist/cli/commands/sites/ls.js +9 -10
  114. package/dist/cli/commands/sites/rm.d.ts +0 -0
  115. package/dist/cli/commands/sites/rm.js +6 -16
  116. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  117. package/dist/cli/commands/sites/rmall.js +5 -16
  118. package/dist/cli/commands/still.d.ts +1 -1
  119. package/dist/cli/commands/still.js +49 -20
  120. package/dist/cli/get-aws-region.d.ts +0 -0
  121. package/dist/cli/get-aws-region.js +0 -0
  122. package/dist/cli/help.d.ts +0 -0
  123. package/dist/cli/help.js +4 -0
  124. package/dist/cli/helpers/confirm.d.ts +0 -0
  125. package/dist/cli/helpers/confirm.js +0 -0
  126. package/dist/cli/helpers/date-string.d.ts +0 -0
  127. package/dist/cli/helpers/date-string.js +0 -0
  128. package/dist/cli/helpers/find-function-name.d.ts +0 -0
  129. package/dist/cli/helpers/find-function-name.js +35 -6
  130. package/dist/cli/helpers/progress-bar.d.ts +12 -7
  131. package/dist/cli/helpers/progress-bar.js +20 -11
  132. package/dist/cli/helpers/quit.d.ts +0 -0
  133. package/dist/cli/helpers/quit.js +0 -0
  134. package/dist/cli/helpers/yes-or-no.d.ts +0 -0
  135. package/dist/cli/helpers/yes-or-no.js +0 -0
  136. package/dist/cli/index.d.ts +1 -1
  137. package/dist/cli/index.js +23 -12
  138. package/dist/cli/is-cli.d.ts +0 -0
  139. package/dist/cli/is-cli.js +0 -0
  140. package/dist/cli/log.d.ts +15 -0
  141. package/dist/cli/log.js +0 -0
  142. package/dist/client.d.ts +8 -2
  143. package/dist/client.js +9 -1
  144. package/dist/defaults.d.ts +0 -0
  145. package/dist/defaults.js +0 -0
  146. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
  147. package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
  148. package/dist/functions/chunk-optimization/types.d.ts +2 -13
  149. package/dist/functions/chunk-optimization/types.js +0 -0
  150. package/dist/functions/compositions.d.ts +8 -0
  151. package/dist/functions/compositions.js +60 -0
  152. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
  153. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
  154. package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
  155. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  156. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
  157. package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
  158. package/dist/functions/helpers/check-if-render-exists.d.ts +0 -0
  159. package/dist/functions/helpers/check-if-render-exists.js +0 -0
  160. package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
  161. package/dist/functions/helpers/clean-tmpdir.js +8 -8
  162. package/dist/functions/helpers/concat-videos.d.ts +13 -5
  163. package/dist/functions/helpers/concat-videos.js +38 -39
  164. package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
  165. package/dist/functions/helpers/create-post-render-data.js +1 -15
  166. package/dist/functions/helpers/delete-chunks.d.ts +0 -0
  167. package/dist/functions/helpers/delete-chunks.js +0 -0
  168. package/dist/functions/helpers/expected-out-name.d.ts +0 -0
  169. package/dist/functions/helpers/expected-out-name.js +2 -2
  170. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
  171. package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
  172. package/dist/functions/helpers/format-costs-info.d.ts +0 -0
  173. package/dist/functions/helpers/format-costs-info.js +0 -0
  174. package/dist/functions/helpers/get-browser-instance.d.ts +1 -2
  175. package/dist/functions/helpers/get-browser-instance.js +7 -3
  176. package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
  177. package/dist/functions/helpers/get-chromium-executable-path.js +8 -6
  178. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
  179. package/dist/functions/helpers/get-cleanup-progress.js +0 -0
  180. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  181. package/dist/functions/helpers/get-current-region.js +0 -0
  182. package/dist/functions/helpers/get-custom-out-name.d.ts +0 -0
  183. package/dist/functions/helpers/get-custom-out-name.js +1 -1
  184. package/dist/functions/helpers/get-encoding-metadata.d.ts +5 -8
  185. package/dist/functions/helpers/get-encoding-metadata.js +7 -17
  186. package/dist/functions/helpers/get-files-in-folder.d.ts +1 -1
  187. package/dist/functions/helpers/get-files-in-folder.js +5 -5
  188. package/dist/functions/helpers/get-files-to-delete.d.ts +1 -1
  189. package/dist/functions/helpers/get-files-to-delete.js +0 -0
  190. package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
  191. package/dist/functions/helpers/get-final-encoding-status.js +1 -4
  192. package/dist/functions/helpers/get-folder-size.d.ts +0 -0
  193. package/dist/functions/helpers/get-folder-size.js +0 -0
  194. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +2 -6
  195. package/dist/functions/helpers/get-lambdas-invoked-stats.js +1 -9
  196. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +0 -0
  197. package/dist/functions/helpers/get-output-url-from-metadata.js +0 -0
  198. package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
  199. package/dist/functions/helpers/get-overall-progress.js +7 -5
  200. package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
  201. package/dist/functions/helpers/get-post-render-data.js +0 -0
  202. package/dist/functions/helpers/get-progress.d.ts +0 -0
  203. package/dist/functions/helpers/get-progress.js +43 -42
  204. package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
  205. package/dist/functions/helpers/get-render-metadata.js +0 -0
  206. package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
  207. package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
  208. package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
  209. package/dist/functions/helpers/get-retry-stats.js +0 -0
  210. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
  211. package/dist/functions/helpers/get-time-to-finish.js +0 -0
  212. package/dist/functions/helpers/inspect-errors.d.ts +0 -0
  213. package/dist/functions/helpers/inspect-errors.js +0 -0
  214. package/dist/functions/helpers/io.d.ts +10 -4
  215. package/dist/functions/helpers/io.js +25 -3
  216. package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
  217. package/dist/functions/helpers/is-enosp-err.js +1 -1
  218. package/dist/functions/helpers/is-warm.d.ts +0 -0
  219. package/dist/functions/helpers/is-warm.js +0 -0
  220. package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
  221. package/dist/functions/helpers/make-timeout-error.js +35 -0
  222. package/dist/functions/helpers/make-timeout-message.d.ts +6 -0
  223. package/dist/functions/helpers/make-timeout-message.js +31 -0
  224. package/dist/functions/helpers/min-max.d.ts +0 -0
  225. package/dist/functions/helpers/min-max.js +0 -0
  226. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +0 -0
  227. package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
  228. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
  229. package/dist/functions/helpers/print-concurrency-curve.js +0 -0
  230. package/dist/functions/helpers/read-with-progress.d.ts +1 -1
  231. package/dist/functions/helpers/read-with-progress.js +1 -1
  232. package/dist/functions/helpers/streamify-response.d.ts +16 -0
  233. package/dist/functions/helpers/streamify-response.js +67 -0
  234. package/dist/functions/helpers/timer.d.ts +0 -0
  235. package/dist/functions/helpers/timer.js +0 -0
  236. package/dist/functions/helpers/validate-composition.d.ts +10 -9
  237. package/dist/functions/helpers/validate-composition.js +16 -13
  238. package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
  239. package/dist/functions/helpers/write-lambda-error.js +0 -0
  240. package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
  241. package/dist/functions/helpers/write-post-render-data.js +0 -0
  242. package/dist/functions/index.d.ts +1 -7
  243. package/dist/functions/index.js +43 -10
  244. package/dist/functions/info.d.ts +0 -0
  245. package/dist/functions/info.js +0 -0
  246. package/dist/functions/launch.d.ts +2 -1
  247. package/dist/functions/launch.js +152 -134
  248. package/dist/functions/progress.d.ts +1 -1
  249. package/dist/functions/progress.js +2 -2
  250. package/dist/functions/renderer.d.ts +1 -1
  251. package/dist/functions/renderer.js +73 -42
  252. package/dist/functions/start.d.ts +1 -1
  253. package/dist/functions/start.js +22 -8
  254. package/dist/functions/still.d.ts +1 -1
  255. package/dist/functions/still.js +80 -37
  256. package/dist/index.d.ts +24 -8
  257. package/dist/index.js +23 -6
  258. package/dist/internals.d.ts +3 -1
  259. package/dist/internals.js +3 -0
  260. package/dist/pricing/aws-regions.d.ts +3 -2
  261. package/dist/pricing/aws-regions.js +31 -1
  262. package/dist/pricing/price-per-1-s.d.ts +0 -0
  263. package/dist/pricing/price-per-1-s.js +413 -39
  264. package/dist/regions.d.ts +0 -0
  265. package/dist/regions.js +0 -0
  266. package/dist/shared/await.d.ts +1 -1
  267. package/dist/shared/await.js +0 -0
  268. package/dist/shared/aws-clients.d.ts +6 -3
  269. package/dist/shared/aws-clients.js +75 -13
  270. package/dist/shared/bundle-site.d.ts +0 -0
  271. package/dist/shared/bundle-site.js +0 -0
  272. package/dist/shared/call-lambda.d.ts +0 -0
  273. package/dist/shared/call-lambda.js +27 -2
  274. package/dist/shared/check-credentials.d.ts +0 -0
  275. package/dist/shared/check-credentials.js +3 -0
  276. package/dist/shared/chunk-progress.d.ts +9 -0
  277. package/dist/shared/chunk-progress.js +2034 -0
  278. package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
  279. package/dist/shared/cleanup-serialized-input-props.js +19 -0
  280. package/dist/shared/constants.d.ts +140 -89
  281. package/dist/shared/constants.js +7 -4
  282. package/dist/shared/content-disposition-header.d.ts +1 -1
  283. package/dist/shared/content-disposition-header.js +0 -0
  284. package/dist/shared/convert-to-serve-url.d.ts +5 -1
  285. package/dist/shared/convert-to-serve-url.js +1 -5
  286. package/dist/shared/deserialize-input-props.d.ts +8 -0
  287. package/dist/shared/deserialize-input-props.js +26 -0
  288. package/dist/shared/docs-url.d.ts +0 -0
  289. package/dist/shared/docs-url.js +0 -0
  290. package/dist/shared/function-zip-path.d.ts +1 -1
  291. package/dist/shared/function-zip-path.js +3 -3
  292. package/dist/shared/get-account-id.d.ts +0 -0
  293. package/dist/shared/get-account-id.js +4 -6
  294. package/dist/shared/{get-cloudwatch-stream-url.d.ts → get-aws-urls.d.ts} +7 -1
  295. package/dist/shared/get-aws-urls.js +12 -0
  296. package/dist/shared/get-etag.d.ts +1 -0
  297. package/dist/shared/get-etag.js +24 -0
  298. package/dist/shared/get-function-version.d.ts +0 -0
  299. package/dist/shared/get-function-version.js +0 -0
  300. package/dist/shared/get-most-expensive-chunks.d.ts +2 -2
  301. package/dist/shared/get-most-expensive-chunks.js +3 -2
  302. package/dist/shared/get-s3-operations.d.ts +10 -0
  303. package/dist/shared/get-s3-operations.js +36 -0
  304. package/dist/shared/hosted-layers.d.ts +5 -8
  305. package/dist/shared/hosted-layers.js +210 -284
  306. package/dist/shared/invoke-webhook.d.ts +5 -18
  307. package/dist/shared/invoke-webhook.js +4 -19
  308. package/dist/shared/is-in-lambda.d.ts +0 -0
  309. package/dist/shared/is-in-lambda.js +0 -0
  310. package/dist/shared/lambda-version-string.d.ts +0 -0
  311. package/dist/shared/lambda-version-string.js +0 -0
  312. package/dist/shared/make-s3-key.d.ts +0 -0
  313. package/dist/shared/make-s3-key.js +2 -2
  314. package/dist/shared/make-s3-url.d.ts +0 -0
  315. package/dist/shared/make-s3-url.js +2 -2
  316. package/dist/shared/p-limit.d.ts +0 -0
  317. package/dist/shared/p-limit.js +0 -0
  318. package/dist/shared/parse-chunk-key.d.ts +4 -0
  319. package/dist/shared/parse-chunk-key.js +14 -0
  320. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
  321. package/dist/shared/parse-lambda-initialized-key.js +0 -0
  322. package/dist/shared/parse-lambda-timings-key.d.ts +1 -1
  323. package/dist/shared/parse-lambda-timings-key.js +0 -0
  324. package/dist/shared/random-hash.d.ts +0 -0
  325. package/dist/shared/random-hash.js +0 -0
  326. package/dist/shared/read-dir.d.ts +9 -0
  327. package/dist/shared/read-dir.js +57 -0
  328. package/dist/shared/return-values.d.ts +7 -0
  329. package/dist/shared/return-values.js +0 -0
  330. package/dist/shared/serialize-input-props.d.ts +8 -0
  331. package/dist/shared/serialize-input-props.js +42 -0
  332. package/dist/shared/sleep.d.ts +0 -0
  333. package/dist/shared/sleep.js +0 -0
  334. package/dist/shared/stream-to-string.d.ts +0 -0
  335. package/dist/shared/stream-to-string.js +0 -0
  336. package/dist/shared/truthy.d.ts +1 -1
  337. package/dist/shared/truthy.js +0 -0
  338. package/dist/shared/validate-aws-region.d.ts +0 -0
  339. package/dist/shared/validate-aws-region.js +0 -0
  340. package/dist/shared/validate-bucketname.d.ts +5 -0
  341. package/dist/shared/validate-bucketname.js +19 -1
  342. package/dist/shared/validate-custom-role-arn.d.ts +0 -0
  343. package/dist/shared/validate-custom-role-arn.js +0 -0
  344. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  345. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  346. package/dist/shared/validate-download-behavior.d.ts +0 -0
  347. package/dist/shared/validate-download-behavior.js +0 -0
  348. package/dist/shared/validate-frames-per-lambda.d.ts +0 -0
  349. package/dist/shared/validate-frames-per-lambda.js +0 -0
  350. package/dist/shared/validate-lambda-codec.d.ts +2 -2
  351. package/dist/shared/validate-lambda-codec.js +1 -1
  352. package/dist/shared/validate-memory-size.d.ts +0 -0
  353. package/dist/shared/validate-memory-size.js +0 -0
  354. package/dist/shared/validate-outname.d.ts +2 -2
  355. package/dist/shared/validate-outname.js +16 -10
  356. package/dist/shared/validate-presign-expiration.d.ts +0 -0
  357. package/dist/shared/validate-presign-expiration.js +0 -0
  358. package/dist/shared/validate-privacy.d.ts +1 -1
  359. package/dist/shared/validate-privacy.js +5 -2
  360. package/dist/shared/validate-retention-period.d.ts +0 -0
  361. package/dist/shared/validate-retention-period.js +0 -0
  362. package/dist/shared/validate-retries.d.ts +0 -0
  363. package/dist/shared/validate-retries.js +0 -0
  364. package/dist/shared/validate-serveurl.d.ts +0 -0
  365. package/dist/shared/validate-serveurl.js +0 -0
  366. package/dist/shared/validate-site-name.d.ts +0 -0
  367. package/dist/shared/validate-site-name.js +0 -0
  368. package/dist/shared/validate-timeout.d.ts +0 -0
  369. package/dist/shared/validate-timeout.js +0 -0
  370. package/package.json +89 -65
  371. package/remotionlambda-arm64.zip +0 -0
  372. package/.prettierrc.js +0 -14
  373. package/client.d.ts +0 -1
  374. package/client.js +0 -1
  375. package/dist/api/enable-s3-website.d.ts +0 -5
  376. package/dist/api/enable-s3-website.js +0 -16
  377. package/dist/cli/helpers/determine-image-format.d.ts +0 -10
  378. package/dist/cli/helpers/determine-image-format.js +0 -47
  379. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
  380. package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
  381. package/dist/cli/helpers/webhook-types.d.ts +0 -6
  382. package/dist/cli/helpers/webhook-types.js +0 -2
  383. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  384. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  385. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  386. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  387. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
  388. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  389. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  390. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  391. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  392. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  393. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  394. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  395. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
  396. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  397. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  398. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -47
  399. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
  400. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  401. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  402. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
  403. package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
  404. package/dist/functions/helpers/get-current-architecture.js +0 -11
  405. package/dist/shared/get-cloudwatch-stream-url.js +0 -7
  406. package/dist/shared/validate-architecture.d.ts +0 -4
  407. package/dist/shared/validate-architecture.js +0 -14
  408. package/remotionlambda.zip +0 -0
  409. package/tsconfig.json +0 -16
package/package.json CHANGED
@@ -1,66 +1,90 @@
1
1
  {
2
- "name": "@remotion/lambda",
3
- "version": "4.0.0-webhook.27+eb81308ee",
4
- "description": "Distributed renderer for Remotion based on AWS Lambda",
5
- "main": "dist/index.js",
6
- "sideEffects": false,
7
- "bin": {
8
- "remotion-lambda": "remotion-lambda-cli.js"
9
- },
10
- "module": "true",
11
- "scripts": {
12
- "testintegration": "jest src/test/integration --runInBand --forceExit",
13
- "lint": "eslint src --ext ts,tsx",
14
- "test": "jest src/test/unit",
15
- "watch": "tsc -w",
16
- "build": "tsc -d && pnpm run buildlambda",
17
- "buildlambda": "ts-node src/admin/bundle-lambda.ts",
18
- "start": "ts-node src/run.ts",
19
- "prepublish": "ts-node src/admin/bundle-lambda.ts && node ensure-version-match.js"
20
- },
21
- "author": "",
22
- "license": "MIT",
23
- "repository": {
24
- "url": "https://github.com/JonnyBurger/remotion"
25
- },
26
- "dependencies": {
27
- "@aws-sdk/abort-controller": "3.55.0",
28
- "@aws-sdk/client-cloudwatch-logs": "3.58.0",
29
- "@aws-sdk/client-iam": "3.58.0",
30
- "@aws-sdk/client-lambda": "3.58.0",
31
- "@aws-sdk/client-s3": "3.58.0",
32
- "@aws-sdk/client-service-quotas": "3.58.0",
33
- "@aws-sdk/lib-storage": "3.58.0",
34
- "@aws-sdk/s3-request-presigner": "3.58.0",
35
- "@remotion/bundler": "4.0.0-webhook.27+eb81308ee",
36
- "@remotion/cli": "4.0.0-webhook.27+eb81308ee",
37
- "@remotion/renderer": "4.0.0-webhook.27+eb81308ee",
38
- "aws-policies": "^1.0.1",
39
- "mime-types": "2.1.34",
40
- "remotion": "4.0.0-webhook.27+eb81308ee"
41
- },
42
- "peerDependencies": {
43
- "react": ">=16.8.0",
44
- "react-dom": ">=16.8.0"
45
- },
46
- "devDependencies": {
47
- "@jonny/eslint-config": "3.0.266",
48
- "@types/jest": "^27.0.2",
49
- "@types/mime-types": "2.1.1",
50
- "@types/minimist": "1.2.2",
51
- "@types/node": "^14.14.14",
52
- "@types/prompt": "^1.1.0",
53
- "eslint": "8.13.0",
54
- "jest": "^27.2.4",
55
- "prettier": "^2.4.1",
56
- "prettier-plugin-organize-imports": "^2.3.4",
57
- "ts-jest": "^27.0.5",
58
- "ts-node": "^10.8.0",
59
- "typescript": "^4.7.0",
60
- "zip-lib": "^0.7.2"
61
- },
62
- "publishConfig": {
63
- "access": "public"
64
- },
65
- "gitHead": "eb81308ee07a402f4a8dd9ff24306bb07dd78175"
66
- }
2
+ "name": "@remotion/lambda",
3
+ "version": "4.1.0-alpha2",
4
+ "description": "Distributed renderer for Remotion based on AWS Lambda",
5
+ "main": "dist/index.js",
6
+ "sideEffects": false,
7
+ "bin": {
8
+ "remotion-lambda": "remotion-lambda-cli.js"
9
+ },
10
+ "author": "Jonny Burger <jonny@remotion.dev>",
11
+ "license": "MIT",
12
+ "repository": {
13
+ "url": "https://github.com/JonnyBurger/remotion"
14
+ },
15
+ "dependencies": {
16
+ "@aws-sdk/abort-controller": "3.338.0",
17
+ "@aws-sdk/client-cloudwatch-logs": "3.338.0",
18
+ "@aws-sdk/client-iam": "3.338.0",
19
+ "@aws-sdk/client-lambda": "3.338.0",
20
+ "@aws-sdk/client-s3": "3.338.0",
21
+ "@aws-sdk/client-service-quotas": "3.338.0",
22
+ "@aws-sdk/client-sts": "3.338.0",
23
+ "@aws-sdk/credential-providers": "3.338.0",
24
+ "@aws-sdk/lib-storage": "3.338.0",
25
+ "@aws-sdk/s3-request-presigner": "3.338.0",
26
+ "aws-policies": "^1.0.1",
27
+ "mime-types": "2.1.34",
28
+ "@remotion/bundler": "4.1.0-alpha2",
29
+ "@remotion/renderer": "4.1.0-alpha2",
30
+ "remotion": "4.1.0-alpha2",
31
+ "@remotion/cli": "4.1.0-alpha2"
32
+ },
33
+ "devDependencies": {
34
+ "@jonny/eslint-config": "3.0.266",
35
+ "@types/mime-types": "2.1.1",
36
+ "@types/minimist": "1.2.2",
37
+ "@types/node": "18.14.6",
38
+ "@types/prompt": "^1.1.0",
39
+ "eslint": "8.42.0",
40
+ "prettier": "^2.4.1",
41
+ "prettier-plugin-organize-imports": "^2.3.4",
42
+ "ts-node": "^10.8.0",
43
+ "typescript": "4.9.5",
44
+ "vitest": "0.31.1",
45
+ "zip-lib": "^0.7.2",
46
+ "@remotion/bundler": "4.1.0-alpha2",
47
+ "@remotion/compositor-linux-arm64-gnu": "4.1.0-alpha2"
48
+ },
49
+ "peerDependencies": {
50
+ "@remotion/bundler": "4.1.0-alpha2"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "exports": {
56
+ "./package.json": "./package.json",
57
+ ".": "./dist/index.js",
58
+ "./defaults": "./dist/defaults.js",
59
+ "./regions": "./dist/regions.js",
60
+ "./policies": "./dist/api/iam-validation/suggested-policy.js",
61
+ "./client": "./dist/client.js",
62
+ "./layers": "./dist/shared/hosted-layers.js"
63
+ },
64
+ "typesVersions": {
65
+ ">=1.0": {
66
+ "defaults": [
67
+ "dist/defaults.d.ts"
68
+ ],
69
+ "regions": [
70
+ "dist/regions.d.ts"
71
+ ],
72
+ "policies": [
73
+ "dist/api/iam-validation/suggested-policy.d.ts"
74
+ ],
75
+ "client": [
76
+ "dist/client.d.ts"
77
+ ]
78
+ }
79
+ },
80
+ "scripts": {
81
+ "formatting": "prettier src --check",
82
+ "testintegration": "vitest src/test/integration --run",
83
+ "lint": "eslint src --ext ts,tsx",
84
+ "test": "vitest src/test/unit --run",
85
+ "watch": "tsc -w",
86
+ "build": "tsc -d && pnpm run buildlambda",
87
+ "buildlambda": "ts-node src/admin/bundle-lambda.ts",
88
+ "start": "ts-node src/run.ts"
89
+ }
90
+ }
Binary file
package/.prettierrc.js DELETED
@@ -1,14 +0,0 @@
1
- module.exports = {
2
- singleQuote: true,
3
- bracketSpacing: false,
4
- useTabs: true,
5
- overrides: [
6
- {
7
- files: ['*.yml'],
8
- options: {
9
- singleQuote: false,
10
- },
11
- },
12
- ],
13
- plugins: [require.resolve('prettier-plugin-organize-imports')],
14
- };
package/client.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './dist/client';
package/client.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('./dist/client');
@@ -1,5 +0,0 @@
1
- import type { AwsRegion } from '../pricing/aws-regions';
2
- export declare const enableS3Website: ({ region, bucketName, }: {
3
- region: AwsRegion;
4
- bucketName: string;
5
- }) => Promise<void>;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enableS3Website = void 0;
4
- const client_s3_1 = require("@aws-sdk/client-s3");
5
- const aws_clients_1 = require("../shared/aws-clients");
6
- const enableS3Website = async ({ region, bucketName, }) => {
7
- await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.PutBucketWebsiteCommand({
8
- Bucket: bucketName,
9
- WebsiteConfiguration: {
10
- IndexDocument: {
11
- Suffix: 'index.html',
12
- },
13
- },
14
- }));
15
- };
16
- exports.enableS3Website = enableS3Website;
@@ -1,10 +0,0 @@
1
- import type { ImageFormat, StillImageFormat } from '@remotion/renderer';
2
- export declare const getImageFormat: ({ downloadName, outName, configImageFormat, cliFlag, }: {
3
- downloadName: string | null;
4
- outName: string | null;
5
- configImageFormat: ImageFormat | null;
6
- cliFlag: ImageFormat | null;
7
- }) => {
8
- format: StillImageFormat;
9
- source: string;
10
- };
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getImageFormat = void 0;
4
- const deriveExtensionFromFilename = (filename) => {
5
- if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.png')) {
6
- return 'png';
7
- }
8
- if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.jpg')) {
9
- return 'jpeg';
10
- }
11
- if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.jpeg')) {
12
- return 'jpeg';
13
- }
14
- return null;
15
- };
16
- const getImageFormat = ({ downloadName, outName, configImageFormat, cliFlag, }) => {
17
- const outNameExtension = deriveExtensionFromFilename(outName);
18
- const downloadNameExtension = deriveExtensionFromFilename(downloadName);
19
- if (outNameExtension &&
20
- downloadNameExtension &&
21
- outNameExtension !== downloadNameExtension) {
22
- throw new TypeError(`Image format mismatch: ${outName} was given as the S3 output name and ${downloadName} was given as the download name, but the extensions don't match.`);
23
- }
24
- if (downloadNameExtension) {
25
- if (cliFlag && downloadNameExtension !== cliFlag) {
26
- throw new TypeError(`Image format mismatch: ${downloadName} was given as the download name, but --image-format=${cliFlag} was passed. The image formats must match.`);
27
- }
28
- return { format: downloadNameExtension, source: 'Download name extension' };
29
- }
30
- if (outNameExtension) {
31
- if (cliFlag && outNameExtension !== cliFlag) {
32
- throw new TypeError(`Image format mismatch: ${outName} was given as the S3 out name, but --image-format=${cliFlag} was passed. The image formats must match.`);
33
- }
34
- return { format: outNameExtension, source: 'Out name extension' };
35
- }
36
- if (cliFlag === 'none') {
37
- throw new TypeError('The --image-format flag must not be "none" for stills.');
38
- }
39
- if (cliFlag !== null) {
40
- return { format: cliFlag, source: '--image-format flag' };
41
- }
42
- if (configImageFormat !== null && configImageFormat !== 'none') {
43
- return { format: configImageFormat, source: 'Config file' };
44
- }
45
- return { format: 'png', source: 'Default' };
46
- };
47
- exports.getImageFormat = getImageFormat;
@@ -1,8 +0,0 @@
1
- import type { AwsRegion } from '../../client';
2
- import type { LambdaRoutines } from '../../shared/constants';
3
- export declare const getCloudwatchStreamUrl: ({ region, functionName, method, renderId, }: {
4
- region: AwsRegion;
5
- functionName: string;
6
- method: LambdaRoutines;
7
- renderId: string;
8
- }) => string;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCloudwatchStreamUrl = void 0;
4
- const getCloudwatchStreamUrl = ({ region, functionName, method, renderId, }) => {
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
- };
7
- exports.getCloudwatchStreamUrl = getCloudwatchStreamUrl;
@@ -1,6 +0,0 @@
1
- export declare type WebhookPayload = {
2
- type: 'success' | 'error' | 'timeout';
3
- renderId: string;
4
- bucketName: string;
5
- expectedBucketOwner: string;
6
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- import type { OptimizationProfile } from './types';
2
- export declare const canUseOptimization: ({ optimization, framesPerLambda, frameRange, }: {
3
- optimization: OptimizationProfile | null;
4
- framesPerLambda: number;
5
- frameRange: [number, number];
6
- }) => boolean;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.canUseOptimization = void 0;
4
- const version_1 = require("remotion/version");
5
- const canUseOptimization = ({ optimization, framesPerLambda, frameRange, }) => {
6
- if (!optimization) {
7
- return false;
8
- }
9
- if (optimization.framesPerLambda !== framesPerLambda) {
10
- return false;
11
- }
12
- if (optimization.lambdaVersion !== version_1.VERSION) {
13
- return false;
14
- }
15
- if (optimization.frameRange[0] !== frameRange[0]) {
16
- return false;
17
- }
18
- if (optimization.frameRange[1] !== frameRange[1]) {
19
- return false;
20
- }
21
- return true;
22
- };
23
- exports.canUseOptimization = canUseOptimization;
@@ -1,9 +0,0 @@
1
- import type { AwsRegion } from '../../pricing/aws-regions';
2
- export declare const collectChunkInformation: ({ bucketName, renderId, region, expectedBucketOwner, }: {
3
- bucketName: string;
4
- renderId: string;
5
- region: AwsRegion;
6
- expectedBucketOwner: string;
7
- }) => Promise<(Omit<import("./types").ObjectChunkTimingData, "timings"> & {
8
- timings: number[];
9
- })[]>;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectChunkInformation = void 0;
4
- const constants_1 = require("../../shared/constants");
5
- const stream_to_string_1 = require("../../shared/stream-to-string");
6
- const io_1 = require("../helpers/io");
7
- const collectChunkInformation = async ({ bucketName, renderId, region, expectedBucketOwner, }) => {
8
- const prefix = (0, constants_1.lambdaTimingsPrefix)(renderId);
9
- const timingFiles = await (0, io_1.lambdaLs)({
10
- bucketName,
11
- prefix,
12
- region,
13
- expectedBucketOwner,
14
- });
15
- const timingFileContents = await Promise.all(timingFiles.map(async (file) => {
16
- const contents = await (0, io_1.lambdaReadFile)({
17
- bucketName,
18
- key: file.Key,
19
- region,
20
- expectedBucketOwner,
21
- });
22
- const string = await (0, stream_to_string_1.streamToString)(contents);
23
- return JSON.parse(string);
24
- }));
25
- return timingFileContents;
26
- };
27
- exports.collectChunkInformation = collectChunkInformation;
@@ -1,3 +0,0 @@
1
- import type { TimingProfile } from './types';
2
- export declare const getFrameRangesFromProfile: (profile: TimingProfile) => [number, number][];
3
- export declare const sortProfileByFrameRanges: (profile: TimingProfile) => import("./types").ChunkTimingData[];
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortProfileByFrameRanges = exports.getFrameRangesFromProfile = void 0;
4
- const getFrameRangesFromProfile = (profile) => {
5
- return profile.map((p) => p.frameRange);
6
- };
7
- exports.getFrameRangesFromProfile = getFrameRangesFromProfile;
8
- const sortProfileByFrameRanges = (profile) => {
9
- return profile.slice().sort((a, b) => a.frameRange[0] - b.frameRange[0]);
10
- };
11
- exports.sortProfileByFrameRanges = sortProfileByFrameRanges;
@@ -1,3 +0,0 @@
1
- import type { ChunkTimingData, TimingProfile } from './types';
2
- export declare const getTimingEndTimestamps: (chunk: ChunkTimingData) => number[];
3
- export declare const getProfileDuration: (chunks: TimingProfile) => number;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProfileDuration = exports.getTimingEndTimestamps = void 0;
4
- const getTimingEndTimestamps = (chunk) => {
5
- return chunk.timings.map((timing) => chunk.startDate + timing);
6
- };
7
- exports.getTimingEndTimestamps = getTimingEndTimestamps;
8
- const getProfileTimestamps = (chunks) => {
9
- return chunks.map((c) => (0, exports.getTimingEndTimestamps)(c));
10
- };
11
- const getProfileDuration = (chunks) => {
12
- const startTimeStamps = chunks.map((c) => c.startDate).flat(1);
13
- const endTimestamps = getProfileTimestamps(chunks).flat(1);
14
- const earliest = Math.min(...startTimeStamps);
15
- const latest = Math.max(...endTimestamps);
16
- return latest - earliest;
17
- };
18
- exports.getProfileDuration = getProfileDuration;
@@ -1,2 +0,0 @@
1
- import type { TimingProfile } from './types';
2
- export declare const isValidOptimizationProfile: (profile: TimingProfile) => boolean;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidOptimizationProfile = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const isValidOptimizationProfile = (profile) => {
6
- return profile.every((timing) => {
7
- const frames = renderer_1.RenderInternals.getFramesToRender(timing.frameRange, 1);
8
- const values = Object.values(timing.timings);
9
- return frames.length === values.length && values.every((v) => v > 0);
10
- });
11
- };
12
- exports.isValidOptimizationProfile = isValidOptimizationProfile;
@@ -1,2 +0,0 @@
1
- import type { TimingProfile } from './types';
2
- export declare const optimizeInvocationOrder: (profile: TimingProfile) => TimingProfile;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optimizeInvocationOrder = void 0;
4
- const sort_by_duration_1 = require("./sort-by-duration");
5
- const optimizeInvocationOrder = (profile) => {
6
- const sortedByDuration = (0, sort_by_duration_1.sortProfileByDuration)(profile).reverse();
7
- const sortedByStartTime = profile
8
- .slice()
9
- .map((a) => a.startDate)
10
- .sort((a, b) => a - b);
11
- const result = sortedByStartTime.map((prof, i) => {
12
- return {
13
- ...sortedByDuration[i],
14
- startDate: prof,
15
- };
16
- });
17
- return result;
18
- };
19
- exports.optimizeInvocationOrder = optimizeInvocationOrder;
@@ -1,9 +0,0 @@
1
- import type { TimingProfile } from './types';
2
- export declare const assignFrameToOther: ({ frameRanges, fromChunk, toChunk, framesToShift, }: {
3
- frameRanges: [number, number][];
4
- fromChunk: number;
5
- toChunk: number;
6
- framesToShift: number;
7
- }) => [number, number][];
8
- export declare const optimizeProfile: (_profile: TimingProfile) => TimingProfile;
9
- export declare const optimizeProfileRecursively: (profile: TimingProfile, amount: number) => TimingProfile;
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optimizeProfileRecursively = exports.optimizeProfile = exports.assignFrameToOther = void 0;
4
- const get_frame_ranges_from_profile_1 = require("./get-frame-ranges-from-profile");
5
- const simulate_frame_ranges_1 = require("./simulate-frame-ranges");
6
- const sort_by_duration_1 = require("./sort-by-duration");
7
- const assignFrameToOther = ({ frameRanges, fromChunk, toChunk, framesToShift, }) => {
8
- if (fromChunk < toChunk) {
9
- return frameRanges.map((frameRange, i) => {
10
- if (i === fromChunk) {
11
- return [frameRange[0], frameRange[1] - framesToShift];
12
- }
13
- if (i === toChunk) {
14
- return [frameRange[0] - framesToShift, frameRange[1]];
15
- }
16
- if (i > fromChunk && i < toChunk) {
17
- return [frameRange[0] - framesToShift, frameRange[1] - framesToShift];
18
- }
19
- return frameRange;
20
- });
21
- }
22
- return frameRanges.map((frameRange, i) => {
23
- if (i === fromChunk) {
24
- return [frameRange[0] + framesToShift, frameRange[1]];
25
- }
26
- if (i === toChunk) {
27
- return [frameRange[0], frameRange[1] + framesToShift];
28
- }
29
- if (i > toChunk && i < fromChunk) {
30
- return [frameRange[0] + framesToShift, frameRange[1] + framesToShift];
31
- }
32
- return frameRange;
33
- });
34
- };
35
- exports.assignFrameToOther = assignFrameToOther;
36
- const optimizeProfile = (_profile) => {
37
- const sortedByStart = _profile
38
- .slice()
39
- .sort((a, b) => a.frameRange[0] - b.frameRange[0]);
40
- const sortedByDuration = (0, sort_by_duration_1.sortProfileByDuration)(sortedByStart);
41
- const indexOfFastest = sortedByStart.indexOf(sortedByDuration[0]);
42
- if (indexOfFastest === -1) {
43
- throw new Error('invalid timing profile: ' + JSON.stringify(_profile));
44
- }
45
- const slowest = sortedByDuration[sortedByDuration.length - 1];
46
- const indexOfSlowest = sortedByStart.indexOf(slowest);
47
- if (indexOfSlowest === -1) {
48
- throw new Error('invalid timing profile: ' + JSON.stringify(_profile));
49
- }
50
- const frameRanges = (0, get_frame_ranges_from_profile_1.getFrameRangesFromProfile)(sortedByStart);
51
- if (indexOfFastest === indexOfSlowest) {
52
- return _profile;
53
- }
54
- const newFrameRanges = (0, exports.assignFrameToOther)({
55
- frameRanges,
56
- fromChunk: indexOfSlowest,
57
- toChunk: indexOfFastest,
58
- framesToShift: Math.max(1, Math.min(2, Math.floor(slowest.timings.length / 3))),
59
- });
60
- const simulated = (0, simulate_frame_ranges_1.simulateFrameRanges)({
61
- profile: sortedByStart,
62
- newFrameRanges,
63
- });
64
- return simulated;
65
- };
66
- exports.optimizeProfile = optimizeProfile;
67
- const optimizeProfileRecursively = (profile, amount) => {
68
- let optimized = profile;
69
- for (let i = 0; i < amount; i++) {
70
- optimized = (0, exports.optimizeProfile)(optimized);
71
- }
72
- return optimized;
73
- };
74
- exports.optimizeProfileRecursively = optimizeProfileRecursively;
@@ -1,17 +0,0 @@
1
- import type { AwsRegion } from '../../pricing/aws-regions';
2
- import type { OptimizationProfile } from './types';
3
- export declare const writeOptimization: ({ bucketName, optimization, compositionId, siteId, region, expectedBucketOwner, }: {
4
- bucketName: string;
5
- optimization: OptimizationProfile;
6
- compositionId: string;
7
- siteId: string;
8
- region: AwsRegion;
9
- expectedBucketOwner: string;
10
- }) => Promise<void>;
11
- export declare const getOptimization: ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }: {
12
- bucketName: string;
13
- siteId: string;
14
- compositionId: string;
15
- region: AwsRegion;
16
- expectedBucketOwner: string;
17
- }) => Promise<OptimizationProfile | null>;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOptimization = exports.writeOptimization = void 0;
4
- const constants_1 = require("../../shared/constants");
5
- const stream_to_string_1 = require("../../shared/stream-to-string");
6
- const io_1 = require("../helpers/io");
7
- const writeOptimization = async ({ bucketName, optimization, compositionId, siteId, region, expectedBucketOwner, }) => {
8
- await (0, io_1.lambdaWriteFile)({
9
- bucketName,
10
- body: JSON.stringify(optimization),
11
- key: (0, constants_1.optimizationProfile)(siteId, compositionId) + '.json',
12
- region,
13
- privacy: 'private',
14
- expectedBucketOwner,
15
- downloadBehavior: null,
16
- customCredentials: null,
17
- });
18
- };
19
- exports.writeOptimization = writeOptimization;
20
- const getOptimization = async ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }) => {
21
- const prefix = (0, constants_1.optimizationProfile)(siteId, compositionId);
22
- const dir = await (0, io_1.lambdaLs)({
23
- bucketName,
24
- prefix,
25
- region,
26
- expectedBucketOwner,
27
- });
28
- const files = dir
29
- .sort((a, b) => {
30
- var _a, _b;
31
- return ((_a = a.LastModified) === null || _a === void 0 ? void 0 : _a.getTime()) -
32
- ((_b = b.LastModified) === null || _b === void 0 ? void 0 : _b.getTime());
33
- })
34
- .reverse();
35
- if (files.length === 0) {
36
- return null;
37
- }
38
- const body = await (0, io_1.lambdaReadFile)({
39
- bucketName,
40
- key: files[0].Key,
41
- region,
42
- expectedBucketOwner,
43
- });
44
- const str = await (0, stream_to_string_1.streamToString)(body);
45
- return JSON.parse(str);
46
- };
47
- exports.getOptimization = getOptimization;
@@ -1,7 +0,0 @@
1
- import type { ChunkTimingData, TimingProfile } from './types';
2
- export declare const getTimingForFrame: (profile: TimingProfile, frame: number) => number;
3
- export declare const getSimulatedTimingForFrameRange: (profile: TimingProfile, frameRange: [number, number]) => ChunkTimingData['timings'];
4
- export declare const simulateFrameRanges: ({ profile, newFrameRanges, }: {
5
- profile: TimingProfile;
6
- newFrameRanges: [number, number][];
7
- }) => TimingProfile;