@mailwoman/resolver-wof-sqlite 4.16.2 → 5.1.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 (154) hide show
  1. package/out/address-point-interpolation.d.ts.map +1 -1
  2. package/out/address-point-interpolation.js +6 -6
  3. package/out/address-point-interpolation.js.map +1 -1
  4. package/out/address-point-schema.d.ts +5 -6
  5. package/out/address-point-schema.d.ts.map +1 -1
  6. package/out/address-point-schema.js +7 -2
  7. package/out/address-point-schema.js.map +1 -1
  8. package/out/address-point.d.ts +22 -8
  9. package/out/address-point.d.ts.map +1 -1
  10. package/out/address-point.js +29 -13
  11. package/out/address-point.js.map +1 -1
  12. package/out/ancestry-backfill.d.ts +53 -0
  13. package/out/ancestry-backfill.d.ts.map +1 -0
  14. package/out/ancestry-backfill.js +150 -0
  15. package/out/ancestry-backfill.js.map +1 -0
  16. package/out/ancestry.d.ts +6 -6
  17. package/out/ancestry.d.ts.map +1 -1
  18. package/out/ancestry.js +6 -6
  19. package/out/ancestry.js.map +1 -1
  20. package/out/build-candidate-cli.d.ts.map +1 -1
  21. package/out/build-candidate-cli.js.map +1 -1
  22. package/out/build-candidate.d.ts +4 -5
  23. package/out/build-candidate.d.ts.map +1 -1
  24. package/out/build-candidate.js +15 -14
  25. package/out/build-candidate.js.map +1 -1
  26. package/out/build-coincident-roles-cli.d.ts.map +1 -1
  27. package/out/build-coincident-roles-cli.js.map +1 -1
  28. package/out/build-fts-cli.d.ts +1 -1
  29. package/out/build-fts-cli.d.ts.map +1 -1
  30. package/out/build-fts-cli.js +6 -6
  31. package/out/build-fts-cli.js.map +1 -1
  32. package/out/build-slim-cli.d.ts +1 -1
  33. package/out/build-slim-cli.d.ts.map +1 -1
  34. package/out/build-slim-cli.js +3 -3
  35. package/out/build-slim-cli.js.map +1 -1
  36. package/out/build-slim.d.ts +7 -8
  37. package/out/build-slim.d.ts.map +1 -1
  38. package/out/build-slim.js +9 -9
  39. package/out/build-slim.js.map +1 -1
  40. package/out/candidate-fts.d.ts +5 -7
  41. package/out/candidate-fts.d.ts.map +1 -1
  42. package/out/candidate-fts.js +5 -7
  43. package/out/candidate-fts.js.map +1 -1
  44. package/out/candidate-lookup.d.ts +7 -7
  45. package/out/candidate-lookup.d.ts.map +1 -1
  46. package/out/candidate-lookup.js +31 -35
  47. package/out/candidate-lookup.js.map +1 -1
  48. package/out/candidate-schema.d.ts +13 -14
  49. package/out/candidate-schema.d.ts.map +1 -1
  50. package/out/candidate-schema.js +9 -9
  51. package/out/candidate-schema.js.map +1 -1
  52. package/out/coincident-roles.d.ts +9 -11
  53. package/out/coincident-roles.d.ts.map +1 -1
  54. package/out/coincident-roles.js +7 -7
  55. package/out/coincident-roles.js.map +1 -1
  56. package/out/convention.d.ts +30 -35
  57. package/out/convention.d.ts.map +1 -1
  58. package/out/convention.js +19 -21
  59. package/out/convention.js.map +1 -1
  60. package/out/fst-autocomplete.d.ts +5 -5
  61. package/out/fst-autocomplete.d.ts.map +1 -1
  62. package/out/fst-autocomplete.js +12 -13
  63. package/out/fst-autocomplete.js.map +1 -1
  64. package/out/fst-builder.d.ts +7 -7
  65. package/out/fst-builder.d.ts.map +1 -1
  66. package/out/fst-builder.js +9 -9
  67. package/out/fst-builder.js.map +1 -1
  68. package/out/fst-deserialize-web.d.ts +4 -4
  69. package/out/fst-deserialize-web.d.ts.map +1 -1
  70. package/out/fst-deserialize-web.js +4 -4
  71. package/out/fst-deserialize-web.js.map +1 -1
  72. package/out/fst-matcher.d.ts +12 -12
  73. package/out/fst-matcher.d.ts.map +1 -1
  74. package/out/fst-matcher.js +25 -25
  75. package/out/fst-matcher.js.map +1 -1
  76. package/out/fst-serialize.d.ts +5 -5
  77. package/out/fst-serialize.d.ts.map +1 -1
  78. package/out/fst-serialize.js +7 -6
  79. package/out/fst-serialize.js.map +1 -1
  80. package/out/fst-types.d.ts +13 -13
  81. package/out/fts.d.ts +74 -80
  82. package/out/fts.d.ts.map +1 -1
  83. package/out/fts.js +65 -71
  84. package/out/fts.js.map +1 -1
  85. package/out/geo.d.ts +14 -15
  86. package/out/geo.d.ts.map +1 -1
  87. package/out/geo.js +8 -8
  88. package/out/geo.js.map +1 -1
  89. package/out/geonames-aliases.d.ts +18 -9
  90. package/out/geonames-aliases.d.ts.map +1 -1
  91. package/out/geonames-aliases.js +70 -12
  92. package/out/geonames-aliases.js.map +1 -1
  93. package/out/index.d.ts +9 -9
  94. package/out/index.js +7 -7
  95. package/out/interpolation.d.ts +8 -10
  96. package/out/interpolation.d.ts.map +1 -1
  97. package/out/interpolation.js +6 -6
  98. package/out/interpolation.js.map +1 -1
  99. package/out/lookup.d.ts +74 -81
  100. package/out/lookup.d.ts.map +1 -1
  101. package/out/lookup.js +114 -128
  102. package/out/lookup.js.map +1 -1
  103. package/out/postal-city-alias-lookup.d.ts +9 -10
  104. package/out/postal-city-alias-lookup.d.ts.map +1 -1
  105. package/out/postal-city-alias-lookup.js +13 -14
  106. package/out/postal-city-alias-lookup.js.map +1 -1
  107. package/out/postal-city-alias-schema.d.ts +5 -6
  108. package/out/postal-city-alias-schema.d.ts.map +1 -1
  109. package/out/postal-city-alias-schema.js +3 -4
  110. package/out/postal-city-alias-schema.js.map +1 -1
  111. package/out/postal-city-candidate-schema.d.ts +7 -10
  112. package/out/postal-city-candidate-schema.d.ts.map +1 -1
  113. package/out/postal-city-candidate-schema.js +4 -6
  114. package/out/postal-city-candidate-schema.js.map +1 -1
  115. package/out/postcode-point-lookup.d.ts +3 -4
  116. package/out/postcode-point-lookup.d.ts.map +1 -1
  117. package/out/postcode-point-lookup.js +2 -2
  118. package/out/postcode-point-lookup.js.map +1 -1
  119. package/out/reverse.d.ts +26 -29
  120. package/out/reverse.d.ts.map +1 -1
  121. package/out/reverse.js +36 -38
  122. package/out/reverse.js.map +1 -1
  123. package/out/schema.d.ts +32 -33
  124. package/out/schema.d.ts.map +1 -1
  125. package/out/sharding.d.ts +26 -28
  126. package/out/sharding.d.ts.map +1 -1
  127. package/out/sharding.js +16 -16
  128. package/out/sharding.js.map +1 -1
  129. package/out/sqlite-convention-source.d.ts +3 -3
  130. package/out/sqlite-convention-source.d.ts.map +1 -1
  131. package/out/sqlite-convention-source.js +6 -6
  132. package/out/sqlite-convention-source.js.map +1 -1
  133. package/out/sqlite-utils.d.ts +4 -5
  134. package/out/sqlite-utils.d.ts.map +1 -1
  135. package/out/sqlite-utils.js +4 -5
  136. package/out/sqlite-utils.js.map +1 -1
  137. package/out/street-morphology-fst-builder.d.ts +15 -18
  138. package/out/street-morphology-fst-builder.d.ts.map +1 -1
  139. package/out/street-morphology-fst-builder.js +17 -17
  140. package/out/street-morphology-fst-builder.js.map +1 -1
  141. package/out/street-normalize.d.ts +43 -28
  142. package/out/street-normalize.d.ts.map +1 -1
  143. package/out/street-normalize.js +96 -34
  144. package/out/street-normalize.js.map +1 -1
  145. package/out/street-segment-schema.d.ts +5 -5
  146. package/out/street-segment-schema.js +2 -2
  147. package/out/types.d.ts +42 -47
  148. package/out/types.d.ts.map +1 -1
  149. package/out/types.js +1 -1
  150. package/out/unified-schema.d.ts +6 -6
  151. package/out/unified-schema.d.ts.map +1 -1
  152. package/out/unified-schema.js +10 -10
  153. package/out/unified-schema.js.map +1 -1
  154. package/package.json +26 -22
