@remotion/lambda 4.0.201 → 4.0.202

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 (79) hide show
  1. package/dist/api/bucket-exists.js +6 -2
  2. package/dist/api/clean-items.d.ts +2 -1
  3. package/dist/api/clean-items.js +2 -1
  4. package/dist/api/create-bucket.js +5 -5
  5. package/dist/api/delete-render.d.ts +2 -0
  6. package/dist/api/delete-render.js +6 -0
  7. package/dist/api/delete-site.d.ts +11 -5
  8. package/dist/api/delete-site.js +7 -1
  9. package/dist/api/deploy-site.d.ts +5 -3
  10. package/dist/api/deploy-site.js +7 -2
  11. package/dist/api/download-media.d.ts +2 -0
  12. package/dist/api/download-media.js +4 -1
  13. package/dist/api/get-aws-client.d.ts +2 -1
  14. package/dist/api/get-aws-client.js +2 -1
  15. package/dist/api/get-buckets.js +11 -3
  16. package/dist/api/get-compositions-on-lambda.d.ts +2 -1
  17. package/dist/api/get-compositions-on-lambda.js +3 -1
  18. package/dist/api/get-or-create-bucket.js +1 -0
  19. package/dist/api/get-render-progress.d.ts +1 -0
  20. package/dist/api/get-sites.d.ts +9 -4
  21. package/dist/api/get-sites.js +15 -5
  22. package/dist/api/make-lambda-payload.d.ts +4 -3
  23. package/dist/api/make-lambda-payload.js +9 -4
  24. package/dist/api/presign-url.d.ts +8 -3
  25. package/dist/api/presign-url.js +26 -12
  26. package/dist/api/render-media-on-lambda.d.ts +1 -0
  27. package/dist/api/render-media-on-lambda.js +2 -1
  28. package/dist/api/render-still-on-lambda.d.ts +1 -0
  29. package/dist/api/render-still-on-lambda.js +2 -1
  30. package/dist/api/upload-dir.d.ts +2 -1
  31. package/dist/api/upload-dir.js +2 -2
  32. package/dist/cli/args.d.ts +1 -0
  33. package/dist/cli/commands/render/render.js +3 -1
  34. package/dist/cli/commands/sites/create.js +3 -1
  35. package/dist/cli/commands/sites/rm.js +1 -0
  36. package/dist/cli/commands/sites/rmall.js +1 -0
  37. package/dist/cli/commands/still.d.ts +6 -1
  38. package/dist/cli/commands/still.js +2 -1
  39. package/dist/cli/index.js +6 -1
  40. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -4
  41. package/dist/functions/helpers/cleanup-props.d.ts +6 -2
  42. package/dist/functions/helpers/cleanup-props.js +3 -1
  43. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -1
  44. package/dist/functions/helpers/find-output-file-in-bucket.js +2 -1
  45. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  46. package/dist/functions/helpers/get-overall-progress-s3.d.ts +2 -1
  47. package/dist/functions/helpers/get-overall-progress-s3.js +2 -1
  48. package/dist/functions/helpers/get-progress.d.ts +2 -1
  49. package/dist/functions/helpers/get-progress.js +2 -1
  50. package/dist/functions/helpers/merge-chunks.d.ts +1 -0
  51. package/dist/functions/helpers/merge-chunks.js +2 -0
  52. package/dist/functions/helpers/overall-render-progress.d.ts +2 -1
  53. package/dist/functions/helpers/overall-render-progress.js +2 -1
  54. package/dist/functions/helpers/read-with-progress.d.ts +2 -1
  55. package/dist/functions/helpers/read-with-progress.js +2 -2
  56. package/dist/functions/launch.js +8 -0
  57. package/dist/functions/progress.js +1 -0
  58. package/dist/functions/renderer.js +2 -0
  59. package/dist/functions/start.js +3 -0
  60. package/dist/functions/still.js +6 -0
  61. package/dist/index.d.ts +2 -2
  62. package/dist/internals.d.ts +11 -9
  63. package/dist/io/delete-file.js +2 -2
  64. package/dist/io/head-file.js +6 -2
  65. package/dist/io/list-objects.js +12 -3
  66. package/dist/io/read-file.d.ts +2 -1
  67. package/dist/io/read-file.js +6 -2
  68. package/dist/io/write-file.js +6 -2
  69. package/dist/shared/aws-clients.js +15 -2
  70. package/dist/shared/cleanup-serialized-input-props.d.ts +4 -2
  71. package/dist/shared/cleanup-serialized-input-props.js +4 -2
  72. package/dist/shared/get-s3-client.d.ts +5 -1
  73. package/dist/shared/get-s3-client.js +2 -1
  74. package/dist/shared/get-service-client.d.ts +2 -1
  75. package/dist/shared/get-service-client.js +4 -2
  76. package/dist/shared/lifecycle-rules.d.ts +2 -1
  77. package/dist/shared/lifecycle-rules.js +17 -7
  78. package/package.json +11 -11
  79. package/remotionlambda-arm64.zip +0 -0
