@mailwoman/corpus 4.0.0 → 4.2.0

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.
Files changed (58) hide show
  1. package/out/src/adapters/geonames/adapter.d.ts +35 -0
  2. package/out/src/adapters/geonames/adapter.d.ts.map +1 -0
  3. package/out/src/adapters/geonames/adapter.js +161 -0
  4. package/out/src/adapters/geonames/adapter.js.map +1 -0
  5. package/out/src/adapters/geonames-postal/adapter.d.ts +30 -0
  6. package/out/src/adapters/geonames-postal/adapter.d.ts.map +1 -0
  7. package/out/src/adapters/geonames-postal/adapter.js +96 -0
  8. package/out/src/adapters/geonames-postal/adapter.js.map +1 -0
  9. package/out/src/adapters/index.d.ts +3 -0
  10. package/out/src/adapters/index.d.ts.map +1 -1
  11. package/out/src/adapters/index.js +9 -0
  12. package/out/src/adapters/index.js.map +1 -1
  13. package/out/src/adapters/tiger/adapter.d.ts +0 -3
  14. package/out/src/adapters/tiger/adapter.d.ts.map +1 -1
  15. package/out/src/adapters/tiger/adapter.js +0 -3
  16. package/out/src/adapters/tiger/adapter.js.map +1 -1
  17. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +26 -0
  18. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -0
  19. package/out/src/adapters/usgov-irs-bmf/adapter.js +115 -0
  20. package/out/src/adapters/usgov-irs-bmf/adapter.js.map +1 -0
  21. package/out/src/codex/us-fips-state.d.ts +0 -5
  22. package/out/src/codex/us-fips-state.d.ts.map +1 -1
  23. package/out/src/codex/us-fips-state.js +0 -5
  24. package/out/src/codex/us-fips-state.js.map +1 -1
  25. package/out/src/parquet-wrapper/index.d.ts +0 -3
  26. package/out/src/parquet-wrapper/index.d.ts.map +1 -1
  27. package/out/src/parquet-wrapper/index.js +0 -3
  28. package/out/src/parquet-wrapper/index.js.map +1 -1
  29. package/out/src/parquet-wrapper/reader.d.ts +0 -7
  30. package/out/src/parquet-wrapper/reader.d.ts.map +1 -1
  31. package/out/src/parquet-wrapper/reader.js +0 -7
  32. package/out/src/parquet-wrapper/reader.js.map +1 -1
  33. package/out/src/parquet-wrapper/writer.d.ts +0 -5
  34. package/out/src/parquet-wrapper/writer.d.ts.map +1 -1
  35. package/out/src/parquet-wrapper/writer.js +0 -5
  36. package/out/src/parquet-wrapper/writer.js.map +1 -1
  37. package/out/src/parquet.d.ts +2 -3
  38. package/out/src/parquet.d.ts.map +1 -1
  39. package/out/src/parquet.js +2 -3
  40. package/out/src/parquet.js.map +1 -1
  41. package/out/src/synthesize-german.d.ts +10 -8
  42. package/out/src/synthesize-german.d.ts.map +1 -1
  43. package/out/src/synthesize-german.js +10 -9
  44. package/out/src/synthesize-german.js.map +1 -1
  45. package/out/src/synthesize-intersection.d.ts +9 -11
  46. package/out/src/synthesize-intersection.d.ts.map +1 -1
  47. package/out/src/synthesize-intersection.js +28 -14
  48. package/out/src/synthesize-intersection.js.map +1 -1
  49. package/out/src/synthesize-street.d.ts +2 -2
  50. package/out/src/synthesize.d.ts +19 -0
  51. package/out/src/synthesize.d.ts.map +1 -1
  52. package/out/src/synthesize.js +65 -1
  53. package/out/src/synthesize.js.map +1 -1
  54. package/package.json +8 -8
  55. package/out/src/codex/us-street-suffix.d.ts +0 -260
  56. package/out/src/codex/us-street-suffix.d.ts.map +0 -1
  57. package/out/src/codex/us-street-suffix.js +0 -286
  58. package/out/src/codex/us-street-suffix.js.map +0 -1
