@remotion/lambda 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.
Files changed (52) hide show
  1. package/dist/api/create-function.d.ts +4 -2
  2. package/dist/api/delete-site.d.ts +1 -1
  3. package/dist/api/deploy-function.d.ts +3 -3
  4. package/dist/api/deploy-site.d.ts +4 -71
  5. package/dist/api/deploy-site.js +13 -12
  6. package/dist/api/get-function-info.js +2 -1
  7. package/dist/api/get-or-create-bucket.d.ts +1 -1
  8. package/dist/api/get-regions.d.ts +1 -2
  9. package/dist/api/iam-validation/simulate-rule.d.ts +4 -2
  10. package/dist/api/upload-dir.d.ts +4 -2
  11. package/dist/cli/commands/compositions/index.d.ts +1 -2
  12. package/dist/cli/commands/compositions/index.js +11 -2
  13. package/dist/cli/commands/functions/deploy.d.ts +1 -2
  14. package/dist/cli/commands/functions/index.d.ts +1 -2
  15. package/dist/cli/commands/functions/ls.d.ts +1 -2
  16. package/dist/cli/commands/functions/rm.d.ts +1 -2
  17. package/dist/cli/commands/functions/rmall.d.ts +1 -2
  18. package/dist/cli/commands/policies/policies.d.ts +1 -2
  19. package/dist/cli/commands/policies/role.d.ts +1 -2
  20. package/dist/cli/commands/policies/user.d.ts +1 -2
  21. package/dist/cli/commands/policies/validate.d.ts +1 -2
  22. package/dist/cli/commands/quotas/increase.d.ts +1 -1
  23. package/dist/cli/commands/quotas/increase.js +4 -4
  24. package/dist/cli/commands/quotas/index.d.ts +1 -2
  25. package/dist/cli/commands/quotas/list.d.ts +1 -2
  26. package/dist/cli/commands/regions.d.ts +1 -2
  27. package/dist/cli/commands/render/progress.d.ts +1 -1
  28. package/dist/cli/commands/render/progress.js +6 -3
  29. package/dist/cli/commands/render/render.d.ts +1 -2
  30. package/dist/cli/commands/render/render.js +28 -3
  31. package/dist/cli/commands/sites/create.d.ts +1 -2
  32. package/dist/cli/commands/sites/index.d.ts +1 -2
  33. package/dist/cli/commands/sites/ls.d.ts +1 -2
  34. package/dist/cli/commands/sites/rm.d.ts +1 -2
  35. package/dist/cli/commands/sites/rmall.d.ts +1 -2
  36. package/dist/cli/commands/still.d.ts +1 -2
  37. package/dist/cli/commands/still.js +26 -10
  38. package/dist/cli/get-aws-region.d.ts +1 -2
  39. package/dist/cli/help.d.ts +1 -2
  40. package/dist/cli/helpers/find-function-name.d.ts +1 -2
  41. package/dist/cli/helpers/get-webhook-custom-data.d.ts +1 -2
  42. package/dist/cli/index.d.ts +2 -3
  43. package/dist/cli/index.js +2 -1
  44. package/dist/cli/log.js +1 -1
  45. package/dist/esm/index.mjs +83 -31
  46. package/dist/functions/helpers/get-current-region.d.ts +1 -2
  47. package/dist/functions/helpers/read-with-progress.d.ts +4 -2
  48. package/dist/index.d.ts +2 -6
  49. package/dist/internals.d.ts +11 -73
  50. package/dist/shared/get-layers.d.ts +2 -3
  51. package/package.json +16 -15
  52. package/remotionlambda-arm64.zip +0 -0
@@ -21,11 +21,11 @@ const find_function_name_1 = require("../helpers/find-function-name");
21
21
  const quit_1 = require("../helpers/quit");
22
22
  const log_1 = require("../log");
23
23
  const progress_1 = require("./render/progress");
24
- const { offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, deleteAfterOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, mediaCacheSizeInBytesOption, darkModeOption, } = client_1.BrowserSafeApis.options;
24
+ const { offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, deleteAfterOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, mediaCacheSizeInBytesOption, darkModeOption, browserExecutableOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, } = client_1.BrowserSafeApis.options;
25
25
  const { parsedCli, determineFinalStillImageFormat, chalk, getCliOptions, formatBytes, getCompositionWithDimensionOverride, } = cli_1.CliInternals;
26
26
  exports.STILL_COMMAND = 'still';
27
27
  const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }) => {
28
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
28
+ var _a, _b, _c, _d, _e, _f, _g, _h;
29
29
  const serveUrl = args[0];
30
30
  if (!serveUrl) {
31
31
  log_1.Log.error({ indent: false, logLevel }, 'No serve URL passed.');
@@ -34,11 +34,21 @@ const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }
34
34
  log_1.Log.info({ indent: false, logLevel }, `${constants_1.BINARY_NAME} ${exports.STILL_COMMAND} <serve-url> <composition-id> [output-location]`);
35
35
  (0, quit_1.quit)(1);
36
36
  }
