@shotstack/schemas 1.4.7 → 1.5.0

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.
@@ -24,16 +24,16 @@ export const captionpropertiesCaptionBackgroundSchema = z.object({
24
24
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
25
25
  return undefined; if (Array.isArray(v))
26
26
  return v; if (typeof v === 'string')
27
- return Number(v); return v; }), z.number())),
27
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
28
28
  padding: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
29
29
  return undefined; if (Array.isArray(v))
30
30
  return v; if (typeof v === 'string')
31
- return Number(v); return v; }), z.number().int())),
31
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
32
32
  borderRadius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
33
33
  return undefined; if (Array.isArray(v))
34
34
  return v; if (typeof v === 'string')
35
- return Number(v); return v; }), z.number().int())),
36
- });
35
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
36
+ }).strict();
37
37
  export const captionBackgroundSchema = captionpropertiesCaptionBackgroundSchema;
38
38
  /**
39
39
  * Font properties for captions text.
@@ -44,21 +44,21 @@ export const captionpropertiesCaptionFontSchema = z.object({
44
44
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
45
45
  return undefined; if (Array.isArray(v))
46
46
  return v; if (typeof v === 'string')
47
- return Number(v); return v; }), z.number())),
47
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
48
48
  size: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
49
49
  return undefined; if (Array.isArray(v))
50
50
  return v; if (typeof v === 'string')
51
- return Number(v); return v; }), z.number().int())),
51
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
52
52
  lineHeight: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
53
53
  return undefined; if (Array.isArray(v))
54
54
  return v; if (typeof v === 'string')
55
- return Number(v); return v; }), z.number())),
55
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
56
56
  stroke: z.optional(z.string()),
57
57
  strokeWidth: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
58
58
  return undefined; if (Array.isArray(v))
59
59
  return v; if (typeof v === 'string')
60
- return Number(v); return v; }), z.number())),
61
- });
60
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
61
+ }).strict();
62
62
  export const captionFontSchema = captionpropertiesCaptionFontSchema;
63
63
  /**
64
64
  * The margin properties for captions. Margins are used to position the caption text and background on the screen.
@@ -67,16 +67,16 @@ export const captionpropertiesCaptionMarginSchema = z.object({
67
67
  top: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
68
68
  return undefined; if (Array.isArray(v))
69
69
  return v; if (typeof v === 'string')
70
- return Number(v); return v; }), z.number())),
70
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
71
71
  left: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
72
72
  return undefined; if (Array.isArray(v))
73
73
  return v; if (typeof v === 'string')
74
- return Number(v); return v; }), z.number())),
74
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
75
75
  right: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
76
76
  return undefined; if (Array.isArray(v))
77
77
  return v; if (typeof v === 'string')
78
- return Number(v); return v; }), z.number())),
79
- });
78
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
79
+ }).strict();
80
80
  export const captionMarginSchema = captionpropertiesCaptionMarginSchema;
81
81
  /**
82
82
  * The CaptionAsset is used to add captions (subtitles) to a video. It uses a supplied SRT or VTT file which will
@@ -92,19 +92,19 @@ export const captionMarginSchema = captionpropertiesCaptionMarginSchema;
92
92
  */
93
93
  export const captionassetCaptionAssetSchema = z.object({
94
94
  type: z.enum(["caption"]),
95
- src: z.string().min(1).regex(/\S/),
95
+ src: z.string().regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").min(1).regex(/\S/),
96
96
  font: z.optional(captionpropertiesCaptionFontSchema),
97
97
  background: z.optional(captionpropertiesCaptionBackgroundSchema),
98
98
  margin: z.optional(captionpropertiesCaptionMarginSchema),
99
99
  trim: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
100
100
  return undefined; if (Array.isArray(v))
101
101
  return v; if (typeof v === 'string')
102
- return Number(v); return v; }), z.number())),
102
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
103
103
  speed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
104
104
  return undefined; if (Array.isArray(v))
105
105
  return v; if (typeof v === 'string')
106
- return Number(v); return v; }), z.number().gte(0).lte(10))),
107
- });
106
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
107
+ }).strict();
108
108
  export const captionAssetSchema = captionassetCaptionAssetSchema;
109
109
  /**
110
110
  * Chroma key is a technique that replaces a specific color in a video with a different background image or video, enabling seamless integration of diverse environments. Commonly used for green screen and blue screen effects.
@@ -114,12 +114,12 @@ export const chromakeyChromaKeySchema = z.object({
114
114
  threshold: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
115
115
  return undefined; if (Array.isArray(v))
116
116
  return v; if (typeof v === 'string')
117
- return Number(v); return v; }), z.number().int().gte(0).lte(250))),
117
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(0).lte(250)))),
118
118
  halo: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
119
119
  return undefined; if (Array.isArray(v))
120
120
  return v; if (typeof v === 'string')
121
- return Number(v); return v; }), z.number().int().gte(0).lte(250))),
122
- });
121
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(0).lte(250)))),
122
+ }).strict();
123
123
  export const chromaKeySchema = chromakeyChromaKeySchema;
124
124
  /**
125
125
  * Options for the D-ID text-to-avatar service. Set the text to be converted to an avatar and configure the avatar and background. The output will be generated as an MP4 video file.
@@ -129,7 +129,7 @@ export const didTextToAvatarOptionsDidTextToAvatarOptionsSchema = z.object({
129
129
  text: z.string(),
130
130
  avatar: z.enum(["jack", "lana", "lily", "matt", "rian"]),
131
131
  background: z.optional(z.string()),
132
- });
132
+ }).strict();
133
133
  export const didTextToAvatarOptionsSchema = didTextToAvatarOptionsDidTextToAvatarOptionsSchema;
134
134
  /**
135
135
  * Generate assets using the third party D-ID provider AI services.
@@ -138,11 +138,7 @@ export const didTextToAvatarOptionsSchema = didTextToAvatarOptionsDidTextToAvata
138
138
  * <li><a href="#tocs_didtexttoavataroptions">DidTextToAvatarOptions</a></li>
139
139
  * </ul>
140
140
  */
141
- export const didGeneratedAssetOptionsDidGeneratedAssetOptionsSchema = z
142
- .object({
143
- type: z.literal("didTextToAvatarOptions_DIDTextToAvatarOptions"),
144
- })
145
- .and(didTextToAvatarOptionsDidTextToAvatarOptionsSchema);
141
+ export const didGeneratedAssetOptionsDidGeneratedAssetOptionsSchema = didTextToAvatarOptionsDidTextToAvatarOptionsSchema.extend({ type: z.literal("didTextToAvatarOptions_DIDTextToAvatarOptions") }).strict();
146
142
  export const didGeneratedAssetOptionsSchema = didGeneratedAssetOptionsDidGeneratedAssetOptionsSchema;
147
143
  /**
148
144
  * Generate assets using D-ID. D-ID provide a text-to-avatar service. The D-ID provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/d-id), not in the request.
@@ -150,7 +146,7 @@ export const didGeneratedAssetOptionsSchema = didGeneratedAssetOptionsDidGenerat
150
146
  export const didGeneratedAssetDidGeneratedAssetSchema = z.object({
151
147
  provider: z.enum(["d-id"]),
152
148
  options: didGeneratedAssetOptionsDidGeneratedAssetOptionsSchema,
153
- });
149
+ }).strict();
154
150
  export const didGeneratedAssetSchema = didGeneratedAssetDidGeneratedAssetSchema;
155
151
  /**
156
152
  * Options for the ElevenLabs text-to-speech service. Set the text to be converted to speech and choose a voice to set the speaking style. The output will be generated as an MP3 audio file available at the URL returned in the response.
@@ -169,7 +165,7 @@ export const elevenlabsTextToSpeechOptionsElevenLabsTextToSpeechOptionsSchema =
169
165
  "Rachel",
170
166
  "Sam",
171
167
  ]),
172
- });
168
+ }).strict();
173
169
  export const elevenLabsTextToSpeechOptionsSchema = elevenlabsTextToSpeechOptionsElevenLabsTextToSpeechOptionsSchema;
174
170
  /**
175
171
  * Generate assets using the third party ElevenLabs provider AI services.
@@ -178,11 +174,7 @@ export const elevenLabsTextToSpeechOptionsSchema = elevenlabsTextToSpeechOptions
178
174
  * <li><a href="#tocs_elevenlabstexttospeechoptions">ElevenLabsTextToSpeechOptions</a></li>
179
175
  * </ul>
180
176
  */
181
- export const elevenlabsGeneratedAssetOptionsElevenLabsGeneratedAssetOptionsSchema = z
182
- .object({
183
- type: z.literal("elevenlabsTextToSpeechOptions_ElevenLabsTextToSpeechOptions"),
184
- })
185
- .and(elevenlabsTextToSpeechOptionsElevenLabsTextToSpeechOptionsSchema);
177
+ export const elevenlabsGeneratedAssetOptionsElevenLabsGeneratedAssetOptionsSchema = elevenlabsTextToSpeechOptionsElevenLabsTextToSpeechOptionsSchema.extend({ type: z.literal("elevenlabsTextToSpeechOptions_ElevenLabsTextToSpeechOptions") }).strict();
186
178
  export const elevenLabsGeneratedAssetOptionsSchema = elevenlabsGeneratedAssetOptionsElevenLabsGeneratedAssetOptionsSchema;
187
179
  /**
188
180
  * Generate assets using ElevenLabs. ElevenLabs provide a text-to-speech service. The ElevenLabs provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/elevenlabs), not in the request.
@@ -190,7 +182,7 @@ export const elevenLabsGeneratedAssetOptionsSchema = elevenlabsGeneratedAssetOpt
190
182
  export const elevenlabsGeneratedAssetElevenLabsGeneratedAssetSchema = z.object({
191
183
  provider: z.enum(["elevenlabs"]),
192
184
  options: elevenlabsGeneratedAssetOptionsElevenLabsGeneratedAssetOptionsSchema,
193
- });
185
+ }).strict();
194
186
  export const elevenLabsGeneratedAssetSchema = elevenlabsGeneratedAssetElevenLabsGeneratedAssetSchema;
195
187
  /**
196
188
  * Options for the HeyGen text-to-avatar service. Set the text to be converted to an avatar and configure the avatars voice, speaking style, appearance and background. The output will be generated as an MP4 video file available at the URL returned in the response.
@@ -315,7 +307,7 @@ export const heygenTextToAvatarOptionsHeyGenTextToAvatarOptionsSchema = z.object
315
307
  background: z.optional(z.string()),
316
308
  ratio: z.optional(z.enum(["16:9", "9:16"])),
317
309
  test: z.optional(z.boolean()),
318
- });
310
+ }).strict();
319
311
  export const heyGenTextToAvatarOptionsSchema = heygenTextToAvatarOptionsHeyGenTextToAvatarOptionsSchema;
320
312
  /**
321
313
  * Generate assets using the third party HeyGen provider AI services.
@@ -324,11 +316,7 @@ export const heyGenTextToAvatarOptionsSchema = heygenTextToAvatarOptionsHeyGenTe
324
316
  * <li><a href="#tocs_heygentexttoavataroptions">HeyGenTextToAvatarOptions</a></li>
325
317
  * </ul>
326
318
  */
327
- export const heygenGeneratedAssetOptionsHeyGenGeneratedAssetOptionsSchema = z
328
- .object({
329
- type: z.literal("heygenTextToAvatarOptions_HeyGenTextToAvatarOptions"),
330
- })
331
- .and(heygenTextToAvatarOptionsHeyGenTextToAvatarOptionsSchema);
319
+ export const heygenGeneratedAssetOptionsHeyGenGeneratedAssetOptionsSchema = heygenTextToAvatarOptionsHeyGenTextToAvatarOptionsSchema.extend({ type: z.literal("heygenTextToAvatarOptions_HeyGenTextToAvatarOptions") }).strict();
332
320
  export const heyGenGeneratedAssetOptionsSchema = heygenGeneratedAssetOptionsHeyGenGeneratedAssetOptionsSchema;
333
321
  /**
334
322
  * Generate assets using HeyGen. HeyGen provide a text-to-avatar service. The HeyGen provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/heygen), not in the request.
@@ -336,7 +324,7 @@ export const heyGenGeneratedAssetOptionsSchema = heygenGeneratedAssetOptionsHeyG
336
324
  export const heygenGeneratedAssetHeyGenGeneratedAssetSchema = z.object({
337
325
  provider: z.enum(["heygen"]),
338
326
  options: heygenGeneratedAssetOptionsHeyGenGeneratedAssetOptionsSchema,
339
- });
327
+ }).strict();
340
328
  export const heyGenGeneratedAssetSchema = heygenGeneratedAssetHeyGenGeneratedAssetSchema;
341
329
  /**
342
330
  * Options for the OpenAI text-generator service. Set a text prompt that will be used to generate a new body of text. The output will be generated as a text (txt) file available at the URL returned in the response.
@@ -346,7 +334,7 @@ export const openaiTextGeneratorOptionsOpenAiTextGeneratorOptionsSchema = z.obje
346
334
  prompt: z.string(),
347
335
  model: z.enum(["gpt-3.5-turbo", "gpt-4"]),
348
336
  systemPrompt: z.optional(z.string()),
349
- });
337
+ }).strict();
350
338
  export const openAiTextGeneratorOptionsSchema = openaiTextGeneratorOptionsOpenAiTextGeneratorOptionsSchema;
351
339
  /**
352
340
  * Generate assets using OpenAI provider AI services.
@@ -355,11 +343,7 @@ export const openAiTextGeneratorOptionsSchema = openaiTextGeneratorOptionsOpenAi
355
343
  * <li><a href="#tocs_openaitextgeneratoroptions">OpenAiTextGeneratorOptions</a></li>
356
344
  * </ul>
357
345
  */
358
- export const openaiGeneratedAssetOptionsOpenAiGeneratedAssetOptionsSchema = z
359
- .object({
360
- type: z.literal("openaiTextGeneratorOptions_OpenAiTextGeneratorOptions"),
361
- })
362
- .and(openaiTextGeneratorOptionsOpenAiTextGeneratorOptionsSchema);
346
+ export const openaiGeneratedAssetOptionsOpenAiGeneratedAssetOptionsSchema = openaiTextGeneratorOptionsOpenAiTextGeneratorOptionsSchema.extend({ type: z.literal("openaiTextGeneratorOptions_OpenAiTextGeneratorOptions") }).strict();
363
347
  export const openAiGeneratedAssetOptionsSchema = openaiGeneratedAssetOptionsOpenAiGeneratedAssetOptionsSchema;
364
348
  /**
365
349
  * Generate assets using OpenAI. OpenAI provide a text generation service using ChatGPT 3.5 and 4. The OpenAI provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/openai), not in the request.
@@ -367,7 +351,7 @@ export const openAiGeneratedAssetOptionsSchema = openaiGeneratedAssetOptionsOpen
367
351
  export const openaiGeneratedAssetOpenAiGeneratedAssetSchema = z.object({
368
352
  provider: z.enum(["openai"]),
369
353
  options: openaiGeneratedAssetOptionsOpenAiGeneratedAssetOptionsSchema,
370
- });
354
+ }).strict();
371
355
  export const openAiGeneratedAssetSchema = openaiGeneratedAssetOpenAiGeneratedAssetSchema;
372
356
  /**
373
357
  * Individual errors returned by the Create API.
@@ -376,14 +360,14 @@ export const generatedAssetErrorResponseDataGeneratedAssetErrorResponseDataSchem
376
360
  status: z.string(),
377
361
  title: z.string(),
378
362
  detail: z.string(),
379
- });
363
+ }).strict();
380
364
  export const generatedAssetErrorResponseDataSchema = generatedAssetErrorResponseDataGeneratedAssetErrorResponseDataSchema;
381
365
  /**
382
366
  * Error response data for validation and other errors returned by the Create API.
383
367
  */
