fullstack-phone
Version:
A dual-module phone number system with dynamic regional metadata
1,020 lines (624 loc) • 16.7 kB
Markdown
# 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