@mailwoman/resolver-wof-sqlite 9.1.0 → 9.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 (501) hide show
  1. package/README.md +36 -20
  2. package/lib/address/index.ts +9 -0
  3. package/{address-point-interpolation.ts → lib/address/point-interpolation.ts} +40 -28
  4. package/{address-point-schema.ts → lib/address/point-schema.ts} +34 -8
  5. package/lib/address/point.ts +280 -0
  6. package/{ancestry-backfill.ts → lib/ancestry/backfill.ts} +14 -19
  7. package/{ancestry.ts → lib/ancestry/index.ts} +13 -8
  8. package/{build-candidate.ts → lib/build-candidate.ts} +243 -199
  9. package/{build-slim.ts → lib/build-slim.ts} +153 -168
  10. package/lib/candidate/alias-bags.ts +56 -0
  11. package/lib/candidate/ancestors-sidecar.ts +204 -0
  12. package/lib/candidate/country-display-names.ts +79 -0
  13. package/lib/candidate/extract-fold.ts +138 -0
  14. package/lib/candidate/name-roles.ts +238 -0
  15. package/lib/candidate/own-name.ts +146 -0
  16. package/lib/candidate/place-attrs.ts +44 -0
  17. package/lib/candidate-ancestors-schema.ts +195 -0
  18. package/{candidate-fts.ts → lib/candidate-fts.ts} +7 -5
  19. package/{candidate-importance.ts → lib/candidate-importance.ts} +54 -57
  20. package/lib/candidate-lookup.ts +976 -0
  21. package/{candidate-schema.ts → lib/candidate-schema.ts} +34 -6
  22. package/lib/candidate-scoring.ts +261 -0
  23. package/lib/capital-schema.ts +89 -0
  24. package/lib/capitals.ts +148 -0
  25. package/{coincident-roles.ts → lib/coincident-roles.ts} +75 -19
  26. package/{convention.ts → lib/convention/index.ts} +5 -5
  27. package/lib/convention/schema.ts +72 -0
  28. package/{coverage-manifest-schema.ts → lib/coverage-manifest-schema.ts} +15 -16
  29. package/lib/currency-backfill.ts +334 -0
  30. package/lib/env.ts +50 -0
  31. package/lib/exact-match.ts +113 -0
  32. package/{sharding.ts → lib/extracts.ts} +63 -60
  33. package/lib/fst/autocomplete.ts +176 -0
  34. package/{fst-builder.ts → lib/fst/builder.ts} +30 -27
  35. package/{fst-deserialize-web.ts → lib/fst/deserialize-web.ts} +27 -87
  36. package/lib/fst/format.ts +106 -0
  37. package/{fst-freshness.ts → lib/fst/freshness.ts} +42 -75
  38. package/lib/fst/index.ts +14 -0
  39. package/{fst-matcher.ts → lib/fst/matcher.ts} +1 -1
  40. package/{fst-serialize.ts → lib/fst/serialize.ts} +37 -115
  41. package/{fst-types.ts → lib/fst/types.ts} +4 -2
  42. package/{fts.ts → lib/fts/index.ts} +28 -23
  43. package/{fts-query.ts → lib/fts/query.ts} +2 -2
  44. package/{geonames-aliases.ts → lib/geonames/aliases.ts} +13 -13
  45. package/lib/geonames/index.ts +8 -0
  46. package/{geonames-postal.ts → lib/geonames/postal.ts} +16 -15
  47. package/{index.ts → lib/index.ts} +52 -48
  48. package/{interpolation.ts → lib/interpolation.ts} +137 -41
  49. package/lib/lookup.ts +861 -0
  50. package/{name-score.ts → lib/name-score.ts} +6 -4
  51. package/lib/nsul/index.ts +8 -0
  52. package/lib/nsul/lookup.ts +144 -0
  53. package/lib/nsul/schema.ts +130 -0
  54. package/{place-importance-schema.ts → lib/place-importance-schema.ts} +70 -22
  55. package/lib/poi/index.ts +8 -0
  56. package/{poi-lookup.ts → lib/poi/lookup.ts} +32 -39
  57. package/{poi-schema.ts → lib/poi/schema.ts} +10 -6
  58. package/lib/polygon-schema.ts +47 -0
  59. package/{postal-city-alias-lookup.ts → lib/postal/city-alias-lookup.ts} +15 -21
  60. package/{postal-city-candidate-schema.ts → lib/postal/city-candidate-schema.ts} +4 -2
  61. package/lib/postal/index.ts +9 -0
  62. package/{postcode-point-lookup.ts → lib/postcode-point-lookup.ts} +17 -15
  63. package/lib/primary-preference.ts +226 -0
  64. package/lib/proximity-rerank.ts +120 -0
  65. package/{ranking-weights.ts → lib/ranking-weights.ts} +30 -4
  66. package/lib/region-keys.ts +144 -0
  67. package/{reverse.ts → lib/reverse.ts} +45 -56
  68. package/{schema.ts → lib/schema.ts} +11 -1
  69. package/lib/search-fetch.ts +257 -0
  70. package/{sqlite-convention-source.ts → lib/sqlite-convention-source.ts} +9 -10
  71. package/lib/sqlite-utils.ts +83 -0
  72. package/{street-centroid-schema.ts → lib/street/centroid-schema.ts} +12 -6
  73. package/{street-centroid.ts → lib/street/centroid.ts} +26 -28
  74. package/lib/street/index.ts +13 -0
  75. package/{street-morphology-fst-builder.ts → lib/street/morphology-fst-builder.ts} +24 -14
  76. package/{street-morphology-fst-loader.ts → lib/street/morphology-fst-loader.ts} +14 -12
  77. package/{street-name-lookup.ts → lib/street/name-lookup.ts} +14 -30
  78. package/lib/street/normalize.ts +572 -0
  79. package/{street-segment-schema.ts → lib/street/segment-schema.ts} +13 -8
  80. package/{types.ts → lib/types.ts} +49 -9
  81. package/{unified-schema.ts → lib/unified-schema.ts} +21 -25
  82. package/lib/uprn/existence.ts +84 -0
  83. package/lib/uprn/index.ts +9 -0
  84. package/lib/uprn/lookup.ts +206 -0
  85. package/lib/uprn/schema.ts +124 -0
  86. package/lib/weights-overlay-linker.ts +878 -0
  87. package/out/address/index.d.ts +9 -0
  88. package/out/address/index.d.ts.map +1 -0
  89. package/out/address/index.js +9 -0
  90. package/out/address/index.js.map +1 -0
  91. package/out/{address-point-interpolation.d.ts → address/point-interpolation.d.ts} +11 -10
  92. package/out/address/point-interpolation.d.ts.map +1 -0
  93. package/out/{address-point-interpolation.js → address/point-interpolation.js} +29 -23
  94. package/out/address/point-interpolation.js.map +1 -0
  95. package/out/{address-point-schema.d.ts → address/point-schema.d.ts} +30 -10
  96. package/out/address/point-schema.d.ts.map +1 -0
  97. package/out/{address-point-schema.js → address/point-schema.js} +7 -3
  98. package/out/address/point-schema.js.map +1 -0
  99. package/out/{address-point.d.ts → address/point.d.ts} +16 -8
  100. package/out/address/point.d.ts.map +1 -0
  101. package/out/address/point.js +191 -0
  102. package/out/address/point.js.map +1 -0
  103. package/out/{ancestry-backfill.d.ts → ancestry/backfill.d.ts} +7 -5
  104. package/out/ancestry/backfill.d.ts.map +1 -0
  105. package/out/{ancestry-backfill.js → ancestry/backfill.js} +12 -16
  106. package/out/ancestry/backfill.js.map +1 -0
  107. package/out/{ancestry.d.ts → ancestry/index.d.ts} +6 -5
  108. package/out/ancestry/index.d.ts.map +1 -0
  109. package/out/{ancestry.js → ancestry/index.js} +7 -7
  110. package/out/ancestry/index.js.map +1 -0
  111. package/out/build-candidate.d.ts +88 -7
  112. package/out/build-candidate.d.ts.map +1 -1
  113. package/out/build-candidate.js +145 -149
  114. package/out/build-candidate.js.map +1 -1
  115. package/out/build-slim.d.ts +5 -5
  116. package/out/build-slim.d.ts.map +1 -1
  117. package/out/build-slim.js +127 -142
  118. package/out/build-slim.js.map +1 -1
  119. package/out/candidate/alias-bags.d.ts +19 -0
  120. package/out/candidate/alias-bags.d.ts.map +1 -0
  121. package/out/candidate/alias-bags.js +39 -0
  122. package/out/candidate/alias-bags.js.map +1 -0
  123. package/out/candidate/ancestors-sidecar.d.ts +32 -0
  124. package/out/candidate/ancestors-sidecar.d.ts.map +1 -0
  125. package/out/candidate/ancestors-sidecar.js +140 -0
  126. package/out/candidate/ancestors-sidecar.js.map +1 -0
  127. package/out/candidate/country-display-names.d.ts +35 -0
  128. package/out/candidate/country-display-names.d.ts.map +1 -0
  129. package/out/candidate/country-display-names.js +59 -0
  130. package/out/candidate/country-display-names.js.map +1 -0
  131. package/out/candidate/extract-fold.d.ts +32 -0
  132. package/out/candidate/extract-fold.d.ts.map +1 -0
  133. package/out/candidate/extract-fold.js +104 -0
  134. package/out/candidate/extract-fold.js.map +1 -0
  135. package/out/candidate/name-roles.d.ts +57 -0
  136. package/out/candidate/name-roles.d.ts.map +1 -0
  137. package/out/candidate/name-roles.js +166 -0
  138. package/out/candidate/name-roles.js.map +1 -0
  139. package/out/candidate/own-name.d.ts +50 -0
  140. package/out/candidate/own-name.d.ts.map +1 -0
  141. package/out/candidate/own-name.js +132 -0
  142. package/out/candidate/own-name.js.map +1 -0
  143. package/out/candidate/place-attrs.d.ts +43 -0
  144. package/out/candidate/place-attrs.d.ts.map +1 -0
  145. package/out/candidate/place-attrs.js +15 -0
  146. package/out/candidate/place-attrs.js.map +1 -0
  147. package/out/candidate-ancestors-schema.d.ts +150 -0
  148. package/out/candidate-ancestors-schema.d.ts.map +1 -0
  149. package/out/candidate-ancestors-schema.js +123 -0
  150. package/out/candidate-ancestors-schema.js.map +1 -0
  151. package/out/candidate-fts.d.ts +7 -5
  152. package/out/candidate-fts.d.ts.map +1 -1
  153. package/out/candidate-fts.js +5 -3
  154. package/out/candidate-fts.js.map +1 -1
  155. package/out/candidate-importance.d.ts +16 -16
  156. package/out/candidate-importance.d.ts.map +1 -1
  157. package/out/candidate-importance.js +47 -52
  158. package/out/candidate-importance.js.map +1 -1
  159. package/out/candidate-lookup.d.ts +31 -52
  160. package/out/candidate-lookup.d.ts.map +1 -1
  161. package/out/candidate-lookup.js +380 -172
  162. package/out/candidate-lookup.js.map +1 -1
  163. package/out/candidate-schema.d.ts +31 -7
  164. package/out/candidate-schema.d.ts.map +1 -1
  165. package/out/candidate-schema.js +3 -0
  166. package/out/candidate-schema.js.map +1 -1
  167. package/out/candidate-scoring.d.ts +34 -0
  168. package/out/candidate-scoring.d.ts.map +1 -0
  169. package/out/candidate-scoring.js +196 -0
  170. package/out/candidate-scoring.js.map +1 -0
  171. package/out/capital-schema.d.ts +51 -0
  172. package/out/capital-schema.d.ts.map +1 -0
  173. package/out/capital-schema.js +63 -0
  174. package/out/capital-schema.js.map +1 -0
  175. package/out/capitals.d.ts +69 -0
  176. package/out/capitals.d.ts.map +1 -0
  177. package/out/capitals.js +98 -0
  178. package/out/capitals.js.map +1 -0
  179. package/out/coincident-roles.d.ts +12 -4
  180. package/out/coincident-roles.d.ts.map +1 -1
  181. package/out/coincident-roles.js +43 -11
  182. package/out/coincident-roles.js.map +1 -1
  183. package/out/{convention.d.ts → convention/index.d.ts} +5 -5
  184. package/out/convention/index.d.ts.map +1 -0
  185. package/out/{convention.js → convention/index.js} +4 -4
  186. package/out/convention/index.js.map +1 -0
  187. package/out/convention/schema.d.ts +51 -0
  188. package/out/convention/schema.d.ts.map +1 -0
  189. package/out/convention/schema.js +34 -0
  190. package/out/convention/schema.js.map +1 -0
  191. package/out/coverage-manifest-schema.d.ts +8 -8
  192. package/out/coverage-manifest-schema.d.ts.map +1 -1
  193. package/out/coverage-manifest-schema.js +6 -10
  194. package/out/coverage-manifest-schema.js.map +1 -1
  195. package/out/currency-backfill.d.ts +90 -0
  196. package/out/currency-backfill.d.ts.map +1 -0
  197. package/out/currency-backfill.js +196 -0
  198. package/out/currency-backfill.js.map +1 -0
  199. package/out/env.d.ts +43 -0
  200. package/out/env.d.ts.map +1 -0
  201. package/out/env.js +48 -0
  202. package/out/env.js.map +1 -0
  203. package/out/exact-match.d.ts +25 -0
  204. package/out/exact-match.d.ts.map +1 -0
  205. package/out/exact-match.js +88 -0
  206. package/out/exact-match.js.map +1 -0
  207. package/out/extracts.d.ts +114 -0
  208. package/out/extracts.d.ts.map +1 -0
  209. package/out/{sharding.js → extracts.js} +38 -38
  210. package/out/extracts.js.map +1 -0
  211. package/out/{fst-autocomplete.d.ts → fst/autocomplete.d.ts} +13 -13
  212. package/out/fst/autocomplete.d.ts.map +1 -0
  213. package/out/fst/autocomplete.js +113 -0
  214. package/out/fst/autocomplete.js.map +1 -0
  215. package/out/{fst-builder.d.ts → fst/builder.d.ts} +5 -5
  216. package/out/fst/builder.d.ts.map +1 -0
  217. package/out/{fst-builder.js → fst/builder.js} +24 -24
  218. package/out/fst/builder.js.map +1 -0
  219. package/out/{fst-deserialize-web.d.ts → fst/deserialize-web.d.ts} +3 -3
  220. package/out/fst/deserialize-web.d.ts.map +1 -0
  221. package/out/{fst-deserialize-web.js → fst/deserialize-web.js} +10 -74
  222. package/out/fst/deserialize-web.js.map +1 -0
  223. package/out/fst/format.d.ts +80 -0
  224. package/out/fst/format.d.ts.map +1 -0
  225. package/out/fst/format.js +91 -0
  226. package/out/fst/format.js.map +1 -0
  227. package/out/{fst-freshness.d.ts → fst/freshness.d.ts} +11 -14
  228. package/out/fst/freshness.d.ts.map +1 -0
  229. package/out/{fst-freshness.js → fst/freshness.js} +42 -74
  230. package/out/fst/freshness.js.map +1 -0
  231. package/out/fst/index.d.ts +14 -0
  232. package/out/fst/index.d.ts.map +1 -0
  233. package/out/fst/index.js +14 -0
  234. package/out/fst/index.js.map +1 -0
  235. package/out/{fst-matcher.d.ts → fst/matcher.d.ts} +2 -2
  236. package/out/fst/matcher.d.ts.map +1 -0
  237. package/out/{fst-matcher.js → fst/matcher.js} +1 -1
  238. package/out/fst/matcher.js.map +1 -0
  239. package/out/{fst-serialize.d.ts → fst/serialize.d.ts} +5 -10
  240. package/out/fst/serialize.d.ts.map +1 -0
  241. package/out/{fst-serialize.js → fst/serialize.js} +18 -98
  242. package/out/fst/serialize.js.map +1 -0
  243. package/out/{fst-types.d.ts → fst/types.d.ts} +4 -3
  244. package/out/fst/types.d.ts.map +1 -0
  245. package/out/{fst-types.js → fst/types.js} +1 -1
  246. package/out/fst/types.js.map +1 -0
  247. package/out/{fts.d.ts → fts/index.d.ts} +20 -13
  248. package/out/fts/index.d.ts.map +1 -0
  249. package/out/{fts.js → fts/index.js} +20 -15
  250. package/out/fts/index.js.map +1 -0
  251. package/out/{fts-query.d.ts → fts/query.d.ts} +2 -2
  252. package/out/fts/query.d.ts.map +1 -0
  253. package/out/{fts-query.js → fts/query.js} +2 -2
  254. package/out/fts/query.js.map +1 -0
  255. package/out/{geonames-aliases.d.ts → geonames/aliases.d.ts} +8 -6
  256. package/out/geonames/aliases.d.ts.map +1 -0
  257. package/out/{geonames-aliases.js → geonames/aliases.js} +7 -7
  258. package/out/geonames/aliases.js.map +1 -0
  259. package/out/geonames/index.d.ts +8 -0
  260. package/out/geonames/index.d.ts.map +1 -0
  261. package/out/geonames/index.js +8 -0
  262. package/out/geonames/index.js.map +1 -0
  263. package/out/{geonames-postal.d.ts → geonames/postal.d.ts} +12 -10
  264. package/out/geonames/postal.d.ts.map +1 -0
  265. package/out/{geonames-postal.js → geonames/postal.js} +11 -11
  266. package/out/geonames/postal.js.map +1 -0
  267. package/out/index.d.ts +32 -31
  268. package/out/index.d.ts.map +1 -1
  269. package/out/index.js +24 -24
  270. package/out/index.js.map +1 -1
  271. package/out/interpolation.d.ts +18 -9
  272. package/out/interpolation.d.ts.map +1 -1
  273. package/out/interpolation.js +108 -36
  274. package/out/interpolation.js.map +1 -1
  275. package/out/lookup.d.ts +25 -25
  276. package/out/lookup.d.ts.map +1 -1
  277. package/out/lookup.js +174 -558
  278. package/out/lookup.js.map +1 -1
  279. package/out/name-score.d.ts +0 -10
  280. package/out/name-score.d.ts.map +1 -1
  281. package/out/name-score.js +6 -4
  282. package/out/name-score.js.map +1 -1
  283. package/out/nsul/index.d.ts +8 -0
  284. package/out/nsul/index.d.ts.map +1 -0
  285. package/out/nsul/index.js +8 -0
  286. package/out/nsul/index.js.map +1 -0
  287. package/out/nsul/lookup.d.ts +83 -0
  288. package/out/nsul/lookup.d.ts.map +1 -0
  289. package/out/nsul/lookup.js +80 -0
  290. package/out/nsul/lookup.js.map +1 -0
  291. package/out/nsul/schema.d.ts +100 -0
  292. package/out/nsul/schema.d.ts.map +1 -0
  293. package/out/nsul/schema.js +78 -0
  294. package/out/nsul/schema.js.map +1 -0
  295. package/out/place-importance-schema.d.ts +47 -10
  296. package/out/place-importance-schema.d.ts.map +1 -1
  297. package/out/place-importance-schema.js +56 -10
  298. package/out/place-importance-schema.js.map +1 -1
  299. package/out/poi/index.d.ts +8 -0
  300. package/out/poi/index.d.ts.map +1 -0
  301. package/out/poi/index.js +8 -0
  302. package/out/poi/index.js.map +1 -0
  303. package/out/{poi-lookup.d.ts → poi/lookup.d.ts} +8 -10
  304. package/out/poi/lookup.d.ts.map +1 -0
  305. package/out/{poi-lookup.js → poi/lookup.js} +24 -29
  306. package/out/poi/lookup.js.map +1 -0
  307. package/out/{poi-schema.d.ts → poi/schema.d.ts} +10 -6
  308. package/out/poi/schema.d.ts.map +1 -0
  309. package/out/{poi-schema.js → poi/schema.js} +1 -1
  310. package/out/poi/schema.js.map +1 -0
  311. package/out/polygon-schema.d.ts +37 -0
  312. package/out/polygon-schema.d.ts.map +1 -0
  313. package/out/polygon-schema.js +23 -0
  314. package/out/polygon-schema.js.map +1 -0
  315. package/out/{postal-city-alias-lookup.d.ts → postal/city-alias-lookup.d.ts} +7 -6
  316. package/out/postal/city-alias-lookup.d.ts.map +1 -0
  317. package/out/{postal-city-alias-lookup.js → postal/city-alias-lookup.js} +12 -16
  318. package/out/postal/city-alias-lookup.js.map +1 -0
  319. package/out/{postal-city-alias-schema.d.ts → postal/city-alias-schema.d.ts} +1 -1
  320. package/out/{postal-city-alias-schema.d.ts.map → postal/city-alias-schema.d.ts.map} +1 -1
  321. package/out/{postal-city-alias-schema.js → postal/city-alias-schema.js} +1 -1
  322. package/out/{postal-city-alias-schema.js.map → postal/city-alias-schema.js.map} +1 -1
  323. package/out/{postal-city-candidate-schema.d.ts → postal/city-candidate-schema.d.ts} +4 -3
  324. package/out/postal/city-candidate-schema.d.ts.map +1 -0
  325. package/out/{postal-city-candidate-schema.js → postal/city-candidate-schema.js} +2 -2
  326. package/out/{postal-city-candidate-schema.js.map → postal/city-candidate-schema.js.map} +1 -1
  327. package/out/postal/index.d.ts +9 -0
  328. package/out/postal/index.d.ts.map +1 -0
  329. package/out/postal/index.js +9 -0
  330. package/out/postal/index.js.map +1 -0
  331. package/out/postcode-point-lookup.d.ts +10 -10
  332. package/out/postcode-point-lookup.d.ts.map +1 -1
  333. package/out/postcode-point-lookup.js +13 -13
  334. package/out/postcode-point-lookup.js.map +1 -1
  335. package/out/primary-preference.d.ts +133 -0
  336. package/out/primary-preference.d.ts.map +1 -0
  337. package/out/primary-preference.js +146 -0
  338. package/out/primary-preference.js.map +1 -0
  339. package/out/proximity-rerank.d.ts +77 -0
  340. package/out/proximity-rerank.d.ts.map +1 -0
  341. package/out/proximity-rerank.js +86 -0
  342. package/out/proximity-rerank.js.map +1 -0
  343. package/out/ranking-weights.d.ts +15 -3
  344. package/out/ranking-weights.d.ts.map +1 -1
  345. package/out/ranking-weights.js +21 -3
  346. package/out/ranking-weights.js.map +1 -1
  347. package/out/region-keys.d.ts +47 -0
  348. package/out/region-keys.d.ts.map +1 -0
  349. package/out/region-keys.js +121 -0
  350. package/out/region-keys.js.map +1 -0
  351. package/out/reverse.d.ts +6 -6
  352. package/out/reverse.d.ts.map +1 -1
  353. package/out/reverse.js +23 -35
  354. package/out/reverse.js.map +1 -1
  355. package/out/schema.d.ts +10 -1
  356. package/out/schema.d.ts.map +1 -1
  357. package/out/schema.js.map +1 -1
  358. package/out/search-fetch.d.ts +59 -0
  359. package/out/search-fetch.d.ts.map +1 -0
  360. package/out/search-fetch.js +184 -0
  361. package/out/search-fetch.js.map +1 -0
  362. package/out/sqlite-convention-source.d.ts +7 -7
  363. package/out/sqlite-convention-source.d.ts.map +1 -1
  364. package/out/sqlite-convention-source.js +5 -5
  365. package/out/sqlite-convention-source.js.map +1 -1
  366. package/out/sqlite-utils.d.ts +24 -6
  367. package/out/sqlite-utils.d.ts.map +1 -1
  368. package/out/sqlite-utils.js +24 -7
  369. package/out/sqlite-utils.js.map +1 -1
  370. package/out/{street-centroid-schema.d.ts → street/centroid-schema.d.ts} +12 -7
  371. package/out/street/centroid-schema.d.ts.map +1 -0
  372. package/out/{street-centroid-schema.js → street/centroid-schema.js} +5 -5
  373. package/out/{street-centroid-schema.js.map → street/centroid-schema.js.map} +1 -1
  374. package/out/{street-centroid.d.ts → street/centroid.d.ts} +6 -6
  375. package/out/street/centroid.d.ts.map +1 -0
  376. package/out/{street-centroid.js → street/centroid.js} +18 -24
  377. package/out/street/centroid.js.map +1 -0
  378. package/out/street/index.d.ts +13 -0
  379. package/out/street/index.d.ts.map +1 -0
  380. package/out/street/index.js +13 -0
  381. package/out/street/index.js.map +1 -0
  382. package/out/{street-morphology-fst-builder.d.ts → street/morphology-fst-builder.d.ts} +4 -4
  383. package/out/street/morphology-fst-builder.d.ts.map +1 -0
  384. package/out/{street-morphology-fst-builder.js → street/morphology-fst-builder.js} +18 -13
  385. package/out/street/morphology-fst-builder.js.map +1 -0
  386. package/out/{street-morphology-fst-loader.d.ts → street/morphology-fst-loader.d.ts} +5 -5
  387. package/out/street/morphology-fst-loader.d.ts.map +1 -0
  388. package/out/{street-morphology-fst-loader.js → street/morphology-fst-loader.js} +11 -10
  389. package/out/street/morphology-fst-loader.js.map +1 -0
  390. package/out/{street-name-lookup.d.ts → street/name-lookup.d.ts} +4 -7
  391. package/out/street/name-lookup.d.ts.map +1 -0
  392. package/out/{street-name-lookup.js → street/name-lookup.js} +9 -23
  393. package/out/street/name-lookup.js.map +1 -0
  394. package/out/street/normalize.d.ts +179 -0
  395. package/out/street/normalize.d.ts.map +1 -0
  396. package/out/street/normalize.js +457 -0
  397. package/out/street/normalize.js.map +1 -0
  398. package/out/{street-segment-schema.d.ts → street/segment-schema.d.ts} +13 -9
  399. package/out/street/segment-schema.d.ts.map +1 -0
  400. package/out/{street-segment-schema.js → street/segment-schema.js} +4 -4
  401. package/out/{street-segment-schema.js.map → street/segment-schema.js.map} +1 -1
  402. package/out/types.d.ts +49 -9
  403. package/out/types.d.ts.map +1 -1
  404. package/out/types.js.map +1 -1
  405. package/out/unified-schema.d.ts +6 -5
  406. package/out/unified-schema.d.ts.map +1 -1
  407. package/out/unified-schema.js +16 -19
  408. package/out/unified-schema.js.map +1 -1
  409. package/out/uprn/existence.d.ts +53 -0
  410. package/out/uprn/existence.d.ts.map +1 -0
  411. package/out/uprn/existence.js +61 -0
  412. package/out/uprn/existence.js.map +1 -0
  413. package/out/uprn/index.d.ts +9 -0
  414. package/out/uprn/index.d.ts.map +1 -0
  415. package/out/uprn/index.js +9 -0
  416. package/out/uprn/index.js.map +1 -0
  417. package/out/uprn/lookup.d.ts +85 -0
  418. package/out/uprn/lookup.d.ts.map +1 -0
  419. package/out/uprn/lookup.js +149 -0
  420. package/out/uprn/lookup.js.map +1 -0
  421. package/out/uprn/schema.d.ts +93 -0
  422. package/out/uprn/schema.d.ts.map +1 -0
  423. package/out/uprn/schema.js +78 -0
  424. package/out/uprn/schema.js.map +1 -0
  425. package/out/weights-overlay-linker.d.ts +299 -0
  426. package/out/weights-overlay-linker.d.ts.map +1 -0
  427. package/out/weights-overlay-linker.js +511 -0
  428. package/out/weights-overlay-linker.js.map +1 -0
  429. package/package.json +622 -154
  430. package/address-point.ts +0 -125
  431. package/candidate-lookup.ts +0 -720
  432. package/fst-autocomplete.ts +0 -204
  433. package/geo.ts +0 -121
  434. package/lookup.ts +0 -1354
  435. package/out/address-point-interpolation.d.ts.map +0 -1
  436. package/out/address-point-interpolation.js.map +0 -1
  437. package/out/address-point-schema.d.ts.map +0 -1
  438. package/out/address-point-schema.js.map +0 -1
  439. package/out/address-point.d.ts.map +0 -1
  440. package/out/address-point.js +0 -84
  441. package/out/address-point.js.map +0 -1
  442. package/out/ancestry-backfill.d.ts.map +0 -1
  443. package/out/ancestry-backfill.js.map +0 -1
  444. package/out/ancestry.d.ts.map +0 -1
  445. package/out/ancestry.js.map +0 -1
  446. package/out/convention.d.ts.map +0 -1
  447. package/out/convention.js.map +0 -1
  448. package/out/fst-autocomplete.d.ts.map +0 -1
  449. package/out/fst-autocomplete.js +0 -130
  450. package/out/fst-autocomplete.js.map +0 -1
  451. package/out/fst-builder.d.ts.map +0 -1
  452. package/out/fst-builder.js.map +0 -1
  453. package/out/fst-deserialize-web.d.ts.map +0 -1
  454. package/out/fst-deserialize-web.js.map +0 -1
  455. package/out/fst-freshness.d.ts.map +0 -1
  456. package/out/fst-freshness.js.map +0 -1
  457. package/out/fst-matcher.d.ts.map +0 -1
  458. package/out/fst-matcher.js.map +0 -1
  459. package/out/fst-serialize.d.ts.map +0 -1
  460. package/out/fst-serialize.js.map +0 -1
  461. package/out/fst-types.d.ts.map +0 -1
  462. package/out/fst-types.js.map +0 -1
  463. package/out/fts-query.d.ts.map +0 -1
  464. package/out/fts-query.js.map +0 -1
  465. package/out/fts.d.ts.map +0 -1
  466. package/out/fts.js.map +0 -1
  467. package/out/geo.d.ts +0 -74
  468. package/out/geo.d.ts.map +0 -1
  469. package/out/geo.js +0 -71
  470. package/out/geo.js.map +0 -1
  471. package/out/geonames-aliases.d.ts.map +0 -1
  472. package/out/geonames-aliases.js.map +0 -1
  473. package/out/geonames-postal.d.ts.map +0 -1
  474. package/out/geonames-postal.js.map +0 -1
  475. package/out/poi-lookup.d.ts.map +0 -1
  476. package/out/poi-lookup.js.map +0 -1
  477. package/out/poi-schema.d.ts.map +0 -1
  478. package/out/poi-schema.js.map +0 -1
  479. package/out/postal-city-alias-lookup.d.ts.map +0 -1
  480. package/out/postal-city-alias-lookup.js.map +0 -1
  481. package/out/postal-city-candidate-schema.d.ts.map +0 -1
  482. package/out/sharding.d.ts +0 -114
  483. package/out/sharding.d.ts.map +0 -1
  484. package/out/sharding.js.map +0 -1
  485. package/out/street-centroid-schema.d.ts.map +0 -1
  486. package/out/street-centroid.d.ts.map +0 -1
  487. package/out/street-centroid.js.map +0 -1
  488. package/out/street-morphology-fst-builder.d.ts.map +0 -1
  489. package/out/street-morphology-fst-builder.js.map +0 -1
  490. package/out/street-morphology-fst-loader.d.ts.map +0 -1
  491. package/out/street-morphology-fst-loader.js.map +0 -1
  492. package/out/street-name-lookup.d.ts.map +0 -1
  493. package/out/street-name-lookup.js.map +0 -1
  494. package/out/street-normalize.d.ts +0 -95
  495. package/out/street-normalize.d.ts.map +0 -1
  496. package/out/street-normalize.js +0 -272
  497. package/out/street-normalize.js.map +0 -1
  498. package/out/street-segment-schema.d.ts.map +0 -1
  499. package/sqlite-utils.ts +0 -46
  500. package/street-normalize.ts +0 -318
  501. /package/{postal-city-alias-schema.ts → lib/postal/city-alias-schema.ts} +0 -0
