@mailwoman/resolver-wof-sqlite 5.1.0 → 5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"candidate-lookup.d.ts","sourceRoot":"","sources":["../candidate-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAU1C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAA;AAE3F,MAAM,WAAW,2BAA2B;IAC3C,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,YAAY,CAAA;CACvB;AA6CD;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,WAAW;;gBA0B9C,IAAI,EAAE,2BAA2B;IAoDvC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuJjE,KAAK,IAAI,IAAI;CAGb"}
1
+ {"version":3,"file":"candidate-lookup.d.ts","sourceRoot":"","sources":["../candidate-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAU1C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAA;AAE3F,MAAM,WAAW,2BAA2B;IAC3C,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,YAAY,CAAA;CACvB;AA6CD;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,WAAW;;gBA0B9C,IAAI,EAAE,2BAA2B;IAoDvC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA8JjE,KAAK,IAAI,IAAI;CAGb"}
@@ -123,9 +123,15 @@ export class WOFCandidateTableLookup {
123
123
  return expandPlacetypeFilter(want).includes("locality");
124
124
  }
125
125
  async findPlace(query) {
126
- const text = (query.text ?? "").trim();
126
+ let text = (query.text ?? "").trim();
127
127
  if (!text)
128
128
  return [];
129
+ // #920 name law, candidate-key edition: postcode rows are keyed by their whitespace-stripped
130
+ // form at build (the GeoNames fold normalizes '624 66' → '62466'), so a postcode-typed query
131
+ // strips internal whitespace before keying. Postcode-only — locality names keep their spaces.
132
+ if ([query.placetype].flat().includes("postalcode")) {
133
+ text = text.replace(/\s+/g, "");
134
+ }
129
135
  const nameKey = normalizeLocalityForKey(text);
130
136
  if (!nameKey)
131
137
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"candidate-lookup.js","sourceRoot":"","sources":["../candidate-lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidate-lookup.js","sourceRoot":"","sources":["../candidate-lookup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * #920 — fold GeoNames POSTAL codes into a WOF/unified postcode shard as first-class
7
+ * `postalcode` places, for the countries whose WOF postalcode repos don't exist (the
8
+ * namesake-tail locales: FI/CZ/SK/SI/DK/NO/HR/PL and any future gap).
9
+ *
10
+ * Why: the night-31 taxonomy measured the cross-locale resolve tail as NAMESAKE COLLISION
11
+ * (FI 300/1k … PL 75/1k offender rows), and the controlled experiment showed postcode-shard
12
+ * coverage alone collapses it (FI 300→1, CZ 131→4): a resolvable postcode node feeds the
13
+ * resolver's coordinate-first sibling-postcode candidate injection, which binds the locality
14
+ * pick to its postcode neighborhood. The machinery already ships; it was coverage-starved.
15
+ *
16
+ * Two hard-won laws from the experiment are enforced HERE, in code, not in a runbook:
17
+ *
18
+ * 1. **The name law (#920 format law):** a postcode row's `name` is stored in the
19
+ * SANITIZED-QUERY token shape — every non-letter/number stripped — because that is what
20
+ * `sanitizeFTSQuery` reduces the parsed token to at lookup time. Stored `"110 00"` (CZ) or
21
+ * `"11-041"` (PL) can never match the query `"11000"`/`"11041"`; the spaced CZ build
22
+ * measured WORSE than no coverage (+13 namesake rows) because its bigrams partial-matched
23
+ * WRONG codes. The display form is preserved as an alt row in `names`.
24
+ * 2. **Medoid centroids:** GeoNames postal is one row per (postcode, settlement); the naive
25
+ * mean-of-members centroid displaced tighter village coordinates on already-correct rows
26
+ * (the p50-tax that ni-failed SK/SI/HR at 1.10–1.94 km CI). The MEDOID — the member point
27
+ * nearest the mean — keeps the coordinate on a real settlement.
28
+ *
29
+ * Package home for the same reason as `geonames-aliases.ts`: `build-unified-wof
30
+ * --geonames-postal-countries`, any standalone fold, and the `mailwoman gazetteer` commands
31
+ * share ONE implementation. GeoNames postal dump = `download.geonames.org/export/zip/<CC>.zip`
32
+ * → `<CC>.txt` (TSV: country, postcode, place, admin1, code1, admin2, code2, admin3, code3,
33
+ * lat, lon, accuracy). License CC BY 4.0 — attribution rides the shard's `meta` provenance and
34
+ * the model card like the existing GeoNames alias fold.
35
+ */
36
+ import type { DatabaseSync } from "node:sqlite";
37
+ /**
38
+ * Synthetic id base for GeoNames-POSTAL rows — its own namespace above the alias fold's {@link GEONAMES_ID_BASE} (9e12)
39
+ * allocation so all four sources (WOF, Overture, GeoNames-alias, GeoNames-postal) coexist collision-free in a combined
40
+ * DB.
41
+ */
42
+ export declare const GEONAMES_POSTAL_ID_BASE = 9500000000000;
43
+ /**
44
+ * The #920 name law: reduce a postal code to the sanitized-query token shape — strip every non-letter/number — so the
45
+ * stored name matches what `sanitizeFTSQuery` produces from the parsed postcode token. `"110 00"` → `"11000"`,
46
+ * `"11-041"` → `"11041"`, `"AD500"` → `"AD500"`.
47
+ */
48
+ export declare function normalizePostcodeName(raw: string): string;
49
+ export interface GeonamesPostalIngestResult {
50
+ /** Distinct postcodes inserted across all countries. */
51
+ inserted: number;
52
+ /** Per-country distinct-postcode counts. */
53
+ byCountry: Record<string, number>;
54
+ /** Countries whose `<CC>.txt` was missing under the postal dir (skipped, reported). */
55
+ missing: string[];
56
+ }
57
+ /**
58
+ * Fold GeoNames postal codes for `countries` into an open unified/postcode ingest DB: one `spr` row per distinct
59
+ * normalized postcode (placetype `postalcode`, medoid centroid, degenerate bbox), the normalized form as `name`, and
60
+ * the display form as an extra `names` row when it differs. The caller owns the FTS rebuild (rows ride the standard
61
+ * freeze phase).
62
+ */
63
+ export declare function ingestGeonamesPostal(db: DatabaseSync, countries: readonly string[], postalDir: string): GeonamesPostalIngestResult;
64
+ //# sourceMappingURL=geonames-postal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geonames-postal.d.ts","sourceRoot":"","sources":["../geonames-postal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBAAoB,CAAA;AAExD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,MAAM,WAAW,0BAA0B;IAC1C,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,SAAS,EAAE,MAAM,GACf,0BAA0B,CAwE5B"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * #920 — fold GeoNames POSTAL codes into a WOF/unified postcode shard as first-class
7
+ * `postalcode` places, for the countries whose WOF postalcode repos don't exist (the
8
+ * namesake-tail locales: FI/CZ/SK/SI/DK/NO/HR/PL and any future gap).
9
+ *
10
+ * Why: the night-31 taxonomy measured the cross-locale resolve tail as NAMESAKE COLLISION
11
+ * (FI 300/1k … PL 75/1k offender rows), and the controlled experiment showed postcode-shard
12
+ * coverage alone collapses it (FI 300→1, CZ 131→4): a resolvable postcode node feeds the
13
+ * resolver's coordinate-first sibling-postcode candidate injection, which binds the locality
14
+ * pick to its postcode neighborhood. The machinery already ships; it was coverage-starved.
15
+ *
16
+ * Two hard-won laws from the experiment are enforced HERE, in code, not in a runbook:
17
+ *
18
+ * 1. **The name law (#920 format law):** a postcode row's `name` is stored in the
19
+ * SANITIZED-QUERY token shape — every non-letter/number stripped — because that is what
20
+ * `sanitizeFTSQuery` reduces the parsed token to at lookup time. Stored `"110 00"` (CZ) or
21
+ * `"11-041"` (PL) can never match the query `"11000"`/`"11041"`; the spaced CZ build
22
+ * measured WORSE than no coverage (+13 namesake rows) because its bigrams partial-matched
23
+ * WRONG codes. The display form is preserved as an alt row in `names`.
24
+ * 2. **Medoid centroids:** GeoNames postal is one row per (postcode, settlement); the naive
25
+ * mean-of-members centroid displaced tighter village coordinates on already-correct rows
26
+ * (the p50-tax that ni-failed SK/SI/HR at 1.10–1.94 km CI). The MEDOID — the member point
27
+ * nearest the mean — keeps the coordinate on a real settlement.
28
+ *
29
+ * Package home for the same reason as `geonames-aliases.ts`: `build-unified-wof
30
+ * --geonames-postal-countries`, any standalone fold, and the `mailwoman gazetteer` commands
31
+ * share ONE implementation. GeoNames postal dump = `download.geonames.org/export/zip/<CC>.zip`
32
+ * → `<CC>.txt` (TSV: country, postcode, place, admin1, code1, admin2, code2, admin3, code3,
33
+ * lat, lon, accuracy). License CC BY 4.0 — attribution rides the shard's `meta` provenance and
34
+ * the model card like the existing GeoNames alias fold.
35
+ */
36
+ import { existsSync, readFileSync } from "node:fs";
37
+ import { join } from "node:path";
38
+ /**
39
+ * Synthetic id base for GeoNames-POSTAL rows — its own namespace above the alias fold's {@link GEONAMES_ID_BASE} (9e12)
40
+ * allocation so all four sources (WOF, Overture, GeoNames-alias, GeoNames-postal) coexist collision-free in a combined
41
+ * DB.
42
+ */
43
+ export const GEONAMES_POSTAL_ID_BASE = 9_500_000_000_000;
44
+ /**
45
+ * The #920 name law: reduce a postal code to the sanitized-query token shape — strip every non-letter/number — so the
46
+ * stored name matches what `sanitizeFTSQuery` produces from the parsed postcode token. `"110 00"` → `"11000"`,
47
+ * `"11-041"` → `"11041"`, `"AD500"` → `"AD500"`.
48
+ */
49
+ export function normalizePostcodeName(raw) {
50
+ return raw.replace(/[^\p{L}\p{N}]/gu, "");
51
+ }
52
+ /**
53
+ * Fold GeoNames postal codes for `countries` into an open unified/postcode ingest DB: one `spr` row per distinct
54
+ * normalized postcode (placetype `postalcode`, medoid centroid, degenerate bbox), the normalized form as `name`, and
55
+ * the display form as an extra `names` row when it differs. The caller owns the FTS rebuild (rows ride the standard
56
+ * freeze phase).
57
+ */
58
+ export function ingestGeonamesPostal(db, countries, postalDir) {
59
+ const sprInsert = db.prepare(`INSERT OR REPLACE INTO spr (id, parent_id, name, placetype, country, latitude, longitude, min_latitude, min_longitude, max_latitude, max_longitude, is_current, is_deprecated, is_ceased, is_superseded, is_superseding, lastmodified) VALUES (?, -1, ?, 'postalcode', ?, ?, ?, ?, ?, ?, ?, 1, 0, 0, 0, 0, 0)`);
60
+ const namesInsert = db.prepare(`INSERT INTO names (id, name, placetype, country, language, lastmodified) VALUES (?, ?, 'postalcode', ?, '', 0)`);
61
+ let nextID = GEONAMES_POSTAL_ID_BASE;
62
+ const byCountry = {};
63
+ const missing = [];
64
+ let inserted = 0;
65
+ for (const country of countries) {
66
+ const cc = country.toUpperCase();
67
+ const file = join(postalDir, `${cc}.txt`);
68
+ if (!existsSync(file)) {
69
+ missing.push(cc);
70
+ console.error(` GeoNames postal ${cc}: ${file} missing — download from download.geonames.org/export/zip/${cc}.zip; skipped`);
71
+ continue;
72
+ }
73
+ // Group member settlement points per NORMALIZED code; remember one display form.
74
+ const members = new Map();
75
+ for (const line of readFileSync(file, "utf8").split("\n")) {
76
+ const cols = line.split("\t");
77
+ if (cols.length < 11)
78
+ continue;
79
+ const display = cols[1].trim();
80
+ const name = normalizePostcodeName(display);
81
+ const lat = Number(cols[9]);
82
+ const lon = Number(cols[10]);
83
+ if (!name || !Number.isFinite(lat) || !Number.isFinite(lon))
84
+ continue;
85
+ const m = members.get(name) ?? { display, pts: [] };
86
+ m.pts.push([lat, lon]);
87
+ members.set(name, m);
88
+ }
89
+ db.exec("BEGIN");
90
+ for (const [name, m] of members) {
91
+ // Medoid: the member point nearest the mean — stays on a real settlement (the p50-tax law).
92
+ const meanLat = m.pts.reduce((s, p) => s + p[0], 0) / m.pts.length;
93
+ const meanLon = m.pts.reduce((s, p) => s + p[1], 0) / m.pts.length;
94
+ let best = m.pts[0];
95
+ let bestD = Infinity;
96
+ for (const p of m.pts) {
97
+ const d = (p[0] - meanLat) ** 2 + (p[1] - meanLon) ** 2;
98
+ if (d < bestD) {
99
+ bestD = d;
100
+ best = p;
101
+ }
102
+ }
103
+ const id = nextID++;
104
+ sprInsert.run(id, name, cc, best[0], best[1], best[0], best[1], best[0], best[1]);
105
+ namesInsert.run(id, name, cc);
106
+ if (m.display !== name)
107
+ namesInsert.run(id, m.display, cc);
108
+ inserted++;
109
+ }
110
+ db.exec("COMMIT");
111
+ byCountry[cc] = members.size;
112
+ console.error(` GeoNames postal ${cc}: ${members.size.toLocaleString()} distinct codes (medoid centroids)`);
113
+ }
114
+ return { inserted, byCountry, missing };
115
+ }
116
+ //# sourceMappingURL=geonames-postal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geonames-postal.js","sourceRoot":"","sources":["../geonames-postal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAA;AAG9D,OAAO,EAAyB,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAKnG,OAAO,EAIN,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGrB,MAAM,iBAAiB,CAAA;AAWxB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAE7E,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1G,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAA;AAE3F,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,CAAA;IAC3D;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,qBAAqB,EAAE,MAAM,CAAA;IAC7B,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAA;IACzB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAA;IACvB,sFAAsF;IACtF,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,2FAA2F;IAC3F,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAA;IAC5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC1B;AAsFD,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3D;AAqBD,qBAAa,oBAAqB,YAAW,WAAW,EAAE,UAAU;;gBAqDvD,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IA8FvE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAwBjE;;;;;OAKG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,EAAE;IAsDvE;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAE;IA6hB1C,KAAK,IAAI,IAAI;IAUb,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAgBxB"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAA;AAG9D,OAAO,EAAyB,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAKnG,OAAO,EAIN,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGrB,MAAM,iBAAiB,CAAA;AAWxB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAE7E,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1G,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAA;AAE3F,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,CAAA;IAC3D;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,qBAAqB,EAAE,MAAM,CAAA;IAC7B,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAA;IACzB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAA;IACvB,sFAAsF;IACtF,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,2FAA2F;IAC3F,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAA;IAC5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC1B;AA8FD,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3D;AAqBD,qBAAa,oBAAqB,YAAW,WAAW,EAAE,UAAU;;gBAuDvD,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAkHvE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyDjE;;;;;OAKG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,EAAE;IAsDvE;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAE;IAimB1C,KAAK,IAAI,IAAI;IAUb,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAgBxB"}
package/out/lookup.js CHANGED
@@ -54,6 +54,13 @@ const DEFAULT_WEIGHTS = {
54
54
  * over-fetch comment.
55
55
  */
56
56
  const SHORT_QUERY_OVERFETCH = 200;
57
+ /**
58
+ * How many rows the population-ordered companion fetch (#905) adds to the candidate pool. Small on purpose: its only
59
+ * job is to guarantee the FAMOUS holders of a name enter the pool at all — for "Paris"-class floods the bm25 window is
60
+ * saturated by thousands of tiny same-name rows and no boost inside the bm25-based ORDER BY can rescue a candidate
61
+ * whose bm25 is length-poisoned by ~15 points (see the fetch-site comment).
62
+ */
63
+ const POPULATION_FETCH_LIMIT = 15;
57
64
  /**
58
65
  * The coordinate-first candidate table (scripts/build-postcode-locality.ts): postcode → containing
59
66
  *
@@ -152,6 +159,8 @@ export class WOFSqlitePlaceLookup {
152
159
  * override) schema names.
153
160
  */
154
161
  #shards;
162
+ /** #920: per-schema probed country sets for country-aware shard routing (non-main shards only). */
163
+ #shardCountries;
155
164
  /**
156
165
  * The Geographic Rule Engine (Direction E, #289). `#conventionSource` supplies per-WOF-polygon resolution profiles;
157
166
  * `#strategies` is the named-primitive registry the merged convention dispatches. Empty source → every query resolves
@@ -218,6 +227,25 @@ export class WOFSqlitePlaceLookup {
218
227
  this.#hasBboxIndex.set(s.schemaName, this.#shardHasTable(s.schemaName, PLACE_BBOX_TABLE));
219
228
  this.#hasPopulationIndex.set(s.schemaName, this.#shardHasTable(s.schemaName, PLACE_POPULATION_TABLE));
220
229
  }
230
+ // #920 country-aware shard routing: probe each NON-MAIN shard's country set once at
231
+ // construction (they're small, purpose-built shards — postcode/locality slices; main is the
232
+ // multi-GB admin DB and is the fallback anyway, so it is deliberately NOT scanned). Feeds
233
+ // pickShardForPlacetype so two postcode shards (postalcode-us + postalcode-geonames-tail)
234
+ // route by the query's country instead of first-match starving the second shard.
235
+ this.#shardCountries = new Map();
236
+ for (const sh of this.#shards) {
237
+ if (sh.schemaName === "main")
238
+ continue;
239
+ try {
240
+ const rows = this.#db
241
+ .prepare(`SELECT DISTINCT country FROM ${sh.schemaName}.spr WHERE country != ''`)
242
+ .all();
243
+ this.#shardCountries.set(sh.schemaName, new Set(rows.map((r) => r.country)));
244
+ }
245
+ catch {
246
+ // A shard without spr (or an attach oddity) just doesn't participate in country routing.
247
+ }
248
+ }
221
249
  // The postcode_locality table can live on any attached shard (typically its own
222
250
  // `postcode-locality-<cc>.db`). Find the first shard that has it; null = coord-first disabled.
223
251
  this.#postcodeLocalityShard =
@@ -266,6 +294,7 @@ export class WOFSqlitePlaceLookup {
266
294
  // first → FTS fall-through exactly. Unknown strategy names are skipped, so a convention may name
267
295
  // a primitive a future phase will register.
268
296
  const convention = this.#conventionFor(query);
297
+ let outcome = [];
269
298
  for (const name of convention.candidateStrategies) {
270
299
  const strategy = this.#strategies.get(name);
271
300
  if (!strategy) {
@@ -273,10 +302,36 @@ export class WOFSqlitePlaceLookup {
273
302
  continue;
274
303
  }
275
304
  const result = await strategy(query, convention);
276
- if (result !== null)
277
- return result;
305
+ if (result !== null) {
306
+ outcome = result;
307
+ break;
308
+ }
278
309
  }
279
- return [];
310
+ if (outcome.length > 0)
311
+ return outcome;
312
+ // #924: NL postcode retry ladder. The WOF NL postalcode repo stores full codes UNSPACED
313
+ // ('1012LG') plus 4-digit stems ('1012'), while Dutch addresses carry the spaced form
314
+ // ('1012 LG') — two FTS tokens that can never match the one-token doc (the #920 name law,
315
+ // resurfacing in a WOF-built shard). On a postcode-typed NL-shape miss, retry ONCE with the
316
+ // whitespace-joined form (block-level precision when the full-code row exists), then the
317
+ // 4-digit stem (area-level). Country-gated to NL — the same digits+letters shape elsewhere
318
+ // must not silently coarsen to a different system's code. Each retry only fires when its
319
+ // text differs from the current one, so the ladder terminates by construction.
320
+ if (query.country?.toUpperCase() === "NL" &&
321
+ (normalizePlacetypes(query.placetype)?.includes("postalcode") ?? false) &&
322
+ /^\d{4}\s?[A-Za-z]{2}$/.test(query.text.trim())) {
323
+ const trimmed = query.text.trim();
324
+ const joined = trimmed.replace(/\s+/g, "");
325
+ if (joined !== trimmed) {
326
+ const full = await this.findPlace({ ...query, text: joined });
327
+ if (full.length > 0)
328
+ return full;
329
+ }
330
+ const stem = trimmed.slice(0, 4);
331
+ if (stem !== trimmed)
332
+ return this.findPlace({ ...query, text: stem });
333
+ }
334
+ return outcome;
280
335
  }
281
336
  /**
282
337
  * Dual-role localities coincident with an admin id, from the precomputed `coincident_roles` relation (#403). Backs
@@ -401,7 +456,10 @@ export class WOFSqlitePlaceLookup {
401
456
  // `placetype` always goes to main. (Mixed-placetype queries with multiple shards aren't
402
457
  // supported in v1 — caller can issue two findPlace calls and merge in TS if needed.)
403
458
  const firstPlacetype = placetypes?.[0];
404
- const shard = pickShardForPlacetype(this.#shards, firstPlacetype);
459
+ const shard = pickShardForPlacetype(this.#shards, firstPlacetype, {
460
+ country: query.country,
461
+ countriesBySchema: this.#shardCountries,
462
+ });
405
463
  const sch = shard.schemaName; // bare schema name; safe to interpolate (validated at construction)
406
464
  // Filter out historical / superseded / deprecated places by default — they live in the same
407
465
  // spr table but should never win a contemporary lookup. `is_current = 0` is the only WOF
@@ -453,6 +511,13 @@ export class WOFSqlitePlaceLookup {
453
511
  //
454
512
  // Formula: rank_adjusted = bm25 - populationBoost * min(1.0, log10(1 + pop) / scaleLog10)
455
513
  // Lower rank_adjusted = better (matches SQLite's bm25 convention of "more negative = better").
514
+ //
515
+ // #905 — do NOT reach for bm25 column weights here. Measured falsification (2026-07-02): FTS5's
516
+ // bm25 length normalization is polluted by the row's TOTAL document size, so identical 1-token
517
+ // `name` docs read −16.0 (empty alt_names) vs −0.43 (2.7 KB alt_names) EVEN with the alt_names
518
+ // column weighted to zero — no weighting isolates name relevance in this schema. The famous-
519
+ // holder guarantee lives in the population-ordered companion fetch below instead, and the
520
+ // exact tier breaks ties by population in the post-scoring sort.
456
521
  const orderByExpr = shardHasPopulation
457
522
  ? `(bm25(place_search) - ? * MIN(1.0, COALESCE(log10(1.0 + ${PLACE_POPULATION_TABLE}.population), 0) / ?))`
458
523
  : "bm25(place_search)";
@@ -482,6 +547,39 @@ export class WOFSqlitePlaceLookup {
482
547
  }
483
548
  params.push(ftsLimit);
484
549
  const rawRows = stmt.all(...params);
550
+ // #905 companion fetch: the same MATCH, ordered by population alone. For name floods
551
+ // ("Paris" matches thousands of gap-fill villages) the bm25-based window above cannot admit
552
+ // the famous holder — its bm25 is length-poisoned by the row's alias bulk (measured ~15 pts,
553
+ // vs a +4.0 boost cap), so FR Paris never even reaches post-scoring. This fetch makes the
554
+ // prominent holders of a name pool-complete BY CONSTRUCTION; the exact-tier sort below
555
+ // decides whether they win. Skipped without a population index (nothing to order by).
556
+ if (shardHasPopulation) {
557
+ const popStmt = this.#db.prepare(`
558
+ SELECT
559
+ spr.id AS id,
560
+ spr.name,
561
+ spr.placetype,
562
+ spr.country,
563
+ spr.parent_id,
564
+ bm25(place_search) AS rank,
565
+ spr.latitude AS lat,
566
+ spr.longitude AS lon,
567
+ spr.min_latitude, spr.max_latitude, spr.min_longitude, spr.max_longitude,
568
+ ${populationSelect}
569
+ FROM ${sch}.place_search
570
+ ${joinClause}
571
+ ${populationJoin}
572
+ WHERE ${where.join(" AND ")}
573
+ ORDER BY COALESCE(${PLACE_POPULATION_TABLE}.population, 0) DESC
574
+ LIMIT ?
575
+ `);
576
+ const popParams = params.slice(0, params.length - 3); // drop the two boost params + ftsLimit
577
+ const seen = new Set(rawRows.map((r) => r.id));
578
+ for (const row of popStmt.all(...popParams, POPULATION_FETCH_LIMIT)) {
579
+ if (!seen.has(row.id))
580
+ rawRows.push(row);
581
+ }
582
+ }
485
583
  const queryLen = query.text.length;
486
584
  const candidates = rawRows.map((row) => {
487
585
  // SQLite's bm25() returns a lower-is-better score (negative for matches). Negate so we
@@ -566,11 +664,35 @@ export class WOFSqlitePlaceLookup {
566
664
  // crossing the exact/partial boundary ("ME" → Maine, not the more-populous Missouri).
567
665
  for (const c of candidates)
568
666
  c.exactMatch = exactIds.has(c.id);
569
- if (exactIds.size > 0 && exactIds.size < candidates.length) {
667
+ if (exactIds.size > 0) {
668
+ // #905: WITHIN the exact tier, population is the PRIMARY key and the weighted score
669
+ // only breaks population ties. Exactness saturates text relevance, and the bm25
670
+ // residue inside `score` is length-noise (see the fetch-site comment), so letting it
671
+ // order the tier is what sent unscoped "Paris" to an Ohio township. The partial tier
672
+ // keeps score order — text relevance still means something there. This makes the
673
+ // exactMatchTiering docstring literal: match quality primary, prominence within.
674
+ //
675
+ // #912 sub-tier: a NAME-exact candidate (spr.name equals the query) outranks an
676
+ // ALIAS-exact one ('Paris' the place beats 'Paris Township' held via alias 'Paris').
677
+ // The place's own name is a stronger identity claim than an alias — aliases exist to
678
+ // widen recall, not to tie primaries. ME→Maine is untouched: 'ME' name-exact-matches
679
+ // nothing, so the alias sub-tier still decides there. Population orders within each
680
+ // sub-tier as before.
681
+ const norm = (v) => v.toLowerCase().trim().replace(/\s+/g, " ");
682
+ const needle = norm(query.text);
683
+ const kind = (c) => {
684
+ if (!exactIds.has(c.id))
685
+ return 0;
686
+ return norm(String(c.name ?? "")) === needle ? 2 : 1;
687
+ };
570
688
  candidates.sort((a, b) => {
571
- const ax = exactIds.has(a.id) ? 1 : 0;
572
- const bx = exactIds.has(b.id) ? 1 : 0;
573
- return bx - ax || b.score - a.score;
689
+ const ax = kind(a);
690
+ const bx = kind(b);
691
+ if (bx !== ax)
692
+ return bx - ax;
693
+ if (ax >= 1)
694
+ return (b.population ?? 0) - (a.population ?? 0) || b.score - a.score;
695
+ return b.score - a.score;
574
696
  });
575
697
  return Promise.resolve(candidates.slice(0, limit));
576
698
  }
package/out/lookup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"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"}
package/out/sharding.d.ts CHANGED
@@ -90,5 +90,16 @@ export declare function resolveShards(input: string | ReadonlyArray<string | Sha
90
90
  * the typical mailwoman query has a single placetype anyway. If a caller needs cross-shard results they can issue two
91
91
  * `findPlace` calls.
92
92
  */
93
- export declare function pickShardForPlacetype(shards: ResolvedShard[], placetype: string | undefined): ResolvedShard;
93
+ export declare function pickShardForPlacetype(shards: ResolvedShard[], placetype: string | undefined, opts?: {
94
+ /**
95
+ * #920: the query's country constraint, when the caller has one. With MULTIPLE shards matching a placetype
96
+ * (postalcode-us + postalcode-geonames-tail), first-match routing sent every postcode query to the first shard and
97
+ * starved the rest — a FI postcode could never reach the tail shard. When `country` is given and a matching shard's
98
+ * probed country set contains it, that shard wins; shards without the country are skipped; the placetype-match
99
+ * order remains the tiebreak when no shard claims the country (or none was probed).
100
+ */
101
+ country?: string;
102
+ /** Per-schema probed country sets (see `WOFSqlitePlaceLookup`'s construction probe). */
103
+ countriesBySchema?: ReadonlyMap<string, ReadonlySet<string>>;
104
+ }): ResolvedShard;
94
105
  //# sourceMappingURL=sharding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,aAAa,EAAE,CAuClG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAuB3G"}
1
+ {"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,aAAa,EAAE,CAuClG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,aAAa,EAAE,EACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,CAAC,EAAE;IACN;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;CAC5D,GACC,aAAa,CAiCf"}
package/out/sharding.js CHANGED
@@ -105,15 +105,16 @@ export function resolveShards(input) {
105
105
  * the typical mailwoman query has a single placetype anyway. If a caller needs cross-shard results they can issue two
106
106
  * `findPlace` calls.
107
107
  */
108
- export function pickShardForPlacetype(shards, placetype) {
108
+ export function pickShardForPlacetype(shards, placetype, opts) {
109
109
  if (!placetype)
110
110
  return shards[0];
111
+ const matches = [];
111
112
  for (const s of shards) {
112
113
  if (s.placetypes.includes(placetype))
113
- return s;
114
+ matches.push(s);
114
115
  }
115
116
  for (const s of shards) {
116
- if (s.schemaName === "main")
117
+ if (s.schemaName === "main" || matches.includes(s))
117
118
  continue;
118
119
  // Substring match: `postalcode_us` matches `postalcode`. Conservative — requires the
119
120
  // placetype to appear at a word boundary in the schema name to avoid false hits like
@@ -121,9 +122,17 @@ export function pickShardForPlacetype(shards, placetype) {
121
122
  if (s.schemaName === placetype ||
122
123
  s.schemaName.startsWith(`${placetype}_`) ||
123
124
  s.schemaName.endsWith(`_${placetype}`)) {
124
- return s;
125
+ matches.push(s);
125
126
  }
126
127
  }
127
- return shards[0];
128
+ if (matches.length === 0)
129
+ return shards[0];
130
+ if (opts?.country && opts.countriesBySchema) {
131
+ for (const s of matches) {
132
+ if (opts.countriesBySchema.get(s.schemaName)?.has(opts.country))
133
+ return s;
134
+ }
135
+ }
136
+ return matches[0];
128
137
  }
129
138
  //# sourceMappingURL=sharding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharding.js","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharding.js","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;SACzB,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kEAAkE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1G,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAgCD,0DAA0D;AAC1D,MAAM,eAAe,GAAG,2BAA2B,CAAA;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAmD;IAChF,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAExD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAEvF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,GAAG,GAAoB,EAAE,CAAA;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACtB,MAAM,GAAG,GAAgB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;QAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE5D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACd,8BAA8B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC;gBACxF,sBAAsB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACpE,mCAAmC,CACpC,CAAA;QACF,CAAC;QACD,0FAA0F;QAC1F,2DAA2D;QAC3D,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QAE7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACd,8BAA8B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY;gBACnE,+EAA+E,CAChF,CAAA;QACF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACpB,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU;YACV,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;SAChC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CACpC,MAAuB,EACvB,SAA6B,EAC7B,IAWC;IAED,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAE,CAAA;IAEjC,MAAM,OAAO,GAAoB,EAAE,CAAA;IAEnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAQ;QAE5D,qFAAqF;QACrF,qFAAqF;QACrF,kCAAkC;QAClC,IACC,CAAC,CAAC,UAAU,KAAK,SAAS;YAC1B,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC;YACxC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,EACrC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAE,CAAA;IAE3C,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,CAAC,CAAA;QAC1E,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAE,CAAA;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@mailwoman/resolver-wof-sqlite",
3
- "version": "5.1.0",
3
+ "version": "5.2.0",
4
4
  "description": "Who's On First SQLite resolver — FTS5-backed PlaceLookup that resolves text queries to WOF place IDs + coordinates. Optional dependency for callers who want geocoding.",
5
- "license": "AGPL-3.0-only",
5
+ "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/sister-software/mailwoman.git",
@@ -38,6 +38,7 @@
38
38
  "./ancestry-backfill": "./out/ancestry-backfill.js",
39
39
  "./coincident-roles": "./out/coincident-roles.js",
40
40
  "./geonames-aliases": "./out/geonames-aliases.js",
41
+ "./geonames-postal": "./out/geonames-postal.js",
41
42
  "./geo": "./out/geo.js",
42
43
  "./street-normalize": "./out/street-normalize.js",
43
44
  "./build-candidate": "./out/build-candidate.js",
@@ -50,10 +51,10 @@
50
51
  "access": "public"
51
52
  },
52
53
  "dependencies": {
53
- "@mailwoman/codex": "5.1.0",
54
- "@mailwoman/core": "5.1.0",
55
- "@mailwoman/resolver": "5.1.0",
56
- "@mailwoman/spatial": "5.1.0",
54
+ "@mailwoman/codex": "5.2.0",
55
+ "@mailwoman/core": "5.2.0",
56
+ "@mailwoman/resolver": "5.2.0",
57
+ "@mailwoman/spatial": "5.2.0",
57
58
  "kysely": "^0.29.2"
58
59
  }
59
60
  }