@shotstack/schemas 1.3.6 → 1.3.8

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.
@@ -39,9 +39,9 @@ export const uploadRootSchema = z.unknown();
39
39
  */
40
40
  export const captionpropertiesCaptionBackgroundSchema = z.object({
41
41
  color: z.optional(z.string()),
42
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
43
- padding: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
44
- borderRadius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
42
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
43
+ padding: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
44
+ borderRadius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
45
45
  });
46
46
 
47
47
  export const captionBackgroundSchema = captionpropertiesCaptionBackgroundSchema;
@@ -52,11 +52,11 @@ export const captionBackgroundSchema = captionpropertiesCaptionBackgroundSchema;
52
52
  export const captionpropertiesCaptionFontSchema = z.object({
53
53
  family: z.optional(z.string()),
54
54
  color: z.optional(z.string()),
55
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
56
- size: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
57
- lineHeight: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
55
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
56
+ size: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
57
+ lineHeight: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
58
58
  stroke: z.optional(z.string()),
59
- strokeWidth: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
59
+ strokeWidth: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
60
60
  });
61
61
 
62
62
  export const captionFontSchema = captionpropertiesCaptionFontSchema;
@@ -65,9 +65,9 @@ export const captionFontSchema = captionpropertiesCaptionFontSchema;
65
65
  * The margin properties for captions. Margins are used to position the caption text and background on the screen.
66
66
  */
67
67
  export const captionpropertiesCaptionMarginSchema = z.object({
68
- top: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
69
- left: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
70
- right: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
68
+ top: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
69
+ left: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
70
+ right: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
71
71
  });
72
72
 
73
73
  export const captionMarginSchema = captionpropertiesCaptionMarginSchema;
@@ -90,8 +90,8 @@ export const captionassetCaptionAssetSchema = z.object({
90
90
  font: z.optional(captionpropertiesCaptionFontSchema),
91
91
  background: z.optional(captionpropertiesCaptionBackgroundSchema),
92
92
  margin: z.optional(captionpropertiesCaptionMarginSchema),
93
- trim: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()))),
94
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10)))),
93
+ trim: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
94
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
95
95
  });
96
96
 
97
97
  export const captionAssetSchema = captionassetCaptionAssetSchema;
@@ -101,8 +101,8 @@ export const captionAssetSchema = captionassetCaptionAssetSchema;
101
101
  */
102
102
  export const chromakeyChromaKeySchema = z.object({
103
103
  color: z.optional(z.string()),
104
- threshold: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(0).lte(250))),
105
- halo: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(0).lte(250))),
104
+ threshold: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(0).lte(250))),
105
+ halo: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(0).lte(250))),
106
106
  });
107
107
 
108
108
  export const chromaKeySchema = chromakeyChromaKeySchema;
@@ -470,8 +470,8 @@ export const shotstackImageToVideoOptionsShotstackImageToVideoOptionsSchema =
470
470
  z.object({
471
471
  type: z.enum(["image-to-video"]),
472
472
  imageUrl: z.string(),
473
- guidanceScale: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(1.8),
474
- motion: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())).default(127),
473
+ guidanceScale: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(1.8),
474
+ motion: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())).default(127),
475
475
  });
476
476
 
477
477
  export const shotstackImageToVideoOptionsSchema =
@@ -496,8 +496,8 @@ export const shotstackTextToImageOptionsShotstackTextToImageOptionsSchema =
496
496
  z.object({
497
497
  type: z.enum(["text-to-image"]),
498
498
  prompt: z.string(),
499
- width: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
500
- height: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
499
+ width: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
500
+ height: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
501
501
  });
502
502
 
503
503
  export const shotstackTextToImageOptionsSchema =
@@ -673,11 +673,11 @@ export const stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema =
673
673
  "stable-diffusion-xl-beta-v2-2-2",
674
674
  ])
675
675
  ),
676
- width: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
677
- height: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
678
- steps: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())).default(30),
679
- seed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())).default(0),
680
- cfgScale: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(7),
676
+ width: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
677
+ height: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
678
+ steps: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())).default(30),
679
+ seed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())).default(0),
680
+ cfgScale: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(7),
681
681
  stylePreset: z.optional(
682
682
  z.enum([
683
683
  "3d-model",
@@ -780,10 +780,10 @@ export const generatedAssetSchema = generatedAssetGeneratedAssetSchema;
780
780
  * Crop the sides of an asset by a relative amount. The size of the crop is specified using a scale between 0 and 1, relative to the screen width - i.e a left crop of 0.5 will crop half of the asset from the left, a top crop of 0.25 will crop the top by quarter of the asset.
781
781
  */
782
782
  export const cropCropSchema = z.object({
783
- top: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))),
784
- bottom: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))),
785
- left: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))),
786
- right: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))),
783
+ top: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))),
784
+ bottom: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))),
785
+ left: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))),
786
+ right: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))),
787
787
  });
