@remotion/serverless 4.0.423 → 4.0.425

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.
@@ -1,6 +1,6 @@
1
1
  import type { CloudProvider, ProviderSpecifics, SerializedInputProps } from '@remotion/serverless-client';
2
2
  import type { InsideFunctionSpecifics } from './provider-implementation';
3
- export declare const cleanupProps: <Provider extends CloudProvider>({ serializedResolvedProps, inputProps, providerSpecifics, forcePathStyle, insideFunctionSpecifics, }: {
3
+ export declare const cleanupProps: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serializedResolvedProps, inputProps, providerSpecifics, forcePathStyle, insideFunctionSpecifics, }: {
4
4
  serializedResolvedProps: SerializedInputProps;
5
5
  inputProps: SerializedInputProps;
6
6
  providerSpecifics: ProviderSpecifics<Provider>;
@@ -1,11 +1,11 @@
1
1
  import type { CloudProvider, ProviderSpecifics, SerializedInputProps } from '@remotion/serverless-client';
2
- export declare const cleanupSerializedInputProps: <Provider extends CloudProvider>({ serialized, region, providerSpecifics, forcePathStyle, }: {
2
+ export declare const cleanupSerializedInputProps: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serialized, region, providerSpecifics, forcePathStyle, }: {
3
3
  serialized: SerializedInputProps;
4
4
  region: Provider["region"];
5
5
  providerSpecifics: ProviderSpecifics<Provider>;
6
6
  forcePathStyle: boolean;
7
7
  }) => Promise<number>;
8
- export declare const cleanupSerializedResolvedProps: <Provider extends CloudProvider>({ serialized, region, providerSpecifics, forcePathStyle, }: {
8
+ export declare const cleanupSerializedResolvedProps: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serialized, region, providerSpecifics, forcePathStyle, }: {
9
9
  serialized: SerializedInputProps;
10
10
  region: Provider["region"];
11
11
  providerSpecifics: ProviderSpecifics<Provider>;
@@ -1,16 +1,16 @@
1
- import type { AudioCodec, CancelSignal, CombineChunksOnProgress, FrameRange, LogLevel } from '@remotion/renderer';
2
- import type { CloudProvider, ServerlessCodec } from '@remotion/serverless-client';
1
+ import type { CancelSignal, CombineChunksOnProgress, FrameRange } from '@remotion/renderer';
2
+ import type { CloudProvider } from '@remotion/serverless-client';
3
3
  import type { InsideFunctionSpecifics } from './provider-implementation';
4
- export declare const concatVideos: <Provider extends CloudProvider>({ onProgress, codec, fps, numberOfGifLoops, files, outdir, audioCodec, audioBitrate, logLevel, framesPerLambda, binariesDirectory, cancelSignal, preferLossless, metadata, insideFunctionSpecifics, everyNthFrame, frameRange, compositionDurationInFrames, }: {
4
+ export declare const concatVideos: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ onProgress, codec, fps, numberOfGifLoops, files, outdir, audioCodec, audioBitrate, logLevel, framesPerLambda, binariesDirectory, cancelSignal, preferLossless, metadata, insideFunctionSpecifics, everyNthFrame, frameRange, compositionDurationInFrames, }: {
5
5
  onProgress: CombineChunksOnProgress;
6
- codec: ServerlessCodec;
6
+ codec: "aac" | "gif" | "h264" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
7
7
  fps: number;
8
8
  numberOfGifLoops: number | null;
9
9
  files: string[];
10
10
  outdir: string;
11
- audioCodec: AudioCodec | null;
11
+ audioCodec: "aac" | "mp3" | "opus" | "pcm-16" | null;
12
12
  audioBitrate: string | null;
13
- logLevel: LogLevel;
13
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
14
14
  framesPerLambda: number;
15
15
  binariesDirectory: string | null;
16
16
  cancelSignal: CancelSignal | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { CloudProvider, EnhancedErrorInfo, OverallRenderProgress, PostRenderData, ProviderSpecifics, RenderMetadata } from '@remotion/serverless-client';
2
2
  import type { OutputFileMetadata } from './find-output-file-in-bucket';
3
- export declare const createPostRenderData: <Provider extends CloudProvider>({ region, memorySizeInMb, renderMetadata, errorExplanations, timeToDelete, outputFile, timeToCombine, overallProgress, timeToFinish, outputSize, providerSpecifics, }: {
3
+ export declare const createPostRenderData: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ region, memorySizeInMb, renderMetadata, errorExplanations, timeToDelete, outputFile, timeToCombine, overallProgress, timeToFinish, outputSize, providerSpecifics, }: {
4
4
  region: Provider["region"];
5
5
  memorySizeInMb: number;
6
6
  renderMetadata: RenderMetadata<Provider>;
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createPostRenderData = void 0;
4
4
  const serverless_client_1 = require("@remotion/serverless-client");
5
5
  const createPostRenderData = ({ region, memorySizeInMb, renderMetadata, errorExplanations, timeToDelete, outputFile, timeToCombine, overallProgress, timeToFinish, outputSize, providerSpecifics, }) => {
6
- var _a, _b;
6
+ var _a;
7
+ var _b;
7
8
  const parsedTimings = overallProgress.timings;
8
9
  const estimatedBillingDurationInMilliseconds = parsedTimings
9
10
  .map((p) => p.rendered - p.start + serverless_client_1.OVERHEAD_TIME_PER_LAMBDA)
@@ -2,7 +2,7 @@ import type { CloudProvider, CustomCredentials, ProviderSpecifics, RenderMetadat
2
2
  export type OutputFileMetadata = {
3
3
  url: string;
4
4
  };
5
- export declare const findOutputFileInBucket: <Provider extends CloudProvider>({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, requestHandler, }: {
5
+ export declare const findOutputFileInBucket: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, requestHandler, }: {
6
6
  region: Provider["region"];
7
7
  renderMetadata: RenderMetadata<Provider>;
8
8
  bucketName: string;
@@ -1,3 +1,6 @@
1
- import type { CloudProvider, FunctionErrorInfo } from '@remotion/serverless-client';
1
+ import type { CloudProvider } from '@remotion/serverless-client';
2
2
  import type { InsideFunctionSpecifics } from './provider-implementation';
3
- export declare const getTmpDirStateIfENoSp: <Provider extends CloudProvider>(err: string, insideFunctionSpecifics: InsideFunctionSpecifics<Provider>) => FunctionErrorInfo["tmpDir"];
3
+ export declare const getTmpDirStateIfENoSp: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(err: string, insideFunctionSpecifics: InsideFunctionSpecifics<Provider>) => {
4
+ files: import("@remotion/serverless-client").FileNameAndSize[];
5
+ total: number;
6
+ } | null;
@@ -1,6 +1,6 @@
1
1
  import type { CloudProvider, ServerlessPayload } from '@remotion/serverless-client';
2
2
  import type { InsideFunctionSpecifics } from '../provider-implementation';
3
- export declare const checkVersionMismatch: <Provider extends CloudProvider>({ params, insideFunctionSpecifics, apiName, }: {
3
+ export declare const checkVersionMismatch: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, insideFunctionSpecifics, apiName, }: {
4
4
  params: ServerlessPayload<Provider>;
5
5
  insideFunctionSpecifics: InsideFunctionSpecifics<Provider>;
6
6
  apiName: string;
@@ -3,13 +3,13 @@ import type { InsideFunctionSpecifics } from '../provider-implementation';
3
3
  type Options = {
4
4
  expectedBucketOwner: string;
5
5
  };
6
- export declare const compositionsHandler: <Provider extends CloudProvider>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
6
+ export declare const compositionsHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
7
7
  params: ServerlessPayload<Provider>;
8
8
  options: Options;
9
9
  providerSpecifics: ProviderSpecifics<Provider>;
10
10
  insideFunctionSpecifics: InsideFunctionSpecifics<Provider>;
11
11
  }) => Promise<{
12
- compositions: import("@remotion/serverless-client").VideoConfig[];
12
+ compositions: import("remotion").VideoConfig[];
13
13
  type: "success";
14
14
  }>;
15
15
  export {};
@@ -4,7 +4,7 @@ type Options = {
4
4
  expectedBucketOwner: string;
5
5
  getRemainingTimeInMillis: () => number;
6
6
  };
7
- export declare const launchHandler: <Provider extends CloudProvider>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
7
+ export declare const launchHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
8
8
  params: ServerlessPayload<Provider>;
9
9
  options: Options;
10
10
  providerSpecifics: ProviderSpecifics<Provider>;
@@ -17,13 +17,14 @@ const stream_renderer_1 = require("../stream-renderer");
17
17
  const validate_composition_1 = require("../validate-composition");
18
18
  const send_telemetry_event_1 = require("./send-telemetry-event");
19
19
  const innerLaunchHandler = async ({ params, options, overallProgress, registerCleanupTask, providerSpecifics, insideFunctionSpecifics, onBrowser, }) => {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
20
+ var _a, _b;
21
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
21
22
  if (params.type !== serverless_client_2.ServerlessRoutines.launch) {
22
23
  throw new Error('Expected launch type');
23
24
  }
24
25
  const startedDate = Date.now();
25
- const chromiumParams = { ...((_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {}) };
26
- if (((_b = params.chromiumOptions) === null || _b === void 0 ? void 0 : _b.gl) === 'angle') {
26
+ const chromiumParams = { ...((_c = params.chromiumOptions) !== null && _c !== void 0 ? _c : {}) };
27
+ if (((_a = params.chromiumOptions) === null || _a === void 0 ? void 0 : _a.gl) === 'angle') {
27
28
  renderer_1.RenderInternals.Log.warn({ indent: false, logLevel: params.logLevel }, 'gl=angle is not supported in Lambda. Changing to gl=swangle instead.');
28
29
  chromiumParams.gl = 'swangle';
29
30
  }
@@ -68,12 +69,14 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
68
69
  composition: params.composition,
69
70
  browserInstance: instance,
70
71
  serializedInputPropsWithCustomSchema,
71
- envVariables: (_c = params.envVariables) !== null && _c !== void 0 ? _c : {},
72
+ envVariables: (_d = params.envVariables) !== null && _d !== void 0 ? _d : {},
72
73
  timeoutInMilliseconds: validateCompositionTimeout,
73
- chromiumOptions: (_d = params.chromiumOptions) !== null && _d !== void 0 ? _d : {},
74
+ chromiumOptions: (_e = params.chromiumOptions) !== null && _e !== void 0 ? _e : {},
74
75
  port: null,
75
76
  forceHeight: params.forceHeight,
76
77
  forceWidth: params.forceWidth,
78
+ forceFps: (_f = params.forceFps) !== null && _f !== void 0 ? _f : null,
79
+ forceDurationInFrames: (_g = params.forceDurationInFrames) !== null && _g !== void 0 ? _g : null,
77
80
  logLevel: params.logLevel,
78
81
  server: undefined,
79
82
  offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
@@ -94,7 +97,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
94
97
  renderer_1.RenderInternals.validateConcurrency({
95
98
  value: params.concurrencyPerFunction,
96
99
  setting: 'concurrencyPerLambda',
97
- checkIfValidForCurrentMachine: ((_e = params.rendererFunctionName) !== null && _e !== void 0 ? _e : null) === null,
100
+ checkIfValidForCurrentMachine: ((_h = params.rendererFunctionName) !== null && _h !== void 0 ? _h : null) === null,
98
101
  });
99
102
  const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(comp.durationInFrames, params.frameRange);
100
103
  const frameCount = renderer_1.RenderInternals.getFramesToRender(realFrameRange, params.everyNthFrame);
@@ -216,7 +219,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
216
219
  return payload;
217
220
  });
218
221
  renderer_1.RenderInternals.Log.info(logOptions, 'Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
219
- const rendererFunctionName = (_f = params.rendererFunctionName) !== null && _f !== void 0 ? _f : insideFunctionSpecifics.getCurrentFunctionName();
222
+ const rendererFunctionName = (_j = params.rendererFunctionName) !== null && _j !== void 0 ? _j : insideFunctionSpecifics.getCurrentFunctionName();
220
223
  const renderMetadata = {
221
224
  startedDate,
222
225
  totalChunks: chunks.length,
@@ -238,7 +241,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
238
241
  memorySizeInMb: insideFunctionSpecifics.getCurrentMemorySizeInMb(),
239
242
  region: insideFunctionSpecifics.getCurrentRegionInFunction(),
240
243
  renderId: params.renderId,
241
- outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_g = params.outName) !== null && _g !== void 0 ? _g : undefined),
244
+ outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_k = params.outName) !== null && _k !== void 0 ? _k : undefined),
242
245
  privacy: params.privacy,
243
246
  everyNthFrame: params.everyNthFrame,
244
247
  frameRange: realFrameRange,
@@ -251,10 +254,10 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
251
254
  metadata: params.metadata,
252
255
  functionName: insideFunctionSpecifics.getCurrentFunctionName(),
253
256
  dimensions: {
254
- width: comp.width * ((_h = params.scale) !== null && _h !== void 0 ? _h : 1),
255
- height: comp.height * ((_j = params.scale) !== null && _j !== void 0 ? _j : 1),
257
+ width: comp.width * ((_l = params.scale) !== null && _l !== void 0 ? _l : 1),
258
+ height: comp.height * ((_m = params.scale) !== null && _m !== void 0 ? _m : 1),
256
259
  },
257
- rendererFunctionName: (_k = params.rendererFunctionName) !== null && _k !== void 0 ? _k : insideFunctionSpecifics.getCurrentFunctionName(),
260
+ rendererFunctionName: (_o = params.rendererFunctionName) !== null && _o !== void 0 ? _o : insideFunctionSpecifics.getCurrentFunctionName(),
258
261
  scale: params.scale,
259
262
  };
260
263
  const { key, renderBucketName, customCredentials } = (0, serverless_client_2.getExpectedOutName)({
@@ -263,7 +266,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
263
266
  customCredentials: typeof params.outName === 'string' ||
264
267
  typeof params.outName === 'undefined'
265
268
  ? null
266
- : ((_m = (_l = params.outName) === null || _l === void 0 ? void 0 : _l.s3OutputProvider) !== null && _m !== void 0 ? _m : null),
269
+ : ((_p = (_b = params.outName) === null || _b === void 0 ? void 0 : _b.s3OutputProvider) !== null && _p !== void 0 ? _p : null),
267
270
  bucketNamePrefix: providerSpecifics.getBucketPrefix(),
268
271
  });
269
272
  if (!params.overwrite) {
@@ -7,7 +7,7 @@ type Options<Provider extends CloudProvider> = {
7
7
  providerSpecifics: ProviderSpecifics<Provider>;
8
8
  insideFunctionSpecifics: InsideFunctionSpecifics<Provider>;
9
9
  };
10
- export declare const progressHandler: <Provider extends CloudProvider>({ params, options, }: {
10
+ export declare const progressHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, options, }: {
11
11
  params: ServerlessPayload<Provider>;
12
12
  options: Options<Provider>;
13
13
  }) => Promise<GenericRenderProgress<Provider>>;
@@ -9,7 +9,7 @@ export type RequestContext = {
9
9
  getRemainingTimeInMillis: () => number;
10
10
  awsRequestId: string;
11
11
  };
12
- export declare const rendererHandler: <Provider extends CloudProvider>({ onStream, options, params, providerSpecifics, requestContext, insideFunctionSpecifics, }: {
12
+ export declare const rendererHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ onStream, options, params, providerSpecifics, requestContext, insideFunctionSpecifics, }: {
13
13
  params: ServerlessPayload<Provider>;
14
14
  options: Options;
15
15
  onStream: OnStream<Provider>;
@@ -1,7 +1,6 @@
1
- import type { LogLevel } from '@remotion/renderer';
2
1
  export declare const sendTelemetryEvent: ({ licenseKey, logLevel, isStill, isProduction, }: {
3
2
  licenseKey: string | null;
4
- logLevel: LogLevel;
3
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
5
4
  isStill: boolean;
6
5
  isProduction: boolean;
7
6
  }) => Promise<void>;
@@ -5,7 +5,7 @@ type Options = {
5
5
  timeoutInMilliseconds: number;
6
6
  renderId: string;
7
7
  };
8
- export declare const startHandler: <Provider extends CloudProvider>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
8
+ export declare const startHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, options, providerSpecifics, insideFunctionSpecifics, }: {
9
9
  params: ServerlessPayload<Provider>;
10
10
  options: Options;
11
11
  providerSpecifics: ProviderSpecifics<Provider>;
@@ -5,7 +5,7 @@ const serverless_client_1 = require("@remotion/serverless-client");
5
5
  const overall_render_progress_1 = require("../overall-render-progress");
6
6
  const check_version_mismatch_1 = require("./check-version-mismatch");
7
7
  const startHandler = async ({ params, options, providerSpecifics, insideFunctionSpecifics, }) => {
8
- var _a, _b, _c, _d, _e;
8
+ var _a, _b, _c, _d, _e, _f, _g;
9
9
  if (params.type !== serverless_client_1.ServerlessRoutines.start) {
10
10
  throw new TypeError('Expected type start');
11
11
  }
@@ -82,6 +82,8 @@ const startHandler = async ({ params, options, providerSpecifics, insideFunction
82
82
  encodingMaxRate: params.encodingMaxRate,
83
83
  forceHeight: params.forceHeight,
84
84
  forceWidth: params.forceWidth,
85
+ forceFps: (_e = params.forceFps) !== null && _e !== void 0 ? _e : null,
86
+ forceDurationInFrames: (_f = params.forceDurationInFrames) !== null && _f !== void 0 ? _f : null,
85
87
  rendererFunctionName: params.rendererFunctionName,
86
88
  audioCodec: params.audioCodec,
87
89
  offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
@@ -94,7 +96,7 @@ const startHandler = async ({ params, options, providerSpecifics, insideFunction
94
96
  offthreadVideoThreads: params.offthreadVideoThreads,
95
97
  storageClass: params.storageClass,
96
98
  mediaCacheSizeInBytes: params.mediaCacheSizeInBytes,
97
- isProduction: (_e = params.isProduction) !== null && _e !== void 0 ? _e : true,
99
+ isProduction: (_g = params.isProduction) !== null && _g !== void 0 ? _g : true,
98
100
  };
99
101
  await providerSpecifics.callFunctionAsync({
100
102
  functionName: insideFunctionSpecifics.getCurrentFunctionName(),
@@ -9,7 +9,7 @@ type Options<Provider extends CloudProvider> = {
9
9
  providerSpecifics: ProviderSpecifics<Provider>;
10
10
  insideFunctionSpecifics: InsideFunctionSpecifics<Provider>;
11
11
  };
12
- export declare const stillHandler: <Provider extends CloudProvider>(options: Options<Provider>) => Promise<{
12
+ export declare const stillHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(options: Options<Provider>) => Promise<{
13
13
  type: "success";
14
14
  } | {
15
15
  type: "error";
@@ -17,7 +17,7 @@ const validate_composition_1 = require("../validate-composition");
17
17
  const check_version_mismatch_1 = require("./check-version-mismatch");
18
18
  const send_telemetry_event_1 = require("./send-telemetry-event");
19
19
  const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStream, timeoutInMilliseconds, providerSpecifics, insideFunctionSpecifics, }, cleanup) => {
20
- var _a, _b, _c, _d, _e, _f, _g;
20
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
21
21
  if (params.type !== serverless_client_1.ServerlessRoutines.still) {
22
22
  throw new TypeError('Expected still type');
23
23
  }
@@ -107,6 +107,8 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
107
107
  port: null,
108
108
  forceHeight: params.forceHeight,
109
109
  forceWidth: params.forceWidth,
110
+ forceFps: (_d = params.forceFps) !== null && _d !== void 0 ? _d : null,
111
+ forceDurationInFrames: (_e = params.forceDurationInFrames) !== null && _e !== void 0 ? _e : null,
110
112
  logLevel: params.logLevel,
111
113
  server,
112
114
  offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
@@ -134,7 +136,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
134
136
  memorySizeInMb: insideFunctionSpecifics.getCurrentMemorySizeInMb(),
135
137
  region: insideFunctionSpecifics.getCurrentRegionInFunction(),
136
138
  renderId,
137
- outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_d = params.outName) !== null && _d !== void 0 ? _d : undefined),
139
+ outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_f = params.outName) !== null && _f !== void 0 ? _f : undefined),
138
140
  privacy: params.privacy,
139
141
  audioCodec: null,
140
142
  deleteAfter: params.deleteAfter,
@@ -214,7 +216,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
214
216
  composition,
215
217
  output: outputPath,
216
218
  serveUrl,
217
- envVariables: (_e = params.envVariables) !== null && _e !== void 0 ? _e : {},
219
+ envVariables: (_g = params.envVariables) !== null && _g !== void 0 ? _g : {},
218
220
  frame: renderer_1.RenderInternals.convertToPositiveFrameIndex({
219
221
  frame: params.frame,
220
222
  durationInFrames: composition.durationInFrames,
@@ -223,7 +225,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
223
225
  serializedInputPropsWithCustomSchema,
224
226
  overwrite: false,
225
227
  puppeteerInstance: browserInstance.instance,
226
- jpegQuality: (_f = params.jpegQuality) !== null && _f !== void 0 ? _f : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
228
+ jpegQuality: (_h = params.jpegQuality) !== null && _h !== void 0 ? _h : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
227
229
  chromiumOptions: params.chromiumOptions,
228
230
  scale: params.scale,
229
231
  timeoutInMilliseconds: params.timeoutInMilliseconds,
@@ -278,7 +280,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
278
280
  licenseKey: params.licenseKey,
279
281
  logLevel: params.logLevel,
280
282
  isStill: true,
281
- isProduction: (_g = params.isProduction) !== null && _g !== void 0 ? _g : true,
283
+ isProduction: (_j = params.isProduction) !== null && _j !== void 0 ? _j : true,
282
284
  }),
283
285
  ]);
284
286
  const estimatedPrice = providerSpecifics.estimatePrice({
package/dist/index.js CHANGED
@@ -16,34 +16,34 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.validateComposition = exports.streamWriter = exports.ResponseStream = exports.stopLeakDetection = exports.setCurrentRequestId = exports.invokeWebhook = exports.innerHandler = exports.infoHandler = exports.stillHandler = exports.startHandler = exports.rendererHandler = exports.progressHandler = exports.launchHandler = exports.compositionsHandler = exports.getBrowserInstanceImplementation = exports.forgetBrowserEventLoopImplementation = void 0;
18
18
  __exportStar(require("@remotion/serverless-client"), exports);
19
- var get_browser_instance_1 = require("./get-browser-instance");
19
+ const get_browser_instance_1 = require("./get-browser-instance");
20
20
  Object.defineProperty(exports, "forgetBrowserEventLoopImplementation", { enumerable: true, get: function () { return get_browser_instance_1.forgetBrowserEventLoopImplementation; } });
21
21
  Object.defineProperty(exports, "getBrowserInstanceImplementation", { enumerable: true, get: function () { return get_browser_instance_1.getBrowserInstanceImplementation; } });
22
- var compositions_1 = require("./handlers/compositions");
22
+ const compositions_1 = require("./handlers/compositions");
23
23
  Object.defineProperty(exports, "compositionsHandler", { enumerable: true, get: function () { return compositions_1.compositionsHandler; } });
24
- var launch_1 = require("./handlers/launch");
24
+ const launch_1 = require("./handlers/launch");
25
25
  Object.defineProperty(exports, "launchHandler", { enumerable: true, get: function () { return launch_1.launchHandler; } });
26
- var progress_1 = require("./handlers/progress");
26
+ const progress_1 = require("./handlers/progress");
27
27
  Object.defineProperty(exports, "progressHandler", { enumerable: true, get: function () { return progress_1.progressHandler; } });
28
- var renderer_1 = require("./handlers/renderer");
28
+ const renderer_1 = require("./handlers/renderer");
29
29
  Object.defineProperty(exports, "rendererHandler", { enumerable: true, get: function () { return renderer_1.rendererHandler; } });
30
- var start_1 = require("./handlers/start");
30
+ const start_1 = require("./handlers/start");
31
31
  Object.defineProperty(exports, "startHandler", { enumerable: true, get: function () { return start_1.startHandler; } });
32
- var still_1 = require("./handlers/still");
32
+ const still_1 = require("./handlers/still");
33
33
  Object.defineProperty(exports, "stillHandler", { enumerable: true, get: function () { return still_1.stillHandler; } });
34
- var info_1 = require("./info");
34
+ const info_1 = require("./info");
35
35
  Object.defineProperty(exports, "infoHandler", { enumerable: true, get: function () { return info_1.infoHandler; } });
36
- var inner_routine_1 = require("./inner-routine");
36
+ const inner_routine_1 = require("./inner-routine");
37
37
  Object.defineProperty(exports, "innerHandler", { enumerable: true, get: function () { return inner_routine_1.innerHandler; } });
38
- var invoke_webhook_1 = require("./invoke-webhook");
38
+ const invoke_webhook_1 = require("./invoke-webhook");
39
39
  Object.defineProperty(exports, "invokeWebhook", { enumerable: true, get: function () { return invoke_webhook_1.invokeWebhook; } });
40
- var leak_detection_1 = require("./leak-detection");
40
+ const leak_detection_1 = require("./leak-detection");
41
41
  Object.defineProperty(exports, "setCurrentRequestId", { enumerable: true, get: function () { return leak_detection_1.setCurrentRequestId; } });
42
42
  Object.defineProperty(exports, "stopLeakDetection", { enumerable: true, get: function () { return leak_detection_1.stopLeakDetection; } });
43
43
  __exportStar(require("./provider-implementation"), exports);
44
- var response_stream_1 = require("./streaming/response-stream");
44
+ const response_stream_1 = require("./streaming/response-stream");
45
45
  Object.defineProperty(exports, "ResponseStream", { enumerable: true, get: function () { return response_stream_1.ResponseStream; } });
46
- var stream_writer_1 = require("./streaming/stream-writer");
46
+ const stream_writer_1 = require("./streaming/stream-writer");
47
47
  Object.defineProperty(exports, "streamWriter", { enumerable: true, get: function () { return stream_writer_1.streamWriter; } });
48
- var validate_composition_1 = require("./validate-composition");
48
+ const validate_composition_1 = require("./validate-composition");
49
49
  Object.defineProperty(exports, "validateComposition", { enumerable: true, get: function () { return validate_composition_1.validateComposition; } });
package/dist/info.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CloudProvider, ServerlessPayload } from '@remotion/serverless-client';
2
- export declare const infoHandler: <Provider extends CloudProvider>(serverlessParams: ServerlessPayload<Provider>) => Promise<{
2
+ export declare const infoHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(serverlessParams: ServerlessPayload<Provider>) => Promise<{
3
3
  version: string;
4
4
  type: "success";
5
5
  }>;
@@ -2,14 +2,14 @@ import type { CloudProvider, ProviderSpecifics, ServerlessPayload } from '@remot
2
2
  import type { RequestContext } from './handlers/renderer';
3
3
  import type { InsideFunctionSpecifics } from './provider-implementation';
4
4
  import type { ResponseStreamWriter } from './streaming/stream-writer';
5
- export declare const innerHandler: <Provider extends CloudProvider>({ params, responseWriter, context, providerSpecifics, insideFunctionSpecifics, }: {
5
+ export declare const innerHandler: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, responseWriter, context, providerSpecifics, insideFunctionSpecifics, }: {
6
6
  params: ServerlessPayload<Provider>;
7
7
  responseWriter: ResponseStreamWriter;
8
8
  context: RequestContext;
9
9
  providerSpecifics: ProviderSpecifics<Provider>;
10
10
  insideFunctionSpecifics: InsideFunctionSpecifics<Provider>;
11
11
  }) => Promise<void>;
12
- export declare const innerRoutine: <Provider extends CloudProvider>({ params, responseWriter, context, providerSpecifics, insideFunctionSpecifics, }: {
12
+ export declare const innerRoutine: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ params, responseWriter, context, providerSpecifics, insideFunctionSpecifics, }: {
13
13
  params: ServerlessPayload<Provider>;
14
14
  responseWriter: ResponseStreamWriter;
15
15
  context: RequestContext;
@@ -1,18 +1,18 @@
1
- import type { AudioCodec, FrameRange, LogLevel } from '@remotion/renderer';
1
+ import type { FrameRange } from '@remotion/renderer';
2
2
  import type { DownloadBehavior } from '@remotion/serverless-client';
3
- import { type CloudProvider, type CustomCredentials, type PostRenderData, type Privacy, type ProviderSpecifics, type RenderMetadata, type SerializedInputProps, type ServerlessCodec } from '@remotion/serverless-client';
3
+ import { type CloudProvider, type CustomCredentials, type PostRenderData, type Privacy, type ProviderSpecifics, type RenderMetadata, type SerializedInputProps } from '@remotion/serverless-client';
4
4
  import type { OverallProgressHelper } from './overall-render-progress';
5
5
  import type { InsideFunctionSpecifics } from './provider-implementation';
6
- export declare const mergeChunksAndFinishRender: <Provider extends CloudProvider>(options: {
6
+ export declare const mergeChunksAndFinishRender: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(options: {
7
7
  bucketName: string;
8
8
  renderId: string;
9
9
  expectedBucketOwner: string;
10
10
  numberOfFrames: number;
11
- codec: ServerlessCodec;
11
+ codec: "aac" | "gif" | "h264" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
12
12
  chunkCount: number;
13
13
  fps: number;
14
14
  numberOfGifLoops: number | null;
15
- audioCodec: AudioCodec | null;
15
+ audioCodec: "aac" | "mp3" | "opus" | "pcm-16" | null;
16
16
  renderBucketName: string;
17
17
  customCredentials: CustomCredentials<Provider> | null;
18
18
  downloadBehavior: DownloadBehavior;
@@ -22,7 +22,7 @@ export declare const mergeChunksAndFinishRender: <Provider extends CloudProvider
22
22
  serializedResolvedProps: SerializedInputProps;
23
23
  renderMetadata: RenderMetadata<Provider>;
24
24
  audioBitrate: string | null;
25
- logLevel: LogLevel;
25
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
26
26
  framesPerLambda: number;
27
27
  binariesDirectory: string | null;
28
28
  preferLossless: boolean;
@@ -1,2 +1,2 @@
1
- import type { LogLevel, RenderMediaOnDownload } from '@remotion/renderer';
2
- export declare const onDownloadsHelper: (logLevel: LogLevel) => RenderMediaOnDownload;
1
+ import type { RenderMediaOnDownload } from '@remotion/renderer';
2
+ export declare const onDownloadsHelper: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => RenderMediaOnDownload;
@@ -1,8 +1,7 @@
1
- import { type LogLevel } from '@remotion/renderer';
2
1
  import type { ChunkRetry, CloudProvider, FunctionErrorInfo, OverallRenderProgress, PostRenderData, ProviderSpecifics, ReceivedArtifact, RenderMetadata } from '@remotion/serverless-client';
3
2
  export type OverallProgressHelper<Provider extends CloudProvider> = {
4
3
  upload: () => Promise<void>;
5
- setFrames: ({ encoded, rendered, index, }: {
4
+ setFrames: ({ encoded, rendered, index }: {
6
5
  rendered: number;
7
6
  encoded: number;
8
7
  index: number;
@@ -22,14 +21,14 @@ export type OverallProgressHelper<Provider extends CloudProvider> = {
22
21
  addReceivedArtifact: (asset: ReceivedArtifact<Provider>) => void;
23
22
  getReceivedArtifacts: () => ReceivedArtifact<Provider>[];
24
23
  };
25
- export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
26
- export declare const makeOverallRenderProgress: <Provider extends CloudProvider>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }: {
24
+ export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
25
+ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }: {
27
26
  renderId: string;
28
27
  bucketName: string;
29
28
  expectedBucketOwner: string;
30
29
  region: Provider["region"];
31
30
  timeoutTimestamp: number;
32
- logLevel: LogLevel;
31
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
33
32
  providerSpecifics: ProviderSpecifics<Provider>;
34
33
  forcePathStyle: boolean;
35
34
  }) => OverallProgressHelper<Provider>;
@@ -11,7 +11,7 @@ export type MakeArtifactWithDetails<Provider extends CloudProvider> = (params: {
11
11
  export type DebuggingTimer = (label: string, logLevel: LogLevel) => {
12
12
  end: () => void;
13
13
  };
14
- export type GetBrowserInstance = <Provider extends CloudProvider>({ logLevel, indent, chromiumOptions, providerSpecifics, insideFunctionSpecifics, }: {
14
+ export type GetBrowserInstance = <Provider extends CloudProvider>({ logLevel, indent, chromiumOptions, providerSpecifics, insideFunctionSpecifics }: {
15
15
  logLevel: LogLevel;
16
16
  indent: boolean;
17
17
  chromiumOptions: ChromiumOptions;
@@ -26,7 +26,7 @@ export type GenerateRenderId = (options: {
26
26
  deleteAfter: DeleteAfter | null;
27
27
  randomHashFn: () => string;
28
28
  }) => string;
29
- export type ReadDir = ({ dir, etags, originalDir, onProgress, }: {
29
+ export type ReadDir = ({ dir, etags, originalDir, onProgress }: {
30
30
  dir: string;
31
31
  etags: {
32
32
  [key: string]: () => Promise<string>;
@@ -1,2 +1,2 @@
1
1
  import type { CloudProvider, OutNameInput, OutNameInputWithoutCredentials } from '@remotion/serverless-client';
2
- export declare const removeOutnameCredentials: <Provider extends CloudProvider>(outname: OutNameInput<Provider> | undefined) => OutNameInputWithoutCredentials | undefined;
2
+ export declare const removeOutnameCredentials: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>(outname: OutNameInput<Provider> | undefined) => OutNameInputWithoutCredentials | undefined;
@@ -1,14 +1,14 @@
1
- import type { EmittedArtifact, LogLevel } from '@remotion/renderer';
1
+ import type { EmittedArtifact } from '@remotion/renderer';
2
2
  import type { CloudProvider, ProviderSpecifics, ServerlessPayload } from '@remotion/serverless-client';
3
3
  import type { OverallProgressHelper } from './overall-render-progress';
4
4
  import type { InsideFunctionSpecifics } from './provider-implementation';
5
- export declare const streamRendererFunctionWithRetry: <Provider extends CloudProvider>({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, insideFunctionSpecifics, requestHandler, }: {
5
+ export declare const streamRendererFunctionWithRetry: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, insideFunctionSpecifics, requestHandler, }: {
6
6
  payload: ServerlessPayload<Provider>;
7
7
  functionName: string;
8
8
  outdir: string;
9
9
  overallProgress: OverallProgressHelper<Provider>;
10
10
  files: string[];
11
- logLevel: LogLevel;
11
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
12
12
  onArtifact: (asset: EmittedArtifact) => {
13
13
  alreadyExisted: boolean;
14
14
  };
@@ -96,9 +96,11 @@ const streamRenderer = ({ payload, functionName, outdir, overallProgress, files,
96
96
  });
97
97
  })
98
98
  .catch((err) => {
99
- var _a, _b;
99
+ var _a, _b, _c, _d;
100
100
  const shouldRetry = ((_a = err.stack) === null || _a === void 0 ? void 0 : _a.includes('Error: aborted')) ||
101
101
  ((_b = err.stack) === null || _b === void 0 ? void 0 : _b.includes('ETIMEDOUT')) ||
102
+ ((_c = err.stack) === null || _c === void 0 ? void 0 : _c.includes('socket hang up')) ||
103
+ ((_d = err.stack) === null || _d === void 0 ? void 0 : _d.includes('ECONNRESET')) ||
102
104
  false;
103
105
  resolve({
104
106
  type: 'error',
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResponseStream = void 0;
4
4
  const stream_1 = require("stream");
5
5
  class ResponseStream extends stream_1.Writable {
6
+ queue = [];
7
+ waitingResolve = [];
8
+ response;
6
9
  constructor() {
7
10
  super();
8
- this.queue = [];
9
- this.waitingResolve = [];
10
11
  this.response = [];
11
12
  }
12
13
  _write(chunk, encoding, callback) {
@@ -11,6 +11,8 @@ type ValidateCompositionOptions<Provider extends CloudProvider> = {
11
11
  port: number | null;
12
12
  forceHeight: number | null;
13
13
  forceWidth: number | null;
14
+ forceFps: number | null;
15
+ forceDurationInFrames: number | null;
14
16
  logLevel: LogLevel;
15
17
  server: RemotionServer | undefined;
16
18
  offthreadVideoCacheSizeInBytes: number | null;
@@ -20,5 +22,5 @@ type ValidateCompositionOptions<Provider extends CloudProvider> = {
20
22
  onServeUrlVisited: () => void;
21
23
  providerSpecifics: ProviderSpecifics<Provider>;
22
24
  };
23
- export declare const validateComposition: <Provider extends CloudProvider>({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }: ValidateCompositionOptions<Provider>) => Promise<VideoConfig>;
25
+ export declare const validateComposition: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, forceFps, forceDurationInFrames, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }: ValidateCompositionOptions<Provider>) => Promise<VideoConfig>;
24
26
  export {};
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateComposition = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  const validate_1 = require("./validate");
6
- const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }) => {
6
+ const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, forceFps, forceDurationInFrames, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }) => {
7
7
  const { metadata: comp } = await renderer_1.RenderInternals.internalSelectComposition({
8
8
  id: composition,
9
9
  puppeteerInstance: browserInstance,
@@ -30,6 +30,8 @@ const validateComposition = async ({ serveUrl, composition, browserInstance, ser
30
30
  ...comp,
31
31
  height: forceHeight !== null && forceHeight !== void 0 ? forceHeight : comp.height,
32
32
  width: forceWidth !== null && forceWidth !== void 0 ? forceWidth : comp.width,
33
+ fps: forceFps !== null && forceFps !== void 0 ? forceFps : comp.fps,
34
+ durationInFrames: forceDurationInFrames !== null && forceDurationInFrames !== void 0 ? forceDurationInFrames : comp.durationInFrames,
33
35
  };
34
36
  const reason = `of the "<Composition />" component with the id "${composition}"`;
35
37
  (0, validate_1.validateDurationInFrames)(comp.durationInFrames, {
package/dist/validate.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateFps = exports.validateDurationInFrames = exports.validateDimension = void 0;
4
- var serverless_client_1 = require("@remotion/serverless-client");
4
+ const serverless_client_1 = require("@remotion/serverless-client");
5
5
  Object.defineProperty(exports, "validateDimension", { enumerable: true, get: function () { return serverless_client_1.validateDimension; } });
6
6
  Object.defineProperty(exports, "validateDurationInFrames", { enumerable: true, get: function () { return serverless_client_1.validateDurationInFrames; } });
7
7
  Object.defineProperty(exports, "validateFps", { enumerable: true, get: function () { return serverless_client_1.validateFps; } });
package/package.json CHANGED
@@ -3,15 +3,15 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/serverless"
4
4
  },
5
5
  "name": "@remotion/serverless",
6
- "version": "4.0.423",
6
+ "version": "4.0.425",
7
7
  "description": "A runtime for distributed rendering",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
10
10
  "scripts": {
11
11
  "lint": "eslint src",
12
- "formatting": "prettier --experimental-cli src --check",
12
+ "formatting": "prettier src --check",
13
13
  "test": "bun test src",
14
- "make": "tsc -d"
14
+ "make": "tsgo -d"
15
15
  },
16
16
  "author": "Jonny Burger <jonny@remotion.dev>",
17
17
  "contributors": [],
@@ -23,14 +23,15 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@remotion/renderer": "4.0.423",
27
- "@remotion/bundler": "4.0.423",
28
- "@remotion/licensing": "4.0.423",
29
- "@remotion/serverless-client": "4.0.423"
26
+ "@remotion/renderer": "4.0.425",
27
+ "@remotion/bundler": "4.0.425",
28
+ "@remotion/licensing": "4.0.425",
29
+ "@remotion/serverless-client": "4.0.425"
30
30
  },
31
31
  "devDependencies": {
32
- "@remotion/eslint-config-internal": "4.0.423",
33
- "eslint": "9.19.0"
32
+ "@remotion/eslint-config-internal": "4.0.425",
33
+ "eslint": "9.19.0",
34
+ "@typescript/native-preview": "7.0.0-dev.20260217.1"
34
35
  },
35
36
  "exports": {
36
37
  ".": "./dist/index.js",