@remotion/lambda-client 4.0.390 → 4.0.392
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/dist/app-router-webhook.d.ts +10 -0
- package/dist/app-router-webhook.js +43 -0
- package/dist/apply-lifecycle.d.ts +8 -0
- package/dist/apply-lifecycle.js +18 -0
- package/dist/aws-clients.d.ts +12 -0
- package/dist/aws-clients.js +56 -0
- package/dist/aws-provider.d.ts +27 -0
- package/dist/aws-provider.js +94 -0
- package/dist/bucket-exists.d.ts +3 -0
- package/dist/bucket-exists.js +27 -0
- package/dist/call-lambda-async.d.ts +2 -0
- package/dist/call-lambda-async.js +20 -0
- package/dist/call-lambda-streaming.d.ts +6 -0
- package/dist/call-lambda-streaming.js +126 -0
- package/dist/call-lambda-sync.d.ts +2 -0
- package/dist/call-lambda-sync.js +30 -0
- package/dist/check-credentials.d.ts +1 -0
- package/dist/check-credentials.js +39 -0
- package/dist/cjs/index.js +34 -33
- package/dist/clean-items.d.ts +17 -0
- package/dist/clean-items.js +26 -0
- package/dist/constants.d.ts +25 -0
- package/dist/constants.js +26 -0
- package/dist/content-disposition-header.d.ts +2 -0
- package/dist/content-disposition-header.js +50 -0
- package/dist/convert-to-serve-url.d.ts +6 -0
- package/dist/convert-to-serve-url.js +14 -0
- package/dist/create-bucket.d.ts +3 -0
- package/dist/create-bucket.js +65 -0
- package/dist/delete-file.d.ts +3 -0
- package/dist/delete-file.js +17 -0
- package/dist/delete-function.d.ts +7 -0
- package/dist/delete-function.js +15 -0
- package/dist/delete-render.d.ts +22 -0
- package/dist/delete-render.js +90 -0
- package/dist/encode-aws-url-params.d.ts +1 -0
- package/dist/encode-aws-url-params.js +7 -0
- package/dist/esm/index.mjs +21 -20
- package/dist/estimate-price.d.ts +17 -0
- package/dist/estimate-price.js +45 -0
- package/dist/express-webhook.d.ts +3 -0
- package/dist/express-webhook.js +46 -0
- package/dist/get-account-id.d.ts +3 -0
- package/dist/get-account-id.js +15 -0
- package/dist/get-aws-client.d.ts +32 -0
- package/dist/get-aws-client.js +67 -0
- package/dist/get-aws-urls.d.ts +25 -0
- package/dist/get-aws-urls.js +31 -0
- package/dist/get-buckets.d.ts +9 -0
- package/dist/get-buckets.js +64 -0
- package/dist/get-compositions-on-lambda.d.ts +20 -0
- package/dist/get-compositions-on-lambda.js +62 -0
- package/dist/get-credentials.d.ts +9 -0
- package/dist/get-credentials.js +55 -0
- package/dist/get-env-variable.d.ts +1 -0
- package/dist/get-env-variable.js +15 -0
- package/dist/get-function-name.d.ts +8 -0
- package/dist/get-function-name.js +17 -0
- package/dist/get-function-version.d.ts +9 -0
- package/dist/get-function-version.js +35 -0
- package/dist/get-functions.d.ts +10 -0
- package/dist/get-functions.js +80 -0
- package/dist/get-output-url-from-metadata.d.ts +3 -0
- package/dist/get-output-url-from-metadata.js +18 -0
- package/dist/get-render-progress.d.ts +17 -0
- package/dist/get-render-progress.js +47 -0
- package/dist/get-s3-client.d.ts +11 -0
- package/dist/get-s3-client.js +15 -0
- package/dist/get-service-client.d.ts +25 -0
- package/dist/get-service-client.js +131 -0
- package/dist/get-sites.d.ts +31 -0
- package/dist/get-sites.js +83 -0
- package/dist/head-file.d.ts +3 -0
- package/dist/head-file.js +18 -0
- package/dist/index.d.ts +129 -0
- package/dist/index.js +108 -0
- package/dist/is-cli.d.ts +2 -0
- package/dist/is-cli.js +10 -0
- package/dist/is-flaky-error.d.ts +1 -0
- package/dist/is-flaky-error.js +78 -0
- package/dist/is-in-lambda.d.ts +1 -0
- package/dist/is-in-lambda.js +9 -0
- package/dist/is-likely-to-have-aws-profile.d.ts +1 -0
- package/dist/is-likely-to-have-aws-profile.js +50 -0
- package/dist/lambda-version-string.d.ts +1 -0
- package/dist/lambda-version-string.js +7 -0
- package/dist/lifecycle-rules.d.ts +12 -0
- package/dist/lifecycle-rules.js +73 -0
- package/dist/lifecycle.d.ts +7 -0
- package/dist/lifecycle.js +24 -0
- package/dist/list-objects.d.ts +3 -0
- package/dist/list-objects.js +70 -0
- package/dist/make-lambda-payload.d.ts +59 -0
- package/dist/make-lambda-payload.js +150 -0
- package/dist/make-s3-url.d.ts +6 -0
- package/dist/make-s3-url.js +7 -0
- package/dist/p-limit.d.ts +1 -0
- package/dist/p-limit.js +57 -0
- package/dist/pages-router-webhook.d.ts +5 -0
- package/dist/pages-router-webhook.js +48 -0
- package/dist/parse-function-name.d.ts +8 -0
- package/dist/parse-function-name.js +17 -0
- package/dist/presign-url.d.ts +17 -0
- package/dist/presign-url.js +66 -0
- package/dist/price-per-1s.d.ts +37 -0
- package/dist/price-per-1s.js +822 -0
- package/dist/random-hash.d.ts +1 -0
- package/dist/random-hash.js +13 -0
- package/dist/read-file.d.ts +11 -0
- package/dist/read-file.js +19 -0
- package/dist/regions.d.ts +3 -0
- package/dist/regions.js +48 -0
- package/dist/render-media-on-lambda.d.ts +66 -0
- package/dist/render-media-on-lambda.js +133 -0
- package/dist/render-still-on-lambda.d.ts +61 -0
- package/dist/render-still-on-lambda.js +121 -0
- package/dist/runtime-preference.d.ts +2 -0
- package/dist/runtime-preference.js +8 -0
- package/dist/speculate-function-name.d.ts +7 -0
- package/dist/speculate-function-name.js +39 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.js +2 -0
- package/dist/validate-aws-region.d.ts +2 -0
- package/dist/validate-aws-region.js +9 -0
- package/dist/validate-bucketname.d.ts +4 -0
- package/dist/validate-bucketname.js +15 -0
- package/dist/validate-disk-size-in-mb.d.ts +1 -0
- package/dist/validate-disk-size-in-mb.js +23 -0
- package/dist/validate-lambda-codec.d.ts +2 -0
- package/dist/validate-lambda-codec.js +21 -0
- package/dist/validate-memory-size.d.ts +1 -0
- package/dist/validate-memory-size.js +22 -0
- package/dist/validate-presign-expiration.d.ts +1 -0
- package/dist/validate-presign-expiration.js +29 -0
- package/dist/validate-serveurl.d.ts +1 -0
- package/dist/validate-serveurl.js +9 -0
- package/dist/validate-webhook-signature.d.ts +5 -0
- package/dist/validate-webhook-signature.js +28 -0
- package/dist/write-file.d.ts +5 -0
- package/dist/write-file.js +83 -0
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -65826,12 +65826,12 @@ __export(exports_src, {
|
|
|
65826
65826
|
module.exports = __toCommonJS(exports_src);
|
|
65827
65827
|
|
|
65828
65828
|
// src/get-service-client.ts
|
|
65829
|
-
var import_client_cloudwatch_logs = __toESM(require_dist_cjs64()
|
|
65830
|
-
var import_client_iam = __toESM(require_dist_cjs66()
|
|
65831
|
-
var import_client_lambda = __toESM(require_dist_cjs67()
|
|
65832
|
-
var import_client_s3 = __toESM(require_dist_cjs77()
|
|
65833
|
-
var import_client_service_quotas = __toESM(require_dist_cjs78()
|
|
65834
|
-
var import_client_sts = __toESM(require_dist_cjs79()
|
|
65829
|
+
var import_client_cloudwatch_logs = __toESM(require_dist_cjs64());
|
|
65830
|
+
var import_client_iam = __toESM(require_dist_cjs66());
|
|
65831
|
+
var import_client_lambda = __toESM(require_dist_cjs67());
|
|
65832
|
+
var import_client_s3 = __toESM(require_dist_cjs77());
|
|
65833
|
+
var import_client_service_quotas = __toESM(require_dist_cjs78());
|
|
65834
|
+
var import_client_sts = __toESM(require_dist_cjs79());
|
|
65835
65835
|
|
|
65836
65836
|
// ../serverless-client/dist/esm/index.mjs
|
|
65837
65837
|
var tty = __toESM(require("tty"));
|
|
@@ -65974,6 +65974,7 @@ if (typeof window !== "undefined") {
|
|
|
65974
65974
|
if (!window.remotion_delayRenderTimeouts) {
|
|
65975
65975
|
window.remotion_delayRenderTimeouts = {};
|
|
65976
65976
|
}
|
|
65977
|
+
window.remotion_delayRenderHandles = [];
|
|
65977
65978
|
}
|
|
65978
65979
|
var DELAY_RENDER_CALLSTACK_TOKEN = "The delayRender was called:";
|
|
65979
65980
|
var DELAY_RENDER_RETRIES_LEFT = "Retries left: ";
|
|
@@ -66555,7 +66556,7 @@ var validateDownloadBehavior = (downloadBehavior) => {
|
|
|
66555
66556
|
}
|
|
66556
66557
|
}
|
|
66557
66558
|
};
|
|
66558
|
-
var VERSION = "4.0.
|
|
66559
|
+
var VERSION = "4.0.392";
|
|
66559
66560
|
var isColorSupported = () => {
|
|
66560
66561
|
const env = process.env || {};
|
|
66561
66562
|
const isForceDisabled = "NO_COLOR" in env;
|
|
@@ -68465,7 +68466,7 @@ var checkCredentials = () => {
|
|
|
68465
68466
|
};
|
|
68466
68467
|
|
|
68467
68468
|
// src/get-credentials.ts
|
|
68468
|
-
var import_credential_provider_ini = __toESM(require_dist_cjs56()
|
|
68469
|
+
var import_credential_provider_ini = __toESM(require_dist_cjs56());
|
|
68469
68470
|
|
|
68470
68471
|
// src/is-in-lambda.ts
|
|
68471
68472
|
var isInsideLambda = () => Boolean(typeof process !== "undefined" && process?.env?.__RESERVED_IS_INSIDE_REMOTION_LAMBDA);
|
|
@@ -68676,7 +68677,7 @@ var getStsClient = (region, requestHandler) => {
|
|
|
68676
68677
|
var import_node_events = require("node:events");
|
|
68677
68678
|
|
|
68678
68679
|
// src/bucket-exists.ts
|
|
68679
|
-
var import_client_s32 = __toESM(require_dist_cjs77()
|
|
68680
|
+
var import_client_s32 = __toESM(require_dist_cjs77());
|
|
68680
68681
|
|
|
68681
68682
|
// src/get-s3-client.ts
|
|
68682
68683
|
var getS3Client = ({
|
|
@@ -68722,7 +68723,7 @@ var bucketExistsInRegionImplementation = async ({
|
|
|
68722
68723
|
};
|
|
68723
68724
|
|
|
68724
68725
|
// src/call-lambda-async.ts
|
|
68725
|
-
var import_client_lambda2 = __toESM(require_dist_cjs67()
|
|
68726
|
+
var import_client_lambda2 = __toESM(require_dist_cjs67());
|
|
68726
68727
|
var callFunctionAsyncImplementation = async ({
|
|
68727
68728
|
functionName,
|
|
68728
68729
|
payload,
|
|
@@ -68744,7 +68745,7 @@ var callFunctionAsyncImplementation = async ({
|
|
|
68744
68745
|
};
|
|
68745
68746
|
|
|
68746
68747
|
// src/call-lambda-streaming.ts
|
|
68747
|
-
var import_client_lambda3 = __toESM(require_dist_cjs67()
|
|
68748
|
+
var import_client_lambda3 = __toESM(require_dist_cjs67());
|
|
68748
68749
|
var STREAM_STALL_TIMEOUT = 30000;
|
|
68749
68750
|
var LAMBDA_STREAM_STALL = `AWS did not invoke Lambda in ${STREAM_STALL_TIMEOUT}ms`;
|
|
68750
68751
|
var parseJsonOrThrowSource = (data, type) => {
|
|
@@ -68859,7 +68860,7 @@ var callFunctionWithStreamingImplementation = async (options) => {
|
|
|
68859
68860
|
};
|
|
68860
68861
|
|
|
68861
68862
|
// src/call-lambda-sync.ts
|
|
68862
|
-
var import_client_lambda4 = __toESM(require_dist_cjs67()
|
|
68863
|
+
var import_client_lambda4 = __toESM(require_dist_cjs67());
|
|
68863
68864
|
var callLambdaSyncWithoutRetry = async ({
|
|
68864
68865
|
functionName,
|
|
68865
68866
|
payload,
|
|
@@ -68917,7 +68918,7 @@ var convertToServeUrlImplementation = ({
|
|
|
68917
68918
|
};
|
|
68918
68919
|
|
|
68919
68920
|
// src/create-bucket.ts
|
|
68920
|
-
var import_client_s33 = __toESM(require_dist_cjs77()
|
|
68921
|
+
var import_client_s33 = __toESM(require_dist_cjs77());
|
|
68921
68922
|
var createBucket = async ({ region, bucketName, forcePathStyle, requestHandler }) => {
|
|
68922
68923
|
await getS3Client({
|
|
68923
68924
|
region,
|
|
@@ -68976,7 +68977,7 @@ var createBucket = async ({ region, bucketName, forcePathStyle, requestHandler }
|
|
|
68976
68977
|
};
|
|
68977
68978
|
|
|
68978
68979
|
// src/delete-file.ts
|
|
68979
|
-
var import_client_s34 = __toESM(require_dist_cjs77()
|
|
68980
|
+
var import_client_s34 = __toESM(require_dist_cjs77());
|
|
68980
68981
|
var lambdaDeleteFileImplementation = async ({
|
|
68981
68982
|
bucketName,
|
|
68982
68983
|
key,
|
|
@@ -68997,7 +68998,7 @@ var lambdaDeleteFileImplementation = async ({
|
|
|
68997
68998
|
};
|
|
68998
68999
|
|
|
68999
69000
|
// src/delete-function.ts
|
|
69000
|
-
var import_client_lambda5 = __toESM(require_dist_cjs67()
|
|
69001
|
+
var import_client_lambda5 = __toESM(require_dist_cjs67());
|
|
69001
69002
|
var deleteFunction = async ({
|
|
69002
69003
|
region,
|
|
69003
69004
|
functionName,
|
|
@@ -69935,7 +69936,7 @@ var estimatePrice = ({
|
|
|
69935
69936
|
};
|
|
69936
69937
|
|
|
69937
69938
|
// src/get-account-id.ts
|
|
69938
|
-
var import_client_sts2 = __toESM(require_dist_cjs79()
|
|
69939
|
+
var import_client_sts2 = __toESM(require_dist_cjs79());
|
|
69939
69940
|
var getAccountIdImplementation = async (options) => {
|
|
69940
69941
|
validateAwsRegion(options.region);
|
|
69941
69942
|
const callerIdentity = await getStsClient(options.region, null).send(new import_client_sts2.GetCallerIdentityCommand({}));
|
|
@@ -69996,7 +69997,7 @@ var getProgressJsonUrl = ({
|
|
|
69996
69997
|
};
|
|
69997
69998
|
|
|
69998
69999
|
// src/get-buckets.ts
|
|
69999
|
-
var import_client_s35 = __toESM(require_dist_cjs77()
|
|
70000
|
+
var import_client_s35 = __toESM(require_dist_cjs77());
|
|
70000
70001
|
|
|
70001
70002
|
// src/validate-bucketname.ts
|
|
70002
70003
|
var parseBucketName = (name) => {
|
|
@@ -70066,7 +70067,7 @@ var getRemotionBuckets = async ({
|
|
|
70066
70067
|
};
|
|
70067
70068
|
|
|
70068
70069
|
// src/get-functions.ts
|
|
70069
|
-
var import_client_lambda6 = __toESM(require_dist_cjs67()
|
|
70070
|
+
var import_client_lambda6 = __toESM(require_dist_cjs67());
|
|
70070
70071
|
|
|
70071
70072
|
// src/get-function-version.ts
|
|
70072
70073
|
var getFunctionVersion = async ({
|
|
@@ -70189,7 +70190,7 @@ var getOutputUrlFromMetadata = ({
|
|
|
70189
70190
|
};
|
|
70190
70191
|
|
|
70191
70192
|
// src/head-file.ts
|
|
70192
|
-
var import_client_s36 = __toESM(require_dist_cjs77()
|
|
70193
|
+
var import_client_s36 = __toESM(require_dist_cjs77());
|
|
70193
70194
|
var lambdaHeadFileImplementation = async ({
|
|
70194
70195
|
bucketName,
|
|
70195
70196
|
key,
|
|
@@ -70274,7 +70275,7 @@ var isFlakyError = (err) => {
|
|
|
70274
70275
|
};
|
|
70275
70276
|
|
|
70276
70277
|
// src/lifecycle-rules.ts
|
|
70277
|
-
var import_client_s37 = __toESM(require_dist_cjs77()
|
|
70278
|
+
var import_client_s37 = __toESM(require_dist_cjs77());
|
|
70278
70279
|
|
|
70279
70280
|
// src/apply-lifecycle.ts
|
|
70280
70281
|
var deleteLifeCycleInput = ({
|
|
@@ -70403,7 +70404,7 @@ var applyLifeCyleOperation = async ({
|
|
|
70403
70404
|
};
|
|
70404
70405
|
|
|
70405
70406
|
// src/list-objects.ts
|
|
70406
|
-
var import_client_s38 = __toESM(require_dist_cjs77()
|
|
70407
|
+
var import_client_s38 = __toESM(require_dist_cjs77());
|
|
70407
70408
|
var lambdaLsImplementation = async ({
|
|
70408
70409
|
bucketName,
|
|
70409
70410
|
prefix,
|
|
@@ -70497,7 +70498,7 @@ var randomHashImplementation = () => {
|
|
|
70497
70498
|
};
|
|
70498
70499
|
|
|
70499
70500
|
// src/read-file.ts
|
|
70500
|
-
var import_client_s39 = __toESM(require_dist_cjs77()
|
|
70501
|
+
var import_client_s39 = __toESM(require_dist_cjs77());
|
|
70501
70502
|
var lambdaReadFileImplementation = async ({
|
|
70502
70503
|
bucketName,
|
|
70503
70504
|
key,
|
|
@@ -70520,9 +70521,9 @@ var lambdaReadFileImplementation = async ({
|
|
|
70520
70521
|
};
|
|
70521
70522
|
|
|
70522
70523
|
// src/write-file.ts
|
|
70523
|
-
var import_client_s310 = __toESM(require_dist_cjs77()
|
|
70524
|
-
var import_lib_storage = __toESM(require_dist_cjs81()
|
|
70525
|
-
var import_mime_types = __toESM(require_mime_types()
|
|
70524
|
+
var import_client_s310 = __toESM(require_dist_cjs77());
|
|
70525
|
+
var import_lib_storage = __toESM(require_dist_cjs81());
|
|
70526
|
+
var import_mime_types = __toESM(require_mime_types());
|
|
70526
70527
|
|
|
70527
70528
|
// src/content-disposition-header.ts
|
|
70528
70529
|
var problematicCharacters = {
|
|
@@ -71613,12 +71614,12 @@ var expressWebhook = (options) => {
|
|
|
71613
71614
|
};
|
|
71614
71615
|
};
|
|
71615
71616
|
// src/get-aws-client.ts
|
|
71616
|
-
var CloudWatchSDK = __toESM(require_dist_cjs64()
|
|
71617
|
-
var IamSdk = __toESM(require_dist_cjs66()
|
|
71618
|
-
var LambdaSDK = __toESM(require_dist_cjs67()
|
|
71619
|
-
var S3SDK = __toESM(require_dist_cjs77()
|
|
71620
|
-
var ServiceQuotasSDK = __toESM(require_dist_cjs78()
|
|
71621
|
-
var StsSdk = __toESM(require_dist_cjs79()
|
|
71617
|
+
var CloudWatchSDK = __toESM(require_dist_cjs64());
|
|
71618
|
+
var IamSdk = __toESM(require_dist_cjs66());
|
|
71619
|
+
var LambdaSDK = __toESM(require_dist_cjs67());
|
|
71620
|
+
var S3SDK = __toESM(require_dist_cjs77());
|
|
71621
|
+
var ServiceQuotasSDK = __toESM(require_dist_cjs78());
|
|
71622
|
+
var StsSdk = __toESM(require_dist_cjs79());
|
|
71622
71623
|
var getAwsClient = ({
|
|
71623
71624
|
region,
|
|
71624
71625
|
service,
|
|
@@ -71747,8 +71748,8 @@ var getRenderProgress = async (input) => {
|
|
|
71747
71748
|
return result;
|
|
71748
71749
|
};
|
|
71749
71750
|
// src/presign-url.ts
|
|
71750
|
-
var import_client_s311 = __toESM(require_dist_cjs77()
|
|
71751
|
-
var import_s3_request_presigner = __toESM(require_dist_cjs83()
|
|
71751
|
+
var import_client_s311 = __toESM(require_dist_cjs77());
|
|
71752
|
+
var import_s3_request_presigner = __toESM(require_dist_cjs83());
|
|
71752
71753
|
|
|
71753
71754
|
// src/validate-presign-expiration.ts
|
|
71754
71755
|
var MAX_PRESIGN_EXPIRATION = 604800;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless-client';
|
|
2
|
+
export declare const cleanItems: <Provider extends CloudProvider>({ bucket, onAfterItemDeleted, onBeforeItemDeleted, region, list, providerSpecifics, forcePathStyle, requestHandler, }: {
|
|
3
|
+
bucket: string;
|
|
4
|
+
region: Provider["region"];
|
|
5
|
+
list: string[];
|
|
6
|
+
onBeforeItemDeleted: (data: {
|
|
7
|
+
bucketName: string;
|
|
8
|
+
itemName: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
onAfterItemDeleted: (data: {
|
|
11
|
+
bucketName: string;
|
|
12
|
+
itemName: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
providerSpecifics: ProviderSpecifics<Provider>;
|
|
15
|
+
forcePathStyle: boolean;
|
|
16
|
+
requestHandler: Provider["requestHandler"] | null;
|
|
17
|
+
}) => Promise<void[]>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanItems = void 0;
|
|
4
|
+
const p_limit_1 = require("./p-limit");
|
|
5
|
+
const limit = (0, p_limit_1.pLimit)(10);
|
|
6
|
+
const cleanItems = ({ bucket, onAfterItemDeleted, onBeforeItemDeleted, region, list, providerSpecifics, forcePathStyle, requestHandler, }) => {
|
|
7
|
+
return Promise.all(list.map((object) => limit(async () => {
|
|
8
|
+
onBeforeItemDeleted({
|
|
9
|
+
bucketName: bucket,
|
|
10
|
+
itemName: object,
|
|
11
|
+
});
|
|
12
|
+
await providerSpecifics.deleteFile({
|
|
13
|
+
bucketName: bucket,
|
|
14
|
+
key: object,
|
|
15
|
+
region,
|
|
16
|
+
customCredentials: null,
|
|
17
|
+
forcePathStyle,
|
|
18
|
+
requestHandler,
|
|
19
|
+
});
|
|
20
|
+
onAfterItemDeleted({
|
|
21
|
+
bucketName: bucket,
|
|
22
|
+
itemName: object,
|
|
23
|
+
});
|
|
24
|
+
})));
|
|
25
|
+
};
|
|
26
|
+
exports.cleanItems = cleanItems;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { GenericRenderProgress, Privacy } from '@remotion/serverless-client';
|
|
2
|
+
import type { AwsProvider } from './aws-provider';
|
|
3
|
+
import type { AwsRegion } from './regions';
|
|
4
|
+
export declare const MIN_MEMORY = 512;
|
|
5
|
+
export declare const MAX_MEMORY = 10240;
|
|
6
|
+
export declare const DEFAULT_MEMORY_SIZE = 2048;
|
|
7
|
+
export declare const DEFAULT_TIMEOUT = 120;
|
|
8
|
+
export declare const MIN_TIMEOUT = 15;
|
|
9
|
+
export declare const MAX_TIMEOUT = 900;
|
|
10
|
+
export declare const DEFAULT_FRAMES_PER_LAMBDA = 20;
|
|
11
|
+
export declare const BINARY_NAME = "remotion lambda";
|
|
12
|
+
export declare const DEFAULT_REGION: AwsRegion;
|
|
13
|
+
export declare const DEFAULT_MAX_RETRIES = 1;
|
|
14
|
+
export declare const MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
|
|
15
|
+
export declare const DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
|
|
16
|
+
export declare const MIN_EPHEMERAL_STORAGE_IN_MB = 512;
|
|
17
|
+
export declare const DEFAULT_OUTPUT_PRIVACY: Privacy;
|
|
18
|
+
export declare const DEFAULT_CLOUDWATCH_RETENTION_PERIOD = 14;
|
|
19
|
+
export declare const RENDER_FN_PREFIX = "remotion-render-";
|
|
20
|
+
export declare const LOG_GROUP_PREFIX = "/aws/lambda/";
|
|
21
|
+
export declare const LAMBDA_INSIGHTS_PREFIX = "/aws/lambda-insights";
|
|
22
|
+
export declare const getSitesKey: (siteId: string) => string;
|
|
23
|
+
export type RenderProgress = GenericRenderProgress<AwsProvider>;
|
|
24
|
+
export declare const LAMBDA_CONCURRENCY_LIMIT_QUOTA = "L-B99A9384";
|
|
25
|
+
export declare const REMOTION_BUCKET_PREFIX = "remotionlambda-";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REMOTION_BUCKET_PREFIX = exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = exports.getSitesKey = exports.LAMBDA_INSIGHTS_PREFIX = exports.LOG_GROUP_PREFIX = exports.RENDER_FN_PREFIX = exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = exports.DEFAULT_OUTPUT_PRIVACY = exports.MIN_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = exports.MAX_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_REGION = exports.BINARY_NAME = exports.DEFAULT_FRAMES_PER_LAMBDA = exports.MAX_TIMEOUT = exports.MIN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.DEFAULT_MEMORY_SIZE = exports.MAX_MEMORY = exports.MIN_MEMORY = void 0;
|
|
4
|
+
exports.MIN_MEMORY = 512;
|
|
5
|
+
exports.MAX_MEMORY = 10240;
|
|
6
|
+
exports.DEFAULT_MEMORY_SIZE = 2048;
|
|
7
|
+
exports.DEFAULT_TIMEOUT = 120;
|
|
8
|
+
exports.MIN_TIMEOUT = 15;
|
|
9
|
+
exports.MAX_TIMEOUT = 900;
|
|
10
|
+
exports.DEFAULT_FRAMES_PER_LAMBDA = 20;
|
|
11
|
+
exports.BINARY_NAME = 'remotion lambda';
|
|
12
|
+
exports.DEFAULT_REGION = 'us-east-1';
|
|
13
|
+
exports.DEFAULT_MAX_RETRIES = 1;
|
|
14
|
+
exports.MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
|
|
15
|
+
// TODO: In V5, Enable set this to 10240
|
|
16
|
+
exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
|
|
17
|
+
exports.MIN_EPHEMERAL_STORAGE_IN_MB = 512;
|
|
18
|
+
exports.DEFAULT_OUTPUT_PRIVACY = 'public';
|
|
19
|
+
exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = 14;
|
|
20
|
+
exports.RENDER_FN_PREFIX = 'remotion-render-';
|
|
21
|
+
exports.LOG_GROUP_PREFIX = '/aws/lambda/';
|
|
22
|
+
exports.LAMBDA_INSIGHTS_PREFIX = '/aws/lambda-insights';
|
|
23
|
+
const getSitesKey = (siteId) => `sites/${siteId}`;
|
|
24
|
+
exports.getSitesKey = getSitesKey;
|
|
25
|
+
exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = 'L-B99A9384';
|
|
26
|
+
exports.REMOTION_BUCKET_PREFIX = 'remotionlambda-';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getContentDispositionHeader = void 0;
|
|
4
|
+
// By setting the Content-Disposition header in an S3 object,
|
|
5
|
+
// you can control if the user downloads the item if you
|
|
6
|
+
// visit the link
|
|
7
|
+
const problematicCharacters = {
|
|
8
|
+
'%3A': ':',
|
|
9
|
+
'%2F': '/',
|
|
10
|
+
'%3F': '?',
|
|
11
|
+
'%23': '#',
|
|
12
|
+
'%5B': '[',
|
|
13
|
+
'%5D': ']',
|
|
14
|
+
'%40': '@',
|
|
15
|
+
'%21': '!',
|
|
16
|
+
'%24': '$',
|
|
17
|
+
'%26': '&',
|
|
18
|
+
'%27': "'",
|
|
19
|
+
'%28': '(',
|
|
20
|
+
'%29': ')',
|
|
21
|
+
'%2A': '*',
|
|
22
|
+
'%2B': '+',
|
|
23
|
+
'%2C': ',',
|
|
24
|
+
'%3B': ';',
|
|
25
|
+
};
|
|
26
|
+
const includesHexOfUnsafeChar = (path) => {
|
|
27
|
+
for (const key of Object.keys(problematicCharacters)) {
|
|
28
|
+
if (path.includes(key)) {
|
|
29
|
+
return { containsHex: true };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return { containsHex: false };
|
|
33
|
+
};
|
|
34
|
+
const getContentDispositionHeader = (behavior) => {
|
|
35
|
+
if (behavior === null) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (behavior.type === 'play-in-browser') {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if (behavior.fileName === null) {
|
|
42
|
+
return `attachment`;
|
|
43
|
+
}
|
|
44
|
+
const { containsHex } = includesHexOfUnsafeChar(behavior.fileName);
|
|
45
|
+
if (containsHex) {
|
|
46
|
+
return `attachment; filename="${behavior.fileName}"`;
|
|
47
|
+
}
|
|
48
|
+
return `attachment; filename="${encodeURIComponent(behavior.fileName)}"`;
|
|
49
|
+
};
|
|
50
|
+
exports.getContentDispositionHeader = getContentDispositionHeader;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToServeUrlImplementation = void 0;
|
|
4
|
+
const serverless_client_1 = require("@remotion/serverless-client");
|
|
5
|
+
const convertToServeUrlImplementation = ({ urlOrId, region, bucketName, }) => {
|
|
6
|
+
if (urlOrId.startsWith('src/')) {
|
|
7
|
+
throw new Error(`Remotion Lambda can only render based on a URL in the cloud. It seems like you passed a local file: ${urlOrId}. Read the setup guide for Remotion Lambda ${serverless_client_1.DOCS_URL}/docs/lambda/setup`);
|
|
8
|
+
}
|
|
9
|
+
if (urlOrId.startsWith('http://') || urlOrId.startsWith('https://')) {
|
|
10
|
+
return urlOrId;
|
|
11
|
+
}
|
|
12
|
+
return `https://${bucketName}.s3.${region}.amazonaws.com/sites/${urlOrId}/index.html`;
|
|
13
|
+
};
|
|
14
|
+
exports.convertToServeUrlImplementation = convertToServeUrlImplementation;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBucket = void 0;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const get_s3_client_1 = require("./get-s3-client");
|
|
6
|
+
const createBucket = async ({ region, bucketName, forcePathStyle, requestHandler }) => {
|
|
7
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
8
|
+
region,
|
|
9
|
+
customCredentials: null,
|
|
10
|
+
forcePathStyle,
|
|
11
|
+
requestHandler,
|
|
12
|
+
}).send(new client_s3_1.CreateBucketCommand({
|
|
13
|
+
Bucket: bucketName,
|
|
14
|
+
}));
|
|
15
|
+
try {
|
|
16
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
17
|
+
region,
|
|
18
|
+
customCredentials: null,
|
|
19
|
+
forcePathStyle,
|
|
20
|
+
requestHandler,
|
|
21
|
+
}).send(new client_s3_1.DeleteBucketOwnershipControlsCommand({
|
|
22
|
+
Bucket: bucketName,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
if (err.message.includes('Access Denied')) {
|
|
27
|
+
throw new Error('Since April 2023, more AWS permissions are required to create an S3 bucket. You need to update your user policy to continue. See https://remotion.dev/docs/lambda/s3-public-access for instructions on how to resolve this issue.');
|
|
28
|
+
}
|
|
29
|
+
throw err;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
33
|
+
region,
|
|
34
|
+
customCredentials: null,
|
|
35
|
+
forcePathStyle,
|
|
36
|
+
requestHandler,
|
|
37
|
+
}).send(new client_s3_1.DeletePublicAccessBlockCommand({
|
|
38
|
+
Bucket: bucketName,
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
if (err.message.includes('Access Denied')) {
|
|
43
|
+
throw new Error('PARTIAL SUCCESS: The s3:PutBucketOwnershipControls was found, but the s3:PutBucketPublicAccessBlock permission is not given. Since April 2023, more AWS permissions are required to create an S3 bucket. You need to update your user policy to continue. You need to update your user policy to continue. See https://remotion.dev/docs/lambda/s3-public-access for instructions on how to resolve this issue.');
|
|
44
|
+
}
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
49
|
+
region,
|
|
50
|
+
customCredentials: null,
|
|
51
|
+
forcePathStyle,
|
|
52
|
+
requestHandler,
|
|
53
|
+
}).send(new client_s3_1.PutBucketAclCommand({
|
|
54
|
+
Bucket: bucketName,
|
|
55
|
+
ACL: 'public-read',
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
if (err.message.includes('The bucket does not allow ACLs')) {
|
|
60
|
+
throw new Error(`Could not add an ACL to the bucket. This might have happened because the bucket was already successfully created before but then failed to configure correctly. We recommend to delete the bucket (${bucketName}) if it is empty and start over to fix the problem.`);
|
|
61
|
+
}
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.createBucket = createBucket;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lambdaDeleteFileImplementation = void 0;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const get_s3_client_1 = require("./get-s3-client");
|
|
6
|
+
const lambdaDeleteFileImplementation = async ({ bucketName, key, region, customCredentials, forcePathStyle, requestHandler, }) => {
|
|
7
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
8
|
+
region,
|
|
9
|
+
customCredentials,
|
|
10
|
+
forcePathStyle,
|
|
11
|
+
requestHandler,
|
|
12
|
+
}).send(new client_s3_1.DeleteObjectCommand({
|
|
13
|
+
Bucket: bucketName,
|
|
14
|
+
Key: key,
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
exports.lambdaDeleteFileImplementation = lambdaDeleteFileImplementation;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DeleteFunction, DeleteFunctionInput as GenericDeleteFunctionInput } from '@remotion/serverless-client';
|
|
2
|
+
import type { AwsProvider } from './aws-provider';
|
|
3
|
+
import type { RequestHandler } from './types';
|
|
4
|
+
export type DeleteFunctionInput = GenericDeleteFunctionInput<AwsProvider> & {
|
|
5
|
+
requestHandler?: RequestHandler;
|
|
6
|
+
};
|
|
7
|
+
export declare const deleteFunction: DeleteFunction<AwsProvider>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteFunction = void 0;
|
|
4
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
+
const aws_clients_1 = require("./aws-clients");
|
|
6
|
+
/*
|
|
7
|
+
* @description Deletes a deployed Lambda function based on its name.
|
|
8
|
+
* @see [Documentation](https://remotion.dev/docs/lambda/deletefunction)
|
|
9
|
+
*/
|
|
10
|
+
const deleteFunction = async ({ region, functionName, requestHandler, }) => {
|
|
11
|
+
await (0, aws_clients_1.getLambdaClient)(region, undefined, requestHandler !== null && requestHandler !== void 0 ? requestHandler : null).send(new client_lambda_1.DeleteFunctionCommand({
|
|
12
|
+
FunctionName: functionName,
|
|
13
|
+
}));
|
|
14
|
+
};
|
|
15
|
+
exports.deleteFunction = deleteFunction;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProviderSpecifics } from '@remotion/serverless-client';
|
|
2
|
+
import { type CustomCredentials } from '@remotion/serverless-client';
|
|
3
|
+
import type { AwsProvider } from './aws-provider';
|
|
4
|
+
import type { AwsRegion } from './regions';
|
|
5
|
+
import type { RequestHandler } from './types';
|
|
6
|
+
export type DeleteRenderInput = {
|
|
7
|
+
region: AwsRegion;
|
|
8
|
+
bucketName: string;
|
|
9
|
+
renderId: string;
|
|
10
|
+
customCredentials?: CustomCredentials<AwsProvider>;
|
|
11
|
+
forcePathStyle?: boolean;
|
|
12
|
+
requestHandler?: RequestHandler;
|
|
13
|
+
};
|
|
14
|
+
export declare const internalDeleteRender: (input: DeleteRenderInput & {
|
|
15
|
+
providerSpecifics: ProviderSpecifics<AwsProvider>;
|
|
16
|
+
forcePathStyle: boolean;
|
|
17
|
+
}) => Promise<{
|
|
18
|
+
freedBytes: number;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const deleteRender: (input: DeleteRenderInput) => Promise<{
|
|
21
|
+
freedBytes: number;
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteRender = exports.internalDeleteRender = void 0;
|
|
4
|
+
const serverless_client_1 = require("@remotion/serverless-client");
|
|
5
|
+
const aws_provider_1 = require("./aws-provider");
|
|
6
|
+
const clean_items_1 = require("./clean-items");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const internalDeleteRender = async (input) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const expectedBucketOwner = await input.providerSpecifics.getAccountId({
|
|
11
|
+
region: input.region,
|
|
12
|
+
});
|
|
13
|
+
const progress = await (0, serverless_client_1.getOverallProgressFromStorage)({
|
|
14
|
+
bucketName: input.bucketName,
|
|
15
|
+
expectedBucketOwner,
|
|
16
|
+
region: input.region,
|
|
17
|
+
renderId: input.renderId,
|
|
18
|
+
providerSpecifics: input.providerSpecifics,
|
|
19
|
+
forcePathStyle: input.forcePathStyle,
|
|
20
|
+
requestHandler: input.requestHandler,
|
|
21
|
+
});
|
|
22
|
+
// Render did not start yet
|
|
23
|
+
if (progress.renderMetadata === null) {
|
|
24
|
+
return { freedBytes: 0 };
|
|
25
|
+
}
|
|
26
|
+
const { key, renderBucketName, customCredentials } = (0, serverless_client_1.getExpectedOutName)({
|
|
27
|
+
renderMetadata: progress.renderMetadata,
|
|
28
|
+
bucketName: input.bucketName,
|
|
29
|
+
customCredentials: (_a = input.customCredentials) !== null && _a !== void 0 ? _a : null,
|
|
30
|
+
bucketNamePrefix: constants_1.REMOTION_BUCKET_PREFIX,
|
|
31
|
+
});
|
|
32
|
+
await input.providerSpecifics.deleteFile({
|
|
33
|
+
bucketName: renderBucketName,
|
|
34
|
+
customCredentials,
|
|
35
|
+
key,
|
|
36
|
+
region: input.region,
|
|
37
|
+
forcePathStyle: input.forcePathStyle,
|
|
38
|
+
requestHandler: input.requestHandler,
|
|
39
|
+
});
|
|
40
|
+
let files = await input.providerSpecifics.listObjects({
|
|
41
|
+
bucketName: input.bucketName,
|
|
42
|
+
prefix: (0, serverless_client_1.rendersPrefix)(input.renderId),
|
|
43
|
+
region: input.region,
|
|
44
|
+
expectedBucketOwner,
|
|
45
|
+
forcePathStyle: input.forcePathStyle,
|
|
46
|
+
requestHandler: input.requestHandler,
|
|
47
|
+
});
|
|
48
|
+
let totalSize = 0;
|
|
49
|
+
while (files.length > 0) {
|
|
50
|
+
totalSize += files.reduce((a, b) => {
|
|
51
|
+
var _a;
|
|
52
|
+
return a + ((_a = b.Size) !== null && _a !== void 0 ? _a : 0);
|
|
53
|
+
}, 0);
|
|
54
|
+
await (0, clean_items_1.cleanItems)({
|
|
55
|
+
list: files.map((f) => f.Key),
|
|
56
|
+
bucket: input.bucketName,
|
|
57
|
+
onAfterItemDeleted: () => undefined,
|
|
58
|
+
onBeforeItemDeleted: () => undefined,
|
|
59
|
+
region: input.region,
|
|
60
|
+
providerSpecifics: input.providerSpecifics,
|
|
61
|
+
forcePathStyle: input.forcePathStyle,
|
|
62
|
+
requestHandler: input.requestHandler,
|
|
63
|
+
});
|
|
64
|
+
files = await input.providerSpecifics.listObjects({
|
|
65
|
+
bucketName: input.bucketName,
|
|
66
|
+
prefix: (0, serverless_client_1.rendersPrefix)(input.renderId),
|
|
67
|
+
region: input.region,
|
|
68
|
+
expectedBucketOwner,
|
|
69
|
+
forcePathStyle: input.forcePathStyle,
|
|
70
|
+
requestHandler: input.requestHandler,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
freedBytes: totalSize,
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
exports.internalDeleteRender = internalDeleteRender;
|
|
78
|
+
/*
|
|
79
|
+
* @description Deletes a rendered video, audio or still and its associated metadata.
|
|
80
|
+
* @see [Documentation](https://remotion.dev/docs/lambda/deleterender)
|
|
81
|
+
*/
|
|
82
|
+
const deleteRender = (input) => {
|
|
83
|
+
var _a;
|
|
84
|
+
return (0, exports.internalDeleteRender)({
|
|
85
|
+
...input,
|
|
86
|
+
providerSpecifics: aws_provider_1.awsImplementation,
|
|
87
|
+
forcePathStyle: (_a = input.forcePathStyle) !== null && _a !== void 0 ? _a : false,
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
exports.deleteRender = deleteRender;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const encodeAwsUrlParams: (input: string) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeAwsUrlParams = void 0;
|
|
4
|
+
const encodeAwsUrlParams = (input) => {
|
|
5
|
+
return encodeURIComponent(input).replace(/%/g, '$25');
|
|
6
|
+
};
|
|
7
|
+
exports.encodeAwsUrlParams = encodeAwsUrlParams;
|