@remotion/lambda 4.0.0-2x.1 → 4.0.0-alpha.111

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 (403) 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 +16 -3
  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 +62 -67
  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 +2 -2
  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 +1 -3
  15. package/dist/api/create-function.js +25 -4
  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 -4
  23. package/dist/api/deploy-function.js +6 -8
  24. package/dist/api/deploy-site.d.ts +11 -2
  25. package/dist/api/deploy-site.js +60 -22
  26. package/dist/api/download-media.d.ts +12 -3
  27. package/dist/api/download-media.js +16 -8
  28. package/dist/api/estimate-price.d.ts +2 -4
  29. package/dist/api/estimate-price.js +4 -10
  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 +2 -1
  41. package/dist/api/get-or-create-bucket.js +6 -11
  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 +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 +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/speculate-function-name.d.ts +14 -0
  67. package/dist/api/speculate-function-name.js +22 -0
  68. package/dist/api/upload-dir.d.ts +4 -3
  69. package/dist/api/upload-dir.js +57 -50
  70. package/dist/api/validate-webhook-signature.d.ts +13 -0
  71. package/dist/api/validate-webhook-signature.js +32 -0
  72. package/dist/cli/args.d.ts +9 -4
  73. package/dist/cli/args.js +1 -5
  74. package/dist/cli/commands/compositions/index.d.ts +2 -0
  75. package/dist/cli/commands/compositions/index.js +44 -0
  76. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  77. package/dist/cli/commands/functions/deploy.js +11 -13
  78. package/dist/cli/commands/functions/index.d.ts +0 -0
  79. package/dist/cli/commands/functions/index.js +16 -17
  80. package/dist/cli/commands/functions/ls.d.ts +0 -0
  81. package/dist/cli/commands/functions/ls.js +9 -7
  82. package/dist/cli/commands/functions/rm.d.ts +0 -0
  83. package/dist/cli/commands/functions/rm.js +8 -2
  84. package/dist/cli/commands/functions/rmall.d.ts +0 -0
  85. package/dist/cli/commands/functions/rmall.js +8 -2
  86. package/dist/cli/commands/policies/policies.d.ts +0 -0
  87. package/dist/cli/commands/policies/policies.js +0 -0
  88. package/dist/cli/commands/policies/role.d.ts +0 -0
  89. package/dist/cli/commands/policies/role.js +0 -0
  90. package/dist/cli/commands/policies/user.d.ts +0 -0
  91. package/dist/cli/commands/policies/user.js +0 -0
  92. package/dist/cli/commands/policies/validate.d.ts +0 -0
  93. package/dist/cli/commands/policies/validate.js +0 -0
  94. package/dist/cli/commands/quotas/increase.d.ts +0 -0
  95. package/dist/cli/commands/quotas/increase.js +28 -8
  96. package/dist/cli/commands/quotas/index.d.ts +0 -0
  97. package/dist/cli/commands/quotas/index.js +8 -9
  98. package/dist/cli/commands/quotas/list.d.ts +0 -0
  99. package/dist/cli/commands/quotas/list.js +0 -0
  100. package/dist/cli/commands/regions.d.ts +0 -0
  101. package/dist/cli/commands/regions.js +6 -2
  102. package/dist/cli/commands/render/progress.d.ts +9 -5
  103. package/dist/cli/commands/render/progress.js +66 -48
  104. package/dist/cli/commands/render/render.d.ts +1 -1
  105. package/dist/cli/commands/render/render.js +86 -29
  106. package/dist/cli/commands/sites/create.d.ts +1 -1
  107. package/dist/cli/commands/sites/create.js +30 -27
  108. package/dist/cli/commands/sites/index.d.ts +1 -1
  109. package/dist/cli/commands/sites/index.js +15 -16
  110. package/dist/cli/commands/sites/ls.d.ts +0 -0
  111. package/dist/cli/commands/sites/ls.js +10 -12
  112. package/dist/cli/commands/sites/rm.d.ts +0 -0
  113. package/dist/cli/commands/sites/rm.js +8 -19
  114. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  115. package/dist/cli/commands/sites/rmall.js +7 -19
  116. package/dist/cli/commands/still.d.ts +1 -1
  117. package/dist/cli/commands/still.js +36 -27
  118. package/dist/cli/get-aws-region.d.ts +0 -0
  119. package/dist/cli/get-aws-region.js +2 -1
  120. package/dist/cli/help.d.ts +0 -0
  121. package/dist/cli/help.js +0 -0
  122. package/dist/cli/helpers/confirm.d.ts +0 -0
  123. package/dist/cli/helpers/confirm.js +0 -0
  124. package/dist/cli/helpers/date-string.d.ts +0 -0
  125. package/dist/cli/helpers/date-string.js +0 -0
  126. package/dist/cli/helpers/find-function-name.d.ts +0 -0
  127. package/dist/cli/helpers/find-function-name.js +37 -7
  128. package/dist/cli/helpers/progress-bar.d.ts +9 -3
  129. package/dist/cli/helpers/progress-bar.js +20 -8
  130. package/dist/cli/helpers/quit.d.ts +0 -0
  131. package/dist/cli/helpers/quit.js +0 -0
  132. package/dist/cli/helpers/yes-or-no.d.ts +0 -0
  133. package/dist/cli/helpers/yes-or-no.js +0 -0
  134. package/dist/cli/index.d.ts +1 -1
  135. package/dist/cli/index.js +20 -9
  136. package/dist/cli/is-cli.d.ts +0 -0
  137. package/dist/cli/is-cli.js +0 -0
  138. package/dist/cli/log.d.ts +12 -0
  139. package/dist/cli/log.js +0 -0
  140. package/dist/client.d.ts +10 -2
  141. package/dist/client.js +11 -1
  142. package/dist/defaults.d.ts +0 -0
  143. package/dist/defaults.js +0 -0
  144. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +2 -6
  145. package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -19
  146. package/dist/functions/chunk-optimization/types.d.ts +0 -11
  147. package/dist/functions/chunk-optimization/types.js +0 -0
  148. package/dist/functions/compositions.d.ts +8 -0
  149. package/dist/functions/compositions.js +56 -0
  150. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
  151. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
  152. package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
  153. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  154. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
  155. package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
  156. package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
  157. package/dist/functions/helpers/check-if-render-exists.js +14 -0
  158. package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
  159. package/dist/functions/helpers/clean-tmpdir.js +1 -1
  160. package/dist/functions/helpers/concat-videos.d.ts +15 -6
  161. package/dist/functions/helpers/concat-videos.js +33 -32
  162. package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
  163. package/dist/functions/helpers/create-post-render-data.js +1 -10
  164. package/dist/functions/helpers/delete-chunks.d.ts +0 -0
  165. package/dist/functions/helpers/delete-chunks.js +0 -0
  166. package/dist/functions/helpers/expected-out-name.d.ts +4 -2
  167. package/dist/functions/helpers/expected-out-name.js +27 -6
  168. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +3 -1
  169. package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
  170. package/dist/functions/helpers/format-costs-info.d.ts +0 -0
  171. package/dist/functions/helpers/format-costs-info.js +0 -0
  172. package/dist/functions/helpers/get-browser-instance.d.ts +0 -0
  173. package/dist/functions/helpers/get-browser-instance.js +2 -2
  174. package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
  175. package/dist/functions/helpers/get-chromium-executable-path.js +3 -2
  176. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
  177. package/dist/functions/helpers/get-cleanup-progress.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 -44
  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 +1 -1
  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 -5
  231. package/dist/functions/helpers/validate-composition.js +9 -4
  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 +15 -4
  237. package/dist/functions/index.js +30 -11
  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 -129
  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 +144 -77
  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 -25
  250. package/dist/index.d.ts +28 -8
  251. package/dist/index.js +27 -6
  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 +126 -44
  275. package/dist/shared/constants.js +21 -11
  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 +1 -1
  285. package/dist/shared/function-zip-path.js +2 -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 +4 -7
  299. package/dist/shared/hosted-layers.js +294 -284
  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-aws-region.d.ts +0 -0
  333. package/dist/shared/validate-aws-region.js +0 -0
  334. package/dist/shared/validate-bucketname.d.ts +5 -0
  335. package/dist/shared/validate-bucketname.js +19 -1
  336. package/dist/shared/validate-custom-role-arn.d.ts +0 -0
  337. package/dist/shared/validate-custom-role-arn.js +0 -0
  338. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  339. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  340. package/dist/shared/validate-download-behavior.d.ts +1 -0
  341. package/dist/shared/validate-download-behavior.js +21 -0
  342. package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
  343. package/dist/shared/validate-frames-per-lambda.js +4 -3
  344. package/dist/shared/validate-lambda-codec.d.ts +4 -0
  345. package/dist/shared/validate-lambda-codec.js +30 -0
  346. package/dist/shared/validate-memory-size.d.ts +0 -0
  347. package/dist/shared/validate-memory-size.js +0 -0
  348. package/dist/shared/validate-outname.d.ts +3 -2
  349. package/dist/shared/validate-outname.js +13 -3
  350. package/dist/shared/validate-presign-expiration.d.ts +0 -2
  351. package/dist/shared/validate-presign-expiration.js +7 -7
  352. package/dist/shared/validate-privacy.d.ts +0 -0
  353. package/dist/shared/validate-privacy.js +2 -2
  354. package/dist/shared/validate-retention-period.d.ts +0 -0
  355. package/dist/shared/validate-retention-period.js +0 -0
  356. package/dist/shared/validate-retries.d.ts +0 -0
  357. package/dist/shared/validate-retries.js +0 -0
  358. package/dist/shared/validate-serveurl.d.ts +0 -0
  359. package/dist/shared/validate-serveurl.js +0 -0
  360. package/dist/shared/validate-site-name.d.ts +0 -0
  361. package/dist/shared/validate-site-name.js +0 -0
  362. package/dist/shared/validate-timeout.d.ts +0 -0
  363. package/dist/shared/validate-timeout.js +0 -0
  364. package/package.json +53 -27
  365. package/remotionlambda-arm64.zip +0 -0
  366. package/remotionlambda-x64.zip +0 -0
  367. package/remotionlambda.zip +0 -0
  368. package/.prettierrc.js +0 -14
  369. package/client.d.ts +0 -1
  370. package/client.js +0 -1
  371. package/dist/api/enable-s3-website.d.ts +0 -5
  372. package/dist/api/enable-s3-website.js +0 -16
  373. package/dist/cli/helpers/format-bytes.d.ts +0 -6
  374. package/dist/cli/helpers/format-bytes.js +0 -103
  375. package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
  376. package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
  377. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  378. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  379. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  380. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  381. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
  382. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  383. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  384. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  385. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  386. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  387. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  388. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  389. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
  390. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  391. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  392. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -45
  393. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
  394. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  395. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  396. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
  397. package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
  398. package/dist/functions/helpers/get-current-architecture.js +0 -11
  399. package/dist/shared/chunk.d.ts +0 -1
  400. package/dist/shared/chunk.js +0 -11
  401. package/dist/shared/validate-architecture.d.ts +0 -4
  402. package/dist/shared/validate-architecture.js +0 -14
  403. package/tsconfig.json +0 -16
