@mailwoman/resolver-wof-sqlite 10.7.0 → 11.0.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 (189) hide show
  1. package/lib/address/point/interpolation.ts +4 -4
  2. package/lib/address/point/spine-schema.ts +59 -0
  3. package/lib/address/point.ts +44 -1
  4. package/lib/ancestry/backfill.ts +3 -25
  5. package/lib/build/candidate.ts +22 -5
  6. package/lib/build/slim.ts +0 -19
  7. package/lib/candidate/alias-bags.ts +32 -14
  8. package/lib/candidate/bare-admin-names.ts +54 -0
  9. package/lib/candidate/importance.ts +2 -2
  10. package/lib/candidate/lookup.ts +63 -30
  11. package/lib/candidate/own-name.ts +1 -5
  12. package/lib/candidate/scoring.ts +4 -4
  13. package/lib/capitals.ts +2 -2
  14. package/lib/currency-backfill.ts +4 -4
  15. package/lib/fst/autocomplete.ts +1 -1
  16. package/lib/fst/binary-matcher.ts +379 -0
  17. package/lib/fst/builder.ts +1 -1
  18. package/lib/fst/deserialize-web.ts +14 -143
  19. package/lib/fst/matcher.ts +3 -3
  20. package/lib/fst/serialize.ts +1 -1
  21. package/lib/fst.ts +1 -0
  22. package/lib/geonames/aliases.ts +2 -2
  23. package/lib/index.ts +0 -1
  24. package/lib/interpolation.ts +3 -2
  25. package/lib/landmark/rows.ts +91 -0
  26. package/lib/landmark.ts +94 -0
  27. package/lib/lookup.ts +7 -27
  28. package/lib/nsul/lookup.ts +2 -1
  29. package/lib/nsul/schema.ts +2 -8
  30. package/lib/place-importance-schema.ts +1 -1
  31. package/lib/poi/lookup.ts +14 -14
  32. package/lib/primary-preference.ts +13 -20
  33. package/lib/proximity-rerank.ts +2 -2
  34. package/lib/reverse.ts +8 -5
  35. package/lib/schema.ts +0 -18
  36. package/lib/search-fetch.ts +3 -3
  37. package/lib/sqlite/convention-source.ts +1 -1
  38. package/lib/street/centroid.ts +2 -2
  39. package/lib/street/morphology/fst/builder.ts +3 -3
  40. package/lib/street/morphology/fst/loader.ts +3 -3
  41. package/lib/street/normalize.ts +150 -1
  42. package/lib/types.ts +15 -2
  43. package/lib/uprn/existence.ts +0 -1
  44. package/lib/uprn/lookup.ts +5 -5
  45. package/lib/uprn/schema.ts +3 -4
  46. package/lib/weights-overlay-linker.ts +4 -4
  47. package/out/address/point/interpolation.js +4 -4
  48. package/out/address/point/interpolation.js.map +1 -1
  49. package/out/address/point/spine-schema.d.ts +40 -0
  50. package/out/address/point/spine-schema.d.ts.map +1 -0
  51. package/out/address/point/spine-schema.js +40 -0
  52. package/out/address/point/spine-schema.js.map +1 -0
  53. package/out/address/point.d.ts.map +1 -1
  54. package/out/address/point.js +36 -1
  55. package/out/address/point.js.map +1 -1
  56. package/out/ancestry/backfill.d.ts.map +1 -1
  57. package/out/ancestry/backfill.js +3 -22
  58. package/out/ancestry/backfill.js.map +1 -1
  59. package/out/build/candidate.d.ts.map +1 -1
  60. package/out/build/candidate.js +17 -5
  61. package/out/build/candidate.js.map +1 -1
  62. package/out/build/slim.d.ts +1 -1
  63. package/out/build/slim.d.ts.map +1 -1
  64. package/out/build/slim.js +0 -12
  65. package/out/build/slim.js.map +1 -1
  66. package/out/candidate/alias-bags.d.ts +8 -0
  67. package/out/candidate/alias-bags.d.ts.map +1 -1
  68. package/out/candidate/alias-bags.js +20 -11
  69. package/out/candidate/alias-bags.js.map +1 -1
  70. package/out/candidate/bare-admin-names.d.ts +26 -0
  71. package/out/candidate/bare-admin-names.d.ts.map +1 -0
  72. package/out/candidate/bare-admin-names.js +38 -0
  73. package/out/candidate/bare-admin-names.js.map +1 -0
  74. package/out/candidate/importance.js +2 -2
  75. package/out/candidate/importance.js.map +1 -1
  76. package/out/candidate/lookup.d.ts.map +1 -1
  77. package/out/candidate/lookup.js +43 -23
  78. package/out/candidate/lookup.js.map +1 -1
  79. package/out/candidate/own-name.d.ts.map +1 -1
  80. package/out/candidate/own-name.js +1 -5
  81. package/out/candidate/own-name.js.map +1 -1
  82. package/out/candidate/scoring.js +4 -4
  83. package/out/candidate/scoring.js.map +1 -1
  84. package/out/capitals.js +2 -2
  85. package/out/capitals.js.map +1 -1
  86. package/out/currency-backfill.js +4 -4
  87. package/out/currency-backfill.js.map +1 -1
  88. package/out/env.d.ts +3 -0
  89. package/out/env.d.ts.map +1 -1
  90. package/out/fst/autocomplete.js +1 -1
  91. package/out/fst/autocomplete.js.map +1 -1
  92. package/out/fst/binary-matcher.d.ts +34 -0
  93. package/out/fst/binary-matcher.d.ts.map +1 -0
  94. package/out/fst/binary-matcher.js +294 -0
  95. package/out/fst/binary-matcher.js.map +1 -0
  96. package/out/fst/builder.js +1 -1
  97. package/out/fst/builder.js.map +1 -1
  98. package/out/fst/deserialize-web.d.ts +11 -6
  99. package/out/fst/deserialize-web.d.ts.map +1 -1
  100. package/out/fst/deserialize-web.js +12 -94
  101. package/out/fst/deserialize-web.js.map +1 -1
  102. package/out/fst/matcher.js +3 -3
  103. package/out/fst/matcher.js.map +1 -1
  104. package/out/fst/serialize.js +1 -1
  105. package/out/fst/serialize.js.map +1 -1
  106. package/out/fst.d.ts +1 -0
  107. package/out/fst.d.ts.map +1 -1
  108. package/out/fst.js +1 -0
  109. package/out/fst.js.map +1 -1
  110. package/out/geonames/aliases.js +2 -2
  111. package/out/geonames/aliases.js.map +1 -1
  112. package/out/index.d.ts +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.map +1 -1
  116. package/out/interpolation.js +3 -2
  117. package/out/interpolation.js.map +1 -1
  118. package/out/landmark/rows.d.ts +63 -0
  119. package/out/landmark/rows.d.ts.map +1 -0
  120. package/out/landmark/rows.js +48 -0
  121. package/out/landmark/rows.js.map +1 -0
  122. package/out/landmark.d.ts +40 -0
  123. package/out/landmark.d.ts.map +1 -0
  124. package/out/landmark.js +78 -0
  125. package/out/landmark.js.map +1 -0
  126. package/out/lookup.d.ts +3 -7
  127. package/out/lookup.d.ts.map +1 -1
  128. package/out/lookup.js +4 -21
  129. package/out/lookup.js.map +1 -1
  130. package/out/nsul/lookup.d.ts +1 -1
  131. package/out/nsul/lookup.d.ts.map +1 -1
  132. package/out/nsul/lookup.js +1 -1
  133. package/out/nsul/lookup.js.map +1 -1
  134. package/out/nsul/schema.d.ts +2 -5
  135. package/out/nsul/schema.d.ts.map +1 -1
  136. package/out/nsul/schema.js +2 -7
  137. package/out/nsul/schema.js.map +1 -1
  138. package/out/place-importance-schema.js +1 -1
  139. package/out/place-importance-schema.js.map +1 -1
  140. package/out/poi/lookup.d.ts +3 -3
  141. package/out/poi/lookup.d.ts.map +1 -1
  142. package/out/poi/lookup.js +9 -9
  143. package/out/poi/lookup.js.map +1 -1
  144. package/out/primary-preference.d.ts +10 -10
  145. package/out/primary-preference.d.ts.map +1 -1
  146. package/out/primary-preference.js +8 -9
  147. package/out/primary-preference.js.map +1 -1
  148. package/out/proximity-rerank.js +2 -2
  149. package/out/proximity-rerank.js.map +1 -1
  150. package/out/reverse.d.ts.map +1 -1
  151. package/out/reverse.js +7 -5
  152. package/out/reverse.js.map +1 -1
  153. package/out/schema.d.ts +0 -17
  154. package/out/schema.d.ts.map +1 -1
  155. package/out/search-fetch.js +3 -3
  156. package/out/search-fetch.js.map +1 -1
  157. package/out/sqlite/convention-source.js +1 -1
  158. package/out/sqlite/convention-source.js.map +1 -1
  159. package/out/street/centroid.js +2 -2
  160. package/out/street/centroid.js.map +1 -1
  161. package/out/street/morphology/fst/builder.d.ts +2 -2
  162. package/out/street/morphology/fst/builder.js +2 -2
  163. package/out/street/morphology/fst/builder.js.map +1 -1
  164. package/out/street/morphology/fst/loader.d.ts +2 -2
  165. package/out/street/morphology/fst/loader.js +2 -2
  166. package/out/street/morphology/fst/loader.js.map +1 -1
  167. package/out/street/normalize.d.ts +23 -0
  168. package/out/street/normalize.d.ts.map +1 -1
  169. package/out/street/normalize.js +126 -1
  170. package/out/street/normalize.js.map +1 -1
  171. package/out/types.d.ts +13 -2
  172. package/out/types.d.ts.map +1 -1
  173. package/out/uprn/existence.d.ts.map +1 -1
  174. package/out/uprn/existence.js.map +1 -1
  175. package/out/uprn/lookup.d.ts.map +1 -1
  176. package/out/uprn/lookup.js +3 -3
  177. package/out/uprn/lookup.js.map +1 -1
  178. package/out/uprn/schema.d.ts +1 -1
  179. package/out/uprn/schema.d.ts.map +1 -1
  180. package/out/uprn/schema.js +1 -1
  181. package/out/uprn/schema.js.map +1 -1
  182. package/out/weights-overlay-linker.js +4 -4
  183. package/out/weights-overlay-linker.js.map +1 -1
  184. package/package.json +16 -13
  185. package/lib/coincident-roles.ts +0 -347
  186. package/out/coincident-roles.d.ts +0 -121
  187. package/out/coincident-roles.d.ts.map +0 -1
  188. package/out/coincident-roles.js +0 -222
  189. package/out/coincident-roles.js.map +0 -1