788
788
 
789
789
  export const cropSchema = cropCropSchema;
@@ -1040,8 +1040,8 @@ export const htmlassetHtmlAssetSchema = z.object({
1040
1040
  type: z.enum(["html"]),
1041
1041
  html: z.string(),
1042
1042
  css: z.optional(z.string()),
1043
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1044
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1043
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1044
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1045
1045
  background: z.optional(z.string()),
1046
1046
  position: z.optional(
1047
1047
  z.enum([
@@ -1081,7 +1081,7 @@ export const imagetovideoassetImageToVideoAssetSchema = z.object({
1081
1081
  aspectRatio: z.optional(
1082
1082
  z.enum(["1:1", "4:3", "16:9", "9:16", "3:4", "21:9", "9:21"])
1083
1083
  ),
1084
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10)))),
1084
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
1085
1085
  crop: z.optional(cropCropSchema),
1086
1086
  });
1087
1087
 
@@ -1220,7 +1220,7 @@ export const uploadResponseSchema = uploadresponseUploadResponseSchema;
1220
1220
  * Set the playback speed of a video or audio file. Allows you to preserve the pitch of the audio so that it is sped up without sounding too high pitched or too low.
1221
1221
  */
1222
1222
  export const speedSpeedSchema = z.object({
1223
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10)))),
1223
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
1224
1224
  preservePitch: z.optional(z.boolean()),
1225
1225
  });
1226
1226
 
@@ -1241,7 +1241,7 @@ export const transcriptionSchema = transcriptionTranscriptionSchema;
1241
1241
  export const lumaassetLumaAssetSchema = z.object({
1242
1242
  type: z.enum(["luma"]),
1243
1243
  src: z.string(),
1244
- trim: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()))),
1244
+ trim: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1245
1245
  });
1246
1246
 
1247
1247
  export const lumaAssetSchema = lumaassetLumaAssetSchema;
@@ -1260,7 +1260,7 @@ export const mergeFieldSchema = mergefieldMergeFieldSchema;
1260
1260
  * Generate a poster image for the video at a specific point from the timeline. The poster image size will match the size of the output video.
1261
1261
  */
1262
1262
  export const posterPosterSchema = z.object({
1263
- capture: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()),
1263
+ capture: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number()),
1264
1264
  });
1265
1265
 
1266
1266
  export const posterSchema = posterPosterSchema;
@@ -1269,8 +1269,8 @@ export const posterSchema = posterPosterSchema;
1269
1269
  * Specify a time range to render, i.e. to render only a portion of a video or audio file. Omit this setting to export the entire video. Range can also be used to render a frame at a specific time point - setting a range and output format as `jpg` will output a single frame image at the range `start` point.
1270
1270
  */
1271
1271
  export const rangeRangeSchema = z.object({
1272
- start: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))),
1273
- length: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))),
1272
+ start: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))),
1273
+ length: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))),
1274
1274
  });
1275
1275
 
1276
1276
  export const rangeSchema = rangeRangeSchema;
@@ -1437,8 +1437,8 @@ export const richtextpropertiesRichTextAnimationSchema = z.object({
1437
1437
  "shift",
1438
1438
  "movingLetters",
1439
1439
  ]),
1440
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0.1).lte(10))).default(1),
1441
- duration: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0.1).lte(30))),
1440
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0.1).lte(10))).default(1),
1441
+ duration: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0.1).lte(30))),
1442
1442
  style: z.optional(z.enum(["character", "word"])),
1443
1443
  direction: z.optional(z.enum(["left", "right", "up", "down"])),
1444
1444
  });
@@ -1451,8 +1451,8 @@ export const richTextAnimationSchema =
1451
1451
  */
1452
1452
  export const richtextpropertiesRichTextBackgroundSchema = z.object({
1453
1453
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1454
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1455
- borderRadius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1454
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1455
+ borderRadius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1456
1456
  });
1457
1457
 
1458
1458
  export const richTextBackgroundSchema =
@@ -1462,10 +1462,10 @@ export const richTextBackgroundSchema =
1462
1462
  * Border styling properties for the text bounding box.
1463
1463
  */
1464
1464
  export const richtextpropertiesRichTextBorderSchema = z.object({
1465
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1465
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1466
1466
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1467
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1468
- radius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1467
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1468
+ radius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1469
1469
  });
1470
1470
 
1471
1471
  /**
@@ -1473,11 +1473,11 @@ export const richtextpropertiesRichTextBorderSchema = z.object({
1473
1473
  */
