@remotion/lambda 4.0.0-webhook.27 → 4.1.0-alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -8
- package/dist/admin/bundle-lambda.d.ts +0 -0
- package/dist/admin/bundle-lambda.js +24 -13
- package/dist/admin/generate-etag-list.d.ts +1 -0
- package/dist/admin/generate-etag-list.js +14 -0
- package/dist/admin/make-layer-public.d.ts +0 -0
- package/dist/admin/make-layer-public.js +59 -65
- package/dist/api/bucket-exists.d.ts +0 -0
- package/dist/api/bucket-exists.js +0 -0
- package/dist/api/clean-items.d.ts +0 -0
- package/dist/api/clean-items.js +1 -1
- package/dist/api/create-bucket.d.ts +0 -0
- package/dist/api/create-bucket.js +34 -1
- package/dist/api/create-function.d.ts +1 -3
- package/dist/api/create-function.js +27 -6
- package/dist/api/delete-function.d.ts +4 -4
- package/dist/api/delete-function.js +3 -3
- package/dist/api/delete-render.d.ts +2 -2
- package/dist/api/delete-render.js +1 -1
- package/dist/api/delete-site.d.ts +7 -7
- package/dist/api/delete-site.js +9 -7
- package/dist/api/deploy-function.d.ts +11 -13
- package/dist/api/deploy-function.js +28 -31
- package/dist/api/deploy-site.d.ts +13 -5
- package/dist/api/deploy-site.js +61 -25
- package/dist/api/download-media.d.ts +4 -8
- package/dist/api/download-media.js +5 -9
- package/dist/api/estimate-price.d.ts +3 -5
- package/dist/api/estimate-price.js +4 -10
- package/dist/api/get-aws-client.d.ts +6 -4
- package/dist/api/get-aws-client.js +3 -1
- package/dist/api/get-buckets.d.ts +2 -2
- package/dist/api/get-buckets.js +35 -12
- package/dist/api/get-compositions-on-lambda.d.ts +33 -0
- package/dist/api/get-compositions-on-lambda.js +57 -0
- package/dist/api/get-function-info.d.ts +3 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +5 -7
- package/dist/api/get-functions.js +8 -10
- package/dist/api/get-or-create-bucket.d.ts +6 -6
- package/dist/api/get-or-create-bucket.js +10 -18
- package/dist/api/get-regions.d.ts +6 -2
- package/dist/api/get-regions.js +6 -3
- package/dist/api/get-render-progress.d.ts +3 -3
- package/dist/api/get-render-progress.js +6 -11
- package/dist/api/get-sites.d.ts +6 -6
- package/dist/api/get-sites.js +5 -4
- package/dist/api/iam-validation/role-permissions.d.ts +0 -0
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +2 -2
- package/dist/api/iam-validation/simulate-rule.js +0 -22
- package/dist/api/iam-validation/simulate.d.ts +3 -3
- package/dist/api/iam-validation/simulate.js +27 -6
- package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
- package/dist/api/iam-validation/suggested-policy.js +0 -0
- package/dist/api/iam-validation/user-permissions.d.ts +1 -1
- package/dist/api/iam-validation/user-permissions.js +3 -8
- package/dist/api/make-lambda-payload.d.ts +5 -0
- package/dist/api/make-lambda-payload.js +79 -0
- package/dist/api/mock-functions.d.ts +0 -0
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +4 -5
- package/dist/api/presign-url.js +3 -3
- package/dist/api/render-media-on-lambda.d.ts +27 -11
- package/dist/api/render-media-on-lambda.js +15 -49
- package/dist/api/render-still-on-lambda.d.ts +17 -6
- package/dist/api/render-still-on-lambda.js +25 -10
- package/dist/api/speculate-function-name.d.ts +14 -0
- package/dist/api/speculate-function-name.js +22 -0
- package/dist/api/upload-dir.d.ts +6 -5
- package/dist/api/upload-dir.js +54 -51
- package/dist/api/validate-webhook-signature.d.ts +2 -2
- package/dist/api/validate-webhook-signature.js +1 -1
- package/dist/cli/args.d.ts +7 -5
- package/dist/cli/args.js +1 -5
- package/dist/cli/commands/compositions/index.d.ts +2 -0
- package/dist/cli/commands/compositions/index.js +44 -0
- package/dist/cli/commands/functions/deploy.d.ts +0 -0
- package/dist/cli/commands/functions/deploy.js +15 -15
- package/dist/cli/commands/functions/index.d.ts +0 -0
- package/dist/cli/commands/functions/index.js +16 -17
- package/dist/cli/commands/functions/ls.d.ts +0 -0
- package/dist/cli/commands/functions/ls.js +17 -10
- package/dist/cli/commands/functions/rm.d.ts +0 -0
- package/dist/cli/commands/functions/rm.js +20 -7
- package/dist/cli/commands/functions/rmall.d.ts +0 -0
- package/dist/cli/commands/functions/rmall.js +20 -8
- package/dist/cli/commands/policies/policies.d.ts +0 -0
- package/dist/cli/commands/policies/policies.js +0 -0
- package/dist/cli/commands/policies/role.d.ts +0 -0
- package/dist/cli/commands/policies/role.js +0 -0
- package/dist/cli/commands/policies/user.d.ts +0 -0
- package/dist/cli/commands/policies/user.js +0 -0
- package/dist/cli/commands/policies/validate.d.ts +0 -0
- package/dist/cli/commands/policies/validate.js +0 -0
- package/dist/cli/commands/quotas/increase.d.ts +0 -0
- package/dist/cli/commands/quotas/increase.js +30 -10
- package/dist/cli/commands/quotas/index.d.ts +0 -0
- package/dist/cli/commands/quotas/index.js +8 -9
- package/dist/cli/commands/quotas/list.d.ts +0 -0
- package/dist/cli/commands/quotas/list.js +0 -0
- package/dist/cli/commands/regions.d.ts +0 -0
- package/dist/cli/commands/regions.js +6 -2
- package/dist/cli/commands/render/progress.d.ts +11 -7
- package/dist/cli/commands/render/progress.js +55 -45
- package/dist/cli/commands/render/render.d.ts +1 -1
- package/dist/cli/commands/render/render.js +99 -27
- package/dist/cli/commands/sites/create.d.ts +1 -1
- package/dist/cli/commands/sites/create.js +37 -33
- package/dist/cli/commands/sites/index.d.ts +1 -1
- package/dist/cli/commands/sites/index.js +18 -16
- package/dist/cli/commands/sites/ls.d.ts +0 -0
- package/dist/cli/commands/sites/ls.js +9 -10
- package/dist/cli/commands/sites/rm.d.ts +0 -0
- package/dist/cli/commands/sites/rm.js +7 -16
- package/dist/cli/commands/sites/rmall.d.ts +0 -0
- package/dist/cli/commands/sites/rmall.js +5 -16
- package/dist/cli/commands/still.d.ts +1 -1
- package/dist/cli/commands/still.js +49 -20
- package/dist/cli/get-aws-region.d.ts +0 -0
- package/dist/cli/get-aws-region.js +0 -0
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +4 -0
- package/dist/cli/helpers/confirm.d.ts +0 -0
- package/dist/cli/helpers/confirm.js +0 -0
- package/dist/cli/helpers/date-string.d.ts +0 -0
- package/dist/cli/helpers/date-string.js +0 -0
- package/dist/cli/helpers/find-function-name.d.ts +0 -0
- package/dist/cli/helpers/find-function-name.js +35 -6
- package/dist/cli/helpers/progress-bar.d.ts +12 -7
- package/dist/cli/helpers/progress-bar.js +20 -11
- package/dist/cli/helpers/quit.d.ts +0 -0
- package/dist/cli/helpers/quit.js +0 -0
- package/dist/cli/helpers/yes-or-no.d.ts +0 -0
- package/dist/cli/helpers/yes-or-no.js +0 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +23 -12
- package/dist/cli/is-cli.d.ts +0 -0
- package/dist/cli/is-cli.js +0 -0
- package/dist/cli/log.d.ts +14 -0
- package/dist/cli/log.js +0 -0
- package/dist/client.d.ts +8 -2
- package/dist/client.js +9 -1
- package/dist/defaults.d.ts +0 -0
- package/dist/defaults.js +0 -0
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
- package/dist/functions/chunk-optimization/types.d.ts +2 -13
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +59 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
- package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
- package/dist/functions/helpers/calculate-chunk-times.js +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
- package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
- package/dist/functions/helpers/check-if-render-exists.d.ts +0 -0
- package/dist/functions/helpers/check-if-render-exists.js +0 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +8 -8
- package/dist/functions/helpers/concat-videos.d.ts +13 -5
- package/dist/functions/helpers/concat-videos.js +38 -39
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -15
- package/dist/functions/helpers/delete-chunks.d.ts +0 -0
- package/dist/functions/helpers/delete-chunks.js +0 -0
- package/dist/functions/helpers/expected-out-name.d.ts +0 -0
- package/dist/functions/helpers/expected-out-name.js +2 -2
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
- package/dist/functions/helpers/format-costs-info.d.ts +0 -0
- package/dist/functions/helpers/format-costs-info.js +0 -0
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -3
- package/dist/functions/helpers/get-browser-instance.js +9 -5
- package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
- package/dist/functions/helpers/get-chromium-executable-path.js +8 -6
- package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
- package/dist/functions/helpers/get-cleanup-progress.js +0 -0
- package/dist/functions/helpers/get-current-region.d.ts +1 -1
- package/dist/functions/helpers/get-current-region.js +0 -0
- package/dist/functions/helpers/get-custom-out-name.d.ts +0 -0
- package/dist/functions/helpers/get-custom-out-name.js +1 -1
- package/dist/functions/helpers/get-encoding-metadata.d.ts +5 -8
- package/dist/functions/helpers/get-encoding-metadata.js +7 -17
- package/dist/functions/helpers/get-files-in-folder.d.ts +1 -1
- package/dist/functions/helpers/get-files-in-folder.js +5 -5
- package/dist/functions/helpers/get-files-to-delete.d.ts +1 -1
- package/dist/functions/helpers/get-files-to-delete.js +0 -0
- package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
- package/dist/functions/helpers/get-final-encoding-status.js +1 -4
- package/dist/functions/helpers/get-folder-size.d.ts +0 -0
- package/dist/functions/helpers/get-folder-size.js +0 -0
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +2 -6
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +1 -9
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-output-url-from-metadata.js +0 -0
- package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
- package/dist/functions/helpers/get-overall-progress.js +7 -5
- package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/get-post-render-data.js +0 -0
- package/dist/functions/helpers/get-progress.d.ts +0 -0
- package/dist/functions/helpers/get-progress.js +43 -42
- package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-render-metadata.js +0 -0
- package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
- package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
- package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
- package/dist/functions/helpers/get-retry-stats.js +0 -0
- package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
- package/dist/functions/helpers/get-time-to-finish.js +0 -0
- package/dist/functions/helpers/inspect-errors.d.ts +0 -0
- package/dist/functions/helpers/inspect-errors.js +0 -0
- package/dist/functions/helpers/io.d.ts +10 -4
- package/dist/functions/helpers/io.js +25 -3
- package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
- package/dist/functions/helpers/is-enosp-err.js +1 -1
- package/dist/functions/helpers/is-warm.d.ts +0 -0
- package/dist/functions/helpers/is-warm.js +0 -0
- package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
- package/dist/functions/helpers/make-timeout-error.js +35 -0
- package/dist/functions/helpers/make-timeout-message.d.ts +6 -0
- package/dist/functions/helpers/make-timeout-message.js +31 -0
- package/dist/functions/helpers/min-max.d.ts +0 -0
- package/dist/functions/helpers/min-max.js +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.js +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 +1 -1
- package/dist/functions/helpers/read-with-progress.js +1 -1
- package/dist/functions/helpers/streamify-response.d.ts +16 -0
- package/dist/functions/helpers/streamify-response.js +67 -0
- package/dist/functions/helpers/timer.d.ts +0 -0
- package/dist/functions/helpers/timer.js +0 -0
- package/dist/functions/helpers/validate-composition.d.ts +10 -9
- package/dist/functions/helpers/validate-composition.js +16 -13
- package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
- package/dist/functions/helpers/write-lambda-error.js +0 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/write-post-render-data.js +0 -0
- package/dist/functions/index.d.ts +1 -7
- package/dist/functions/index.js +43 -10
- package/dist/functions/info.d.ts +0 -0
- package/dist/functions/info.js +0 -0
- package/dist/functions/launch.d.ts +2 -1
- package/dist/functions/launch.js +151 -134
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +2 -2
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +73 -44
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +21 -8
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +78 -37
- package/dist/index.d.ts +24 -8
- package/dist/index.js +23 -6
- package/dist/internals.d.ts +3 -1
- package/dist/internals.js +3 -0
- package/dist/pricing/aws-regions.d.ts +3 -2
- package/dist/pricing/aws-regions.js +31 -1
- package/dist/pricing/price-per-1-s.d.ts +0 -0
- package/dist/pricing/price-per-1-s.js +413 -39
- package/dist/regions.d.ts +0 -0
- package/dist/regions.js +0 -0
- package/dist/shared/await.d.ts +1 -1
- package/dist/shared/await.js +0 -0
- package/dist/shared/aws-clients.d.ts +6 -3
- package/dist/shared/aws-clients.js +75 -13
- package/dist/shared/bundle-site.d.ts +0 -0
- package/dist/shared/bundle-site.js +0 -0
- package/dist/shared/call-lambda.d.ts +0 -0
- package/dist/shared/call-lambda.js +27 -2
- package/dist/shared/check-credentials.d.ts +0 -0
- package/dist/shared/check-credentials.js +3 -0
- package/dist/shared/chunk-progress.d.ts +9 -0
- package/dist/shared/chunk-progress.js +2034 -0
- package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
- package/dist/shared/cleanup-serialized-input-props.js +19 -0
- package/dist/shared/constants.d.ts +135 -89
- package/dist/shared/constants.js +7 -4
- package/dist/shared/content-disposition-header.d.ts +1 -1
- package/dist/shared/content-disposition-header.js +0 -0
- package/dist/shared/convert-to-serve-url.d.ts +5 -1
- package/dist/shared/convert-to-serve-url.js +1 -5
- package/dist/shared/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 +1 -1
- package/dist/shared/function-zip-path.js +3 -3
- package/dist/shared/get-account-id.d.ts +0 -0
- package/dist/shared/get-account-id.js +4 -6
- package/dist/shared/{get-cloudwatch-stream-url.d.ts → get-aws-urls.d.ts} +7 -1
- package/dist/shared/get-aws-urls.js +12 -0
- package/dist/shared/get-etag.d.ts +1 -0
- package/dist/shared/get-etag.js +24 -0
- package/dist/shared/get-function-version.d.ts +0 -0
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +2 -2
- package/dist/shared/get-most-expensive-chunks.js +3 -2
- package/dist/shared/get-s3-operations.d.ts +10 -0
- package/dist/shared/get-s3-operations.js +36 -0
- package/dist/shared/hosted-layers.d.ts +5 -8
- package/dist/shared/hosted-layers.js +210 -284
- package/dist/shared/invoke-webhook.d.ts +5 -18
- package/dist/shared/invoke-webhook.js +4 -19
- package/dist/shared/is-in-lambda.d.ts +0 -0
- package/dist/shared/is-in-lambda.js +0 -0
- package/dist/shared/lambda-version-string.d.ts +0 -0
- package/dist/shared/lambda-version-string.js +0 -0
- package/dist/shared/make-s3-key.d.ts +0 -0
- package/dist/shared/make-s3-key.js +2 -2
- package/dist/shared/make-s3-url.d.ts +0 -0
- package/dist/shared/make-s3-url.js +2 -2
- package/dist/shared/p-limit.d.ts +0 -0
- package/dist/shared/p-limit.js +0 -0
- package/dist/shared/parse-chunk-key.d.ts +4 -0
- package/dist/shared/parse-chunk-key.js +14 -0
- package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
- package/dist/shared/parse-lambda-initialized-key.js +0 -0
- package/dist/shared/parse-lambda-timings-key.d.ts +1 -1
- package/dist/shared/parse-lambda-timings-key.js +0 -0
- package/dist/shared/random-hash.d.ts +0 -0
- package/dist/shared/random-hash.js +0 -0
- package/dist/shared/read-dir.d.ts +9 -0
- package/dist/shared/read-dir.js +57 -0
- package/dist/shared/return-values.d.ts +7 -0
- package/dist/shared/return-values.js +0 -0
- package/dist/shared/serialize-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 +1 -1
- package/dist/shared/truthy.js +0 -0
- package/dist/shared/validate-aws-region.d.ts +0 -0
- package/dist/shared/validate-aws-region.js +0 -0
- package/dist/shared/validate-bucketname.d.ts +5 -0
- package/dist/shared/validate-bucketname.js +19 -1
- package/dist/shared/validate-custom-role-arn.d.ts +0 -0
- package/dist/shared/validate-custom-role-arn.js +0 -0
- package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
- package/dist/shared/validate-disk-size-in-mb.js +0 -0
- package/dist/shared/validate-download-behavior.d.ts +0 -0
- package/dist/shared/validate-download-behavior.js +0 -0
- package/dist/shared/validate-frames-per-lambda.d.ts +0 -0
- package/dist/shared/validate-frames-per-lambda.js +0 -0
- package/dist/shared/validate-lambda-codec.d.ts +2 -2
- package/dist/shared/validate-lambda-codec.js +1 -1
- package/dist/shared/validate-memory-size.d.ts +0 -0
- package/dist/shared/validate-memory-size.js +0 -0
- package/dist/shared/validate-outname.d.ts +2 -2
- package/dist/shared/validate-outname.js +16 -10
- package/dist/shared/validate-presign-expiration.d.ts +0 -0
- package/dist/shared/validate-presign-expiration.js +0 -0
- package/dist/shared/validate-privacy.d.ts +1 -1
- package/dist/shared/validate-privacy.js +5 -2
- package/dist/shared/validate-retention-period.d.ts +0 -0
- package/dist/shared/validate-retention-period.js +0 -0
- package/dist/shared/validate-retries.d.ts +0 -0
- package/dist/shared/validate-retries.js +0 -0
- package/dist/shared/validate-serveurl.d.ts +0 -0
- package/dist/shared/validate-serveurl.js +0 -0
- package/dist/shared/validate-site-name.d.ts +0 -0
- package/dist/shared/validate-site-name.js +0 -0
- package/dist/shared/validate-timeout.d.ts +0 -0
- package/dist/shared/validate-timeout.js +0 -0
- package/package.json +89 -65
- package/remotionlambda-arm64.zip +0 -0
- package/.prettierrc.js +0 -14
- package/client.d.ts +0 -1
- package/client.js +0 -1
- package/dist/api/enable-s3-website.d.ts +0 -5
- package/dist/api/enable-s3-website.js +0 -16
- package/dist/cli/helpers/determine-image-format.d.ts +0 -10
- package/dist/cli/helpers/determine-image-format.js +0 -47
- package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
- package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
- package/dist/cli/helpers/webhook-types.d.ts +0 -6
- package/dist/cli/helpers/webhook-types.js +0 -2
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
- package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
- package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
- package/dist/functions/chunk-optimization/collect-data.js +0 -27
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
- package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
- package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
- package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
- package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
- package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
- package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
- package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
- package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
- package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -47
- package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
- package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
- package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
- package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
- package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
- package/dist/functions/helpers/get-current-architecture.js +0 -11
- package/dist/shared/get-cloudwatch-stream-url.js +0 -7
- package/dist/shared/validate-architecture.d.ts +0 -4
- package/dist/shared/validate-architecture.js +0 -14
- package/remotionlambda.zip +0 -0
- package/tsconfig.json +0 -16
|
@@ -10,7 +10,7 @@ const getCustomOutName = ({ renderMetadata, customCredentials, }) => {
|
|
|
10
10
|
return renderMetadata.outName;
|
|
11
11
|
}
|
|
12
12
|
if (renderMetadata.outName.s3OutputProvider) {
|
|
13
|
-
if (!customCredentials && renderMetadata.privacy
|
|
13
|
+
if (!customCredentials && renderMetadata.privacy === 'private') {
|
|
14
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
15
|
}
|
|
16
16
|
return {
|
|
@@ -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;
|
|
@@ -2,25 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEncodingMetadata = void 0;
|
|
4
4
|
const defaults_1 = require("../../defaults");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const getEncodingMetadata = async ({ exists, bucketName, renderId, region, expectedBucketOwner, }) => {
|
|
5
|
+
const chunk_progress_1 = require("../../shared/chunk-progress");
|
|
6
|
+
const getEncodingMetadata = ({ exists, frameCount, }) => {
|
|
8
7
|
if (!exists) {
|
|
9
8
|
return null;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
expectedBucketOwner,
|
|
17
|
-
});
|
|
18
|
-
const encodingProgress = JSON.parse(await (0, stream_to_string_1.streamToString)(Body));
|
|
19
|
-
return encodingProgress;
|
|
20
|
-
}
|
|
21
|
-
catch (err) {
|
|
22
|
-
// The file may not yet have been fully written or already have been cleaned up again
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
10
|
+
const framesEncoded = (0, chunk_progress_1.getProgressOfChunk)(exists.ETag);
|
|
11
|
+
// We only report every 100 frames encoded so that we are able to report up to 2000 * 100 ETags => 200000 frames
|
|
12
|
+
return {
|
|
13
|
+
framesEncoded: Math.min(frameCount, framesEncoded * defaults_1.ENCODING_PROGRESS_STEP_SIZE),
|
|
14
|
+
};
|
|
25
15
|
};
|
|
26
16
|
exports.getEncodingMetadata = getEncodingMetadata;
|
|
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getFolderFiles = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
function getFolderFiles(folder) {
|
|
10
|
-
const files =
|
|
10
|
+
const files = node_fs_1.default.readdirSync(folder);
|
|
11
11
|
const paths = [];
|
|
12
12
|
files.forEach((file) => {
|
|
13
|
-
const full =
|
|
13
|
+
const full = node_path_1.default.join(folder, file);
|
|
14
14
|
try {
|
|
15
|
-
const stat =
|
|
15
|
+
const stat = node_fs_1.default.statSync(full);
|
|
16
16
|
if (stat.isDirectory()) {
|
|
17
17
|
paths.push(...getFolderFiles(full));
|
|
18
18
|
}
|
|
File without changes
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { EncodingProgress, RenderMetadata } from '../../shared/constants';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
encodingStatus: EncodingProgress | null;
|
|
2
|
+
export declare const getFinalEncodingStatus: ({ encodingProgress, renderMetadata, outputFileExists, }: {
|
|
3
|
+
encodingProgress: EncodingProgress | null;
|
|
5
4
|
renderMetadata: RenderMetadata | null;
|
|
6
5
|
outputFileExists: boolean;
|
|
7
|
-
lambdaInvokeStatus: LambdaInvokeStats;
|
|
8
6
|
}) => EncodingProgress | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFinalEncodingStatus = void 0;
|
|
4
|
-
const getFinalEncodingStatus = ({
|
|
4
|
+
const getFinalEncodingStatus = ({ encodingProgress, renderMetadata, outputFileExists, }) => {
|
|
5
5
|
if (!renderMetadata) {
|
|
6
6
|
return null;
|
|
7
7
|
}
|
|
@@ -11,9 +11,6 @@ const getFinalEncodingStatus = ({ encodingStatus: encodingProgress, renderMetada
|
|
|
11
11
|
if (outputFileExists) {
|
|
12
12
|
return {
|
|
13
13
|
framesEncoded: renderMetadata.videoConfig.durationInFrames,
|
|
14
|
-
totalFrames: renderMetadata.videoConfig.durationInFrames,
|
|
15
|
-
doneIn: null,
|
|
16
|
-
timeToInvoke: lambdaInvokeStatus.timeToInvokeLambdas,
|
|
17
14
|
};
|
|
18
15
|
}
|
|
19
16
|
return null;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
export
|
|
3
|
-
timeToInvokeLambdas: number | null;
|
|
2
|
+
export type LambdaInvokeStats = {
|
|
4
3
|
lambdasInvoked: number;
|
|
5
4
|
};
|
|
6
|
-
export declare const getLambdasInvokedStats: ({ contents, renderId,
|
|
5
|
+
export declare const getLambdasInvokedStats: ({ contents, renderId, }: {
|
|
7
6
|
contents: _Object[];
|
|
8
7
|
renderId: string;
|
|
9
|
-
estimatedRenderLambdaInvokations: number | null;
|
|
10
|
-
startDate: number | null;
|
|
11
|
-
checkIfAllLambdasWereInvoked: boolean;
|
|
12
8
|
}) => LambdaInvokeStats;
|
|
@@ -3,19 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getLambdasInvokedStats = void 0;
|
|
4
4
|
const constants_1 = require("../../shared/constants");
|
|
5
5
|
const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
|
|
6
|
-
const
|
|
7
|
-
const getLambdasInvokedStats = ({ contents, renderId, estimatedRenderLambdaInvokations, startDate, checkIfAllLambdasWereInvoked, }) => {
|
|
8
|
-
var _a;
|
|
6
|
+
const getLambdasInvokedStats = ({ contents, renderId, }) => {
|
|
9
7
|
const lambdasInvoked = contents
|
|
10
8
|
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
11
9
|
.filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt === 1);
|
|
12
|
-
const allLambdasInvoked = !checkIfAllLambdasWereInvoked ||
|
|
13
|
-
lambdasInvoked.length === estimatedRenderLambdaInvokations;
|
|
14
|
-
const timeToInvokeLambdas = !allLambdasInvoked || startDate === null
|
|
15
|
-
? null
|
|
16
|
-
: ((_a = (0, min_max_1.max)(lambdasInvoked.map((l) => { var _a; return (_a = l.LastModified) === null || _a === void 0 ? void 0 : _a.getTime(); }))) !== null && _a !== void 0 ? _a : 0) - startDate;
|
|
17
10
|
return {
|
|
18
|
-
timeToInvokeLambdas,
|
|
19
11
|
lambdasInvoked: lambdasInvoked.length,
|
|
20
12
|
};
|
|
21
13
|
};
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export declare const getOverallProgress: ({ cleanup, encoding, rendering, invoking, }: {
|
|
1
|
+
export declare const getOverallProgress: ({ cleanup, encoding, rendering, invoking, frames, }: {
|
|
2
2
|
cleanup: number;
|
|
3
3
|
encoding: number;
|
|
4
4
|
rendering: number;
|
|
5
5
|
invoking: number;
|
|
6
|
+
frames: number;
|
|
6
7
|
}) => number;
|
|
@@ -3,14 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getOverallProgress = void 0;
|
|
4
4
|
const weights = {
|
|
5
5
|
cleanup: 0.1,
|
|
6
|
-
encoding: 0.
|
|
7
|
-
rendering: 0.
|
|
8
|
-
|
|
6
|
+
encoding: 0.225,
|
|
7
|
+
rendering: 0.225,
|
|
8
|
+
frames: 0.225,
|
|
9
|
+
invoking: 0.225,
|
|
9
10
|
};
|
|
10
|
-
const getOverallProgress = ({ cleanup, encoding, rendering, invoking, }) => {
|
|
11
|
+
const getOverallProgress = ({ cleanup, encoding, rendering, invoking, frames, }) => {
|
|
11
12
|
return (cleanup * weights.cleanup +
|
|
12
13
|
encoding * weights.encoding +
|
|
13
14
|
rendering * weights.rendering +
|
|
14
|
-
invoking * weights.invoking
|
|
15
|
+
invoking * weights.invoking +
|
|
16
|
+
frames * weights.frames);
|
|
15
17
|
};
|
|
16
18
|
exports.getOverallProgress = getOverallProgress;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,9 +1,10 @@
|
|
|
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
|
-
const docs_url_1 = require("../../shared/docs-url");
|
|
7
8
|
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
8
9
|
const calculate_price_from_bucket_1 = require("./calculate-price-from-bucket");
|
|
9
10
|
const check_if_render_exists_1 = require("./check-if-render-exists");
|
|
@@ -11,7 +12,6 @@ const expected_out_name_1 = require("./expected-out-name");
|
|
|
11
12
|
const find_output_file_in_bucket_1 = require("./find-output-file-in-bucket");
|
|
12
13
|
const format_costs_info_1 = require("./format-costs-info");
|
|
13
14
|
const get_cleanup_progress_1 = require("./get-cleanup-progress");
|
|
14
|
-
const get_current_architecture_1 = require("./get-current-architecture");
|
|
15
15
|
const get_current_region_1 = require("./get-current-region");
|
|
16
16
|
const get_encoding_metadata_1 = require("./get-encoding-metadata");
|
|
17
17
|
const get_final_encoding_status_1 = require("./get-final-encoding-status");
|
|
@@ -19,12 +19,14 @@ const get_lambdas_invoked_stats_1 = require("./get-lambdas-invoked-stats");
|
|
|
19
19
|
const get_overall_progress_1 = require("./get-overall-progress");
|
|
20
20
|
const get_post_render_data_1 = require("./get-post-render-data");
|
|
21
21
|
const get_render_metadata_1 = require("./get-render-metadata");
|
|
22
|
+
const get_rendered_frames_progress_1 = require("./get-rendered-frames-progress");
|
|
22
23
|
const get_retry_stats_1 = require("./get-retry-stats");
|
|
23
24
|
const get_time_to_finish_1 = require("./get-time-to-finish");
|
|
24
25
|
const inspect_errors_1 = require("./inspect-errors");
|
|
25
26
|
const io_1 = require("./io");
|
|
27
|
+
const make_timeout_error_1 = require("./make-timeout-error");
|
|
26
28
|
const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, }) => {
|
|
27
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j
|
|
29
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
28
30
|
const postRenderData = await (0, get_post_render_data_1.getPostRenderData)({
|
|
29
31
|
bucketName,
|
|
30
32
|
region,
|
|
@@ -33,7 +35,9 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
33
35
|
});
|
|
34
36
|
if (postRenderData) {
|
|
35
37
|
const outData = (0, expected_out_name_1.getExpectedOutName)(postRenderData.renderMetadata, bucketName, customCredentials);
|
|
38
|
+
const totalFrameCount = renderer_1.RenderInternals.getFramesToRender(postRenderData.renderMetadata.frameRange, postRenderData.renderMetadata.everyNthFrame).length;
|
|
36
39
|
return {
|
|
40
|
+
framesRendered: totalFrameCount,
|
|
37
41
|
bucket: bucketName,
|
|
38
42
|
renderSize: postRenderData.renderSize,
|
|
39
43
|
chunks: postRenderData.renderMetadata.totalChunks,
|
|
@@ -51,10 +55,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
51
55
|
currentTime: Date.now(),
|
|
52
56
|
done: true,
|
|
53
57
|
encodingStatus: {
|
|
54
|
-
framesEncoded:
|
|
55
|
-
totalFrames: postRenderData.renderMetadata.videoConfig.durationInFrames,
|
|
56
|
-
doneIn: postRenderData.timeToEncode,
|
|
57
|
-
timeToInvoke: postRenderData.timeToInvokeLambdas,
|
|
58
|
+
framesEncoded: totalFrameCount,
|
|
58
59
|
},
|
|
59
60
|
errors: postRenderData.errors,
|
|
60
61
|
fatalErrorEncountered: false,
|
|
@@ -64,12 +65,13 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
64
65
|
renderMetadata: postRenderData.renderMetadata,
|
|
65
66
|
timeToFinish: postRenderData.timeToFinish,
|
|
66
67
|
timeToFinishChunks: postRenderData.timeToRenderChunks,
|
|
67
|
-
timeToInvokeLambdas: postRenderData.timeToInvokeLambdas,
|
|
68
68
|
overallProgress: 1,
|
|
69
69
|
retriesInfo: postRenderData.retriesInfo,
|
|
70
70
|
outKey: outData.key,
|
|
71
71
|
outBucket: outData.renderBucketName,
|
|
72
72
|
mostExpensiveFrameRanges: (_a = postRenderData.mostExpensiveFrameRanges) !== null && _a !== void 0 ? _a : null,
|
|
73
|
+
timeToEncode: postRenderData.timeToEncode,
|
|
74
|
+
outputSizeInBytes: postRenderData.outputSize,
|
|
73
75
|
};
|
|
74
76
|
}
|
|
75
77
|
const contents = await (0, io_1.lambdaLs)({
|
|
@@ -78,16 +80,8 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
78
80
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
79
81
|
expectedBucketOwner,
|
|
80
82
|
});
|
|
81
|
-
(0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
|
|
82
83
|
const renderMetadataExists = Boolean(contents.find((c) => c.Key === (0, constants_1.renderMetadataKey)(renderId)));
|
|
83
|
-
const [
|
|
84
|
-
(0, get_encoding_metadata_1.getEncodingMetadata)({
|
|
85
|
-
exists: Boolean(contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId))),
|
|
86
|
-
bucketName,
|
|
87
|
-
renderId,
|
|
88
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
89
|
-
expectedBucketOwner,
|
|
90
|
-
}),
|
|
84
|
+
const [renderMetadata, errorExplanations] = await Promise.all([
|
|
91
85
|
renderMetadataExists
|
|
92
86
|
? (0, get_render_metadata_1.getRenderMetadata)({
|
|
93
87
|
bucketName,
|
|
@@ -107,6 +101,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
107
101
|
if ((renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.type) === 'still') {
|
|
108
102
|
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! 😉");
|
|
109
103
|
}
|
|
104
|
+
(0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
|
|
110
105
|
const outputFile = renderMetadata
|
|
111
106
|
? await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
112
107
|
bucketName,
|
|
@@ -120,7 +115,6 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
120
115
|
renderMetadata,
|
|
121
116
|
memorySizeInMb,
|
|
122
117
|
outputFileMetadata: outputFile,
|
|
123
|
-
architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
|
|
124
118
|
lambdasInvoked: (_b = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _b !== void 0 ? _b : 0,
|
|
125
119
|
// We cannot determine the ephemeral storage size, so we
|
|
126
120
|
// overestimate the price, but will only have a miniscule effect (~0.2%)
|
|
@@ -137,6 +131,20 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
137
131
|
renderMetadata,
|
|
138
132
|
});
|
|
139
133
|
const chunks = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); });
|
|
134
|
+
const framesRendered = renderMetadata
|
|
135
|
+
? (0, get_rendered_frames_progress_1.getRenderedFramesProgress)({
|
|
136
|
+
contents,
|
|
137
|
+
everyNthFrame: renderMetadata.everyNthFrame,
|
|
138
|
+
frameRange: renderMetadata.frameRange,
|
|
139
|
+
framesPerLambda: renderMetadata.framesPerLambda,
|
|
140
|
+
renderId,
|
|
141
|
+
})
|
|
142
|
+
: 0;
|
|
143
|
+
console.log('etags', contents
|
|
144
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
145
|
+
.map((c) => {
|
|
146
|
+
return (0, chunk_progress_1.getProgressOfChunk)(c.ETag);
|
|
147
|
+
}));
|
|
140
148
|
const allChunks = chunks.length === ((_f = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _f !== void 0 ? _f : Infinity);
|
|
141
149
|
const renderSize = contents
|
|
142
150
|
.map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
|
|
@@ -144,45 +152,37 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
144
152
|
const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
|
|
145
153
|
contents,
|
|
146
154
|
renderId,
|
|
147
|
-
estimatedRenderLambdaInvokations: (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _g !== void 0 ? _g : null,
|
|
148
|
-
startDate: (_h = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.startedDate) !== null && _h !== void 0 ? _h : null,
|
|
149
|
-
checkIfAllLambdasWereInvoked: true,
|
|
150
155
|
});
|
|
151
156
|
const retriesInfo = (0, get_retry_stats_1.getRetryStats)({
|
|
152
157
|
contents,
|
|
153
158
|
renderId,
|
|
154
159
|
});
|
|
160
|
+
const frameCount = renderMetadata
|
|
161
|
+
? renderer_1.RenderInternals.getFramesToRender(renderMetadata.frameRange, renderMetadata.everyNthFrame).length
|
|
162
|
+
: null;
|
|
163
|
+
const encodingStatus = (0, get_encoding_metadata_1.getEncodingMetadata)({
|
|
164
|
+
exists: contents.find((c) => c.Key === (0, constants_1.encodingProgressKey)(renderId)),
|
|
165
|
+
frameCount: frameCount === null ? 0 : frameCount,
|
|
166
|
+
});
|
|
155
167
|
const finalEncodingStatus = (0, get_final_encoding_status_1.getFinalEncodingStatus)({
|
|
156
|
-
encodingStatus,
|
|
168
|
+
encodingProgress: encodingStatus,
|
|
157
169
|
outputFileExists: Boolean(outputFile),
|
|
158
170
|
renderMetadata,
|
|
159
|
-
lambdaInvokeStatus: lambdasInvokedStats,
|
|
160
171
|
});
|
|
161
172
|
const chunkCount = outputFile
|
|
162
|
-
? (
|
|
173
|
+
? (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _g !== void 0 ? _g : 0
|
|
163
174
|
: chunks.length;
|
|
164
175
|
// 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
|
|
165
176
|
const isBeyondTimeout = renderMetadata &&
|
|
166
177
|
Date.now() > renderMetadata.startedDate + timeoutInMilliseconds + 20000;
|
|
167
178
|
const allErrors = [
|
|
168
179
|
isBeyondTimeout
|
|
169
|
-
? {
|
|
170
|
-
attempt: 1,
|
|
171
|
-
chunk: null,
|
|
172
|
-
explanation: `The main function timed out after ${timeoutInMilliseconds}ms. Consider increasing the timeout of your function. You can use the "--timeout" parameter when deploying a function via CLI, or the "timeoutInSeconds" parameter when using the deployFunction API. ${docs_url_1.DOCS_URL}/docs/lambda/cli/functions#deploy`,
|
|
173
|
-
frame: null,
|
|
174
|
-
isFatal: true,
|
|
175
|
-
s3Location: '',
|
|
176
|
-
stack: new Error().stack,
|
|
177
|
-
tmpDir: null,
|
|
178
|
-
totalAttempts: 1,
|
|
179
|
-
type: 'stitcher',
|
|
180
|
-
willRetry: false,
|
|
181
|
-
}
|
|
180
|
+
? (0, make_timeout_error_1.makeTimeoutError)({ timeoutInMilliseconds, renderMetadata, chunks })
|
|
182
181
|
: null,
|
|
183
182
|
...errorExplanations,
|
|
184
183
|
].filter(remotion_1.Internals.truthy);
|
|
185
184
|
return {
|
|
185
|
+
framesRendered,
|
|
186
186
|
chunks: chunkCount,
|
|
187
187
|
done: false,
|
|
188
188
|
encodingStatus,
|
|
@@ -190,7 +190,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
190
190
|
renderId,
|
|
191
191
|
renderMetadata,
|
|
192
192
|
bucket: bucketName,
|
|
193
|
-
outputFile: (
|
|
193
|
+
outputFile: (_h = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _h !== void 0 ? _h : null,
|
|
194
194
|
timeToFinish,
|
|
195
195
|
errors: allErrors,
|
|
196
196
|
fatalErrorEncountered: allErrors.some((f) => f.isFatal && !f.willRetry),
|
|
@@ -205,18 +205,17 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
205
205
|
type: 'absolute-time',
|
|
206
206
|
})
|
|
207
207
|
: null,
|
|
208
|
-
timeToInvokeLambdas: (_l = encodingStatus === null || encodingStatus === void 0 ? void 0 : encodingStatus.timeToInvoke) !== null && _l !== void 0 ? _l : lambdasInvokedStats.timeToInvokeLambdas,
|
|
209
208
|
overallProgress: (0, get_overall_progress_1.getOverallProgress)({
|
|
210
209
|
cleanup: cleanup ? cleanup.filesDeleted / cleanup.minFilesToDelete : 0,
|
|
211
|
-
encoding: finalEncodingStatus && renderMetadata
|
|
212
|
-
? finalEncodingStatus.framesEncoded /
|
|
213
|
-
renderMetadata.videoConfig.durationInFrames
|
|
210
|
+
encoding: finalEncodingStatus && renderMetadata && frameCount
|
|
211
|
+
? finalEncodingStatus.framesEncoded / frameCount
|
|
214
212
|
: 0,
|
|
215
213
|
invoking: renderMetadata
|
|
216
214
|
? lambdasInvokedStats.lambdasInvoked /
|
|
217
215
|
renderMetadata.estimatedRenderLambdaInvokations
|
|
218
216
|
: 0,
|
|
219
217
|
rendering: renderMetadata ? chunkCount / renderMetadata.totalChunks : 0,
|
|
218
|
+
frames: frameCount === null ? 0 : framesRendered / frameCount,
|
|
220
219
|
}),
|
|
221
220
|
retriesInfo,
|
|
222
221
|
outKey: outputFile && renderMetadata
|
|
@@ -227,6 +226,8 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
227
226
|
.renderBucketName
|
|
228
227
|
: null,
|
|
229
228
|
mostExpensiveFrameRanges: null,
|
|
229
|
+
timeToEncode: null,
|
|
230
|
+
outputSizeInBytes: (_j = outputFile === null || outputFile === void 0 ? void 0 : outputFile.size) !== null && _j !== void 0 ? _j : null,
|
|
230
231
|
};
|
|
231
232
|
};
|
|
232
233
|
exports.getProgress = getProgress;
|
|
File without changes
|
|
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;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import type { ReadStream } from 'fs';
|
|
3
|
+
import type { ReadStream } from 'node:fs';
|
|
3
4
|
import type { Readable } from 'stream';
|
|
4
5
|
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
5
6
|
import type { CustomCredentials } from '../../shared/aws-clients';
|
|
6
7
|
import type { Privacy } from '../../shared/constants';
|
|
7
8
|
import type { DownloadBehavior } from '../../shared/content-disposition-header';
|
|
8
|
-
export
|
|
9
|
+
export type LambdaLSInput = {
|
|
9
10
|
bucketName: string;
|
|
10
11
|
prefix: string;
|
|
11
12
|
region: AwsRegion;
|
|
12
13
|
expectedBucketOwner: string | null;
|
|
13
14
|
continuationToken?: string;
|
|
14
15
|
};
|
|
15
|
-
export
|
|
16
|
+
export type LambdaLsReturnType = Promise<_Object[]>;
|
|
16
17
|
export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
|
|
17
18
|
export declare const lambdaDeleteFile: ({ bucketName, key, region, customCredentials, }: {
|
|
18
19
|
region: AwsRegion;
|
|
@@ -20,7 +21,7 @@ export declare const lambdaDeleteFile: ({ bucketName, key, region, customCredent
|
|
|
20
21
|
key: string;
|
|
21
22
|
customCredentials: CustomCredentials | null;
|
|
22
23
|
}) => Promise<void>;
|
|
23
|
-
|
|
24
|
+
type LambdaWriteFileInput = {
|
|
24
25
|
bucketName: string;
|
|
25
26
|
key: string;
|
|
26
27
|
body: ReadStream | string;
|
|
@@ -29,6 +30,10 @@ export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy,
|
|
|
29
30
|
expectedBucketOwner: string | null;
|
|
30
31
|
downloadBehavior: DownloadBehavior | null;
|
|
31
32
|
customCredentials: CustomCredentials | null;
|
|
33
|
+
};
|
|
34
|
+
export declare const tryLambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }: LambdaWriteFileInput) => Promise<void>;
|
|
35
|
+
export declare const lambdaWriteFile: (params: LambdaWriteFileInput & {
|
|
36
|
+
retries?: number;
|
|
32
37
|
}) => Promise<void>;
|
|
33
38
|
export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketOwner, }: {
|
|
34
39
|
bucketName: string;
|
|
@@ -44,3 +49,4 @@ export declare const lambdaHeadCommand: ({ bucketName, key, region, }: {
|
|
|
44
49
|
LastModified?: Date | undefined;
|
|
45
50
|
ContentLength?: number | undefined;
|
|
46
51
|
}>;
|
|
52
|
+
export {};
|
|
@@ -3,7 +3,7 @@ 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.lambdaHeadCommand = exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
|
|
6
|
+
exports.lambdaHeadCommand = exports.lambdaReadFile = exports.lambdaWriteFile = exports.tryLambdaWriteFile = 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");
|
|
@@ -54,7 +54,7 @@ const lambdaDeleteFile = async ({ bucketName, key, region, customCredentials, })
|
|
|
54
54
|
}));
|
|
55
55
|
};
|
|
56
56
|
exports.lambdaDeleteFile = lambdaDeleteFile;
|
|
57
|
-
const
|
|
57
|
+
const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
|
|
58
58
|
await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.PutObjectCommand({
|
|
59
59
|
Bucket: bucketName,
|
|
60
60
|
Key: key,
|
|
@@ -64,11 +64,33 @@ const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expecte
|
|
|
64
64
|
: privacy === 'private'
|
|
65
65
|
? 'private'
|
|
66
66
|
: 'public-read',
|
|
67
|
-
ExpectedBucketOwner:
|
|
67
|
+
ExpectedBucketOwner: customCredentials
|
|
68
|
+
? undefined
|
|
69
|
+
: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
|
|
68
70
|
ContentType: mime_types_1.default.lookup(key) || 'application/octet-stream',
|
|
69
71
|
ContentDisposition: (0, content_disposition_header_1.getContentDispositionHeader)(downloadBehavior),
|
|
70
72
|
}));
|
|
71
73
|
};
|
|
74
|
+
exports.tryLambdaWriteFile = tryLambdaWriteFile;
|
|
75
|
+
const lambdaWriteFile = async (params) => {
|
|
76
|
+
var _a;
|
|
77
|
+
const remainingRetries = (_a = params.retries) !== null && _a !== void 0 ? _a : 2;
|
|
78
|
+
try {
|
|
79
|
+
await (0, exports.tryLambdaWriteFile)(params);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
if (remainingRetries === 0) {
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
85
|
+
console.warn('Failed to write file to Lambda:');
|
|
86
|
+
console.warn(err);
|
|
87
|
+
console.warn(`Retrying (${remainingRetries} retries remaining)...`);
|
|
88
|
+
return (0, exports.lambdaWriteFile)({
|
|
89
|
+
...params,
|
|
90
|
+
retries: (remainingRetries !== null && remainingRetries !== void 0 ? remainingRetries : 0) - 1,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
72
94
|
exports.lambdaWriteFile = lambdaWriteFile;
|
|
73
95
|
const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, }) => {
|
|
74
96
|
const { Body } = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.GetObjectCommand({
|
|
File without changes
|
|
@@ -11,6 +11,6 @@ const isErrInsufficientResourcesErr = (err) => {
|
|
|
11
11
|
};
|
|
12
12
|
exports.isErrInsufficientResourcesErr = isErrInsufficientResourcesErr;
|
|
13
13
|
const isBrowserCrashedError = (err) => {
|
|
14
|
-
return err.includes('Target closed.');
|
|
14
|
+
return err.includes('Target closed.') || err.includes('Session closed');
|
|
15
15
|
};
|
|
16
16
|
exports.isBrowserCrashedError = isBrowserCrashedError;
|
|
File without changes
|
|
File without changes
|