UNPKG

15.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/findPhoneNumbers.test.js"],"names":["findNumbers","searchPhoneNumbers","PhoneNumberSearch","metadata","describe","it","should","deep","equal","phone","country","startsAt","endsAt","leniency","ext","expected_numbers","number","shift","length","thrower","possibleNumbers","extended","finder","defaultCountry","hasNext","next","undefined","search"],"mappings":"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","sourcesContent":["// This is a legacy function.\r\n// Use `findNumbers()` instead.\r\n\r\nimport findNumbers, { searchPhoneNumbers } from './findPhoneNumbers'\r\nimport { PhoneNumberSearch } from './findPhoneNumbers_'\r\nimport metadata from '../metadata.min.json'\r\n\r\ndescribe('findPhoneNumbers', () => {\r\n\tit('should find numbers', () => {\r\n\t\tfindNumbers('2133734253', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 10\r\n\t\t}])\r\n\r\n\t\tfindNumbers('(213) 373-4253', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 14\r\n\t\t}])\r\n\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}])\r\n\r\n\t\t// Opening parenthesis issue.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/252\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 (that\\'s not even in the same country!) as written in the document.', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}])\r\n\r\n\t\t// No default country.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Passing `options` and default country.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', 'US', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Passing `options`.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Not a phone number and a phone number.\r\n\t\tfindNumbers('Digits 12 are not a number, but +7 (800) 555-35-35 is.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 32,\r\n\t\t\tendsAt : 50\r\n\t\t}])\r\n\r\n\t\t// Phone number extension.\r\n\t\tfindNumbers('Date 02/17/2018 is not a number, but +7 (800) 555-35-35 ext. 123 is.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\text : '123',\r\n\t\t\tstartsAt : 37,\r\n\t\t\tendsAt : 64\r\n\t\t}])\r\n\t})\r\n\r\n\tit('shouldn\\'t find non-valid numbers', () => {\r\n\t\t// Not a valid phone number for US.\r\n\t\tfindNumbers('1111111111', 'US', metadata).should.deep.equal([])\r\n\t})\r\n\r\n\tit('should find non-European digits', () => {\r\n\t\t// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n\t\tfindNumbers('العَرَبِيَّة‎ +٤٤٣٣٣٣٣٣٣٣٣٣عَرَبِيّ‎', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'GB',\r\n\t\t\tphone : '3333333333',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 27\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should iterate', () => {\r\n\t\tconst expected_numbers = [{\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2133734253',\r\n\t\t\t// number : '(213) 373-4253',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}]\r\n\r\n\t\tfor (const number of searchPhoneNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', 'US', metadata)) {\r\n\t\t\tnumber.should.deep.equal(expected_numbers.shift())\r\n\t\t}\r\n\r\n\t\texpected_numbers.length.should.equal(0)\r\n\t})\r\n\r\n\tit('should work in edge cases', () => {\r\n\t\tlet thrower\r\n\r\n\t\t// No input\r\n\t\tfindNumbers('', metadata).should.deep.equal([])\r\n\r\n\t\t// No country metadata for this `require` country code\r\n\t\tthrower = () => findNumbers('123', 'ZZ', metadata)\r\n\t\tthrower.should.throw('Unknown country')\r\n\r\n\t\t// Numerical `value`\r\n\t\tthrower = () => findNumbers(2141111111, 'US')\r\n\t\tthrower.should.throw('A text for parsing must be a string.')\r\n\r\n\t\t// // No metadata\r\n\t\t// thrower = () => findNumbers('')\r\n\t\t// thrower.should.throw('`metadata` argument not passed')\r\n\t})\r\n\r\n\tit('shouldn\\'t find phone numbers which are not phone numbers', () => {\r\n\t\t// A timestamp.\r\n\t\tfindNumbers('2012-01-02 08:00', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// A valid number (not a complete timestamp).\r\n\t\tfindNumbers('2012-01-02 08', 'US', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2012010208',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 13\r\n\t\t}])\r\n\r\n\t\t// Invalid parens.\r\n\t\tfindNumbers('213(3734253', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// Letters after phone number.\r\n\t\tfindNumbers('2133734253a', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// Valid phone (same as the one found in the UUID below).\r\n\t\tfindNumbers('The phone number is 231354125.', 'FR', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'FR',\r\n\t\t\tphone : '231354125',\r\n\t\t\tstartsAt : 20,\r\n\t\t\tendsAt : 29\r\n\t\t}])\r\n\r\n\t\t// Not a phone number (part of a UUID).\r\n\t\t// Should parse in `{ extended: true }` mode.\r\n\t\tconst possibleNumbers = findNumbers('The UUID is CA801c26f98cd16e231354125ad046e40b.', 'FR', { extended: true }, metadata)\r\n\t\tpossibleNumbers.length.should.equal(3)\r\n\t\tpossibleNumbers[1].country.should.equal('FR')\r\n\t\tpossibleNumbers[1].phone.should.equal('231354125')\r\n\r\n\t\t// Not a phone number (part of a UUID).\r\n\t\t// Shouldn't parse by default.\r\n\t\tfindNumbers('The UUID is CA801c26f98cd16e231354125ad046e40b.', 'FR', metadata).should.deep.equal([])\r\n\t})\r\n})\r\n\r\ndescribe('PhoneNumberSearch', () => {\r\n\tit('should search for phone numbers', () => {\r\n\t\tconst finder = new PhoneNumberSearch('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', { defaultCountry: 'US' }, metadata)\r\n\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t})\r\n\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2133734253',\r\n\t\t\t// number : '(213) 373-4253',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t})\r\n\r\n\t\tfinder.hasNext().should.equal(false)\r\n\t})\r\n\r\n\tit('should search for phone numbers (no options)', () => {\r\n\t\tconst finder = new PhoneNumberSearch('The number is +7 (800) 555-35-35', undefined, metadata)\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t})\r\n\t\tfinder.hasNext().should.equal(false)\r\n\t})\r\n\r\n\tit('should work in edge cases', () => {\r\n\t\t// No options\r\n\t\tconst search = new PhoneNumberSearch('', undefined, metadata)\r\n\r\n\t\t// No next element\r\n\t\tlet thrower = () => search.next()\r\n\t\tthrower.should.throw('No next element')\r\n\t})\r\n})"],"file":"findPhoneNumbers.test.js"}
\No newline at end of file