1474
1474
  export const richtextpropertiesRichTextGradientSchema = z.object({
1475
1475
  type: z.optional(z.enum(["linear", "radial"])),
1476
- angle: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(360))).default(0),
1476
+ angle: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(360))).default(0),
1477
1477
  stops: z
1478
1478
  .array(
1479
1479
  z.object({
1480
- offset: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1)),
1480
+ offset: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1)),
1481
1481
  color: z.string().regex(/^#[A-Fa-f0-9]{6}$/),
1482
1482
  })
1483
1483
  )
@@ -1490,21 +1490,21 @@ export const richTextGradientSchema = richtextpropertiesRichTextGradientSchema;
1490
1490
  * Padding properties for individual sides of the text bounding box.
1491
1491
  */
1492
1492
  export const richtextpropertiesRichTextPaddingSchema = z.object({
1493
- top: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1494
- right: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1495
- bottom: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1496
- left: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1493
+ top: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1494
+ right: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1495
+ bottom: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1496
+ left: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1497
1497
  });
1498
1498
 
1499
1499
  /**
1500
1500
  * Text shadow properties.
1501
1501
  */
1502
1502
  export const richtextpropertiesRichTextShadowSchema = z.object({
1503
- offsetX: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1504
- offsetY: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1505
- blur: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1503
+ offsetX: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1504
+ offsetY: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1505
+ blur: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1506
1506
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1507
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(0.5),
1507
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(0.5),
1508
1508
  });
1509
1509
 
1510
1510
  export const richTextShadowSchema = richtextpropertiesRichTextShadowSchema;
@@ -1513,9 +1513,9 @@ export const richTextShadowSchema = richtextpropertiesRichTextShadowSchema;
1513
1513
  * Text stroke (outline) properties.
1514
1514
  */
1515
1515
  export const richtextpropertiesRichTextStrokeSchema = z.object({
1516
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1516
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1517
1517
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1518
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1518
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1519
1519
  });
1520
1520
 
1521
1521
  export const richTextStrokeSchema = richtextpropertiesRichTextStrokeSchema;
@@ -1525,10 +1525,10 @@ export const richTextStrokeSchema = richtextpropertiesRichTextStrokeSchema;
1525
1525
  */
1526
1526
  export const richtextpropertiesRichTextFontSchema = z.object({
1527
1527
  family: z.optional(z.string()).default("Open Sans"),
1528
- size: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(500))).default(24),
1528
+ size: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(500))).default(24),
1529
1529
  weight: z.optional(z.unknown()).default("400"),
1530
1530
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#ffffff"),
1531
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1531
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1532
1532
  background: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1533
1533
  stroke: z.optional(richtextpropertiesRichTextStrokeSchema),
1534
1534
  });
@@ -1539,8 +1539,8 @@ export const richTextFontSchema = richtextpropertiesRichTextFontSchema;
1539
1539
  * Text style properties including spacing, line height, and transformations.
1540
1540
  */
1541
1541
  export const richtextpropertiesRichTextStyleSchema = z.object({
1542
- letterSpacing: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1543
- lineHeight: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10))).default(1.2),
1542
+ letterSpacing: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1543
+ lineHeight: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))).default(1.2),
1544
1544
  textTransform: z.optional(
1545
1545
  z.enum(["none", "uppercase", "lowercase", "capitalize"])
1546
1546
  ),
@@ -1564,7 +1564,7 @@ export const richtextassetRichTextAssetSchema = z.object({
1564
1564
  background: z.optional(richtextpropertiesRichTextBackgroundSchema),
1565
1565
  border: z.optional(richtextpropertiesRichTextBorderSchema),
1566
1566
  padding: z.optional(
1567
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0)), richtextpropertiesRichTextPaddingSchema])
1567
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0)), richtextpropertiesRichTextPaddingSchema])
1568
1568
  ),
1569
1569
  align: z.optional(richtextpropertiesRichTextAlignmentSchema),
1570
1570
  animation: z.optional(richtextpropertiesRichTextAnimationSchema),
@@ -1627,36 +1627,36 @@ export const transferSchema = transferTransferSchema;
1627
1627
  export const shapeassetShapeAssetSchema = z.object({
1628
1628
  type: z.enum(["shape"]),
1629
1629
  shape: z.enum(["rectangle", "circle", "line"]),
1630
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1631
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1630
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1631
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1632
1632
  fill: z.optional(
1633
1633
  z.object({
1634
1634
  color: z.optional(z.string()),
1635
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1635
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1636
1636
  })
1637
1637
  ),
1638
1638
  stroke: z.optional(
1639
1639
  z.object({
1640
1640
  color: z.optional(z.string()),
1641
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1641
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1642
1642
  })
1643
1643
  ),
1644
1644
  rectangle: z.optional(
1645
1645
  z.object({
1646
- width: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
1647
- height: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
1648
- cornerRadius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1646
+ width: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
1647
+ height: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
1648
+ cornerRadius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1649
1649
  })
1650
1650
  ),
1651
1651
  circle: z.optional(
1652
1652
  z.object({
1653
- radius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
1653
+ radius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
1654
1654
  })
1655
1655
  ),
1656
1656
  line: z.optional(
1657
1657
  z.object({
1658
- length: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
1659
- thickness: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int()),
1658
+ length: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
1659
+ thickness: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int()),
1660
1660
  })
1661
1661
  ),
