@remotion/lambda 4.0.201 → 4.0.204

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 (133) 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 +2 -1
  42. package/dist/functions/helpers/cleanup-props.js +3 -1
  43. package/dist/functions/helpers/expected-out-name.d.ts +1 -1
  44. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -1
  45. package/dist/functions/helpers/find-output-file-in-bucket.js +2 -1
  46. package/dist/functions/helpers/get-browser-instance.d.ts +3 -2
  47. package/dist/functions/helpers/get-browser-instance.js +3 -4
  48. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  49. package/dist/functions/helpers/get-custom-out-name.d.ts +1 -1
  50. package/dist/functions/helpers/get-overall-progress-s3.d.ts +2 -1
  51. package/dist/functions/helpers/get-overall-progress-s3.js +2 -1
  52. package/dist/functions/helpers/get-progress.d.ts +2 -1
  53. package/dist/functions/helpers/get-progress.js +2 -1
  54. package/dist/functions/helpers/io.d.ts +3 -33
  55. package/dist/functions/helpers/io.js +3 -104
  56. package/dist/functions/helpers/merge-chunks.d.ts +1 -0
  57. package/dist/functions/helpers/merge-chunks.js +2 -0
  58. package/dist/functions/helpers/overall-render-progress.d.ts +2 -1
  59. package/dist/functions/helpers/overall-render-progress.js +2 -1
  60. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
  61. package/dist/functions/helpers/print-cloudwatch-helper.js +3 -3
  62. package/dist/functions/helpers/read-with-progress.d.ts +2 -1
  63. package/dist/functions/helpers/read-with-progress.js +2 -2
  64. package/dist/functions/helpers/write-lambda-error.d.ts +2 -3
  65. package/dist/functions/helpers/write-lambda-error.js +3 -2
  66. package/dist/functions/launch.js +8 -0
  67. package/dist/functions/progress.js +1 -0
  68. package/dist/functions/provider-implementation.d.ts +0 -0
  69. package/dist/functions/provider-implementation.js +1 -0
  70. package/dist/functions/renderer.js +2 -0
  71. package/dist/functions/start.js +3 -0
  72. package/dist/functions/still.js +6 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/internals.d.ts +11 -9
  75. package/dist/io/delete-file.js +2 -2
  76. package/dist/io/head-file.js +6 -2
  77. package/dist/io/list-objects.js +12 -3
  78. package/dist/io/read-file.d.ts +2 -1
  79. package/dist/io/read-file.js +6 -2
  80. package/dist/io/write-file.js +6 -2
  81. package/dist/shared/aws-clients.js +15 -2
  82. package/dist/shared/cleanup-serialized-input-props.d.ts +4 -2
  83. package/dist/shared/cleanup-serialized-input-props.js +4 -2
  84. package/dist/shared/compress-props.d.ts +8 -6
  85. package/dist/shared/compress-props.js +11 -14
  86. package/dist/shared/get-s3-client.d.ts +5 -1
  87. package/dist/shared/get-s3-client.js +2 -1
  88. package/dist/shared/get-service-client.d.ts +2 -1
  89. package/dist/shared/get-service-client.js +4 -2
  90. package/dist/shared/lifecycle-rules.d.ts +2 -1
  91. package/dist/shared/lifecycle-rules.js +17 -7
  92. package/package.json +11 -11
  93. package/remotionlambda-arm64.zip +0 -0
  94. package/dist/functions/helpers/check-if-render-exists.d.ts +0 -3
  95. package/dist/functions/helpers/check-if-render-exists.js +0 -15
  96. package/dist/functions/helpers/delete-chunks.d.ts +0 -9
  97. package/dist/functions/helpers/delete-chunks.js +0 -25
  98. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -10
  99. package/dist/functions/helpers/get-cleanup-progress.js +0 -35
  100. package/dist/functions/helpers/get-encoding-metadata.d.ts +0 -7
  101. package/dist/functions/helpers/get-encoding-metadata.js +0 -15
  102. package/dist/functions/helpers/get-encoding-progress-step-size.d.ts +0 -1
  103. package/dist/functions/helpers/get-encoding-progress-step-size.js +0 -7
  104. package/dist/functions/helpers/get-files-to-delete.d.ts +0 -10
  105. package/dist/functions/helpers/get-files-to-delete.js +0 -52
  106. package/dist/functions/helpers/get-final-encoding-status.d.ts +0 -6
  107. package/dist/functions/helpers/get-final-encoding-status.js +0 -18
  108. package/dist/functions/helpers/get-folder-size.d.ts +0 -1
  109. package/dist/functions/helpers/get-folder-size.js +0 -8
  110. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +0 -8
  111. package/dist/functions/helpers/get-lambdas-invoked-stats.js +0 -14
  112. package/dist/functions/helpers/get-post-render-data.d.ts +0 -8
  113. package/dist/functions/helpers/get-post-render-data.js +0 -22
  114. package/dist/functions/helpers/get-render-metadata.d.ts +0 -8
  115. package/dist/functions/helpers/get-render-metadata.js +0 -17
  116. package/dist/functions/helpers/get-rendered-frames-progress.d.ts +0 -8
  117. package/dist/functions/helpers/get-rendered-frames-progress.js +0 -37
  118. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -5
  119. package/dist/functions/helpers/get-time-to-finish.js +0 -13
  120. package/dist/functions/helpers/streaming-payloads.d.ts +0 -19
  121. package/dist/functions/helpers/streaming-payloads.js +0 -25
  122. package/dist/functions/helpers/write-post-render-data.d.ts +0 -9
  123. package/dist/functions/helpers/write-post-render-data.js +0 -18
  124. package/dist/functions/merge.d.ts +0 -9
  125. package/dist/functions/merge.js +0 -61
  126. package/dist/shared/chunk-progress.d.ts +0 -9
  127. package/dist/shared/chunk-progress.js +0 -2034
  128. package/dist/shared/parse-chunk-key.d.ts +0 -5
  129. package/dist/shared/parse-chunk-key.js +0 -15
  130. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -5
  131. package/dist/shared/parse-lambda-initialized-key.js +0 -15
  132. package/dist/shared/serialize-props.d.ts +0 -14
  133. package/dist/shared/serialize-props.js +0 -36
