@remotion/lambda 4.0.200 → 4.0.202
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/api/bucket-exists.js +6 -2
- package/dist/api/clean-items.d.ts +2 -1
- package/dist/api/clean-items.js +2 -1
- package/dist/api/create-bucket.js +5 -5
- package/dist/api/delete-render.d.ts +2 -0
- package/dist/api/delete-render.js +6 -0
- package/dist/api/delete-site.d.ts +11 -5
- package/dist/api/delete-site.js +7 -1
- package/dist/api/deploy-site.d.ts +7 -3
- package/dist/api/deploy-site.js +17 -4
- package/dist/api/download-media.d.ts +2 -0
- package/dist/api/download-media.js +4 -1
- package/dist/api/get-aws-client.d.ts +2 -1
- package/dist/api/get-aws-client.js +2 -1
- package/dist/api/get-buckets.js +11 -3
- package/dist/api/get-compositions-on-lambda.d.ts +2 -1
- package/dist/api/get-compositions-on-lambda.js +3 -1
- package/dist/api/get-or-create-bucket.js +1 -0
- package/dist/api/get-render-progress.d.ts +1 -0
- package/dist/api/get-sites.d.ts +9 -4
- package/dist/api/get-sites.js +15 -5
- package/dist/api/make-lambda-payload.d.ts +4 -3
- package/dist/api/make-lambda-payload.js +9 -4
- package/dist/api/presign-url.d.ts +8 -3
- package/dist/api/presign-url.js +26 -12
- package/dist/api/render-media-on-lambda.d.ts +1 -0
- package/dist/api/render-media-on-lambda.js +2 -1
- package/dist/api/render-still-on-lambda.d.ts +1 -0
- package/dist/api/render-still-on-lambda.js +2 -1
- package/dist/api/upload-dir.d.ts +2 -1
- package/dist/api/upload-dir.js +2 -2
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/commands/render/render.js +3 -1
- package/dist/cli/commands/sites/create.js +22 -2
- package/dist/cli/commands/sites/rm.js +1 -0
- package/dist/cli/commands/sites/rmall.js +1 -0
- package/dist/cli/commands/still.d.ts +6 -1
- package/dist/cli/commands/still.js +2 -1
- package/dist/cli/helpers/progress-bar.d.ts +5 -0
- package/dist/cli/helpers/progress-bar.js +19 -1
- package/dist/cli/index.js +6 -1
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -4
- package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
- package/dist/functions/helpers/check-if-render-exists.js +15 -0
- package/dist/functions/helpers/cleanup-props.d.ts +6 -2
- package/dist/functions/helpers/cleanup-props.js +3 -1
- package/dist/functions/helpers/delete-chunks.d.ts +9 -0
- package/dist/functions/helpers/delete-chunks.js +25 -0
- package/dist/functions/helpers/expected-out-name.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +2 -1
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -3
- package/dist/functions/helpers/get-browser-instance.js +4 -3
- package/dist/functions/helpers/get-cleanup-progress.d.ts +10 -0
- package/dist/functions/helpers/get-cleanup-progress.js +35 -0
- package/dist/functions/helpers/get-current-region.d.ts +1 -1
- package/dist/functions/helpers/get-custom-out-name.d.ts +1 -1
- package/dist/functions/helpers/get-encoding-metadata.d.ts +7 -0
- package/dist/functions/helpers/get-encoding-metadata.js +15 -0
- package/dist/functions/helpers/get-encoding-progress-step-size.d.ts +1 -0
- package/dist/functions/helpers/get-encoding-progress-step-size.js +7 -0
- package/dist/functions/helpers/get-files-to-delete.d.ts +10 -0
- package/dist/functions/helpers/get-files-to-delete.js +52 -0
- package/dist/functions/helpers/get-final-encoding-status.d.ts +6 -0
- package/dist/functions/helpers/get-final-encoding-status.js +18 -0
- package/dist/functions/helpers/get-folder-size.d.ts +1 -0
- package/dist/functions/helpers/get-folder-size.js +8 -0
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +8 -0
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +14 -0
- package/dist/functions/helpers/get-overall-progress-s3.d.ts +2 -1
- package/dist/functions/helpers/get-overall-progress-s3.js +2 -1
- package/dist/functions/helpers/get-post-render-data.d.ts +8 -0
- package/dist/functions/helpers/get-post-render-data.js +22 -0
- package/dist/functions/helpers/get-progress.d.ts +2 -1
- package/dist/functions/helpers/get-progress.js +2 -1
- package/dist/functions/helpers/get-render-metadata.d.ts +8 -0
- package/dist/functions/helpers/get-render-metadata.js +17 -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-time-to-finish.d.ts +5 -0
- package/dist/functions/helpers/get-time-to-finish.js +13 -0
- package/dist/functions/helpers/io.d.ts +33 -3
- package/dist/functions/helpers/io.js +104 -3
- package/dist/functions/helpers/merge-chunks.d.ts +1 -0
- package/dist/functions/helpers/merge-chunks.js +2 -0
- package/dist/functions/helpers/overall-render-progress.d.ts +2 -1
- package/dist/functions/helpers/overall-render-progress.js +2 -1
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.js +3 -3
- package/dist/functions/helpers/read-with-progress.d.ts +2 -1
- package/dist/functions/helpers/read-with-progress.js +2 -2
- package/dist/functions/helpers/streaming-payloads.d.ts +19 -0
- package/dist/functions/helpers/streaming-payloads.js +25 -0
- package/dist/functions/helpers/write-lambda-error.d.ts +3 -2
- package/dist/functions/helpers/write-lambda-error.js +2 -3
- package/dist/functions/helpers/write-post-render-data.d.ts +9 -0
- package/dist/functions/helpers/write-post-render-data.js +18 -0
- package/dist/functions/launch.js +8 -0
- package/dist/functions/merge.d.ts +9 -0
- package/dist/functions/merge.js +61 -0
- package/dist/functions/progress.js +1 -0
- package/dist/functions/renderer.js +2 -0
- package/dist/functions/start.js +3 -0
- package/dist/functions/still.js +6 -0
- package/dist/index.d.ts +2 -2
- package/dist/internals.d.ts +12 -9
- package/dist/io/delete-file.js +2 -2
- package/dist/io/head-file.js +6 -2
- package/dist/io/list-objects.js +12 -3
- package/dist/io/read-file.d.ts +2 -1
- package/dist/io/read-file.js +6 -2
- package/dist/io/write-file.js +6 -2
- package/dist/shared/__mocks__/read-dir.js +2 -2
- package/dist/shared/aws-clients.js +15 -2
- package/dist/shared/chunk-progress.d.ts +9 -0
- package/dist/shared/chunk-progress.js +2034 -0
- package/dist/shared/cleanup-serialized-input-props.d.ts +4 -2
- package/dist/shared/cleanup-serialized-input-props.js +4 -2
- package/dist/shared/compress-props.d.ts +6 -8
- package/dist/shared/compress-props.js +14 -11
- package/dist/shared/get-etag.d.ts +1 -1
- package/dist/shared/get-etag.js +33 -12
- package/dist/shared/get-s3-client.d.ts +5 -1
- package/dist/shared/get-s3-client.js +2 -1
- package/dist/shared/get-s3-operations.d.ts +2 -1
- package/dist/shared/get-s3-operations.js +38 -20
- package/dist/shared/get-service-client.d.ts +2 -1
- package/dist/shared/get-service-client.js +4 -2
- package/dist/shared/lifecycle-rules.d.ts +2 -1
- package/dist/shared/lifecycle-rules.js +17 -7
- package/dist/shared/parse-chunk-key.d.ts +5 -0
- package/dist/shared/parse-chunk-key.js +15 -0
- package/dist/shared/parse-lambda-initialized-key.d.ts +5 -0
- package/dist/shared/parse-lambda-initialized-key.js +15 -0
- package/dist/shared/read-dir.d.ts +6 -5
- package/dist/shared/read-dir.js +9 -6
- package/dist/shared/serialize-props.d.ts +14 -0
- package/dist/shared/serialize-props.js +36 -0
- package/package.json +11 -11
- package/remotionlambda-arm64.zip +0 -0
- package/dist/functions/provider-implementation.d.ts +0 -0
- package/dist/functions/provider-implementation.js +0 -1
|
@@ -26,7 +26,7 @@ const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
|
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
exports.makeInitialOverallRenderProgress = makeInitialOverallRenderProgress;
|
|
29
|
-
const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }) => {
|
|
29
|
+
const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }) => {
|
|
30
30
|
let framesRendered = [];
|
|
31
31
|
let framesEncoded = [];
|
|
32
32
|
let lambdasInvoked = [];
|
|
@@ -58,6 +58,7 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
58
58
|
key: (0, client_1.overallProgressKey)(renderId),
|
|
59
59
|
privacy: 'private',
|
|
60
60
|
region,
|
|
61
|
+
forcePathStyle,
|
|
61
62
|
})
|
|
62
63
|
.then(() => {
|
|
63
64
|
// By default, upload is way too fast (~20 requests per second)
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LogLevel } from '@remotion/renderer';
|
|
2
2
|
import type { ServerlessRoutines } from '@remotion/serverless/client';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const printLoggingGrepHelper: (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.printLoggingGrepHelper = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
|
-
const
|
|
5
|
+
const printLoggingGrepHelper = (type, data, logLevel) => {
|
|
6
6
|
const d = Object.keys(data).reduce((a, b) => {
|
|
7
7
|
return [...a, `${b}=${data[b]}`];
|
|
8
8
|
}, []);
|
|
9
9
|
const msg = [`method=${type}`, ...d].join(',');
|
|
10
10
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, msg);
|
|
11
11
|
};
|
|
12
|
-
exports.
|
|
12
|
+
exports.printLoggingGrepHelper = printLoggingGrepHelper;
|
|
@@ -7,7 +7,7 @@ export type LambdaReadFileProgress = (progress: {
|
|
|
7
7
|
downloaded: number;
|
|
8
8
|
percent: number;
|
|
9
9
|
}) => unknown;
|
|
10
|
-
export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }: {
|
|
10
|
+
export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }: {
|
|
11
11
|
bucketName: string;
|
|
12
12
|
key: string;
|
|
13
13
|
region: AwsRegion;
|
|
@@ -16,6 +16,7 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
|
|
|
16
16
|
onProgress: LambdaReadFileProgress;
|
|
17
17
|
customCredentials: CustomCredentials<AwsProvider> | null;
|
|
18
18
|
logLevel: LogLevel;
|
|
19
|
+
forcePathStyle: boolean;
|
|
19
20
|
}) => Promise<{
|
|
20
21
|
sizeInBytes: number;
|
|
21
22
|
to: string;
|
|
@@ -5,8 +5,8 @@ const client_s3_1 = require("@aws-sdk/client-s3");
|
|
|
5
5
|
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
6
6
|
const renderer_1 = require("@remotion/renderer");
|
|
7
7
|
const get_s3_client_1 = require("../../shared/get-s3-client");
|
|
8
|
-
const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }) => {
|
|
9
|
-
const client = (0, get_s3_client_1.getS3Client)(region, customCredentials);
|
|
8
|
+
const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }) => {
|
|
9
|
+
const client = (0, get_s3_client_1.getS3Client)({ region, customCredentials, forcePathStyle });
|
|
10
10
|
const command = new client_s3_1.GetObjectCommand({
|
|
11
11
|
Bucket: bucketName,
|
|
12
12
|
ExpectedBucketOwner: customCredentials ? undefined : expectedBucketOwner,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ResponseStream } from './streamify-response';
|
|
3
|
+
declare const streamingPayloadSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
4
|
+
type: z.ZodLiteral<"render-id-determined">;
|
|
5
|
+
renderId: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
type: "render-id-determined";
|
|
8
|
+
renderId: string;
|
|
9
|
+
}, {
|
|
10
|
+
type: "render-id-determined";
|
|
11
|
+
renderId: string;
|
|
12
|
+
}>]>;
|
|
13
|
+
export type StreamingPayloads = z.infer<typeof streamingPayloadSchema>;
|
|
14
|
+
export declare const isStreamingPayload: (str: string) => false | {
|
|
15
|
+
type: "render-id-determined";
|
|
16
|
+
renderId: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const sendProgressEvent: (responseStream: ResponseStream, payload: StreamingPayloads) => void;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendProgressEvent = exports.isStreamingPayload = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const streamingPayloadSchema = zod_1.z.discriminatedUnion('type', [
|
|
6
|
+
zod_1.z.object({
|
|
7
|
+
type: zod_1.z.literal('render-id-determined'),
|
|
8
|
+
renderId: zod_1.z.string(),
|
|
9
|
+
}),
|
|
10
|
+
]);
|
|
11
|
+
const isStreamingPayload = (str) => {
|
|
12
|
+
try {
|
|
13
|
+
const parsed = JSON.parse(str);
|
|
14
|
+
return streamingPayloadSchema.parse(parsed);
|
|
15
|
+
}
|
|
16
|
+
catch (_a) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.isStreamingPayload = isStreamingPayload;
|
|
21
|
+
const sendProgressEvent = (responseStream, payload) => {
|
|
22
|
+
const stringified = JSON.stringify(payload);
|
|
23
|
+
responseStream.write(stringified);
|
|
24
|
+
};
|
|
25
|
+
exports.sendProgressEvent = sendProgressEvent;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProviderSpecifics } from '@remotion/serverless';
|
|
2
|
+
import type { FileNameAndSize } from '@remotion/serverless/client';
|
|
2
3
|
export type LambdaErrorInfo = {
|
|
3
4
|
type: 'renderer' | 'browser' | 'stitcher' | 'webhook' | 'artifact';
|
|
4
5
|
message: string;
|
|
@@ -15,7 +16,7 @@ export type LambdaErrorInfo = {
|
|
|
15
16
|
total: number;
|
|
16
17
|
} | null;
|
|
17
18
|
};
|
|
18
|
-
export declare const getTmpDirStateIfENoSp: (err: string) => LambdaErrorInfo['tmpDir'];
|
|
19
|
+
export declare const getTmpDirStateIfENoSp: <Region extends string>(err: string, providerSpecifics: ProviderSpecifics<Region>) => LambdaErrorInfo['tmpDir'];
|
|
19
20
|
export type EnhancedErrorInfo = LambdaErrorInfo & {
|
|
20
21
|
/**
|
|
21
22
|
* @deprecated Will always be an empty string.
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTmpDirStateIfENoSp = void 0;
|
|
4
|
-
const get_files_in_folder_1 = require("./get-files-in-folder");
|
|
5
4
|
const is_enosp_err_1 = require("./is-enosp-err");
|
|
6
|
-
const getTmpDirStateIfENoSp = (err) => {
|
|
5
|
+
const getTmpDirStateIfENoSp = (err, providerSpecifics) => {
|
|
7
6
|
if (!(0, is_enosp_err_1.errorIsOutOfSpaceError)(err)) {
|
|
8
7
|
return null;
|
|
9
8
|
}
|
|
10
|
-
const files =
|
|
9
|
+
const files = providerSpecifics.getFolderFiles('/tmp');
|
|
11
10
|
return {
|
|
12
11
|
files: files
|
|
13
12
|
.slice(0)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { PostRenderData } from '../../shared/constants';
|
|
3
|
+
export declare const writePostRenderData: ({ bucketName, renderId, postRenderData, expectedBucketOwner, region, }: {
|
|
4
|
+
bucketName: string;
|
|
5
|
+
renderId: string;
|
|
6
|
+
postRenderData: PostRenderData;
|
|
7
|
+
expectedBucketOwner: string;
|
|
8
|
+
region: AwsRegion;
|
|
9
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writePostRenderData = void 0;
|
|
4
|
+
const constants_1 = require("../../shared/constants");
|
|
5
|
+
const io_1 = require("./io");
|
|
6
|
+
const writePostRenderData = async ({ bucketName, renderId, postRenderData, expectedBucketOwner, region, }) => {
|
|
7
|
+
await (0, io_1.lambdaWriteFile)({
|
|
8
|
+
bucketName,
|
|
9
|
+
key: (0, constants_1.postRenderDataKey)(renderId),
|
|
10
|
+
privacy: 'private',
|
|
11
|
+
body: JSON.stringify(postRenderData),
|
|
12
|
+
expectedBucketOwner,
|
|
13
|
+
region,
|
|
14
|
+
downloadBehavior: null,
|
|
15
|
+
customCredentials: null,
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
exports.writePostRenderData = writePostRenderData;
|
package/dist/functions/launch.js
CHANGED
|
@@ -40,6 +40,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
40
40
|
serialized: params.inputProps,
|
|
41
41
|
propsType: 'input-props',
|
|
42
42
|
providerSpecifics,
|
|
43
|
+
forcePathStyle: params.forcePathStyle,
|
|
43
44
|
});
|
|
44
45
|
const logOptions = {
|
|
45
46
|
indent: false,
|
|
@@ -128,12 +129,14 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
128
129
|
userSpecifiedBucketName: params.bucketName,
|
|
129
130
|
needsToUpload,
|
|
130
131
|
providerSpecifics,
|
|
132
|
+
forcePathStyle: params.forcePathStyle,
|
|
131
133
|
});
|
|
132
134
|
registerCleanupTask(() => {
|
|
133
135
|
return (0, cleanup_props_1.cleanupProps)({
|
|
134
136
|
serializedResolvedProps,
|
|
135
137
|
inputProps: params.inputProps,
|
|
136
138
|
providerSpecifics,
|
|
139
|
+
forcePathStyle: params.forcePathStyle,
|
|
137
140
|
});
|
|
138
141
|
});
|
|
139
142
|
const fps = comp.fps / params.everyNthFrame;
|
|
@@ -188,6 +191,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
188
191
|
compositionStart: realFrameRange[0],
|
|
189
192
|
framesPerLambda,
|
|
190
193
|
progressEveryNthFrame,
|
|
194
|
+
forcePathStyle: params.forcePathStyle,
|
|
191
195
|
};
|
|
192
196
|
return payload;
|
|
193
197
|
});
|
|
@@ -237,6 +241,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
237
241
|
region: providerSpecifics.getCurrentRegionInFunction(),
|
|
238
242
|
currentRegion: providerSpecifics.getCurrentRegionInFunction(),
|
|
239
243
|
providerSpecifics,
|
|
244
|
+
forcePathStyle: params.forcePathStyle,
|
|
240
245
|
});
|
|
241
246
|
if (output) {
|
|
242
247
|
throw new TypeError(`Output file "${key}" in bucket "${renderBucketName}" in region "${providerSpecifics.getCurrentRegionInFunction()}" already exists. Delete it before re-rendering, or set the 'overwrite' option in renderMediaOnLambda() to overwrite it."`);
|
|
@@ -272,6 +277,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
272
277
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
273
278
|
downloadBehavior: params.downloadBehavior,
|
|
274
279
|
customCredentials,
|
|
280
|
+
forcePathStyle: params.forcePathStyle,
|
|
275
281
|
})
|
|
276
282
|
.then(() => {
|
|
277
283
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, `Wrote artifact to S3 in ${Date.now() - start}ms`);
|
|
@@ -342,6 +348,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
|
|
|
342
348
|
overallProgress,
|
|
343
349
|
startTime,
|
|
344
350
|
providerSpecifics,
|
|
351
|
+
forcePathStyle: params.forcePathStyle,
|
|
345
352
|
});
|
|
346
353
|
return postRenderData;
|
|
347
354
|
};
|
|
@@ -445,6 +452,7 @@ const launchHandler = async (params, options, providerSpecifics) => {
|
|
|
445
452
|
timeoutTimestamp: options.getRemainingTimeInMillis() + Date.now(),
|
|
446
453
|
logLevel: params.logLevel,
|
|
447
454
|
providerSpecifics,
|
|
455
|
+
forcePathStyle: params.forcePathStyle,
|
|
448
456
|
});
|
|
449
457
|
try {
|
|
450
458
|
const postRenderData = await innerLaunchHandler({
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LambdaPayload, PostRenderData } from '../defaults';
|
|
2
|
+
type Options = {
|
|
3
|
+
expectedBucketOwner: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const mergeHandler: (params: LambdaPayload, options: Options) => Promise<{
|
|
6
|
+
type: 'success';
|
|
7
|
+
postRenderData: PostRenderData;
|
|
8
|
+
}>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeHandler = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
const defaults_1 = require("../defaults");
|
|
6
|
+
const expected_out_name_1 = require("./helpers/expected-out-name");
|
|
7
|
+
const get_current_region_1 = require("./helpers/get-current-region");
|
|
8
|
+
const get_render_metadata_1 = require("./helpers/get-render-metadata");
|
|
9
|
+
const merge_chunks_1 = require("./helpers/merge-chunks");
|
|
10
|
+
const mergeHandler = async (params, options) => {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
if (params.type !== defaults_1.LambdaRoutines.merge) {
|
|
13
|
+
throw new Error('Expected launch type');
|
|
14
|
+
}
|
|
15
|
+
renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, 'This function has been started because the previous main function has timed out while merging together the chunks.');
|
|
16
|
+
renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, 'The merging of chunks will now restart.');
|
|
17
|
+
const renderMetadata = await (0, get_render_metadata_1.getRenderMetadata)({
|
|
18
|
+
bucketName: params.bucketName,
|
|
19
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
20
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
21
|
+
renderId: params.renderId,
|
|
22
|
+
});
|
|
23
|
+
if (!renderMetadata.codec) {
|
|
24
|
+
throw new Error('expected codec');
|
|
25
|
+
}
|
|
26
|
+
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
|
|
27
|
+
? null
|
|
28
|
+
: (_b = (_a = params.outName) === null || _a === void 0 ? void 0 : _a.s3OutputProvider) !== null && _b !== void 0 ? _b : null);
|
|
29
|
+
const frameCount = renderer_1.RenderInternals.getFramesToRender(renderMetadata.frameRange, renderMetadata.everyNthFrame);
|
|
30
|
+
const fps = renderMetadata.videoConfig.fps / renderMetadata.everyNthFrame;
|
|
31
|
+
const postRenderData = await (0, merge_chunks_1.mergeChunksAndFinishRender)({
|
|
32
|
+
audioCodec: renderMetadata.audioCodec,
|
|
33
|
+
bucketName: params.bucketName,
|
|
34
|
+
chunkCount: renderMetadata.totalChunks,
|
|
35
|
+
codec: renderMetadata.codec,
|
|
36
|
+
customCredentials,
|
|
37
|
+
downloadBehavior: renderMetadata.downloadBehavior,
|
|
38
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
39
|
+
fps,
|
|
40
|
+
numberOfFrames: frameCount.length,
|
|
41
|
+
inputProps: params.inputProps,
|
|
42
|
+
key,
|
|
43
|
+
numberOfGifLoops: renderMetadata.numberOfGifLoops,
|
|
44
|
+
privacy: renderMetadata.privacy,
|
|
45
|
+
renderBucketName,
|
|
46
|
+
renderId: params.renderId,
|
|
47
|
+
renderMetadata,
|
|
48
|
+
serializedResolvedProps: params.serializedResolvedProps,
|
|
49
|
+
onAllChunks: () => {
|
|
50
|
+
renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, 'All chunks have been downloaded now.');
|
|
51
|
+
},
|
|
52
|
+
audioBitrate: renderMetadata.audioBitrate,
|
|
53
|
+
logLevel: params.logLevel,
|
|
54
|
+
framesPerLambda: params.framesPerLambda,
|
|
55
|
+
binariesDirectory: null,
|
|
56
|
+
preferLossless: params.preferLossless,
|
|
57
|
+
compositionStart: params.compositionStart,
|
|
58
|
+
});
|
|
59
|
+
return { type: 'success', postRenderData };
|
|
60
|
+
};
|
|
61
|
+
exports.mergeHandler = mergeHandler;
|
|
@@ -25,6 +25,7 @@ const progressHandler = async (lambdaParams, options) => {
|
|
|
25
25
|
timeoutInMilliseconds: options.timeoutInMilliseconds,
|
|
26
26
|
customCredentials: (_a = lambdaParams.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
|
|
27
27
|
providerSpecifics: options.providerSpecifics,
|
|
28
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
28
29
|
});
|
|
29
30
|
return progress;
|
|
30
31
|
}
|
|
@@ -31,6 +31,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
|
|
|
31
31
|
serialized: params.inputProps,
|
|
32
32
|
propsType: 'input-props',
|
|
33
33
|
providerSpecifics,
|
|
34
|
+
forcePathStyle: params.forcePathStyle,
|
|
34
35
|
});
|
|
35
36
|
const resolvedPropsPromise = (0, client_1.decompressInputProps)({
|
|
36
37
|
bucketName: params.bucketName,
|
|
@@ -39,6 +40,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
|
|
|
39
40
|
serialized: params.resolvedProps,
|
|
40
41
|
propsType: 'resolved-props',
|
|
41
42
|
providerSpecifics,
|
|
43
|
+
forcePathStyle: params.forcePathStyle,
|
|
42
44
|
});
|
|
43
45
|
const browserInstance = await (0, serverless_1.getBrowserInstance)({
|
|
44
46
|
logLevel: params.logLevel,
|
package/dist/functions/start.js
CHANGED
|
@@ -24,6 +24,7 @@ const startHandler = async (params, options, providerSpecifics) => {
|
|
|
24
24
|
enableFolderExpiry: null,
|
|
25
25
|
customCredentials: null,
|
|
26
26
|
providerSpecifics,
|
|
27
|
+
forcePathStyle: params.forcePathStyle,
|
|
27
28
|
})).bucketName;
|
|
28
29
|
const realServeUrl = providerSpecifics.convertToServeUrl({
|
|
29
30
|
urlOrId: params.serveUrl,
|
|
@@ -40,6 +41,7 @@ const startHandler = async (params, options, providerSpecifics) => {
|
|
|
40
41
|
key: (0, client_1.overallProgressKey)(options.renderId),
|
|
41
42
|
privacy: 'private',
|
|
42
43
|
customCredentials: null,
|
|
44
|
+
forcePathStyle: params.forcePathStyle,
|
|
43
45
|
});
|
|
44
46
|
const payload = {
|
|
45
47
|
type: client_1.ServerlessRoutines.launch,
|
|
@@ -84,6 +86,7 @@ const startHandler = async (params, options, providerSpecifics) => {
|
|
|
84
86
|
deleteAfter: params.deleteAfter,
|
|
85
87
|
colorSpace: params.colorSpace,
|
|
86
88
|
preferLossless: params.preferLossless,
|
|
89
|
+
forcePathStyle: params.forcePathStyle,
|
|
87
90
|
};
|
|
88
91
|
const stringifiedPayload = JSON.stringify(payload);
|
|
89
92
|
if (stringifiedPayload.length > 256 * 1024) {
|
package/dist/functions/still.js
CHANGED
|
@@ -52,6 +52,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
52
52
|
enableFolderExpiry: null,
|
|
53
53
|
customCredentials: null,
|
|
54
54
|
providerSpecifics,
|
|
55
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
55
56
|
}).then((b) => b.bucketName);
|
|
56
57
|
const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
57
58
|
const outputPath = node_path_1.default.join(outputDir, 'output');
|
|
@@ -64,6 +65,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
64
65
|
serialized: lambdaParams.inputProps,
|
|
65
66
|
propsType: 'input-props',
|
|
66
67
|
providerSpecifics,
|
|
68
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
67
69
|
});
|
|
68
70
|
const serveUrl = providerSpecifics.convertToServeUrl({
|
|
69
71
|
urlOrId: lambdaParams.serveUrl,
|
|
@@ -138,6 +140,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
138
140
|
expectedBucketOwner,
|
|
139
141
|
downloadBehavior: null,
|
|
140
142
|
customCredentials: null,
|
|
143
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
141
144
|
});
|
|
142
145
|
const onBrowserDownload = () => {
|
|
143
146
|
throw new Error('Should not download a browser in Lambda');
|
|
@@ -167,6 +170,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
167
170
|
expectedBucketOwner,
|
|
168
171
|
downloadBehavior: lambdaParams.downloadBehavior,
|
|
169
172
|
customCredentials,
|
|
173
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
170
174
|
})
|
|
171
175
|
.then(() => {
|
|
172
176
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel: lambdaParams.logLevel }, `Wrote artifact to S3 in ${Date.now() - startTime}ms`);
|
|
@@ -221,6 +225,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
221
225
|
region: providerSpecifics.getCurrentRegionInFunction(),
|
|
222
226
|
downloadBehavior: lambdaParams.downloadBehavior,
|
|
223
227
|
customCredentials,
|
|
228
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
224
229
|
});
|
|
225
230
|
await Promise.all([
|
|
226
231
|
node_fs_1.default.promises.rm(outputPath, { recursive: true }),
|
|
@@ -228,6 +233,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
|
|
|
228
233
|
region: providerSpecifics.getCurrentRegionInFunction(),
|
|
229
234
|
serialized: lambdaParams.inputProps,
|
|
230
235
|
providerSpecifics,
|
|
236
|
+
forcePathStyle: lambdaParams.forcePathStyle,
|
|
231
237
|
}),
|
|
232
238
|
server.closeServer(true),
|
|
233
239
|
]);
|
package/dist/index.d.ts
CHANGED
|
@@ -49,11 +49,11 @@ declare const renderStillOnLambda: (input: RenderStillOnLambdaInput) => Promise<
|
|
|
49
49
|
/**
|
|
50
50
|
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
51
51
|
*/
|
|
52
|
-
declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
|
|
52
|
+
declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, forcePathStyle, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
|
|
53
53
|
/**
|
|
54
54
|
* @deprecated Import this from `@remotion/lambda/client` instead
|
|
55
55
|
*/
|
|
56
|
-
declare const getSites: ({ region, forceBucketName, }: GetSitesInput) => Promise<GetSitesOutput>;
|
|
56
|
+
declare const getSites: ({ region, forceBucketName, forcePathStyle, }: GetSitesInput) => Promise<GetSitesOutput>;
|
|
57
57
|
export { LambdaInternals, deleteFunction, deleteRender, deleteSite, deployFunction, deploySite, downloadMedia, estimatePrice, getAwsClient, getCompositionsOnLambda, getFunctionInfo, getFunctions, getOrCreateBucket, getRegions, getRenderProgress, getRolePolicy, getSites, getUserPolicy, presignUrl, renderMediaOnLambda, renderStillOnLambda, renderVideoOnLambda, simulatePermissions, validateWebhookSignature, };
|
|
58
58
|
export type { AwsRegion, CustomCredentials, DeleteFunctionInput, DeleteRenderInput, DeleteSiteInput, DeleteSiteOutput, DeployFunctionInput, DeployFunctionOutput, DeploySiteInput, DeploySiteOutput, DownloadMediaInput, DownloadMediaOutput, EnhancedErrorInfo, EstimatePriceInput, FunctionInfo, GetAwsClientInput, GetAwsClientOutput, GetCompositionsOnLambdaInput, GetCompositionsOnLambdaOutput, GetFunctionInfoInput, GetFunctionsInput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderProgressInput, GetSitesInput, GetSitesOutput, LambdaErrorInfo, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderProgress, RenderStillOnLambdaInput, RenderStillOnLambdaOutput, SimulatePermissionsInput, SimulatePermissionsOutput, WebhookPayload, };
|
|
59
59
|
export { _InternalAwsProvider, _InternalOverallRenderProgress };
|
package/dist/internals.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const LambdaInternals: {
|
|
2
|
-
executeCommand: (args: string[], remotionRoot: string, logLevel: "
|
|
3
|
-
makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, x264Preset, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, encodingMaxRate, encodingBufferSize, downloadBehavior, muted, overwrite, jpegQuality, offthreadVideoCacheSizeInBytes, deleteAfter, colorSpace, preferLossless, }: import("./api/make-lambda-payload").InnerRenderMediaOnLambdaInput) => Promise<import("@remotion/serverless/client").ServerlessStartPayload<import("./functions/aws-implementation").AwsProvider>>;
|
|
4
|
-
getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, logLevel, }: import("./client").GetRenderProgressInput) => import("@remotion/serverless/client").ServerlessStatusPayload<import("./functions/aws-implementation").AwsProvider>;
|
|
5
|
-
makeLambdaRenderStillPayload: ({ serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, offthreadVideoCacheSizeInBytes, deleteAfter, }: import("./api/render-still-on-lambda").RenderStillOnLambdaNonNullInput) => Promise<{
|
|
2
|
+
executeCommand: (args: string[], remotionRoot: string, logLevel: "error" | "verbose" | "info" | "warn", implementation: import("@remotion/serverless").ProviderSpecifics<import("./functions/aws-implementation").AwsProvider> | null) => Promise<void>;
|
|
3
|
+
makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, x264Preset, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, encodingMaxRate, encodingBufferSize, downloadBehavior, muted, overwrite, jpegQuality, offthreadVideoCacheSizeInBytes, deleteAfter, colorSpace, preferLossless, forcePathStyle, }: import("./api/make-lambda-payload").InnerRenderMediaOnLambdaInput) => Promise<import("@remotion/serverless/client").ServerlessStartPayload<import("./functions/aws-implementation").AwsProvider>>;
|
|
4
|
+
getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, logLevel, forcePathStyle, }: import("./client").GetRenderProgressInput) => import("@remotion/serverless/client").ServerlessStatusPayload<import("./functions/aws-implementation").AwsProvider>;
|
|
5
|
+
makeLambdaRenderStillPayload: ({ serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, offthreadVideoCacheSizeInBytes, deleteAfter, forcePathStyle, }: import("./api/render-still-on-lambda").RenderStillOnLambdaNonNullInput) => Promise<{
|
|
6
6
|
type: import("@remotion/serverless/client").ServerlessRoutines.still;
|
|
7
7
|
serveUrl: string;
|
|
8
8
|
composition: string;
|
|
@@ -14,7 +14,7 @@ export declare const LambdaInternals: {
|
|
|
14
14
|
maxRetries: number;
|
|
15
15
|
frame: number;
|
|
16
16
|
privacy: import("@remotion/serverless/client").Privacy;
|
|
17
|
-
logLevel: "
|
|
17
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
18
18
|
outName: import("@remotion/serverless/client").OutNameInput<import("./functions/aws-implementation").AwsProvider> | null;
|
|
19
19
|
timeoutInMilliseconds: number;
|
|
20
20
|
chromiumOptions: import("@remotion/renderer").ChromiumOptions;
|
|
@@ -27,16 +27,18 @@ export declare const LambdaInternals: {
|
|
|
27
27
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
28
28
|
deleteAfter: "1-day" | "3-days" | "7-days" | "30-days" | null;
|
|
29
29
|
streamed: boolean;
|
|
30
|
+
forcePathStyle: boolean;
|
|
30
31
|
}>;
|
|
31
32
|
internalDeploySite: (args_0: {
|
|
32
33
|
entryPoint: string;
|
|
33
34
|
bucketName: string;
|
|
34
|
-
region: "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-
|
|
35
|
+
region: "us-east-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-2" | "us-west-1" | "us-west-2" | "af-south-1" | "ap-south-1" | "ap-east-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "me-south-1" | "sa-east-1";
|
|
35
36
|
} & {
|
|
36
37
|
siteName: string;
|
|
37
38
|
options: {
|
|
38
39
|
onBundleProgress?: ((progress: number) => void) | undefined;
|
|
39
40
|
onUploadProgress?: ((upload: import("./api/upload-dir").UploadDirProgress) => void) | undefined;
|
|
41
|
+
onDiffingProgress?: ((bytes: number, done: boolean) => void) | undefined;
|
|
40
42
|
webpackOverride?: import("@remotion/bundler").WebpackOverrideFn | undefined;
|
|
41
43
|
ignoreRegisterRootWarning?: boolean | undefined;
|
|
42
44
|
enableCaching?: boolean | undefined;
|
|
@@ -47,6 +49,7 @@ export declare const LambdaInternals: {
|
|
|
47
49
|
privacy: "public" | "no-acl";
|
|
48
50
|
gitSource: import("@remotion/bundler").GitSource | null;
|
|
49
51
|
indent: boolean;
|
|
52
|
+
forcePathStyle: boolean;
|
|
50
53
|
} & import("@remotion/renderer").ToOptions<{
|
|
51
54
|
readonly logLevel: {
|
|
52
55
|
cliFlag: "log";
|
|
@@ -57,11 +60,11 @@ export declare const LambdaInternals: {
|
|
|
57
60
|
getValue: ({ commandLine }: {
|
|
58
61
|
commandLine: Record<string, unknown>;
|
|
59
62
|
}) => {
|
|
60
|
-
value: "
|
|
63
|
+
value: "error" | "verbose" | "info" | "warn";
|
|
61
64
|
source: string;
|
|
62
65
|
};
|
|
63
|
-
setConfig: (newLogLevel: "
|
|
64
|
-
type: "
|
|
66
|
+
setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
|
|
67
|
+
type: "error" | "verbose" | "info" | "warn";
|
|
65
68
|
};
|
|
66
69
|
readonly throwIfSiteExists: {
|
|
67
70
|
cliFlag: string;
|
package/dist/io/delete-file.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.lambdaDeleteFileImplementation = void 0;
|
|
4
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
5
|
const get_s3_client_1 = require("../shared/get-s3-client");
|
|
6
|
-
const lambdaDeleteFileImplementation = async ({ bucketName, key, region, customCredentials, }) => {
|
|
7
|
-
await (0, get_s3_client_1.getS3Client)(region, customCredentials).send(new client_s3_1.DeleteObjectCommand({
|
|
6
|
+
const lambdaDeleteFileImplementation = async ({ bucketName, key, region, customCredentials, forcePathStyle, }) => {
|
|
7
|
+
await (0, get_s3_client_1.getS3Client)({ region, customCredentials, forcePathStyle }).send(new client_s3_1.DeleteObjectCommand({
|
|
8
8
|
Bucket: bucketName,
|
|
9
9
|
Key: key,
|
|
10
10
|
}));
|
package/dist/io/head-file.js
CHANGED
|
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.lambdaHeadFileImplementation = void 0;
|
|
4
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
5
|
const get_s3_client_1 = require("../shared/get-s3-client");
|
|
6
|
-
const lambdaHeadFileImplementation = async ({ bucketName, key, region, customCredentials, }) => {
|
|
7
|
-
const head = await (0, get_s3_client_1.getS3Client)(
|
|
6
|
+
const lambdaHeadFileImplementation = async ({ bucketName, key, region, customCredentials, forcePathStyle, }) => {
|
|
7
|
+
const head = await (0, get_s3_client_1.getS3Client)({
|
|
8
|
+
region,
|
|
9
|
+
customCredentials,
|
|
10
|
+
forcePathStyle,
|
|
11
|
+
}).send(new client_s3_1.HeadObjectCommand({
|
|
8
12
|
Bucket: bucketName,
|
|
9
13
|
Key: key,
|
|
10
14
|
}));
|
package/dist/io/list-objects.js
CHANGED
|
@@ -3,10 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.lambdaLsImplementation = void 0;
|
|
4
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
5
|
const get_s3_client_1 = require("../shared/get-s3-client");
|
|
6
|
-
const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
|
|
6
|
+
const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, forcePathStyle, }) => {
|
|
7
7
|
var _a, _b, _c, _d;
|
|
8
8
|
try {
|
|
9
|
-
const list = await (0, get_s3_client_1.getS3Client)(
|
|
9
|
+
const list = await (0, get_s3_client_1.getS3Client)({
|
|
10
|
+
region,
|
|
11
|
+
customCredentials: null,
|
|
12
|
+
forcePathStyle,
|
|
13
|
+
}).send(new client_s3_1.ListObjectsV2Command({
|
|
10
14
|
Bucket: bucketName,
|
|
11
15
|
Prefix: prefix,
|
|
12
16
|
ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
|
|
@@ -28,6 +32,7 @@ const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBuck
|
|
|
28
32
|
expectedBucketOwner,
|
|
29
33
|
region,
|
|
30
34
|
continuationToken: list.NextContinuationToken,
|
|
35
|
+
forcePathStyle,
|
|
31
36
|
})),
|
|
32
37
|
];
|
|
33
38
|
}
|
|
@@ -46,7 +51,11 @@ const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBuck
|
|
|
46
51
|
}
|
|
47
52
|
// Prevent from accessing a foreign bucket, retry without ExpectedBucketOwner and see if it works. If it works then it's an owner mismatch.
|
|
48
53
|
if ((_d = err.stack) === null || _d === void 0 ? void 0 : _d.includes('AccessDenied')) {
|
|
49
|
-
await (0, get_s3_client_1.getS3Client)(
|
|
54
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
55
|
+
region,
|
|
56
|
+
customCredentials: null,
|
|
57
|
+
forcePathStyle,
|
|
58
|
+
}).send(new client_s3_1.ListObjectsV2Command({
|
|
50
59
|
Bucket: bucketName,
|
|
51
60
|
Prefix: prefix,
|
|
52
61
|
}));
|
package/dist/io/read-file.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { Readable } from 'stream';
|
|
3
3
|
import type { AwsRegion } from '../regions';
|
|
4
|
-
export declare const lambdaReadFileImplementation: ({ bucketName, key, region, expectedBucketOwner, }: {
|
|
4
|
+
export declare const lambdaReadFileImplementation: ({ bucketName, key, region, expectedBucketOwner, forcePathStyle, }: {
|
|
5
5
|
bucketName: string;
|
|
6
6
|
key: string;
|
|
7
7
|
region: AwsRegion;
|
|
8
8
|
expectedBucketOwner: string;
|
|
9
|
+
forcePathStyle: boolean;
|
|
9
10
|
}) => Promise<Readable>;
|
package/dist/io/read-file.js
CHANGED
|
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.lambdaReadFileImplementation = void 0;
|
|
4
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
5
|
const get_s3_client_1 = require("../shared/get-s3-client");
|
|
6
|
-
const lambdaReadFileImplementation = async ({ bucketName, key, region, expectedBucketOwner, }) => {
|
|
7
|
-
const { Body } = await (0, get_s3_client_1.getS3Client)(
|
|
6
|
+
const lambdaReadFileImplementation = async ({ bucketName, key, region, expectedBucketOwner, forcePathStyle, }) => {
|
|
7
|
+
const { Body } = await (0, get_s3_client_1.getS3Client)({
|
|
8
|
+
region,
|
|
9
|
+
customCredentials: null,
|
|
10
|
+
forcePathStyle,
|
|
11
|
+
}).send(new client_s3_1.GetObjectCommand({
|
|
8
12
|
Bucket: bucketName,
|
|
9
13
|
Key: key,
|
|
10
14
|
ExpectedBucketOwner: expectedBucketOwner,
|
package/dist/io/write-file.js
CHANGED
|
@@ -8,8 +8,12 @@ const client_s3_1 = require("@aws-sdk/client-s3");
|
|
|
8
8
|
const mime_types_1 = __importDefault(require("mime-types"));
|
|
9
9
|
const content_disposition_header_1 = require("../shared/content-disposition-header");
|
|
10
10
|
const get_s3_client_1 = require("../shared/get-s3-client");
|
|
11
|
-
const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
|
|
12
|
-
await (0, get_s3_client_1.getS3Client)(
|
|
11
|
+
const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, forcePathStyle, }) => {
|
|
12
|
+
await (0, get_s3_client_1.getS3Client)({
|
|
13
|
+
region,
|
|
14
|
+
customCredentials: customCredentials,
|
|
15
|
+
forcePathStyle,
|
|
16
|
+
}).send(new client_s3_1.PutObjectCommand({
|
|
13
17
|
Bucket: bucketName,
|
|
14
18
|
Key: key,
|
|
15
19
|
Body: body,
|
|
@@ -6,8 +6,8 @@ const readDirectory = ({ dir }) => {
|
|
|
6
6
|
const files = (0, upload_dir_1.getDirFiles)(dir);
|
|
7
7
|
const obj = {};
|
|
8
8
|
for (const file of files) {
|
|
9
|
-
obj[file.name] = 'etag';
|
|
9
|
+
obj[file.name] = () => Promise.resolve('etag');
|
|
10
10
|
}
|
|
11
|
-
return
|
|
11
|
+
return obj;
|
|
12
12
|
};
|
|
13
13
|
exports.readDirectory = readDirectory;
|