@remotion/lambda 4.0.0-oops.3 → 4.0.0-prefetch.10
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 +8 -8
- package/dist/api/bucket-exists.d.ts +1 -1
- package/dist/api/clean-items.d.ts +1 -1
- package/dist/api/clean-items.js +2 -5
- package/dist/api/create-bucket.d.ts +1 -1
- package/dist/api/create-function.d.ts +4 -3
- package/dist/api/create-function.js +3 -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 +3 -2
- package/dist/api/deploy-function.js +7 -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-aws-client.js +5 -1
- package/dist/api/get-buckets.d.ts +1 -1
- package/dist/api/get-function-info.d.ts +2 -3
- package/dist/api/get-functions.d.ts +2 -2
- package/dist/api/get-functions.js +2 -1
- 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-render-progress.js +2 -0
- 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 +6 -7
- package/dist/api/presign-url.d.ts +3 -2
- package/dist/api/presign-url.js +5 -0
- package/dist/api/render-media-on-lambda.d.ts +15 -8
- package/dist/api/render-media-on-lambda.js +58 -32
- package/dist/api/render-still-on-lambda.d.ts +9 -7
- package/dist/api/render-still-on-lambda.js +49 -31
- package/dist/api/upload-dir.d.ts +2 -2
- package/dist/api/upload-dir.js +9 -4
- package/dist/cli/args.d.ts +5 -3
- package/dist/cli/commands/functions/deploy.js +8 -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 +15 -10
- 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 +2 -9
- package/dist/cli/get-aws-region.d.ts +1 -1
- package/dist/cli/get-aws-region.js +2 -1
- package/dist/cli/helpers/find-function-name.js +3 -2
- 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 +11 -1
- package/dist/defaults.js +5 -1
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
- package/dist/functions/chunk-optimization/can-use-optimization.js +2 -2
- 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 -2
- 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/check-if-render-exists.d.ts +3 -0
- package/dist/functions/helpers/check-if-render-exists.js +14 -0
- package/dist/functions/helpers/concat-videos.d.ts +6 -4
- package/dist/functions/helpers/concat-videos.js +8 -2
- 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 +6 -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-browser-instance.js +3 -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-files-to-delete.js +3 -3
- 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 +8 -8
- 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 +22 -11
- 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-retry-stats.js +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 +13 -6
- package/dist/functions/helpers/io.js +21 -3
- 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 +10 -4
- package/dist/functions/helpers/validate-composition.js +7 -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 +14 -7
- package/dist/functions/info.d.ts +2 -2
- package/dist/functions/info.js +2 -1
- package/dist/functions/launch.d.ts +1 -1
- package/dist/functions/launch.js +73 -26
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +7 -0
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +105 -71
- package/dist/functions/start.d.ts +6 -2
- package/dist/functions/start.js +25 -3
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +26 -7
- 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 +38 -17
- package/dist/shared/constants.js +8 -7
- 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-cloudwatch-stream-url.d.ts +8 -0
- package/dist/shared/get-cloudwatch-stream-url.js +7 -0
- package/dist/shared/get-function-version.d.ts +2 -3
- 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/is-in-lambda.js +5 -1
- package/dist/shared/lambda-version-string.d.ts +1 -0
- package/dist/shared/lambda-version-string.js +7 -0
- package/dist/shared/make-s3-key.d.ts +1 -0
- package/dist/shared/make-s3-key.js +11 -0
- package/dist/shared/make-s3-url.d.ts +1 -1
- package/dist/shared/p-limit.d.ts +1 -0
- package/dist/shared/p-limit.js +57 -0
- package/dist/shared/random-hash.d.ts +2 -2
- package/dist/shared/random-hash.js +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 +2 -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-custom-role-arn.d.ts +1 -0
- package/dist/shared/validate-custom-role-arn.js +11 -0
- package/dist/shared/validate-download-behavior.d.ts +1 -0
- package/dist/shared/validate-download-behavior.js +21 -0
- package/dist/shared/validate-frames-per-lambda.js +1 -1
- 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 +13 -14
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { PostRenderData } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { PostRenderData } from '../../shared/constants';
|
|
3
3
|
export declare const getPostRenderData: ({ bucketName, renderId, region, expectedBucketOwner, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
renderId: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { RenderProgress } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { RenderProgress } from '../../shared/constants';
|
|
3
3
|
export declare const getProgress: ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMiliseconds, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
renderId: string;
|
|
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getProgress = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const constants_1 = require("../../shared/constants");
|
|
6
|
+
const docs_url_1 = require("../../shared/docs-url");
|
|
6
7
|
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
7
8
|
const calculate_price_from_bucket_1 = require("./calculate-price-from-bucket");
|
|
9
|
+
const check_if_render_exists_1 = require("./check-if-render-exists");
|
|
8
10
|
const expected_out_name_1 = require("./expected-out-name");
|
|
9
11
|
const find_output_file_in_bucket_1 = require("./find-output-file-in-bucket");
|
|
10
12
|
const format_costs_info_1 = require("./format-costs-info");
|
|
@@ -22,7 +24,7 @@ const get_time_to_finish_1 = require("./get-time-to-finish");
|
|
|
22
24
|
const inspect_errors_1 = require("./inspect-errors");
|
|
23
25
|
const io_1 = require("./io");
|
|
24
26
|
const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMiliseconds, }) => {
|
|
25
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
27
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
26
28
|
const postRenderData = await (0, get_post_render_data_1.getPostRenderData)({
|
|
27
29
|
bucketName,
|
|
28
30
|
region,
|
|
@@ -67,6 +69,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
67
69
|
retriesInfo: postRenderData.retriesInfo,
|
|
68
70
|
outKey: outData.key,
|
|
69
71
|
outBucket: outData.renderBucketName,
|
|
72
|
+
mostExpensiveFrameRanges: (_a = postRenderData.mostExpensiveFrameRanges) !== null && _a !== void 0 ? _a : null,
|
|
70
73
|
};
|
|
71
74
|
}
|
|
72
75
|
const contents = await (0, io_1.lambdaLs)({
|
|
@@ -75,6 +78,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
75
78
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
76
79
|
expectedBucketOwner,
|
|
77
80
|
});
|
|
81
|
+
(0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
|
|
78
82
|
const renderMetadataExists = Boolean(contents.find((c) => c.Key === (0, constants_1.renderMetadataKey)(renderId)));
|
|
79
83
|
const [encodingStatus, renderMetadata, errorExplanations] = await Promise.all([
|
|
80
84
|
(0, get_encoding_metadata_1.getEncodingMetadata)({
|
|
@@ -113,27 +117,33 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
113
117
|
memorySizeInMb,
|
|
114
118
|
outputFileMetadata: outputFile,
|
|
115
119
|
architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
|
|
116
|
-
lambdasInvoked: (
|
|
120
|
+
lambdasInvoked: (_b = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _b !== void 0 ? _b : 0,
|
|
117
121
|
// We cannot determine the ephemeral storage size, so we
|
|
118
122
|
// overestimate the price, but will only have a miniscule effect (~0.2%)
|
|
119
123
|
diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
|
|
120
124
|
}));
|
|
121
125
|
const cleanup = (0, get_cleanup_progress_1.getCleanupProgress)({
|
|
122
|
-
chunkCount: (
|
|
126
|
+
chunkCount: (_c = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _c !== void 0 ? _c : 0,
|
|
123
127
|
contents,
|
|
124
|
-
output: (
|
|
128
|
+
output: (_d = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _d !== void 0 ? _d : null,
|
|
125
129
|
renderId,
|
|
126
130
|
});
|
|
127
131
|
const timeToFinish = (0, get_time_to_finish_1.getTimeToFinish)({
|
|
128
|
-
lastModified: (
|
|
132
|
+
lastModified: (_e = outputFile === null || outputFile === void 0 ? void 0 : outputFile.lastModified) !== null && _e !== void 0 ? _e : null,
|
|
129
133
|
renderMetadata,
|
|
130
134
|
});
|
|
131
135
|
const chunks = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.chunkKey)(renderId)); });
|
|
132
|
-
const allChunks = chunks.length === ((
|
|
136
|
+
const allChunks = chunks.length === ((_f = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _f !== void 0 ? _f : Infinity);
|
|
133
137
|
const renderSize = contents
|
|
134
138
|
.map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
|
|
135
139
|
.reduce((a, b) => a + b, 0);
|
|
136
|
-
const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)(
|
|
140
|
+
const lambdasInvokedStats = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
|
|
141
|
+
contents,
|
|
142
|
+
renderId,
|
|
143
|
+
estimatedRenderLambdaInvokations: (_g = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.estimatedRenderLambdaInvokations) !== null && _g !== void 0 ? _g : null,
|
|
144
|
+
startDate: (_h = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.startedDate) !== null && _h !== void 0 ? _h : null,
|
|
145
|
+
checkIfAllLambdasWereInvoked: true,
|
|
146
|
+
});
|
|
137
147
|
const retriesInfo = (0, get_retry_stats_1.getRetryStats)({
|
|
138
148
|
contents,
|
|
139
149
|
renderId,
|
|
@@ -145,7 +155,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
145
155
|
lambdaInvokeStatus: lambdasInvokedStats,
|
|
146
156
|
});
|
|
147
157
|
const chunkCount = outputFile
|
|
148
|
-
? (
|
|
158
|
+
? (_j = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _j !== void 0 ? _j : 0
|
|
149
159
|
: chunks.length;
|
|
150
160
|
// We add a 20 second buffer for it, since AWS timeshifts can be quite a lot. Once it's 20sec over the limit, we consider it timed out
|
|
151
161
|
const isBeyondTimeout = renderMetadata &&
|
|
@@ -155,7 +165,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
155
165
|
? {
|
|
156
166
|
attempt: 1,
|
|
157
167
|
chunk: null,
|
|
158
|
-
explanation: `The main function timed out after ${timeoutInMiliseconds}ms. Consider increasing the timeout of your function
|
|
168
|
+
explanation: `The main function timed out after ${timeoutInMiliseconds}ms. Consider increasing the timeout of your function. You can use the "--timeout" parameter when deploying a function via CLI, or the "timeoutInSeconds" parameter when using the deployFunction API. ${docs_url_1.DOCS_URL}/docs/lambda/cli/functions#deploy`,
|
|
159
169
|
frame: null,
|
|
160
170
|
isFatal: true,
|
|
161
171
|
s3Location: '',
|
|
@@ -176,7 +186,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
176
186
|
renderId,
|
|
177
187
|
renderMetadata,
|
|
178
188
|
bucket: bucketName,
|
|
179
|
-
outputFile: (
|
|
189
|
+
outputFile: (_k = outputFile === null || outputFile === void 0 ? void 0 : outputFile.url) !== null && _k !== void 0 ? _k : null,
|
|
180
190
|
timeToFinish,
|
|
181
191
|
errors: allErrors,
|
|
182
192
|
fatalErrorEncountered: allErrors.some((f) => f.isFatal && !f.willRetry),
|
|
@@ -191,7 +201,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
191
201
|
type: 'absolute-time',
|
|
192
202
|
})
|
|
193
203
|
: null,
|
|
194
|
-
timeToInvokeLambdas: (
|
|
204
|
+
timeToInvokeLambdas: (_l = encodingStatus === null || encodingStatus === void 0 ? void 0 : encodingStatus.timeToInvoke) !== null && _l !== void 0 ? _l : lambdasInvokedStats.timeToInvokeLambdas,
|
|
195
205
|
overallProgress: (0, get_overall_progress_1.getOverallProgress)({
|
|
196
206
|
cleanup: cleanup ? cleanup.filesDeleted / cleanup.minFilesToDelete : 0,
|
|
197
207
|
encoding: finalEncodingStatus && renderMetadata
|
|
@@ -211,6 +221,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
|
|
|
211
221
|
outBucket: outputFile && renderMetadata
|
|
212
222
|
? (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName).renderBucketName
|
|
213
223
|
: null,
|
|
224
|
+
mostExpensiveFrameRanges: null,
|
|
214
225
|
};
|
|
215
226
|
};
|
|
216
227
|
exports.getProgress = getProgress;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { RenderMetadata } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { RenderMetadata } from '../../shared/constants';
|
|
3
3
|
export declare const getRenderMetadata: ({ bucketName, renderId, region, expectedBucketOwner, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
renderId: string;
|
|
@@ -5,7 +5,7 @@ const constants_1 = require("../../shared/constants");
|
|
|
5
5
|
const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
|
|
6
6
|
const getRetryStats = ({ contents, renderId, }) => {
|
|
7
7
|
const retries = contents
|
|
8
|
-
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.
|
|
8
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
9
9
|
.filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt !== 1);
|
|
10
10
|
return retries.map((retry) => {
|
|
11
11
|
var _a;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
-
import { EnhancedErrorInfo } from './write-lambda-error';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
+
import type { EnhancedErrorInfo } from './write-lambda-error';
|
|
4
4
|
export declare const inspectErrors: ({ contents, bucket, region, renderId, expectedBucketOwner, }: {
|
|
5
5
|
contents: _Object[];
|
|
6
6
|
bucket: string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { ReadStream } from 'fs';
|
|
3
|
-
import { Readable } from 'stream';
|
|
4
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
5
|
-
import { Privacy } from '../../shared/constants';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { ReadStream } from 'fs';
|
|
3
|
+
import type { Readable } from 'stream';
|
|
4
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
5
|
+
import type { Privacy } from '../../shared/constants';
|
|
6
|
+
import type { DownloadBehavior } from '../../shared/content-disposition-header';
|
|
6
7
|
export declare type LambdaLSInput = {
|
|
7
8
|
bucketName: string;
|
|
8
9
|
prefix: string;
|
|
@@ -12,13 +13,19 @@ export declare type LambdaLSInput = {
|
|
|
12
13
|
};
|
|
13
14
|
export declare type LambdaLsReturnType = Promise<_Object[]>;
|
|
14
15
|
export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
|
|
15
|
-
export declare const
|
|
16
|
+
export declare const lambdaDeleteFile: ({ bucketName, key, region, }: {
|
|
17
|
+
region: AwsRegion;
|
|
18
|
+
bucketName: string;
|
|
19
|
+
key: string;
|
|
20
|
+
}) => Promise<void>;
|
|
21
|
+
export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, }: {
|
|
16
22
|
bucketName: string;
|
|
17
23
|
key: string;
|
|
18
24
|
body: ReadStream | string;
|
|
19
25
|
region: AwsRegion;
|
|
20
26
|
privacy: Privacy;
|
|
21
27
|
expectedBucketOwner: string | null;
|
|
28
|
+
downloadBehavior: DownloadBehavior | null;
|
|
22
29
|
}) => Promise<void>;
|
|
23
30
|
export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketOwner, }: {
|
|
24
31
|
bucketName: string;
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaLs = void 0;
|
|
6
|
+
exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
|
|
4
7
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
8
|
+
const mime_types_1 = __importDefault(require("mime-types"));
|
|
5
9
|
const aws_clients_1 = require("../../shared/aws-clients");
|
|
10
|
+
const content_disposition_header_1 = require("../../shared/content-disposition-header");
|
|
6
11
|
const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
|
|
7
12
|
var _a, _b, _c;
|
|
8
13
|
try {
|
|
@@ -42,13 +47,26 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
|
|
|
42
47
|
}
|
|
43
48
|
};
|
|
44
49
|
exports.lambdaLs = lambdaLs;
|
|
45
|
-
const
|
|
50
|
+
const lambdaDeleteFile = async ({ bucketName, key, region, }) => {
|
|
51
|
+
await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.DeleteObjectCommand({
|
|
52
|
+
Bucket: bucketName,
|
|
53
|
+
Key: key,
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
exports.lambdaDeleteFile = lambdaDeleteFile;
|
|
57
|
+
const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, }) => {
|
|
46
58
|
await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.PutObjectCommand({
|
|
47
59
|
Bucket: bucketName,
|
|
48
60
|
Key: key,
|
|
49
61
|
Body: body,
|
|
50
|
-
ACL: privacy === '
|
|
62
|
+
ACL: privacy === 'no-acl'
|
|
63
|
+
? undefined
|
|
64
|
+
: privacy === 'private'
|
|
65
|
+
? 'private'
|
|
66
|
+
: 'public-read',
|
|
51
67
|
ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
|
|
68
|
+
ContentType: mime_types_1.default.lookup(key) || 'application/octet-stream',
|
|
69
|
+
ContentDisposition: (0, content_disposition_header_1.getContentDispositionHeader)(downloadBehavior),
|
|
52
70
|
}));
|
|
53
71
|
};
|
|
54
72
|
exports.lambdaWriteFile = lambdaWriteFile;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const min: (arr: number[]) => number;
|
|
2
|
-
export declare const max: (arr: number[]) => number;
|
|
2
|
+
export declare const max: (arr: number[]) => number | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LambdaRoutines } from '../../defaults';
|
|
2
|
-
export declare const printCloudwatchHelper: (type: LambdaRoutines, data: Record<string, string>) => void;
|
|
1
|
+
import type { LambdaRoutines } from '../../defaults';
|
|
2
|
+
export declare const printCloudwatchHelper: (type: LambdaRoutines, data: Record<string, string | boolean>) => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
2
|
export declare type LambdaReadFileProgress = (progress: {
|
|
3
3
|
totalSize: number;
|
|
4
4
|
downloaded: number;
|
|
5
|
-
|
|
5
|
+
percent: number;
|
|
6
6
|
}) => unknown;
|
|
7
7
|
export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, }: {
|
|
8
8
|
bucketName: string;
|
|
@@ -13,4 +13,5 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
|
|
|
13
13
|
onProgress: LambdaReadFileProgress;
|
|
14
14
|
}) => Promise<{
|
|
15
15
|
sizeInBytes: number;
|
|
16
|
+
to: string;
|
|
16
17
|
}>;
|
|
@@ -13,6 +13,18 @@ const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expecte
|
|
|
13
13
|
Key: key,
|
|
14
14
|
});
|
|
15
15
|
const presigned = await (0, s3_request_presigner_1.getSignedUrl)(client, command);
|
|
16
|
-
|
|
16
|
+
const { to, sizeInBytes } = await renderer_1.RenderInternals.downloadFile({
|
|
17
|
+
url: presigned,
|
|
18
|
+
onProgress: ({ downloaded, percent, totalSize }) => {
|
|
19
|
+
// On Lambda, it should always be a number
|
|
20
|
+
onProgress({
|
|
21
|
+
downloaded,
|
|
22
|
+
percent: percent,
|
|
23
|
+
totalSize: totalSize,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
to: () => outputPath,
|
|
27
|
+
});
|
|
28
|
+
return { sizeInBytes, to };
|
|
17
29
|
};
|
|
18
30
|
exports.lambdaDownloadFileWithProgress = lambdaDownloadFileWithProgress;
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { openBrowser } from '@remotion/renderer';
|
|
2
|
-
import { TCompMetadata } from 'remotion';
|
|
3
|
-
import { Await } from '../../shared/await';
|
|
1
|
+
import type { ChromiumOptions, DownloadMap, FfmpegExecutable, openBrowser } from '@remotion/renderer';
|
|
2
|
+
import type { TCompMetadata } from 'remotion';
|
|
3
|
+
import type { Await } from '../../shared/await';
|
|
4
4
|
declare type ValidateCompositionOptions = {
|
|
5
5
|
serveUrl: string;
|
|
6
6
|
composition: string;
|
|
7
7
|
browserInstance: Await<ReturnType<typeof openBrowser>>;
|
|
8
8
|
inputProps: unknown;
|
|
9
9
|
envVariables: Record<string, string> | undefined;
|
|
10
|
+
ffmpegExecutable: FfmpegExecutable;
|
|
11
|
+
ffprobeExecutable: FfmpegExecutable;
|
|
12
|
+
timeoutInMilliseconds: number;
|
|
13
|
+
chromiumOptions: ChromiumOptions;
|
|
14
|
+
port: number | null;
|
|
15
|
+
downloadMap: DownloadMap;
|
|
10
16
|
};
|
|
11
|
-
export declare const validateComposition: ({ serveUrl, composition, browserInstance, inputProps, envVariables, }: ValidateCompositionOptions) => Promise<TCompMetadata>;
|
|
17
|
+
export declare const validateComposition: ({ serveUrl, composition, browserInstance, inputProps, envVariables, timeoutInMilliseconds, ffmpegExecutable, ffprobeExecutable, chromiumOptions, port, downloadMap, }: ValidateCompositionOptions) => Promise<TCompMetadata>;
|
|
12
18
|
export {};
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateComposition = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
|
-
const validateComposition = async ({ serveUrl, composition, browserInstance, inputProps, envVariables, }) => {
|
|
5
|
+
const validateComposition = async ({ serveUrl, composition, browserInstance, inputProps, envVariables, timeoutInMilliseconds, ffmpegExecutable, ffprobeExecutable, chromiumOptions, port, downloadMap, }) => {
|
|
6
6
|
const compositions = await (0, renderer_1.getCompositions)(serveUrl, {
|
|
7
7
|
puppeteerInstance: browserInstance,
|
|
8
8
|
inputProps: inputProps,
|
|
9
9
|
envVariables,
|
|
10
|
+
ffmpegExecutable,
|
|
11
|
+
ffprobeExecutable,
|
|
12
|
+
timeoutInMilliseconds,
|
|
13
|
+
chromiumOptions,
|
|
14
|
+
port,
|
|
15
|
+
downloadMap,
|
|
10
16
|
});
|
|
11
17
|
const found = compositions.find((c) => c.id === composition);
|
|
12
18
|
if (!found) {
|
|
@@ -33,6 +33,7 @@ const writeLambdaError = async ({ bucketName, renderId, errorInfo, expectedBucke
|
|
|
33
33
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
34
34
|
privacy: 'private',
|
|
35
35
|
expectedBucketOwner,
|
|
36
|
+
downloadBehavior: null,
|
|
36
37
|
});
|
|
37
38
|
};
|
|
38
39
|
exports.writeLambdaError = writeLambdaError;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { PostRenderData } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { PostRenderData } from '../../shared/constants';
|
|
3
3
|
export declare const writePostRenderData: ({ bucketName, renderId, postRenderData, expectedBucketOwner, region, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
renderId: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { LambdaPayload
|
|
2
|
-
import {
|
|
1
|
+
import type { LambdaPayload } from '../shared/constants';
|
|
2
|
+
import { LambdaRoutines } from '../shared/constants';
|
|
3
|
+
import type { LambdaReturnValues } from '../shared/return-values';
|
|
3
4
|
export declare const handler: <T extends LambdaRoutines>(params: LambdaPayload, context: {
|
|
4
5
|
invokedFunctionArn: string;
|
|
5
6
|
getRemainingTimeInMillis: () => number;
|
package/dist/functions/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const constants_1 = require("../shared/constants");
|
|
6
6
|
const clean_tmpdir_1 = require("./helpers/clean-tmpdir");
|
|
7
7
|
const is_warm_1 = require("./helpers/is-warm");
|
|
@@ -9,11 +9,11 @@ const print_cloudwatch_helper_1 = require("./helpers/print-cloudwatch-helper");
|
|
|
9
9
|
const info_1 = require("./info");
|
|
10
10
|
const launch_1 = require("./launch");
|
|
11
11
|
const progress_1 = require("./progress");
|
|
12
|
-
const
|
|
12
|
+
const renderer_2 = require("./renderer");
|
|
13
13
|
const start_1 = require("./start");
|
|
14
14
|
const still_1 = require("./still");
|
|
15
15
|
const handler = async (params, context) => {
|
|
16
|
-
process.env.
|
|
16
|
+
process.env.__RESERVED_IS_INSIDE_REMOTION_LAMBDA = 'true';
|
|
17
17
|
const timeoutInMiliseconds = context.getRemainingTimeInMillis();
|
|
18
18
|
if (!context || !context.invokedFunctionArn) {
|
|
19
19
|
throw new Error('Lambda function unexpectedly does not have context.invokedFunctionArn');
|
|
@@ -25,6 +25,7 @@ const handler = async (params, context) => {
|
|
|
25
25
|
if (params.type === constants_1.LambdaRoutines.still) {
|
|
26
26
|
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.still, {
|
|
27
27
|
inputProps: JSON.stringify(params.inputProps),
|
|
28
|
+
isWarm,
|
|
28
29
|
});
|
|
29
30
|
return (0, still_1.stillHandler)(params, {
|
|
30
31
|
expectedBucketOwner: currentUserId,
|
|
@@ -33,19 +34,22 @@ const handler = async (params, context) => {
|
|
|
33
34
|
if (params.type === constants_1.LambdaRoutines.start) {
|
|
34
35
|
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.start, {
|
|
35
36
|
inputProps: JSON.stringify(params.inputProps),
|
|
37
|
+
isWarm,
|
|
36
38
|
});
|
|
37
|
-
return (0, start_1.startHandler)(params);
|
|
39
|
+
return (0, start_1.startHandler)(params, { expectedBucketOwner: currentUserId });
|
|
38
40
|
}
|
|
39
41
|
if (params.type === constants_1.LambdaRoutines.launch) {
|
|
40
42
|
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.launch, {
|
|
41
43
|
renderId: params.renderId,
|
|
42
44
|
inputProps: JSON.stringify(params.inputProps),
|
|
45
|
+
isWarm,
|
|
43
46
|
});
|
|
44
47
|
return (0, launch_1.launchHandler)(params, { expectedBucketOwner: currentUserId });
|
|
45
48
|
}
|
|
46
49
|
if (params.type === constants_1.LambdaRoutines.status) {
|
|
47
50
|
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.status, {
|
|
48
51
|
renderId: params.renderId,
|
|
52
|
+
isWarm,
|
|
49
53
|
});
|
|
50
54
|
return (0, progress_1.progressHandler)(params, {
|
|
51
55
|
expectedBucketOwner: currentUserId,
|
|
@@ -56,16 +60,19 @@ const handler = async (params, context) => {
|
|
|
56
60
|
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.renderer, {
|
|
57
61
|
renderId: params.renderId,
|
|
58
62
|
chunk: String(params.chunk),
|
|
59
|
-
dumpLogs: String(
|
|
63
|
+
dumpLogs: String(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')),
|
|
60
64
|
inputProps: JSON.stringify(params.inputProps),
|
|
65
|
+
isWarm,
|
|
61
66
|
});
|
|
62
|
-
return (0,
|
|
67
|
+
return (0, renderer_2.rendererHandler)(params, {
|
|
63
68
|
expectedBucketOwner: currentUserId,
|
|
64
69
|
isWarm,
|
|
65
70
|
});
|
|
66
71
|
}
|
|
67
72
|
if (params.type === constants_1.LambdaRoutines.info) {
|
|
68
|
-
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.info, {
|
|
73
|
+
(0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.info, {
|
|
74
|
+
isWarm,
|
|
75
|
+
});
|
|
69
76
|
return (0, info_1.infoHandler)(params);
|
|
70
77
|
}
|
|
71
78
|
throw new Error(constants_1.COMMAND_NOT_FOUND);
|
package/dist/functions/info.d.ts
CHANGED
package/dist/functions/info.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.infoHandler = void 0;
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
4
5
|
const constants_1 = require("../shared/constants");
|
|
5
6
|
const infoHandler = (lambdaParams) => {
|
|
6
7
|
if (lambdaParams.type !== constants_1.LambdaRoutines.info) {
|
|
7
8
|
throw new TypeError('Expected info type');
|
|
8
9
|
}
|
|
9
10
|
const returnValue = {
|
|
10
|
-
version:
|
|
11
|
+
version: version_1.VERSION,
|
|
11
12
|
};
|
|
12
13
|
return Promise.resolve(returnValue);
|
|
13
14
|
};
|