@@ -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,8 @@
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
+ forcePathStyle: boolean;
7
8
  }) => Promise<[number, number]>;
@@ -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,
@@ -1,4 +1,4 @@
1
1
  import type { CustomCredentials, OutNameInput } from '@remotion/serverless/client';
2
2
  import type { OutNameOutput, RenderMetadata } from '../../defaults';
3
3
  export declare const getCredentialsFromOutName: <Region extends string>(name: OutNameInput<Region> | null) => CustomCredentials<Region> | null;
4
- export declare const getExpectedOutName: <Region extends string>(renderMetadata: RenderMetadata<Region>, bucketName: string, customCredentials: CustomCredentials<Region> | null) => OutNameOutput<Region>;
4
+ export declare const getExpectedOutName: <Region extends string>(renderMetadata: RenderMetadata, bucketName: string, customCredentials: CustomCredentials<Region> | null) => OutNameOutput<Region>;
@@ -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,9 +1,10 @@
1
1
  import type { ChromiumOptions, LogLevel, openBrowser } from '@remotion/renderer';
2
- import type { Await } from '../../shared/await';
2
+ import type { ProviderSpecifics } from '@remotion/serverless';
3
+ import type { Await } from '@remotion/serverless/client';
3
4
  type LaunchedBrowser = {
4
5
  instance: Await<ReturnType<typeof openBrowser>>;
5
6
  configurationString: string;
6
7
  };
7
8
  export declare const forgetBrowserEventLoop: (logLevel: LogLevel) => void;
