@remotion/lambda 4.0.0-tts.8 → 4.0.0-umungobongo.3
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/admin/bundle-lambda.js +1 -0
- package/dist/admin/make-layer-public.js +2 -2
- package/dist/api/bucket-exists.d.ts +1 -1
- package/dist/api/clean-items.d.ts +1 -1
- package/dist/api/create-bucket.d.ts +1 -1
- package/dist/api/create-function.d.ts +2 -2
- package/dist/api/delete-function.d.ts +1 -1
- package/dist/api/delete-site.d.ts +1 -1
- package/dist/api/deploy-function.d.ts +2 -2
- package/dist/api/deploy-site.d.ts +3 -3
- package/dist/api/deploy-site.js +2 -3
- package/dist/api/download-media.d.ts +2 -2
- package/dist/api/enable-s3-website.d.ts +1 -1
- package/dist/api/estimate-price.d.ts +2 -2
- package/dist/api/get-aws-client.d.ts +2 -2
- package/dist/api/get-buckets.d.ts +1 -1
- package/dist/api/get-function-info.d.ts +2 -2
- package/dist/api/get-functions.d.ts +2 -2
- package/dist/api/get-or-create-bucket.d.ts +1 -1
- package/dist/api/get-regions.d.ts +1 -1
- package/dist/api/get-render-progress.d.ts +2 -2
- package/dist/api/get-sites.d.ts +2 -2
- package/dist/api/iam-validation/role-permissions.d.ts +2 -1
- package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
- package/dist/api/iam-validation/simulate.d.ts +2 -2
- package/dist/api/mock-functions.d.ts +3 -3
- package/dist/api/presign-url.d.ts +3 -2
- package/dist/api/render-media-on-lambda.d.ts +13 -8
- package/dist/api/render-media-on-lambda.js +12 -5
- package/dist/api/render-still-on-lambda.d.ts +8 -7
- package/dist/api/render-still-on-lambda.js +4 -4
- package/dist/api/upload-dir.d.ts +2 -2
- package/dist/api/upload-dir.js +5 -1
- package/dist/cli/args.d.ts +4 -3
- package/dist/cli/commands/render/progress.d.ts +4 -4
- package/dist/cli/commands/render/progress.js +11 -3
- package/dist/cli/commands/render/render.js +13 -3
- package/dist/cli/commands/sites/create.js +2 -3
- package/dist/cli/commands/sites/ls.js +1 -2
- package/dist/cli/commands/sites/rm.js +2 -3
- package/dist/cli/commands/sites/rmall.js +2 -3
- package/dist/cli/commands/still.js +1 -2
- package/dist/cli/get-aws-region.d.ts +1 -1
- package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +2 -2
- package/dist/cli/helpers/progress-bar.js +1 -2
- package/dist/cli/index.js +1 -1
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
- package/dist/functions/chunk-optimization/collect-data.d.ts +1 -1
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/get-profile-duration.d.ts +1 -1
- package/dist/functions/chunk-optimization/is-valid-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/is-valid-profile.js +2 -2
- package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +1 -1
- package/dist/functions/chunk-optimization/optimize-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +3 -3
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -6
- package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +2 -2
- package/dist/functions/chunk-optimization/s3-optimization-file.js +1 -0
- package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +1 -1
- package/dist/functions/chunk-optimization/sort-by-duration.d.ts +1 -1
- package/dist/functions/chunk-optimization/types.d.ts +2 -1
- package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
- package/dist/functions/helpers/concat-videos.d.ts +5 -4
- package/dist/functions/helpers/concat-videos.js +2 -1
- package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
- package/dist/functions/helpers/create-post-render-data.js +12 -7
- package/dist/functions/helpers/delete-chunks.d.ts +3 -3
- package/dist/functions/helpers/expected-out-name.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -2
- package/dist/functions/helpers/find-output-file-in-bucket.js +4 -0
- package/dist/functions/helpers/format-costs-info.d.ts +1 -1
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
- package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
- package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
- package/dist/functions/helpers/get-encoding-metadata.d.ts +2 -2
- package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -2
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +8 -3
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +7 -7
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +1 -1
- package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
- package/dist/functions/helpers/get-progress.d.ts +2 -2
- package/dist/functions/helpers/get-progress.js +18 -10
- package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
- package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
- package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
- package/dist/functions/helpers/inspect-errors.d.ts +3 -3
- package/dist/functions/helpers/io.d.ts +8 -6
- package/dist/functions/helpers/io.js +8 -2
- package/dist/functions/helpers/min-max.d.ts +1 -1
- package/dist/functions/helpers/min-max.js +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +2 -2
- package/dist/functions/helpers/read-with-progress.d.ts +3 -2
- package/dist/functions/helpers/read-with-progress.js +13 -1
- package/dist/functions/helpers/validate-composition.d.ts +5 -4
- package/dist/functions/helpers/validate-composition.js +2 -1
- package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
- package/dist/functions/helpers/write-lambda-error.js +1 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
- package/dist/functions/helpers/write-post-render-data.js +1 -0
- package/dist/functions/index.d.ts +3 -2
- package/dist/functions/index.js +12 -5
- package/dist/functions/info.d.ts +1 -1
- package/dist/functions/launch.d.ts +1 -1
- package/dist/functions/launch.js +37 -19
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +18 -11
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +5 -2
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +12 -6
- package/dist/index.d.ts +33 -18
- package/dist/pricing/price-per-1-s.d.ts +1 -1
- package/dist/shared/aws-clients.d.ts +1 -1
- package/dist/shared/bundle-site.d.ts +1 -6
- package/dist/shared/call-lambda.d.ts +3 -3
- package/dist/shared/check-credentials.js +2 -2
- package/dist/shared/constants.d.ts +29 -13
- package/dist/shared/constants.js +2 -2
- package/dist/shared/content-disposition-header.d.ts +7 -0
- package/dist/shared/content-disposition-header.js +19 -0
- package/dist/shared/convert-to-serve-url.d.ts +1 -1
- package/dist/shared/get-account-id.d.ts +1 -1
- package/dist/shared/get-function-version.d.ts +2 -2
- package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
- package/dist/shared/get-most-expensive-chunks.js +25 -0
- package/dist/shared/hosted-layers.d.ts +2 -2
- package/dist/shared/hosted-layers.js +60 -60
- package/dist/shared/make-s3-url.d.ts +1 -1
- package/dist/shared/return-values.d.ts +7 -7
- package/dist/shared/return-values.js +0 -1
- package/dist/shared/stream-to-string.d.ts +1 -1
- package/dist/shared/truthy.d.ts +3 -0
- package/dist/shared/truthy.js +7 -0
- package/dist/shared/validate-aws-region.d.ts +1 -1
- package/dist/shared/validate-download-behavior.d.ts +1 -0
- package/dist/shared/validate-download-behavior.js +21 -0
- package/dist/shared/validate-lambda-codec.d.ts +4 -0
- package/dist/shared/validate-lambda-codec.js +30 -0
- package/dist/shared/validate-outname.d.ts +1 -1
- package/dist/shared/validate-presign-expiration.d.ts +0 -2
- package/dist/shared/validate-presign-expiration.js +7 -7
- package/dist/shared/validate-privacy.d.ts +1 -1
- package/dist/shared/validate-privacy.js +2 -2
- package/package.json +8 -10
- package/remotionlambda.zip +0 -0
- package/dist/cli/helpers/format-bytes.d.ts +0 -6
- package/dist/cli/helpers/format-bytes.js +0 -103
- package/dist/shared/chunk.d.ts +0 -1
- package/dist/shared/chunk.js +0 -11
|
@@ -8,7 +8,6 @@ const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const remotion_1 = require("remotion");
|
|
12
11
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
13
12
|
const constants_1 = require("../shared/constants");
|
|
14
13
|
const clean_tmpdir_1 = require("./helpers/clean-tmpdir");
|
|
@@ -23,8 +22,7 @@ const renderHandler = async (params, options, logs) => {
|
|
|
23
22
|
if (params.type !== constants_1.LambdaRoutines.renderer) {
|
|
24
23
|
throw new Error('Params must be renderer');
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(remotion_1.Internals.Logging.isEqualOrBelowLogLevel(params.logLevel, 'verbose'), (_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {});
|
|
25
|
+
const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'), (_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {});
|
|
28
26
|
const outputPath = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
29
27
|
if (typeof params.chunk !== 'number') {
|
|
30
28
|
throw new Error('must pass chunk');
|
|
@@ -41,6 +39,8 @@ const renderHandler = async (params, options, logs) => {
|
|
|
41
39
|
};
|
|
42
40
|
const outdir = renderer_1.RenderInternals.tmpDir(constants_1.RENDERER_PATH_TOKEN);
|
|
43
41
|
const outputLocation = path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(params.codec, 'chunk')}`);
|
|
42
|
+
const chunkCodec = params.codec === 'gif' ? 'h264-mkv' : params.codec;
|
|
43
|
+
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
44
44
|
await (0, renderer_1.renderMedia)({
|
|
45
45
|
composition: {
|
|
46
46
|
id: params.composition,
|
|
@@ -54,16 +54,16 @@ const renderHandler = async (params, options, logs) => {
|
|
|
54
54
|
frameRange: params.frameRange,
|
|
55
55
|
onProgress: ({ renderedFrames, encodedFrames, stitchStage }) => {
|
|
56
56
|
if (renderedFrames % 10 === 0 &&
|
|
57
|
-
|
|
57
|
+
renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')) {
|
|
58
58
|
console.log(`Rendered ${renderedFrames} frames, encoded ${encodedFrames} frames, stage = ${stitchStage}`);
|
|
59
59
|
}
|
|
60
|
-
const
|
|
61
|
-
if (renderedFrames ===
|
|
60
|
+
const allFrames = renderer_1.RenderInternals.getFramesToRender(params.frameRange, params.everyNthFrame);
|
|
61
|
+
if (renderedFrames === allFrames.length) {
|
|
62
62
|
console.log('Rendered all frames!');
|
|
63
63
|
}
|
|
64
64
|
chunkTimingData.timings[renderedFrames] = Date.now() - start;
|
|
65
65
|
},
|
|
66
|
-
parallelism:
|
|
66
|
+
parallelism: params.concurrencyPerLambda,
|
|
67
67
|
onStart: () => {
|
|
68
68
|
(0, io_1.lambdaWriteFile)({
|
|
69
69
|
privacy: 'private',
|
|
@@ -83,18 +83,20 @@ const renderHandler = async (params, options, logs) => {
|
|
|
83
83
|
}),
|
|
84
84
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
85
85
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
86
|
+
downloadBehavior: null,
|
|
86
87
|
});
|
|
87
88
|
},
|
|
88
89
|
puppeteerInstance: browserInstance,
|
|
89
90
|
serveUrl: params.serveUrl,
|
|
90
91
|
quality: params.quality,
|
|
91
92
|
envVariables: params.envVariables,
|
|
92
|
-
dumpBrowserLogs:
|
|
93
|
+
dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
94
|
+
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
93
95
|
onBrowserLog: (log) => {
|
|
94
96
|
logs.push(log);
|
|
95
97
|
},
|
|
96
98
|
outputLocation,
|
|
97
|
-
codec:
|
|
99
|
+
codec: chunkCodec,
|
|
98
100
|
crf: (_b = params.crf) !== null && _b !== void 0 ? _b : undefined,
|
|
99
101
|
ffmpegExecutable: process.env.NODE_ENV === 'test' ? null : '/opt/bin/ffmpeg',
|
|
100
102
|
pixelFormat: params.pixelFormat,
|
|
@@ -108,6 +110,9 @@ const renderHandler = async (params, options, logs) => {
|
|
|
108
110
|
scale: params.scale,
|
|
109
111
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
110
112
|
port: null,
|
|
113
|
+
everyNthFrame: params.everyNthFrame,
|
|
114
|
+
numberOfGifLoops: null,
|
|
115
|
+
downloadMap,
|
|
111
116
|
});
|
|
112
117
|
const endRendered = Date.now();
|
|
113
118
|
console.log('Adding silent audio, chunk', params.chunk);
|
|
@@ -125,6 +130,7 @@ const renderHandler = async (params, options, logs) => {
|
|
|
125
130
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
126
131
|
privacy: params.privacy,
|
|
127
132
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
133
|
+
downloadBehavior: null,
|
|
128
134
|
});
|
|
129
135
|
await Promise.all([
|
|
130
136
|
fs_1.default.promises.rm(outputLocation, { recursive: true }),
|
|
@@ -132,15 +138,16 @@ const renderHandler = async (params, options, logs) => {
|
|
|
132
138
|
(0, io_1.lambdaWriteFile)({
|
|
133
139
|
bucketName: params.bucketName,
|
|
134
140
|
body: JSON.stringify(condensedTimingData, null, 2),
|
|
135
|
-
key:
|
|
141
|
+
key: (0, constants_1.lambdaTimingsKey)({
|
|
136
142
|
renderId: params.renderId,
|
|
137
143
|
chunk: params.chunk,
|
|
138
144
|
rendered: endRendered,
|
|
139
145
|
start,
|
|
140
|
-
})
|
|
146
|
+
}),
|
|
141
147
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
142
148
|
privacy: 'private',
|
|
143
149
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
150
|
+
downloadBehavior: null,
|
|
144
151
|
}),
|
|
145
152
|
]);
|
|
146
153
|
};
|
package/dist/functions/start.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.startHandler = void 0;
|
|
4
4
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
-
const remotion_1 = require("remotion");
|
|
6
5
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
7
6
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
8
7
|
const constants_1 = require("../shared/constants");
|
|
@@ -34,12 +33,16 @@ const startHandler = async (params) => {
|
|
|
34
33
|
quality: params.quality,
|
|
35
34
|
maxRetries: params.maxRetries,
|
|
36
35
|
privacy: params.privacy,
|
|
37
|
-
logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a :
|
|
36
|
+
logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a : 'info',
|
|
38
37
|
frameRange: params.frameRange,
|
|
39
38
|
outName: params.outName,
|
|
40
39
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
41
40
|
chromiumOptions: params.chromiumOptions,
|
|
42
41
|
scale: params.scale,
|
|
42
|
+
numberOfGifLoops: params.numberOfGifLoops,
|
|
43
|
+
everyNthFrame: params.everyNthFrame,
|
|
44
|
+
concurrencyPerLambda: params.concurrencyPerLambda,
|
|
45
|
+
downloadBehavior: params.downloadBehavior,
|
|
43
46
|
};
|
|
44
47
|
await (0, aws_clients_1.getLambdaClient)((0, get_current_region_1.getCurrentRegionInFunction)()).send(new client_lambda_1.InvokeCommand({
|
|
45
48
|
FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME,
|
package/dist/functions/still.js
CHANGED
|
@@ -8,13 +8,13 @@ const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const remotion_1 = require("remotion");
|
|
12
11
|
const estimate_price_1 = require("../api/estimate-price");
|
|
13
12
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
14
13
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
15
14
|
const constants_1 = require("../shared/constants");
|
|
16
15
|
const make_s3_url_1 = require("../shared/make-s3-url");
|
|
17
16
|
const random_hash_1 = require("../shared/random-hash");
|
|
17
|
+
const validate_download_behavior_1 = require("../shared/validate-download-behavior");
|
|
18
18
|
const validate_outname_1 = require("../shared/validate-outname");
|
|
19
19
|
const validate_privacy_1 = require("../shared/validate-privacy");
|
|
20
20
|
const expected_out_name_1 = require("./helpers/expected-out-name");
|
|
@@ -27,10 +27,11 @@ const io_1 = require("./helpers/io");
|
|
|
27
27
|
const validate_composition_1 = require("./helpers/validate-composition");
|
|
28
28
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
29
29
|
const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
30
|
-
var _a, _b
|
|
30
|
+
var _a, _b;
|
|
31
31
|
if (lambdaParams.type !== constants_1.LambdaRoutines.still) {
|
|
32
32
|
throw new TypeError('Expected still type');
|
|
33
33
|
}
|
|
34
|
+
(0, validate_download_behavior_1.validateDownloadBehavior)(lambdaParams.downloadBehavior);
|
|
34
35
|
(0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy);
|
|
35
36
|
(0, validate_outname_1.validateOutname)(lambdaParams.outName);
|
|
36
37
|
const start = Date.now();
|
|
@@ -38,10 +39,11 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
38
39
|
(0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
39
40
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
40
41
|
}),
|
|
41
|
-
(0, get_browser_instance_1.getBrowserInstance)(
|
|
42
|
+
(0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose'), (_a = lambdaParams.chromiumOptions) !== null && _a !== void 0 ? _a : {}),
|
|
42
43
|
]);
|
|
43
44
|
const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
44
45
|
const outputPath = path_1.default.join(outputDir, 'output');
|
|
46
|
+
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
45
47
|
const composition = await (0, validate_composition_1.validateComposition)({
|
|
46
48
|
serveUrl: lambdaParams.serveUrl,
|
|
47
49
|
browserInstance,
|
|
@@ -53,6 +55,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
53
55
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
54
56
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
55
57
|
port: null,
|
|
58
|
+
downloadMap,
|
|
56
59
|
});
|
|
57
60
|
const renderMetadata = {
|
|
58
61
|
startedDate: Date.now(),
|
|
@@ -72,7 +75,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
72
75
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
73
76
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
74
77
|
renderId,
|
|
75
|
-
outName: (
|
|
78
|
+
outName: (_b = lambdaParams.outName) !== null && _b !== void 0 ? _b : undefined,
|
|
76
79
|
};
|
|
77
80
|
await (0, io_1.lambdaWriteFile)({
|
|
78
81
|
bucketName,
|
|
@@ -81,6 +84,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
81
84
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
82
85
|
privacy: 'private',
|
|
83
86
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
87
|
+
downloadBehavior: null,
|
|
84
88
|
});
|
|
85
89
|
await (0, renderer_1.renderStill)({
|
|
86
90
|
composition,
|
|
@@ -97,16 +101,18 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
97
101
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
98
102
|
scale: lambdaParams.scale,
|
|
99
103
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
104
|
+
downloadMap,
|
|
100
105
|
});
|
|
101
|
-
const { key
|
|
106
|
+
const { key, renderBucketName } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName);
|
|
102
107
|
const { size } = await fs_1.default.promises.stat(outputPath);
|
|
103
108
|
await (0, io_1.lambdaWriteFile)({
|
|
104
109
|
bucketName: renderBucketName,
|
|
105
|
-
key
|
|
110
|
+
key,
|
|
106
111
|
privacy: lambdaParams.privacy,
|
|
107
112
|
body: fs_1.default.createReadStream(outputPath),
|
|
108
113
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
109
114
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
115
|
+
downloadBehavior: lambdaParams.downloadBehavior,
|
|
110
116
|
});
|
|
111
117
|
await fs_1.default.promises.rm(outputPath, { recursive: true });
|
|
112
118
|
const estimatedPrice = (0, estimate_price_1.estimatePrice)({
|
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,40 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
1
|
+
import type { DeleteFunctionInput } from './api/delete-function';
|
|
2
|
+
import { deleteFunction } from './api/delete-function';
|
|
3
|
+
import type { DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
|
|
4
|
+
import { deleteSite } from './api/delete-site';
|
|
5
|
+
import type { DeployFunctionInput, DeployFunctionOutput } from './api/deploy-function';
|
|
6
|
+
import { deployFunction } from './api/deploy-function';
|
|
7
|
+
import type { DeploySiteInput, DeploySiteOutput } from './api/deploy-site';
|
|
8
|
+
import { deploySite } from './api/deploy-site';
|
|
9
|
+
import type { DownloadMediaInput, DownloadMediaOutput } from './api/download-media';
|
|
10
|
+
import { downloadMedia, downloadVideo } from './api/download-media';
|
|
11
|
+
import type { EstimatePriceInput } from './api/estimate-price';
|
|
12
|
+
import { estimatePrice } from './api/estimate-price';
|
|
13
|
+
import type { GetAwsClientInput, GetAwsClientOutput } from './api/get-aws-client';
|
|
14
|
+
import { getAwsClient } from './api/get-aws-client';
|
|
15
|
+
import type { FunctionInfo, GetFunctionInfoInput } from './api/get-function-info';
|
|
16
|
+
import { getFunctionInfo } from './api/get-function-info';
|
|
17
|
+
import type { GetFunctionsInput } from './api/get-functions';
|
|
18
|
+
import { getFunctions } from './api/get-functions';
|
|
19
|
+
import type { GetOrCreateBucketInput, GetOrCreateBucketOutput } from './api/get-or-create-bucket';
|
|
20
|
+
import { getOrCreateBucket } from './api/get-or-create-bucket';
|
|
11
21
|
import { getRegions } from './api/get-regions';
|
|
12
|
-
import { GetRenderInput
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
22
|
+
import type { GetRenderInput } from './api/get-render-progress';
|
|
23
|
+
import { getRenderProgress } from './api/get-render-progress';
|
|
24
|
+
import type { GetSitesInput, GetSitesOutput } from './api/get-sites';
|
|
25
|
+
import { getSites } from './api/get-sites';
|
|
26
|
+
import type { SimulatePermissionsInput, SimulatePermissionsOutput } from './api/iam-validation/simulate';
|
|
27
|
+
import { simulatePermissions } from './api/iam-validation/simulate';
|
|
15
28
|
import { getRolePolicy, getUserPolicy } from './api/iam-validation/suggested-policy';
|
|
16
29
|
import { presignUrl } from './api/presign-url';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
30
|
+
import type { RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput } from './api/render-media-on-lambda';
|
|
31
|
+
import { renderMediaOnLambda, renderVideoOnLambda } from './api/render-media-on-lambda';
|
|
32
|
+
import type { RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from './api/render-still-on-lambda';
|
|
33
|
+
import { renderStillOnLambda } from './api/render-still-on-lambda';
|
|
34
|
+
import type { LambdaLSInput, LambdaLsReturnType } from './functions/helpers/io';
|
|
20
35
|
import { LambdaInternals } from './internals';
|
|
21
|
-
import { AwsRegion } from './pricing/aws-regions';
|
|
36
|
+
import type { AwsRegion } from './pricing/aws-regions';
|
|
22
37
|
import type { RenderProgress } from './shared/constants';
|
|
23
|
-
import { LambdaArchitecture } from './shared/validate-architecture';
|
|
38
|
+
import type { LambdaArchitecture } from './shared/validate-architecture';
|
|
24
39
|
export { deleteSite, deployFunction, deploySite, downloadMedia, downloadVideo, getFunctions, getUserPolicy, getRolePolicy, getSites, getOrCreateBucket, getRenderProgress, renderVideoOnLambda, renderMediaOnLambda, simulatePermissions, deleteFunction, getFunctionInfo, estimatePrice, LambdaInternals, renderStillOnLambda, getRegions, getAwsClient, presignUrl, };
|
|
25
40
|
export type { AwsRegion, RenderProgress, DeploySiteInput, DeploySiteOutput, LambdaLsReturnType, LambdaLSInput, DeleteSiteInput, DeleteSiteOutput, EstimatePriceInput, DeployFunctionInput, DeployFunctionOutput, DeleteFunctionInput, GetFunctionInfoInput, FunctionInfo, GetFunctionsInput, GetSitesInput, GetSitesOutput, DownloadMediaInput, DownloadMediaOutput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderInput, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderStillOnLambdaInput, RenderStillOnLambdaOutput, SimulatePermissionsInput, SimulatePermissionsOutput, GetAwsClientInput, GetAwsClientOutput, LambdaArchitecture, };
|
|
@@ -3,7 +3,7 @@ import { IAMClient } from '@aws-sdk/client-iam';
|
|
|
3
3
|
import { LambdaClient } from '@aws-sdk/client-lambda';
|
|
4
4
|
import { S3Client } from '@aws-sdk/client-s3';
|
|
5
5
|
import { ServiceQuotasClient } from '@aws-sdk/client-service-quotas';
|
|
6
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
6
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
7
7
|
export declare type ServiceMapping = {
|
|
8
8
|
s3: S3Client;
|
|
9
9
|
cloudwatch: CloudWatchLogsClient;
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
export declare const bundleSite: (entryPoint: string, onProgressUpdate?: ((progress: number) => void) | undefined, options?:
|
|
2
|
-
webpackOverride?: import("remotion").WebpackOverrideFn | undefined;
|
|
3
|
-
outDir?: string | undefined;
|
|
4
|
-
enableCaching?: boolean | undefined;
|
|
5
|
-
publicPath?: string | undefined;
|
|
6
|
-
} | undefined) => Promise<string>;
|
|
1
|
+
export declare const bundleSite: (entryPoint: string, onProgressUpdate?: ((progress: number) => void) | undefined, options?: import("@remotion/bundler").BundleOptions | undefined) => Promise<string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaPayloads, LambdaRoutines } from './constants';
|
|
3
|
-
import { LambdaReturnValues } from './return-values';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaPayloads, LambdaRoutines } from './constants';
|
|
3
|
+
import type { LambdaReturnValues } from './return-values';
|
|
4
4
|
export declare const callLambda: <T extends LambdaRoutines>({ functionName, type, payload, region, }: {
|
|
5
5
|
functionName: string;
|
|
6
6
|
type: T;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkCredentials = void 0;
|
|
4
|
-
const remotion_1 = require("remotion");
|
|
5
4
|
const is_cli_1 = require("../cli/is-cli");
|
|
6
5
|
const docs_url_1 = require("./docs-url");
|
|
6
|
+
const truthy_1 = require("./truthy");
|
|
7
7
|
const messageForVariable = (variable) => {
|
|
8
8
|
return [
|
|
9
9
|
`You have tried to call a Remotion Lambda function, but have not set the environment variable ${variable}.`,
|
|
@@ -13,7 +13,7 @@ const messageForVariable = (variable) => {
|
|
|
13
13
|
`- Please refer to the Remotion Lambda docs (${docs_url_1.DOCS_URL}/docs/lambda/setup) to see how to generate the credentials for your AWS account and then set the environment variables.`,
|
|
14
14
|
`- For more reasons see the troubleshooting page: ${docs_url_1.DOCS_URL}/docs/lambda/troubleshooting/permissions`,
|
|
15
15
|
]
|
|
16
|
-
.filter(
|
|
16
|
+
.filter(truthy_1.truthy)
|
|
17
17
|
.join('\n');
|
|
18
18
|
};
|
|
19
19
|
const checkCredentials = () => {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { ChromiumOptions } from '@remotion/renderer';
|
|
2
|
-
import {
|
|
3
|
-
import { ChunkRetry } from '../functions/helpers/get-retry-stats';
|
|
4
|
-
import { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
|
|
5
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
6
|
-
import {
|
|
1
|
+
import type { ChromiumOptions, Codec, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
|
|
2
|
+
import type { VideoConfig } from 'remotion';
|
|
3
|
+
import type { ChunkRetry } from '../functions/helpers/get-retry-stats';
|
|
4
|
+
import type { EnhancedErrorInfo } from '../functions/helpers/write-lambda-error';
|
|
5
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
6
|
+
import type { DownloadBehavior } from './content-disposition-header';
|
|
7
|
+
import type { ExpensiveChunk } from './get-most-expensive-chunks';
|
|
8
|
+
import type { LambdaArchitecture } from './validate-architecture';
|
|
9
|
+
import type { LambdaCodec } from './validate-lambda-codec';
|
|
7
10
|
export declare const MIN_MEMORY = 512;
|
|
8
11
|
export declare const MAX_MEMORY = 10240;
|
|
9
12
|
export declare const DEFAULT_MEMORY_SIZE = 2048;
|
|
@@ -18,7 +21,7 @@ export declare const COMMAND_NOT_FOUND = "Command not found";
|
|
|
18
21
|
export declare const DEFAULT_REGION: AwsRegion;
|
|
19
22
|
export declare const DEFAULT_MAX_RETRIES = 1;
|
|
20
23
|
export declare const MAX_FUNCTIONS_PER_RENDER = 200;
|
|
21
|
-
export declare const DEFAULT_EPHEMERAL_STORAGE_IN_MB =
|
|
24
|
+
export declare const DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
|
|
22
25
|
export declare const MIN_EPHEMERAL_STORAGE_IN_MB = 512;
|
|
23
26
|
export declare const MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
|
|
24
27
|
export declare const DEFAULT_OUTPUT_PRIVACY: Privacy;
|
|
@@ -91,7 +94,7 @@ export declare type LambdaPayloads = {
|
|
|
91
94
|
composition: string;
|
|
92
95
|
framesPerLambda: number | null;
|
|
93
96
|
inputProps: unknown;
|
|
94
|
-
codec:
|
|
97
|
+
codec: LambdaCodec;
|
|
95
98
|
imageFormat: ImageFormat;
|
|
96
99
|
crf: number | undefined;
|
|
97
100
|
envVariables: Record<string, string> | undefined;
|
|
@@ -106,6 +109,10 @@ export declare type LambdaPayloads = {
|
|
|
106
109
|
timeoutInMilliseconds: number;
|
|
107
110
|
chromiumOptions: ChromiumOptions;
|
|
108
111
|
scale: number;
|
|
112
|
+
everyNthFrame: number;
|
|
113
|
+
numberOfGifLoops: number | null;
|
|
114
|
+
concurrencyPerLambda: number;
|
|
115
|
+
downloadBehavior: DownloadBehavior;
|
|
109
116
|
};
|
|
110
117
|
launch: {
|
|
111
118
|
type: LambdaRoutines.launch;
|
|
@@ -116,7 +123,7 @@ export declare type LambdaPayloads = {
|
|
|
116
123
|
inputProps: unknown;
|
|
117
124
|
renderId: string;
|
|
118
125
|
imageFormat: ImageFormat;
|
|
119
|
-
codec:
|
|
126
|
+
codec: LambdaCodec;
|
|
120
127
|
crf: number | undefined;
|
|
121
128
|
envVariables: Record<string, string> | undefined;
|
|
122
129
|
pixelFormat: PixelFormat | undefined;
|
|
@@ -130,6 +137,10 @@ export declare type LambdaPayloads = {
|
|
|
130
137
|
timeoutInMilliseconds: number;
|
|
131
138
|
chromiumOptions: ChromiumOptions;
|
|
132
139
|
scale: number;
|
|
140
|
+
everyNthFrame: number;
|
|
141
|
+
numberOfGifLoops: number | null;
|
|
142
|
+
concurrencyPerLambda: number;
|
|
143
|
+
downloadBehavior: DownloadBehavior;
|
|
133
144
|
};
|
|
134
145
|
status: {
|
|
135
146
|
type: LambdaRoutines.status;
|
|
@@ -137,6 +148,7 @@ export declare type LambdaPayloads = {
|
|
|
137
148
|
renderId: string;
|
|
138
149
|
};
|
|
139
150
|
renderer: {
|
|
151
|
+
concurrencyPerLambda: number;
|
|
140
152
|
type: LambdaRoutines.renderer;
|
|
141
153
|
serveUrl: string;
|
|
142
154
|
frameRange: [number, number];
|
|
@@ -151,7 +163,7 @@ export declare type LambdaPayloads = {
|
|
|
151
163
|
inputProps: unknown;
|
|
152
164
|
renderId: string;
|
|
153
165
|
imageFormat: ImageFormat;
|
|
154
|
-
codec: Codec
|
|
166
|
+
codec: Exclude<Codec, 'h264'>;
|
|
155
167
|
crf: number | undefined;
|
|
156
168
|
proResProfile: ProResProfile | undefined;
|
|
157
169
|
pixelFormat: PixelFormat | undefined;
|
|
@@ -163,6 +175,7 @@ export declare type LambdaPayloads = {
|
|
|
163
175
|
timeoutInMilliseconds: number;
|
|
164
176
|
chromiumOptions: ChromiumOptions;
|
|
165
177
|
scale: number;
|
|
178
|
+
everyNthFrame: number;
|
|
166
179
|
};
|
|
167
180
|
still: {
|
|
168
181
|
type: LambdaRoutines.still;
|
|
@@ -177,10 +190,11 @@ export declare type LambdaPayloads = {
|
|
|
177
190
|
frame: number;
|
|
178
191
|
privacy: Privacy;
|
|
179
192
|
logLevel: LogLevel;
|
|
180
|
-
outName:
|
|
193
|
+
outName: OutNameInput | null;
|
|
181
194
|
timeoutInMilliseconds: number;
|
|
182
195
|
chromiumOptions: ChromiumOptions;
|
|
183
196
|
scale: number;
|
|
197
|
+
downloadBehavior: DownloadBehavior | null;
|
|
184
198
|
};
|
|
185
199
|
};
|
|
186
200
|
export declare type LambdaPayload = LambdaPayloads[LambdaRoutines];
|
|
@@ -210,7 +224,7 @@ export declare type RenderMetadata = {
|
|
|
210
224
|
renderId: string;
|
|
211
225
|
outName: OutNameInput | undefined;
|
|
212
226
|
};
|
|
213
|
-
export declare type LambdaVersions = '
|
|
227
|
+
export declare type LambdaVersions = '2022-08-05' | '2022-08-04' | '2022-08-02' | '2022-08-01' | '2022-07-28' | '2022-07-27' | '2022-07-25' | '2022-07-23' | '2022-07-20' | '2022-07-18' | '2022-07-15' | '2022-07-14' | '2022-07-12' | '2022-07-10' | '2022-07-09' | '2022-07-08' | '2022-07-04' | '2022-06-30' | '2022-06-29' | '2022-06-25' | '2022-06-22' | '2022-06-21' | '2022-06-14' | '2022-06-08' | '2022-06-07' | '2022-06-02' | '2022-05-31' | '2022-05-28' | '2022-05-27' | '2022-05-19' | '2022-05-16' | '2022-05-11' | '2022-05-07' | '2022-05-06' | '2022-05-03' | '2022-04-20' | '2022-04-19' | '2022-04-18' | '2022-04-09' | '2022-04-08' | '2022-04-05' | '2022-04-02' | '2022-03-29' | '2022-03-17' | '2022-03-02' | '2022-03-01' | '2022-02-27' | '2022-02-14' | '2022-02-12' | '2022-02-09' | '2022-02-08' | '2022-02-07' | '2022-02-06' | '2022-02-05' | '2022-02-04' | '2022-02-03' | '2022-01-23' | '2022-01-19' | '2022-01-11' | '2022-01-10' | '2022-01-09' | '2022-01-06' | '2022-01-05' | '2021-12-22' | '2021-12-17' | '2021-12-16' | '2021-12-15' | '2021-12-14' | '2021-12-13' | '2021-12-11' | '2021-12-10' | '2021-12-04' | '2021-11-29' | '2021-11-27' | '2021-11-24' | '2021-11-22' | '2021-11-19' | '2021-11-18' | '2021-11-15' | '2021-11-12' | '2021-11-10' | '2021-11-01' | '2021-10-29' | '2021-10-27' | '2021-10-21' | '2021-10-19' | '2021-10-07' | '2021-10-03' | '2021-10-01' | '2021-09-15' | '2021-09-06' | '2021-08-06' | '2021-07-14' | '2021-07-05' | '2021-07-02' | '2021-06-23' | 'n/a';
|
|
214
228
|
export declare const CURRENT_VERSION: LambdaVersions;
|
|
215
229
|
export declare type PostRenderData = {
|
|
216
230
|
cost: {
|
|
@@ -233,6 +247,7 @@ export declare type PostRenderData = {
|
|
|
233
247
|
timeToRenderChunks: number;
|
|
234
248
|
timeToInvokeLambdas: number;
|
|
235
249
|
retriesInfo: ChunkRetry[];
|
|
250
|
+
mostExpensiveFrameRanges: ExpensiveChunk[] | undefined;
|
|
236
251
|
};
|
|
237
252
|
export declare type CostsInfo = {
|
|
238
253
|
accruedSoFar: number;
|
|
@@ -267,7 +282,8 @@ export declare type RenderProgress = {
|
|
|
267
282
|
timeToInvokeLambdas: number | null;
|
|
268
283
|
overallProgress: number;
|
|
269
284
|
retriesInfo: ChunkRetry[];
|
|
285
|
+
mostExpensiveFrameRanges: ExpensiveChunk[] | null;
|
|
270
286
|
};
|
|
271
|
-
export declare type Privacy = 'public' | 'private';
|
|
287
|
+
export declare type Privacy = 'public' | 'private' | 'no-acl';
|
|
272
288
|
export declare const LAMBDA_CONCURRENCY_LIMIT_QUOTA = "L-B99A9384";
|
|
273
289
|
export declare const LAMBDA_BURST_LIMIT_QUOTA = "L-548AE339";
|
package/dist/shared/constants.js
CHANGED
|
@@ -15,7 +15,7 @@ exports.COMMAND_NOT_FOUND = 'Command not found';
|
|
|
15
15
|
exports.DEFAULT_REGION = 'us-east-1';
|
|
16
16
|
exports.DEFAULT_MAX_RETRIES = 1;
|
|
17
17
|
exports.MAX_FUNCTIONS_PER_RENDER = 200;
|
|
18
|
-
exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB =
|
|
18
|
+
exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = 2048;
|
|
19
19
|
exports.MIN_EPHEMERAL_STORAGE_IN_MB = 512;
|
|
20
20
|
exports.MAX_EPHEMERAL_STORAGE_IN_MB = 10240;
|
|
21
21
|
exports.DEFAULT_OUTPUT_PRIVACY = 'public';
|
|
@@ -84,6 +84,6 @@ var LambdaRoutines;
|
|
|
84
84
|
LambdaRoutines["renderer"] = "renderer";
|
|
85
85
|
LambdaRoutines["still"] = "still";
|
|
86
86
|
})(LambdaRoutines = exports.LambdaRoutines || (exports.LambdaRoutines = {}));
|
|
87
|
-
exports.CURRENT_VERSION = '
|
|
87
|
+
exports.CURRENT_VERSION = '2022-08-05';
|
|
88
88
|
exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = 'L-B99A9384';
|
|
89
89
|
exports.LAMBDA_BURST_LIMIT_QUOTA = 'L-548AE339';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// By setting the Content-Disposition header in an S3 object,
|
|
3
|
+
// you can control if the user downloads the item if you
|
|
4
|
+
// visit the link
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getContentDispositionHeader = void 0;
|
|
7
|
+
const getContentDispositionHeader = (behavior) => {
|
|
8
|
+
if (behavior === null) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
if (behavior.type === 'play-in-browser') {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
if (behavior.fileName === null) {
|
|
15
|
+
return `attachment`;
|
|
16
|
+
}
|
|
17
|
+
return `attachment; filename="${behavior.fileName}"`;
|
|
18
|
+
};
|
|
19
|
+
exports.getContentDispositionHeader = getContentDispositionHeader;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
2
|
export declare const convertToServeUrl: (urlOrId: string, region: AwsRegion) => Promise<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaVersions } from './constants';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaVersions } from './constants';
|
|
3
3
|
export declare const getFunctionVersion: ({ functionName, region, }: {
|
|
4
4
|
functionName: string;
|
|
5
5
|
region: AwsRegion;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ParsedTiming } from './parse-lambda-timings-key';
|
|
2
|
+
export declare const OVERHEAD_TIME_PER_LAMBDA = 100;
|
|
3
|
+
export declare type ExpensiveChunk = {
|
|
4
|
+
chunk: number;
|
|
5
|
+
frameRange: [number, number];
|
|
6
|
+
timeInMilliseconds: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const getMostExpensiveChunks: (parsedTimings: ParsedTiming[], framesPerLambda: number) => ExpensiveChunk[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMostExpensiveChunks = exports.OVERHEAD_TIME_PER_LAMBDA = void 0;
|
|
4
|
+
exports.OVERHEAD_TIME_PER_LAMBDA = 100;
|
|
5
|
+
const getMostExpensiveChunks = (parsedTimings, framesPerLambda) => {
|
|
6
|
+
const mostExpensiveChunks = parsedTimings
|
|
7
|
+
.slice(0)
|
|
8
|
+
.sort((a, b) => {
|
|
9
|
+
const durA = a.rendered - a.start;
|
|
10
|
+
const durB = b.rendered - b.start;
|
|
11
|
+
return durB - durA;
|
|
12
|
+
})
|
|
13
|
+
.slice(0, 5);
|
|
14
|
+
return mostExpensiveChunks.map((c) => {
|
|
15
|
+
return {
|
|
16
|
+
timeInMilliseconds: c.rendered - c.start,
|
|
17
|
+
chunk: c.chunk,
|
|
18
|
+
frameRange: [
|
|
19
|
+
framesPerLambda * c.chunk,
|
|
20
|
+
framesPerLambda * (c.chunk + 1) - 1,
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
exports.getMostExpensiveChunks = getMostExpensiveChunks;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaArchitecture } from './validate-architecture';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaArchitecture } from './validate-architecture';
|
|
3
3
|
export declare const REMOTION_HOSTED_LAYER_ARN = "arn:aws:lambda:*:678892195805:layer:remotion-binaries-*";
|
|
4
4
|
export declare type HostedLayers = {
|
|
5
5
|
[architecture in LambdaArchitecture]: {
|