@remotion/lambda 4.0.0-4x.2 → 4.0.0-audio-mixing.3
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 +21 -4
- 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 +28 -6
- package/dist/api/bucket-exists.d.ts +0 -0
- package/dist/api/bucket-exists.js +1 -1
- 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 +1 -1
- package/dist/api/create-function.d.ts +0 -0
- package/dist/api/create-function.js +24 -2
- package/dist/api/delete-function.d.ts +1 -1
- package/dist/api/delete-function.js +1 -1
- package/dist/api/delete-render.d.ts +19 -0
- package/dist/api/delete-render.js +66 -0
- package/dist/api/delete-site.d.ts +1 -1
- package/dist/api/delete-site.js +1 -6
- package/dist/api/deploy-function.d.ts +1 -1
- package/dist/api/deploy-function.js +8 -4
- package/dist/api/deploy-site.d.ts +11 -2
- package/dist/api/deploy-site.js +50 -22
- package/dist/api/download-media.d.ts +13 -0
- package/dist/api/download-media.js +15 -3
- package/dist/api/estimate-price.d.ts +1 -1
- package/dist/api/estimate-price.js +1 -1
- package/dist/api/get-aws-client.d.ts +7 -3
- package/dist/api/get-aws-client.js +10 -3
- package/dist/api/get-buckets.d.ts +0 -0
- package/dist/api/get-buckets.js +27 -10
- package/dist/api/get-compositions-on-lambda.d.ts +29 -0
- package/dist/api/get-compositions-on-lambda.js +54 -0
- package/dist/api/get-function-info.d.ts +2 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +1 -3
- package/dist/api/get-functions.js +3 -4
- package/dist/api/get-or-create-bucket.d.ts +1 -1
- package/dist/api/get-or-create-bucket.js +4 -9
- 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 +5 -2
- package/dist/api/get-render-progress.js +6 -2
- package/dist/api/get-sites.d.ts +2 -2
- package/dist/api/get-sites.js +1 -2
- 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 +0 -0
- package/dist/api/iam-validation/simulate-rule.js +0 -22
- package/dist/api/iam-validation/simulate.d.ts +1 -1
- package/dist/api/iam-validation/simulate.js +25 -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 +1 -8
- package/dist/api/mock-functions.d.ts +4 -5
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +4 -4
- package/dist/api/presign-url.js +9 -4
- package/dist/api/render-media-on-lambda.d.ts +37 -16
- package/dist/api/render-media-on-lambda.js +88 -38
- package/dist/api/render-still-on-lambda.d.ts +11 -6
- package/dist/api/render-still-on-lambda.js +58 -31
- package/dist/api/upload-dir.d.ts +4 -3
- package/dist/api/upload-dir.js +57 -50
- package/dist/api/validate-webhook-signature.d.ts +13 -0
- package/dist/api/validate-webhook-signature.js +32 -0
- package/dist/cli/args.d.ts +9 -2
- 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 +4 -4
- 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 +5 -6
- package/dist/cli/commands/functions/rm.d.ts +0 -0
- package/dist/cli/commands/functions/rm.js +0 -0
- package/dist/cli/commands/functions/rmall.d.ts +0 -0
- package/dist/cli/commands/functions/rmall.js +0 -0
- 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 +6 -6
- 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 +9 -5
- package/dist/cli/commands/render/progress.js +66 -48
- package/dist/cli/commands/render/render.d.ts +1 -1
- package/dist/cli/commands/render/render.js +72 -25
- package/dist/cli/commands/sites/create.d.ts +1 -1
- package/dist/cli/commands/sites/create.js +25 -26
- package/dist/cli/commands/sites/index.d.ts +1 -1
- package/dist/cli/commands/sites/index.js +15 -16
- package/dist/cli/commands/sites/ls.d.ts +0 -0
- package/dist/cli/commands/sites/ls.js +10 -12
- package/dist/cli/commands/sites/rm.d.ts +0 -0
- package/dist/cli/commands/sites/rm.js +8 -19
- package/dist/cli/commands/sites/rmall.d.ts +0 -0
- package/dist/cli/commands/sites/rmall.js +7 -19
- package/dist/cli/commands/still.d.ts +1 -1
- package/dist/cli/commands/still.js +34 -27
- package/dist/cli/get-aws-region.d.ts +0 -0
- package/dist/cli/get-aws-region.js +2 -1
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +0 -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 +37 -7
- package/dist/cli/helpers/progress-bar.d.ts +9 -3
- package/dist/cli/helpers/progress-bar.js +20 -8
- 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 +20 -9
- package/dist/cli/is-cli.d.ts +0 -0
- package/dist/cli/is-cli.js +0 -0
- package/dist/cli/log.d.ts +0 -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 +6 -7
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -19
- package/dist/functions/chunk-optimization/types.d.ts +0 -11
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +58 -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 +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.js +0 -0
- package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
- package/dist/functions/helpers/check-if-render-exists.js +14 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +1 -1
- package/dist/functions/helpers/concat-videos.d.ts +17 -6
- package/dist/functions/helpers/concat-videos.js +35 -32
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -8
- 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 +4 -2
- package/dist/functions/helpers/expected-out-name.js +27 -6
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +3 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
- 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 +0 -0
- package/dist/functions/helpers/get-browser-instance.js +2 -2
- package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
- package/dist/functions/helpers/get-chromium-executable-path.js +3 -2
- 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-architecture.d.ts +0 -0
- package/dist/functions/helpers/get-current-architecture.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 +6 -0
- package/dist/functions/helpers/get-custom-out-name.js +31 -0
- 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 +0 -0
- package/dist/functions/helpers/get-files-in-folder.js +0 -0
- package/dist/functions/helpers/get-files-to-delete.d.ts +0 -0
- package/dist/functions/helpers/get-files-to-delete.js +1 -1
- 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 +4 -3
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +2 -10
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +2 -1
- package/dist/functions/helpers/get-output-url-from-metadata.js +2 -2
- 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 +4 -2
- package/dist/functions/helpers/get-progress.js +58 -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 +0 -0
- package/dist/functions/helpers/get-retry-stats.js +1 -1
- 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 +19 -1
- package/dist/functions/helpers/io.js +31 -8
- package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
- package/dist/functions/helpers/is-enosp-err.js +0 -0
- 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 +48 -0
- package/dist/functions/helpers/min-max.d.ts +1 -1
- package/dist/functions/helpers/min-max.js +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
- 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 +5 -2
- package/dist/functions/helpers/read-with-progress.js +16 -4
- 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 +6 -3
- package/dist/functions/helpers/validate-composition.js +9 -2
- package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
- package/dist/functions/helpers/write-lambda-error.js +2 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/write-post-render-data.js +2 -0
- package/dist/functions/index.d.ts +0 -0
- package/dist/functions/index.js +29 -10
- package/dist/functions/info.d.ts +2 -2
- package/dist/functions/info.js +2 -1
- package/dist/functions/launch.d.ts +1 -0
- package/dist/functions/launch.js +359 -124
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +10 -1
- package/dist/functions/renderer.d.ts +0 -0
- package/dist/functions/renderer.js +145 -78
- package/dist/functions/start.d.ts +5 -1
- package/dist/functions/start.js +44 -6
- package/dist/functions/still.d.ts +0 -0
- package/dist/functions/still.js +72 -21
- package/dist/index.d.ts +27 -6
- package/dist/index.js +27 -5
- package/dist/internals.d.ts +1 -1
- package/dist/internals.js +0 -0
- package/dist/pricing/aws-regions.d.ts +2 -1
- 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 +0 -0
- package/dist/shared/await.js +0 -0
- package/dist/shared/aws-clients.d.ts +16 -2
- package/dist/shared/aws-clients.js +118 -26
- package/dist/shared/bundle-site.d.ts +2 -6
- package/dist/shared/bundle-site.js +0 -0
- package/dist/shared/call-lambda.d.ts +0 -0
- package/dist/shared/call-lambda.js +0 -0
- package/dist/shared/check-credentials.d.ts +0 -0
- package/dist/shared/check-credentials.js +5 -2
- 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 +112 -33
- package/dist/shared/constants.js +21 -10
- package/dist/shared/content-disposition-header.d.ts +7 -0
- package/dist/shared/content-disposition-header.js +19 -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/deserialize-input-props.d.ts +8 -0
- package/dist/shared/deserialize-input-props.js +26 -0
- 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 +2 -1
- package/dist/shared/function-zip-path.js +3 -2
- package/dist/shared/get-account-id.d.ts +0 -0
- package/dist/shared/get-account-id.js +4 -6
- package/dist/shared/get-aws-urls.d.ts +14 -0
- 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 +1 -2
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +1 -1
- 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 +87 -1
- package/dist/shared/hosted-layers.js +432 -123
- package/dist/shared/invoke-webhook.d.ts +46 -0
- package/dist/shared/invoke-webhook.js +89 -0
- package/dist/shared/is-in-lambda.d.ts +0 -0
- package/dist/shared/is-in-lambda.js +5 -1
- package/dist/shared/lambda-version-string.d.ts +1 -0
- package/dist/shared/lambda-version-string.js +7 -0
- package/dist/shared/make-s3-key.d.ts +0 -0
- package/dist/shared/make-s3-key.js +0 -0
- package/dist/shared/make-s3-url.d.ts +0 -0
- package/dist/shared/make-s3-url.js +0 -0
- 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 +0 -0
- 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 +2 -0
- package/dist/shared/return-values.js +0 -0
- package/dist/shared/serialize-input-props.d.ts +8 -0
- package/dist/shared/serialize-input-props.js +42 -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 +3 -0
- package/dist/shared/truthy.js +7 -0
- package/dist/shared/validate-architecture.d.ts +0 -0
- package/dist/shared/validate-architecture.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 +1 -0
- package/dist/shared/validate-download-behavior.js +21 -0
- package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
- package/dist/shared/validate-frames-per-lambda.js +4 -3
- package/dist/shared/validate-lambda-codec.d.ts +4 -0
- package/dist/shared/validate-lambda-codec.js +30 -0
- 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 +3 -2
- package/dist/shared/validate-outname.js +10 -1
- package/dist/shared/validate-presign-expiration.d.ts +0 -2
- package/dist/shared/validate-presign-expiration.js +7 -7
- package/dist/shared/validate-privacy.d.ts +0 -0
- package/dist/shared/validate-privacy.js +2 -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 +52 -26
- package/remotionlambda-arm64.zip +0 -0
- package/remotionlambda-x64.zip +0 -0
- package/remotionlambda.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/format-bytes.d.ts +0 -6
- package/dist/cli/helpers/format-bytes.js +0 -103
- 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/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 -45
- 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/shared/chunk.d.ts +0 -1
- package/dist/shared/chunk.js +0 -11
- package/tsconfig.json +0 -16
|
@@ -2,28 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.planFrameRanges = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
framesPerLambda,
|
|
10
|
-
frameRange,
|
|
11
|
-
}) &&
|
|
12
|
-
shouldUseOptimization) {
|
|
13
|
-
return {
|
|
14
|
-
chunks: optimization.ranges,
|
|
15
|
-
didUseOptimization: true,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const frameCount = renderer_1.RenderInternals.getDurationFromFrameRange(frameRange, 0);
|
|
5
|
+
const planFrameRanges = ({ framesPerLambda, frameRange, everyNthFrame, }) => {
|
|
6
|
+
const framesToRender = renderer_1.RenderInternals.getFramesToRender(frameRange, everyNthFrame);
|
|
7
|
+
const chunkCount = Math.ceil(framesToRender.length / framesPerLambda);
|
|
8
|
+
const firstFrame = frameRange[0];
|
|
19
9
|
return {
|
|
20
10
|
chunks: new Array(chunkCount).fill(1).map((_, i) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
];
|
|
11
|
+
const start = i * framesPerLambda * everyNthFrame + firstFrame;
|
|
12
|
+
const end = Math.min(framesToRender[framesToRender.length - 1], (i + 1) * framesPerLambda * everyNthFrame - 1) + firstFrame;
|
|
13
|
+
return [start, end];
|
|
25
14
|
}),
|
|
26
|
-
didUseOptimization: false,
|
|
27
15
|
};
|
|
28
16
|
};
|
|
29
17
|
exports.planFrameRanges = planFrameRanges;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { LambdaVersions } from '../../shared/constants';
|
|
2
1
|
export declare type ObjectChunkTimingData = {
|
|
3
2
|
chunk: number;
|
|
4
3
|
frameRange: [number, number];
|
|
@@ -10,13 +9,3 @@ export declare type ObjectChunkTimingData = {
|
|
|
10
9
|
export declare type ChunkTimingData = Omit<ObjectChunkTimingData, 'timings'> & {
|
|
11
10
|
timings: number[];
|
|
12
11
|
};
|
|
13
|
-
export declare type TimingProfile = ChunkTimingData[];
|
|
14
|
-
export declare type OptimizationProfile = {
|
|
15
|
-
ranges: [number, number][];
|
|
16
|
-
frameRange: [number, number];
|
|
17
|
-
oldTiming: number;
|
|
18
|
-
newTiming: number;
|
|
19
|
-
createdFromRenderId: string;
|
|
20
|
-
framesPerLambda: number;
|
|
21
|
-
lambdaVersion: LambdaVersions;
|
|
22
|
-
};
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LambdaPayload } from '../defaults';
|
|
2
|
+
declare type Options = {
|
|
3
|
+
expectedBucketOwner: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const compositionsHandler: (lambdaParams: LambdaPayload, options: Options) => Promise<{
|
|
6
|
+
compositions: import("remotion").TCompMetadata[];
|
|
7
|
+
}>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compositionsHandler = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
const version_1 = require("remotion/version");
|
|
6
|
+
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
7
|
+
const defaults_1 = require("../defaults");
|
|
8
|
+
const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
|
|
9
|
+
const deserialize_input_props_1 = require("../shared/deserialize-input-props");
|
|
10
|
+
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
11
|
+
const get_current_region_1 = require("./helpers/get-current-region");
|
|
12
|
+
const compositionsHandler = async (lambdaParams, options) => {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
if (lambdaParams.type !== defaults_1.LambdaRoutines.compositions) {
|
|
15
|
+
throw new TypeError('Expected info compositions');
|
|
16
|
+
}
|
|
17
|
+
if (lambdaParams.version !== version_1.VERSION) {
|
|
18
|
+
if (!lambdaParams.version) {
|
|
19
|
+
throw new Error(`Version mismatch: When calling getCompositionsOnLambda(), 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 getCompositionsOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
20
|
+
}
|
|
21
|
+
throw new Error(`Version mismatch: When calling getCompositionsOnLambda(), 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 getCompositionsOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
22
|
+
}
|
|
23
|
+
const region = (0, get_current_region_1.getCurrentRegionInFunction)();
|
|
24
|
+
const [bucketName, browserInstance] = await Promise.all([
|
|
25
|
+
(_a = lambdaParams.bucketName) !== null && _a !== void 0 ? _a : (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
26
|
+
region,
|
|
27
|
+
}).then((b) => b.bucketName),
|
|
28
|
+
(0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose'), (_b = lambdaParams.chromiumOptions) !== null && _b !== void 0 ? _b : {}),
|
|
29
|
+
]);
|
|
30
|
+
const inputProps = await (0, deserialize_input_props_1.deserializeInputProps)({
|
|
31
|
+
bucketName,
|
|
32
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
33
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
34
|
+
serialized: lambdaParams.inputProps,
|
|
35
|
+
});
|
|
36
|
+
const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
|
|
37
|
+
urlOrId: lambdaParams.serveUrl,
|
|
38
|
+
region,
|
|
39
|
+
bucketName,
|
|
40
|
+
});
|
|
41
|
+
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
42
|
+
const compositions = await (0, renderer_1.getCompositions)(realServeUrl, {
|
|
43
|
+
puppeteerInstance: browserInstance,
|
|
44
|
+
inputProps,
|
|
45
|
+
envVariables: lambdaParams.envVariables,
|
|
46
|
+
ffmpegExecutable: null,
|
|
47
|
+
ffprobeExecutable: null,
|
|
48
|
+
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
49
|
+
chromiumOptions: lambdaParams.chromiumOptions,
|
|
50
|
+
port: null,
|
|
51
|
+
downloadMap,
|
|
52
|
+
});
|
|
53
|
+
renderer_1.RenderInternals.cleanDownloadMap(downloadMap);
|
|
54
|
+
return Promise.resolve({
|
|
55
|
+
compositions,
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
exports.compositionsHandler = compositionsHandler;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkIfRenderExists = void 0;
|
|
4
|
+
const constants_1 = require("../../shared/constants");
|
|
5
|
+
const checkIfRenderExists = (contents, renderId, bucketName, region) => {
|
|
6
|
+
const initializedExists = Boolean(contents.find((c) => {
|
|
7
|
+
var _a;
|
|
8
|
+
return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.initalizedMetadataKey)(renderId));
|
|
9
|
+
}));
|
|
10
|
+
if (!initializedExists) {
|
|
11
|
+
throw new TypeError(`No render with ID "${renderId}" found in bucket ${bucketName} and region ${region}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.checkIfRenderExists = checkIfRenderExists;
|
|
File without changes
|
|
@@ -35,7 +35,7 @@ const deleteAllFilesInAFolderRecursively = (path) => {
|
|
|
35
35
|
const deleteTmpDir = () => {
|
|
36
36
|
exports.deletedFiles = [];
|
|
37
37
|
exports.deletedFilesSize = 0;
|
|
38
|
-
if (
|
|
38
|
+
if (!process.env.VITEST) {
|
|
39
39
|
deleteAllFilesInAFolderRecursively('/tmp');
|
|
40
40
|
}
|
|
41
41
|
};
|
|
@@ -1,17 +1,28 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AudioCodec, FfmpegExecutable } from '@remotion/renderer';
|
|
2
2
|
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
-
|
|
3
|
+
import type { LambdaCodec } from '../../shared/validate-lambda-codec';
|
|
4
|
+
import type { EnhancedErrorInfo } from './write-lambda-error';
|
|
5
|
+
export declare const getAllFilesS3: ({ bucket, expectedFiles, outdir, renderId, region, expectedBucketOwner, onErrors, }: {
|
|
4
6
|
bucket: string;
|
|
5
7
|
expectedFiles: number;
|
|
6
|
-
|
|
7
|
-
numberOfFrames: number;
|
|
8
|
+
outdir: string;
|
|
8
9
|
renderId: string;
|
|
9
10
|
region: AwsRegion;
|
|
10
|
-
codec: Codec;
|
|
11
11
|
expectedBucketOwner: string;
|
|
12
|
+
onErrors: (errors: EnhancedErrorInfo[]) => Promise<void>;
|
|
13
|
+
}) => Promise<string[]>;
|
|
14
|
+
export declare const concatVideosS3: ({ onProgress, numberOfFrames, codec, fps, numberOfGifLoops, ffmpegExecutable, remotionRoot, files, outdir, audioCodec, }: {
|
|
15
|
+
onProgress: (frames: number) => void;
|
|
16
|
+
numberOfFrames: number;
|
|
17
|
+
codec: LambdaCodec;
|
|
12
18
|
fps: number;
|
|
19
|
+
numberOfGifLoops: number | null;
|
|
20
|
+
ffmpegExecutable: FfmpegExecutable;
|
|
21
|
+
remotionRoot: string;
|
|
22
|
+
files: string[];
|
|
23
|
+
outdir: string;
|
|
24
|
+
audioCodec: AudioCodec | null;
|
|
13
25
|
}) => Promise<{
|
|
14
26
|
outfile: string;
|
|
15
27
|
cleanupChunksProm: Promise<void>;
|
|
16
|
-
encodingStart: number;
|
|
17
28
|
}>;
|
|
@@ -23,11 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.concatVideosS3 = void 0;
|
|
26
|
+
exports.concatVideosS3 = exports.getAllFilesS3 = void 0;
|
|
27
27
|
const renderer_1 = require("@remotion/renderer");
|
|
28
28
|
const fs_1 = __importStar(require("fs"));
|
|
29
29
|
const path_1 = __importStar(require("path"));
|
|
30
30
|
const constants_1 = require("../../shared/constants");
|
|
31
|
+
const inspect_errors_1 = require("./inspect-errors");
|
|
31
32
|
const io_1 = require("./io");
|
|
32
33
|
const timer_1 = require("./timer");
|
|
33
34
|
const getChunkDownloadOutputLocation = ({ outdir, file, }) => {
|
|
@@ -50,11 +51,11 @@ const downloadS3File = async ({ bucket, key, outdir, region, expectedBucketOwner
|
|
|
50
51
|
.on('close', () => resolve());
|
|
51
52
|
});
|
|
52
53
|
};
|
|
53
|
-
const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expectedBucketOwner, }) => {
|
|
54
|
+
const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expectedBucketOwner, onErrors, }) => {
|
|
54
55
|
const alreadyDownloading = {};
|
|
55
56
|
const downloaded = {};
|
|
56
57
|
const getFiles = async () => {
|
|
57
|
-
const prefix = (0, constants_1.
|
|
58
|
+
const prefix = (0, constants_1.rendersPrefix)(renderId);
|
|
58
59
|
const lsTimer = (0, timer_1.timer)('Listing files');
|
|
59
60
|
const contents = await (0, io_1.lambdaLs)({
|
|
60
61
|
bucketName: bucket,
|
|
@@ -63,13 +64,16 @@ const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expect
|
|
|
63
64
|
expectedBucketOwner,
|
|
64
65
|
});
|
|
65
66
|
lsTimer.end();
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
return {
|
|
68
|
+
filesInBucket: contents
|
|
69
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); })
|
|
70
|
+
.map((_) => _.Key),
|
|
71
|
+
errorContents: contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.getErrorKeyPrefix)(renderId)); }),
|
|
72
|
+
};
|
|
69
73
|
};
|
|
70
74
|
return new Promise((resolve, reject) => {
|
|
71
75
|
const loop = async () => {
|
|
72
|
-
const filesInBucket = await getFiles();
|
|
76
|
+
const { filesInBucket, errorContents } = await getFiles();
|
|
73
77
|
const checkFinish = () => {
|
|
74
78
|
const areAllFilesDownloaded = Object.keys(downloaded).length === expectedFiles;
|
|
75
79
|
console.log('Checking for finish... ', Object.keys(downloaded), expectedFiles + ' files expected');
|
|
@@ -79,6 +83,17 @@ const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expect
|
|
|
79
83
|
}
|
|
80
84
|
};
|
|
81
85
|
console.log('Found ', filesInBucket);
|
|
86
|
+
const errors = (await (0, inspect_errors_1.inspectErrors)({
|
|
87
|
+
bucket,
|
|
88
|
+
contents: errorContents,
|
|
89
|
+
expectedBucketOwner,
|
|
90
|
+
region,
|
|
91
|
+
renderId,
|
|
92
|
+
})).filter((e) => e.isFatal);
|
|
93
|
+
if (errors.length > 0) {
|
|
94
|
+
await onErrors(errors);
|
|
95
|
+
// Will die here
|
|
96
|
+
}
|
|
82
97
|
filesInBucket.forEach(async (key) => {
|
|
83
98
|
if (alreadyDownloading[key]) {
|
|
84
99
|
return;
|
|
@@ -105,48 +120,36 @@ const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expect
|
|
|
105
120
|
const areAllFilesDownloading = Object.keys(alreadyDownloading).length === expectedFiles;
|
|
106
121
|
if (!areAllFilesDownloading) {
|
|
107
122
|
setTimeout(() => {
|
|
108
|
-
loop();
|
|
123
|
+
loop().catch((err) => reject(err));
|
|
109
124
|
}, 100);
|
|
110
125
|
}
|
|
111
126
|
};
|
|
112
|
-
loop();
|
|
127
|
+
loop().catch((err) => reject(err));
|
|
113
128
|
});
|
|
114
129
|
};
|
|
115
|
-
|
|
130
|
+
exports.getAllFilesS3 = getAllFilesS3;
|
|
131
|
+
const concatVideosS3 = async ({ onProgress, numberOfFrames, codec, fps, numberOfGifLoops, ffmpegExecutable, remotionRoot, files, outdir, audioCodec, }) => {
|
|
116
132
|
var _a;
|
|
117
|
-
const
|
|
118
|
-
if ((0, fs_1.existsSync)(outdir)) {
|
|
119
|
-
(fs_1.rmSync !== null && fs_1.rmSync !== void 0 ? fs_1.rmSync : fs_1.rmdirSync)(outdir, {
|
|
120
|
-
recursive: true,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
(0, fs_1.mkdirSync)(outdir);
|
|
124
|
-
const files = await getAllFilesS3({
|
|
125
|
-
bucket,
|
|
126
|
-
expectedFiles,
|
|
127
|
-
outdir,
|
|
128
|
-
renderId,
|
|
129
|
-
region,
|
|
130
|
-
expectedBucketOwner,
|
|
131
|
-
});
|
|
132
|
-
const outfile = (0, path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.REMOTION_CONCATED_TOKEN), 'concat.' + renderer_1.RenderInternals.getFileExtensionFromCodec(codec, 'final'));
|
|
133
|
+
const outfile = (0, path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.REMOTION_CONCATED_TOKEN), 'concat.' + renderer_1.RenderInternals.getFileExtensionFromCodec(codec, audioCodec));
|
|
133
134
|
const combine = (0, timer_1.timer)('Combine videos');
|
|
134
135
|
const filelistDir = renderer_1.RenderInternals.tmpDir(constants_1.REMOTION_FILELIST_TOKEN);
|
|
135
|
-
|
|
136
|
-
const codecForCombining = codec === 'h264-mkv' ? 'h264' : codec;
|
|
137
|
-
await (0, renderer_1.combineVideos)({
|
|
136
|
+
await renderer_1.RenderInternals.combineVideos({
|
|
138
137
|
files,
|
|
139
138
|
filelistDir,
|
|
140
139
|
output: outfile,
|
|
141
|
-
onProgress: (p) => onProgress(p
|
|
140
|
+
onProgress: (p) => onProgress(p),
|
|
142
141
|
numberOfFrames,
|
|
143
|
-
codec
|
|
142
|
+
codec,
|
|
144
143
|
fps,
|
|
144
|
+
numberOfGifLoops,
|
|
145
|
+
ffmpegExecutable,
|
|
146
|
+
remotionRoot,
|
|
147
|
+
audioCodec,
|
|
145
148
|
});
|
|
146
149
|
combine.end();
|
|
147
150
|
const cleanupChunksProm = ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(outdir, {
|
|
148
151
|
recursive: true,
|
|
149
152
|
});
|
|
150
|
-
return { outfile, cleanupChunksProm
|
|
153
|
+
return { outfile, cleanupChunksProm };
|
|
151
154
|
};
|
|
152
155
|
exports.concatVideosS3 = concatVideosS3;
|
|
File without changes
|
|
@@ -8,11 +8,9 @@ const parse_lambda_timings_key_1 = require("../../shared/parse-lambda-timings-ke
|
|
|
8
8
|
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
9
9
|
const get_current_architecture_1 = require("./get-current-architecture");
|
|
10
10
|
const get_files_to_delete_1 = require("./get-files-to-delete");
|
|
11
|
-
const get_lambdas_invoked_stats_1 = require("./get-lambdas-invoked-stats");
|
|
12
11
|
const get_retry_stats_1 = require("./get-retry-stats");
|
|
13
12
|
const get_time_to_finish_1 = require("./get-time-to-finish");
|
|
14
13
|
const createPostRenderData = ({ renderId, region, memorySizeInMb, renderMetadata, contents, timeToEncode, errorExplanations, timeToDelete, outputFile, }) => {
|
|
15
|
-
var _a;
|
|
16
14
|
const initializedKeys = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaTimingsPrefix)(renderId)); });
|
|
17
15
|
const parsedTimings = initializedKeys.map(({ Key }) => (0, parse_lambda_timings_key_1.parseLambdaTimingsKey)(Key));
|
|
18
16
|
const times = parsedTimings
|
|
@@ -42,11 +40,7 @@ const createPostRenderData = ({ renderId, region, memorySizeInMb, renderMetadata
|
|
|
42
40
|
const renderSize = contents
|
|
43
41
|
.map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
|
|
44
42
|
.reduce((a, b) => a + b, 0);
|
|
45
|
-
const { timeToInvokeLambdas } = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)(contents, renderId, (_a = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _a !== void 0 ? _a : null, renderMetadata.startedDate);
|
|
46
43
|
const retriesInfo = (0, get_retry_stats_1.getRetryStats)({ contents, renderId });
|
|
47
|
-
if (timeToInvokeLambdas === null) {
|
|
48
|
-
throw new Error('should have timing for all lambdas');
|
|
49
|
-
}
|
|
50
44
|
return {
|
|
51
45
|
cost: {
|
|
52
46
|
currency: 'USD',
|
|
@@ -76,9 +70,8 @@ const createPostRenderData = ({ renderId, region, memorySizeInMb, renderMetadata
|
|
|
76
70
|
renderId,
|
|
77
71
|
type: 'absolute-time',
|
|
78
72
|
}),
|
|
79
|
-
timeToInvokeLambdas,
|
|
80
73
|
retriesInfo,
|
|
81
|
-
mostExpensiveFrameRanges: (0, get_most_expensive_chunks_1.getMostExpensiveChunks)(parsedTimings, renderMetadata.framesPerLambda),
|
|
74
|
+
mostExpensiveFrameRanges: (0, get_most_expensive_chunks_1.getMostExpensiveChunks)(parsedTimings, renderMetadata.framesPerLambda, renderMetadata.frameRange[1]),
|
|
82
75
|
};
|
|
83
76
|
};
|
|
84
77
|
exports.createPostRenderData = createPostRenderData;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import type { OutNameOutput, RenderMetadata } from '../../defaults';
|
|
2
|
-
|
|
1
|
+
import type { OutNameInput, OutNameOutput, RenderMetadata } from '../../defaults';
|
|
2
|
+
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
3
|
+
export declare const getCredentialsFromOutName: (name: OutNameInput | null) => CustomCredentials | null;
|
|
4
|
+
export declare const getExpectedOutName: (renderMetadata: RenderMetadata, bucketName: string, customCredentials: CustomCredentials | null) => OutNameOutput;
|
|
@@ -1,24 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExpectedOutName = void 0;
|
|
3
|
+
exports.getExpectedOutName = exports.getCredentialsFromOutName = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const defaults_1 = require("../../defaults");
|
|
6
6
|
const validate_outname_1 = require("../../shared/validate-outname");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const get_custom_out_name_1 = require("./get-custom-out-name");
|
|
8
|
+
const getCredentialsFromOutName = (name) => {
|
|
9
|
+
var _a;
|
|
10
|
+
if (typeof name === 'string') {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
if (name === null) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (typeof name === 'undefined') {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (_a = name.s3OutputProvider) !== null && _a !== void 0 ? _a : null;
|
|
20
|
+
};
|
|
21
|
+
exports.getCredentialsFromOutName = getCredentialsFromOutName;
|
|
22
|
+
const getExpectedOutName = (renderMetadata, bucketName, customCredentials) => {
|
|
23
|
+
const outNameValue = (0, get_custom_out_name_1.getCustomOutName)({
|
|
24
|
+
customCredentials,
|
|
25
|
+
renderMetadata,
|
|
26
|
+
});
|
|
27
|
+
if (outNameValue) {
|
|
28
|
+
(0, validate_outname_1.validateOutname)(outNameValue, renderMetadata.codec, renderMetadata.audioCodec);
|
|
29
|
+
return (0, defaults_1.customOutName)(renderMetadata.renderId, bucketName, outNameValue);
|
|
11
30
|
}
|
|
12
31
|
if (renderMetadata.type === 'still') {
|
|
13
32
|
return {
|
|
14
33
|
renderBucketName: bucketName,
|
|
15
34
|
key: (0, defaults_1.outStillName)(renderMetadata.renderId, renderMetadata.imageFormat),
|
|
35
|
+
customCredentials: null,
|
|
16
36
|
};
|
|
17
37
|
}
|
|
18
38
|
if (renderMetadata.type === 'video') {
|
|
19
39
|
return {
|
|
20
40
|
renderBucketName: bucketName,
|
|
21
|
-
key: (0, defaults_1.outName)(renderMetadata.renderId, renderer_1.RenderInternals.getFileExtensionFromCodec(renderMetadata.codec,
|
|
41
|
+
key: (0, defaults_1.outName)(renderMetadata.renderId, renderer_1.RenderInternals.getFileExtensionFromCodec(renderMetadata.codec, renderMetadata.audioCodec)),
|
|
42
|
+
customCredentials: null,
|
|
22
43
|
};
|
|
23
44
|
}
|
|
24
45
|
throw new TypeError('no type passed');
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { AwsRegion } from '../..';
|
|
2
|
+
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
2
3
|
import type { RenderMetadata } from '../../shared/constants';
|
|
3
4
|
export declare type OutputFileMetadata = {
|
|
4
5
|
url: string;
|
|
5
6
|
size: number;
|
|
6
7
|
lastModified: number;
|
|
7
8
|
};
|
|
8
|
-
export declare const findOutputFileInBucket: ({ region, renderMetadata, bucketName, }: {
|
|
9
|
+
export declare const findOutputFileInBucket: ({ region, renderMetadata, bucketName, customCredentials, }: {
|
|
9
10
|
region: AwsRegion;
|
|
10
11
|
renderMetadata: RenderMetadata;
|
|
11
12
|
bucketName: string;
|
|
13
|
+
customCredentials: CustomCredentials | null;
|
|
12
14
|
}) => Promise<OutputFileMetadata | null>;
|
|
@@ -1,31 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findOutputFileInBucket = void 0;
|
|
4
|
-
const
|
|
5
|
-
const aws_clients_1 = require("../../shared/aws-clients");
|
|
4
|
+
const suggested_policy_1 = require("../../api/iam-validation/suggested-policy");
|
|
6
5
|
const expected_out_name_1 = require("./expected-out-name");
|
|
7
6
|
const get_output_url_from_metadata_1 = require("./get-output-url-from-metadata");
|
|
8
|
-
const
|
|
7
|
+
const io_1 = require("./io");
|
|
8
|
+
const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, customCredentials, }) => {
|
|
9
9
|
var _a;
|
|
10
10
|
if (!renderMetadata) {
|
|
11
11
|
throw new Error('unexpectedly did not get renderMetadata');
|
|
12
12
|
}
|
|
13
|
-
const
|
|
13
|
+
const { renderBucketName, key } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, null);
|
|
14
14
|
try {
|
|
15
|
-
const head = await (0,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const head = await (0, io_1.lambdaHeadCommand)({
|
|
16
|
+
bucketName,
|
|
17
|
+
key,
|
|
18
|
+
region,
|
|
19
|
+
});
|
|
19
20
|
return {
|
|
20
21
|
lastModified: (_a = head.LastModified) === null || _a === void 0 ? void 0 : _a.getTime(),
|
|
21
22
|
size: head.ContentLength,
|
|
22
|
-
url: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName),
|
|
23
|
+
url: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName, customCredentials),
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
catch (err) {
|
|
26
27
|
if (err.name === 'NotFound') {
|
|
27
28
|
return null;
|
|
28
29
|
}
|
|
30
|
+
if (err.message === 'UnknownError' ||
|
|
31
|
+
err.$metadata
|
|
32
|
+
.httpStatusCode === 403) {
|
|
33
|
+
throw new Error(`Unable to access item "${key}" from bucket "${renderBucketName}" ${(customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.endpoint)
|
|
34
|
+
? `(S3 Endpoint = ${customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.endpoint})`
|
|
35
|
+
: ''}. The "${suggested_policy_1.ROLE_NAME}" role must have permission for both "s3:GetObject" and "s3:ListBucket" actions.`);
|
|
36
|
+
}
|
|
29
37
|
throw err;
|
|
30
38
|
}
|
|
31
39
|
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -32,7 +32,7 @@ const getBrowserInstance = async (shouldDumpIo, chromiumOptions) => {
|
|
|
32
32
|
return _browserInstance;
|
|
33
33
|
}
|
|
34
34
|
launching = true;
|
|
35
|
-
const execPath =
|
|
35
|
+
const execPath = (0, get_chromium_executable_path_1.executablePath)();
|
|
36
36
|
const actualChromiumOptions = {
|
|
37
37
|
...chromiumOptions,
|
|
38
38
|
// Override the `null` value, which might come from CLI with swANGLE
|
|
@@ -45,7 +45,7 @@ const getBrowserInstance = async (shouldDumpIo, chromiumOptions) => {
|
|
|
45
45
|
});
|
|
46
46
|
_browserInstance.on('disconnected', () => {
|
|
47
47
|
console.log('Browser disconnected / crashed');
|
|
48
|
-
_browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.close().catch(() => undefined);
|
|
48
|
+
_browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.close(true).catch(() => undefined);
|
|
49
49
|
_browserInstance = null;
|
|
50
50
|
});
|
|
51
51
|
launching = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const executablePath: () =>
|
|
1
|
+
export declare const executablePath: () => string;
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.executablePath = void 0;
|
|
5
|
-
if (/^AWS_Lambda_nodejs(?:10|12|14)[.]x$/.test((_a = process.env.AWS_EXECUTION_ENV) !== null && _a !== void 0 ? _a : '') === true) {
|
|
5
|
+
if (/^AWS_Lambda_nodejs(?:10|12|14|16|18)[.]x$/.test((_a = process.env.AWS_EXECUTION_ENV) !== null && _a !== void 0 ? _a : '') === true) {
|
|
6
6
|
if (process.env.FONTCONFIG_PATH === undefined) {
|
|
7
7
|
process.env.FONTCONFIG_PATH = '/opt';
|
|
8
|
+
process.env.FONTCONFIG_FILE = '/opt/fonts.conf';
|
|
8
9
|
}
|
|
9
10
|
process.env.LD_LIBRARY_PATH = '/opt/lib:/opt/bin';
|
|
10
11
|
}
|
|
11
|
-
const executablePath =
|
|
12
|
+
const executablePath = () => {
|
|
12
13
|
return '/opt/bin/chromium';
|
|
13
14
|
};
|
|
14
15
|
exports.executablePath = executablePath;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getCurrentRegionInFunction: () => "eu-central-1" | "eu-west-1" | "eu-west-2" | "us-east-1" | "us-east-2" | "us-west-2" | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1";
|
|
1
|
+
export declare const getCurrentRegionInFunction: () => "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "af-south-1" | "ap-south-1" | "ap-east-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "me-south-1" | "sa-east-1";
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { OutNameInput, RenderMetadata } from '../../defaults';
|
|
2
|
+
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
3
|
+
export declare const getCustomOutName: ({ renderMetadata, customCredentials, }: {
|
|
4
|
+
renderMetadata: RenderMetadata;
|
|
5
|
+
customCredentials: CustomCredentials | null;
|
|
6
|
+
}) => OutNameInput | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCustomOutName = void 0;
|
|
4
|
+
const getCustomOutName = ({ renderMetadata, customCredentials, }) => {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
if (!renderMetadata.outName) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
if (typeof renderMetadata.outName === 'string') {
|
|
10
|
+
return renderMetadata.outName;
|
|
11
|
+
}
|
|
12
|
+
if (renderMetadata.outName.s3OutputProvider) {
|
|
13
|
+
if (!customCredentials && renderMetadata.privacy === 'private') {
|
|
14
|
+
throw new TypeError(`The file was rendered with a custom S3 implementation and is not public, but no custom credentials were passed to downloadMedia().`);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
bucketName: renderMetadata.outName.bucketName,
|
|
18
|
+
key: renderMetadata.outName.key,
|
|
19
|
+
s3OutputProvider: {
|
|
20
|
+
endpoint: renderMetadata.outName.s3OutputProvider.endpoint,
|
|
21
|
+
accessKeyId: (_a = customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.accessKeyId) !== null && _a !== void 0 ? _a : null,
|
|
22
|
+
secretAccessKey: (_b = customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.secretAccessKey) !== null && _b !== void 0 ? _b : null,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
bucketName: renderMetadata.outName.bucketName,
|
|
28
|
+
key: renderMetadata.outName.key,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.getCustomOutName = getCustomOutName;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
1
2
|
import type { EncodingProgress } from '../../defaults';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
renderId: string;
|
|
7
|
-
region: AwsRegion;
|
|
8
|
-
expectedBucketOwner: string;
|
|
9
|
-
}) => Promise<EncodingProgress | null>;
|
|
3
|
+
export declare const getEncodingMetadata: ({ exists, frameCount, }: {
|
|
4
|
+
exists: _Object | undefined;
|
|
5
|
+
frameCount: number;
|
|
6
|
+
}) => EncodingProgress | null;
|