@@ -22,9 +22,9 @@
22
22
  * u8 0..8 _pad u16 nameIdx u32 index into string table importance f32 Wikipedia importance [0,1]
23
23
  * (V2); was population u32 (V1) lat f32 lon f32 chain [u32; 8] parent chain (unused slots = 0)
24
24
  */
25
- import { FstMatcher } from "./fst-matcher.js";
26
- import type { FstProvenance } from "./fst-types.js";
27
- export declare function serializeFst(matcher: FstMatcher, provenance?: FstProvenance): Buffer;
28
- export declare function deserializeFst(buf: Buffer): FstMatcher;
29
- export declare function readFstProvenance(buf: Buffer): FstProvenance | undefined;
25
+ import { FSTMatcher } from "./fst-matcher.js";
26
+ import type { FSTProvenance } from "./fst-types.js";
27
+ export declare function serializeFST(matcher: FSTMatcher, provenance?: FSTProvenance): Buffer;
28
+ export declare function deserializeFST(buf: Buffer): FSTMatcher;
29
+ export declare function readFSTProvenance(buf: Buffer): FSTProvenance | undefined;
30
30
  //# sourceMappingURL=fst-serialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fst-serialize.d.ts","sourceRoot":"","sources":["../fst-serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAA;AA6B5E,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CAmIpF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAgFtD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAcxE"}
