@shotstack/schemas 1.4.8 → 1.5.1

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