@@ -1,286 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * USPS Publication 28, Appendix C — Postal Service Standard Suffix Abbreviations.
7
- *
8
- * This module exposes the codex (the dataset itself) plus a small set of pure helpers used by the
9
- * synthesis layer's `us-street-suffix-abbreviate` / `us-street-suffix-expand` augmentations.
10
- *
11
- * For each canonical suffix the value lists every recognized variant in USPS-published order; the
12
- * first variant is the preferred USPS abbreviation (e.g. `AVENUE → ["AVE", "AV", "AVEN", "AVENU",
13
- * "AVN", "AVNUE"]` — `AVE` is what the post office prints).
14
- *
15
- * Salvaged 2026-05-17 from `isp-nexus/universe@6eeb7bd99643a6d62a8b8abbd50968a1e492b90b`
16
- * `mailwoman/postal/suffix.ts` (originally copyright Sister Software; both projects are
17
- * AGPL-3.0). The dataset is verbatim; the helper API was reshaped to match mailwoman's synthesis
18
- * registry (the original isp-nexus `lookupStreetSuffix` was geared toward parsing, not
19
- * augmentation).
20
- * @see {@link https://pe.usps.com/text/pub28/28apc_002.htm USPS Street Suffix Abbreviations}
21
- */
22
- /**
23
- * Canonical USPS street suffix → list of recognized variants. The first variant in each list is the
24
- * preferred USPS abbreviation. Keys + values are uppercase per the publication.
25
- */
26
- export const US_STREET_SUFFIX_VARIANTS = {
27
- ALLEY: ["ALY", "ALLEE", "ALLY"],
28
- ANEX: ["ANX", "ANNEX", "ANNX"],
29
- ARCADE: ["ARC"],
30
- AVENUE: ["AVE", "AV", "AVEN", "AVENU", "AVN", "AVNUE"],
31
- BAYOU: ["BYU", "BAYOO"],
32
- BEACH: ["BCH"],
33
- BEND: ["BND"],
34
- BLUFF: ["BLF", "BLUF"],
35
- BLUFFS: ["BLFS"],
36
- BOTTOM: ["BTM", "BOT", "BOTTM"],
37
- BOULEVARD: ["BLVD", "BOUL", "BOULV"],
38
- BRANCH: ["BR", "BRNCH"],
39
- BRIDGE: ["BRG", "BRDGE"],
40
- BROOK: ["BRK"],
41
- BROOKS: ["BRKS"],
42
- BURG: ["BG"],
43
- BURGS: ["BGS"],
44
- BYPASS: ["BYP", "BYPA", "BYPAS", "BYPS"],
45
- CAMP: ["CP", "CMP"],
46
- CANYON: ["CYN", "CANYN", "CNYN"],
47
- CAPE: ["CPE"],
48
- CAUSEWAY: ["CSWY", "CAUSWA"],
49
- CENTER: ["CTR", "CEN", "CENT", "CENTR", "CENTRE", "CNTER", "CNTR"],
50
- CENTERS: ["CTRS"],
51
- CIRCLE: ["CIR", "CIRC", "CIRCL", "CRCL", "CRCLE"],
52
- CIRCLES: ["CIRS"],
53
- CLIFF: ["CLF"],
54
- CLIFFS: ["CLFS"],
55
- CLUB: ["CLB"],
56
- COMMON: ["CMN"],
57
- COMMONS: ["CMNS"],
58
- CORNER: ["COR"],
59
- CORNERS: ["CORS"],
60
- COURSE: ["CRSE"],
61
- COURT: ["CT"],
62
- COURTS: ["CTS"],
63
- COVE: ["CV"],
64
- COVES: ["CVS"],
65
- CREEK: ["CRK"],
66
- CRESCENT: ["CRES", "CRSENT", "CRSNT"],
67
- CREST: ["CRST"],
68
- CROSSING: ["XING", "CRSSNG"],
69
- CROSSROAD: ["XRD"],
70
- CROSSROADS: ["XRDS"],
71
- CURVE: ["CURV"],
72
- DALE: ["DL"],
73
- DAM: ["DM"],
74
- DIVIDE: ["DV", "DIV", "DVD"],
75
- DRIVE: ["DR", "DRIV", "DRV"],
76
- DRIVES: ["DRS"],
77
- ESTATE: ["EST"],
78
- ESTATES: ["ESTS"],
79
- EXPRESSWAY: ["EXPY", "EXP", "EXPR", "EXPRESS", "EXPW"],
80
- EXTENSION: ["EXT", "EXTN", "EXTNSN"],
81
- EXTENSIONS: ["EXTS"],
82
- FALL: ["FALL"],
83
- FALLS: ["FLS"],
84
- FERRY: ["FRY", "FRRY"],
85
- FIELD: ["FLD"],
86
- FIELDS: ["FLDS"],
87
- FLAT: ["FLT"],
88
- FLATS: ["FLTS"],
89
- FORD: ["FRD"],
90
- FORDS: ["FRDS"],
91
- FOREST: ["FRST", "FORESTS"],
92
- FORGE: ["FRG", "FORG"],
93
- FORGES: ["FRGS"],
94
- FORK: ["FRK"],
95
- FORKS: ["FRKS"],
96
- FORT: ["FT", "FRT"],
97
- FREEWAY: ["FWY", "FREEWY", "FRWAY", "FRWY"],
98
- GARDEN: ["GDN", "GARDN", "GRDEN", "GRDN"],
99
- GARDENS: ["GDNS", "GRDNS"],
100
- GATEWAY: ["GTWY", "GATEWY", "GATWAY", "GTWAY"],
101
- GLEN: ["GLN"],
102
- GLENS: ["GLNS"],
103
- GREEN: ["GRN"],
104
- GREENS: ["GRNS"],
105
- GROVE: ["GRV", "GROV"],
106
- GROVES: ["GRVS"],
107
- HARBOR: ["HBR", "HARB", "HARBR", "HRBOR"],
108
- HARBORS: ["HBRS"],
109
- HAVEN: ["HVN"],
110
- HEIGHTS: ["HTS", "HT"],
111
- HIGHWAY: ["HWY", "HIGHWY", "HIWAY", "HIWY", "HWAY"],
112
- HILL: ["HL"],
113
- HILLS: ["HLS"],
114
- HOLLOW: ["HOLW", "HLLW", "HOLLOWS", "HOLWS"],
115
- INLET: ["INLT"],
116
- ISLAND: ["IS", "ISLND"],
117
- ISLANDS: ["ISS", "ISLNDS"],
118
- ISLE: ["ISLE", "ISLES"],
119
- JUNCTION: ["JCT", "JCTION", "JCTN", "JUNCTN", "JUNCTON"],
120
- JUNCTIONS: ["JCTS", "JCTNS"],
121
- KEY: ["KY"],
122
- KEYS: ["KYS"],
123
- KNOLL: ["KNL", "KNOL"],
124
- KNOLLS: ["KNLS"],
125
- LAKE: ["LK"],
126
- LAKES: ["LKS"],
127
- LAND: ["LAND"],
128
- LANDING: ["LNDG", "LNDNG"],
129
- LANE: ["LN"],
130
- LIGHT: ["LGT"],
131
- LIGHTS: ["LGTS"],
132
- LOAF: ["LF"],
133
- LOCK: ["LCK"],
134
- LOCKS: ["LCKS"],
135
- LODGE: ["LDG", "LDGE", "LODG"],
136
- LOOP: ["LOOP", "LOOPS"],
137
- MALL: ["MALL"],
138
- MANOR: ["MNR"],
139
- MANORS: ["MNRS"],
140
- MEADOW: ["MDW"],
141
- MEADOWS: ["MDWS", "MDW", "MEDOWS"],
142
- MEWS: ["MEWS"],
143
- MILL: ["ML"],
144
- MILLS: ["MLS"],
145
- MISSION: ["MSN", "MISSN", "MSSN"],
146
- MOTORWAY: ["MTWY"],
147
- MOUNT: ["MT", "MNT"],
148
- MOUNTAIN: ["MTN", "MNTAIN", "MNTN", "MOUNTIN", "MTIN"],
149
- MOUNTAINS: ["MTNS", "MNTNS"],
150
- NECK: ["NCK"],
151
- ORCHARD: ["ORCH", "ORCHRD"],
152
- OVAL: ["OVAL", "OVL"],
153
- OVERPASS: ["OPAS"],
154
- PARK: ["PARK", "PRK", "PARKS"],
155
- PARKWAY: ["PKWY", "PARKWY", "PKWAY", "PKY"],
156
- PARKWAYS: ["PKWY", "PKWYS"],
157
- PASS: ["PASS"],
158
- PASSAGE: ["PSGE"],
159
- PATH: ["PATH", "PATHS"],
160
- PIKE: ["PIKE", "PIKES"],
161
- PINE: ["PNE"],
162
- PINES: ["PNES"],
163
- PLACE: ["PL"],
164
- PLAIN: ["PLN"],
165
- PLAINS: ["PLNS"],
166
- PLAZA: ["PLZ", "PLZA"],
167
- POINT: ["PT"],
168
- POINTS: ["PTS"],
169
- PORT: ["PRT"],
170
- PORTS: ["PRTS"],
171
- PRAIRIE: ["PR", "PRR"],
172
- RADIAL: ["RADL", "RAD", "RADIEL"],
173
- RAMP: ["RAMP"],
174
- RANCH: ["RNCH", "RANCHES", "RNCHS"],
175
- RAPID: ["RPD"],
176
- RAPIDS: ["RPDS"],
177
- REST: ["RST"],
178
- RIDGE: ["RDG", "RDGE"],
179
- RIDGES: ["RDGS"],
180
- RIVER: ["RIV", "RVR", "RIVR"],
181
- ROAD: ["RD"],
182
- ROADS: ["RDS"],
183
- ROUTE: ["RTE"],
184
- ROW: ["ROW"],
185
- RUE: ["RUE"],
186
- RUN: ["RUN"],
187
- SHOAL: ["SHL"],
188
- SHOALS: ["SHLS"],
189
- SHORE: ["SHR", "SHOAR"],
190
- SHORES: ["SHRS", "SHOARS"],
191
- SKYWAY: ["SKWY"],
192
- SPRING: ["SPG", "SPNG", "SPRNG"],
193
- SPRINGS: ["SPGS", "SPNGS", "SPRNGS"],
194
- SPUR: ["SPUR"],
195
- SPURS: ["SPUR"],
196
- SQUARE: ["SQ", "SQR", "SQRE", "SQU"],
197
- SQUARES: ["SQS", "SQRS"],
198
- STATION: ["STA", "STATN", "STN"],
199
- STRAVENUE: ["STRA", "STRAV", "STRAVEN", "STRAVN", "STRVN", "STRVNUE"],
200
- STREAM: ["STRM", "STREME"],
201
- STREET: ["ST", "STRT", "STR"],
202
- STREETS: ["STS"],
203
- SUMMIT: ["SMT", "SUMIT", "SUMITT"],
204
- TERRACE: ["TER", "TERR"],
205
- THROUGHWAY: ["TRWY"],
206
- TRACE: ["TRCE", "TRACES"],
207
- TRACK: ["TRAK", "TRACKS", "TRK", "TRKS"],
208
- TRAFFICWAY: ["TRFY"],
209
- TRAIL: ["TRL", "TRAILS", "TRLS"],
210
- TRAILER: ["TRLR", "TRLRS"],
211
- TUNNEL: ["TUNL", "TUNEL", "TUNLS", "TUNNELS", "TUNNL"],
212
- TURNPIKE: ["TPKE", "TRNPK", "TURNPK"],
213
- UNDERPASS: ["UPAS"],
214
- UNION: ["UN"],
215
- UNIONS: ["UNS"],
216
- VALLEY: ["VLY", "VALLY", "VLLY"],
217
- VALLEYS: ["VLYS"],
218
- VIADUCT: ["VIA", "VDCT", "VIADCT"],
219
- VIEW: ["VW"],
220
- VIEWS: ["VWS"],
221
- VILLAGE: ["VLG", "VILL", "VILLAG", "VILLG", "VILLIAGE"],
222
- VILLAGES: ["VLGS"],
223
- VILLE: ["VL"],
224
- VISTA: ["VIS", "VIST", "VST", "VSTA"],
225
- WALK: ["WALK"],
226
- WALKS: ["WALK"],
227
- WALL: ["WALL"],
228
- WAY: ["WAY", "WY"],
229
- WAYS: ["WAYS"],
230
- WELL: ["WL"],
231
- WELLS: ["WLS"],
232
- };
233
- /**
234
- * Inverse lookup: every variant abbreviation OR full canonical word → its canonical key.
235
- *
236
- * Built once at module load. `STREET` → `"STREET"`, `ST` → `"STREET"`, `STRT` → `"STREET"`, etc.
237
- * Built lowercase-keyed for case-insensitive matching.
238
- */
239
- export const US_STREET_SUFFIX_LOOKUP = (() => {
240
- const out = new Map();
241
- for (const canonical of Object.keys(US_STREET_SUFFIX_VARIANTS)) {
242
- out.set(canonical.toLowerCase(), canonical);
243
- for (const variant of US_STREET_SUFFIX_VARIANTS[canonical]) {
244
- // Don't overwrite — first canonical that claims a variant wins (matches USPS Pub-28's
245
- // ordering). E.g. "WALK" and "WALKS" both list "WALK" as a variant; "WALK" wins because
246
- // it sorts first in `Object.keys`.
247
- if (!out.has(variant.toLowerCase()))
248
- out.set(variant.toLowerCase(), canonical);
249
- }
250
- }
251
- return out;
252
- })();
253
- /** Preferred USPS abbreviation per canonical (`AVENUE → "AVE"`, `STREET → "ST"`). */
254
- export const US_STREET_SUFFIX_PREFERRED_ABBR = Object.fromEntries(Object.keys(US_STREET_SUFFIX_VARIANTS).map((k) => [k, US_STREET_SUFFIX_VARIANTS[k][0]]));
255
- /**
256
- * Apply `target`'s letters in the same case-pattern as `reference`. Three patterns covered:
257
- *
258
- * - All-uppercase reference (`"AVE"`) → uppercase target (`"AVENUE"`).
259
- * - All-lowercase reference (`"ave"`) → lowercase target (`"avenue"`).
260
- * - Anything else (`"Ave"`, `"aVe"`) → title-case target (`"Avenue"`).
261
- */
262
- export function matchCase(target, reference) {
263
- if (!reference)
264
- return target;
265
- if (reference === reference.toUpperCase())
266
- return target.toUpperCase();
267
- if (reference === reference.toLowerCase())
268
- return target.toLowerCase();
269
- return target.charAt(0).toUpperCase() + target.slice(1).toLowerCase();
270
- }
271
- /**
272
- * If the last whitespace-separated word of `street` is a known USPS suffix variant, return the
273
- * canonical key and the matched word. Returns null if the trailing word isn't a known suffix.
274
- */
275
- export function matchTrailingSuffix(street) {
276
- const trimmed = street.trim();
277
- if (!trimmed)
278
- return null;
279
- const parts = trimmed.split(/\s+/);
280
- const last = parts[parts.length - 1];
281
- const canonical = US_STREET_SUFFIX_LOOKUP.get(last.toLowerCase());
282
- if (!canonical)
283
- return null;
284
- return { canonical, matched: last };
285
- }
286
- //# sourceMappingURL=us-street-suffix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"us-street-suffix.js","sourceRoot":"","sources":["../../../src/codex/us-street-suffix.ts"],"names":[],"mappings":"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"}