{"version":3,"file":"request_interceptor.mjs","sources":["../../src/components/request_interceptor.ts"],"sourcesContent":["import { WebViewNavigation } from \"react-native-webview\"\nimport { parse as parseUrl } from \"url\"\n\nexport enum Action {\n  LoadInApp,\n  LoadInBrowser,\n  Intercept,\n}\n\ntype Callbacks = {\n  onIntercept?: (url: string) => void\n  onLoadUrlInBrowser?: (url: string) => void\n}\n\nclass Interceptor {\n  constructor(protected widgetUrl: string, protected uiMessageWebviewUrlScheme: string) {}\n\n  action(request: WebViewNavigation): Action {\n    if (request.url === this.widgetUrl) {\n      return Action.LoadInApp\n    }\n\n    const { protocol } = parseUrl(request.url)\n\n    /* The `uiMessageWebviewUrlScheme` value will be something like \"appscheme\"\n     * but the `url.protocol` will be \"appscheme:\", so we slice off the last\n     * character so that we can compare them.\n     */\n    const scheme = (protocol || \"\").slice(0, -1)\n    if (scheme === this.uiMessageWebviewUrlScheme) {\n      return Action.Intercept\n    }\n\n    return Action.LoadInBrowser\n  }\n}\n\nexport function makeRequestInterceptor(\n  widgetUrl: string,\n  uiMessageWebviewUrlScheme: string,\n  callbacks: Callbacks,\n) {\n  const interceptor = new Interceptor(widgetUrl, uiMessageWebviewUrlScheme)\n\n  return function (request: WebViewNavigation) {\n    const action = interceptor.action(request)\n    switch (action) {\n      case Action.LoadInApp:\n        return true\n\n      case Action.Intercept:\n        callbacks.onIntercept?.(request.url)\n        return false\n\n      case Action.LoadInBrowser:\n        callbacks.onLoadUrlInBrowser?.(request.url)\n        return false\n    }\n  }\n}\n"],"names":["Interceptor","widgetUrl","uiMessageWebviewUrlScheme","request","protocol","parseUrl","makeRequestInterceptor","callbacks","interceptor"],"mappings":";AAcA,MAAMA,EAAY;AAAA,EAChB,YAAsBC,GAA6BC,GAAmC;AAAhE,SAAA,YAAAD,GAA6B,KAAA,4BAAAC;AAAA,EAAoC;AAAA,EAEvF,OAAOC,GAAoC;AACzC,QAAIA,EAAQ,QAAQ,KAAK;AACvB,aAAO;AAGT,UAAM,EAAE,UAAAC,EAAA,IAAaC,EAASF,EAAQ,GAAG;AAOzC,YADgBC,KAAY,IAAI,MAAM,GAAG,EAAE,MAC5B,KAAK,4BACX,IAGF;AAAA,EACT;AACF;AAEO,SAASE,EACdL,GACAC,GACAK,GACA;AACA,QAAMC,IAAc,IAAIR,EAAYC,GAAWC,CAAyB;AAExE,SAAO,SAAUC,GAA4B;AAE3C,YADeK,EAAY,OAAOL,CAAO,GACjC;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MAET,KAAK;AACH,eAAAI,EAAU,cAAcJ,EAAQ,GAAG,GAC5B;AAAA,MAET,KAAK;AACH,eAAAI,EAAU,qBAAqBJ,EAAQ,GAAG,GACnC;AAAA,IAAA;AAAA,EAEb;AACF;"}