{"version":3,"file":"request_processor.mjs","sources":["../../src/sso/request_processor.ts"],"sourcesContent":["import base64 from \"react-native-base64\"\n\nimport {\n  ApiRequestOptions,\n  ApiResponseBody,\n  Props,\n  SsoUrlMethodPlatformApiProps,\n  SsoUrlMethodProxyServerProps,\n  isSsoUrlMethodPlatformApi,\n  isSsoUrlMethodProxyServer,\n} from \"./properties\"\n\nimport { lookupHost } from \"./environment\"\nimport { getWidgetConfigurationFromProps } from \"./widget_configuration\"\nimport { InvalidSsoUrlPropsError } from \"./error\"\n\nexport function defaultSsoRequestPostprocess(body: ApiResponseBody): string {\n  return body.widget_url.url\n}\n\nexport function defaultSsoRequestBuilder<Configuration>(\n  props: Props<Configuration>,\n): ApiRequestOptions {\n  const url = getRequestUrl(props)\n  const options = getRequestOptions(props)\n  return { url, options }\n}\n\nexport function defaultSsoRequestPreprocess(opts: ApiRequestOptions): ApiRequestOptions {\n  return opts\n}\n\nfunction getRequestUrl<Configuration>(props: Props<Configuration>): string {\n  if (isSsoUrlMethodProxyServer(props)) {\n    return getProxyServerRequestUrl(props)\n  } else if (isSsoUrlMethodPlatformApi(props)) {\n    return getPlatformApiRequestUrl(props)\n  }\n\n  throw new InvalidSsoUrlPropsError()\n}\n\nfunction getProxyServerRequestUrl(props: SsoUrlMethodProxyServerProps): string {\n  return props.proxy\n}\n\nfunction getPlatformApiRequestUrl(props: SsoUrlMethodPlatformApiProps): string {\n  const host = lookupHost(props.environment)\n  const userGuid = props.userGuid\n  return `${host}/users/${userGuid}/widget_urls`\n}\n\nfunction getRequestOptions<Configuration>(props: Props<Configuration>) {\n  const headers: Record<string, string> = {\n    Accept: \"application/vnd.mx.api.v1+json\",\n    \"Content-Type\": \"application/json\",\n  }\n  if (props.language) {\n    headers[\"Accept-Language\"] = props.language\n  }\n  if (isSsoUrlMethodPlatformApi(props)) {\n    const { apiKey, clientId } = props\n    const authorization = base64.encode(`${clientId}:${apiKey}`)\n    headers[\"Authorization\"] = `Basic ${authorization}`\n  }\n\n  const method = \"POST\"\n  const body = JSON.stringify({\n    widget_url: getWidgetConfigurationFromProps(props),\n  })\n\n  return { method, headers, body }\n}\n"],"names":["defaultSsoRequestPostprocess","body","defaultSsoRequestBuilder","props","url","getRequestUrl","options","getRequestOptions","defaultSsoRequestPreprocess","opts","isSsoUrlMethodProxyServer","getProxyServerRequestUrl","isSsoUrlMethodPlatformApi","getPlatformApiRequestUrl","InvalidSsoUrlPropsError","host","lookupHost","userGuid","headers","apiKey","clientId","authorization","base64","method","getWidgetConfigurationFromProps"],"mappings":";;;;;AAgBO,SAASA,EAA6BC,GAA+B;AAC1E,SAAOA,EAAK,WAAW;AACzB;AAEO,SAASC,EACdC,GACmB;AACnB,QAAMC,IAAMC,EAAcF,CAAK,GACzBG,IAAUC,EAAkBJ,CAAK;AACvC,SAAO,EAAE,KAAAC,GAAK,SAAAE,EAAA;AAChB;AAEO,SAASE,EAA4BC,GAA4C;AACtF,SAAOA;AACT;AAEA,SAASJ,EAA6BF,GAAqC;AACzE,MAAIO,EAA0BP,CAAK;AACjC,WAAOQ,EAAyBR,CAAK;AACvC,MAAWS,EAA0BT,CAAK;AACxC,WAAOU,EAAyBV,CAAK;AAGvC,QAAM,IAAIW,EAAA;AACZ;AAEA,SAASH,EAAyBR,GAA6C;AAC7E,SAAOA,EAAM;AACf;AAEA,SAASU,EAAyBV,GAA6C;AAC7E,QAAMY,IAAOC,EAAWb,EAAM,WAAW,GACnCc,IAAWd,EAAM;AACvB,SAAO,GAAGY,CAAI,UAAUE,CAAQ;AAClC;AAEA,SAASV,EAAiCJ,GAA6B;AACrE,QAAMe,IAAkC;AAAA,IACtC,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAAA;AAKlB,MAHIf,EAAM,aACRe,EAAQ,iBAAiB,IAAIf,EAAM,WAEjCS,EAA0BT,CAAK,GAAG;AACpC,UAAM,EAAE,QAAAgB,GAAQ,UAAAC,EAAA,IAAajB,GACvBkB,IAAgBC,EAAO,OAAO,GAAGF,CAAQ,IAAID,CAAM,EAAE;AAC3D,IAAAD,EAAQ,gBAAmB,SAASG,CAAa;AAAA,EACnD;AAEA,QAAME,IAAS,QACTtB,IAAO,KAAK,UAAU;AAAA,IAC1B,YAAYuB,EAAgCrB,CAAK;AAAA,EAAA,CAClD;AAED,SAAO,EAAE,QAAAoB,GAAQ,SAAAL,GAAS,MAAAjB,EAAA;AAC5B;"}