package/out/lookup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lib/lookup.ts"],"names":[],"mappings":"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"}
@@ -11,16 +11,6 @@
11
11
  * Case-fold + strip diacritics + collapse punctuation — for the coord-first soft name match.
12
12
  */
13
13
  export declare function cfNormalize(s: string): string;
14
- /**
15
- * Padded character-trigram set (a leading/trailing space pads short tokens).
16
- */
17
- export declare function trigrams(s: string): Set<string>;
18
- /**
19
- * Character-trigram Jaccard ∈ [0,1] — tolerant of the swallowed-leading-char fragments ("auen" vs "plauen") and minor
20
- * misspellings without a heavyweight edit-distance pass. Shared with the candidate backend's FTS5-trigram fuzzy
21
- * fallback so both lookups rank typos identically.
22
- */
23
- export declare function trigramJaccard(a: string, b: string): number;
24
14
  /**
25
15
  * Soft name-match score ∈ [0,1]: exact (normalized) name/alias → 1, else best trigram-Jaccard.
26
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"name-score.d.ts","sourceRoot":"","sources":["../name-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAS/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgB5F"}
1
+ {"version":3,"file":"name-score.d.ts","sourceRoot":"","sources":["../lib/name-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;AAsCD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgB5F"}
package/out/name-score.js CHANGED
@@ -21,7 +21,7 @@ export function cfNormalize(s) {
21
21
  /**
22
22
  * Padded character-trigram set (a leading/trailing space pads short tokens).
23
23
  */
