I discovered while checking null values that isLegitimateProxy does not actually occur in the Anonymous-IP database. It's an Enterprise only value alongside isAnonymousProxy. If we want to pass along isLegitimateProxy, getProxyType needs to also be passed that information from the Enterprise db reader.
To confirm this, you can download and inspect the CSVs for Anonymous-IP and Enterprise. There's no header for isLegitimateProxy in Anonymous-IP but there is in Enterprise.
Additionally, it seems like every IP in the Anonymous IP database returns isAnonymous === true so we can remove that trait.
Finally, the Anonymous IP database contains the isHostingProvider trait and we should return that.
AC:
- isLegitimateProxy value is read from the Enterprise db and passed into ProxyInfo
- isAnonymous is removed from ProxyInfo
- isHostingProvider is added to ProxyInfo