1662
1662
  });
@@ -1667,8 +1667,8 @@ export const shapeAssetSchema = shapeassetShapeAssetSchema;
1667
1667
  * Set a custom size for a video or image in pixels. When using a custom size omit the `resolution` and `aspectRatio`. Custom sizes must be divisible by 2 based on the encoder specifications.
1668
1668
  */
1669
1669
  export const sizeSizeSchema = z.object({
1670
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(4096))),
1671
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(4096))),
1670
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(4096))),
1671
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(4096))),
1672
1672
  });
1673
1673
 
1674
1674
  export const sizeSchema = sizeSizeSchema;
@@ -1699,7 +1699,7 @@ export const renditionRenditionSchema = z.object({
1699
1699
  size: z.optional(sizeSizeSchema),
1700
1700
  fit: z.optional(z.enum(["cover", "contain", "crop"])),
1701
1701
  resolution: z.optional(z.enum(["preview", "mobile", "sd", "hd", "fhd"])),
1702
- quality: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(100))),
1702
+ quality: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(100))),
1703
1703
  fps: z.optional(
1704
1704
  z.union([
1705
1705
  z.literal(12),
@@ -1716,7 +1716,7 @@ export const renditionRenditionSchema = z.object({
1716
1716
  ])
1717
1717
  ),
1718
1718
  speed: z.optional(speedSpeedSchema),
1719
- keyframeInterval: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(300))),
1719
+ keyframeInterval: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(300))),
1720
1720
  fixOffset: z.optional(z.boolean()),
1721
1721
  fixRotation: z.optional(z.boolean()),
1722
1722
  enhance: z.optional(enhancementsEnhancementsSchema),
@@ -1752,12 +1752,12 @@ export const renditionresponseattributesRenditionResponseAttributesSchema =
1752
1752
  ])
1753
1753
  ),
1754
1754
  url: z.optional(z.string()),
1755
- executionTime: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1755
+ executionTime: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1756
1756
  transformation: z.optional(renditionRenditionSchema),
1757
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1758
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1759
- duration: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1760
- fps: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1757
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1758
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1759
+ duration: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1760
+ fps: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1761
1761
  });
1762
1762
 
1763
1763
  export const renditionResponseAttributesSchema =
@@ -1786,10 +1786,10 @@ export const sourceresponseattributesSourceResponseAttributesSchema = z.object({
1786
1786
  z.enum(["queued", "importing", "ready", "failed", "deleted", "overwritten"])
1787
1787
  ),
1788
1788
  outputs: z.optional(outputsresponseOutputsResponseSchema),
1789
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
1789
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
1790
1790
  height: z.optional(z.string()),
1791
- duration: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1792
- fps: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1791
+ duration: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1792
+ fps: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1793
1793
  created: z.optional(z.string()),
1794
1794
  updated: z.optional(z.string()),
1795
1795
  });
@@ -1847,7 +1847,7 @@ export const sourceSchema = sourceSourceSchema;
1847
1847
  export const soundtrackSoundtrackSchema = z.object({
1848
1848
  src: z.string(),
1849
1849
  effect: z.optional(z.enum(["fadeIn", "fadeOut", "fadeInFadeOut"])),
1850
- volume: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
1850
+ volume: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
1851
1851
  });
1852
1852
 
1853
1853
  export const soundtrackSchema = soundtrackSoundtrackSchema;
@@ -1858,7 +1858,7 @@ export const soundtrackSchema = soundtrackSoundtrackSchema;
1858
1858
  *
1859
1859
  */
1860
1860
  export const svgpropertiesSvgGradientStopSchema = z.object({
1861
- offset: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1)),
1861
+ offset: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1)),
1862
1862
  color: z.string().regex(/^#[A-Fa-f0-9]{6}$/),
1863
1863
  });
1864
1864
 
@@ -1871,9 +1871,9 @@ export const svgGradientStopSchema = svgpropertiesSvgGradientStopSchema;
1871
1871
  */
1872
1872
  export const svgpropertiesSvgLinearGradientFillSchema = z.object({
1873
1873
  type: z.enum(["linear"]),
1874
- angle: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(360))).default(0),
1874
+ angle: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(360))).default(0),
1875
1875
  stops: z.array(svgpropertiesSvgGradientStopSchema).min(2),