@@ -0,0 +1,294 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * An FST matcher that answers from the serialized binary in place.
7
+ *
8
+ * {@link FSTMatcher} holds one `Map` per state and one object per place entry. For a national gazetteer those
9
+ * objects take several times the size of the file. This matcher keeps the file's bytes and two typed-array hash tables: one from
10
+ * an edge token to its string index, and one from a (state, string index) pair to the edge's target state. Place
11
+ * entries are decoded when a query reaches their state.
12
+ */
13
+ import { hashFNV1a } from "@mailwoman/core/coarse-placer/fnv-hash";
14
+ import { EDGE_ENTRY_SIZE, ENCYCLOPEDIC_OFFSET, FST_FORMAT_VERSION, FST_MAGIC_BYTES, HEADER_SIZE, LEGACY_PLACE_ENTRY_SIZE, NARROW_STATE_ENTRY_SIZE, PLACE_FLAG_HAS_ENCYCLOPEDIC, PLACETYPE_ORDER, SPLIT_PLACE_ENTRY_SIZE, VERSION_TWO_SCORE_SPLIT, VERSION_WIDE_STATE_COUNTERS, WIDE_STATE_ENTRY_SIZE, } from "#fst/format";
15
+ import { normalizeTokens } from "#fst/matcher";
16
+ const EMPTY_SLOT = -1;
17
+ /**
18
+ * Returns the smallest power of two at least twice `count`, so each open-addressing
19
+ * table stays at most half full.
20
+ */
21
+ function tableCapacity(count) {
22
+ let capacity = 16;
23
+ while (capacity < count * 2) {
24
+ capacity *= 2;
25
+ }
26
+ return capacity;
27
+ }
28
+ /**
29
+ * Mixes a state and a string index into one 32-bit hash.
30
+ */
31
+ function edgeHash(stateID, stringIndex) {
32
+ let h = Math.imul(stateID ^ 0x9e_37_79_b9, 0x85_eb_ca_6b) ^ Math.imul(stringIndex ^ 0xc2_b2_ae_35, 0x27_d4_eb_2f);
33
+ h ^= h >>> 15;
34
+ return Math.imul(h, 0x2c_1b_3c_6d) >>> 0;
35
+ }
36
+ /**
37
+ * Reads an FST binary in the format `serializeFST` writes, versions 1 through
38
+ * {@link FST_FORMAT_VERSION}, without decoding it into objects.
39
+ */
40
+ export class BinaryFSTMatcher {
41
+ stateCount;
42
+ #view;
43
+ #bytes;
44
+ #decoder = new TextDecoder("utf-8");
45
+ #version;
46
+ #isWide;
47
+ #isSplit;
48
+ #hasAmbiguity;
49
+ #stateEntrySize;
50
+ #placeEntrySize;
51
+ #stringDataStart;
52
+ #stateTableStart;
53
+ #edgeTableStart;
54
+ #placeTableStart;
55
+ #stringOffsets;
56
+ #tokenSlots;
57
+ #edgeSlotState;
58
+ #edgeSlotString;
59
+ #edgeSlotTarget;
60
+ #placeCount = null;
61
+ constructor(input) {
62
+ const bytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;
63
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
64
+ if (bytes.byteLength < HEADER_SIZE)
65
+ throw new Error("FST buffer too small for header");
66
+ if (FST_MAGIC_BYTES.some((byte, index) => bytes[index] !== byte)) {
67
+ throw new Error("FST magic mismatch");
68
+ }
69
+ const version = view.getUint16(4, true);
70
+ if (version < 1 || version > FST_FORMAT_VERSION) {
71
+ throw new Error(`FST version ${version} unsupported (expected 1..${FST_FORMAT_VERSION})`);
72
+ }
73
+ this.#bytes = bytes;
74
+ this.#view = view;
75
+ this.#version = version;
76
+ this.#isWide = version >= VERSION_WIDE_STATE_COUNTERS;
77
+ this.#isSplit = version >= VERSION_TWO_SCORE_SPLIT;
78
+ // Flags bit 0, as `serializeFST` writes it: place rows include surface-ambiguity data.
79
+ this.#hasAmbiguity = (view.getUint16(6, true) & 1) === 1;
80
+ this.#stateEntrySize = this.#isWide ? WIDE_STATE_ENTRY_SIZE : NARROW_STATE_ENTRY_SIZE;
81
+ // Version 5 grew the place entry by the encyclopedic float.
82
+ this.#placeEntrySize = this.#isSplit ? SPLIT_PLACE_ENTRY_SIZE : LEGACY_PLACE_ENTRY_SIZE;
83
+ const stateCount = view.getUint32(8, true);
84
+ const edgeCount = view.getUint32(12, true);
85
+ const stringCount = view.getUint32(20, true);
86
+ const stringBytes = view.getUint32(24, true);
87
+ this.stateCount = stateCount;
88
+ this.#stringOffsets = new Uint32Array(stringCount + 1);
89
+ for (let index = 0; index <= stringCount; index++) {
90
+ this.#stringOffsets[index] = view.getUint32(HEADER_SIZE + index * 4, true);
91
+ }
92
+ this.#stringDataStart = HEADER_SIZE + (stringCount + 1) * 4;
93
+ this.#stateTableStart = this.#stringDataStart + stringBytes;
94
+ this.#edgeTableStart = this.#stateTableStart + stateCount * this.#stateEntrySize;
95
+ this.#placeTableStart = this.#edgeTableStart + edgeCount * EDGE_ENTRY_SIZE;
96
+ this.#tokenSlots = new Int32Array(tableCapacity(stringCount)).fill(EMPTY_SLOT);
97
+ const edgeCapacity = tableCapacity(edgeCount);
98
+ this.#edgeSlotState = new Int32Array(edgeCapacity).fill(EMPTY_SLOT);
99
+ this.#edgeSlotString = new Uint32Array(edgeCapacity);
100
+ this.#edgeSlotTarget = new Uint32Array(edgeCapacity);
101
+ const indexedTokens = new Uint8Array(stringCount);
102
+ for (let stateID = 0; stateID < stateCount; stateID++) {
103
+ const { edgeStart, edgeCount: stateEdgeCount } = this.#stateEntry(stateID);
104
+ for (let edge = 0; edge < stateEdgeCount; edge++) {
105
+ const entry = this.#edgeTableStart + (edgeStart + edge) * EDGE_ENTRY_SIZE;
106
+ const stringIndex = view.getUint32(entry, true);
107
+ if (!indexedTokens[stringIndex]) {
108
+ indexedTokens[stringIndex] = 1;
109
+ this.#indexToken(stringIndex);
110
+ }
111
+ this.#indexEdge(stateID, stringIndex, view.getUint32(entry + 4, true));
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * The number of place entries over all states.
117
+ */
118
+ get placeCount() {
119
+ if (this.#placeCount === null) {
120
+ let count = 0;
121
+ for (let stateID = 0; stateID < this.stateCount; stateID++) {
122
+ count += this.#stateEntry(stateID).placeCount;
123
+ }
124
+ this.#placeCount = count;
125
+ }
126
+ return this.#placeCount;
127
+ }
128
+ get nodeCount() {
129
+ return this.stateCount;
130
+ }
131
+ walk(tokens) {
132
+ let stateID = 0;
133
+ for (const token of tokens) {
134
+ if (stateID >= this.stateCount)
135
+ return null;
136
+ const next = this.#target(stateID, token);
137
+ // No edge enters the root.
138
+ // A target of 0 therefore marks a missing edge.
139
+ if (!next)
140
+ return null;
141
+ stateID = next;
142
+ }
143
+ return { stateID, accepted: this.#stateEntry(stateID).placeCount > 0, depth: tokens.length };
144
+ }
145
+ walkFrom(prev, token) {
146
+ if (prev.stateID >= this.stateCount)
147
+ return null;
148
+ const next = this.#target(prev.stateID, token);
149
+ if (!next)
150
+ return null;
151
+ return { stateID: next, accepted: this.#stateEntry(next).placeCount > 0, depth: prev.depth + 1 };
152
+ }
153
+ accepting(stateID) {
154
+ if (stateID < 0 || stateID >= this.stateCount)
155
+ return [];
156
+ const { placeStart, placeCount } = this.#stateEntry(stateID);
157
+ const places = new Array(placeCount);
158
+ for (let index = 0; index < placeCount; index++) {
159
+ places[index] = this.#placeAt(placeStart + index);
160
+ }
161
+ return places;
162
+ }
163
+ continuations(stateID) {
164
+ if (stateID < 0 || stateID >= this.stateCount)
165
+ return [];
166
+ const { edgeStart, edgeCount } = this.#stateEntry(stateID);
167
+ const result = [];
168
+ for (let edge = 0; edge < edgeCount; edge++) {
169
+ const entry = this.#edgeTableStart + (edgeStart + edge) * EDGE_ENTRY_SIZE;
170
+ const targetState = this.#view.getUint32(entry + 4, true);
171
+ result.push({
172
+ token: this.#string(this.#view.getUint32(entry, true)),
173
+ targetState,
174
+ acceptingCount: this.#stateEntry(targetState).placeCount,
175
+ });
176
+ }
177
+ return result;
178
+ }
179
+ query(text) {
180
+ const tokens = normalizeTokens(text);
181
+ let stateID = 0;
182
+ let depth = 0;
183
+ for (const token of tokens) {
184
+ const next = this.#target(stateID, token);
185
+ if (!next)
186
+ break;
187
+ stateID = next;
188
+ depth++;
189
+ }
190
+ return {
191
+ path: tokens.slice(0, depth),
192
+ stateID,
193
+ accepting: this.accepting(stateID),
194
+ continuations: this.continuations(stateID),
195
+ };
196
+ }
197
+ #stateEntry(stateID) {
198
+ const entry = this.#stateTableStart + stateID * this.#stateEntrySize;
199
+ const view = this.#view;
200
+ return {
201
+ edgeStart: view.getUint32(entry, true),
202
+ placeStart: view.getUint32(entry + 4, true),
203
+ edgeCount: this.#isWide ? view.getUint32(entry + 8, true) : view.getUint16(entry + 8, true),
204
+ placeCount: this.#isWide ? view.getUint32(entry + 12, true) : view.getUint16(entry + 10, true),
205
+ };
206
+ }
207
+ #string(stringIndex) {
208
+ const start = this.#stringDataStart + this.#stringOffsets[stringIndex];
209
+ const end = this.#stringDataStart + this.#stringOffsets[stringIndex + 1];
210
+ return this.#decoder.decode(this.#bytes.subarray(start, end));
211
+ }
212
+ #indexToken(stringIndex) {
213
+ const mask = this.#tokenSlots.length - 1;
214
+ let slot = hashFNV1a(this.#string(stringIndex)) & mask;
215
+ while (this.#tokenSlots[slot] !== EMPTY_SLOT) {
216
+ slot = (slot + 1) & mask;
217
+ }
218
+ this.#tokenSlots[slot] = stringIndex;
219
+ }
220
+ /**
221
+ * Returns the string index of `token` among the edge tokens, or -1 when no edge has that token.
222
+ */
223
+ #tokenIndex(token) {
224
+ const mask = this.#tokenSlots.length - 1;
225
+ let slot = hashFNV1a(token) & mask;
226
+ for (;;) {
227
+ const stringIndex = this.#tokenSlots[slot];
228
+ if (stringIndex === EMPTY_SLOT)
229
+ return -1;
230
+ if (this.#string(stringIndex) === token)
231
+ return stringIndex;
232
+ slot = (slot + 1) & mask;
233
+ }
234
+ }
235
+ #indexEdge(stateID, stringIndex, target) {
236
+ const mask = this.#edgeSlotState.length - 1;
237
+ let slot = edgeHash(stateID, stringIndex) & mask;
238
+ for (;;) {
239
+ const occupant = this.#edgeSlotState[slot];
240
+ if (occupant === EMPTY_SLOT || (occupant === stateID && this.#edgeSlotString[slot] === stringIndex))
241
+ break;
242
+ slot = (slot + 1) & mask;
243
+ }
244
+ // A repeated (state, token) pair keeps its last target, as `Map.set` does in the object deserializer.
245
+ this.#edgeSlotState[slot] = stateID;
246
+ this.#edgeSlotString[slot] = stringIndex;
247
+ this.#edgeSlotTarget[slot] = target;
248
+ }
249
+ /**
250
+ * Returns the state the edge labeled `token` leads to from `stateID`, or 0 when there is no such edge.
251
+ */
252
+ #target(stateID, token) {
253
+ const stringIndex = this.#tokenIndex(token);
254
+ if (stringIndex < 0)
255
+ return 0;
256
+ const mask = this.#edgeSlotState.length - 1;
257
+ let slot = edgeHash(stateID, stringIndex) & mask;
258
+ for (;;) {
259
+ const occupant = this.#edgeSlotState[slot];
260
+ if (occupant === EMPTY_SLOT)
261
+ return 0;
262
+ if (occupant === stateID && this.#edgeSlotString[slot] === stringIndex)
263
+ return this.#edgeSlotTarget[slot];
264
+ slot = (slot + 1) & mask;
265
+ }
266
+ }
267
+ #placeAt(placeIndex) {
268
+ const view = this.#view;
269
+ const entry = this.#placeTableStart + placeIndex * this.#placeEntrySize;
270
+ const chainLength = view.getUint8(entry + 5);
271
+ const parentChain = new Array(chainLength);
272
+ for (let index = 0; index < chainLength; index++) {
273
+ parentChain[index] = view.getUint32(entry + 24 + index * 4, true);
274
+ }
275
+ // Version 1 stored a raw population u32 here, and later versions store the referential score.
276
+ // `deserializeFST` explains why a version 1 value converts to the referential score this way.
277
+ const referential = this.#version >= 2
278
+ ? view.getFloat32(entry + 12, true)
279
+ : Math.min(1, Math.log2(1 + view.getUint32(entry + 12, true) / 1000) / 14);
280
+ const hasEncyclopedic = this.#isSplit && (view.getUint8(entry + 7) & PLACE_FLAG_HAS_ENCYCLOPEDIC) === PLACE_FLAG_HAS_ENCYCLOPEDIC;
281
+ return {
282
+ wofID: view.getUint32(entry, true),
283
+ placetype: PLACETYPE_ORDER[view.getUint8(entry + 4)] ?? "locality",
284
+ name: this.#string(view.getUint32(entry + 8, true)),
285
+ referential,
286
+ lat: view.getFloat32(entry + 16, true),
287
+ lon: view.getFloat32(entry + 20, true),
288
+ parentChain,
289
+ crossCountryBranches: this.#hasAmbiguity ? view.getUint8(entry + 6) : null,
290
+ encyclopedic: hasEncyclopedic ? view.getFloat32(entry + ENCYCLOPEDIC_OFFSET, true) : null,
291
+ };
292
+ }
293
+ }
294
+ //# sourceMappingURL=binary-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-matcher.js","sourceRoot":"","sources":["../../lib/fst/binary-matcher.ts"],"names":[],"mappings":"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"}
@@ -181,7 +181,7 @@ export async function buildFSTFromWOF(opts) {
181
181
  for (const t of tokens) {
182
182
  const node = nodes[stateID];
183
183
  let next = node.edges.get(t);
184
- if (next === undefined) {
184
+ if (!next) {
185
185
  next = nodes.length;
186
186
  nodes.push({ edges: new Map(), places: [] });
187
187
  node.edges.set(t, next);
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../lib/fst/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAG9D,MAAM,kBAAkB,GAAkB;IACzC,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,eAAe;CACf,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAA;AAChC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACrC;;;;;GAKG;AACH,MAAM,cAAc,GAAG,GAAG,CAAA;AAkB1B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAkB;IAKvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAA;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAA;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAA;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,IAAI,cAAc,CAAc,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAElE,QAAQ,CAAC,KAAK,EAAE,iCAAiC,SAAS,kBAAkB,UAAU,GAAG,CAAC,CAAA;IAC1F,MAAM,YAAY,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEpE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACzB;;;uBAGqB,YAAY,CAAC,SAAS,CAAC;yBACrB,YAAY,CAAC,UAAU,CAAC,GAAG,CAClD,CAAA;IAED,MAAM,OAAO,GAAG,OAAO,CAAS,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,UAAU,OAAO,CAAC,MAAM,SAAS,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,+FAA+F;IAC/F,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAA;IAEjH,sEAAsE;IACtE,yCAAyC;IACzC,2EAA2E;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEjD,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAElF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAA;YAEpD,MAAM,IAAI,GAAG,OAAO,CACnB,EAAE,CAAC,OAAO,CACT;qBACgB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;UAKzC,CACL,EACD,GAAG,KAAK,CACR,CAAA;YAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAErC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;gBACxC,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC5B,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,QAAQ,CAAC,WAAW,EAAE,oEAAoE,CAAC,CAAA;IAC5F,CAAC;IAED,SAAS,kBAAkB,CAAC,EAAU;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE3B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QAEnB,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,OAAO,GAAG,GAAG,CAAC,SAAS,CAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QAElC,OAAO,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,MAAM,CAAS,UAAU,EAAE,OAAO,CAAC,CAAA;gBAEnD,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACnB,SAAS,GAAG,OAAO,CAAA;gBACnB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAChC,CAAC;YAED,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAChE,OAAO,GAAG,SAAS,CAAC,SAAS,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACP,MAAK;YACN,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,0CAA0C;IAC1C,2EAA2E;IAC3E,uFAAuF;IACvF,oFAAoF;IACpF,6FAA6F;IAC7F,6DAA6D;IAC7D,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,2CAA2C,CAAC,CAAA;IACnE,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAErC,QAAQ,CACP,YAAY,EACZ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,iBAAiB,KAAK,CAAC,YAAY,CAAC,IAAI,0BAA0B,KAAK,CAAC,MAAM,EAAE;QACxG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,kBAAkB,gDAAgD,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CACJ,CAAA;IAED,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEhD,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;QACxC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErD,MAAM,QAAQ,GAAG,YAAY;YAC5B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iEAAiE,cAAc,GAAG,CAAC;YAChG,CAAC,CAAC,EAAE,CAAC,OAAO,CACV,iEAAiE,cAAc,sBAAsB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC1I,CAAA;QAEH,MAAM,QAAQ,GAAG,YAAY;YAC5B,CAAC,CAAC,OAAO,CAAU,QAAQ,EAAE,GAAG,KAAK,CAAC;YACtC,CAAC,CAAC,OAAO,CAAU,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC,CAAA;QAErD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;YAE/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,OAAO,EAAE,oBAAoB,YAAY,CAAC,IAAI,SAAS,CAAC,CAAA;IAEjE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACjC,MAAM,KAAK,GAAc,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;IAE3D,kEAAkE;IAClE,gDAAgD;IAChD,mFAAmF;IACnF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAA;IAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAA;IAClD,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,SAAS,YAAY,CAAC,MAAgB;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEhC,IAAI,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAEvD,IAAI,kBAAkB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAErF,OAAO,KAAK,CAAA;IACb,CAAC;IAED,+EAA+E;IAC/E,6CAA6C;IAC7C,sGAAsG;IACtG,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAA;IAEtD,SAAS,UAAU,CAAC,MAAgB,EAAE,KAAiB;QACtD,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEhC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,aAAa,EAAE,CAAA;YAEf,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAE,CAAA;YAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAE5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;gBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACxB,CAAC;YAED,OAAO,GAAG,IAAI,CAAA;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAE,CAAC,MAAM,CAAA;QAEvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACvF,IAAI,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YAC7E,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE9C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEnD,MAAM,KAAK,GAAe;YACzB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,SAAS,EAAE,GAAG,CAAC,SAAwB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW;YACX,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,kEAAkE;YAClE,4DAA4D;YAC5D,YAAY,EAAE,YAAY,IAAI,IAAI;YAClC,GAAG,EAAE,GAAG,CAAC,QAAQ;YACjB,GAAG,EAAE,GAAG,CAAC,SAAS;YAClB,oBAAoB,EAAE,IAAI;SAC1B,CAAA;QAED,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE/C,IAAI,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;YACtC,WAAW,EAAE,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAE/C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI;gBAAE,SAAQ;YAClC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YAE1C,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzG,WAAW,EAAE,CAAA;YACd,CAAC;QACF,CAAC;IACF,CAAC;IAED,QAAQ,CACP,MAAM,EACN,eAAe,KAAK,CAAC,MAAM,YAAY,WAAW,kBAAkB;QACnE,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9E,CAAA;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAE3C,mBAAmB;IACnB,uFAAuF;IACvF,+EAA+E;IAC/E,mDAAmD;IACnD,+EAA+E;IAC/E,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,+BAA+B,MAAM,EAAE,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3E,MAAM,UAAU,GAAkB;QACjC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,SAAS;QACT,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,SAAS;QACT,cAAc,EAAE,WAAW;QAC3B,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;QACzC,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;QAC5C,gBAAgB,EAAE,KAAK,CAAC,MAAM;QAC9B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,MAAM,CAAC,GAAG;QACvB,aAAa,EAAE,MAAM,CAAC,KAAK;QAC3B,gBAAgB,EAAE,IAAI;QACtB,GAAG,CAAC,eAAe,IAAI,kBAAkB;YACxC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE;YAC/F,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;KACvD,CAAA;IAED,OAAO;QACN,OAAO;QACP,UAAU;QACV,MAAM,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,SAAS;YACT,UAAU,EAAE,WAAW;SACvB;KACD,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../lib/fst/builder.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,19 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Browser-compatible FST deserializer. Uses DataView + TextDecoder instead of Node's Buffer so the
7
- * same binary format loads in the browser through fetch(url).then(r => r.arrayBuffer()).
6
+ * Browser-compatible FST reader. Uses DataView + TextDecoder instead of Node's Buffer so the same binary format
7
+ * loads in the browser and in a Cloudflare Worker through fetch(url).then(r => r.arrayBuffer()).
8
8
  *
9
- * This is a read-only counterpart to fst-serialize.ts. Serialization stays Node-only because it is
10
- * a build-time operation.
9
+ * This is a read-only counterpart to serialize.ts. Serialization stays Node-only because it is a build-time
10
+ * operation.
11
11
  */
12
- import { FSTMatcher } from "#fst/matcher";
12
+ import { BinaryFSTMatcher } from "#fst/binary-matcher";
13
13
  import type { FSTProvenance } from "#fst/types";
14
- export declare function deserializeFSTWeb(input: ArrayBuffer | Uint8Array): FSTMatcher;
14
+ /**
15
+ * Opens an FST binary for matching, answering queries from the bytes in place.
16
+ *
17
+ * The matcher keeps a reference to `input`, so the caller must not modify it afterward.
18
+ */
19
+ export declare function deserializeFSTWeb(input: ArrayBuffer | Uint8Array): BinaryFSTMatcher;
15
20
  export declare function readFSTProvenanceWeb(input: ArrayBuffer | Uint8Array): FSTProvenance | null;
16
21
  //# sourceMappingURL=deserialize-web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-web.d.ts","sourceRoot":"","sources":["../../lib/fst/deserialize-web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,YAAY,CAAA;AAE3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,CAwH7E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,IAAI,CAqB1F"}
1
+ {"version":3,"file":"deserialize-web.d.ts","sourceRoot":"","sources":["../../lib/fst/deserialize-web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,IAAI,CAqB1F"}
@@ -3,104 +3,22 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Browser-compatible FST deserializer. Uses DataView + TextDecoder instead of Node's Buffer so the
7
- * same binary format loads in the browser through fetch(url).then(r => r.arrayBuffer()).
6
+ * Browser-compatible FST reader. Uses DataView + TextDecoder instead of Node's Buffer so the same binary format
7
+ * loads in the browser and in a Cloudflare Worker through fetch(url).then(r => r.arrayBuffer()).
8
8
  *
9
- * This is a read-only counterpart to fst-serialize.ts. Serialization stays Node-only because it is
10
- * a build-time operation.
9
+ * This is a read-only counterpart to serialize.ts. Serialization stays Node-only because it is a build-time
10
+ * operation.
11
11
  */
12
12
  import { tryParsingJSON } from "@mailwoman/core/json";
13
- import { EDGE_ENTRY_SIZE, ENCYCLOPEDIC_OFFSET, FST_FORMAT_VERSION, FST_MAGIC_BYTES, HEADER_SIZE, LEGACY_PLACE_ENTRY_SIZE, NARROW_STATE_ENTRY_SIZE, PLACE_FLAG_HAS_ENCYCLOPEDIC, PLACETYPE_ORDER, SPLIT_PLACE_ENTRY_SIZE, VERSION_TWO_SCORE_SPLIT, VERSION_WIDE_STATE_COUNTERS, VERSION_WITH_METADATA, WIDE_STATE_ENTRY_SIZE, } from "#fst/format";
14
- import { FSTMatcher } from "#fst/matcher";
13
+ import { BinaryFSTMatcher } from "#fst/binary-matcher";
14
+ import { HEADER_SIZE, VERSION_WITH_METADATA } from "#fst/format";
15
+ /**
16
+ * Opens an FST binary for matching, answering queries from the bytes in place.
17
+ *
18
+ * The matcher keeps a reference to `input`, so the caller must not modify it afterward.
19
+ */
15
20
  export function deserializeFSTWeb(input) {
16
- const bytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;
17
- const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
18
- const decoder = new TextDecoder("utf-8");
19
- if (bytes.byteLength < HEADER_SIZE)
20
- throw new Error("FST buffer too small for header");
21
- if (bytes[0] !== FST_MAGIC_BYTES[0] ||
22
- bytes[1] !== FST_MAGIC_BYTES[1] ||
23
- bytes[2] !== FST_MAGIC_BYTES[2] ||
24
- bytes[3] !== FST_MAGIC_BYTES[3]) {
25
- throw new Error("FST magic mismatch");
26
- }
27
- const version = view.getUint16(4, true);
28
- if (version < 1 || version > FST_FORMAT_VERSION) {
29
- throw new Error(`FST version ${version} unsupported (expected 1..${FST_FORMAT_VERSION})`);
30
- }
31
- const isV2 = version >= 2;
32
- const isSplit = version >= VERSION_TWO_SCORE_SPLIT;
33
- // flags bit0 (mirrors fst-serialize.ts): place rows include surface-ambiguity data.
34
- const hasAmbiguity = (view.getUint16(6, true) & 1) === 1;
35
- const stateCount = view.getUint32(8, true);
36
- const edgeCount = view.getUint32(12, true);
37
- const _placeCount = view.getUint32(16, true);
38
- const stringCount = view.getUint32(20, true);
39
- const stringBytes = view.getUint32(24, true);
40
- let pos = HEADER_SIZE;
41
- const strOffsets = new Uint32Array(stringCount + 1);
42
- for (let i = 0; i <= stringCount; i++) {
43
- strOffsets[i] = view.getUint32(pos, true);
44
- pos += 4;
45
- }
46
- const strDataStart = pos;
47
- const strings = new Array(stringCount);
48
- for (let i = 0; i < stringCount; i++) {
49
- const start = strDataStart + strOffsets[i];
50
- const end = strDataStart + strOffsets[i + 1];
51
- strings[i] = decoder.decode(bytes.subarray(start, end));
52
- }
53
- pos += stringBytes;
54
- const stateEntrySize = version >= VERSION_WIDE_STATE_COUNTERS ? WIDE_STATE_ENTRY_SIZE : NARROW_STATE_ENTRY_SIZE;
55
- // v5 grew the place entry by the encyclopedic float. v4-and-below files are read at the old stride.
56
- const placeEntrySize = isSplit ? SPLIT_PLACE_ENTRY_SIZE : LEGACY_PLACE_ENTRY_SIZE;
57
- const stateTableStart = pos;
58
- const edgeTableStart = stateTableStart + stateCount * stateEntrySize;
59
- const placeTableStart = edgeTableStart + edgeCount * EDGE_ENTRY_SIZE;
60
- const nodes = new Array(stateCount);
61
- for (let si = 0; si < stateCount; si++) {
62
- const sp = stateTableStart + si * stateEntrySize;
63
- const edgeStart = view.getUint32(sp, true);
64
- const placeStart = view.getUint32(sp + 4, true);
65
- const edgeCountForState = version >= VERSION_WIDE_STATE_COUNTERS ? view.getUint32(sp + 8, true) : view.getUint16(sp + 8, true);
66
- const placeCountForState = version >= VERSION_WIDE_STATE_COUNTERS ? view.getUint32(sp + 12, true) : view.getUint16(sp + 10, true);
67
- const edges = new Map();
68
- for (let ei = 0; ei < edgeCountForState; ei++) {
69
- const ep = edgeTableStart + (edgeStart + ei) * EDGE_ENTRY_SIZE;
70
- const stringIdx = view.getUint32(ep, true);
71
- const target = view.getUint32(ep + 4, true);
72
- edges.set(strings[stringIdx], target);
73
- }
74
- const places = new Array(placeCountForState);
75
- for (let pi = 0; pi < placeCountForState; pi++) {
76
- const pp = placeTableStart + (placeStart + pi) * placeEntrySize;
77
- const chainLen = view.getUint8(pp + 5);
78
- const parentChain = [];
79
- for (let ci = 0; ci < chainLen; ci++) {
80
- parentChain.push(view.getUint32(pp + 24 + ci * 4, true));
81
- }
82
- // v1 stored a raw population u32 here. v2-v4 stored the conflated `importance`
83
- // float. v5 stored the referential score.
84
- // The Node deserializer explains why a v1 value is the referential score.
85
- const referential = isV2
86
- ? view.getFloat32(pp + 12, true)
87
- : Math.min(1, Math.log2(1 + view.getUint32(pp + 12, true) / 1000) / 14);
88
- const hasEncyclopedic = isSplit && (view.getUint8(pp + 7) & PLACE_FLAG_HAS_ENCYCLOPEDIC) === PLACE_FLAG_HAS_ENCYCLOPEDIC;
89
- places[pi] = {
90
- wofID: view.getUint32(pp, true),
91
- placetype: PLACETYPE_ORDER[view.getUint8(pp + 4)] ?? "locality",
92
- name: strings[view.getUint32(pp + 8, true)],
93
- referential,
94
- lat: view.getFloat32(pp + 16, true),
95
- lon: view.getFloat32(pp + 20, true),
96
- parentChain,
97
- crossCountryBranches: hasAmbiguity ? view.getUint8(pp + 6) : null,
98
- encyclopedic: hasEncyclopedic ? view.getFloat32(pp + ENCYCLOPEDIC_OFFSET, true) : null,
99
- };
100
- }
101
- nodes[si] = { edges, places };
102
- }
103
- return FSTMatcher.fromNodes(nodes);
21
+ return new BinaryFSTMatcher(input);
104
22
  }
105
23
  export function readFSTProvenanceWeb(input) {
106
24
  const bytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-web.js","sourceRoot":"","sources":["../../lib/fst/deserialize-web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deserialize-web.js","sourceRoot":"","sources":["../../lib/fst/deserialize-web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGhE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA+B;IAChE,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA+B;IACnE,MAAM,KAAK,GAAG,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC1E,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW;QAAE,OAAO,IAAI,CAAA;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAEvC,IAAI,OAAO,GAAG,qBAAqB;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEjD,IAAI,gBAAgB,KAAK,CAAC,IAAI,gBAAgB,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE/E,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;QAEpG,OAAO,cAAc,CAAgB,OAAO,CAAC,IAAI,IAAI,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC"}
@@ -29,7 +29,7 @@ export class FSTMatcher {
29
29
  if (!node)
30
30
  return null;
31
31
  const next = node.edges.get(token);
32
- if (next === undefined)
32
+ if (!next)
33
33
  return null;
34
34
  stateID = next;
35
35
  }
@@ -41,7 +41,7 @@ export class FSTMatcher {
41
41
  if (!node)
42
42
  return null;
43
43
  const next = node.edges.get(token);
44
- if (next === undefined)
44
+ if (!next)
45
45
  return null;
46
46
  const target = this.nodes[next];
47
47
  return { stateID: next, accepted: target.places.length > 0, depth: prev.depth + 1 };
@@ -76,7 +76,7 @@ export class FSTMatcher {
76
76
  if (!node)
77
77
  break;
78
78
  const next = node.edges.get(t);
79
- if (next === undefined)
79
+ if (!next)
80
80
  break;
81
81
  stateID = next;
82
82
  depth++;
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../lib/fst/matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,MAAM,OAAO,UAAU;IACd,KAAK,CAAW;IAExB,YAAY,KAAgB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,IAAI,UAAU;QACb,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QACzB,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,CAAC,MAAgB;QACpB,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAEhC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAElC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACnC,OAAO,GAAG,IAAI,CAAA;QACf,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,CAAA;QAEjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;IAC3E,CAAC;IAED,QAAQ,CAAC,IAAoB,EAAE,KAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAErC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAA;QAEhC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;IACpF,CAAC;IAED,SAAS,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAA;IACzC,CAAC;IAED,aAAa,CAAC,OAAe;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEhC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,MAAM,MAAM,GAAsB,EAAE,CAAA;QAEpC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAA;YAEpC,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,WAAW,EAAE,QAAQ;gBACrB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;aACpC,CAAC,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,IAAY;QACjB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,oDAAoD;YACpD,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAEhC,IAAI,CAAC,IAAI;oBAAE,MAAK;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAE9B,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAK;gBAC7B,OAAO,GAAG,IAAI,CAAA;gBAEd,KAAK,EAAE,CAAA;YACR,CAAC;YAED,OAAO;gBACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;gBAC5B,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;aAC1C,CAAA;QACF,CAAC;QAED,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;YACxC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;SAChD,CAAA;IACF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgB;QAChC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;CACD;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI;SACT,SAAS,CAAC,MAAM,CAAC;SACjB,WAAW,EAAE;SACb,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAChC,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1B,CAAC"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../lib/fst/matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,MAAM,OAAO,UAAU;IACd,KAAK,CAAW;IAExB,YAAY,KAAgB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,IAAI,UAAU;QACb,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QACzB,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,CAAC,MAAgB;QACpB,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAEhC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAElC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YACtB,OAAO,GAAG,IAAI,CAAA;QACf,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,CAAA;QAEjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;IAC3E,CAAC;IAED,QAAQ,CAAC,IAAoB,EAAE,KAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAErC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAA;QAEhC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;IACpF,CAAC;IAED,SAAS,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAA;IACzC,CAAC;IAED,aAAa,CAAC,OAAe;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEhC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,MAAM,MAAM,GAAsB,EAAE,CAAA;QAEpC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAA;YAEpC,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,WAAW,EAAE,QAAQ;gBACrB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;aACpC,CAAC,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,IAAY;QACjB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,oDAAoD;YACpD,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAEhC,IAAI,CAAC,IAAI;oBAAE,MAAK;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAE9B,IAAI,CAAC,IAAI;oBAAE,MAAK;gBAChB,OAAO,GAAG,IAAI,CAAA;gBAEd,KAAK,EAAE,CAAA;YACR,CAAC;YAED,OAAO;gBACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;gBAC5B,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;aAC1C,CAAA;QACF,CAAC;QAED,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;YACxC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;SAChD,CAAA;IACF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgB;QAChC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;CACD;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI;SACT,SAAS,CAAC,MAAM,CAAC;SACjB,WAAW,EAAE;SACb,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAChC,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1B,CAAC"}
@@ -44,7 +44,7 @@ export function serializeFST(matcher, provenance) {
44
44
  const strings = [];
45
45
  function intern(s) {
46
46
  let idx = stringMap.get(s);
47
- if (idx === undefined) {
47
+ if (typeof idx !== "number") {
48
48
  idx = strings.length;
49
49
  strings.push(s);
50
50
  stringMap.set(s, idx);