384
368
  export const generatedAssetErrorResponseGeneratedAssetErrorResponseSchema = z.object({
385
369
  errors: z.array(generatedAssetErrorResponseDataGeneratedAssetErrorResponseDataSchema),
386
- });
370
+ }).strict();
387
371
  export const generatedAssetErrorResponseSchema = generatedAssetErrorResponseGeneratedAssetErrorResponseSchema;
388
372
  /**
389
373
  * The id and attributes of the generated asset.
@@ -396,7 +380,7 @@ export const generatedAssetResponseAttributesGeneratedAssetResponseAttributesSch
396
380
  status: z.enum(["queued", "processing", "saving", "done", "failed"]),
397
381
  created: z.string(),
398
382
  updated: z.string(),
399
- });
383
+ }).strict();
400
384
  export const generatedAssetResponseAttributesSchema = generatedAssetResponseAttributesGeneratedAssetResponseAttributesSchema;
401
385
  /**
402
386
  * The type of resource (an asset), it's id and attributes of the generated file.
@@ -405,14 +389,14 @@ export const generatedAssetResponseDataGeneratedAssetResponseDataSchema = z.obje
405
389
  type: z.string(),
406
390
  id: z.string(),
407
391
  attributes: generatedAssetResponseAttributesGeneratedAssetResponseAttributesSchema,
408
- });
392
+ }).strict();
409
393
  export const generatedAssetResponseDataSchema = generatedAssetResponseDataGeneratedAssetResponseDataSchema;
410
394
  /**
411
395
  * The response returned by the Create API [generate asset](#generate-asset) and [get generated asset](#get-generated-asset) requests. Includes status and details of the generated asset. The response follows the [json:api](https://jsonapi.org/) specification.
412
396
  */
413
397
  export const generatedAssetResponseGeneratedAssetResponseSchema = z.object({
414
398
  data: generatedAssetResponseDataGeneratedAssetResponseDataSchema,
415
- });
399
+ }).strict();
416
400
  export const generatedAssetResponseSchema = generatedAssetResponseGeneratedAssetResponseSchema;
417
401
  /**
418
402
  * Options for the Shotstack image-to-video service. Set the URL of an image to convert in to a video. The output will be generated as an MP4 file available at the URL returned in the response.
@@ -423,12 +407,12 @@ export const shotstackImageToVideoOptionsShotstackImageToVideoOptionsSchema = z.
423
407
  guidanceScale: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
424
408
  return undefined; if (Array.isArray(v))
425
409
  return v; if (typeof v === 'string')
426
- return Number(v); return v; }), z.number())).default(1.8),
410
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(1.8),
427
411
  motion: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
428
412
  return undefined; if (Array.isArray(v))
429
413
  return v; if (typeof v === 'string')
430
- return Number(v); return v; }), z.number().int())).default(127),
431
- });
414
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))).default(127),
415
+ }).strict();
432
416
  export const shotstackImageToVideoOptionsSchema = shotstackImageToVideoOptionsShotstackImageToVideoOptionsSchema;
433
417
  /**
434
418
  * Options for the Shotstack text-generator service. Set a text prompt that will be used to generate a new body of text. The output will be generated as a text (txt) file available at the URL returned in the response.
@@ -436,7 +420,7 @@ export const shotstackImageToVideoOptionsSchema = shotstackImageToVideoOptionsSh
436
420
  export const shotstackTextGeneratorOptionsShotstackTextGeneratorOptionsSchema = z.object({
437
421
  type: z.enum(["text-generator"]),
438
422
  prompt: z.string(),
439
- });
423
+ }).strict();
440
424
  export const shotstackTextGeneratorOptionsSchema = shotstackTextGeneratorOptionsShotstackTextGeneratorOptionsSchema;
441
425
  /**
442
426
  * Options for the Shotstack text-to-image service. Set a text prompt to generate an image from. The output will be generated as a PNG file available at the URL returned in the response.
@@ -447,12 +431,12 @@ export const shotstackTextToImageOptionsShotstackTextToImageOptionsSchema = z.ob
447
431
  width: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
448
432
  return undefined; if (Array.isArray(v))
449
433
  return v; if (typeof v === 'string')
450
- return Number(v); return v; }), z.number().int()),
434
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
451
435
  height: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
452
436
  return undefined; if (Array.isArray(v))
453
437
  return v; if (typeof v === 'string')
454
- return Number(v); return v; }), z.number().int()),
455
- });
438
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
439
+ }).strict();
456
440
  export const shotstackTextToImageOptionsSchema = shotstackTextToImageOptionsShotstackTextToImageOptionsSchema;
457
441
  /**
458
442
  * Options for the Shotstack text-to-speech service. Set the text to be converted to speech and choose a voice to set the speaking style. The output will be generated as an MP3 audio file available at the URL returned in the response.
@@ -551,32 +535,16 @@ export const shotstackTextToSpeechOptionsShotstackTextToSpeechOptionsSchema = z.
551
535
  "fi-FI",
552
536
  ])),
553
537
  newscaster: z.optional(z.boolean()).default(false),
554
- });
538
+ }).strict();
555
539
  export const shotstackTextToSpeechOptionsSchema = shotstackTextToSpeechOptionsShotstackTextToSpeechOptionsSchema;
556
540
  /**
557
541
  * Generate assets using the native Shotstack provider AI services.
558
542
  */
559
543
  export const shotstackGeneratedAssetOptionsShotstackGeneratedAssetOptionsSchema = z.union([
560
- z
561
- .object({
562
- type: z.literal("shotstackTextToSpeechOptions_ShotstackTextToSpeechOptions"),
563
- })
564
- .and(shotstackTextToSpeechOptionsShotstackTextToSpeechOptionsSchema),
565
- z
566
- .object({
567
- type: z.literal("shotstackTextToImageOptions_ShotstackTextToImageOptions"),
568
- })
569
- .and(shotstackTextToImageOptionsShotstackTextToImageOptionsSchema),
570
- z
571
- .object({
572
- type: z.literal("shotstackTextGeneratorOptions_ShotstackTextGeneratorOptions"),
573
- })
574
- .and(shotstackTextGeneratorOptionsShotstackTextGeneratorOptionsSchema),
575
- z
576
- .object({
577
- type: z.literal("shotstackImageToVideoOptions_ShotstackImageToVideoOptions"),
578
- })
579
- .and(shotstackImageToVideoOptionsShotstackImageToVideoOptionsSchema),
544
+ shotstackTextToSpeechOptionsShotstackTextToSpeechOptionsSchema.extend({ type: z.literal("shotstackTextToSpeechOptions_ShotstackTextToSpeechOptions") }).strict(),
545
+ shotstackTextToImageOptionsShotstackTextToImageOptionsSchema.extend({ type: z.literal("shotstackTextToImageOptions_ShotstackTextToImageOptions") }).strict(),
546
+ shotstackTextGeneratorOptionsShotstackTextGeneratorOptionsSchema.extend({ type: z.literal("shotstackTextGeneratorOptions_ShotstackTextGeneratorOptions") }).strict(),
547
+ shotstackImageToVideoOptionsShotstackImageToVideoOptionsSchema.extend({ type: z.literal("shotstackImageToVideoOptions_ShotstackImageToVideoOptions") }).strict(),
580
548
  ]);
581
549
  export const shotstackGeneratedAssetOptionsSchema = shotstackGeneratedAssetOptionsShotstackGeneratedAssetOptionsSchema;
582
550
  /**
@@ -585,7 +553,7 @@ export const shotstackGeneratedAssetOptionsSchema = shotstackGeneratedAssetOptio
585
553
  export const shotstackGeneratedAssetShotstackGeneratedAssetSchema = z.object({
586
554
  provider: z.enum(["shotstack"]),
587
555
  options: shotstackGeneratedAssetOptionsShotstackGeneratedAssetOptionsSchema,
588
- });
556
+ }).strict();
589
557
  export const shotstackGeneratedAssetSchema = shotstackGeneratedAssetShotstackGeneratedAssetSchema;
590
558
  /**
591
559
  * Options for the Stability AI text-to-image service. Set a text prompt to generate an image from plus other engine and configuration options. The output will be generated as a JPG file available at the URL returned in the response.
@@ -603,23 +571,23 @@ export const stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema =
603
571
  width: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
604
572
  return undefined; if (Array.isArray(v))
605
573
  return v; if (typeof v === 'string')
606
- return Number(v); return v; }), z.number().int()),
574
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
607
575
  height: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
608
576
  return undefined; if (Array.isArray(v))
609
577
  return v; if (typeof v === 'string')
610
- return Number(v); return v; }), z.number().int()),
578
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
611
579
  steps: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
612
580
  return undefined; if (Array.isArray(v))
613
581
  return v; if (typeof v === 'string')
614
- return Number(v); return v; }), z.number().int())).default(30),
582
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))).default(30),
615
583
  seed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
616
584
  return undefined; if (Array.isArray(v))
617
585
  return v; if (typeof v === 'string')
618
- return Number(v); return v; }), z.number().int())).default(0),
586
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))).default(0),
619
587
  cfgScale: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
620
588
  return undefined; if (Array.isArray(v))
621
589
  return v; if (typeof v === 'string')
622
- return Number(v); return v; }), z.number())).default(7),
590
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(7),
623
591
  stylePreset: z.optional(z.enum([
624
592
  "3d-model",
625
593
  "analog-film",
@@ -639,7 +607,7 @@ export const stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema =
639
607
  "pixel-art",
640
608
  "tile-texture",
641
609
  ])),
642
- });
610
+ }).strict();
643
611
  export const stabilityAiTextToImageOptionsSchema = stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema;
644
612
  /**
645
613
  * Generate assets using Stability AI provider AI services.
@@ -648,11 +616,7 @@ export const stabilityAiTextToImageOptionsSchema = stabilityAiTextToImageOptions
648
616
  * <li><a href="#tocs_stabilityaitexttoimageoptions">StabilityAiTextToImageOptions</a></li>
649
617
  * </ul>
650
618
  */
651
- export const stabilityAiGeneratedAssetOptionsStabilityAiGeneratedAssetOptionsSchema = z
652
- .object({
653
- type: z.literal("stabilityAiTextToImageOptions_StabilityAiTextToImageOptions"),
654
- })
655
- .and(stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema);
619
+ export const stabilityAiGeneratedAssetOptionsStabilityAiGeneratedAssetOptionsSchema = stabilityAiTextToImageOptionsStabilityAiTextToImageOptionsSchema.extend({ type: z.literal("stabilityAiTextToImageOptions_StabilityAiTextToImageOptions") }).strict();
656
620
  export const stabilityAiGeneratedAssetOptionsSchema = stabilityAiGeneratedAssetOptionsStabilityAiGeneratedAssetOptionsSchema;
657
621
  /**
658
622
  * Generate assets using Stability AI. Stability AI provide a text-to-image service using Stable Diffusion. The Stability AI provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/stability-ai), not in the request.
@@ -660,42 +624,18 @@ export const stabilityAiGeneratedAssetOptionsSchema = stabilityAiGeneratedAssetO
660
624
  export const stabilityAiGeneratedAssetStabilityAiGeneratedAssetSchema = z.object({
661
625
  provider: z.enum(["stability-ai"]),
662
626
  options: stabilityAiGeneratedAssetOptionsStabilityAiGeneratedAssetOptionsSchema,
663
- });
627
+ }).strict();
664
628
  export const stabilityAiGeneratedAssetSchema = stabilityAiGeneratedAssetStabilityAiGeneratedAssetSchema;
665
629
  /**
666
630
  * A generated asset is a media asset created by the Create API. You can use native or third party providers to generate video, audio and image files using Generative AI services like text-to-speech and text-to-avatar.
667
631
  */
668
632
  export const generatedAssetGeneratedAssetSchema = z.union([
669
- z
670
- .object({
671
- provider: z.literal("shotstackGeneratedAsset_ShotstackGeneratedAsset"),
672
- })
673
- .and(shotstackGeneratedAssetShotstackGeneratedAssetSchema),
674
- z
675
- .object({
676
- provider: z.literal("didGeneratedAsset_DIDGeneratedAsset"),
677
- })
678
- .and(didGeneratedAssetDidGeneratedAssetSchema),
679
- z
680
- .object({
681
- provider: z.literal("elevenlabsGeneratedAsset_ElevenLabsGeneratedAsset"),
682
- })
683
- .and(elevenlabsGeneratedAssetElevenLabsGeneratedAssetSchema),
684
- z
685
- .object({
686
- provider: z.literal("heygenGeneratedAsset_HeyGenGeneratedAsset"),
687
- })
688
- .and(heygenGeneratedAssetHeyGenGeneratedAssetSchema),
689
- z
690
- .object({
691
- provider: z.literal("openaiGeneratedAsset_OpenAiGeneratedAsset"),
692
- })
693
- .and(openaiGeneratedAssetOpenAiGeneratedAssetSchema),
694
- z
695
- .object({
696
- provider: z.literal("stabilityAiGeneratedAsset_StabilityAiGeneratedAsset"),
697
- })
698
- .and(stabilityAiGeneratedAssetStabilityAiGeneratedAssetSchema),
633
+ shotstackGeneratedAssetShotstackGeneratedAssetSchema.extend({ provider: z.literal("shotstackGeneratedAsset_ShotstackGeneratedAsset") }).strict(),
634
+ didGeneratedAssetDidGeneratedAssetSchema.extend({ provider: z.literal("didGeneratedAsset_DIDGeneratedAsset") }).strict(),
635
+ elevenlabsGeneratedAssetElevenLabsGeneratedAssetSchema.extend({ provider: z.literal("elevenlabsGeneratedAsset_ElevenLabsGeneratedAsset") }).strict(),
636
+ heygenGeneratedAssetHeyGenGeneratedAssetSchema.extend({ provider: z.literal("heygenGeneratedAsset_HeyGenGeneratedAsset") }).strict(),
637
+ openaiGeneratedAssetOpenAiGeneratedAssetSchema.extend({ provider: z.literal("openaiGeneratedAsset_OpenAiGeneratedAsset") }).strict(),
638
+ stabilityAiGeneratedAssetStabilityAiGeneratedAssetSchema.extend({ provider: z.literal("stabilityAiGeneratedAsset_StabilityAiGeneratedAsset") }).strict(),
699
639
  ]);
700
640
  export const generatedAssetSchema = generatedAssetGeneratedAssetSchema;
