@shotstack/shotstack-studio 1.10.1 → 2.0.0-beta.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.
@@ -1,5 +1,6 @@
1
1
  import * as t from "zod";
2
- const x = t.enum(["linear", "bezier", "constant"]), y = t.enum([
2
+ const j = t.enum(["linear", "bezier", "constant"]), v = t.enum([
3
+ "smooth",
3
4
  "ease",
4
5
  "easeIn",
5
6
  "easeOut",
@@ -28,80 +29,112 @@ const x = t.enum(["linear", "bezier", "constant"]), y = t.enum([
28
29
  "easeInOutExpo",
29
30
  "easeInOutCirc",
30
31
  "easeInOutBack"
31
- ]), o = t.object({
32
+ ]), n = t.object({
32
33
  from: t.number(),
33
34
  to: t.number(),
34
35
  start: t.number().min(0),
35
36
  length: t.number().positive(),
36
- interpolation: x.optional(),
37
- easing: y.optional()
38
- }).strict(), A = t.string().url("Invalid audio url format."), j = o.extend({
37
+ interpolation: j.optional(),
38
+ easing: v.optional()
39
+ }).strict(), I = t.string().url("Invalid audio url format."), C = n.extend({
39
40
  from: t.number().min(0).max(1),
40
41
  to: t.number().min(0).max(1)
41
- }).array().or(t.number().min(0).max(1)), v = t.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"]), r = t.object({
42
+ }).array().or(t.number().min(0).max(1)), k = t.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"]), s = t.object({
42
43
  type: t.literal("audio"),
43
- src: A,
44
+ src: I,
44
45
  trim: t.number().optional(),
45
- volume: j.optional(),
46
- effect: v.optional()
47
- }).strict(), I = t.enum(["top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "topLeft", "center"]), s = t.object({
46
+ volume: C.optional(),
47
+ effect: k.optional()
48
+ }).strict(), a = t.string().regex(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|transparent$/, "Invalid color format."), O = t.object({
49
+ family: t.string().optional(),
50
+ size: t.coerce.number().min(1).max(512).optional(),
51
+ weight: t.number().optional(),
52
+ color: a.optional(),
53
+ lineHeight: t.number().min(0).max(10).optional(),
54
+ opacity: t.number().min(0).max(1).optional()
55
+ }).strict(), T = t.object({
56
+ width: t.number().min(0).max(10).optional(),
57
+ color: a.optional()
58
+ }).strict(), F = t.object({
59
+ color: a.optional(),
60
+ opacity: t.number().min(0).max(1).optional(),
61
+ padding: t.number().min(0).max(100).optional(),
62
+ borderRadius: t.number().min(0).optional()
63
+ }).strict(), R = t.object({
64
+ horizontal: t.enum(["left", "center", "right"]).optional(),
65
+ vertical: t.enum(["top", "center", "bottom"]).optional()
66
+ }).strict(), w = /^alias:\/\/[a-zA-Z0-9_-]+$/, c = t.object({
67
+ type: t.literal("caption"),
68
+ src: t.union([
69
+ t.string().url("Invalid subtitle URL format."),
70
+ t.string().regex(w, "Invalid alias reference format.")
71
+ ]),
72
+ font: O.optional(),
73
+ stroke: T.optional(),
74
+ background: F.optional(),
75
+ alignment: R.optional(),
76
+ width: t.number().min(1).optional(),
77
+ height: t.number().min(1).optional(),
78
+ trim: t.number().min(0).optional()
79
+ }).strict(), E = t.enum(["top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "topLeft", "center"]), m = t.object({
48
80
  type: t.literal("html"),
49
81
  html: t.string(),
50
82
  css: t.string(),
51
83
  width: t.number().positive().optional(),
52
84
  height: t.number().positive().optional(),
53
- position: I.optional()
54
- }).strict(), C = t.string().url("Invalid image url format."), O = t.object({
85
+ position: E.optional()
86
+ }).strict(), P = t.string().url("Invalid image url format."), z = t.object({
55
87
  top: t.number().min(0).optional(),
56
88
  right: t.number().min(0).optional(),
57
89
  bottom: t.number().min(0).optional(),
58
90
  left: t.number().min(0).optional()
59
- }).strict(), c = t.object({
91
+ }).strict(), l = t.object({
60
92
  type: t.literal("image"),
61
- src: C,
62
- crop: O.optional()
63
- }).strict(), T = t.string().url("Invalid luma url format."), m = t.object({
93
+ src: P,
94
+ crop: z.optional()
95
+ }).strict(), L = t.string().url("Invalid luma url format."), u = t.object({
64
96
  type: t.literal("luma"),
65
- src: T
66
- }).strict(), i = t.string().regex(/^#[A-Fa-f0-9]{6}$/, "Invalid hex color format"), w = t.object({
97
+ src: L
98
+ }).strict(), o = t.string().regex(/^#[A-Fa-f0-9]{6}$/, "Invalid hex color format"), D = t.object({
67
99
  offset: t.number().min(0).max(1),
68
- color: i
69
- }).strict(), R = t.object({
100
+ color: o
101
+ }).strict(), H = t.object({
70
102
  type: t.enum(["linear", "radial"]).default("linear"),
71
103
  angle: t.number().min(0).max(360).default(0),
72
- stops: t.array(w).min(2)
73
- }).strict(), k = t.object({
104
+ stops: t.array(D).min(2)
105
+ }).strict(), V = t.object({
106
+ width: t.number().min(0).default(0),
107
+ color: o.default("#000000"),
108
+ opacity: t.number().min(0).max(1).default(1)
109
+ }).strict(), Q = t.object({
74
110
  family: t.string().default("Roboto"),
75
111
  size: t.number().min(8).max(500).default(48),
76
112
  weight: t.union([t.string(), t.number()]).default("400"),
77
- color: i.default("#000000"),
78
- opacity: t.number().min(0).max(1).default(1)
79
- }).strict(), F = t.object({
113
+ color: o.default("#000000"),
114
+ opacity: t.number().min(0).max(1).default(1),
115
+ background: o.optional(),
116
+ stroke: V.optional()
117
+ }).strict(), $ = t.object({
80
118
  letterSpacing: t.number().default(0),
81
119
  lineHeight: t.number().min(0.1).max(10).default(1.2),
82
120
  textTransform: t.enum(["none", "uppercase", "lowercase", "capitalize"]).default("none"),
83
121
  textDecoration: t.enum(["none", "underline", "line-through"]).default("none"),
84
- gradient: R.optional()
85
- }).strict(), P = t.object({
86
- width: t.number().min(0).default(0),
87
- color: i.default("#000000"),
88
- opacity: t.number().min(0).max(1).default(1)
89
- }).strict(), Q = t.object({
122
+ gradient: H.optional()
123
+ }).strict(), B = t.object({
90
124
  offsetX: t.number().default(0),
91
125
  offsetY: t.number().default(0),
92
126
  blur: t.number().min(0).default(0),
93
- color: i.default("#000000"),
127
+ color: o.default("#000000"),
94
128
  opacity: t.number().min(0).max(1).default(0.5)
95
- }).strict(), z = t.object({
129
+ }).strict(), U = t.object({
96
130
  width: t.number().min(0).default(0),
97
- color: i.default("#000000"),
98
- opacity: t.number().min(0).max(1).default(1)
99
- }).strict(), L = t.object({
100
- color: i.optional(),
131
+ color: o.default("#000000"),
101
132
  opacity: t.number().min(0).max(1).default(1),
102
- borderRadius: t.number().min(0).default(0),
103
- border: z.optional()
104
- }).strict(), V = t.union([
133
+ radius: t.number().min(0).default(0)
134
+ }).strict(), _ = t.object({
135
+ color: o.optional(),
136
+ opacity: t.number().min(0).max(1).default(1)
137
+ }).strict(), M = t.union([
105
138
  t.number().min(0),
106
139
  t.object({
107
140
  top: t.number().min(0).default(0),
@@ -109,201 +142,272 @@ const x = t.enum(["linear", "bezier", "constant"]), y = t.enum([
109
142
  bottom: t.number().min(0).default(0),
110
143
  left: t.number().min(0).default(0)
111
144
  }).strict()
112
- ]), E = t.object({
145
+ ]), G = t.object({
113
146
  horizontal: t.enum(["left", "center", "right"]).default("left"),
114
147
  vertical: t.enum(["top", "middle", "bottom"]).default("middle")
115
- }).strict(), B = t.object({
116
- preset: t.enum(["fadeIn", "slideIn", "typewriter", "shift", "ascend", "movingLetters", "bounce", "elastic", "pulse"]),
117
- speed: t.number().min(0.1).max(10).default(1),
148
+ }).strict(), N = t.object({
149
+ preset: t.enum(["typewriter", "fadeIn", "slideIn", "ascend", "shift", "movingLetters"]),
118
150
  duration: t.number().min(0.1).max(60).optional(),
119
151
  style: t.enum(["character", "word"]).optional(),
120
152
  direction: t.enum(["left", "right", "up", "down"]).optional()
121
- }).strict(), l = t.object({
153
+ }).strict(), p = t.object({
122
154
  type: t.literal("rich-text"),
123
155
  text: t.string().max(1e4).default(""),
124
- font: k.optional(),
125
- style: F.optional(),
126
- stroke: P.optional(),
127
- shadow: Q.optional(),
128
- background: L.optional(),
129
- padding: V.optional(),
130
- align: E.optional(),
131
- animation: B.optional()
132
- }).strict(), S = t.string().regex(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|transparent$/, "Invalid color format."), u = t.object({
156
+ font: Q.optional(),
157
+ style: $.optional(),
158
+ shadow: B.optional(),
159
+ background: _.optional(),
160
+ border: U.optional(),
161
+ padding: M.optional(),
162
+ align: G.optional(),
163
+ animation: N.optional()
164
+ }).strict(), A = t.string().regex(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|transparent$/, "Invalid color format."), b = t.object({
133
165
  width: t.number().positive(),
134
166
  height: t.number().positive()
135
- }).strict(), p = t.object({
136
- radius: t.number().positive()
137
167
  }).strict(), f = t.object({
168
+ radius: t.number().positive()
169
+ }).strict(), d = t.object({
138
170
  length: t.number().positive(),
139
171
  thickness: t.number().positive()
140
- }).strict(), H = t.object({
141
- color: S,
172
+ }).strict(), W = t.object({
173
+ color: A,
142
174
  opacity: t.number().min(0).max(1)
143
- }).strict(), U = t.object({
144
- color: S,
145
- width: t.number().positive()
146
- }).strict(), b = t.object({
175
+ }).strict(), K = t.object({
176
+ color: A.optional(),
177
+ width: t.number().min(0).optional()
178
+ }).strict(), h = t.object({
147
179
  type: t.literal("shape"),
148
180
  width: t.number().positive().optional(),
149
181
  height: t.number().positive().optional(),
150
182
  shape: t.enum(["rectangle", "circle", "line"]),
151
- fill: H.optional(),
152
- stroke: U.optional(),
153
- rectangle: u.optional(),
154
- circle: p.optional(),
155
- line: f.optional()
156
- }).strict().refine((e) => e.shape === "rectangle" ? u.safeParse(e.rectangle) : e.shape === "circle" ? p.safeParse(e.circle) : e.shape === "line" ? f.safeParse(e.line) : !1), a = t.string().regex(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|transparent$/, "Invalid color format."), K = t.object({
157
- color: a.optional(),
183
+ fill: W.optional(),
184
+ stroke: K.optional(),
185
+ rectangle: b.optional(),
186
+ circle: f.optional(),
187
+ line: d.optional()
188
+ }).strict().refine((e) => e.shape === "rectangle" ? b.safeParse(e.rectangle) : e.shape === "circle" ? f.safeParse(e.circle) : e.shape === "line" ? d.safeParse(e.line) : !1), r = t.string().regex(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|transparent$/, "Invalid color format."), X = t.object({
189
+ color: r.optional(),
158
190
  family: t.string().optional(),
159
- size: t.number().positive().optional(),
191
+ size: t.coerce.number().positive().optional(),
160
192
  weight: t.number().optional(),
161
- lineHeight: t.number().optional()
162
- }).strict(), $ = t.object({
193
+ lineHeight: t.number().optional(),
194
+ opacity: t.number().min(0).max(1).optional()
195
+ }).strict(), Y = t.object({
163
196
  horizontal: t.enum(["left", "center", "right"]).optional(),
164
197
  vertical: t.enum(["top", "center", "bottom"]).optional()
165
- }).strict(), G = t.object({
166
- color: a,
167
- opacity: t.number().min(0).max(1)
168
- }).strict(), X = t.object({
169
- width: t.number().positive(),
170
- color: a
171
- }).strict(), h = t.object({
198
+ }).strict(), Z = t.object({
199
+ color: r.optional(),
200
+ opacity: t.number().min(0).max(1).default(1),
201
+ padding: t.number().min(0).max(100).optional(),
202
+ borderRadius: t.number().min(0).optional()
203
+ }).strict(), q = t.object({
204
+ width: t.number().min(0).optional(),
205
+ color: r.optional()
206
+ }).strict(), g = t.object({
172
207
  type: t.literal("text"),
173
- text: t.string(),
208
+ text: t.string().optional(),
174
209
  width: t.number().positive().optional(),
175
210
  height: t.number().positive().optional(),
176
- font: K.optional(),
177
- alignment: $.optional(),
178
- background: G.optional(),
179
- stroke: X.optional()
180
- }).strict(), Y = t.string().url("Invalid video url format."), D = t.object({
211
+ font: X.optional(),
212
+ alignment: Y.optional(),
213
+ background: Z.optional(),
214
+ stroke: q.optional()
215
+ }).strict(), J = t.string().url("Invalid video url format."), tt = t.object({
181
216
  top: t.number().min(0).optional(),
182
217
  right: t.number().min(0).optional(),
183
218
  bottom: t.number().min(0).optional(),
184
219
  left: t.number().min(0).optional()
185
- }).strict(), M = o.extend({
220
+ }).strict(), et = n.extend({
186
221
  from: t.number().min(0).max(1),
187
222
  to: t.number().min(0).max(1)
188
- }).array().or(t.number().min(0).max(1)), d = t.object({
223
+ }).array().or(t.number().min(0).max(1)), S = t.object({
189
224
  type: t.literal("video"),
190
- src: Y,
225
+ src: J,
191
226
  trim: t.number().optional(),
192
- crop: D.optional(),
193
- volume: M.optional()
194
- }).strict(), q = t.union([
227
+ crop: tt.optional(),
228
+ volume: et.optional()
229
+ }).strict(), ot = t.union([
230
+ g,
231
+ p,
195
232
  h,
233
+ m,
196
234
  l,
197
- b,
235
+ S,
236
+ u,
198
237
  s,
199
- c,
200
- d,
201
- m,
202
- r
203
- ]).refine((e) => e.type === "text" ? h.safeParse(e) : e.type === "rich-text" ? l.safeParse(e) : e.type === "shape" ? b.safeParse(e) : e.type === "html" ? s.safeParse(e) : e.type === "image" ? c.safeParse(e) : e.type === "video" ? d.safeParse(e) : e.type === "luma" ? m.safeParse(e) : e.type === "audio" ? r.safeParse(e) : !1), J = t.enum(["topLeft", "top", "topRight", "left", "center", "right", "bottomLeft", "bottom", "bottomRight"]), N = t.enum(["crop", "cover", "contain", "none"]), n = t.number().min(-10).max(10).default(0), W = o.extend({
204
- from: n,
205
- to: n
206
- }).array().or(n), Z = o.extend({
207
- from: n,
208
- to: n
209
- }).array().or(n), _ = t.object({
210
- x: W.default(0),
211
- y: Z.default(0)
212
- }).strict(), tt = o.extend({
238
+ c
239
+ ]).refine((e) => e.type === "text" ? g.safeParse(e) : e.type === "rich-text" ? p.safeParse(e) : e.type === "shape" ? h.safeParse(e) : e.type === "html" ? m.safeParse(e) : e.type === "image" ? l.safeParse(e) : e.type === "video" ? S.safeParse(e) : e.type === "luma" ? u.safeParse(e) : e.type === "audio" ? s.safeParse(e) : e.type === "caption" ? c.safeParse(e) : !1), x = /^alias:\/\/[a-zA-Z0-9_-]+$/, nt = t.enum(["topLeft", "top", "topRight", "left", "center", "right", "bottomLeft", "bottom", "bottomRight"]), it = t.enum(["crop", "cover", "contain", "none"]), i = t.coerce.number().min(-10).max(10).default(0), at = n.extend({
240
+ from: i,
241
+ to: i
242
+ }).array().or(i), rt = n.extend({
243
+ from: i,
244
+ to: i
245
+ }).array().or(i), st = t.object({
246
+ x: at.default(0),
247
+ y: rt.default(0)
248
+ }).strict(), ct = n.extend({
213
249
  from: t.number().min(0).max(1),
214
250
  to: t.number().min(0).max(1)
215
- }).array().or(t.number().min(0).max(1)), et = o.extend({
251
+ }).array().or(t.number().min(0).max(1)), mt = n.extend({
216
252
  from: t.number().min(0),
217
253
  to: t.number().min(0)
218
- }).array().or(t.number().min(0)), ot = t.object({
219
- angle: o.extend({
254
+ }).array().or(t.number().min(0)), lt = t.object({
255
+ angle: n.extend({
220
256
  from: t.number(),
221
257
  to: t.number()
222
258
  }).array().or(t.number())
223
- }).strict(), nt = t.string(), g = t.string(), it = t.object({
224
- in: g.optional(),
225
- out: g.optional()
226
- }).strict(), at = t.object({
227
- rotate: ot.default({ angle: 0 })
228
- }).strict(), rt = t.object({
229
- asset: q,
230
- start: t.union([t.number().min(0), t.literal("auto")]),
231
- length: t.union([t.number().positive(), t.literal("auto"), t.literal("end")]),
232
- position: J.default("center").optional(),
233
- fit: N.optional(),
234
- offset: _.default({ x: 0, y: 0 }).optional(),
235
- opacity: tt.default(1).optional(),
236
- scale: et.default(1).optional(),
237
- transform: at.default({ rotate: { angle: 0 } }).optional(),
238
- effect: nt.optional(),
239
- transition: it.optional(),
259
+ }).strict(), ut = t.string(), y = t.string(), pt = t.object({
260
+ in: y.optional(),
261
+ out: y.optional()
262
+ }).strict(), bt = t.object({
263
+ rotate: lt.default({ angle: 0 })
264
+ }).strict(), ft = t.object({
265
+ asset: ot,
266
+ start: t.union([t.number().min(0), t.literal("auto"), t.string().regex(x)]),
267
+ length: t.union([t.number().positive(), t.literal("auto"), t.literal("end"), t.string().regex(x)]),
268
+ alias: t.string().optional(),
269
+ position: nt.default("center").optional(),
270
+ fit: it.optional(),
271
+ offset: st.default({ x: 0, y: 0 }).optional(),
272
+ opacity: ct.default(1).optional(),
273
+ scale: mt.default(1).optional(),
274
+ transform: bt.default({ rotate: { angle: 0 } }).optional(),
275
+ effect: ut.optional(),
276
+ transition: pt.optional(),
240
277
  width: t.number().min(1).max(3840).optional(),
241
278
  height: t.number().min(1).max(2160).optional()
242
279
  }).strict().transform((e) => ({
243
280
  ...e,
244
- fit: e.fit ?? (e.asset.type === "rich-text" ? "none" : "crop"),
245
- start: e.start,
246
- length: e.length
247
- })), st = t.object({
248
- clips: rt.array()
249
- }).strict(), ct = t.string().url("Invalid image url format."), mt = t.object({
250
- src: ct
251
- }).strict(), lt = t.object({
252
- background: t.string().optional(),
253
- fonts: mt.array().optional(),
254
- tracks: st.array()
255
- }).strict(), ut = t.object({
256
- size: t.object({
257
- width: t.number().positive(),
258
- height: t.number().positive()
259
- }).strict(),
260
- fps: t.number().positive().optional(),
261
- format: t.string()
262
- }).strict(), pt = t.object({
281
+ fit: e.fit ?? (e.asset.type === "rich-text" ? "cover" : "crop")
282
+ })), dt = t.object({
283
+ clips: ft.array()
284
+ }).strict(), ht = t.string().url("Invalid image url format."), gt = t.object({
285
+ src: ht
286
+ }).strict(), St = t.enum(["fadeIn", "fadeOut", "fadeInFadeOut"]), xt = t.object({
287
+ src: t.string().url(),
288
+ effect: St.optional(),
289
+ volume: t.number().min(0).max(1).optional()
290
+ }).strict(), yt = t.string().regex(/^#[A-Fa-f0-9]{6}$/, "Must be a valid hex color (e.g., #000000)"), At = t.object({
291
+ background: yt.optional(),
292
+ fonts: gt.array().optional(),
293
+ tracks: dt.array(),
294
+ soundtrack: xt.optional()
295
+ }).strict(), jt = t.object({
296
+ provider: t.literal("shotstack"),
297
+ exclude: t.boolean().optional()
298
+ }).strict(), vt = t.object({
299
+ provider: t.literal("s3"),
300
+ options: t.object({
301
+ region: t.string(),
302
+ bucket: t.string().min(3).max(63),
303
+ prefix: t.string().optional(),
304
+ filename: t.string().optional(),
305
+ acl: t.string().optional()
306
+ }).strict()
307
+ }).strict(), It = t.object({
308
+ provider: t.literal("mux"),
309
+ options: t.object({
310
+ playbackPolicy: t.array(t.enum(["public", "signed"])).optional(),
311
+ passthrough: t.string().max(255).optional()
312
+ }).strict().optional()
313
+ }).strict(), Ct = t.object({
314
+ provider: t.literal("google-cloud-storage"),
315
+ options: t.object({
316
+ bucket: t.string().optional(),
317
+ prefix: t.string().optional(),
318
+ filename: t.string().optional()
319
+ }).strict().optional()
320
+ }).strict(), kt = t.object({
321
+ provider: t.literal("google-drive"),
322
+ options: t.object({
323
+ filename: t.string().optional(),
324
+ folderId: t.string().optional()
325
+ }).strict().optional()
326
+ }).strict(), Ot = t.object({
327
+ provider: t.literal("vimeo"),
328
+ options: t.object({
329
+ name: t.string().optional(),
330
+ description: t.string().optional(),
331
+ privacy: t.object({
332
+ view: t.enum(["anybody", "nobody", "contacts", "password", "unlisted"]).optional(),
333
+ embed: t.enum(["public", "private", "whitelist"]).optional(),
334
+ comments: t.enum(["anybody", "nobody", "contacts"]).optional()
335
+ }).strict().optional(),
336
+ folderUri: t.string().optional()
337
+ }).strict().optional()
338
+ }).strict(), Tt = t.object({
339
+ provider: t.literal("tiktok")
340
+ }).strict(), Ft = t.union([
341
+ jt,
342
+ vt,
343
+ It,
344
+ Ct,
345
+ kt,
346
+ Ot,
347
+ Tt
348
+ ]), Rt = t.enum(["mp4", "gif", "mp3", "jpg", "png", "bmp"], {
349
+ errorMap: () => ({ message: "Must be one of mp4, gif, mp3, jpg, png, bmp" })
350
+ }), wt = [12, 15, 23.976, 24, 25, 29.97, 30, 48, 50, 59.94, 60], Et = t.number().refine((e) => wt.includes(e), {
351
+ message: "Must be one of 12, 15, 23.976, 24, 25, 29.97, 30, 48, 50, 59.94, 60"
352
+ }), Pt = t.object({
353
+ width: t.number({ message: "Width must be a number" }).int({ message: "Width must be an integer" }).min(1, { message: "Width must be at least 1" }).max(3840, { message: "Width must be at most 3840" }),
354
+ height: t.number({ message: "Height must be a number" }).int({ message: "Height must be an integer" }).min(1, { message: "Height must be at least 1" }).max(3840, { message: "Height must be at most 3840" })
355
+ }).strict(), zt = t.object({
356
+ size: Pt,
357
+ fps: Et.optional(),
358
+ format: Rt,
359
+ destinations: t.array(Ft).optional()
360
+ }).strict(), Lt = t.object({
263
361
  find: t.string().min(1),
264
362
  replace: t.string()
265
- }), ft = t.object({
266
- timeline: lt,
267
- output: ut,
268
- merge: t.array(pt).optional()
363
+ }), Dt = t.object({
364
+ timeline: At,
365
+ output: zt,
366
+ merge: t.array(Lt).optional()
269
367
  }).strict();
270
368
  export {
271
- q as AssetSchema,
272
- r as AudioAssetSchema,
273
- A as AudioAssetUrlSchema,
274
- j as AudioAssetVolumeSchema,
275
- rt as ClipSchema,
276
- ft as EditSchema,
277
- mt as FontSourceSchema,
278
- ct as FontSourceUrlSchema,
279
- s as HtmlAssetSchema,
280
- O as ImageAssetCropSchema,
281
- c as ImageAssetSchema,
282
- C as ImageAssetUrlSchema,
283
- y as KeyframeEasingSchema,
284
- x as KeyframeInterpolationSchema,
285
- o as KeyframeSchema,
286
- m as LumaAssetSchema,
287
- T as LumaAssetUrlSchema,
288
- ut as OutputSchema,
289
- l as RichTextAssetSchema,
290
- p as ShapeAssetCircleSchema,
291
- S as ShapeAssetColorSchema,
292
- H as ShapeAssetFillSchema,
293
- f as ShapeAssetLineSchema,
294
- u as ShapeAssetRectangleSchema,
295
- b as ShapeAssetSchema,
296
- U as ShapeAssetStrokeSchema,
297
- $ as TextAssetAlignmentSchema,
298
- G as TextAssetBackgroundSchema,
299
- a as TextAssetColorSchema,
300
- K as TextAssetFontSchema,
301
- h as TextAssetSchema,
302
- X as TextAssetStrokeSchema,
303
- lt as TimelineSchema,
304
- st as TrackSchema,
305
- D as VideoAssetCropSchema,
306
- d as VideoAssetSchema,
307
- Y as VideoAssetUrlSchema,
308
- M as VideoAssetVolumeSchema
369
+ ot as AssetSchema,
370
+ s as AudioAssetSchema,
371
+ I as AudioAssetUrlSchema,
372
+ C as AudioAssetVolumeSchema,
373
+ R as CaptionAssetAlignmentSchema,
374
+ F as CaptionAssetBackgroundSchema,
375
+ a as CaptionAssetColorSchema,
376
+ O as CaptionAssetFontSchema,
377
+ c as CaptionAssetSchema,
378
+ T as CaptionAssetStrokeSchema,
379
+ ft as ClipSchema,
380
+ Dt as EditSchema,
381
+ gt as FontSourceSchema,
382
+ ht as FontSourceUrlSchema,
383
+ m as HtmlAssetSchema,
384
+ z as ImageAssetCropSchema,
385
+ l as ImageAssetSchema,
386
+ P as ImageAssetUrlSchema,
387
+ v as KeyframeEasingSchema,
388
+ j as KeyframeInterpolationSchema,
389
+ n as KeyframeSchema,
390
+ u as LumaAssetSchema,
391
+ L as LumaAssetUrlSchema,
392
+ zt as OutputSchema,
393
+ p as RichTextAssetSchema,
394
+ f as ShapeAssetCircleSchema,
395
+ A as ShapeAssetColorSchema,
396
+ W as ShapeAssetFillSchema,
397
+ d as ShapeAssetLineSchema,
398
+ b as ShapeAssetRectangleSchema,
399
+ h as ShapeAssetSchema,
400
+ K as ShapeAssetStrokeSchema,
401
+ Y as TextAssetAlignmentSchema,
402
+ Z as TextAssetBackgroundSchema,
403
+ r as TextAssetColorSchema,
404
+ X as TextAssetFontSchema,
405
+ g as TextAssetSchema,
406
+ q as TextAssetStrokeSchema,
407
+ At as TimelineSchema,
408
+ dt as TrackSchema,
409
+ tt as VideoAssetCropSchema,
410
+ S as VideoAssetSchema,
411
+ J as VideoAssetUrlSchema,
412
+ et as VideoAssetVolumeSchema
309
413
  };