@mailwoman/resolver-wof-sqlite 10.7.0 → 10.8.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 (156) hide show
  1. package/lib/address/point/interpolation.ts +4 -4
  2. package/lib/address/point/spine-schema.ts +59 -0
  3. package/lib/ancestry/backfill.ts +3 -25
  4. package/lib/build/candidate.ts +22 -5
  5. package/lib/candidate/alias-bags.ts +32 -14
  6. package/lib/candidate/bare-admin-names.ts +54 -0
  7. package/lib/candidate/importance.ts +2 -2
  8. package/lib/candidate/lookup.ts +54 -26
  9. package/lib/candidate/own-name.ts +1 -5
  10. package/lib/candidate/scoring.ts +4 -4
  11. package/lib/capitals.ts +2 -2
  12. package/lib/coincident-roles.ts +3 -3
  13. package/lib/currency-backfill.ts +4 -4
  14. package/lib/fst/autocomplete.ts +1 -1
  15. package/lib/fst/binary-matcher.ts +379 -0
  16. package/lib/fst/builder.ts +1 -1
  17. package/lib/fst/deserialize-web.ts +14 -143
  18. package/lib/fst/matcher.ts +3 -3
  19. package/lib/fst/serialize.ts +1 -1
  20. package/lib/fst.ts +1 -0
  21. package/lib/geonames/aliases.ts +2 -2
  22. package/lib/interpolation.ts +3 -2
  23. package/lib/lookup.ts +6 -6
  24. package/lib/nsul/lookup.ts +2 -1
  25. package/lib/nsul/schema.ts +2 -8
  26. package/lib/place-importance-schema.ts +1 -1
  27. package/lib/poi/lookup.ts +14 -14
  28. package/lib/proximity-rerank.ts +2 -2
  29. package/lib/reverse.ts +8 -5
  30. package/lib/search-fetch.ts +3 -3
  31. package/lib/sqlite/convention-source.ts +1 -1
  32. package/lib/street/centroid.ts +2 -2
  33. package/lib/street/morphology/fst/builder.ts +3 -3
  34. package/lib/street/morphology/fst/loader.ts +3 -3
  35. package/lib/street/normalize.ts +59 -1
  36. package/lib/types.ts +8 -0
  37. package/lib/uprn/existence.ts +0 -1
  38. package/lib/uprn/lookup.ts +5 -5
  39. package/lib/uprn/schema.ts +3 -4
  40. package/lib/weights-overlay-linker.ts +4 -4
  41. package/out/address/point/interpolation.js +4 -4
  42. package/out/address/point/interpolation.js.map +1 -1
  43. package/out/address/point/spine-schema.d.ts +40 -0
  44. package/out/address/point/spine-schema.d.ts.map +1 -0
  45. package/out/address/point/spine-schema.js +40 -0
  46. package/out/address/point/spine-schema.js.map +1 -0
  47. package/out/ancestry/backfill.d.ts.map +1 -1
  48. package/out/ancestry/backfill.js +3 -22
  49. package/out/ancestry/backfill.js.map +1 -1
  50. package/out/build/candidate.d.ts.map +1 -1
  51. package/out/build/candidate.js +17 -5
  52. package/out/build/candidate.js.map +1 -1
  53. package/out/candidate/alias-bags.d.ts +8 -0
  54. package/out/candidate/alias-bags.d.ts.map +1 -1
  55. package/out/candidate/alias-bags.js +20 -11
  56. package/out/candidate/alias-bags.js.map +1 -1
  57. package/out/candidate/bare-admin-names.d.ts +26 -0
  58. package/out/candidate/bare-admin-names.d.ts.map +1 -0
  59. package/out/candidate/bare-admin-names.js +38 -0
  60. package/out/candidate/bare-admin-names.js.map +1 -0
  61. package/out/candidate/importance.js +2 -2
  62. package/out/candidate/importance.js.map +1 -1
  63. package/out/candidate/lookup.d.ts.map +1 -1
  64. package/out/candidate/lookup.js +35 -19
  65. package/out/candidate/lookup.js.map +1 -1
  66. package/out/candidate/own-name.d.ts.map +1 -1
  67. package/out/candidate/own-name.js +1 -5
  68. package/out/candidate/own-name.js.map +1 -1
  69. package/out/candidate/scoring.js +4 -4
  70. package/out/candidate/scoring.js.map +1 -1
  71. package/out/capitals.js +2 -2
  72. package/out/capitals.js.map +1 -1
  73. package/out/coincident-roles.js +3 -3
  74. package/out/coincident-roles.js.map +1 -1
  75. package/out/currency-backfill.js +4 -4
  76. package/out/currency-backfill.js.map +1 -1
  77. package/out/env.d.ts +3 -0
  78. package/out/env.d.ts.map +1 -1
  79. package/out/fst/autocomplete.js +1 -1
  80. package/out/fst/autocomplete.js.map +1 -1
  81. package/out/fst/binary-matcher.d.ts +34 -0
  82. package/out/fst/binary-matcher.d.ts.map +1 -0
  83. package/out/fst/binary-matcher.js +294 -0
  84. package/out/fst/binary-matcher.js.map +1 -0
  85. package/out/fst/builder.js +1 -1
  86. package/out/fst/builder.js.map +1 -1
  87. package/out/fst/deserialize-web.d.ts +11 -6
  88. package/out/fst/deserialize-web.d.ts.map +1 -1
  89. package/out/fst/deserialize-web.js +12 -94
  90. package/out/fst/deserialize-web.js.map +1 -1
  91. package/out/fst/matcher.js +3 -3
  92. package/out/fst/matcher.js.map +1 -1
  93. package/out/fst/serialize.js +1 -1
  94. package/out/fst/serialize.js.map +1 -1
  95. package/out/fst.d.ts +1 -0
  96. package/out/fst.d.ts.map +1 -1
  97. package/out/fst.js +1 -0
  98. package/out/fst.js.map +1 -1
  99. package/out/geonames/aliases.js +2 -2
  100. package/out/geonames/aliases.js.map +1 -1
  101. package/out/interpolation.d.ts.map +1 -1
  102. package/out/interpolation.js +3 -2
  103. package/out/interpolation.js.map +1 -1
  104. package/out/lookup.d.ts +2 -2
  105. package/out/lookup.d.ts.map +1 -1
  106. package/out/lookup.js +4 -4
  107. package/out/lookup.js.map +1 -1
  108. package/out/nsul/lookup.d.ts +1 -1
  109. package/out/nsul/lookup.d.ts.map +1 -1
  110. package/out/nsul/lookup.js +1 -1
  111. package/out/nsul/lookup.js.map +1 -1
  112. package/out/nsul/schema.d.ts +2 -5
  113. package/out/nsul/schema.d.ts.map +1 -1
  114. package/out/nsul/schema.js +2 -7
  115. package/out/nsul/schema.js.map +1 -1
  116. package/out/place-importance-schema.js +1 -1
  117. package/out/place-importance-schema.js.map +1 -1
  118. package/out/poi/lookup.d.ts +3 -3
  119. package/out/poi/lookup.d.ts.map +1 -1
  120. package/out/poi/lookup.js +9 -9
  121. package/out/poi/lookup.js.map +1 -1
  122. package/out/proximity-rerank.js +2 -2
  123. package/out/proximity-rerank.js.map +1 -1
  124. package/out/reverse.d.ts.map +1 -1
  125. package/out/reverse.js +7 -5
  126. package/out/reverse.js.map +1 -1
  127. package/out/search-fetch.js +3 -3
  128. package/out/search-fetch.js.map +1 -1
  129. package/out/sqlite/convention-source.js +1 -1
  130. package/out/sqlite/convention-source.js.map +1 -1
  131. package/out/street/centroid.js +2 -2
  132. package/out/street/centroid.js.map +1 -1
  133. package/out/street/morphology/fst/builder.d.ts +2 -2
  134. package/out/street/morphology/fst/builder.js +2 -2
  135. package/out/street/morphology/fst/builder.js.map +1 -1
  136. package/out/street/morphology/fst/loader.d.ts +2 -2
  137. package/out/street/morphology/fst/loader.js +2 -2
  138. package/out/street/morphology/fst/loader.js.map +1 -1
  139. package/out/street/normalize.d.ts +16 -0
  140. package/out/street/normalize.d.ts.map +1 -1
  141. package/out/street/normalize.js +51 -1
  142. package/out/street/normalize.js.map +1 -1
  143. package/out/types.d.ts +7 -0
  144. package/out/types.d.ts.map +1 -1
  145. package/out/uprn/existence.d.ts.map +1 -1
  146. package/out/uprn/existence.js.map +1 -1
  147. package/out/uprn/lookup.d.ts.map +1 -1
  148. package/out/uprn/lookup.js +3 -3
  149. package/out/uprn/lookup.js.map +1 -1
  150. package/out/uprn/schema.d.ts +1 -1
  151. package/out/uprn/schema.d.ts.map +1 -1
  152. package/out/uprn/schema.js +1 -1
  153. package/out/uprn/schema.js.map +1 -1
  154. package/out/weights-overlay-linker.js +4 -4
  155. package/out/weights-overlay-linker.js.map +1 -1
  156. package/package.json +16 -13
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @copyright Sister Software.
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file The shared rooftop schema with an H3 spine column and the layer-interface tables.
6
+ *
7
+ * The OpenStreetMap and G-NAF rooftop builders write this shape. Readers of existing address points
8
+ * project only the columns of `address_point` in `#address/point/schema`, so the H3 spine and the
9
+ * layer-interface tables leave their query path unchanged.
10
+ */
11
+ import { createLayerCoverageTable, createLayerManifestTable } from "@mailwoman/core/layers";
12
+ import { ADDRESS_POINT_COLUMNS, createAddressPointTable } from "#address/point/schema";
13
+ /**
14
+ * Jitter-stable address/POI join cell.
15
+ * Matches @mailwoman/address-id.
16
+ */
17
+ export const ADDRESS_POINT_H3_RESOLUTION = 9;
18
+ /**
19
+ * Positional insert order: the shared address-point fields followed by the H3 spine.
20
+ */
21
+ export const SPINE_ADDRESS_POINT_COLUMNS = [...ADDRESS_POINT_COLUMNS, "h3_cell"];
22
+ /**
23
+ * Create the legacy-compatible domain table plus the H3 spine and the layer-interface tables.
24
+ */
25
+ export async function createSpineAddressPointTables(db) {
26
+ await createAddressPointTable(db);
27
+ await db.schema
28
+ .alterTable("address_point")
29
+ .addColumn("h3_cell", "integer", (column) => column.notNull())
30
+ .execute();
31
+ await createLayerManifestTable(db);
32
+ await createLayerCoverageTable(db);
33
+ }
34
+ /**
35
+ * Build after the bulk load so the spine index is not updated on every streaming insert.
36
+ */
37
+ export async function createSpineAddressPointIndexes(db) {
38
+ await db.schema.createIndex("idx_ap_h3").on("address_point").column("h3_cell").execute();
39
+ }
40
+ //# sourceMappingURL=spine-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spine-schema.js","sourceRoot":"","sources":["../../../lib/address/point/spine-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAA4B,MAAM,wBAAwB,CAAA;AAGrH,OAAO,EAAE,qBAAqB,EAA0B,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE9G;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAA;AAa5C;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAG,qBAAqB,EAAE,SAAS,CAAU,CAAA;AAEzF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,EAAqC;IACxF,MAAM,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAEjC,MAAM,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,eAAe,CAAC;SAC3B,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7D,OAAO,EAAE,CAAA;IAEX,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EAAqC;IACzF,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AACzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAG3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8B/F;AAUD;;;;;GAKG;AACH,wBAAsB,8BAA8B,CACnD,EAAE,EAAE,cAAc,CAAC,WAAW,CAAC,EAC/B,YAAY,EAAE,SAAS,eAAe,EAAE,EACxC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA0GjC"}
1
+ {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAG3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8B/F;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CACnD,EAAE,EAAE,cAAc,CAAC,WAAW,CAAC,EAC/B,YAAY,EAAE,SAAS,eAAe,EAAE,EACxC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA2FjC"}
@@ -5,7 +5,8 @@
5
5
  *
6
6
  * Repair the truncated ancestry left by the `parent_id` closure. Must run after `populateAncestors` and before the build freezes.
7
7
  */
8
- import { readWOFFeature } from "@mailwoman/core/resources/whosonfirst";
8
+ import { readWOFFeature } from "@mailwoman/gazetteer/whosonfirst";
9
+ import { hierarchyAncestorsInAnyBranch } from "@mailwoman/gazetteer/whosonfirst/hierarchy";
9
10
  import { PathBuilder } from "path-ts";
10
11
  import { Globerator } from "spliterator/node/fs";
11
12
  const TOP_PLACETYPES = new Set(["country", "continent", "empire", "ocean", "marinearea", "planet"]);
@@ -40,13 +41,6 @@ export async function discoverAdminDataRoots(reposRoot) {
40
41
  await visit(PathBuilder.from(reposRoot), 0);
41
42
  return roots;
42
43
  }
43
- // The `aid === id` check filters out a place's own `locality_id`.
44
- // For a neighborhood, that id identifies a real ancestor.
45
- function placetypeFromKey(key) {
46
- if (!key.endsWith("_id"))
47
- return null;
48
- return key.slice(0, -3);
49
- }
50
44
  /**
51
45
  * Insert missing ancestor rows for places whose ancestry chain ended before reaching a country.
52
46
  *
@@ -96,20 +90,7 @@ export async function backfillAncestorsFromHierarchy(db, geojsonRoots, opts = {}
96
90
  }
97
91
  continue;
98
92
  }
99
- const seen = new Map();
100
- for (const branch of hierarchy) {
101
- for (const [key, val] of Object.entries(branch)) {
102
- const pt = placetypeFromKey(key);
103
- if (!pt)
104
- continue;
105
- const aid = Number(val);
106
- if (!Number.isFinite(aid) || aid <= 0 || aid === id)
107
- continue;
108
- if (!seen.has(aid)) {
109
- seen.set(aid, pt);
110
- }
111
- }
112
- }
93
+ const seen = hierarchyAncestorsInAnyBranch(id, hierarchy);
113
94
  let present = alreadyPresent.get(id);
114
95
  if (!present) {
115
96
  present = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAkB9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAK7C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,KAAK,EAAE,eAAe,CAAA;IAEtB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAElC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEtC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEvC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAE5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE;QAClB,WAAW,EAAE,eAAe,CAAA;QAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;QAE5B;;;;WAIG;QACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAClC,CAAA;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAErD;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IAEjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsYpG"}
1
+ {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAmB9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAK7C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,KAAK,EAAE,eAAe,CAAA;IAEtB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAElC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEtC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEvC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAE5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE;QAClB,WAAW,EAAE,eAAe,CAAA;QAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;QAE5B;;;;WAIG;QACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAClC,CAAA;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAErD;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IAEjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AAGH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmZpG"}
@@ -4,6 +4,7 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
6
  import { COUNTRY_POPULATION } from "@mailwoman/codex/country";
7
+ import { bareAdminName } from "@mailwoman/codex/country/bare-admin-names";
7
8
  import { pathExists } from "@mailwoman/core/fs/readers/stat";
8
9
  import { removePath } from "@mailwoman/core/fs/writers";
9
10
  import { stringifyJSON } from "@mailwoman/core/json";
@@ -11,6 +12,7 @@ import { DatabaseClient } from "@mailwoman/sqlite/client";
11
12
  import { POPULATION_CORRECTIONS } from "#build/population-corrections";
12
13
  import { explodeAliasBags } from "#candidate/alias-bags";
13
14
  import { buildAncestorsSidecar } from "#candidate/ancestors/sidecar";
15
+ import { stageBareAdminNames } from "#candidate/bare-admin-names";
14
16
  import { stageCountryDisplayNames } from "#candidate/country-display-names";
15
17
  import { foldExtract } from "#candidate/extract-fold";
16
18
  import { createCandidateFTS } from "#candidate/fts";
@@ -24,6 +26,8 @@ import { normalizeLocalityForKey } from "#street/normalize";
24
26
  * Builds the candidate lookup database from a WOF admin database and replaces any existing output.
25
27
  * The builder adds an FTS5 trigram index for fuzzy lookup.
26
28
  */
29
+ // repo-health-ignore export-name-affix -- writes candidate.db, and the gazetteer
30
+ // pipeline's buildCandidate runs a whole build around it
27
31
  export async function buildCandidateTable(opts) {
28
32
  const progress = opts.onProgress ?? (() => { });
29
33
  if (await pathExists(opts.output)) {
@@ -38,7 +42,7 @@ export async function buildCandidateTable(opts) {
38
42
  const ccID = (code) => {
39
43
  const c = (code || "??").toUpperCase();
40
44
  let id = ccodes.get(c);
41
- if (id === undefined) {
45
+ if (typeof id !== "number") {
42
46
  id = ccodes.size;
43
47
  ccodes.set(c, id);
44
48
  }
@@ -47,7 +51,7 @@ export async function buildCandidateTable(opts) {
47
51
  const ptID = (pt) => {
48
52
  const p = pt || "";
49
53
  let id = ptcodes.get(p);
50
- if (id === undefined) {
54
+ if (typeof id !== "number") {
51
55
  id = ptcodes.size;
52
56
  ptcodes.set(p, id);
53
57
  }
@@ -94,7 +98,7 @@ export async function buildCandidateTable(opts) {
94
98
  const cid = ccID(r.country);
95
99
  const ptid = ptID(r.placetype);
96
100
  const rid = regionOf.get(sid) ?? 0;
97
- const wofPop = r.pop === null || r.pop === undefined ? null : Number(r.pop);
101
+ const wofPop = r.pop === null || !r.pop ? null : Number(r.pop);
98
102
  const pop = POPULATION_CORRECTIONS[sid]?.population ??
99
103
  (wofPop === null && r.placetype === "country" ? (COUNTRY_POPULATION[String(r.country ?? "")] ?? null) : wofPop);
100
104
  const neg = -Math.log10((pop ?? 0) + 1);
@@ -140,6 +144,12 @@ export async function buildCandidateTable(opts) {
140
144
  stageRow,
141
145
  tx: kdb,
142
146
  }).toLocaleString()} country surfaces`);
147
+ progress("bare-admin-names", `${stageBareAdminNames({
148
+ attrs,
149
+ iso2ByID: new Map([...ccodes].map(([code, id]) => [id, code])),
150
+ stageRow,
151
+ tx: kdb,
152
+ }).toLocaleString()} bare admin names`);
143
153
  if (opts.currencyBackfill) {
144
154
  const nBackfill = await resurrectCurrencyHoles({
145
155
  src,
@@ -161,11 +171,13 @@ export async function buildCandidateTable(opts) {
161
171
  progress("currency-backfill", "not configured — deprecated-no-successor holes stay dead (#1737)");
162
172
  }
163
173
  progress("aliases", "exploding alias bags");
164
- const { nAlias, keyCounts, regionOfficialRefused } = explodeAliasBags(src, kdb, attrs, stageRow, {
174
+ const iso2ByCountryID = new Map([...ccodes].map(([code, id]) => [id, code]));
175
+ const { nAlias, nBare, keyCounts, regionOfficialRefused } = explodeAliasBags(src, kdb, attrs, stageRow, {
165
176
  regionPlacetypeID: ptID("region"),
166
177
  ccID,
178
+ bareName: (countryID, alias) => bareAdminName(iso2ByCountryID.get(countryID) ?? "", alias),
167
179
  });
168
- progress("aliases", `${nAlias.toLocaleString()} aliases` +
180
+ progress("aliases", `${nAlias.toLocaleString()} aliases; ${nBare.toLocaleString()} bare admin aliases` +
169
181
  (regionOfficialRefused
170
182
  ? `; ${regionOfficialRefused.toLocaleString()} region aliases refused as another region's official name`
171
183
  : ""));
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.js","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidate.js","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,16 @@ import type { WOFDatabase } from "#schema";
19
19
  export declare function explodeAliasBags(src: DatabaseClient<WOFDatabase>, out: DatabaseClient<CandidateDatabase>, attrs: Map<number, PlaceAttrs>, stageRow: StageRow, opts?: {
20
20
  regionPlacetypeID?: number;
21
21
  ccID?: (code: string | null) => number;
22
+ /**
23
+ * The bare form of an alias in its place's country, staged as one more alias: `渋谷` for the alias `渋谷区`.
24
+ *
25
+ * A Japanese place's primary name is romanized, so its suffixed name reaches
26
+ * the candidate only as an alias.
27
+ */
28
+ bareName?: (countryID: number, alias: string) => string | null;
22
29
  }): {
23
30
  nAlias: number;
31
+ nBare: number;
24
32
  keyCounts: Map<number, number>;
25
33
  regionOfficialRefused: number;
26
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"alias-bags.d.ts","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAqC1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,CAAC,WAAW,CAAC,EAChC,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,EACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAA;CAAO,GAC/E;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAmDnF"}
1
+ {"version":3,"file":"alias-bags.d.ts","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAqC1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,CAAC,WAAW,CAAC,EAChC,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,EACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;IACL,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAA;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACzD,GACJ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CA2DlG"}
@@ -42,6 +42,7 @@ function officialNameHoldersByRegion(src, ccID) {
42
42
  */
43
43
  export function explodeAliasBags(src, out, attrs, stageRow, opts = {}) {
44
44
  let nAlias = 0;
45
+ let nBare = 0;
45
46
  let regionOfficialRefused = 0;
46
47
  const keyCounts = new Map();
47
48
  const official = typeof opts.regionPlacetypeID === "number" && opts.ccID
@@ -60,23 +61,31 @@ export function explodeAliasBags(src, out, attrs, stageRow, opts = {}) {
60
61
  // includes surrounding whitespace and the last one is empty.
61
62
  // `normalizeLocalityForKey` folds both away.
62
63
  for (const piece of alt.split(ALIAS_SEPARATOR)) {
63
- const k = normalizeLocalityForKey(piece);
64
- if (!k || seen.has(k))
65
- continue;
66
- seen.add(k);
67
- if (isRegion) {
68
- const holder = official.get(`${a.cid}\0${k}`);
69
- if (typeof holder === "number" && holder !== id) {
70
- regionOfficialRefused++;
64
+ const bare = opts.bareName?.(a.cid, piece.trim());
65
+ const keys = [normalizeLocalityForKey(piece), bare ? normalizeLocalityForKey(bare) : ""];
66
+ for (const [position, k] of keys.entries()) {
67
+ if (!k || seen.has(k))
71
68
  continue;
69
+ seen.add(k);
70
+ if (isRegion) {
71
+ const holder = official.get(`${a.cid}\0${k}`);
72
+ if (typeof holder === "number" && holder !== id) {
73
+ regionOfficialRefused++;
74
+ continue;
75
+ }
76
+ }
77
+ stageRow(k, a, id, 0);
78
+ if (position) {
79
+ nBare++;
80
+ }
81
+ else {
82
+ nAlias++;
72
83
  }
73
84
  }
74
- stageRow(k, a, id, 0);
75
- nAlias++;
76
85
  }
77
86
  keyCounts.set(id, seen.size);
78
87
  }
79
88
  out.exec("COMMIT");
80
- return { nAlias, keyCounts, regionOfficialRefused };
89
+ return { nAlias, nBare, keyCounts, regionOfficialRefused };
81
90
  }
82
91
  //# sourceMappingURL=alias-bags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alias-bags.js","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alias-bags.js","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file A candidate build pass that keys each admin place under its bare name as well as its full one.
6
+ */
7
+ import type { PlaceAttrs, StageRow } from "#candidate/place-attrs";
8
+ /**
9
+ * Stages an alias row under the bare form of every place name a country writes with an admin-unit suffix.
10
+ *
11
+ * A bare `渋谷` otherwise reaches only the places whose full name is `渋谷`, a Hyogo
12
+ * and a Chiba locality with no recorded population, and never Tokyo's `渋谷区`.
13
+ * The alias row includes the ward's own population, so the candidate ordering
14
+ * ranks it above the unmeasured exact matches.
15
+ *
16
+ * @returns The number of alias rows staged.
17
+ */
18
+ export declare function stageBareAdminNames(ctx: {
19
+ attrs: Map<number, PlaceAttrs>;
20
+ iso2ByID: Map<number, string>;
21
+ stageRow: StageRow;
22
+ tx: {
23
+ exec(sql: string): void;
24
+ };
25
+ }): number;
26
+ //# sourceMappingURL=bare-admin-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bare-admin-names.d.ts","sourceRoot":"","sources":["../../lib/candidate/bare-admin-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGlE;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACxC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC9B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,EAAE,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAC/B,GAAG,MAAM,CA0BT"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file A candidate build pass that keys each admin place under its bare name as well as its full one.
6
+ */
7
+ import { bareAdminName } from "@mailwoman/codex/country/bare-admin-names";
8
+ import { normalizeLocalityForKey } from "#street/normalize";
9
+ /**
10
+ * Stages an alias row under the bare form of every place name a country writes with an admin-unit suffix.
11
+ *
12
+ * A bare `渋谷` otherwise reaches only the places whose full name is `渋谷`, a Hyogo
13
+ * and a Chiba locality with no recorded population, and never Tokyo's `渋谷区`.
14
+ * The alias row includes the ward's own population, so the candidate ordering
15
+ * ranks it above the unmeasured exact matches.
16
+ *
17
+ * @returns The number of alias rows staged.
18
+ */
19
+ export function stageBareAdminNames(ctx) {
20
+ let staged = 0;
21
+ ctx.tx.exec("BEGIN");
22
+ for (const [sid, a] of ctx.attrs) {
23
+ const iso2 = ctx.iso2ByID.get(a.cid);
24
+ if (!iso2)
25
+ continue;
26
+ const bare = bareAdminName(iso2, a.name);
27
+ if (!bare)
28
+ continue;
29
+ const key = normalizeLocalityForKey(bare);
30
+ if (!key || key === a.pkey)
31
+ continue;
32
+ ctx.stageRow(key, a, sid, 0);
33
+ staged++;
34
+ }
35
+ ctx.tx.exec("COMMIT");
36
+ return staged;
37
+ }
38
+ //# sourceMappingURL=bare-admin-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bare-admin-names.js","sourceRoot":"","sources":["../../lib/candidate/bare-admin-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAKnC;IACA,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpB,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEpC,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI;YAAE,SAAQ;QAEpC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAE5B,MAAM,EAAE,CAAA;IACT,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAErB,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -28,7 +28,7 @@
28
28
  * The consumer (`resolver/toponym-prior.ts`) leaves an unmeasured candidate at the position
29
29
  * population assigned it.
30
30
  */
31
- import { haversineKm } from "@mailwoman/spatial";
31
+ import { haversine } from "@mailwoman/spatial/geometries/point/distance";
32
32
  import { DatabaseClient } from "@mailwoman/sqlite/client";
33
33
  import { normalizeLocalityForKey } from "#street/normalize";
34
34
  /**
@@ -101,7 +101,7 @@ export class ImportanceIndex {
101
101
  let best = null;
102
102
  let bestKm = Infinity;
103
103
  for (const place of group) {
104
- const km = haversineKm(lat, lon, place.lat, place.lon);
104
+ const km = haversine(lat, lon, place.lat, place.lon);
105
105
  if (km < bestKm) {
106
106
  bestKm = km;
107
107
  best = place;
@@ -1 +1 @@
1
- {"version":3,"file":"importance.js","sourceRoot":"","sources":["../../lib/candidate/importance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAIzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAiC3C;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAsB,EAAE,SAAwB;IAClF,OAAO,GAAG,OAAO,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,SAAS,IAAI,EAAE,EAAE,CAAA;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,OAAO,CAA4B;IACnC,KAAK,CAAsB;IACpC;;OAEG;IACH,OAAO,GAAG,CAAC,CAAA;IACX;;;;;;;;;;OAUG;IACH,OAAO,GAAG,CAAC,CAAA;IAEX,YAAY,MAAkC,EAAE,KAA2B;QAC1E,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,CAAC,IAAY,EAAE,OAAsB,EAAE,SAAwB,EAAE,GAAW,EAAE,GAAW;QAC5F,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;QAErE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAI,GAAuB,IAAI,CAAA;QACnC,IAAI,MAAM,GAAG,QAAQ,CAAA;QAErB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;YAEtD,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;gBACjB,MAAM,GAAG,EAAE,CAAA;gBACX,IAAI,GAAG,KAAK,CAAA;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,yBAAyB,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAA6B;IAChE,MAAM,EAAE,GAAG,IAAI,cAAc,CAAoB,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAElF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,MAAM,GAAG,IAAI,EAAE;SAClB,OAAO,CACP;;;oDAGiD,CACjD;SACA,OAAO,EAAE,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAEzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAQ;QAC1C,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,SAAS,EAAE,CAAA;YAEX,SAAQ;QACT,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,OAAwB,EAAE,GAAG,CAAC,SAA0B,CAAC,CAAA;QAC3F,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,EAAE,CAAA;YACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACvB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;QAEjF,MAAM,EAAE,CAAA;IACT,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC7E,CAAC"}
1
+ {"version":3,"file":"importance.js","sourceRoot":"","sources":["../../lib/candidate/importance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../lib/candidate/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAA6B,MAAM,0BAA0B,CAAA;AAMnH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAUjF,OAAO,KAAK,EAAE,iBAAiB,EAAwD,MAAM,mBAAmB,CAAA;AAQhH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAEvF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC1F;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAC7C;AA6CD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,WAAW;;IAclG,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAgB3D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAA;IAErE,YAAY,IAAI,EAAE,2BAA2B,EA0D5C;IAkNK,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAyRhE;CACD"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../lib/candidate/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAA6B,MAAM,0BAA0B,CAAA;AAMnH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAUjF,OAAO,KAAK,EAAE,iBAAiB,EAAwD,MAAM,mBAAmB,CAAA;AAQhH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAEvF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC1F;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAC7C;AAyDD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,WAAW;;IAclG,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAgB3D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAA;IAErE,YAAY,IAAI,EAAE,2BAA2B,EA0D5C;IAyNK,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAkShE;CACD"}
@@ -8,7 +8,7 @@ import { referentialFromPopulation } from "@mailwoman/core/resolver";
8
8
  import { allRows } from "@mailwoman/core/utils";
9
9
  import { jaroWinkler, levenshteinSimilarity } from "@mailwoman/match/comparators";
10
10
  import { partitionByContainment } from "@mailwoman/resolver";
11
- import { haversineKm } from "@mailwoman/spatial";
11
+ import { haversine } from "@mailwoman/spatial/geometries/point/distance";
12
12
  import { SQLiteLookup } from "@mailwoman/sqlite/lookup";
13
13
  import { CANDIDATE_ANCESTOR_TABLE, CANDIDATE_INTERVAL_TABLE, intervalContains, } from "#candidate/ancestors/schema";
14
14
  import { CANDIDATE_FTS_TABLE } from "#candidate/fts";
@@ -95,7 +95,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
95
95
  this.#intervalProbe = this.database.prepare(`SELECT pre, post FROM ${CANDIDATE_INTERVAL_TABLE} WHERE spr_id = ?`);
96
96
  const bandIDs = [...REGION_CLASS_PLACETYPES, "country"]
97
97
  .map((placetype) => this.#placetypeToID.get(placetype))
98
- .filter((id) => id !== undefined);
98
+ .filter((id) => typeof id === "number");
99
99
  if (bandIDs.length) {
100
100
  this.#qualifierProbe = this.database.prepare(`SELECT DISTINCT spr_id FROM candidate WHERE name_key = ? AND placetype_id IN (${bandIDs.join(",")}) LIMIT 8`);
101
101
  }
@@ -122,7 +122,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
122
122
  if (!this.#intervalProbe)
123
123
  return null;
124
124
  const cached = this.#intervalCache.get(sprID);
125
- if (cached !== undefined)
125
+ if (cached)
126
126
  return cached;
127
127
  const row = this.#intervalProbe.get(sprID);
128
128
  const label = row ? { pre: Number(row.pre), post: Number(row.post) } : null;
@@ -155,11 +155,20 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
155
155
  return this.#ancestorLineage(sprID).some((ancestor) => qualifierIDs.has(Number(ancestor.id)));
156
156
  }
157
157
  /**
158
- * Apply admin-containment re-rank: stamp containment, inject contained misses,
159
- * then partition contained-first.
158
+ * Apply admin-containment re-rank for a parsed region qualifier: resolve the
159
+ * qualifier's region rows, then {@linkcode #applyContainment}.
160
160
  */
161
161
  #applyAdminContainment(rows, qualifier, country, opts) {
162
- const qualifierIDs = this.#qualifierRegionIDs(qualifier, country);
162
+ return this.#applyContainment(rows, this.#qualifierRegionIDs(qualifier, country), opts);
163
+ }
164
+ /**
165
+ * Stamp containment in the qualifier rows, inject contained misses, then partition contained-first.
166
+ *
167
+ * The qualifier rows are a parsed region's rows or one resolved parent place (#2804).
168
+ * The injection reads the same name key under the shape filters and under the sub-locality placetypes,
169
+ * so a dependent locality the locality band excludes re-enters the list when its parent contains it.
170
+ */
171
+ #applyContainment(rows, qualifierIDs, opts) {
163
172
  if (!qualifierIDs.size) {
164
173
  for (const row of rows) {
165
174
  row.containedByQualifier = false;
@@ -192,7 +201,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
192
201
  // Also inject contained neighborhood-band namesakes (primary-keyed only).
193
202
  const bandIDs = ["neighbourhood", "macrohood", "microhood"]
194
203
  .map((placetype) => this.#placetypeToID.get(placetype))
195
- .filter((id) => id !== undefined);
204
+ .filter((id) => typeof id === "number");
196
205
  if (bandIDs.length) {
197
206
  const bandSQL = "SELECT spr_id, name, country_id, placetype_id, latitude, longitude, min_lat, min_lon, max_lat, max_lon, neg_rank, is_primary, population" +
198
207
  `${this.#importanceSelect} FROM candidate WHERE name_key = ? AND placetype_id IN (${bandIDs.map(() => "?").join(",")}) AND is_primary = 1 ` +
@@ -225,13 +234,13 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
225
234
  }
226
235
  #postcodeAnchor(postcode, country) {
227
236
  const placetypeID = this.#placetypeToID.get("postalcode");
228
- if (placetypeID === undefined)
237
+ if (typeof placetypeID !== "number")
229
238
  return null;
230
239
  const conds = ["name_key = ?", "placetype_id = ?"];
231
240
  const params = [postcode.replaceAll(/\s+/g, ""), placetypeID];
232
241
  if (country) {
233
242
  const countryID = this.#countryToID.get(country.toUpperCase());
234
- if (countryID === undefined)
243
+ if (typeof countryID !== "number")
235
244
  return null; // Unknown country in this artifact.
236
245
  conds.push("country_id = ?");
237
246
  params.push(countryID);
@@ -292,7 +301,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
292
301
  const shapeParams = [];
293
302
  if (query.country) {
294
303
  const cid = this.#countryToID.get(query.country.toUpperCase());
295
- if (cid === undefined)
304
+ if (typeof cid !== "number")
296
305
  return []; // Unknown country in this artifact.
297
306
  filters.push("country_id = ?");
298
307
  filterParams.push(cid);
@@ -302,7 +311,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
302
311
  const want = Array.isArray(query.placetype) ? query.placetype : [query.placetype];
303
312
  const ids = expandPlacetypeFilter(want)
304
313
  .map((t) => this.#placetypeToID.get(t))
305
- .filter((v) => v !== undefined);
314
+ .filter((v) => typeof v === "number");
306
315
  if (!ids.length)
307
316
  return [];
308
317
  shapeFilters.push(`placetype_id IN (${ids.map(() => "?").join(",")})`);
@@ -398,7 +407,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
398
407
  const insideThreshold = [];
399
408
  const outsideThreshold = [];
400
409
  for (const row of rows) {
401
- const distanceKm = haversineKm(anchor.lat, anchor.lon, Number(row.latitude), Number(row.longitude));
410
+ const distanceKm = haversine(anchor.lat, anchor.lon, Number(row.latitude), Number(row.longitude));
402
411
  if (distanceKm <= POSTCODE_CONTAINMENT_THRESHOLD_KM) {
403
412
  insideThreshold.push({ row, distanceKm });
404
413
  }
@@ -414,14 +423,21 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
414
423
  }
415
424
  }
416
425
  // Admin-containment re-rank runs last.
426
+ const containmentOptions = {
427
+ nameKey,
428
+ strippedKey: normalizeLocalityForKey(stripLocalityQualifier(text)),
429
+ shapeFilters,
430
+ shapeParams,
431
+ limit,
432
+ };
417
433
  if (query.regionQualifier?.trim() && this.#qualifierProbe && this.#wantsLocality(query.placetype)) {
418
- rows = this.#applyAdminContainment(rows, query.regionQualifier.trim(), query.country ?? null, {
419
- nameKey,
420
- strippedKey: normalizeLocalityForKey(stripLocalityQualifier(text)),
421
- shapeFilters,
422
- shapeParams,
423
- limit,
424
- });
434
+ rows = this.#applyAdminContainment(rows, query.regionQualifier.trim(), query.country ?? null, containmentOptions);
435
+ }
436
+ else if (typeof query.parentQualifierID === "number" &&
437
+ this.#ancestorsProbe &&
438
+ this.#wantsLocality(query.placetype)) {
439
+ // A resolved parent qualifies by id, so no name probe runs (#2804).
440
+ rows = this.#applyContainment(rows, new Set([query.parentQualifierID]), containmentOptions);
425
441
  }
426
442
  const candidates = rows.map((row) => {
427
443
  const hasBbox = row.min_lat != null && row.max_lat != null && row.min_lon != null && row.max_lon != null;