701
641
  /**
@@ -705,20 +645,20 @@ export const cropCropSchema = z.object({
705
645
  top: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
706
646
  return undefined; if (Array.isArray(v))
707
647
  return v; if (typeof v === 'string')
708
- return Number(v); return v; }), z.number().gte(0).lte(1))),
648
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))),
709
649
  bottom: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
710
650
  return undefined; if (Array.isArray(v))
711
651
  return v; if (typeof v === 'string')
712
- return Number(v); return v; }), z.number().gte(0).lte(1))),
652
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))),
713
653
  left: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
714
654
  return undefined; if (Array.isArray(v))
715
655
  return v; if (typeof v === 'string')
716
- return Number(v); return v; }), z.number().gte(0).lte(1))),
656
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))),
717
657
  right: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
718
658
  return undefined; if (Array.isArray(v))
719
659
  return v; if (typeof v === 'string')
720
- return Number(v); return v; }), z.number().gte(0).lte(1))),
721
- });
660
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))),
661
+ }).strict();
722
662
  export const cropSchema = cropCropSchema;
723
663
  /**
724
664
  * Pass additional options to control how files are stored in Google Cloud Storage.
@@ -727,7 +667,7 @@ export const googleCloudStorageDestinationOptionsGoogleCloudStorageDestinationOp
727
667
  bucket: z.string(),
728
668
  prefix: z.optional(z.string()),
729
669
  filename: z.optional(z.string()),
730
- });
670
+ }).strict();
731
671
  export const googleCloudStorageDestinationOptionsSchema = googleCloudStorageDestinationOptionsGoogleCloudStorageDestinationOptionsSchema;
732
672
  /**
733
673
  * Send videos and assets to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. Send files with your own prefix and filename. Google Cloud credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/google-cloud-storage), not in the request.
@@ -735,7 +675,7 @@ export const googleCloudStorageDestinationOptionsSchema = googleCloudStorageDest
735
675
  export const googleCloudStorageDestinationGoogleCloudStorageDestinationSchema = z.object({
736
676
  provider: z.literal("google-cloud-storage"),
737
677
  options: z.optional(googleCloudStorageDestinationOptionsGoogleCloudStorageDestinationOptionsSchema),
738
- });
678
+ }).strict();
739
679
  export const googleCloudStorageDestinationSchema = googleCloudStorageDestinationGoogleCloudStorageDestinationSchema;
740
680
  /**
741
681
  * Pass the folder ID and options to configure how assets are stored in Google Drive.
@@ -743,7 +683,7 @@ export const googleCloudStorageDestinationSchema = googleCloudStorageDestination
743
683
  export const googleDriveDestinationOptionsGoogleDriveDestinationOptionsSchema = z.object({
744
684
  folderId: z.string(),
745
685
  filename: z.optional(z.string()),
746
- });
686
+ }).strict();
747
687
  export const googleDriveDestinationOptionsSchema = googleDriveDestinationOptionsGoogleDriveDestinationOptionsSchema;
748
688
  /**
749
689
  * Send rendered videos and assets to the [Google Drive](https://shotstack.io/docs/guide/serving-assets/destinations/google-drive/) cloud storage service. Google Drive uses OAuth and you must authenticate and link your Google account via [dashboard](https://dashboard.shotstack.io/integrations/google-drive), not in the request.
@@ -751,7 +691,7 @@ export const googleDriveDestinationOptionsSchema = googleDriveDestinationOptions
751
691
  export const googleDriveDestinationGoogleDriveDestinationSchema = z.object({
752
692
  provider: z.literal("google-drive"),
753
693
  options: googleDriveDestinationOptionsGoogleDriveDestinationOptionsSchema,
754
- });
694
+ }).strict();
755
695
  export const googleDriveDestinationSchema = googleDriveDestinationGoogleDriveDestinationSchema;
756
696
  /**
757
697
  * Pass additional options to control how Mux processes video. Currently supports playback_policy and passthrough options.
@@ -759,7 +699,7 @@ export const googleDriveDestinationSchema = googleDriveDestinationGoogleDriveDes
759
699
  export const muxDestinationOptionsMuxDestinationOptionsSchema = z.object({
760
700
  playbackPolicy: z.optional(z.array(z.enum(["public", "signed"]))),
761
701
  passthrough: z.optional(z.string().max(255)),
762
- });
702
+ }).strict();
763
703
  export const muxDestinationOptionsSchema = muxDestinationOptionsMuxDestinationOptionsSchema;
764
704
  /**
765
705
  * Send videos to the [Mux](https://shotstack.io/docs/guide/serving-assets/destinations/mux/) video hosting and streaming service. Mux credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/mux), not in the request.
@@ -767,7 +707,7 @@ export const muxDestinationOptionsSchema = muxDestinationOptionsMuxDestinationOp
767
707
  export const muxDestinationMuxDestinationSchema = z.object({
768
708
  provider: z.literal("mux"),
769
709
  options: z.optional(muxDestinationOptionsMuxDestinationOptionsSchema),
770
- });
710
+ }).strict();
771
711
  export const muxDestinationSchema = muxDestinationMuxDestinationSchema;
772
712
  /**
773
713
  * Pass additional options to control how files are stored in S3.
@@ -778,7 +718,7 @@ export const s3DestinationOptionsS3DestinationOptionsSchema = z.object({
778
718
  prefix: z.optional(z.string()),
779
719
  filename: z.optional(z.string()),
780
720
  acl: z.optional(z.string()),
781
- });
721
+ }).strict();
782
722
  export const s3DestinationOptionsSchema = s3DestinationOptionsS3DestinationOptionsSchema;
783
723
  /**
784
724
  * Send videos and assets to an [Amazon S3](https://shotstack.io/docs/guide/serving-assets/destinations/s3/) bucket. Send files to any region with your own prefix and filename. AWS credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/s3), not in the request.
@@ -786,7 +726,7 @@ export const s3DestinationOptionsSchema = s3DestinationOptionsS3DestinationOptio
786
726
  export const s3DestinationS3DestinationSchema = z.object({
787
727
  provider: z.literal("s3"),
788
728
  options: z.optional(s3DestinationOptionsS3DestinationOptionsSchema),
789
- });
729
+ }).strict();
790
730
  export const s3DestinationSchema = s3DestinationS3DestinationSchema;
791
731
  /**
792
732
  * Send videos and assets to the [Shotstack hosting and CDN](https://shotstack.io/docs/guide/serving-assets/destinations/shotstack/) service. This destination is enabled by default.
@@ -794,7 +734,7 @@ export const s3DestinationSchema = s3DestinationS3DestinationSchema;
794
734
  export const shotstackDestinationShotstackDestinationSchema = z.object({
795
735
  provider: z.literal("shotstack"),
796
736
  exclude: z.optional(z.boolean()),
797
- });
737
+ }).strict();
798
738
  export const shotstackDestinationSchema = shotstackDestinationShotstackDestinationSchema;
799
739
  /**
800
740
  * Pass additional options to control how TikTok publishes video.
@@ -805,14 +745,14 @@ export const tiktokDestinationOptionsTiktokDestinationOptionsSchema = z.object({
805
745
  disableDuet: z.optional(z.boolean()).default(false),
806
746
  disableStitch: z.optional(z.boolean()).default(false),
807
747
  disableComment: z.optional(z.boolean()).default(false),
808
- });
748
+ }).strict();
809
749
  /**
810
750
  * Send videos to TikTok. TikTok credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/tiktok), not in the request.
811
751
  */
812
752
  export const tiktokDestinationTiktokDestinationSchema = z.object({
813
753
  provider: z.literal("tiktok"),
814
754
  options: z.optional(tiktokDestinationOptionsTiktokDestinationOptionsSchema),
815
- });
755
+ }).strict();
816
756
  /**
817
757
  * Options to control the visibility of videos and privacy features.
818
758
  */
@@ -822,7 +762,7 @@ export const vimeoDestinationPrivacyOptionsVimeoDestinationPrivacyOptionsSchema
822
762
  comments: z.optional(z.enum(["anybody", "nobody", "contacts"])),
823
763
  download: z.optional(z.boolean()),
824
764
  add: z.optional(z.boolean()),
825
- });
765
+ }).strict();
826
766
  export const vimeoDestinationPrivacyOptionsSchema = vimeoDestinationPrivacyOptionsVimeoDestinationPrivacyOptionsSchema;
827
767
  /**
828
768
  * Pass additional options to control how Vimeo publishes video, including name, description and privacy settings.
@@ -832,7 +772,7 @@ export const vimeoDestinationOptionsVimeoDestinationOptionsSchema = z.object({
832
772
  description: z.optional(z.string()),
833
773
  privacy: z.optional(vimeoDestinationPrivacyOptionsVimeoDestinationPrivacyOptionsSchema),
834
774
  folderUri: z.optional(z.string()),
835
- });
775
+ }).strict();
836
776
  export const vimeoDestinationOptionsSchema = vimeoDestinationOptionsVimeoDestinationOptionsSchema;
837
777
  /**
838
778
  * Send videos to [Vimeo](https://shotstack.io/docs/guide/serving-assets/destinations/vimeo/) video hosting and streaming service. Vimeo credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/vimeo), not in the request.
@@ -840,7 +780,7 @@ export const vimeoDestinationOptionsSchema = vimeoDestinationOptionsVimeoDestina
840
780
  export const vimeoDestinationVimeoDestinationSchema = z.object({
841
781
  provider: z.literal("vimeo"),
842
782
  options: z.optional(vimeoDestinationOptionsVimeoDestinationOptionsSchema),
843
- });
783
+ }).strict();
844
784
  export const vimeoDestinationSchema = vimeoDestinationVimeoDestinationSchema;
845
785
  /**
846
786
  * A destination is a location where assets can be sent to for serving or hosting. Videos, images and audio files that are rendered by the [Edit API](#shotstack-edit) and [source](#tocs_source) and [rendition](#tocs_rendition) files generated by the [Ingest API](#shotstack-ingest) can be sent to destinations. You can also fetch a file from any public URL and [transfer](#transfer-asset) it to a destination. A file can be sent to one or more destinations including 3rd party destinations.
@@ -863,14 +803,14 @@ export const destinationsSchema = destinationsDestinationsSchema;
863
803
  export const fliptransformationFlipTransformationSchema = z.object({
864
804
  horizontal: z.optional(z.boolean()),
865
805
  vertical: z.optional(z.boolean()),
866
- });
806
+ }).strict();
867
807
  export const flipTransformationSchema = fliptransformationFlipTransformationSchema;
868
808
  /**
869
809
  * Download a custom font to use with the HTML asset type, using the font name in the CSS or font tag. See our [custom fonts](https://shotstack.io/learn/html-custom-fonts/) getting started guide for more details.
870
810
  */
871
811
  export const fontFontSchema = z.object({
872
812
  src: z.string(),
873
- });
813
+ }).strict();
874
814
  export const fontSchema = fontFontSchema;
875
815
  /**
876
816
  * **Notice: The HtmlAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**
@@ -889,11 +829,11 @@ export const htmlassetHtmlAssetSchema = z.object({
889
829
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
890
830
  return undefined; if (Array.isArray(v))
891
831
  return v; if (typeof v === 'string')
892
- return Number(v); return v; }), z.number().int())),
832
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
893
833
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
894
834
  return undefined; if (Array.isArray(v))
895
835
  return v; if (typeof v === 'string')
896
- return Number(v); return v; }), z.number().int())),
836
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
897
837
  background: z.optional(z.string()),
898
838
  position: z.optional(z.enum([
899
839
  "top",
@@ -906,16 +846,16 @@ export const htmlassetHtmlAssetSchema = z.object({
906
846
  "topLeft",
907
847
  "center",
908
848
  ])),
909
- });
849
+ }).strict();
910
850
  export const htmlAssetSchema = htmlassetHtmlAssetSchema;
911
851
  /**
912
852
  * The ImageAsset is used to create video from images to compose an image. The src must be a publicly accessible URL to an image resource such as a jpg or png file.
913
853
  */
914
854
  export const imageassetImageAssetSchema = z.object({
915
855
  type: z.enum(["image"]),
916
- src: z.string().min(1).regex(/\S/),
856
+ src: z.string().regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").min(1).regex(/\S/),
917
857
  crop: z.optional(cropCropSchema),
918
- });
858
+ }).strict();
919
859
  export const imageAssetSchema = imageassetImageAssetSchema;
920
860
  /**
921
861
  * The ImageToVideoAsset lets you create a video from an image and a text prompt.
@@ -928,9 +868,9 @@ export const imagetovideoassetImageToVideoAssetSchema = z.object({
928
868
  speed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
929
869
  return undefined; if (Array.isArray(v))
930
870
  return v; if (typeof v === 'string')
931
- return Number(v); return v; }), z.number().gte(0).lte(10))),
871
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
932
872
  crop: z.optional(cropCropSchema),
933
- });
873
+ }).strict();
934
874
  export const imageToVideoAssetSchema = imagetovideoassetImageToVideoAssetSchema;
935
875
  /**
936
876
  * Options for the Dolby.io audio enhancement provider.
@@ -947,7 +887,7 @@ export const dolbyEnhancementOptionsDolbyEnhancementOptionsSchema = z.object({
947
887
  "studio",
948
888
  "voice_over",
949
889
  ]),
950
- });
890
+ }).strict();
951
891
  export const dolbyEnhancementOptionsSchema = dolbyEnhancementOptionsDolbyEnhancementOptionsSchema;
952
892
  /**
953
893
  * Dolby.io audio enhancement provider. Credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/dolby), not in the request.
@@ -955,7 +895,7 @@ export const dolbyEnhancementOptionsSchema = dolbyEnhancementOptionsDolbyEnhance
955
895
  export const dolbyEnhancementDolbyEnhancementSchema = z.object({
956
896
  provider: z.string().default("dolby"),
957
897
  options: dolbyEnhancementOptionsDolbyEnhancementOptionsSchema,
958
- });
898
+ }).strict();
959
899
  export const dolbyEnhancementSchema = dolbyEnhancementDolbyEnhancementSchema;
960
900
  /**
961
901
  * An audio enhancement that can be applied to the audio content of a rendition.
@@ -963,18 +903,14 @@ export const dolbyEnhancementSchema = dolbyEnhancementDolbyEnhancementSchema;
963
903
  * <li><a href="#tocs_dolbyenhancement">DolbyEnhancement</a></li>
964
904
  * </ul>
965
905
  */
966
- export const audioEnhancementAudioEnhancementSchema = z
967
- .object({
968
- enhancement: z.literal("dolbyEnhancement_DolbyEnhancement"),
969
- })
970
- .and(dolbyEnhancementDolbyEnhancementSchema);
906
+ export const audioEnhancementAudioEnhancementSchema = dolbyEnhancementDolbyEnhancementSchema.extend({ enhancement: z.literal("dolbyEnhancement_DolbyEnhancement") }).strict();
971
907
  export const audioEnhancementSchema = audioEnhancementAudioEnhancementSchema;
972
908
  /**
973
909
  * Enhancements that can be applied to a rendition. Currently only supports the Dolby audio enhancement.
974
910
  */
975
911
  export const enhancementsEnhancementsSchema = z.object({
976
912
  audio: z.optional(audioEnhancementAudioEnhancementSchema),
977
- });
913
+ }).strict();
978
914
  export const enhancementsSchema = enhancementsEnhancementsSchema;
979
915
  /**
980
916
  * Individual errors returned by the Ingest API.
@@ -983,14 +919,14 @@ export const ingesterrorresponsedataIngestErrorResponseDataSchema = z.object({
983
919
  status: z.string(),
984
920
  title: z.string(),
985
921
  detail: z.string(),
986
- });
922
+ }).strict();
987
923
  export const ingestErrorResponseDataSchema = ingesterrorresponsedataIngestErrorResponseDataSchema;
988
924
  /**
989
925
  * Error response data for validation and other errors returned by the Ingest API.
990
926
  */
991
927
  export const ingesterrorresponseIngestErrorResponseSchema = z.object({
992
928
  errors: z.array(ingesterrorresponsedataIngestErrorResponseDataSchema),
993
- });
929
+ }).strict();
994
930
  export const ingestErrorResponseSchema = ingesterrorresponseIngestErrorResponseSchema;
