@remotion/lambda 4.0.0-reorg.8 → 4.0.0-retry.8

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 (367) 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 +0 -0
  4. package/dist/admin/make-layer-public.d.ts +0 -0
  5. package/dist/admin/make-layer-public.js +6 -6
  6. package/dist/api/bucket-exists.d.ts +0 -0
  7. package/dist/api/bucket-exists.js +1 -1
  8. package/dist/api/clean-items.d.ts +0 -0
  9. package/dist/api/clean-items.js +1 -1
  10. package/dist/api/create-bucket.d.ts +0 -0
  11. package/dist/api/create-bucket.js +1 -1
  12. package/dist/api/create-function.d.ts +0 -0
  13. package/dist/api/create-function.js +0 -0
  14. package/dist/api/delete-function.d.ts +0 -0
  15. package/dist/api/delete-function.js +0 -0
  16. package/dist/api/delete-render.d.ts +19 -0
  17. package/dist/api/delete-render.js +66 -0
  18. package/dist/api/delete-site.d.ts +0 -0
  19. package/dist/api/delete-site.js +0 -5
  20. package/dist/api/deploy-function.d.ts +0 -0
  21. package/dist/api/deploy-function.js +4 -2
  22. package/dist/api/deploy-site.d.ts +2 -0
  23. package/dist/api/deploy-site.js +2 -0
  24. package/dist/api/download-media.d.ts +13 -0
  25. package/dist/api/download-media.js +15 -3
  26. package/dist/api/enable-s3-website.d.ts +0 -0
  27. package/dist/api/enable-s3-website.js +1 -1
  28. package/dist/api/estimate-price.d.ts +0 -0
  29. package/dist/api/estimate-price.js +0 -0
  30. package/dist/api/get-aws-client.d.ts +4 -2
  31. package/dist/api/get-aws-client.js +7 -2
  32. package/dist/api/get-buckets.d.ts +0 -0
  33. package/dist/api/get-buckets.js +2 -2
  34. package/dist/api/get-function-info.d.ts +1 -2
  35. package/dist/api/get-function-info.js +0 -0
  36. package/dist/api/get-functions.d.ts +0 -0
  37. package/dist/api/get-functions.js +2 -1
  38. package/dist/api/get-or-create-bucket.d.ts +0 -0
  39. package/dist/api/get-or-create-bucket.js +0 -0
  40. package/dist/api/get-regions.d.ts +0 -0
  41. package/dist/api/get-regions.js +0 -0
  42. package/dist/api/get-render-progress.d.ts +4 -1
  43. package/dist/api/get-render-progress.js +5 -1
  44. package/dist/api/get-sites.d.ts +0 -0
  45. package/dist/api/get-sites.js +0 -0
  46. package/dist/api/iam-validation/role-permissions.d.ts +0 -0
  47. package/dist/api/iam-validation/role-permissions.js +0 -0
  48. package/dist/api/iam-validation/simulate-rule.d.ts +0 -0
  49. package/dist/api/iam-validation/simulate-rule.js +0 -0
  50. package/dist/api/iam-validation/simulate.d.ts +0 -0
  51. package/dist/api/iam-validation/simulate.js +0 -0
  52. package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
  53. package/dist/api/iam-validation/suggested-policy.js +0 -0
  54. package/dist/api/iam-validation/user-permissions.d.ts +0 -0
  55. package/dist/api/iam-validation/user-permissions.js +0 -0
  56. package/dist/api/mock-functions.d.ts +4 -5
  57. package/dist/api/mock-functions.js +0 -0
  58. package/dist/api/presign-url.d.ts +0 -0
  59. package/dist/api/presign-url.js +6 -1
  60. package/dist/api/render-media-on-lambda.d.ts +22 -10
  61. package/dist/api/render-media-on-lambda.js +77 -40
  62. package/dist/api/render-still-on-lambda.d.ts +6 -3
  63. package/dist/api/render-still-on-lambda.js +55 -29
  64. package/dist/api/upload-dir.d.ts +0 -0
  65. package/dist/api/upload-dir.js +6 -2
  66. package/dist/api/validate-webhook-signature.d.ts +13 -0
  67. package/dist/api/validate-webhook-signature.js +32 -0
  68. package/dist/cli/args.d.ts +4 -2
  69. package/dist/cli/args.js +1 -5
  70. package/dist/cli/commands/functions/deploy.d.ts +0 -0
  71. package/dist/cli/commands/functions/deploy.js +2 -1
  72. package/dist/cli/commands/functions/index.d.ts +0 -0
  73. package/dist/cli/commands/functions/index.js +0 -0
  74. package/dist/cli/commands/functions/ls.d.ts +0 -0
  75. package/dist/cli/commands/functions/ls.js +0 -0
  76. package/dist/cli/commands/functions/rm.d.ts +0 -0
  77. package/dist/cli/commands/functions/rm.js +0 -0
  78. package/dist/cli/commands/functions/rmall.d.ts +0 -0
  79. package/dist/cli/commands/functions/rmall.js +0 -0
  80. package/dist/cli/commands/policies/policies.d.ts +0 -0
  81. package/dist/cli/commands/policies/policies.js +0 -0
  82. package/dist/cli/commands/policies/role.d.ts +0 -0
  83. package/dist/cli/commands/policies/role.js +0 -0
  84. package/dist/cli/commands/policies/user.d.ts +0 -0
  85. package/dist/cli/commands/policies/user.js +0 -0
  86. package/dist/cli/commands/policies/validate.d.ts +0 -0
  87. package/dist/cli/commands/policies/validate.js +0 -0
  88. package/dist/cli/commands/quotas/increase.d.ts +0 -0
  89. package/dist/cli/commands/quotas/increase.js +0 -0
  90. package/dist/cli/commands/quotas/index.d.ts +0 -0
  91. package/dist/cli/commands/quotas/index.js +0 -0
  92. package/dist/cli/commands/quotas/list.d.ts +0 -0
  93. package/dist/cli/commands/quotas/list.js +0 -0
  94. package/dist/cli/commands/regions.d.ts +0 -0
  95. package/dist/cli/commands/regions.js +0 -0
  96. package/dist/cli/commands/render/progress.d.ts +0 -0
  97. package/dist/cli/commands/render/progress.js +0 -0
  98. package/dist/cli/commands/render/render.d.ts +0 -0
  99. package/dist/cli/commands/render/render.js +38 -22
  100. package/dist/cli/commands/sites/create.d.ts +1 -1
  101. package/dist/cli/commands/sites/create.js +6 -4
  102. package/dist/cli/commands/sites/index.d.ts +1 -1
  103. package/dist/cli/commands/sites/index.js +2 -2
  104. package/dist/cli/commands/sites/ls.d.ts +0 -0
  105. package/dist/cli/commands/sites/ls.js +0 -0
  106. package/dist/cli/commands/sites/rm.d.ts +0 -0
  107. package/dist/cli/commands/sites/rm.js +0 -0
  108. package/dist/cli/commands/sites/rmall.d.ts +0 -0
  109. package/dist/cli/commands/sites/rmall.js +0 -0
  110. package/dist/cli/commands/still.d.ts +0 -0
  111. package/dist/cli/commands/still.js +35 -24
  112. package/dist/cli/get-aws-region.d.ts +0 -0
  113. package/dist/cli/get-aws-region.js +2 -1
  114. package/dist/cli/help.d.ts +0 -0
  115. package/dist/cli/help.js +0 -0
  116. package/dist/cli/helpers/confirm.d.ts +0 -0
  117. package/dist/cli/helpers/confirm.js +0 -0
  118. package/dist/cli/helpers/date-string.d.ts +0 -0
  119. package/dist/cli/helpers/date-string.js +0 -0
  120. package/dist/cli/helpers/find-function-name.d.ts +0 -0
  121. package/dist/cli/helpers/find-function-name.js +3 -2
  122. package/dist/cli/helpers/progress-bar.d.ts +0 -0
  123. package/dist/cli/helpers/progress-bar.js +0 -0
  124. package/dist/cli/helpers/quit.d.ts +0 -0
  125. package/dist/cli/helpers/quit.js +0 -0
  126. package/dist/cli/helpers/yes-or-no.d.ts +0 -0
  127. package/dist/cli/helpers/yes-or-no.js +0 -0
  128. package/dist/cli/index.d.ts +1 -1
  129. package/dist/cli/index.js +7 -6
  130. package/dist/cli/is-cli.d.ts +0 -0
  131. package/dist/cli/is-cli.js +0 -0
  132. package/dist/cli/log.d.ts +0 -0
  133. package/dist/cli/log.js +0 -0
  134. package/dist/client.d.ts +4 -2
  135. package/dist/client.js +3 -1
  136. package/dist/defaults.d.ts +0 -0
  137. package/dist/defaults.js +0 -0
  138. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
  139. package/dist/functions/chunk-optimization/plan-frame-ranges.js +1 -14
  140. package/dist/functions/chunk-optimization/types.d.ts +0 -12
  141. package/dist/functions/chunk-optimization/types.js +0 -0
  142. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
  143. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
  144. package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
  145. package/dist/functions/helpers/calculate-chunk-times.js +0 -0
  146. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +0 -0
  147. package/dist/functions/helpers/calculate-price-from-bucket.js +0 -0
  148. package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
  149. package/dist/functions/helpers/check-if-render-exists.js +14 -0
  150. package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
  151. package/dist/functions/helpers/clean-tmpdir.js +1 -1
  152. package/dist/functions/helpers/concat-videos.d.ts +3 -1
  153. package/dist/functions/helpers/concat-videos.js +25 -9
  154. package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
  155. package/dist/functions/helpers/create-post-render-data.js +7 -2
  156. package/dist/functions/helpers/delete-chunks.d.ts +0 -0
  157. package/dist/functions/helpers/delete-chunks.js +0 -0
  158. package/dist/functions/helpers/expected-out-name.d.ts +4 -2
  159. package/dist/functions/helpers/expected-out-name.js +26 -5
  160. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +3 -1
  161. package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
  162. package/dist/functions/helpers/format-costs-info.d.ts +0 -0
  163. package/dist/functions/helpers/format-costs-info.js +0 -0
  164. package/dist/functions/helpers/get-browser-instance.d.ts +0 -0
  165. package/dist/functions/helpers/get-browser-instance.js +0 -0
  166. package/dist/functions/helpers/get-chromium-executable-path.d.ts +0 -0
  167. package/dist/functions/helpers/get-chromium-executable-path.js +0 -0
  168. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
  169. package/dist/functions/helpers/get-cleanup-progress.js +0 -0
  170. package/dist/functions/helpers/get-current-architecture.d.ts +0 -0
  171. package/dist/functions/helpers/get-current-architecture.js +0 -0
  172. package/dist/functions/helpers/get-current-region.d.ts +0 -0
  173. package/dist/functions/helpers/get-current-region.js +0 -0
  174. package/dist/functions/helpers/get-custom-out-name.d.ts +6 -0
  175. package/dist/functions/helpers/get-custom-out-name.js +31 -0
  176. package/dist/functions/helpers/get-encoding-metadata.d.ts +0 -0
  177. package/dist/functions/helpers/get-encoding-metadata.js +0 -0
  178. package/dist/functions/helpers/get-files-in-folder.d.ts +0 -0
  179. package/dist/functions/helpers/get-files-in-folder.js +0 -0
  180. package/dist/functions/helpers/get-files-to-delete.d.ts +0 -0
  181. package/dist/functions/helpers/get-files-to-delete.js +1 -1
  182. package/dist/functions/helpers/get-final-encoding-status.d.ts +0 -0
  183. package/dist/functions/helpers/get-final-encoding-status.js +0 -0
  184. package/dist/functions/helpers/get-folder-size.d.ts +0 -0
  185. package/dist/functions/helpers/get-folder-size.js +0 -0
  186. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +7 -2
  187. package/dist/functions/helpers/get-lambdas-invoked-stats.js +8 -8
  188. package/dist/functions/helpers/get-output-url-from-metadata.d.ts +2 -1
  189. package/dist/functions/helpers/get-output-url-from-metadata.js +2 -2
  190. package/dist/functions/helpers/get-overall-progress.d.ts +0 -0
  191. package/dist/functions/helpers/get-overall-progress.js +0 -0
  192. package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
  193. package/dist/functions/helpers/get-post-render-data.js +0 -0
  194. package/dist/functions/helpers/get-progress.d.ts +4 -2
  195. package/dist/functions/helpers/get-progress.js +20 -7
  196. package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
  197. package/dist/functions/helpers/get-render-metadata.js +0 -0
  198. package/dist/functions/helpers/get-retry-stats.d.ts +0 -0
  199. package/dist/functions/helpers/get-retry-stats.js +1 -1
  200. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
  201. package/dist/functions/helpers/get-time-to-finish.js +0 -0
  202. package/dist/functions/helpers/inspect-errors.d.ts +0 -0
  203. package/dist/functions/helpers/inspect-errors.js +0 -0
  204. package/dist/functions/helpers/io.d.ts +17 -1
  205. package/dist/functions/helpers/io.js +29 -8
  206. package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
  207. package/dist/functions/helpers/is-enosp-err.js +0 -0
  208. package/dist/functions/helpers/is-warm.d.ts +0 -0
  209. package/dist/functions/helpers/is-warm.js +0 -0
  210. package/dist/functions/helpers/min-max.d.ts +1 -1
  211. package/dist/functions/helpers/min-max.js +1 -1
  212. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
  213. package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
  214. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
  215. package/dist/functions/helpers/print-concurrency-curve.js +0 -0
  216. package/dist/functions/helpers/read-with-progress.d.ts +3 -1
  217. package/dist/functions/helpers/read-with-progress.js +3 -3
  218. package/dist/functions/helpers/timer.d.ts +0 -0
  219. package/dist/functions/helpers/timer.js +0 -0
  220. package/dist/functions/helpers/validate-composition.d.ts +5 -2
  221. package/dist/functions/helpers/validate-composition.js +7 -2
  222. package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
  223. package/dist/functions/helpers/write-lambda-error.js +1 -0
  224. package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
  225. package/dist/functions/helpers/write-post-render-data.js +1 -0
  226. package/dist/functions/index.d.ts +0 -0
  227. package/dist/functions/index.js +16 -6
  228. package/dist/functions/info.d.ts +2 -2
  229. package/dist/functions/info.js +2 -1
  230. package/dist/functions/launch.d.ts +1 -0
  231. package/dist/functions/launch.js +272 -79
  232. package/dist/functions/progress.d.ts +1 -1
  233. package/dist/functions/progress.js +10 -1
  234. package/dist/functions/renderer.d.ts +0 -0
  235. package/dist/functions/renderer.js +123 -73
  236. package/dist/functions/start.d.ts +5 -1
  237. package/dist/functions/start.js +27 -1
  238. package/dist/functions/still.d.ts +0 -0
  239. package/dist/functions/still.js +42 -8
  240. package/dist/index.d.ts +8 -2
  241. package/dist/index.js +5 -1
  242. package/dist/internals.d.ts +1 -1
  243. package/dist/internals.js +0 -0
  244. package/dist/pricing/aws-regions.d.ts +0 -0
  245. package/dist/pricing/aws-regions.js +0 -0
  246. package/dist/pricing/price-per-1-s.d.ts +0 -0
  247. package/dist/pricing/price-per-1-s.js +0 -0
  248. package/dist/regions.d.ts +0 -0
  249. package/dist/regions.js +0 -0
  250. package/dist/shared/await.d.ts +0 -0
  251. package/dist/shared/await.js +0 -0
  252. package/dist/shared/aws-clients.d.ts +13 -2
  253. package/dist/shared/aws-clients.js +56 -26
  254. package/dist/shared/bundle-site.d.ts +2 -1
  255. package/dist/shared/bundle-site.js +0 -0
  256. package/dist/shared/call-lambda.d.ts +0 -0
  257. package/dist/shared/call-lambda.js +0 -0
  258. package/dist/shared/check-credentials.d.ts +0 -0
  259. package/dist/shared/check-credentials.js +0 -0
  260. package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
  261. package/dist/shared/cleanup-serialized-input-props.js +19 -0
  262. package/dist/shared/constants.d.ts +57 -15
  263. package/dist/shared/constants.js +19 -10
  264. package/dist/shared/content-disposition-header.d.ts +0 -0
  265. package/dist/shared/content-disposition-header.js +0 -0
  266. package/dist/shared/convert-to-serve-url.d.ts +0 -0
  267. package/dist/shared/convert-to-serve-url.js +0 -0
  268. package/dist/shared/deserialize-input-props.d.ts +8 -0
  269. package/dist/shared/deserialize-input-props.js +26 -0
  270. package/dist/shared/docs-url.d.ts +0 -0
  271. package/dist/shared/docs-url.js +0 -0
  272. package/dist/shared/function-zip-path.d.ts +0 -0
  273. package/dist/shared/function-zip-path.js +0 -0
  274. package/dist/shared/get-account-id.d.ts +0 -0
  275. package/dist/shared/get-account-id.js +0 -0
  276. package/dist/{cli/helpers → shared}/get-cloudwatch-stream-url.d.ts +2 -2
  277. package/dist/{cli/helpers → shared}/get-cloudwatch-stream-url.js +0 -0
  278. package/dist/shared/get-function-version.d.ts +1 -2
  279. package/dist/shared/get-function-version.js +0 -0
  280. package/dist/shared/get-most-expensive-chunks.d.ts +0 -0
  281. package/dist/shared/get-most-expensive-chunks.js +0 -0
  282. package/dist/shared/hosted-layers.d.ts +0 -0
  283. package/dist/shared/hosted-layers.js +60 -60
  284. package/dist/shared/invoke-webhook.d.ts +44 -0
  285. package/dist/shared/invoke-webhook.js +89 -0
  286. package/dist/shared/is-in-lambda.d.ts +0 -0
  287. package/dist/shared/is-in-lambda.js +5 -1
  288. package/dist/shared/lambda-version-string.d.ts +1 -0
  289. package/dist/shared/lambda-version-string.js +7 -0
  290. package/dist/shared/make-s3-key.d.ts +0 -0
  291. package/dist/shared/make-s3-key.js +0 -0
  292. package/dist/shared/make-s3-url.d.ts +0 -0
  293. package/dist/shared/make-s3-url.js +0 -0
  294. package/dist/shared/p-limit.d.ts +0 -0
  295. package/dist/shared/p-limit.js +0 -0
  296. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
  297. package/dist/shared/parse-lambda-initialized-key.js +0 -0
  298. package/dist/shared/parse-lambda-timings-key.d.ts +0 -0
  299. package/dist/shared/parse-lambda-timings-key.js +0 -0
  300. package/dist/shared/random-hash.d.ts +0 -0
  301. package/dist/shared/random-hash.js +0 -0
  302. package/dist/shared/return-values.d.ts +0 -0
  303. package/dist/shared/return-values.js +0 -0
  304. package/dist/shared/serialize-input-props.d.ts +7 -0
  305. package/dist/shared/serialize-input-props.js +42 -0
  306. package/dist/shared/sleep.d.ts +0 -0
  307. package/dist/shared/sleep.js +0 -0
  308. package/dist/shared/stream-to-string.d.ts +0 -0
  309. package/dist/shared/stream-to-string.js +0 -0
  310. package/dist/shared/truthy.d.ts +0 -0
  311. package/dist/shared/truthy.js +0 -0
  312. package/dist/shared/validate-architecture.d.ts +0 -0
  313. package/dist/shared/validate-architecture.js +0 -0
  314. package/dist/shared/validate-aws-region.d.ts +0 -0
  315. package/dist/shared/validate-aws-region.js +0 -0
  316. package/dist/shared/validate-bucketname.d.ts +0 -0
  317. package/dist/shared/validate-bucketname.js +0 -0
  318. package/dist/shared/validate-custom-role-arn.d.ts +0 -0
  319. package/dist/shared/validate-custom-role-arn.js +0 -0
  320. package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
  321. package/dist/shared/validate-disk-size-in-mb.js +0 -0
  322. package/dist/shared/validate-download-behavior.d.ts +0 -0
  323. package/dist/shared/validate-download-behavior.js +0 -0
  324. package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
  325. package/dist/shared/validate-frames-per-lambda.js +4 -3
  326. package/dist/shared/validate-lambda-codec.d.ts +1 -1
  327. package/dist/shared/validate-lambda-codec.js +1 -0
  328. package/dist/shared/validate-memory-size.d.ts +0 -0
  329. package/dist/shared/validate-memory-size.js +0 -0
  330. package/dist/shared/validate-outname.d.ts +3 -2
  331. package/dist/shared/validate-outname.js +5 -1
  332. package/dist/shared/validate-presign-expiration.d.ts +0 -0
  333. package/dist/shared/validate-presign-expiration.js +0 -0
  334. package/dist/shared/validate-privacy.d.ts +0 -0
  335. package/dist/shared/validate-privacy.js +2 -2
  336. package/dist/shared/validate-retention-period.d.ts +0 -0
  337. package/dist/shared/validate-retention-period.js +0 -0
  338. package/dist/shared/validate-retries.d.ts +0 -0
  339. package/dist/shared/validate-retries.js +0 -0
  340. package/dist/shared/validate-serveurl.d.ts +0 -0
  341. package/dist/shared/validate-serveurl.js +0 -0
  342. package/dist/shared/validate-site-name.d.ts +0 -0
  343. package/dist/shared/validate-site-name.js +0 -0
  344. package/dist/shared/validate-timeout.d.ts +0 -0
  345. package/dist/shared/validate-timeout.js +0 -0
  346. package/package.json +20 -23
  347. package/remotionlambda.zip +0 -0
  348. package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
  349. package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
  350. package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
  351. package/dist/functions/chunk-optimization/collect-data.js +0 -27
  352. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
  353. package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
  354. package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
  355. package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
  356. package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
  357. package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
  358. package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
  359. package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
  360. package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
  361. package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
  362. package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
  363. package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -46
  364. package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
  365. package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
  366. package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
  367. package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateFramesPerLambda = void 0;
