@remotion/serverless 4.0.244 → 4.0.246
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/.turbo/turbo-make.log +1 -1
- package/LICENSE.md +1 -1
- package/dist/best-frames-per-function-param.d.ts +1 -0
- package/dist/best-frames-per-function-param.js +17 -0
- package/dist/calculate-chunk-times.d.ts +5 -0
- package/dist/calculate-chunk-times.js +29 -0
- package/dist/can-concat-seamlessly.d.ts +3 -0
- package/dist/can-concat-seamlessly.js +17 -0
- package/dist/cleanup-props.d.ts +9 -0
- package/dist/cleanup-props.js +23 -0
- package/dist/cleanup-serialized-input-props.d.ts +15 -0
- package/dist/cleanup-serialized-input-props.js +34 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.js +30 -12
- package/dist/compress-props.d.ts +6 -2
- package/dist/compress-props.js +5 -3
- package/dist/concat-videos.d.ts +25 -0
- package/dist/concat-videos.js +53 -0
- package/dist/constants.d.ts +39 -3
- package/dist/constants.js +8 -1
- package/dist/create-post-render-data.d.ts +20 -0
- package/dist/create-post-render-data.js +68 -0
- package/dist/docs-url.d.ts +1 -0
- package/dist/docs-url.js +4 -0
- package/dist/estimate-price-from-bucket.d.ts +15 -0
- package/dist/estimate-price-from-bucket.js +31 -0
- package/dist/expected-out-name.d.ts +1 -1
- package/dist/find-output-file-in-bucket.d.ts +16 -0
- package/dist/find-output-file-in-bucket.js +41 -0
- package/dist/format-costs-info.d.ts +2 -0
- package/dist/format-costs-info.js +23 -0
- package/dist/get-browser-instance.d.ts +5 -12
- package/dist/get-browser-instance.js +8 -7
- package/dist/get-custom-out-name.d.ts +1 -1
- package/dist/get-or-create-bucket.d.ts +1 -1
- package/dist/get-overall-progress-from-storage.d.ts +11 -0
- package/dist/get-overall-progress-from-storage.js +25 -0
- package/dist/get-overall-progress.d.ts +9 -0
- package/dist/get-overall-progress.js +23 -0
- package/dist/handlers/check-version-mismatch.d.ts +8 -0
- package/dist/handlers/check-version-mismatch.js +23 -0
- package/dist/handlers/compositions.d.ts +16 -0
- package/dist/handlers/compositions.js +81 -0
- package/dist/handlers/launch.d.ts +18 -0
- package/dist/handlers/launch.js +600 -0
- package/dist/handlers/progress.d.ts +16 -0
- package/dist/handlers/progress.js +54 -0
- package/dist/handlers/renderer.d.ts +24 -0
- package/dist/handlers/renderer.js +344 -0
- package/dist/handlers/start.d.ts +19 -0
- package/dist/handlers/start.js +104 -0
- package/dist/handlers/still.d.ts +21 -0
- package/dist/handlers/still.js +335 -0
- package/dist/index.d.ts +21 -5
- package/dist/index.js +54 -7
- package/dist/info.d.ts +1 -1
- package/dist/inner-routine.d.ts +22 -0
- package/dist/inner-routine.js +267 -0
- package/dist/inspect-error.d.ts +4 -0
- package/dist/inspect-error.js +39 -0
- package/dist/invoke-webhook.d.ts +42 -0
- package/dist/invoke-webhook.js +116 -0
- package/dist/is-warm.d.ts +2 -0
- package/dist/is-warm.js +10 -0
- package/dist/leak-detection.d.ts +4 -0
- package/dist/leak-detection.js +40 -0
- package/dist/make-bucket-name.d.ts +1 -1
- package/dist/make-timeout-error.d.ts +13 -0
- package/dist/make-timeout-error.js +32 -0
- package/dist/make-timeout-message.d.ts +12 -0
- package/dist/make-timeout-message.js +76 -0
- package/dist/merge-chunks.d.ts +38 -0
- package/dist/merge-chunks.js +92 -0
- package/dist/min-max.d.ts +2 -0
- package/dist/min-max.js +33 -0
- package/dist/most-expensive-chunks.d.ts +13 -0
- package/dist/most-expensive-chunks.js +28 -0
- package/dist/on-downloads-helpers.d.ts +2 -0
- package/dist/on-downloads-helpers.js +29 -0
- package/dist/overall-render-progress.d.ts +59 -0
- package/dist/overall-render-progress.js +180 -0
- package/dist/plan-frame-ranges.d.ts +7 -0
- package/dist/plan-frame-ranges.js +17 -0
- package/dist/print-logging-grep-helper.d.ts +4 -0
- package/dist/print-logging-grep-helper.js +12 -0
- package/dist/progress.d.ts +16 -0
- package/dist/progress.js +254 -0
- package/dist/provider-implementation.d.ts +152 -3
- package/dist/render-has-audio-video.d.ts +6 -0
- package/dist/render-has-audio-video.js +21 -0
- package/dist/render-metadata.d.ts +1 -1
- package/dist/render-progress.d.ts +51 -0
- package/dist/return-values.d.ts +38 -0
- package/dist/return-values.js +2 -0
- package/dist/stackback.d.ts +6 -0
- package/dist/stackback.js +59 -0
- package/dist/stream-renderer.d.ts +17 -0
- package/dist/stream-renderer.js +148 -0
- package/dist/streaming/streaming.d.ts +6 -6
- package/dist/streaming/streaming.js +3 -3
- package/dist/types.d.ts +55 -0
- package/dist/types.js +2 -0
- package/dist/validate-composition.d.ts +1 -1
- package/dist/validate-composition.js +11 -1
- package/dist/validate-download-behavior.d.ts +1 -0
- package/dist/validate-download-behavior.js +21 -0
- package/dist/validate-frames-per-function.d.ts +4 -0
- package/dist/validate-frames-per-function.js +29 -0
- package/dist/validate-privacy.d.ts +2 -0
- package/dist/validate-privacy.js +14 -0
- package/dist/validate.d.ts +4 -0
- package/dist/validate.js +8 -0
- package/dist/why-is-node-running.d.ts +15 -0
- package/dist/why-is-node-running.js +89 -0
- package/dist/{write-lambda-error.d.ts → write-error-to-storage.d.ts} +4 -4
- package/package.json +6 -5
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/compositions.d.ts +0 -11
- package/dist/compositions.js +0 -82
- package/dist/still.d.ts +0 -28
- /package/dist/{still.js → render-progress.js} +0 -0
- /package/dist/{write-lambda-error.js → write-error-to-storage.js} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.estimatePriceFromMetadata = void 0;
|
|
4
|
+
const calculate_chunk_times_1 = require("./calculate-chunk-times");
|
|
5
|
+
const estimatePriceFromMetadata = ({ renderMetadata, memorySizeInMb, diskSizeInMb, functionsInvoked, timings, region, providerSpecifics, }) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
if (!renderMetadata) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const elapsedTime = Math.max(0, Date.now() - ((_a = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.startedDate) !== null && _a !== void 0 ? _a : 0));
|
|
11
|
+
const unfinished = Math.max(0, ((_b = renderMetadata === null || renderMetadata === void 0 ? void 0 : renderMetadata.totalChunks) !== null && _b !== void 0 ? _b : 0) - timings.length);
|
|
12
|
+
const timeElapsedOfUnfinished = new Array(unfinished)
|
|
13
|
+
.fill(true)
|
|
14
|
+
.map(() => elapsedTime)
|
|
15
|
+
.reduce((a, b) => a + b, 0);
|
|
16
|
+
const estimatedBillingDurationInMilliseconds = (0, calculate_chunk_times_1.calculateChunkTimes)({
|
|
17
|
+
type: 'combined-time-for-cost-calculation',
|
|
18
|
+
timings,
|
|
19
|
+
}) + timeElapsedOfUnfinished;
|
|
20
|
+
const accruedSoFar = Number(providerSpecifics
|
|
21
|
+
.estimatePrice({
|
|
22
|
+
region,
|
|
23
|
+
durationInMilliseconds: estimatedBillingDurationInMilliseconds,
|
|
24
|
+
memorySizeInMb,
|
|
25
|
+
diskSizeInMb,
|
|
26
|
+
lambdasInvoked: functionsInvoked,
|
|
27
|
+
})
|
|
28
|
+
.toPrecision(5));
|
|
29
|
+
return { accruedSoFar, estimatedBillingDurationInMilliseconds };
|
|
30
|
+
};
|
|
31
|
+
exports.estimatePriceFromMetadata = estimatePriceFromMetadata;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CustomCredentials, type OutNameInput, type OutNameOutput } from './constants';
|
|
2
2
|
import type { RenderMetadata } from './render-metadata';
|
|
3
|
-
import type { CloudProvider } from './
|
|
3
|
+
import type { CloudProvider } from './types';
|
|
4
4
|
export declare const getCredentialsFromOutName: <Provider extends CloudProvider>(name: OutNameInput<Provider> | null) => CustomCredentials<Provider> | null;
|
|
5
5
|
export declare const getExpectedOutName: <Provider extends CloudProvider>(renderMetadata: RenderMetadata<Provider>, bucketName: string, customCredentials: CustomCredentials<Provider> | null) => OutNameOutput<Provider>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CustomCredentials } from './constants';
|
|
2
|
+
import type { ProviderSpecifics } from './provider-implementation';
|
|
3
|
+
import type { RenderMetadata } from './render-metadata';
|
|
4
|
+
import type { CloudProvider } from './types';
|
|
5
|
+
export type OutputFileMetadata = {
|
|
6
|
+
url: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const findOutputFileInBucket: <Provider extends CloudProvider>({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, }: {
|
|
9
|
+
region: Provider["region"];
|
|
10
|
+
renderMetadata: RenderMetadata<Provider>;
|
|
11
|
+
bucketName: string;
|
|
12
|
+
customCredentials: CustomCredentials<Provider> | null;
|
|
13
|
+
currentRegion: Provider["region"];
|
|
14
|
+
providerSpecifics: ProviderSpecifics<Provider>;
|
|
15
|
+
forcePathStyle: boolean;
|
|
16
|
+
}) => Promise<OutputFileMetadata | null>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findOutputFileInBucket = void 0;
|
|
4
|
+
const expected_out_name_1 = require("./expected-out-name");
|
|
5
|
+
const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, }) => {
|
|
6
|
+
if (!renderMetadata) {
|
|
7
|
+
throw new Error('unexpectedly did not get renderMetadata');
|
|
8
|
+
}
|
|
9
|
+
const { renderBucketName, key } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, customCredentials);
|
|
10
|
+
try {
|
|
11
|
+
await providerSpecifics.headFile({
|
|
12
|
+
bucketName,
|
|
13
|
+
key,
|
|
14
|
+
region,
|
|
15
|
+
customCredentials,
|
|
16
|
+
forcePathStyle,
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
url: providerSpecifics.getOutputUrl({
|
|
20
|
+
renderMetadata,
|
|
21
|
+
bucketName,
|
|
22
|
+
customCredentials,
|
|
23
|
+
currentRegion,
|
|
24
|
+
}).url,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err.name === 'NotFound') {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (err.message === 'UnknownError' ||
|
|
32
|
+
err.$metadata
|
|
33
|
+
.httpStatusCode === 403) {
|
|
34
|
+
throw new Error(`Unable to access item "${key}" from bucket "${renderBucketName}" ${(customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.endpoint)
|
|
35
|
+
? `(S3 Endpoint = ${customCredentials === null || customCredentials === void 0 ? void 0 : customCredentials.endpoint})`
|
|
36
|
+
: ''}. The Lambda role must have permission for both "s3:GetObject" and "s3:ListBucket" actions.`);
|
|
37
|
+
}
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.findOutputFileInBucket = findOutputFileInBucket;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatCostsInfo = void 0;
|
|
4
|
+
const display = (accrued) => {
|
|
5
|
+
if (accrued < 0.001) {
|
|
6
|
+
return '<$0.001';
|
|
7
|
+
}
|
|
8
|
+
return new Intl.NumberFormat('en-US', {
|
|
9
|
+
currency: 'USD',
|
|
10
|
+
style: 'currency',
|
|
11
|
+
currencyDisplay: 'narrowSymbol',
|
|
12
|
+
minimumFractionDigits: 3,
|
|
13
|
+
}).format(accrued);
|
|
14
|
+
};
|
|
15
|
+
const formatCostsInfo = (accrued) => {
|
|
16
|
+
return {
|
|
17
|
+
accruedSoFar: accrued,
|
|
18
|
+
displayCost: display(accrued),
|
|
19
|
+
currency: 'USD',
|
|
20
|
+
disclaimer: 'Estimated cost only. Does not include charges for other AWS services.',
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
exports.formatCostsInfo = formatCostsInfo;
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LogLevel, openBrowser } from '@remotion/renderer';
|
|
2
2
|
import type { Await } from './await';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
type LaunchedBrowser = {
|
|
3
|
+
import type { GetBrowserInstance } from './provider-implementation';
|
|
4
|
+
export type LaunchedBrowser = {
|
|
6
5
|
instance: Await<ReturnType<typeof openBrowser>>;
|
|
7
6
|
configurationString: string;
|
|
8
7
|
};
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
logLevel: LogLevel;
|
|
12
|
-
indent: boolean;
|
|
13
|
-
chromiumOptions: ChromiumOptions;
|
|
14
|
-
providerSpecifics: ProviderSpecifics<Provider>;
|
|
15
|
-
}) => Promise<LaunchedBrowser>;
|
|
16
|
-
export {};
|
|
8
|
+
export declare const forgetBrowserEventLoopImplementation: (logLevel: LogLevel) => void;
|
|
9
|
+
export declare const getBrowserInstanceImplementation: GetBrowserInstance;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getBrowserInstanceImplementation = exports.forgetBrowserEventLoopImplementation = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const version_1 = require("remotion/version");
|
|
6
6
|
const makeConfigurationString = (options, logLevel) => {
|
|
@@ -31,13 +31,13 @@ const waitForLaunched = () => {
|
|
|
31
31
|
check();
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
const
|
|
34
|
+
const forgetBrowserEventLoopImplementation = (logLevel) => {
|
|
35
35
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Keeping browser open for next invocation');
|
|
36
36
|
_browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.instance.runner.forgetEventLoop();
|
|
37
37
|
_browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.instance.runner.deleteBrowserCaches();
|
|
38
38
|
};
|
|
39
|
-
exports.
|
|
40
|
-
const
|
|
39
|
+
exports.forgetBrowserEventLoopImplementation = forgetBrowserEventLoopImplementation;
|
|
40
|
+
const getBrowserInstanceImplementation = async ({ logLevel, indent, chromiumOptions, providerSpecifics, insideFunctionSpecifics, }) => {
|
|
41
41
|
var _a;
|
|
42
42
|
const actualChromiumOptions = {
|
|
43
43
|
...chromiumOptions,
|
|
@@ -73,7 +73,7 @@ const getBrowserInstance = async ({ logLevel, indent, chromiumOptions, providerS
|
|
|
73
73
|
instance.on('disconnected', () => {
|
|
74
74
|
var _a;
|
|
75
75
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Browser disconnected or crashed.');
|
|
76
|
-
|
|
76
|
+
insideFunctionSpecifics.forgetBrowserEventLoop(logLevel);
|
|
77
77
|
(_a = _browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.instance) === null || _a === void 0 ? void 0 : _a.close(true, logLevel, indent).catch((err) => {
|
|
78
78
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Could not close browser instance', err);
|
|
79
79
|
});
|
|
@@ -91,15 +91,16 @@ const getBrowserInstance = async ({ logLevel, indent, chromiumOptions, providerS
|
|
|
91
91
|
_browserInstance.instance.runner.rememberEventLoop();
|
|
92
92
|
await _browserInstance.instance.close(true, logLevel, indent);
|
|
93
93
|
_browserInstance = null;
|
|
94
|
-
return
|
|
94
|
+
return insideFunctionSpecifics.getBrowserInstance({
|
|
95
95
|
logLevel,
|
|
96
96
|
indent,
|
|
97
97
|
chromiumOptions,
|
|
98
98
|
providerSpecifics,
|
|
99
|
+
insideFunctionSpecifics,
|
|
99
100
|
});
|
|
100
101
|
}
|
|
101
102
|
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Warm function, reusing browser instance');
|
|
102
103
|
_browserInstance.instance.runner.rememberEventLoop();
|
|
103
104
|
return _browserInstance;
|
|
104
105
|
};
|
|
105
|
-
exports.
|
|
106
|
+
exports.getBrowserInstanceImplementation = getBrowserInstanceImplementation;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CustomCredentials, OutNameInput } from './constants';
|
|
2
2
|
import type { RenderMetadata } from './render-metadata';
|
|
3
|
-
import type { CloudProvider } from './
|
|
3
|
+
import type { CloudProvider } from './types';
|
|
4
4
|
export declare const getCustomOutName: <Provider extends CloudProvider>({ renderMetadata, customCredentials, }: {
|
|
5
5
|
renderMetadata: RenderMetadata<Provider>;
|
|
6
6
|
customCredentials: CustomCredentials<Provider> | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CustomCredentials } from './constants';
|
|
2
2
|
import type { ProviderSpecifics } from './provider-implementation';
|
|
3
|
-
import type { CloudProvider } from './
|
|
3
|
+
import type { CloudProvider } from './types';
|
|
4
4
|
type GetOrCreateBucketInputInner<Provider extends CloudProvider> = {
|
|
5
5
|
region: Provider['region'];
|
|
6
6
|
enableFolderExpiry: boolean | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OverallRenderProgress } from './overall-render-progress';
|
|
2
|
+
import type { ProviderSpecifics } from './provider-implementation';
|
|
3
|
+
import type { CloudProvider } from './types';
|
|
4
|
+
export declare const getOverallProgressFromStorage: <Provider extends CloudProvider>({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, forcePathStyle, }: {
|
|
5
|
+
renderId: string;
|
|
6
|
+
expectedBucketOwner: string | null;
|
|
7
|
+
bucketName: string;
|
|
8
|
+
region: Provider["region"];
|
|
9
|
+
providerSpecifics: ProviderSpecifics<Provider>;
|
|
10
|
+
forcePathStyle: boolean;
|
|
11
|
+
}) => Promise<OverallRenderProgress<Provider>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOverallProgressFromStorage = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const stream_to_string_1 = require("./stream-to-string");
|
|
6
|
+
const getOverallProgressFromStorage = async ({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, forcePathStyle, }) => {
|
|
7
|
+
try {
|
|
8
|
+
const Body = await providerSpecifics.readFile({
|
|
9
|
+
bucketName,
|
|
10
|
+
key: (0, constants_1.overallProgressKey)(renderId),
|
|
11
|
+
expectedBucketOwner,
|
|
12
|
+
region,
|
|
13
|
+
forcePathStyle,
|
|
14
|
+
});
|
|
15
|
+
const str = await (0, stream_to_string_1.streamToString)(Body);
|
|
16
|
+
return JSON.parse(str);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
if (err.name === 'NotFound') {
|
|
20
|
+
throw new TypeError(`No render with ID "${renderId}" found in bucket ${bucketName} and region ${region}`);
|
|
21
|
+
}
|
|
22
|
+
throw err;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.getOverallProgressFromStorage = getOverallProgressFromStorage;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const getOverallProgress: ({ encoding, invoking, frames, invokedLambda, visitedServeUrl, gotComposition, combining, }: {
|
|
2
|
+
invokedLambda: number;
|
|
3
|
+
visitedServeUrl: number | null;
|
|
4
|
+
gotComposition: number | null;
|
|
5
|
+
encoding: number;
|
|
6
|
+
invoking: number;
|
|
7
|
+
frames: number;
|
|
8
|
+
combining: number;
|
|
9
|
+
}) => number;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOverallProgress = void 0;
|
|
4
|
+
const weights = {
|
|
5
|
+
evaluating: 0.1,
|
|
6
|
+
encoding: 0.1,
|
|
7
|
+
frames: 0.6,
|
|
8
|
+
invoking: 0.1,
|
|
9
|
+
combining: 0.1,
|
|
10
|
+
};
|
|
11
|
+
const getOverallProgress = ({ encoding, invoking, frames, invokedLambda, visitedServeUrl, gotComposition, combining, }) => {
|
|
12
|
+
const evaluationProgress = [
|
|
13
|
+
Boolean(invokedLambda),
|
|
14
|
+
Boolean(visitedServeUrl),
|
|
15
|
+
Boolean(gotComposition),
|
|
16
|
+
].reduce((a, b) => Number(a) + Number(b), 0) / 3;
|
|
17
|
+
return (evaluationProgress * weights.evaluating +
|
|
18
|
+
encoding * weights.encoding +
|
|
19
|
+
invoking * weights.invoking +
|
|
20
|
+
frames * weights.frames +
|
|
21
|
+
combining * weights.combining);
|
|
22
|
+
};
|
|
23
|
+
exports.getOverallProgress = getOverallProgress;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ServerlessPayload } from '../constants';
|
|
2
|
+
import type { InsideFunctionSpecifics } from '../provider-implementation';
|
|
3
|
+
import type { CloudProvider } from '../types';
|
|
4
|
+
export declare const checkVersionMismatch: <Provider extends CloudProvider>({ params, insideFunctionSpecifics, apiName, }: {
|
|
5
|
+
params: ServerlessPayload<Provider>;
|
|
6
|
+
insideFunctionSpecifics: InsideFunctionSpecifics;
|
|
7
|
+
apiName: string;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkVersionMismatch = void 0;
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const checkVersionMismatch = ({ params, insideFunctionSpecifics, apiName, }) => {
|
|
7
|
+
if (params.type === constants_1.ServerlessRoutines.info) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (params.type === constants_1.ServerlessRoutines.renderer) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (params.type === constants_1.ServerlessRoutines.launch) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (params.version !== version_1.VERSION) {
|
|
17
|
+
if (!params.version) {
|
|
18
|
+
throw new Error(`Version mismatch: When calling ${apiName}, you called the function ${insideFunctionSpecifics.getCurrentFunctionName()} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call ${apiName}. See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`Version mismatch: When calling ${apiName}, you passed ${insideFunctionSpecifics.getCurrentFunctionName()} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${params.version}. Deploy a new function and use it to call getRenderProgress(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.checkVersionMismatch = checkVersionMismatch;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ServerlessPayload } from '../constants';
|
|
2
|
+
import type { InsideFunctionSpecifics, ProviderSpecifics } from '../provider-implementation';
|
|
3
|
+
import type { CloudProvider } from '../types';
|
|
4
|
+
type Options = {
|
|
5
|
+
expectedBucketOwner: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const compositionsHandler: <Provider extends CloudProvider>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
|
|
8
|
+
params: ServerlessPayload<Provider>;
|
|
9
|
+
options: Options;
|
|
10
|
+
providerSpecifics: ProviderSpecifics<Provider>;
|
|
11
|
+
insideFunctionSpecifics: InsideFunctionSpecifics;
|
|
12
|
+
}) => Promise<{
|
|
13
|
+
compositions: import("remotion").VideoConfig[];
|
|
14
|
+
type: "success";
|
|
15
|
+
}>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compositionsHandler = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
const compress_props_1 = require("../compress-props");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const get_or_create_bucket_1 = require("../get-or-create-bucket");
|
|
8
|
+
const check_version_mismatch_1 = require("./check-version-mismatch");
|
|
9
|
+
const compositionsHandler = async ({ params, options, providerSpecifics, insideFunctionSpecifics, }) => {
|
|
10
|
+
var _a;
|
|
11
|
+
if (params.type !== constants_1.ServerlessRoutines.compositions) {
|
|
12
|
+
throw new TypeError('Expected info compositions');
|
|
13
|
+
}
|
|
14
|
+
(0, check_version_mismatch_1.checkVersionMismatch)({
|
|
15
|
+
apiName: 'getCompositionsOnLambda()',
|
|
16
|
+
insideFunctionSpecifics,
|
|
17
|
+
params,
|
|
18
|
+
});
|
|
19
|
+
try {
|
|
20
|
+
const region = providerSpecifics.getCurrentRegionInFunction();
|
|
21
|
+
const browserInstancePromise = insideFunctionSpecifics.getBrowserInstance({
|
|
22
|
+
logLevel: params.logLevel,
|
|
23
|
+
indent: false,
|
|
24
|
+
chromiumOptions: params.chromiumOptions,
|
|
25
|
+
providerSpecifics,
|
|
26
|
+
insideFunctionSpecifics,
|
|
27
|
+
});
|
|
28
|
+
const bucketNamePromise = params.bucketName
|
|
29
|
+
? Promise.resolve(params.bucketName)
|
|
30
|
+
: (0, get_or_create_bucket_1.internalGetOrCreateBucket)({
|
|
31
|
+
region,
|
|
32
|
+
enableFolderExpiry: null,
|
|
33
|
+
customCredentials: null,
|
|
34
|
+
providerSpecifics,
|
|
35
|
+
forcePathStyle: params.forcePathStyle,
|
|
36
|
+
skipPutAcl: false,
|
|
37
|
+
}).then((b) => b.bucketName);
|
|
38
|
+
const bucketName = await bucketNamePromise;
|
|
39
|
+
const serializedInputPropsWithCustomSchema = await (0, compress_props_1.decompressInputProps)({
|
|
40
|
+
bucketName: await bucketNamePromise,
|
|
41
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
42
|
+
region: providerSpecifics.getCurrentRegionInFunction(),
|
|
43
|
+
serialized: params.inputProps,
|
|
44
|
+
propsType: 'input-props',
|
|
45
|
+
providerSpecifics,
|
|
46
|
+
forcePathStyle: params.forcePathStyle,
|
|
47
|
+
});
|
|
48
|
+
const realServeUrl = providerSpecifics.convertToServeUrl({
|
|
49
|
+
urlOrId: params.serveUrl,
|
|
50
|
+
region,
|
|
51
|
+
bucketName,
|
|
52
|
+
});
|
|
53
|
+
const compositions = await renderer_1.RenderInternals.internalGetCompositions({
|
|
54
|
+
serveUrlOrWebpackUrl: realServeUrl,
|
|
55
|
+
puppeteerInstance: (await browserInstancePromise).instance,
|
|
56
|
+
serializedInputPropsWithCustomSchema,
|
|
57
|
+
envVariables: (_a = params.envVariables) !== null && _a !== void 0 ? _a : {},
|
|
58
|
+
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
59
|
+
chromiumOptions: params.chromiumOptions,
|
|
60
|
+
port: null,
|
|
61
|
+
server: undefined,
|
|
62
|
+
logLevel: params.logLevel,
|
|
63
|
+
indent: false,
|
|
64
|
+
browserExecutable: null,
|
|
65
|
+
onBrowserLog: null,
|
|
66
|
+
offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
|
|
67
|
+
binariesDirectory: null,
|
|
68
|
+
onBrowserDownload: () => {
|
|
69
|
+
throw new Error('Should not download a browser in a function');
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
return Promise.resolve({
|
|
73
|
+
compositions,
|
|
74
|
+
type: 'success',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
insideFunctionSpecifics.forgetBrowserEventLoop(params.logLevel);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.compositionsHandler = compositionsHandler;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ServerlessPayload } from '../constants';
|
|
2
|
+
import type { WebhookClient } from '../invoke-webhook';
|
|
3
|
+
import type { InsideFunctionSpecifics, ProviderSpecifics } from '../provider-implementation';
|
|
4
|
+
import type { CloudProvider } from '../types';
|
|
5
|
+
type Options = {
|
|
6
|
+
expectedBucketOwner: string;
|
|
7
|
+
getRemainingTimeInMillis: () => number;
|
|
8
|
+
};
|
|
9
|
+
export declare const launchHandler: <Provider extends CloudProvider>({ params, options, providerSpecifics, client, insideFunctionSpecifics, }: {
|
|
10
|
+
params: ServerlessPayload<Provider>;
|
|
11
|
+
options: Options;
|
|
12
|
+
providerSpecifics: ProviderSpecifics<Provider>;
|
|
13
|
+
insideFunctionSpecifics: InsideFunctionSpecifics;
|
|
14
|
+
client: WebhookClient;
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
type: "success";
|
|
17
|
+
}>;
|
|
18
|
+
export {};
|