@hebcal/geo-sqlite 5.10.1 → 5.10.3
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/README.md +9 -0
- package/bin/make-test-dbs +6 -5
- package/dist/index.js +3 -3
- package/geo-sqlite.d.ts +158 -25
- package/package.json +2 -2
- package/test/fixtures/IL-alt.txt +8 -0
- package/test/fixtures/admin1CodesASCII.txt +30 -1
- package/test/fixtures/cities5000.txt +65 -0
- package/test/fixtures/countryInfo.txt +6 -0
package/README.md
CHANGED
|
@@ -25,6 +25,15 @@ const loc3 = db.lookupLegacyCity('IL-Netanya');
|
|
|
25
25
|
db.close();
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Data attribution
|
|
29
|
+
|
|
30
|
+
Some location data is incorporated directly into this package, including the
|
|
31
|
+
bundled fixtures used by `make-test-dbs` to build test databases (the ~60
|
|
32
|
+
"classic" Hebcal cities, `cities-patch.txt`, and related country/admin1 data).
|
|
33
|
+
This data is derived from [GeoNames.org](https://www.geonames.org/) and is used
|
|
34
|
+
under the
|
|
35
|
+
[Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/).
|
|
36
|
+
|
|
28
37
|
## Classes
|
|
29
38
|
|
|
30
39
|
<dl>
|
package/bin/make-test-dbs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// Builds geonames.sqlite3 and zips.sqlite3 for testing without downloading
|
|
4
|
-
// from geonames.org. Uses
|
|
5
|
-
//
|
|
4
|
+
// from geonames.org. Uses the ~60 "classic" Hebcal cities (cities5000.txt) plus
|
|
5
|
+
// cities-patch.txt as the geonames data source, along with minimal fixture files
|
|
6
|
+
// bundled in this repo.
|
|
6
7
|
|
|
7
8
|
import {buildGeonamesSqlite, makeZipsSqlite} from '@hebcal/geo-sqlite';
|
|
8
9
|
import {pino} from 'pino';
|
|
@@ -28,11 +29,11 @@ const zipsDb = path.join(outDir, 'zips.sqlite3');
|
|
|
28
29
|
await buildGeonamesSqlite({
|
|
29
30
|
dbFilename: geonamesDb,
|
|
30
31
|
countryInfotxt: path.join(repoDir, 'test/fixtures/countryInfo.txt'),
|
|
31
|
-
cities5000txt: path.join(repoDir, '
|
|
32
|
-
citiesPatch: '
|
|
32
|
+
cities5000txt: path.join(repoDir, 'test/fixtures/cities5000.txt'),
|
|
33
|
+
citiesPatch: path.join(repoDir, 'cities-patch.txt'),
|
|
33
34
|
admin1CodesASCIItxt: path.join(repoDir, 'test/fixtures/admin1CodesASCII.txt'),
|
|
34
35
|
ILtxt: '/dev/null',
|
|
35
|
-
ILalternate: '/
|
|
36
|
+
ILalternate: path.join(repoDir, 'test/fixtures/IL-alt.txt'),
|
|
36
37
|
population,
|
|
37
38
|
logger,
|
|
38
39
|
});
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/geo-sqlite v5.10.
|
|
1
|
+
/*! @hebcal/geo-sqlite v5.10.3 */
|
|
2
2
|
import { DatabaseSync } from 'node:sqlite';
|
|
3
3
|
import fs$1, { existsSync } from 'node:fs';
|
|
4
4
|
import QuickLRU from 'quick-lru';
|
|
@@ -512,7 +512,7 @@ function munge(s) {
|
|
|
512
512
|
}
|
|
513
513
|
|
|
514
514
|
// DO NOT EDIT THIS AUTO-GENERATED FILE!
|
|
515
|
-
const version = '5.10.
|
|
515
|
+
const version = '5.10.3';
|
|
516
516
|
|
|
517
517
|
const GEONAME_SQL = `SELECT
|
|
518
518
|
g.name as name,
|
|
@@ -892,7 +892,7 @@ class GeoDb {
|
|
|
892
892
|
}
|
|
893
893
|
// this is a ZIP code prefix, a string with 1-4 digits
|
|
894
894
|
const zipA = qraw.substring(0, 5);
|
|
895
|
-
const zipB = String(+zipA + 1).padStart(zipA.length, '0');
|
|
895
|
+
const zipB = zipA === '9' ? 'A' :String(+zipA + 1).padStart(zipA.length, '0');
|
|
896
896
|
return this.zipCompStmt.all(zipA, zipB).map(GeoDb.zipResultToObj);
|
|
897
897
|
} else {
|
|
898
898
|
if (!this.geonamesCompStmt) {
|
package/geo-sqlite.d.ts
CHANGED
|
@@ -1,28 +1,161 @@
|
|
|
1
|
-
/// <reference types="node"/>
|
|
2
|
-
|
|
3
1
|
import {Location} from '@hebcal/core';
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
3
|
+
export type AutoComplete = {
|
|
4
|
+
id: number | string;
|
|
5
|
+
value: string;
|
|
6
|
+
geo: 'geoname' | 'zip';
|
|
7
|
+
name?: string;
|
|
8
|
+
asciiname?: string;
|
|
9
|
+
admin1?: string;
|
|
10
|
+
country?: string;
|
|
11
|
+
cc?: string;
|
|
12
|
+
population?: number;
|
|
13
|
+
latitude?: number;
|
|
14
|
+
longitude?: number;
|
|
15
|
+
timezone?: string;
|
|
16
|
+
elevation?: number;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Options for configuring the GeoDb constructor.
|
|
21
|
+
*/
|
|
22
|
+
export type GeoDbOptions = {
|
|
23
|
+
/** Maximum number of entries in the ZIP code LRU cache. Default is 150. */
|
|
24
|
+
zipsCacheSize?: number;
|
|
25
|
+
/** Maximum number of entries in the geonames LRU cache. Default is 750. */
|
|
26
|
+
geonamesCacheSize?: number;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Options for `buildGeonamesSqlite`.
|
|
31
|
+
*/
|
|
32
|
+
export type BuildGeonamesSqliteOptions = {
|
|
33
|
+
/** Path to the output SQLite database file. */
|
|
34
|
+
dbFilename: string;
|
|
35
|
+
/** Path to countryInfo.txt from geonames.org. */
|
|
36
|
+
countryInfotxt: string;
|
|
37
|
+
/** Path to cities5000.txt (or similar) from geonames.org. */
|
|
38
|
+
cities5000txt: string;
|
|
39
|
+
/** Path to a TSV patch file with additional city rows. */
|
|
40
|
+
citiesPatch: string;
|
|
41
|
+
/** Path to admin1CodesASCII.txt from geonames.org. */
|
|
42
|
+
admin1CodesASCIItxt: string;
|
|
43
|
+
/** Path to IL.txt (Israel geonames) from geonames.org. */
|
|
44
|
+
ILtxt: string;
|
|
45
|
+
/** Path to IL alternate names file from geonames.org. */
|
|
46
|
+
ILalternate: string;
|
|
47
|
+
/** Logger instance (e.g. pino). */
|
|
48
|
+
logger: any;
|
|
49
|
+
/** Minimum population filter for PPL feature codes. */
|
|
50
|
+
population?: number;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Wrapper around SQLite databases for looking up geographic locations
|
|
55
|
+
* by ZIP code, geoname ID, or legacy Hebcal city name.
|
|
56
|
+
*/
|
|
57
|
+
export class GeoDb {
|
|
58
|
+
/**
|
|
59
|
+
* Opens the ZIP code and geonames SQLite databases.
|
|
60
|
+
* @param logger - Logger instance (e.g. pino), or `null` to disable logging
|
|
61
|
+
* @param zipsFilename - Path to the ZIP codes SQLite database file
|
|
62
|
+
* @param geonamesFilename - Path to the geonames SQLite database file
|
|
63
|
+
* @param options - Optional cache size configuration
|
|
64
|
+
*/
|
|
65
|
+
constructor(logger: any, zipsFilename: string, geonamesFilename: string, options?: GeoDbOptions);
|
|
66
|
+
|
|
67
|
+
/** Closes both database handles. */
|
|
68
|
+
close(): void;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Looks up a US ZIP code and returns the corresponding location.
|
|
72
|
+
* @param zip - 5-digit US ZIP code (leading zeros preserved as string)
|
|
73
|
+
* @returns The location, or `null` if not found
|
|
74
|
+
*/
|
|
75
|
+
lookupZip(zip: string): Location;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Looks up a geonames.org ID and returns the corresponding location.
|
|
79
|
+
* @param geonameid - Numeric geoname ID from geonames.org
|
|
80
|
+
* @returns The location, or `null` if not found
|
|
81
|
+
*/
|
|
82
|
+
lookupGeoname(geonameid: number): Location;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Looks up a legacy Hebcal city name (e.g. "Jerusalem" or "New York")
|
|
86
|
+
* and returns the corresponding location.
|
|
87
|
+
* @param cityName - Legacy city name string
|
|
88
|
+
* @returns The location, or `null` if not found
|
|
89
|
+
*/
|
|
90
|
+
lookupLegacyCity(cityName: string): Location;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Generates autocomplete suggestions for a query string.
|
|
94
|
+
* Numeric queries search ZIP codes; alphabetic queries search geonames
|
|
95
|
+
* and ZIP city names via full-text search.
|
|
96
|
+
* @param qraw - Raw query string from user input
|
|
97
|
+
* @param latlong - If `true`, include latitude, longitude, timezone, and population in results
|
|
98
|
+
* @returns Array of autocomplete suggestion objects, sorted by population
|
|
99
|
+
*/
|
|
100
|
+
autoComplete(qraw: string, latlong?: boolean): AutoComplete[];
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Reads the entire ZIP code database into an in-memory cache,
|
|
104
|
+
* replacing the default LRU cache. Useful for high-throughput servers.
|
|
105
|
+
*/
|
|
106
|
+
cacheZips(): void;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Reads the entire geonames database into an in-memory cache,
|
|
110
|
+
* replacing the default LRU cache. Useful for high-throughput servers.
|
|
111
|
+
*/
|
|
112
|
+
cacheGeonames(): void;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Returns the version string of the `@hebcal/geo-sqlite` package.
|
|
116
|
+
*/
|
|
117
|
+
static version(): string;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Tests whether the given string begins with exactly 5 ASCII digits
|
|
121
|
+
* (a valid US ZIP code format).
|
|
122
|
+
* @param str - String to test
|
|
123
|
+
* @returns `true` if the string starts with 5 digits
|
|
124
|
+
*/
|
|
125
|
+
static is5DigitZip(str: string): boolean;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Convenience wrapper around the `transliterate` function from the
|
|
129
|
+
* `transliteration` npm package. Converts Unicode text to ASCII.
|
|
130
|
+
* @param source - String to transliterate
|
|
131
|
+
* @param options - Options passed to the underlying `transliterate` function
|
|
132
|
+
* @returns Transliterated ASCII string
|
|
133
|
+
*/
|
|
134
|
+
static transliterate(source: string, options?: any): string;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Builds a display string for a city from its name components.
|
|
138
|
+
* Applies special formatting for US ("USA") and UK ("UK") country names,
|
|
139
|
+
* and omits the admin1 subdivision when it duplicates the city name.
|
|
140
|
+
* @param cityName - City name, e.g. "Tel Aviv" or "Chicago"
|
|
141
|
+
* @param admin1 - First-level administrative subdivision, e.g. "Illinois"
|
|
142
|
+
* @param countryName - Full country name, e.g. "United States" or "Israel"
|
|
143
|
+
* @returns Formatted city description, e.g. "Chicago, Illinois, USA"
|
|
144
|
+
*/
|
|
145
|
+
static geonameCityDescr(cityName: string, admin1: string, countryName: string): string;
|
|
28
146
|
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Builds the `geonames.sqlite3` database from raw text files
|
|
150
|
+
* downloaded from geonames.org.
|
|
151
|
+
* @param opts - Paths to input files and configuration
|
|
152
|
+
* @returns Resolves when the database has been built and closed
|
|
153
|
+
*/
|
|
154
|
+
export function buildGeonamesSqlite(opts: BuildGeonamesSqliteOptions): Promise<boolean>;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Builds the `zips.sqlite3` database from a bundled SQL schema file.
|
|
158
|
+
* @param dbFilename - Path to the output SQLite database file
|
|
159
|
+
* @param sqlFile - Path to the SQL schema file to execute
|
|
160
|
+
*/
|
|
161
|
+
export function makeZipsSqlite(dbFilename: string, sqlFile: string): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hebcal/geo-sqlite",
|
|
3
|
-
"version": "5.10.
|
|
3
|
+
"version": "5.10.3",
|
|
4
4
|
"author": "Michael J. Radwin (https://github.com/mjradwin)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hebcal"
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@hebcal/cities": "^6.1.0",
|
|
42
|
-
"@hebcal/core": "^6.
|
|
42
|
+
"@hebcal/core": "^6.5.0",
|
|
43
43
|
"minimist": "^1.2.8",
|
|
44
44
|
"pino": "^10.3.1",
|
|
45
45
|
"pino-pretty": "^13.1.3",
|
package/test/fixtures/IL-alt.txt
CHANGED
|
@@ -50,7 +50,7 @@ GB.ENG England England 6269131
|
|
|
50
50
|
GH.05 Ashanti Region Ashanti Region 2303611
|
|
51
51
|
GN.B Boke Region Boke Region 2422465
|
|
52
52
|
GR.ESYE43 Thessaly Thessaly 734786
|
|
53
|
-
HU.05
|
|
53
|
+
HU.05 Budapest Budapest 3054643
|
|
54
54
|
ID.31 Jakarta Jakarta 1642911
|
|
55
55
|
IE.L Leinster Leinster 7521314
|
|
56
56
|
IE.M Munster Munster 7778955
|
|
@@ -139,3 +139,32 @@ US.VA Virginia Virginia 6254928
|
|
|
139
139
|
US.WA Washington Washington 5815135
|
|
140
140
|
VE.15 Miranda State Miranda State 3632873
|
|
141
141
|
ZA.05 KwaZulu-Natal KwaZulu-Natal 1085580
|
|
142
|
+
ZA.06 Gauteng Gauteng 1085594
|
|
143
|
+
US.GA Georgia Georgia 4197000
|
|
144
|
+
US.MD Maryland Maryland 4361885
|
|
145
|
+
US.OH Ohio Ohio 5165418
|
|
146
|
+
US.CO Colorado Colorado 5417618
|
|
147
|
+
US.MI Michigan Michigan 5001836
|
|
148
|
+
US.HI Hawaii Hawaii 5855797
|
|
149
|
+
US.NV Nevada Nevada 5509151
|
|
150
|
+
US.IL Illinois Illinois 4896861
|
|
151
|
+
US.MN Minnesota Minnesota 5037779
|
|
152
|
+
US.NE Nebraska Nebraska 5073708
|
|
153
|
+
US.RI Rhode Island Rhode Island 5224323
|
|
154
|
+
US.AZ Arizona Arizona 5551752
|
|
155
|
+
US.OR Oregon Oregon 5744337
|
|
156
|
+
US.MO Missouri Missouri 4398678
|
|
157
|
+
US.DC Washington, D.C. Washington, D.C. 4138106
|
|
158
|
+
IL.04 Haifa District Haifa District 294800
|
|
159
|
+
IQ.07 Baghdad Baghdad 98182
|
|
160
|
+
CO.34 Bogota D.C. Bogota D.C. 3688685
|
|
161
|
+
AR.07 Buenos Aires Buenos Aires 3433955
|
|
162
|
+
FI.01 Uusimaa Uusimaa 830673
|
|
163
|
+
UA.30 Kyiv City Kyiv City 703447
|
|
164
|
+
BO.04 La Paz Department La Paz Department 3911924
|
|
165
|
+
FR.11 Ile-de-France Ile-de-France 3012874
|
|
166
|
+
FR.93 Provence-Alpes-Cote d'Azur Provence-Alpes-Cote d'Azur 2985244
|
|
167
|
+
MX.07 Mexico City Mexico City 3530589
|
|
168
|
+
RU.48 Moscow Moscow 524894
|
|
169
|
+
RU.66 Saint Petersburg Saint Petersburg 536203
|
|
170
|
+
BR.27 Sao Paulo Sao Paulo 3448433
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
295629 Ashdod Ashdod 31.79213 34.64966 P PPLA IL 01 220174 27 Asia/Jerusalem 2024-01-01
|
|
2
|
+
4180439 Atlanta Atlanta 33.749 -84.38798 P PPLA US GA 498044 336 America/New_York 2024-01-01
|
|
3
|
+
4671654 Austin Austin 30.26715 -97.74306 P PPLA US TX 931830 165 America/Chicago 2024-01-01
|
|
4
|
+
98182 Baghdad Baghdad 33.34058 44.40088 P PPLA IQ 07 5672516 41 Asia/Baghdad 2024-01-01
|
|
5
|
+
295530 Beer Sheva Beer Sheva 31.25181 34.7913 P PPLA IL 01 186600 285 Asia/Jerusalem 2024-01-01
|
|
6
|
+
2950159 Berlin Berlin 52.52437 13.41053 P PPLA DE 16 3426354 43 Europe/Berlin 2024-01-01
|
|
7
|
+
4347778 Baltimore Baltimore 39.29038 -76.61219 P PPLA US MD 593490 35 America/New_York 2024-01-01
|
|
8
|
+
3688689 Bogota Bogota 4.60971 -74.08175 P PPLA CO 34 7674366 2582 America/Bogota 2024-01-01
|
|
9
|
+
4930956 Boston Boston 42.35843 -71.05977 P PPLA US MA 617594 38 America/New_York 2024-01-01
|
|
10
|
+
3054643 Budapest Budapest 47.49801 19.03991 P PPLA HU 05 1741041 104 Europe/Budapest 2024-01-01
|
|
11
|
+
3435910 Buenos Aires Buenos Aires -34.61315 -58.37723 P PPLA AR 07 13076300 31 America/Argentina/Buenos_Aires 2024-01-01
|
|
12
|
+
5110629 Buffalo Buffalo 42.88645 -78.87837 P PPLA US NY 278349 191 America/New_York 2024-01-01
|
|
13
|
+
4887398 Chicago Chicago 41.85003 -87.65005 P PPLA US IL 2720546 180 America/Chicago 2024-01-01
|
|
14
|
+
4508722 Cincinnati Cincinnati 39.162 -84.45689 P PPLA US OH 309317 267 America/New_York 2024-01-01
|
|
15
|
+
5150529 Cleveland Cleveland 41.4995 -81.69541 P PPLA US OH 390113 204 America/New_York 2024-01-01
|
|
16
|
+
4684888 Dallas Dallas 32.78306 -96.80667 P PPLA US TX 1300092 139 America/Chicago 2024-01-01
|
|
17
|
+
5419384 Denver Denver 39.73915 -104.9847 P PPLA US CO 600158 1636 America/Denver 2024-01-01
|
|
18
|
+
4990729 Detroit Detroit 42.33143 -83.04575 P PPLA US MI 713777 192 America/Detroit 2024-01-01
|
|
19
|
+
295277 Eilat Eilat 29.55805 34.94821 P PPLA IL 01 47359 63 Asia/Jerusalem 2024-01-01
|
|
20
|
+
2411585 Gibraltar Gibraltar 36.14474 -5.35257 P PPLA GI 26544 11 Europe/Gibraltar 2024-01-01
|
|
21
|
+
294801 Haifa Haifa 32.81841 34.9885 P PPLA IL 04 267300 40 Asia/Jerusalem 2024-01-01
|
|
22
|
+
5856195 Hawaii Hawaii 21.30694 -157.85833 P PPLA US HI 371657 18 Pacific/Honolulu 2024-01-01
|
|
23
|
+
658225 Helsinki Helsinki 60.16952 24.93545 P PPLA FI 01 658864 26 Europe/Helsinki 2024-01-01
|
|
24
|
+
4699066 Houston Houston 29.76328 -95.36327 P PPLA US TX 2296224 30 America/Chicago 2024-01-01
|
|
25
|
+
281184 Jerusalem Jerusalem 31.76904 35.21633 P PPLA IL 06 801000 786 Asia/Jerusalem 2024-01-01
|
|
26
|
+
993800 Johannesburg Johannesburg -26.20227 28.04363 P PPLA ZA 06 2026469 1767 Africa/Johannesburg 2024-01-01
|
|
27
|
+
703448 Kiev Kiev 50.45466 30.5238 P PPLA UA 30 2797553 187 Europe/Kiev 2024-01-01
|
|
28
|
+
3911925 La Paz La Paz -16.5 -68.15 P PPLA BO 04 812799 3782 America/La_Paz 2024-01-01
|
|
29
|
+
5100572 Livingston Livingston 40.79593 -74.31487 P PPLA US NJ 29366 98 America/New_York 2024-01-01
|
|
30
|
+
5506956 Las Vegas Las Vegas 36.17497 -115.13722 P PPLA US NV 583756 613 America/Los_Angeles 2024-01-01
|
|
31
|
+
2643743 London London 51.50853 -0.12574 P PPLA GB ENG 7556900 25 Europe/London 2024-01-01
|
|
32
|
+
5368361 Los Angeles Los Angeles 34.05223 -118.24368 P PPLA US CA 3971883 96 America/Los_Angeles 2024-01-01
|
|
33
|
+
2995469 Marseilles Marseilles 43.29695 5.38107 P PPLA FR 93 870731 28 Europe/Paris 2024-01-01
|
|
34
|
+
4164138 Miami Miami 25.77427 -80.19366 P PPLA US FL 441003 25 America/New_York 2024-01-01
|
|
35
|
+
5037649 Minneapolis Minneapolis 44.97997 -93.26384 P PPLA US MN 410939 262 America/Chicago 2024-01-01
|
|
36
|
+
2158177 Melbourne Melbourne -37.814 144.96332 P PPLA AU 06 4917750 25 Australia/Melbourne 2024-01-01
|
|
37
|
+
3530597 Mexico City Mexico City 19.42847 -99.12766 P PPLA MX 07 12294193 2240 America/Mexico_City 2024-01-01
|
|
38
|
+
6077243 Montreal Montreal 45.50884 -73.58781 P PPLA CA 10 1600000 216 America/Toronto 2024-01-01
|
|
39
|
+
524901 Moscow Moscow 55.75222 37.61556 P PPLA RU 48 10381222 144 Europe/Moscow 2024-01-01
|
|
40
|
+
5128581 New York New York 40.71427 -74.00597 P PPLA US NY 8175133 57 America/New_York 2024-01-01
|
|
41
|
+
5074472 Omaha Omaha 41.25861 -95.93779 P PPLA US NE 408958 315 America/Chicago 2024-01-01
|
|
42
|
+
6094817 Ottawa Ottawa 45.41117 -75.69812 P PPLA CA 08 812129 71 America/Toronto 2024-01-01
|
|
43
|
+
3703443 Panama City Panama City 8.9936 -79.51973 P PPLA PA 408168 17 America/Panama 2024-01-01
|
|
44
|
+
2988507 Paris Paris 48.85341 2.3488 P PPLA FR 11 2138551 42 Europe/Paris 2024-01-01
|
|
45
|
+
5224082 Pawtucket Pawtucket 41.87871 -71.38256 P PPLA US RI 71148 0 America/New_York 2024-01-01
|
|
46
|
+
293918 Petach Tikvah Petach Tikvah 32.08707 34.88747 P PPLA IL 02 236169 54 Asia/Jerusalem 2024-01-01
|
|
47
|
+
4560349 Philadelphia Philadelphia 39.95233 -75.16379 P PPLA US PA 1567442 8 America/New_York 2024-01-01
|
|
48
|
+
5308655 Phoenix Phoenix 33.44838 -112.07404 P PPLA US AZ 1660272 366 America/Phoenix 2024-01-01
|
|
49
|
+
5206379 Pittsburgh Pittsburgh 40.44062 -79.99589 P PPLA US PA 302407 239 America/New_York 2024-01-01
|
|
50
|
+
5224151 Providence Providence 41.82399 -71.41283 P PPLA US RI 190934 0 America/New_York 2024-01-01
|
|
51
|
+
5746545 Portland Portland 45.52345 -122.67621 P PPLA US OR 632309 15 America/Los_Angeles 2024-01-01
|
|
52
|
+
4407066 Saint Louis Saint Louis 38.62727 -90.19789 P PPLA US MO 319294 149 America/Chicago 2024-01-01
|
|
53
|
+
498817 Saint Petersburg Saint Petersburg 59.93863 30.31413 P PPLA RU 66 5028000 11 Europe/Moscow 2024-01-01
|
|
54
|
+
5391811 San Diego San Diego 32.71533 -117.15726 P PPLA US CA 1394928 20 America/Los_Angeles 2024-01-01
|
|
55
|
+
5391959 San Francisco San Francisco 37.77493 -122.41942 P PPLA US CA 864816 28 America/Los_Angeles 2024-01-01
|
|
56
|
+
3448439 Sao Paulo Sao Paulo -23.5475 -46.63611 P PPLA BR 27 10021295 769 America/Sao_Paulo 2024-01-01
|
|
57
|
+
5809844 Seattle Seattle 47.60621 -122.33207 P PPLA US WA 684451 56 America/Los_Angeles 2024-01-01
|
|
58
|
+
2147714 Sydney Sydney -33.86785 151.20732 P PPLA AU 02 4627345 58 Australia/Sydney 2024-01-01
|
|
59
|
+
293397 Tel Aviv Tel Aviv 32.08088 34.78057 P PPLA IL 05 432892 15 Asia/Jerusalem 2024-01-01
|
|
60
|
+
293322 Tiberias Tiberias 32.79221 35.53124 P PPLA IL 03 43500 0 Asia/Jerusalem 2024-01-01
|
|
61
|
+
6167865 Toronto Toronto 43.70011 -79.4163 P PPLA CA 08 2731571 175 America/Toronto 2024-01-01
|
|
62
|
+
6173331 Vancouver Vancouver 49.24966 -123.11934 P PPLA CA 02 600000 70 America/Vancouver 2024-01-01
|
|
63
|
+
5144336 White Plains White Plains 41.03399 -73.76291 P PPLA US NY 58241 82 America/New_York 2024-01-01
|
|
64
|
+
4140963 Washington DC Washington DC 38.89511 -77.03637 P PPLA US DC 601723 6 America/New_York 2024-01-01
|
|
65
|
+
4956184 Worcester Worcester 42.26259 -71.80229 P PPLA US MA 182544 164 America/New_York 2024-01-01
|
|
@@ -59,3 +59,9 @@ UG UGA 800 UG Uganda Kampala 236040 45741007 AF .ug UGX Shilling 256 en-UG,lg,
|
|
|
59
59
|
US USA 840 US United States Washington 9629091 331002651 NA .us USD Dollar 1 #####-#### ^\d{5}(-\d{4})?$ en-US,es-US,haw,fr 6252001 CA,MX,CU
|
|
60
60
|
VE VEN 862 VE Venezuela Caracas 912050 28435943 SA .ve VES Bolivar 58 #### ^\d{4}$ es-VE 3625428 TT,GY,BR,CO
|
|
61
61
|
ZA ZAF 710 SF South Africa Pretoria 1219912 59308690 AF .za ZAR Rand 27 #### ^\d{4}$ zu,xh,af,nso,en-ZA,tn,st,ts,ss,ve,nr 953987 ZW,SZ,MZ,BW,NA,LS
|
|
62
|
+
BR BRA 076 BR Brazil Brasilia 8511965 209469333 SA .br BRL Real 55 #####-### ^\d{5}-\d{3}$ pt-BR,es,en,fr 3469034 SR,PE,BO,UY,GY,PY,GF,VE,CO,AR
|
|
63
|
+
CO COL 170 CO Colombia Bogota 1138910 49648685 SA .co COP Peso 57 es-CO 3686110 EC,PE,PA,BR,VE
|
|
64
|
+
FI FIN 246 FI Finland Helsinki 337030 5518050 EU .fi EUR Euro 358 ##### ^(?:FI)*(\d{5})$ fi-FI,sv-FI,smn 660013 NO,RU,SE
|
|
65
|
+
GI GIB 292 GI Gibraltar Gibraltar 6 33718 EU .gi GIP Pound 350 en-GI,es,it,pt 2411586
|
|
66
|
+
IQ IRQ 368 IZ Iraq Baghdad 437072 38433600 AS .iq IQD Dinar 964 ##### ^(\d{5})$ ar-IQ,ku,hy 99237 SY,SA,IR,JO,TR,KW
|
|
67
|
+
PA PAN 591 PM Panama Panama City 78200 4176873 NA .pa PAB Balboa 507 es-PA,en 3703430 CR,CO
|