UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

1 lines 2.34 kB
{"version":3,"file":"captchafox.mjs","names":[],"sources":["../../../../src/plugins/captcha/verify-handlers/captchafox.ts"],"sourcesContent":["import { betterFetch } from \"@better-fetch/fetch\";\nimport { middlewareResponse } from \"../../../utils/middleware-response\";\nimport { EXTERNAL_ERROR_CODES, INTERNAL_ERROR_CODES } from \"../error-codes\";\nimport { encodeToURLParams } from \"../utils\";\n\ntype Params = {\n\tsiteVerifyURL: string;\n\tsecretKey: string;\n\tcaptchaResponse: string;\n\tsiteKey?: string | undefined;\n\tremoteIP?: string | undefined;\n};\n\ntype SiteVerifyResponse = {\n\tsuccess: boolean;\n\tchallenge_ts: number;\n\thostname: string;\n\t\"error-codes\":\n\t\t| Array<\n\t\t\t\t| \"missing-input-secret\"\n\t\t\t\t| \"invalid-input-secret\"\n\t\t\t\t| \"invalid-input-sitekey\"\n\t\t\t\t| \"missing-input-response\"\n\t\t\t\t| \"invalid-input-response\"\n\t\t\t\t| \"expired-input-response\"\n\t\t\t\t| \"timeout-or-duplicate\"\n\t\t\t\t| \"bad-request\"\n\t\t >\n\t\t| undefined;\n\tinsights: Record<string, unknown> | undefined; // ENTERPRISE feature: insights into verification.\n};\n\nexport const captchaFox = async ({\n\tsiteVerifyURL,\n\tcaptchaResponse,\n\tsecretKey,\n\tsiteKey,\n\tremoteIP,\n}: Params) => {\n\tconst response = await betterFetch<SiteVerifyResponse>(siteVerifyURL, {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n\t\tbody: encodeToURLParams({\n\t\t\tsecret: secretKey,\n\t\t\tresponse: captchaResponse,\n\t\t\t...(siteKey && { sitekey: siteKey }),\n\t\t\t...(remoteIP && { remoteIp: remoteIP }),\n\t\t}),\n\t});\n\n\tif (!response.data || response.error) {\n\t\tthrow new Error(INTERNAL_ERROR_CODES.SERVICE_UNAVAILABLE);\n\t}\n\n\tif (!response.data.success) {\n\t\treturn middlewareResponse({\n\t\t\tmessage: EXTERNAL_ERROR_CODES.VERIFICATION_FAILED,\n\t\t\tstatus: 403,\n\t\t});\n\t}\n\n\treturn undefined;\n};\n"],"mappings":";;;;;;AAgCA,MAAa,aAAa,OAAO,EAChC,eACA,iBACA,WACA,SACA,eACa;CACb,MAAM,WAAW,MAAM,YAAgC,eAAe;EACrE,QAAQ;EACR,SAAS,EAAE,gBAAgB,qCAAqC;EAChE,MAAM,kBAAkB;GACvB,QAAQ;GACR,UAAU;GACV,GAAI,WAAW,EAAE,SAAS,SAAS;GACnC,GAAI,YAAY,EAAE,UAAU,UAAU;GACtC,CAAC;EACF,CAAC;AAEF,KAAI,CAAC,SAAS,QAAQ,SAAS,MAC9B,OAAM,IAAI,MAAM,qBAAqB,oBAAoB;AAG1D,KAAI,CAAC,SAAS,KAAK,QAClB,QAAO,mBAAmB;EACzB,SAAS,qBAAqB;EAC9B,QAAQ;EACR,CAAC"}