@@ -1,11 +1,15 @@
1
1
  import type { AwsRegion } from '../regions';
2
- export type PresignUrlInput<CheckIfObjectExists extends boolean = boolean> = {
2
+ type MandatoryParameters = {
3
3
  region: AwsRegion;
4
4
  bucketName: string;
5
5
  objectKey: string;
6
- checkIfObjectExists?: CheckIfObjectExists;
7
6
  expiresInSeconds: number;
8
7
  };
8
+ type OptionalParameters<CheckIfObjectExists extends boolean> = {
9
+ checkIfObjectExists: CheckIfObjectExists;
10
+ forcePathStyle: boolean;
11
+ };
12
+ export type PresignUrlInput<CheckIfObjectExists extends boolean = boolean> = MandatoryParameters & Partial<OptionalParameters<CheckIfObjectExists>>;
9
13
  /**
10
14
  * @description Returns a public url of an object stored in Remotion's S3 bucket.
11
15
  * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
@@ -16,4 +20,5 @@ export type PresignUrlInput<CheckIfObjectExists extends boolean = boolean> = {
16
20
  * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
17
21
  * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
22
  */
19
- export declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
23
+ export declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, forcePathStyle, }: PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
24
+ export {};
@@ -6,20 +6,14 @@ const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
6
6
  const client_1 = require("@remotion/serverless/client");
7
7
  const get_s3_client_1 = require("../shared/get-s3-client");
8
8
  const validate_presign_expiration_1 = require("../shared/validate-presign-expiration");