4
4
  const constants_1 = require("./constants");
5
- const validateFramesPerLambda = (framesPerLambda) => {
5
+ const validateFramesPerLambda = ({ framesPerLambda, durationInFrames, }) => {
6
6
  if (framesPerLambda === null) {
7
7
  return;
8
8
  }
@@ -21,8 +21,9 @@ const validateFramesPerLambda = (framesPerLambda) => {
21
21
  if (framesPerLambda % 1 !== 0) {
22
22
  throw new TypeError(`'framesPerLambda' needs to be an integer, passed ${framesPerLambda}`);
23
23
  }
24
- if (framesPerLambda < constants_1.MINIMUM_FRAMES_PER_LAMBDA) {
25
- throw new TypeError(`The framesPerLambda needs to be at least 4, but is ${framesPerLambda}`);
24
+ const effectiveMinimum = Math.min(constants_1.MINIMUM_FRAMES_PER_LAMBDA, durationInFrames);
25
+ if (framesPerLambda < effectiveMinimum) {
26
+ throw new TypeError(`The framesPerLambda needs to be at least ${effectiveMinimum}, but is ${framesPerLambda}`);
26
27
  }
27
28
  };
28
29
  exports.validateFramesPerLambda = validateFramesPerLambda;
@@ -1,4 +1,4 @@
1
- declare const lambdaCodecs: readonly ["h264-mkv", "h264", "vp8", "mp3", "aac", "wav", "gif"];
1
+ declare const lambdaCodecs: readonly ["h264-mkv", "h264", "vp8", "mp3", "aac", "wav", "gif", "prores"];
2
2
  export declare type LambdaCodec = typeof lambdaCodecs[number];
3
3
  export declare const validateLambdaCodec: (codec: unknown) => LambdaCodec;
4
4
  export {};
@@ -9,6 +9,7 @@ const lambdaCodecs = [
9
9
  'aac',
10
10
  'wav',
11
11
  'gif',
12
+ 'prores',
12
13
  ];
13
14
  const validateLambdaCodec = (codec) => {
14
15
  if (typeof codec !== 'string') {
File without changes
File without changes
@@ -1,2 +1,3 @@
1
- import type { OutNameInput } from './constants';
2
- export declare const validateOutname: (outName: OutNameInput | undefined | null) => void;
1
+ import type { Codec } from '@remotion/renderer';
2
+ import type { OutNameInputWithoutCredentials } from './constants';
3
+ export declare const validateOutname: (outName: OutNameInputWithoutCredentials | undefined | null, codec?: Codec) => void;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateOutname = void 0;
4
+ const renderer_1 = require("@remotion/renderer");
4
5
  const validate_bucketname_1 = require("./validate-bucketname");
5
6
  const validateS3Key = (s3Key) => {
6
7
  if (typeof s3Key !== 'string') {
@@ -12,11 +13,14 @@ const validateS3Key = (s3Key) => {
12
13
  '. Check for invalid characters.');
13
14
  }
14
15
  };
15
- const validateOutname = (outName) => {
16
+ const validateOutname = (outName, codec) => {
16
17
  if (typeof outName === 'undefined' || outName === null) {
17
18
  return;
18
19
  }
19
20
  if (typeof outName === 'string') {
21
+ if (codec) {
22
+ (0, renderer_1.validateOutputFilename)(codec, renderer_1.RenderInternals.getExtensionOfFilename(outName !== null && outName !== void 0 ? outName : null));
23
+ }
20
24
  validateS3Key(outName);
21
25
  return;
22
26
  }
File without changes
File without changes
File without changes
@@ -5,8 +5,8 @@ function validatePrivacy(privacy) {
5
5
  if (typeof privacy !== 'string') {
6
6
  throw new TypeError('Privacy must be a string');
7
7
  }
8
- if (privacy !== 'private' && privacy !== 'public') {
9
- throw new TypeError('Privacy must be either "private" or "public-read"');
8
+ if (privacy !== 'private' && privacy !== 'public' && privacy !== 'no-acl') {
9
+ throw new TypeError('Privacy must be either "private", "public-read" or "no-acl"');
10
10
  }
11
11
  }
12
12
  exports.validatePrivacy = validatePrivacy;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,22 +1,21 @@
1
1
  {
2
2
  "name": "@remotion/lambda",
3
- "version": "4.0.0-reorg.8+a097e1615",
3
+ "version": "4.0.0-retry.8+c5430346e",
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
- "prepublish": "node ensure-version-match.js",
13
- "testintegration": "jest src/test/integration --runInBand",
11
+ "testintegration": "vitest src/test/integration --run",
14
12
  "lint": "eslint src --ext ts,tsx",
15
- "test": "jest src/test/unit",
13
+ "test": "vitest src/test/unit --run",
16
14
  "watch": "tsc -w",
17
15
  "build": "tsc -d && pnpm run buildlambda",
18
16
  "buildlambda": "ts-node src/admin/bundle-lambda.ts",
19
- "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"
20
19
  },
21
20
  "author": "",
22
21
  "license": "MIT",
@@ -24,20 +23,20 @@
24
23
  "url": "https://github.com/JonnyBurger/remotion"
25
24
  },
26
25
  "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-reorg.8+a097e1615",
36
- "@remotion/cli": "4.0.0-reorg.8+a097e1615",
37
- "@remotion/renderer": "4.0.0-reorg.8+a097e1615",
26
+ "@aws-sdk/abort-controller": "3.190.0",
27
+ "@aws-sdk/client-cloudwatch-logs": "3.190.0",
28
+ "@aws-sdk/client-iam": "3.190.0",
29
+ "@aws-sdk/client-lambda": "3.190.0",
30
+ "@aws-sdk/client-s3": "3.190.0",
31
+ "@aws-sdk/client-service-quotas": "3.190.0",
32
+ "@aws-sdk/lib-storage": "3.190.0",
33
+ "@aws-sdk/s3-request-presigner": "3.190.0",
34
+ "@remotion/bundler": "4.0.0-retry.8+c5430346e",
35
+ "@remotion/cli": "4.0.0-retry.8+c5430346e",
36
+ "@remotion/renderer": "4.0.0-retry.8+c5430346e",
38
37
  "aws-policies": "^1.0.1",
39
38
  "mime-types": "2.1.34",
40
- "remotion": "4.0.0-reorg.8+a097e1615"
39
+ "remotion": "4.0.0-retry.8+c5430346e"
41
40
  },
42
41
  "peerDependencies": {
43
42
  "react": ">=16.8.0",
@@ -45,22 +44,20 @@
45
44
  },
46
45
  "devDependencies": {
47
46
  "@jonny/eslint-config": "3.0.266",
48
- "@types/jest": "^27.0.2",
49
47
  "@types/mime-types": "2.1.1",
50
48
  "@types/minimist": "1.2.2",
51
49
  "@types/node": "^14.14.14",
52
50
  "@types/prompt": "^1.1.0",
53
- "eslint": "8.13.0",
54
- "jest": "^27.2.4",
51
+ "eslint": "8.25.0",
55
52
  "prettier": "^2.4.1",
56
53
  "prettier-plugin-organize-imports": "^2.3.4",
57
- "ts-jest": "^27.0.5",
58
54
  "ts-node": "^10.8.0",
59
55
  "typescript": "^4.7.0",
56
+ "vitest": "^0.24.3",
60
57
  "zip-lib": "^0.7.2"
61
58
  },
62
59
  "publishConfig": {
63
60
  "access": "public"
64
61
  },
65
- "gitHead": "a097e161545839dad9d784cf0eab1ccf908ab2e0"
62
+ "gitHead": "c5430346ee9385f740948246b3d0774913f9ad6c"
66
63
  }
Binary file
@@ -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.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,46 +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
- });
17
- };
18
- exports.writeOptimization = writeOptimization;
19
- const getOptimization = async ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }) => {
20
- const prefix = (0, constants_1.optimizationProfile)(siteId, compositionId);
21
- const dir = await (0, io_1.lambdaLs)({
22
- bucketName,
23
- prefix,
24
- region,
25
- expectedBucketOwner,
26
- });
27
- const files = dir
28
- .sort((a, b) => {
29
- var _a, _b;
30
- return ((_a = a.LastModified) === null || _a === void 0 ? void 0 : _a.getTime()) -
31
- ((_b = b.LastModified) === null || _b === void 0 ? void 0 : _b.getTime());
32
- })
33
- .reverse();
34
- if (files.length === 0) {
35
- return null;
36
- }
37
- const body = await (0, io_1.lambdaReadFile)({
38
- bucketName,
39
- key: files[0].Key,
40
- region,
41
- expectedBucketOwner,
42
- });
43
- const str = await (0, stream_to_string_1.streamToString)(body);
44
- return JSON.parse(str);
45
- };
46
- 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;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.simulateFrameRanges = exports.getSimulatedTimingForFrameRange = exports.getTimingForFrame = void 0;
4
- const getTimingForFrame = (profile, frame) => {
5
- for (const timingInfo of profile) {
6
- if (timingInfo.frameRange[0] > frame || timingInfo.frameRange[1] < frame) {
7
- continue;
8
- }
9
- let lastTime = timingInfo.startDate;
10
- for (let i = 0; i < timingInfo.timings.length; i++) {
11
- const actualFrame = i + timingInfo.frameRange[0];
12
- const timing = timingInfo.timings[i];
13
- const absolute = timing + timingInfo.startDate;
14
- if (actualFrame === frame) {
15
- return absolute - lastTime;
16
- }
17
- lastTime = absolute;
18
- }
19
- }
20
- throw new Error(`Frame ${frame} was not rendered`);
21
- };
22
- exports.getTimingForFrame = getTimingForFrame;
23
- const getSimulatedTimingForFrameRange = (profile, frameRange) => {
24
- const timings = [];
25
- let totalDuration = 0;
26
- for (let i = frameRange[0]; i <= frameRange[1]; i++) {
27
- const timingForFrame = (0, exports.getTimingForFrame)(profile, i);
28
- timings.push(timingForFrame + totalDuration);
29
- totalDuration += timingForFrame;
30
- }
31
- return timings;
32
- };
33
- exports.getSimulatedTimingForFrameRange = getSimulatedTimingForFrameRange;
34
- const simulateFrameRanges = ({ profile, newFrameRanges, }) => {
35
- if (profile.length !== newFrameRanges.length) {
36
- throw new Error('Expected previous and new frame ranges to be equal');
37
- }
38
- return newFrameRanges.map((range, i) => {
39
- return {
40
- timings: (0, exports.getSimulatedTimingForFrameRange)(profile, range),
41
- chunk: i,
42
- frameRange: range,
43
- startDate: profile[i].startDate,
44
- };
45
- });
46
- };
47
- exports.simulateFrameRanges = simulateFrameRanges;
@@ -1,2 +0,0 @@
1
- import type { ChunkTimingData, TimingProfile } from './types';
2
- export declare const sortProfileByDuration: (profile: TimingProfile) => ChunkTimingData[];
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortProfileByDuration = void 0;
4
- const get_profile_duration_1 = require("./get-profile-duration");
5
- const durationCache = new Map();
6
- const getChunkDuration = (chunk) => {
7
- const inCache = durationCache.get(chunk);
8
- if (inCache) {
9
- return inCache;
10
- }
11
- const timestamps = (0, get_profile_duration_1.getTimingEndTimestamps)(chunk);
12
- const duration = Math.max(...timestamps) - chunk.startDate;
13
- durationCache.set(chunk, duration);
14
- return duration;
15
- };
16
- const sortProfileByDuration = (profile) => {
17
- const sortedByDuration = profile.slice().sort((a, b) => {
18
- const aDuration = getChunkDuration(a);
19
- const bDuration = getChunkDuration(b);
20
- return aDuration - bDuration;
21
- });
22
- durationCache.clear();
23
- return sortedByDuration;
24
- };
25
- exports.sortProfileByDuration = sortProfileByDuration;