995
931
  /**
996
932
  * The type of resource (a source) and the newly created source id. Returned with [QueuedSourceResponse](#tocs_queuedsourceresponse).
@@ -998,14 +934,14 @@ export const ingestErrorResponseSchema = ingesterrorresponseIngestErrorResponseS
998
934
  export const queuedsourceresponsedataQueuedSourceResponseDataSchema = z.object({
999
935
  type: z.string(),
1000
936
  id: z.string(),
1001
- });
937
+ }).strict();
1002
938
  export const queuedSourceResponseDataSchema = queuedsourceresponsedataQueuedSourceResponseDataSchema;
1003
939
  /**
1004
940
  * The response returned by the Ingest API [fetch source](#fetch-source) request. Includes the id of the source file. The response follows the [json:api](https://jsonapi.org/) specification.
1005
941
  */
1006
942
  export const queuedsourceresponseQueuedSourceResponseSchema = z.object({
1007
943
  data: queuedsourceresponsedataQueuedSourceResponseDataSchema,
1008
- });
944
+ }).strict();
1009
945
  export const queuedSourceResponseSchema = queuedsourceresponseQueuedSourceResponseSchema;
1010
946
  /**
1011
947
  * The id and attributes of the upload file including the signed URL to send the binary file data to.
@@ -1014,7 +950,7 @@ export const uploadresponseattributesUploadResponseAttributesSchema = z.object({
1014
950
  id: z.string(),
1015
951
  url: z.string(),
1016
952
  expires: z.string(),
1017
- });
953
+ }).strict();
1018
954
  export const uploadResponseAttributesSchema = uploadresponseattributesUploadResponseAttributesSchema;
1019
955
  /**
1020
956
  * The type of resource (an upload), it's id and attributes of the upload request.
@@ -1023,14 +959,14 @@ export const uploadresponsedataUploadResponseDataSchema = z.object({
1023
959
  type: z.string(),
1024
960
  id: z.string(),
1025
961
  attributes: uploadresponseattributesUploadResponseAttributesSchema,
1026
- });
962
+ }).strict();
1027
963
  export const uploadResponseDataSchema = uploadresponsedataUploadResponseDataSchema;
1028
964
  /**
1029
965
  * The response returned by the Ingest API [direct upload](#direct-upload) request. Includes the id of the file and the signed url to send the binary file to. The response follows the [json:api](https://jsonapi.org/) specification.
1030
966
  */
1031
967
  export const uploadresponseUploadResponseSchema = z.object({
1032
968
  data: uploadresponsedataUploadResponseDataSchema,
1033
- });
969
+ }).strict();
1034
970
  export const uploadResponseSchema = uploadresponseUploadResponseSchema;
1035
971
  /**
1036
972
  * 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.
@@ -1039,36 +975,36 @@ export const speedSpeedSchema = z.object({
1039
975
  speed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1040
976
  return undefined; if (Array.isArray(v))
1041
977
  return v; if (typeof v === 'string')
1042
- return Number(v); return v; }), z.number().gte(0).lte(10))),
978
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
1043
979
  preservePitch: z.optional(z.boolean()),
1044
- });
980
+ }).strict();
1045
981
  export const speedSchema = speedSpeedSchema;
1046
982
  /**
1047
983
  * Generate a transcription of the audio in the video. The transcription can be output as a file in SRT or VTT format.
1048
984
  */
1049
985
  export const transcriptionTranscriptionSchema = z.object({
1050
986
  format: z.optional(z.enum(["srt", "vtt"])),
1051
- });
987
+ }).strict();
1052
988
  export const transcriptionSchema = transcriptionTranscriptionSchema;
1053
989
  /**
1054
990
  * The LumaAsset is used to create luma matte masks, transitions and effects between other assets. A luma matte is a grey scale image or animated video where the black areas are transparent and the white areas solid. The luma matte animation should be provided as an mp4 video file. The src must be a publicly accessible URL to the file.
1055
991
  */
1056
992
  export const lumaassetLumaAssetSchema = z.object({
1057
993
  type: z.enum(["luma"]),
1058
- src: z.string().min(1).regex(/\S/),
994
+ src: z.string().regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").min(1).regex(/\S/),
1059
995
  trim: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1060
996
  return undefined; if (Array.isArray(v))
1061
997
  return v; if (typeof v === 'string')
1062
- return Number(v); return v; }), z.number())),
1063
- });
998
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
999
+ }).strict();
1064
1000
  export const lumaAssetSchema = lumaassetLumaAssetSchema;
1065
1001
  /**
1066
1002
  * A merge field consists of a key; `find`, and a value; `replace`. Merge fields can be used to replace placeholders within the JSON edit to create re-usable templates. Placeholders should be a string with double brace delimiters, i.e. `"{{NAME}}"`. A placeholder can be used for any value within the JSON edit.
1067
1003
  */
1068
1004
  export const mergefieldMergeFieldSchema = z.object({
1069
1005
  find: z.string(),
1070
- replace: z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.string(), z.unknown()), z.array(z.unknown())]),
1071
- });
1006
+ replace: z.union([z.string(), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()), z.boolean(), z.null(), z.record(z.string(), z.unknown()), z.array(z.unknown())]),
1007
+ }).strict();
1072
1008
  export const mergeFieldSchema = mergefieldMergeFieldSchema;
1073
1009
  /**
1074
1010
  * 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.
@@ -1077,8 +1013,8 @@ export const posterPosterSchema = z.object({
1077
1013
  capture: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1078
1014
  return undefined; if (Array.isArray(v))
1079
1015
  return v; if (typeof v === 'string')
1080
- return Number(v); return v; }), z.number()),
1081
- });
1016
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())),
1017
+ }).strict();
1082
1018
  export const posterSchema = posterPosterSchema;
1083
1019
  /**
1084
1020
  * 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.
@@ -1087,12 +1023,12 @@ export const rangeRangeSchema = z.object({
1087
1023
  start: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1088
1024
  return undefined; if (Array.isArray(v))
1089
1025
  return v; if (typeof v === 'string')
1090
- return Number(v); return v; }), z.number().gte(0))),
1026
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))),
1091
1027
  length: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1092
1028
  return undefined; if (Array.isArray(v))
1093
1029
  return v; if (typeof v === 'string')
1094
- return Number(v); return v; }), z.number().gte(0))),
1095
- });
1030
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))),
1031
+ }).strict();
1096
1032
  export const rangeSchema = rangeRangeSchema;
1097
1033
  /**
1098
1034
  * The list of asset attributes and their values.
@@ -1108,7 +1044,7 @@ export const assetresponseattributesAssetResponseAttributesSchema = z.object({
1108
1044
  status: z.enum(["importing", "ready", "failed", "deleted"]),
1109
1045
  created: z.optional(z.string()),
1110
1046
  updated: z.optional(z.string()),
1111
- });
1047
+ }).strict();
1112
1048
  export const assetResponseAttributesSchema = assetresponseattributesAssetResponseAttributesSchema;
1113
1049
  /**
1114
1050
  * The type of resource (an asset) and attributes of the asset.
@@ -1116,21 +1052,21 @@ export const assetResponseAttributesSchema = assetresponseattributesAssetRespons
1116
1052
  export const assetresponsedataAssetResponseDataSchema = z.object({
1117
1053
  type: z.string(),
1118
1054
  attributes: assetresponseattributesAssetResponseAttributesSchema,
1119
- });
1055
+ }).strict();
1120
1056
  export const assetResponseDataSchema = assetresponsedataAssetResponseDataSchema;
1121
1057
  /**
1122
1058
  * The response returned by the Serve API [get asset by render id](#get-asset-by-render-id) request. The response is an array of asset resources, including video, image, audio, thumbnail and poster image. The response follows the [json:api](https://jsonapi.org/) specification.
1123
1059
  */
1124
1060
  export const assetrenderresponseAssetRenderResponseSchema = z.object({
1125
1061
  data: z.array(assetresponsedataAssetResponseDataSchema),
1126
- });
1062
+ }).strict();
1127
1063
  export const assetRenderResponseSchema = assetrenderresponseAssetRenderResponseSchema;
1128
1064
  /**
1129
1065
  * The response returned by the Serve API [get asset](#get-asset) request. Includes details of a hosted video, image, audio file, thumbnail or poster image. The response follows the [json:api](https://jsonapi.org/) specification.
1130
1066
  */
1131
1067
  export const assetresponseAssetResponseSchema = z.object({
1132
1068
  data: assetresponsedataAssetResponseDataSchema,
1133
- });
1069
+ }).strict();
1134
1070
  export const assetResponseSchema = assetresponseAssetResponseSchema;
1135
1071
  /**
1136
1072
  * The response received after a [probe request](#inspect-media) is submitted. The probe requests returns data from FFprobe formatted as JSON.
@@ -1139,7 +1075,7 @@ export const proberesponseProbeResponseSchema = z.object({
1139
1075
  success: z.boolean(),
1140
1076
  message: z.string(),
1141
1077
  response: z.record(z.string(), z.unknown()),
1142
- });
1078
+ }).strict();
1143
1079
  export const probeResponseSchema = proberesponseProbeResponseSchema;
1144
1080
  /**
1145
1081
  * The response data returned with the [QueuedResponse](#tocs_queuedresponse).
@@ -1147,7 +1083,7 @@ export const probeResponseSchema = proberesponseProbeResponseSchema;
1147
1083
  export const queuedresponsedataQueuedResponseDataSchema = z.object({
1148
1084
  message: z.string(),
1149
1085
  id: z.string(),
1150
- });
1086
+ }).strict();
1151
1087
  export const queuedResponseDataSchema = queuedresponsedataQueuedResponseDataSchema;
1152
1088
  /**
1153
1089
  * The response received after a [render request](#render-asset) or [template render](#render-template) is submitted. The render task is queued for rendering and a unique render id is returned.
@@ -1156,7 +1092,7 @@ export const queuedresponseQueuedResponseSchema = z.object({
1156
1092
  success: z.boolean(),
1157
1093
  message: z.string(),
1158
1094
  response: queuedresponsedataQueuedResponseDataSchema,
1159
- });
1095
+ }).strict();
1160
1096
  export const queuedResponseSchema = queuedresponseQueuedResponseSchema;
1161
1097
  /**
1162
1098
  * The individual template item returned with the [TemplateListResponseData](#tocs_templatelistresponsedata) templates list.
@@ -1166,7 +1102,7 @@ export const templatelistresponseitemTemplateListResponseItemSchema = z.object({
1166
1102
  name: z.string(),
1167
1103
  created: z.optional(z.string()),
1168
1104
  updated: z.optional(z.string()),
1169
- });
1105
+ }).strict();
1170
1106
  export const templateListResponseItemSchema = templatelistresponseitemTemplateListResponseItemSchema;
1171
1107
  /**
1172
1108
  * The response data returned with the [TemplateListResponse](#tocs_templatelistresponse).
@@ -1174,7 +1110,7 @@ export const templateListResponseItemSchema = templatelistresponseitemTemplateLi
1174
1110
  export const templatelistresponsedataTemplateListResponseDataSchema = z.object({
1175
1111
  owner: z.string(),
1176
1112
  templates: z.array(templatelistresponseitemTemplateListResponseItemSchema),
1177
- });
1113
+ }).strict();
1178
1114
  export const templateListResponseDataSchema = templatelistresponsedataTemplateListResponseDataSchema;
1179
1115
  /**
1180
1116
  * A list of previously saved templates.
@@ -1183,7 +1119,7 @@ export const templatelistresponseTemplateListResponseSchema = z.object({
1183
1119
  success: z.boolean(),
1184
1120
  message: z.string(),
1185
1121
  response: templatelistresponsedataTemplateListResponseDataSchema,
1186
- });
1122
+ }).strict();
1187
1123
  export const templateListResponseSchema = templatelistresponseTemplateListResponseSchema;
1188
1124
  /**
1189
1125
  * The response data returned with the [TemplateResponse](#tocs_templateresponse).
@@ -1191,7 +1127,7 @@ export const templateListResponseSchema = templatelistresponseTemplateListRespon
1191
1127
  export const templateresponsedataTemplateResponseDataSchema = z.object({
1192
1128
  message: z.string(),
1193
1129
  id: z.string(),
1194
- });
1130
+ }).strict();
1195
1131
  export const templateResponseDataSchema = templateresponsedataTemplateResponseDataSchema;
1196
1132
  /**
1197
1133
  * The response received after a [template](#create-template) is submitted. The template is saved and a unique template id is returned.
@@ -1200,7 +1136,7 @@ export const templateresponseTemplateResponseSchema = z.object({
1200
1136
  success: z.boolean(),
1201
1137
  message: z.string(),
1202
1138
  response: templateresponsedataTemplateResponseDataSchema,
1203
- });
1139
+ }).strict();
1204
1140
  export const templateResponseSchema = templateresponseTemplateResponseSchema;
1205
1141
  /**
1206
1142
  * Text alignment properties (horizontal and vertical).
@@ -1208,7 +1144,7 @@ export const templateResponseSchema = templateresponseTemplateResponseSchema;
1208
1144
  export const richtextpropertiesRichTextAlignmentSchema = z.object({
1209
1145
  horizontal: z.optional(z.enum(["left", "center", "right"])),
1210
1146
  vertical: z.optional(z.enum(["top", "middle", "bottom"])),
1211
- });
1147
+ }).strict();
1212
1148
  export const richTextAlignmentSchema = richtextpropertiesRichTextAlignmentSchema;
1213
1149
  /**
1214
1150
  * Animation properties for text entrance effects.
@@ -1225,10 +1161,10 @@ export const richtextpropertiesRichTextAnimationSchema = z.object({
1225
1161
  duration: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1226
1162
  return undefined; if (Array.isArray(v))
1227
1163
  return v; if (typeof v === 'string')
1228
- return Number(v); return v; }), z.number().gte(0.1).lte(30))),
1164
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0.1).lte(30)))),
1229
1165
  style: z.optional(z.enum(["character", "word"])),
1230
1166
  direction: z.optional(z.enum(["left", "right", "up", "down"])),
1231
- });
1167
+ }).strict();
1232
1168
  export const richTextAnimationSchema = richtextpropertiesRichTextAnimationSchema;
1233
1169
  /**
1234
1170
  * Background styling properties for the text bounding box.
@@ -1238,12 +1174,12 @@ export const richtextpropertiesRichTextBackgroundSchema = z.object({
1238
1174
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1239
1175
  return undefined; if (Array.isArray(v))
1240
1176
  return v; if (typeof v === 'string')
1241
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1177
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1242
1178
  borderRadius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1243
1179
  return undefined; if (Array.isArray(v))
1244
1180
  return v; if (typeof v === 'string')
1245
- return Number(v); return v; }), z.number().gte(0))).default(0),
1246
- });
1181
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1182
+ }).strict();
1247
1183
  export const richTextBackgroundSchema = richtextpropertiesRichTextBackgroundSchema;
1248
1184
  /**
1249
1185
  * Border styling properties for the text bounding box.
@@ -1252,17 +1188,17 @@ export const richtextpropertiesRichTextBorderSchema = z.object({
1252
1188
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1253
1189
  return undefined; if (Array.isArray(v))
1254
1190
  return v; if (typeof v === 'string')
1255
- return Number(v); return v; }), z.number().gte(0))).default(0),
1191
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1256
1192
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1257
1193
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1258
1194
  return undefined; if (Array.isArray(v))
1259
1195
  return v; if (typeof v === 'string')
1260
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1196
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1261
1197
  radius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1262
1198
  return undefined; if (Array.isArray(v))
1263
1199
  return v; if (typeof v === 'string')
1264
- return Number(v); return v; }), z.number().gte(0))).default(0),
1265
- });
1200
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1201
+ }).strict();
1266
1202
  /**
1267
1203
  * Gradient properties for text fill.
1268
1204
  */