9
- /**
10
- * @description Returns a public url of an object stored in Remotion's S3 bucket.
11
- * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
12
- * @param {AwsRegion} params.region The region in which the S3 bucket resides in.
13
- * @param {string} params.bucketName The name of the bucket to fetch the object from.
14
- * @param {string} params.objectKey Key of the S3 object to get.
15
- * @param {string} params.expiresIn The number of seconds before the presigned URL expires. Default 120.
16
- * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
17
- * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
18
- */
19
- const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }) => {
9
+ const internalPresignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, forcePathStyle, }) => {
20
10
  (0, client_1.validateBucketName)(bucketName, { mustStartWithRemotion: false });
21
11
  (0, validate_presign_expiration_1.validatePresignExpiration)(expiresInSeconds);
22
- const s3Client = (0, get_s3_client_1.getS3Client)(region, null);
12
+ const s3Client = (0, get_s3_client_1.getS3Client)({
13
+ region,
14
+ customCredentials: null,
15
+ forcePathStyle,
16
+ });
23
17
  if (checkIfObjectExists === true) {
24
18
  try {
25
19
  await s3Client.send(new client_s3_1.HeadObjectCommand({
@@ -48,4 +42,24 @@ const presignUrl = async ({ region, bucketName, objectKey, checkIfObjectExists,
48
42
  });
49
43
  return publicUrl;
50
44
  };
45
+ /**
46
+ * @description Returns a public url of an object stored in Remotion's S3 bucket.
47
+ * @see [Documentation](https://remotion.dev/docs/lambda/presignurl)
48
+ * @param {AwsRegion} params.region The region in which the S3 bucket resides in.
49
+ * @param {string} params.bucketName The name of the bucket to fetch the object from.
50
+ * @param {string} params.objectKey Key of the S3 object to get.
51
+ * @param {string} params.expiresIn The number of seconds before the presigned URL expires. Default 120.
52
+ * @param {boolean} params.checkIfObjectExists Whether the function should check if the object exists in the bucket before generating the presigned url.
53
+ * @returns {Promise<string | null>} The public url of an object or `null` if `checkIfObjectExists=true` & object does not exist.
54
+ */
55
+ const presignUrl = ({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, forcePathStyle, }) => {
56
+ return internalPresignUrl({
57
+ region,
58
+ bucketName,
59
+ objectKey,
60
+ checkIfObjectExists: checkIfObjectExists !== null && checkIfObjectExists !== void 0 ? checkIfObjectExists : false,
61
+ expiresInSeconds,
62
+ forcePathStyle: forcePathStyle !== null && forcePathStyle !== void 0 ? forcePathStyle : false,
63
+ });
64
+ };
51
65
  exports.presignUrl = presignUrl;
@@ -42,6 +42,7 @@ export type RenderMediaOnLambdaInput = {
42
42
  * @deprecated in favor of `logLevel`: true
43
43
  */
44
44
  dumpBrowserLogs?: boolean;
45
+ forcePathStyle?: boolean;
45
46
  } & Partial<ToOptions<typeof BrowserSafeApis.optionsMap.renderMediaOnLambda>>;
46
47
  export type RenderMediaOnLambdaOutput = {
47
48
  renderId: string;
@@ -59,7 +59,7 @@ const internalRenderMediaOnLambdaRaw = async (input) => {
59
59
  };
60
60
  exports.internalRenderMediaOnLambdaRaw = internalRenderMediaOnLambdaRaw;
61
61
  const renderMediaOnLambdaOptionalToRequired = (options) => {
62
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
62
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12;
63
63
  return {
64
64
  audioBitrate: (_a = options.audioBitrate) !== null && _a !== void 0 ? _a : null,
65
65
  audioCodec: (_b = options.audioCodec) !== null && _b !== void 0 ? _b : null,
@@ -103,6 +103,7 @@ const renderMediaOnLambdaOptionalToRequired = (options) => {
103
103
  x264Preset: (_9 = options.x264Preset) !== null && _9 !== void 0 ? _9 : null,
104
104
  deleteAfter: (_10 = options.deleteAfter) !== null && _10 !== void 0 ? _10 : null,
105
105
  preferLossless: (_11 = options.preferLossless) !== null && _11 !== void 0 ? _11 : false,
106
+ forcePathStyle: (_12 = options.forcePathStyle) !== null && _12 !== void 0 ? _12 : false,
106
107
  indent: false,
107
108
  };
108
109
  };
@@ -39,6 +39,7 @@ type OptionalParameters = {
39
39
  lambdaInsightsUrl: string;
40
40
  }) => void;
41
41
  indent: boolean;
42
+ forcePathStyle: boolean;
42
43
  } & ToOptions<typeof BrowserSafeApis.optionsMap.renderStillOnLambda>;
43
44
  export type RenderStillOnLambdaNonNullInput = MandatoryParameters & OptionalParameters;
44
45
  export type RenderStillOnLambdaInput = MandatoryParameters & Partial<OptionalParameters>;
@@ -94,7 +94,7 @@ const errorHandled = (0, error_handling_1.wrapWithErrorHandling)(internalRenderS
94
94
  * @returns {Promise<RenderStillOnLambdaOutput>} See documentation for exact response structure.
95
95
  */
96
96
  const renderStillOnLambda = (input) => {
97
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
97
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
98
98
  return errorHandled({
99
99
  chromiumOptions: (_a = input.chromiumOptions) !== null && _a !== void 0 ? _a : {},
100
100
  composition: input.composition,
@@ -122,6 +122,7 @@ const renderStillOnLambda = (input) => {
122
122
  scale: (_q = input.scale) !== null && _q !== void 0 ? _q : 1,
123
123
  timeoutInMilliseconds: (_r = input.timeoutInMilliseconds) !== null && _r !== void 0 ? _r : 30000,
124
124
  dumpBrowserLogs: false,
125
+ forcePathStyle: (_s = input.forcePathStyle) !== null && _s !== void 0 ? _s : false,
125
126
  });
126
127
  };
127
128
  exports.renderStillOnLambda = renderStillOnLambda;
@@ -11,7 +11,7 @@ export type MockFile = {
11
11
  content: string;
12
12
  };
13
13
  export declare const getDirFiles: (entry: string) => MockFile[];
14
- export declare const uploadDir: ({ bucket, region, localDir, onProgress, keyPrefix, privacy, toUpload, }: {
14
+ export declare const uploadDir: ({ bucket, region, localDir, onProgress, keyPrefix, privacy, toUpload, forcePathStyle, }: {
15
15
  bucket: string;
16
16
  region: AwsRegion;
17
17
  localDir: string;
@@ -19,4 +19,5 @@ export declare const uploadDir: ({ bucket, region, localDir, onProgress, keyPref
19
19
  onProgress: (progress: UploadDirProgress) => void;
20
20
  privacy: Privacy;
21
21
  toUpload: string[];
22
+ forcePathStyle: boolean;
22
23
  }) => Promise<void>;
@@ -46,13 +46,13 @@ async function getFiles(directory, originalDirectory, toUpload) {
46
46
  return _files.flat(1);
47
47
  }
48
48
  const limit = (0, p_limit_1.pLimit)(50);
49
- const uploadDir = async ({ bucket, region, localDir, onProgress, keyPrefix, privacy, toUpload, }) => {
49
+ const uploadDir = async ({ bucket, region, localDir, onProgress, keyPrefix, privacy, toUpload, forcePathStyle, }) => {
50
50
  const files = await getFiles(localDir, localDir, toUpload);
51
51
  const progresses = {};
52
52
  for (const file of files) {
53
53
  progresses[file.name] = 0;
54
54
  }
55
- const client = (0, get_s3_client_1.getS3Client)(region, null);
55
+ const client = (0, get_s3_client_1.getS3Client)({ region, customCredentials: null, forcePathStyle });
56
56
  const uploadAll = (async () => {
57
57
  const uploads = files.map((filePath) => limit(async () => {
58
58
  const Key = (0, make_s3_key_1.makeS3Key)(keyPrefix, localDir, filePath.name);
@@ -36,6 +36,7 @@ type LambdaCommandLineOptions = {
36
36
  ['vpc-subnet-ids']: string | undefined;
37
37
  ['vpc-security-group-ids']: string | undefined;
38
38
  ['compatible-only']: boolean;
39
+ ['force-path-style']: boolean;
39
40
  };
40
41
  export declare const parsedLambdaCli: LambdaCommandLineOptions & import("minimist").ParsedArgs;
41
42
  export declare const forceFlagProvided: boolean;
@@ -29,7 +29,7 @@ const progress_1 = require("./progress");
29
29
  exports.RENDER_COMMAND = 'render';
30
30
  const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, mutedOption, colorSpaceOption, deleteAfterOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, overwriteOption, binariesDirectoryOption, preferLosslessOption, } = client_1.BrowserSafeApis.options;
31
31
  const renderCommand = async (args, remotionRoot, logLevel, implementation) => {
32
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
32
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
33
33
  const serveUrl = args[0];
34
34
  if (!serveUrl) {
35
35
  log_1.Log.error({ indent: false, logLevel }, 'No serve URL passed.');
@@ -234,6 +234,7 @@ const renderCommand = async (args, remotionRoot, logLevel, implementation) => {
234
234
  x264Preset: x264Preset !== null && x264Preset !== void 0 ? x264Preset : null,
235
235
  preferLossless,
236
236
  indent: false,
237
+ forcePathStyle: (_l = args_1.parsedLambdaCli['force-path-style']) !== null && _l !== void 0 ? _l : false,
237
238
  });
238
239
  const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
239
240
  quiet: cli_1.CliInternals.quietFlagProvided(),
@@ -327,6 +328,7 @@ const renderCommand = async (args, remotionRoot, logLevel, implementation) => {
327
328
  }), false);
328
329
  },
329
330
  providerSpecifics: implementation,
331
+ forcePathStyle: args_1.parsedLambdaCli['force-path-style'],
330
332
  });
331
333
  downloadOrNothing = download;
332
334
  progressBar.update((0, progress_1.makeProgressString)({
@@ -17,7 +17,7 @@ const log_1 = require("../../log");
17
17
  exports.SITES_CREATE_SUBCOMMAND = 'create';
18
18
  const { folderExpiryOption, publicDirOption, throwIfSiteExistsOption, disableGitSourceOption, } = client_1.BrowserSafeApis.options;
19
19
  const sitesCreateSubcommand = async (args, remotionRoot, logLevel, implementation) => {
20
- var _a, _b, _c, _d;
20
+ var _a, _b, _c, _d, _e;
21
21
  const { file, reason } = cli_1.CliInternals.findEntryPoint({
22
22
  args,
23
23
  remotionRoot,
@@ -83,6 +83,7 @@ const sitesCreateSubcommand = async (args, remotionRoot, logLevel, implementatio
83
83
  enableFolderExpiry,
84
84
  customCredentials: null,
85
85
  providerSpecifics: implementation,
86
+ forcePathStyle: false,
86
87
  })).bucketName;
87
88
  multiProgress.bucketProgress.doneIn = Date.now() - bucketStart;
88
89
  updateProgress(false);
@@ -146,6 +147,7 @@ const sitesCreateSubcommand = async (args, remotionRoot, logLevel, implementatio
146
147
  logLevel,
147
148
  throwIfSiteExists,
148
149
  providerSpecifics: implementation,
150
+ forcePathStyle: (_e = args_1.parsedLambdaCli['force-path-style']) !== null && _e !== void 0 ? _e : false,
149
151
  });
150
152
  const uploadDuration = Date.now() - uploadStart;
151
153
  multiProgress.deployProgress = {
@@ -31,6 +31,7 @@ const sitesRmSubcommand = async (args, logLevel, implementation) => {
31
31
  enableFolderExpiry: false,
32
32
  customCredentials: null,
33
33
  providerSpecifics: implementation,
34
+ forcePathStyle: false,
34
35
  })).bucketName;
35
36
  for (const siteName of args) {
36
37
  const site = deployedSites.sites.find((s) => s.id === siteName.trim());
@@ -21,6 +21,7 @@ const sitesRmallSubcommand = async (logLevel, implementation) => {
21
21
  enableFolderExpiry: false,
22
22
  customCredentials: null,
23
23
  providerSpecifics: implementation,
24
+ forcePathStyle: false,
24
25
  })).bucketName;
25
26
  for (const site of deployedSites.sites) {
26
27
  if (!(await (0, confirm_1.confirmCli)({
@@ -2,4 +2,9 @@ import type { LogLevel } from '@remotion/renderer';
2
2
  import type { ProviderSpecifics } from '@remotion/serverless';
3
3
  import type { AwsProvider } from '../../functions/aws-implementation';
4
4
  export declare const STILL_COMMAND = "still";
5
- export declare const stillCommand: (args: string[], remotionRoot: string, logLevel: LogLevel, implementation: ProviderSpecifics<AwsProvider>) => Promise<void>;
5
+ export declare const stillCommand: ({ args, remotionRoot, logLevel, implementation, }: {
6
+ args: string[];
7
+ remotionRoot: string;
8
+ logLevel: LogLevel;
9
+ implementation: ProviderSpecifics<AwsProvider>;
10
+ }) => Promise<void>;
@@ -26,7 +26,7 @@ const progress_1 = require("./render/progress");
26
26
  const { offthreadVideoCacheSizeInBytesOption, scaleOption, deleteAfterOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, } = client_1.BrowserSafeApis.options;
27
27
  const { parsedCli, determineFinalStillImageFormat, chalk, getCliOptions, formatBytes, getCompositionWithDimensionOverride, } = cli_1.CliInternals;
28
28
  exports.STILL_COMMAND = 'still';
29
- const stillCommand = async (args, remotionRoot, logLevel, implementation) => {
29
+ const stillCommand = async ({ args, remotionRoot, logLevel, implementation, }) => {
30
30
  var _a, _b, _c, _d, _e;
31
31
  const serveUrl = args[0];
32
32
  if (!serveUrl) {
@@ -194,6 +194,7 @@ const stillCommand = async (args, remotionRoot, logLevel, implementation) => {
194
194
  renderId: res.renderId,
195
195
  logLevel,
196
196
  providerSpecifics: implementation,
197
+ forcePathStyle: args_1.parsedLambdaCli['force-path-style'],
197
198
  });
198
199
  const relativePath = path_1.default.relative(process.cwd(), outputPath);
199
200
  log_1.Log.info({ indent: false, logLevel }, chalk.blue('↓'.padEnd(cli_1.CliInternals.LABEL_WIDTH)), chalk.blue(cli_1.CliInternals.makeHyperlink({
package/dist/cli/index.js CHANGED
@@ -49,7 +49,12 @@ const matchCommand = (args, remotionRoot, logLevel, implementation) => {
49
49
  return (0, render_1.renderCommand)(args.slice(1), remotionRoot, logLevel, implementation);
50
50
  }
51
51
  if (args[0] === still_1.STILL_COMMAND) {
52
- return (0, still_1.stillCommand)(args.slice(1), remotionRoot, logLevel, implementation);
52
+ return (0, still_1.stillCommand)({
53
+ args: args.slice(1),
54
+ remotionRoot,
55
+ logLevel,
56
+ implementation,
57
+ });
53
58
  }
54
59
  if (args[0] === compositions_1.COMPOSITIONS_COMMAND) {
55
60
  return (0, compositions_1.compositionsCommand)(args.slice(1), logLevel);
@@ -3,8 +3,5 @@ export declare const planFrameRanges: ({ framesPerLambda, frameRange, everyNthFr
3
3
  frameRange: [number, number];
4
4
  everyNthFrame: number;
5
5
  }) => {
6
- chunks: [
7
- number,
8
- number
9
- ][];
6
+ chunks: [number, number][];
10
7
  };
@@ -1,7 +1,11 @@
1
1
  import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
2
  import type { SerializedInputProps } from '@remotion/serverless/client';
3
- export declare const cleanupProps: <Provider extends CloudProvider<string, Record<string, unknown>>>({ serializedResolvedProps, inputProps, providerSpecifics, }: {
3
+ export declare const cleanupProps: <Provider extends CloudProvider<string, Record<string, unknown>>>({ serializedResolvedProps, inputProps, providerSpecifics, forcePathStyle, }: {
4
4
  serializedResolvedProps: SerializedInputProps;
5
5
  inputProps: SerializedInputProps;
6
6
  providerSpecifics: ProviderSpecifics<Provider>;
7
- }) => Promise<[number, number]>;
7
+ forcePathStyle: boolean;
8
+ }) => Promise<[
9
+ number,
10
+ number
11
+ ]>;
@@ -2,16 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cleanupProps = void 0;
4
4
  const cleanup_serialized_input_props_1 = require("../../shared/cleanup-serialized-input-props");
5
- const cleanupProps = ({ serializedResolvedProps, inputProps, providerSpecifics, }) => {
5
+ const cleanupProps = ({ serializedResolvedProps, inputProps, providerSpecifics, forcePathStyle, }) => {
6
6
  const cleanupSerializedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
7
7
  region: providerSpecifics.getCurrentRegionInFunction(),
8
8
  serialized: inputProps,
9
9
  providerSpecifics,
10
+ forcePathStyle,
10
11
  });
11
12
  const cleanupResolvedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedResolvedProps)({
12
13
  region: providerSpecifics.getCurrentRegionInFunction(),
13
14
  serialized: serializedResolvedProps,
14
15
  providerSpecifics,
16
+ forcePathStyle,
15
17
  });
16
18
  return Promise.all([
17
19
  cleanupSerializedInputPropsProm,
@@ -3,11 +3,12 @@ import { type CustomCredentials, type RenderMetadata } from '@remotion/serverles
3
3
  export type OutputFileMetadata = {
4
4
  url: string;
5
5
  };
6
- export declare const findOutputFileInBucket: <Provider extends CloudProvider<string, Record<string, unknown>>>({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, }: {
6
+ export declare const findOutputFileInBucket: <Provider extends CloudProvider<string, Record<string, unknown>>>({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, }: {
7
7
  region: Provider["region"];
8
8
  renderMetadata: RenderMetadata<Provider>;
9
9
  bucketName: string;
10
10
  customCredentials: CustomCredentials<Provider> | null;
11
11
  currentRegion: Provider["region"];
12
12
  providerSpecifics: ProviderSpecifics<Provider>;
13
+ forcePathStyle: boolean;
13
14
  }) => Promise<OutputFileMetadata | null>;
@@ -4,7 +4,7 @@ exports.findOutputFileInBucket = void 0;
4
4
  const client_1 = require("@remotion/serverless/client");
5
5
  const suggested_policy_1 = require("../../api/iam-validation/suggested-policy");
6
6
  const get_output_url_from_metadata_1 = require("./get-output-url-from-metadata");
7
- const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, }) => {
7
+ const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, customCredentials, currentRegion, providerSpecifics, forcePathStyle, }) => {
8
8
  if (!renderMetadata) {
9
9
  throw new Error('unexpectedly did not get renderMetadata');
10
10
  }
@@ -15,6 +15,7 @@ const findOutputFileInBucket = async ({ region, renderMetadata, bucketName, cust
15
15
  key,
16
16
  region,
17
17
  customCredentials,
18
+ forcePathStyle,
18
19
  });
19
20
  return {
20
21
  url: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName, customCredentials, currentRegion).url,
@@ -1 +1 @@
1
- export declare const getCurrentRegionInFunctionImplementation: () => "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 getCurrentRegionInFunctionImplementation: () => "us-east-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-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,9 +1,10 @@
1
1
  import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
2
  import type { OverallRenderProgress } from './overall-render-progress';
3
- export declare const getOverallProgressS3: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, }: {
3
+ export declare const getOverallProgressS3: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, forcePathStyle, }: {
4
4
  renderId: string;
5
5
  expectedBucketOwner: string;
6
6
  bucketName: string;
7
7
  region: Provider["region"];
8
8
  providerSpecifics: ProviderSpecifics<Provider>;
9
+ forcePathStyle: boolean;
9
10
  }) => Promise<OverallRenderProgress<Provider>>;
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOverallProgressS3 = void 0;
4
4
  const client_1 = require("@remotion/serverless/client");
5
- const getOverallProgressS3 = async ({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, }) => {
5
+ const getOverallProgressS3 = async ({ renderId, bucketName, expectedBucketOwner, region, providerSpecifics, forcePathStyle, }) => {
6
6
  try {
7
7
  const Body = await providerSpecifics.readFile({
8
8
  bucketName,
9
9
  key: (0, client_1.overallProgressKey)(renderId),
10
10
  expectedBucketOwner,
11
11
  region,
12
+ forcePathStyle,
12
13
  });
13
14
  const str = await (0, client_1.streamToString)(Body);
14
15
  return JSON.parse(str);
@@ -1,7 +1,7 @@
1
1
  import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
2
  import { type CustomCredentials } from '@remotion/serverless/client';
3
3
  import type { GenericRenderProgress } from '../../shared/constants';
4
- export declare const getProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, providerSpecifics, }: {
4
+ export declare const getProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, providerSpecifics, forcePathStyle, }: {
5
5
  bucketName: string;
6
6
  renderId: string;
7
7
  expectedBucketOwner: string;
@@ -10,4 +10,5 @@ export declare const getProgress: <Provider extends CloudProvider<string, Record
10
10
  timeoutInMilliseconds: number;
11
11
  customCredentials: CustomCredentials<Provider> | null;
12
12
  providerSpecifics: ProviderSpecifics<Provider>;
13
+ forcePathStyle: boolean;
13
14
  }) => Promise<GenericRenderProgress<Provider>>;
@@ -13,7 +13,7 @@ const get_overall_progress_s3_1 = require("./get-overall-progress-s3");
13
13
  const inspect_errors_1 = require("./inspect-errors");
14
14
  const make_timeout_error_1 = require("./make-timeout-error");
15
15
  const render_has_audio_video_1 = require("./render-has-audio-video");
16
- const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, providerSpecifics, }) => {
16
+ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region, memorySizeInMb, timeoutInMilliseconds, customCredentials, providerSpecifics, forcePathStyle, }) => {
17
17
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
18
18
  const overallProgress = await (0, get_overall_progress_s3_1.getOverallProgressS3)({
19
19
  renderId,
@@ -21,6 +21,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
21
21
  expectedBucketOwner,
22
22
  region,
23
23
  providerSpecifics,
24
+ forcePathStyle,
24
25
  });
25
26
  if (overallProgress.postRenderData) {
26
27
  if (!overallProgress.renderMetadata) {
@@ -32,4 +32,5 @@ export declare const mergeChunksAndFinishRender: <Provider extends CloudProvider
32
32
  overallProgress: OverallProgressHelper<Provider>;
33
33
  startTime: number;
34
34
  providerSpecifics: ProviderSpecifics<Provider>;
35
+ forcePathStyle: boolean;
35
36
  }) => Promise<PostRenderData<Provider>>;
@@ -49,6 +49,7 @@ const mergeChunksAndFinishRender = async (options) => {
49
49
  expectedBucketOwner: options.expectedBucketOwner,
50
50
  downloadBehavior: options.downloadBehavior,
51
51
  customCredentials: options.customCredentials,
52
+ forcePathStyle: options.forcePathStyle,
52
53
  });
53
54
  writeToBucket.end();
54
55
  const errorExplanations = (0, inspect_errors_1.inspectErrors)({
@@ -58,6 +59,7 @@ const mergeChunksAndFinishRender = async (options) => {
58
59
  inputProps: options.inputProps,
59
60
  serializedResolvedProps: options.serializedResolvedProps,
60
61
  providerSpecifics: options.providerSpecifics,
62
+ forcePathStyle: options.forcePathStyle,
61
63
  });
62
64
  const { url: outputUrl } = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(options.renderMetadata, options.bucketName, options.customCredentials, options.providerSpecifics.getCurrentRegionInFunction());
63
65
  const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
@@ -47,7 +47,7 @@ export type OverallProgressHelper<Provider extends CloudProvider> = {
47
47
  getReceivedArtifacts: () => ReceivedArtifact<Provider>[];
48
48
  };
49
49
  export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
50
- export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }: {
50
+ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }: {
51
51
  renderId: string;
52
52
  bucketName: string;
53
53
  expectedBucketOwner: string;
@@ -55,4 +55,5 @@ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<
55
55
  timeoutTimestamp: number;
56
56
  logLevel: LogLevel;
57
57
  providerSpecifics: ProviderSpecifics<Provider>;
58
+ forcePathStyle: boolean;
58
59
  }) => OverallProgressHelper<Provider>;
@@ -26,7 +26,7 @@ const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
26
26
  };
27
27
  };
28
28
  exports.makeInitialOverallRenderProgress = makeInitialOverallRenderProgress;
29
- const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }) => {
29
+ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }) => {
30
30
  let framesRendered = [];
31
31
  let framesEncoded = [];
32
32
  let lambdasInvoked = [];
@@ -58,6 +58,7 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
58
58
  key: (0, client_1.overallProgressKey)(renderId),
59
59
  privacy: 'private',
60
60
  region,
61
+ forcePathStyle,
61
62
  })
62
63
  .then(() => {
63
64
  // By default, upload is way too fast (~20 requests per second)
@@ -7,7 +7,7 @@ export type LambdaReadFileProgress = (progress: {
7
7
  downloaded: number;
8
8
  percent: number;
9
9
  }) => unknown;
10
- export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }: {
10
+ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }: {
11
11
  bucketName: string;
12
12
  key: string;
13
13
  region: AwsRegion;
@@ -16,6 +16,7 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
16
16
  onProgress: LambdaReadFileProgress;
17
17
  customCredentials: CustomCredentials<AwsProvider> | null;
18
18
  logLevel: LogLevel;
19
+ forcePathStyle: boolean;
19
20
  }) => Promise<{
20
21
  sizeInBytes: number;
21
22
  to: string;
@@ -5,8 +5,8 @@ const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
6
6
  const renderer_1 = require("@remotion/renderer");
7
7
  const get_s3_client_1 = require("../../shared/get-s3-client");
8
- const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }) => {
9
- const client = (0, get_s3_client_1.getS3Client)(region, customCredentials);
8
+ const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }) => {
9
+ const client = (0, get_s3_client_1.getS3Client)({ region, customCredentials, forcePathStyle });
10
10
  const command = new client_s3_1.GetObjectCommand({
11
11
  Bucket: bucketName,
12
12
  ExpectedBucketOwner: customCredentials ? undefined : expectedBucketOwner,
@@ -40,6 +40,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
40
40
  serialized: params.inputProps,
41
41
  propsType: 'input-props',
42
42
  providerSpecifics,
43
+ forcePathStyle: params.forcePathStyle,
43
44
  });
44
45
  const logOptions = {
45
46
  indent: false,
@@ -128,12 +129,14 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
128
129
  userSpecifiedBucketName: params.bucketName,
129
130
  needsToUpload,
130
131
  providerSpecifics,
132
+ forcePathStyle: params.forcePathStyle,
131
133
  });
132
134
  registerCleanupTask(() => {
133
135
  return (0, cleanup_props_1.cleanupProps)({
134
136
  serializedResolvedProps,
135
137
  inputProps: params.inputProps,
136
138
  providerSpecifics,
139
+ forcePathStyle: params.forcePathStyle,
137
140
  });
138
141
  });
139
142
  const fps = comp.fps / params.everyNthFrame;
@@ -188,6 +191,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
188
191
  compositionStart: realFrameRange[0],
189
192
  framesPerLambda,
190
193
  progressEveryNthFrame,
194
+ forcePathStyle: params.forcePathStyle,
191
195
  };
192
196
  return payload;
193
197
  });
@@ -237,6 +241,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
237
241
  region: providerSpecifics.getCurrentRegionInFunction(),
238
242
  currentRegion: providerSpecifics.getCurrentRegionInFunction(),
239
243
  providerSpecifics,
244
+ forcePathStyle: params.forcePathStyle,
240
245
  });
241
246
  if (output) {
242
247
  throw new TypeError(`Output file "${key}" in bucket "${renderBucketName}" in region "${providerSpecifics.getCurrentRegionInFunction()}" already exists. Delete it before re-rendering, or set the 'overwrite' option in renderMediaOnLambda() to overwrite it."`);
@@ -272,6 +277,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
272
277
  expectedBucketOwner: options.expectedBucketOwner,
273
278
  downloadBehavior: params.downloadBehavior,
274
279
  customCredentials,
280
+ forcePathStyle: params.forcePathStyle,
275
281
  })
276
282
  .then(() => {
277
283
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, `Wrote artifact to S3 in ${Date.now() - start}ms`);
@@ -342,6 +348,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
342
348
  overallProgress,
343
349
  startTime,
344
350
  providerSpecifics,
351
+ forcePathStyle: params.forcePathStyle,
345
352
  });
346
353
  return postRenderData;
347
354
  };
@@ -445,6 +452,7 @@ const launchHandler = async (params, options, providerSpecifics) => {
445
452
  timeoutTimestamp: options.getRemainingTimeInMillis() + Date.now(),
446
453
  logLevel: params.logLevel,
447
454
  providerSpecifics,
455
+ forcePathStyle: params.forcePathStyle,
448
456
  });
449
457
  try {
450
458
  const postRenderData = await innerLaunchHandler({
@@ -25,6 +25,7 @@ const progressHandler = async (lambdaParams, options) => {
25
25
  timeoutInMilliseconds: options.timeoutInMilliseconds,
26
26
  customCredentials: (_a = lambdaParams.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
27
27
  providerSpecifics: options.providerSpecifics,
28
+ forcePathStyle: lambdaParams.forcePathStyle,
28
29
  });
29
30
  return progress;
30
31
  }
@@ -31,6 +31,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
31
31
  serialized: params.inputProps,
32
32
  propsType: 'input-props',
33
33
  providerSpecifics,
34
+ forcePathStyle: params.forcePathStyle,
34
35
  });
35
36
  const resolvedPropsPromise = (0, client_1.decompressInputProps)({
36
37
  bucketName: params.bucketName,
@@ -39,6 +40,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
39
40
  serialized: params.resolvedProps,
40
41
  propsType: 'resolved-props',
41
42
  providerSpecifics,
43
+ forcePathStyle: params.forcePathStyle,
42
44
  });
43
45
  const browserInstance = await (0, serverless_1.getBrowserInstance)({
44
46
  logLevel: params.logLevel,