Comparing version 0.4.1 to 0.4.3
@@ -6,772 +6,125 @@ | ||
module.exports = { | ||
"US": { | ||
"AL": "America/Chicago", | ||
"AK": "America/Anchorage", | ||
"AZ": "America/Phoenix", | ||
"AR": "America/Chicago", | ||
"CA": "America/Los_Angeles", | ||
"CO": "America/Denver", | ||
"CT": "America/New_York", | ||
"DE": "America/New_York", | ||
"DC": "America/New_York", | ||
"FL": "America/New_York", | ||
"GA": "America/New_York", | ||
"HI": "Pacific/Honolulu", | ||
"ID": "America/Denver", | ||
"IL": "America/Chicago", | ||
"IN": "America/Indianapolis", | ||
"IA": "America/Chicago", | ||
"KS": "America/Chicago", | ||
"KY": "America/New_York", | ||
"LA": "America/Chicago", | ||
"ME": "America/New_York", | ||
"MD": "America/New_York", | ||
"MA": "America/New_York", | ||
"MI": "America/New_York", | ||
"MN": "America/Chicago", | ||
"MS": "America/Chicago", | ||
"MO": "America/Chicago", | ||
"MT": "America/Denver", | ||
"NE": "America/Chicago", | ||
"NV": "America/Los_Angeles", | ||
"NH": "America/New_York", | ||
"NJ": "America/New_York", | ||
"NM": "America/Denver", | ||
"NY": "America/New_York", | ||
"NC": "America/New_York", | ||
"ND": "America/Chicago", | ||
"OH": "America/New_York", | ||
"OK": "America/Chicago", | ||
"OR": "America/Los_Angeles", | ||
"PA": "America/New_York", | ||
"RI": "America/New_York", | ||
"SC": "America/New_York", | ||
"SD": "America/Chicago", | ||
"TN": "America/Chicago", | ||
"TX": "America/Chicago", | ||
"UT": "America/Denver", | ||
"VT": "America/New_York", | ||
"VA": "America/New_York", | ||
"WA": "America/Los_Angeles", | ||
"WV": "America/New_York", | ||
"WI": "America/Chicago", | ||
"WY": "America/Denver" | ||
"AD": { | ||
"": "Europe/Andorra" | ||
}, | ||
"CA": { | ||
"AB": "America/Edmonton", | ||
"BC": "America/Vancouver", | ||
"MB": "America/Winnipeg", | ||
"NB": "America/Halifax", | ||
"NL": "America/St_Johns", | ||
"NT": "America/Yellowknife", | ||
"NS": "America/Halifax", | ||
"NU": "America/Rankin_Inlet", | ||
"ON": "America/Toronto", | ||
"PE": "America/Halifax", | ||
"QC": "America/Montreal", | ||
"SK": "America/Regina", | ||
"YT": "America/Whitehorse" | ||
"AE": { | ||
"": "Asia/Dubai" | ||
}, | ||
"AU": { | ||
"01": "Australia/Canberra", | ||
"02": "Australia/NSW", | ||
"03": "Australia/North", | ||
"04": "Australia/Queensland", | ||
"05": "Australia/South", | ||
"06": "Australia/Tasmania", | ||
"07": "Australia/Victoria", | ||
"08": "Australia/West" | ||
"AF": { | ||
"": "Asia/Kabul" | ||
}, | ||
"AS": { | ||
"": "US/Samoa" | ||
"AG": { | ||
"": "America/Antigua" | ||
}, | ||
"CI": { | ||
"": "Africa/Abidjan" | ||
"AI": { | ||
"": "America/Anguilla" | ||
}, | ||
"GH": { | ||
"": "Africa/Accra" | ||
"AL": { | ||
"": "Europe/Tirane" | ||
}, | ||
"DZ": { | ||
"": "Africa/Algiers" | ||
"AM": { | ||
"": "Asia/Yerevan" | ||
}, | ||
"ER": { | ||
"": "Africa/Asmera" | ||
"AN": { | ||
"": "America/Curacao" | ||
}, | ||
"ML": { | ||
"": "Africa/Bamako" | ||
}, | ||
"CF": { | ||
"": "Africa/Bangui" | ||
}, | ||
"GM": { | ||
"": "Africa/Banjul" | ||
}, | ||
"GW": { | ||
"": "Africa/Bissau" | ||
}, | ||
"CG": { | ||
"": "Africa/Brazzaville" | ||
}, | ||
"BI": { | ||
"": "Africa/Bujumbura" | ||
}, | ||
"EG": { | ||
"": "Africa/Cairo" | ||
}, | ||
"MA": { | ||
"": "Africa/Casablanca" | ||
}, | ||
"GN": { | ||
"": "Africa/Conakry" | ||
}, | ||
"SN": { | ||
"": "Africa/Dakar" | ||
}, | ||
"DJ": { | ||
"": "Africa/Djibouti" | ||
}, | ||
"SL": { | ||
"": "Africa/Freetown" | ||
}, | ||
"BW": { | ||
"": "Africa/Gaborone" | ||
}, | ||
"ZW": { | ||
"": "Africa/Harare" | ||
}, | ||
"ZA": { | ||
"": "Africa/Johannesburg" | ||
}, | ||
"SS": { | ||
"": "Africa/Juba" | ||
}, | ||
"UG": { | ||
"": "Africa/Kampala" | ||
}, | ||
"SD": { | ||
"": "Africa/Khartoum" | ||
}, | ||
"RW": { | ||
"": "Africa/Kigali" | ||
}, | ||
"NG": { | ||
"": "Africa/Lagos" | ||
}, | ||
"GA": { | ||
"": "Africa/Libreville" | ||
}, | ||
"TG": { | ||
"": "Africa/Lome" | ||
}, | ||
"AO": { | ||
"": "Africa/Luanda" | ||
}, | ||
"ZM": { | ||
"": "Africa/Lusaka" | ||
"AQ": { | ||
"": "Antarctica/South_Pole" | ||
}, | ||
"GQ": { | ||
"": "Africa/Malabo" | ||
"AR": { | ||
"01": "America/Argentina/Buenos_Aires", | ||
"02": "America/Argentina/Catamarca", | ||
"03": "America/Argentina/Tucuman", | ||
"04": "America/Argentina/Rio_Gallegos", | ||
"05": "America/Argentina/Cordoba", | ||
"06": "America/Argentina/Tucuman", | ||
"07": "America/Argentina/Buenos_Aires", | ||
"08": "America/Argentina/Buenos_Aires", | ||
"09": "America/Argentina/Tucuman", | ||
"10": "America/Argentina/Jujuy", | ||
"11": "America/Argentina/San_Luis", | ||
"12": "America/Argentina/La_Rioja", | ||
"13": "America/Argentina/Mendoza", | ||
"14": "America/Argentina/Buenos_Aires", | ||
"15": "America/Argentina/San_Luis", | ||
"16": "America/Argentina/Buenos_Aires", | ||
"17": "America/Argentina/Salta", | ||
"18": "America/Argentina/San_Juan", | ||
"19": "America/Argentina/San_Luis", | ||
"20": "America/Argentina/Rio_Gallegos", | ||
"21": "America/Argentina/Buenos_Aires", | ||
"22": "America/Argentina/Catamarca", | ||
"23": "America/Argentina/Ushuaia", | ||
"24": "America/Argentina/Tucuman" | ||
}, | ||
"MZ": { | ||
"": "Africa/Maputo" | ||
"AS": { | ||
"": "Pacific/Pago_Pago" | ||
}, | ||
"LS": { | ||
"": "Africa/Maseru" | ||
"AT": { | ||
"": "Europe/Vienna" | ||
}, | ||
"SZ": { | ||
"": "Africa/Mbabane" | ||
"AU": { | ||
"01": "Australia/Sydney", | ||
"02": "Australia/Sydney", | ||
"03": "Australia/Darwin", | ||
"04": "Australia/Brisbane", | ||
"05": "Australia/Adelaide", | ||
"06": "Australia/Hobart", | ||
"07": "Australia/Melbourne", | ||
"08": "Australia/Perth" | ||
}, | ||
"SO": { | ||
"": "Africa/Mogadishu" | ||
}, | ||
"LR": { | ||
"": "Africa/Monrovia" | ||
}, | ||
"KE": { | ||
"": "Africa/Nairobi" | ||
}, | ||
"TD": { | ||
"": "Africa/Ndjamena" | ||
}, | ||
"NE": { | ||
"": "Africa/Niamey" | ||
}, | ||
"MR": { | ||
"": "Africa/Nouakchott" | ||
}, | ||
"BF": { | ||
"": "Africa/Ouagadougou" | ||
}, | ||
"ST": { | ||
"": "Africa/Sao_Tome" | ||
}, | ||
"LY": { | ||
"": "Africa/Tripoli" | ||
}, | ||
"TN": { | ||
"": "Africa/Tunis" | ||
}, | ||
"AI": { | ||
"": "America/Anguilla" | ||
}, | ||
"AG": { | ||
"": "America/Antigua" | ||
}, | ||
"AW": { | ||
"": "America/Aruba" | ||
}, | ||
"BB": { | ||
"": "America/Barbados" | ||
"AX": { | ||
"": "Europe/Mariehamn" | ||
}, | ||
"BZ": { | ||
"": "America/Belize" | ||
}, | ||
"CO": { | ||
"": "America/Bogota" | ||
}, | ||
"VE": { | ||
"": "America/Caracas" | ||
}, | ||
"KY": { | ||
"": "America/Cayman" | ||
}, | ||
"CR": { | ||
"": "America/Costa_Rica" | ||
}, | ||
"DM": { | ||
"": "America/Dominica" | ||
}, | ||
"SV": { | ||
"": "America/El_Salvador" | ||
}, | ||
"GD": { | ||
"": "America/Grenada" | ||
}, | ||
"FR": { | ||
"": "Europe/Paris" | ||
}, | ||
"GP": { | ||
"": "America/Guadeloupe" | ||
}, | ||
"GT": { | ||
"": "America/Guatemala" | ||
}, | ||
"GY": { | ||
"": "America/Guyana" | ||
}, | ||
"CU": { | ||
"": "America/Havana" | ||
}, | ||
"JM": { | ||
"": "America/Jamaica" | ||
}, | ||
"BO": { | ||
"": "America/La_Paz" | ||
}, | ||
"PE": { | ||
"": "America/Lima" | ||
}, | ||
"NI": { | ||
"": "America/Managua" | ||
}, | ||
"MQ": { | ||
"": "America/Martinique" | ||
}, | ||
"UY": { | ||
"": "America/Montevideo" | ||
}, | ||
"MS": { | ||
"": "America/Montserrat" | ||
}, | ||
"BS": { | ||
"": "America/Nassau" | ||
}, | ||
"PA": { | ||
"": "America/Panama" | ||
}, | ||
"SR": { | ||
"": "America/Paramaribo" | ||
}, | ||
"PR": { | ||
"": "America/Puerto_Rico" | ||
}, | ||
"KN": { | ||
"": "America/St_Kitts" | ||
}, | ||
"LC": { | ||
"": "America/St_Lucia" | ||
}, | ||
"VC": { | ||
"": "America/St_Vincent" | ||
}, | ||
"HN": { | ||
"": "America/Tegucigalpa" | ||
}, | ||
"YE": { | ||
"": "Asia/Aden" | ||
}, | ||
"JO": { | ||
"": "Asia/Amman" | ||
}, | ||
"TM": { | ||
"": "Asia/Ashgabat" | ||
}, | ||
"IQ": { | ||
"": "Asia/Baghdad" | ||
}, | ||
"BH": { | ||
"": "Asia/Bahrain" | ||
}, | ||
"AZ": { | ||
"": "Asia/Baku" | ||
}, | ||
"TH": { | ||
"": "Asia/Bangkok" | ||
"BA": { | ||
"": "Europe/Sarajevo" | ||
}, | ||
"LB": { | ||
"": "Asia/Beirut" | ||
"BB": { | ||
"": "America/Barbados" | ||
}, | ||
"KG": { | ||
"": "Asia/Bishkek" | ||
}, | ||
"BN": { | ||
"": "Asia/Brunei" | ||
}, | ||
"IN": { | ||
"": "Asia/Calcutta" | ||
}, | ||
"MN": { | ||
"": "Asia/Choibalsan" | ||
}, | ||
"LK": { | ||
"": "Asia/Colombo" | ||
}, | ||
"BD": { | ||
"": "Asia/Dhaka" | ||
}, | ||
"AE": { | ||
"": "Asia/Dubai" | ||
}, | ||
"TJ": { | ||
"": "Asia/Dushanbe" | ||
}, | ||
"HK": { | ||
"": "Asia/Hong_Kong" | ||
}, | ||
"TR": { | ||
"": "Asia/Istanbul" | ||
}, | ||
"IL": { | ||
"": "Asia/Jerusalem" | ||
}, | ||
"AF": { | ||
"": "Asia/Kabul" | ||
}, | ||
"PK": { | ||
"": "Asia/Karachi" | ||
}, | ||
"NP": { | ||
"": "Asia/Katmandu" | ||
}, | ||
"KW": { | ||
"": "Asia/Kuwait" | ||
}, | ||
"MO": { | ||
"": "Asia/Macao" | ||
}, | ||
"PH": { | ||
"": "Asia/Manila" | ||
}, | ||
"OM": { | ||
"": "Asia/Muscat" | ||
}, | ||
"CY": { | ||
"": "Asia/Nicosia" | ||
}, | ||
"KP": { | ||
"": "Asia/Pyongyang" | ||
}, | ||
"QA": { | ||
"": "Asia/Qatar" | ||
}, | ||
"MM": { | ||
"": "Asia/Rangoon" | ||
}, | ||
"SA": { | ||
"": "Asia/Riyadh" | ||
}, | ||
"KR": { | ||
"": "Asia/Seoul" | ||
}, | ||
"SG": { | ||
"": "Asia/Singapore" | ||
}, | ||
"TW": { | ||
"": "Asia/Taipei" | ||
}, | ||
"GE": { | ||
"": "Asia/Tbilisi" | ||
}, | ||
"BT": { | ||
"": "Asia/Thimphu" | ||
}, | ||
"JP": { | ||
"": "Asia/Tokyo" | ||
}, | ||
"LA": { | ||
"": "Asia/Vientiane" | ||
}, | ||
"AM": { | ||
"": "Asia/Yerevan" | ||
}, | ||
"BM": { | ||
"": "Atlantic/Bermuda" | ||
}, | ||
"CV": { | ||
"": "Atlantic/Cape_Verde" | ||
}, | ||
"FO": { | ||
"": "Atlantic/Faeroe" | ||
}, | ||
"IS": { | ||
"": "Atlantic/Reykjavik" | ||
}, | ||
"GS": { | ||
"": "Atlantic/South_Georgia" | ||
}, | ||
"SH": { | ||
"": "Atlantic/St_Helena" | ||
}, | ||
"CL": { | ||
"": "Chile/Continental" | ||
}, | ||
"NL": { | ||
"": "Europe/Amsterdam" | ||
}, | ||
"AD": { | ||
"": "Europe/Andorra" | ||
}, | ||
"GR": { | ||
"": "Europe/Athens" | ||
}, | ||
"YU": { | ||
"": "Europe/Belgrade" | ||
}, | ||
"DE": { | ||
"": "Europe/Berlin" | ||
}, | ||
"SK": { | ||
"": "Europe/Bratislava" | ||
}, | ||
"BE": { | ||
"": "Europe/Brussels" | ||
}, | ||
"RO": { | ||
"": "Europe/Bucharest" | ||
"BF": { | ||
"": "Africa/Ouagadougou" | ||
}, | ||
"HU": { | ||
"": "Europe/Budapest" | ||
}, | ||
"DK": { | ||
"": "Europe/Copenhagen" | ||
}, | ||
"IE": { | ||
"": "Europe/Dublin" | ||
}, | ||
"GI": { | ||
"": "Europe/Gibraltar" | ||
}, | ||
"FI": { | ||
"": "Europe/Helsinki" | ||
}, | ||
"SI": { | ||
"": "Europe/Ljubljana" | ||
}, | ||
"GB": { | ||
"": "Europe/London" | ||
}, | ||
"LU": { | ||
"": "Europe/Luxembourg" | ||
}, | ||
"MT": { | ||
"": "Europe/Malta" | ||
}, | ||
"BY": { | ||
"": "Europe/Minsk" | ||
}, | ||
"MC": { | ||
"": "Europe/Monaco" | ||
}, | ||
"NO": { | ||
"": "Europe/Oslo" | ||
}, | ||
"CZ": { | ||
"": "Europe/Prague" | ||
}, | ||
"LV": { | ||
"": "Europe/Riga" | ||
}, | ||
"IT": { | ||
"": "Europe/Rome" | ||
}, | ||
"SM": { | ||
"": "Europe/San_Marino" | ||
}, | ||
"BA": { | ||
"": "Europe/Sarajevo" | ||
}, | ||
"MK": { | ||
"": "Europe/Skopje" | ||
}, | ||
"BG": { | ||
"": "Europe/Sofia" | ||
}, | ||
"SE": { | ||
"": "Europe/Stockholm" | ||
"BH": { | ||
"": "Asia/Bahrain" | ||
}, | ||
"EE": { | ||
"": "Europe/Tallinn" | ||
"BI": { | ||
"": "Africa/Bujumbura" | ||
}, | ||
"AL": { | ||
"": "Europe/Tirane" | ||
}, | ||
"LI": { | ||
"": "Europe/Vaduz" | ||
}, | ||
"VA": { | ||
"": "Europe/Vatican" | ||
}, | ||
"AT": { | ||
"": "Europe/Vienna" | ||
}, | ||
"LT": { | ||
"": "Europe/Vilnius" | ||
}, | ||
"PL": { | ||
"": "Europe/Warsaw" | ||
}, | ||
"HR": { | ||
"": "Europe/Zagreb" | ||
}, | ||
"IR": { | ||
"": "Asia/Tehran" | ||
}, | ||
"MG": { | ||
"": "Indian/Antananarivo" | ||
}, | ||
"CX": { | ||
"": "Indian/Christmas" | ||
}, | ||
"CC": { | ||
"": "Indian/Cocos" | ||
}, | ||
"KM": { | ||
"": "Indian/Comoro" | ||
}, | ||
"MV": { | ||
"": "Indian/Maldives" | ||
}, | ||
"MU": { | ||
"": "Indian/Mauritius" | ||
}, | ||
"YT": { | ||
"": "Indian/Mayotte" | ||
}, | ||
"RE": { | ||
"": "Indian/Reunion" | ||
}, | ||
"FJ": { | ||
"": "Pacific/Fiji" | ||
}, | ||
"TV": { | ||
"": "Pacific/Funafuti" | ||
}, | ||
"GU": { | ||
"": "Pacific/Guam" | ||
}, | ||
"NR": { | ||
"": "Pacific/Nauru" | ||
}, | ||
"NU": { | ||
"": "Pacific/Niue" | ||
}, | ||
"NF": { | ||
"": "Pacific/Norfolk" | ||
}, | ||
"PW": { | ||
"": "Pacific/Palau" | ||
}, | ||
"PN": { | ||
"": "Pacific/Pitcairn" | ||
}, | ||
"CK": { | ||
"": "Pacific/Rarotonga" | ||
}, | ||
"WS": { | ||
"": "Pacific/Samoa" | ||
}, | ||
"KI": { | ||
"": "Pacific/Tarawa" | ||
}, | ||
"TO": { | ||
"": "Pacific/Tongatapu" | ||
}, | ||
"WF": { | ||
"": "Pacific/Wallis" | ||
}, | ||
"TZ": { | ||
"": "Africa/Dar_es_Salaam" | ||
}, | ||
"VN": { | ||
"": "Asia/Phnom_Penh" | ||
}, | ||
"KH": { | ||
"": "Asia/Phnom_Penh" | ||
}, | ||
"CM": { | ||
"": "Africa/Lagos" | ||
}, | ||
"DO": { | ||
"": "America/Santo_Domingo" | ||
}, | ||
"ET": { | ||
"": "Africa/Addis_Ababa" | ||
}, | ||
"FX": { | ||
"": "Europe/Paris" | ||
}, | ||
"HT": { | ||
"": "America/Port-au-Prince" | ||
}, | ||
"CH": { | ||
"": "Europe/Zurich" | ||
}, | ||
"AN": { | ||
"": "America/Curacao" | ||
}, | ||
"BJ": { | ||
"": "Africa/Porto-Novo" | ||
}, | ||
"EH": { | ||
"": "Africa/El_Aaiun" | ||
"BL": { | ||
"": "America/St_Barthelemy" | ||
}, | ||
"FK": { | ||
"": "Atlantic/Stanley" | ||
"BM": { | ||
"": "Atlantic/Bermuda" | ||
}, | ||
"GF": { | ||
"": "America/Cayenne" | ||
"BN": { | ||
"": "Asia/Brunei" | ||
}, | ||
"IO": { | ||
"": "Indian/Chagos" | ||
"BO": { | ||
"": "America/La_Paz" | ||
}, | ||
"MD": { | ||
"": "Europe/Chisinau" | ||
"BQ": { | ||
"": "America/Curacao" | ||
}, | ||
"MP": { | ||
"": "Pacific/Saipan" | ||
}, | ||
"MW": { | ||
"": "Africa/Blantyre" | ||
}, | ||
"NA": { | ||
"": "Africa/Windhoek" | ||
}, | ||
"NC": { | ||
"": "Pacific/Noumea" | ||
}, | ||
"PG": { | ||
"": "Pacific/Port_Moresby" | ||
}, | ||
"PM": { | ||
"": "America/Miquelon" | ||
}, | ||
"PS": { | ||
"": "Asia/Gaza" | ||
}, | ||
"PY": { | ||
"": "America/Asuncion" | ||
}, | ||
"SB": { | ||
"": "Pacific/Guadalcanal" | ||
}, | ||
"SC": { | ||
"": "Indian/Mahe" | ||
}, | ||
"SJ": { | ||
"": "Arctic/Longyearbyen" | ||
}, | ||
"SY": { | ||
"": "Asia/Damascus" | ||
}, | ||
"TC": { | ||
"": "America/Grand_Turk" | ||
}, | ||
"TF": { | ||
"": "Indian/Kerguelen" | ||
}, | ||
"TK": { | ||
"": "Pacific/Fakaofo" | ||
}, | ||
"TT": { | ||
"": "America/Port_of_Spain" | ||
}, | ||
"VG": { | ||
"": "America/Tortola" | ||
}, | ||
"VI": { | ||
"": "America/St_Thomas" | ||
}, | ||
"VU": { | ||
"": "Pacific/Efate" | ||
}, | ||
"RS": { | ||
"": "Europe/Belgrade" | ||
}, | ||
"ME": { | ||
"": "Europe/Podgorica" | ||
}, | ||
"AX": { | ||
"": "Europe/Mariehamn" | ||
}, | ||
"GG": { | ||
"": "Europe/Guernsey" | ||
}, | ||
"IM": { | ||
"": "Europe/Isle_of_Man" | ||
}, | ||
"JE": { | ||
"": "Europe/Jersey" | ||
}, | ||
"BL": { | ||
"": "America/St_Barthelemy" | ||
}, | ||
"MF": { | ||
"": "America/Marigot" | ||
}, | ||
"AR": { | ||
"01": "America/Argentina/Buenos_Aires", | ||
"02": "America/Argentina/Catamarca", | ||
"03": "America/Argentina/Tucuman", | ||
"04": "America/Argentina/Rio_Gallegos", | ||
"05": "America/Argentina/Cordoba", | ||
"06": "America/Argentina/Tucuman", | ||
"07": "America/Argentina/Buenos_Aires", | ||
"08": "America/Argentina/Buenos_Aires", | ||
"09": "America/Argentina/Tucuman", | ||
"10": "America/Argentina/Jujuy", | ||
"11": "America/Argentina/San_Luis", | ||
"12": "America/Argentina/La_Rioja", | ||
"13": "America/Argentina/Mendoza", | ||
"14": "America/Argentina/Buenos_Aires", | ||
"15": "America/Argentina/San_Luis", | ||
"16": "America/Argentina/Buenos_Aires", | ||
"17": "America/Argentina/Salta", | ||
"18": "America/Argentina/San_Juan", | ||
"19": "America/Argentina/San_Luis", | ||
"20": "America/Argentina/Rio_Gallegos", | ||
"21": "America/Argentina/Buenos_Aires", | ||
"22": "America/Argentina/Catamarca", | ||
"23": "America/Argentina/Ushuaia", | ||
"24": "America/Argentina/Tucuman" | ||
}, | ||
"BR": { | ||
@@ -806,7 +159,48 @@ "01": "America/Rio_Branco", | ||
}, | ||
"BS": { | ||
"": "America/Nassau" | ||
}, | ||
"BT": { | ||
"": "Asia/Thimphu" | ||
}, | ||
"BV": { | ||
"": "Antarctica/Syowa" | ||
}, | ||
"BW": { | ||
"": "Africa/Gaborone" | ||
}, | ||
"BY": { | ||
"": "Europe/Minsk" | ||
}, | ||
"BZ": { | ||
"": "America/Belize" | ||
}, | ||
"CA": { | ||
"AB": "America/Edmonton", | ||
"BC": "America/Vancouver", | ||
"MB": "America/Winnipeg", | ||
"NB": "America/Halifax", | ||
"NL": "America/St_Johns", | ||
"NS": "America/Halifax", | ||
"NT": "America/Yellowknife", | ||
"NU": "America/Rankin_Inlet", | ||
"ON": "America/Toronto", | ||
"PE": "America/Halifax", | ||
"QC": "America/Montreal", | ||
"SK": "America/Regina", | ||
"YT": "America/Whitehorse" | ||
}, | ||
"CC": { | ||
"": "Indian/Cocos" | ||
}, | ||
"CD": { | ||
"01": "Africa/Kinshasa", | ||
"02": "Africa/Kinshasa", | ||
"03": "Africa/Kinshasa", | ||
"04": "Africa/Lubumbashi", | ||
"05": "Africa/Lubumbashi", | ||
"06": "Africa/Kinshasa", | ||
"07": "Africa/Lubumbashi", | ||
"08": "Africa/Kinshasa", | ||
"09": "Africa/Lubumbashi", | ||
"10": "Africa/Lubumbashi", | ||
@@ -816,2 +210,23 @@ "11": "Africa/Lubumbashi", | ||
}, | ||
"CF": { | ||
"": "Africa/Bangui" | ||
}, | ||
"CG": { | ||
"": "Africa/Brazzaville" | ||
}, | ||
"CH": { | ||
"": "Europe/Zurich" | ||
}, | ||
"CI": { | ||
"": "Africa/Abidjan" | ||
}, | ||
"CK": { | ||
"": "Pacific/Rarotonga" | ||
}, | ||
"CL": { | ||
"": "America/Santiago" | ||
}, | ||
"CM": { | ||
"": "Africa/Lagos" | ||
}, | ||
"CN": { | ||
@@ -850,2 +265,44 @@ "01": "Asia/Shanghai", | ||
}, | ||
"CO": { | ||
"": "America/Bogota" | ||
}, | ||
"CR": { | ||
"": "America/Costa_Rica" | ||
}, | ||
"CU": { | ||
"": "America/Havana" | ||
}, | ||
"CV": { | ||
"": "Atlantic/Cape_Verde" | ||
}, | ||
"CW": { | ||
"": "America/Curacao" | ||
}, | ||
"CX": { | ||
"": "Indian/Christmas" | ||
}, | ||
"CY": { | ||
"": "Asia/Nicosia" | ||
}, | ||
"CZ": { | ||
"": "Europe/Prague" | ||
}, | ||
"DE": { | ||
"": "Europe/Berlin" | ||
}, | ||
"DJ": { | ||
"": "Africa/Djibouti" | ||
}, | ||
"DK": { | ||
"": "Europe/Copenhagen" | ||
}, | ||
"DM": { | ||
"": "America/Dominica" | ||
}, | ||
"DO": { | ||
"": "America/Santo_Domingo" | ||
}, | ||
"DZ": { | ||
"": "Africa/Algiers" | ||
}, | ||
"EC": { | ||
@@ -871,4 +328,17 @@ "01": "Pacific/Galapagos", | ||
"20": "America/Guayaquil", | ||
"22": "America/Guayaquil" | ||
"22": "America/Guayaquil", | ||
"24": "America/Guayaquil" | ||
}, | ||
"EE": { | ||
"": "Europe/Tallinn" | ||
}, | ||
"EG": { | ||
"": "Africa/Cairo" | ||
}, | ||
"EH": { | ||
"": "Africa/El_Aaiun" | ||
}, | ||
"ER": { | ||
"": "Africa/Asmara" | ||
}, | ||
"ES": { | ||
@@ -893,2 +363,50 @@ "07": "Europe/Madrid", | ||
}, | ||
"ET": { | ||
"": "Africa/Addis_Ababa" | ||
}, | ||
"FI": { | ||
"": "Europe/Helsinki" | ||
}, | ||
"FJ": { | ||
"": "Pacific/Fiji" | ||
}, | ||
"FK": { | ||
"": "Atlantic/Stanley" | ||
}, | ||
"FM": { | ||
"": "Pacific/Pohnpei" | ||
}, | ||
"FO": { | ||
"": "Atlantic/Faroe" | ||
}, | ||
"FR": { | ||
"": "Europe/Paris" | ||
}, | ||
"FX": { | ||
"": "Europe/Paris" | ||
}, | ||
"GA": { | ||
"": "Africa/Libreville" | ||
}, | ||
"GB": { | ||
"": "Europe/London" | ||
}, | ||
"GD": { | ||
"": "America/Grenada" | ||
}, | ||
"GE": { | ||
"": "Asia/Tbilisi" | ||
}, | ||
"GF": { | ||
"": "America/Cayenne" | ||
}, | ||
"GG": { | ||
"": "Europe/Guernsey" | ||
}, | ||
"GH": { | ||
"": "Africa/Accra" | ||
}, | ||
"GI": { | ||
"": "Europe/Gibraltar" | ||
}, | ||
"GL": { | ||
@@ -899,2 +417,47 @@ "01": "America/Thule", | ||
}, | ||
"GM": { | ||
"": "Africa/Banjul" | ||
}, | ||
"GN": { | ||
"": "Africa/Conakry" | ||
}, | ||
"GP": { | ||
"": "America/Guadeloupe" | ||
}, | ||
"GQ": { | ||
"": "Africa/Malabo" | ||
}, | ||
"GR": { | ||
"": "Europe/Athens" | ||
}, | ||
"GS": { | ||
"": "Atlantic/South_Georgia" | ||
}, | ||
"GT": { | ||
"": "America/Guatemala" | ||
}, | ||
"GU": { | ||
"": "Pacific/Guam" | ||
}, | ||
"GW": { | ||
"": "Africa/Bissau" | ||
}, | ||
"GY": { | ||
"": "America/Guyana" | ||
}, | ||
"HK": { | ||
"": "Asia/Hong_Kong" | ||
}, | ||
"HN": { | ||
"": "America/Tegucigalpa" | ||
}, | ||
"HR": { | ||
"": "Europe/Zagreb" | ||
}, | ||
"HT": { | ||
"": "America/Port-au-Prince" | ||
}, | ||
"HU": { | ||
"": "Europe/Budapest" | ||
}, | ||
"ID": { | ||
@@ -927,6 +490,86 @@ "01": "Asia/Pontianak", | ||
"26": "Asia/Pontianak", | ||
"28": "Asia/Jayapura", | ||
"29": "Asia/Makassar", | ||
"30": "Asia/Jakarta", | ||
"31": "Asia/Makassar", | ||
"33": "Asia/Jakarta" | ||
"32": "Asia/Jakarta", | ||
"33": "Asia/Jakarta", | ||
"34": "Asia/Makassar", | ||
"35": "Asia/Pontianak", | ||
"36": "Asia/Jayapura", | ||
"37": "Asia/Pontianak", | ||
"38": "Asia/Makassar", | ||
"39": "Asia/Jayapura", | ||
"40": "Asia/Pontianak", | ||
"41": "Asia/Makassar" | ||
}, | ||
"IE": { | ||
"": "Europe/Dublin" | ||
}, | ||
"IL": { | ||
"": "Asia/Jerusalem" | ||
}, | ||
"IM": { | ||
"": "Europe/Isle_of_Man" | ||
}, | ||
"IN": { | ||
"": "Asia/Kolkata" | ||
}, | ||
"IO": { | ||
"": "Indian/Chagos" | ||
}, | ||
"IQ": { | ||
"": "Asia/Baghdad" | ||
}, | ||
"IR": { | ||
"": "Asia/Tehran" | ||
}, | ||
"IS": { | ||
"": "Atlantic/Reykjavik" | ||
}, | ||
"IT": { | ||
"": "Europe/Rome" | ||
}, | ||
"JE": { | ||
"": "Europe/Jersey" | ||
}, | ||
"JM": { | ||
"": "America/Jamaica" | ||
}, | ||
"JO": { | ||
"": "Asia/Amman" | ||
}, | ||
"JP": { | ||
"": "Asia/Tokyo" | ||
}, | ||
"KE": { | ||
"": "Africa/Nairobi" | ||
}, | ||
"KG": { | ||
"": "Asia/Bishkek" | ||
}, | ||
"KH": { | ||
"": "Asia/Phnom_Penh" | ||
}, | ||
"KI": { | ||
"": "Pacific/Tarawa" | ||
}, | ||
"KM": { | ||
"": "Indian/Comoro" | ||
}, | ||
"KN": { | ||
"": "America/St_Kitts" | ||
}, | ||
"KP": { | ||
"": "Asia/Pyongyang" | ||
}, | ||
"KR": { | ||
"": "Asia/Seoul" | ||
}, | ||
"KW": { | ||
"": "Asia/Kuwait" | ||
}, | ||
"KY": { | ||
"": "America/Cayman" | ||
}, | ||
"KZ": { | ||
@@ -951,2 +594,101 @@ "01": "Asia/Almaty", | ||
}, | ||
"LA": { | ||
"": "Asia/Vientiane" | ||
}, | ||
"LB": { | ||
"": "Asia/Beirut" | ||
}, | ||
"LC": { | ||
"": "America/St_Lucia" | ||
}, | ||
"LI": { | ||
"": "Europe/Vaduz" | ||
}, | ||
"LK": { | ||
"": "Asia/Colombo" | ||
}, | ||
"LR": { | ||
"": "Africa/Monrovia" | ||
}, | ||
"LS": { | ||
"": "Africa/Maseru" | ||
}, | ||
"LT": { | ||
"": "Europe/Vilnius" | ||
}, | ||
"LU": { | ||
"": "Europe/Luxembourg" | ||
}, | ||
"LV": { | ||
"": "Europe/Riga" | ||
}, | ||
"LY": { | ||
"": "Africa/Tripoli" | ||
}, | ||
"MA": { | ||
"": "Africa/Casablanca" | ||
}, | ||
"MC": { | ||
"": "Europe/Monaco" | ||
}, | ||
"MD": { | ||
"": "Europe/Chisinau" | ||
}, | ||
"ME": { | ||
"": "Europe/Podgorica" | ||
}, | ||
"MF": { | ||
"": "America/Marigot" | ||
}, | ||
"MG": { | ||
"": "Indian/Antananarivo" | ||
}, | ||
"MH": { | ||
"": "Pacific/Kwajalein" | ||
}, | ||
"MK": { | ||
"": "Europe/Skopje" | ||
}, | ||
"ML": { | ||
"": "Africa/Bamako" | ||
}, | ||
"MM": { | ||
"": "Asia/Rangoon" | ||
}, | ||
"MN": { | ||
"06": "Asia/Choibalsan", | ||
"11": "Asia/Ulaanbaatar", | ||
"17": "Asia/Choibalsan", | ||
"19": "Asia/Hovd", | ||
"20": "Asia/Ulaanbaatar", | ||
"21": "Asia/Ulaanbaatar", | ||
"25": "Asia/Ulaanbaatar" | ||
}, | ||
"MO": { | ||
"": "Asia/Macau" | ||
}, | ||
"MP": { | ||
"": "Pacific/Saipan" | ||
}, | ||
"MQ": { | ||
"": "America/Martinique" | ||
}, | ||
"MR": { | ||
"": "Africa/Nouakchott" | ||
}, | ||
"MS": { | ||
"": "America/Montserrat" | ||
}, | ||
"MT": { | ||
"": "Europe/Malta" | ||
}, | ||
"MU": { | ||
"": "Indian/Mauritius" | ||
}, | ||
"MV": { | ||
"": "Indian/Maldives" | ||
}, | ||
"MW": { | ||
"": "Africa/Blantyre" | ||
}, | ||
"MX": { | ||
@@ -1003,2 +745,38 @@ "01": "America/Mexico_City", | ||
}, | ||
"MZ": { | ||
"": "Africa/Maputo" | ||
}, | ||
"NA": { | ||
"": "Africa/Windhoek" | ||
}, | ||
"NC": { | ||
"": "Pacific/Noumea" | ||
}, | ||
"NE": { | ||
"": "Africa/Niamey" | ||
}, | ||
"NF": { | ||
"": "Pacific/Norfolk" | ||
}, | ||
"NG": { | ||
"": "Africa/Lagos" | ||
}, | ||
"NI": { | ||
"": "America/Managua" | ||
}, | ||
"NL": { | ||
"": "Europe/Amsterdam" | ||
}, | ||
"NO": { | ||
"": "Europe/Oslo" | ||
}, | ||
"NP": { | ||
"": "Asia/Kathmandu" | ||
}, | ||
"NR": { | ||
"": "Pacific/Nauru" | ||
}, | ||
"NU": { | ||
"": "Pacific/Niue" | ||
}, | ||
"NZ": { | ||
@@ -1014,2 +792,3 @@ "85": "Pacific/Auckland", | ||
"F5": "Pacific/Auckland", | ||
"F6": "Pacific/Auckland", | ||
"F7": "Pacific/Chatham", | ||
@@ -1022,2 +801,38 @@ "F8": "Pacific/Auckland", | ||
}, | ||
"OM": { | ||
"": "Asia/Muscat" | ||
}, | ||
"PA": { | ||
"": "America/Panama" | ||
}, | ||
"PE": { | ||
"": "America/Lima" | ||
}, | ||
"PF": { | ||
"": "Pacific/Marquesas" | ||
}, | ||
"PG": { | ||
"": "Pacific/Port_Moresby" | ||
}, | ||
"PH": { | ||
"": "Asia/Manila" | ||
}, | ||
"PK": { | ||
"": "Asia/Karachi" | ||
}, | ||
"PL": { | ||
"": "Europe/Warsaw" | ||
}, | ||
"PM": { | ||
"": "America/Miquelon" | ||
}, | ||
"PN": { | ||
"": "Pacific/Pitcairn" | ||
}, | ||
"PR": { | ||
"": "America/Puerto_Rico" | ||
}, | ||
"PS": { | ||
"": "Asia/Gaza" | ||
}, | ||
"PT": { | ||
@@ -1042,4 +857,23 @@ "02": "Europe/Lisbon", | ||
"21": "Europe/Lisbon", | ||
"22": "Europe/Lisbon" | ||
"22": "Europe/Lisbon", | ||
"23": "Atlantic/Azores" | ||
}, | ||
"PW": { | ||
"": "Pacific/Palau" | ||
}, | ||
"PY": { | ||
"": "America/Asuncion" | ||
}, | ||
"QA": { | ||
"": "Asia/Qatar" | ||
}, | ||
"RE": { | ||
"": "Indian/Reunion" | ||
}, | ||
"RO": { | ||
"": "Europe/Bucharest" | ||
}, | ||
"RS": { | ||
"": "Europe/Belgrade" | ||
}, | ||
"RU": { | ||
@@ -1057,2 +891,3 @@ "01": "Europe/Volgograd", | ||
"11": "Asia/Irkutsk", | ||
"12": "Europe/Volgograd", | ||
"13": "Asia/Yekaterinburg", | ||
@@ -1133,4 +968,122 @@ "14": "Asia/Irkutsk", | ||
"88": "Europe/Moscow", | ||
"89": "Asia/Vladivostok" | ||
"89": "Asia/Vladivostok", | ||
"90": "Asia/Yekaterinburg", | ||
"91": "Asia/Krasnoyarsk", | ||
"92": "Asia/Anadyr", | ||
"93": "Asia/Irkutsk" | ||
}, | ||
"RW": { | ||
"": "Africa/Kigali" | ||
}, | ||
"SA": { | ||
"": "Asia/Riyadh" | ||
}, | ||
"SB": { | ||
"": "Pacific/Guadalcanal" | ||
}, | ||
"SC": { | ||
"": "Indian/Mahe" | ||
}, | ||
"SD": { | ||
"": "Africa/Khartoum" | ||
}, | ||
"SE": { | ||
"": "Europe/Stockholm" | ||
}, | ||
"SG": { | ||
"": "Asia/Singapore" | ||
}, | ||
"SH": { | ||
"": "Atlantic/St_Helena" | ||
}, | ||
"SI": { | ||
"": "Europe/Ljubljana" | ||
}, | ||
"SJ": { | ||
"": "Arctic/Longyearbyen" | ||
}, | ||
"SK": { | ||
"": "Europe/Bratislava" | ||
}, | ||
"SL": { | ||
"": "Africa/Freetown" | ||
}, | ||
"SM": { | ||
"": "Europe/San_Marino" | ||
}, | ||
"SN": { | ||
"": "Africa/Dakar" | ||
}, | ||
"SO": { | ||
"": "Africa/Mogadishu" | ||
}, | ||
"SR": { | ||
"": "America/Paramaribo" | ||
}, | ||
"SS": { | ||
"": "Africa/Juba" | ||
}, | ||
"ST": { | ||
"": "Africa/Sao_Tome" | ||
}, | ||
"SV": { | ||
"": "America/El_Salvador" | ||
}, | ||
"SX": { | ||
"": "America/Curacao" | ||
}, | ||
"SY": { | ||
"": "Asia/Damascus" | ||
}, | ||
"SZ": { | ||
"": "Africa/Mbabane" | ||
}, | ||
"TC": { | ||
"": "America/Grand_Turk" | ||
}, | ||
"TD": { | ||
"": "Africa/Ndjamena" | ||
}, | ||
"TF": { | ||
"": "Indian/Kerguelen" | ||
}, | ||
"TG": { | ||
"": "Africa/Lome" | ||
}, | ||
"TH": { | ||
"": "Asia/Bangkok" | ||
}, | ||
"TJ": { | ||
"": "Asia/Dushanbe" | ||
}, | ||
"TK": { | ||
"": "Pacific/Fakaofo" | ||
}, | ||
"TL": { | ||
"": "Asia/Dili" | ||
}, | ||
"TM": { | ||
"": "Asia/Ashgabat" | ||
}, | ||
"TN": { | ||
"": "Africa/Tunis" | ||
}, | ||
"TO": { | ||
"": "Pacific/Tongatapu" | ||
}, | ||
"TR": { | ||
"": "Asia/Istanbul" | ||
}, | ||
"TT": { | ||
"": "America/Port_of_Spain" | ||
}, | ||
"TV": { | ||
"": "Pacific/Funafuti" | ||
}, | ||
"TW": { | ||
"": "Asia/Taipei" | ||
}, | ||
"TZ": { | ||
"": "Africa/Dar_es_Salaam" | ||
}, | ||
"UA": { | ||
@@ -1148,2 +1101,3 @@ "01": "Europe/Kiev", | ||
"11": "Europe/Simferopol", | ||
"12": "Europe/Kiev", | ||
"13": "Europe/Kiev", | ||
@@ -1165,2 +1119,64 @@ "14": "Europe/Zaporozhye", | ||
}, | ||
"UG": { | ||
"": "Africa/Kampala" | ||
}, | ||
"UM": { | ||
"": "Pacific/Wake" | ||
}, | ||
"US": { | ||
"AK": "America/Anchorage", | ||
"AL": "America/Chicago", | ||
"AR": "America/Chicago", | ||
"AZ": "America/Phoenix", | ||
"CA": "America/Los_Angeles", | ||
"CO": "America/Denver", | ||
"CT": "America/New_York", | ||
"DC": "America/New_York", | ||
"DE": "America/New_York", | ||
"FL": "America/New_York", | ||
"GA": "America/New_York", | ||
"HI": "Pacific/Honolulu", | ||
"IA": "America/Chicago", | ||
"ID": "America/Denver", | ||
"IL": "America/Chicago", | ||
"IN": "America/Indiana/Indianapolis", | ||
"KS": "America/Chicago", | ||
"KY": "America/New_York", | ||
"LA": "America/Chicago", | ||
"MA": "America/New_York", | ||
"MD": "America/New_York", | ||
"ME": "America/New_York", | ||
"MI": "America/New_York", | ||
"MN": "America/Chicago", | ||
"MO": "America/Chicago", | ||
"MS": "America/Chicago", | ||
"MT": "America/Denver", | ||
"NC": "America/New_York", | ||
"ND": "America/Chicago", | ||
"NE": "America/Chicago", | ||
"NH": "America/New_York", | ||
"NJ": "America/New_York", | ||
"NM": "America/Denver", | ||
"NV": "America/Los_Angeles", | ||
"NY": "America/New_York", | ||
"OH": "America/New_York", | ||
"OK": "America/Chicago", | ||
"OR": "America/Los_Angeles", | ||
"PA": "America/New_York", | ||
"RI": "America/New_York", | ||
"SC": "America/New_York", | ||
"SD": "America/Chicago", | ||
"TN": "America/Chicago", | ||
"TX": "America/Chicago", | ||
"UT": "America/Denver", | ||
"VA": "America/New_York", | ||
"VT": "America/New_York", | ||
"WA": "America/Los_Angeles", | ||
"WI": "America/Chicago", | ||
"WV": "America/New_York", | ||
"WY": "America/Denver" | ||
}, | ||
"UY": { | ||
"": "America/Montevideo" | ||
}, | ||
"UZ": { | ||
@@ -1170,2 +1186,3 @@ "01": "Asia/Tashkent", | ||
"03": "Asia/Tashkent", | ||
"05": "Asia/Samarkand", | ||
"06": "Asia/Tashkent", | ||
@@ -1180,17 +1197,47 @@ "07": "Asia/Samarkand", | ||
}, | ||
"TL": { | ||
"": "Asia/Dili" | ||
"VA": { | ||
"": "Europe/Vatican" | ||
}, | ||
"PF": { | ||
"": "Pacific/Marquesas" | ||
"VC": { | ||
"": "America/St_Vincent" | ||
}, | ||
"SX": { | ||
"": "America/Curacao" | ||
"VE": { | ||
"": "America/Caracas" | ||
}, | ||
"BQ": { | ||
"": "America/Curacao" | ||
"VG": { | ||
"": "America/Tortola" | ||
}, | ||
"CW": { | ||
"": "America/Curacao" | ||
"VI": { | ||
"": "America/St_Thomas" | ||
}, | ||
"VN": { | ||
"": "Asia/Phnom_Penh" | ||
}, | ||
"VU": { | ||
"": "Pacific/Efate" | ||
}, | ||
"WF": { | ||
"": "Pacific/Wallis" | ||
}, | ||
"WS": { | ||
"": "Pacific/Pago_Pago" | ||
}, | ||
"YE": { | ||
"": "Asia/Aden" | ||
}, | ||
"YT": { | ||
"": "Indian/Mayotte" | ||
}, | ||
"YU": { | ||
"": "Europe/Belgrade" | ||
}, | ||
"ZA": { | ||
"": "Africa/Johannesburg" | ||
}, | ||
"ZM": { | ||
"": "Africa/Lusaka" | ||
}, | ||
"ZW": { | ||
"": "Africa/Harare" | ||
} | ||
}; |
var fs = require('fs'); | ||
var Buff = require('./buff'), | ||
var File = require('./file'), | ||
DatabaseInfo = require('./database_info'); | ||
@@ -38,3 +38,3 @@ | ||
this.file = new Buff(this.path); | ||
this.file = new File(this.path); | ||
this.info = new DatabaseInfo(this.file); | ||
@@ -41,0 +41,0 @@ |
@@ -181,3 +181,3 @@ var Database = require('./database'), | ||
if (x1 >= db.segment) { | ||
last_netmask = 128 - depth; | ||
db.lastNetmask = 128 - depth; | ||
return x1; | ||
@@ -188,3 +188,3 @@ } | ||
if (x0 >= db.segment) { | ||
last_netmask = 128 - depth; | ||
db.lastNetmask = 128 - depth; | ||
return x0; | ||
@@ -230,3 +230,12 @@ } | ||
exports.getLocationV6 = function(ipv6) { | ||
var db = _getDb([ | ||
DatabaseInfo.CITY_EDITION_REV0_V6, | ||
DatabaseInfo.CITY_EDITION_REV1_V6 | ||
]); | ||
return lookupLoc(db, this.seekCountryV6(db, ipv6)); | ||
}; | ||
exports.getRegion = function(ipv4) { | ||
@@ -233,0 +242,0 @@ var db = _getDb([ |
@@ -7,5 +7,4 @@ var _data = require('./data/time_zone_data'); | ||
region = region || ""; | ||
return _data[country][region]; | ||
var country = _data[country]; | ||
return country ? country[region || ''] : null; | ||
}; |
{ | ||
"name": "maxmind", | ||
"version": "0.4.1", | ||
"version": "0.4.3", | ||
"homepage": "https://github.com/runk/node-maxmind", | ||
@@ -5,0 +5,0 @@ "description": "IP lookup using Maxmind databases", |
@@ -5,3 +5,3 @@ node-maxmind [![Build Status](https://travis-ci.org/runk/node-maxmind.png)](https://travis-ci.org/runk/node-maxmind) | ||
Native Javascript module for IP GEO lookup using Maxmind databases. | ||
Up to [500% faster](https://github.com/runk/node-maxmind#performance--benchmark) than other GEO lookip libraries. | ||
Up to [500% faster](https://github.com/runk/node-maxmind#performance--benchmark) than other GEO lookup libraries. | ||
No binary or whatsoever dependencies. | ||
@@ -21,3 +21,3 @@ | ||
- Country/Region/Location lookup by IP | ||
- Country/Region/Location lookup by IP (v4 and v6) | ||
- Distance between two IP addresses (locations) | ||
@@ -53,5 +53,17 @@ - Timezone lookup by IP | ||
## V6 Support | ||
Module is fully campatible with IPv6 maxmind databases. Make sure you initialize with | ||
proper IPv6 databases before making queries. | ||
```javascript | ||
maxmind.init('/path/to/GeoLiteCityV6.dat'); | ||
var location = maxmind.getLocationV6('2001:4860:0:1001::3004:ef68'); | ||
``` | ||
All methods works in the same way as for IPv4, the only difference is `V6` postfix in method names: | ||
`getCountryV6`, `getLocationV6` and `getOrganizationV6`. | ||
You can initialize module with several databases at once, and proper db will be automatically selected | ||
for particular query. If any options given they apply for all databases you initialize. | ||
for particular query. If any option is given it applies to all databases you initialize. | ||
@@ -58,0 +70,0 @@ ```javascript |
@@ -16,2 +16,11 @@ var assert = require('assert'), | ||
var props = function(obj) { | ||
var res = {}; | ||
for (var k in obj) | ||
if (typeof obj[k] !== 'function') | ||
res[k] = obj[k]; | ||
return res; | ||
}; | ||
describe('init()', function() { | ||
@@ -30,2 +39,3 @@ | ||
describe('seekCountry()', function() { | ||
@@ -39,2 +49,16 @@ it('should perform binary search', function() { | ||
describe('seekCountryV6()', function() { | ||
it('should return correct index', function() { | ||
var db = new Database(GEO_COUNTRY_V6); | ||
assert.equal(ls.seekCountryV6(db, '2001:0db8:85a3:0042:1000:8a2e:0370:7334'), 0xffff00); | ||
assert.equal(ls.seekCountryV6(db, '2001:4860:0:1001::68'), 0xffff00); | ||
assert.equal(ls.seekCountryV6(db, '::64.17.254.216'), 0xffffe1); | ||
assert.equal(ls.seekCountryV6(db, '::ffff:64.17.254.216'), 0xffffe1); | ||
assert.equal(ls.seekCountryV6(db, '2001:200::'), 0xffff6f); | ||
}); | ||
}); | ||
describe('getCountry()', function() { | ||
@@ -59,16 +83,2 @@ before(function() { | ||
describe('seekCountryV6()', function() { | ||
it('should return correct index', function() { | ||
var db = new Database(GEO_COUNTRY_V6); | ||
assert.equal(ls.seekCountryV6(db, '2001:0db8:85a3:0042:1000:8a2e:0370:7334'), 0xffff00); | ||
assert.equal(ls.seekCountryV6(db, '2001:4860:0:1001::68'), 0xffff00); | ||
assert.equal(ls.seekCountryV6(db, '::64.17.254.216'), 0xffffe1); | ||
assert.equal(ls.seekCountryV6(db, '::ffff:64.17.254.216'), 0xffffe1); | ||
assert.equal(ls.seekCountryV6(db, '2001:200::'), 0xffff6f); | ||
}); | ||
}); | ||
describe('getCountryV6()', function() { | ||
@@ -96,13 +106,15 @@ before(function() { | ||
it('should return location by ip', function() { | ||
var l = ls.getLocation('109.60.171.33'); | ||
assert.equal(l.countryCode, 'RU'); | ||
assert.equal(l.countryName, 'Russian Federation'); | ||
assert.equal(l.region, '48'); | ||
assert.equal(l.regionName, 'Moscow City'); | ||
assert.equal(l.city, 'Moscow'); | ||
assert.equal(l.latitude, 55.75219999999999); | ||
assert.equal(l.longitude, 37.6156); | ||
assert.equal(l.metroCode, 0); | ||
assert.equal(l.dmaCode, 0); | ||
assert.equal(l.areaCode, 0); | ||
assert.deepEqual(props(ls.getLocation('109.60.171.33')), { | ||
countryCode: 'RU', | ||
countryName: 'Russian Federation', | ||
region: '48', | ||
city: 'Moscow', | ||
postalCode: null, | ||
latitude: 55.75219999999999, | ||
longitude: 37.6156, | ||
dmaCode: 0, | ||
areaCode: 0, | ||
metroCode: 0, | ||
regionName: 'Moscow City' | ||
}); | ||
}); | ||
@@ -112,55 +124,18 @@ | ||
var l = ls.getLocation('194.181.164.72'); | ||
assert.equal(l.countryCode, 'PL'); | ||
assert.equal(l.countryName, 'Poland'); | ||
assert.equal(l.region, '77'); | ||
assert.equal(l.regionName, 'Malopolskie'); | ||
assert.equal(l.city, 'Kraków'); | ||
assert.equal(l.latitude, 50.08330000000001); | ||
assert.equal(l.longitude, 19.91669999999999); | ||
assert.equal(l.metroCode, 0); | ||
assert.equal(l.dmaCode, 0); | ||
assert.equal(l.areaCode, 0); | ||
}); | ||
it('should return location by ip (2)', function() { | ||
var l = ls.getLocation('195.68.137.18'); | ||
assert.equal(l.countryCode, 'RU'); | ||
assert.equal(l.countryName, 'Russian Federation'); | ||
assert.equal(l.region, null); | ||
assert.equal(l.regionName, null); | ||
assert.equal(l.city, null); | ||
assert.equal(l.latitude, 60); | ||
assert.equal(l.longitude, 100); | ||
assert.equal(l.metroCode, 0); | ||
assert.equal(l.dmaCode, 0); | ||
assert.equal(l.areaCode, 0); | ||
}); | ||
it('should return location by ip (3)', function() { | ||
it('should return location by ip from the beginning of the range', function() { | ||
var l = ls.getLocation('2.2.3.29'); | ||
assert.equal(l.countryCode, 'FR'); | ||
assert.equal(l.countryName, 'France'); | ||
assert.equal(l.region, 'A2'); | ||
assert.equal(l.regionName, 'Bretagne'); | ||
assert.equal(l.city, 'Rennes'); | ||
assert.equal(l.latitude, 48.111999999999995); | ||
assert.equal(l.longitude, -1.6742999999999881); | ||
assert.equal(l.metroCode, 0); | ||
assert.equal(l.dmaCode, 0); | ||
assert.equal(l.areaCode, 0); | ||
}); | ||
it('should return location by ip (4)', function() { | ||
it('should return location for small country', function() { | ||
var l = ls.getLocation('180.189.170.18'); | ||
assert.equal(l.countryCode, 'TL'); | ||
assert.equal(l.countryName, 'Timor-Leste'); | ||
assert.equal(l.region, null); | ||
assert.equal(l.regionName, null); | ||
assert.equal(l.city, null); | ||
assert.equal(l.latitude, -8.569999999999993); | ||
assert.equal(l.longitude, 125.57); | ||
assert.equal(l.metroCode, 0); | ||
assert.equal(l.dmaCode, 0); | ||
assert.equal(l.areaCode, 0); | ||
}); | ||
@@ -170,2 +145,40 @@ }); | ||
describe('getLocationV6()', function() { | ||
before(function() { | ||
assert.equal(ls.init(GEO_CITY_V6), true); | ||
}); | ||
it('should return correct data', function() { | ||
assert.deepEqual(props(ls.getLocationV6('2001:208::')), { | ||
countryCode: 'SG', | ||
countryName: 'Singapore', | ||
region: null, | ||
city: null, | ||
postalCode: null, | ||
latitude: 1.3667000000000087, | ||
longitude: 103.80000000000001, | ||
dmaCode: 0, | ||
areaCode: 0, | ||
metroCode: 0, | ||
regionName: null | ||
}); | ||
assert.deepEqual(props(ls.getLocationV6('2a02:ff40::')), { | ||
countryCode: 'IM', | ||
countryName: 'Isle of Man', | ||
region: null, | ||
city: null, | ||
postalCode: null, | ||
latitude: 54.22999999999999, | ||
longitude: -4.569999999999993, | ||
dmaCode: 0, | ||
areaCode: 0, | ||
metroCode: 0, | ||
regionName: null | ||
}); | ||
}); | ||
}); | ||
describe('getOrganization()', function() { | ||
@@ -172,0 +185,0 @@ before(function() { |
188113
7357
135