UNPKG

fullstack-phone

Version:

A dual-module phone number system with dynamic regional metadata

1,020 lines (624 loc) 16.7 kB
# Changelog ## 1.192.0 * Metadata: * Updated to libphonenumber v9.0.20 ## 1.191.0 * Metadata: * Updated to libphonenumber v9.0.19 ## 1.190.0 * Metadata: * Updated to libphonenumber v9.0.18 ## 1.189.0 * Metadata: * Updated to libphonenumber v9.0.17 ## 1.188.0 * Metadata: * Updated to libphonenumber v9.0.16 ## 1.187.0 * Metadata: * Updated to libphonenumber v9.0.15 ## 1.186.0 * Metadata: * Updated to libphonenumber v9.0.14 ## 1.185.0 * Metadata: * Updated to libphonenumber v9.0.13 ## 1.184.0 * Metadata: * Updated to libphonenumber v9.0.12 ## 1.183.0 * Metadata: * Updated to libphonenumber v9.0.11 ## 1.182.0 * Metadata: * Updated to libphonenumber v9.0.10 ## 1.181.0 * Metadata: * Updated to libphonenumber v9.0.9 ## 1.180.0 * Metadata: * Updated to libphonenumber v9.0.8 ## 1.179.0 * Metadata: * Updated to libphonenumber v9.0.7 ## 1.178.0 * Metadata: * Updated to libphonenumber v9.0.6 ## 1.177.0 * Metadata: * Updated to libphonenumber v9.0.5 ## 1.176.0 * Metadata: * Updated to libphonenumber v9.0.4 ## 1.175.0 * Metadata: * Updated to libphonenumber v9.0.3 ## 1.174.0 * Metadata: * Updated to libphonenumber v9.0.2 ## 1.173.0 * Metadata: * Updated to libphonenumber v9.0.1 ## 1.172.0 * Metadata: * Updated to libphonenumber v9.0.0 ## 1.171.0 * Metadata: * Updated to libphonenumber v8.13.55 ## 1.170.0 * Metadata: * Updated to libphonenumber v8.13.54 ## 1.169.0 * Metadata: * Updated to libphonenumber v8.13.53 ## 1.168.0 * Metadata: * Updated to libphonenumber v8.13.52 ## 1.167.0 * Metadata: * Updated to libphonenumber v8.13.51 ## 1.166.0 * Metadata: * Updated to libphonenumber v8.13.50 ## 1.165.0 * Metadata: * Updated to libphonenumber v8.13.49 ## 1.164.0 * Metadata: * Updated to libphonenumber v8.13.48 ## 1.163.0 * Metadata: * Updated to libphonenumber v8.13.47 ## 1.162.0 * Metadata: * Updated to libphonenumber v8.13.46 ## 1.161.0 * Metadata: * Updated to libphonenumber v8.13.45 ## 1.160.0 * Metadata: * Updated to libphonenumber v8.13.44 ## 1.159.0 * Metadata: * Updated to libphonenumber v8.13.43 ## 1.158.0 * Metadata: * Updated to libphonenumber v8.13.42 ## 1.157.0 * Metadata: * Updated to libphonenumber v8.13.40 ## 1.156.0 * Metadata: * Updated to libphonenumber v8.13.39 ## 1.155.0 * Metadata: * Updated to libphonenumber v8.13.38 ## 1.154.0 * Metadata: * Updated to libphonenumber v8.13.37 ## 1.153.0 * Metadata: * Updated to libphonenumber v8.13.36 ## 1.152.0 * Metadata: * Updated to libphonenumber v8.13.35 ## 1.151.0 * Metadata: * Updated to libphonenumber v8.13.34 ## 1.150.0 * Metadata: * Updated to libphonenumber v8.13.33 ## 1.149.0 * Added Typescript declaration files ## 1.148.0 * Metadata: * Updated to libphonenumber v8.13.32 ## 1.147.1 * Bugfix: * Restored `client/index.js` to ES5 (was generated with ESNEXT in v1.142.0) ## 1.147.0 * Metadata: * Updated to libphonenumber v8.13.31 ## 1.146.0 * Metadata: * Updated to libphonenumber v8.13.30 ## 1.145.0 * Metadata: * Updated to libphonenumber v8.13.29 ## 1.144.0 * Metadata: * Updated to libphonenumber v8.13.28 ## 1.143.0 * Metadata: * Updated to libphonenumber v8.13.27 ## 1.142.0 * Upgraded to Google Closure Compiler and Library 20230802.0.0 * Client: Replaced global scope modification with proper CJS support using module.exports ## 1.141.0 * Metadata: * Updated to libphonenumber v8.13.26 ## 1.140.0 * Metadata: * Updated to libphonenumber v8.13.25 ## 1.139.0 * Metadata: * Updated to libphonenumber v8.13.24 ## 1.138.0 * Metadata: * Updated to libphonenumber v8.13.23 ## 1.137.0 * Metadata: * Updated to libphonenumber v8.13.22 ## 1.136.0 * Metadata: * Updated to libphonenumber v8.13.21 ## 1.135.0 * Metadata: * Updated to libphonenumber v8.13.20 ## 1.134.0 * Metadata: * Updated to libphonenumber v8.13.19 ## 1.133.0 * Metadata: * Updated to libphonenumber v8.13.18 ## 1.132.0 * Metadata: * Updated to libphonenumber v8.13.17 ## 1.131.0 * Metadata: * Updated to libphonenumber v8.13.16 ## 1.130.0 * Metadata: * Updated to libphonenumber v8.13.15 ## 1.129.0 * Metadata: * Updated to libphonenumber v8.13.14 ## 1.128.0 * Metadata: * Updated to libphonenumber v8.13.13 ## 1.127.0 * Metadata: * Updated to libphonenumber v8.13.11 ## 1.126.0 * Metadata: * Updated to libphonenumber v8.13.10 ## 1.125.0 * Metadata: * Updated to libphonenumber v8.13.9 ## 1.124.0 * Metadata: * Updated to libphonenumber v8.13.8 ## 1.123.0 * Metadata: * Updated to libphonenumber v8.13.7 ## 1.122.0 * Metadata: * Updated to libphonenumber v8.13.6 ## 1.121.0 * Metadata: * Updated to libphonenumber v8.13.5 ## 1.120.0 * Metadata: * Updated to libphonenumber v8.13.4 ## 1.119.0 * Metadata: * Updated to libphonenumber v8.13.3 ## 1.118.0 * Metadata: * Updated to libphonenumber v8.13.2 ## 1.117.0 * Metadata: * Updated to libphonenumber v8.13.1 ## 1.116.0 * Metadata: * Updated to libphonenumber v8.13.0 ## 1.115.0 * Metadata: * Updated to libphonenumber v8.12.57 ## 1.114.0 * Metadata: * Updated to libphonenumber v8.12.56 ## 1.113.0 * Metadata: * Updated to libphonenumber v8.12.55 ## 1.112.0 * Metadata: * Updated to libphonenumber v8.12.54 ## 1.111.0 * Metadata: * Updated to libphonenumber v8.12.53 ## 1.110.0 * Metadata: * Updated to libphonenumber v8.12.52 ## 1.109.0 * Metadata: * Updated to libphonenumber v8.12.51 ## 1.108.0 * Metadata: * Updated to libphonenumber v8.12.50 ## 1.107.0 * Metadata: * Updated to libphonenumber v8.12.49 ## 1.106.0 * Metadata: * Updated to libphonenumber v8.12.48 ## 1.105.0 * Metadata: * Updated to libphonenumber v8.12.47 ## 1.104.0 * Metadata: * Updated to libphonenumber v8.12.46 ## 1.103.0 * Metadata: * Updated to libphonenumber v8.12.45 ## 1.102.0 * Metadata: * Updated to libphonenumber v8.12.44 ## 1.101.0 * Metadata: * Updated to libphonenumber v8.12.43 ## 1.100.0 * Metadata: * Updated to libphonenumber v8.12.42 ## 1.99.0 * Metadata: * Updated to libphonenumber v8.12.41 ## 1.98.0 * Metadata: * Updated to libphonenumber v8.12.40 ## 1.97.0 * Metadata: * Updated to libphonenumber v8.12.39 ## 1.96.0 * Metadata: * Updated to libphonenumber v8.12.38 ## 1.95.0 * Metadata: * Updated to libphonenumber v8.12.37 ## 1.94.0 * Metadata: * Updated to libphonenumber v8.12.36 ## 1.93.0 * Metadata: * Updated to libphonenumber v8.12.35 ## 1.92.0 * Metadata: * Updated to libphonenumber v8.12.34 ## 1.91.0 * Metadata: * Updated to libphonenumber v8.12.33 ## 1.90.0 * Metadata: * Updated to libphonenumber v8.12.32 ## 1.89.0 * API: * Updated [`validatePhoneNumber`](./README.md#validatephonenumber) and [`parsePhoneNumber`](./README.md#parsephonenumber) to make `regionCode` parameter optional * `validatePhoneNumber`: If `regionCode` is omitted, the phone number is validated based on the region inferred from the phone number itself * `parsePhoneNumber`: The `regionCode` can be safely omitted if the phone number string contains "+" followed by the country code (e.g., international, E.164, or RFC3966 formats) * Note that the handler needs to have already been instantiated with metadata for the expected region(s) * Added [`inferPhoneNumberType`](./README.md#inferphonenumbertype) and [`inferPhoneNumberRegion`](./README.md#inferphonenumberregion) methods * Added [`validateLength`](./README.md#validatelength) method to perform length-only validations * Added [`inputDigitAndRememberPosition`](./README.md#inputdigitandrememberposition) and [`getRememberedPosition`](./README.md#getrememberedposition) methods to the AsYouTypeFormatter ## 1.88.0 * Metadata: * Updated to libphonenumber v8.12.31 ## 1.87.0 * Metadata: * Updated to libphonenumber v8.12.30 ## 1.86.0 * Metadata: * Updated to libphonenumber v8.12.28 ## 1.85.0 * Metadata: * Updated to libphonenumber v8.12.27 ## 1.84.0 * Metadata: * Updated to libphonenumber v8.12.26 ## 1.83.0 * Metadata: * Updated to libphonenumber v8.12.25 ## 1.82.0 * Metadata: * Updated to libphonenumber v8.12.24 ## 1.80.0 * Metadata: * Updated to libphonenumber v8.12.23 ## 1.79.0 * Metadata: * Updated to libphonenumber v8.12.22 ## 1.78.0 * Metadata: * Updated to libphonenumber v8.12.21 ## 1.77.0 * Metadata: * Updated to libphonenumber v8.12.18 ## 1.76.0 * Metadata: * Updated to libphonenumber v8.12.17 ## 1.75.0 * Metadata: * Updated to libphonenumber v8.12.16 ## 1.74.0 * Switched build from Google Closure Compiler Service to [google-closure-compiler npm package](https://www.npmjs.com/package/google-closure-compiler) ## 1.73.0 * Metadata: * Updated to libphonenumber v8.12.15 ## 1.72.0 * Metadata: * Updated to libphonenumber v8.12.14 ## 1.71.0 * Metadata: * Updated to libphonenumber v8.12.13 ## 1.70.0 * Metadata: * Updated to libphonenumber v8.12.12 ## 1.69.0 * Metadata: * Updated to libphonenumber v8.12.11 ## 1.68.0 * Metadata: * Updated to libphonenumber v8.12.10 ## 1.67.0 * Metadata: * Updated to libphonenumber v8.12.9 ## 1.66.0 * Metadata: * Updated to libphonenumber v8.12.8 ## 1.65.0 * Metadata: * Updated to libphonenumber v8.12.7 ## 1.64.0 * Metadata: * Updated to libphonenumber v8.12.6 ## 1.63.0 * Metadata: * Updated to libphonenumber v8.12.5 ## 1.62.0 * Metadata: * Updated to libphonenumber v8.12.4 ## 1.61.0 * Metadata: * Updated to libphonenumber v8.12.3 ## 1.60.0 * Metadata: * Updated to libphonenumber v8.12.2 ## 1.59.0 * Metadata: * Updated to libphonenumber v8.12.1 ## 1.58.0 * Metadata: * Updated to libphonenumber v8.11.5 ## 1.57.0 * Metadata: * Updated to libphonenumber v8.11.4 ## 1.56.0 * Metadata: * Updated to libphonenumber v8.11.3 ## 1.55.0 * Metadata: * Updated to libphonenumber v8.11.2 ## 1.54.0 * Metadata: * Updated to libphonenumber v8.11.1 ## 1.53.0 * Metadata: * Updated to libphonenumber v8.11.0 ## 1.52.0 * Metadata: * Updated to libphonenumber v8.10.23 ## 1.51.0 * Client: Expanded support for finding global scope ([@rxaviers](https://github.com/rxaviers), [#11](https://github.com/paypal/fullstack-phone/pull/11)) ## 1.50.0 * Metadata: * Updated to libphonenumber v8.10.22 ## 1.49.0 * Metadata: * Updated to libphonenumber v8.10.21 ## 1.48.0 * Metadata: * Updated to libphonenumber v8.10.20 ## 1.47.0 * Metadata: * Updated to libphonenumber v8.10.19 ## 1.46.0 * Metadata: * Updated to libphonenumber v8.10.18 ## 1.45.0 * Metadata: * Updated to libphonenumber v8.10.16 ## 1.44.0 * Metadata: * Updated to libphonenumber v8.10.15 ## 1.43.0 * Metadata: * Updated to libphonenumber v8.10.14 ## 1.42.0 * Metadata: * Updated to libphonenumber v8.10.13 ## 1.41.0 * Metadata: * Updated to libphonenumber v8.10.12 ## 1.40.0 * Metadata: * Updated to libphonenumber v8.10.11 ## 1.39.0 * Metadata: * Updated to libphonenumber v8.10.10 ## 1.38.0 * Metadata: * Updated to libphonenumber v8.10.9 * Development: * Add `publishConfig` for public registry ## 1.37.0 * Metadata: * Updated to libphonenumber v8.10.8 ## 1.36.0 * Metadata: * Updated to libphonenumber v8.10.7 ## 1.35.0 * Metadata: * Updated to libphonenumber v8.10.6 ## 1.34.0 * Metadata: * Updated to libphonenumber v8.10.5 ## 1.33.0 * Metadata: * Updated to libphonenumber v8.10.4 ## 1.32.0 * Metadata: * Updated to libphonenumber v8.10.3 ## 1.31.0 * Metadata: * Updated to libphonenumber v8.10.2 ## 1.30.0 * Metadata: * Updated to libphonenumber v8.10.1 ## 1.29.0 * Metadata: * Updated to libphonenumber v8.10.0 ## 1.28.0 * Metadata: * Updated to libphonenumber v8.9.16 ## 1.27.0 * Metadata: * Updated to libphonenumber v8.9.15 ## 1.26.0 * Metadata: * Updated to libphonenumber v8.9.14 ## 1.25.0 * Metadata: * Updated to libphonenumber v8.9.13 ## 1.24.0 * Metadata: * Updated to libphonenumber v8.9.12 ## 1.23.0 * Metadata: * Updated to libphonenumber v8.9.10 ## 1.22.0 * Recompiled with [Google Closure Compiler Service](https://developers.google.com/closure/compiler/docs/api-ref) ## 1.21.0 * Metadata: * Updated to libphonenumber v8.9.9 ## 1.20.0 * Metadata: * Updated to libphonenumber v8.9.8 ## 1.19.0 * Metadata: * Updated to libphonenumber v8.9.7 ## 1.18.0 * Metadata: * Updated to libphonenumber v8.9.6 ## 1.17.0 * Metadata: * Updated to libphonenumber v8.9.5 ## 1.16.0 * Metadata: * Updated to libphonenumber v8.9.4 ## 1.15.0 * Metadata: * Updated to libphonenumber v8.9.3 ## 1.14.0 * Metadata: * Updated to libphonenumber v8.9.2 * Updated to Closure library v20180204 ## 1.13.0 * Metadata: * Updated to libphonenumber v8.9.1 ## 1.12.0 * Metadata: * Updated to libphonenumber v8.8.11 * Includes new metadata for XK with country code +383 (no longer copied from MC +377) ## 1.11.0 * Metadata: * Updated to libphonenumber v8.8.10 * Updated to Closure library v20171203 ## 1.10.0 * Metadata: * Updated to libphonenumber v8.8.9 ## 1.9.0 * Metadata: * Updated to libphonenumber v8.8.8 ## 1.8.0 * Metadata: * Updated to libphonenumber v8.8.7 ## 1.7.0 * Metadata: * Updated to libphonenumber v8.8.6 ## 1.6.0 * Metadata: * Updated to libphonenumber v8.8.5 ## 1.5.0 * Metadata: * Updated to libphonenumber v8.8.4 ## 1.4.0 * Metadata: * Updated to libphonenumber v8.8.3 ## 1.3.0 * Metadata: * Updated to libphonenumber v8.8.2 ## 1.2.0 * Metadata: * Updated to libphonenumber v8.8.1 ## 1.1.0 * Metadata: * Updated to libphonenumber v8.8.0 ## 1.0.0 * API: * Fixed truncation of phone numbers with multiple leading zeros (e.g., KR `00798 123 4567` and JP `0077-7012`) * Tightened handling of `phoneObj` with improper leading zeros in `nationalNumber` property * A `phoneObj` with a leading zero in the `nationalNumber` property is technically an invalid `phoneObj` (unless it's an [Italian leading zero](https://github.com/googlei18n/libphonenumber/blob/6ce5ca99bb86b040e74267adcbbac48b19908776/resources/phonenumber.proto#L57-L73)). In previous versions of fullstack-phone, such phone objects were handled leniently by using the `isLeadingZeroPossible` API of libphonenumber during conversion to protocol buffer format. Due to the [removal of isLeadingZeroPossible](https://github.com/googlei18n/libphonenumber/blob/b58ef8b8a607074845534cb2ebe19b208521747f/release_notes.txt#L56-L63), it is no longer possible to maintain this leniency. All leading zeros are thus passed to libphonenumber as-is. * For example, GB `{ countryCode: '44', nationalNumber: '01212345678' }` should not have the leading 0 (national prefix) in `nationalNumber`, and will no longer format properly or pass validation. * To convert phone objects with invalid leading zeros to the proper format, convert them to strings as follows and pass them through `parsePhoneNumber` (with any `regionCode`). This should have no effect on valid phone objects: ```javascript var invalidPhoneObj = { countryCode: '44', nationalNumber: '01212345678', // GB number improperly including national prefix 0 extension: '123' }; var phoneString = '+' + invalidPhoneObj.countryCode + invalidPhoneObj.nationalNumber + (invalidPhoneObj.extension ? ';' + invalidPhoneObj.extension : ''); // add extension if it exists var validPhoneObj = phoneHandler.parsePhoneNumber(phoneString, 'US'); // regionCode is irrelevant if string starts with '+' // > { countryCode: '44', nationalNumber: '1212345678', extension: '123' } // valid GB phoneObj without leading 0 ``` * Metadata: * Updated to libphonenumber v8.7.1 ## 0.1.0 * API: * Refactored into server & client modules for easy inclusion * Made handler instantiable instead of a singleton * Changed `loadMeta` to return full metadata when called with no arguments * Switched parameter order of `getExampleNumberForType` to match other APIs (`regionCode` last) * Changed `PHONE_INVALID_FOR_COUNTRY` error message to `PHONE_INVALID_FOR_REGION` (for clarity) * Renamed `createHandler` to `createPhoneHandler` to make it more distinct in case anyone uses a `<script>` tag to load `client/index.js` and it gets added to the `window` object * Metadata: * Updated to libphonenumber v8.5.2 * Updated to Closure library v20170626 ## 0.0.2 * Backported API changes from 0.1.0 but based on libphonenumber v7.7.5 * Metadata: * libphonenumber v7.7.5 * Closure library v20170626 ## 0.0.1 (Unpublished) * Initial version that requires copying generated files and modifying paths