{"version":3,"file":"CaptchaProvider.mjs","sources":["../../../../../../web/src/CaptchaProvider.ts"],"sourcesContent":["import { BootstrapData, loadESModule } from '@stytch/core';\n\nconst loadRecaptchaClient = (siteKey: string) =>\n  loadESModule(`https://www.google.com/recaptcha/enterprise.js?render=${siteKey}`, () => window.grecaptcha.enterprise);\n\ntype CaptchaState =\n  | { configured: true; captchaClient: ReCaptchaV2.ReCaptcha; siteKey: string }\n  | { configured: false; captchaClient: undefined; siteKey: undefined };\n\nexport class CaptchaProvider {\n  private state: Promise<CaptchaState>;\n  constructor(private bootstrapPromise: Promise<BootstrapData>) {\n    this.state = bootstrapPromise.then(async (bootstrapData) => {\n      if (!bootstrapData.captchaSettings.enabled) {\n        return { configured: false };\n      }\n      return {\n        configured: true,\n        captchaClient: await loadRecaptchaClient(bootstrapData.captchaSettings.siteKey),\n        siteKey: bootstrapData.captchaSettings.siteKey,\n      };\n    });\n  }\n\n  executeRecaptcha = async () => {\n    const { captchaClient, configured, siteKey } = await this.state;\n    if (!configured) {\n      return undefined;\n    }\n    await new Promise<void>((resolve) => captchaClient.ready(resolve));\n    return captchaClient.execute(siteKey, {\n      action: 'LOGIN',\n    });\n  };\n}\n"],"names":["loadRecaptchaClient","siteKey","loadESModule","window","grecaptcha","enterprise","CaptchaProvider","state","bootstrapPromise","then","bootstrapData","captchaSettings","enabled","configured","captchaClient","executeRecaptcha","undefined","Promise","resolve","ready","execute","action"],"mappings":";;AAEA,MAAMA,mBAAAA,GAAsB,CAACC,OAAAA,GAC3BC,YAAAA,CAAa,CAAC,sDAAsD,EAAED,OAAAA,CAAAA,CAAS,EAAE,IAAME,MAAAA,CAAOC,UAAU,CAACC,UAAU,CAAA;AAM9G,MAAMC,eAAAA,CAAAA;;IACHC,KAAAA;IACR,WAAA,CAAoBC,gBAAwC,CAAE;aAA1CA,gBAAAA,GAAAA,gBAAAA;AAClB,QAAA,IAAI,CAACD,KAAK,GAAGC,gBAAAA,CAAiBC,IAAI,CAAC,OAAOC,aAAAA,GAAAA;AACxC,YAAA,IAAI,CAACA,aAAAA,CAAcC,eAAe,CAACC,OAAO,EAAE;gBAC1C,OAAO;oBAAEC,UAAAA,EAAY;AAAM,iBAAA;AAC7B,YAAA;YACA,OAAO;gBACLA,UAAAA,EAAY,IAAA;AACZC,gBAAAA,aAAAA,EAAe,MAAMd,mBAAAA,CAAoBU,aAAAA,CAAcC,eAAe,CAACV,OAAO,CAAA;gBAC9EA,OAAAA,EAASS,aAAAA,CAAcC,eAAe,CAACV;AACzC,aAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;IAEAc,gBAAAA,GAAmB,UAAA;QACjB,MAAM,EAAED,aAAa,EAAED,UAAU,EAAEZ,OAAO,EAAE,GAAG,MAAM,IAAI,CAACM,KAAK;AAC/D,QAAA,IAAI,CAACM,UAAAA,EAAY;YACf,OAAOG,SAAAA;AACT,QAAA;AACA,QAAA,MAAM,IAAIC,OAAAA,CAAc,CAACC,OAAAA,GAAYJ,aAAAA,CAAcK,KAAK,CAACD,OAAAA,CAAAA,CAAAA;QACzD,OAAOJ,aAAAA,CAAcM,OAAO,CAACnB,OAAAA,EAAS;YACpCoB,MAAAA,EAAQ;AACV,SAAA,CAAA;IACF,CAAA;AACF;;;;"}