PATH:
opt
/
bitninja-dispatcher
/
node_modules
/
libphonenumber-js
/
es6
/
helpers
{"version":3,"file":"getCountryByCallingCode.js","names":["Metadata","getNumberType","USE_NON_GEOGRAPHIC_COUNTRY_CODE","getCountryByCallingCode","callingCode","nationalPhoneNumber","metadata","isNonGeographicCallingCode","possibleCountries","getCountryCodesForCallingCode","length","selectCountryFromList","country","leadingDigits","search","phone","undefined"],"sources":["../../source/helpers/getCountryByCallingCode.js"],"sourcesContent":["import Metadata from '../metadata.js'\r\nimport getNumberType from './getNumberType.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\t// Is always non-empty, because `callingCode` is always valid\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata)\r\n}\r\n\r\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\tfor (const country of possibleCountries) {\r\n\t\tmetadata.country(country)\r\n\t\t// Leading digits check would be the simplest and fastest one.\r\n\t\t// Leading digits patterns are only defined for about 20% of all countries.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// Matching \"leading digits\" is a sufficient but not necessary condition.\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\treturn country\r\n\t\t}\r\n\t}\r\n}"],"mappings":";;;;;;AAAA,OAAOA,QAAP,MAAqB,gBAArB;AACA,OAAOC,aAAP,MAA0B,oBAA1B;AAEA,IAAMC,+BAA+B,GAAG,KAAxC;AAEA,eAAe,SAASC,uBAAT,CAAiCC,WAAjC,EAA8CC,mBAA9C,EAAmEC,QAAnE,EAA6E;EAC3F;EACA,IAAIJ,+BAAJ,EAAqC;IACpC,IAAII,QAAQ,CAACC,0BAAT,CAAoCH,WAApC,CAAJ,EAAsD;MACrD,OAAO,KAAP;IACA;EACD,CAN0F,CAO3F;;;EACA,IAAMI,iBAAiB,GAAGF,QAAQ,CAACG,6BAAT,CAAuCL,WAAvC,CAA1B;;EACA,IAAI,CAACI,iBAAL,EAAwB;IACvB;EACA,CAX0F,CAY3F;EACA;;;EACA,IAAIA,iBAAiB,CAACE,MAAlB,KAA6B,CAAjC,EAAoC;IACnC,OAAOF,iBAAiB,CAAC,CAAD,CAAxB;EACA;;EACD,OAAOG,qBAAqB,CAACH,iBAAD,EAAoBH,mBAApB,EAAyCC,QAAQ,CAACA,QAAlD,CAA5B;AACA;;AAED,SAASK,qBAAT,CAA+BH,iBAA/B,EAAkDH,mBAAlD,EAAuEC,QAAvE,EAAiF;EAChF;EACAA,QAAQ,GAAG,IAAIN,QAAJ,CAAaM,QAAb,CAAX;;EACA,qDAAsBE,iBAAtB,wCAAyC;IAAA,IAA9BI,OAA8B;IACxCN,QAAQ,CAACM,OAAT,CAAiBA,OAAjB,EADwC,CAExC;IACA;IACA;IACA;;IACA,IAAIN,QAAQ,CAACO,aAAT,EAAJ,EAA8B;MAC7B,IAAIR,mBAAmB,IACtBA,mBAAmB,CAACS,MAApB,CAA2BR,QAAQ,CAACO,aAAT,EAA3B,MAAyD,CAD1D,EAC6D;QAC5D,OAAOD,OAAP;MACA;IACD,CALD,CAMA;IACA;IAPA,KAQK,IAAIX,aAAa,CAAC;MAAEc,KAAK,EAAEV,mBAAT;MAA8BO,OAAO,EAAPA;IAA9B,CAAD,EAA0CI,SAA1C,EAAqDV,QAAQ,CAACA,QAA9D,CAAjB,EAA0F;MAC9F,OAAOM,OAAP;IACA;EACD;AACD"}
[-] formatNationalNumberUsingFormat.js.map
[edit]
[-] applyInternationalSeparatorStyle.js.map
[edit]
[-] extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js
[edit]
[-] getNumberType.js
[edit]
[-] getNumberType.js.map
[edit]
[-] extractNationalNumberFromPossiblyIncompleteNumber.test.js
[edit]
[-] applyInternationalSeparatorStyle.js
[edit]
[+]
..
[-] checkNumberLength.js
[edit]
[-] getNumberType.test.js.map
[edit]
[-] extractNationalNumber.js
[edit]
[-] stripIddPrefix.test.js
[edit]
[-] formatNationalNumberUsingFormat.js
[edit]
[-] applyInternationalSeparatorStyle.test.js
[edit]
[-] extractNationalNumber.test.js
[edit]
[-] extractNationalNumber.js.map
[edit]
[-] extractNationalNumberFromPossiblyIncompleteNumber.test.js.map
[edit]
[-] parseDigits.js.map
[edit]
[-] isViablePhoneNumber.js
[edit]
[-] mergeArrays.test.js
[edit]
[-] mergeArrays.test.js.map
[edit]
[-] parseDigits.js
[edit]
[-] getIddPrefix.js.map
[edit]
[-] stripIddPrefix.js
[edit]
[-] RFC3966.js.map
[edit]
[-] matchesEntirely.test.js
[edit]
[-] checkNumberLength.test.js
[edit]
[-] RFC3966.test.js.map
[edit]
[-] extractNationalNumber.test.js.map
[edit]
[-] extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map
[edit]
[-] extractNationalNumberFromPossiblyIncompleteNumber.js.map
[edit]
[-] extractCountryCallingCode.test.js.map
[edit]
[-] RFC3966.js
[edit]
[-] getCountryByCallingCode.js.map
[edit]
[-] checkNumberLength.js.map
[edit]
[-] parseDigits.test.js.map
[edit]
[-] matchesEntirely.test.js.map
[edit]
[-] getNumberType.test.js
[edit]
[-] isViablePhoneNumber.js.map
[edit]
[-] matchesEntirely.js.map
[edit]
[-] matchesEntirely.js
[edit]
[-] getCountryByCallingCode.js
[edit]
[-] stripIddPrefix.test.js.map
[edit]
[-] stripIddPrefix.js.map
[edit]
[-] extractCountryCallingCode.test.js
[edit]
[-] getIddPrefix.js
[edit]
[-] RFC3966.test.js
[edit]
[-] parseDigits.test.js
[edit]
[-] checkNumberLength.test.js.map
[edit]
[-] extractCountryCallingCode.js.map
[edit]
[-] extractCountryCallingCode.js
[edit]
[-] applyInternationalSeparatorStyle.test.js.map
[edit]
[-] extractNationalNumberFromPossiblyIncompleteNumber.js
[edit]
[-] mergeArrays.js
[edit]
[-] mergeArrays.js.map
[edit]
[+]
extension