@remotion/lambda 4.0.0-imgloading.2 → 4.0.0-jshmr2.1
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 +30 -8
- package/dist/api/bucket-exists.d.ts +1 -1
- package/dist/api/bucket-exists.js +1 -1
- package/dist/api/clean-items.d.ts +1 -1
- package/dist/api/clean-items.js +1 -1
- package/dist/api/create-bucket.d.ts +1 -1
- package/dist/api/create-bucket.js +1 -1
- package/dist/api/create-function.d.ts +4 -3
- package/dist/api/create-function.js +27 -4
- package/dist/api/delete-function.d.ts +2 -2
- 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 +2 -2
- package/dist/api/delete-site.js +1 -6
- package/dist/api/deploy-function.d.ts +4 -3
- package/dist/api/deploy-function.js +11 -4
- package/dist/api/deploy-site.d.ts +13 -4
- package/dist/api/deploy-site.js +50 -22
- package/dist/api/download-media.d.ts +15 -2
- package/dist/api/download-media.js +15 -3
- package/dist/api/estimate-price.d.ts +3 -3
- package/dist/api/estimate-price.js +1 -1
- package/dist/api/get-aws-client.d.ts +8 -4
- package/dist/api/get-aws-client.js +15 -4
- package/dist/api/get-buckets.d.ts +1 -1
- 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 +3 -4
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +3 -5
- package/dist/api/get-functions.js +3 -4
- package/dist/api/get-or-create-bucket.d.ts +2 -2
- package/dist/api/get-or-create-bucket.js +4 -9
- package/dist/api/get-regions.d.ts +7 -3
- package/dist/api/get-regions.js +6 -3
- package/dist/api/get-render-progress.d.ts +7 -4
- package/dist/api/get-render-progress.js +6 -2
- package/dist/api/get-sites.d.ts +4 -4
- package/dist/api/get-sites.js +1 -2
- package/dist/api/iam-validation/role-permissions.d.ts +2 -1
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
- 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 +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 +6 -7
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +5 -5
- package/dist/api/presign-url.js +9 -4
- package/dist/api/render-media-on-lambda.d.ts +38 -17
- package/dist/api/render-media-on-lambda.js +88 -38
- package/dist/api/render-still-on-lambda.d.ts +12 -7
- package/dist/api/render-still-on-lambda.js +58 -31
- package/dist/api/upload-dir.d.ts +6 -5
- package/dist/api/upload-dir.js +58 -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 +13 -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 +10 -6
- 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 +11 -7
- 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 +80 -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 +1 -1
- 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 +30 -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 +5 -1
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +3 -10
- 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 +1 -1
- package/dist/functions/helpers/calculate-chunk-times.js +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
- 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 +19 -7
- package/dist/functions/helpers/concat-videos.js +41 -33
- package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
- package/dist/functions/helpers/create-post-render-data.js +5 -12
- package/dist/functions/helpers/delete-chunks.d.ts +3 -3
- 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 +5 -3
- package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
- package/dist/functions/helpers/format-costs-info.d.ts +1 -1
- package/dist/functions/helpers/format-costs-info.js +0 -0
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
- 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 +2 -2
- package/dist/functions/helpers/get-cleanup-progress.js +0 -0
- package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
- 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 +6 -9
- 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 +3 -3
- package/dist/functions/helpers/get-final-encoding-status.d.ts +3 -5
- 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 +5 -4
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +2 -10
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +3 -2
- 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 +2 -2
- package/dist/functions/helpers/get-post-render-data.js +0 -0
- package/dist/functions/helpers/get-progress.d.ts +6 -4
- package/dist/functions/helpers/get-progress.js +65 -46
- package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
- 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 +1 -1
- package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
- package/dist/functions/helpers/get-time-to-finish.js +0 -0
- package/dist/functions/helpers/inspect-errors.d.ts +3 -3
- package/dist/functions/helpers/inspect-errors.js +0 -0
- package/dist/functions/helpers/io.d.ts +24 -6
- 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 +2 -2
- 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 +6 -3
- 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 +12 -4
- package/dist/functions/helpers/validate-composition.js +14 -2
- package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
- package/dist/functions/helpers/write-lambda-error.js +2 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
- package/dist/functions/helpers/write-post-render-data.js +2 -0
- package/dist/functions/index.d.ts +3 -2
- 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 +2 -1
- package/dist/functions/launch.js +360 -123
- package/dist/functions/progress.d.ts +2 -2
- package/dist/functions/progress.js +10 -1
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +144 -79
- package/dist/functions/start.d.ts +6 -2
- package/dist/functions/start.js +44 -6
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +78 -21
- package/dist/index.d.ts +57 -21
- 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 +1 -1
- 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 +17 -3
- 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 +3 -3
- 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 +119 -37
- 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 +6 -2
- 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 +1 -1
- 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 +2 -3
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
- package/dist/shared/get-most-expensive-chunks.js +26 -0
- 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 +89 -3
- package/dist/shared/hosted-layers.js +434 -125
- 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 +1 -0
- package/dist/shared/make-s3-key.js +11 -0
- package/dist/shared/make-s3-url.d.ts +1 -1
- 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 +2 -2
- package/dist/shared/random-hash.js +1 -1
- package/dist/shared/read-dir.d.ts +9 -0
- package/dist/shared/read-dir.js +57 -0
- package/dist/shared/return-values.d.ts +9 -7
- package/dist/shared/return-values.js +0 -1
- 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 +2 -1
- 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 +1 -1
- 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 +1 -0
- package/dist/shared/validate-custom-role-arn.js +11 -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 +1 -1
- 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 +55 -32
- 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 -6
- 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 -15
- 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 -10
- 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
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getProgress = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
4
5
|
const remotion_1 = require("remotion");
|
|
6
|
+
const chunk_progress_1 = require("../../shared/chunk-progress");
|
|
5
7
|
const constants_1 = require("../../shared/constants");
|
|
6
8
|
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
7
9
|
const calculate_price_from_bucket_1 = require("./calculate-price-from-bucket");
|
|
10
|
+
const check_if_render_exists_1 = require("./check-if-render-exists");
|
|
8
11
|
const expected_out_name_1 = require("./expected-out-name");
|
|
9
12
|
const find_output_file_in_bucket_1 = require("./find-output-file-in-bucket");
|
|
10
13
|
const format_costs_info_1 = require("./format-costs-info");
|
|
@@ -17,12 +20,14 @@ const get_lambdas_invoked_stats_1 = require("./get-lambdas-invoked-stats");
|
|
|
17
20
|
const get_overall_progress_1 = require("./get-overall-progress");
|
|
18
21
|
const get_post_render_data_1 = require("./get-post-render-data");
|
|
19
22
|
const get_render_metadata_1 = require("./get-render-metadata");
|
|
23
|
+
const get_rendered_frames_progress_1 = require("./get-rendered-frames-progress");
|
|
20
24
|
const get_retry_stats_1 = require("./get-retry-stats");
|
|
21
25
|
const get_time_to_finish_1 = require("./get-time-to-finish");
|
|
22
26
|
const inspect_errors_1 = require("./inspect-errors");
|
|
23
27
|
const io_1 = require("./io");
|
|
24
|
-
const
|
|
25
|
-
|
|
28
|
+
const make_timeout_error_1 = require("./make-timeout-error");
|
|
29
|
+
const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, }) => {
|
|
30
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
26
31
|
const postRenderData = await (0, get_post_render_data_1.getPostRenderData)({
|
|
27
32
|
bucketName,
|
|
28
33
|
region,
|
|
@@ -30,8 +35,10 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
30
35
|
expectedBucketOwner,
|
|
31
36
|
});
|
|
32
37
|
if (postRenderData) {
|
|
33
|
-
const outData = (0, expected_out_name_1.getExpectedOutName)(postRenderData.renderMetadata, bucketName);
|
|
38
|
+
const outData = (0, expected_out_name_1.getExpectedOutName)(postRenderData.renderMetadata, bucketName, customCredentials);
|
|
39
|
+
const totalFrameCount = renderer_1.RenderInternals.getFramesToRender(postRenderData.renderMetadata.frameRange, postRenderData.renderMetadata.everyNthFrame).length;
|
|
34
40
|
return {
|
|
41
|
+
framesRendered: totalFrameCount,
|
|
35
42
|
bucket: bucketName,
|
|
36
43
|
renderSize: postRenderData.renderSize,
|
|
37
44
|
chunks: postRenderData.renderMetadata.totalChunks,
|
|
@@ -49,10 +56,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
49
56
|
currentTime: Date.now(),
|
|
50
57
|
done: true,
|
|
51
58
|
encodingStatus: {
|
|
52
|
-
framesEncoded:
|
|
53
|
-
totalFrames: postRenderData.renderMetadata.videoConfig.durationInFrames,
|
|
54
|
-
doneIn: postRenderData.timeToEncode,
|
|
55
|
-
timeToInvoke: postRenderData.timeToInvokeLambdas,
|
|
59
|
+
framesEncoded: totalFrameCount,
|
|
56
60
|
},
|
|
57
61
|
errors: postRenderData.errors,
|
|
58
62
|
fatalErrorEncountered: false,
|
|
@@ -62,11 +66,13 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
62
66
|
renderMetadata: postRenderData.renderMetadata,
|
|
63
67
|
timeToFinish: postRenderData.timeToFinish,
|
|
64
68
|
timeToFinishChunks: postRenderData.timeToRenderChunks,
|
|
65
|
-
timeToInvokeLambdas: postRenderData.timeToInvokeLambdas,
|
|
66
69
|
overallProgress: 1,
|
|
67
70
|
retriesInfo: postRenderData.retriesInfo,
|
|
68
71
|
outKey: outData.key,
|
|
69
72
|
outBucket: outData.renderBucketName,
|
|
73
|
+
mostExpensiveFrameRanges: (_a = postRenderData.mostExpensiveFrameRanges) !== null && _a !== void 0 ? _a : null,
|
|
74
|
+
timeToEncode: postRenderData.timeToEncode,
|
|
75
|
+
outputSizeInBytes: postRenderData.outputSize,
|
|
70
76
|
};
|
|
71
77
|
}
|
|
72
78
|
const contents = await (0, io_1.lambdaLs)({
|
|
@@ -76,14 +82,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
76
82
|
expectedBucketOwner,
|
|
77
83
|
});
|
|
78
84
|
const renderMetadataExists = Boolean(contents.find((c) => c.Key === (0, constants_1.renderMetadataKey)(renderId)));
|
|
79
|
-
const [
|
|
80
|
-
(0, get_encoding_metadata_1.getEncodingMetadata)({
|
|
81
|
-
exists: Boolean(contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId))),
|
|
82
|
-
bucketName,
|
|
83
|
-
renderId,
|
|
84
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
85
|
-
expectedBucketOwner,
|
|
86
|
-
}),
|
|
85
|
+
const [renderMetadata, errorExplanations] = await Promise.all([
|
|
87
86
|
renderMetadataExists
|
|
88
87
|
? (0, get_render_metadata_1.getRenderMetadata)({
|
|
89
88
|
bucketName,
|
|
@@ -100,11 +99,16 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
100
99
|
expectedBucketOwner,
|
|
101
100
|
}),
|
|
102
101
|
]);
|
|
102
|
+
if ((renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.type) === 'still') {
|
|
103
|
+
throw new Error("You don't need to call getRenderProgress() on a still render. Once you have obtained the `renderId`, the render is already done! 😉");
|
|
104
|
+
}
|
|
105
|
+
(0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
|
|
103
106
|
const outputFile = renderMetadata
|
|
104
107
|
? await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
105
108
|
bucketName,
|
|
106
109
|
renderMetadata,
|
|
107
110
|
region,
|
|
111
|
+
customCredentials,
|
|
108
112
|
})
|
|
109
113
|
: null;
|
|
110
114
|
const accruedSoFar = Number((0, calculate_price_from_bucket_1.estimatePriceFromBucket)({
|
|
@@ -113,62 +117,74 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
113
117
|
memorySizeInMb,
|
|
114
118
|
outputFileMetadata: outputFile,
|
|
115
119
|
architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
|
|
116
|
-
lambdasInvoked: (
|
|
120
|
+
lambdasInvoked: (_b = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _b !== void 0 ? _b : 0,
|
|
117
121
|
// We cannot determine the ephemeral storage size, so we
|
|
118
122
|
// overestimate the price, but will only have a miniscule effect (~0.2%)
|
|
119
123
|
diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
|
|
120
124
|
}));
|
|
121
125
|
const cleanup = (0, get_cleanup_progress_1.getCleanupProgress)({
|
|
122
|
-
chunkCount: (
|
|
126
|
+
chunkCount: (_c = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _c !== void 0 ? _c : 0,
|
|
123
127
|
contents,
|
|
124
|
-
output: (
|
|
128
|
+
output: (_d = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _d !== void 0 ? _d : null,
|
|
125
129
|
renderId,
|
|
126
130
|
});
|
|
127
131
|
const timeToFinish = (0, get_time_to_finish_1.getTimeToFinish)({
|
|
128
|
-
lastModified: (
|
|
132
|
+
lastModified: (_e = outputFile === null || outputFile === void 0 ? void 0 : outputFile.lastModified) !== null && _e !== void 0 ? _e : null,
|
|
129
133
|
renderMetadata,
|
|
130
134
|
});
|
|
131
135
|
const chunks = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); });
|
|
132
|
-
const
|
|
136
|
+
const framesRendered = renderMetadata
|
|
137
|
+
? (0, get_rendered_frames_progress_1.getRenderedFramesProgress)({
|
|
138
|
+
contents,
|
|
139
|
+
everyNthFrame: renderMetadata.everyNthFrame,
|
|
140
|
+
frameRange: renderMetadata.frameRange,
|
|
141
|
+
framesPerLambda: renderMetadata.framesPerLambda,
|
|
142
|
+
renderId,
|
|
143
|
+
})
|
|
144
|
+
: 0;
|
|
145
|
+
console.log('etags', contents
|
|
146
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
147
|
+
.map((c) => {
|
|
148
|
+
return (0, chunk_progress_1.getProgressOfChunk)(c.ETag);
|
|
149
|
+
}));
|
|
150
|
+
const allChunks = chunks.length === ((_f = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _f !== void 0 ? _f : Infinity);
|
|
133
151
|
const renderSize = contents
|
|
134
152
|
.map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
|
|
135
153
|
.reduce((a, b) => a + b, 0);
|
|
136
|
-
const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)(
|
|
154
|
+
const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
|
|
155
|
+
contents,
|
|
156
|
+
renderId,
|
|
157
|
+
});
|
|
137
158
|
const retriesInfo = (0, get_retry_stats_1.getRetryStats)({
|
|
138
159
|
contents,
|
|
139
160
|
renderId,
|
|
140
161
|
});
|
|
162
|
+
const frameCount = renderMetadata
|
|
163
|
+
? renderer_1.RenderInternals.getFramesToRender(renderMetadata.frameRange, renderMetadata.everyNthFrame).length
|
|
164
|
+
: null;
|
|
165
|
+
const encodingStatus = (0, get_encoding_metadata_1.getEncodingMetadata)({
|
|
166
|
+
exists: contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId)),
|
|
167
|
+
frameCount: frameCount === null ? 0 : frameCount,
|
|
168
|
+
});
|
|
141
169
|
const finalEncodingStatus = (0, get_final_encoding_status_1.getFinalEncodingStatus)({
|
|
142
|
-
encodingStatus,
|
|
170
|
+
encodingProgress: encodingStatus,
|
|
143
171
|
outputFileExists: Boolean(outputFile),
|
|
144
172
|
renderMetadata,
|
|
145
|
-
lambdaInvokeStatus: lambdasInvokedStats,
|
|
146
173
|
});
|
|
147
174
|
const chunkCount = outputFile
|
|
148
|
-
? (
|
|
175
|
+
? (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _g !== void 0 ? _g : 0
|
|
149
176
|
: chunks.length;
|
|
150
177
|
// We add a 20 second buffer for it, since AWS timeshifts can be quite a lot. Once it's 20sec over the limit, we consider it timed out
|
|
151
178
|
const isBeyondTimeout = renderMetadata &&
|
|
152
|
-
Date.now() > renderMetadata.startedDate +
|
|
179
|
+
Date.now() > renderMetadata.startedDate + timeoutInMilliseconds + 20000;
|
|
153
180
|
const allErrors = [
|
|
154
181
|
isBeyondTimeout
|
|
155
|
-
? {
|
|
156
|
-
attempt: 1,
|
|
157
|
-
chunk: null,
|
|
158
|
-
explanation: `The main function timed out after ${timeoutInMiliseconds}ms. Consider increasing the timeout of your function.`,
|
|
159
|
-
frame: null,
|
|
160
|
-
isFatal: true,
|
|
161
|
-
s3Location: '',
|
|
162
|
-
stack: new Error().stack,
|
|
163
|
-
tmpDir: null,
|
|
164
|
-
totalAttempts: 1,
|
|
165
|
-
type: 'stitcher',
|
|
166
|
-
willRetry: false,
|
|
167
|
-
}
|
|
182
|
+
? (0, make_timeout_error_1.makeTimeoutError)({ timeoutInMilliseconds, renderMetadata, chunks })
|
|
168
183
|
: null,
|
|
169
184
|
...errorExplanations,
|
|
170
185
|
].filter(remotion_1.Internals.truthy);
|
|
171
186
|
return {
|
|
187
|
+
framesRendered,
|
|
172
188
|
chunks: chunkCount,
|
|
173
189
|
done: false,
|
|
174
190
|
encodingStatus,
|
|
@@ -176,7 +192,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
176
192
|
renderId,
|
|
177
193
|
renderMetadata,
|
|
178
194
|
bucket: bucketName,
|
|
179
|
-
outputFile: (
|
|
195
|
+
outputFile: (_h = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _h !== void 0 ? _h : null,
|
|
180
196
|
timeToFinish,
|
|
181
197
|
errors: allErrors,
|
|
182
198
|
fatalErrorEncountered: allErrors.some((f) => f.isFatal && !f.willRetry),
|
|
@@ -191,26 +207,29 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
191
207
|
type: 'absolute-time',
|
|
192
208
|
})
|
|
193
209
|
: null,
|
|
194
|
-
timeToInvokeLambdas: (_k = encodingStatus === null || encodingStatus === void 0 ? void 0 : encodingStatus.timeToInvoke) !== null && _k !== void 0 ? _k : lambdasInvokedStats.timeToInvokeLambdas,
|
|
195
210
|
overallProgress: (0, get_overall_progress_1.getOverallProgress)({
|
|
196
211
|
cleanup: cleanup ? cleanup.filesDeleted / cleanup.minFilesToDelete : 0,
|
|
197
|
-
encoding: finalEncodingStatus && renderMetadata
|
|
198
|
-
? finalEncodingStatus.framesEncoded /
|
|
199
|
-
renderMetadata.videoConfig.durationInFrames
|
|
212
|
+
encoding: finalEncodingStatus && renderMetadata && frameCount
|
|
213
|
+
? finalEncodingStatus.framesEncoded / frameCount
|
|
200
214
|
: 0,
|
|
201
215
|
invoking: renderMetadata
|
|
202
216
|
? lambdasInvokedStats.lambdasInvoked /
|
|
203
217
|
renderMetadata.estimatedRenderLambdaInvokations
|
|
204
218
|
: 0,
|
|
205
219
|
rendering: renderMetadata ? chunkCount / renderMetadata.totalChunks : 0,
|
|
220
|
+
frames: frameCount === null ? 0 : framesRendered / frameCount,
|
|
206
221
|
}),
|
|
207
222
|
retriesInfo,
|
|
208
223
|
outKey: outputFile && renderMetadata
|
|
209
|
-
? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName).key
|
|
224
|
+
? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials).key
|
|
210
225
|
: null,
|
|
211
226
|
outBucket: outputFile && renderMetadata
|
|
212
|
-
? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName)
|
|
227
|
+
? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials)
|
|
228
|
+
.renderBucketName
|
|
213
229
|
: null,
|
|
230
|
+
mostExpensiveFrameRanges: null,
|
|
231
|
+
timeToEncode: null,
|
|
232
|
+
outputSizeInBytes: (_j = outputFile === null || outputFile === void 0 ? void 0 : outputFile.size) !== null && _j !== void 0 ? _j : null,
|
|
214
233
|
};
|
|
215
234
|
};
|
|
216
235
|
exports.getProgress = getProgress;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { RenderMetadata } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { RenderMetadata } from '../../shared/constants';
|
|
3
3
|
export declare const getRenderMetadata: ({ bucketName, renderId, region, expectedBucketOwner, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
renderId: string;
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
export declare const getRenderedFramesProgress: ({ contents, renderId, framesPerLambda, everyNthFrame, frameRange, }: {
|
|
3
|
+
contents: _Object[];
|
|
4
|
+
renderId: string;
|
|
5
|
+
framesPerLambda: number;
|
|
6
|
+
frameRange: [number, number];
|
|
7
|
+
everyNthFrame: number;
|
|
8
|
+
}) => number;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRenderedFramesProgress = void 0;
|
|
4
|
+
const chunk_progress_1 = require("../../shared/chunk-progress");
|
|
5
|
+
const constants_1 = require("../../shared/constants");
|
|
6
|
+
const parse_chunk_key_1 = require("../../shared/parse-chunk-key");
|
|
7
|
+
const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
|
|
8
|
+
const plan_frame_ranges_1 = require("../chunk-optimization/plan-frame-ranges");
|
|
9
|
+
const getRenderedFramesProgress = ({ contents, renderId, framesPerLambda, everyNthFrame, frameRange, }) => {
|
|
10
|
+
const chunkProgress = {};
|
|
11
|
+
const { chunks } = (0, plan_frame_ranges_1.planFrameRanges)({
|
|
12
|
+
everyNthFrame,
|
|
13
|
+
frameRange,
|
|
14
|
+
framesPerLambda,
|
|
15
|
+
});
|
|
16
|
+
// Sort, so only the latest attempt is used
|
|
17
|
+
const sortedChunks = contents
|
|
18
|
+
.filter((c) => {
|
|
19
|
+
return c.Key.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId));
|
|
20
|
+
})
|
|
21
|
+
.sort((a, b) => {
|
|
22
|
+
return a.Key.localeCompare(b.Key);
|
|
23
|
+
});
|
|
24
|
+
for (const chunk of sortedChunks) {
|
|
25
|
+
const key = (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(chunk.Key);
|
|
26
|
+
chunkProgress[key.chunk] = (0, chunk_progress_1.getProgressOfChunk)(chunk.ETag);
|
|
27
|
+
}
|
|
28
|
+
for (const chunk of contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); })) {
|
|
29
|
+
const parsed = (0, parse_chunk_key_1.parseLambdaChunkKey)(chunk.Key);
|
|
30
|
+
const frameRangeInChunk = chunks[parsed.chunk];
|
|
31
|
+
chunkProgress[parsed.chunk] =
|
|
32
|
+
frameRangeInChunk[1] - frameRangeInChunk[0] + 1;
|
|
33
|
+
}
|
|
34
|
+
const framesRendered = Object.values(chunkProgress).reduce((a, b) => a + b, 0);
|
|
35
|
+
return framesRendered;
|
|
36
|
+
};
|
|
37
|
+
exports.getRenderedFramesProgress = getRenderedFramesProgress;
|
|
@@ -5,7 +5,7 @@ const constants_1 = require("../../shared/constants");
|
|
|
5
5
|
const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
|
|
6
6
|
const getRetryStats = ({ contents, renderId, }) => {
|
|
7
7
|
const retries = contents
|
|
8
|
-
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.
|
|
8
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
9
9
|
.filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt !== 1);
|
|
10
10
|
return retries.map((retry) => {
|
|
11
11
|
var _a;
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
-
import { EnhancedErrorInfo } from './write-lambda-error';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
+
import type { EnhancedErrorInfo } from './write-lambda-error';
|
|
4
4
|
export declare const inspectErrors: ({ contents, bucket, region, renderId, expectedBucketOwner, }: {
|
|
5
5
|
contents: _Object[];
|
|
6
6
|
bucket: string;
|
|
File without changes
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { ReadStream } from 'fs';
|
|
3
|
-
import { Readable } from 'stream';
|
|
4
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
5
|
-
import {
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { ReadStream } from 'fs';
|
|
3
|
+
import type { Readable } from 'stream';
|
|
4
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
5
|
+
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
6
|
+
import type { Privacy } from '../../shared/constants';
|
|
7
|
+
import type { DownloadBehavior } from '../../shared/content-disposition-header';
|
|
6
8
|
export declare type LambdaLSInput = {
|
|
7
9
|
bucketName: string;
|
|
8
10
|
prefix: string;
|
|
@@ -12,13 +14,21 @@ export declare type LambdaLSInput = {
|
|
|
12
14
|
};
|
|
13
15
|
export declare type LambdaLsReturnType = Promise<_Object[]>;
|
|
14
16
|
export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
|
|
15
|
-
export declare const
|
|
17
|
+
export declare const lambdaDeleteFile: ({ bucketName, key, region, customCredentials, }: {
|
|
18
|
+
region: AwsRegion;
|
|
19
|
+
bucketName: string;
|
|
20
|
+
key: string;
|
|
21
|
+
customCredentials: CustomCredentials | null;
|
|
22
|
+
}) => Promise<void>;
|
|
23
|
+
export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }: {
|
|
16
24
|
bucketName: string;
|
|
17
25
|
key: string;
|
|
18
26
|
body: ReadStream | string;
|
|
19
27
|
region: AwsRegion;
|
|
20
28
|
privacy: Privacy;
|
|
21
29
|
expectedBucketOwner: string | null;
|
|
30
|
+
downloadBehavior: DownloadBehavior | null;
|
|
31
|
+
customCredentials: CustomCredentials | null;
|
|
22
32
|
}) => Promise<void>;
|
|
23
33
|
export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketOwner, }: {
|
|
24
34
|
bucketName: string;
|
|
@@ -26,3 +36,11 @@ export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketO
|
|
|
26
36
|
region: AwsRegion;
|
|
27
37
|
expectedBucketOwner: string;
|
|
28
38
|
}) => Promise<Readable>;
|
|
39
|
+
export declare const lambdaHeadCommand: ({ bucketName, key, region, }: {
|
|
40
|
+
bucketName: string;
|
|
41
|
+
key: string;
|
|
42
|
+
region: AwsRegion;
|
|
43
|
+
}) => Promise<{
|
|
44
|
+
LastModified?: Date | undefined;
|
|
45
|
+
ContentLength?: number | undefined;
|
|
46
|
+
}>;
|
|
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaLs = void 0;
|
|
6
|
+
exports.lambdaHeadCommand = exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
|
|
7
7
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
8
8
|
const mime_types_1 = __importDefault(require("mime-types"));
|
|
9
9
|
const aws_clients_1 = require("../../shared/aws-clients");
|
|
10
|
+
const content_disposition_header_1 = require("../../shared/content-disposition-header");
|
|
10
11
|
const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
|
|
11
12
|
var _a, _b, _c;
|
|
12
13
|
try {
|
|
13
|
-
const list = await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.ListObjectsV2Command({
|
|
14
|
+
const list = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
|
|
14
15
|
Bucket: bucketName,
|
|
15
16
|
Prefix: prefix,
|
|
16
17
|
ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
|
|
@@ -36,7 +37,7 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
|
|
|
36
37
|
}
|
|
37
38
|
// Prevent from accessing a foreign bucket, retry without ExpectedBucketOwner and see if it works. If it works then it's an owner mismatch.
|
|
38
39
|
if ((_c = err.stack) === null || _c === void 0 ? void 0 : _c.includes('AccessDenied')) {
|
|
39
|
-
await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.ListObjectsV2Command({
|
|
40
|
+
await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
|
|
40
41
|
Bucket: bucketName,
|
|
41
42
|
Prefix: prefix,
|
|
42
43
|
}));
|
|
@@ -46,19 +47,33 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
|
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
49
|
exports.lambdaLs = lambdaLs;
|
|
49
|
-
const
|
|
50
|
-
await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.
|
|
50
|
+
const lambdaDeleteFile = async ({ bucketName, key, region, customCredentials, }) => {
|
|
51
|
+
await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.DeleteObjectCommand({
|
|
52
|
+
Bucket: bucketName,
|
|
53
|
+
Key: key,
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
exports.lambdaDeleteFile = lambdaDeleteFile;
|
|
57
|
+
const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
|
|
58
|
+
await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.PutObjectCommand({
|
|
51
59
|
Bucket: bucketName,
|
|
52
60
|
Key: key,
|
|
53
61
|
Body: body,
|
|
54
|
-
ACL: privacy === '
|
|
55
|
-
|
|
62
|
+
ACL: privacy === 'no-acl'
|
|
63
|
+
? undefined
|
|
64
|
+
: privacy === 'private'
|
|
65
|
+
? 'private'
|
|
66
|
+
: 'public-read',
|
|
67
|
+
ExpectedBucketOwner: customCredentials
|
|
68
|
+
? undefined
|
|
69
|
+
: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
|
|
56
70
|
ContentType: mime_types_1.default.lookup(key) || 'application/octet-stream',
|
|
71
|
+
ContentDisposition: (0, content_disposition_header_1.getContentDispositionHeader)(downloadBehavior),
|
|
57
72
|
}));
|
|
58
73
|
};
|
|
59
74
|
exports.lambdaWriteFile = lambdaWriteFile;
|
|
60
75
|
const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, }) => {
|
|
61
|
-
const { Body } = await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.GetObjectCommand({
|
|
76
|
+
const { Body } = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.GetObjectCommand({
|
|
62
77
|
Bucket: bucketName,
|
|
63
78
|
Key: key,
|
|
64
79
|
ExpectedBucketOwner: expectedBucketOwner,
|
|
@@ -66,3 +81,11 @@ const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, })
|
|
|
66
81
|
return Body;
|
|
67
82
|
};
|
|
68
83
|
exports.lambdaReadFile = lambdaReadFile;
|
|
84
|
+
const lambdaHeadCommand = async ({ bucketName, key, region, }) => {
|
|
85
|
+
const head = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.HeadObjectCommand({
|
|
86
|
+
Bucket: bucketName,
|
|
87
|
+
Key: key,
|
|
88
|
+
}));
|
|
89
|
+
return head;
|
|
90
|
+
};
|
|
91
|
+
exports.lambdaHeadCommand = lambdaHeadCommand;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { RenderMetadata } from '../../defaults';
|
|
3
|
+
import type { EnhancedErrorInfo } from './write-lambda-error';
|
|
4
|
+
export declare const makeTimeoutError: ({ timeoutInMilliseconds, chunks, renderMetadata, }: {
|
|
5
|
+
timeoutInMilliseconds: number;
|
|
6
|
+
chunks: _Object[];
|
|
7
|
+
renderMetadata: RenderMetadata;
|
|
8
|
+
}) => EnhancedErrorInfo;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeTimeoutError = void 0;
|
|
4
|
+
const docs_url_1 = require("../../shared/docs-url");
|
|
5
|
+
const parse_chunk_key_1 = require("../../shared/parse-chunk-key");
|
|
6
|
+
const makeTimeoutError = ({ timeoutInMilliseconds, chunks, renderMetadata, }) => {
|
|
7
|
+
const availableChunks = chunks.map((c) => (0, parse_chunk_key_1.parseLambdaChunkKey)(c.Key));
|
|
8
|
+
const missingChunks = new Array(renderMetadata.totalChunks)
|
|
9
|
+
.fill(true)
|
|
10
|
+
.filter((_, i) => {
|
|
11
|
+
return !availableChunks.find((c) => c.chunk === i);
|
|
12
|
+
})
|
|
13
|
+
.map((_, i) => i);
|
|
14
|
+
const missingChunksMessageList = missingChunks
|
|
15
|
+
.map((ch) => {
|
|
16
|
+
const isLastChunk = ch === renderMetadata.totalChunks - 1;
|
|
17
|
+
const start = ch * renderMetadata.framesPerLambda;
|
|
18
|
+
const end = isLastChunk
|
|
19
|
+
? renderMetadata.frameRange[1]
|
|
20
|
+
: (ch + 1) * renderMetadata.framesPerLambda - 1;
|
|
21
|
+
return `Chunk ${ch} (Frames ${start} - ${end})`;
|
|
22
|
+
})
|
|
23
|
+
.slice(0, 5)
|
|
24
|
+
.join(', ');
|
|
25
|
+
const message = [
|
|
26
|
+
`The main function timed out after ${timeoutInMilliseconds}ms.`,
|
|
27
|
+
`Consider increasing the timeout of your function.`,
|
|
28
|
+
`The following chunks are missing (showing up to 5): ${missingChunksMessageList}.`,
|
|
29
|
+
`You can use the "--timeout" parameter when deploying a function via CLI, or the "timeoutInSeconds" parameter when using the deployFunction() API.`,
|
|
30
|
+
`${docs_url_1.DOCS_URL}/docs/lambda/cli/functions#deploy`,
|
|
31
|
+
].join('\n');
|
|
32
|
+
return {
|
|
33
|
+
attempt: 1,
|
|
34
|
+
chunk: null,
|
|
35
|
+
explanation: message,
|
|
36
|
+
frame: null,
|
|
37
|
+
isFatal: true,
|
|
38
|
+
s3Location: '',
|
|
39
|
+
stack: new Error().stack,
|
|
40
|
+
tmpDir: null,
|
|
41
|
+
totalAttempts: 1,
|
|
42
|
+
type: 'stitcher',
|
|
43
|
+
willRetry: false,
|
|
44
|
+
message,
|
|
45
|
+
name: 'TimeoutError',
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
exports.makeTimeoutError = makeTimeoutError;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const min: (arr: number[]) => number;
|
|
2
|
-
export declare const max: (arr: number[]) => number;
|
|
2
|
+
export declare const max: (arr: number[]) => number | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LambdaRoutines } from '../../defaults';
|
|
2
|
-
export declare const printCloudwatchHelper: (type: LambdaRoutines, data: Record<string, string>) => void;
|
|
1
|
+
import type { LambdaRoutines } from '../../defaults';
|
|
2
|
+
export declare const printCloudwatchHelper: (type: LambdaRoutines, data: Record<string, string | boolean>) => void;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
2
3
|
export declare type LambdaReadFileProgress = (progress: {
|
|
3
4
|
totalSize: number;
|
|
4
5
|
downloaded: number;
|
|
5
|
-
|
|
6
|
+
percent: number;
|
|
6
7
|
}) => unknown;
|
|
7
|
-
export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, }: {
|
|
8
|
+
export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, }: {
|
|
8
9
|
bucketName: string;
|
|
9
10
|
key: string;
|
|
10
11
|
region: AwsRegion;
|
|
11
12
|
expectedBucketOwner: string;
|
|
12
13
|
outputPath: string;
|
|
13
14
|
onProgress: LambdaReadFileProgress;
|
|
15
|
+
customCredentials: CustomCredentials | null;
|
|
14
16
|
}) => Promise<{
|
|
15
17
|
sizeInBytes: number;
|
|
18
|
+
to: string;
|
|
16
19
|
}>;
|
|
@@ -5,14 +5,26 @@ const client_s3_1 = require("@aws-sdk/client-s3");
|
|
|
5
5
|
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
6
6
|
const renderer_1 = require("@remotion/renderer");
|
|
7
7
|
const aws_clients_1 = require("../../shared/aws-clients");
|
|
8
|
-
const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, }) => {
|
|
9
|
-
const client = (0, aws_clients_1.getS3Client)(region);
|
|
8
|
+
const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, }) => {
|
|
9
|
+
const client = (0, aws_clients_1.getS3Client)(region, customCredentials);
|
|
10
10
|
const command = new client_s3_1.GetObjectCommand({
|
|
11
11
|
Bucket: bucketName,
|
|
12
|
-
ExpectedBucketOwner: expectedBucketOwner,
|
|
12
|
+
ExpectedBucketOwner: customCredentials ? undefined : expectedBucketOwner,
|
|
13
13
|
Key: key,
|
|
14
14
|
});
|
|
15
15
|
const presigned = await (0, s3_request_presigner_1.getSignedUrl)(client, command);
|
|
16
|
-
|
|
16
|
+
const { to, sizeInBytes } = await renderer_1.RenderInternals.downloadFile({
|
|
17
|
+
url: presigned,
|
|
18
|
+
onProgress: ({ downloaded, percent, totalSize }) => {
|
|
19
|
+
// On Lambda, it should always be a number
|
|
20
|
+
onProgress({
|
|
21
|
+
downloaded,
|
|
22
|
+
percent: percent,
|
|
23
|
+
totalSize: totalSize,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
to: () => outputPath,
|
|
27
|
+
});
|
|
28
|
+
return { sizeInBytes, to };
|
|
17
29
|
};
|
|
18
30
|
exports.lambdaDownloadFileWithProgress = lambdaDownloadFileWithProgress;
|
|
File without changes
|
|
File without changes
|