1876
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1876
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1877
1877
  });
1878
1878
 
1879
1879
  export const svgLinearGradientFillSchema =
@@ -1887,7 +1887,7 @@ export const svgLinearGradientFillSchema =
1887
1887
  export const svgpropertiesSvgRadialGradientFillSchema = z.object({
1888
1888
  type: z.enum(["radial"]),
1889
1889
  stops: z.array(svgpropertiesSvgGradientStopSchema).min(2),
1890
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1890
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1891
1891
  });
1892
1892
 
1893
1893
  export const svgRadialGradientFillSchema =
@@ -1898,11 +1898,11 @@ export const svgRadialGradientFillSchema =
1898
1898
  *
1899
1899
  */
1900
1900
  export const svgpropertiesSvgShadowSchema = z.object({
1901
- offsetX: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1902
- offsetY: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1903
- blur: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))).default(0),
1901
+ offsetX: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1902
+ offsetY: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1903
+ blur: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))).default(0),
1904
1904
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1905
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(0.5),
1905
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(0.5),
1906
1906
  });
1907
1907
 
1908
1908
  export const svgShadowSchema = svgpropertiesSvgShadowSchema;
@@ -1916,7 +1916,7 @@ export const svgpropertiesSvgSolidFillSchema = z.object({
1916
1916
  .string()
1917
1917
  .regex(/^#[A-Fa-f0-9]{6}$/)
1918
1918
  .default("#000000"),
1919
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1919
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1920
1920
  });
1921
1921
 
1922
1922
  export const svgSolidFillSchema = svgpropertiesSvgSolidFillSchema;
@@ -1941,12 +1941,12 @@ export const svgFillSchema = svgpropertiesSvgFillSchema;
1941
1941
  */
1942
1942
  export const svgpropertiesSvgStrokeSchema = z.object({
1943
1943
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1944
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(100))).default(1),
1945
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
1944
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(100))).default(1),
1945
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
1946
1946
  lineCap: z.optional(z.enum(["butt", "round", "square"])),
1947
1947
  lineJoin: z.optional(z.enum(["miter", "round", "bevel"])),
1948
- dashArray: z.optional(z.array(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0)))),
1949
- dashOffset: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1948
+ dashArray: z.optional(z.array(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0)))),
1949
+ dashOffset: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1950
1950
  });
1951
1951
 
1952
1952
  export const svgStrokeSchema = svgpropertiesSvgStrokeSchema;
@@ -1956,12 +1956,12 @@ export const svgStrokeSchema = svgpropertiesSvgStrokeSchema;
1956
1956
  *
1957
1957
  */
1958
1958
  export const svgpropertiesSvgTransformSchema = z.object({
1959
- x: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1960
- y: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())).default(0),
1961
- rotation: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(-360).lte(360))).default(0),
1962
- scale: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0.01).lte(100))).default(1),
1963
- originX: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(0.5),
1964
- originY: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(0.5),
1959
+ x: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1960
+ y: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())).default(0),
1961
+ rotation: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(-360).lte(360))).default(0),
1962
+ scale: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0.01).lte(100))).default(1),
1963
+ originX: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(0.5),
1964
+ originY: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(0.5),
1965
1965
  });
1966
1966
 
1967
1967
  export const svgTransformSchema = svgpropertiesSvgTransformSchema;
@@ -1973,10 +1973,10 @@ export const svgTransformSchema = svgpropertiesSvgTransformSchema;
1973
1973
  */
1974
1974
  export const svgshapesSvgArrowShapeSchema = z.object({
1975
1975
  type: z.enum(["arrow"]),
1976
- length: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
1977
- headWidth: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(1000)),
1978
- headLength: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(1000)),
1979
- shaftWidth: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(1000)),
1976
+ length: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
1977
+ headWidth: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(1000)),
1978
+ headLength: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(1000)),
1979
+ shaftWidth: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(1000)),
1980
1980
  });
1981
1981
 
1982
1982
  export const svgArrowShapeSchema = svgshapesSvgArrowShapeSchema;
@@ -1988,7 +1988,7 @@ export const svgArrowShapeSchema = svgshapesSvgArrowShapeSchema;
1988
1988
  */
1989
1989
  export const svgshapesSvgCircleShapeSchema = z.object({
1990
1990
  type: z.enum(["circle"]),
1991
- radius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
1991
+ radius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
1992
1992
  });
1993
1993
 
1994
1994
  export const svgCircleShapeSchema = svgshapesSvgCircleShapeSchema;
@@ -2000,9 +2000,9 @@ export const svgCircleShapeSchema = svgshapesSvgCircleShapeSchema;
2000
2000
  */
