@remotion/lambda 4.0.0-oops.3 → 4.0.0-prefetch.11
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,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findFunctionName = void 0;
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
4
5
|
const get_functions_1 = require("../../api/get-functions");
|
|
5
6
|
const constants_1 = require("../../shared/constants");
|
|
6
7
|
const functions_1 = require("../commands/functions");
|
|
@@ -15,9 +16,9 @@ const findFunctionName = async () => {
|
|
|
15
16
|
region: (0, get_aws_region_1.getAwsRegion)(),
|
|
16
17
|
compatibleOnly: false,
|
|
17
18
|
});
|
|
18
|
-
const lambdasWithMatchingVersion = remotionLambdas.filter((l) => l.version ===
|
|
19
|
+
const lambdasWithMatchingVersion = remotionLambdas.filter((l) => l.version === version_1.VERSION);
|
|
19
20
|
if (lambdasWithMatchingVersion.length === 0) {
|
|
20
|
-
log_1.Log.error(`No lambda functions with version ${
|
|
21
|
+
log_1.Log.error(`No lambda functions with version ${version_1.VERSION} found in your account.`);
|
|
21
22
|
if (remotionLambdas.length > 0) {
|
|
22
23
|
log_1.Log.error('Other functions were found, but are not compatible with this version of the CLI.');
|
|
23
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../client';
|
|
2
|
-
import { LambdaRoutines } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../../client';
|
|
2
|
+
import type { LambdaRoutines } from '../../shared/constants';
|
|
3
3
|
export declare const getCloudwatchStreamUrl: ({ region, functionName, method, renderId, }: {
|
|
4
4
|
region: AwsRegion;
|
|
5
5
|
functionName: string;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeDeployProgressBar = exports.makeBucketProgress = exports.makeBundleProgress = void 0;
|
|
4
4
|
const cli_1 = require("@remotion/cli");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
-
const format_bytes_1 = require("./format-bytes");
|
|
7
6
|
const makeBundleProgress = ({ progress, doneIn }) => {
|
|
8
7
|
return [
|
|
9
8
|
'📦',
|
|
@@ -40,7 +39,7 @@ const makeDeployProgressBar = ({ sizeUploaded, totalSize, doneIn, }) => {
|
|
|
40
39
|
`${doneIn === null ? 'Uploading' : 'Uploaded'} to S3`,
|
|
41
40
|
doneIn === null
|
|
42
41
|
? typeof totalSize === 'number'
|
|
43
|
-
? `${
|
|
42
|
+
? `${cli_1.CliInternals.formatBytes(sizeUploaded)}/${cli_1.CliInternals.formatBytes(totalSize)}`
|
|
44
43
|
: ''
|
|
45
44
|
: cli_1.CliInternals.chalk.gray(`${doneIn}ms`),
|
|
46
45
|
]
|
package/dist/cli/index.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.cli = exports.executeCommand = void 0;
|
|
4
4
|
const cli_1 = require("@remotion/cli");
|
|
5
5
|
const suggested_policy_1 = require("../api/iam-validation/suggested-policy");
|
|
6
|
+
const defaults_1 = require("../defaults");
|
|
6
7
|
const check_credentials_1 = require("../shared/check-credentials");
|
|
7
8
|
const docs_url_1 = require("../shared/docs-url");
|
|
8
9
|
const args_1 = require("./args");
|
|
@@ -99,6 +100,15 @@ const executeCommand = async (args) => {
|
|
|
99
100
|
catch (err) {
|
|
100
101
|
const error = err;
|
|
101
102
|
if (error.message.includes('The role defined for the function cannot be assumed by Lambda')) {
|
|
103
|
+
if (args_1.parsedLambdaCli['custom-role-arn']) {
|
|
104
|
+
log_1.Log.error(`
|
|
105
|
+
The role "${args_1.parsedLambdaCli['custom-role-arn']}" does not exist or has the wrong policy assigned to it. Do either:
|
|
106
|
+
- Remove the "--custom-role-arn" parameter and set up Remotion Lambda according to the setup guide
|
|
107
|
+
- Make sure the role has the same policy assigned as the one returned by "npx ${defaults_1.BINARY_NAME} ${policies_1.POLICIES_COMMAND} ${role_1.ROLE_SUBCOMMAND}"
|
|
108
|
+
|
|
109
|
+
Revisit ${docs_url_1.DOCS_URL}/docs/lambda/setup and make sure you set up the role and role policy correctly. Also see the troubleshooting page: ${docs_url_1.DOCS_URL}/docs/lambda/troubleshooting/permissions. The original error message is:
|
|
110
|
+
`.trim());
|
|
111
|
+
}
|
|
102
112
|
log_1.Log.error(`
|
|
103
113
|
The role "${suggested_policy_1.ROLE_NAME}" does not exist in your AWS account or has the wrong policy assigned to it. Common reasons:
|
|
104
114
|
- The name of the role is not "${suggested_policy_1.ROLE_NAME}"
|
|
@@ -123,7 +133,7 @@ AWS returned an "TooManyRequestsException" error message which could mean you re
|
|
|
123
133
|
};
|
|
124
134
|
exports.executeCommand = executeCommand;
|
|
125
135
|
const cli = async () => {
|
|
126
|
-
await cli_1.CliInternals.initializeRenderCli('lambda');
|
|
136
|
+
await cli_1.CliInternals.initializeRenderCli(cli_1.CliInternals.findRemotionRoot(), 'lambda');
|
|
127
137
|
await (0, exports.executeCommand)(args_1.parsedLambdaCli._);
|
|
128
138
|
};
|
|
129
139
|
exports.cli = cli;
|
package/dist/defaults.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.canUseOptimization = void 0;
|
|
4
|
-
const
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
5
5
|
const canUseOptimization = ({ optimization, framesPerLambda, frameRange, }) => {
|
|
6
6
|
if (!optimization) {
|
|
7
7
|
return false;
|
|
@@ -9,7 +9,7 @@ const canUseOptimization = ({ optimization, framesPerLambda, frameRange, }) => {
|
|
|
9
9
|
if (optimization.framesPerLambda !== framesPerLambda) {
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
|
-
if (optimization.lambdaVersion !==
|
|
12
|
+
if (optimization.lambdaVersion !== version_1.VERSION) {
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
if (optimization.frameRange[0] !== frameRange[0]) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { TimingProfile } from './types';
|
|
1
|
+
import type { TimingProfile } from './types';
|
|
2
2
|
export declare const getFrameRangesFromProfile: (profile: TimingProfile) => [number, number][];
|
|
3
3
|
export declare const sortProfileByFrameRanges: (profile: TimingProfile) => import("./types").ChunkTimingData[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ChunkTimingData, TimingProfile } from './types';
|
|
1
|
+
import type { ChunkTimingData, TimingProfile } from './types';
|
|
2
2
|
export declare const getTimingEndTimestamps: (chunk: ChunkTimingData) => number[];
|
|
3
3
|
export declare const getProfileDuration: (chunks: TimingProfile) => number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TimingProfile } from './types';
|
|
1
|
+
import type { TimingProfile } from './types';
|
|
2
2
|
export declare const isValidOptimizationProfile: (profile: TimingProfile) => boolean;
|
|
@@ -4,9 +4,9 @@ exports.isValidOptimizationProfile = void 0;
|
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const isValidOptimizationProfile = (profile) => {
|
|
6
6
|
return profile.every((timing) => {
|
|
7
|
-
const frames = renderer_1.RenderInternals.
|
|
7
|
+
const frames = renderer_1.RenderInternals.getFramesToRender(timing.frameRange, 1);
|
|
8
8
|
const values = Object.values(timing.timings);
|
|
9
|
-
return frames === values.length && values.every((v) => v > 0);
|
|
9
|
+
return frames.length === values.length && values.every((v) => v > 0);
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
12
|
exports.isValidOptimizationProfile = isValidOptimizationProfile;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TimingProfile } from './types';
|
|
1
|
+
import type { TimingProfile } from './types';
|
|
2
2
|
export declare const optimizeInvocationOrder: (profile: TimingProfile) => TimingProfile;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { OptimizationProfile } from './types';
|
|
2
|
-
export declare const planFrameRanges: ({
|
|
3
|
-
chunkCount: number;
|
|
1
|
+
import type { OptimizationProfile } from './types';
|
|
2
|
+
export declare const planFrameRanges: ({ framesPerLambda, optimization, shouldUseOptimization, frameRange, everyNthFrame, }: {
|
|
4
3
|
framesPerLambda: number;
|
|
5
4
|
optimization: OptimizationProfile | null;
|
|
6
5
|
shouldUseOptimization: boolean;
|
|
7
6
|
frameRange: [number, number];
|
|
7
|
+
everyNthFrame: number;
|
|
8
8
|
}) => {
|
|
9
9
|
chunks: [number, number][];
|
|
10
10
|
didUseOptimization: boolean;
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.planFrameRanges = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const can_use_optimization_1 = require("./can-use-optimization");
|
|
6
|
-
const planFrameRanges = ({
|
|
6
|
+
const planFrameRanges = ({ framesPerLambda, optimization, shouldUseOptimization, frameRange, everyNthFrame, }) => {
|
|
7
|
+
const framesToRender = renderer_1.RenderInternals.getFramesToRender(frameRange, everyNthFrame);
|
|
8
|
+
const chunkCount = Math.ceil(framesToRender.length / framesPerLambda);
|
|
7
9
|
if ((0, can_use_optimization_1.canUseOptimization)({
|
|
8
10
|
optimization,
|
|
9
11
|
framesPerLambda,
|
|
@@ -15,13 +17,12 @@ const planFrameRanges = ({ chunkCount, framesPerLambda, optimization, shouldUseO
|
|
|
15
17
|
didUseOptimization: true,
|
|
16
18
|
};
|
|
17
19
|
}
|
|
18
|
-
const
|
|
20
|
+
const firstFrame = frameRange[0];
|
|
19
21
|
return {
|
|
20
22
|
chunks: new Array(chunkCount).fill(1).map((_, i) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
];
|
|
23
|
+
const start = i * framesPerLambda * everyNthFrame + firstFrame;
|
|
24
|
+
const end = Math.min(framesToRender[framesToRender.length - 1], (i + 1) * framesPerLambda * everyNthFrame - 1) + firstFrame;
|
|
25
|
+
return [start, end];
|
|
25
26
|
}),
|
|
26
27
|
didUseOptimization: false,
|
|
27
28
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { OptimizationProfile } from './types';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { OptimizationProfile } from './types';
|
|
3
3
|
export declare const writeOptimization: ({ bucketName, optimization, compositionId, siteId, region, expectedBucketOwner, }: {
|
|
4
4
|
bucketName: string;
|
|
5
5
|
optimization: OptimizationProfile;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChunkTimingData, TimingProfile } from './types';
|
|
1
|
+
import type { ChunkTimingData, TimingProfile } from './types';
|
|
2
2
|
export declare const getTimingForFrame: (profile: TimingProfile, frame: number) => number;
|
|
3
3
|
export declare const getSimulatedTimingForFrameRange: (profile: TimingProfile, frameRange: [number, number]) => ChunkTimingData['timings'];
|
|
4
4
|
export declare const simulateFrameRanges: ({ profile, newFrameRanges, }: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ChunkTimingData, TimingProfile } from './types';
|
|
1
|
+
import type { ChunkTimingData, TimingProfile } from './types';
|
|
2
2
|
export declare const sortProfileByDuration: (profile: TimingProfile) => ChunkTimingData[];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LambdaVersions } from '../../shared/constants';
|
|
2
1
|
export declare type ObjectChunkTimingData = {
|
|
3
2
|
chunk: number;
|
|
4
3
|
frameRange: [number, number];
|
|
@@ -18,5 +17,6 @@ export declare type OptimizationProfile = {
|
|
|
18
17
|
newTiming: number;
|
|
19
18
|
createdFromRenderId: string;
|
|
20
19
|
framesPerLambda: number;
|
|
21
|
-
lambdaVersion:
|
|
20
|
+
lambdaVersion: string;
|
|
21
|
+
everyNthFrame: number;
|
|
22
22
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { RenderMetadata } from '../../shared/constants';
|
|
3
|
-
import { LambdaArchitecture } from '../../shared/validate-architecture';
|
|
4
|
-
import { OutputFileMetadata } from './find-output-file-in-bucket';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { RenderMetadata } from '../../shared/constants';
|
|
3
|
+
import type { LambdaArchitecture } from '../../shared/validate-architecture';
|
|
4
|
+
import type { OutputFileMetadata } from './find-output-file-in-bucket';
|
|
5
5
|
export declare const estimatePriceFromBucket: ({ contents, renderMetadata, memorySizeInMb, outputFileMetadata, architecture, diskSizeInMb, lambdasInvoked, }: {
|
|
6
6
|
contents: _Object[];
|
|
7
7
|
renderMetadata: RenderMetadata | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkIfRenderExists = void 0;
|
|
4
|
+
const constants_1 = require("../../shared/constants");
|
|
5
|
+
const checkIfRenderExists = (contents, renderId, bucketName, region) => {
|
|
6
|
+
const initializedExists = Boolean(contents.find((c) => {
|
|
7
|
+
var _a;
|
|
8
|
+
return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.initalizedMetadataKey)(renderId));
|
|
9
|
+
}));
|
|
10
|
+
if (!initializedExists) {
|
|
11
|
+
throw new TypeError(`No render with ID "${renderId}" found in bucket ${bucketName} and region ${region}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.checkIfRenderExists = checkIfRenderExists;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare const concatVideosS3: ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, }: {
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { LambdaCodec } from '../../shared/validate-lambda-codec';
|
|
3
|
+
export declare const concatVideosS3: ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, }: {
|
|
4
4
|
bucket: string;
|
|
5
5
|
expectedFiles: number;
|
|
6
6
|
onProgress: (frames: number, encodingStart: number) => void;
|
|
7
7
|
numberOfFrames: number;
|
|
8
8
|
renderId: string;
|
|
9
9
|
region: AwsRegion;
|
|
10
|
-
codec:
|
|
10
|
+
codec: LambdaCodec;
|
|
11
11
|
expectedBucketOwner: string;
|
|
12
|
+
fps: number;
|
|
13
|
+
numberOfGifLoops: number | null;
|
|
12
14
|
}) => Promise<{
|
|
13
15
|
outfile: string;
|
|
14
16
|
cleanupChunksProm: Promise<void>;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -108,7 +112,7 @@ const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expect
|
|
|
108
112
|
loop();
|
|
109
113
|
});
|
|
110
114
|
};
|
|
111
|
-
const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, }) => {
|
|
115
|
+
const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, }) => {
|
|
112
116
|
var _a;
|
|
113
117
|
const outdir = (0, path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
|
|
114
118
|
if ((0, fs_1.existsSync)(outdir)) {
|
|
@@ -137,6 +141,8 @@ const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrame
|
|
|
137
141
|
onProgress: (p) => onProgress(p, encodingStart),
|
|
138
142
|
numberOfFrames,
|
|
139
143
|
codec: codecForCombining,
|
|
144
|
+
fps,
|
|
145
|
+
numberOfGifLoops,
|
|
140
146
|
});
|
|
141
147
|
combine.end();
|
|
142
148
|
const cleanupChunksProm = ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(outdir, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
-
import { PostRenderData, RenderMetadata } from '../../shared/constants';
|
|
4
|
-
import { OutputFileMetadata } from './find-output-file-in-bucket';
|
|
5
|
-
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 { PostRenderData, RenderMetadata } from '../../shared/constants';
|
|
4
|
+
import type { OutputFileMetadata } from './find-output-file-in-bucket';
|
|
5
|
+
import type { EnhancedErrorInfo } from './write-lambda-error';
|
|
6
6
|
export declare const createPostRenderData: ({ renderId, region, memorySizeInMb, renderMetadata, contents, timeToEncode, errorExplanations, timeToDelete, outputFile, }: {
|
|
7
7
|
renderId: string;
|
|
8
8
|
expectedBucketOwner: string;
|
|
@@ -14,4 +14,4 @@ export declare const createPostRenderData: ({ renderId, region, memorySizeInMb,
|
|
|
14
14
|
timeToDelete: number;
|
|
15
15
|
errorExplanations: EnhancedErrorInfo[];
|
|
16
16
|
outputFile: OutputFileMetadata;
|
|
17
|
-
}) =>
|
|
17
|
+
}) => PostRenderData;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createPostRenderData = void 0;
|
|
4
4
|
const estimate_price_1 = require("../../api/estimate-price");
|
|
5
5
|
const constants_1 = require("../../shared/constants");
|
|
6
|
+
const get_most_expensive_chunks_1 = require("../../shared/get-most-expensive-chunks");
|
|
6
7
|
const parse_lambda_timings_key_1 = require("../../shared/parse-lambda-timings-key");
|
|
7
8
|
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
8
9
|
const get_current_architecture_1 = require("./get-current-architecture");
|
|
@@ -10,13 +11,11 @@ const get_files_to_delete_1 = require("./get-files-to-delete");
|
|
|
10
11
|
const get_lambdas_invoked_stats_1 = require("./get-lambdas-invoked-stats");
|
|
11
12
|
const get_retry_stats_1 = require("./get-retry-stats");
|
|
12
13
|
const get_time_to_finish_1 = require("./get-time-to-finish");
|
|
13
|
-
const
|
|
14
|
-
const createPostRenderData = async ({ renderId, region, memorySizeInMb, renderMetadata, contents, timeToEncode, errorExplanations, timeToDelete, outputFile, }) => {
|
|
15
|
-
var _a;
|
|
14
|
+
const createPostRenderData = ({ renderId, region, memorySizeInMb, renderMetadata, contents, timeToEncode, errorExplanations, timeToDelete, outputFile, }) => {
|
|
16
15
|
const initializedKeys = contents.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaTimingsPrefix)(renderId)); });
|
|
17
16
|
const parsedTimings = initializedKeys.map(({ Key }) => (0, parse_lambda_timings_key_1.parseLambdaTimingsKey)(Key));
|
|
18
17
|
const times = parsedTimings
|
|
19
|
-
.map((p) => p.rendered - p.start + OVERHEAD_TIME_PER_LAMBDA)
|
|
18
|
+
.map((p) => p.rendered - p.start + get_most_expensive_chunks_1.OVERHEAD_TIME_PER_LAMBDA)
|
|
20
19
|
.reduce((a, b) => a + b);
|
|
21
20
|
const cost = (0, estimate_price_1.estimatePrice)({
|
|
22
21
|
durationInMiliseconds: times,
|
|
@@ -42,12 +41,18 @@ const createPostRenderData = async ({ renderId, region, memorySizeInMb, renderMe
|
|
|
42
41
|
const renderSize = contents
|
|
43
42
|
.map((c) => { var _a; return (_a = c.Size) !== null && _a !== void 0 ? _a : 0; })
|
|
44
43
|
.reduce((a, b) => a + b, 0);
|
|
45
|
-
const { timeToInvokeLambdas } = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)(
|
|
44
|
+
const { timeToInvokeLambdas } = (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
|
|
45
|
+
contents,
|
|
46
|
+
renderId,
|
|
47
|
+
estimatedRenderLambdaInvokations: renderMetadata.estimatedRenderLambdaInvokations,
|
|
48
|
+
startDate: renderMetadata.startedDate,
|
|
49
|
+
checkIfAllLambdasWereInvoked: false,
|
|
50
|
+
});
|
|
46
51
|
const retriesInfo = (0, get_retry_stats_1.getRetryStats)({ contents, renderId });
|
|
47
52
|
if (timeToInvokeLambdas === null) {
|
|
48
53
|
throw new Error('should have timing for all lambdas');
|
|
49
54
|
}
|
|
50
|
-
|
|
55
|
+
return {
|
|
51
56
|
cost: {
|
|
52
57
|
currency: 'USD',
|
|
53
58
|
disclaimer: 'Estimated cost for lambda invocations only. Does not include cost for S3 storage and data transfer.',
|
|
@@ -78,7 +83,7 @@ const createPostRenderData = async ({ renderId, region, memorySizeInMb, renderMe
|
|
|
78
83
|
}),
|
|
79
84
|
timeToInvokeLambdas,
|
|
80
85
|
retriesInfo,
|
|
86
|
+
mostExpensiveFrameRanges: (0, get_most_expensive_chunks_1.getMostExpensiveChunks)(parsedTimings, renderMetadata.framesPerLambda),
|
|
81
87
|
};
|
|
82
|
-
return data;
|
|
83
88
|
};
|
|
84
89
|
exports.createPostRenderData = createPostRenderData;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
-
import { CleanupJob } from './get-files-to-delete';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
3
|
+
import type { CleanupJob } from './get-files-to-delete';
|
|
4
4
|
export declare const cleanupFiles: ({ bucket, region, contents, jobs, }: {
|
|
5
5
|
bucket: string;
|
|
6
6
|
region: AwsRegion;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { OutNameOutput, RenderMetadata } from '../../defaults';
|
|
1
|
+
import type { OutNameOutput, RenderMetadata } from '../../defaults';
|
|
2
2
|
export declare const getExpectedOutName: (renderMetadata: RenderMetadata, bucketName: string) => OutNameOutput;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../..';
|
|
2
|
-
import { RenderMetadata } from '../../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../..';
|
|
2
|
+
import type { RenderMetadata } from '../../shared/constants';
|
|
3
3
|
export declare type OutputFileMetadata = {
|
|
4
4
|
url: string;
|
|
5
5
|
size: number;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findOutputFileInBucket = void 0;
|
|
4
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const suggested_policy_1 = require("../../api/iam-validation/suggested-policy");
|
|
5
6
|
const aws_clients_1 = require("../../shared/aws-clients");
|
|
6
7
|
const expected_out_name_1 = require("./expected-out-name");
|
|
7
8
|
const get_output_url_from_metadata_1 = require("./get-output-url-from-metadata");
|
|
@@ -26,6 +27,11 @@ const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, }) =
|
|
|
26
27
|
if (err.name === 'NotFound') {
|
|
27
28
|
return null;
|
|
28
29
|
}
|
|
30
|
+
if (err.message === 'UnknownError' ||
|
|
31
|
+
err.$metadata
|
|
32
|
+
.httpStatusCode === 403) {
|
|
33
|
+
throw new Error(`Unable to access item "${expectedOutData.key}" from bucket "${expectedOutData.renderBucketName}". The "${suggested_policy_1.ROLE_NAME}" role must have permission for both "s3:GetObject" and "s3:ListBucket" actions.`);
|
|
34
|
+
}
|
|
29
35
|
throw err;
|
|
30
36
|
}
|
|
31
37
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CostsInfo } from '../../shared/constants';
|
|
1
|
+
import type { CostsInfo } from '../../shared/constants';
|
|
2
2
|
export declare const formatCostsInfo: (accrued: number) => CostsInfo;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { ChromiumOptions
|
|
1
|
+
import type { ChromiumOptions } from '@remotion/renderer';
|
|
2
|
+
import { openBrowser } from '@remotion/renderer';
|
|
2
3
|
export declare const getBrowserInstance: (shouldDumpIo: boolean, chromiumOptions: ChromiumOptions) => ReturnType<typeof openBrowser>;
|
|
@@ -20,6 +20,7 @@ const waitForLaunched = () => {
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
const getBrowserInstance = async (shouldDumpIo, chromiumOptions) => {
|
|
23
|
+
var _a;
|
|
23
24
|
if (launching) {
|
|
24
25
|
await waitForLaunched();
|
|
25
26
|
if (!_browserInstance) {
|
|
@@ -33,8 +34,9 @@ const getBrowserInstance = async (shouldDumpIo, chromiumOptions) => {
|
|
|
33
34
|
launching = true;
|
|
34
35
|
const execPath = await (0, get_chromium_executable_path_1.executablePath)();
|
|
35
36
|
const actualChromiumOptions = {
|
|
36
|
-
gl: 'swiftshader',
|
|
37
37
|
...chromiumOptions,
|
|
38
|
+
// Override the `null` value, which might come from CLI with swANGLE
|
|
39
|
+
gl: (_a = chromiumOptions.gl) !== null && _a !== void 0 ? _a : 'swangle',
|
|
38
40
|
};
|
|
39
41
|
_browserInstance = await (0, renderer_1.openBrowser)('chrome', {
|
|
40
42
|
browserExecutable: execPath,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
2
|
-
import { CleanupInfo } from '../../shared/constants';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { CleanupInfo } from '../../shared/constants';
|
|
3
3
|
export declare const getCleanupProgress: ({ contents, output, chunkCount, renderId, }: {
|
|
4
4
|
contents: _Object[];
|
|
5
5
|
output: string | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LambdaArchitecture } from '../../shared/validate-architecture';
|
|
1
|
+
import type { LambdaArchitecture } from '../../shared/validate-architecture';
|
|
2
2
|
export declare const getCurrentArchitecture: () => LambdaArchitecture;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EncodingProgress } from '../../defaults';
|
|
2
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
1
|
+
import type { EncodingProgress } from '../../defaults';
|
|
2
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
3
3
|
export declare const getEncodingMetadata: ({ exists, bucketName, renderId, region, expectedBucketOwner, }: {
|
|
4
4
|
exists: boolean;
|
|
5
5
|
bucketName: string;
|
|
@@ -3,16 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getFilesToDelete = void 0;
|
|
4
4
|
const constants_1 = require("../../shared/constants");
|
|
5
5
|
const getFilesToDelete = ({ chunkCount, renderId, }) => {
|
|
6
|
-
const chunks = new Array(chunkCount).fill(true).map((
|
|
6
|
+
const chunks = new Array(chunkCount).fill(true).map((_x, i) => (0, constants_1.chunkKeyForIndex)({
|
|
7
7
|
index: i,
|
|
8
8
|
renderId,
|
|
9
9
|
}));
|
|
10
10
|
const lambdaTimings = new Array(chunkCount)
|
|
11
11
|
.fill(true)
|
|
12
|
-
.map((
|
|
12
|
+
.map((_x, i) => (0, constants_1.lambdaTimingsPrefixForChunk)(renderId, i));
|
|
13
13
|
return [
|
|
14
14
|
{
|
|
15
|
-
name: (0, constants_1.
|
|
15
|
+
name: (0, constants_1.lambdaChunkInitializedPrefix)(renderId),
|
|
16
16
|
type: 'prefix',
|
|
17
17
|
},
|
|
18
18
|
...chunks.map((i) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EncodingProgress, RenderMetadata } from '../../shared/constants';
|
|
2
|
-
import { LambdaInvokeStats } from './get-lambdas-invoked-stats';
|
|
1
|
+
import type { EncodingProgress, RenderMetadata } from '../../shared/constants';
|
|
2
|
+
import type { LambdaInvokeStats } from './get-lambdas-invoked-stats';
|
|
3
3
|
export declare const getFinalEncodingStatus: ({ encodingStatus: encodingProgress, renderMetadata, outputFileExists, lambdaInvokeStatus, }: {
|
|
4
4
|
encodingStatus: EncodingProgress | null;
|
|
5
5
|
renderMetadata: RenderMetadata | null;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { _Object } from '@aws-sdk/client-s3';
|
|
1
|
+
import type { _Object } from '@aws-sdk/client-s3';
|
|
2
2
|
export declare type LambdaInvokeStats = {
|
|
3
3
|
timeToInvokeLambdas: number | null;
|
|
4
|
-
allLambdasInvoked: boolean;
|
|
5
4
|
lambdasInvoked: number;
|
|
6
5
|
};
|
|
7
|
-
export declare const getLambdasInvokedStats: (contents
|
|
6
|
+
export declare const getLambdasInvokedStats: ({ contents, renderId, estimatedRenderLambdaInvokations, startDate, checkIfAllLambdasWereInvoked, }: {
|
|
7
|
+
contents: _Object[];
|
|
8
|
+
renderId: string;
|
|
9
|
+
estimatedRenderLambdaInvokations: number | null;
|
|
10
|
+
startDate: number | null;
|
|
11
|
+
checkIfAllLambdasWereInvoked: boolean;
|
|
12
|
+
}) => LambdaInvokeStats;
|
|
@@ -4,18 +4,18 @@ exports.getLambdasInvokedStats = void 0;
|
|
|
4
4
|
const constants_1 = require("../../shared/constants");
|
|
5
5
|
const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
|
|
6
6
|
const min_max_1 = require("./min-max");
|
|
7
|
-
const getLambdasInvokedStats = (contents, renderId, estimatedRenderLambdaInvokations, startDate) => {
|
|
7
|
+
const getLambdasInvokedStats = ({ contents, renderId, estimatedRenderLambdaInvokations, startDate, checkIfAllLambdasWereInvoked, }) => {
|
|
8
|
+
var _a;
|
|
8
9
|
const lambdasInvoked = contents
|
|
9
|
-
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.
|
|
10
|
+
.filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
|
|
10
11
|
.filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt === 1);
|
|
11
|
-
const allLambdasInvoked =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
: null;
|
|
12
|
+
const allLambdasInvoked = !checkIfAllLambdasWereInvoked ||
|
|
13
|
+
lambdasInvoked.length === estimatedRenderLambdaInvokations;
|
|
14
|
+
const timeToInvokeLambdas = !allLambdasInvoked || startDate === null
|
|
15
|
+
? null
|
|
16
|
+
: ((_a = (0, min_max_1.max)(lambdasInvoked.map((l) => { var _a; return (_a = l.LastModified) === null || _a === void 0 ? void 0 : _a.getTime(); }))) !== null && _a !== void 0 ? _a : 0) - startDate;
|
|
16
17
|
return {
|
|
17
18
|
timeToInvokeLambdas,
|
|
18
|
-
allLambdasInvoked,
|
|
19
19
|
lambdasInvoked: lambdasInvoked.length,
|
|
20
20
|
};
|
|
21
21
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { RenderMetadata } from '../../defaults';
|
|
1
|
+
import type { RenderMetadata } from '../../defaults';
|
|
2
2
|
export declare const getOutputUrlFromMetadata: (renderMetadata: RenderMetadata, bucketName: string) => string;
|