24
- export function trigrams(s) {
24
+ function trigrams(s) {
25
25
  const t = ` ${s} `;
26
26
  const out = new Set();
27
27
  for (let i = 0; i + 3 <= t.length; i++) {
@@ -31,10 +31,12 @@ export function trigrams(s) {
31
31
  }
32
32
  /**
33
33
  * Character-trigram Jaccard ∈ [0,1] — tolerant of the swallowed-leading-char fragments ("auen" vs "plauen") and minor
34
- * misspellings without a heavyweight edit-distance pass. Shared with the candidate backend's FTS5-trigram fuzzy
35
- * fallback so both lookups rank typos identically.
34
+ * misspellings without a heavyweight edit-distance pass. The fuzzy component of {@link softNameScore}, and private to
35
+ * this module: the candidate backend scores typos with a WORD-level measure instead, on receipts that falsify trigram
36
+ * Jaccard for that job (see `candidate-lookup.ts`'s `FUZZY_FETCH`). A shared name here would assert a parity the two
37
+ * backends do not have.
36
38
  */
37
- export function trigramJaccard(a, b) {
39
+ function trigramJaccard(a, b) {
38
40
  const A = trigrams(a);
39
41
  const B = trigrams(b);
40
42
  if (!A.size || !B.size)
@@ -1 +1 @@
1
- {"version":3,"file":"name-score.js","sourceRoot":"","sources":["../name-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACpC,OAAO,CAAC;SACN,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,8BAA8B;SACjE,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;SAC9B,IAAI,EAAE,CAAA;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAErB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IAChC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,KAAK,EAAE,CAAA;QACR,CAAC;IAEF,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,OAA0B;IACnF,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAE3B,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAChB,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,CAAC;YAAE,SAAQ;QAEhB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"name-score.js","sourceRoot":"","sources":["../lib/name-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACpC,OAAO,CAAC;SACN,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,8BAA8B;SACjE,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;SAC9B,IAAI,EAAE,CAAA;AACT,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAErB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IAChC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,KAAK,EAAE,CAAA;QACR,CAAC;IAEF,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,OAA0B;IACnF,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAE3B,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAChB,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,CAAC;YAAE,SAAQ;QAEhB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ */
6
+ export * from "#nsul/lookup";
7
+ export * from "#nsul/schema";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/nsul/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ */
6
+ export * from "#nsul/lookup";
7
+ export * from "#nsul/schema";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/nsul/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Node reader for `nsul.db` — the GB UPRN → unit-postcode register (`nsul/schema.ts`). Two probes,
7
+ * both synchronous `.prepare()` hits in the `uprn/lookup.ts` style:
8
+ *
9
+ * - **`postcodeForUPRN(uprn)`**: primary-key hit on the `WITHOUT ROWID` table.
10
+ * - **`uprnsForPostcode(postcode)`**: the `pcds_compact` index, answering every UPRN the register
11
+ * assigns to one unit postcode with the point OS publishes for each — the "assigned points and
12
+ * their bound" the physical-constraint design record names as the prior's soft structure.
13
+ *
14
+ * ## `null` and `[]` are claims, scoped by coverage
15
+ *
16
+ * The register designates GB complete (every UPRN in AddressBase with a Code-Point Open postcode),
17
+ * and the builder writes `layer_coverage` with basis `designated` for every cell the register
18
+ * touches. Inside a covered cell an empty answer is evidence of absence: no GB UPRN by that number
19
+ * carries a Code-Point postcode, or no UPRN carries that postcode. Two absences the reader cannot
20
+ * tell from those are recorded in `nsul_meta` as counts rather than as rows — a UPRN whose `PCDS` is
21
+ * null (its postcode is not in Code-Point Open) and one Open UPRN publishes no coordinate for — so a
22
+ * caller building negative evidence reads the coverage table and those counts, not this reader
23
+ * alone. Outside coverage (Northern Ireland, the Isle of Man, the Channel Islands) the answer is
24
+ * UNKNOWN, per the meaning-of-zero rule.
25
+ */
26
+ import { DatabaseClient } from "@mailwoman/sqlite/client";
27
+ import { type NSULDatabase } from "#nsul/schema";
28
+ /**
29
+ * The unit postcode the register assigns to a UPRN, in both stored forms.
30
+ */
31
+ export interface NSULPostcode {
32
+ /**
33
+ * As NSUL writes it — `RG40 4HR`.
34
+ */
35
+ pcds: string;
36
+ /**
37
+ * Space removed — `RG404HR`, Code-Point Open's `spr.name` form.
38
+ */
39
+ pcdsCompact: string;
40
+ }
41
+ /**
42
+ * One UPRN assigned to a unit postcode, with the point `uprn.db` holds for it.
43
+ */
44
+ export interface NSULAssignedPoint {
45
+ uprn: number;
46
+ latitude: number;
47
+ longitude: number;
48
+ /**
49
+ * 48-bit short res-9 H3 cell, as `uprn.db` stores it.
50
+ */
51
+ h3Cell: number;
52
+ }
53
+ export interface NSULLookupOpts {
54
+ /**
55
+ * Path to a `nsul.db` built by `mailwoman`'s gazetteer pipeline. Opened read-only.
56
+ */
57
+ databasePath?: string;
58
+ /**
59
+ * Pre-opened handle (tests / shared connections). Mutually exclusive with `databasePath`.
60
+ */
61
+ database?: DatabaseClient<NSULDatabase>;
62
+ }
63
+ /**
64
+ * Node reader over `nsul.db`. `implements Disposable` so callers can `using lookup = new NSULLookup(...)` — the same
65
+ * precedent as `UPRNLookup`.
66
+ */
67
+ export declare class NSULLookup implements Disposable {
68
+ #private;
69
+ constructor(opts: NSULLookupOpts);
70
+ /**
71
+ * The unit postcode the register assigns to `uprn`, or `null` when the register holds no row for it (see the module
72
+ * docstring for what that `null` claims).
73
+ */
74
+ postcodeForUPRN(uprn: number): NSULPostcode | null;
75
+ /**
76
+ * Every UPRN the register assigns to one unit postcode, with its published point, in ascending UPRN order. The key is
77
+ * compacted through {@link compactPostcode} first, so `PO21 1HR` and `PO211HR` answer identically. An empty array is
78
+ * the register's answer, scoped as the module docstring says.
79
+ */
80
+ uprnsForPostcode(postcode: string): NSULAssignedPoint[];
81
+ [Symbol.dispose](): void;
82
+ }
83
+ //# sourceMappingURL=lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../lib/nsul/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAGjE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;CACvC;AAcD;;;GAGG;AACH,qBAAa,UAAW,YAAW,UAAU;;gBAWhC,IAAI,EAAE,cAAc;IAoBhC;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAMlD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE;IASvD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGxB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Node reader for `nsul.db` — the GB UPRN → unit-postcode register (`nsul/schema.ts`). Two probes,
7
+ * both synchronous `.prepare()` hits in the `uprn/lookup.ts` style:
8
+ *
9
+ * - **`postcodeForUPRN(uprn)`**: primary-key hit on the `WITHOUT ROWID` table.
10
+ * - **`uprnsForPostcode(postcode)`**: the `pcds_compact` index, answering every UPRN the register
11
+ * assigns to one unit postcode with the point OS publishes for each — the "assigned points and
12
+ * their bound" the physical-constraint design record names as the prior's soft structure.
13
+ *
14
+ * ## `null` and `[]` are claims, scoped by coverage
15
+ *
16
+ * The register designates GB complete (every UPRN in AddressBase with a Code-Point Open postcode),
17
+ * and the builder writes `layer_coverage` with basis `designated` for every cell the register
18
+ * touches. Inside a covered cell an empty answer is evidence of absence: no GB UPRN by that number
19
+ * carries a Code-Point postcode, or no UPRN carries that postcode. Two absences the reader cannot
20
+ * tell from those are recorded in `nsul_meta` as counts rather than as rows — a UPRN whose `PCDS` is
21
+ * null (its postcode is not in Code-Point Open) and one Open UPRN publishes no coordinate for — so a
22
+ * caller building negative evidence reads the coverage table and those counts, not this reader
23
+ * alone. Outside coverage (Northern Ireland, the Isle of Man, the Channel Islands) the answer is
24
+ * UNKNOWN, per the meaning-of-zero rule.
25
+ */
26
+ import { DatabaseClient } from "@mailwoman/sqlite/client";
27
+ import { compactPostcode } from "#nsul/schema";
28
+ import { prepareAll, prepareGet } from "#sqlite-utils";
29
+ /**
30
+ * Node reader over `nsul.db`. `implements Disposable` so callers can `using lookup = new NSULLookup(...)` — the same
31
+ * precedent as `UPRNLookup`.
32
+ */
33
+ export class NSULLookup {
34
+ #db;
35
+ /**
36
+ * Resources this instance opened. A connection handed in by a caller is NOT in here, so disposal cannot reach it —
37
+ * ownership is membership rather than a flag a later branch has to check.
38
+ */
39
+ #resources = new DisposableStack();
40
+ #postcodeProbe;
41
+ #pointsProbe;
42
+ constructor(opts) {
43
+ if (opts.database) {
44
+ this.#db = opts.database;
45
+ }
46
+ else if (opts.databasePath) {
47
+ this.#db = this.#resources.use(new DatabaseClient(opts.databasePath, { readOnly: true }));
48
+ }
49
+ else {
50
+ throw new Error("NSULLookup needs `databasePath` or `database`");
51
+ }
52
+ this.#postcodeProbe = prepareGet(this.#db, "SELECT pcds, pcds_compact FROM uprn_postcode WHERE uprn = ?");
53
+ this.#pointsProbe = prepareAll(this.#db, "SELECT uprn, lat, lon, h3_cell FROM uprn_postcode WHERE pcds_compact = ? ORDER BY uprn");
54
+ }
55
+ /**
56
+ * The unit postcode the register assigns to `uprn`, or `null` when the register holds no row for it (see the module
57
+ * docstring for what that `null` claims).
58
+ */
59
+ postcodeForUPRN(uprn) {
60
+ const row = this.#postcodeProbe(uprn);
61
+ return row ? { pcds: row.pcds, pcdsCompact: row.pcds_compact } : null;
62
+ }
63
+ /**
64
+ * Every UPRN the register assigns to one unit postcode, with its published point, in ascending UPRN order. The key is
65
+ * compacted through {@link compactPostcode} first, so `PO21 1HR` and `PO211HR` answer identically. An empty array is
66
+ * the register's answer, scoped as the module docstring says.
67
+ */
68
+ uprnsForPostcode(postcode) {
69
+ return this.#pointsProbe(compactPostcode(postcode)).map((row) => ({
70
+ uprn: row.uprn,
71
+ latitude: row.lat,
72
+ longitude: row.lon,
73
+ h3Cell: row.h3_cell,
74
+ }));
75
+ }
76
+ [Symbol.dispose]() {
77
+ this.#resources[Symbol.dispose]();
78
+ }
79
+ }
80
+ //# sourceMappingURL=lookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../lib/nsul/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAoDtD;;;GAGG;AACH,MAAM,OAAO,UAAU;IACtB,GAAG,CAA8B;IACjC;;;OAGG;IACM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IAElC,cAAc,CAA2C;IACzD,YAAY,CAAqC;IAE1D,YAAY,IAAoB;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;QACzB,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,CAAe,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAC/B,IAAI,CAAC,GAAG,EACR,6DAA6D,CAC7D,CAAA;QAED,IAAI,CAAC,YAAY,GAAG,UAAU,CAC7B,IAAI,CAAC,GAAG,EACR,wFAAwF,CACxF,CAAA;IACF,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAErC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,GAAG;YACjB,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,MAAM,EAAE,GAAG,CAAC,OAAO;SACnB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;IAClC,CAAC;CACD"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Typed schema for `nsul.db` — the GB UPRN → unit-postcode register: the ONS **National Statistics
7
+ * UPRN Lookup** (NSUL) joined to the WGS84 point OS Open UPRN publishes for the same UPRN. One row per
8
+ * GB UPRN that carries a unit postcode AND has a published coordinate; the postcode is Code-Point
9
+ * Open's, so this table and `postcode-gb.bin` agree by construction on the universe of unit postcodes.
10
+ *
11
+ * ## Why this table exists
12
+ *
13
+ * Code-Point Open gives one coordinate per unit postcode; Open UPRN gives one coordinate per
14
+ * addressable object; neither says which object carries which postcode. NSUL does, as field `PCDS`,
15
+ * under OGL-UK-3.0. The `PO`-area measurement that produced this design (recorded on #1975) showed a
16
+ * nearest-centroid reconstruction of the register is exact on 69.6% of 531,266 UPRNs and a building
17
+ * footprint adds nothing, so the register is stored rather than inferred.
18
+ *
19
+ * ## Shape
20
+ *
21
+ * `uprn_postcode` is `WITHOUT ROWID` keyed on the UPRN: small fixed rows, probed by primary key, with
22
+ * one secondary index on `pcds_compact`. The postcode is stored twice on purpose — `pcds` exactly as
23
+ * NSUL writes it (`RG40 4HR`, one space) and `pcds_compact` with the space removed (`RG404HR`), which
24
+ * is the form Code-Point Open's `spr.name` uses, so the two artifacts join on a column rather than an
25
+ * expression. `lat`/`lon`/`h3_cell` are COPIED from `uprn.db` at build time by UPRN join — OS's own
26
+ * WGS84 columns, never a reprojection of NSUL's `GRIDGB1E`/`GRIDGB1N` — so a coordinate here is
27
+ * byte-identical to the one `uprn.db` holds for the same UPRN.
28
+ *
29
+ * The DB also embeds the layer-contract tables from `@mailwoman/core/layers`; the builder
30
+ * (`packages/mailwoman/lib/gazetteer-pipeline/nsul-layer.ts`) writes the manifest and coverage.
31
+ */
32
+ import type { LayerContractDatabase } from "@mailwoman/core/layers";
33
+ import { type Kysely } from "kysely";
34
+ /**
35
+ * Resolution of the `h3_cell` column — the same res-9 spine `uprn.db` keys on, because the value is copied from it.
36
+ */
37
+ export declare const NSUL_H3_RESOLUTION = 9;
38
+ /**
39
+ * Resolution of the layer's `layer_coverage` cells — coarse, per the contract, and the same as `uprn.db`'s so the two
40
+ * layers' coverage tables describe the same cells.
41
+ */
42
+ export declare const NSUL_COVERAGE_H3_RESOLUTION = 6;
43
+ /**
44
+ * One UPRN with its unit postcode and the point OS publishes for it.
45
+ */
46
+ export interface UPRNPostcodeTable {
47
+ /**
48
+ * The Unique Property Reference Number — up to 12 digits, so always within `Number.MAX_SAFE_INTEGER`.
49
+ */
50
+ uprn: number;
51
+ /**
52
+ * The unit postcode as NSUL writes it — outward code, one space, inward code (`RG40 4HR`).
53
+ */
54
+ pcds: string;
55
+ /**
56
+ * {@link pcds} with the space removed (`RG404HR`) — the form Code-Point Open's `spr.name` carries, and the column
57
+ * `uprnsForPostcode` probes.
58
+ */
59
+ pcds_compact: string;
60
+ /**
61
+ * WGS84 latitude, copied from `uprn.db` for the same UPRN.
62
+ */
63
+ lat: number;
64
+ /**
65
+ * WGS84 longitude, copied from `uprn.db` for the same UPRN.
66
+ */
67
+ lon: number;
68
+ /**
69
+ * 48-bit short H3 cell at {@link NSUL_H3_RESOLUTION}, copied from `uprn.db` for the same UPRN.
70
+ */
71
+ h3_cell: number;
72
+ }
73
+ /**
74
+ * Build-provenance key/value pairs the fixed `layer_manifest` columns have no room for: the accounting counts, the
75
+ * header as found, the per-region row counts, the four attribution lines.
76
+ */
77
+ export interface NSULMetaTable {
78
+ key: string;
79
+ value: string;
80
+ }
81
+ export interface NSULDatabase extends LayerContractDatabase {
82
+ uprn_postcode: UPRNPostcodeTable;
83
+ nsul_meta: NSULMetaTable;
84
+ }
85
+ /**
86
+ * The compact form of a unit postcode: every space removed, upper-cased. `RG40 4HR` → `RG404HR`. The ONE derivation
87
+ * both the builder and every consumer share, so a caller holding NSUL's spaced form and one holding Code-Point's
88
+ * compact form reach the same key.
89
+ */
90
+ export declare function compactPostcode(pcds: string): string;
91
+ export declare function createUPRNPostcodeTable(db: Kysely<NSULDatabase>): Promise<void>;
92
+ export declare function createNSULMetaTable(db: Kysely<NSULDatabase>): Promise<void>;
93
+ /**
94
+ * The `pcds_compact` index the `uprnsForPostcode` probe reads. Builders call this AFTER the bulk load
95
+ * (index-after-load). There is no index on the spaced `pcds`: it is derivable from `pcds_compact` through
96
+ * {@link compactPostcode}, and a second index over 40 million rows would buy nothing a caller cannot get by compacting
97
+ * its key first.
98
+ */
99
+ export declare function createNSULIndexes(db: Kysely<NSULDatabase>): Promise<void>;
100
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../lib/nsul/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAA;AAE5C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAa,SAAQ,qBAAqB;IAC1D,aAAa,EAAE,iBAAiB,CAAA;IAChC,SAAS,EAAE,aAAa,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrF;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Typed schema for `nsul.db` — the GB UPRN → unit-postcode register: the ONS **National Statistics
7
+ * UPRN Lookup** (NSUL) joined to the WGS84 point OS Open UPRN publishes for the same UPRN. One row per
8
+ * GB UPRN that carries a unit postcode AND has a published coordinate; the postcode is Code-Point
9
+ * Open's, so this table and `postcode-gb.bin` agree by construction on the universe of unit postcodes.
10
+ *
11
+ * ## Why this table exists
12
+ *
13
+ * Code-Point Open gives one coordinate per unit postcode; Open UPRN gives one coordinate per
14
+ * addressable object; neither says which object carries which postcode. NSUL does, as field `PCDS`,
15
+ * under OGL-UK-3.0. The `PO`-area measurement that produced this design (recorded on #1975) showed a
16
+ * nearest-centroid reconstruction of the register is exact on 69.6% of 531,266 UPRNs and a building
17
+ * footprint adds nothing, so the register is stored rather than inferred.
18
+ *
19
+ * ## Shape
20
+ *
21
+ * `uprn_postcode` is `WITHOUT ROWID` keyed on the UPRN: small fixed rows, probed by primary key, with
22
+ * one secondary index on `pcds_compact`. The postcode is stored twice on purpose — `pcds` exactly as
23
+ * NSUL writes it (`RG40 4HR`, one space) and `pcds_compact` with the space removed (`RG404HR`), which
24
+ * is the form Code-Point Open's `spr.name` uses, so the two artifacts join on a column rather than an
25
+ * expression. `lat`/`lon`/`h3_cell` are COPIED from `uprn.db` at build time by UPRN join — OS's own
26
+ * WGS84 columns, never a reprojection of NSUL's `GRIDGB1E`/`GRIDGB1N` — so a coordinate here is
27
+ * byte-identical to the one `uprn.db` holds for the same UPRN.
28
+ *
29
+ * The DB also embeds the layer-contract tables from `@mailwoman/core/layers`; the builder
30
+ * (`packages/mailwoman/lib/gazetteer-pipeline/nsul-layer.ts`) writes the manifest and coverage.
31
+ */
32
+ import { sql } from "kysely";
33
+ /**
34
+ * Resolution of the `h3_cell` column — the same res-9 spine `uprn.db` keys on, because the value is copied from it.
35
+ */
36
+ export const NSUL_H3_RESOLUTION = 9;
37
+ /**
38
+ * Resolution of the layer's `layer_coverage` cells — coarse, per the contract, and the same as `uprn.db`'s so the two
39
+ * layers' coverage tables describe the same cells.
40
+ */
41
+ export const NSUL_COVERAGE_H3_RESOLUTION = 6;
42
+ /**
43
+ * The compact form of a unit postcode: every space removed, upper-cased. `RG40 4HR` → `RG404HR`. The ONE derivation
44
+ * both the builder and every consumer share, so a caller holding NSUL's spaced form and one holding Code-Point's
45
+ * compact form reach the same key.
46
+ */
47
+ export function compactPostcode(pcds) {
48
+ return pcds.replaceAll(/\s+/g, "").toUpperCase();
49
+ }
50
+ export async function createUPRNPostcodeTable(db) {
51
+ await db.schema
52
+ .createTable("uprn_postcode")
53
+ .addColumn("uprn", "integer", (c) => c.primaryKey())
54
+ .addColumn("pcds", "text", (c) => c.notNull())
55
+ .addColumn("pcds_compact", "text", (c) => c.notNull())
56
+ .addColumn("lat", "real", (c) => c.notNull())
57
+ .addColumn("lon", "real", (c) => c.notNull())
58
+ .addColumn("h3_cell", "integer", (c) => c.notNull())
59
+ .modifyEnd(sql `without rowid`)
60
+ .execute();
61
+ }
62
+ export async function createNSULMetaTable(db) {
63
+ await db.schema
64
+ .createTable("nsul_meta")
65
+ .addColumn("key", "text", (c) => c.primaryKey())
66
+ .addColumn("value", "text", (c) => c.notNull())
67
+ .execute();
68
+ }
69
+ /**
70
+ * The `pcds_compact` index the `uprnsForPostcode` probe reads. Builders call this AFTER the bulk load
71
+ * (index-after-load). There is no index on the spaced `pcds`: it is derivable from `pcds_compact` through
72
+ * {@link compactPostcode}, and a second index over 40 million rows would buy nothing a caller cannot get by compacting
73
+ * its key first.
74
+ */
75
+ export async function createNSULIndexes(db) {
76
+ await db.schema.createIndex("uprn_postcode_pcds_compact").on("uprn_postcode").column("pcds_compact").execute();
77
+ }
78
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/nsul/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,GAAG,EAAe,MAAM,QAAQ,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAA;AA+C5C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAAwB;IACrE,MAAM,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,eAAe,CAAC;SAC5B,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;SACnD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC7C,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACrD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnD,SAAS,CAAC,GAAG,CAAA,eAAe,CAAC;SAC7B,OAAO,EAAE,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAwB;IACjE,MAAM,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,WAAW,CAAC;SACxB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;SAC/C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9C,OAAO,EAAE,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAwB;IAC/D,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAA;AAC/G,CAAC"}