@mailwoman/resolver-wof-sqlite 8.1.0 → 8.3.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 (217) hide show
  1. package/address-point-interpolation.ts +9 -3
  2. package/address-point-schema.ts +32 -10
  3. package/address-point.ts +3 -0
  4. package/ancestry-backfill.ts +18 -5
  5. package/ancestry.ts +7 -2
  6. package/build-candidate.ts +29 -6
  7. package/build-slim.ts +40 -11
  8. package/candidate-fts.ts +1 -0
  9. package/candidate-lookup.ts +36 -14
  10. package/candidate-schema.ts +35 -11
  11. package/coincident-roles.ts +28 -6
  12. package/convention.ts +3 -1
  13. package/coverage-manifest-schema.ts +49 -16
  14. package/fst-autocomplete.ts +15 -9
  15. package/fst-builder.ts +29 -5
  16. package/fst-deserialize-web.ts +46 -9
  17. package/fst-matcher.ts +12 -5
  18. package/fst-serialize.ts +83 -9
  19. package/fst-types.ts +26 -3
  20. package/fts-query.ts +84 -0
  21. package/fts.ts +35 -9
  22. package/geo.ts +9 -3
  23. package/geonames-aliases.ts +116 -79
  24. package/geonames-postal.ts +25 -5
  25. package/index.ts +10 -0
  26. package/interpolation.ts +33 -55
  27. package/lookup.ts +103 -292
  28. package/name-score.ts +76 -0
  29. package/out/address-point-interpolation.d.ts.map +1 -1
  30. package/out/address-point-interpolation.js +4 -2
  31. package/out/address-point-interpolation.js.map +1 -1
  32. package/out/address-point-schema.d.ts +30 -10
  33. package/out/address-point-schema.d.ts.map +1 -1
  34. package/out/address-point-schema.js +6 -2
  35. package/out/address-point-schema.js.map +1 -1
  36. package/out/address-point.d.ts.map +1 -1
  37. package/out/address-point.js.map +1 -1
  38. package/out/ancestry-backfill.d.ts +6 -2
  39. package/out/ancestry-backfill.d.ts.map +1 -1
  40. package/out/ancestry-backfill.js +7 -3
  41. package/out/ancestry-backfill.js.map +1 -1
  42. package/out/ancestry.d.ts +6 -2
  43. package/out/ancestry.d.ts.map +1 -1
  44. package/out/ancestry.js +3 -1
  45. package/out/ancestry.js.map +1 -1
  46. package/out/build-candidate.d.ts +9 -3
  47. package/out/build-candidate.d.ts.map +1 -1
  48. package/out/build-candidate.js +5 -3
  49. package/out/build-candidate.js.map +1 -1
  50. package/out/build-slim.d.ts +15 -5
  51. package/out/build-slim.d.ts.map +1 -1
  52. package/out/build-slim.js +11 -5
  53. package/out/build-slim.js.map +1 -1
  54. package/out/candidate-fts.d.ts.map +1 -1
  55. package/out/candidate-fts.js.map +1 -1
  56. package/out/candidate-lookup.d.ts +9 -3
  57. package/out/candidate-lookup.d.ts.map +1 -1
  58. package/out/candidate-lookup.js +16 -11
  59. package/out/candidate-lookup.js.map +1 -1
  60. package/out/candidate-schema.d.ts +33 -11
  61. package/out/candidate-schema.d.ts.map +1 -1
  62. package/out/candidate-schema.js.map +1 -1
  63. package/out/coincident-roles.d.ts +16 -4
  64. package/out/coincident-roles.d.ts.map +1 -1
  65. package/out/coincident-roles.js +9 -3
  66. package/out/coincident-roles.js.map +1 -1
  67. package/out/convention.d.ts +3 -1
  68. package/out/convention.d.ts.map +1 -1
  69. package/out/convention.js.map +1 -1
  70. package/out/coverage-manifest-schema.d.ts +45 -14
  71. package/out/coverage-manifest-schema.d.ts.map +1 -1
  72. package/out/coverage-manifest-schema.js +14 -5
  73. package/out/coverage-manifest-schema.js.map +1 -1
  74. package/out/fst-autocomplete.d.ts +1 -1
  75. package/out/fst-autocomplete.d.ts.map +1 -1
  76. package/out/fst-autocomplete.js +11 -9
  77. package/out/fst-autocomplete.js.map +1 -1
  78. package/out/fst-builder.d.ts.map +1 -1
  79. package/out/fst-builder.js +15 -5
  80. package/out/fst-builder.js.map +1 -1
  81. package/out/fst-deserialize-web.d.ts.map +1 -1
  82. package/out/fst-deserialize-web.js +34 -9
  83. package/out/fst-deserialize-web.js.map +1 -1
  84. package/out/fst-matcher.d.ts +6 -2
  85. package/out/fst-matcher.d.ts.map +1 -1
  86. package/out/fst-matcher.js +9 -5
  87. package/out/fst-matcher.js.map +1 -1
  88. package/out/fst-serialize.d.ts.map +1 -1
  89. package/out/fst-serialize.js +62 -9
  90. package/out/fst-serialize.js.map +1 -1
  91. package/out/fst-types.d.ts +26 -3
  92. package/out/fst-types.d.ts.map +1 -1
  93. package/out/fts-query.d.ts +41 -0
  94. package/out/fts-query.d.ts.map +1 -0
  95. package/out/fts-query.js +75 -0
  96. package/out/fts-query.js.map +1 -0
  97. package/out/fts.d.ts +21 -7
  98. package/out/fts.d.ts.map +1 -1
  99. package/out/fts.js +10 -4
  100. package/out/fts.js.map +1 -1
  101. package/out/geo.d.ts +6 -2
  102. package/out/geo.d.ts.map +1 -1
  103. package/out/geo.js +3 -1
  104. package/out/geo.js.map +1 -1
  105. package/out/geonames-aliases.d.ts +12 -4
  106. package/out/geonames-aliases.d.ts.map +1 -1
  107. package/out/geonames-aliases.js +72 -67
  108. package/out/geonames-aliases.js.map +1 -1
  109. package/out/geonames-postal.d.ts +9 -3
  110. package/out/geonames-postal.d.ts.map +1 -1
  111. package/out/geonames-postal.js +7 -2
  112. package/out/geonames-postal.js.map +1 -1
  113. package/out/index.d.ts.map +1 -1
  114. package/out/index.js.map +1 -1
  115. package/out/interpolation.d.ts +18 -6
  116. package/out/interpolation.d.ts.map +1 -1
  117. package/out/interpolation.js +11 -40
  118. package/out/interpolation.js.map +1 -1
  119. package/out/lookup.d.ts +3 -97
  120. package/out/lookup.d.ts.map +1 -1
  121. package/out/lookup.js +52 -184
  122. package/out/lookup.js.map +1 -1
  123. package/out/name-score.d.ts +28 -0
  124. package/out/name-score.d.ts.map +1 -0
  125. package/out/name-score.js +67 -0
  126. package/out/name-score.js.map +1 -0
  127. package/out/poi-lookup.d.ts +24 -8
  128. package/out/poi-lookup.d.ts.map +1 -1
  129. package/out/poi-lookup.js +27 -13
  130. package/out/poi-lookup.js.map +1 -1
  131. package/out/poi-schema.d.ts +42 -13
  132. package/out/poi-schema.d.ts.map +1 -1
  133. package/out/poi-schema.js +12 -3
  134. package/out/poi-schema.js.map +1 -1
  135. package/out/postal-city-alias-lookup.d.ts +18 -6
  136. package/out/postal-city-alias-lookup.d.ts.map +1 -1
  137. package/out/postal-city-alias-lookup.js.map +1 -1
  138. package/out/postal-city-alias-schema.d.ts +27 -9
  139. package/out/postal-city-alias-schema.d.ts.map +1 -1
  140. package/out/postal-city-alias-schema.js +3 -1
  141. package/out/postal-city-alias-schema.js.map +1 -1
  142. package/out/postal-city-candidate-schema.d.ts +15 -5
  143. package/out/postal-city-candidate-schema.d.ts.map +1 -1
  144. package/out/postal-city-candidate-schema.js +3 -1
  145. package/out/postal-city-candidate-schema.js.map +1 -1
  146. package/out/postcode-point-lookup.d.ts +6 -2
  147. package/out/postcode-point-lookup.d.ts.map +1 -1
  148. package/out/postcode-point-lookup.js +6 -2
  149. package/out/postcode-point-lookup.js.map +1 -1
  150. package/out/ranking-weights.d.ts +118 -0
  151. package/out/ranking-weights.d.ts.map +1 -0
  152. package/out/ranking-weights.js +44 -0
  153. package/out/ranking-weights.js.map +1 -0
  154. package/out/reverse.d.ts +9 -3
  155. package/out/reverse.d.ts.map +1 -1
  156. package/out/reverse.js +20 -6
  157. package/out/reverse.js.map +1 -1
  158. package/out/sharding.d.ts +3 -1
  159. package/out/sharding.d.ts.map +1 -1
  160. package/out/sharding.js +7 -5
  161. package/out/sharding.js.map +1 -1
  162. package/out/sqlite-convention-source.d.ts.map +1 -1
  163. package/out/sqlite-convention-source.js +3 -1
  164. package/out/sqlite-convention-source.js.map +1 -1
  165. package/out/street-centroid-schema.d.ts +33 -11
  166. package/out/street-centroid-schema.d.ts.map +1 -1
  167. package/out/street-centroid-schema.js +3 -1
  168. package/out/street-centroid-schema.js.map +1 -1
  169. package/out/street-centroid.d.ts.map +1 -1
  170. package/out/street-centroid.js +6 -2
  171. package/out/street-centroid.js.map +1 -1
  172. package/out/street-morphology-fst-builder.d.ts +6 -2
  173. package/out/street-morphology-fst-builder.d.ts.map +1 -1
  174. package/out/street-morphology-fst-builder.js +8 -7
  175. package/out/street-morphology-fst-builder.js.map +1 -1
  176. package/out/street-morphology-fst-loader.d.ts +24 -8
  177. package/out/street-morphology-fst-loader.d.ts.map +1 -1
  178. package/out/street-morphology-fst-loader.js +11 -5
  179. package/out/street-morphology-fst-loader.js.map +1 -1
  180. package/out/street-name-lookup.d.ts +9 -3
  181. package/out/street-name-lookup.d.ts.map +1 -1
  182. package/out/street-name-lookup.js +9 -7
  183. package/out/street-name-lookup.js.map +1 -1
  184. package/out/street-normalize.d.ts +3 -1
  185. package/out/street-normalize.d.ts.map +1 -1
  186. package/out/street-normalize.js +23 -13
  187. package/out/street-normalize.js.map +1 -1
  188. package/out/street-segment-schema.d.ts +48 -16
  189. package/out/street-segment-schema.d.ts.map +1 -1
  190. package/out/street-segment-schema.js +6 -2
  191. package/out/street-segment-schema.js.map +1 -1
  192. package/out/types.d.ts +18 -6
  193. package/out/types.d.ts.map +1 -1
  194. package/out/unified-schema.d.ts +1 -1
  195. package/out/unified-schema.d.ts.map +1 -1
  196. package/out/unified-schema.js +2 -2
  197. package/out/unified-schema.js.map +1 -1
  198. package/package.json +5 -5
  199. package/poi-lookup.ts +53 -21
  200. package/poi-schema.ts +43 -13
  201. package/postal-city-alias-lookup.ts +20 -6
  202. package/postal-city-alias-schema.ts +28 -9
  203. package/postal-city-candidate-schema.ts +15 -5
  204. package/postcode-point-lookup.ts +6 -2
  205. package/ranking-weights.ts +148 -0
  206. package/reverse.ts +47 -10
  207. package/sharding.ts +13 -6
  208. package/sqlite-convention-source.ts +4 -1
  209. package/street-centroid-schema.ts +35 -11
  210. package/street-centroid.ts +10 -3
  211. package/street-morphology-fst-builder.ts +25 -9
  212. package/street-morphology-fst-loader.ts +26 -10
  213. package/street-name-lookup.ts +19 -7
  214. package/street-normalize.ts +28 -13
  215. package/street-segment-schema.ts +50 -16
  216. package/types.ts +18 -6
  217. package/unified-schema.ts +11 -2