2001
2001
  export const svgshapesSvgCrossShapeSchema = z.object({
2002
2002
  type: z.enum(["cross"]),
2003
- width: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2004
- height: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2005
- thickness: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(500)),
2003
+ width: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2004
+ height: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2005
+ thickness: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(500)),
2006
2006
  });
2007
2007
 
2008
2008
  export const svgCrossShapeSchema = svgshapesSvgCrossShapeSchema;
@@ -2014,8 +2014,8 @@ export const svgCrossShapeSchema = svgshapesSvgCrossShapeSchema;
2014
2014
  */
2015
2015
  export const svgshapesSvgEllipseShapeSchema = z.object({
2016
2016
  type: z.enum(["ellipse"]),
2017
- radiusX: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2018
- radiusY: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2017
+ radiusX: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2018
+ radiusY: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2019
2019
  });
2020
2020
 
2021
2021
  export const svgEllipseShapeSchema = svgshapesSvgEllipseShapeSchema;
@@ -2027,7 +2027,7 @@ export const svgEllipseShapeSchema = svgshapesSvgEllipseShapeSchema;
2027
2027
  */
2028
2028
  export const svgshapesSvgHeartShapeSchema = z.object({
2029
2029
  type: z.enum(["heart"]),
2030
- size: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2030
+ size: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2031
2031
  });
2032
2032
 
2033
2033
  export const svgHeartShapeSchema = svgshapesSvgHeartShapeSchema;
@@ -2039,8 +2039,8 @@ export const svgHeartShapeSchema = svgshapesSvgHeartShapeSchema;
2039
2039
  */
2040
2040
  export const svgshapesSvgLineShapeSchema = z.object({
2041
2041
  type: z.enum(["line"]),
2042
- length: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2043
- thickness: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(500)),
2042
+ length: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2043
+ thickness: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(500)),
2044
2044
  });
2045
2045
 
2046
2046
  export const svgLineShapeSchema = svgshapesSvgLineShapeSchema;
@@ -2077,8 +2077,8 @@ export const svgPathShapeSchema = svgshapesSvgPathShapeSchema;
2077
2077
  */
2078
2078
  export const svgshapesSvgPolygonShapeSchema = z.object({
2079
2079
  type: z.enum(["polygon"]),
2080
- sides: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(3).lte(100)),
2081
- radius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2080
+ sides: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(3).lte(100)),
2081
+ radius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2082
2082
  });
2083
2083
 
2084
2084
  export const svgPolygonShapeSchema = svgshapesSvgPolygonShapeSchema;
@@ -2090,9 +2090,9 @@ export const svgPolygonShapeSchema = svgshapesSvgPolygonShapeSchema;
2090
2090
  */
2091
2091
  export const svgshapesSvgRectangleShapeSchema = z.object({
2092
2092
  type: z.enum(["rectangle"]),
2093
- width: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2094
- height: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(4096)),
2095
- cornerRadius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(2048))).default(0),
2093
+ width: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2094
+ height: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(4096)),
2095
+ cornerRadius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(2048))).default(0),
2096
2096
  });
2097
2097
 
2098
2098
  export const svgRectangleShapeSchema = svgshapesSvgRectangleShapeSchema;
@@ -2104,8 +2104,8 @@ export const svgRectangleShapeSchema = svgshapesSvgRectangleShapeSchema;
2104
2104
  */
2105
2105
  export const svgshapesSvgRingShapeSchema = z.object({
2106
2106
  type: z.enum(["ring"]),
2107
- outerRadius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2108
- innerRadius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(2048)),
2107
+ outerRadius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2108
+ innerRadius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(2048)),
2109
2109
  });
2110
2110
 
2111
2111
  export const svgRingShapeSchema = svgshapesSvgRingShapeSchema;
@@ -2118,9 +2118,9 @@ export const svgRingShapeSchema = svgshapesSvgRingShapeSchema;
2118
2118
  */
2119
2119
  export const svgshapesSvgStarShapeSchema = z.object({
2120
2120
  type: z.enum(["star"]),
2121
- points: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(3).lte(100)),
2122
- outerRadius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2123
- innerRadius: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(1).lte(2048)),
2121
+ points: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(3).lte(100)),
2122
+ outerRadius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2123
+ innerRadius: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(1).lte(2048)),
2124
2124
  });
2125
2125
 
2126
2126
  export const svgStarShapeSchema = svgshapesSvgStarShapeSchema;
