{"version":3,"file":"handleParsePhoneNumber.mjs","sources":["../../../../../../../web/src/utils/handleParsePhoneNumber.ts"],"sourcesContent":["import { COUNTRIES_LIST, CountryCode, ParsedPhoneNumberResponse } from '@stytch/core';\n\ntype ParsePhoneNumber = (phoneNumber: string, countryCode?: CountryCode) => Promise<ParsedPhoneNumberResponse>;\n\ntype ParsePhoneParams = {\n  parsePhoneNumber: ParsePhoneNumber;\n  phoneNumber: string;\n  country?: CountryCode;\n};\n\n// Attempts to format the number in the following format (XXX) XXX-XXXX.\nexport const formatNumber = async ({ parsePhoneNumber, phoneNumber, country }: ParsePhoneParams): Promise<string> => {\n  try {\n    const parsedPhoneNumber = await Promise.race([\n      parsePhoneNumber(phoneNumber, country),\n      new Promise<undefined>((done) => setTimeout(() => done(undefined), 10000)),\n    ]);\n\n    if (!parsedPhoneNumber) {\n      return phoneNumber;\n    }\n\n    return parsedPhoneNumber.national;\n  } catch {\n    return phoneNumber;\n  }\n};\n\n// Attempts to format the number in the following format +1XXXXXXXXXX.\nexport const formatNumberToIncludeCountryCode = async ({\n  parsePhoneNumber,\n  phoneNumber,\n  country,\n}: Required<ParsePhoneParams>): Promise<{\n  isValid: boolean;\n  number: string;\n}> => {\n  const code = COUNTRIES_LIST[country];\n\n  const fallbackNumber = `+${code}${phoneNumber}`;\n\n  const fallback = {\n    isValid: true,\n    number: fallbackNumber,\n  };\n  try {\n    const parsedPhoneNumber = await Promise.race([\n      parsePhoneNumber(phoneNumber, country),\n      new Promise<undefined>((done) => setTimeout(() => done(undefined), 2000)),\n    ]);\n\n    if (!parsedPhoneNumber) {\n      return fallback;\n    }\n\n    return parsedPhoneNumber;\n  } catch {\n    return fallback;\n  }\n};\n"],"names":["formatNumber","parsePhoneNumber","phoneNumber","country","parsedPhoneNumber","Promise","race","done","setTimeout","undefined","national","formatNumberToIncludeCountryCode","code","COUNTRIES_LIST","fallbackNumber","fallback","isValid","number"],"mappings":";;AAUA;AACO,MAAMA,eAAe,OAAO,EAAEC,gBAAgB,EAAEC,WAAW,EAAEC,OAAO,EAAoB,GAAA;IAC7F,IAAI;AACF,QAAA,MAAMC,iBAAAA,GAAoB,MAAMC,OAAAA,CAAQC,IAAI,CAAC;AAC3CL,YAAAA,gBAAAA,CAAiBC,WAAAA,EAAaC,OAAAA,CAAAA;AAC9B,YAAA,IAAIE,QAAmB,CAACE,IAAAA,GAASC,UAAAA,CAAW,IAAMD,KAAKE,SAAAA,CAAAA,EAAY,KAAA,CAAA;AACpE,SAAA,CAAA;AAED,QAAA,IAAI,CAACL,iBAAAA,EAAmB;YACtB,OAAOF,WAAAA;AACT,QAAA;AAEA,QAAA,OAAOE,kBAAkBM,QAAQ;AACnC,IAAA,CAAA,CAAE,OAAM;QACN,OAAOR,WAAAA;AACT,IAAA;AACF;AAEA;AACO,MAAMS,mCAAmC,OAAO,EACrDV,gBAAgB,EAChBC,WAAW,EACXC,OAAO,EACoB,GAAA;IAI3B,MAAMS,IAAAA,GAAOC,cAAc,CAACV,OAAAA,CAAQ;AAEpC,IAAA,MAAMW,cAAAA,GAAiB,CAAC,CAAC,EAAEF,OAAOV,WAAAA,CAAAA,CAAa;AAE/C,IAAA,MAAMa,QAAAA,GAAW;QACfC,OAAAA,EAAS,IAAA;QACTC,MAAAA,EAAQH;AACV,KAAA;IACA,IAAI;AACF,QAAA,MAAMV,iBAAAA,GAAoB,MAAMC,OAAAA,CAAQC,IAAI,CAAC;AAC3CL,YAAAA,gBAAAA,CAAiBC,WAAAA,EAAaC,OAAAA,CAAAA;AAC9B,YAAA,IAAIE,QAAmB,CAACE,IAAAA,GAASC,UAAAA,CAAW,IAAMD,KAAKE,SAAAA,CAAAA,EAAY,IAAA,CAAA;AACpE,SAAA,CAAA;AAED,QAAA,IAAI,CAACL,iBAAAA,EAAmB;YACtB,OAAOW,QAAAA;AACT,QAAA;QAEA,OAAOX,iBAAAA;AACT,IAAA,CAAA,CAAE,OAAM;QACN,OAAOW,QAAAA;AACT,IAAA;AACF;;;;"}