@remotion/lambda 4.0.0-webhook.26 → 4.1.0-alpha2
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 +1 -1
- package/dist/api/get-buckets.js +26 -9
- package/dist/api/get-compositions-on-lambda.d.ts +31 -0
- package/dist/api/get-compositions-on-lambda.js +56 -0
- package/dist/api/get-function-info.d.ts +3 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +5 -7
- package/dist/api/get-functions.js +8 -10
- package/dist/api/get-or-create-bucket.d.ts +6 -6
- package/dist/api/get-or-create-bucket.js +10 -18
- package/dist/api/get-regions.d.ts +6 -2
- package/dist/api/get-regions.js +6 -3
- package/dist/api/get-render-progress.d.ts +3 -3
- package/dist/api/get-render-progress.js +6 -11
- package/dist/api/get-sites.d.ts +4 -5
- package/dist/api/get-sites.js +1 -2
- package/dist/api/iam-validation/role-permissions.d.ts +0 -0
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +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 +77 -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 +25 -11
- package/dist/api/render-media-on-lambda.js +16 -49
- package/dist/api/render-still-on-lambda.d.ts +15 -6
- package/dist/api/render-still-on-lambda.js +23 -9
- 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 +36 -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 +6 -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 +15 -0
- package/dist/cli/log.js +0 -0
- package/dist/client.d.ts +8 -2
- package/dist/client.js +9 -1
- package/dist/defaults.d.ts +0 -0
- package/dist/defaults.js +0 -0
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
- package/dist/functions/chunk-optimization/types.d.ts +2 -13
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +60 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
- package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
- package/dist/functions/helpers/calculate-chunk-times.js +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
- package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
- package/dist/functions/helpers/check-if-render-exists.d.ts +0 -0
- package/dist/functions/helpers/check-if-render-exists.js +0 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +8 -8
- package/dist/functions/helpers/concat-videos.d.ts +13 -5
- package/dist/functions/helpers/concat-videos.js +38 -39
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -15
- package/dist/functions/helpers/delete-chunks.d.ts +0 -0
- package/dist/functions/helpers/delete-chunks.js +0 -0
- package/dist/functions/helpers/expected-out-name.d.ts +0 -0
- package/dist/functions/helpers/expected-out-name.js +2 -2
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
- package/dist/functions/helpers/format-costs-info.d.ts +0 -0
- package/dist/functions/helpers/format-costs-info.js +0 -0
- package/dist/functions/helpers/get-browser-instance.d.ts +1 -2
- package/dist/functions/helpers/get-browser-instance.js +7 -3
- 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 +152 -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 -42
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +22 -8
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +80 -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 +140 -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 +5 -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
package/package.json
CHANGED
|
@@ -1,66 +1,90 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
2
|
+
"name": "@remotion/lambda",
|
|
3
|
+
"version": "4.1.0-alpha2",
|
|
4
|
+
"description": "Distributed renderer for Remotion based on AWS Lambda",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"bin": {
|
|
8
|
+
"remotion-lambda": "remotion-lambda-cli.js"
|
|
9
|
+
},
|
|
10
|
+
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"repository": {
|
|
13
|
+
"url": "https://github.com/JonnyBurger/remotion"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@aws-sdk/abort-controller": "3.338.0",
|
|
17
|
+
"@aws-sdk/client-cloudwatch-logs": "3.338.0",
|
|
18
|
+
"@aws-sdk/client-iam": "3.338.0",
|
|
19
|
+
"@aws-sdk/client-lambda": "3.338.0",
|
|
20
|
+
"@aws-sdk/client-s3": "3.338.0",
|
|
21
|
+
"@aws-sdk/client-service-quotas": "3.338.0",
|
|
22
|
+
"@aws-sdk/client-sts": "3.338.0",
|
|
23
|
+
"@aws-sdk/credential-providers": "3.338.0",
|
|
24
|
+
"@aws-sdk/lib-storage": "3.338.0",
|
|
25
|
+
"@aws-sdk/s3-request-presigner": "3.338.0",
|
|
26
|
+
"aws-policies": "^1.0.1",
|
|
27
|
+
"mime-types": "2.1.34",
|
|
28
|
+
"@remotion/bundler": "4.1.0-alpha2",
|
|
29
|
+
"@remotion/renderer": "4.1.0-alpha2",
|
|
30
|
+
"remotion": "4.1.0-alpha2",
|
|
31
|
+
"@remotion/cli": "4.1.0-alpha2"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@jonny/eslint-config": "3.0.266",
|
|
35
|
+
"@types/mime-types": "2.1.1",
|
|
36
|
+
"@types/minimist": "1.2.2",
|
|
37
|
+
"@types/node": "18.14.6",
|
|
38
|
+
"@types/prompt": "^1.1.0",
|
|
39
|
+
"eslint": "8.42.0",
|
|
40
|
+
"prettier": "^2.4.1",
|
|
41
|
+
"prettier-plugin-organize-imports": "^2.3.4",
|
|
42
|
+
"ts-node": "^10.8.0",
|
|
43
|
+
"typescript": "4.9.5",
|
|
44
|
+
"vitest": "0.31.1",
|
|
45
|
+
"zip-lib": "^0.7.2",
|
|
46
|
+
"@remotion/bundler": "4.1.0-alpha2",
|
|
47
|
+
"@remotion/compositor-linux-arm64-gnu": "4.1.0-alpha2"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"@remotion/bundler": "4.1.0-alpha2"
|
|
51
|
+
},
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public"
|
|
54
|
+
},
|
|
55
|
+
"exports": {
|
|
56
|
+
"./package.json": "./package.json",
|
|
57
|
+
".": "./dist/index.js",
|
|
58
|
+
"./defaults": "./dist/defaults.js",
|
|
59
|
+
"./regions": "./dist/regions.js",
|
|
60
|
+
"./policies": "./dist/api/iam-validation/suggested-policy.js",
|
|
61
|
+
"./client": "./dist/client.js",
|
|
62
|
+
"./layers": "./dist/shared/hosted-layers.js"
|
|
63
|
+
},
|
|
64
|
+
"typesVersions": {
|
|
65
|
+
">=1.0": {
|
|
66
|
+
"defaults": [
|
|
67
|
+
"dist/defaults.d.ts"
|
|
68
|
+
],
|
|
69
|
+
"regions": [
|
|
70
|
+
"dist/regions.d.ts"
|
|
71
|
+
],
|
|
72
|
+
"policies": [
|
|
73
|
+
"dist/api/iam-validation/suggested-policy.d.ts"
|
|
74
|
+
],
|
|
75
|
+
"client": [
|
|
76
|
+
"dist/client.d.ts"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"scripts": {
|
|
81
|
+
"formatting": "prettier src --check",
|
|
82
|
+
"testintegration": "vitest src/test/integration --run",
|
|
83
|
+
"lint": "eslint src --ext ts,tsx",
|
|
84
|
+
"test": "vitest src/test/unit --run",
|
|
85
|
+
"watch": "tsc -w",
|
|
86
|
+
"build": "tsc -d && pnpm run buildlambda",
|
|
87
|
+
"buildlambda": "ts-node src/admin/bundle-lambda.ts",
|
|
88
|
+
"start": "ts-node src/run.ts"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
Binary file
|
package/.prettierrc.js
DELETED
package/client.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './dist/client';
|
package/client.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./dist/client');
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.enableS3Website = void 0;
|
|
4
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
-
const aws_clients_1 = require("../shared/aws-clients");
|
|
6
|
-
const enableS3Website = async ({ region, bucketName, }) => {
|
|
7
|
-
await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.PutBucketWebsiteCommand({
|
|
8
|
-
Bucket: bucketName,
|
|
9
|
-
WebsiteConfiguration: {
|
|
10
|
-
IndexDocument: {
|
|
11
|
-
Suffix: 'index.html',
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
}));
|
|
15
|
-
};
|
|
16
|
-
exports.enableS3Website = enableS3Website;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ImageFormat, StillImageFormat } from '@remotion/renderer';
|
|
2
|
-
export declare const getImageFormat: ({ downloadName, outName, configImageFormat, cliFlag, }: {
|
|
3
|
-
downloadName: string | null;
|
|
4
|
-
outName: string | null;
|
|
5
|
-
configImageFormat: ImageFormat | null;
|
|
6
|
-
cliFlag: ImageFormat | null;
|
|
7
|
-
}) => {
|
|
8
|
-
format: StillImageFormat;
|
|
9
|
-
source: string;
|
|
10
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getImageFormat = void 0;
|
|
4
|
-
const deriveExtensionFromFilename = (filename) => {
|
|
5
|
-
if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.png')) {
|
|
6
|
-
return 'png';
|
|
7
|
-
}
|
|
8
|
-
if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.jpg')) {
|
|
9
|
-
return 'jpeg';
|
|
10
|
-
}
|
|
11
|
-
if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.jpeg')) {
|
|
12
|
-
return 'jpeg';
|
|
13
|
-
}
|
|
14
|
-
return null;
|
|
15
|
-
};
|
|
16
|
-
const getImageFormat = ({ downloadName, outName, configImageFormat, cliFlag, }) => {
|
|
17
|
-
const outNameExtension = deriveExtensionFromFilename(outName);
|
|
18
|
-
const downloadNameExtension = deriveExtensionFromFilename(downloadName);
|
|
19
|
-
if (outNameExtension &&
|
|
20
|
-
downloadNameExtension &&
|
|
21
|
-
outNameExtension !== downloadNameExtension) {
|
|
22
|
-
throw new TypeError(`Image format mismatch: ${outName} was given as the S3 output name and ${downloadName} was given as the download name, but the extensions don't match.`);
|
|
23
|
-
}
|
|
24
|
-
if (downloadNameExtension) {
|
|
25
|
-
if (cliFlag && downloadNameExtension !== cliFlag) {
|
|
26
|
-
throw new TypeError(`Image format mismatch: ${downloadName} was given as the download name, but --image-format=${cliFlag} was passed. The image formats must match.`);
|
|
27
|
-
}
|
|
28
|
-
return { format: downloadNameExtension, source: 'Download name extension' };
|
|
29
|
-
}
|
|
30
|
-
if (outNameExtension) {
|
|
31
|
-
if (cliFlag && outNameExtension !== cliFlag) {
|
|
32
|
-
throw new TypeError(`Image format mismatch: ${outName} was given as the S3 out name, but --image-format=${cliFlag} was passed. The image formats must match.`);
|
|
33
|
-
}
|
|
34
|
-
return { format: outNameExtension, source: 'Out name extension' };
|
|
35
|
-
}
|
|
36
|
-
if (cliFlag === 'none') {
|
|
37
|
-
throw new TypeError('The --image-format flag must not be "none" for stills.');
|
|
38
|
-
}
|
|
39
|
-
if (cliFlag !== null) {
|
|
40
|
-
return { format: cliFlag, source: '--image-format flag' };
|
|
41
|
-
}
|
|
42
|
-
if (configImageFormat !== null && configImageFormat !== 'none') {
|
|
43
|
-
return { format: configImageFormat, source: 'Config file' };
|
|
44
|
-
}
|
|
45
|
-
return { format: 'png', source: 'Default' };
|
|
46
|
-
};
|
|
47
|
-
exports.getImageFormat = getImageFormat;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AwsRegion } from '../../client';
|
|
2
|
-
import type { LambdaRoutines } from '../../shared/constants';
|
|
3
|
-
export declare const getCloudwatchStreamUrl: ({ region, functionName, method, renderId, }: {
|
|
4
|
-
region: AwsRegion;
|
|
5
|
-
functionName: string;
|
|
6
|
-
method: LambdaRoutines;
|
|
7
|
-
renderId: string;
|
|
8
|
-
}) => string;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCloudwatchStreamUrl = void 0;
|
|
4
|
-
const getCloudwatchStreamUrl = ({ region, functionName, method, renderId, }) => {
|
|
5
|
-
return `https://${region}.console.aws.amazon.com/cloudwatch/home?region=${region}#logsV2:log-groups/log-group/$252Faws$252Flambda$252F${functionName}/log-events$3FfilterPattern$3D$2522method$253D${method}$252CrenderId$253D${renderId}$2522`;
|
|
6
|
-
};
|
|
7
|
-
exports.getCloudwatchStreamUrl = getCloudwatchStreamUrl;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.canUseOptimization = void 0;
|
|
4
|
-
const version_1 = require("remotion/version");
|
|
5
|
-
const canUseOptimization = ({ optimization, framesPerLambda, frameRange, }) => {
|
|
6
|
-
if (!optimization) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
if (optimization.framesPerLambda !== framesPerLambda) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
if (optimization.lambdaVersion !== version_1.VERSION) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
if (optimization.frameRange[0] !== frameRange[0]) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
if (optimization.frameRange[1] !== frameRange[1]) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
return true;
|
|
22
|
-
};
|
|
23
|
-
exports.canUseOptimization = canUseOptimization;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
export declare const collectChunkInformation: ({ bucketName, renderId, region, expectedBucketOwner, }: {
|
|
3
|
-
bucketName: string;
|
|
4
|
-
renderId: string;
|
|
5
|
-
region: AwsRegion;
|
|
6
|
-
expectedBucketOwner: string;
|
|
7
|
-
}) => Promise<(Omit<import("./types").ObjectChunkTimingData, "timings"> & {
|
|
8
|
-
timings: number[];
|
|
9
|
-
})[]>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.collectChunkInformation = void 0;
|
|
4
|
-
const constants_1 = require("../../shared/constants");
|
|
5
|
-
const stream_to_string_1 = require("../../shared/stream-to-string");
|
|
6
|
-
const io_1 = require("../helpers/io");
|
|
7
|
-
const collectChunkInformation = async ({ bucketName, renderId, region, expectedBucketOwner, }) => {
|
|
8
|
-
const prefix = (0, constants_1.lambdaTimingsPrefix)(renderId);
|
|
9
|
-
const timingFiles = await (0, io_1.lambdaLs)({
|
|
10
|
-
bucketName,
|
|
11
|
-
prefix,
|
|
12
|
-
region,
|
|
13
|
-
expectedBucketOwner,
|
|
14
|
-
});
|
|
15
|
-
const timingFileContents = await Promise.all(timingFiles.map(async (file) => {
|
|
16
|
-
const contents = await (0, io_1.lambdaReadFile)({
|
|
17
|
-
bucketName,
|
|
18
|
-
key: file.Key,
|
|
19
|
-
region,
|
|
20
|
-
expectedBucketOwner,
|
|
21
|
-
});
|
|
22
|
-
const string = await (0, stream_to_string_1.streamToString)(contents);
|
|
23
|
-
return JSON.parse(string);
|
|
24
|
-
}));
|
|
25
|
-
return timingFileContents;
|
|
26
|
-
};
|
|
27
|
-
exports.collectChunkInformation = collectChunkInformation;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sortProfileByFrameRanges = exports.getFrameRangesFromProfile = void 0;
|
|
4
|
-
const getFrameRangesFromProfile = (profile) => {
|
|
5
|
-
return profile.map((p) => p.frameRange);
|
|
6
|
-
};
|
|
7
|
-
exports.getFrameRangesFromProfile = getFrameRangesFromProfile;
|
|
8
|
-
const sortProfileByFrameRanges = (profile) => {
|
|
9
|
-
return profile.slice().sort((a, b) => a.frameRange[0] - b.frameRange[0]);
|
|
10
|
-
};
|
|
11
|
-
exports.sortProfileByFrameRanges = sortProfileByFrameRanges;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProfileDuration = exports.getTimingEndTimestamps = void 0;
|
|
4
|
-
const getTimingEndTimestamps = (chunk) => {
|
|
5
|
-
return chunk.timings.map((timing) => chunk.startDate + timing);
|
|
6
|
-
};
|
|
7
|
-
exports.getTimingEndTimestamps = getTimingEndTimestamps;
|
|
8
|
-
const getProfileTimestamps = (chunks) => {
|
|
9
|
-
return chunks.map((c) => (0, exports.getTimingEndTimestamps)(c));
|
|
10
|
-
};
|
|
11
|
-
const getProfileDuration = (chunks) => {
|
|
12
|
-
const startTimeStamps = chunks.map((c) => c.startDate).flat(1);
|
|
13
|
-
const endTimestamps = getProfileTimestamps(chunks).flat(1);
|
|
14
|
-
const earliest = Math.min(...startTimeStamps);
|
|
15
|
-
const latest = Math.max(...endTimestamps);
|
|
16
|
-
return latest - earliest;
|
|
17
|
-
};
|
|
18
|
-
exports.getProfileDuration = getProfileDuration;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidOptimizationProfile = void 0;
|
|
4
|
-
const renderer_1 = require("@remotion/renderer");
|
|
5
|
-
const isValidOptimizationProfile = (profile) => {
|
|
6
|
-
return profile.every((timing) => {
|
|
7
|
-
const frames = renderer_1.RenderInternals.getFramesToRender(timing.frameRange, 1);
|
|
8
|
-
const values = Object.values(timing.timings);
|
|
9
|
-
return frames.length === values.length && values.every((v) => v > 0);
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
exports.isValidOptimizationProfile = isValidOptimizationProfile;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.optimizeInvocationOrder = void 0;
|
|
4
|
-
const sort_by_duration_1 = require("./sort-by-duration");
|
|
5
|
-
const optimizeInvocationOrder = (profile) => {
|
|
6
|
-
const sortedByDuration = (0, sort_by_duration_1.sortProfileByDuration)(profile).reverse();
|
|
7
|
-
const sortedByStartTime = profile
|
|
8
|
-
.slice()
|
|
9
|
-
.map((a) => a.startDate)
|
|
10
|
-
.sort((a, b) => a - b);
|
|
11
|
-
const result = sortedByStartTime.map((prof, i) => {
|
|
12
|
-
return {
|
|
13
|
-
...sortedByDuration[i],
|
|
14
|
-
startDate: prof,
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
return result;
|
|
18
|
-
};
|
|
19
|
-
exports.optimizeInvocationOrder = optimizeInvocationOrder;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { TimingProfile } from './types';
|
|
2
|
-
export declare const assignFrameToOther: ({ frameRanges, fromChunk, toChunk, framesToShift, }: {
|
|
3
|
-
frameRanges: [number, number][];
|
|
4
|
-
fromChunk: number;
|
|
5
|
-
toChunk: number;
|
|
6
|
-
framesToShift: number;
|
|
7
|
-
}) => [number, number][];
|
|
8
|
-
export declare const optimizeProfile: (_profile: TimingProfile) => TimingProfile;
|
|
9
|
-
export declare const optimizeProfileRecursively: (profile: TimingProfile, amount: number) => TimingProfile;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.optimizeProfileRecursively = exports.optimizeProfile = exports.assignFrameToOther = void 0;
|
|
4
|
-
const get_frame_ranges_from_profile_1 = require("./get-frame-ranges-from-profile");
|
|
5
|
-
const simulate_frame_ranges_1 = require("./simulate-frame-ranges");
|
|
6
|
-
const sort_by_duration_1 = require("./sort-by-duration");
|
|
7
|
-
const assignFrameToOther = ({ frameRanges, fromChunk, toChunk, framesToShift, }) => {
|
|
8
|
-
if (fromChunk < toChunk) {
|
|
9
|
-
return frameRanges.map((frameRange, i) => {
|
|
10
|
-
if (i === fromChunk) {
|
|
11
|
-
return [frameRange[0], frameRange[1] - framesToShift];
|
|
12
|
-
}
|
|
13
|
-
if (i === toChunk) {
|
|
14
|
-
return [frameRange[0] - framesToShift, frameRange[1]];
|
|
15
|
-
}
|
|
16
|
-
if (i > fromChunk && i < toChunk) {
|
|
17
|
-
return [frameRange[0] - framesToShift, frameRange[1] - framesToShift];
|
|
18
|
-
}
|
|
19
|
-
return frameRange;
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
return frameRanges.map((frameRange, i) => {
|
|
23
|
-
if (i === fromChunk) {
|
|
24
|
-
return [frameRange[0] + framesToShift, frameRange[1]];
|
|
25
|
-
}
|
|
26
|
-
if (i === toChunk) {
|
|
27
|
-
return [frameRange[0], frameRange[1] + framesToShift];
|
|
28
|
-
}
|
|
29
|
-
if (i > toChunk && i < fromChunk) {
|
|
30
|
-
return [frameRange[0] + framesToShift, frameRange[1] + framesToShift];
|
|
31
|
-
}
|
|
32
|
-
return frameRange;
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
exports.assignFrameToOther = assignFrameToOther;
|
|
36
|
-
const optimizeProfile = (_profile) => {
|
|
37
|
-
const sortedByStart = _profile
|
|
38
|
-
.slice()
|
|
39
|
-
.sort((a, b) => a.frameRange[0] - b.frameRange[0]);
|
|
40
|
-
const sortedByDuration = (0, sort_by_duration_1.sortProfileByDuration)(sortedByStart);
|
|
41
|
-
const indexOfFastest = sortedByStart.indexOf(sortedByDuration[0]);
|
|
42
|
-
if (indexOfFastest === -1) {
|
|
43
|
-
throw new Error('invalid timing profile: ' + JSON.stringify(_profile));
|
|
44
|
-
}
|
|
45
|
-
const slowest = sortedByDuration[sortedByDuration.length - 1];
|
|
46
|
-
const indexOfSlowest = sortedByStart.indexOf(slowest);
|
|
47
|
-
if (indexOfSlowest === -1) {
|
|
48
|
-
throw new Error('invalid timing profile: ' + JSON.stringify(_profile));
|
|
49
|
-
}
|
|
50
|
-
const frameRanges = (0, get_frame_ranges_from_profile_1.getFrameRangesFromProfile)(sortedByStart);
|
|
51
|
-
if (indexOfFastest === indexOfSlowest) {
|
|
52
|
-
return _profile;
|
|
53
|
-
}
|
|
54
|
-
const newFrameRanges = (0, exports.assignFrameToOther)({
|
|
55
|
-
frameRanges,
|
|
56
|
-
fromChunk: indexOfSlowest,
|
|
57
|
-
toChunk: indexOfFastest,
|
|
58
|
-
framesToShift: Math.max(1, Math.min(2, Math.floor(slowest.timings.length / 3))),
|
|
59
|
-
});
|
|
60
|
-
const simulated = (0, simulate_frame_ranges_1.simulateFrameRanges)({
|
|
61
|
-
profile: sortedByStart,
|
|
62
|
-
newFrameRanges,
|
|
63
|
-
});
|
|
64
|
-
return simulated;
|
|
65
|
-
};
|
|
66
|
-
exports.optimizeProfile = optimizeProfile;
|
|
67
|
-
const optimizeProfileRecursively = (profile, amount) => {
|
|
68
|
-
let optimized = profile;
|
|
69
|
-
for (let i = 0; i < amount; i++) {
|
|
70
|
-
optimized = (0, exports.optimizeProfile)(optimized);
|
|
71
|
-
}
|
|
72
|
-
return optimized;
|
|
73
|
-
};
|
|
74
|
-
exports.optimizeProfileRecursively = optimizeProfileRecursively;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import type { OptimizationProfile } from './types';
|
|
3
|
-
export declare const writeOptimization: ({ bucketName, optimization, compositionId, siteId, region, expectedBucketOwner, }: {
|
|
4
|
-
bucketName: string;
|
|
5
|
-
optimization: OptimizationProfile;
|
|
6
|
-
compositionId: string;
|
|
7
|
-
siteId: string;
|
|
8
|
-
region: AwsRegion;
|
|
9
|
-
expectedBucketOwner: string;
|
|
10
|
-
}) => Promise<void>;
|
|
11
|
-
export declare const getOptimization: ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }: {
|
|
12
|
-
bucketName: string;
|
|
13
|
-
siteId: string;
|
|
14
|
-
compositionId: string;
|
|
15
|
-
region: AwsRegion;
|
|
16
|
-
expectedBucketOwner: string;
|
|
17
|
-
}) => Promise<OptimizationProfile | null>;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOptimization = exports.writeOptimization = void 0;
|
|
4
|
-
const constants_1 = require("../../shared/constants");
|
|
5
|
-
const stream_to_string_1 = require("../../shared/stream-to-string");
|
|
6
|
-
const io_1 = require("../helpers/io");
|
|
7
|
-
const writeOptimization = async ({ bucketName, optimization, compositionId, siteId, region, expectedBucketOwner, }) => {
|
|
8
|
-
await (0, io_1.lambdaWriteFile)({
|
|
9
|
-
bucketName,
|
|
10
|
-
body: JSON.stringify(optimization),
|
|
11
|
-
key: (0, constants_1.optimizationProfile)(siteId, compositionId) + '.json',
|
|
12
|
-
region,
|
|
13
|
-
privacy: 'private',
|
|
14
|
-
expectedBucketOwner,
|
|
15
|
-
downloadBehavior: null,
|
|
16
|
-
customCredentials: null,
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
exports.writeOptimization = writeOptimization;
|
|
20
|
-
const getOptimization = async ({ siteId, compositionId, bucketName, region, expectedBucketOwner, }) => {
|
|
21
|
-
const prefix = (0, constants_1.optimizationProfile)(siteId, compositionId);
|
|
22
|
-
const dir = await (0, io_1.lambdaLs)({
|
|
23
|
-
bucketName,
|
|
24
|
-
prefix,
|
|
25
|
-
region,
|
|
26
|
-
expectedBucketOwner,
|
|
27
|
-
});
|
|
28
|
-
const files = dir
|
|
29
|
-
.sort((a, b) => {
|
|
30
|
-
var _a, _b;
|
|
31
|
-
return ((_a = a.LastModified) === null || _a === void 0 ? void 0 : _a.getTime()) -
|
|
32
|
-
((_b = b.LastModified) === null || _b === void 0 ? void 0 : _b.getTime());
|
|
33
|
-
})
|
|
34
|
-
.reverse();
|
|
35
|
-
if (files.length === 0) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
const body = await (0, io_1.lambdaReadFile)({
|
|
39
|
-
bucketName,
|
|
40
|
-
key: files[0].Key,
|
|
41
|
-
region,
|
|
42
|
-
expectedBucketOwner,
|
|
43
|
-
});
|
|
44
|
-
const str = await (0, stream_to_string_1.streamToString)(body);
|
|
45
|
-
return JSON.parse(str);
|
|
46
|
-
};
|
|
47
|
-
exports.getOptimization = getOptimization;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ChunkTimingData, TimingProfile } from './types';
|
|
2
|
-
export declare const getTimingForFrame: (profile: TimingProfile, frame: number) => number;
|
|
3
|
-
export declare const getSimulatedTimingForFrameRange: (profile: TimingProfile, frameRange: [number, number]) => ChunkTimingData['timings'];
|
|
4
|
-
export declare const simulateFrameRanges: ({ profile, newFrameRanges, }: {
|
|
5
|
-
profile: TimingProfile;
|
|
6
|
-
newFrameRanges: [number, number][];
|
|
7
|
-
}) => TimingProfile;
|