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

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 +2 -2
  33. package/dist/api/get-buckets.js +35 -12
  34. package/dist/api/get-compositions-on-lambda.d.ts +33 -0
  35. package/dist/api/get-compositions-on-lambda.js +57 -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 +6 -6
  47. package/dist/api/get-sites.js +5 -4
  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 +79 -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 +27 -11
  65. package/dist/api/render-media-on-lambda.js +15 -49
  66. package/dist/api/render-still-on-lambda.d.ts +17 -6
  67. package/dist/api/render-still-on-lambda.js +25 -10
  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 +37 -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 +7 -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 +14 -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 +59 -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 +2 -3
  175. package/dist/functions/helpers/get-browser-instance.js +9 -5
  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 +151 -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 -44
  252. package/dist/functions/start.d.ts +1 -1
  253. package/dist/functions/start.js +21 -8
  254. package/dist/functions/still.d.ts +1 -1
  255. package/dist/functions/still.js +78 -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 +135 -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
@@ -1,18 +1,18 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
- export declare type FunctionInfo = {
2
+ export type FunctionInfo = {
3
3
  functionName: string;
4
4
  timeoutInSeconds: number;
5
5
  memorySizeInMb: number;
6
6
  version: string | null;
7
7
  diskSizeInMb: number;
8
8
  };
9
- export declare type GetFunctionInfoInput = {
9
+ export type GetFunctionInfoInput = {
10
10
  region: AwsRegion;
11
11
  functionName: string;
12
12
  };
13
13
  /**
14
14
  * @description Given a region and function name, returns information about the function such as version, memory size and timeout.
15
- * @link https://remotion.dev/docs/lambda/getfunctioninfo
15
+ * @see [Documentation](https://remotion.dev/docs/lambda/getfunctioninfo)
16
16
  * @param {AwsRegion} options.region The region in which the function resides in.
17
17
  * @param {string} options.functionName The name of the function
18
18
  * @return {Promise<FunctionInfo>} Promise resolving to information about the function.
@@ -8,7 +8,7 @@ const get_function_version_1 = require("../shared/get-function-version");
8
8
  const validate_aws_region_1 = require("../shared/validate-aws-region");
9
9
  /**
10
10
  * @description Given a region and function name, returns information about the function such as version, memory size and timeout.
11
- * @link https://remotion.dev/docs/lambda/getfunctioninfo
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/getfunctioninfo)
12
12
  * @param {AwsRegion} options.region The region in which the function resides in.
13
13
  * @param {string} options.functionName The name of the function
14
14
  * @return {Promise<FunctionInfo>} Promise resolving to information about the function.
@@ -1,16 +1,14 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
2
  import type { FunctionInfo } from './get-function-info';
3
- export declare type GetFunctionsInput = {
3
+ export type GetFunctionsInput = {
4
4
  region: AwsRegion;
5
5
  compatibleOnly: boolean;
6
6
  };
7
7
  /**
8
- *
9
- *
10
8
  * @description Lists Remotion Lambda render functions deployed to AWS Lambda.
11
- * @link https://remotion.dev/docs/lambda/getfunctions
12
- * @param options.region The region of which the functions should be listed.
13
- * @param options.compatibleOnly Whether only functions compatible with the installed version of Remotion Lambda should be returned.
9
+ * @see [Documentation](https://remotion.dev/docs/lambda/getfunctions)
10
+ * @param params.region The region of which the functions should be listed.
11
+ * @param params.compatibleOnly Whether only functions compatible with the installed version of Remotion Lambda should be returned.
14
12
  * @returns {Promise<FunctionInfo[]>} An array with the objects containing information about the deployed functions.
15
13
  */
16
- export declare const getFunctions: (options: GetFunctionsInput) => Promise<FunctionInfo[]>;
14
+ export declare const getFunctions: (params: GetFunctionsInput) => Promise<FunctionInfo[]>;
@@ -27,19 +27,17 @@ const getAllFunctions = async ({ existing, nextMarker, region, }) => {
27
27
  return allLambdas;
28
28
  };
29
29
  /**
30
- *
31
- *
32
30
  * @description Lists Remotion Lambda render functions deployed to AWS Lambda.
33
- * @link https://remotion.dev/docs/lambda/getfunctions
34
- * @param options.region The region of which the functions should be listed.
35
- * @param options.compatibleOnly Whether only functions compatible with the installed version of Remotion Lambda should be returned.
31
+ * @see [Documentation](https://remotion.dev/docs/lambda/getfunctions)
32
+ * @param params.region The region of which the functions should be listed.
33
+ * @param params.compatibleOnly Whether only functions compatible with the installed version of Remotion Lambda should be returned.
36
34
  * @returns {Promise<FunctionInfo[]>} An array with the objects containing information about the deployed functions.
37
35
  */
38
- const getFunctions = async (options) => {
36
+ const getFunctions = async (params) => {
39
37
  const lambdas = await getAllFunctions({
40
38
  existing: [],
41
39
  nextMarker: null,
42
- region: options.region,
40
+ region: params.region,
43
41
  });
44
42
  const remotionLambdas = lambdas.filter((f) => {
45
43
  var _a;
@@ -49,7 +47,7 @@ const getFunctions = async (options) => {
49
47
  try {
50
48
  const version = await (0, get_function_version_1.getFunctionVersion)({
51
49
  functionName: fn.FunctionName,
52
- region: options.region,
50
+ region: params.region,
53
51
  });
54
52
  return version;
55
53
  }
@@ -67,11 +65,11 @@ const getFunctions = async (options) => {
67
65
  diskSizeInMb: (_b = (_a = lambda.EphemeralStorage) === null || _a === void 0 ? void 0 : _a.Size) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_EPHEMERAL_STORAGE_IN_MB,
68
66
  };
69
67
  });
70
- if (!options.compatibleOnly) {
68
+ if (!params.compatibleOnly) {
71
69
  return list;
72
70
  }
73
71
  return list.filter((l) => {
74
- if (!options.compatibleOnly) {
72
+ if (!params.compatibleOnly) {
75
73
  return true;
76
74
  }
77
75
  return l.version === version_1.VERSION;
@@ -1,15 +1,15 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
- export declare type GetOrCreateBucketInput = {
2
+ export type GetOrCreateBucketInput = {
3
3
  region: AwsRegion;
4
- onBucketEnsured?: () => void;
5
4
  };
6
- export declare type GetOrCreateBucketOutput = {
5
+ export type GetOrCreateBucketOutput = {
7
6
  bucketName: string;
7
+ alreadyExisted: boolean;
8
8
  };
9
9
  /**
10
10
  * @description Creates a bucket for Remotion Lambda in your S3 account. If one already exists, it will get returned instead.
11
- * @link https://remotion.dev/docs/lambda/getorcreatebucket
12
- * @param options.region The region in which you want your S3 bucket to reside in.
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/getorcreatebucket)
12
+ * @param params.region The region in which you want your S3 bucket to reside in.
13
13
  * @returns {Promise<GetOrCreateBucketOutput>} An object containing the `bucketName`.
14
14
  */
15
- export declare const getOrCreateBucket: (options: GetOrCreateBucketInput) => Promise<GetOrCreateBucketOutput>;
15
+ export declare const getOrCreateBucket: (params: GetOrCreateBucketInput) => Promise<GetOrCreateBucketOutput>;
@@ -2,36 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOrCreateBucket = void 0;
4
4
  const constants_1 = require("../shared/constants");
5
- const random_hash_1 = require("../shared/random-hash");
5
+ const validate_bucketname_1 = require("../shared/validate-bucketname");
6
6
  const create_bucket_1 = require("./create-bucket");
7
- const enable_s3_website_1 = require("./enable-s3-website");
8
7
  const get_buckets_1 = require("./get-buckets");
9
8
  /**
10
9
  * @description Creates a bucket for Remotion Lambda in your S3 account. If one already exists, it will get returned instead.
11
- * @link https://remotion.dev/docs/lambda/getorcreatebucket
12
- * @param options.region The region in which you want your S3 bucket to reside in.
10
+ * @see [Documentation](https://remotion.dev/docs/lambda/getorcreatebucket)
11
+ * @param params.region The region in which you want your S3 bucket to reside in.
13
12
  * @returns {Promise<GetOrCreateBucketOutput>} An object containing the `bucketName`.
14
13
  */
15
- const getOrCreateBucket = async (options) => {
16
- var _a, _b;
17
- const { remotionBuckets } = await (0, get_buckets_1.getRemotionS3Buckets)(options.region);
14
+ const getOrCreateBucket = async (params) => {
15
+ const { remotionBuckets } = await (0, get_buckets_1.getRemotionS3Buckets)(params.region);
18
16
  if (remotionBuckets.length > 1) {
19
- throw new Error(`You have multiple buckets (${remotionBuckets.map((b) => b.name)}) in your S3 region (${options.region}) starting with "${constants_1.REMOTION_BUCKET_PREFIX}". This is an error, please delete buckets so that you have one maximum.`);
17
+ throw new Error(`You have multiple buckets (${remotionBuckets.map((b) => b.name)}) in your S3 region (${params.region}) starting with "${constants_1.REMOTION_BUCKET_PREFIX}". Please see https://remotion.dev/docs/lambda/multiple-buckets.`);
20
18
  }
21
19
  if (remotionBuckets.length === 1) {
22
- (_a = options.onBucketEnsured) === null || _a === void 0 ? void 0 : _a.call(options);
23
- return { bucketName: remotionBuckets[0].name };
20
+ return { bucketName: remotionBuckets[0].name, alreadyExisted: true };
24
21
  }
25
- const bucketName = constants_1.REMOTION_BUCKET_PREFIX + (0, random_hash_1.randomHash)();
22
+ const bucketName = (0, validate_bucketname_1.makeBucketName)(params.region);
26
23
  await (0, create_bucket_1.createBucket)({
27
24
  bucketName,
28
- region: options.region,
25
+ region: params.region,
29
26
  });
30
- (_b = options.onBucketEnsured) === null || _b === void 0 ? void 0 : _b.call(options);
31
- await (0, enable_s3_website_1.enableS3Website)({
32
- region: options.region,
33
- bucketName,
34
- });
35
- return { bucketName };
27
+ return { bucketName, alreadyExisted: false };
36
28
  };
37
29
  exports.getOrCreateBucket = getOrCreateBucket;
@@ -1,7 +1,11 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
+ type Options = {
3
+ enabledByDefaultOnly?: boolean;
4
+ };
2
5
  /**
3
6
  * @description Gets an array of all supported AWS regions of this release of Remotion Lambda.
4
- * @link https://remotion.dev/docs/lambda/getregions
7
+ * @see [Documentation](https://remotion.dev/docs/lambda/getregions)
5
8
  * @returns {AwsRegion[]} A list of AWS regions.
6
9
  */
7
- export declare const getRegions: () => readonly AwsRegion[];
10
+ export declare const getRegions: (options?: Options) => readonly AwsRegion[];
11
+ export {};
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRegions = void 0;
4
+ const aws_regions_1 = require("../pricing/aws-regions");
4
5
  const regions_1 = require("../regions");
5
6
  /**
6
7
  * @description Gets an array of all supported AWS regions of this release of Remotion Lambda.
7
- * @link https://remotion.dev/docs/lambda/getregions
8
+ * @see [Documentation](https://remotion.dev/docs/lambda/getregions)
8
9
  * @returns {AwsRegion[]} A list of AWS regions.
9
10
  */
10
- const getRegions = () => {
11
- return regions_1.AWS_REGIONS;
11
+ const getRegions = (options) => {
12
+ var _a;
13
+ const onlyEnabledByDefault = (_a = options === null || options === void 0 ? void 0 : options.enabledByDefaultOnly) !== null && _a !== void 0 ? _a : false;
14
+ return onlyEnabledByDefault ? aws_regions_1.DEFAULT_AWS_REGIONS : regions_1.AWS_REGIONS;
12
15
  };
13
16
  exports.getRegions = getRegions;
@@ -1,7 +1,7 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
2
  import type { CustomCredentials } from '../shared/aws-clients';
3
3
  import type { RenderProgress } from '../shared/constants';
4
- export declare type GetRenderInput = {
4
+ export type GetRenderInput = {
5
5
  functionName: string;
6
6
  bucketName: string;
7
7
  renderId: string;
@@ -10,7 +10,7 @@ export declare type GetRenderInput = {
10
10
  };
11
11
  /**
12
12
  * @description Gets the current status of a render originally triggered via renderMediaOnLambda().
13
- * @link https://remotion.dev/docs/lambda/getrenderprogress
13
+ * @see [Documentation](https://remotion.dev/docs/lambda/getrenderprogress)
14
14
  * @param {string} params.functionName The name of the function used to trigger the render.
15
15
  * @param {string} params.bucketName The name of the bucket that was used in the render.
16
16
  * @param {string} params.renderId The ID of the render that was returned by `renderMediaOnLambda()`.
@@ -18,4 +18,4 @@ export declare type GetRenderInput = {
18
18
  * @param {CustomCredentials} params.s3OutputProvider? Endpoint and credentials if the output file is stored outside of AWS.
19
19
  * @returns {Promise<RenderProgress>} See documentation for this function to see all properties on the return object.
20
20
  */
21
- export declare const getRenderProgress: ({ functionName, bucketName, renderId, region, s3OutputProvider, }: GetRenderInput) => Promise<RenderProgress>;
21
+ export declare const getRenderProgress: (input: GetRenderInput) => Promise<RenderProgress>;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRenderProgress = void 0;
4
- const version_1 = require("remotion/version");
5
4
  const call_lambda_1 = require("../shared/call-lambda");
6
5
  const constants_1 = require("../shared/constants");
6
+ const make_lambda_payload_1 = require("./make-lambda-payload");
7
7
  /**
8
8
  * @description Gets the current status of a render originally triggered via renderMediaOnLambda().
9
- * @link https://remotion.dev/docs/lambda/getrenderprogress
9
+ * @see [Documentation](https://remotion.dev/docs/lambda/getrenderprogress)
10
10
  * @param {string} params.functionName The name of the function used to trigger the render.
11
11
  * @param {string} params.bucketName The name of the bucket that was used in the render.
12
12
  * @param {string} params.renderId The ID of the render that was returned by `renderMediaOnLambda()`.
@@ -14,17 +14,12 @@ const constants_1 = require("../shared/constants");
14
14
  * @param {CustomCredentials} params.s3OutputProvider? Endpoint and credentials if the output file is stored outside of AWS.
15
15
  * @returns {Promise<RenderProgress>} See documentation for this function to see all properties on the return object.
16
16
  */
17
- const getRenderProgress = async ({ functionName, bucketName, renderId, region, s3OutputProvider, }) => {
17
+ const getRenderProgress = async (input) => {
18
18
  const result = await (0, call_lambda_1.callLambda)({
19
- functionName,
19
+ functionName: input.functionName,
20
20
  type: constants_1.LambdaRoutines.status,
21
- payload: {
22
- bucketName,
23
- renderId,
24
- version: version_1.VERSION,
25
- s3OutputProvider,
26
- },
27
- region,
21
+ payload: (0, make_lambda_payload_1.getRenderProgressPayload)(input),
22
+ region: input.region,
28
23
  });
29
24
  return result;
30
25
  };
@@ -1,25 +1,25 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
2
  import type { BucketWithLocation } from './get-buckets';
3
- declare type Site = {
3
+ type Site = {
4
4
  sizeInBytes: number;
5
5
  lastModified: number | null;
6
6
  bucketName: string;
7
7
  id: string;
8
8
  serveUrl: string;
9
9
  };
10
- export declare type GetSitesInput = {
10
+ export type GetSitesInput = {
11
11
  region: AwsRegion;
12
+ forceBucketName?: string;
12
13
  };
13
- export declare type GetSitesOutput = {
14
+ export type GetSitesOutput = {
14
15
  sites: Site[];
15
16
  buckets: BucketWithLocation[];
16
17
  };
17
18
  /**
18
- *
19
19
  * @description Gets all the deployed sites for a certain AWS region.
20
- * @link https://remotion.dev/docs/lambda/getsites
20
+ * @see [Documentation](https://remotion.dev/docs/lambda/getsites)
21
21
  * @param {AwsRegion} params.region The AWS region that you want to query for.
22
22
  * @returns {Promise<GetSitesOutput>} A Promise containing an object with `sites` and `bucket` keys. Consult documentation for details.
23
23
  */
24
- export declare const getSites: ({ region, }: GetSitesInput) => Promise<GetSitesOutput>;
24
+ export declare const getSites: ({ region, forceBucketName, }: GetSitesInput) => Promise<GetSitesOutput>;
25
25
  export {};
@@ -7,15 +7,16 @@ const get_account_id_1 = require("../shared/get-account-id");
7
7
  const make_s3_url_1 = require("../shared/make-s3-url");
8
8
  const get_buckets_1 = require("./get-buckets");
9
9
  /**
10
- *
11
10
  * @description Gets all the deployed sites for a certain AWS region.
12
- * @link https://remotion.dev/docs/lambda/getsites
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/getsites)
13
12
  * @param {AwsRegion} params.region The AWS region that you want to query for.
14
13
  * @returns {Promise<GetSitesOutput>} A Promise containing an object with `sites` and `bucket` keys. Consult documentation for details.
15
14
  */
16
- const getSites = async ({ region, }) => {
15
+ const getSites = async ({ region, forceBucketName, }) => {
17
16
  var _a;
18
- const { remotionBuckets } = await (0, get_buckets_1.getRemotionS3Buckets)(region);
17
+ const { remotionBuckets } = forceBucketName
18
+ ? await (0, get_buckets_1.getRemotionS3Buckets)(region, forceBucketName)
19
+ : await (0, get_buckets_1.getRemotionS3Buckets)(region);
19
20
  const accountId = await (0, get_account_id_1.getAccountId)({ region });
20
21
  const sites = {};
21
22
  for (const bucket of remotionBuckets) {
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  import type { AwsRegion } from '../../pricing/aws-regions';
2
- export declare type EvalDecision = 'allowed' | 'explicitDeny' | 'implicitDeny';
3
- export declare type SimulationResult = {
2
+ export type EvalDecision = 'allowed' | 'explicitDeny' | 'implicitDeny';
3
+ export type SimulationResult = {
4
4
  decision: EvalDecision;
5
5
  name: string;
6
6
  };
@@ -2,32 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.simulateRule = void 0;
4
4
  const client_iam_1 = require("@aws-sdk/client-iam");
5
- const aws_policies_1 = require("aws-policies");
6
5
  const aws_clients_1 = require("../../shared/aws-clients");
7
6
  const simulateRule = async (options) => {
8
7
  var _a;
9
8
  try {
10
- if (options.actionNames.includes(aws_policies_1.iam.GetUser)) {
11
- try {
12
- await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.GetUserCommand({}));
13
- const result = [
14
- {
15
- decision: 'allowed',
16
- name: aws_policies_1.iam.GetUser,
17
- },
18
- ];
19
- return result;
20
- }
21
- catch (err) {
22
- const result = [
23
- {
24
- decision: 'explicitDeny',
25
- name: aws_policies_1.iam.GetUser,
26
- },
27
- ];
28
- return result;
29
- }
30
- }
31
9
  const res = await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.SimulatePrincipalPolicyCommand({
32
10
  ActionNames: options.actionNames,
33
11
  PolicySourceArn: options.arn,
@@ -1,16 +1,16 @@
1
1
  import type { AwsRegion } from '../../pricing/aws-regions';
2
2
  import type { SimulationResult } from './simulate-rule';
3
3
  export declare const logPermissionOutput: (output: SimulationResult) => string;
4
- export declare type SimulatePermissionsInput = {
4
+ export type SimulatePermissionsInput = {
5
5
  region: AwsRegion;
6
6
  onSimulation?: (result: SimulationResult) => void;
7
7
  };
8
- export declare type SimulatePermissionsOutput = {
8
+ export type SimulatePermissionsOutput = {
9
9
  results: SimulationResult[];
10
10
  };
11
11
  /**
12
12
  * @description Simulates calls using the AWS Simulator to validate the correct permissions.
13
- * @link http://remotion.dev/docs/lambda/simulatepermissions
13
+ * @see [Documentation](http://remotion.dev/docs/lambda/simulatepermissions)
14
14
  * @param {AwsRegion} options.region The region which you would like to validate
15
15
  * @param {(result: SimulationResult) => void} options.onSimulation The region which you would like to validate
16
16
  * @returns {Promise<SimulatePermissionsOutput>} See documentation for detailed response structure.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.simulatePermissions = exports.logPermissionOutput = void 0;
4
- const client_iam_1 = require("@aws-sdk/client-iam");
4
+ const client_sts_1 = require("@aws-sdk/client-sts");
5
5
  const aws_clients_1 = require("../../shared/aws-clients");
6
6
  const simulate_rule_1 = require("./simulate-rule");
7
7
  const user_permissions_1 = require("./user-permissions");
@@ -19,22 +19,43 @@ const logPermissionOutput = (output) => {
19
19
  exports.logPermissionOutput = logPermissionOutput;
20
20
  /**
21
21
  * @description Simulates calls using the AWS Simulator to validate the correct permissions.
22
- * @link http://remotion.dev/docs/lambda/simulatepermissions
22
+ * @see [Documentation](http://remotion.dev/docs/lambda/simulatepermissions)
23
23
  * @param {AwsRegion} options.region The region which you would like to validate
24
24
  * @param {(result: SimulationResult) => void} options.onSimulation The region which you would like to validate
25
25
  * @returns {Promise<SimulatePermissionsOutput>} See documentation for detailed response structure.
26
26
  */
27
27
  const simulatePermissions = async (options) => {
28
28
  var _a;
29
- const user = await (0, aws_clients_1.getIamClient)(options.region).send(new client_iam_1.GetUserCommand({}));
30
- if (!user || !user.User) {
31
- throw new Error('No valid AWS user detected');
29
+ const callerIdentity = await (0, aws_clients_1.getStsClient)(options.region).send(new client_sts_1.GetCallerIdentityCommand({}));
30
+ if (!(callerIdentity === null || callerIdentity === void 0 ? void 0 : callerIdentity.Arn)) {
31
+ throw new Error('No valid AWS Caller Identity detected');
32
+ }
33
+ const callerIdentityArnComponents = callerIdentity.Arn.match(/arn:aws:([^:]+)::(\d+):([^/]+)(.*)/);
34
+ if (!callerIdentityArnComponents) {
35
+ throw new Error('Unknown AWS Caller Identity ARN detected');
36
+ }
37
+ const callerIdentityArnType = callerIdentityArnComponents[1];
38
+ let callerArn;
39
+ if (callerIdentityArnType === 'iam' &&
40
+ callerIdentityArnComponents[3] === 'user') {
41
+ callerArn = callerIdentity.Arn;
42
+ }
43
+ else if (callerIdentityArnType === 'sts' &&
44
+ callerIdentityArnComponents[3] === 'assumed-role') {
45
+ const assumedRoleComponents = callerIdentityArnComponents[4].match(/\/([^/]+)\/(.*)/);
46
+ if (!assumedRoleComponents) {
47
+ throw new Error('Unsupported AWS Caller Identity as Assumed-Role ARN detected');
48
+ }
49
+ callerArn = `arn:aws:iam::${callerIdentityArnComponents[2]}:role/${assumedRoleComponents[1]}`;
50
+ }
51
+ else {
52
+ throw new Error('Unsupported AWS Caller Identity ARN detected');
32
53
  }
33
54
  const results = [];
34
55
  for (const per of user_permissions_1.requiredPermissions) {
35
56
  const result = await (0, simulate_rule_1.simulateRule)({
36
57
  actionNames: per.actions,
37
- arn: user.User.Arn,
58
+ arn: callerArn,
38
59
  region: options.region,
39
60
  resource: per.resource,
40
61
  retries: 2,
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  import { iam, lambda, logs, s3, servicequotas } from 'aws-policies';
2
2
  export declare const requiredPermissions: {
3
- actions: (s3 | iam | lambda | logs | servicequotas)[];
3
+ actions: (s3 | iam | lambda | 'lambda:PutRuntimeManagementConfig' | logs | servicequotas)[];
4
4
  resource: string[];
5
5
  id: string;
6
6
  }[];
@@ -15,12 +15,6 @@ exports.requiredPermissions = [
15
15
  ],
16
16
  resource: ['*'],
17
17
  },
18
- {
19
- id: 'Identity',
20
- actions: [aws_policies_1.iam.GetUser],
21
- // eslint-disable-next-line no-template-curly-in-string
22
- resource: ['arn:aws:iam::*:user/${aws:username}'],
23
- },
24
18
  {
25
19
  id: 'PermissionValidation',
26
20
  actions: [aws_policies_1.iam.SimulatePrincipalPolicy],
@@ -43,8 +37,8 @@ exports.requiredPermissions = [
43
37
  aws_policies_1.s3.GetBucketLocation,
44
38
  aws_policies_1.s3.PutBucketAcl,
45
39
  aws_policies_1.s3.DeleteBucket,
46
- aws_policies_1.s3.PutBucketWebsite,
47
- aws_policies_1.s3.DeleteBucketWebsite,
40
+ aws_policies_1.s3.PutBucketOwnershipControls,
41
+ aws_policies_1.s3.PutBucketPublicAccessBlock,
48
42
  ],
49
43
  resource: [`arn:aws:s3:::${constants_1.REMOTION_BUCKET_PREFIX}*`],
50
44
  },
@@ -66,6 +60,7 @@ exports.requiredPermissions = [
66
60
  aws_policies_1.lambda.CreateFunction,
67
61
  aws_policies_1.lambda.DeleteFunction,
68
62
  aws_policies_1.lambda.PutFunctionEventInvokeConfig,
63
+ 'lambda:PutRuntimeManagementConfig',
69
64
  ],
70
65
  resource: [`arn:aws:lambda:*:*:function:${constants_1.RENDER_FN_PREFIX}*`],
71
66
  },
@@ -0,0 +1,5 @@
1
+ import type { LambdaStartPayload, LambdaStatusPayload } from '../defaults';
2
+ import type { GetRenderInput } from './get-render-progress';
3
+ import type { RenderMediaOnLambdaInput } from './render-media-on-lambda';
4
+ export declare const makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, downloadBehavior, muted, overwrite, dumpBrowserLogs, jpegQuality, quality, }: RenderMediaOnLambdaInput) => Promise<LambdaStartPayload>;
5
+ export declare const getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, }: GetRenderInput) => LambdaStatusPayload;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRenderProgressPayload = exports.makeLambdaRenderMediaPayload = void 0;
4
+ const version_1 = require("remotion/version");
5
+ const defaults_1 = require("../defaults");
6
+ const serialize_input_props_1 = require("../shared/serialize-input-props");
7
+ const validate_download_behavior_1 = require("../shared/validate-download-behavior");
8
+ const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
9
+ const validate_lambda_codec_1 = require("../shared/validate-lambda-codec");
10
+ const validate_serveurl_1 = require("../shared/validate-serveurl");
11
+ const renderer_1 = require("@remotion/renderer");
12
+ const makeLambdaRenderMediaPayload = async ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, downloadBehavior, muted, overwrite, dumpBrowserLogs, jpegQuality, quality, }) => {
13
+ if (quality) {
14
+ throw new Error('quality has been renamed to jpegQuality. Please rename the option.');
15
+ }
16
+ const actualCodec = (0, validate_lambda_codec_1.validateLambdaCodec)(codec);
17
+ (0, validate_serveurl_1.validateServeUrl)(serveUrl);
18
+ (0, validate_frames_per_lambda_1.validateFramesPerLambda)({
19
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
20
+ durationInFrames: 1,
21
+ });
22
+ (0, validate_download_behavior_1.validateDownloadBehavior)(downloadBehavior);
23
+ const serializedInputProps = await (0, serialize_input_props_1.serializeInputProps)({
24
+ inputProps: inputProps !== null && inputProps !== void 0 ? inputProps : {},
25
+ region,
26
+ type: 'video-or-audio',
27
+ userSpecifiedBucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
28
+ });
29
+ return {
30
+ rendererFunctionName: rendererFunctionName !== null && rendererFunctionName !== void 0 ? rendererFunctionName : null,
31
+ framesPerLambda: framesPerLambda !== null && framesPerLambda !== void 0 ? framesPerLambda : null,
32
+ composition,
33
+ serveUrl,
34
+ inputProps: serializedInputProps,
35
+ codec: actualCodec,
36
+ imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
37
+ crf,
38
+ envVariables,
39
+ pixelFormat,
40
+ proResProfile,
41
+ jpegQuality,
42
+ maxRetries: maxRetries !== null && maxRetries !== void 0 ? maxRetries : 1,
43
+ privacy: privacy !== null && privacy !== void 0 ? privacy : 'public',
44
+ logLevel: dumpBrowserLogs
45
+ ? 'verbose'
46
+ : logLevel !== null && logLevel !== void 0 ? logLevel : renderer_1.RenderInternals.getLogLevel(),
47
+ frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
48
+ outName: outName !== null && outName !== void 0 ? outName : null,
49
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : 30000,
50
+ chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
51
+ scale: scale !== null && scale !== void 0 ? scale : 1,
52
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
53
+ numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : 0,
54
+ concurrencyPerLambda: concurrencyPerLambda !== null && concurrencyPerLambda !== void 0 ? concurrencyPerLambda : 1,
55
+ downloadBehavior: downloadBehavior !== null && downloadBehavior !== void 0 ? downloadBehavior : { type: 'play-in-browser' },
56
+ muted: muted !== null && muted !== void 0 ? muted : false,
57
+ version: version_1.VERSION,
58
+ overwrite: overwrite !== null && overwrite !== void 0 ? overwrite : false,
59
+ audioBitrate: audioBitrate !== null && audioBitrate !== void 0 ? audioBitrate : null,
60
+ videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
61
+ webhook: webhook !== null && webhook !== void 0 ? webhook : null,
62
+ forceHeight: forceHeight !== null && forceHeight !== void 0 ? forceHeight : null,
63
+ forceWidth: forceWidth !== null && forceWidth !== void 0 ? forceWidth : null,
64
+ bucketName: bucketName !== null && bucketName !== void 0 ? bucketName : null,
65
+ audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
66
+ type: defaults_1.LambdaRoutines.start,
67
+ };
68
+ };
69
+ exports.makeLambdaRenderMediaPayload = makeLambdaRenderMediaPayload;
70
+ const getRenderProgressPayload = ({ bucketName, renderId, s3OutputProvider, }) => {
71
+ return {
72
+ type: defaults_1.LambdaRoutines.status,
73
+ bucketName,
74
+ renderId,
75
+ version: version_1.VERSION,
76
+ s3OutputProvider,
77
+ };
78
+ };
79
+ exports.getRenderProgressPayload = getRenderProgressPayload;
File without changes
File without changes
@@ -1,14 +1,14 @@
1
1
  import type { AwsRegion } from '../pricing/aws-regions';
2
- declare type PresignURLInput = {
2
+ export type PresignUrlInput<CheckIfObjectExists extends boolean = boolean> = {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
5
5
  objectKey: string;
6
- checkIfObjectExists?: boolean;
6
+ checkIfObjectExists?: CheckIfObjectExists;
7
7
  expiresInSeconds: number;
8
8
  };
9
9
  /**
10
10
  * @description Returns a public url of an object stored in Remotion's S3 bucket.
11
- * @link https://remotion.dev/docs/lambda/presignurl
11
+ * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
12
12
  * @param {AwsRegion} params.region The region in which the S3 bucket resides in.
13
13
  * @param {string} params.bucketName The name of the bucket to fetch the object from.
14
14
  * @param {string} params.objectKey Key of the S3 object to get.
@@ -16,5 +16,4 @@ declare type PresignURLInput = {
16
16
  * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
17
17
  * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
18
  */
19
- export declare const presignUrl: ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignURLInput) => Promise<string | null>;
20
- export {};
19
+ export declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;