@remotion/lambda-client 4.0.473 → 4.0.475

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.
package/dist/cjs/index.js CHANGED
@@ -69898,6 +69898,32 @@ var lengthUnits = new Set([
69898
69898
  "vw"
69899
69899
  ]);
69900
69900
  var cssNumberRegex = /^([+-]?(?:\d+\.?\d*|\.\d+))([a-zA-Z%]+)?$/;
69901
+ var transformOriginKeywords = new Set([
69902
+ "left",
69903
+ "center",
69904
+ "right",
69905
+ "top",
69906
+ "bottom"
69907
+ ]);
69908
+ var transformOriginKeywordOptions = (keyword) => {
69909
+ if (keyword === "left") {
69910
+ return [{ axis: "x", value: { value: 0, unit: "%" } }];
69911
+ }
69912
+ if (keyword === "right") {
69913
+ return [{ axis: "x", value: { value: 100, unit: "%" } }];
69914
+ }
69915
+ if (keyword === "top") {
69916
+ return [{ axis: "y", value: { value: 0, unit: "%" } }];
69917
+ }
69918
+ if (keyword === "bottom") {
69919
+ return [{ axis: "y", value: { value: 100, unit: "%" } }];
69920
+ }
69921
+ return [
69922
+ { axis: "x", value: { value: 50, unit: "%" } },
69923
+ { axis: "y", value: { value: 50, unit: "%" } }
69924
+ ];
69925
+ };
69926
+ var transformOriginCenter = { value: 50, unit: "%" };
69901
69927
  var stringifyNumber = (value) => {
69902
69928
  return String(normalizeNumber(value));
69903
69929
  };
@@ -69922,6 +69948,110 @@ var parseStringInterpolationComponent = (component, value) => {
69922
69948
  }
69923
69949
  throw new TypeError(`Cannot interpolate "${value}" because "${unit}" is not a supported translate or rotate unit`);
69924
69950
  };
