diff --git a/apps/api/src/controllers/v1/types.ts b/apps/api/src/controllers/v1/types.ts index 229893d1..45aa3c9b 100644 --- a/apps/api/src/controllers/v1/types.ts +++ b/apps/api/src/controllers/v1/types.ts @@ -61,9 +61,14 @@ export type ExtractOptions = z.infer; export const actionsSchema = z.array(z.union([ z.object({ type: z.literal("wait"), - milliseconds: z.number().int().positive().finite(), + milliseconds: z.number().int().positive().finite().optional(), selector: z.string().optional(), - }), + }).refine( + (data) => (data.milliseconds !== undefined || data.selector !== undefined) && !(data.milliseconds !== undefined && data.selector !== undefined), + { + message: "Either 'milliseconds' or 'selector' must be provided, but not both.", + } + ), z.object({ type: z.literal("click"), selector: z.string(),