@@ -2180,9 +2180,9 @@ export const svgassetSvgAssetSchema = z.object({
2180
2180
  stroke: z.optional(svgpropertiesSvgStrokeSchema),
2181
2181
  shadow: z.optional(svgpropertiesSvgShadowSchema),
2182
2182
  transform: z.optional(svgpropertiesSvgTransformSchema),
2183
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))).default(1),
2184
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(4096))),
2185
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(4096))),
2183
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))).default(1),
2184
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(4096))),
2185
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(4096))),
2186
2186
  });
2187
2187
 
2188
2188
  export const svgAssetSchema = svgassetSvgAssetSchema;
@@ -2212,7 +2212,7 @@ export const textAlignmentSchema = textpropertiesTextAlignmentSchema;
2212
2212
  */
2213
2213
  export const textpropertiesTextAnimationSchema = z.object({
2214
2214
  preset: z.enum(["typewriter"]),
2215
- duration: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0.1).lte(30))),
2215
+ duration: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0.1).lte(30))),
2216
2216
  });
2217
2217
 
2218
2218
  /**
@@ -2220,9 +2220,9 @@ export const textpropertiesTextAnimationSchema = z.object({
2220
2220
  */
2221
2221
  export const textpropertiesTextBackgroundSchema = z.object({
2222
2222
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
2223
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1))),
2224
- padding: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(100))),
2225
- borderRadius: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0))),
2223
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1))),
2224
+ padding: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(100))),
2225
+ borderRadius: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0))),
2226
2226
  });
2227
2227
 
2228
2228
  export const textBackgroundSchema = textpropertiesTextBackgroundSchema;
@@ -2233,10 +2233,10 @@ export const textBackgroundSchema = textpropertiesTextBackgroundSchema;
2233
2233
  export const textpropertiesTextFontSchema = z.object({
2234
2234
  family: z.optional(z.string()),
2235
2235
  color: z.optional(z.string()),
2236
- opacity: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2237
- size: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2238
- weight: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2239
- lineHeight: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2236
+ opacity: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2237
+ size: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2238
+ weight: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2239
+ lineHeight: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2240
2240
  });
2241
2241
 
2242
2242
  export const textFontSchema = textpropertiesTextFontSchema;
@@ -2245,7 +2245,7 @@ export const textFontSchema = textpropertiesTextFontSchema;
2245
2245
  * Text stroke (outline) properties.
2246
2246
  */
2247
2247
  export const textpropertiesTextStrokeSchema = z.object({
2248
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10))),
2248
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
2249
2249
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
2250
2250
  });
2251
2251
 
@@ -2257,8 +2257,8 @@ export const textpropertiesTextStrokeSchema = z.object({
2257
2257
  export const textassetTextAssetSchema = z.object({
2258
2258
  type: z.enum(["text"]),
2259
2259
  text: z.string(),
2260
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2261
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2260
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2261
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2262
2262
  font: z.optional(textpropertiesTextFontSchema),
2263
2263
  background: z.optional(textpropertiesTextBackgroundSchema),
2264
2264
  alignment: z.optional(textpropertiesTextAlignmentSchema),
@@ -2275,8 +2275,8 @@ export const textAssetSchema = textassetTextAssetSchema;
2275
2275
  export const texttoimageassetTextToImageAssetSchema = z.object({
2276
2276
  type: z.enum(["text-to-image"]),
2277
2277
  prompt: z.string(),
2278
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2279
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int())),
2278
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2279
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int())),
2280
2280
  crop: z.optional(cropCropSchema),
2281
2281
  });
2282
2282
 
@@ -2286,8 +2286,8 @@ export const textToImageAssetSchema = texttoimageassetTextToImageAssetSchema;
2286
2286
  * Generate a thumbnail image for the video or image at a specific point from the timeline.
2287
2287
  */
2288
2288
  export const thumbnailThumbnailSchema = z.object({
2289
- capture: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()),
2290
- scale: z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1)),
2289
+ capture: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number()),
2290
+ scale: z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1)),
2291
2291
  });
2292
2292
 
2293
2293
  export const thumbnailSchema = thumbnailThumbnailSchema;
@@ -2482,8 +2482,8 @@ export const transitionSchema = transitionTransitionSchema;
2482
2482
  export const tweenTweenSchema = z.object({
2483
2483
  from: z.optional(z.unknown()),
2484
2484
  to: z.optional(z.unknown()),
2485
- start: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2486
- length: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2485
+ start: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2486
+ length: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2487
2487
  interpolation: z.optional(z.enum(["linear", "bezier", "constant"])),
2488
2488
  easing: z.optional(
2489
2489
  z.enum([
@@ -2527,11 +2527,11 @@ export const tweenSchema = tweenTweenSchema;
2527
2527
  export const audioassetAudioAssetSchema = z.object({
2528
2528
  type: z.enum(["audio"]),
2529
2529
  src: z.string(),
2530
- trim: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()))),
2530
+ trim: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2531
2531
  volume: z.optional(
2532
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1)), z.array(tweenTweenSchema)])
2532
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1)), z.array(tweenTweenSchema)])
2533
2533
  ),