8
- export declare const getBrowserInstance: (logLevel: LogLevel, indent: boolean, chromiumOptions: ChromiumOptions) => Promise<LaunchedBrowser>;
9
+ export declare const getBrowserInstance: (logLevel: LogLevel, indent: boolean, chromiumOptions: ChromiumOptions, providerSpecifics: ProviderSpecifics) => Promise<LaunchedBrowser>;
9
10
  export {};
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBrowserInstance = exports.forgetBrowserEventLoop = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  const version_1 = require("remotion/version");
6
- const get_chromium_executable_path_1 = require("./get-chromium-executable-path");
7
6
  const makeConfigurationString = (options, logLevel) => {
8
7
  var _a, _b, _c;
9
8
  return [
@@ -37,7 +36,7 @@ const forgetBrowserEventLoop = (logLevel) => {
37
36
  _browserInstance === null || _browserInstance === void 0 ? void 0 : _browserInstance.instance.forgetEventLoop();
38
37
  };
39
38
  exports.forgetBrowserEventLoop = forgetBrowserEventLoop;
40
- const getBrowserInstance = async (logLevel, indent, chromiumOptions) => {
39
+ const getBrowserInstance = async (logLevel, indent, chromiumOptions, providerSpecifics) => {
41
40
  var _a;
42
41
  const actualChromiumOptions = {
43
42
  ...chromiumOptions,
@@ -57,7 +56,7 @@ const getBrowserInstance = async (logLevel, indent, chromiumOptions) => {
57
56
  if (!_browserInstance) {
58
57
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Cold Lambda function, launching new browser instance');
59
58
  launching = true;
60
- const execPath = (0, get_chromium_executable_path_1.executablePath)();
59
+ const execPath = providerSpecifics.getChromiumPath();
61
60
  const instance = await renderer_1.RenderInternals.internalOpenBrowser({
62
61
  browser: 'chrome',
63
62
  browserExecutable: execPath,
@@ -91,7 +90,7 @@ const getBrowserInstance = async (logLevel, indent, chromiumOptions) => {
91
90
  _browserInstance.instance.rememberEventLoop();
92
91
  await _browserInstance.instance.close(true, logLevel, indent);
93
92
  _browserInstance = null;
94
- return (0, exports.getBrowserInstance)(logLevel, indent, chromiumOptions);
93
+ return (0, exports.getBrowserInstance)(logLevel, indent, chromiumOptions, providerSpecifics);
95
94
  }
96
95
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Warm Lambda function, reusing browser instance');
97
96
  _browserInstance.instance.rememberEventLoop();
@@ -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,6 +1,6 @@
1
1
  import type { CustomCredentials, OutNameInput } from '@remotion/serverless/client';
2
2
  import type { RenderMetadata } from '../../defaults';
3
3
  export declare const getCustomOutName: <Region extends string>({ renderMetadata, customCredentials, }: {
4
- renderMetadata: RenderMetadata<Region>;
4
+ renderMetadata: RenderMetadata;
5
5
  customCredentials: CustomCredentials<Region> | null;
6
6
  }) => OutNameInput<Region> | null;
@@ -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) {
@@ -1,9 +1,6 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import type { _Object } from '@aws-sdk/client-s3';
4
- import type { AwsRegion, CustomCredentials, DownloadBehavior, Privacy } from '@remotion/serverless/client';
5
- import type { ReadStream } from 'node:fs';
6
- import type { Readable } from 'stream';
2
+ import type { CustomCredentials } from '@remotion/serverless/client';
3
+ import type { AwsRegion } from '../../regions';
7
4
  export type LambdaLSInput = {
8
5
  bucketName: string;
9
6
  prefix: string;
@@ -12,39 +9,12 @@ export type LambdaLSInput = {
12
9
  continuationToken?: string;
13
10
  };
14
11
  export type LambdaLsReturnType = Promise<_Object[]>;
15
- export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
16
- export declare const lambdaDeleteFile: ({ bucketName, key, region, customCredentials, }: {
17
- region: AwsRegion;
18
- bucketName: string;
19
- key: string;
20
- customCredentials: CustomCredentials | null;
21
- }) => Promise<void>;
22
- type LambdaWriteFileInput = {
23
- bucketName: string;
24
- key: string;
25
- body: ReadStream | string | Uint8Array;
26
- region: AwsRegion;
27
- privacy: Privacy;
28
- expectedBucketOwner: string | null;
29
- downloadBehavior: DownloadBehavior | null;
30
- customCredentials: CustomCredentials | null;
31
- };
32
- export declare const lambdaWriteFile: (params: LambdaWriteFileInput & {
33
- retries?: number;
34
- }) => Promise<void>;
35
- export declare const lambdaReadFile: ({ bucketName, key, region, expectedBucketOwner, }: {
36
- bucketName: string;
37
- key: string;
38
- region: AwsRegion;
39
- expectedBucketOwner: string;
40
- }) => Promise<Readable>;
41
12
  export declare const lambdaHeadCommand: ({ bucketName, key, region, customCredentials, }: {
42
13
  bucketName: string;
43
14
  key: string;
44
15
  region: AwsRegion;
45
- customCredentials: CustomCredentials | null;
16
+ customCredentials: CustomCredentials<AwsRegion> | null;
46
17
  }) => Promise<{
47
18
  LastModified?: Date | undefined;
48
19
  ContentLength?: number | undefined;
49
20
  }>;
50
- export {};