@@ -1271,17 +1207,17 @@ export const richtextpropertiesRichTextGradientSchema = z.object({
1271
1207
  angle: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1272
1208
  return undefined; if (Array.isArray(v))
1273
1209
  return v; if (typeof v === 'string')
1274
- return Number(v); return v; }), z.number().gte(0).lte(360))).default(0),
1210
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(360)))).default(0),
1275
1211
  stops: z
1276
1212
  .array(z.object({
1277
1213
  offset: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1278
1214
  return undefined; if (Array.isArray(v))
1279
1215
  return v; if (typeof v === 'string')
1280
- return Number(v); return v; }), z.number().gte(0).lte(1)),
1216
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))),
1281
1217
  color: z.string().regex(/^#[A-Fa-f0-9]{6}$/),
1282
1218
  }))
1283
1219
  .min(2),
1284
- });
1220
+ }).strict();
1285
1221
  export const richTextGradientSchema = richtextpropertiesRichTextGradientSchema;
1286
1222
  /**
1287
1223
  * Padding properties for individual sides of the text bounding box.
@@ -1290,20 +1226,20 @@ export const richtextpropertiesRichTextPaddingSchema = z.object({
1290
1226
  top: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1291
1227
  return undefined; if (Array.isArray(v))
1292
1228
  return v; if (typeof v === 'string')
1293
- return Number(v); return v; }), z.number().gte(0))).default(0),
1229
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1294
1230
  right: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1295
1231
  return undefined; if (Array.isArray(v))
1296
1232
  return v; if (typeof v === 'string')
1297
- return Number(v); return v; }), z.number().gte(0))).default(0),
1233
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1298
1234
  bottom: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1299
1235
  return undefined; if (Array.isArray(v))
1300
1236
  return v; if (typeof v === 'string')
1301
- return Number(v); return v; }), z.number().gte(0))).default(0),
1237
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1302
1238
  left: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1303
1239
  return undefined; if (Array.isArray(v))
1304
1240
  return v; if (typeof v === 'string')
1305
- return Number(v); return v; }), z.number().gte(0))).default(0),
1306
- });
1241
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1242
+ }).strict();
1307
1243
  /**
1308
1244
  * Text shadow properties.
1309
1245
  */
@@ -1311,21 +1247,21 @@ export const richtextpropertiesRichTextShadowSchema = z.object({
1311
1247
  offsetX: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1312
1248
  return undefined; if (Array.isArray(v))
1313
1249
  return v; if (typeof v === 'string')
1314
- return Number(v); return v; }), z.number())).default(0),
1250
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1315
1251
  offsetY: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1316
1252
  return undefined; if (Array.isArray(v))
1317
1253
  return v; if (typeof v === 'string')
1318
- return Number(v); return v; }), z.number())).default(0),
1254
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1319
1255
  blur: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1320
1256
  return undefined; if (Array.isArray(v))
1321
1257
  return v; if (typeof v === 'string')
1322
- return Number(v); return v; }), z.number().gte(0))).default(0),
1258
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1323
1259
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1324
1260
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1325
1261
  return undefined; if (Array.isArray(v))
1326
1262
  return v; if (typeof v === 'string')
1327
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(0.5),
1328
- });
1263
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(0.5),
1264
+ }).strict();
1329
1265
  export const richTextShadowSchema = richtextpropertiesRichTextShadowSchema;
1330
1266
  /**
1331
1267
  * Text stroke (outline) properties.
@@ -1334,13 +1270,13 @@ export const richtextpropertiesRichTextStrokeSchema = z.object({
1334
1270
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1335
1271
  return undefined; if (Array.isArray(v))
1336
1272
  return v; if (typeof v === 'string')
1337
- return Number(v); return v; }), z.number().gte(0))).default(0),
1273
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1338
1274
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1339
1275
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1340
1276
  return undefined; if (Array.isArray(v))
1341
1277
  return v; if (typeof v === 'string')
1342
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1343
- });
1278
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1279
+ }).strict();
1344
1280
  export const richTextStrokeSchema = richtextpropertiesRichTextStrokeSchema;
1345
1281
  /**
1346
1282
  * Font properties for rich text.
@@ -1350,16 +1286,16 @@ export const richtextpropertiesRichTextFontSchema = z.object({
1350
1286
  size: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1351
1287
  return undefined; if (Array.isArray(v))
1352
1288
  return v; if (typeof v === 'string')
1353
- return Number(v); return v; }), z.number().int().gte(1).lte(500))).default(24),
1289
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(500)))).default(24),
1354
1290
  weight: z.optional(z.unknown()).default("400"),
1355
1291
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#ffffff"),
1356
1292
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1357
1293
  return undefined; if (Array.isArray(v))
1358
1294
  return v; if (typeof v === 'string')
1359
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1295
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1360
1296
  background: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1361
1297
  stroke: z.optional(richtextpropertiesRichTextStrokeSchema),
1362
- });
1298
+ }).strict();
1363
1299
  export const richTextFontSchema = richtextpropertiesRichTextFontSchema;
1364
1300
  /**
1365
1301
  * Text style properties including spacing, line height, and transformations.
@@ -1368,15 +1304,15 @@ export const richtextpropertiesRichTextStyleSchema = z.object({
1368
1304
  letterSpacing: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1369
1305
  return undefined; if (Array.isArray(v))
1370
1306
  return v; if (typeof v === 'string')
1371
- return Number(v); return v; }), z.number())).default(0),
1307
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1372
1308
  lineHeight: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1373
1309
  return undefined; if (Array.isArray(v))
1374
1310
  return v; if (typeof v === 'string')
1375
- return Number(v); return v; }), z.number().gte(0).lte(10))).default(1.2),
1311
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))).default(1.2),
1376
1312
  textTransform: z.optional(z.enum(["none", "uppercase", "lowercase", "capitalize"])),
1377
1313
  textDecoration: z.optional(z.enum(["none", "underline", "line-through"])),
1378
1314
  gradient: z.optional(richtextpropertiesRichTextGradientSchema),
1379
- });
1315
+ }).strict();
1380
1316
  export const richTextStyleSchema = richtextpropertiesRichTextStyleSchema;
1381
1317
  /**
1382
1318
  * The RichTextAsset provides advanced text rendering with support for custom fonts, gradients, shadows, strokes,
@@ -1394,10 +1330,10 @@ export const richtextassetRichTextAssetSchema = z.object({
1394
1330
  padding: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1395
1331
  return undefined; if (Array.isArray(v))
1396
1332
  return v; if (typeof v === 'string')
1397
- return Number(v); return v; }), z.number().gte(0)), richtextpropertiesRichTextPaddingSchema])),
1333
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0))), richtextpropertiesRichTextPaddingSchema])),
1398
1334
  align: z.optional(richtextpropertiesRichTextAlignmentSchema),
1399
1335
  animation: z.optional(richtextpropertiesRichTextAnimationSchema),
1400
- });
1336
+ }).strict();
1401
1337
  export const richTextAssetSchema = richtextassetRichTextAssetSchema;
1402
1338
  /**
1403
1339
  * The transfer request attributes inlcudling the user specified ID and status. Returned with [TransferResponseData](#tocs_transferresponsedata).
@@ -1407,7 +1343,7 @@ export const transferresponseattributesTransferResponseAttributesSchema = z.obje
1407
1343
  owner: z.optional(z.string()),
1408
1344
  status: z.optional(z.enum(["queued", "failed"])),
1409
1345
  created: z.optional(z.string()),
1410
- });
1346
+ }).strict();
1411
1347
  export const transferResponseAttributesSchema = transferresponseattributesTransferResponseAttributesSchema;
1412
1348
  /**
1413
1349
  * The type of resource (an asset) and the transfer attributes. Returned with [TransferResponse](#tocs_transferresponse).
@@ -1415,14 +1351,14 @@ export const transferResponseAttributesSchema = transferresponseattributesTransf
1415
1351
  export const transferresponsedataTransferResponseDataSchema = z.object({
1416
1352
  type: z.optional(z.string()),
1417
1353
  attributes: z.optional(transferresponseattributesTransferResponseAttributesSchema),
1418
- });
1354
+ }).strict();
1419
1355
  export const transferResponseDataSchema = transferresponsedataTransferResponseDataSchema;
1420
1356
  /**
1421
1357
  * The response returned by the Serve API [transfer asset](#transfer-asset) request. The response includes the ID and transfer status. The response follows the [json:api](https://jsonapi.org/) specification.
1422
1358
  */
1423
1359
  export const transferresponseTransferResponseSchema = z.object({
1424
1360
  data: transferresponsedataTransferResponseDataSchema,
1425
- });
1361
+ }).strict();
1426
1362
  export const transferResponseSchema = transferresponseTransferResponseSchema;
1427
1363
  /**
1428
1364
  * The asset URL to fetch and transfer to a destination.
@@ -1431,7 +1367,7 @@ export const transferTransferSchema = z.object({
1431
1367
  url: z.string(),
1432
1368
  id: z.string(),
1433
1369
  destinations: z.array(destinationsDestinationsSchema),
1434
- });
1370
+ }).strict();
1435
1371
  export const transferSchema = transferTransferSchema;
1436
1372
  /**
1437
1373
  * The ShapeAsset is used to add shapes to a video. The shape can be styled with a fill and a stroke.
@@ -1444,56 +1380,56 @@ export const shapeassetShapeAssetSchema = z.object({
1444
1380
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1445
1381
  return undefined; if (Array.isArray(v))
1446
1382
  return v; if (typeof v === 'string')
1447
- return Number(v); return v; }), z.number().int())),
1383
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1448
1384
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1449
1385
  return undefined; if (Array.isArray(v))
1450
1386
  return v; if (typeof v === 'string')
1451
- return Number(v); return v; }), z.number().int())),
1387
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1452
1388
  fill: z.optional(z.object({
1453
1389
  color: z.optional(z.string()),
1454
1390
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1455
1391
  return undefined; if (Array.isArray(v))
1456
1392
  return v; if (typeof v === 'string')
1457
- return Number(v); return v; }), z.number())),
1393
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1458
1394
  })),
1459
1395
  stroke: z.optional(z.object({
1460
1396
  color: z.optional(z.string()),
1461
1397
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1462
1398
  return undefined; if (Array.isArray(v))
1463
1399
  return v; if (typeof v === 'string')
1464
- return Number(v); return v; }), z.number())),
1400
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1465
1401
  })),
1466
1402
  rectangle: z.optional(z.object({
1467
1403
  width: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1468
1404
  return undefined; if (Array.isArray(v))
1469
1405
  return v; if (typeof v === 'string')
1470
- return Number(v); return v; }), z.number().int()),
1406
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
1471
1407
  height: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1472
1408
  return undefined; if (Array.isArray(v))
1473
1409
  return v; if (typeof v === 'string')
1474
- return Number(v); return v; }), z.number().int()),
1410
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
1475
1411
  cornerRadius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1476
1412
  return undefined; if (Array.isArray(v))
1477
1413
  return v; if (typeof v === 'string')
1478
- return Number(v); return v; }), z.number().int())),
1414
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1479
1415
  })),
1480
1416
  circle: z.optional(z.object({
1481
1417
  radius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1482
1418
  return undefined; if (Array.isArray(v))
1483
1419
  return v; if (typeof v === 'string')
1484
- return Number(v); return v; }), z.number().int()),
1420
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
1485
1421
  })),
1486
1422
  line: z.optional(z.object({
1487
1423
  length: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1488
1424
  return undefined; if (Array.isArray(v))
1489
1425
  return v; if (typeof v === 'string')
1490
- return Number(v); return v; }), z.number().int()),
1426
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
1491
1427
  thickness: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1492
1428
  return undefined; if (Array.isArray(v))
1493
1429
  return v; if (typeof v === 'string')
1494
- return Number(v); return v; }), z.number().int()),
1430
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int())),
1495
1431
  })),
1496
- });
1432
+ }).strict();
1497
1433
  export const shapeAssetSchema = shapeassetShapeAssetSchema;
1498
1434
  /**
1499
1435
  * 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.
@@ -1502,12 +1438,12 @@ export const sizeSizeSchema = z.object({
1502
1438
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1503
1439
  return undefined; if (Array.isArray(v))
1504
1440
  return v; if (typeof v === 'string')
1505
- return Number(v); return v; }), z.number().int().gte(1).lte(4096))),
1441
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(4096)))),
1506
1442
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1507
1443
  return undefined; if (Array.isArray(v))
1508
1444
  return v; if (typeof v === 'string')
1509
- return Number(v); return v; }), z.number().int().gte(1).lte(4096))),
1510
- });
1445
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(4096)))),
1446
+ }).strict();
1511
1447
  export const sizeSchema = sizeSizeSchema;
1512
1448
  /**
1513
1449
  * A rendition is a new output file that is generated from the source. The rendition can be encoded to a different format and have transformations applied to it such as resizing, cropping, etc...
@@ -1536,7 +1472,7 @@ export const renditionRenditionSchema = z.object({
1536
1472
  quality: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1537
1473
  return undefined; if (Array.isArray(v))
1538
1474
  return v; if (typeof v === 'string')
1539
- return Number(v); return v; }), z.number().int().gte(1).lte(100))),
1475
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(100)))),
1540
1476
  fps: z.optional(z.union([
1541
1477
  z.literal(12),
1542
1478
  z.literal(15),
@@ -1554,12 +1490,12 @@ export const renditionRenditionSchema = z.object({
1554
1490
  keyframeInterval: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1555
1491
  return undefined; if (Array.isArray(v))
1556
1492
  return v; if (typeof v === 'string')
1557
- return Number(v); return v; }), z.number().int().gte(1).lte(300))),
1493
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(300)))),
1558
1494
  fixOffset: z.optional(z.boolean()),
1559
1495
  fixRotation: z.optional(z.boolean()),
1560
1496
  enhance: z.optional(enhancementsEnhancementsSchema),
1561
1497
  filename: z.optional(z.string()),
1562
- });
1498
+ }).strict();
1563
1499
  export const renditionSchema = renditionRenditionSchema;
1564
1500
  /**
1565
1501
  * The output renditions and transformations that should be generated from the source file.
@@ -1567,7 +1503,7 @@ export const renditionSchema = renditionRenditionSchema;
1567
1503
  export const outputsOutputsSchema = z.object({
1568
1504
  renditions: z.optional(z.array(renditionRenditionSchema)),
1569
1505
  transcription: z.optional(transcriptionTranscriptionSchema),
1570
- });
1506
+ }).strict();
1571
1507
  export const outputsSchema = outputsOutputsSchema;
1572
1508
  /**
1573
1509
  * The id and attributes of the generated rendition file.
@@ -1586,32 +1522,32 @@ export const renditionresponseattributesRenditionResponseAttributesSchema = z.ob
1586
1522
  executionTime: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1587
1523
  return undefined; if (Array.isArray(v))
1588
1524
  return v; if (typeof v === 'string')
1589
- return Number(v); return v; }), z.number())),
1525
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1590
1526
  transformation: z.optional(renditionRenditionSchema),
1591
1527
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1592
1528
  return undefined; if (Array.isArray(v))
1593
1529
  return v; if (typeof v === 'string')
1594
- return Number(v); return v; }), z.number().int())),
1530
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1595
1531
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1596
1532
  return undefined; if (Array.isArray(v))
1597
1533
  return v; if (typeof v === 'string')
1598
- return Number(v); return v; }), z.number().int())),
1534
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1599
1535
  duration: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1600
1536
  return undefined; if (Array.isArray(v))
1601
1537
  return v; if (typeof v === 'string')
1602
- return Number(v); return v; }), z.number())),
1538
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1603
1539
  fps: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1604
1540
  return undefined; if (Array.isArray(v))
1605
1541
  return v; if (typeof v === 'string')
1606
- return Number(v); return v; }), z.number())),
1607
- });
1542
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1543
+ }).strict();
1608
1544
  export const renditionResponseAttributesSchema = renditionresponseattributesRenditionResponseAttributesSchema;
1609
1545
  /**
1610
1546
  * The list of outputs generated from the source file. Currently supports renditions which are versions of the source file with different transformations applied.
1611
1547
  */