package/package.json CHANGED
@@ -1,65 +1,91 @@
1
1
  {
2
2
  "name": "@remotion/lambda",
3
- "version": "4.0.0-2x.1+76868b791",
3
+ "version": "4.0.0-alpha.111+6fd1a79a5",
4
4
  "description": "Distributed renderer for Remotion based on AWS Lambda",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
7
7
  "bin": {
8
8
  "remotion-lambda": "remotion-lambda-cli.js"
9
9
  },
10
- "module": "true",
11
10
  "scripts": {
12
- "testintegration": "jest src/test/integration --runInBand",
11
+ "testintegration": "vitest src/test/integration --run",
13
12
  "lint": "eslint src --ext ts,tsx",
14
- "test": "jest src/test/unit",
13
+ "test": "vitest src/test/unit --run",
15
14
  "watch": "tsc -w",
16
15
  "build": "tsc -d && pnpm run buildlambda",
17
16
  "buildlambda": "ts-node src/admin/bundle-lambda.ts",
18
- "start": "ts-node src/run.ts"
17
+ "start": "ts-node src/run.ts",
18
+ "prepublishOnly": "ts-node src/admin/bundle-lambda.ts && node ensure-version-match.js"
19
19
  },
20
- "author": "",
20
+ "author": "Jonny Burger <jonny@remotion.dev>",
21
21
  "license": "MIT",
22
22
  "repository": {
23
23
  "url": "https://github.com/JonnyBurger/remotion"
24
24
  },
25
25
  "dependencies": {
26
- "@aws-sdk/abort-controller": "3.55.0",
27
- "@aws-sdk/client-cloudwatch-logs": "3.58.0",
28
- "@aws-sdk/client-iam": "3.58.0",
29
- "@aws-sdk/client-lambda": "3.58.0",
30
- "@aws-sdk/client-s3": "3.58.0",
31
- "@aws-sdk/client-service-quotas": "3.58.0",
32
- "@aws-sdk/lib-storage": "3.58.0",
33
- "@aws-sdk/s3-request-presigner": "3.58.0",
34
- "@remotion/bundler": "4.0.0-2x.1+76868b791",
35
- "@remotion/cli": "4.0.0-2x.1+76868b791",
36
- "@remotion/renderer": "4.0.0-2x.1+76868b791",
26
+ "@aws-sdk/abort-controller": "3.272.0",
27
+ "@aws-sdk/client-cloudwatch-logs": "3.272.0",
28
+ "@aws-sdk/client-iam": "3.272.0",
29
+ "@aws-sdk/client-lambda": "3.272.0",
30
+ "@aws-sdk/client-s3": "3.272.0",
31
+ "@aws-sdk/client-service-quotas": "3.272.0",
32
+ "@aws-sdk/client-sts": "3.272.0",
33
+ "@aws-sdk/credential-providers": "3.272.0",
34
+ "@aws-sdk/lib-storage": "3.272.0",
35
+ "@aws-sdk/s3-request-presigner": "3.272.0",
36
+ "@remotion/bundler": "4.0.0-alpha.111+6fd1a79a5",
37
+ "@remotion/cli": "4.0.0-alpha.111+6fd1a79a5",
38
+ "@remotion/renderer": "4.0.0-alpha.111+6fd1a79a5",
37
39
  "aws-policies": "^1.0.1",
38
40
  "mime-types": "2.1.34",
39
- "remotion": "4.0.0-2x.1+76868b791"
40
- },
41
- "peerDependencies": {
42
- "react": ">=16.8.0",
43
- "react-dom": ">=16.8.0"
41
+ "remotion": "4.0.0-alpha.111+6fd1a79a5"
44
42
  },
45
43
  "devDependencies": {
46
44
  "@jonny/eslint-config": "3.0.266",
47
- "@types/jest": "^27.0.2",
45
+ "@remotion/bundler": "workspace:*",
46
+ "@remotion/compositor-linux-arm64-musl": "4.0.0-alpha.111+6fd1a79a5",
48
47
  "@types/mime-types": "2.1.1",
49
48
  "@types/minimist": "1.2.2",
50
49
  "@types/node": "^14.14.14",
51
50
  "@types/prompt": "^1.1.0",
52
- "eslint": "8.13.0",
53
- "jest": "^27.2.4",
51
+ "eslint": "8.25.0",
54
52
  "prettier": "^2.4.1",
55
53
  "prettier-plugin-organize-imports": "^2.3.4",
56
- "ts-jest": "^27.0.5",
57
54
  "ts-node": "^10.8.0",
58
55
  "typescript": "^4.7.0",
56
+ "vitest": "^0.24.3",
59
57
  "zip-lib": "^0.7.2"
60
58
  },
59
+ "peerDependencies": {
60
+ "@remotion/bundler": "workspace:*"
61
+ },
61
62
  "publishConfig": {
62
63
  "access": "public"
63
64
  },
64
- "gitHead": "76868b791ce0f109ee1ae24eac7c8d38b95dee3d"
65
+ "exports": {
66
+ "./package.json": "./package.json",
67
+ ".": "./dist/index.js",
68
+ "./defaults": "./dist/defaults.js",
69
+ "./regions": "./dist/regions.js",
70
+ "./policies": "./dist/api/iam-validation/suggested-policy.js",
71
+ "./client": "./dist/client.js",
72
+ "./layers": "./dist/shared/hosted-layers.js"
73
+ },
74
+ "typesVersions": {
75
+ ">=1.0": {
76
+ "defaults": [
77
+ "dist/defaults.d.ts"
78
+ ],
79
+ "regions": [
80
+ "dist/regions.d.ts"
81
+ ],
82
+ "policies": [
83
+ "dist/api/iam-validation/suggested-policy.d.ts"
84
+ ],
85
+ "client": [
86
+ "dist/client.d.ts"
87
+ ]
88
+ }
89
+ },
90
+ "gitHead": "6fd1a79a5bab8c77aa15cab08a51916419c1c4b4"
65
91
  }
