@remotion/lambda 4.0.62 → 4.0.65

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.
@@ -20,47 +20,51 @@ const compositionsHandler = async (lambdaParams, options) => {
20
20
  }
21
21
  throw new Error(`Version mismatch: When calling getCompositionsOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${lambdaParams.version}. Deploy a new function and use it to call getCompositionsOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
22
22
  }
23
- const region = (0, get_current_region_1.getCurrentRegionInFunction)();
24
- const browserInstancePromise = (0, get_browser_instance_1.getBrowserInstance)(lambdaParams.logLevel, false, lambdaParams.chromiumOptions);
25
- const bucketNamePromise = lambdaParams.bucketName
26
- ? Promise.resolve(lambdaParams.bucketName)
27
- : (0, get_or_create_bucket_1.internalGetOrCreateBucket)({
23
+ try {
24
+ const region = (0, get_current_region_1.getCurrentRegionInFunction)();
25
+ const browserInstancePromise = (0, get_browser_instance_1.getBrowserInstance)(lambdaParams.logLevel, false, lambdaParams.chromiumOptions);
26
+ const bucketNamePromise = lambdaParams.bucketName
27
+ ? Promise.resolve(lambdaParams.bucketName)
28
+ : (0, get_or_create_bucket_1.internalGetOrCreateBucket)({
29
+ region,
30
+ enableFolderExpiry: null,
31
+ customCredentials: null,
32
+ }).then((b) => b.bucketName);
33
+ const bucketName = await bucketNamePromise;
34
+ const serializedInputPropsWithCustomSchema = await (0, compress_props_1.decompressInputProps)({
35
+ bucketName: await bucketNamePromise,
36
+ expectedBucketOwner: options.expectedBucketOwner,
37
+ region: (0, get_current_region_1.getCurrentRegionInFunction)(),
38
+ serialized: lambdaParams.inputProps,
39
+ propsType: 'input-props',
40
+ });
41
+ const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
42
+ urlOrId: lambdaParams.serveUrl,
28
43
  region,
29
- enableFolderExpiry: null,
30
- customCredentials: null,
31
- }).then((b) => b.bucketName);
32
- const bucketName = await bucketNamePromise;
33
- const serializedInputPropsWithCustomSchema = await (0, compress_props_1.decompressInputProps)({
34
- bucketName: await bucketNamePromise,
35
- expectedBucketOwner: options.expectedBucketOwner,
36
- region: (0, get_current_region_1.getCurrentRegionInFunction)(),
37
- serialized: lambdaParams.inputProps,
38
- propsType: 'input-props',
39
- });
40
- const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
41
- urlOrId: lambdaParams.serveUrl,
42
- region,
43
- bucketName,
44
- });
45
- const compositions = await renderer_1.RenderInternals.internalGetCompositions({
46
- serveUrlOrWebpackUrl: realServeUrl,
47
- puppeteerInstance: (await browserInstancePromise).instance,
48
- serializedInputPropsWithCustomSchema,
49
- envVariables: (_a = lambdaParams.envVariables) !== null && _a !== void 0 ? _a : {},
50
- timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
51
- chromiumOptions: lambdaParams.chromiumOptions,
52
- port: null,
53
- server: undefined,
54
- logLevel: lambdaParams.logLevel,
55
- indent: false,
56
- browserExecutable: null,
57
- onBrowserLog: null,
58
- offthreadVideoCacheSizeInBytes: lambdaParams.offthreadVideoCacheSizeInBytes,
59
- });
60
- (await browserInstancePromise).instance.forgetEventLoop();
61
- return Promise.resolve({
62
- compositions,
63
- type: 'success',
64
- });
44
+ bucketName,
45
+ });
46
+ const compositions = await renderer_1.RenderInternals.internalGetCompositions({
47
+ serveUrlOrWebpackUrl: realServeUrl,
48
+ puppeteerInstance: (await browserInstancePromise).instance,
49
+ serializedInputPropsWithCustomSchema,
50
+ envVariables: (_a = lambdaParams.envVariables) !== null && _a !== void 0 ? _a : {},
51
+ timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
52
+ chromiumOptions: lambdaParams.chromiumOptions,
53
+ port: null,
54
+ server: undefined,
55
+ logLevel: lambdaParams.logLevel,
56
+ indent: false,
57
+ browserExecutable: null,
58
+ onBrowserLog: null,
59
+ offthreadVideoCacheSizeInBytes: lambdaParams.offthreadVideoCacheSizeInBytes,
60
+ });
61
+ return Promise.resolve({
62
+ compositions,
63
+ type: 'success',
64
+ });
65
+ }
66
+ finally {
67
+ (0, get_browser_instance_1.forgetBrowserEventLoop)(lambdaParams.logLevel);
68
+ }
65
69
  };
66
70
  exports.compositionsHandler = compositionsHandler;
@@ -4,5 +4,6 @@ type LaunchedBrowser = {
4
4
  instance: Await<ReturnType<typeof openBrowser>>;
5
5
  configurationString: string;
6
6
  };
7
+ export declare const forgetBrowserEventLoop: (logLevel: LogLevel) => void;
7
8
  export declare const getBrowserInstance: (logLevel: LogLevel, indent: boolean, chromiumOptions: ChromiumOptions) => Promise<LaunchedBrowser>;
8
9
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBrowserInstance = void 0;
3
+ exports.getBrowserInstance = exports.forgetBrowserEventLoop = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  const get_chromium_executable_path_1 = require("./get-chromium-executable-path");
6
6
  const makeConfigurationString = (options, logLevel) => {
@@ -31,6 +31,11 @@ const waitForLaunched = () => {
31
31
  check();
32
32
  });
33
33
  };
34
+ const forgetBrowserEventLoop = (logLevel) => {
35
+ renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, 'Keeping browser open for next invocation');
36
+ _browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.instance.forgetEventLoop();
37
+ };
38
+ exports.forgetBrowserEventLoop = forgetBrowserEventLoop;
34
39
  const getBrowserInstance = async (logLevel, indent, chromiumOptions) => {
35
40
  var _a;
36
41
  const actualChromiumOptions = {
@@ -1 +1 @@
1
- export declare const getCurrentRegionInFunction: () => "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "af-south-1" | "ap-south-1" | "ap-east-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "me-south-1" | "sa-east-1";
1
+ export declare const getCurrentRegionInFunction: () => "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-north-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "sa-east-1" | "eu-south-1" | "af-south-1" | "ap-east-1" | "me-south-1";
@@ -4,16 +4,16 @@ declare const streamingPayloadSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
4
4
  type: z.ZodLiteral<"render-id-determined">;
5
5
  renderId: z.ZodString;
6
6
  }, "strip", z.ZodTypeAny, {
7
- type: "render-id-determined";
8
7
  renderId: string;
9
- }, {
10
8
  type: "render-id-determined";
9
+ }, {
11
10
  renderId: string;
11
+ type: "render-id-determined";
12
12
  }>]>;
13
13
  export type StreamingPayloads = z.infer<typeof streamingPayloadSchema>;
14
14
  export declare const isStreamingPayload: (str: string) => false | {
15
- type: "render-id-determined";
16
15
  renderId: string;
16
+ type: "render-id-determined";
17
17
  };
18
18
  export declare const sendProgressEvent: (responseStream: ResponseStream, payload: StreamingPayloads) => void;
19
19
  export {};
@@ -250,7 +250,6 @@ const innerLaunchHandler = async ({ functionName, params, options, onAllChunksAv
250
250
  await callFunctionWithRetry({ payload, retries: 0, functionName });
251
251
  }));
252
252
  reqSend.end();
253
- (await browserInstance).instance.forgetEventLoop();
254
253
  const fps = comp.fps / params.everyNthFrame;
255
254
  const postRenderData = await (0, merge_chunks_1.mergeChunksAndFinishRender)({
256
255
  bucketName: params.bucketName,
@@ -527,5 +526,8 @@ const launchHandler = async (params, options) => {
527
526
  }
528
527
  throw err;
529
528
  }
529
+ finally {
530
+ (0, get_browser_instance_1.forgetBrowserEventLoop)(params.logLevel);
531
+ }
530
532
  };
531
533
  exports.launchHandler = launchHandler;
@@ -209,7 +209,6 @@ const renderHandler = async (params, options, logs) => {
209
209
  customCredentials: null,
210
210
  }),
211
211
  ]);
212
- browserInstance.instance.forgetEventLoop();
213
212
  renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel: params.logLevel }, 'Done!');
214
213
  return {};
215
214
  };
@@ -274,5 +273,8 @@ const rendererHandler = async (params, options) => {
274
273
  }
275
274
  throw err;
276
275
  }
276
+ finally {
277
+ (0, get_browser_instance_1.forgetBrowserEventLoop)(params.logLevel);
278
+ }
277
279
  };
278
280
  exports.rendererHandler = rendererHandler;
@@ -11,7 +11,7 @@ const get_current_region_1 = require("./helpers/get-current-region");
11
11
  const io_1 = require("./helpers/io");
12
12
  const lifecycle_1 = require("./helpers/lifecycle");
13
13
  const startHandler = async (params, options) => {
14
- var _a, _b;
14
+ var _a;
15
15
  if (params.type !== constants_1.LambdaRoutines.start) {
16
16
  throw new TypeError('Expected type start');
17
17
  }
@@ -62,7 +62,7 @@ const startHandler = async (params, options) => {
62
62
  jpegQuality: params.jpegQuality,
63
63
  maxRetries: params.maxRetries,
64
64
  privacy: params.privacy,
65
- logLevel: (_b = params.logLevel) !== null && _b !== void 0 ? _b : 'info',
65
+ logLevel: params.logLevel,
66
66
  frameRange: params.frameRange,
67
67
  outName: params.outName,
68
68
  timeoutInMilliseconds: params.timeoutInMilliseconds,
@@ -191,7 +191,6 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
191
191
  // overestimate the price, but will only have a miniscule effect (~0.2%)
192
192
  diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
193
193
  });
194
- browserInstance.instance.forgetEventLoop();
195
194
  return {
196
195
  type: 'success',
197
196
  output: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName, customCredentials),
@@ -259,5 +258,10 @@ const stillHandler = async (options) => {
259
258
  });
260
259
  return res;
261
260
  }
261
+ finally {
262
+ (0, get_browser_instance_1.forgetBrowserEventLoop)(options.params.type === constants_1.LambdaRoutines.still
263
+ ? options.params.logLevel
264
+ : 'error');
265
+ }
262
266
  };
263
267
  exports.stillHandler = stillHandler;
@@ -1,5 +1,5 @@
1
1
  export declare const LambdaInternals: {
2
- executeCommand: (args: string[], remotionRoot: string, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
2
+ executeCommand: (args: string[], remotionRoot: string, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
3
3
  makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, x264Preset, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, downloadBehavior, muted, overwrite, jpegQuality, offthreadVideoCacheSizeInBytes, deleteAfter, colorSpace, }: import("./api/make-lambda-payload").InnerRenderMediaOnLambdaInput) => Promise<import("./defaults").LambdaStartPayload>;
4
4
  getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, }: import(".").GetRenderProgressInput) => import("./defaults").LambdaStatusPayload;
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/lambda",
3
- "version": "4.0.62",
3
+ "version": "4.0.65",
4
4
  "description": "Distributed renderer for Remotion based on AWS Lambda",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -26,10 +26,10 @@
26
26
  "aws-policies": "^1.0.1",
27
27
  "mime-types": "2.1.34",
28
28
  "zod": "3.22.3",
29
- "@remotion/bundler": "4.0.62",
30
- "@remotion/cli": "4.0.62",
31
- "@remotion/renderer": "4.0.62",
32
- "remotion": "4.0.62"
29
+ "@remotion/bundler": "4.0.65",
30
+ "@remotion/cli": "4.0.65",
31
+ "@remotion/renderer": "4.0.65",
32
+ "remotion": "4.0.65"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@jonny/eslint-config": "3.0.276",
@@ -43,11 +43,11 @@
43
43
  "ts-node": "^10.8.0",
44
44
  "vitest": "0.31.1",
45
45
  "zip-lib": "^0.7.2",
46
- "@remotion/compositor-linux-arm64-gnu": "4.0.62",
47
- "@remotion/bundler": "4.0.62"
46
+ "@remotion/compositor-linux-arm64-gnu": "4.0.65",
47
+ "@remotion/bundler": "4.0.65"
48
48
  },
49
49
  "peerDependencies": {
50
- "@remotion/bundler": "4.0.62"
50
+ "@remotion/bundler": "4.0.65"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
Binary file