69951
+ var parseTransformOriginLengthPercentage = ({
69952
+ component,
69953
+ value,
69954
+ allowPercentage
69955
+ }) => {
69956
+ const match = cssNumberRegex.exec(component);
69957
+ if (match === null) {
69958
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
69959
+ }
69960
+ const unit = match[2] ?? null;
69961
+ const numberValue = Number(match[1]);
69962
+ if (!Number.isFinite(numberValue)) {
69963
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not finite`);
69964
+ }
69965
+ if (unit === null || !lengthUnits.has(unit) || !allowPercentage && unit === "%") {
69966
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
69967
+ }
69968
+ return { value: numberValue, unit };
69969
+ };
69970
+ var parseTransformOriginToken = (component, value) => {
69971
+ const lower = component.toLowerCase();
69972
+ if (transformOriginKeywords.has(lower)) {
69973
+ return { type: "keyword", keyword: lower };
69974
+ }
69975
+ return {
69976
+ type: "length-percentage",
69977
+ parsed: parseTransformOriginLengthPercentage({
69978
+ component,
69979
+ value,
69980
+ allowPercentage: true
69981
+ })
69982
+ };
69983
+ };
69984
+ var parseTwoTransformOriginKeywords = (first, second, value) => {
69985
+ const candidates = [];
69986
+ for (const firstOption of transformOriginKeywordOptions(first)) {
69987
+ for (const secondOption of transformOriginKeywordOptions(second)) {
69988
+ if (firstOption.axis === secondOption.axis) {
69989
+ continue;
69990
+ }
69991
+ candidates.push(firstOption.axis === "x" ? [firstOption.value, secondOption.value] : [secondOption.value, firstOption.value]);
69992
+ }
69993
+ }
69994
+ if (candidates.length === 0) {
69995
+ throw new TypeError(`Cannot interpolate "${value}" because "${first} ${second}" is not a valid transform-origin keyword pair`);
69996
+ }
69997
+ return candidates[0];
69998
+ };
69999
+ var parseTransformOriginXY = (parts, value) => {
70000
+ if (parts.length === 1) {
70001
+ const token = parseTransformOriginToken(parts[0], value);
70002
+ if (token.type === "length-percentage") {
70003
+ return [token.parsed, transformOriginCenter];
70004
+ }
70005
+ if (token.keyword === "top" || token.keyword === "bottom") {
70006
+ return [
70007
+ transformOriginCenter,
70008
+ transformOriginKeywordOptions(token.keyword)[0].value
70009
+ ];
70010
+ }
70011
+ return [
70012
+ transformOriginKeywordOptions(token.keyword)[0].value,
70013
+ transformOriginCenter
70014
+ ];
70015
+ }
70016
+ const first = parseTransformOriginToken(parts[0], value);
70017
+ const second = parseTransformOriginToken(parts[1], value);
70018
+ if (first.type === "length-percentage" && second.type === "length-percentage") {
70019
+ return [first.parsed, second.parsed];
70020
+ }
70021
+ if (first.type === "keyword" && second.type === "keyword") {
70022
+ return parseTwoTransformOriginKeywords(first.keyword, second.keyword, value);
70023
+ }
70024
+ const keyword = first.type === "keyword" ? first : second.type === "keyword" ? second : null;
70025
+ const length = first.type === "length-percentage" ? first.parsed : second.type === "length-percentage" ? second.parsed : null;
70026
+ if (keyword === null || length === null) {
70027
+ throw new Error("Expected a keyword and a length-percentage value");
70028
+ }
70029
+ const keywordIsFirst = first.type === "keyword";
70030
+ if (keyword.keyword === "left" || keyword.keyword === "right") {
70031
+ if (!keywordIsFirst) {
70032
+ throw new TypeError(`Cannot interpolate "${value}" because horizontal transform-origin keywords must come before a length-percentage value`);
70033
+ }
70034
+ return [transformOriginKeywordOptions(keyword.keyword)[0].value, length];
70035
+ }
70036
+ if (keyword.keyword === "top" || keyword.keyword === "bottom") {
70037
+ return [length, transformOriginKeywordOptions(keyword.keyword)[0].value];
70038
+ }
70039
+ return keywordIsFirst ? [transformOriginCenter, length] : [length, transformOriginCenter];
70040
+ };
70041
+ var parseTransformOriginValue = (output, parts) => {
70042
+ const [x, y] = parseTransformOriginXY(parts.slice(0, 2), output);
70043
+ const z = parts[2] === undefined ? { value: 0, unit: null } : parseTransformOriginLengthPercentage({
70044
+ component: parts[2],
70045
+ value: output,
70046
+ allowPercentage: false
70047
+ });
70048
+ return {
70049
+ kind: "translate",
70050
+ values: [x.value, y.value, z.value],
70051
+ units: [x.unit, y.unit, z.unit],
70052
+ dimensions: parts[2] === undefined ? 2 : 3
70053
+ };
70054
+ };
69925
70055
  var parseStringInterpolationValue = (output) => {
69926
70056
  if (typeof output === "number") {
69927
70057
  if (!Number.isFinite(output)) {
@@ -69938,6 +70068,9 @@ var parseStringInterpolationValue = (output) => {
69938
70068
  if (parts.length < 1 || parts.length > 3 || parts[0] === "") {
69939
70069
  throw new TypeError(`String outputRange values must contain 1 to 3 components, but got "${output}"`);
69940
70070
  }
70071
+ if (parts.some((part) => transformOriginKeywords.has(part.toLowerCase()))) {
70072
+ return parseTransformOriginValue(output, parts);
70073
+ }
69941
70074
  const parsed = parts.map((part) => parseStringInterpolationComponent(part, output));
69942
70075
  const [{ kind }] = parsed;
69943
70076
  for (const part of parsed) {
@@ -70847,6 +70980,12 @@ var serializeScaleValue = ([x, y, z]) => {
70847
70980
  return `${normalizedX} ${normalizedY} ${normalizedZ}`;
70848
70981
  };
70849
70982
  var sequenceVisualStyleSchema = {
70983
+ "style.transformOrigin": {
70984
+ type: "transform-origin",
70985
+ step: 1,
70986
+ default: "50% 50%",
70987
+ description: "Transform origin"
70988
+ },
70850
70989
  "style.translate": {
70851
70990
  type: "translate",
70852
70991
  step: 1,
@@ -71179,7 +71318,7 @@ var validateDownloadBehavior = (downloadBehavior) => {
71179
71318
  }
71180
71319
  }
71181
71320
  };
71182
- var VERSION = "4.0.473";
71321
+ var VERSION = "4.0.475";
71183
71322
  var isColorSupported = () => {
71184
71323
  const env = process.env || {};
71185
71324
  const isForceDisabled = "NO_COLOR" in env;
@@ -69241,6 +69241,32 @@ var lengthUnits = new Set([
69241
69241
  "vw"
69242
69242
  ]);
69243
69243
  var cssNumberRegex = /^([+-]?(?:\d+\.?\d*|\.\d+))([a-zA-Z%]+)?$/;
69244
+ var transformOriginKeywords = new Set([
69245
+ "left",
69246
+ "center",
69247
+ "right",
69248
+ "top",
69249
+ "bottom"
69250
+ ]);
69251
+ var transformOriginKeywordOptions = (keyword) => {
69252
+ if (keyword === "left") {
69253
+ return [{ axis: "x", value: { value: 0, unit: "%" } }];
69254
+ }
69255
+ if (keyword === "right") {
69256
+ return [{ axis: "x", value: { value: 100, unit: "%" } }];
69257
+ }
69258
+ if (keyword === "top") {
69259
+ return [{ axis: "y", value: { value: 0, unit: "%" } }];
69260
+ }
69261
+ if (keyword === "bottom") {
69262
+ return [{ axis: "y", value: { value: 100, unit: "%" } }];
69263
+ }
69264
+ return [
69265
+ { axis: "x", value: { value: 50, unit: "%" } },
69266
+ { axis: "y", value: { value: 50, unit: "%" } }
69267
+ ];
69268
+ };
69269
+ var transformOriginCenter = { value: 50, unit: "%" };
69244
69270
  var stringifyNumber = (value) => {
69245
69271
  return String(normalizeNumber(value));
69246
69272
  };
@@ -69265,6 +69291,110 @@ var parseStringInterpolationComponent = (component, value) => {
69265
69291
  }
69266
69292
  throw new TypeError(`Cannot interpolate "${value}" because "${unit}" is not a supported translate or rotate unit`);
69267
69293
  };
69294
+ var parseTransformOriginLengthPercentage = ({
69295
+ component,
69296
+ value,
69297
+ allowPercentage
69298
+ }) => {
69299
+ const match = cssNumberRegex.exec(component);
69300
+ if (match === null) {
69301
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
69302
+ }
69303
+ const unit = match[2] ?? null;
69304
+ const numberValue = Number(match[1]);
69305
+ if (!Number.isFinite(numberValue)) {
69306
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not finite`);
69307
+ }
69308
+ if (unit === null || !lengthUnits.has(unit) || !allowPercentage && unit === "%") {
69309
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
69310
+ }
69311
+ return { value: numberValue, unit };
69312
+ };
69313
+ var parseTransformOriginToken = (component, value) => {
69314
+ const lower = component.toLowerCase();
69315
+ if (transformOriginKeywords.has(lower)) {
69316
+ return { type: "keyword", keyword: lower };
69317
+ }
69318
+ return {
69319
+ type: "length-percentage",
69320
+ parsed: parseTransformOriginLengthPercentage({
69321
+ component,
69322
+ value,
69323
+ allowPercentage: true
69324
+ })
69325
+ };
69326
+ };
69327
+ var parseTwoTransformOriginKeywords = (first, second, value) => {
69328
+ const candidates = [];
69329
+ for (const firstOption of transformOriginKeywordOptions(first)) {
69330
+ for (const secondOption of transformOriginKeywordOptions(second)) {
69331
+ if (firstOption.axis === secondOption.axis) {
69332
+ continue;
69333
+ }
69334
+ candidates.push(firstOption.axis === "x" ? [firstOption.value, secondOption.value] : [secondOption.value, firstOption.value]);
69335
+ }
69336
+ }
69337
+ if (candidates.length === 0) {
69338
+ throw new TypeError(`Cannot interpolate "${value}" because "${first} ${second}" is not a valid transform-origin keyword pair`);
69339
+ }
69340
+ return candidates[0];
69341
+ };
69342
+ var parseTransformOriginXY = (parts, value) => {
69343
+ if (parts.length === 1) {
69344
+ const token = parseTransformOriginToken(parts[0], value);
69345
+ if (token.type === "length-percentage") {
69346
+ return [token.parsed, transformOriginCenter];
69347
+ }
69348
+ if (token.keyword === "top" || token.keyword === "bottom") {
69349
+ return [
69350
+ transformOriginCenter,
69351
+ transformOriginKeywordOptions(token.keyword)[0].value
69352
+ ];
69353
+ }
69354
+ return [
69355
+ transformOriginKeywordOptions(token.keyword)[0].value,
69356
+ transformOriginCenter
69357
+ ];
69358
+ }
69359
+ const first = parseTransformOriginToken(parts[0], value);
69360
+ const second = parseTransformOriginToken(parts[1], value);
69361
+ if (first.type === "length-percentage" && second.type === "length-percentage") {
69362
+ return [first.parsed, second.parsed];
69363
+ }
69364
+ if (first.type === "keyword" && second.type === "keyword") {
69365
+ return parseTwoTransformOriginKeywords(first.keyword, second.keyword, value);
69366
+ }
69367
+ const keyword = first.type === "keyword" ? first : second.type === "keyword" ? second : null;
69368
+ const length = first.type === "length-percentage" ? first.parsed : second.type === "length-percentage" ? second.parsed : null;
69369
+ if (keyword === null || length === null) {
69370
+ throw new Error("Expected a keyword and a length-percentage value");
69371
+ }
69372
+ const keywordIsFirst = first.type === "keyword";
69373
+ if (keyword.keyword === "left" || keyword.keyword === "right") {
69374
+ if (!keywordIsFirst) {
69375
+ throw new TypeError(`Cannot interpolate "${value}" because horizontal transform-origin keywords must come before a length-percentage value`);
69376
+ }
69377
+ return [transformOriginKeywordOptions(keyword.keyword)[0].value, length];
69378
+ }
69379
+ if (keyword.keyword === "top" || keyword.keyword === "bottom") {
69380
+ return [length, transformOriginKeywordOptions(keyword.keyword)[0].value];
69381
+ }
69382
+ return keywordIsFirst ? [transformOriginCenter, length] : [length, transformOriginCenter];
69383
+ };
69384
+ var parseTransformOriginValue = (output, parts) => {
69385
+ const [x, y] = parseTransformOriginXY(parts.slice(0, 2), output);
69386
+ const z = parts[2] === undefined ? { value: 0, unit: null } : parseTransformOriginLengthPercentage({
69387
+ component: parts[2],
69388
+ value: output,
69389
+ allowPercentage: false
69390
+ });
69391
+ return {
69392
+ kind: "translate",
69393
+ values: [x.value, y.value, z.value],
69394
+ units: [x.unit, y.unit, z.unit],
69395
+ dimensions: parts[2] === undefined ? 2 : 3
69396
+ };
69397
+ };
69268
69398
  var parseStringInterpolationValue = (output) => {
69269
69399
  if (typeof output === "number") {
69270
69400
  if (!Number.isFinite(output)) {
@@ -69281,6 +69411,9 @@ var parseStringInterpolationValue = (output) => {
69281
69411
  if (parts.length < 1 || parts.length > 3 || parts[0] === "") {
69282
69412
  throw new TypeError(`String outputRange values must contain 1 to 3 components, but got "${output}"`);
69283
69413
  }
69414
+ if (parts.some((part) => transformOriginKeywords.has(part.toLowerCase()))) {
69415
+ return parseTransformOriginValue(output, parts);
69416
+ }
69284
69417
  const parsed = parts.map((part) => parseStringInterpolationComponent(part, output));
69285
69418
  const [{ kind }] = parsed;
69286
69419
  for (const part of parsed) {
@@ -70190,6 +70323,12 @@ var serializeScaleValue = ([x, y, z]) => {
70190
70323
  return `${normalizedX} ${normalizedY} ${normalizedZ}`;
70191
70324
  };
70192
70325
  var sequenceVisualStyleSchema = {
70326
+ "style.transformOrigin": {
70327
+ type: "transform-origin",
70328
+ step: 1,
70329
+ default: "50% 50%",
70330
+ description: "Transform origin"
70331
+ },
70193
70332
  "style.translate": {
70194
70333
  type: "translate",
70195
70334
  step: 1,
@@ -70522,7 +70661,7 @@ var validateDownloadBehavior = (downloadBehavior) => {
70522
70661
  }
70523
70662
  }
70524
70663
  };
70525
- var VERSION = "4.0.473";
70664
+ var VERSION = "4.0.475";
70526
70665
  var isColorSupported = () => {
70527
70666
  const env = process.env || {};
70528
70667
  const isForceDisabled = "NO_COLOR" in env;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/lambda-client"
4
4
  },
5
5
  "name": "@remotion/lambda-client",
6
- "version": "4.0.473",
6
+ "version": "4.0.475",
7
7
  "main": "dist/cjs/index.js",
8
8
  "scripts": {
9
9
  "formatting": "oxfmt src --check",
@@ -26,10 +26,10 @@
26
26
  "@aws-sdk/lib-storage": "3.986.0",
27
27
  "mime-types": "2.1.34",
28
28
  "@aws-sdk/credential-provider-ini": "3.972.5",
29
- "@remotion/serverless-client": "4.0.473",
29
+ "@remotion/serverless-client": "4.0.475",
30
30
  "@types/express": "5.0.1",
31
31
  "express": "4.21.0",
32
- "@remotion/eslint-config-internal": "4.0.473",
32
+ "@remotion/eslint-config-internal": "4.0.475",
33
33
  "eslint": "9.19.0",
34
34
  "next": "16.2.6",
35
35
  "@types/mime-types": "2.1.1",