1612
1548
  export const outputsresponseOutputsResponseSchema = z.object({
1613
1549
  renditions: z.optional(z.array(renditionresponseattributesRenditionResponseAttributesSchema)),
1614
- });
1550
+ }).strict();
1615
1551
  export const outputsResponseSchema = outputsresponseOutputsResponseSchema;
1616
1552
  /**
1617
1553
  * The id and attributes of the source file.
@@ -1633,22 +1569,22 @@ export const sourceresponseattributesSourceResponseAttributesSchema = z.object({
1633
1569
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1634
1570
  return undefined; if (Array.isArray(v))
1635
1571
  return v; if (typeof v === 'string')
1636
- return Number(v); return v; }), z.number().int())),
1572
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1637
1573
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1638
1574
  return undefined; if (Array.isArray(v))
1639
1575
  return v; if (typeof v === 'string')
1640
- return Number(v); return v; }), z.number().int())),
1576
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
1641
1577
  duration: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1642
1578
  return undefined; if (Array.isArray(v))
1643
1579
  return v; if (typeof v === 'string')
1644
- return Number(v); return v; }), z.number())),
1580
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1645
1581
  fps: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1646
1582
  return undefined; if (Array.isArray(v))
1647
1583
  return v; if (typeof v === 'string')
1648
- return Number(v); return v; }), z.number())),
1584
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1649
1585
  created: z.optional(z.string()),
1650
1586
  updated: z.optional(z.string()),
1651
- });
1587
+ }).strict();
1652
1588
  export const sourceResponseAttributesSchema = sourceresponseattributesSourceResponseAttributesSchema;
1653
1589
  /**
1654
1590
  * The type of resource (a source), it's id and attributes of the source file.
@@ -1657,21 +1593,21 @@ export const sourceresponsedataSourceResponseDataSchema = z.object({
1657
1593
  type: z.string(),
1658
1594
  id: z.string(),
1659
1595
  attributes: sourceresponseattributesSourceResponseAttributesSchema,
1660
- });
1596
+ }).strict();
1661
1597
  export const sourceResponseDataSchema = sourceresponsedataSourceResponseDataSchema;
1662
1598
  /**
1663
1599
  * A list of all ingested source files fetched or uploaded to a users account.
1664
1600
  */
1665
1601
  export const sourcelistresponseSourceListResponseSchema = z.object({
1666
1602
  data: z.array(sourceresponsedataSourceResponseDataSchema),
1667
- });
1603
+ }).strict();
1668
1604
  export const sourceListResponseSchema = sourcelistresponseSourceListResponseSchema;
1669
1605
  /**
1670
1606
  * The response returned by the Ingest API [get source](#get-source) request. Includes details of the ingested source file. The response follows the [json:api](https://jsonapi.org/) specification.
1671
1607
  */
1672
1608
  export const sourceresponseSourceResponseSchema = z.object({
1673
1609
  data: sourceresponsedataSourceResponseDataSchema,
1674
- });
1610
+ }).strict();
1675
1611
  export const sourceResponseSchema = sourceresponseSourceResponseSchema;
1676
1612
  /**
1677
1613
  * The details of the file to be ingested and any transformations to be applied. Once the source file has been ingested, new renditions can be created from it. The renditions are specified in the **outputs** property.
@@ -1682,7 +1618,7 @@ export const sourceSourceSchema = z.object({
1682
1618
  outputs: z.optional(outputsOutputsSchema),
1683
1619
  destinations: z.optional(destinationsDestinationsSchema),
1684
1620
  callback: z.optional(z.string()),
1685
- });
1621
+ }).strict();
1686
1622
  export const sourceSchema = sourceSourceSchema;
1687
1623
  /**
1688
1624
  * A music or audio file in mp3 format that plays for the duration of the rendered video or the length of the audio file, which ever is shortest.
@@ -1693,8 +1629,8 @@ export const soundtrackSoundtrackSchema = z.object({
1693
1629
  volume: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1694
1630
  return undefined; if (Array.isArray(v))
1695
1631
  return v; if (typeof v === 'string')
1696
- return Number(v); return v; }), z.number())),
1697
- });
1632
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
1633
+ }).strict();
1698
1634
  export const soundtrackSchema = soundtrackSoundtrackSchema;
1699
1635
  /**
1700
1636
  * A color stop in a gradient. Each stop defines a color at a specific position
@@ -1705,9 +1641,9 @@ export const svgpropertiesSvgGradientStopSchema = z.object({
1705
1641
  offset: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1706
1642
  return undefined; if (Array.isArray(v))
1707
1643
  return v; if (typeof v === 'string')
1708
- return Number(v); return v; }), z.number().gte(0).lte(1)),
1644
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))),
1709
1645
  color: z.string().regex(/^#[A-Fa-f0-9]{6}$/),
1710
- });
1646
+ }).strict();
1711
1647
  export const svgGradientStopSchema = svgpropertiesSvgGradientStopSchema;
1712
1648
  /**
1713
1649
  * A linear gradient fill that transitions colors along a straight line.
@@ -1719,13 +1655,13 @@ export const svgpropertiesSvgLinearGradientFillSchema = z.object({
1719
1655
  angle: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1720
1656
  return undefined; if (Array.isArray(v))
1721
1657
  return v; if (typeof v === 'string')
1722
- return Number(v); return v; }), z.number().gte(0).lte(360))).default(0),
1658
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(360)))).default(0),
1723
1659
  stops: z.array(svgpropertiesSvgGradientStopSchema).min(2),
1724
1660
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1725
1661
  return undefined; if (Array.isArray(v))
1726
1662
  return v; if (typeof v === 'string')
1727
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1728
- });
1663
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1664
+ }).strict();
1729
1665
  export const svgLinearGradientFillSchema = svgpropertiesSvgLinearGradientFillSchema;
1730
1666
  /**
1731
1667
  * A radial gradient fill that transitions colors radiating outward from a center point.
@@ -1738,8 +1674,8 @@ export const svgpropertiesSvgRadialGradientFillSchema = z.object({
1738
1674
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1739
1675
  return undefined; if (Array.isArray(v))
1740
1676
  return v; if (typeof v === 'string')
1741
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1742
- });
1677
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1678
+ }).strict();
1743
1679
  export const svgRadialGradientFillSchema = svgpropertiesSvgRadialGradientFillSchema;
1744
1680
  /**
1745
1681
  * Drop shadow properties for SVG shapes. Creates a shadow effect behind the shape.
@@ -1749,21 +1685,21 @@ export const svgpropertiesSvgShadowSchema = z.object({
1749
1685
  offsetX: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1750
1686
  return undefined; if (Array.isArray(v))
1751
1687
  return v; if (typeof v === 'string')
1752
- return Number(v); return v; }), z.number())).default(0),
1688
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1753
1689
  offsetY: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1754
1690
  return undefined; if (Array.isArray(v))
1755
1691
  return v; if (typeof v === 'string')
1756
- return Number(v); return v; }), z.number())).default(0),
1692
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1757
1693
  blur: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1758
1694
  return undefined; if (Array.isArray(v))
1759
1695
  return v; if (typeof v === 'string')
1760
- return Number(v); return v; }), z.number().gte(0))).default(0),
1696
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))).default(0),
1761
1697
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1762
1698
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1763
1699
  return undefined; if (Array.isArray(v))
1764
1700
  return v; if (typeof v === 'string')
1765
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(0.5),
1766
- });
1701
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(0.5),
1702
+ }).strict();
1767
1703
  export const svgShadowSchema = svgpropertiesSvgShadowSchema;
1768
1704
  /**
1769
1705
  * A solid color fill for SVG shapes.
@@ -1777,8 +1713,8 @@ export const svgpropertiesSvgSolidFillSchema = z.object({
1777
1713
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1778
1714
  return undefined; if (Array.isArray(v))
1779
1715
  return v; if (typeof v === 'string')
1780
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1781
- });
1716
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1717
+ }).strict();
1782
1718
  export const svgSolidFillSchema = svgpropertiesSvgSolidFillSchema;
1783
1719
  /**
1784
1720
  * Fill properties for SVG shapes. Supports solid colors and gradients.
@@ -1801,22 +1737,22 @@ export const svgpropertiesSvgStrokeSchema = z.object({
1801
1737
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1802
1738
  return undefined; if (Array.isArray(v))
1803
1739
  return v; if (typeof v === 'string')
1804
- return Number(v); return v; }), z.number().gte(0).lte(100))).default(1),
1740
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(100)))).default(1),
1805
1741
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1806
1742
  return undefined; if (Array.isArray(v))
1807
1743
  return v; if (typeof v === 'string')
1808
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(1),
1744
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
1809
1745
  lineCap: z.optional(z.enum(["butt", "round", "square"])),
1810
1746
  lineJoin: z.optional(z.enum(["miter", "round", "bevel"])),
1811
1747
  dashArray: z.optional(z.array(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1812
1748
  return undefined; if (Array.isArray(v))
1813
1749
  return v; if (typeof v === 'string')
1814
- return Number(v); return v; }), z.number().gte(0)))),
1750
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0))))),
1815
1751
  dashOffset: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1816
1752
  return undefined; if (Array.isArray(v))
1817
1753
  return v; if (typeof v === 'string')
1818
- return Number(v); return v; }), z.number())).default(0),
1819
- });
1754
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1755
+ }).strict();
1820
1756
  export const svgStrokeSchema = svgpropertiesSvgStrokeSchema;
1821
1757
  /**
1822
1758
  * Transformation properties for positioning, rotating, and scaling SVG shapes.
@@ -1826,28 +1762,28 @@ export const svgpropertiesSvgTransformSchema = z.object({
1826
1762
  x: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1827
1763
  return undefined; if (Array.isArray(v))
1828
1764
  return v; if (typeof v === 'string')
1829
- return Number(v); return v; }), z.number())).default(0),
1765
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1830
1766
  y: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1831
1767
  return undefined; if (Array.isArray(v))
1832
1768
  return v; if (typeof v === 'string')
1833
- return Number(v); return v; }), z.number())).default(0),
1769
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))).default(0),
1834
1770
  rotation: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1835
1771
  return undefined; if (Array.isArray(v))
1836
1772
  return v; if (typeof v === 'string')
1837
- return Number(v); return v; }), z.number().gte(-360).lte(360))).default(0),
1773
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-360).lte(360)))).default(0),
1838
1774
  scale: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1839
1775
  return undefined; if (Array.isArray(v))
1840
1776
  return v; if (typeof v === 'string')
1841
- return Number(v); return v; }), z.number().gte(0.01).lte(100))).default(1),
1777
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0.01).lte(100)))).default(1),
1842
1778
  originX: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1843
1779
  return undefined; if (Array.isArray(v))
1844
1780
  return v; if (typeof v === 'string')
1845
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(0.5),
1781
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(0.5),
1846
1782
  originY: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1847
1783
  return undefined; if (Array.isArray(v))
1848
1784
  return v; if (typeof v === 'string')
1849
- return Number(v); return v; }), z.number().gte(0).lte(1))).default(0.5),
1850
- });
1785
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))).default(0.5),
1786
+ }).strict();
1851
1787
  export const svgTransformSchema = svgpropertiesSvgTransformSchema;
1852
1788
  /**
1853
1789
  * An arrow shape pointing to the right by default.
@@ -1859,20 +1795,20 @@ export const svgshapesSvgArrowShapeSchema = z.object({
1859
1795
  length: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1860
1796
  return undefined; if (Array.isArray(v))
1861
1797
  return v; if (typeof v === 'string')
1862
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1798
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
1863
1799
  headWidth: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1864
1800
  return undefined; if (Array.isArray(v))
1865
1801
  return v; if (typeof v === 'string')
1866
- return Number(v); return v; }), z.number().gte(1).lte(1000)),
1802
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(1000))),
1867
1803
  headLength: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1868
1804
  return undefined; if (Array.isArray(v))
1869
1805
  return v; if (typeof v === 'string')
1870
- return Number(v); return v; }), z.number().gte(1).lte(1000)),
1806
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(1000))),
1871
1807
  shaftWidth: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1872
1808
  return undefined; if (Array.isArray(v))
1873
1809
  return v; if (typeof v === 'string')
1874
- return Number(v); return v; }), z.number().gte(1).lte(1000)),
1875
- });
1810
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(1000))),
1811
+ }).strict();
1876
1812
  export const svgArrowShapeSchema = svgshapesSvgArrowShapeSchema;
1877
1813
  /**
1878
1814
  * A perfect circle shape defined by its radius.
@@ -1884,8 +1820,8 @@ export const svgshapesSvgCircleShapeSchema = z.object({
1884
1820
  radius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1885
1821
  return undefined; if (Array.isArray(v))
1886
1822
  return v; if (typeof v === 'string')
1887
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1888
- });
1823
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
1824
+ }).strict();
1889
1825
  export const svgCircleShapeSchema = svgshapesSvgCircleShapeSchema;
1890
1826
  /**
1891
1827
  * A cross or plus shape with equal or different arm lengths.
@@ -1897,16 +1833,16 @@ export const svgshapesSvgCrossShapeSchema = z.object({
1897
1833
  width: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1898
1834
  return undefined; if (Array.isArray(v))
1899
1835
  return v; if (typeof v === 'string')
1900
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1836
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
1901
1837
  height: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1902
1838
  return undefined; if (Array.isArray(v))
1903
1839
  return v; if (typeof v === 'string')
1904
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1840
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
1905
1841
  thickness: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1906
1842
  return undefined; if (Array.isArray(v))
1907
1843
  return v; if (typeof v === 'string')
1908
- return Number(v); return v; }), z.number().gte(1).lte(500)),
1909
- });
1844
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(500))),
1845
+ }).strict();
1910
1846
  export const svgCrossShapeSchema = svgshapesSvgCrossShapeSchema;
1911
1847
  /**
1912
1848
  * An ellipse (oval) shape with separate horizontal and vertical radii.
@@ -1918,12 +1854,12 @@ export const svgshapesSvgEllipseShapeSchema = z.object({
1918
1854
  radiusX: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1919
1855
  return undefined; if (Array.isArray(v))
1920
1856
  return v; if (typeof v === 'string')
1921
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1857
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
1922
1858
  radiusY: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1923
1859
  return undefined; if (Array.isArray(v))
1924
1860
  return v; if (typeof v === 'string')
1925
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1926
- });
1861
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
1862
+ }).strict();
1927
1863
  export const svgEllipseShapeSchema = svgshapesSvgEllipseShapeSchema;
1928
1864
  /**
1929
1865
  * A heart shape commonly used for love/like icons.
@@ -1935,8 +1871,8 @@ export const svgshapesSvgHeartShapeSchema = z.object({
1935
1871
  size: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1936
1872
  return undefined; if (Array.isArray(v))
1937
1873
  return v; if (typeof v === 'string')
1938
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1939
- });
1874
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
1875
+ }).strict();
1940
1876
  export const svgHeartShapeSchema = svgshapesSvgHeartShapeSchema;
1941
1877
  /**
1942
1878
  * A straight line shape with a specified length and thickness.
@@ -1948,12 +1884,12 @@ export const svgshapesSvgLineShapeSchema = z.object({
1948
1884
  length: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1949
1885
  return undefined; if (Array.isArray(v))
1950
1886
  return v; if (typeof v === 'string')
1951
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1887
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
1952
1888
  thickness: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1953
1889
  return undefined; if (Array.isArray(v))
1954
1890
  return v; if (typeof v === 'string')
1955
- return Number(v); return v; }), z.number().gte(1).lte(500)),
1956
- });
1891
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(500))),
1892
+ }).strict();
1957
1893
  export const svgLineShapeSchema = svgshapesSvgLineShapeSchema;
1958
1894
  /**
1959
1895
  * A custom shape defined by SVG path data.
@@ -1975,7 +1911,7 @@ export const svgLineShapeSchema = svgshapesSvgLineShapeSchema;
1975
1911
  export const svgshapesSvgPathShapeSchema = z.object({
1976
1912
  type: z.enum(["path"]),
1977
1913
  d: z.string().min(1).max(100000),
1978
- });
1914
+ }).strict();
1979
1915
  export const svgPathShapeSchema = svgshapesSvgPathShapeSchema;
1980
1916
  /**
1981
1917
  * A regular polygon shape with a specified number of sides.
@@ -1988,12 +1924,12 @@ export const svgshapesSvgPolygonShapeSchema = z.object({
1988
1924
  sides: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1989
1925
  return undefined; if (Array.isArray(v))
1990
1926
  return v; if (typeof v === 'string')
1991
- return Number(v); return v; }), z.number().int().gte(3).lte(100)),
1927
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(3).lte(100))),
1992
1928
  radius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
1993
1929
  return undefined; if (Array.isArray(v))
1994
1930
  return v; if (typeof v === 'string')
1995
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1996
- });
1931
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
1932
+ }).strict();
1997
1933
  export const svgPolygonShapeSchema = svgshapesSvgPolygonShapeSchema;
1998
1934
  /**
1999
1935
  * A rectangle shape with optional rounded corners.
@@ -2005,16 +1941,16 @@ export const svgshapesSvgRectangleShapeSchema = z.object({
2005
1941
  width: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2006
1942
  return undefined; if (Array.isArray(v))
2007
1943
  return v; if (typeof v === 'string')
2008
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1944
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
2009
1945
  height: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2010
1946
  return undefined; if (Array.isArray(v))
2011
1947
  return v; if (typeof v === 'string')
2012
- return Number(v); return v; }), z.number().gte(1).lte(4096)),
1948
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(4096))),
2013
1949
  cornerRadius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2014
1950
  return undefined; if (Array.isArray(v))
2015
1951
  return v; if (typeof v === 'string')
2016
- return Number(v); return v; }), z.number().gte(0).lte(2048))).default(0),
2017
- });
1952
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(2048)))).default(0),
1953
+ }).strict();
2018
1954
  export const svgRectangleShapeSchema = svgshapesSvgRectangleShapeSchema;
2019
1955
  /**
2020
1956
  * A ring (donut/annulus) shape - a circle with a circular hole in the center.
@@ -2026,12 +1962,12 @@ export const svgshapesSvgRingShapeSchema = z.object({
2026
1962
  outerRadius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2027
1963
  return undefined; if (Array.isArray(v))
2028
1964
  return v; if (typeof v === 'string')
2029
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1965
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
2030
1966
  innerRadius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2031
1967
  return undefined; if (Array.isArray(v))
2032
1968
  return v; if (typeof v === 'string')
2033
- return Number(v); return v; }), z.number().gte(0).lte(2048)),
2034
- });
1969
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(2048))),
1970
+ }).strict();
2035
1971
  export const svgRingShapeSchema = svgshapesSvgRingShapeSchema;
2036
1972
  /**
2037
1973
  * A star shape with a specified number of points.
@@ -2044,16 +1980,16 @@ export const svgshapesSvgStarShapeSchema = z.object({
2044
1980
  points: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2045
1981
  return undefined; if (Array.isArray(v))
2046
1982
  return v; if (typeof v === 'string')
2047
- return Number(v); return v; }), z.number().int().gte(3).lte(100)),
1983
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(3).lte(100))),
2048
1984
  outerRadius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2049
1985
  return undefined; if (Array.isArray(v))
2050
1986
  return v; if (typeof v === 'string')
2051
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
1987
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
2052
1988
  innerRadius: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2053
1989
  return undefined; if (Array.isArray(v))
2054
1990
  return v; if (typeof v === 'string')
2055
- return Number(v); return v; }), z.number().gte(1).lte(2048)),
2056
- });
1991
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2048))),
1992
+ }).strict();
2057
1993
  export const svgStarShapeSchema = svgshapesSvgStarShapeSchema;
2058
1994
  /**
2059
1995
  * The shape definition for an SVG asset. Each shape type has its own specific
@@ -2132,22 +2068,22 @@ export const svgassetSvgAssetSchema = z.object({
2132
2068
  return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2133
2069
  return undefined; if (Array.isArray(v))
2134
2070
  return v; if (typeof v === 'string')
2135
- return Number(v); return v; }), z.number().gte(0).lte(1)))).default(1),
2071
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))))).default(1),
2136
2072
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2137
2073
  return undefined; if (Array.isArray(v))
2138
2074
  return v; if (typeof v === 'string')
2139
2075
  return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2140
2076
  return undefined; if (Array.isArray(v))
2141
2077
  return v; if (typeof v === 'string')
2142
- return Number(v); return v; }), z.number().int().gte(1).lte(4096)))),
2078
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(4096))))),
2143
2079
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2144
2080
  return undefined; if (Array.isArray(v))
2145
2081
  return v; if (typeof v === 'string')
2146
2082
  return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2147
2083
  return undefined; if (Array.isArray(v))
2148
2084
  return v; if (typeof v === 'string')
2149
- return Number(v); return v; }), z.number().int().gte(1).lte(4096)))),
2150
- }).superRefine((data, ctx) => {
2085
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int().gte(1).lte(4096))))),
2086
+ }).strict().superRefine((data, ctx) => {
2151
2087
  const hasShape = data.shape !== undefined;
2152
2088
  const hasSrc = data.src !== undefined && data.src.trim() !== "";
2153
2089
  if (!hasShape && !hasSrc) {
@@ -2184,7 +2120,7 @@ export const svgAssetSchema = svgassetSvgAssetSchema;
2184
2120
  export const templaterenderTemplateRenderSchema = z.object({
2185
2121
  id: z.string(),
2186
2122
  merge: z.optional(z.array(mergefieldMergeFieldSchema)),
2187
- });
2123
+ }).strict();
2188
2124
  export const templateRenderSchema = templaterenderTemplateRenderSchema;
2189
2125
  /**
2190
2126
  * Horizontal and vertical alignment properties for text.
@@ -2192,7 +2128,7 @@ export const templateRenderSchema = templaterenderTemplateRenderSchema;
2192
2128
  export const textpropertiesTextAlignmentSchema = z.object({
2193
2129
  horizontal: z.optional(z.enum(["left", "center", "right"])),
2194
2130
  vertical: z.optional(z.enum(["top", "center", "bottom"])),
2195
- });
2131
+ }).strict();
2196
2132
  export const textAlignmentSchema = textpropertiesTextAlignmentSchema;
2197
2133
  /**
2198
2134
  * Animation properties for text entrance effects.
@@ -2202,8 +2138,8 @@ export const textpropertiesTextAnimationSchema = z.object({
2202
2138
  duration: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2203
2139
  return undefined; if (Array.isArray(v))
2204
2140
  return v; if (typeof v === 'string')
2205
- return Number(v); return v; }), z.number().gte(0.1).lte(30))),
2206
- });
2141
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0.1).lte(30)))),
2142
+ }).strict();
2207
2143
  /**
2208
2144
  * Displays a background box behind the text.
2209
2145
  */
