@remotion/lambda 4.0.0-webhook.27 → 4.0.0
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.
- package/LICENSE.md +8 -8
- package/dist/admin/bundle-lambda.d.ts +0 -0
- package/dist/admin/bundle-lambda.js +24 -13
- package/dist/admin/generate-etag-list.d.ts +1 -0
- package/dist/admin/generate-etag-list.js +14 -0
- package/dist/admin/make-layer-public.d.ts +0 -0
- package/dist/admin/make-layer-public.js +59 -65
- package/dist/api/bucket-exists.d.ts +0 -0
- package/dist/api/bucket-exists.js +0 -0
- package/dist/api/clean-items.d.ts +0 -0
- package/dist/api/clean-items.js +1 -1
- package/dist/api/create-bucket.d.ts +0 -0
- package/dist/api/create-bucket.js +34 -1
- package/dist/api/create-function.d.ts +1 -3
- package/dist/api/create-function.js +27 -6
- package/dist/api/delete-function.d.ts +4 -4
- package/dist/api/delete-function.js +3 -3
- package/dist/api/delete-render.d.ts +2 -2
- package/dist/api/delete-render.js +1 -1
- package/dist/api/delete-site.d.ts +7 -7
- package/dist/api/delete-site.js +9 -7
- package/dist/api/deploy-function.d.ts +11 -13
- package/dist/api/deploy-function.js +28 -31
- package/dist/api/deploy-site.d.ts +13 -5
- package/dist/api/deploy-site.js +61 -25
- package/dist/api/download-media.d.ts +4 -8
- package/dist/api/download-media.js +5 -9
- package/dist/api/estimate-price.d.ts +3 -5
- package/dist/api/estimate-price.js +4 -10
- package/dist/api/get-aws-client.d.ts +6 -4
- package/dist/api/get-aws-client.js +3 -1
- package/dist/api/get-buckets.d.ts +2 -2
- package/dist/api/get-buckets.js +35 -12
- package/dist/api/get-compositions-on-lambda.d.ts +33 -0
- package/dist/api/get-compositions-on-lambda.js +56 -0
- package/dist/api/get-function-info.d.ts +3 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +5 -7
- package/dist/api/get-functions.js +8 -10
- package/dist/api/get-or-create-bucket.d.ts +6 -6
- package/dist/api/get-or-create-bucket.js +10 -18
- package/dist/api/get-regions.d.ts +6 -2
- package/dist/api/get-regions.js +6 -3
- package/dist/api/get-render-progress.d.ts +3 -3
- package/dist/api/get-render-progress.js +6 -11
- package/dist/api/get-sites.d.ts +6 -6
- package/dist/api/get-sites.js +5 -4
- package/dist/api/iam-validation/role-permissions.d.ts +0 -0
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +2 -2
- package/dist/api/iam-validation/simulate-rule.js +0 -22
- package/dist/api/iam-validation/simulate.d.ts +3 -3
- package/dist/api/iam-validation/simulate.js +27 -6
- package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
- package/dist/api/iam-validation/suggested-policy.js +0 -0
- package/dist/api/iam-validation/user-permissions.d.ts +1 -1
- package/dist/api/iam-validation/user-permissions.js +3 -8
- package/dist/api/make-lambda-payload.d.ts +5 -0
- package/dist/api/make-lambda-payload.js +78 -0
- package/dist/api/mock-functions.d.ts +0 -0
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +4 -5
- package/dist/api/presign-url.js +3 -3
- package/dist/api/render-media-on-lambda.d.ts +27 -11
- package/dist/api/render-media-on-lambda.js +15 -49
- package/dist/api/render-still-on-lambda.d.ts +17 -6
- package/dist/api/render-still-on-lambda.js +24 -10
- package/dist/api/speculate-function-name.d.ts +14 -0
- package/dist/api/speculate-function-name.js +22 -0
- package/dist/api/upload-dir.d.ts +6 -5
- package/dist/api/upload-dir.js +54 -51
- package/dist/api/validate-webhook-signature.d.ts +2 -2
- package/dist/api/validate-webhook-signature.js +1 -1
- package/dist/cli/args.d.ts +7 -5
- package/dist/cli/args.js +1 -5
- package/dist/cli/commands/compositions/index.d.ts +2 -0
- package/dist/cli/commands/compositions/index.js +44 -0
- package/dist/cli/commands/functions/deploy.d.ts +0 -0
- package/dist/cli/commands/functions/deploy.js +15 -15
- package/dist/cli/commands/functions/index.d.ts +0 -0
- package/dist/cli/commands/functions/index.js +16 -17
- package/dist/cli/commands/functions/ls.d.ts +0 -0
- package/dist/cli/commands/functions/ls.js +17 -10
- package/dist/cli/commands/functions/rm.d.ts +0 -0
- package/dist/cli/commands/functions/rm.js +20 -7
- package/dist/cli/commands/functions/rmall.d.ts +0 -0
- package/dist/cli/commands/functions/rmall.js +20 -8
- package/dist/cli/commands/policies/policies.d.ts +0 -0
- package/dist/cli/commands/policies/policies.js +0 -0
- package/dist/cli/commands/policies/role.d.ts +0 -0
- package/dist/cli/commands/policies/role.js +0 -0
- package/dist/cli/commands/policies/user.d.ts +0 -0
- package/dist/cli/commands/policies/user.js +0 -0
- package/dist/cli/commands/policies/validate.d.ts +0 -0
- package/dist/cli/commands/policies/validate.js +0 -0
- package/dist/cli/commands/quotas/increase.d.ts +0 -0
- package/dist/cli/commands/quotas/increase.js +30 -10
- package/dist/cli/commands/quotas/index.d.ts +0 -0
- package/dist/cli/commands/quotas/index.js +8 -9
- package/dist/cli/commands/quotas/list.d.ts +0 -0
- package/dist/cli/commands/quotas/list.js +0 -0
- package/dist/cli/commands/regions.d.ts +0 -0
- package/dist/cli/commands/regions.js +6 -2
- package/dist/cli/commands/render/progress.d.ts +11 -7
- package/dist/cli/commands/render/progress.js +55 -45
- package/dist/cli/commands/render/render.d.ts +1 -1
- package/dist/cli/commands/render/render.js +99 -27
- package/dist/cli/commands/sites/create.d.ts +1 -1
- package/dist/cli/commands/sites/create.js +37 -33
- package/dist/cli/commands/sites/index.d.ts +1 -1
- package/dist/cli/commands/sites/index.js +18 -16
- package/dist/cli/commands/sites/ls.d.ts +0 -0
- package/dist/cli/commands/sites/ls.js +9 -10
- package/dist/cli/commands/sites/rm.d.ts +0 -0
- package/dist/cli/commands/sites/rm.js +7 -16
- package/dist/cli/commands/sites/rmall.d.ts +0 -0
- package/dist/cli/commands/sites/rmall.js +5 -16
- package/dist/cli/commands/still.d.ts +1 -1
- package/dist/cli/commands/still.js +49 -20
- package/dist/cli/get-aws-region.d.ts +0 -0
- package/dist/cli/get-aws-region.js +0 -0
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +4 -0
- package/dist/cli/helpers/confirm.d.ts +0 -0
- package/dist/cli/helpers/confirm.js +0 -0
- package/dist/cli/helpers/date-string.d.ts +0 -0
- package/dist/cli/helpers/date-string.js +0 -0
- package/dist/cli/helpers/find-function-name.d.ts +0 -0
- package/dist/cli/helpers/find-function-name.js +35 -6
- package/dist/cli/helpers/progress-bar.d.ts +12 -7
- package/dist/cli/helpers/progress-bar.js +20 -11
- package/dist/cli/helpers/quit.d.ts +0 -0
- package/dist/cli/helpers/quit.js +0 -0
- package/dist/cli/helpers/yes-or-no.d.ts +0 -0
- package/dist/cli/helpers/yes-or-no.js +0 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +23 -12
- package/dist/cli/is-cli.d.ts +0 -0
- package/dist/cli/is-cli.js +0 -0
- package/dist/cli/log.d.ts +14 -0
- package/dist/cli/log.js +0 -0
- package/dist/client.d.ts +8 -2
- package/dist/client.js +9 -1
- package/dist/defaults.d.ts +0 -0
- package/dist/defaults.js +0 -0
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
- package/dist/functions/chunk-optimization/types.d.ts +2 -13
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +60 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
- package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
- package/dist/functions/helpers/calculate-chunk-times.js +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
- package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
- package/dist/functions/helpers/check-if-render-exists.d.ts +0 -0
- package/dist/functions/helpers/check-if-render-exists.js +0 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +8 -8
- package/dist/functions/helpers/concat-videos.d.ts +13 -5
- package/dist/functions/helpers/concat-videos.js +38 -39
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -15
- package/dist/functions/helpers/delete-chunks.d.ts +0 -0
- package/dist/functions/helpers/delete-chunks.js +0 -0
- package/dist/functions/helpers/expected-out-name.d.ts +0 -0
- package/dist/functions/helpers/expected-out-name.js +2 -2
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
- package/dist/functions/helpers/format-costs-info.d.ts +0 -0
- package/dist/functions/helpers/format-costs-info.js +0 -0
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -3
- package/dist/functions/helpers/get-browser-instance.js +9 -5
- package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
- package/dist/functions/helpers/get-chromium-executable-path.js +8 -6
- package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
- package/dist/functions/helpers/get-cleanup-progress.js +0 -0
- package/dist/functions/helpers/get-current-region.d.ts +1 -1
- package/dist/functions/helpers/get-current-region.js +0 -0
- package/dist/functions/helpers/get-custom-out-name.d.ts +0 -0
- package/dist/functions/helpers/get-custom-out-name.js +1 -1
- package/dist/functions/helpers/get-encoding-metadata.d.ts +5 -8
- package/dist/functions/helpers/get-encoding-metadata.js +7 -17
- package/dist/functions/helpers/get-files-in-folder.d.ts +1 -1
- package/dist/functions/helpers/get-files-in-folder.js +5 -5
- package/dist/functions/helpers/get-files-to-delete.d.ts +1 -1
- package/dist/functions/helpers/get-files-to-delete.js +0 -0
- package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
- package/dist/functions/helpers/get-final-encoding-status.js +1 -4
- package/dist/functions/helpers/get-folder-size.d.ts +0 -0
- package/dist/functions/helpers/get-folder-size.js +0 -0
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +2 -6
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +1 -9
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-output-url-from-metadata.js +0 -0
- package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
- package/dist/functions/helpers/get-overall-progress.js +7 -5
- package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/get-post-render-data.js +0 -0
- package/dist/functions/helpers/get-progress.d.ts +0 -0
- package/dist/functions/helpers/get-progress.js +43 -42
- package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-render-metadata.js +0 -0
- package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
- package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
- package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
- package/dist/functions/helpers/get-retry-stats.js +0 -0
- package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
- package/dist/functions/helpers/get-time-to-finish.js +0 -0
- package/dist/functions/helpers/inspect-errors.d.ts +0 -0
- package/dist/functions/helpers/inspect-errors.js +0 -0
- package/dist/functions/helpers/io.d.ts +10 -4
- package/dist/functions/helpers/io.js +25 -3
- package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
- package/dist/functions/helpers/is-enosp-err.js +1 -1
- package/dist/functions/helpers/is-warm.d.ts +0 -0
- package/dist/functions/helpers/is-warm.js +0 -0
- package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
- package/dist/functions/helpers/make-timeout-error.js +35 -0
- package/dist/functions/helpers/make-timeout-message.d.ts +6 -0
- package/dist/functions/helpers/make-timeout-message.js +33 -0
- package/dist/functions/helpers/min-max.d.ts +0 -0
- package/dist/functions/helpers/min-max.js +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.js +2 -1
- package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
- package/dist/functions/helpers/print-concurrency-curve.js +0 -0
- package/dist/functions/helpers/read-with-progress.d.ts +1 -1
- package/dist/functions/helpers/read-with-progress.js +1 -1
- package/dist/functions/helpers/streamify-response.d.ts +16 -0
- package/dist/functions/helpers/streamify-response.js +67 -0
- package/dist/functions/helpers/timer.d.ts +0 -0
- package/dist/functions/helpers/timer.js +0 -0
- package/dist/functions/helpers/validate-composition.d.ts +10 -9
- package/dist/functions/helpers/validate-composition.js +18 -13
- package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
- package/dist/functions/helpers/write-lambda-error.js +0 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/write-post-render-data.js +0 -0
- package/dist/functions/index.d.ts +1 -7
- package/dist/functions/index.js +44 -11
- package/dist/functions/info.d.ts +0 -0
- package/dist/functions/info.js +0 -0
- package/dist/functions/launch.d.ts +2 -1
- package/dist/functions/launch.js +172 -134
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +2 -2
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +92 -44
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +21 -8
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +79 -37
- package/dist/index.d.ts +24 -8
- package/dist/index.js +23 -6
- package/dist/internals.d.ts +3 -1
- package/dist/internals.js +3 -0
- package/dist/pricing/aws-regions.d.ts +3 -2
- package/dist/pricing/aws-regions.js +31 -1
- package/dist/pricing/price-per-1-s.d.ts +0 -0
- package/dist/pricing/price-per-1-s.js +413 -39
- package/dist/regions.d.ts +0 -0
- package/dist/regions.js +0 -0
- package/dist/shared/await.d.ts +1 -1
- package/dist/shared/await.js +0 -0
- package/dist/shared/aws-clients.d.ts +6 -3
- package/dist/shared/aws-clients.js +75 -13
- package/dist/shared/bundle-site.d.ts +0 -0
- package/dist/shared/bundle-site.js +0 -0
- package/dist/shared/call-lambda.d.ts +0 -0
- package/dist/shared/call-lambda.js +27 -2
- package/dist/shared/check-credentials.d.ts +0 -0
- package/dist/shared/check-credentials.js +3 -0
- package/dist/shared/chunk-progress.d.ts +9 -0
- package/dist/shared/chunk-progress.js +2034 -0
- package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
- package/dist/shared/cleanup-serialized-input-props.js +19 -0
- package/dist/shared/constants.d.ts +137 -87
- package/dist/shared/constants.js +16 -4
- package/dist/shared/content-disposition-header.d.ts +1 -1
- package/dist/shared/content-disposition-header.js +0 -0
- package/dist/shared/convert-to-serve-url.d.ts +5 -1
- package/dist/shared/convert-to-serve-url.js +1 -5
- package/dist/shared/docs-url.d.ts +0 -0
- package/dist/shared/docs-url.js +0 -0
- package/dist/shared/function-zip-path.d.ts +1 -1
- package/dist/shared/function-zip-path.js +3 -3
- package/dist/shared/get-account-id.d.ts +0 -0
- package/dist/shared/get-account-id.js +4 -6
- package/dist/shared/{get-cloudwatch-stream-url.d.ts → get-aws-urls.d.ts} +7 -1
- package/dist/shared/get-aws-urls.js +12 -0
- package/dist/shared/get-etag.d.ts +1 -0
- package/dist/shared/get-etag.js +24 -0
- package/dist/shared/get-function-version.d.ts +0 -0
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +2 -2
- package/dist/shared/get-most-expensive-chunks.js +3 -2
- package/dist/shared/get-s3-operations.d.ts +10 -0
- package/dist/shared/get-s3-operations.js +36 -0
- package/dist/shared/hosted-layers.d.ts +5 -8
- package/dist/shared/hosted-layers.js +210 -284
- package/dist/shared/invoke-webhook.d.ts +5 -18
- package/dist/shared/invoke-webhook.js +4 -19
- package/dist/shared/is-in-lambda.d.ts +0 -0
- package/dist/shared/is-in-lambda.js +0 -0
- package/dist/shared/lambda-version-string.d.ts +0 -0
- package/dist/shared/lambda-version-string.js +0 -0
- package/dist/shared/make-s3-key.d.ts +0 -0
- package/dist/shared/make-s3-key.js +2 -2
- package/dist/shared/make-s3-url.d.ts +0 -0
- package/dist/shared/make-s3-url.js +2 -2
- package/dist/shared/p-limit.d.ts +0 -0
- package/dist/shared/p-limit.js +0 -0
- package/dist/shared/parse-chunk-key.d.ts +4 -0
- package/dist/shared/parse-chunk-key.js +14 -0
- package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
- package/dist/shared/parse-lambda-initialized-key.js +0 -0
- package/dist/shared/parse-lambda-timings-key.d.ts +1 -1
- package/dist/shared/parse-lambda-timings-key.js +0 -0
- package/dist/shared/random-hash.d.ts +0 -0
- package/dist/shared/random-hash.js +0 -0
- package/dist/shared/read-dir.d.ts +9 -0
- package/dist/shared/read-dir.js +57 -0
- package/dist/shared/return-values.d.ts +7 -0
- package/dist/shared/return-values.js +0 -0
- package/dist/shared/serialize-props.d.ts +20 -0
- package/dist/shared/serialize-props.js +83 -0
- package/dist/shared/sleep.d.ts +0 -0
- package/dist/shared/sleep.js +0 -0
- package/dist/shared/stream-to-string.d.ts +0 -0
- package/dist/shared/stream-to-string.js +0 -0
- package/dist/shared/truthy.d.ts +1 -1
- package/dist/shared/truthy.js +0 -0
- package/dist/shared/validate-aws-region.d.ts +0 -0
- package/dist/shared/validate-aws-region.js +0 -0
- package/dist/shared/validate-bucketname.d.ts +5 -0
- package/dist/shared/validate-bucketname.js +19 -1
- package/dist/shared/validate-custom-role-arn.d.ts +0 -0
- package/dist/shared/validate-custom-role-arn.js +0 -0
- package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
- package/dist/shared/validate-disk-size-in-mb.js +0 -0
- package/dist/shared/validate-download-behavior.d.ts +0 -0
- package/dist/shared/validate-download-behavior.js +0 -0
- package/dist/shared/validate-frames-per-lambda.d.ts +0 -0
- package/dist/shared/validate-frames-per-lambda.js +0 -0
- package/dist/shared/validate-lambda-codec.d.ts +2 -2
- package/dist/shared/validate-lambda-codec.js +1 -1
- package/dist/shared/validate-memory-size.d.ts +0 -0
- package/dist/shared/validate-memory-size.js +0 -0
- package/dist/shared/validate-outname.d.ts +2 -2
- package/dist/shared/validate-outname.js +16 -10
- package/dist/shared/validate-presign-expiration.d.ts +0 -0
- package/dist/shared/validate-presign-expiration.js +0 -0
- package/dist/shared/validate-privacy.d.ts +1 -1
- package/dist/shared/validate-privacy.js +5 -2
- package/dist/shared/validate-retention-period.d.ts +0 -0
- package/dist/shared/validate-retention-period.js +0 -0
- package/dist/shared/validate-retries.d.ts +0 -0
- package/dist/shared/validate-retries.js +0 -0
- package/dist/shared/validate-serveurl.d.ts +0 -0
- package/dist/shared/validate-serveurl.js +0 -0
- package/dist/shared/validate-site-name.d.ts +0 -0
- package/dist/shared/validate-site-name.js +0 -0
- package/dist/shared/validate-timeout.d.ts +0 -0
- package/dist/shared/validate-timeout.js +0 -0
- package/package.json +89 -65
- package/remotionlambda-arm64.zip +0 -0
- package/remotionlambda-x64.zip +0 -0
- package/.prettierrc.js +0 -14
- package/client.d.ts +0 -1
- package/client.js +0 -1
- package/dist/api/enable-s3-website.d.ts +0 -5
- package/dist/api/enable-s3-website.js +0 -16
- package/dist/cli/helpers/determine-image-format.d.ts +0 -10
- package/dist/cli/helpers/determine-image-format.js +0 -47
- package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
- package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
- package/dist/cli/helpers/webhook-types.d.ts +0 -6
- package/dist/cli/helpers/webhook-types.js +0 -2
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
- package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
- package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
- package/dist/functions/chunk-optimization/collect-data.js +0 -27
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
- package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
- package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
- package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
- package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
- package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
- package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
- package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
- package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
- package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -47
- package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
- package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
- package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
- package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
- package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
- package/dist/functions/helpers/get-current-architecture.js +0 -11
- package/dist/shared/get-cloudwatch-stream-url.js +0 -7
- package/dist/shared/validate-architecture.d.ts +0 -4
- package/dist/shared/validate-architecture.js +0 -14
- package/remotionlambda.zip +0 -0
- package/tsconfig.json +0 -16
|
@@ -6,23 +6,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.rendererHandler = void 0;
|
|
7
7
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const version_1 = require("remotion/version");
|
|
11
12
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
13
|
+
const chunk_progress_1 = require("../shared/chunk-progress");
|
|
12
14
|
const constants_1 = require("../shared/constants");
|
|
13
|
-
const clean_tmpdir_1 = require("./helpers/clean-tmpdir");
|
|
14
15
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
16
|
+
const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
|
|
15
17
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
16
|
-
const get_files_in_folder_1 = require("./helpers/get-files-in-folder");
|
|
17
|
-
const get_folder_size_1 = require("./helpers/get-folder-size");
|
|
18
18
|
const io_1 = require("./helpers/io");
|
|
19
19
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
20
|
+
const serialize_props_1 = require("../shared/serialize-props");
|
|
20
21
|
const renderHandler = async (params, options, logs) => {
|
|
21
22
|
var _a;
|
|
22
23
|
if (params.type !== constants_1.LambdaRoutines.renderer) {
|
|
23
24
|
throw new Error('Params must be renderer');
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
if (params.launchFunctionConfig.version !== version_1.VERSION) {
|
|
27
|
+
throw new Error(`The version of the function that was specified as "rendererFunctionName" is ${version_1.VERSION} but the version of the function that invoked the render is ${params.launchFunctionConfig.version}. Please make sure that the version of the function that is specified as "rendererFunctionName" is the same as the version of the function that is invoked.`);
|
|
28
|
+
}
|
|
29
|
+
const inputPropsPromise = (0, serialize_props_1.deserializeInputProps)({
|
|
30
|
+
bucketName: params.bucketName,
|
|
31
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
32
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
33
|
+
serialized: params.inputProps,
|
|
34
|
+
propsType: 'input-props',
|
|
35
|
+
});
|
|
36
|
+
const resolvedPropsPromise = (0, serialize_props_1.deserializeInputProps)({
|
|
37
|
+
bucketName: params.bucketName,
|
|
38
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
39
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
40
|
+
serialized: params.resolvedProps,
|
|
41
|
+
propsType: 'resolved-props',
|
|
42
|
+
});
|
|
43
|
+
const defaultPropsPromise = (0, serialize_props_1.deserializeInputProps)({
|
|
44
|
+
bucketName: params.bucketName,
|
|
45
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
46
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
47
|
+
serialized: params.defaultProps,
|
|
48
|
+
propsType: 'default-props',
|
|
49
|
+
});
|
|
50
|
+
const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(params.logLevel, false, (_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {});
|
|
26
51
|
const outputPath = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
27
52
|
if (typeof params.chunk !== 'number') {
|
|
28
53
|
throw new Error('must pass chunk');
|
|
@@ -38,27 +63,44 @@ const renderHandler = async (params, options, logs) => {
|
|
|
38
63
|
startDate: start,
|
|
39
64
|
};
|
|
40
65
|
const outdir = renderer_1.RenderInternals.tmpDir(constants_1.RENDERER_PATH_TOKEN);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
66
|
+
const chunkCodec = params.codec === 'gif' || params.codec === 'h264'
|
|
67
|
+
? 'h264-mkv'
|
|
68
|
+
: params.codec;
|
|
69
|
+
const outputLocation = node_path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(chunkCodec, renderer_1.RenderInternals.getDefaultAudioCodec({
|
|
70
|
+
codec: params.codec,
|
|
71
|
+
preferLossless: true,
|
|
72
|
+
}))}`);
|
|
44
73
|
const downloads = {};
|
|
74
|
+
const inputProps = await inputPropsPromise;
|
|
75
|
+
const resolvedProps = await resolvedPropsPromise;
|
|
76
|
+
const defaultProps = await defaultPropsPromise;
|
|
45
77
|
await new Promise((resolve, reject) => {
|
|
46
|
-
var _a;
|
|
47
|
-
|
|
78
|
+
var _a, _b, _c, _d;
|
|
79
|
+
renderer_1.RenderInternals.internalRenderMedia({
|
|
48
80
|
composition: {
|
|
49
81
|
id: params.composition,
|
|
50
82
|
durationInFrames: params.durationInFrames,
|
|
51
83
|
fps: params.fps,
|
|
52
84
|
height: params.height,
|
|
53
85
|
width: params.width,
|
|
86
|
+
props: resolvedProps,
|
|
87
|
+
defaultProps,
|
|
54
88
|
},
|
|
55
89
|
imageFormat: params.imageFormat,
|
|
56
|
-
inputProps
|
|
90
|
+
inputProps,
|
|
57
91
|
frameRange: params.frameRange,
|
|
58
92
|
onProgress: ({ renderedFrames, encodedFrames, stitchStage }) => {
|
|
59
|
-
if (renderedFrames %
|
|
93
|
+
if (renderedFrames % 5 === 0 &&
|
|
60
94
|
renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')) {
|
|
61
95
|
console.log(`Rendered ${renderedFrames} frames, encoded ${encodedFrames} frames, stage = ${stitchStage}`);
|
|
96
|
+
(0, chunk_progress_1.writeLambdaInitializedFile)({
|
|
97
|
+
attempt: params.attempt,
|
|
98
|
+
bucketName: params.bucketName,
|
|
99
|
+
chunk: params.chunk,
|
|
100
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
101
|
+
framesRendered: renderedFrames,
|
|
102
|
+
renderId: params.renderId,
|
|
103
|
+
}).catch((err) => reject(err));
|
|
62
104
|
}
|
|
63
105
|
const allFrames = renderer_1.RenderInternals.getFramesToRender(params.frameRange, params.everyNthFrame);
|
|
64
106
|
if (renderedFrames === allFrames.length) {
|
|
@@ -68,42 +110,27 @@ const renderHandler = async (params, options, logs) => {
|
|
|
68
110
|
},
|
|
69
111
|
concurrency: params.concurrencyPerLambda,
|
|
70
112
|
onStart: () => {
|
|
71
|
-
(0,
|
|
72
|
-
|
|
113
|
+
(0, chunk_progress_1.writeLambdaInitializedFile)({
|
|
114
|
+
attempt: params.attempt,
|
|
73
115
|
bucketName: params.bucketName,
|
|
74
|
-
|
|
75
|
-
filesCleaned: clean_tmpdir_1.deletedFilesSize,
|
|
76
|
-
filesInTmp: fs_1.default.readdirSync('/tmp'),
|
|
77
|
-
isWarm: options.isWarm,
|
|
78
|
-
deletedFiles: clean_tmpdir_1.deletedFiles,
|
|
79
|
-
tmpSize: (0, get_folder_size_1.getFolderSizeRecursively)('/tmp'),
|
|
80
|
-
tmpDirFiles: (0, get_files_in_folder_1.getFolderFiles)('/tmp'),
|
|
81
|
-
}),
|
|
82
|
-
key: (0, constants_1.lambdaChunkInitializedKey)({
|
|
83
|
-
renderId: params.renderId,
|
|
84
|
-
chunk: params.chunk,
|
|
85
|
-
attempt: params.attempt,
|
|
86
|
-
}),
|
|
87
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
116
|
+
chunk: params.chunk,
|
|
88
117
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
89
|
-
|
|
90
|
-
|
|
118
|
+
framesRendered: 0,
|
|
119
|
+
renderId: params.renderId,
|
|
91
120
|
}).catch((err) => reject(err));
|
|
92
121
|
},
|
|
93
122
|
puppeteerInstance: browserInstance,
|
|
94
123
|
serveUrl: params.serveUrl,
|
|
95
|
-
|
|
96
|
-
envVariables: params.envVariables,
|
|
97
|
-
|
|
98
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
124
|
+
jpegQuality: (_a = params.jpegQuality) !== null && _a !== void 0 ? _a : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
|
|
125
|
+
envVariables: (_b = params.envVariables) !== null && _b !== void 0 ? _b : {},
|
|
126
|
+
logLevel: params.logLevel,
|
|
99
127
|
onBrowserLog: (log) => {
|
|
100
128
|
logs.push(log);
|
|
101
129
|
},
|
|
102
130
|
outputLocation,
|
|
103
131
|
codec: chunkCodec,
|
|
104
|
-
crf: (
|
|
105
|
-
|
|
106
|
-
pixelFormat: params.pixelFormat,
|
|
132
|
+
crf: (_c = params.crf) !== null && _c !== void 0 ? _c : null,
|
|
133
|
+
pixelFormat: (_d = params.pixelFormat) !== null && _d !== void 0 ? _d : renderer_1.RenderInternals.DEFAULT_PIXEL_FORMAT,
|
|
107
134
|
proResProfile: params.proResProfile,
|
|
108
135
|
onDownload: (src) => {
|
|
109
136
|
console.log('Downloading', src);
|
|
@@ -133,11 +160,30 @@ const renderHandler = async (params, options, logs) => {
|
|
|
133
160
|
port: null,
|
|
134
161
|
everyNthFrame: params.everyNthFrame,
|
|
135
162
|
numberOfGifLoops: null,
|
|
136
|
-
downloadMap,
|
|
137
163
|
muted: params.muted,
|
|
138
164
|
enforceAudioTrack: true,
|
|
165
|
+
audioBitrate: params.audioBitrate,
|
|
166
|
+
videoBitrate: params.videoBitrate,
|
|
167
|
+
// Lossless flag takes priority over audio codec
|
|
168
|
+
// https://github.com/remotion-dev/remotion/issues/1647
|
|
169
|
+
// Special flag only in Lambda renderer which improves the audio quality
|
|
170
|
+
audioCodec: null,
|
|
171
|
+
preferLossless: true,
|
|
172
|
+
browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
|
|
173
|
+
cancelSignal: undefined,
|
|
174
|
+
disallowParallelEncoding: false,
|
|
175
|
+
ffmpegOverride: ({ args }) => args,
|
|
176
|
+
indent: false,
|
|
177
|
+
onCtrlCExit: () => undefined,
|
|
178
|
+
server: undefined,
|
|
179
|
+
})
|
|
180
|
+
.then(({ slowestFrames }) => {
|
|
181
|
+
console.log(`Slowest frames:`);
|
|
182
|
+
slowestFrames.forEach(({ frame, time }) => {
|
|
183
|
+
console.log(` Frame ${frame} (${time.toFixed(3)}ms)`);
|
|
184
|
+
});
|
|
185
|
+
resolve();
|
|
139
186
|
})
|
|
140
|
-
.then(() => resolve())
|
|
141
187
|
.catch((err) => reject(err));
|
|
142
188
|
});
|
|
143
189
|
const endRendered = Date.now();
|
|
@@ -151,7 +197,7 @@ const renderHandler = async (params, options, logs) => {
|
|
|
151
197
|
renderId: params.renderId,
|
|
152
198
|
index: params.chunk,
|
|
153
199
|
}),
|
|
154
|
-
body:
|
|
200
|
+
body: node_fs_1.default.createReadStream(outputLocation),
|
|
155
201
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
156
202
|
privacy: params.privacy,
|
|
157
203
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -159,8 +205,8 @@ const renderHandler = async (params, options, logs) => {
|
|
|
159
205
|
customCredentials: null,
|
|
160
206
|
});
|
|
161
207
|
await Promise.all([
|
|
162
|
-
|
|
163
|
-
|
|
208
|
+
node_fs_1.default.promises.rm(outputLocation, { recursive: true }),
|
|
209
|
+
node_fs_1.default.promises.rm(outputPath, { recursive: true }),
|
|
164
210
|
(0, io_1.lambdaWriteFile)({
|
|
165
211
|
bucketName: params.bucketName,
|
|
166
212
|
body: JSON.stringify(condensedTimingData, null, 2),
|
|
@@ -188,13 +234,15 @@ const rendererHandler = async (params, options) => {
|
|
|
188
234
|
}
|
|
189
235
|
catch (err) {
|
|
190
236
|
if (process.env.NODE_ENV === 'test') {
|
|
237
|
+
console.log({ err });
|
|
191
238
|
throw err;
|
|
192
239
|
}
|
|
193
240
|
// If this error is encountered, we can just retry as it
|
|
194
241
|
// is a very rare error to occur
|
|
195
242
|
const isBrowserError = err.message.includes('FATAL:zygote_communication_linux.cc') ||
|
|
196
243
|
err.message.includes('error while loading shared libraries: libnss3.so');
|
|
197
|
-
const
|
|
244
|
+
const shouldNotRetry = err.name === 'CancelledError';
|
|
245
|
+
const willRetry = (isBrowserError || params.retriesLeft > 0) && !shouldNotRetry;
|
|
198
246
|
console.log('Error occurred');
|
|
199
247
|
console.log(err);
|
|
200
248
|
await (0, write_lambda_error_1.writeLambdaError)({
|
package/dist/functions/start.js
CHANGED
|
@@ -6,28 +6,35 @@ const version_1 = require("remotion/version");
|
|
|
6
6
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
7
7
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
8
8
|
const constants_1 = require("../shared/constants");
|
|
9
|
+
const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
|
|
9
10
|
const random_hash_1 = require("../shared/random-hash");
|
|
10
11
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
11
12
|
const io_1 = require("./helpers/io");
|
|
12
13
|
const startHandler = async (params, options) => {
|
|
13
|
-
var _a;
|
|
14
|
+
var _a, _b;
|
|
14
15
|
if (params.type !== constants_1.LambdaRoutines.start) {
|
|
15
16
|
throw new TypeError('Expected type start');
|
|
16
17
|
}
|
|
17
18
|
if (params.version !== version_1.VERSION) {
|
|
18
19
|
if (!params.version) {
|
|
19
|
-
throw new Error(`Version mismatch: When calling renderMediaOnLambda(),
|
|
20
|
+
throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
20
21
|
}
|
|
21
|
-
throw new Error(`Version mismatch: When calling renderMediaOnLambda(),
|
|
22
|
+
throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${params.version}. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
22
23
|
}
|
|
23
|
-
const
|
|
24
|
+
const region = (0, get_current_region_1.getCurrentRegionInFunction)();
|
|
25
|
+
const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
24
26
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
27
|
+
})).bucketName;
|
|
28
|
+
const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
|
|
29
|
+
urlOrId: params.serveUrl,
|
|
30
|
+
region,
|
|
31
|
+
bucketName,
|
|
25
32
|
});
|
|
26
33
|
const renderId = (0, random_hash_1.randomHash)({ randomInTests: true });
|
|
27
34
|
const initialFile = (0, io_1.lambdaWriteFile)({
|
|
28
35
|
bucketName,
|
|
29
36
|
downloadBehavior: null,
|
|
30
|
-
region
|
|
37
|
+
region,
|
|
31
38
|
body: 'Render was initialized',
|
|
32
39
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
33
40
|
key: (0, constants_1.initalizedMetadataKey)(renderId),
|
|
@@ -38,7 +45,7 @@ const startHandler = async (params, options) => {
|
|
|
38
45
|
type: constants_1.LambdaRoutines.launch,
|
|
39
46
|
framesPerLambda: params.framesPerLambda,
|
|
40
47
|
composition: params.composition,
|
|
41
|
-
serveUrl:
|
|
48
|
+
serveUrl: realServeUrl,
|
|
42
49
|
inputProps: params.inputProps,
|
|
43
50
|
bucketName,
|
|
44
51
|
renderId,
|
|
@@ -48,10 +55,10 @@ const startHandler = async (params, options) => {
|
|
|
48
55
|
envVariables: params.envVariables,
|
|
49
56
|
pixelFormat: params.pixelFormat,
|
|
50
57
|
proResProfile: params.proResProfile,
|
|
51
|
-
|
|
58
|
+
jpegQuality: params.jpegQuality,
|
|
52
59
|
maxRetries: params.maxRetries,
|
|
53
60
|
privacy: params.privacy,
|
|
54
|
-
logLevel: (
|
|
61
|
+
logLevel: (_b = params.logLevel) !== null && _b !== void 0 ? _b : 'info',
|
|
55
62
|
frameRange: params.frameRange,
|
|
56
63
|
outName: params.outName,
|
|
57
64
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
@@ -64,6 +71,12 @@ const startHandler = async (params, options) => {
|
|
|
64
71
|
muted: params.muted,
|
|
65
72
|
overwrite: params.overwrite,
|
|
66
73
|
webhook: params.webhook,
|
|
74
|
+
audioBitrate: params.audioBitrate,
|
|
75
|
+
videoBitrate: params.videoBitrate,
|
|
76
|
+
forceHeight: params.forceHeight,
|
|
77
|
+
forceWidth: params.forceWidth,
|
|
78
|
+
rendererFunctionName: params.rendererFunctionName,
|
|
79
|
+
audioCodec: params.audioCodec,
|
|
67
80
|
};
|
|
68
81
|
await (0, aws_clients_1.getLambdaClient)((0, get_current_region_1.getCurrentRegionInFunction)()).send(new client_lambda_1.InvokeCommand({
|
|
69
82
|
FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME,
|
package/dist/functions/still.js
CHANGED
|
@@ -6,13 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.stillHandler = void 0;
|
|
7
7
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
11
|
const version_1 = require("remotion/version");
|
|
12
12
|
const estimate_price_1 = require("../api/estimate-price");
|
|
13
13
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
14
14
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
15
|
+
const cleanup_serialized_input_props_1 = require("../shared/cleanup-serialized-input-props");
|
|
15
16
|
const constants_1 = require("../shared/constants");
|
|
17
|
+
const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
|
|
16
18
|
const make_s3_url_1 = require("../shared/make-s3-url");
|
|
17
19
|
const random_hash_1 = require("../shared/random-hash");
|
|
18
20
|
const validate_download_behavior_1 = require("../shared/validate-download-behavior");
|
|
@@ -21,48 +23,70 @@ const validate_privacy_1 = require("../shared/validate-privacy");
|
|
|
21
23
|
const expected_out_name_1 = require("./helpers/expected-out-name");
|
|
22
24
|
const format_costs_info_1 = require("./helpers/format-costs-info");
|
|
23
25
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
24
|
-
const
|
|
26
|
+
const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
|
|
25
27
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
26
28
|
const get_output_url_from_metadata_1 = require("./helpers/get-output-url-from-metadata");
|
|
27
29
|
const io_1 = require("./helpers/io");
|
|
28
30
|
const validate_composition_1 = require("./helpers/validate-composition");
|
|
29
31
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
32
|
+
const serialize_props_1 = require("../shared/serialize-props");
|
|
30
33
|
const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
31
|
-
var _a, _b;
|
|
34
|
+
var _a, _b, _c, _d, _e, _f;
|
|
32
35
|
if (lambdaParams.type !== constants_1.LambdaRoutines.still) {
|
|
33
36
|
throw new TypeError('Expected still type');
|
|
34
37
|
}
|
|
35
38
|
if (lambdaParams.version !== version_1.VERSION) {
|
|
36
39
|
if (!lambdaParams.version) {
|
|
37
|
-
throw new Error(`Version mismatch: When calling renderStillOnLambda(),
|
|
40
|
+
throw new Error(`Version mismatch: When calling renderStillOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
38
41
|
}
|
|
39
|
-
throw new Error(`Version mismatch: When calling renderStillOnLambda(),
|
|
42
|
+
throw new Error(`Version mismatch: When calling renderStillOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${lambdaParams.version}. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
40
43
|
}
|
|
41
44
|
(0, validate_download_behavior_1.validateDownloadBehavior)(lambdaParams.downloadBehavior);
|
|
42
|
-
(0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy);
|
|
43
|
-
(0, validate_outname_1.validateOutname)(lambdaParams.outName);
|
|
45
|
+
(0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy, true);
|
|
46
|
+
(0, validate_outname_1.validateOutname)(lambdaParams.outName, null, null);
|
|
44
47
|
const start = Date.now();
|
|
45
|
-
const [
|
|
46
|
-
(0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
48
|
+
const [bucketName, browserInstance] = await Promise.all([
|
|
49
|
+
(_a = lambdaParams.bucketName) !== null && _a !== void 0 ? _a : (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
47
50
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
48
|
-
}),
|
|
49
|
-
(0, get_browser_instance_1.getBrowserInstance)(
|
|
51
|
+
}).then((b) => b.bucketName),
|
|
52
|
+
(0, get_browser_instance_1.getBrowserInstance)(lambdaParams.logLevel, false, (_b = lambdaParams.chromiumOptions) !== null && _b !== void 0 ? _b : {}),
|
|
50
53
|
]);
|
|
51
54
|
const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
52
|
-
const outputPath =
|
|
53
|
-
const
|
|
55
|
+
const outputPath = node_path_1.default.join(outputDir, 'output');
|
|
56
|
+
const region = (0, get_current_region_1.getCurrentRegionInFunction)();
|
|
57
|
+
const inputProps = await (0, serialize_props_1.deserializeInputProps)({
|
|
58
|
+
bucketName,
|
|
59
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
60
|
+
region,
|
|
61
|
+
serialized: lambdaParams.inputProps,
|
|
62
|
+
propsType: 'input-props',
|
|
63
|
+
});
|
|
64
|
+
const serveUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
|
|
65
|
+
urlOrId: lambdaParams.serveUrl,
|
|
66
|
+
region,
|
|
67
|
+
bucketName,
|
|
68
|
+
});
|
|
69
|
+
const server = await renderer_1.RenderInternals.prepareServer({
|
|
70
|
+
concurrency: 1,
|
|
71
|
+
indent: false,
|
|
72
|
+
port: null,
|
|
73
|
+
remotionRoot: process.cwd(),
|
|
74
|
+
logLevel: lambdaParams.logLevel,
|
|
75
|
+
webpackConfigOrServeUrl: serveUrl,
|
|
76
|
+
});
|
|
54
77
|
const composition = await (0, validate_composition_1.validateComposition)({
|
|
55
|
-
serveUrl
|
|
78
|
+
serveUrl,
|
|
56
79
|
browserInstance,
|
|
57
80
|
composition: lambdaParams.composition,
|
|
58
|
-
inputProps
|
|
59
|
-
envVariables: lambdaParams.envVariables,
|
|
60
|
-
ffmpegExecutable: null,
|
|
61
|
-
ffprobeExecutable: null,
|
|
81
|
+
inputProps,
|
|
82
|
+
envVariables: (_c = lambdaParams.envVariables) !== null && _c !== void 0 ? _c : {},
|
|
62
83
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
63
84
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
64
85
|
port: null,
|
|
65
|
-
|
|
86
|
+
forceHeight: lambdaParams.forceHeight,
|
|
87
|
+
forceWidth: lambdaParams.forceWidth,
|
|
88
|
+
logLevel: lambdaParams.logLevel,
|
|
89
|
+
server,
|
|
66
90
|
});
|
|
67
91
|
const renderMetadata = {
|
|
68
92
|
startedDate: Date.now(),
|
|
@@ -71,10 +95,9 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
71
95
|
compositionId: lambdaParams.composition,
|
|
72
96
|
estimatedTotalLambdaInvokations: 1,
|
|
73
97
|
estimatedRenderLambdaInvokations: 1,
|
|
74
|
-
siteId: (0, make_s3_url_1.getServeUrlHash)(
|
|
98
|
+
siteId: (0, make_s3_url_1.getServeUrlHash)(serveUrl),
|
|
75
99
|
totalChunks: 1,
|
|
76
100
|
type: 'still',
|
|
77
|
-
usesOptimizationProfile: false,
|
|
78
101
|
imageFormat: lambdaParams.imageFormat,
|
|
79
102
|
inputProps: lambdaParams.inputProps,
|
|
80
103
|
lambdaVersion: version_1.VERSION,
|
|
@@ -82,8 +105,11 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
82
105
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
83
106
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
84
107
|
renderId,
|
|
85
|
-
outName: (
|
|
108
|
+
outName: (_d = lambdaParams.outName) !== null && _d !== void 0 ? _d : undefined,
|
|
86
109
|
privacy: lambdaParams.privacy,
|
|
110
|
+
everyNthFrame: 1,
|
|
111
|
+
frameRange: [lambdaParams.frame, lambdaParams.frame],
|
|
112
|
+
audioCodec: null,
|
|
87
113
|
};
|
|
88
114
|
await (0, io_1.lambdaWriteFile)({
|
|
89
115
|
bucketName,
|
|
@@ -95,45 +121,58 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
95
121
|
downloadBehavior: null,
|
|
96
122
|
customCredentials: null,
|
|
97
123
|
});
|
|
98
|
-
await
|
|
124
|
+
await renderer_1.RenderInternals.internalRenderStill({
|
|
99
125
|
composition,
|
|
100
126
|
output: outputPath,
|
|
101
|
-
serveUrl
|
|
102
|
-
|
|
103
|
-
envVariables: lambdaParams.envVariables,
|
|
127
|
+
serveUrl,
|
|
128
|
+
envVariables: (_e = lambdaParams.envVariables) !== null && _e !== void 0 ? _e : {},
|
|
104
129
|
frame: renderer_1.RenderInternals.convertToPositiveFrameIndex({
|
|
105
130
|
frame: lambdaParams.frame,
|
|
106
131
|
durationInFrames: composition.durationInFrames,
|
|
107
132
|
}),
|
|
108
133
|
imageFormat: lambdaParams.imageFormat,
|
|
109
|
-
inputProps
|
|
134
|
+
inputProps,
|
|
110
135
|
overwrite: false,
|
|
111
136
|
puppeteerInstance: browserInstance,
|
|
112
|
-
|
|
137
|
+
jpegQuality: (_f = lambdaParams.jpegQuality) !== null && _f !== void 0 ? _f : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
|
|
113
138
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
114
139
|
scale: lambdaParams.scale,
|
|
115
140
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
116
|
-
|
|
141
|
+
browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
|
|
142
|
+
cancelSignal: null,
|
|
143
|
+
indent: false,
|
|
144
|
+
onBrowserLog: null,
|
|
145
|
+
onDownload: null,
|
|
146
|
+
port: null,
|
|
147
|
+
server,
|
|
148
|
+
logLevel: lambdaParams.logLevel,
|
|
117
149
|
});
|
|
118
150
|
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, (0, expected_out_name_1.getCredentialsFromOutName)(lambdaParams.outName));
|
|
119
|
-
const { size } = await
|
|
151
|
+
const { size } = await node_fs_1.default.promises.stat(outputPath);
|
|
120
152
|
await (0, io_1.lambdaWriteFile)({
|
|
121
153
|
bucketName: renderBucketName,
|
|
122
154
|
key,
|
|
123
155
|
privacy: lambdaParams.privacy,
|
|
124
|
-
body:
|
|
156
|
+
body: node_fs_1.default.createReadStream(outputPath),
|
|
125
157
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
126
158
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
127
159
|
downloadBehavior: lambdaParams.downloadBehavior,
|
|
128
160
|
customCredentials,
|
|
129
161
|
});
|
|
130
|
-
await
|
|
162
|
+
await Promise.all([
|
|
163
|
+
node_fs_1.default.promises.rm(outputPath, { recursive: true }),
|
|
164
|
+
(0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
165
|
+
bucketName,
|
|
166
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
167
|
+
serialized: lambdaParams.inputProps,
|
|
168
|
+
}),
|
|
169
|
+
server.closeServer(true),
|
|
170
|
+
]);
|
|
131
171
|
const estimatedPrice = (0, estimate_price_1.estimatePrice)({
|
|
132
172
|
durationInMiliseconds: Date.now() - start + 100,
|
|
133
173
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
134
174
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
135
175
|
lambdasInvoked: 1,
|
|
136
|
-
architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
|
|
137
176
|
// We cannot determine the ephemeral storage size, so we
|
|
138
177
|
// overestimate the price, but will only have a miniscule effect (~0.2%)
|
|
139
178
|
diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
|
|
@@ -147,6 +186,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
147
186
|
};
|
|
148
187
|
};
|
|
149
188
|
const stillHandler = async (params, options) => {
|
|
189
|
+
var _a;
|
|
150
190
|
if (params.type !== constants_1.LambdaRoutines.still) {
|
|
151
191
|
throw new Error('Params must be renderer');
|
|
152
192
|
}
|
|
@@ -171,10 +211,12 @@ const stillHandler = async (params, options) => {
|
|
|
171
211
|
// @ts-expect-error
|
|
172
212
|
Payload: JSON.stringify(retryPayload),
|
|
173
213
|
}));
|
|
174
|
-
const
|
|
214
|
+
const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
175
215
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
176
|
-
});
|
|
177
|
-
|
|
216
|
+
})).bucketName;
|
|
217
|
+
// `await` elided on purpose here; using `void` to mark it as intentional
|
|
218
|
+
// eslint-disable-next-line no-void
|
|
219
|
+
void (0, write_lambda_error_1.writeLambdaError)({
|
|
178
220
|
bucketName,
|
|
179
221
|
errorInfo: {
|
|
180
222
|
chunk: null,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DeleteFunctionInput } from './api/delete-function';
|
|
2
2
|
import { deleteFunction } from './api/delete-function';
|
|
3
|
+
import type { DeleteRenderInput } from './api/delete-render';
|
|
3
4
|
import { deleteRender } from './api/delete-render';
|
|
4
5
|
import type { DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
|
|
5
6
|
import { deleteSite } from './api/delete-site';
|
|
@@ -8,11 +9,13 @@ import { deployFunction } from './api/deploy-function';
|
|
|
8
9
|
import type { DeploySiteInput, DeploySiteOutput } from './api/deploy-site';
|
|
9
10
|
import { deploySite } from './api/deploy-site';
|
|
10
11
|
import type { DownloadMediaInput, DownloadMediaOutput } from './api/download-media';
|
|
11
|
-
import { downloadMedia
|
|
12
|
+
import { downloadMedia } from './api/download-media';
|
|
12
13
|
import type { EstimatePriceInput } from './api/estimate-price';
|
|
13
14
|
import { estimatePrice } from './api/estimate-price';
|
|
14
15
|
import type { GetAwsClientInput, GetAwsClientOutput } from './api/get-aws-client';
|
|
15
16
|
import { getAwsClient } from './api/get-aws-client';
|
|
17
|
+
import type { GetCompositionsOnLambdaInput, GetCompositionsOnLambdaOutput } from './api/get-compositions-on-lambda';
|
|
18
|
+
import { getCompositionsOnLambda } from './api/get-compositions-on-lambda';
|
|
16
19
|
import type { FunctionInfo, GetFunctionInfoInput } from './api/get-function-info';
|
|
17
20
|
import { getFunctionInfo } from './api/get-function-info';
|
|
18
21
|
import type { GetFunctionsInput } from './api/get-functions';
|
|
@@ -23,22 +26,35 @@ import { getRegions } from './api/get-regions';
|
|
|
23
26
|
import type { GetRenderInput } from './api/get-render-progress';
|
|
24
27
|
import { getRenderProgress } from './api/get-render-progress';
|
|
25
28
|
import type { GetSitesInput, GetSitesOutput } from './api/get-sites';
|
|
26
|
-
import { getSites } from './api/get-sites';
|
|
27
29
|
import type { SimulatePermissionsInput, SimulatePermissionsOutput } from './api/iam-validation/simulate';
|
|
28
30
|
import { simulatePermissions } from './api/iam-validation/simulate';
|
|
29
31
|
import { getRolePolicy, getUserPolicy } from './api/iam-validation/suggested-policy';
|
|
30
|
-
import { presignUrl } from './api/presign-url';
|
|
31
32
|
import type { RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput } from './api/render-media-on-lambda';
|
|
32
|
-
import {
|
|
33
|
+
import { renderVideoOnLambda } from './api/render-media-on-lambda';
|
|
33
34
|
import type { RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from './api/render-still-on-lambda';
|
|
34
|
-
import { renderStillOnLambda } from './api/render-still-on-lambda';
|
|
35
35
|
import { validateWebhookSignature } from './api/validate-webhook-signature';
|
|
36
36
|
import type { LambdaLSInput, LambdaLsReturnType } from './functions/helpers/io';
|
|
37
|
+
import type { EnhancedErrorInfo, LambdaErrorInfo } from './functions/helpers/write-lambda-error';
|
|
37
38
|
import { LambdaInternals } from './internals';
|
|
38
39
|
import type { AwsRegion } from './pricing/aws-regions';
|
|
39
40
|
import type { CustomCredentials } from './shared/aws-clients';
|
|
40
41
|
import type { RenderProgress } from './shared/constants';
|
|
41
42
|
import type { WebhookPayload } from './shared/invoke-webhook';
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
45
|
+
*/
|
|
46
|
+
declare const renderMediaOnLambda: (input: RenderMediaOnLambdaInput) => Promise<RenderMediaOnLambdaOutput>;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
49
|
+
*/
|
|
50
|
+
declare const renderStillOnLambda: ({ functionName, serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, dumpBrowserLogs, }: RenderStillOnLambdaInput) => Promise<RenderStillOnLambdaOutput>;
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
53
|
+
*/
|
|
54
|
+
declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
57
|
+
*/
|
|
58
|
+
declare const getSites: ({ region, forceBucketName, }: GetSitesInput) => Promise<GetSitesOutput>;
|
|
59
|
+
export { deleteSite, deployFunction, deploySite, downloadMedia, getFunctions, getUserPolicy, getRolePolicy, getSites, getOrCreateBucket, getRenderProgress, renderVideoOnLambda, renderMediaOnLambda, simulatePermissions, deleteFunction, getFunctionInfo, estimatePrice, LambdaInternals, renderStillOnLambda, getRegions, getAwsClient, presignUrl, deleteRender, validateWebhookSignature, getCompositionsOnLambda, };
|
|
60
|
+
export type { AwsRegion, RenderProgress, DeploySiteInput, DeploySiteOutput, LambdaLsReturnType, LambdaLSInput, DeleteSiteInput, DeleteSiteOutput, EstimatePriceInput, DeployFunctionInput, DeployFunctionOutput, DeleteFunctionInput, GetFunctionInfoInput, FunctionInfo, GetFunctionsInput, GetSitesInput, GetSitesOutput, DownloadMediaInput, DownloadMediaOutput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderInput, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderStillOnLambdaInput, RenderStillOnLambdaOutput, SimulatePermissionsInput, SimulatePermissionsOutput, GetAwsClientInput, GetAwsClientOutput, CustomCredentials, WebhookPayload, LambdaErrorInfo, EnhancedErrorInfo, DeleteRenderInput, GetCompositionsOnLambdaOutput, GetCompositionsOnLambdaInput, };
|