1
+ {"version":3,"file":"fst-serialize.d.ts","sourceRoot":"","sources":["../fst-serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAA;AA8B5E,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CA2IpF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAuFtD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAmBxE"}
@@ -22,7 +22,7 @@
22
22
  * u8 0..8 _pad u16 nameIdx u32 index into string table importance f32 Wikipedia importance [0,1]
23
23
  * (V2); was population u32 (V1) lat f32 lon f32 chain [u32; 8] parent chain (unused slots = 0)
24
24
  */
25
- import { FstMatcher } from "./fst-matcher.js";
25
+ import { FSTMatcher } from "./fst-matcher.js";
26
26
  const MAGIC = Buffer.from("FST\0", "ascii");
27
27
  const VERSION = 4;
28
28
  const HEADER_SIZE = 32;
@@ -47,7 +47,7 @@ const placetypeToIdx = new Map();
47
47
  for (let i = 0; i < PLACETYPE_ORDER.length; i++) {
48
48
  placetypeToIdx.set(PLACETYPE_ORDER[i], i);
49
49
  }
50
- export function serializeFst(matcher, provenance) {
50
+ export function serializeFST(matcher, provenance) {
51
51
  const nodes = matcher.toNodes();
52
52
  // --- String interning ---
53
53
  const stringMap = new Map();
@@ -114,7 +114,8 @@ export function serializeFst(matcher, provenance) {
114
114
  strOffset += encodedStrings[i].length;
115
115
  }
116
116
  buf.writeUInt32LE(strOffset, pos);
117
- pos += 4; // sentinel
117
+ pos += 4;
118
+ // sentinel
118
119
  for (const encoded of encodedStrings) {
119
120
  encoded.copy(buf, pos);
120
121
  pos += encoded.length;
@@ -164,7 +165,7 @@ export function serializeFst(matcher, provenance) {
164
165
  }
165
166
  return buf;
166
167
  }
167
- export function deserializeFst(buf) {
168
+ export function deserializeFST(buf) {
168
169
  // --- Header ---
169
170
  if (buf.length < HEADER_SIZE)
170
171
  throw new Error("FST buffer too small for header");
@@ -236,9 +237,9 @@ export function deserializeFst(buf) {
236
237
  }
237
238
  nodes[si] = { edges, places };
238
239
  }
239
- return FstMatcher.fromNodes(nodes);
240
+ return FSTMatcher.fromNodes(nodes);
240
241
  }
241
- export function readFstProvenance(buf) {
242
+ export function readFSTProvenance(buf) {
242
243
  if (buf.length < HEADER_SIZE)
243
244
  return undefined;
244
245
  if (!buf.subarray(0, 4).equals(MAGIC))
@@ -1 +1 @@
1
- {"version":3,"file":"fst-serialize.js","sourceRoot":"","sources":["../fst-serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fst-serialize.js","sourceRoot":"","sources":["../fst-serialize.ts"],"names":[],"mappings":"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"}
@@ -9,31 +9,31 @@
9
9
  */
10
10
  export interface PlaceEntry {
11
11
  wofID: number;
12
- placetype: PlacetypeId;
12
+ placetype: PlacetypeID;
13
13
  name: string;
14
14
  parentChain: number[];
15
15
  importance: number;
16
16
  lat: number;
17
17
  lon: number;
18
18
  }
19
- export type PlacetypeId = "country" | "region" | "county" | "locality" | "localadmin" | "borough" | "neighbourhood" | "postalcode" | "campus" | "dependency" | "street_affix";
20
- export interface FstMatchResult {
21
- stateId: number;
19
+ export type PlacetypeID = "country" | "region" | "county" | "locality" | "localadmin" | "borough" | "neighbourhood" | "postalcode" | "campus" | "dependency" | "street_affix";
20
+ export interface FSTMatchResult {
21
+ stateID: number;
22
22
  accepted: boolean;
23
23
  depth: number;
24
24
  }
25
- export interface FstContinuation {
25
+ export interface FSTContinuation {
26
26
  token: string;
27
27
  targetState: number;
28
28
  acceptingCount: number;
29
29
  }
30
- export interface FstQueryResult {
30
+ export interface FSTQueryResult {
31
31
  path: string[];
32
- stateId: number;
32
+ stateID: number;
33
33
  accepting: PlaceEntry[];
34
- continuations: FstContinuation[];
34
+ continuations: FSTContinuation[];
35
35
  }
36
- export interface FstProvenance {
36
+ export interface FSTProvenance {
37
37
  builtAt: string;
38
38
  countries: string[];
39
39
  stateCount: number;
@@ -41,17 +41,17 @@ export interface FstProvenance {
41
41
  edgeCount: number;
42
42
  nameInsertions: number;
43
43
  importanceMatches: number;
44
- sourceDb?: string;
44
+ sourceDB?: string;
45
45
  modelCardVersion?: string;
46
46
  }
47
- export interface BuildFstOpts {
47
+ export interface BuildFSTOpts {
48
48
  dbPath: string;
49
49
  countries?: string[];
50
- placetypes?: PlacetypeId[];
50
+ placetypes?: PlacetypeID[];
51
51
  languages?: string[];
52
52
  onProgress?: (phase: string, detail?: string) => void;
53
53
  }
54
- export interface BuildFstResult {
54
+ export interface BuildFSTResult {
55
55
  stateCount: number;
56
56
  placeCount: number;
57
57
  edgeCount: number;
package/out/fts.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * FTS5 index lifecycle for the WOF SQLite distribution.
7
7
  *
8
- * Shared by `WofSqlitePlaceLookup` (lazy build via `buildFts: true`) and the operator-side
8
+ * Shared by `WOFSqlitePlaceLookup` (lazy build via `buildFTS: true`) and the operator-side
9
9
  * `mailwoman-wof-build-fts` CLI (ahead-of-time build to avoid first-open latency in production).
10
10
  *
11
11
  * Upstream WOF SQLite distributions do NOT ship FTS5. The index lives in a `place_search` virtual
@@ -15,102 +15,96 @@
15
15
  */
16
16
  import type { DatabaseSync } from "node:sqlite";
17
17
  /**
18
- * Name of the FTS5 virtual table this module owns. Centralized so `WofSqlitePlaceLookup` and the
19
- * CLI can't drift apart.
18
+ * Name of the FTS5 virtual table this module owns. Centralized so `WOFSqlitePlaceLookup` and the CLI can't drift apart.
20
19
  */
21
20
  export declare const PLACE_SEARCH_TABLE = "place_search";
22
21
  /**
23
- * Boundary-preserving separator between aliases in the `alt_names` bag (#523): U+E000, the first
24
- * Private Use Area codepoint, written as an escape so the source stays plain ASCII.
22
+ * Boundary-preserving separator between aliases in the `alt_names` bag (#523): U+E000, the first Private Use Area
23
+ * codepoint, written as an escape so the source stays plain ASCII.
25
24
  *
26
- * Why a PUA codepoint and not punctuation: the goal is to stop a phrase query from matching ACROSS
27
- * two adjacent aliases' concatenation boundary ("York" + "New City" must not phrase-match `"york
28
- * new"`). FTS5 assigns token positions to TOKENS only — separator characters never consume a
29
- * position — so any character the tokenizer treats as a boundary leaves the two aliases' tokens
30
- * adjacent and the false phrase match intact. The separator must therefore be an INDEXED TOKEN that
31
- * sits between the aliases and breaks positional adjacency.
25
+ * Why a PUA codepoint and not punctuation: the goal is to stop a phrase query from matching ACROSS two adjacent
26
+ * aliases' concatenation boundary ("York" + "New City" must not phrase-match `"york new"`). FTS5 assigns token
27
+ * positions to TOKENS only — separator characters never consume a position — so any character the tokenizer treats as a
28
+ * boundary leaves the two aliases' tokens adjacent and the false phrase match intact. The separator must therefore be
29
+ * an INDEXED TOKEN that sits between the aliases and breaks positional adjacency.
32
30
  *
33
- * Empirical probe (node:sqlite, `tokenize = 'unicode61 remove_diacritics 2'` — the exact config
34
- * below). Bag = the aliases "York" and "New City" joined by each candidate separator; query = the
35
- * cross-boundary phrase `MATCH '"york new"'`:
31
+ * Empirical probe (node:sqlite, `tokenize = 'unicode61 remove_diacritics 2'` — the exact config below). Bag = the
32
+ * aliases "York" and "New City" joined by each candidate separator; query = the cross-boundary phrase `MATCH '"york
33
+ * new"'`:
36
34
  *
37
35
  * - `' '` (the pre-#523 join, no separator) — false HIT
38
36
  * - `' ; '` (punctuation) — false HIT
39
37
  * - `' \u2016 '` (double vertical line) — false HIT
40
38
  * - `' \x1F '` (ASCII unit separator) — false HIT
41
- * - `' \uE000 '` (PUA, this constant) — NO match, while `'"york"'` and `'"new city"'` still match the
42
- * bag individually under every variant above.
39
+ * - `' \uE000 '` (PUA, this constant) — NO match, while `'"york"'` and `'"new city"'` still match the bag individually
40
+ * under every variant above.
43
41
  *
44
- * U+E000 works because unicode61 classifies it (category Co — neither space nor punctuation) as a
45
- * token character, so the standalone `\uE000` between aliases is indexed as its own token and the
46
- * aliases' tokens are no longer positionally adjacent. The remaining requirements also hold:
42
+ * U+E000 works because unicode61 classifies it (category Co — neither space nor punctuation) as a token character, so
43
+ * the standalone `\uE000` between aliases is indexed as its own token and the aliases' tokens are no longer
44
+ * positionally adjacent. The remaining requirements also hold:
47
45
  *
48
- * - **Unreachable from queries**: `sanitizeFtsQuery` (Node + WASM resolvers) strips everything
49
- * outside `\p{L}\p{N}` from token bodies, and U+E000 is neither — no user query can ever address
50
- * the separator token. The demo's `sanitizeFts` strips it explicitly.
51
- * - **Never in place names**: PUA codepoints are unassigned by definition; real-world WOF names don't
52
- * carry them. Defensively, the INSERT below also strips any embedded U+E000 from source names so
53
- * a poisoned row can't forge an alias boundary.
54
- * - **Survives GROUP_CONCAT**: verified — `GROUP_CONCAT(name, ' ' || char(57344) || ' ')` emits the
55
- * codepoint intact (`57344` = 0xE000).
56
- * - **Cost**: one extra token per alias boundary in the FTS document. Marginal BM25 length-norm
57
- * impact, on a column whose length stats are already the known #189 problem.
46
+ * - **Unreachable from queries**: `sanitizeFTSQuery` (Node + WASM resolvers) strips everything outside `\p{L}\p{N}` from
47
+ * token bodies, and U+E000 is neither — no user query can ever address the separator token. The demo's `sanitizeFTS`
48
+ * strips it explicitly.
49
+ * - **Never in place names**: PUA codepoints are unassigned by definition; real-world WOF names don't carry them.
50
+ * Defensively, the INSERT below also strips any embedded U+E000 from source names so a poisoned row can't forge an
51
+ * alias boundary.
52
+ * - **Survives GROUP_CONCAT**: verified — `GROUP_CONCAT(name, ' ' || char(57344) || ' ')` emits the codepoint intact
53
+ * (`57344` = 0xE000).
54
+ * - **Cost**: one extra token per alias boundary in the FTS document. Marginal BM25 length-norm impact, on a column whose
55
+ * length stats are already the known #189 problem.
58
56
  *
59
- * Interaction with #189 (split `alt_names` into its own FTS table for independent BM25 length
60
- * stats): the separator SURVIVES that split as proposed — #189 still GROUP_CONCATs all aliases into
61
- * one `place_search_alt` row per place, so both the separator and the bag-parsing exact check
62
- * (`aliasBagExactMatch`) carry over unchanged, just pointed at the new table. Only if #189 were
63
- * instead built as one-row-per-alias would both become moot (per-alias rows give exact equality and
64
- * phrase isolation for free). Sequencing: if #189 lands before the next slim-DB artifact rebuild,
65
- * fold both into ONE rebuild rather than shipping two FTS schema bumps.
57
+ * Interaction with #189 (split `alt_names` into its own FTS table for independent BM25 length stats): the separator
58
+ * SURVIVES that split as proposed — #189 still GROUP_CONCATs all aliases into one `place_search_alt` row per place, so
59
+ * both the separator and the bag-parsing exact check (`aliasBagExactMatch`) carry over unchanged, just pointed at the
60
+ * new table. Only if #189 were instead built as one-row-per-alias would both become moot (per-alias rows give exact
61
+ * equality and phrase isolation for free). Sequencing: if #189 lands before the next slim-DB artifact rebuild, fold
62
+ * both into ONE rebuild rather than shipping two FTS schema bumps.
66
63
  */
67
64
  export declare const ALIAS_SEPARATOR = "\uE000";
68
65
  /**
69
- * Does any alias in an `alt_names` bag exactly equal the (already-normalized) query? The single
70
- * shared implementation of the exact-tier alias check for every consumer of the bag — the Node
71
- * resolver's `#exactMatchIds` fallback, the WASM resolver, and the demo's httpvfs resolver — so the
72
- * bag format and its parsers can't drift.
66
+ * Does any alias in an `alt_names` bag exactly equal the (already-normalized) query? The single shared implementation
67
+ * of the exact-tier alias check for every consumer of the bag — the Node resolver's `#exactMatchIds` fallback, the WASM
68
+ * resolver, and the demo's httpvfs resolver — so the bag format and its parsers can't drift.
73
69
  *
74
70
  * Two formats exist in the wild:
75
71
  *
76
- * - **Separated bags** (built since #523): aliases joined with {@link ALIAS_SEPARATOR}, plus a
77
- * trailing separator so even a single-alias bag self-identifies as separator-formatted. Split +
78
- * per-alias equality — a true exact-alias check, matching the semantics of the full `names` table
79
- * (`names.name = ? COLLATE NOCASE`), so it runs UNGATED: an alias match is an exact match whether
80
- * or not another candidate matched on its canonical name.
81
- * - **Legacy bags** (pre-#523 artifacts, e.g. an already-deployed slim DB): aliases space-joined,
82
- * boundaries lost. Falls back to the historical padded-containment check, gated on
83
- * `anyStrictExact` — ungated containment would false-promote interior fragments ("York" inside
84
- * the alias "New York City") and cross-boundary fragments ("York New" across "…York" + "New…").
85
- * Delete this branch once every shipped artifact carries the separator.
72
+ * - **Separated bags** (built since #523): aliases joined with {@link ALIAS_SEPARATOR}, plus a trailing separator so even
73
+ * a single-alias bag self-identifies as separator-formatted. Split + per-alias equality — a true exact-alias check,
74
+ * matching the semantics of the full `names` table (`names.name = ? COLLATE NOCASE`), so it runs UNGATED: an alias
75
+ * match is an exact match whether or not another candidate matched on its canonical name.
76
+ * - **Legacy bags** (pre-#523 artifacts, e.g. an already-deployed slim DB): aliases space-joined, boundaries lost. Falls
77
+ * back to the historical padded-containment check, gated on `anyStrictExact` — ungated containment would
78
+ * false-promote interior fragments ("York" inside the alias "New York City") and cross-boundary fragments ("York New"
79
+ * across "…York" + "New…"). Delete this branch once every shipped artifact carries the separator.
86
80
  *
87
81
  * @param altNames The `alt_names` bag from `place_search` (null when the row has no aliases).
88
- * @param normalizedQuery The query, pre-normalized: lowercased, trimmed, internal whitespace
89
- * collapsed (every consumer already normalizes this way).
90
- * @param anyStrictExact Whether ANY candidate in the pool already matched strictly (canonical name
91
- * or region abbreviation). Only consulted for legacy bags.
82
+ * @param normalizedQuery The query, pre-normalized: lowercased, trimmed, internal whitespace collapsed (every consumer
83
+ * already normalizes this way).
84
+ * @param anyStrictExact Whether ANY candidate in the pool already matched strictly (canonical name or region
85
+ * abbreviation). Only consulted for legacy bags.
92
86
  */
93
87
  export declare function aliasBagExactMatch(altNames: string | null, normalizedQuery: string, anyStrictExact: boolean): boolean;
94
88
  /**
95
- * Name of the R*Tree virtual table that indexes WOF places' bounding boxes for proximity / bbox
96
- * lookups. Built alongside `place_search` by the CLI and `buildFts: true`. Pure SQLite — no
97
- * extensions needed, the `rtree` virtual-table module ships with the core library.
89
+ * Name of the R*Tree virtual table that indexes WOF places' bounding boxes for proximity / bbox lookups. Built
90
+ * alongside `place_search` by the CLI and `buildFTS: true`. Pure SQLite — no extensions needed, the `rtree`
91
+ * virtual-table module ships with the core library.
98
92
  */
99
93
  export declare const PLACE_BBOX_TABLE = "place_bbox";
100
94
  /**
101
- * Name of the auxiliary table holding `wof:population` per place. Powers the population-weighted
102
- * ranking boost. Sparse — WOF only populates this field for ~15% of localities (and mostly larger
103
- * ones); missing means no boost, never a penalty. Built upstream by `scripts/build-unified-wof.ts`
104
- * at ingest (and copied through by `build-slim`) — this module consumes it, never builds it.
95
+ * Name of the auxiliary table holding `wof:population` per place. Powers the population-weighted ranking boost. Sparse
96
+ * — WOF only populates this field for ~15% of localities (and mostly larger ones); missing means no boost, never a
97
+ * penalty. Built upstream by `scripts/build-unified-wof.ts` at ingest (and copied through by `build-slim`) — this
98
+ * module consumes it, never builds it.
105
99
  *
106
100
  * Schema: `(id INTEGER PRIMARY KEY, population INTEGER NOT NULL)`. Plain table, not virtual.
107
101
  */
108
102
  export declare const PLACE_POPULATION_TABLE = "place_population";
109
103
  /**
110
- * Counters for a single `buildPlaceSearchFts` run. Exposed so callers (CLI, lazy-build) can render
111
- * progress to the user.
104
+ * Counters for a single `buildPlaceSearchFTS` run. Exposed so callers (CLI, lazy-build) can render progress to the
105
+ * user.
112
106
  */
113
- export interface BuildPlaceSearchFtsResult {
107
+ export interface BuildPlaceSearchFTSResult {
114
108
  /** Whether the FTS5 index was created (true) or already existed and was left alone (false). */
115
109
  created: boolean;
116
110
  /** Number of rows in the `place_search` table after the call. */
@@ -122,35 +116,35 @@ export interface BuildPlaceSearchFtsResult {
122
116
  /** Wall-clock duration of the build step, in milliseconds. */
123
117
  durationMs: number;
124
118
  }
125
- export interface BuildPlaceSearchFtsOpts {
119
+ export interface BuildPlaceSearchFTSOpts {
126
120
  /**
127
- * Drop the existing `place_search` AND `place_bbox` tables before building. Default false — if
128
- * either already exists the corresponding build step is skipped. Set true when you want to
129
- * rebuild against an updated `spr` / `names` snapshot.
121
+ * Drop the existing `place_search` AND `place_bbox` tables before building. Default false — if either already exists
122
+ * the corresponding build step is skipped. Set true when you want to rebuild against an updated `spr` / `names`
123
+ * snapshot.
130
124
  */
131
125
  drop?: boolean;
132
126
  /**
133
- * Optional progress callback invoked after each phase. Useful for CLI output on the planet-scale
134
- * builds where the INSERT step can take minutes.
127
+ * Optional progress callback invoked after each phase. Useful for CLI output on the planet-scale builds where the
128
+ * INSERT step can take minutes.
135
129
  */
136
130
  onProgress?: (phase: "checking" | "dropping" | "creating" | "populating" | "creating-bbox" | "populating-bbox" | "done", detail?: string) => void;
137
131
  }
138
132
  /**
139
- * Build (or rebuild, with `drop: true`) the `place_search` FTS5 virtual table AND the `place_bbox`
140
- * R*Tree virtual table from the existing `spr` + `names` tables in a WOF SQLite distribution.
133
+ * Build (or rebuild, with `drop: true`) the `place_search` FTS5 virtual table AND the `place_bbox` R*Tree virtual table
134
+ * from the existing `spr` + `names` tables in a WOF SQLite distribution.
141
135
  *
142
- * The FTS5 index is used for name-based MATCH queries; the R*Tree is used for bbox + proximity
143
- * filtering. Both are pure SQLite — no extensions required.
136
+ * The FTS5 index is used for name-based MATCH queries; the R*Tree is used for bbox + proximity filtering. Both are pure
137
+ * SQLite — no extensions required.
144
138
  *
145
- * Returns a `BuildPlaceSearchFtsResult` summary. Idempotent when `drop: false` — re-running against
146
- * an already-indexed DB skips whichever indexes already exist.
139
+ * Returns a `BuildPlaceSearchFTSResult` summary. Idempotent when `drop: false` — re-running against an already-indexed
140
+ * DB skips whichever indexes already exist.
147
141
  */
148
- export declare function buildPlaceSearchFts(db: DatabaseSync, opts?: BuildPlaceSearchFtsOpts): BuildPlaceSearchFtsResult;
142
+ export declare function buildPlaceSearchFTS(db: DatabaseSync, opts?: BuildPlaceSearchFTSOpts): BuildPlaceSearchFTSResult;
149
143
  /**
150
- * Returns true iff the `place_search` table exists in the connected DB. Used by
151
- * `WofSqlitePlaceLookup` for its "FTS missing — pass buildFts:true or run the CLI" guard.
144
+ * Returns true iff the `place_search` table exists in the connected DB. Used by `WOFSqlitePlaceLookup` for its "FTS
145
+ * missing — pass buildFTS:true or run the CLI" guard.
152
146
  */
153
- export declare function placeSearchFtsExists(db: DatabaseSync): boolean;
147
+ export declare function placeSearchFTSExists(db: DatabaseSync): boolean;
154
148
  /** Returns true iff the `place_bbox` R*Tree table exists. Used for opt-in proximity lookup checks. */
155
149
  export declare function placeBboxExists(db: DatabaseSync): boolean;
156
150
  /** Returns true iff the `place_population` table exists. Used for opt-in population-ranking checks. */
package/out/fts.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fts.d.ts","sourceRoot":"","sources":["../fts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,eAAe,WAAW,CAAA;AAKvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAQrH;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,qBAAqB,CAAA;AAExD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACzC,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAA;IAChB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAA;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,CACZ,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,MAAM,EACzG,MAAM,CAAC,EAAE,MAAM,KACX,IAAI,CAAA;CACT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,GAAE,uBAA4B,GAAG,yBAAyB,CAuHnH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAEzD;AAED,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAE/D"}
1
+ {"version":3,"file":"fts.d.ts","sourceRoot":"","sources":["../fts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,eAAe,WAAW,CAAA;AAKvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAWrH;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,qBAAqB,CAAA;AAExD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACzC,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAA;IAChB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAA;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,CACZ,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,MAAM,EACzG,MAAM,CAAC,EAAE,MAAM,KACX,IAAI,CAAA;CACT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,GAAE,uBAA4B,GAAG,yBAAyB,CA4HnH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAEzD;AAED,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAE/D"}