UNPKG

10.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/parsePhoneNumber.test.js"],"names":["parsePhoneNumber","parameters","push","metadata","_parsePhoneNumber","apply","parsePhoneNumberFull","metadataFull","describe","it","phoneNumber","country","should","equal","countryCallingCode","nationalNumber","number","isPossible","isValid","getType","expect","to","be","undefined","carrierCode","ext","format","formatNational","formatInternational","getURI"],"mappings":";;AAAA;;AACA;;AACA;;;;AAEA,SAASA,gBAAT,GAAyC;AAAA,oCAAZC,UAAY;AAAZA,IAAAA,UAAY;AAAA;;AACxCA,EAAAA,UAAU,CAACC,IAAX,CAAgBC,uBAAhB;AACA,SAAOC,8BAAkBC,KAAlB,CAAwB,IAAxB,EAA8BJ,UAA9B,CAAP;AACA;;AAED,SAASK,oBAAT,GAA6C;AAAA,qCAAZL,UAAY;AAAZA,IAAAA,UAAY;AAAA;;AAC5CA,EAAAA,UAAU,CAACC,IAAX,CAAgBK,wBAAhB;AACA,SAAOH,8BAAkBC,KAAlB,CAAwB,IAAxB,EAA8BJ,UAA9B,CAAP;AACA;;AAEDO,QAAQ,CAAC,kBAAD,EAAqB,YAAM;AAClCC,EAAAA,EAAE,CAAC,4BAAD,EAA+B,YAAM;AACtC,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,2BAAD,EAA8B,IAA9B,CAApC;AACAU,IAAAA,WAAW,CAACC,OAAZ,CAAoBC,MAApB,CAA2BC,KAA3B,CAAiC,IAAjC;AACAH,IAAAA,WAAW,CAACI,kBAAZ,CAA+BF,MAA/B,CAAsCC,KAAtC,CAA4C,GAA5C;AACAH,IAAAA,WAAW,CAACK,cAAZ,CAA2BH,MAA3B,CAAkCC,KAAlC,CAAwC,YAAxC;AACAH,IAAAA,WAAW,CAACM,MAAZ,CAAmBJ,MAAnB,CAA0BC,KAA1B,CAAgC,cAAhC;AACAH,IAAAA,WAAW,CAACO,UAAZ,GAAyBL,MAAzB,CAAgCC,KAAhC,CAAsC,IAAtC;AACAH,IAAAA,WAAW,CAACQ,OAAZ,GAAsBN,MAAtB,CAA6BC,KAA7B,CAAmC,IAAnC,EAPsC,CAQtC;AACA;;AACAP,IAAAA,oBAAoB,CAAC,2BAAD,EAA8B,IAA9B,CAApB,CAAwDa,OAAxD,GAAkEP,MAAlE,CAAyEC,KAAzE,CAA+E,WAA/E;AACA,GAXC,CAAF;AAaAJ,EAAAA,EAAE,CAAC,iDAAD,EAAoD,YAAM;AAC3D,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,kBAAD,CAApC;AACAoB,IAAAA,MAAM,CAACV,WAAW,CAACC,OAAb,CAAN,CAA4BU,EAA5B,CAA+BC,EAA/B,CAAkCC,SAAlC;AACAb,IAAAA,WAAW,CAACI,kBAAZ,CAA+BF,MAA/B,CAAsCC,KAAtC,CAA4C,GAA5C;AACAH,IAAAA,WAAW,CAACK,cAAZ,CAA2BH,MAA3B,CAAkCC,KAAlC,CAAwC,YAAxC;AACA,GALC,CAAF;AAOAJ,EAAAA,EAAE,CAAC,2BAAD,EAA8B,YAAM;AACrC,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,mBAAD,EAAsB,IAAtB,CAApC;AACAU,IAAAA,WAAW,CAACc,WAAZ,CAAwBZ,MAAxB,CAA+BC,KAA/B,CAAqC,IAArC;AACA,GAHC,CAAF;AAKAJ,EAAAA,EAAE,CAAC,8BAAD,EAAiC,YAAM;AACxC,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,qCAAD,EAAwC,IAAxC,CAApC;AACAU,IAAAA,WAAW,CAACe,GAAZ,CAAgBb,MAAhB,CAAuBC,KAAvB,CAA6B,MAA7B;AACA,GAHC,CAAF;AAKAJ,EAAAA,EAAE,CAAC,wEAAD,EAA2E,YAAM;AAClFT,IAAAA,gBAAgB,CAAC,eAAD,CAAhB,CAAkCkB,OAAlC,GAA4CN,MAA5C,CAAmDC,KAAnD,CAAyD,IAAzD;AACAb,IAAAA,gBAAgB,CAAC,eAAD,CAAhB,CAAkCkB,OAAlC,GAA4CN,MAA5C,CAAmDC,KAAnD,CAAyD,KAAzD;AACA,GAHC,CAAF;AAKAJ,EAAAA,EAAE,CAAC,uBAAD,EAA0B,YAAM;AACjC,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,2BAAD,EAA8B,IAA9B,CAApC;AACAU,IAAAA,WAAW,CAACgB,MAAZ,CAAmB,UAAnB,EAA+Bd,MAA/B,CAAsCC,KAAtC,CAA4C,mBAA5C;AACAH,IAAAA,WAAW,CAACiB,cAAZ,GAA6Bf,MAA7B,CAAoCC,KAApC,CAA0C,mBAA1C;AACAH,IAAAA,WAAW,CAACgB,MAAZ,CAAmB,eAAnB,EAAoCd,MAApC,CAA2CC,KAA3C,CAAiD,kBAAjD;AACAH,IAAAA,WAAW,CAACkB,mBAAZ,GAAkChB,MAAlC,CAAyCC,KAAzC,CAA+C,kBAA/C;AACA,GANC,CAAF;AAQAJ,EAAAA,EAAE,CAAC,qBAAD,EAAwB,YAAM;AAC/B,QAAMC,WAAW,GAAGV,gBAAgB,CAAC,qCAAD,EAAwC,IAAxC,CAApC;AACAU,IAAAA,WAAW,CAACmB,MAAZ,GAAqBjB,MAArB,CAA4BC,KAA5B,CAAkC,2BAAlC;AACA,GAHC,CAAF;AAKAJ,EAAAA,EAAE,CAAC,2BAAD,EAA8B,YAAM;AACrCW,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,cAAD,EAAiB,CAAC,CAAlB,EAAqB,EAArB,CAAtB;AAAA,KAAD,CAAN,CAAuDqB,EAAvD,UAAgE,yBAAhE;AACA,GAFC,CAAF;AAIAZ,EAAAA,EAAE,CAAC,2BAAD,EAA8B,YAAM;AACrCW,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,YAAD,EAAe,IAAf,CAAtB;AAAA,KAAD,CAAN,CAAmDqB,EAAnD,UAA4D,iBAA5D;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,GAAD,EAAM,IAAN,CAAtB;AAAA,KAAD,CAAN,CAA0CqB,EAA1C,UAAmD,cAAnD,EAFqC,CAGrC;AACA;;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,MAAD,CAAtB;AAAA,KAAD,CAAN,CAAuCqB,EAAvC,UAAgD,WAAhD;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,MAAD,CAAtB;AAAA,KAAD,CAAN,CAAuCqB,EAAvC,UAAgD,WAAhD;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,sBAAD,EAAyB,IAAzB,CAAtB;AAAA,KAAD,CAAN,CAA6DqB,EAA7D,UAAsE,UAAtE;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,mBAAD,CAAtB;AAAA,KAAD,CAAN,CAAoDqB,EAApD,UAA6D,iBAA7D;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,aAAD,CAAtB;AAAA,KAAD,CAAN,CAA8CqB,EAA9C,UAAuD,iBAAvD;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,aAAD,EAAgB,IAAhB,CAAtB;AAAA,KAAD,CAAN,CAAoDqB,EAApD,UAA6D,iBAA7D;AACAD,IAAAA,MAAM,CAAC;AAAA,aAAMpB,gBAAgB,CAAC,6PAAD,EAAgQ,IAAhQ,CAAtB;AAAA,KAAD,CAAN,CAAoSqB,EAApS,UAA6S,UAA7S;AACA,GAZC,CAAF;AAcAZ,EAAAA,EAAE,CAAC,oDAAD,EAAuD,YAAM;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,QAAIC,WAAJ,CAX8D,CAa9D;;AACAA,IAAAA,WAAW,GAAGV,gBAAgB,CAAC,kBAAD,CAA9B;AACAU,IAAAA,WAAW,CAACK,cAAZ,CAA2BH,MAA3B,CAAkCC,KAAlC,CAAwC,YAAxC;AACAH,IAAAA,WAAW,CAACC,OAAZ,CAAoBC,MAApB,CAA2BC,KAA3B,CAAiC,IAAjC,EAhB8D,CAkB9D;;AACAH,IAAAA,WAAW,GAAGV,gBAAgB,CAAC,kBAAD,CAA9B;AACAU,IAAAA,WAAW,CAACK,cAAZ,CAA2BH,MAA3B,CAAkCC,KAAlC,CAAwC,YAAxC;AACAH,IAAAA,WAAW,CAACC,OAAZ,CAAoBC,MAApB,CAA2BC,KAA3B,CAAiC,IAAjC,EArB8D,CAuB9D;;AACAH,IAAAA,WAAW,GAAGV,gBAAgB,CAAC,iBAAD,CAA9B;AACAU,IAAAA,WAAW,CAACK,cAAZ,CAA2BH,MAA3B,CAAkCC,KAAlC,CAAwC,YAAxC;AACAH,IAAAA,WAAW,CAACC,OAAZ,CAAoBC,MAApB,CAA2BC,KAA3B,CAAiC,IAAjC;AACA,GA3BC,CAAF;AA4BA,CA/FO,CAAR","sourcesContent":["import _parsePhoneNumber from './parsePhoneNumber'\r\nimport metadata from '../metadata.min.json'\r\nimport metadataFull from '../metadata.full.json'\r\n\r\nfunction parsePhoneNumber(...parameters) {\r\n\tparameters.push(metadata)\r\n\treturn _parsePhoneNumber.apply(this, parameters)\r\n}\r\n\r\nfunction parsePhoneNumberFull(...parameters) {\r\n\tparameters.push(metadataFull)\r\n\treturn _parsePhoneNumber.apply(this, parameters)\r\n}\r\n\r\ndescribe('parsePhoneNumber', () => {\r\n\tit('should parse phone numbers', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('Phone: 8 (800) 555 35 35.', 'RU')\r\n\t\tphoneNumber.country.should.equal('RU')\r\n\t\tphoneNumber.countryCallingCode.should.equal('7')\r\n\t\tphoneNumber.nationalNumber.should.equal('8005553535')\r\n\t\tphoneNumber.number.should.equal('+78005553535')\r\n\t\tphoneNumber.isPossible().should.equal(true)\r\n\t\tphoneNumber.isValid().should.equal(true)\r\n\t\t// phoneNumber.isValidForRegion('RU').should.equal(true)\r\n\t\t// Russian phone type regexps aren't included in default metadata.\r\n\t\tparsePhoneNumberFull('Phone: 8 (800) 555 35 35.', 'RU').getType().should.equal('TOLL_FREE')\r\n\t})\r\n\r\n\tit('shouldn\\'t set country when it\\'s non-derivable', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('+7 111 555 35 35')\r\n\t\texpect(phoneNumber.country).to.be.undefined\r\n\t\tphoneNumber.countryCallingCode.should.equal('7')\r\n\t\tphoneNumber.nationalNumber.should.equal('1115553535')\r\n\t})\r\n\r\n\tit('should parse carrier code', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('0 15 21 5555-5555', 'BR')\r\n\t\tphoneNumber.carrierCode.should.equal('15')\r\n\t})\r\n\r\n\tit('should parse phone extension', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('Phone: 8 (800) 555 35 35 ext. 1234.', 'RU')\r\n\t\tphoneNumber.ext.should.equal('1234')\r\n\t})\r\n\r\n\tit('should validate numbers for countries with no type regular expressions', () => {\r\n\t\tparsePhoneNumber('+380391234567').isValid().should.equal(true)\r\n\t\tparsePhoneNumber('+380191234567').isValid().should.equal(false)\r\n\t})\r\n\r\n\tit('should format numbers', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('Phone: 8 (800) 555 35 35.', 'RU')\r\n\t\tphoneNumber.format('NATIONAL').should.equal('8 (800) 555-35-35')\r\n\t\tphoneNumber.formatNational().should.equal('8 (800) 555-35-35')\r\n\t\tphoneNumber.format('INTERNATIONAL').should.equal('+7 800 555 35 35')\r\n\t\tphoneNumber.formatInternational().should.equal('+7 800 555 35 35')\r\n\t})\r\n\r\n\tit('should get tel: URI', () => {\r\n\t\tconst phoneNumber = parsePhoneNumber('Phone: 8 (800) 555 35 35 ext. 1234.', 'RU')\r\n\t\tphoneNumber.getURI().should.equal('tel:+78005553535;ext=1234')\r\n\t})\r\n\r\n\tit('should work in edge cases', () => {\r\n\t\texpect(() => parsePhoneNumber('+78005553535', -1, {})).to.throw('Invalid second argument')\r\n\t})\r\n\r\n\tit('should throw parse errors', () => {\r\n\t\texpect(() => parsePhoneNumber('8005553535', 'XX')).to.throw('INVALID_COUNTRY')\r\n\t\texpect(() => parsePhoneNumber('8', 'RU')).to.throw('NOT_A_NUMBER')\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t// expect(() => parsePhoneNumber('11', 'RU')).to.throw('TOO_SHORT')\r\n\t\texpect(() => parsePhoneNumber('+443')).to.throw('TOO_SHORT')\r\n\t\texpect(() => parsePhoneNumber('+370')).to.throw('TOO_SHORT')\r\n\t\texpect(() => parsePhoneNumber('88888888888888888888', 'RU')).to.throw('TOO_LONG')\r\n\t\texpect(() => parsePhoneNumber('8 (800) 555 35 35')).to.throw('INVALID_COUNTRY')\r\n\t\texpect(() => parsePhoneNumber('+9991112233')).to.throw('INVALID_COUNTRY')\r\n\t\texpect(() => parsePhoneNumber('+9991112233', 'US')).to.throw('INVALID_COUNTRY')\r\n\t\texpect(() => parsePhoneNumber('8005553535 ', 'RU')).to.throw('TOO_LONG')\r\n\t})\r\n\r\n\tit('should parse incorrect international phone numbers', () => {\r\n\t\t// Parsing national prefixes and carrier codes\r\n\t\t// is only required for local phone numbers\r\n\t\t// but some people don't understand that\r\n\t\t// and sometimes write international phone numbers\r\n\t\t// with national prefixes (or maybe even carrier codes).\r\n\t\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t\t// Google's original library forgives such mistakes\r\n\t\t// and so does this library, because it has been requested:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\r\n\t\tlet phoneNumber\r\n\r\n\t\t// For complete numbers it should strip national prefix.\r\n\t\tphoneNumber = parsePhoneNumber('+1 1877 215 5230')\r\n\t\tphoneNumber.nationalNumber.should.equal('8772155230')\r\n\t\tphoneNumber.country.should.equal('US')\r\n\r\n\t\t// For complete numbers it should strip national prefix.\r\n\t\tphoneNumber = parsePhoneNumber('+7 8800 555 3535')\r\n\t\tphoneNumber.nationalNumber.should.equal('8005553535')\r\n\t\tphoneNumber.country.should.equal('RU')\r\n\r\n\t\t// For incomplete numbers it shouldn't strip national prefix.\r\n\t\tphoneNumber = parsePhoneNumber('+7 8800 555 353')\r\n\t\tphoneNumber.nationalNumber.should.equal('8800555353')\r\n\t\tphoneNumber.country.should.equal('RU')\r\n\t})\r\n})\r\n"],"file":"parsePhoneNumber.test.js"}
\No newline at end of file