@remotion/lambda-client 4.0.474 → 4.0.476

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,
@@ -70908,6 +71047,18 @@ var hiddenField = {
70908
71047
  default: false,
70909
71048
  description: "Hidden"
70910
71049
  };
71050
+ var showInTimelineField = {
71051
+ type: "hidden"
71052
+ };
71053
+ var sequenceNameField = {
71054
+ type: "hidden"
71055
+ };
71056
+ var extendSchemaWithSequenceName = (schema) => {
71057
+ return {
71058
+ name: sequenceNameField,
71059
+ ...schema
71060
+ };
71061
+ };
70911
71062
  var durationInFramesField = {
70912
71063
  type: "number",
70913
71064
  default: undefined,
@@ -70921,8 +71072,9 @@ var fromField = {
70921
71072
  step: 1,
70922
71073
  hiddenFromList: true
70923
71074
  };
70924
- var sequenceSchema = {
71075
+ var sequenceSchema = extendSchemaWithSequenceName({
70925
71076
  hidden: hiddenField,
71077
+ showInTimeline: showInTimelineField,
70926
71078
  from: fromField,
70927
71079
  durationInFrames: durationInFramesField,
70928
71080
  layout: {
@@ -70934,12 +71086,13 @@ var sequenceSchema = {
70934
71086
  none: {}
70935
71087
  }
70936
71088
  }
70937
- };
70938
- var sequenceSchemaWithoutFrom = {
71089
+ });
71090
+ var sequenceSchemaWithoutFrom = extendSchemaWithSequenceName({
70939
71091
  hidden: hiddenField,
71092
+ showInTimeline: showInTimelineField,
70940
71093
  durationInFrames: durationInFramesField,
70941
71094
  layout: sequenceSchema.layout
70942
- };
71095
+ });
70943
71096
  var sequenceSchemaDefaultLayoutNone = {
70944
71097
  ...sequenceSchema,
70945
71098
  layout: {
@@ -71179,7 +71332,7 @@ var validateDownloadBehavior = (downloadBehavior) => {
71179
71332
  }
71180
71333
  }
71181
71334
  };
71182
- var VERSION = "4.0.474";
71335
+ var VERSION = "4.0.476";
71183
71336
  var isColorSupported = () => {
71184
71337
  const env = process.env || {};
71185
71338
  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,
@@ -70251,6 +70390,18 @@ var hiddenField = {
70251
70390
  default: false,
70252
70391
  description: "Hidden"
70253
70392
  };
70393
+ var showInTimelineField = {
70394
+ type: "hidden"
70395
+ };
70396
+ var sequenceNameField = {
70397
+ type: "hidden"
70398
+ };
70399
+ var extendSchemaWithSequenceName = (schema) => {
70400
+ return {
70401
+ name: sequenceNameField,
70402
+ ...schema
70403
+ };
70404
+ };
70254
70405
  var durationInFramesField = {
70255
70406
  type: "number",
70256
70407
  default: undefined,
@@ -70264,8 +70415,9 @@ var fromField = {
70264
70415
  step: 1,
70265
70416
  hiddenFromList: true
70266
70417
  };
70267
- var sequenceSchema = {
70418
+ var sequenceSchema = extendSchemaWithSequenceName({
70268
70419
  hidden: hiddenField,
70420
+ showInTimeline: showInTimelineField,
70269
70421
  from: fromField,
70270
70422
  durationInFrames: durationInFramesField,
70271
70423
  layout: {
@@ -70277,12 +70429,13 @@ var sequenceSchema = {
70277
70429
  none: {}
70278
70430
  }
70279
70431
  }
70280
- };
70281
- var sequenceSchemaWithoutFrom = {
70432
+ });
70433
+ var sequenceSchemaWithoutFrom = extendSchemaWithSequenceName({
70282
70434
  hidden: hiddenField,
70435
+ showInTimeline: showInTimelineField,
70283
70436
  durationInFrames: durationInFramesField,
70284
70437
  layout: sequenceSchema.layout
70285
- };
70438
+ });
70286
70439
  var sequenceSchemaDefaultLayoutNone = {
70287
70440
  ...sequenceSchema,
70288
70441
  layout: {
@@ -70522,7 +70675,7 @@ var validateDownloadBehavior = (downloadBehavior) => {
70522
70675
  }
70523
70676
  }
70524
70677
  };
70525
- var VERSION = "4.0.474";
70678
+ var VERSION = "4.0.476";
70526
70679
  var isColorSupported = () => {
70527
70680
  const env = process.env || {};
70528
70681
  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.474",
6
+ "version": "4.0.476",
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.474",
29
+ "@remotion/serverless-client": "4.0.476",
30
30
  "@types/express": "5.0.1",
31
31
  "express": "4.21.0",
32
- "@remotion/eslint-config-internal": "4.0.474",
32
+ "@remotion/eslint-config-internal": "4.0.476",
33
33
  "eslint": "9.19.0",
34
34
  "next": "16.2.6",
35
35
  "@types/mime-types": "2.1.1",