@hebcal/geo-sqlite 4.3.0 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/geo-sqlite v4.3.0 */
1
+ /*! @hebcal/geo-sqlite v4.4.2 */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -19,7 +19,7 @@ var events__default = /*#__PURE__*/_interopDefaultLegacy(events);
19
19
  var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
20
20
  var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline);
21
21
 
22
- var Ashdod=295629;var Atlanta=4180439;var Austin=4671654;var Baghdad=98182;var Baltimore=4347778;var Berlin=2950159;var Bogota=3688689;var Boston=4930956;var Buffalo=5110629;var Chicago=4887398;var Cincinnati=4508722;var Cleveland=5150529;var Dallas=4684888;var Denver=5419384;var Detroit=4990729;var Eilat=295277;var Gibraltar=2411585;var Haifa=294801;var Hawaii=5856195;var Houston=4699066;var Jerusalem=281184;var Johannesburg=993800;var Kiev=703448;var Livingston=5100572;var London=2643743;var Melbourne=2158177;var Miami=4164138;var Montreal=6077243;var Moscow=524901;var Omaha=5074472;var Ottawa=6094817;var Paris=2988507;var Philadelphia=4560349;var Phoenix=5308655;var Pittsburgh=5206379;var Seattle=5809844;var Sydney=2147714;var Tiberias=293322;var Toronto=6167865;var Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
22
+ const Ashdod=295629;const Atlanta=4180439;const Austin=4671654;const Baghdad=98182;const Baltimore=4347778;const Berlin=2950159;const Bogota=3688689;const Boston=4930956;const Buffalo=5110629;const Chicago=4887398;const Cincinnati=4508722;const Cleveland=5150529;const Dallas=4684888;const Denver=5419384;const Detroit=4990729;const Eilat=295277;const Gibraltar=2411585;const Haifa=294801;const Hawaii=5856195;const Houston=4699066;const Jerusalem=281184;const Johannesburg=993800;const Kiev=703448;const Livingston=5100572;const London=2643743;const Melbourne=2158177;const Miami=4164138;const Montreal=6077243;const Moscow=524901;const Omaha=5074472;const Ottawa=6094817;const Paris=2988507;const Philadelphia=4560349;const Phoenix=5308655;const Pittsburgh=5206379;const Seattle=5809844;const Sydney=2147714;const Tiberias=293322;const Toronto=6167865;const Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
23
23
 
24
24
  const GEONAME_SQL = `SELECT
25
25
  g.name as name,
@@ -29,6 +29,7 @@ const GEONAME_SQL = `SELECT
29
29
  a.asciiname as admin1,
30
30
  g.latitude as latitude,
31
31
  g.longitude as longitude,
32
+ g.population as population,
32
33
  g.timezone as timezone
33
34
  FROM geoname g
34
35
  LEFT JOIN country c on g.country = c.iso
@@ -44,31 +45,32 @@ const GEONAME_ALL_SQL = `SELECT
44
45
  a.asciiname as admin1,
45
46
  g.latitude as latitude,
46
47
  g.longitude as longitude,
48
+ g.population as population,
47
49
  g.timezone as timezone
48
50
  FROM geoname g
49
51
  LEFT JOIN country c on g.country = c.iso
50
52
  LEFT JOIN admin1 a on g.country||'.'||g.admin1 = a.key
51
53
  `;
52
- const ZIPCODE_SQL = `SELECT CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
54
+ const ZIPCODE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
53
55
  FROM ZIPCodes_Primary WHERE ZipCode = ?`;
54
- const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
56
+ const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
55
57
  FROM ZIPCodes_Primary`;
56
58
  const ZIP_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
57
59
  FROM ZIPCodes_Primary
58
60
  WHERE ZipCode LIKE ?
59
61
  ORDER BY Population DESC
60
62
  LIMIT 10`;
61
- const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
62
- FROM ZIPCodes_CityFullText
63
+ const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,rank
64
+ FROM ZIPCodes_CityFullText5
63
65
  WHERE CityMixedCase MATCH ?
64
66
  ORDER BY Population DESC
65
67
  LIMIT 15`;
66
- const GEONAME_COMPLETE_SQL = `SELECT geonameid, asciiname, admin1, country,
67
- population, latitude, longitude, timezone
68
+ const GEONAME_COMPLETE_SQL = `SELECT geonameid, longname,
69
+ ((sqrt(population)/40) + (-30 * rank)) as myrank
68
70
  FROM geoname_fulltext
69
- WHERE longname MATCH ?
71
+ WHERE geoname_fulltext MATCH ?
70
72
  GROUP BY geonameid
71
- ORDER BY population DESC
73
+ ORDER BY myrank DESC
72
74
  LIMIT 15`;