@@ -2212,16 +2148,16 @@ export const textpropertiesTextBackgroundSchema = z.object({
2212
2148
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2213
2149
  return undefined; if (Array.isArray(v))
2214
2150
  return v; if (typeof v === 'string')
2215
- return Number(v); return v; }), z.number().gte(0).lte(1))),
2151
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1)))),
2216
2152
  padding: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2217
2153
  return undefined; if (Array.isArray(v))
2218
2154
  return v; if (typeof v === 'string')
2219
- return Number(v); return v; }), z.number().gte(0).lte(100))),
2155
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(100)))),
2220
2156
  borderRadius: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2221
2157
  return undefined; if (Array.isArray(v))
2222
2158
  return v; if (typeof v === 'string')
2223
- return Number(v); return v; }), z.number().gte(0))),
2224
- });
2159
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0)))),
2160
+ }).strict();
2225
2161
  export const textBackgroundSchema = textpropertiesTextBackgroundSchema;
2226
2162
  /**
2227
2163
  * Font properties for text.
@@ -2232,20 +2168,20 @@ export const textpropertiesTextFontSchema = z.object({
2232
2168
  opacity: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2233
2169
  return undefined; if (Array.isArray(v))
2234
2170
  return v; if (typeof v === 'string')
2235
- return Number(v); return v; }), z.number())),
2171
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2236
2172
  size: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2237
2173
  return undefined; if (Array.isArray(v))
2238
2174
  return v; if (typeof v === 'string')
2239
- return Number(v); return v; }), z.number().int())),
2175
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2240
2176
  weight: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2241
2177
  return undefined; if (Array.isArray(v))
2242
2178
  return v; if (typeof v === 'string')
2243
- return Number(v); return v; }), z.number().int())),
2179
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2244
2180
  lineHeight: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2245
2181
  return undefined; if (Array.isArray(v))
2246
2182
  return v; if (typeof v === 'string')
2247
- return Number(v); return v; }), z.number())),
2248
- });
2183
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2184
+ }).strict();
2249
2185
  export const textFontSchema = textpropertiesTextFontSchema;
2250
2186
  /**
2251
2187
  * Text stroke (outline) properties.
@@ -2254,9 +2190,9 @@ export const textpropertiesTextStrokeSchema = z.object({
2254
2190
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2255
2191
  return undefined; if (Array.isArray(v))
2256
2192
  return v; if (typeof v === 'string')
2257
- return Number(v); return v; }), z.number().gte(0).lte(10))),
2193
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
2258
2194
  color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
2259
- });
2195
+ }).strict();
2260
2196
  /**
2261
2197
  * The TextAsset is used to add text and titles to a video. The text can be styled with built in and custom
2262
2198
  * [Fonts](#tocs_font). You can also add a background bounding box used to control wrapping and overflow. Emoticons are also supported.
@@ -2268,18 +2204,18 @@ export const textassetTextAssetSchema = z.object({
2268
2204
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2269
2205
  return undefined; if (Array.isArray(v))
2270
2206
  return v; if (typeof v === 'string')
2271
- return Number(v); return v; }), z.number().int())),
2207
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2272
2208
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2273
2209
  return undefined; if (Array.isArray(v))
2274
2210
  return v; if (typeof v === 'string')
2275
- return Number(v); return v; }), z.number().int())),
2211
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2276
2212
  font: z.optional(textpropertiesTextFontSchema),
2277
2213
  background: z.optional(textpropertiesTextBackgroundSchema),
2278
2214
  alignment: z.optional(textpropertiesTextAlignmentSchema),
2279
2215
  stroke: z.optional(textpropertiesTextStrokeSchema),
2280
2216
  animation: z.optional(textpropertiesTextAnimationSchema),
2281
2217
  ellipsis: z.optional(z.string()),
2282
- });
2218
+ }).strict();
2283
2219
  export const textAssetSchema = textassetTextAssetSchema;
2284
2220
  /**
2285
2221
  * The TextToImageAsset lets you create a dynamic image from a text prompt.
@@ -2290,13 +2226,13 @@ export const texttoimageassetTextToImageAssetSchema = z.object({
2290
2226
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2291
2227
  return undefined; if (Array.isArray(v))
2292
2228
  return v; if (typeof v === 'string')
2293
- return Number(v); return v; }), z.number().int())),
2229
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2294
2230
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2295
2231
  return undefined; if (Array.isArray(v))
2296
2232
  return v; if (typeof v === 'string')
2297
- return Number(v); return v; }), z.number().int())),
2233
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().int()))),
2298
2234
  crop: z.optional(cropCropSchema),
2299
- });
2235
+ }).strict();
2300
2236
  export const textToImageAssetSchema = texttoimageassetTextToImageAssetSchema;
2301
2237
  /**
2302
2238
  * Generate a thumbnail image for the video or image at a specific point from the timeline.
@@ -2305,12 +2241,12 @@ export const thumbnailThumbnailSchema = z.object({
2305
2241
  capture: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2306
2242
  return undefined; if (Array.isArray(v))
2307
2243
  return v; if (typeof v === 'string')
2308
- return Number(v); return v; }), z.number()),
2244
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())),
2309
2245
  scale: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2310
2246
  return undefined; if (Array.isArray(v))
2311
2247
  return v; if (typeof v === 'string')
2312
- return Number(v); return v; }), z.number().gte(0).lte(1)),
2313
- });
2248
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))),
2249
+ }).strict();
2314
2250
  export const thumbnailSchema = thumbnailThumbnailSchema;
2315
2251
  /**
2316
2252
  * The output format, render range and type of media to generate.
@@ -2341,7 +2277,7 @@ export const outputOutputSchema = z.object({
2341
2277
  poster: z.optional(posterPosterSchema),
2342
2278
  thumbnail: z.optional(thumbnailThumbnailSchema),
2343
2279
  destinations: z.optional(z.array(destinationsDestinationsSchema)),
2344
- });
2280
+ }).strict();
2345
2281
  export const outputSchema = outputOutputSchema;
2346
2282
  /**
2347
2283
  * In and out transitions for a clip - i.e. fade in and fade out
@@ -2475,7 +2411,7 @@ export const transitionTransitionSchema = z.object({
2475
2411
  "shuffleTopLeftFast",
2476
2412
  "zoom",
2477
2413
  ])),
2478
- });
2414
+ }).strict();
2479
2415
  export const transitionSchema = transitionTransitionSchema;
2480
2416
  /**
2481
2417
  * Use a Tween to [animate properties over time](/docs/guide/architecting-an-application/animations/). The following properties are currently supported and can be animated:
@@ -2488,16 +2424,22 @@ export const transitionSchema = transitionTransitionSchema;
2488
2424
  * </ul>
2489
2425
  */
2490
2426
  export const tweenTweenSchema = z.object({
2491
- from: z.optional(z.unknown()),
2492
- to: z.optional(z.unknown()),
2427
+ from: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2428
+ return undefined; if (Array.isArray(v))
2429
+ return v; if (typeof v === 'string')
2430
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())),
2431
+ to: z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2432
+ return undefined; if (Array.isArray(v))
2433
+ return v; if (typeof v === 'string')
2434
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())),
2493
2435
  start: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2494
2436
  return undefined; if (Array.isArray(v))
2495
2437
  return v; if (typeof v === 'string')
2496
- return Number(v); return v; }), z.number())),
2438
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2497
2439
  length: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2498
2440
  return undefined; if (Array.isArray(v))
2499
2441
  return v; if (typeof v === 'string')
2500
- return Number(v); return v; }), z.number())),
2442
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2501
2443
  interpolation: z.optional(z.enum(["linear", "bezier", "constant"])),
