UNPKG

@pointamarketing/form-submission

Version:
2 lines (1 loc) 1.25 kB
async function n(){let a=window;if(!a.recaptchaLoaded)return new Promise(t=>{let e=setInterval(()=>{a.recaptchaLoaded&&(clearInterval(e),t())},100)})}function c(a){return new Promise(t=>{window.grecaptcha.ready(async()=>{try{let e=await window.grecaptcha.execute(a,{action:"submit"});t({token:e,error:null})}catch(e){t({token:null,error:e})}})})}async function i(a,t){let e="https://consumers-gateway-4cygfe52ia-ew.a.run.app:443/pointa.pa.services.public.v1.FormsService/ValidateFormSubmission",o={token:a,recaptchaAction:"submit",recaptchaKey:t};try{let r=await fetch(e,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return{data:await r.json(),error:null}}catch(r){return{data:null,error:r instanceof Error?r:new Error(String(r))}}}var p=async a=>{await n();let{token:t,error:e}=await c(a);if(e)throw console.error("reCAPTCHA error:",e),new Error("reCAPTCHA execution failed");let{data:o,error:r}=await i(t,a);if(r||o.score<=.8)throw console.error("Validation error:",r),new Error(r?"reCAPTCHA validation failed":"reCAPTCHA score too low")};export{n as ensureRecaptchaLoaded,c as executeRecaptcha,p as handleRecaptchaVerification,i as validateRecaptcha};