73
75
  const stateNames = {
74
76
  'AK': 'Alaska',
@@ -149,7 +151,7 @@ class GeoDb {
149
151
  /** @type {Map<number, Location>} */
150
152
 
151
153
  this.geonamesCache = new Map();
152
- /** @type {Map<string, Location>} */
154
+ /** @type {Map<string, number>} */
153
155
 
154
156
  this.legacyCities = new Map();
155
157
 
@@ -225,6 +227,7 @@ class GeoDb {
225
227
  location.stateName = stateNames[location.state];
226
228
  location.geo = 'zip';
227
229
  location.zip = zip;
230
+ location.population = result.Population;
228
231
  return location;
229
232
  }
230
233
  /**
@@ -262,13 +265,9 @@ class GeoDb {
262
265
  const admin1 = result.admin1 || '';
263
266
  const cityDescr = core.Location.geonameCityDescr(result.name, admin1, country);
264
267
  const location = new core.Location(result.latitude, result.longitude, result.cc == 'IL', result.timezone, cityDescr, result.cc, geonameid);
265
-
266
- if (result.asciiname !== result.name) {
267
- location.asciiname = result.asciiname;
268
- }
269
-
270
268
  location.geo = 'geoname';
271
269
  location.geonameid = geonameid;
270
+ location.asciiname = result.asciiname;
272
271
 
273
272
  if (admin1) {
274
273
  location.admin1 = admin1;
@@ -278,6 +277,10 @@ class GeoDb {
278
277
  location.jersualem = true;
279
278
  }
280
279
 
280
+ if (result.population) {
281
+ location.population = result.population;
282
+ }
283
+
281
284
  return location;
282
285
  }
283
286
  /**
@@ -306,28 +309,23 @@ class GeoDb {
306
309
  /**
307
310
  * @private
308
311
  * @param {any[]} res
309
- * @param {boolean} latlong
310
312
  * @return {Object[]}
311
313
  */
312
314
 
313
315
 
314
- static zipResultToObj(res, latlong = false) {
316
+ static zipResultToObj(res) {
315
317
  const obj = {
316
318
  id: String(res.ZipCode),
317
319
  value: `${res.CityMixedCase}, ${res.State} ${res.ZipCode}`,
318
320
  admin1: res.State,
319
321
  asciiname: res.CityMixedCase,
320
322
  country: 'United States',
323
+ latitude: res.Latitude,
324
+ longitude: res.Longitude,
325
+ timezone: core.Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving),
321
326
  population: res.Population,
322
327
  geo: 'zip'
323
328
  };
324
-
325
- if (latlong) {
326
- obj.latitude = res.Latitude;
327
- obj.longitude = res.Longitude;
328
- obj.timezone = core.Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving);
329
- }
330
-
331
329
  return obj;
332
330
  }
333
331
  /**
@@ -353,25 +351,39 @@ class GeoDb {
353
351
  }
354
352
 
355
353
  const zip5 = qraw.substring(0, 5);
356
- return this.zipCompStmt.all(zip5 + '%').map(row => GeoDb.zipResultToObj(row, latlong));
354
+ return this.zipCompStmt.all(zip5 + '%').map(GeoDb.zipResultToObj);
357
355
  } else {
358
356
  if (!this.geonamesCompStmt) {
359
357
  this.geonamesCompStmt = this.geonamesDb.prepare(GEONAME_COMPLETE_SQL);
360
358
  }
361
359
 
362
360
  qraw = qraw.replace(/\"/g, '""');
363
- const geoRows = this.geonamesCompStmt.all(`"${qraw}*"`);
361
+ const geoRows = this.geonamesCompStmt.all(`{longname} : "${qraw}" *`);
364
362
  const geoMatches = geoRows.map(res => {
365
- const country = res.country || '';
366
- const admin1 = res.admin1 || '';
363
+ const loc = this.lookupGeoname(res.geonameid);
364
+ const country = this.countryNames.get(loc.getCountryCode()) || '';
365
+ const admin1 = loc.admin1 || '';
366
+ const rank = Math.trunc(res.myrank * 100.0) / 100.0;
367
367
  const obj = {
368
368
  id: res.geonameid,
369
- value: core.Location.geonameCityDescr(res.asciiname, admin1, country),
370
- asciiname: res.asciiname,
371
- population: res.population,
372
- geo: 'geoname'
369
+ value: loc.name,
370
+ admin1,
371
+ country,
372
+ latitude: loc.latitude,
373
+ longitude: loc.longitude,
374
+ timezone: loc.getTzid(),
375
+ geo: 'geoname',
376
+ rank: rank
373
377
  };
374
378
 
379
+ if (loc.population) {
380
+ obj.population = loc.population;
381
+ }
382
+
383
+ if (loc.asciiname) {
384
+ obj.asciiname = loc.asciiname;
385
+ }
386
+
375
387
  if (country) {
376
388
  obj.country = country;
377
389
  }
@@ -380,12 +392,6 @@ class GeoDb {
380
392
  obj.admin1 = admin1;
381
393
  }
382
394
 
383
- if (latlong) {
384
- obj.latitude = res.latitude;
385
- obj.longitude = res.longitude;
386
- obj.timezone = res.timezone;
387
- }
388
-
389
395
  return obj;
390
396
  });
391
397
 
@@ -393,8 +399,26 @@ class GeoDb {
393
399
  this.zipFulltextCompStmt = this.zipsDb.prepare(ZIP_FULLTEXT_COMPLETE_SQL);
394
400
  }
395
401
 
396
- const zipRows = this.zipFulltextCompStmt.all(`"${qraw}*"`);
397
- const zipMatches = zipRows.map(row => GeoDb.zipResultToObj(row, latlong));
402
+ const zipRows = this.zipFulltextCompStmt.all(`"${qraw}" *`);
403
+ const zipMatches = zipRows.map(res => {
404
+ const zipCode = res.ZipCode;
405
+ const loc = this.lookupZip(zipCode);
406
+ const myrank = Math.sqrt(loc.population) / 40 + -30 * res.rank;
407
+ const obj = {
408
+ id: zipCode,
409
+ value: loc.getName(),
410
+ admin1: loc.admin1,
411
+ asciiname: loc.getShortName(),
412
+ country: 'United States',
413
+ latitude: loc.latitude,
414
+ longitude: loc.longitude,
415
+ timezone: loc.getTzid(),
416
+ population: loc.population,
417
+ geo: 'zip',
418
+ rank: myrank
419
+ };
420
+ return obj;
421
+ });
398
422
  const map = new Map();
399
423
 
400
424
  for (const obj of zipMatches) {
@@ -412,8 +436,19 @@ class GeoDb {
412
436
  }
413
437
 
414
438
  const values = Array.from(map.values());
415
- values.sort((a, b) => b.population - a.population);
416
- return values.slice(0, 10);
439
+ values.sort((a, b) => b.rank - a.rank);
440
+ const topN = values.slice(0, 10);
441
+
442
+ if (!latlong) {
443
+ for (const val of topN) {
444
+ delete val.latitude;
445
+ delete val.longitude;
446
+ delete val.timezone;
447
+ delete val.population;
448
+ }
449
+ }
450
+
451
+ return topN;
417
452
  }
418
453
  }
419
454
  /** Reads entire ZIP database and caches in-memory */
@@ -593,45 +628,50 @@ async function buildGeonamesSqlite(opts) {
593
628
  `);
594
629
  doSql(logger, db, `update admin1 set name='',asciiname='' where key like 'PS.%';`, `update country set country = '' where iso = 'PS';`, `delete from geoname where geonameid = 7303419;`);
595
630
  doSql(logger, db, `DROP TABLE IF EXISTS geoname_fulltext`, `CREATE VIRTUAL TABLE geoname_fulltext
596
- USING fts3(geonameid int, longname text,
597
- asciiname text, admin1 text, country text,
598
- population int, latitude real, longitude real, timezone text
599
- );
631
+ USING fts5(geonameid, longname, population);
600
632
  `, `DROP TABLE IF EXISTS geoname_non_ascii`, `CREATE TABLE geoname_non_ascii AS
601
633
  SELECT geonameid FROM geoname WHERE asciiname <> name`, `INSERT INTO geoname_fulltext
602
- SELECT g.geonameid, g.asciiname||', '||a.asciiname||', '||c.Country,
603
- g.asciiname, a.asciiname, c.Country,
604
- g.population, g.latitude, g.longitude, g.timezone
634
+ SELECT g.geonameid,
635
+ g.asciiname||', '||a.asciiname||', '||c.Country,
636
+ g.population
605
637
  FROM geoname g, admin1 a, country c
606
638
  WHERE g.country = c.ISO
639
+ AND g.country <> 'US'
640
+ AND g.country||'.'||g.admin1 = a.key
641
+ `, `INSERT INTO geoname_fulltext
642
+ SELECT g.geonameid,
643
+ g.asciiname||', '||a.asciiname||', USA',
644
+ g.population
645
+ FROM geoname g, admin1 a
646
+ WHERE g.country = 'US'
607
647
  AND g.country||'.'||g.admin1 = a.key
608
648
  `, `INSERT INTO geoname_fulltext
609
- SELECT g.geonameid, g.asciiname||', '||c.Country,
610
- g.asciiname, '', c.Country,
611
- g.population, g.latitude, g.longitude, g.timezone
649
+ SELECT g.geonameid,
650
+ g.asciiname||', '||c.Country,
651
+ g.population
612
652
  FROM geoname g, country c
613
653
  WHERE g.country = c.ISO
614
654
  AND (g.admin1 = '' OR g.admin1 = '00')
615
655
  `, `INSERT INTO geoname_fulltext
616
- SELECT g.geonameid, g.name||', '||a.name||', '||c.Country,
617
- g.name, a.name, c.Country,
618
- g.population, g.latitude, g.longitude, g.timezone
656
+ SELECT g.geonameid,
657
+ g.name||', '||a.name||', '||c.Country,
658
+ g.population
619
659
  FROM geoname_non_ascii gna, geoname g, admin1 a, country c
620
660
  WHERE gna.geonameid = g.geonameid
621
661
  AND g.country = c.ISO
622
662
  AND g.country||'.'||g.admin1 = a.key
623
663
  `, `INSERT INTO geoname_fulltext
624
- SELECT g.geonameid, alt.name||', ישראל',
625
- alt.name, '', 'ישראל',
626
- g.population, g.latitude, g.longitude, g.timezone
664
+ SELECT g.geonameid,
665
+ alt.name||', ישראל',
666
+ g.population
627
667
  FROM geoname g, altnames alt
628
668
  WHERE g.country = 'IL'
629
669
  AND alt.isolanguage = 'he'
630
670
  AND g.geonameid = alt.geonameid
631
671
  `, `INSERT INTO geoname_fulltext
632
- SELECT g.geonameid, alt.name||', '||a1.asciiname||', Israel',
633
- alt.name, a1.asciiname, 'Israel',
634
- g.population, g.latitude, g.longitude, g.timezone
672
+ SELECT g.geonameid,
673
+ alt.name||', '||a1.asciiname||', Israel',
674
+ g.population
635
675
  FROM geoname g, admin1 a1, altnames alt
636
676
  WHERE g.country = 'IL'
637
677
  AND alt.isolanguage = 'en'
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/geo-sqlite v4.3.0 */
1
+ /*! @hebcal/geo-sqlite v4.4.2 */
2
2
  import Database from 'better-sqlite3';
3
3
  import { Location, Locale } from '@hebcal/core';
4
4
  import '@hebcal/cities';
@@ -7,7 +7,7 @@ import events from 'events';
7
7
  import fs from 'fs';
8
8
  import readline from 'readline';
9
9
 
10
- var Ashdod=295629;var Atlanta=4180439;var Austin=4671654;var Baghdad=98182;var Baltimore=4347778;var Berlin=2950159;var Bogota=3688689;var Boston=4930956;var Buffalo=5110629;var Chicago=4887398;var Cincinnati=4508722;var Cleveland=5150529;var Dallas=4684888;var Denver=5419384;var Detroit=4990729;var Eilat=295277;var Gibraltar=2411585;var Haifa=294801;var Hawaii=5856195;var Houston=4699066;var Jerusalem=281184;var Johannesburg=993800;var Kiev=703448;var Livingston=5100572;var London=2643743;var Melbourne=2158177;var Miami=4164138;var Montreal=6077243;var Moscow=524901;var Omaha=5074472;var Ottawa=6094817;var Paris=2988507;var Philadelphia=4560349;var Phoenix=5308655;var Pittsburgh=5206379;var Seattle=5809844;var Sydney=2147714;var Tiberias=293322;var Toronto=6167865;var Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
10
+ const Ashdod=295629;const Atlanta=4180439;const Austin=4671654;const Baghdad=98182;const Baltimore=4347778;const Berlin=2950159;const Bogota=3688689;const Boston=4930956;const Buffalo=5110629;const Chicago=4887398;const Cincinnati=4508722;const Cleveland=5150529;const Dallas=4684888;const Denver=5419384;const Detroit=4990729;const Eilat=295277;const Gibraltar=2411585;const Haifa=294801;const Hawaii=5856195;const Houston=4699066;const Jerusalem=281184;const Johannesburg=993800;const Kiev=703448;const Livingston=5100572;const London=2643743;const Melbourne=2158177;const Miami=4164138;const Montreal=6077243;const Moscow=524901;const Omaha=5074472;const Ottawa=6094817;const Paris=2988507;const Philadelphia=4560349;const Phoenix=5308655;const Pittsburgh=5206379;const Seattle=5809844;const Sydney=2147714;const Tiberias=293322;const Toronto=6167865;const Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
11
11
 
12
12
  const GEONAME_SQL = `SELECT
13
13
  g.name as name,
@@ -17,6 +17,7 @@ const GEONAME_SQL = `SELECT
17
17
  a.asciiname as admin1,
18
18
  g.latitude as latitude,
19
19
  g.longitude as longitude,
20
+ g.population as population,
20
21
  g.timezone as timezone
21
22
  FROM geoname g
22
23
  LEFT JOIN country c on g.country = c.iso
@@ -32,31 +33,32 @@ const GEONAME_ALL_SQL = `SELECT
32
33
  a.asciiname as admin1,
33
34
  g.latitude as latitude,
34
35
  g.longitude as longitude,
36
+ g.population as population,
35
37
  g.timezone as timezone
36
38
  FROM geoname g
37
39
  LEFT JOIN country c on g.country = c.iso
38
40
  LEFT JOIN admin1 a on g.country||'.'||g.admin1 = a.key
39
41
  `;
40
- const ZIPCODE_SQL = `SELECT CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
42
+ const ZIPCODE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
41
43
  FROM ZIPCodes_Primary WHERE ZipCode = ?`;
42
- const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
44
+ const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
43
45
  FROM ZIPCodes_Primary`;
44
46
  const ZIP_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
45
47
  FROM ZIPCodes_Primary
46
48
  WHERE ZipCode LIKE ?
47
49
  ORDER BY Population DESC
48
50
  LIMIT 10`;
49
- const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
50
- FROM ZIPCodes_CityFullText
51
+ const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,rank
52
+ FROM ZIPCodes_CityFullText5
51
53
  WHERE CityMixedCase MATCH ?
52
54
  ORDER BY Population DESC
53
55
  LIMIT 15`;
54
- const GEONAME_COMPLETE_SQL = `SELECT geonameid, asciiname, admin1, country,
55
- population, latitude, longitude, timezone
56
+ const GEONAME_COMPLETE_SQL = `SELECT geonameid, longname,
57
+ ((sqrt(population)/40) + (-30 * rank)) as myrank
56
58
  FROM geoname_fulltext
57
- WHERE longname MATCH ?
59
+ WHERE geoname_fulltext MATCH ?
58
60
  GROUP BY geonameid
59
- ORDER BY population DESC
61
+ ORDER BY myrank DESC
60
62
  LIMIT 15`;
61
63
  const stateNames = {
62
64
  'AK': 'Alaska',
@@ -137,7 +139,7 @@ class GeoDb {
137
139
  /** @type {Map<number, Location>} */
138
140
 
139
141
  this.geonamesCache = new Map();
140
- /** @type {Map<string, Location>} */
142
+ /** @type {Map<string, number>} */
141
143
 
142
144
  this.legacyCities = new Map();
143
145
 
@@ -213,6 +215,7 @@ class GeoDb {
213
215
  location.stateName = stateNames[location.state];
214
216
  location.geo = 'zip';
215
217
  location.zip = zip;
218
+ location.population = result.Population;
216
219
  return location;
217
220
  }
218
221
  /**
@@ -250,13 +253,9 @@ class GeoDb {
250
253
  const admin1 = result.admin1 || '';
251
254
  const cityDescr = Location.geonameCityDescr(result.name, admin1, country);
252
255
  const location = new Location(result.latitude, result.longitude, result.cc == 'IL', result.timezone, cityDescr, result.cc, geonameid);
253
-
254
- if (result.asciiname !== result.name) {
255
- location.asciiname = result.asciiname;
256
- }
257
-
258
256
  location.geo = 'geoname';
259
257
  location.geonameid = geonameid;
258
+ location.asciiname = result.asciiname;
260
259
 
261
260
  if (admin1) {
262
261
  location.admin1 = admin1;
@@ -266,6 +265,10 @@ class GeoDb {
266
265
  location.jersualem = true;
267
266
  }
268
267
 
268
+ if (result.population) {
269
+ location.population = result.population;
270
+ }
271
+
269
272
  return location;
270
273
  }
271
274
  /**
@@ -294,28 +297,23 @@ class GeoDb {
294
297
  /**
295
298
  * @private
296
299
  * @param {any[]} res
297
- * @param {boolean} latlong
298
300
  * @return {Object[]}
299
301
  */
300
302
 
301
303
 
302
- static zipResultToObj(res, latlong = false) {
304
+ static zipResultToObj(res) {
303
305
  const obj = {
304
306
  id: String(res.ZipCode),
305
307
  value: `${res.CityMixedCase}, ${res.State} ${res.ZipCode}`,
306
308
  admin1: res.State,
307
309
  asciiname: res.CityMixedCase,
308
310
  country: 'United States',
311
+ latitude: res.Latitude,
312
+ longitude: res.Longitude,
313
+ timezone: Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving),
309
314
  population: res.Population,
310
315
  geo: 'zip'
311
316
  };
312
-
313
- if (latlong) {
314
- obj.latitude = res.Latitude;
315
- obj.longitude = res.Longitude;
316
- obj.timezone = Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving);
317
- }
318
-
319
317
  return obj;
320
318
  }
321
319
  /**
@@ -341,25 +339,39 @@ class GeoDb {
341
339
  }
342
340
 
343
341
  const zip5 = qraw.substring(0, 5);
344
- return this.zipCompStmt.all(zip5 + '%').map(row => GeoDb.zipResultToObj(row, latlong));
342
+ return this.zipCompStmt.all(zip5 + '%').map(GeoDb.zipResultToObj);
345
343
  } else {
346
344
  if (!this.geonamesCompStmt) {
347
345
  this.geonamesCompStmt = this.geonamesDb.prepare(GEONAME_COMPLETE_SQL);
348
346
  }
349
347
 
350
348
  qraw = qraw.replace(/\"/g, '""');
351
- const geoRows = this.geonamesCompStmt.all(`"${qraw}*"`);
349
+ const geoRows = this.geonamesCompStmt.all(`{longname} : "${qraw}" *`);
352
350
  const geoMatches = geoRows.map(res => {
353
- const country = res.country || '';
354
- const admin1 = res.admin1 || '';
351
+ const loc = this.lookupGeoname(res.geonameid);
352
+ const country = this.countryNames.get(loc.getCountryCode()) || '';
353
+ const admin1 = loc.admin1 || '';
354
+ const rank = Math.trunc(res.myrank * 100.0) / 100.0;
355
355
  const obj = {
356
356
  id: res.geonameid,
357
- value: Location.geonameCityDescr(res.asciiname, admin1, country),
358
- asciiname: res.asciiname,
359
- population: res.population,
360
- geo: 'geoname'
357
+ value: loc.name,
358
+ admin1,
359
+ country,
360
+ latitude: loc.latitude,
361
+ longitude: loc.longitude,
362
+ timezone: loc.getTzid(),
363
+ geo: 'geoname',
364
+ rank: rank
361
365
  };
362
366
 
367
+ if (loc.population) {
368
+ obj.population = loc.population;
369
+ }
370
+
371
+ if (loc.asciiname) {
372
+ obj.asciiname = loc.asciiname;
373
+ }
374
+
363
375
  if (country) {
364
376
  obj.country = country;
365
377
  }
@@ -368,12 +380,6 @@ class GeoDb {
368
380
  obj.admin1 = admin1;
369
381
  }
370
382
 
371
- if (latlong) {
372
- obj.latitude = res.latitude;
373
- obj.longitude = res.longitude;
374
- obj.timezone = res.timezone;
375
- }
376
-
377
383
  return obj;
378
384
  });
379
385
 
@@ -381,8 +387,26 @@ class GeoDb {
381
387
  this.zipFulltextCompStmt = this.zipsDb.prepare(ZIP_FULLTEXT_COMPLETE_SQL);
382
388
  }
383
389
 
384
- const zipRows = this.zipFulltextCompStmt.all(`"${qraw}*"`);
385
- const zipMatches = zipRows.map(row => GeoDb.zipResultToObj(row, latlong));
390
+ const zipRows = this.zipFulltextCompStmt.all(`"${qraw}" *`);
391
+ const zipMatches = zipRows.map(res => {
392
+ const zipCode = res.ZipCode;
393
+ const loc = this.lookupZip(zipCode);
394
+ const myrank = Math.sqrt(loc.population) / 40 + -30 * res.rank;
395
+ const obj = {
396
+ id: zipCode,
397
+ value: loc.getName(),
398
+ admin1: loc.admin1,
399
+ asciiname: loc.getShortName(),
400
+ country: 'United States',
401
+ latitude: loc.latitude,
402
+ longitude: loc.longitude,
403
+ timezone: loc.getTzid(),
404
+ population: loc.population,
405
+ geo: 'zip',
406
+ rank: myrank
407
+ };
408
+ return obj;
409
+ });
386
410
  const map = new Map();
387
411
 
388
412
  for (const obj of zipMatches) {
@@ -400,8 +424,19 @@ class GeoDb {
400
424
  }
401
425
 
402
426
  const values = Array.from(map.values());
403
- values.sort((a, b) => b.population - a.population);
404
- return values.slice(0, 10);
427
+ values.sort((a, b) => b.rank - a.rank);
428
+ const topN = values.slice(0, 10);
429
+
430
+ if (!latlong) {
431
+ for (const val of topN) {
432
+ delete val.latitude;
433
+ delete val.longitude;
434
+ delete val.timezone;
435
+ delete val.population;
436
+ }
437
+ }
438
+
439
+ return topN;
405
440
  }
406
441
  }
407
442
  /** Reads entire ZIP database and caches in-memory */
@@ -581,45 +616,50 @@ async function buildGeonamesSqlite(opts) {
581
616
  `);
582
617
  doSql(logger, db, `update admin1 set name='',asciiname='' where key like 'PS.%';`, `update country set country = '' where iso = 'PS';`, `delete from geoname where geonameid = 7303419;`);
583
618
  doSql(logger, db, `DROP TABLE IF EXISTS geoname_fulltext`, `CREATE VIRTUAL TABLE geoname_fulltext
584
- USING fts3(geonameid int, longname text,
585
- asciiname text, admin1 text, country text,
586
- population int, latitude real, longitude real, timezone text
587
- );
619
+ USING fts5(geonameid, longname, population);
588
620
  `, `DROP TABLE IF EXISTS geoname_non_ascii`, `CREATE TABLE geoname_non_ascii AS
589
621
  SELECT geonameid FROM geoname WHERE asciiname <> name`, `INSERT INTO geoname_fulltext
590
- SELECT g.geonameid, g.asciiname||', '||a.asciiname||', '||c.Country,
591
- g.asciiname, a.asciiname, c.Country,
592
- g.population, g.latitude, g.longitude, g.timezone
622
+ SELECT g.geonameid,
623
+ g.asciiname||', '||a.asciiname||', '||c.Country,
624
+ g.population
593
625
  FROM geoname g, admin1 a, country c
594
626
  WHERE g.country = c.ISO
627
+ AND g.country <> 'US'
628
+ AND g.country||'.'||g.admin1 = a.key
629
+ `, `INSERT INTO geoname_fulltext
630
+ SELECT g.geonameid,
631
+ g.asciiname||', '||a.asciiname||', USA',
632
+ g.population
633
+ FROM geoname g, admin1 a
634
+ WHERE g.country = 'US'
595
635
  AND g.country||'.'||g.admin1 = a.key
596
636
  `, `INSERT INTO geoname_fulltext
597
- SELECT g.geonameid, g.asciiname||', '||c.Country,
598
- g.asciiname, '', c.Country,
599
- g.population, g.latitude, g.longitude, g.timezone
637
+ SELECT g.geonameid,
638
+ g.asciiname||', '||c.Country,
639
+ g.population
600
640
  FROM geoname g, country c
601
641
  WHERE g.country = c.ISO
602
642
  AND (g.admin1 = '' OR g.admin1 = '00')
603
643
  `, `INSERT INTO geoname_fulltext
604
- SELECT g.geonameid, g.name||', '||a.name||', '||c.Country,
605
- g.name, a.name, c.Country,
606
- g.population, g.latitude, g.longitude, g.timezone
644
+ SELECT g.geonameid,
645
+ g.name||', '||a.name||', '||c.Country,
646
+ g.population
607
647
  FROM geoname_non_ascii gna, geoname g, admin1 a, country c
608
648
  WHERE gna.geonameid = g.geonameid
609
649
  AND g.country = c.ISO
610
650
  AND g.country||'.'||g.admin1 = a.key
611
651
  `, `INSERT INTO geoname_fulltext
612
- SELECT g.geonameid, alt.name||', ישראל',
613
- alt.name, '', 'ישראל',
614
- g.population, g.latitude, g.longitude, g.timezone
652
+ SELECT g.geonameid,
653
+ alt.name||', ישראל',
654
+ g.population
615
655
  FROM geoname g, altnames alt
616
656
  WHERE g.country = 'IL'
617
657
  AND alt.isolanguage = 'he'
618
658
  AND g.geonameid = alt.geonameid
619
659
  `, `INSERT INTO geoname_fulltext
620
- SELECT g.geonameid, alt.name||', '||a1.asciiname||', Israel',
621
- alt.name, a1.asciiname, 'Israel',
622
- g.population, g.latitude, g.longitude, g.timezone
660
+ SELECT g.geonameid,
661
+ alt.name||', '||a1.asciiname||', Israel',
662
+ g.population
623
663
  FROM geoname g, admin1 a1, altnames alt
624
664
  WHERE g.country = 'IL'
625
665
  AND alt.isolanguage = 'en'
package/geo-sqlite.d.ts CHANGED
@@ -3,13 +3,25 @@
3
3
  import {Location} from '@hebcal/core';
4
4
 
5
5
  declare module '@hebcal/geo-sqlite' {
6
+ export type AutoComplete = {
7
+ id: number | string;
8
+ value: string;
9
+ geo: 'geoname' | 'zip';
10
+ asciiname: string;
11
+ admin1?: string;
12
+ country?: string;
13
+ population?: number;
14
+ latitude?: number;
15
+ longitude?: number;
16
+ timezone?: string;
17
+ };
6
18
  export class GeoDb {
7
19
  constructor(logger: any, zipsFilename: string, geonamesFilename: string);
8
20
  close(): void;
9
21
  lookupZip(zip: string): Location;
10
22
  lookupGeoname(geonameid: number): Location;
11
23
  lookupLegacyCity(cityName: string): Location;
12
- autoComplete(qraw: string): Object[];
24
+ autoComplete(qraw: string, latlong?: boolean): AutoComplete[];
13
25
  cacheZips(): void;
14
26
  cacheGeonames(): void;
15
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hebcal/geo-sqlite",
3
- "version": "4.3.0",
3
+ "version": "4.4.2",
4
4
  "author": "Michael J. Radwin (https://github.com/mjradwin)",
5
5
  "keywords": [
6
6
  "hebcal"
@@ -29,10 +29,10 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "@hebcal/cities": "^3.1.2",
32
- "@hebcal/core": "^3.33.3",
33
- "better-sqlite3": "^7.5.0",
34
- "pino": "^7.8.1",
35
- "pino-pretty": "^7.5.3"
32
+ "@hebcal/core": "^3.36.2",
33
+ "better-sqlite3": "^7.5.1",
34
+ "pino": "^7.11.0",
35
+ "pino-pretty": "^7.6.1"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "rollup -c",
@@ -53,18 +53,18 @@
53
53
  },
54
54
  "license": "BSD-2-Clause",
55
55
  "devDependencies": {
56
- "@babel/core": "^7.17.5",
57
- "@babel/preset-env": "^7.16.11",
58
- "@babel/register": "^7.17.0",
56
+ "@babel/core": "^7.17.10",
57
+ "@babel/preset-env": "^7.17.10",
58
+ "@babel/register": "^7.17.7",
59
59
  "@rollup/plugin-babel": "^5.3.1",
60
- "@rollup/plugin-commonjs": "^21.0.2",
60
+ "@rollup/plugin-commonjs": "^22.0.0",
61
61
  "@rollup/plugin-json": "^4.1.0",
62
- "@rollup/plugin-node-resolve": "^13.1.3",
63
- "ava": "^4.1.0",
64
- "eslint": "^8.11.0",
62
+ "@rollup/plugin-node-resolve": "^13.2.1",
63
+ "ava": "^4.2.0",
64
+ "eslint": "^8.14.0",
65
65
  "eslint-config-google": "^0.14.0",
66
66
  "jsdoc": "^3.6.10",
67
67
  "jsdoc-to-markdown": "^7.1.1",
68
- "rollup": "^2.70.0"
68
+ "rollup": "^2.71.1"
69
69
  }
70
70
  }
package/zips-dummy.sql CHANGED
@@ -10,4 +10,7 @@ CREATE TABLE ZIPCodes_Primary (
10
10
  );
11
11
 
12
12
  CREATE VIRTUAL TABLE ZIPCodes_CityFullText
13
- USING fts3(ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population);
13
+ USING fts4(ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population);
14
+
15
+ CREATE VIRTUAL TABLE ZIPCodes_CityFullText5
16
+ USING fts5(ZipCode,CityMixedCase,Population);