2502
2444
  easing: z.optional(z.enum([
2503
2445
  "ease",
@@ -2529,28 +2471,28 @@ export const tweenTweenSchema = z.object({
2529
2471
  "easeInOutCirc",
2530
2472
  "easeInOutBack",
2531
2473
  ])),
2532
- });
2474
+ }).strict();
2533
2475
  export const tweenSchema = tweenTweenSchema;
2534
2476
  /**
2535
2477
  * The AudioAsset is used to add sound effects and audio at specific intervals on the timeline. The src must be a publicly accessible URL to an audio resource such as an mp3 file.
2536
2478
  */
2537
2479
  export const audioassetAudioAssetSchema = z.object({
2538
2480
  type: z.enum(["audio"]),
2539
- src: z.string().min(1).regex(/\S/),
2481
+ src: z.string().regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").min(1).regex(/\S/),
2540
2482
  trim: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2541
2483
  return undefined; if (Array.isArray(v))
2542
2484
  return v; if (typeof v === 'string')
2543
- return Number(v); return v; }), z.number())),
2485
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2544
2486
  volume: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2545
2487
  return undefined; if (Array.isArray(v))
2546
2488
  return v; if (typeof v === 'string')
2547
- return Number(v); return v; }), z.number().gte(0).lte(1)), z.array(tweenTweenSchema)])),
2489
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))), z.array(tweenTweenSchema)])),
2548
2490
  speed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2549
2491
  return undefined; if (Array.isArray(v))
2550
2492
  return v; if (typeof v === 'string')
2551
- return Number(v); return v; }), z.number().gte(0).lte(10))),
2493
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
2552
2494
  effect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
2553
- });
2495
+ }).strict();
2554
2496
  export const audioAssetSchema = audioassetAudioAssetSchema;
2555
2497
  /**
2556
2498
  * Offsets the position of an asset horizontally or vertically by a relative distance.
@@ -2559,12 +2501,12 @@ export const offsetOffsetSchema = z.object({
2559
2501
  x: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2560
2502
  return undefined; if (Array.isArray(v))
2561
2503
  return v; if (typeof v === 'string')
2562
- return Number(v); return v; }), z.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])),
2504
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-10).lte(10))), z.array(tweenTweenSchema)])),
2563
2505
  y: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2564
2506
  return undefined; if (Array.isArray(v))
2565
2507
  return v; if (typeof v === 'string')
2566
- return Number(v); return v; }), z.number().gte(-10).lte(10)), z.array(tweenTweenSchema)])),
2567
- });
2508
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-10).lte(10))), z.array(tweenTweenSchema)])),
2509
+ }).strict();
2568
2510
  export const offsetSchema = offsetOffsetSchema;
2569
2511
  /**
2570
2512
  * Rotate a clip by the specified angle in degrees. Rotation origin is set based on the clips `position`.
@@ -2573,8 +2515,8 @@ export const rotatetransformationRotateTransformationSchema = z.object({
2573
2515
  angle: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2574
2516
  return undefined; if (Array.isArray(v))
2575
2517
  return v; if (typeof v === 'string')
2576
- return Number(v); return v; }), z.number().gte(-360).lte(360)), z.array(tweenTweenSchema)])),
2577
- });
2518
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-360).lte(360))), z.array(tweenTweenSchema)])),
2519
+ }).strict();
2578
2520
  export const rotateTransformationSchema = rotatetransformationRotateTransformationSchema;
2579
2521
  /**
2580
2522
  * Skew a clip so its edges are sheared at an angle. Use values between -100 and 100. Values over 3 or under -3 will skew the clip almost flat.
@@ -2583,12 +2525,12 @@ export const skewtransformationSkewTransformationSchema = z.object({
2583
2525
  x: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2584
2526
  return undefined; if (Array.isArray(v))
2585
2527
  return v; if (typeof v === 'string')
2586
- return Number(v); return v; }), z.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])),
2528
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-100).lte(100))), z.array(tweenTweenSchema)])),
2587
2529
  y: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2588
2530
  return undefined; if (Array.isArray(v))
2589
2531
  return v; if (typeof v === 'string')
2590
- return Number(v); return v; }), z.number().gte(-100).lte(100)), z.array(tweenTweenSchema)])),
2591
- });
2532
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(-100).lte(100))), z.array(tweenTweenSchema)])),
2533
+ }).strict();
2592
2534
  export const skewTransformationSchema = skewtransformationSkewTransformationSchema;
2593
2535
  /**
2594
2536
  * **Notice: The TitleAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**
@@ -2636,7 +2578,7 @@ export const titleassetTitleAssetSchema = z.object({
2636
2578
  "center",
2637
2579
  ])),
2638
2580
  offset: z.optional(offsetOffsetSchema),
2639
- });
2581
+ }).strict();
2640
2582
  export const titleAssetSchema = titleassetTitleAssetSchema;
2641
2583
  /**
2642
2584
  * Apply one or more transformations to a clip. Transformations alter the visual properties of a clip and can be combined to create new shapes and effects.
@@ -2645,31 +2587,31 @@ export const transformationTransformationSchema = z.object({
2645
2587
  rotate: z.optional(rotatetransformationRotateTransformationSchema),
2646
2588
  skew: z.optional(skewtransformationSkewTransformationSchema),
2647
2589
  flip: z.optional(fliptransformationFlipTransformationSchema),
2648
- });
2590
+ }).strict();
2649
2591
  export const transformationSchema = transformationTransformationSchema;
2650
2592
  /**
2651
2593
  * The VideoAsset is used to create video sequences from video files. The src must be a publicly accessible URL to a video resource such as an mp4 file.
2652
2594
  */
2653
2595
  export const videoassetVideoAssetSchema = z.object({
2654
2596
  type: z.enum(["video"]),
2655
- src: z.string().min(1).regex(/\S/),
2597
+ src: z.string().regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").regex(/^(https?:\/\/|alias:\/\/)/, "URL must use http://, https://, or alias:// scheme").min(1).regex(/\S/),
2656
2598
  transcode: z.optional(z.boolean()),
2657
2599
  trim: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2658
2600
  return undefined; if (Array.isArray(v))
2659
2601
  return v; if (typeof v === 'string')
2660
- return Number(v); return v; }), z.number())),
2602
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2661
2603
  volume: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2662
2604
  return undefined; if (Array.isArray(v))
2663
2605
  return v; if (typeof v === 'string')
2664
- return Number(v); return v; }), z.number().gte(0).lte(1)), z.array(tweenTweenSchema)])),
2606
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(1))), z.array(tweenTweenSchema)])),
2665
2607
  volumeEffect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
2666
2608
  speed: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2667
2609
  return undefined; if (Array.isArray(v))
2668
2610
  return v; if (typeof v === 'string')
2669
- return Number(v); return v; }), z.number().gte(0).lte(10))),
2611
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0).lte(10)))),
2670
2612
  crop: z.optional(cropCropSchema),
2671
2613
  chromaKey: z.optional(chromakeyChromaKeySchema),
2672
- });
2614
+ }).strict();
2673
2615
  export const videoAssetSchema = videoassetVideoAssetSchema;
2674
2616
  /**
2675
2617
  * The type of asset to display for the duration of the Clip, i.e. a video clip or an image. Choose from one of the available asset types below.
@@ -2697,31 +2639,29 @@ export const clipClipSchema = z.object({
2697
2639
  asset: assetAssetSchema,
2698
2640
  start: z.union([
2699
2641
  z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2700
- return undefined; if (Array.isArray(v))
2701
- return v; if (typeof v === 'string')
2702
- return Number(v); return v; }), z.number().gte(0)),
2642
+ return undefined; if (typeof v === 'string' && /^-?\d+(\.\d+)?$/.test(v))
2643
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0))),
2703
2644
  z.string().regex(/^(auto|alias:\/\/[A-Za-z0-9_-]+)$/),
2704
2645
  ]),
2705
2646
  length: z.union([
2706
2647
  z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2707
- return undefined; if (Array.isArray(v))
2708
- return v; if (typeof v === 'string')
2709
- return Number(v); return v; }), z.number().gte(0)),
2648
+ return undefined; if (typeof v === 'string' && /^-?\d+(\.\d+)?$/.test(v))
2649
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(0))),
2710
2650
  z.string().regex(/^(auto|end|alias:\/\/[A-Za-z0-9_-]+)$/),
2711
2651
  ]),
2712
2652
  fit: z.optional(z.enum(["cover", "contain", "crop", "none"])),
2713
2653
  scale: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2714
2654
  return undefined; if (Array.isArray(v))
2715
2655
  return v; if (typeof v === 'string')
2716
- return Number(v); return v; }), z.number()), z.array(tweenTweenSchema)])),
2656
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())), z.array(tweenTweenSchema)])),
2717
2657
  width: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2718
2658
  return undefined; if (Array.isArray(v))
2719
2659
  return v; if (typeof v === 'string')
2720
- return Number(v); return v; }), z.number().gte(1).lte(3840))),
2660
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(3840)))),
2721
2661
  height: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2722
2662
  return undefined; if (Array.isArray(v))
2723
2663
  return v; if (typeof v === 'string')
2724
- return Number(v); return v; }), z.number().gte(1).lte(2160))),
2664
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number().gte(1).lte(2160)))),
2725
2665
  position: z.optional(z.enum([
2726
2666
  "top",
2727
2667
  "topRight",
@@ -2769,17 +2709,17 @@ export const clipClipSchema = z.object({
2769
2709
  opacity: z.optional(z.union([z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2770
2710
  return undefined; if (Array.isArray(v))
2771
2711
  return v; if (typeof v === 'string')
2772
- return Number(v); return v; }), z.number()), z.array(tweenTweenSchema)])),
2712
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number())), z.array(tweenTweenSchema)])),
2773
2713
  transform: z.optional(transformationTransformationSchema),
2774
2714
  alias: z.optional(z.string().regex(/^[A-Za-z0-9_-]+$/)),
2775
- });
2715
+ }).strict();
2776
2716
  export const clipSchema = clipClipSchema;
2777
2717
  /**
2778
2718
  * A track contains an array of clips. Tracks are layered on top of each other in the order in the array. The top most track will render on top of those below it.
2779
2719
  */
2780
2720
  export const trackTrackSchema = z.object({
2781
2721
  clips: z.array(clipClipSchema).min(1),
2782
- });
2722
+ }).strict();
2783
2723
  export const trackSchema = trackTrackSchema;
2784
2724
  /**
2785
2725
  * A timeline represents the contents of a video edit over time, an audio edit over time, in seconds, or an image layout. A timeline consists of layers called tracks. Tracks are composed of titles, images, audio, html or video segments referred to as clips which are placed along the track at specific starting point and lasting for a specific amount of time.
@@ -2790,7 +2730,7 @@ export const timelineTimelineSchema = z.object({
2790
2730
  fonts: z.optional(z.array(fontFontSchema)),
2791
2731
  tracks: z.array(trackTrackSchema).min(1),
2792
2732
  cache: z.optional(z.boolean()),
2793
- });
2733
+ }).strict();
2794
2734
  export const timelineSchema = timelineTimelineSchema;
2795
2735
  /**
2796
2736
  * An edit defines the arrangement of a video on a timeline, an audio edit or an image design and the output format. Video assets are automatically preprocessed to fix common compatibility issues before rendering. You can control preprocessing behavior using the `transcode` flag on video assets.
@@ -2801,7 +2741,7 @@ export const editEditSchema = z.object({
2801
2741
  merge: z.optional(z.array(mergefieldMergeFieldSchema)),
2802
2742
  callback: z.optional(z.string()),
2803
2743
  disk: z.optional(z.enum(["local", "mount"])),
2804
- });
2744
+ }).strict();
2805
2745
  export const editSchema = editEditSchema;
2806
2746
  /**
2807
2747
  * The response data returned with the [RenderResponse](#tocs_renderresponse) including status and URL.
@@ -2823,18 +2763,18 @@ export const renderresponsedataRenderResponseDataSchema = z.object({
2823
2763
  duration: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2824
2764
  return undefined; if (Array.isArray(v))
2825
2765
  return v; if (typeof v === 'string')
2826
- return Number(v); return v; }), z.number())),
2766
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2827
2767
  renderTime: z.optional(z.preprocess(((v) => { if (v === '' || v === null || v === undefined)
2828
2768
  return undefined; if (Array.isArray(v))
2829
2769
  return v; if (typeof v === 'string')
2830
- return Number(v); return v; }), z.number())),
2770
+ return Number(v); return v; }), z.preprocess(((v) => { if (v === '' || v === null || v === undefined) return undefined; if (Array.isArray(v)) return v; if (typeof v === 'string') return Number(v); return v; }), z.number()))),
2831
2771
  url: z.optional(z.string()),
2832
2772
  poster: z.optional(z.union([z.string(), z.null()])),
2833
2773
  thumbnail: z.optional(z.union([z.string(), z.null()])),
2834
2774
  data: z.optional(editEditSchema),
2835
2775
  created: z.optional(z.string()),
2836
2776
  updated: z.optional(z.string()),
2837
- });
2777
+ }).strict();
2838
2778
  export const renderResponseDataSchema = renderresponsedataRenderResponseDataSchema;
2839
2779
  /**
2840
2780
  * The response received after a [render status request](#get-render-status) is submitted. The response includes details about status of a render and the output URL.
@@ -2843,7 +2783,7 @@ export const renderresponseRenderResponseSchema = z.object({
2843
2783
  success: z.boolean(),
2844
2784
  message: z.string(),
2845
2785
  response: renderresponsedataRenderResponseDataSchema,
2846
- });
2786
+ }).strict();
2847
2787
  export const renderResponseSchema = renderresponseRenderResponseSchema;
2848
2788
  /**
2849
2789
  * The response data returned with the [TemplateDataResponse](#tocs_templatedataresponse).
@@ -2853,7 +2793,7 @@ export const templatedataresponsedataTemplateDataResponseDataSchema = z.object({
2853
2793
  name: z.string(),
2854
2794
  owner: z.string(),
2855
2795
  template: editEditSchema,
2856
- });
2796
+ }).strict();
2857
2797
  export const templateDataResponseDataSchema = templatedataresponsedataTemplateDataResponseDataSchema;
2858
2798
  /**
2859
2799
  * The template data including the template name and [Edit](#tocs_edit).
@@ -2862,7 +2802,7 @@ export const templatedataresponseTemplateDataResponseSchema = z.object({
2862
2802
  success: z.boolean(),
2863
2803
  message: z.string(),
2864
2804
  response: templatedataresponsedataTemplateDataResponseDataSchema,
2865
- });
2805
+ }).strict();
2866
2806
  export const templateDataResponseSchema = templatedataresponseTemplateDataResponseSchema;
2867
2807
  /**
2868
2808
  * A template is a saved [Edit](#tocs_edit) than can be loaded and re-used.
@@ -2870,7 +2810,7 @@ export const templateDataResponseSchema = templatedataresponseTemplateDataRespon
2870
2810
  export const templateTemplateSchema = z.object({
2871
2811
  name: z.string(),
2872
2812
  template: z.optional(editEditSchema),
2873
- });
2813
+ }).strict();
2874
2814
  export const templateSchema = templateTemplateSchema;
2875
2815
  export const postRenderRequest = z.object({
2876
2816
  body: editEditSchema,
@@ -2891,7 +2831,7 @@ export const getRenderRequest = z.object({
2891
2831
  query: z.optional(z.object({
2892
2832
  data: z.optional(z.boolean()),
2893
2833
  merged: z.optional(z.boolean()),
2894
- })),
2834
+ }).strict()),
2895
2835
  });
2896
2836
  /**
2897
2837
  * The render status details