37
- const { envVariables, inputProps, stillFrame, height, width, browserExecutable, userAgent, disableWebSecurity, ignoreCertificateErrors, } = getCliOptions({
37
+ const { envVariables, inputProps, stillFrame, height, width, fps, durationInFrames, } = getCliOptions({
38
38
  isStill: true,
39
39
  logLevel,
40
40
  indent: false,
41
41
  });
42
+ const browserExecutable = browserExecutableOption.getValue({
43
+ commandLine: parsedCli,
44
+ }).value;
45
+ const userAgent = userAgentOption.getValue({ commandLine: parsedCli }).value;
46
+ const disableWebSecurity = disableWebSecurityOption.getValue({
47
+ commandLine: parsedCli,
48
+ }).value;
49
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption.getValue({
50
+ commandLine: parsedCli,
51
+ }).value;
42
52
  const region = (0, get_aws_region_1.getAwsRegion)();
43
53
  let composition = args[1];
44
54
  const enableMultiProcessOnLinux = enableMultiprocessOnLinuxOption.getValue({
@@ -110,6 +120,8 @@ const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }
110
120
  timeoutInMilliseconds,
111
121
  height,
112
122
  width,
123
+ fps,
124
+ durationInFrames,
113
125
  server,
114
126
  offthreadVideoCacheSizeInBytes,
115
127
  offthreadVideoThreads,
@@ -132,13 +144,15 @@ const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }
132
144
  (0, validate_retries_1.validateMaxRetries)(maxRetries);
133
145
  const privacy = (_c = args_1.parsedLambdaCli.privacy) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_OUTPUT_PRIVACY;
134
146
  (0, serverless_1.validatePrivacy)(privacy, true);
147
+ const { stillImageFormatOption } = client_1.BrowserSafeApis.options;
135
148
  const { format: imageFormat, source: imageFormatReason } = determineFinalStillImageFormat({
136
149
  downloadName,
137
150
  outName: outName !== null && outName !== void 0 ? outName : null,
138
- cliFlag: (_d = parsedCli['image-format']) !== null && _d !== void 0 ? _d : null,
151
+ configuredImageFormat: stillImageFormatOption.getValue({
152
+ commandLine: parsedCli,
153
+ }).value,
139
154
  isLambda: true,
140
155
  fromUi: null,
141
- configImageFormat: (_e = config_1.ConfigInternals.getUserPreferredStillImageFormat()) !== null && _e !== void 0 ? _e : null,
142
156
  });
143
157
  log_1.Log.info({ indent: false, logLevel }, cli_1.CliInternals.chalk.gray(`Function: ${cli_1.CliInternals.makeHyperlink({ text: functionName, fallback: functionName, url: `https://${(0, get_aws_region_1.getAwsRegion)()}.console.aws.amazon.com/lambda/home#/functions/${functionName}?tab=code` })}`));
144
158
  log_1.Log.info({ indent: false, logLevel }, cli_1.CliInternals.chalk.gray(`Image Format = ${imageFormat} (${imageFormatReason})`));
@@ -168,6 +182,8 @@ const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }
168
182
  scale,
169
183
  forceHeight: height,
170
184
  forceWidth: width,
185
+ forceFps: fps,
186
+ forceDurationInFrames: durationInFrames,
171
187
  onInit: ({ cloudWatchLogs, lambdaInsightsUrl }) => {
172
188
  log_1.Log.verbose({ indent: false, logLevel }, `${cli_1.CliInternals.makeHyperlink({
173
189
  text: 'CloudWatch Logs',
@@ -181,17 +197,17 @@ const stillCommand = async ({ args, remotionRoot, logLevel, providerSpecifics, }
181
197
  })} (if enabled)`);
182
198
  },
183
199
  deleteAfter: deleteAfter !== null && deleteAfter !== void 0 ? deleteAfter : null,
184
- storageClass: (_f = args_1.parsedLambdaCli['storage-class']) !== null && _f !== void 0 ? _f : null,
185
- licenseKey: (_g = args_1.parsedLambdaCli[client_1.BrowserSafeApis.options.licenseKeyOption.cliFlag]) !== null && _g !== void 0 ? _g : null,
200
+ storageClass: (_d = args_1.parsedLambdaCli['storage-class']) !== null && _d !== void 0 ? _d : null,
201
+ licenseKey: (_e = args_1.parsedLambdaCli[client_1.BrowserSafeApis.options.licenseKeyOption.cliFlag]) !== null && _e !== void 0 ? _e : null,
186
202
  downloadBehavior: { type: 'play-in-browser' },
187
- forceBucketName: (_h = args_1.parsedLambdaCli['force-bucket-name']) !== null && _h !== void 0 ? _h : null,
188
- forcePathStyle: (_j = args_1.parsedLambdaCli['force-path-style']) !== null && _j !== void 0 ? _j : false,
203
+ forceBucketName: (_f = args_1.parsedLambdaCli['force-bucket-name']) !== null && _f !== void 0 ? _f : null,
204
+ forcePathStyle: (_g = args_1.parsedLambdaCli['force-path-style']) !== null && _g !== void 0 ? _g : false,
189
205
  indent: false,
190
206
  offthreadVideoCacheSizeInBytes,
191
207
  offthreadVideoThreads: null,
192
208
  requestHandler: null,
193
209
  mediaCacheSizeInBytes,
194
- isProduction: (_k = args_1.parsedLambdaCli[client_1.BrowserSafeApis.options.isProductionOption.cliFlag]) !== null && _k !== void 0 ? _k : true,
210
+ isProduction: (_h = args_1.parsedLambdaCli[client_1.BrowserSafeApis.options.isProductionOption.cliFlag]) !== null && _h !== void 0 ? _h : true,
195
211
  });
196
212
  log_1.Log.info({ indent: false, logLevel }, cli_1.CliInternals.chalk.gray(`Render ID: ${cli_1.CliInternals.makeHyperlink({ text: res.renderId, fallback: res.renderId, url: lambda_client_1.LambdaClientInternals.getS3RenderUrl({ bucketName: res.bucketName, renderId: res.renderId, region: (0, get_aws_region_1.getAwsRegion)() }) })}`));
197
213
  log_1.Log.info({ indent: false, logLevel }, cli_1.CliInternals.chalk.gray(`Bucket: ${cli_1.CliInternals.makeHyperlink({ text: res.bucketName, fallback: res.bucketName, url: `https://${(0, get_aws_region_1.getAwsRegion)()}.console.aws.amazon.com/s3/buckets/${res.bucketName}/?region=${(0, get_aws_region_1.getAwsRegion)()}` })}`));
@@ -1,2 +1 @@
1
- import { AwsRegion } from '@remotion/lambda-client';
2
- export declare const getAwsRegion: () => AwsRegion;
1
+ export declare const getAwsRegion: () => "af-south-1" | "ap-east-1" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-southeast-4" | "ap-southeast-5" | "ca-central-1" | "eu-central-1" | "eu-central-2" | "eu-north-1" | "eu-south-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "me-south-1" | "sa-east-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2";
@@ -1,2 +1 @@
1
- import type { LogLevel } from '@remotion/renderer';
2
- export declare const printHelp: (logLevel: LogLevel) => void;
1
+ export declare const printHelp: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
@@ -1,7 +1,6 @@
1
1
  import { AwsProvider } from '@remotion/lambda-client';
2
- import type { LogLevel } from '@remotion/renderer';
3
2
  import { ProviderSpecifics } from '@remotion/serverless';
4
3
  export declare const findFunctionName: ({ logLevel, providerSpecifics, }: {
5
- logLevel: LogLevel;
4
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
6
5
  providerSpecifics: ProviderSpecifics<AwsProvider>;
7
6
  }) => Promise<string>;
@@ -1,2 +1 @@
1
- import type { LogLevel } from '@remotion/renderer';
2
- export declare const getWebhookCustomData: (logLevel: LogLevel) => Record<string, unknown> | null;
1
+ export declare const getWebhookCustomData: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => Record<string, unknown> | null;
@@ -1,5 +1,4 @@
1
1
  import { AwsProvider } from '@remotion/lambda-client';
2
- import type { LogLevel } from '@remotion/renderer';
3
2
  import { FullClientSpecifics, type ProviderSpecifics } from '@remotion/serverless';
4
- export declare const executeCommand: (args: string[], remotionRoot: string, logLevel: LogLevel, _providerSpecifics: ProviderSpecifics<AwsProvider> | null, fullClientSpecifics: FullClientSpecifics<AwsProvider> | null) => Promise<void>;
5
- export declare const cli: (logLevel: LogLevel) => Promise<void>;
3
+ export declare const executeCommand: (args: string[], remotionRoot: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", _providerSpecifics: ProviderSpecifics<AwsProvider> | null, fullClientSpecifics: FullClientSpecifics<AwsProvider> | null) => Promise<void>;
4
+ export declare const cli: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => Promise<void>;
package/dist/cli/index.js CHANGED
@@ -116,7 +116,8 @@ const matchCommand = ({ args, remotionRoot, logLevel, providerSpecifics, fullCli
116
116
  (0, quit_1.quit)(1);
117
117
  };
118
118
  const executeCommand = async (args, remotionRoot, logLevel, _providerSpecifics, fullClientSpecifics) => {
119
- var _a, _b, _c, _d, _e, _f;
119
+ var _a, _b, _c, _d, _e;
120
+ var _f;
120
121
  try {
121
122
  const providerSpecifics = _providerSpecifics !== null && _providerSpecifics !== void 0 ? _providerSpecifics : lambda_client_1.LambdaClientInternals.awsImplementation;
122
123
  await matchCommand({
package/dist/cli/log.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Log = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
- exports.Log = cli_1.CliInternals.Log;
5
+ ({ Log: exports.Log } = cli_1.CliInternals);
@@ -8604,16 +8604,16 @@ var require_package = __commonJS((exports, module) => {
8604
8604
  url: "https://github.com/remotion-dev/remotion/tree/main/packages/lambda"
8605
8605
  },
8606
8606
  name: "@remotion/lambda",
8607
- version: "4.0.423",
8607
+ version: "4.0.425",
8608
8608
  description: "Render Remotion videos on AWS Lambda",
8609
8609
  main: "dist/index.js",
8610
8610
  sideEffects: false,
8611
8611
  scripts: {
8612
- formatting: "prettier --experimental-cli src --check",
8612
+ formatting: "prettier src --check",
8613
8613
  lint: "eslint src",
8614
8614
  testlambda: "exit 0",
8615
8615
  test: "bun test src/test/unit",
8616
- make: "tsc -d && bun --env-file=../.env.bundle bundle.ts",
8616
+ make: "tsgo -d && bun --env-file=../.env.bundle bundle.ts",
8617
8617
  makeruntime: "bun build.ts",
8618
8618
  prepublishOnly: "bun build.ts && bun ensure-version-match.js"
8619
8619
  },
@@ -8652,7 +8652,8 @@ var require_package = __commonJS((exports, module) => {
8652
8652
  eslint: "catalog:",
8653
8653
  next: "catalog:",
8654
8654
  pureimage: "0.4.13",
8655
- "@types/node": "catalog:"
8655
+ "@types/node": "catalog:",
8656
+ "@typescript/native-preview": "catalog:"
8656
8657
  },
8657
8658
  peerDependencies: {
8658
8659
  "@remotion/bundler": "workspace:*"
@@ -11071,7 +11072,10 @@ var {
11071
11072
  glOption,
11072
11073
  delayRenderTimeoutInMillisecondsOption,
11073
11074
  headlessOption,
11074
- darkModeOption
11075
+ darkModeOption,
11076
+ userAgentOption,
11077
+ disableWebSecurityOption,
11078
+ ignoreCertificateErrorsOption
11075
11079
  } = BrowserSafeApis.options;
11076
11080
  var compositionsCommand = async ({
11077
11081
  args,
@@ -11086,17 +11090,20 @@ var compositionsCommand = async ({
11086
11090
  Log.info({ indent: false, logLevel }, `${BINARY_NAME4} ${COMPOSITIONS_COMMAND} <serve-url>`);
11087
11091
  quit(1);
11088
11092
  }
11089
- const {
11090
- envVariables,
11091
- inputProps,
11092
- ignoreCertificateErrors,
11093
- userAgent,
11094
- disableWebSecurity
11095
- } = CliInternals8.getCliOptions({
11093
+ const { envVariables, inputProps } = CliInternals8.getCliOptions({
11096
11094
  isStill: false,
11097
11095
  logLevel,
11098
11096
  indent: false
11099
11097
  });
11098
+ const userAgent = userAgentOption.getValue({
11099
+ commandLine: CliInternals8.parsedCli
11100
+ }).value;
11101
+ const disableWebSecurity = disableWebSecurityOption.getValue({
11102
+ commandLine: CliInternals8.parsedCli
11103
+ }).value;
11104
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption.getValue({
11105
+ commandLine: CliInternals8.parsedCli
11106
+ }).value;
11100
11107
  const enableMultiProcessOnLinux = enableMultiprocessOnLinuxOption.getValue({
11101
11108
  commandLine: CliInternals8.parsedCli
11102
11109
  }).value;
@@ -11229,7 +11236,7 @@ var makeQuotaUrl = ({
11229
11236
  }) => {
11230
11237
  return `https://${region}.console.aws.amazon.com/servicequotas/home/services/lambda/quotas/${quotaId}`;
11231
11238
  };
11232
- var quotasIncreaseCommand = async (logLevel, requestHandler) => {
11239
+ async function quotasIncreaseCommand(logLevel, requestHandler) {
11233
11240
  const region = getAwsRegion();
11234
11241
  const [concurrencyLimit, defaultConcurrencyLimit, changes] = await Promise.all([
11235
11242
  LambdaClientInternals17.getServiceQuotasClient(region, requestHandler).send(new GetServiceQuotaCommand({
@@ -11291,7 +11298,7 @@ var quotasIncreaseCommand = async (logLevel, requestHandler) => {
11291
11298
  throw err;
11292
11299
  }
11293
11300
  Log.info({ indent: false, logLevel }, `Requested increase successfully. Run "${BINARY_NAME6} ${QUOTAS_COMMAND}" to check whether your request was approved.`);
11294
- };
11301
+ }
11295
11302
 
11296
11303
  // src/cli/commands/quotas/list.ts
11297
11304
  import {
@@ -11621,7 +11628,14 @@ var {
11621
11628
  preferLosslessOption,
11622
11629
  metadataOption,
11623
11630
  mediaCacheSizeInBytesOption,
11624
- darkModeOption: darkModeOption2
11631
+ darkModeOption: darkModeOption2,
11632
+ pixelFormatOption,
11633
+ browserExecutableOption,
11634
+ everyNthFrameOption,
11635
+ proResProfileOption,
11636
+ userAgentOption: userAgentOption2,
11637
+ disableWebSecurityOption: disableWebSecurityOption2,
11638
+ ignoreCertificateErrorsOption: ignoreCertificateErrorsOption2
11625
11639
  } = BrowserSafeApis3.options;
11626
11640
  var renderCommand = async ({
11627
11641
  args,
@@ -11642,20 +11656,36 @@ var renderCommand = async ({
11642
11656
  envVariables,
11643
11657
  frameRange,
11644
11658
  inputProps,
11645
- pixelFormat,
11646
- proResProfile,
11647
- everyNthFrame,
11648
11659
  height,
11649
11660
  width,
11650
- browserExecutable,
11651
- ignoreCertificateErrors,
11652
- userAgent,
11653
- disableWebSecurity
11661
+ fps,
11662
+ durationInFrames
11654
11663
  } = CliInternals14.getCliOptions({
11655
11664
  isStill: false,
11656
11665
  logLevel,
11657
11666
  indent: false
11658
11667
  });
11668
+ const pixelFormat = pixelFormatOption.getValue({
11669
+ commandLine: CliInternals14.parsedCli
11670
+ }).value;
11671
+ const browserExecutable = browserExecutableOption.getValue({
11672
+ commandLine: CliInternals14.parsedCli
11673
+ }).value;
11674
+ const everyNthFrame = everyNthFrameOption.getValue({
11675
+ commandLine: CliInternals14.parsedCli
11676
+ }).value;
11677
+ const proResProfile = proResProfileOption.getValue({
11678
+ commandLine: CliInternals14.parsedCli
11679
+ }).value;
11680
+ const userAgent = userAgentOption2.getValue({
11681
+ commandLine: CliInternals14.parsedCli
11682
+ }).value;
11683
+ const disableWebSecurity = disableWebSecurityOption2.getValue({
11684
+ commandLine: CliInternals14.parsedCli
11685
+ }).value;
11686
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption2.getValue({
11687
+ commandLine: CliInternals14.parsedCli
11688
+ }).value;
11659
11689
  const x264Preset = x264Option.getValue({
11660
11690
  commandLine: CliInternals14.parsedCli
11661
11691
  }).value;
@@ -11764,6 +11794,9 @@ var renderCommand = async ({
11764
11794
  chromiumOptions,
11765
11795
  envVariables,
11766
11796
  height,
11797
+ width,
11798
+ fps,
11799
+ durationInFrames,
11767
11800
  indent,
11768
11801
  serializedInputPropsWithCustomSchema: NoReactInternals2.serializeJSONWithSpecialTypes({
11769
11802
  indent: undefined,
@@ -11775,7 +11808,6 @@ var renderCommand = async ({
11775
11808
  serveUrlOrWebpackUrl: serveUrl,
11776
11809
  timeoutInMilliseconds,
11777
11810
  logLevel,
11778
- width,
11779
11811
  server,
11780
11812
  offthreadVideoCacheSizeInBytes,
11781
11813
  offthreadVideoThreads,
@@ -11851,6 +11883,8 @@ var renderCommand = async ({
11851
11883
  encodingMaxRate,
11852
11884
  forceHeight: height,
11853
11885
  forceWidth: width,
11886
+ forceFps: fps,
11887
+ forceDurationInFrames: durationInFrames,
11854
11888
  webhook: parsedLambdaCli.webhook ? {
11855
11889
  url: parsedLambdaCli.webhook,
11856
11890
  secret: parsedLambdaCli["webhook-secret"] ?? null,
@@ -12514,7 +12548,11 @@ var {
12514
12548
  delayRenderTimeoutInMillisecondsOption: delayRenderTimeoutInMillisecondsOption3,
12515
12549
  binariesDirectoryOption: binariesDirectoryOption2,
12516
12550
  mediaCacheSizeInBytesOption: mediaCacheSizeInBytesOption2,
12517
- darkModeOption: darkModeOption3
12551
+ darkModeOption: darkModeOption3,
12552
+ browserExecutableOption: browserExecutableOption2,
12553
+ userAgentOption: userAgentOption3,
12554
+ disableWebSecurityOption: disableWebSecurityOption3,
12555
+ ignoreCertificateErrorsOption: ignoreCertificateErrorsOption3
12518
12556
  } = BrowserSafeApis5.options;
12519
12557
  var {
12520
12558
  parsedCli,
@@ -12545,15 +12583,23 @@ var stillCommand = async ({
12545
12583
  stillFrame,
12546
12584
  height,
12547
12585
  width,
12548
- browserExecutable,
12549
- userAgent,
12550
- disableWebSecurity,
12551
- ignoreCertificateErrors
12586
+ fps,
12587
+ durationInFrames
12552
12588
  } = getCliOptions({
12553
12589
  isStill: true,
12554
12590
  logLevel,
12555
12591
  indent: false
12556
12592
  });
12593
+ const browserExecutable = browserExecutableOption2.getValue({
12594
+ commandLine: parsedCli
12595
+ }).value;
12596
+ const userAgent = userAgentOption3.getValue({ commandLine: parsedCli }).value;
12597
+ const disableWebSecurity = disableWebSecurityOption3.getValue({
12598
+ commandLine: parsedCli
12599
+ }).value;
12600
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption3.getValue({
12601
+ commandLine: parsedCli
12602
+ }).value;
12557
12603
  const region = getAwsRegion();
12558
12604
  let composition = args[1];
12559
12605
  const enableMultiProcessOnLinux = enableMultiprocessOnLinuxOption3.getValue({
@@ -12626,6 +12672,8 @@ var stillCommand = async ({
12626
12672
  timeoutInMilliseconds,
12627
12673
  height,
12628
12674
  width,
12675
+ fps,
12676
+ durationInFrames,
12629
12677
  server,
12630
12678
  offthreadVideoCacheSizeInBytes,
12631
12679
  offthreadVideoThreads,
@@ -12650,13 +12698,15 @@ var stillCommand = async ({
12650
12698
  validateMaxRetries(maxRetries);
12651
12699
  const privacy = parsedLambdaCli.privacy ?? DEFAULT_OUTPUT_PRIVACY2;
12652
12700
  validatePrivacy3(privacy, true);
12701
+ const { stillImageFormatOption } = BrowserSafeApis5.options;
12653
12702
  const { format: imageFormat, source: imageFormatReason } = determineFinalStillImageFormat({
12654
12703
  downloadName,
12655
12704
  outName: outName ?? null,
12656
- cliFlag: parsedCli["image-format"] ?? null,
12705
+ configuredImageFormat: stillImageFormatOption.getValue({
12706
+ commandLine: parsedCli
12707
+ }).value,
12657
12708
  isLambda: true,
12658
- fromUi: null,
12659
- configImageFormat: ConfigInternals3.getUserPreferredStillImageFormat() ?? null
12709
+ fromUi: null
12660
12710
  });
12661
12711
  Log.info({ indent: false, logLevel }, CliInternals21.chalk.gray(`Function: ${CliInternals21.makeHyperlink({ text: functionName, fallback: functionName, url: `https://${getAwsRegion()}.console.aws.amazon.com/lambda/home#/functions/${functionName}?tab=code` })}`));
12662
12712
  Log.info({ indent: false, logLevel }, CliInternals21.chalk.gray(`Image Format = ${imageFormat} (${imageFormatReason})`));
@@ -12686,6 +12736,8 @@ var stillCommand = async ({
12686
12736
  scale,
12687
12737
  forceHeight: height,
12688
12738
  forceWidth: width,
12739
+ forceFps: fps,
12740
+ forceDurationInFrames: durationInFrames,
12689
12741
  onInit: ({ cloudWatchLogs, lambdaInsightsUrl }) => {
12690
12742
  Log.verbose({ indent: false, logLevel }, `${CliInternals21.makeHyperlink({
12691
12743
  text: "CloudWatch Logs",
@@ -1,2 +1 @@
1
- import type { AwsRegion } from '@remotion/lambda-client';
2
- export declare const getCurrentRegionInFunctionImplementation: () => AwsRegion;
1
+ export declare const getCurrentRegionInFunctionImplementation: () => "af-south-1" | "ap-east-1" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-southeast-4" | "ap-southeast-5" | "ca-central-1" | "eu-central-1" | "eu-central-2" | "eu-north-1" | "eu-south-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "me-south-1" | "sa-east-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2";
@@ -6,7 +6,7 @@ export type LambdaReadFileProgress = (progress: {
6
6
  downloaded: number;
7
7
  percent: number;
8
8
  }) => unknown;
9
- export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, requestHandler, abortSignal, }: {
9
+ type LambdaDownloadFileWithProgressInput = {
10
10
  bucketName: string;
11
11
  key: string;
12
12
  region: AwsRegion;
@@ -18,7 +18,9 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
18
18
  forcePathStyle: boolean;
19
19
  requestHandler: RequestHandler;
20
20
  abortSignal: AbortSignal;
21
- }) => Promise<{
21
+ };
22
+ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, requestHandler, abortSignal, }: LambdaDownloadFileWithProgressInput) => Promise<{
22
23
  sizeInBytes: number;
23
24
  to: string;
24
25
  }>;
26
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { AwsRegion, CustomCredentials, DeleteFunctionInput, DeleteRenderInput, EnhancedErrorInfo, EstimatePriceInput, GetAwsClientInput, GetAwsClientOutput, GetCompositionsOnLambdaInput, GetCompositionsOnLambdaOutput, GetFunctionsInput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderProgressInput, GetSitesInput, GetSitesOutput, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderProgress, RenderStillOnLambdaInput, RenderStillOnLambdaOutput } from '@remotion/lambda-client';
2
- import { deleteFunction, deleteRender, estimatePrice, getAwsClient, getCompositionsOnLambda, getFunctions, renderVideoOnLambda, validateWebhookSignature } from '@remotion/lambda-client';
2
+ import { deleteFunction, deleteRender, renderStillOnLambda as deprecatedRenderStillOnLambda, estimatePrice, getAwsClient, getCompositionsOnLambda, getFunctions, renderVideoOnLambda, validateWebhookSignature } from '@remotion/lambda-client';
3
3
  import type { FunctionInfo } from '@remotion/serverless';
4
4
  import type { DeleteSiteInput, DeleteSiteOutput } from './api/delete-site';
5
5
  import { deleteSite } from './api/delete-site';
@@ -29,11 +29,7 @@ declare const getRenderProgress: (input: GetRenderProgressInput) => Promise<Rend
29
29
  /**
30
30
  * @deprecated Import this from `@remotion/lambda-client` instead
31
31
  */
32
- declare const renderStillOnLambda: (input: RenderStillOnLambdaInput & {
33
- quality?: never;
34
- dumpBrowserLogs?: boolean;
35
- apiKey?: string | null;
36
- }) => Promise<RenderStillOnLambdaOutput>;
32
+ declare const renderStillOnLambda: typeof deprecatedRenderStillOnLambda;
37
33
  /**
38
34
  * @deprecated Import this from `@remotion/lambda-client` instead
39
35
  */
@@ -1,76 +1,14 @@
1
+ import type { AwsProvider, AwsRegion, RuntimePreference } from '@remotion/lambda-client';
2
+ import type { LogLevel } from '@remotion/renderer';
3
+ import type { FullClientSpecifics, ProviderSpecifics } from '@remotion/serverless';
4
+ import type { DeploySiteOutput, InternalDeploySiteInput } from './api/deploy-site';
5
+ import type { AwsLayer } from './shared/hosted-layers';
1
6
  export declare const LambdaInternals: {
2
- executeCommand: (args: string[], remotionRoot: string, logLevel: import("@remotion/serverless").LogLevel, _providerSpecifics: import("@remotion/serverless").ProviderSpecifics<import("@remotion/lambda-client").AwsProvider> | null, fullClientSpecifics: import("@remotion/serverless").FullClientSpecifics<import("@remotion/lambda-client").AwsProvider> | null) => Promise<void>;
3
- internalDeploySite: (args_0: {
4
- entryPoint: string;
5
- bucketName: string;
6
- region: import("@remotion/lambda-client").AwsRegion;
7
- } & {
8
- siteName: string;
9
- options: {
10
- onBundleProgress?: (progress: number) => void;
11
- onUploadProgress?: (upload: import("@remotion/serverless").UploadDirProgress) => void;
12
- onDiffingProgress?: (bytes: number, done: boolean) => void;
13
- webpackOverride?: import("@remotion/bundler").WebpackOverrideFn;
14
- ignoreRegisterRootWarning?: boolean;
15
- enableCaching?: boolean;
16
- publicDir?: string | null;
17
- rootDir?: string;
18
- bypassBucketNameValidation?: boolean;
19
- keyboardShortcutsEnabled?: boolean;
20
- askAIEnabled?: boolean;
21
- experimentalClientSideRenderingEnabled?: boolean;
22
- };
23
- privacy: "public" | "no-acl";
24
- gitSource: import("@remotion/bundler").GitSource | null;
25
- indent: boolean;
26
- forcePathStyle: boolean;
27
- requestHandler: import("@remotion/lambda-client").RequestHandler | null;
28
- } & import("@remotion/serverless").ToOptions<{
29
- readonly logLevel: {
30
- cliFlag: "log";
31
- name: string;
32
- ssrName: string;
33
- description: () => import("react/jsx-runtime").JSX.Element;
34
- docLink: string;
35
- getValue: ({ commandLine }: {
36
- commandLine: Record<string, unknown>;
37
- }) => {
38
- value: "error" | "info" | "trace" | "verbose" | "warn";
39
- source: string;
40
- };
41
- setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
42
- type: "error" | "info" | "trace" | "verbose" | "warn";
43
- };
44
- readonly throwIfSiteExists: {
45
- cliFlag: string;
46
- description: () => string;
47
- docLink: string;
48
- getValue: ({ commandLine }: {
49
- commandLine: Record<string, unknown>;
50
- }) => {
51
- source: string;
52
- value: boolean;
53
- };
54
- name: string;
55
- setConfig: () => never;
56
- ssrName: string;
57
- type: boolean;
58
- };
59
- }> & {
60
- providerSpecifics: import("@remotion/serverless").ProviderSpecifics<import("@remotion/lambda-client").AwsProvider>;
61
- fullClientSpecifics: import("@remotion/serverless").FullClientSpecifics<import("@remotion/lambda-client").AwsProvider>;
62
- }) => Promise<{
63
- serveUrl: string;
64
- siteName: string;
65
- stats: {
66
- uploadedFiles: number;
67
- deletedFiles: number;
68
- untouchedFiles: number;
69
- };
70
- }>;
71
- getLayers: ({ option, region, }: {
72
- option: import("@remotion/lambda-client").RuntimePreference;
73
- region: import("@remotion/lambda-client").AwsRegion;
74
- }) => import("./shared/hosted-layers").AwsLayer[];
7
+ executeCommand: (args: string[], remotionRoot: string, logLevel: LogLevel, providerSpecifics: ProviderSpecifics<AwsProvider> | null, fullClientSpecifics: FullClientSpecifics<AwsProvider> | null) => Promise<void>;
8
+ internalDeploySite: (input: InternalDeploySiteInput) => DeploySiteOutput;
9
+ getLayers: (options: {
10
+ option: RuntimePreference;
11
+ region: AwsRegion;
12
+ }) => AwsLayer[];
75
13
  };
76
14
  export type { OverallRenderProgress as _InternalOverallRenderProgress } from '@remotion/serverless';
@@ -1,7 +1,6 @@
1
- import type { AwsRegion, RuntimePreference } from '@remotion/lambda-client';
2
1
  import type { AwsLayer } from './hosted-layers';
3
2
  export declare const validateRuntimePreference: (option: unknown) => void;
4
3
  export declare const getLayers: ({ option, region, }: {
5
- option: RuntimePreference;
6
- region: AwsRegion;
4
+ option: "apple-emojis" | "cjk" | "default";
5
+ region: "af-south-1" | "ap-east-1" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-southeast-4" | "ap-southeast-5" | "ca-central-1" | "eu-central-1" | "eu-central-2" | "eu-north-1" | "eu-south-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "me-south-1" | "sa-east-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2";
7
6
  }) => AwsLayer[];
package/package.json CHANGED
@@ -3,16 +3,16 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/lambda"
4
4
  },
5
5
  "name": "@remotion/lambda",
6
- "version": "4.0.423",
6
+ "version": "4.0.425",
7
7
  "description": "Render Remotion videos on AWS Lambda",
8
8
  "main": "dist/index.js",
9
9
  "sideEffects": false,
10
10
  "scripts": {
11
- "formatting": "prettier --experimental-cli src --check",
11
+ "formatting": "prettier src --check",
12
12
  "lint": "eslint src",
13
13
  "testlambda": "exit 0",
14
14
  "test": "bun test src/test/unit",
15
- "make": "tsc -d && bun --env-file=../.env.bundle bundle.ts",
15
+ "make": "tsgo -d && bun --env-file=../.env.bundle bundle.ts",
16
16
  "makeruntime": "bun build.ts",
17
17
  "prepublishOnly": "bun build.ts && bun ensure-version-match.js"
18
18
  },
@@ -28,22 +28,22 @@
28
28
  "@aws-sdk/client-cloudwatch-logs": "3.986.0",
29
29
  "@aws-sdk/client-service-quotas": "3.986.0",
30
30
  "@aws-sdk/lib-storage": "3.986.0",
31
- "@remotion/bundler": "4.0.423",
32
- "@remotion/cli": "4.0.423",
33
- "@remotion/lambda-client": "4.0.423",
34
- "@remotion/renderer": "4.0.423",
35
- "@remotion/serverless": "4.0.423",
36
- "@remotion/streaming": "4.0.423",
31
+ "@remotion/bundler": "4.0.425",
32
+ "@remotion/cli": "4.0.425",
33
+ "@remotion/lambda-client": "4.0.425",
34
+ "@remotion/renderer": "4.0.425",
35
+ "@remotion/serverless": "4.0.425",
36
+ "@remotion/streaming": "4.0.425",
37
37
  "@smithy/abort-controller": "4.0.1",
38
- "remotion": "4.0.423",
38
+ "remotion": "4.0.425",
39
39
  "zod": "3.22.3"
40
40
  },
41
41
  "devDependencies": {
42
- "@remotion/bundler": "4.0.423",
42
+ "@remotion/bundler": "4.0.425",
43
43
  "@types/express": "^5.0.0",
44
44
  "express": "4.21.0",
45
- "@remotion/compositor-linux-arm64-gnu": "4.0.423",
46
- "@remotion/eslint-config-internal": "4.0.423",
45
+ "@remotion/compositor-linux-arm64-gnu": "4.0.425",
46
+ "@remotion/eslint-config-internal": "4.0.425",
47
47
  "mime-types": "2.1.34",
48
48
  "@types/mime-types": "2.1.1",
49
49
  "@types/minimist": "1.2.2",
@@ -51,10 +51,11 @@
51
51
  "eslint": "9.19.0",
52
52
  "next": "16.1.5",
53
53
  "pureimage": "0.4.13",
54
- "@types/node": "20.12.14"
54
+ "@types/node": "20.12.14",
55
+ "@typescript/native-preview": "7.0.0-dev.20260217.1"
55
56
  },
56
57
  "peerDependencies": {
57
- "@remotion/bundler": "4.0.423"
58
+ "@remotion/bundler": "4.0.425"
58
59
  },
59
60
  "publishConfig": {
60
61
  "access": "public"
Binary file