import { CacheHandler } from "@mediahubmx/cache"; import { TaskRecaptchaRequest, TaskRecaptchaResponse, } from "@mediahubmx/schema"; import { Responder, sendTask } from "./engine"; import { RecaptchaFn } from "./types"; const defaults: Partial = { version: 2, action: "", }; export const createTaskRecaptcha = ( testMode: boolean, responder: Responder, cache: CacheHandler ) => { const recaptcha: RecaptchaFn = async (data, timeout = 60 * 1000) => { if (testMode) { throw new Error("Task recaptcha is not available in test mode"); } const task = { ...defaults, ...data, type: "recaptcha", }; const res = ( await sendTask(testMode, responder, cache, task, timeout) ); return res.token; }; return recaptcha; };