2534
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10)))),
2534
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
2535
2535
  effect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
2536
2536
  });
2537
2537
 
@@ -2542,10 +2542,10 @@ export const audioAssetSchema = audioassetAudioAssetSchema;
2542
2542
  */
2543
2543
  export const offsetOffsetSchema = z.object({
2544
2544
  x: z.optional(
2545
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])
2545
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])
2546
2546
  ),
2547
2547
  y: z.optional(
2548
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])
2548
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])
2549
2549
  ),
2550
2550
  });
2551
2551
 
@@ -2556,7 +2556,7 @@ export const offsetSchema = offsetOffsetSchema;
2556
2556
  */
2557
2557
  export const rotatetransformationRotateTransformationSchema = z.object({
2558
2558
  angle: z.optional(
2559
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(-360).lte(360)), z.array(tweenTweenSchema)])
2559
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(-360).lte(360)), z.array(tweenTweenSchema)])
2560
2560
  ),
2561
2561
  });
2562
2562
 
@@ -2568,10 +2568,10 @@ export const rotateTransformationSchema =
2568
2568
  */
2569
2569
  export const skewtransformationSkewTransformationSchema = z.object({
2570
2570
  x: z.optional(
2571
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])
2571
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])
2572
2572
  ),
2573
2573
  y: z.optional(
2574
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])
2574
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])
2575
2575
  ),
2576
2576
  });
2577
2577
 
@@ -2652,14 +2652,14 @@ export const videoassetVideoAssetSchema = z.object({
2652
2652
  type: z.enum(["video"]),
2653
2653
  src: z.string(),
2654
2654
  transcode: z.optional(z.boolean()),
2655
- trim: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()))),
2655
+ trim: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2656
2656
  volume: z.optional(
2657
- z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(1)), z.array(tweenTweenSchema)])
2657
+ z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(1)), z.array(tweenTweenSchema)])
2658
2658
  ),
2659
2659
  volumeEffect: z.optional(
2660
2660
  z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])
2661
2661
  ),
2662
- speed: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number().gte(0).lte(10)))),
2662
+ speed: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().gte(0).lte(10))),
2663
2663
  crop: z.optional(cropCropSchema),
2664
2664
  chromaKey: z.optional(chromakeyChromaKeySchema),
2665
2665
  });
@@ -2692,12 +2692,12 @@ export const assetSchema = assetAssetSchema;
2692
2692
  */
2693
2693
  export const clipClipSchema = z.object({
2694
2694
  asset: assetAssetSchema,
2695
- start: z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())), z.enum(["auto"])]),
2696
- length: z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())), z.literal("auto"), z.literal("end")]),
2695
+ start: z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number()), z.enum(["auto"])]),
2696
+ length: z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number()), z.literal("auto"), z.literal("end")]),
2697
2697
  fit: z.optional(z.enum(["cover", "contain", "crop", "none"])),
2698
- scale: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()))),
2699
- width: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(3840))),
2700
- height: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.int().gte(1).lte(2160))),
2698
+ scale: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2699
+ width: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(3840))),
2700
+ height: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number().int().gte(1).lte(2160))),
2701
2701
  position: z.optional(
2702
2702
  z.enum([
2703
2703
  "top",
@@ -2748,7 +2748,7 @@ export const clipClipSchema = z.object({
2748
2748
  "negative",
2749
2749
  ])
2750
2750
  ),
2751
- opacity: z.optional(z.union([z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number()), z.array(tweenTweenSchema)])),
2751
+ opacity: z.optional(z.union([z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number()), z.array(tweenTweenSchema)])),
2752
2752
  transform: z.optional(transformationTransformationSchema),
2753
2753
  alias: z.optional(z.string().regex(/^[A-Za-z0-9_-]+$/)),
2754
2754
  });
@@ -2807,8 +2807,8 @@ export const renderresponsedataRenderResponseDataSchema = z.object({
2807
2807
  "failed",
2808
2808
  ]),
2809
2809
  error: z.optional(z.string()),
2810
- duration: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2811
- renderTime: z.optional(z.preprocess((val) => typeof val === 'string' && val !== '' && !isNaN(Number(val)) ? Number(val) : val, z.number())),
2810
+ duration: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2811
+ renderTime: z.optional(z.preprocess(((v: unknown) => v === '' || Array.isArray(v) ? NaN : v), z.coerce.number())),
2812
2812
  url: z.optional(z.string()),
2813
2813
  poster: z.optional(z.union([z.string(), z.null()])),
2814
2814
  thumbnail: z.optional(z.union([z.string(), z.null()])),