@@ -1 +1 @@
1
- {"version":3,"file":"street-segment-schema.d.ts","sourceRoot":"","sources":["../street-segment-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACpC,+GAA+G;IAC/G,iBAAiB,EAAE,MAAM,CAAA;IACzB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,kHAAkH;IAClH,MAAM,EAAE,MAAM,CAAA;CACd;AAED,+FAA+F;AAC/F,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,kBAAkB,CAAA;IAClC,kBAAkB,EAAE,oBAAoB,CAAA;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,8JAczB,CAAA;AAEV,iFAAiF;AACjF,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/F;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC3C,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,EACjC,GAAG,EAAE,oBAAoB,GACvB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wFAAwF;AACxF,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjG"}
1
+ {"version":3,"file":"street-segment-schema.d.ts","sourceRoot":"","sources":["../street-segment-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,kBAAkB,CAAA;IAClC,kBAAkB,EAAE,oBAAoB,CAAA;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,8JAczB,CAAA;AAEV;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/F;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC3C,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,EACjC,GAAG,EAAE,oBAAoB,GACvB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjG"}
@@ -33,7 +33,9 @@ export const STREET_SEGMENT_COLUMNS = [
33
33
  "source",
34
34
  "release",
35
35
  ];
36
- /** Create the `street_segment` table — called before the streaming bulk load. */
36
+ /**
37
+ * Create the `street_segment` table — called before the streaming bulk load.
38
+ */
37
39
  export async function createStreetSegmentTable(db) {
38
40
  await db.schema
39
41
  .createTable("street_segment")
@@ -67,7 +69,9 @@ export async function writeInterpCalibration(db, row) {
67
69
  .execute();
68
70
  await db.insertInto("interp_calibration").values(row).execute();
69
71
  }
70
- /** Create the two probe indexes the reader relies on (postcode-scope, street-scope). */
72
+ /**
73
+ * Create the two probe indexes the reader relies on (postcode-scope, street-scope).
74
+ */
71
75
  export async function createStreetSegmentIndexes(db) {
72
76
  await db.schema
73
77
  .createIndex("idx_seg_postcode")
@@ -1 +1 @@
1
- {"version":3,"file":"street-segment-schema.js","sourceRoot":"","sources":["../street-segment-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"street-segment-schema.js","sourceRoot":"","sources":["../street-segment-schema.ts"],"names":[],"mappings":"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"}
package/out/types.d.ts CHANGED
@@ -33,7 +33,9 @@ export interface PlaceCandidate {
33
33
  id: number;
34
34
  name: string;
35
35
  placetype: WOFPlacetype;
36
- /** ISO 3166-1 alpha-2 country code. */
36
+ /**
37
+ * ISO 3166-1 alpha-2 country code.
38
+ */
37
39
  country: string;
38
40
  lat: number;
39
41
  lon: number;
@@ -106,9 +108,13 @@ export interface GeoBbox {
106
108
  export interface FindPlaceQuery {
107
109
  text: string;
108
110
  placetype?: WOFPlacetype | WOFPlacetype[];
109
- /** ISO 3166-1 alpha-2 — narrows to one country. */
111
+ /**
112
+ * ISO 3166-1 alpha-2 — narrows to one country.
113
+ */
110
114
  country?: string;
111
- /** WOF place id — narrows to descendants of this place. */
115
+ /**
116
+ * WOF place id — narrows to descendants of this place.
117
+ */
112
118
  parentID?: number;
113
119
  /**
114
120
  * Sibling postcode. When set on a `locality` query AND a `postcode_locality` table is present, triggers the
@@ -117,7 +123,9 @@ export interface FindPlaceQuery {
117
123
  * postcode_locality shard is present.
118
124
  */
119
125
  postcode?: string;
120
- /** Proximity hint — candidates close to this point get a ranking boost. */
126
+ /**
127
+ * Proximity hint — candidates close to this point get a ranking boost.
128
+ */
121
129
  near?: GeoPoint & {
122
130
  maxDistanceKm?: number;
123
131
  };
@@ -132,9 +140,13 @@ export interface FindPlaceQuery {
132
140
  bias?: Array<GeoPoint & {
133
141
  weight?: number;
134
142
  }>;
135
- /** Bounding-box filter — only candidates whose bbox intersects this box are returned. */
143
+ /**
144
+ * Bounding-box filter — only candidates whose bbox intersects this box are returned.
145
+ */
136
146
  bbox?: GeoBbox;
137
- /** Default 10. */
147
+ /**
148
+ * Default 10.
149
+ */
138
150
  limit?: number;
139
151
  }
140
152
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACrB,SAAS,GACT,aAAa,GACb,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,SAAS,GACT,eAAe,GACf,WAAW,GACX,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,SAAS,CAAA;AAEZ;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,YAAY,CAAA;IACvB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;IACzC,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,QAAQ,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C,yFAAyF;IACzF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACrB,SAAS,GACT,aAAa,GACb,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,SAAS,GACT,eAAe,GACf,WAAW,GACX,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,SAAS,CAAA;AAEZ;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,YAAY,CAAA;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC3D,KAAK,IAAI,IAAI,CAAA;CACb"}
@@ -11,7 +11,7 @@
11
11
  * table (which lookup.ts's parent-constraint subquery needs) — see `populateAncestors`. The
12
12
  * `place_search` FTS5 + `place_bbox` R*Tree are built separately by `build-fts` (fts.ts).
13
13
  */
14
- import { DatabaseSync } from "node:sqlite";
14
+ import type { DatabaseSync } from "node:sqlite";
15
15
  export declare function createUnifiedSchema(db: DatabaseSync): Promise<void>;
16
16
  /**
17
17
  * Populate the `ancestors` table by walking each place's `parent_id` chain in `spr` (transitive closure, including the
@@ -1 +1 @@
1
- {"version":3,"file":"unified-schema.d.ts","sourceRoot":"","sources":["../unified-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFzE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAoC1D;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB1E"}
1
+ {"version":3,"file":"unified-schema.d.ts","sourceRoot":"","sources":["../unified-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM/C,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFzE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CA0C1D;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B1E"}
@@ -11,7 +11,6 @@
11
11
  * table (which lookup.ts's parent-constraint subquery needs) — see `populateAncestors`. The
12
12
  * `place_search` FTS5 + `place_bbox` R*Tree are built separately by `build-fts` (fts.ts).
13
13
  */
14
- import { DatabaseSync } from "node:sqlite";
15
14
  import { DatabaseClient } from "@mailwoman/core/kysley/client";
16
15
  export async function createUnifiedSchema(db) {
17
16
  // PRAGMAs stay raw — not Kysely-modelled, and these tune the bulk build.
@@ -106,7 +105,8 @@ export function populateAncestors(db) {
106
105
  db.exec("BEGIN");
107
106
  let count = 0;
108
107
  for (const r of rows) {
109
- insert.run(r.id, r.id, r.placetype); // self
108
+ insert.run(r.id, r.id, r.placetype);
109
+ // self
110
110
  count++;
111
111
  const seen = new Set([r.id]);
112
112
  let cur = r.parent_id;
@@ -1 +1 @@
1
- {"version":3,"file":"unified-schema.js","sourceRoot":"","sources":["../unified-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-schema.js","sourceRoot":"","sources":["../unified-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailwoman/resolver-wof-sqlite",
3
- "version": "8.1.0",
3
+ "version": "8.3.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
5
  "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
@@ -242,10 +242,10 @@
242
242
  }
243
243
  },
244
244
  "dependencies": {
245
- "@mailwoman/codex": "8.1.0",
246
- "@mailwoman/core": "8.1.0",
247
- "@mailwoman/resolver": "8.1.0",
248
- "@mailwoman/spatial": "8.1.0",
245
+ "@mailwoman/codex": "8.3.0",
246
+ "@mailwoman/core": "8.3.0",
247
+ "@mailwoman/resolver": "8.3.0",
248
+ "@mailwoman/spatial": "8.3.0",
249
249
  "h3-js": "^4.5.0",
250
250
  "kysely": "^0.29.4"
251
251
  }
package/poi-lookup.ts CHANGED
@@ -32,7 +32,9 @@ import { gridDisk, latLngToCell } from "h3-js"
32
32
 
33
33
  import type { POICategoryCodeTable, POITable } from "./poi-schema.ts"
34
34
 
35
- /** Resolution the `poi` table's `h3_cell` column is keyed at — matches the builder (spec §3.4). */
35
+ /**
36
+ * Resolution the `poi` table's `h3_cell` column is keyed at — matches the builder (spec §3.4).
37
+ */
36
38
  export const POI_H3_RESOLUTION = 9
37
39
 
38
40
  /**
@@ -57,11 +59,15 @@ const DEFAULT_MAX_RINGS = 16
57
59
  */
58
60
  const BRAND_MAX_DISTANCE_KM = 500
59
61
 
60
- /** Row-count default when a query doesn't specify `limit`. */
62
+ /**
63
+ * Row-count default when a query doesn't specify `limit`.
64
+ */
61
65
  const DEFAULT_LIMIT = 20
62
66
 
63
67
  export interface POISearchQuery {
64
- /** Poi-taxonomy category id (string side of the dictionary). Ignored when `brandWikidata` is also set — brand wins. */
68
+ /**
69
+ * Poi-taxonomy category id (string side of the dictionary). Ignored when `brandWikidata` is also set — brand wins.
70
+ */
65
71
  categoryID?: string
66
72
  /**
67
73
  * Fan-out category ids — the Overture `taxonomy.primary` leaves a single canonical category rolls up into (e.g.
@@ -70,11 +76,17 @@ export interface POISearchQuery {
70
76
  * one-element list `[categoryID]` when this is absent). Ignored when `brandWikidata` is set — brand wins.
71
77
  */
72
78
  categoryIDs?: string[]
73
- /** Wikidata QID for brand-exact search. */
79
+ /**
80
+ * Wikidata QID for brand-exact search.
81
+ */
74
82
  brandWikidata?: string
75
- /** Free-text name (FTS5). */
83
+ /**
84
+ * Free-text name (FTS5).
85
+ */
76
86
  name?: string
77
- /** Search center. Required for category/brand queries (k-ring expansion). */
87
+ /**
88
+ * Search center. Required for category/brand queries (k-ring expansion).
89
+ */
78
90
  center?: { latitude: number; longitude: number }
79
91
  /**
80
92
  * Ring budget: how many res-9 k-rings to expand before giving up (default 16 ≈ ~5.4 km). Counts ring 0, so k reaches
@@ -92,19 +104,27 @@ export interface POISearchHit {
92
104
  longitude: number
93
105
  country: string
94
106
  confidence: number
95
- /** Overture GERS id — nullable METADATA ONLY, never a key (the #470 rule; see `POITable.gers_id`). */
107
+ /**
108
+ * Overture GERS id — nullable METADATA ONLY, never a key (the #470 rule; see `POITable.gers_id`).
109
+ */
96
110
  gersID: string | null
97
111
  distanceM?: number
98
112
  }
99
113
 
100
114
  export interface POILookupOpts {
101
- /** Path to a `poi.db` built by the (future) POI builder. Opened read-only. */
115
+ /**
116
+ * Path to a `poi.db` built by the (future) POI builder. Opened read-only.
117
+ */
102
118
  databasePath?: string
103
- /** Pre-opened handle (tests / shared connections). Mutually exclusive with `databasePath`. */
119
+ /**
120
+ * Pre-opened handle (tests / shared connections). Mutually exclusive with `databasePath`.
121
+ */
104
122
  database?: DatabaseSync
105
123
  }
106
124
 
107
- /** The `poi` columns every search mode hydrates — a typed projection of the SHARED {@link POITable}. */
125
+ /**
126
+ * The `poi` columns every search mode hydrates — a typed projection of the SHARED {@link POITable}.
127
+ */
108
128
  type POIRow = Pick<
109
129
  POITable,
110
130
  | "name"
@@ -129,11 +149,17 @@ export class POILookup implements Disposable {
129
149
  readonly #categoryToID = new Map<string, number>()
130
150
  readonly #idToCategory = new Map<number, string>()
131
151
 
132
- /** `(h3_cell, category_id)` → the cell's category-clustered range, most-confident-first. */
152
+ /**
153
+ * `(h3_cell, category_id)` → the cell's category-clustered range, most-confident-first.
154
+ */
133
155
  readonly #categoryCellProbe: ReturnType<DatabaseSync["prepare"]>
134
- /** `brand_wikidata` → ALL of a brand's rows globally (partial-index range-scan); distance-sorted in JS, not SQL. */
156
+ /**
157
+ * `brand_wikidata` → ALL of a brand's rows globally (partial-index range-scan); distance-sorted in JS, not SQL.
158
+ */
135
159
  readonly #brandProbe: ReturnType<DatabaseSync["prepare"]>
136
- /** FTS5 `MATCH` over `poi_search`, returning candidate `name_key`s to hydrate. */
160
+ /**
161
+ * FTS5 `MATCH` over `poi_search`, returning candidate `name_key`s to hydrate.
162
+ */
137
163
  readonly #nameFTSProbe: ReturnType<DatabaseSync["prepare"]>
138
164
 
139
165
  constructor(opts: POILookupOpts) {
@@ -161,7 +187,9 @@ export class POILookup implements Disposable {
161
187
  this.#categoryCellProbe = this.#db.prepare(
162
188
  `SELECT ${columns} FROM poi WHERE h3_cell = ? AND category_id = ? ORDER BY neg_rank ASC LIMIT ?`
163
189
  )
190
+
164
191
  this.#brandProbe = this.#db.prepare(`SELECT ${columns} FROM poi WHERE brand_wikidata = ?`)
192
+
165
193
  this.#nameFTSProbe = this.#db.prepare(
166
194
  "SELECT name_key FROM poi_search WHERE poi_search MATCH ? ORDER BY bm25(poi_search) LIMIT ?"
167
195
  )
@@ -174,7 +202,7 @@ export class POILookup implements Disposable {
174
202
  return this.#searchByName(query.name, limit, query.center)
175
203
  }
176
204
 
177
- if (query.categoryID || (query.categoryIDs && query.categoryIDs.length > 0) || query.brandWikidata) {
205
+ if (query.categoryID || (query.categoryIDs && query.categoryIDs.length) || query.brandWikidata) {
178
206
  if (!query.center) {
179
207
  throw new Error("POILookup.search: category/brand search requires a `center`")
180
208
  }
@@ -208,7 +236,9 @@ export class POILookup implements Disposable {
208
236
  .map((row) => toHit(row, this.#idToCategory, center))
209
237
  }
210
238
 
211
- /** Category path: k-ring expansion from `query.center`'s res-9 cell, probing each new ring's cells. */
239
+ /**
240
+ * Category path: k-ring expansion from `query.center`'s res-9 cell, probing each new ring's cells.
241
+ */
212
242
  #searchKRing(query: POISearchQuery, limit: number): POISearchHit[] {
213
243
  const center = query.center!
214
244
  const maxRings = query.maxRings ?? DEFAULT_MAX_RINGS
@@ -227,7 +257,7 @@ export class POILookup implements Disposable {
227
257
  }
228
258
 
229
259
  // No resolvable leaf (every id unknown to the dictionary) can't have rows — a clean miss, not a throw.
230
- if (categoryIds.length === 0) return []
260
+ if (!categoryIds.length) return []
231
261
 
232
262
  const origin = latLngToCell(center.latitude, center.longitude, POI_H3_RESOLUTION) as H3Cell
233
263
  const seenCells = new Set<string>()
@@ -281,7 +311,7 @@ export class POILookup implements Disposable {
281
311
  uniqueKeys.push(hit.name_key)
282
312
  }
283
313
 
284
- if (uniqueKeys.length === 0) return []
314
+ if (!uniqueKeys.length) return []
285
315
 
286
316
  const hydrated = this.#hydrateByNameKeys(uniqueKeys)
287
317
  const rowsByKey = new Map<string, POIRow[]>()
@@ -334,13 +364,15 @@ export class POILookup implements Disposable {
334
364
  }
335
365
  }
336
366
 
337
- /** `poi.h3_cell` is the SHORTENED (48-bit) cell — never the full h3-js cell string. */
367
+ /**
368
+ * `poi.h3_cell` is the SHORTENED (48-bit) cell — never the full h3-js cell string.
369
+ */
338
370
  function h3CellToInt(cell: H3Cell): number {
339
371
  return Number(BigInt(`0x${shortenH3Cell(cell)}`))
340
372
  }
341
373
 
342
374
  function sortByDistance(rows: POIRow[], center: { latitude: number; longitude: number }): POIRow[] {
343
- return [...rows].sort(
375
+ return [...rows].toSorted(
344
376
  (a, b) =>
345
377
  haversineKm(center.latitude, center.longitude, a.latitude, a.longitude) -
346
378
  haversineKm(center.latitude, center.longitude, b.latitude, b.longitude)
@@ -378,10 +410,10 @@ function toHit(
378
410
  */
379
411
  function sanitizePOINameQuery(text: string): string {
380
412
  return text
381
- .replace(/["*:]/g, "")
413
+ .replaceAll(/["*:]/g, "")
382
414
  .trim()
383
415
  .split(/\s+/u)
384
416
  .filter(Boolean)
385
- .map((token) => `"${token.replace(/"/g, '""')}"`)
417
+ .map((token) => `"${token.replaceAll('"', '""')}"`)
386
418
  .join(" ")
387
419
  }
package/poi-schema.ts CHANGED
@@ -17,27 +17,45 @@ import type { DatabaseSync } from "node:sqlite"
17
17
  import type { LayerContractDatabase } from "@mailwoman/core/layers"
18
18
  import { sql, type Kysely } from "kysely"
19
19
 
20
- /** One POI row. Clustered PK: h3_cell → category_id → neg_rank → rowid_key. */
20
+ /**
21
+ * One POI row. Clustered PK: h3_cell → category_id → neg_rank → rowid_key.
22
+ */
21
23
  export interface POITable {
22
- /** 48-bit short H3 cell at res 9 (`latLngToCell` → `shortenH3Cell`). */
24
+ /**
25
+ * 48-bit short H3 cell at res 9 (`latLngToCell` → `shortenH3Cell`).
26
+ */
23
27
  h3_cell: number
24
- /** Small int from {@link POICategoryCodeTable}; 0 = uncategorized. */
28
+ /**
29
+ * Small int from {@link POICategoryCodeTable}; 0 = uncategorized.
30
+ */
25
31
  category_id: number
26
- /** `-log10(confidence + epsilon)` so ASC = most-confident-first within a cell+category. */
32
+ /**
33
+ * `-log10(confidence + epsilon)` so ASC = most-confident-first within a cell+category.
34
+ */
27
35
  neg_rank: number
28
- /** Uniquifier within the clustered key (builder-assigned monotonic int). */
36
+ /**
37
+ * Uniquifier within the clustered key (builder-assigned monotonic int).
38
+ */
29
39
  rowid_key: number
30
40
  name: string | null
31
- /** Lowercased, diacritic-flattened probe key for exact name lookups. */
41
+ /**
42
+ * Lowercased, diacritic-flattened probe key for exact name lookups.
43
+ */
32
44
  name_key: string | null
33
45
  brand_wikidata: string | null
34
46
  latitude: number
35
47
  longitude: number
36
- /** ISO 3166-1 alpha-2 (from the Overture partition). */
48
+ /**
49
+ * ISO 3166-1 alpha-2 (from the Overture partition).
50
+ */
37
51
  country: string
38
- /** Overture existence confidence (already filtered ≥ 0.85 at build). */
52
+ /**
53
+ * Overture existence confidence (already filtered ≥ 0.85 at build).
54
+ */
39
55
  confidence: number
40
- /** GERS id — nullable METADATA ONLY, never a key (the #470 rule). */
56
+ /**
57
+ * GERS id — nullable METADATA ONLY, never a key (the #470 rule).
58
+ */
41
59
  gers_id: string | null
42
60
  }
43
61
 
@@ -60,7 +78,9 @@ export interface POIStageTable {
60
78
  gers_id: string | null
61
79
  }
62
80
 
63
- /** `(id → poi-taxonomy category id)` dictionary, e.g. `3 → "cafe"`. */
81
+ /**
82
+ * `(id → poi-taxonomy category id)` dictionary, e.g. `3 → "cafe"`.
83
+ */
64
84
  export interface POICategoryCodeTable {
65
85
  id: number
66
86
  category: string
@@ -72,7 +92,9 @@ export interface POIDatabase extends LayerContractDatabase {
72
92
  poi_category_codes: POICategoryCodeTable
73
93
  }
74
94
 
75
- /** Clustered-key-order column list shared by builder + `INSERT INTO poi SELECT … FROM poi_stage`. */
95
+ /**
96
+ * Clustered-key-order column list shared by builder + `INSERT INTO poi SELECT … FROM poi_stage`.
97
+ */
76
98
  export const POI_COLUMNS = [
77
99
  "h3_cell",
78
100
  "category_id",
@@ -94,6 +116,7 @@ export async function createPOIStagingTables(db: Kysely<POIDatabase>): Promise<v
94
116
  .addColumn("id", "integer", (c) => c.primaryKey())
95
117
  .addColumn("category", "text", (c) => c.unique())
96
118
  .execute()
119
+
97
120
  await db.schema
98
121
  .createTable("poi_stage")
99
122
  .addColumn("h3_cell", "integer")
@@ -132,7 +155,9 @@ export async function createPOITable(db: Kysely<POIDatabase>): Promise<void> {
132
155
  .execute()
133
156
  }
134
157
 
135
- /** Secondary index for the FTS-hydration path. Builders call this AFTER the bulk materialize (index-after-load). */
158
+ /**
159
+ * Secondary index for the FTS-hydration path. Builders call this AFTER the bulk materialize (index-after-load).
160
+ */
136
161
  export async function createPOINameKeyIndex(db: Kysely<POIDatabase>): Promise<void> {
137
162
  await db.schema.createIndex("poi_name_key").on("poi").column("name_key").execute()
138
163
  }
@@ -154,9 +179,14 @@ export async function createPOIBrandIndex(db: Kysely<POIDatabase>): Promise<void
154
179
  .execute()
155
180
  }
156
181
 
182
+ /**
183
+ * FTS5 virtual table backing POI name search in poi.db.
184
+ */
157
185
  export const POI_FTS_TABLE = "poi_search"
158
186
 
159
- /** FTS5 stays raw SQL by project rule (Kysely can't express virtual tables). Content-keyed by name_key. */
187
+ /**
188
+ * FTS5 stays raw SQL by project rule (Kysely can't express virtual tables). Content-keyed by name_key.
189
+ */
160
190
  export function createPOISearchFTS(db: DatabaseSync): void {
161
191
  db.exec(
162
192
  `CREATE VIRTUAL TABLE ${POI_FTS_TABLE} USING fts5(name, name_key UNINDEXED, h3_cell UNINDEXED, tokenize = 'unicode61')`
@@ -23,19 +23,31 @@ import { DatabaseClient } from "@mailwoman/core/kysley/client"
23
23
  import type { PostalCityAliasDatabase } from "./postal-city-alias-schema.ts"
24
24
 
25
25
  export interface WOFPostalCityAliasLookupOpts {
26
- /** Path to a `postal-city-alias-<cc>.db` built by `build-postal-city-alias.ts`. Opened read-only. */
26
+ /**
27
+ * Path to a `postal-city-alias-<cc>.db` built by `build-postal-city-alias.ts`. Opened read-only.
28
+ */
27
29
  databasePath?: string
28
- /** Pre-opened handle (tests / shared connections). Mutually exclusive with `databasePath`. */
30
+ /**
31
+ * Pre-opened handle (tests / shared connections). Mutually exclusive with `databasePath`.
32
+ */
29
33
  database?: DatabaseSync
30
34
  }
31
35
 
32
- /** One divergent alias edge: the postal-system name and the geographic locality it maps to. */
36
+ /**
37
+ * One divergent alias edge: the postal-system name and the geographic locality it maps to.
38
+ */
33
39
  export interface PostalCityAlias {
34
- /** The postal-system surface (what a user types). */
40
+ /**
41
+ * The postal-system surface (what a user types).
42
+ */
35
43
  postalCity: string
36
- /** The geographic locality name the postcode sits in (≈ the gazetteer's canonical name). */
44
+ /**
45
+ * The geographic locality name the postcode sits in (≈ the gazetteer's canonical name).
46
+ */
37
47
  geoLocality: string
38
- /** Observed usage count — the evidence weight. */
48
+ /**
49
+ * Observed usage count — the evidence weight.
50
+ */
39
51
  n: number
40
52
  }
41
53
 
@@ -59,6 +71,7 @@ export class WOFPostalCityAliasLookup {
59
71
  } else {
60
72
  throw new Error("WOFPostalCityAliasLookup needs `databasePath` or `database`")
61
73
  }
74
+
62
75
  // `#kdb` wraps `#db` for the typed query; close() owns the raw handle directly (sync).
63
76
  this.#kdb = new DatabaseClient<PostalCityAliasDatabase>({ database: this.#db })
64
77
  }
@@ -71,6 +84,7 @@ export class WOFPostalCityAliasLookup {
71
84
  const pc = postcode.trim()
72
85
 
73
86
  if (!pc) return []
87
+
74
88
  const rows = await this.#kdb
75
89
  .selectFrom("postal_city_alias")
76
90
  .select(["postal_city", "geo_locality", "n"])
@@ -23,28 +23,46 @@ import type { Kysely } from "kysely"
23
23
  * a `MIN_COUNT` floor on `n`, so every row is a non-trivial usage.
24
24
  */
25
25
  export interface PostalCityAliasTable {
26
- /** The postcode the aggregate is scoped to (the resolver probes by this). */
26
+ /**
27
+ * The postcode the aggregate is scoped to (the resolver probes by this).
28
+ */
27
29
  postcode: string
28
- /** What the postal system calls the place (the surface a user is likely to type). */
30
+ /**
31
+ * What the postal system calls the place (the surface a user is likely to type).
32
+ */
29
33
  postal_city: string
30
- /** The geographic locality name the postcode actually sits in (≈ the gazetteer's canonical name). */
34
+ /**
35
+ * The geographic locality name the postcode actually sits in (≈ the gazetteer's canonical name).
36
+ */
31
37
  geo_locality: string
32
- /** Observed row count — the evidence weight behind this alias. */
38
+ /**
39
+ * Observed row count — the evidence weight behind this alias.
40
+ */
33
41
  n: number
34
- /** 1 when `postal_city != geo_locality` (the alias signal); 0 when they agree. */
42
+ /**
43
+ * 1 when `postal_city != geo_locality` (the alias signal); 0 when they agree.
44
+ */
35
45
  divergent: number
36
- /** Provenance: the dataset this aggregate came from (e.g. `overture:US`). */
46
+ /**
47
+ * Provenance: the dataset this aggregate came from (e.g. `overture:US`).
48
+ */
37
49
  source: string
38
- /** The pinned data release the aggregate was computed from. */
50
+ /**
51
+ * The pinned data release the aggregate was computed from.
52
+ */
39
53
  release: string
40
54
  }
41
55
 
42
- /** The postal-city-alias database schema for `new DatabaseClient<PostalCityAliasDatabase>(...)`. */
56
+ /**
57
+ * The postal-city-alias database schema for `new DatabaseClient<PostalCityAliasDatabase>(...)`.
58
+ */
43
59
  export interface PostalCityAliasDatabase {
44
60
  postal_city_alias: PostalCityAliasTable
45
61
  }
46
62
 
47
- /** The `postal_city_alias` column order — the builder's INSERT derives its column list from this. */
63
+ /**
64
+ * The `postal_city_alias` column order — the builder's INSERT derives its column list from this.
65
+ */
48
66
  export const POSTAL_CITY_ALIAS_COLUMNS = [
49
67
  "postcode",
50
68
  "postal_city",
@@ -70,6 +88,7 @@ export async function createPostalCityAliasTable(db: Kysely<PostalCityAliasDatab
70
88
  .addColumn("source", "text", (c) => c.notNull())
71
89
  .addColumn("release", "text", (c) => c.notNull())
72
90
  .execute()
91
+
73
92
  await db.schema.createIndex("idx_pca_postcode").on("postal_city_alias").column("postcode").execute()
74
93
  await db.schema.createIndex("idx_pca_pair").on("postal_city_alias").columns(["postal_city", "geo_locality"]).execute()
75
94
  }
@@ -25,13 +25,21 @@ import { sql, type Kysely } from "kysely"
25
25
  * locality directly; the denormalized name/coord avoid a join back to `candidate`.
26
26
  */
27
27
  export interface PostalCityCandidateTable {
28
- /** {@link normalizeLocalityForKey} of the postal-city name — the build/query-consistent probe key. */
28
+ /**
29
+ * {@link normalizeLocalityForKey} of the postal-city name — the build/query-consistent probe key.
30
+ */
29
31
  name_key: string
30
- /** The postcode the alias is scoped to (the second half of the exact key). */
32
+ /**
33
+ * The postcode the alias is scoped to (the second half of the exact key).
34
+ */
31
35
  postcode: string
32
- /** WOF id of the geographic locality the postcode sits in (the resolve target). */
36
+ /**
37
+ * WOF id of the geographic locality the postcode sits in (the resolve target).
38
+ */
33
39
  spr_id: number
34
- /** The geographic locality's display name. */
40
+ /**
41
+ * The geographic locality's display name.
42
+ */
35
43
  name: string
36
44
  latitude: number
37
45
  longitude: number
@@ -49,7 +57,9 @@ export interface PostalCityCandidateDatabase {
49
57
  */
50
58
  export const POSTAL_CITY_CANDIDATE_TABLE = "postal_city_candidate"
51
59
 
52
- /** Column order for the builder's positional INSERT. */
60
+ /**
61
+ * Column order for the builder's positional INSERT.
62
+ */
53
63
  export const POSTAL_CITY_CANDIDATE_COLUMNS = [
54
64
  "name_key",
55
65
  "postcode",