Binary file
Binary file
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).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,6 +0,0 @@
1
- export declare const formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
2
- locale: string;
3
- bits?: boolean;
4
- binary?: boolean;
5
- signed: boolean;
6
- }) => string;
@@ -1,103 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatBytes = void 0;
4
- const BYTE_UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
5
- const BIBYTE_UNITS = [
6
- 'B',
7
- 'kiB',
8
- 'MiB',
9
- 'GiB',
10
- 'TiB',
11
- 'PiB',
12
- 'EiB',
13
- 'ZiB',
14
- 'YiB',
15
- ];
16
- const BIT_UNITS = [
17
- 'b',
18
- 'kbit',
19
- 'Mbit',
20
- 'Gbit',
21
- 'Tbit',
22
- 'Pbit',
23
- 'Ebit',
24
- 'Zbit',
25
- 'Ybit',
26
- ];
27
- const BIBIT_UNITS = [
28
- 'b',
29
- 'kibit',
30
- 'Mibit',
31
- 'Gibit',
32
- 'Tibit',
33
- 'Pibit',
34
- 'Eibit',
35
- 'Zibit',
36
- 'Yibit',
37
- ];
38
- /*
39
- Formats the given number using `Number#toLocaleString`.
40
- - If locale is a string, the value is expected to be a locale-key (for example: `de`).
41
- - If locale is true, the system default locale is used for translation.
42
- - If no value for locale is specified, the number is returned unmodified.
43
- */
44
- const toLocaleString = (number, locale, options) => {
45
- if (typeof locale === 'string' || Array.isArray(locale)) {
46
- return number.toLocaleString(locale, options);
47
- }
48
- if (locale === true || options !== undefined) {
49
- return number.toLocaleString(undefined, options);
50
- }
51
- return String(number);
52
- };
53
- const formatBytes = (number, options = {
54
- locale: 'en-US',
55
- signed: false,
56
- maximumFractionDigits: 1,
57
- }) => {
58
- if (!Number.isFinite(number)) {
59
- throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
60
- }
61
- options = { bits: false, binary: false, ...options };
62
- const UNITS = options.bits
63
- ? options.binary
64
- ? BIBIT_UNITS
65
- : BIT_UNITS
66
- : options.binary
67
- ? BIBYTE_UNITS
68
- : BYTE_UNITS;
69
- if (options.signed && number === 0) {
70
- return `0 $ {
71
- UNITS[0]
72
- }`;
73
- }
74
- const isNegative = number < 0;
75
- const prefix = isNegative ? '-' : options.signed ? '+' : '';
76
- if (isNegative) {
77
- number = -number;
78
- }
79
- let localeOptions;
80
- if (options.minimumFractionDigits !== undefined) {
81
- localeOptions = {
82
- minimumFractionDigits: options.minimumFractionDigits,
83
- };
84
- }
85
- if (options.maximumFractionDigits !== undefined) {
86
- localeOptions = {
87
- maximumFractionDigits: options.maximumFractionDigits,
88
- ...localeOptions,
89
- };
90
- }
91
- if (number < 1) {
92
- const numString = toLocaleString(number, options.locale, localeOptions);
93
- return prefix + numString + ' ' + UNITS[0];
94
- }
95
- const exponent = Math.min(Math.floor(options.binary
96
- ? Math.log(number) / Math.log(1024)
97
- : Math.log10(number) / 3), UNITS.length - 1);
98
- number /= (options.binary ? 1024 : 1000) ** exponent;
99
- const numberString = toLocaleString(Number(number), options.locale, localeOptions);
100
- const unit = UNITS[exponent];
101
- return prefix + numberString + ' ' + unit;
102
- };
103
- exports.formatBytes = formatBytes;
@@ -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
- 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 defaults_1 = require("../../defaults");
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 !== defaults_1.CURRENT_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.getDurationFromFrameRange(timing.frameRange, 0);
8
- const values = Object.values(timing.timings);
9
- return frames === 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,45 +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
- });
16
- };
17
- exports.writeOptimization = writeOptimization;
18
- const getOptimization = async ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }) => {
19
- const prefix = (0, constants_1.optimizationProfile)(siteId, compositionId);
20
- const dir = await (0, io_1.lambdaLs)({
21
- bucketName,
22
- prefix,
23
- region,
24
- expectedBucketOwner,
25
- });
26
- const files = dir
27
- .sort((a, b) => {
28
- var _a, _b;
29
- return ((_a = a.LastModified) === null || _a === void 0 ? void 0 : _a.getTime()) -
30
- ((_b = b.LastModified) === null || _b === void 0 ? void 0 : _b.getTime());
31
- })
32
- .reverse();
33
- if (files.length === 0) {
34
- return null;
35
- }
36
- const body = await (0, io_1.lambdaReadFile)({
37
- bucketName,
38
- key: files[0].Key,
39
- region,
40
- expectedBucketOwner,
41
- });
42
- const str = await (0, stream_to_string_1.streamToString)(body);
43
- return JSON.parse(str);
44
- };
45
- 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;