{"version":3,"sources":["../source/isPossibleNumber_.js"],"names":["Metadata","checkNumberLengthForType","isPossiblePhoneNumber","input","options","metadata","undefined","v2","countryCallingCode","Error","chooseCountryByCountryCallingCode","phone","country","hasCountry","possibleLengths","isPossibleNumber","nationalNumber","isNonGeographicCallingCode","isInternational"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,YAArB;AACA,SAASC,wBAAT,QAAyC,kBAAzC;AAEA,eAAe,SAASC,qBAAT,CAA+BC,KAA/B,EAAsCC,OAAtC,EAA+CC,QAA/C,EACf;AACC;AACA,MAAID,OAAO,KAAKE,SAAhB,EAA2B;AAC1BF,IAAAA,OAAO,GAAG,EAAV;AACA;;AAEDC,EAAAA,QAAQ,GAAG,IAAIL,QAAJ,CAAaK,QAAb,CAAX;;AAEA,MAAID,OAAO,CAACG,EAAZ,EAAgB;AACf,QAAI,CAACJ,KAAK,CAACK,kBAAX,EAA+B;AAC9B,YAAM,IAAIC,KAAJ,CAAU,oCAAV,CAAN;AACA;;AACDJ,IAAAA,QAAQ,CAACK,iCAAT,CAA2CP,KAAK,CAACK,kBAAjD;AACA,GALD,MAKO;AACN,QAAI,CAACL,KAAK,CAACQ,KAAX,EAAkB;AACjB,aAAO,KAAP;AACA;;AACD,QAAIR,KAAK,CAACS,OAAV,EAAmB;AAClB,UAAI,CAACP,QAAQ,CAACQ,UAAT,CAAoBV,KAAK,CAACS,OAA1B,CAAL,EAAyC;AACxC,cAAM,IAAIH,KAAJ,4BAA8BN,KAAK,CAACS,OAApC,EAAN;AACA;;AACDP,MAAAA,QAAQ,CAACO,OAAT,CAAiBT,KAAK,CAACS,OAAvB;AACA,KALD,MAKO;AACN,UAAI,CAACT,KAAK,CAACK,kBAAX,EAA+B;AAC9B,cAAM,IAAIC,KAAJ,CAAU,oCAAV,CAAN;AACA;;AACDJ,MAAAA,QAAQ,CAACK,iCAAT,CAA2CP,KAAK,CAACK,kBAAjD;AACA;AACD;;AAED,MAAIH,QAAQ,CAACS,eAAT,EAAJ,EAAgC;AAC/B,WAAOC,gBAAgB,CAACZ,KAAK,CAACQ,KAAN,IAAeR,KAAK,CAACa,cAAtB,EAAsCV,SAAtC,EAAiDD,QAAjD,CAAvB;AACA,GAFD,MAEO;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAIF,KAAK,CAACK,kBAAN,IAA4BH,QAAQ,CAACY,0BAAT,CAAoCd,KAAK,CAACK,kBAA1C,CAAhC,EAA+F;AAC9F;AACA;AACA,aAAO,IAAP;AACA,KAJD,MAIO;AACN,YAAM,IAAIC,KAAJ,CAAU,gGAAV,CAAN;AACA;AACD;AACD;AAED,OAAO,SAASM,gBAAT,CAA0BC,cAA1B,EAA0CE,eAA1C,EAA2Db,QAA3D,EAAqE;AAC3E,UAAQJ,wBAAwB,CAACe,cAAD,EAAiBV,SAAjB,EAA4BD,QAA5B,CAAhC;AACC,SAAK,aAAL;AACC,aAAO,IAAP;AACD;AACA;;AACA;AACC,aAAO,KAAP;AANF;AAQA","sourcesContent":["import Metadata from './metadata'\r\nimport { checkNumberLengthForType } from './getNumberType_'\r\n\r\nexport default function isPossiblePhoneNumber(input, options, metadata)\r\n{\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.chooseCountryByCountryCallingCode(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.country(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.chooseCountryByCountryCallingCode(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, undefined, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, isInternational, metadata) {\r\n\tswitch (checkNumberLengthForType(nationalNumber, undefined, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}"],"file":"isPossibleNumber_.js"}