@mailwoman/corpus 9.2.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 (1241) hide show
  1. package/README.md +22 -22
  2. package/data/PROVENANCE.md +7 -7
  3. package/lib/adapters/ban/adapter.ts +190 -0
  4. package/lib/adapters/ban/street-decompose.ts +66 -0
  5. package/lib/adapters/fcc-bdc/adapter.ts +174 -0
  6. package/lib/adapters/geonames/adapter.ts +199 -0
  7. package/lib/adapters/geonames-postal/adapter.ts +122 -0
  8. package/lib/adapters/gnaf/adapter.ts +149 -0
  9. package/lib/adapters/gnaf/assemble.ts +225 -0
  10. package/lib/adapters/index.ts +153 -0
  11. package/lib/adapters/openaddresses/adapter.ts +251 -0
  12. package/lib/adapters/overture/adapter.ts +162 -0
  13. package/lib/adapters/state-hi-schools/adapter.ts +170 -0
  14. package/lib/adapters/state-hi-schools/workbook.ts +35 -0
  15. package/lib/adapters/synth-po-box/adapter.ts +204 -0
  16. package/lib/adapters/tiger/adapter.ts +252 -0
  17. package/lib/adapters/tiger/street-decompose.ts +83 -0
  18. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +167 -0
  19. package/lib/adapters/usgov-imls-pls/adapter.ts +143 -0
  20. package/lib/adapters/usgov-irs-bmf/adapter.ts +151 -0
  21. package/lib/adapters/usgov-nad/adapter.ts +334 -0
  22. package/lib/adapters/usgov-nppes/adapter.ts +151 -0
  23. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +193 -0
  24. package/lib/adapters/utils/index.ts +307 -0
  25. package/lib/adapters/wof-admin-jp/adapter.ts +214 -0
  26. package/lib/adapters/wof-admin-json/adapter.ts +231 -0
  27. package/lib/adapters/wof-json-rows.ts +129 -0
  28. package/lib/adapters/wof-postalcode-json/adapter.ts +176 -0
  29. package/lib/build.ts +378 -0
  30. package/lib/env.ts +50 -0
  31. package/lib/index.ts +13 -0
  32. package/lib/name-prone-us-suffixes.ts +12 -0
  33. package/lib/recipes/anchor-absorption.ts +101 -0
  34. package/lib/recipes/bare-country.ts +95 -0
  35. package/lib/recipes/boundary-stress.ts +100 -0
  36. package/lib/recipes/cn-organizational-units.ts +199 -0
  37. package/lib/recipes/country-balanced.ts +509 -0
  38. package/lib/recipes/cz-pcfirst-preposition.ts +111 -0
  39. package/lib/recipes/fr-admin-split.ts +242 -0
  40. package/lib/recipes/fr-bare-street.ts +170 -0
  41. package/lib/recipes/fr-fragment.ts +333 -0
  42. package/lib/recipes/fr-lieudit.ts +301 -0
  43. package/lib/recipes/fr-order.ts +245 -0
  44. package/lib/recipes/german.ts +359 -0
  45. package/lib/recipes/house-venue.ts +92 -0
  46. package/lib/recipes/index.ts +97 -0
  47. package/lib/recipes/intersection.ts +618 -0
  48. package/lib/recipes/locale.ts +599 -0
  49. package/lib/recipes/nl-postcode.ts +115 -0
  50. package/lib/recipes/no-fragment.ts +219 -0
  51. package/lib/recipes/no-street-led.ts +141 -0
  52. package/lib/recipes/no-street.ts +90 -0
  53. package/lib/recipes/po-box-cedex.ts +976 -0
  54. package/lib/recipes/po-box.ts +123 -0
  55. package/lib/recipes/reviewed-postcode-tail.ts +190 -0
  56. package/lib/recipes/scaffold.ts +469 -0
  57. package/lib/recipes/si-bare-village.ts +97 -0
  58. package/lib/recipes/street-affix.ts +804 -0
  59. package/lib/recipes/street-bare.ts +100 -0
  60. package/lib/recipes/street.ts +81 -0
  61. package/lib/recipes/sub-venue-sources.ts +877 -0
  62. package/lib/recipes/sub-venue.ts +997 -0
  63. package/lib/recipes/trailing-region.ts +183 -0
  64. package/lib/recipes/unit.ts +304 -0
  65. package/lib/runner.ts +312 -0
  66. package/lib/synthesizers/anchor-absorption.ts +288 -0
  67. package/lib/synthesizers/boundary-stress.ts +532 -0
  68. package/lib/synthesizers/german.ts +260 -0
  69. package/lib/synthesizers/house-venue.ts +308 -0
  70. package/lib/synthesizers/intersection.ts +233 -0
  71. package/lib/synthesizers/no-street.ts +327 -0
  72. package/lib/synthesizers/po-box.ts +323 -0
  73. package/lib/synthesizers/street.ts +269 -0
  74. package/lib/synthesizers/utils.ts +993 -0
  75. package/lib/test-kit/corpus-recipe.ts +86 -0
  76. package/lib/test-kit/index.ts +100 -0
  77. package/lib/tools/align-slice.ts +68 -0
  78. package/lib/tools/audit.ts +403 -0
  79. package/lib/tools/corpus-stats.ts +136 -0
  80. package/lib/tools/fetch/ban.ts +289 -0
  81. package/lib/tools/fetch/download.ts +262 -0
  82. package/lib/tools/fetch/geonames-dump.ts +257 -0
  83. package/lib/tools/fetch/geonames-postal.ts +180 -0
  84. package/lib/tools/fetch/hrsa.ts +59 -0
  85. package/lib/tools/fetch/imls-pls.ts +149 -0
  86. package/lib/tools/fetch/index.ts +147 -0
  87. package/lib/tools/fetch/nad.ts +341 -0
  88. package/lib/tools/fetch/nppes.ts +165 -0
  89. package/lib/tools/fetch/openaddresses.ts +347 -0
  90. package/lib/tools/fetch/ourairports.ts +170 -0
  91. package/lib/tools/fetch/ppd.ts +121 -0
  92. package/lib/tools/fetch/state-hi-schools.ts +161 -0
  93. package/lib/tools/fetch/state-sources.ts +146 -0
  94. package/lib/tools/fetch/tiger-full.ts +308 -0
  95. package/lib/tools/fetch/wikidata-subvenue.ts +384 -0
  96. package/lib/tools/golden-expand.ts +574 -0
  97. package/lib/tools/golden-promote.ts +337 -0
  98. package/lib/tools/golden-relabel-street.ts +683 -0
  99. package/lib/tools/index.ts +28 -0
  100. package/lib/tools/ingest-csv.ts +378 -0
  101. package/lib/tools/jsonl-to-parquet.ts +207 -0
  102. package/lib/tools/lint-slice-vocab.ts +388 -0
  103. package/lib/tools/lint-slice.ts +496 -0
  104. package/lib/tools/overlay-manifest.ts +148 -0
  105. package/lib/tools/overture-subvenue.ts +209 -0
  106. package/lib/tools/postcode-triples.ts +363 -0
  107. package/lib/tools/slice-kryptonite.ts +137 -0
  108. package/lib/tools/slice-translit.ts +218 -0
  109. package/lib/tools/sub-venue/harvest.ts +234 -0
  110. package/lib/tools/sub-venue/head-nouns.ts +245 -0
  111. package/lib/tools/sub-venue/surfaces.ts +95 -0
  112. package/lib/tools/sub-venue/table.ts +281 -0
  113. package/lib/tools/sub-venue/wikidata.ts +85 -0
  114. package/lib/tools/sub-venue-lexicon.ts +429 -0
  115. package/lib/tools/sub-venue-promotions.ts +330 -0
  116. package/lib/types.ts +247 -0
  117. package/lib/utils/align.ts +330 -0
  118. package/lib/utils/golden.ts +189 -0
  119. package/lib/utils/index.ts +14 -0
  120. package/lib/utils/parquet.ts +582 -0
  121. package/lib/utils/slice-stats.ts +95 -0
  122. package/lib/utils/split.ts +279 -0
  123. package/lib/utils/tokenize.ts +120 -0
  124. package/lib/utils/wof-json.ts +247 -0
  125. package/out/adapters/ban/adapter.d.ts.map +1 -0
  126. package/out/adapters/ban/adapter.js +149 -0
  127. package/out/adapters/ban/adapter.js.map +1 -0
  128. package/out/adapters/ban/street-decompose.d.ts.map +1 -0
  129. package/out/adapters/ban/street-decompose.js +51 -0
  130. package/out/adapters/ban/street-decompose.js.map +1 -0
  131. package/out/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  132. package/out/adapters/fcc-bdc/adapter.js +144 -0
  133. package/out/adapters/fcc-bdc/adapter.js.map +1 -0
  134. package/out/adapters/geonames/adapter.d.ts.map +1 -0
  135. package/out/adapters/geonames/adapter.js +176 -0
  136. package/out/adapters/geonames/adapter.js.map +1 -0
  137. package/out/adapters/geonames-postal/adapter.d.ts +54 -0
  138. package/out/adapters/geonames-postal/adapter.d.ts.map +1 -0
  139. package/out/adapters/geonames-postal/adapter.js +107 -0
  140. package/out/adapters/geonames-postal/adapter.js.map +1 -0
  141. package/out/adapters/gnaf/adapter.d.ts +49 -0
  142. package/out/adapters/gnaf/adapter.d.ts.map +1 -0
  143. package/out/adapters/gnaf/adapter.js +124 -0
  144. package/out/adapters/gnaf/adapter.js.map +1 -0
  145. package/out/adapters/gnaf/assemble.d.ts +65 -0
  146. package/out/adapters/gnaf/assemble.d.ts.map +1 -0
  147. package/out/adapters/gnaf/assemble.js +154 -0
  148. package/out/adapters/gnaf/assemble.js.map +1 -0
  149. package/out/adapters/index.d.ts +51 -0
  150. package/out/adapters/index.d.ts.map +1 -0
  151. package/out/adapters/index.js +95 -0
  152. package/out/adapters/index.js.map +1 -0
  153. package/out/adapters/openaddresses/adapter.d.ts.map +1 -0
  154. package/out/adapters/openaddresses/adapter.js +186 -0
  155. package/out/adapters/openaddresses/adapter.js.map +1 -0
  156. package/out/adapters/overture/adapter.d.ts +48 -0
  157. package/out/adapters/overture/adapter.d.ts.map +1 -0
  158. package/out/adapters/overture/adapter.js +125 -0
  159. package/out/adapters/overture/adapter.js.map +1 -0
  160. package/out/adapters/state-hi-schools/adapter.d.ts +46 -0
  161. package/out/adapters/state-hi-schools/adapter.d.ts.map +1 -0
  162. package/out/adapters/state-hi-schools/adapter.js +145 -0
  163. package/out/adapters/state-hi-schools/adapter.js.map +1 -0
  164. package/out/adapters/state-hi-schools/workbook.d.ts +29 -0
  165. package/out/adapters/state-hi-schools/workbook.d.ts.map +1 -0
  166. package/out/adapters/state-hi-schools/workbook.js +20 -0
  167. package/out/adapters/state-hi-schools/workbook.js.map +1 -0
  168. package/out/adapters/state-ia-contractors/adapter.d.ts.map +1 -0
  169. package/out/adapters/state-ia-contractors/adapter.js.map +1 -0
  170. package/out/adapters/state-ny-notaries/adapter.d.ts.map +1 -0
  171. package/out/adapters/state-ny-notaries/adapter.js.map +1 -0
  172. package/out/adapters/state-tx-notaries/adapter.d.ts.map +1 -0
  173. package/out/adapters/state-tx-notaries/adapter.js.map +1 -0
  174. package/out/adapters/synth-po-box/adapter.d.ts.map +1 -0
  175. package/out/adapters/synth-po-box/adapter.js +140 -0
  176. package/out/adapters/synth-po-box/adapter.js.map +1 -0
  177. package/out/adapters/tiger/adapter.d.ts +55 -0
  178. package/out/adapters/tiger/adapter.d.ts.map +1 -0
  179. package/out/adapters/tiger/adapter.js +201 -0
  180. package/out/adapters/tiger/adapter.js.map +1 -0
  181. package/out/adapters/tiger/street-decompose.d.ts.map +1 -0
  182. package/out/adapters/tiger/street-decompose.js +68 -0
  183. package/out/adapters/tiger/street-decompose.js.map +1 -0
  184. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +56 -0
  185. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -0
  186. package/out/adapters/usgov-hrsa-fqhc/adapter.js +132 -0
  187. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -0
  188. package/out/adapters/usgov-imls-pls/adapter.d.ts +36 -0
  189. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +1 -0
  190. package/out/adapters/usgov-imls-pls/adapter.js +114 -0
  191. package/out/adapters/usgov-imls-pls/adapter.js.map +1 -0
  192. package/out/adapters/usgov-irs-bmf/adapter.d.ts +37 -0
  193. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -0
  194. package/out/adapters/usgov-irs-bmf/adapter.js +120 -0
  195. package/out/adapters/usgov-irs-bmf/adapter.js.map +1 -0
  196. package/out/adapters/usgov-nad/adapter.d.ts +48 -0
  197. package/out/adapters/usgov-nad/adapter.d.ts.map +1 -0
  198. package/out/adapters/usgov-nad/adapter.js +249 -0
  199. package/out/adapters/usgov-nad/adapter.js.map +1 -0
  200. package/out/adapters/usgov-nppes/adapter.d.ts.map +1 -0
  201. package/out/adapters/usgov-nppes/adapter.js +118 -0
  202. package/out/adapters/usgov-nppes/adapter.js.map +1 -0
  203. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -0
  204. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +154 -0
  205. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -0
  206. package/out/adapters/utils/index.d.ts +191 -0
  207. package/out/adapters/utils/index.d.ts.map +1 -0
  208. package/out/adapters/utils/index.js +206 -0
  209. package/out/adapters/utils/index.js.map +1 -0
  210. package/out/adapters/wof-admin-jp/adapter.d.ts.map +1 -0
  211. package/out/adapters/wof-admin-jp/adapter.js +161 -0
  212. package/out/adapters/wof-admin-jp/adapter.js.map +1 -0
  213. package/out/adapters/wof-admin-json/adapter.d.ts +79 -0
  214. package/out/adapters/wof-admin-json/adapter.d.ts.map +1 -0
  215. package/out/adapters/wof-admin-json/adapter.js +197 -0
  216. package/out/adapters/wof-admin-json/adapter.js.map +1 -0
  217. package/out/adapters/wof-json-rows.d.ts +62 -0
  218. package/out/adapters/wof-json-rows.d.ts.map +1 -0
  219. package/out/adapters/wof-json-rows.js +83 -0
  220. package/out/adapters/wof-json-rows.js.map +1 -0
  221. package/out/adapters/wof-postalcode-json/adapter.d.ts +65 -0
  222. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +1 -0
  223. package/out/adapters/wof-postalcode-json/adapter.js +151 -0
  224. package/out/adapters/wof-postalcode-json/adapter.js.map +1 -0
  225. package/out/build.d.ts +132 -0
  226. package/out/build.d.ts.map +1 -0
  227. package/out/build.js +245 -0
  228. package/out/build.js.map +1 -0
  229. package/out/codex/us-fips-state.d.ts.map +1 -0
  230. package/out/codex/us-fips-state.js.map +1 -0
  231. package/out/env.d.ts +46 -0
  232. package/out/env.d.ts.map +1 -0
  233. package/out/env.js +46 -0
  234. package/out/env.js.map +1 -0
  235. package/out/index.d.ts +13 -0
  236. package/out/index.d.ts.map +1 -0
  237. package/out/index.js +13 -0
  238. package/out/index.js.map +1 -0
  239. package/out/name-prone-us-suffixes.d.ts +12 -0
  240. package/out/name-prone-us-suffixes.d.ts.map +1 -0
  241. package/out/name-prone-us-suffixes.js +12 -0
  242. package/out/name-prone-us-suffixes.js.map +1 -0
  243. package/out/recipes/anchor-absorption.d.ts +20 -0
  244. package/out/recipes/anchor-absorption.d.ts.map +1 -0
  245. package/out/recipes/anchor-absorption.js +81 -0
  246. package/out/recipes/anchor-absorption.js.map +1 -0
  247. package/out/recipes/bare-country.d.ts +25 -0
  248. package/out/recipes/bare-country.d.ts.map +1 -0
  249. package/out/recipes/bare-country.js +87 -0
  250. package/out/recipes/bare-country.js.map +1 -0
  251. package/out/recipes/boundary-stress.d.ts +20 -0
  252. package/out/recipes/boundary-stress.d.ts.map +1 -0
  253. package/out/recipes/boundary-stress.js +83 -0
  254. package/out/recipes/boundary-stress.js.map +1 -0
  255. package/out/recipes/cn-organizational-units.d.ts +36 -0
  256. package/out/recipes/cn-organizational-units.d.ts.map +1 -0
  257. package/out/recipes/cn-organizational-units.js +159 -0
  258. package/out/recipes/cn-organizational-units.js.map +1 -0
  259. package/out/recipes/country-balanced.d.ts +32 -0
  260. package/out/recipes/country-balanced.d.ts.map +1 -0
  261. package/out/recipes/country-balanced.js +393 -0
  262. package/out/recipes/country-balanced.js.map +1 -0
  263. package/out/recipes/cz-pcfirst-preposition.d.ts +22 -0
  264. package/out/recipes/cz-pcfirst-preposition.d.ts.map +1 -0
  265. package/out/recipes/cz-pcfirst-preposition.js +100 -0
  266. package/out/recipes/cz-pcfirst-preposition.js.map +1 -0
  267. package/out/recipes/fr-admin-split.d.ts +38 -0
  268. package/out/recipes/fr-admin-split.d.ts.map +1 -0
  269. package/out/recipes/fr-admin-split.js +192 -0
  270. package/out/recipes/fr-admin-split.js.map +1 -0
  271. package/out/recipes/fr-bare-street.d.ts +28 -0
  272. package/out/recipes/fr-bare-street.d.ts.map +1 -0
  273. package/out/recipes/fr-bare-street.js +143 -0
  274. package/out/recipes/fr-bare-street.js.map +1 -0
  275. package/out/recipes/fr-fragment.d.ts +77 -0
  276. package/out/recipes/fr-fragment.d.ts.map +1 -0
  277. package/out/recipes/fr-fragment.js +276 -0
  278. package/out/recipes/fr-fragment.js.map +1 -0
  279. package/out/recipes/fr-lieudit.d.ts +32 -0
  280. package/out/recipes/fr-lieudit.d.ts.map +1 -0
  281. package/out/recipes/fr-lieudit.js +227 -0
  282. package/out/recipes/fr-lieudit.js.map +1 -0
  283. package/out/recipes/fr-order.d.ts +38 -0
  284. package/out/recipes/fr-order.d.ts.map +1 -0
  285. package/out/recipes/fr-order.js +197 -0
  286. package/out/recipes/fr-order.js.map +1 -0
  287. package/out/recipes/german.d.ts +44 -0
  288. package/out/recipes/german.d.ts.map +1 -0
  289. package/out/recipes/german.js +288 -0
  290. package/out/recipes/german.js.map +1 -0
  291. package/out/recipes/house-venue.d.ts +18 -0
  292. package/out/recipes/house-venue.d.ts.map +1 -0
  293. package/out/recipes/house-venue.js +73 -0
  294. package/out/recipes/house-venue.js.map +1 -0
  295. package/out/recipes/index.d.ts +24 -0
  296. package/out/recipes/index.d.ts.map +1 -0
  297. package/out/recipes/index.js +91 -0
  298. package/out/recipes/index.js.map +1 -0
  299. package/out/recipes/intersection.d.ts +42 -0
  300. package/out/recipes/intersection.d.ts.map +1 -0
  301. package/out/recipes/intersection.js +452 -0
  302. package/out/recipes/intersection.js.map +1 -0
  303. package/out/recipes/locale.d.ts +136 -0
  304. package/out/recipes/locale.d.ts.map +1 -0
  305. package/out/recipes/locale.js +460 -0
  306. package/out/recipes/locale.js.map +1 -0
  307. package/out/recipes/nl-postcode.d.ts +26 -0
  308. package/out/recipes/nl-postcode.d.ts.map +1 -0
  309. package/out/recipes/nl-postcode.js +102 -0
  310. package/out/recipes/nl-postcode.js.map +1 -0
  311. package/out/recipes/no-fragment.d.ts +43 -0
  312. package/out/recipes/no-fragment.d.ts.map +1 -0
  313. package/out/recipes/no-fragment.js +182 -0
  314. package/out/recipes/no-fragment.js.map +1 -0
  315. package/out/recipes/no-street-led.d.ts +24 -0
  316. package/out/recipes/no-street-led.d.ts.map +1 -0
  317. package/out/recipes/no-street-led.js +113 -0
  318. package/out/recipes/no-street-led.js.map +1 -0
  319. package/out/recipes/no-street.d.ts +18 -0
  320. package/out/recipes/no-street.d.ts.map +1 -0
  321. package/out/recipes/no-street.js +71 -0
  322. package/out/recipes/no-street.js.map +1 -0
  323. package/out/recipes/po-box-cedex.d.ts +38 -0
  324. package/out/recipes/po-box-cedex.d.ts.map +1 -0
  325. package/out/recipes/po-box-cedex.js +767 -0
  326. package/out/recipes/po-box-cedex.js.map +1 -0
  327. package/out/recipes/po-box.d.ts +17 -0
  328. package/out/recipes/po-box.d.ts.map +1 -0
  329. package/out/recipes/po-box.js +100 -0
  330. package/out/recipes/po-box.js.map +1 -0
  331. package/out/recipes/reviewed-postcode-tail.d.ts +47 -0
  332. package/out/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  333. package/out/recipes/reviewed-postcode-tail.js +125 -0
  334. package/out/recipes/reviewed-postcode-tail.js.map +1 -0
  335. package/out/recipes/scaffold.d.ts +324 -0
  336. package/out/recipes/scaffold.d.ts.map +1 -0
  337. package/out/recipes/scaffold.js +186 -0
  338. package/out/recipes/scaffold.js.map +1 -0
  339. package/out/recipes/si-bare-village.d.ts +32 -0
  340. package/out/recipes/si-bare-village.d.ts.map +1 -0
  341. package/out/recipes/si-bare-village.js +88 -0
  342. package/out/recipes/si-bare-village.js.map +1 -0
  343. package/out/recipes/street-affix.d.ts +89 -0
  344. package/out/recipes/street-affix.d.ts.map +1 -0
  345. package/out/recipes/street-affix.js +563 -0
  346. package/out/recipes/street-affix.js.map +1 -0
  347. package/out/recipes/street-bare.d.ts +25 -0
  348. package/out/recipes/street-bare.d.ts.map +1 -0
  349. package/out/recipes/street-bare.js +86 -0
  350. package/out/recipes/street-bare.js.map +1 -0
  351. package/out/recipes/street.d.ts +15 -0
  352. package/out/recipes/street.d.ts.map +1 -0
  353. package/out/recipes/street.js +69 -0
  354. package/out/recipes/street.js.map +1 -0
  355. package/out/recipes/sub-venue-sources.d.ts +229 -0
  356. package/out/recipes/sub-venue-sources.d.ts.map +1 -0
  357. package/out/recipes/sub-venue-sources.js +653 -0
  358. package/out/recipes/sub-venue-sources.js.map +1 -0
  359. package/out/recipes/sub-venue.d.ts +269 -0
  360. package/out/recipes/sub-venue.d.ts.map +1 -0
  361. package/out/recipes/sub-venue.js +725 -0
  362. package/out/recipes/sub-venue.js.map +1 -0
  363. package/out/recipes/trailing-region.d.ts +74 -0
  364. package/out/recipes/trailing-region.d.ts.map +1 -0
  365. package/out/recipes/trailing-region.js +157 -0
  366. package/out/recipes/trailing-region.js.map +1 -0
  367. package/out/recipes/unit.d.ts +29 -0
  368. package/out/recipes/unit.d.ts.map +1 -0
  369. package/out/recipes/unit.js +230 -0
  370. package/out/recipes/unit.js.map +1 -0
  371. package/out/runner.d.ts +130 -0
  372. package/out/runner.d.ts.map +1 -0
  373. package/out/runner.js +185 -0
  374. package/out/runner.js.map +1 -0
  375. package/out/synthesizers/anchor-absorption.d.ts +63 -0
  376. package/out/synthesizers/anchor-absorption.d.ts.map +1 -0
  377. package/out/synthesizers/anchor-absorption.js +221 -0
  378. package/out/synthesizers/anchor-absorption.js.map +1 -0
  379. package/out/synthesizers/boundary-stress.d.ts +78 -0
  380. package/out/synthesizers/boundary-stress.d.ts.map +1 -0
  381. package/out/synthesizers/boundary-stress.js +455 -0
  382. package/out/synthesizers/boundary-stress.js.map +1 -0
  383. package/out/synthesizers/german.d.ts +115 -0
  384. package/out/synthesizers/german.d.ts.map +1 -0
  385. package/out/synthesizers/german.js +149 -0
  386. package/out/synthesizers/german.js.map +1 -0
  387. package/out/synthesizers/house-venue.d.ts +56 -0
  388. package/out/synthesizers/house-venue.d.ts.map +1 -0
  389. package/out/synthesizers/house-venue.js +247 -0
  390. package/out/synthesizers/house-venue.js.map +1 -0
  391. package/out/synthesizers/intersection.d.ts +52 -0
  392. package/out/synthesizers/intersection.d.ts.map +1 -0
  393. package/out/synthesizers/intersection.js +175 -0
  394. package/out/synthesizers/intersection.js.map +1 -0
  395. package/out/synthesizers/no-street.d.ts +72 -0
  396. package/out/synthesizers/no-street.d.ts.map +1 -0
  397. package/out/synthesizers/no-street.js +262 -0
  398. package/out/synthesizers/no-street.js.map +1 -0
  399. package/out/synthesizers/po-box.d.ts +108 -0
  400. package/out/synthesizers/po-box.d.ts.map +1 -0
  401. package/out/synthesizers/po-box.js +250 -0
  402. package/out/synthesizers/po-box.js.map +1 -0
  403. package/out/synthesizers/street.d.ts +54 -0
  404. package/out/synthesizers/street.d.ts.map +1 -0
  405. package/out/synthesizers/street.js +218 -0
  406. package/out/synthesizers/street.js.map +1 -0
  407. package/out/synthesizers/utils.d.ts +241 -0
  408. package/out/synthesizers/utils.d.ts.map +1 -0
  409. package/out/synthesizers/utils.js +776 -0
  410. package/out/synthesizers/utils.js.map +1 -0
  411. package/out/test-kit/corpus-recipe.d.ts +59 -0
  412. package/out/test-kit/corpus-recipe.d.ts.map +1 -0
  413. package/out/test-kit/corpus-recipe.js +39 -0
  414. package/out/test-kit/corpus-recipe.js.map +1 -0
  415. package/out/test-kit/index.d.ts +48 -0
  416. package/out/test-kit/index.d.ts.map +1 -0
  417. package/out/test-kit/index.js +78 -0
  418. package/out/test-kit/index.js.map +1 -0
  419. package/out/tools/align-slice.d.ts +7 -0
  420. package/out/tools/align-slice.d.ts.map +1 -0
  421. package/out/tools/align-slice.js +55 -0
  422. package/out/tools/align-slice.js.map +1 -0
  423. package/out/tools/audit.d.ts +29 -0
  424. package/out/tools/audit.d.ts.map +1 -0
  425. package/out/tools/audit.js +282 -0
  426. package/out/tools/audit.js.map +1 -0
  427. package/out/tools/corpus-stats.d.ts +44 -0
  428. package/out/tools/corpus-stats.d.ts.map +1 -0
  429. package/out/tools/corpus-stats.js +102 -0
  430. package/out/tools/corpus-stats.js.map +1 -0
  431. package/out/tools/fetch/ban.d.ts +31 -0
  432. package/out/tools/fetch/ban.d.ts.map +1 -0
  433. package/out/tools/fetch/ban.js +239 -0
  434. package/out/tools/fetch/ban.js.map +1 -0
  435. package/out/tools/fetch/download.d.ts +117 -0
  436. package/out/tools/fetch/download.d.ts.map +1 -0
  437. package/out/tools/fetch/download.js +160 -0
  438. package/out/tools/fetch/download.js.map +1 -0
  439. package/out/tools/fetch/geonames-dump.d.ts +91 -0
  440. package/out/tools/fetch/geonames-dump.d.ts.map +1 -0
  441. package/out/tools/fetch/geonames-dump.js +171 -0
  442. package/out/tools/fetch/geonames-dump.js.map +1 -0
  443. package/out/tools/fetch/geonames-postal.d.ts +76 -0
  444. package/out/tools/fetch/geonames-postal.d.ts.map +1 -0
  445. package/out/tools/fetch/geonames-postal.js +126 -0
  446. package/out/tools/fetch/geonames-postal.js.map +1 -0
  447. package/out/tools/fetch/hrsa.d.ts +18 -0
  448. package/out/tools/fetch/hrsa.d.ts.map +1 -0
  449. package/out/tools/fetch/hrsa.js +46 -0
  450. package/out/tools/fetch/hrsa.js.map +1 -0
  451. package/out/tools/fetch/imls-pls.d.ts +25 -0
  452. package/out/tools/fetch/imls-pls.d.ts.map +1 -0
  453. package/out/tools/fetch/imls-pls.js +108 -0
  454. package/out/tools/fetch/imls-pls.js.map +1 -0
  455. package/out/tools/fetch/index.d.ts +144 -0
  456. package/out/tools/fetch/index.d.ts.map +1 -0
  457. package/out/tools/fetch/index.js +143 -0
  458. package/out/tools/fetch/index.js.map +1 -0
  459. package/out/tools/fetch/nad.d.ts +70 -0
  460. package/out/tools/fetch/nad.d.ts.map +1 -0
  461. package/out/tools/fetch/nad.js +234 -0
  462. package/out/tools/fetch/nad.js.map +1 -0
  463. package/out/tools/fetch/nppes.d.ts +26 -0
  464. package/out/tools/fetch/nppes.d.ts.map +1 -0
  465. package/out/tools/fetch/nppes.js +126 -0
  466. package/out/tools/fetch/nppes.js.map +1 -0
  467. package/out/tools/fetch/openaddresses.d.ts +9 -0
  468. package/out/tools/fetch/openaddresses.d.ts.map +1 -0
  469. package/out/tools/fetch/openaddresses.js +279 -0
  470. package/out/tools/fetch/openaddresses.js.map +1 -0
  471. package/out/tools/fetch/ourairports.d.ts +45 -0
  472. package/out/tools/fetch/ourairports.d.ts.map +1 -0
  473. package/out/tools/fetch/ourairports.js +128 -0
  474. package/out/tools/fetch/ourairports.js.map +1 -0
  475. package/out/tools/fetch/ppd.d.ts.map +1 -0
  476. package/out/tools/fetch/ppd.js +85 -0
  477. package/out/tools/fetch/ppd.js.map +1 -0
  478. package/out/tools/fetch/state-hi-schools.d.ts +26 -0
  479. package/out/tools/fetch/state-hi-schools.d.ts.map +1 -0
  480. package/out/tools/fetch/state-hi-schools.js +112 -0
  481. package/out/tools/fetch/state-hi-schools.js.map +1 -0
  482. package/out/tools/fetch/state-sources.d.ts +26 -0
  483. package/out/tools/fetch/state-sources.d.ts.map +1 -0
  484. package/out/tools/fetch/state-sources.js +111 -0
  485. package/out/tools/fetch/state-sources.js.map +1 -0
  486. package/out/tools/fetch/tiger-full.d.ts +22 -0
  487. package/out/tools/fetch/tiger-full.d.ts.map +1 -0
  488. package/out/tools/fetch/tiger-full.js +217 -0
  489. package/out/tools/fetch/tiger-full.js.map +1 -0
  490. package/out/tools/fetch/wikidata-subvenue.d.ts +171 -0
  491. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -0
  492. package/out/tools/fetch/wikidata-subvenue.js +274 -0
  493. package/out/tools/fetch/wikidata-subvenue.js.map +1 -0
  494. package/out/tools/gb-title-case.d.ts.map +1 -0
  495. package/out/tools/gb-title-case.js.map +1 -0
  496. package/out/tools/golden-expand.d.ts +90 -0
  497. package/out/tools/golden-expand.d.ts.map +1 -0
  498. package/out/tools/golden-expand.js +406 -0
  499. package/out/tools/golden-expand.js.map +1 -0
  500. package/out/tools/golden-promote.d.ts.map +1 -0
  501. package/out/tools/golden-promote.js +240 -0
  502. package/out/tools/golden-promote.js.map +1 -0
  503. package/out/tools/golden-relabel-street.d.ts +196 -0
  504. package/out/tools/golden-relabel-street.d.ts.map +1 -0
  505. package/out/tools/golden-relabel-street.js +440 -0
  506. package/out/tools/golden-relabel-street.js.map +1 -0
  507. package/out/tools/index.d.ts +28 -0
  508. package/out/tools/index.d.ts.map +1 -0
  509. package/out/tools/index.js +28 -0
  510. package/out/tools/index.js.map +1 -0
  511. package/out/tools/ingest-csv.d.ts.map +1 -0
  512. package/out/tools/ingest-csv.js +265 -0
  513. package/out/tools/ingest-csv.js.map +1 -0
  514. package/out/tools/jsonl-to-parquet.d.ts +61 -0
  515. package/out/tools/jsonl-to-parquet.d.ts.map +1 -0
  516. package/out/tools/jsonl-to-parquet.js +150 -0
  517. package/out/tools/jsonl-to-parquet.js.map +1 -0
  518. package/out/tools/lint-slice-vocab.d.ts +90 -0
  519. package/out/tools/lint-slice-vocab.d.ts.map +1 -0
  520. package/out/tools/lint-slice-vocab.js +267 -0
  521. package/out/tools/lint-slice-vocab.js.map +1 -0
  522. package/out/tools/lint-slice.d.ts +93 -0
  523. package/out/tools/lint-slice.d.ts.map +1 -0
  524. package/out/tools/lint-slice.js +322 -0
  525. package/out/tools/lint-slice.js.map +1 -0
  526. package/out/tools/overlay-manifest.d.ts +39 -0
  527. package/out/tools/overlay-manifest.d.ts.map +1 -0
  528. package/out/tools/overlay-manifest.js +90 -0
  529. package/out/tools/overlay-manifest.js.map +1 -0
  530. package/out/tools/overture-subvenue.d.ts +112 -0
  531. package/out/tools/overture-subvenue.d.ts.map +1 -0
  532. package/out/tools/overture-subvenue.js +139 -0
  533. package/out/tools/overture-subvenue.js.map +1 -0
  534. package/out/tools/postcode-triples.d.ts +174 -0
  535. package/out/tools/postcode-triples.d.ts.map +1 -0
  536. package/out/tools/postcode-triples.js +292 -0
  537. package/out/tools/postcode-triples.js.map +1 -0
  538. package/out/tools/slice-kryptonite.d.ts +32 -0
  539. package/out/tools/slice-kryptonite.d.ts.map +1 -0
  540. package/out/tools/slice-kryptonite.js +99 -0
  541. package/out/tools/slice-kryptonite.js.map +1 -0
  542. package/out/tools/slice-translit.d.ts +51 -0
  543. package/out/tools/slice-translit.d.ts.map +1 -0
  544. package/out/tools/slice-translit.js +166 -0
  545. package/out/tools/slice-translit.js.map +1 -0
  546. package/out/tools/sub-venue/harvest.d.ts +100 -0
  547. package/out/tools/sub-venue/harvest.d.ts.map +1 -0
  548. package/out/tools/sub-venue/harvest.js +168 -0
  549. package/out/tools/sub-venue/harvest.js.map +1 -0
  550. package/out/tools/sub-venue/head-nouns.d.ts +50 -0
  551. package/out/tools/sub-venue/head-nouns.d.ts.map +1 -0
  552. package/out/tools/sub-venue/head-nouns.js +213 -0
  553. package/out/tools/sub-venue/head-nouns.js.map +1 -0
  554. package/out/tools/sub-venue/surfaces.d.ts +45 -0
  555. package/out/tools/sub-venue/surfaces.d.ts.map +1 -0
  556. package/out/tools/sub-venue/surfaces.js +77 -0
  557. package/out/tools/sub-venue/surfaces.js.map +1 -0
  558. package/out/tools/sub-venue/table.d.ts +229 -0
  559. package/out/tools/sub-venue/table.d.ts.map +1 -0
  560. package/out/tools/sub-venue/table.js +108 -0
  561. package/out/tools/sub-venue/table.js.map +1 -0
  562. package/out/tools/sub-venue/wikidata.d.ts +26 -0
  563. package/out/tools/sub-venue/wikidata.d.ts.map +1 -0
  564. package/out/tools/sub-venue/wikidata.js +62 -0
  565. package/out/tools/sub-venue/wikidata.js.map +1 -0
  566. package/out/tools/sub-venue-lexicon.d.ts +156 -0
  567. package/out/tools/sub-venue-lexicon.d.ts.map +1 -0
  568. package/out/tools/sub-venue-lexicon.js +283 -0
  569. package/out/tools/sub-venue-lexicon.js.map +1 -0
  570. package/out/tools/sub-venue-promotions.d.ts +94 -0
  571. package/out/tools/sub-venue-promotions.d.ts.map +1 -0
  572. package/out/tools/sub-venue-promotions.js +266 -0
  573. package/out/tools/sub-venue-promotions.js.map +1 -0
  574. package/out/types.d.ts +221 -0
  575. package/out/types.d.ts.map +1 -0
  576. package/out/types.js.map +1 -0
  577. package/out/utils/align.d.ts +93 -0
  578. package/out/utils/align.d.ts.map +1 -0
  579. package/out/utils/align.js +234 -0
  580. package/out/utils/align.js.map +1 -0
  581. package/out/utils/golden.d.ts +85 -0
  582. package/out/utils/golden.d.ts.map +1 -0
  583. package/out/utils/golden.js +127 -0
  584. package/out/utils/golden.js.map +1 -0
  585. package/out/utils/index.d.ts +14 -0
  586. package/out/utils/index.d.ts.map +1 -0
  587. package/out/utils/index.js +14 -0
  588. package/out/utils/index.js.map +1 -0
  589. package/out/utils/license.d.ts.map +1 -0
  590. package/out/utils/license.js.map +1 -0
  591. package/out/utils/parquet.d.ts +178 -0
  592. package/out/utils/parquet.d.ts.map +1 -0
  593. package/out/utils/parquet.js +371 -0
  594. package/out/utils/parquet.js.map +1 -0
  595. package/out/utils/slice-stats.d.ts +52 -0
  596. package/out/utils/slice-stats.d.ts.map +1 -0
  597. package/out/utils/slice-stats.js +58 -0
  598. package/out/utils/slice-stats.js.map +1 -0
  599. package/out/utils/split.d.ts +128 -0
  600. package/out/utils/split.d.ts.map +1 -0
  601. package/out/utils/split.js +204 -0
  602. package/out/utils/split.js.map +1 -0
  603. package/out/utils/tokenize.d.ts +64 -0
  604. package/out/utils/tokenize.d.ts.map +1 -0
  605. package/out/utils/tokenize.js +82 -0
  606. package/out/utils/tokenize.js.map +1 -0
  607. package/out/utils/wof-json.d.ts +113 -0
  608. package/out/utils/wof-json.d.ts.map +1 -0
  609. package/out/utils/wof-json.js +173 -0
  610. package/out/utils/wof-json.js.map +1 -0
  611. package/package.json +259 -194
  612. package/out/src/adapters/ban/adapter.d.ts.map +0 -1
  613. package/out/src/adapters/ban/adapter.js +0 -149
  614. package/out/src/adapters/ban/adapter.js.map +0 -1
  615. package/out/src/adapters/ban/street-decompose.d.ts.map +0 -1
  616. package/out/src/adapters/ban/street-decompose.js +0 -75
  617. package/out/src/adapters/ban/street-decompose.js.map +0 -1
  618. package/out/src/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  619. package/out/src/adapters/fcc-bdc/adapter.js +0 -144
  620. package/out/src/adapters/fcc-bdc/adapter.js.map +0 -1
  621. package/out/src/adapters/geonames/adapter.d.ts.map +0 -1
  622. package/out/src/adapters/geonames/adapter.js +0 -176
  623. package/out/src/adapters/geonames/adapter.js.map +0 -1
  624. package/out/src/adapters/geonames-postal/adapter.d.ts +0 -41
  625. package/out/src/adapters/geonames-postal/adapter.d.ts.map +0 -1
  626. package/out/src/adapters/geonames-postal/adapter.js +0 -104
  627. package/out/src/adapters/geonames-postal/adapter.js.map +0 -1
  628. package/out/src/adapters/gnaf/adapter.d.ts +0 -49
  629. package/out/src/adapters/gnaf/adapter.d.ts.map +0 -1
  630. package/out/src/adapters/gnaf/adapter.js +0 -124
  631. package/out/src/adapters/gnaf/adapter.js.map +0 -1
  632. package/out/src/adapters/gnaf/assemble.d.ts +0 -65
  633. package/out/src/adapters/gnaf/assemble.d.ts.map +0 -1
  634. package/out/src/adapters/gnaf/assemble.js +0 -154
  635. package/out/src/adapters/gnaf/assemble.js.map +0 -1
  636. package/out/src/adapters/index.d.ts +0 -51
  637. package/out/src/adapters/index.d.ts.map +0 -1
  638. package/out/src/adapters/index.js +0 -95
  639. package/out/src/adapters/index.js.map +0 -1
  640. package/out/src/adapters/openaddresses/adapter.d.ts.map +0 -1
  641. package/out/src/adapters/openaddresses/adapter.js +0 -186
  642. package/out/src/adapters/openaddresses/adapter.js.map +0 -1
  643. package/out/src/adapters/overture/adapter.d.ts +0 -48
  644. package/out/src/adapters/overture/adapter.d.ts.map +0 -1
  645. package/out/src/adapters/overture/adapter.js +0 -125
  646. package/out/src/adapters/overture/adapter.js.map +0 -1
  647. package/out/src/adapters/state-hi-schools/adapter.d.ts +0 -47
  648. package/out/src/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  649. package/out/src/adapters/state-hi-schools/adapter.js +0 -133
  650. package/out/src/adapters/state-hi-schools/adapter.js.map +0 -1
  651. package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  652. package/out/src/adapters/state-ia-contractors/adapter.js.map +0 -1
  653. package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  654. package/out/src/adapters/state-ny-notaries/adapter.js.map +0 -1
  655. package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  656. package/out/src/adapters/state-tx-notaries/adapter.js.map +0 -1
  657. package/out/src/adapters/synth-po-box/adapter.d.ts.map +0 -1
  658. package/out/src/adapters/synth-po-box/adapter.js +0 -140
  659. package/out/src/adapters/synth-po-box/adapter.js.map +0 -1
  660. package/out/src/adapters/tiger/adapter.d.ts +0 -55
  661. package/out/src/adapters/tiger/adapter.d.ts.map +0 -1
  662. package/out/src/adapters/tiger/adapter.js +0 -201
  663. package/out/src/adapters/tiger/adapter.js.map +0 -1
  664. package/out/src/adapters/tiger/street-decompose.d.ts.map +0 -1
  665. package/out/src/adapters/tiger/street-decompose.js +0 -90
  666. package/out/src/adapters/tiger/street-decompose.js.map +0 -1
  667. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -47
  668. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  669. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +0 -139
  670. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  671. package/out/src/adapters/usgov-imls-pls/adapter.d.ts +0 -36
  672. package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  673. package/out/src/adapters/usgov-imls-pls/adapter.js +0 -114
  674. package/out/src/adapters/usgov-imls-pls/adapter.js.map +0 -1
  675. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +0 -37
  676. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  677. package/out/src/adapters/usgov-irs-bmf/adapter.js +0 -124
  678. package/out/src/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  679. package/out/src/adapters/usgov-nad/adapter.d.ts +0 -48
  680. package/out/src/adapters/usgov-nad/adapter.d.ts.map +0 -1
  681. package/out/src/adapters/usgov-nad/adapter.js +0 -252
  682. package/out/src/adapters/usgov-nad/adapter.js.map +0 -1
  683. package/out/src/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  684. package/out/src/adapters/usgov-nppes/adapter.js +0 -116
  685. package/out/src/adapters/usgov-nppes/adapter.js.map +0 -1
  686. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  687. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -156
  688. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  689. package/out/src/adapters/utils/index.d.ts +0 -150
  690. package/out/src/adapters/utils/index.d.ts.map +0 -1
  691. package/out/src/adapters/utils/index.js +0 -159
  692. package/out/src/adapters/utils/index.js.map +0 -1
  693. package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  694. package/out/src/adapters/wof-admin-jp/adapter.js +0 -164
  695. package/out/src/adapters/wof-admin-jp/adapter.js.map +0 -1
  696. package/out/src/adapters/wof-admin-json/adapter.d.ts +0 -82
  697. package/out/src/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  698. package/out/src/adapters/wof-admin-json/adapter.js +0 -224
  699. package/out/src/adapters/wof-admin-json/adapter.js.map +0 -1
  700. package/out/src/adapters/wof-json-rows.d.ts +0 -32
  701. package/out/src/adapters/wof-json-rows.d.ts.map +0 -1
  702. package/out/src/adapters/wof-json-rows.js +0 -45
  703. package/out/src/adapters/wof-json-rows.js.map +0 -1
  704. package/out/src/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  705. package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  706. package/out/src/adapters/wof-postalcode-json/adapter.js +0 -160
  707. package/out/src/adapters/wof-postalcode-json/adapter.js.map +0 -1
  708. package/out/src/build.d.ts +0 -132
  709. package/out/src/build.d.ts.map +0 -1
  710. package/out/src/build.js +0 -251
  711. package/out/src/build.js.map +0 -1
  712. package/out/src/codex/us-fips-state.d.ts.map +0 -1
  713. package/out/src/codex/us-fips-state.js.map +0 -1
  714. package/out/src/index.d.ts +0 -14
  715. package/out/src/index.d.ts.map +0 -1
  716. package/out/src/index.js +0 -14
  717. package/out/src/index.js.map +0 -1
  718. package/out/src/name-prone-us-suffixes.d.ts +0 -12
  719. package/out/src/name-prone-us-suffixes.d.ts.map +0 -1
  720. package/out/src/name-prone-us-suffixes.js +0 -12
  721. package/out/src/name-prone-us-suffixes.js.map +0 -1
  722. package/out/src/parquet-wrapper/index.d.ts +0 -9
  723. package/out/src/parquet-wrapper/index.d.ts.map +0 -1
  724. package/out/src/parquet-wrapper/index.js +0 -9
  725. package/out/src/parquet-wrapper/index.js.map +0 -1
  726. package/out/src/parquet-wrapper/reader.d.ts +0 -34
  727. package/out/src/parquet-wrapper/reader.d.ts.map +0 -1
  728. package/out/src/parquet-wrapper/reader.js +0 -69
  729. package/out/src/parquet-wrapper/reader.js.map +0 -1
  730. package/out/src/parquet-wrapper/schema.d.ts +0 -49
  731. package/out/src/parquet-wrapper/schema.d.ts.map +0 -1
  732. package/out/src/parquet-wrapper/schema.js +0 -55
  733. package/out/src/parquet-wrapper/schema.js.map +0 -1
  734. package/out/src/parquet-wrapper/writer.d.ts +0 -46
  735. package/out/src/parquet-wrapper/writer.d.ts.map +0 -1
  736. package/out/src/parquet-wrapper/writer.js +0 -76
  737. package/out/src/parquet-wrapper/writer.js.map +0 -1
  738. package/out/src/runner.d.ts +0 -126
  739. package/out/src/runner.d.ts.map +0 -1
  740. package/out/src/runner.js +0 -189
  741. package/out/src/runner.js.map +0 -1
  742. package/out/src/shard-recipes/anchor-absorption.d.ts +0 -20
  743. package/out/src/shard-recipes/anchor-absorption.d.ts.map +0 -1
  744. package/out/src/shard-recipes/anchor-absorption.js +0 -82
  745. package/out/src/shard-recipes/anchor-absorption.js.map +0 -1
  746. package/out/src/shard-recipes/bare-country.d.ts +0 -25
  747. package/out/src/shard-recipes/bare-country.d.ts.map +0 -1
  748. package/out/src/shard-recipes/bare-country.js +0 -87
  749. package/out/src/shard-recipes/bare-country.js.map +0 -1
  750. package/out/src/shard-recipes/boundary-stress.d.ts +0 -20
  751. package/out/src/shard-recipes/boundary-stress.d.ts.map +0 -1
  752. package/out/src/shard-recipes/boundary-stress.js +0 -83
  753. package/out/src/shard-recipes/boundary-stress.js.map +0 -1
  754. package/out/src/shard-recipes/country-balanced.d.ts +0 -32
  755. package/out/src/shard-recipes/country-balanced.d.ts.map +0 -1
  756. package/out/src/shard-recipes/country-balanced.js +0 -406
  757. package/out/src/shard-recipes/country-balanced.js.map +0 -1
  758. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts +0 -22
  759. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  760. package/out/src/shard-recipes/cz-pcfirst-preposition.js +0 -100
  761. package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +0 -1
  762. package/out/src/shard-recipes/fr-admin-split.d.ts +0 -38
  763. package/out/src/shard-recipes/fr-admin-split.d.ts.map +0 -1
  764. package/out/src/shard-recipes/fr-admin-split.js +0 -188
  765. package/out/src/shard-recipes/fr-admin-split.js.map +0 -1
  766. package/out/src/shard-recipes/fr-bare-street.d.ts +0 -28
  767. package/out/src/shard-recipes/fr-bare-street.d.ts.map +0 -1
  768. package/out/src/shard-recipes/fr-bare-street.js +0 -143
  769. package/out/src/shard-recipes/fr-bare-street.js.map +0 -1
  770. package/out/src/shard-recipes/fr-fragment.d.ts +0 -77
  771. package/out/src/shard-recipes/fr-fragment.d.ts.map +0 -1
  772. package/out/src/shard-recipes/fr-fragment.js +0 -276
  773. package/out/src/shard-recipes/fr-fragment.js.map +0 -1
  774. package/out/src/shard-recipes/fr-lieudit.d.ts +0 -32
  775. package/out/src/shard-recipes/fr-lieudit.d.ts.map +0 -1
  776. package/out/src/shard-recipes/fr-lieudit.js +0 -226
  777. package/out/src/shard-recipes/fr-lieudit.js.map +0 -1
  778. package/out/src/shard-recipes/fr-order.d.ts +0 -38
  779. package/out/src/shard-recipes/fr-order.d.ts.map +0 -1
  780. package/out/src/shard-recipes/fr-order.js +0 -208
  781. package/out/src/shard-recipes/fr-order.js.map +0 -1
  782. package/out/src/shard-recipes/german.d.ts +0 -23
  783. package/out/src/shard-recipes/german.d.ts.map +0 -1
  784. package/out/src/shard-recipes/german.js +0 -132
  785. package/out/src/shard-recipes/german.js.map +0 -1
  786. package/out/src/shard-recipes/house-venue.d.ts +0 -18
  787. package/out/src/shard-recipes/house-venue.d.ts.map +0 -1
  788. package/out/src/shard-recipes/house-venue.js +0 -74
  789. package/out/src/shard-recipes/house-venue.js.map +0 -1
  790. package/out/src/shard-recipes/index.d.ts +0 -24
  791. package/out/src/shard-recipes/index.d.ts.map +0 -1
  792. package/out/src/shard-recipes/index.js +0 -89
  793. package/out/src/shard-recipes/index.js.map +0 -1
  794. package/out/src/shard-recipes/intersection.d.ts +0 -42
  795. package/out/src/shard-recipes/intersection.d.ts.map +0 -1
  796. package/out/src/shard-recipes/intersection.js +0 -460
  797. package/out/src/shard-recipes/intersection.js.map +0 -1
  798. package/out/src/shard-recipes/locale.d.ts +0 -135
  799. package/out/src/shard-recipes/locale.d.ts.map +0 -1
  800. package/out/src/shard-recipes/locale.js +0 -459
  801. package/out/src/shard-recipes/locale.js.map +0 -1
  802. package/out/src/shard-recipes/nl-postcode.d.ts +0 -26
  803. package/out/src/shard-recipes/nl-postcode.d.ts.map +0 -1
  804. package/out/src/shard-recipes/nl-postcode.js +0 -102
  805. package/out/src/shard-recipes/nl-postcode.js.map +0 -1
  806. package/out/src/shard-recipes/no-fragment.d.ts +0 -43
  807. package/out/src/shard-recipes/no-fragment.d.ts.map +0 -1
  808. package/out/src/shard-recipes/no-fragment.js +0 -188
  809. package/out/src/shard-recipes/no-fragment.js.map +0 -1
  810. package/out/src/shard-recipes/no-street-led.d.ts +0 -24
  811. package/out/src/shard-recipes/no-street-led.d.ts.map +0 -1
  812. package/out/src/shard-recipes/no-street-led.js +0 -121
  813. package/out/src/shard-recipes/no-street-led.js.map +0 -1
  814. package/out/src/shard-recipes/no-street.d.ts +0 -18
  815. package/out/src/shard-recipes/no-street.d.ts.map +0 -1
  816. package/out/src/shard-recipes/no-street.js +0 -72
  817. package/out/src/shard-recipes/no-street.js.map +0 -1
  818. package/out/src/shard-recipes/po-box-cedex.d.ts +0 -38
  819. package/out/src/shard-recipes/po-box-cedex.d.ts.map +0 -1
  820. package/out/src/shard-recipes/po-box-cedex.js +0 -726
  821. package/out/src/shard-recipes/po-box-cedex.js.map +0 -1
  822. package/out/src/shard-recipes/po-box.d.ts +0 -17
  823. package/out/src/shard-recipes/po-box.d.ts.map +0 -1
  824. package/out/src/shard-recipes/po-box.js +0 -101
  825. package/out/src/shard-recipes/po-box.js.map +0 -1
  826. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts +0 -47
  827. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts.map +0 -1
  828. package/out/src/shard-recipes/reviewed-postcode-tail.js +0 -125
  829. package/out/src/shard-recipes/reviewed-postcode-tail.js.map +0 -1
  830. package/out/src/shard-recipes/scaffold.d.ts +0 -246
  831. package/out/src/shard-recipes/scaffold.d.ts.map +0 -1
  832. package/out/src/shard-recipes/scaffold.js +0 -137
  833. package/out/src/shard-recipes/scaffold.js.map +0 -1
  834. package/out/src/shard-recipes/si-bare-village.d.ts +0 -32
  835. package/out/src/shard-recipes/si-bare-village.d.ts.map +0 -1
  836. package/out/src/shard-recipes/si-bare-village.js +0 -88
  837. package/out/src/shard-recipes/si-bare-village.js.map +0 -1
  838. package/out/src/shard-recipes/street-affix.d.ts +0 -89
  839. package/out/src/shard-recipes/street-affix.d.ts.map +0 -1
  840. package/out/src/shard-recipes/street-affix.js +0 -578
  841. package/out/src/shard-recipes/street-affix.js.map +0 -1
  842. package/out/src/shard-recipes/street-bare.d.ts +0 -25
  843. package/out/src/shard-recipes/street-bare.d.ts.map +0 -1
  844. package/out/src/shard-recipes/street-bare.js +0 -86
  845. package/out/src/shard-recipes/street-bare.js.map +0 -1
  846. package/out/src/shard-recipes/street.d.ts +0 -15
  847. package/out/src/shard-recipes/street.d.ts.map +0 -1
  848. package/out/src/shard-recipes/street.js +0 -69
  849. package/out/src/shard-recipes/street.js.map +0 -1
  850. package/out/src/shard-recipes/sub-venue-sources.d.ts +0 -228
  851. package/out/src/shard-recipes/sub-venue-sources.d.ts.map +0 -1
  852. package/out/src/shard-recipes/sub-venue-sources.js +0 -664
  853. package/out/src/shard-recipes/sub-venue-sources.js.map +0 -1
  854. package/out/src/shard-recipes/sub-venue.d.ts +0 -269
  855. package/out/src/shard-recipes/sub-venue.d.ts.map +0 -1
  856. package/out/src/shard-recipes/sub-venue.js +0 -710
  857. package/out/src/shard-recipes/sub-venue.js.map +0 -1
  858. package/out/src/shard-recipes/trailing-region.d.ts +0 -74
  859. package/out/src/shard-recipes/trailing-region.d.ts.map +0 -1
  860. package/out/src/shard-recipes/trailing-region.js +0 -157
  861. package/out/src/shard-recipes/trailing-region.js.map +0 -1
  862. package/out/src/shard-recipes/unit.d.ts +0 -29
  863. package/out/src/shard-recipes/unit.d.ts.map +0 -1
  864. package/out/src/shard-recipes/unit.js +0 -243
  865. package/out/src/shard-recipes/unit.js.map +0 -1
  866. package/out/src/synthesizers/anchor-absorption.d.ts +0 -63
  867. package/out/src/synthesizers/anchor-absorption.d.ts.map +0 -1
  868. package/out/src/synthesizers/anchor-absorption.js +0 -223
  869. package/out/src/synthesizers/anchor-absorption.js.map +0 -1
  870. package/out/src/synthesizers/boundary-stress.d.ts +0 -78
  871. package/out/src/synthesizers/boundary-stress.d.ts.map +0 -1
  872. package/out/src/synthesizers/boundary-stress.js +0 -455
  873. package/out/src/synthesizers/boundary-stress.js.map +0 -1
  874. package/out/src/synthesizers/german.d.ts +0 -107
  875. package/out/src/synthesizers/german.d.ts.map +0 -1
  876. package/out/src/synthesizers/german.js +0 -148
  877. package/out/src/synthesizers/german.js.map +0 -1
  878. package/out/src/synthesizers/house-venue.d.ts +0 -56
  879. package/out/src/synthesizers/house-venue.d.ts.map +0 -1
  880. package/out/src/synthesizers/house-venue.js +0 -267
  881. package/out/src/synthesizers/house-venue.js.map +0 -1
  882. package/out/src/synthesizers/intersection.d.ts +0 -52
  883. package/out/src/synthesizers/intersection.d.ts.map +0 -1
  884. package/out/src/synthesizers/intersection.js +0 -175
  885. package/out/src/synthesizers/intersection.js.map +0 -1
  886. package/out/src/synthesizers/no-street.d.ts +0 -72
  887. package/out/src/synthesizers/no-street.d.ts.map +0 -1
  888. package/out/src/synthesizers/no-street.js +0 -282
  889. package/out/src/synthesizers/no-street.js.map +0 -1
  890. package/out/src/synthesizers/po-box.d.ts +0 -104
  891. package/out/src/synthesizers/po-box.d.ts.map +0 -1
  892. package/out/src/synthesizers/po-box.js +0 -266
  893. package/out/src/synthesizers/po-box.js.map +0 -1
  894. package/out/src/synthesizers/street.d.ts +0 -54
  895. package/out/src/synthesizers/street.d.ts.map +0 -1
  896. package/out/src/synthesizers/street.js +0 -221
  897. package/out/src/synthesizers/street.js.map +0 -1
  898. package/out/src/synthesizers/utils.d.ts +0 -203
  899. package/out/src/synthesizers/utils.d.ts.map +0 -1
  900. package/out/src/synthesizers/utils.js +0 -708
  901. package/out/src/synthesizers/utils.js.map +0 -1
  902. package/out/src/tools/align-shard.d.ts +0 -8
  903. package/out/src/tools/align-shard.d.ts.map +0 -1
  904. package/out/src/tools/align-shard.js +0 -56
  905. package/out/src/tools/align-shard.js.map +0 -1
  906. package/out/src/tools/audit.d.ts +0 -28
  907. package/out/src/tools/audit.d.ts.map +0 -1
  908. package/out/src/tools/audit.js +0 -285
  909. package/out/src/tools/audit.js.map +0 -1
  910. package/out/src/tools/corpus-stats.d.ts +0 -44
  911. package/out/src/tools/corpus-stats.d.ts.map +0 -1
  912. package/out/src/tools/corpus-stats.js +0 -138
  913. package/out/src/tools/corpus-stats.js.map +0 -1
  914. package/out/src/tools/fetch/ban.d.ts +0 -31
  915. package/out/src/tools/fetch/ban.d.ts.map +0 -1
  916. package/out/src/tools/fetch/ban.js +0 -239
  917. package/out/src/tools/fetch/ban.js.map +0 -1
  918. package/out/src/tools/fetch/download.d.ts +0 -78
  919. package/out/src/tools/fetch/download.d.ts.map +0 -1
  920. package/out/src/tools/fetch/download.js +0 -116
  921. package/out/src/tools/fetch/download.js.map +0 -1
  922. package/out/src/tools/fetch/geonames-dump.d.ts +0 -87
  923. package/out/src/tools/fetch/geonames-dump.d.ts.map +0 -1
  924. package/out/src/tools/fetch/geonames-dump.js +0 -178
  925. package/out/src/tools/fetch/geonames-dump.js.map +0 -1
  926. package/out/src/tools/fetch/geonames-postal.d.ts +0 -76
  927. package/out/src/tools/fetch/geonames-postal.d.ts.map +0 -1
  928. package/out/src/tools/fetch/geonames-postal.js +0 -125
  929. package/out/src/tools/fetch/geonames-postal.js.map +0 -1
  930. package/out/src/tools/fetch/hrsa.d.ts +0 -18
  931. package/out/src/tools/fetch/hrsa.d.ts.map +0 -1
  932. package/out/src/tools/fetch/hrsa.js +0 -46
  933. package/out/src/tools/fetch/hrsa.js.map +0 -1
  934. package/out/src/tools/fetch/imls-pls.d.ts +0 -25
  935. package/out/src/tools/fetch/imls-pls.d.ts.map +0 -1
  936. package/out/src/tools/fetch/imls-pls.js +0 -108
  937. package/out/src/tools/fetch/imls-pls.js.map +0 -1
  938. package/out/src/tools/fetch/index.d.ts +0 -144
  939. package/out/src/tools/fetch/index.d.ts.map +0 -1
  940. package/out/src/tools/fetch/index.js +0 -143
  941. package/out/src/tools/fetch/index.js.map +0 -1
  942. package/out/src/tools/fetch/nad.d.ts +0 -70
  943. package/out/src/tools/fetch/nad.d.ts.map +0 -1
  944. package/out/src/tools/fetch/nad.js +0 -234
  945. package/out/src/tools/fetch/nad.js.map +0 -1
  946. package/out/src/tools/fetch/nppes.d.ts +0 -26
  947. package/out/src/tools/fetch/nppes.d.ts.map +0 -1
  948. package/out/src/tools/fetch/nppes.js +0 -126
  949. package/out/src/tools/fetch/nppes.js.map +0 -1
  950. package/out/src/tools/fetch/openaddresses.d.ts +0 -61
  951. package/out/src/tools/fetch/openaddresses.d.ts.map +0 -1
  952. package/out/src/tools/fetch/openaddresses.js +0 -317
  953. package/out/src/tools/fetch/openaddresses.js.map +0 -1
  954. package/out/src/tools/fetch/ourairports.d.ts +0 -45
  955. package/out/src/tools/fetch/ourairports.d.ts.map +0 -1
  956. package/out/src/tools/fetch/ourairports.js +0 -128
  957. package/out/src/tools/fetch/ourairports.js.map +0 -1
  958. package/out/src/tools/fetch/ppd.d.ts.map +0 -1
  959. package/out/src/tools/fetch/ppd.js +0 -100
  960. package/out/src/tools/fetch/ppd.js.map +0 -1
  961. package/out/src/tools/fetch/state-hi-schools.d.ts +0 -25
  962. package/out/src/tools/fetch/state-hi-schools.d.ts.map +0 -1
  963. package/out/src/tools/fetch/state-hi-schools.js +0 -162
  964. package/out/src/tools/fetch/state-hi-schools.js.map +0 -1
  965. package/out/src/tools/fetch/state-sources.d.ts +0 -26
  966. package/out/src/tools/fetch/state-sources.d.ts.map +0 -1
  967. package/out/src/tools/fetch/state-sources.js +0 -111
  968. package/out/src/tools/fetch/state-sources.js.map +0 -1
  969. package/out/src/tools/fetch/tiger-full.d.ts +0 -42
  970. package/out/src/tools/fetch/tiger-full.d.ts.map +0 -1
  971. package/out/src/tools/fetch/tiger-full.js +0 -248
  972. package/out/src/tools/fetch/tiger-full.js.map +0 -1
  973. package/out/src/tools/fetch/wikidata-subvenue.d.ts +0 -171
  974. package/out/src/tools/fetch/wikidata-subvenue.d.ts.map +0 -1
  975. package/out/src/tools/fetch/wikidata-subvenue.js +0 -275
  976. package/out/src/tools/fetch/wikidata-subvenue.js.map +0 -1
  977. package/out/src/tools/gb-title-case.d.ts.map +0 -1
  978. package/out/src/tools/gb-title-case.js.map +0 -1
  979. package/out/src/tools/golden-expand.d.ts +0 -90
  980. package/out/src/tools/golden-expand.d.ts.map +0 -1
  981. package/out/src/tools/golden-expand.js +0 -413
  982. package/out/src/tools/golden-expand.js.map +0 -1
  983. package/out/src/tools/golden-promote.d.ts.map +0 -1
  984. package/out/src/tools/golden-promote.js +0 -244
  985. package/out/src/tools/golden-promote.js.map +0 -1
  986. package/out/src/tools/golden-relabel-street.d.ts +0 -196
  987. package/out/src/tools/golden-relabel-street.d.ts.map +0 -1
  988. package/out/src/tools/golden-relabel-street.js +0 -440
  989. package/out/src/tools/golden-relabel-street.js.map +0 -1
  990. package/out/src/tools/index.d.ts +0 -28
  991. package/out/src/tools/index.d.ts.map +0 -1
  992. package/out/src/tools/index.js +0 -28
  993. package/out/src/tools/index.js.map +0 -1
  994. package/out/src/tools/ingest-csv.d.ts.map +0 -1
  995. package/out/src/tools/ingest-csv.js +0 -296
  996. package/out/src/tools/ingest-csv.js.map +0 -1
  997. package/out/src/tools/jsonl-to-parquet.d.ts +0 -61
  998. package/out/src/tools/jsonl-to-parquet.d.ts.map +0 -1
  999. package/out/src/tools/jsonl-to-parquet.js +0 -164
  1000. package/out/src/tools/jsonl-to-parquet.js.map +0 -1
  1001. package/out/src/tools/lint-shard-vocab.d.ts +0 -90
  1002. package/out/src/tools/lint-shard-vocab.d.ts.map +0 -1
  1003. package/out/src/tools/lint-shard-vocab.js +0 -281
  1004. package/out/src/tools/lint-shard-vocab.js.map +0 -1
  1005. package/out/src/tools/lint-shard.d.ts +0 -93
  1006. package/out/src/tools/lint-shard.d.ts.map +0 -1
  1007. package/out/src/tools/lint-shard.js +0 -354
  1008. package/out/src/tools/lint-shard.js.map +0 -1
  1009. package/out/src/tools/overlay-manifest.d.ts +0 -39
  1010. package/out/src/tools/overlay-manifest.d.ts.map +0 -1
  1011. package/out/src/tools/overlay-manifest.js +0 -98
  1012. package/out/src/tools/overlay-manifest.js.map +0 -1
  1013. package/out/src/tools/overture-subvenue.d.ts +0 -112
  1014. package/out/src/tools/overture-subvenue.d.ts.map +0 -1
  1015. package/out/src/tools/overture-subvenue.js +0 -144
  1016. package/out/src/tools/overture-subvenue.js.map +0 -1
  1017. package/out/src/tools/postcode-triples.d.ts +0 -175
  1018. package/out/src/tools/postcode-triples.d.ts.map +0 -1
  1019. package/out/src/tools/postcode-triples.js +0 -304
  1020. package/out/src/tools/postcode-triples.js.map +0 -1
  1021. package/out/src/tools/shard-kryptonite.d.ts +0 -32
  1022. package/out/src/tools/shard-kryptonite.d.ts.map +0 -1
  1023. package/out/src/tools/shard-kryptonite.js +0 -100
  1024. package/out/src/tools/shard-kryptonite.js.map +0 -1
  1025. package/out/src/tools/shard-translit.d.ts +0 -51
  1026. package/out/src/tools/shard-translit.d.ts.map +0 -1
  1027. package/out/src/tools/shard-translit.js +0 -175
  1028. package/out/src/tools/shard-translit.js.map +0 -1
  1029. package/out/src/tools/sub-venue/harvest.d.ts +0 -100
  1030. package/out/src/tools/sub-venue/harvest.d.ts.map +0 -1
  1031. package/out/src/tools/sub-venue/harvest.js +0 -168
  1032. package/out/src/tools/sub-venue/harvest.js.map +0 -1
  1033. package/out/src/tools/sub-venue/head-nouns.d.ts +0 -50
  1034. package/out/src/tools/sub-venue/head-nouns.d.ts.map +0 -1
  1035. package/out/src/tools/sub-venue/head-nouns.js +0 -210
  1036. package/out/src/tools/sub-venue/head-nouns.js.map +0 -1
  1037. package/out/src/tools/sub-venue/surfaces.d.ts +0 -45
  1038. package/out/src/tools/sub-venue/surfaces.d.ts.map +0 -1
  1039. package/out/src/tools/sub-venue/surfaces.js +0 -77
  1040. package/out/src/tools/sub-venue/surfaces.js.map +0 -1
  1041. package/out/src/tools/sub-venue/table.d.ts +0 -229
  1042. package/out/src/tools/sub-venue/table.d.ts.map +0 -1
  1043. package/out/src/tools/sub-venue/table.js +0 -108
  1044. package/out/src/tools/sub-venue/table.js.map +0 -1
  1045. package/out/src/tools/sub-venue/wikidata.d.ts +0 -26
  1046. package/out/src/tools/sub-venue/wikidata.d.ts.map +0 -1
  1047. package/out/src/tools/sub-venue/wikidata.js +0 -62
  1048. package/out/src/tools/sub-venue/wikidata.js.map +0 -1
  1049. package/out/src/tools/sub-venue-lexicon.d.ts +0 -156
  1050. package/out/src/tools/sub-venue-lexicon.d.ts.map +0 -1
  1051. package/out/src/tools/sub-venue-lexicon.js +0 -282
  1052. package/out/src/tools/sub-venue-lexicon.js.map +0 -1
  1053. package/out/src/tools/sub-venue-promotions.d.ts +0 -94
  1054. package/out/src/tools/sub-venue-promotions.d.ts.map +0 -1
  1055. package/out/src/tools/sub-venue-promotions.js +0 -266
  1056. package/out/src/tools/sub-venue-promotions.js.map +0 -1
  1057. package/out/src/types.d.ts +0 -221
  1058. package/out/src/types.d.ts.map +0 -1
  1059. package/out/src/types.js.map +0 -1
  1060. package/out/src/utils/align.d.ts +0 -93
  1061. package/out/src/utils/align.d.ts.map +0 -1
  1062. package/out/src/utils/align.js +0 -234
  1063. package/out/src/utils/align.js.map +0 -1
  1064. package/out/src/utils/golden.d.ts +0 -69
  1065. package/out/src/utils/golden.d.ts.map +0 -1
  1066. package/out/src/utils/golden.js +0 -127
  1067. package/out/src/utils/golden.js.map +0 -1
  1068. package/out/src/utils/index.d.ts +0 -14
  1069. package/out/src/utils/index.d.ts.map +0 -1
  1070. package/out/src/utils/index.js +0 -14
  1071. package/out/src/utils/index.js.map +0 -1
  1072. package/out/src/utils/license.d.ts.map +0 -1
  1073. package/out/src/utils/license.js.map +0 -1
  1074. package/out/src/utils/parquet.d.ts +0 -162
  1075. package/out/src/utils/parquet.d.ts.map +0 -1
  1076. package/out/src/utils/parquet.js +0 -262
  1077. package/out/src/utils/parquet.js.map +0 -1
  1078. package/out/src/utils/split.d.ts +0 -127
  1079. package/out/src/utils/split.d.ts.map +0 -1
  1080. package/out/src/utils/split.js +0 -204
  1081. package/out/src/utils/split.js.map +0 -1
  1082. package/out/src/utils/tokenize.d.ts +0 -56
  1083. package/out/src/utils/tokenize.d.ts.map +0 -1
  1084. package/out/src/utils/tokenize.js +0 -48
  1085. package/out/src/utils/tokenize.js.map +0 -1
  1086. package/out/src/utils/wof-json.d.ts +0 -109
  1087. package/out/src/utils/wof-json.d.ts.map +0 -1
  1088. package/out/src/utils/wof-json.js +0 -173
  1089. package/out/src/utils/wof-json.js.map +0 -1
  1090. package/src/adapters/ban/adapter.ts +0 -191
  1091. package/src/adapters/ban/street-decompose.ts +0 -96
  1092. package/src/adapters/fcc-bdc/adapter.ts +0 -174
  1093. package/src/adapters/geonames/adapter.ts +0 -200
  1094. package/src/adapters/geonames-postal/adapter.ts +0 -119
  1095. package/src/adapters/gnaf/adapter.ts +0 -149
  1096. package/src/adapters/gnaf/assemble.ts +0 -226
  1097. package/src/adapters/index.ts +0 -149
  1098. package/src/adapters/openaddresses/adapter.ts +0 -251
  1099. package/src/adapters/overture/adapter.ts +0 -162
  1100. package/src/adapters/state-hi-schools/adapter.ts +0 -164
  1101. package/src/adapters/synth-po-box/adapter.ts +0 -204
  1102. package/src/adapters/tiger/adapter.ts +0 -253
  1103. package/src/adapters/tiger/street-decompose.ts +0 -111
  1104. package/src/adapters/usgov-hrsa-fqhc/adapter.ts +0 -183
  1105. package/src/adapters/usgov-imls-pls/adapter.ts +0 -143
  1106. package/src/adapters/usgov-irs-bmf/adapter.ts +0 -163
  1107. package/src/adapters/usgov-nad/adapter.ts +0 -348
  1108. package/src/adapters/usgov-nppes/adapter.ts +0 -159
  1109. package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -204
  1110. package/src/adapters/utils/index.ts +0 -233
  1111. package/src/adapters/wof-admin-jp/adapter.ts +0 -216
  1112. package/src/adapters/wof-admin-json/adapter.ts +0 -256
  1113. package/src/adapters/wof-json-rows.ts +0 -79
  1114. package/src/adapters/wof-postalcode-json/adapter.ts +0 -183
  1115. package/src/build.ts +0 -386
  1116. package/src/index.ts +0 -14
  1117. package/src/name-prone-us-suffixes.ts +0 -12
  1118. package/src/parquet-wrapper/index.ts +0 -9
  1119. package/src/parquet-wrapper/reader.ts +0 -97
  1120. package/src/parquet-wrapper/schema.ts +0 -88
  1121. package/src/parquet-wrapper/writer.ts +0 -110
  1122. package/src/runner.ts +0 -317
  1123. package/src/shard-recipes/anchor-absorption.ts +0 -103
  1124. package/src/shard-recipes/bare-country.ts +0 -95
  1125. package/src/shard-recipes/boundary-stress.ts +0 -101
  1126. package/src/shard-recipes/country-balanced.ts +0 -524
  1127. package/src/shard-recipes/cz-pcfirst-preposition.ts +0 -111
  1128. package/src/shard-recipes/fr-admin-split.ts +0 -239
  1129. package/src/shard-recipes/fr-bare-street.ts +0 -170
  1130. package/src/shard-recipes/fr-fragment.ts +0 -332
  1131. package/src/shard-recipes/fr-lieudit.ts +0 -302
  1132. package/src/shard-recipes/fr-order.ts +0 -258
  1133. package/src/shard-recipes/german.ts +0 -170
  1134. package/src/shard-recipes/house-venue.ts +0 -88
  1135. package/src/shard-recipes/index.ts +0 -95
  1136. package/src/shard-recipes/intersection.ts +0 -630
  1137. package/src/shard-recipes/locale.ts +0 -599
  1138. package/src/shard-recipes/nl-postcode.ts +0 -115
  1139. package/src/shard-recipes/no-fragment.ts +0 -219
  1140. package/src/shard-recipes/no-street-led.ts +0 -143
  1141. package/src/shard-recipes/no-street.ts +0 -86
  1142. package/src/shard-recipes/po-box-cedex.ts +0 -920
  1143. package/src/shard-recipes/po-box.ts +0 -119
  1144. package/src/shard-recipes/reviewed-postcode-tail.ts +0 -189
  1145. package/src/shard-recipes/scaffold.ts +0 -360
  1146. package/src/shard-recipes/si-bare-village.ts +0 -97
  1147. package/src/shard-recipes/street-affix.ts +0 -826
  1148. package/src/shard-recipes/street-bare.ts +0 -101
  1149. package/src/shard-recipes/street.ts +0 -82
  1150. package/src/shard-recipes/sub-venue-sources.ts +0 -885
  1151. package/src/shard-recipes/sub-venue.ts +0 -984
  1152. package/src/shard-recipes/trailing-region.ts +0 -183
  1153. package/src/shard-recipes/unit.ts +0 -321
  1154. package/src/synthesizers/anchor-absorption.ts +0 -290
  1155. package/src/synthesizers/boundary-stress.ts +0 -531
  1156. package/src/synthesizers/german.ts +0 -251
  1157. package/src/synthesizers/house-venue.ts +0 -330
  1158. package/src/synthesizers/intersection.ts +0 -232
  1159. package/src/synthesizers/no-street.ts +0 -349
  1160. package/src/synthesizers/po-box.ts +0 -339
  1161. package/src/synthesizers/street.ts +0 -274
  1162. package/src/synthesizers/utils.ts +0 -903
  1163. package/src/tools/align-shard.ts +0 -70
  1164. package/src/tools/audit.ts +0 -399
  1165. package/src/tools/corpus-stats.ts +0 -184
  1166. package/src/tools/fetch/ban.ts +0 -290
  1167. package/src/tools/fetch/download.ts +0 -176
  1168. package/src/tools/fetch/geonames-dump.ts +0 -267
  1169. package/src/tools/fetch/geonames-postal.ts +0 -180
  1170. package/src/tools/fetch/hrsa.ts +0 -68
  1171. package/src/tools/fetch/imls-pls.ts +0 -158
  1172. package/src/tools/fetch/index.ts +0 -147
  1173. package/src/tools/fetch/nad.ts +0 -342
  1174. package/src/tools/fetch/nppes.ts +0 -174
  1175. package/src/tools/fetch/openaddresses.ts +0 -404
  1176. package/src/tools/fetch/ourairports.ts +0 -171
  1177. package/src/tools/fetch/ppd.ts +0 -137
  1178. package/src/tools/fetch/state-hi-schools.ts +0 -208
  1179. package/src/tools/fetch/state-sources.ts +0 -155
  1180. package/src/tools/fetch/tiger-full.ts +0 -354
  1181. package/src/tools/fetch/wikidata-subvenue.ts +0 -386
  1182. package/src/tools/golden-expand.ts +0 -584
  1183. package/src/tools/golden-promote.ts +0 -353
  1184. package/src/tools/golden-relabel-street.ts +0 -685
  1185. package/src/tools/index.ts +0 -28
  1186. package/src/tools/ingest-csv.ts +0 -422
  1187. package/src/tools/jsonl-to-parquet.ts +0 -221
  1188. package/src/tools/lint-shard-vocab.ts +0 -409
  1189. package/src/tools/lint-shard.ts +0 -543
  1190. package/src/tools/overlay-manifest.ts +0 -157
  1191. package/src/tools/overture-subvenue.ts +0 -215
  1192. package/src/tools/postcode-triples.ts +0 -375
  1193. package/src/tools/shard-kryptonite.ts +0 -139
  1194. package/src/tools/shard-translit.ts +0 -245
  1195. package/src/tools/sub-venue/harvest.ts +0 -235
  1196. package/src/tools/sub-venue/head-nouns.ts +0 -242
  1197. package/src/tools/sub-venue/surfaces.ts +0 -95
  1198. package/src/tools/sub-venue/table.ts +0 -281
  1199. package/src/tools/sub-venue/wikidata.ts +0 -85
  1200. package/src/tools/sub-venue-lexicon.ts +0 -431
  1201. package/src/tools/sub-venue-promotions.ts +0 -330
  1202. package/src/types.ts +0 -247
  1203. package/src/utils/align.ts +0 -331
  1204. package/src/utils/golden.ts +0 -176
  1205. package/src/utils/index.ts +0 -14
  1206. package/src/utils/parquet.ts +0 -391
  1207. package/src/utils/split.ts +0 -279
  1208. package/src/utils/tokenize.ts +0 -78
  1209. package/src/utils/wof-json.ts +0 -244
  1210. /package/{src → lib}/adapters/state-ia-contractors/adapter.ts +0 -0
  1211. /package/{src → lib}/adapters/state-ny-notaries/adapter.ts +0 -0
  1212. /package/{src → lib}/adapters/state-tx-notaries/adapter.ts +0 -0
  1213. /package/{src → lib}/codex/us-fips-state.ts +0 -0
  1214. /package/{src → lib}/tools/gb-title-case.ts +0 -0
  1215. /package/{src → lib}/utils/license.ts +0 -0
  1216. /package/out/{src/adapters → adapters}/ban/adapter.d.ts +0 -0
  1217. /package/out/{src/adapters → adapters}/ban/street-decompose.d.ts +0 -0
  1218. /package/out/{src/adapters → adapters}/fcc-bdc/adapter.d.ts +0 -0
  1219. /package/out/{src/adapters → adapters}/geonames/adapter.d.ts +0 -0
  1220. /package/out/{src/adapters → adapters}/openaddresses/adapter.d.ts +0 -0
  1221. /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.d.ts +0 -0
  1222. /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.js +0 -0
  1223. /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.d.ts +0 -0
  1224. /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.js +0 -0
  1225. /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.d.ts +0 -0
  1226. /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.js +0 -0
  1227. /package/out/{src/adapters → adapters}/synth-po-box/adapter.d.ts +0 -0
  1228. /package/out/{src/adapters → adapters}/tiger/street-decompose.d.ts +0 -0
  1229. /package/out/{src/adapters → adapters}/usgov-nppes/adapter.d.ts +0 -0
  1230. /package/out/{src/adapters → adapters}/usgov-samhsa-treatment-locator/adapter.d.ts +0 -0
  1231. /package/out/{src/adapters → adapters}/wof-admin-jp/adapter.d.ts +0 -0
  1232. /package/out/{src/codex → codex}/us-fips-state.d.ts +0 -0
  1233. /package/out/{src/codex → codex}/us-fips-state.js +0 -0
  1234. /package/out/{src/tools → tools}/fetch/ppd.d.ts +0 -0
  1235. /package/out/{src/tools → tools}/gb-title-case.d.ts +0 -0
  1236. /package/out/{src/tools → tools}/gb-title-case.js +0 -0
  1237. /package/out/{src/tools → tools}/golden-promote.d.ts +0 -0
  1238. /package/out/{src/tools → tools}/ingest-csv.d.ts +0 -0
  1239. /package/out/{src/types.js → types.js} +0 -0
  1240. /package/out/{src/utils → utils}/license.d.ts +0 -0
  1241. /package/out/{src/utils → utils}/license.js +0 -0
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * @file The Wikidata leg of the sub-venue lexicon — turning the designator-label SPARQL payload into
7
+ * surfaces.
8
+ *
9
+ * Reads an already-parsed payload rather than issuing a query: the acquisition lives in
10
+ * `fetch/wikidata-subvenue.ts`, and keeping the conversion a pure function of parsed input is what
11
+ * lets the builder stay deterministic and testable with no network and no fixture on disk.
12
+ *
13
+ * Wikidata gives a CONCEPT NAME per language, not a designator as addressed. Q849706's Spanish label
14
+ * is `terminal aeroportuaria`; the addressed form is `Terminal`. So every surface produced here lands
15
+ * `curated: false`, and the head-noun derivation is what proposes the addressed form from it.
16
+ */
17
+
18
+ import { normalizeSurface } from "#tools/sub-venue/surfaces"
19
+ import { CONCEPT_QIDS, type SubVenueSurface } from "#tools/sub-venue/table"
20
+
21
+ /**
22
+ * The SPARQL results envelope, narrowed to the columns the designator-label query produces.
23
+ */
24
+ interface SPARQLBinding {
25
+ item?: { value: string }
26
+ lang?: { value: string }
27
+ label?: { value: string }
28
+ kind?: { value: string }
29
+ }
30
+
31
+ interface SPARQLEnvelope {
32
+ results?: { bindings?: SPARQLBinding[] }
33
+ }
34
+
35
+ /**
36
+ * Turn the Wikidata designator-label payload into surfaces.
37
+ *
38
+ * A row is dropped when its language tag is empty (an untagged literal, which Wikidata occasionally carries), when the
39
+ * QID maps to no designator in {@link CONCEPT_QIDS}, or when the normalized phrase is empty. Everything that survives
40
+ * lands `curated: false` — see the module docstring.
41
+ */
42
+ export function surfacesFromWikidata(
43
+ payload: unknown,
44
+ conceptQIDs: Readonly<Record<string, string>> = CONCEPT_QIDS
45
+ ): SubVenueSurface[] {
46
+ const byQID = new Map(Object.entries(conceptQIDs).map(([id, qid]) => [qid, id]))
47
+ const envelope = payload as SPARQLEnvelope
48
+ const seen = new Set<string>()
49
+ const out: SubVenueSurface[] = []
50
+
51
+ for (const binding of envelope.results?.bindings ?? []) {
52
+ const qid = binding.item?.value?.split("/").pop()
53
+ const recordID = qid ? byQID.get(qid) : undefined
54
+ const lang = binding.lang?.value
55
+ const raw = binding.label?.value
56
+
57
+ if (!recordID || !lang || !raw) continue
58
+
59
+ const phrase = normalizeSurface(raw)
60
+
61
+ if (!phrase) continue
62
+
63
+ const source = binding.kind?.value === "alt" ? "wikidata:alt" : "wikidata:label"
64
+ // A concept can carry the same string as both a label and an alias, and across dialect subtags
65
+ // (`zh`, `zh-cn`, `zh-hans` all say 航站楼). Key the dedupe on the tuple that identifies a row.
66
+ const key = `${phrase}\0${recordID}\0${lang}\0${source}`
67
+
68
+ if (seen.has(key)) continue
69
+ seen.add(key)
70
+
71
+ out.push({
72
+ phrase,
73
+ recordID,
74
+ recordKind: "designator",
75
+ lang,
76
+ region: "",
77
+ source,
78
+ curated: false,
79
+ observations: 0,
80
+ context: {},
81
+ })
82
+ }
83
+
84
+ return out
85
+ }
@@ -0,0 +1,429 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * @file Build the sub-venue designator lexicon (#35) — the vocabulary a corpus slice and, eventually,
7
+ * the span proposer read to recognize `Terminal 5`, `North Terminal`, `Concourse B`, `ターミナル1` as
8
+ * venue-INTERIOR structure. This is the assembly: the record schema lives in `sub-venue/table.ts`, the
9
+ * implementation in its siblings, and the curation decisions in `sub-venue-promotions.ts`.
10
+ *
11
+ * Reads the fetch outputs (`mailwoman corpus fetch wikidata-subvenue`, a JSONL of
12
+ * `@mailwoman/osm/sdk`'s `SubVenueSourceRow`s per region, and the Overture slice of `poi.db` via
13
+ * `overture-subvenue.ts`) and emits one committed JSON table.
14
+ *
15
+ * ── Determinism ──────────────────────────────────────────────────────────────────────────────────
16
+ * {@link buildSubVenueLexicon} is a PURE function of its inputs with a stable sort on every array, so
17
+ * a regenerate against the same fetch outputs is byte-identical. No timestamp is emitted for the same
18
+ * reason `taxonomy.json` carries none — a clock in the artifact makes every regenerate a diff.
19
+ * Vintages live in `sources[]`, taken from the fetch manifests.
20
+ *
21
+ * ── Where the stages live ────────────────────────────────────────────────────────────────────────
22
+ * Each stage carries the measurements that shaped it; the order they run in is
23
+ * {@link buildSubVenueLexicon}'s own docstring, and it is required.
24
+ *
25
+ * - `sub-venue/table.ts` — the emitted record schema plus the shipped seed vocabulary.
26
+ * - `sub-venue/surfaces.ts` — phrase normalization, the phrase → record index, and the name-match
27
+ * operator that gates the harvest.
28
+ * - `sub-venue/wikidata.ts` — the designator-label SPARQL payload turned into surfaces.
29
+ * - `sub-venue/head-nouns.ts` — the addressed form derived from an encyclopaedic label.
30
+ * - `sub-venue/harvest.ts` — the harvestable row shape, its JSONL reader, and the attestation pass.
31
+ *
32
+ * ── What `curated: false` means, and how a surface stops being it ────────────────────────────────
33
+ * Every machine-derived surface lands `curated: false`, and {@link SubVenueLexiconTable} consumers
34
+ * that gate parsing MUST filter to `curated: true`. A surface becomes curated ONLY by matching a
35
+ * {@link SubVenuePromotion} in `sub-venue-promotions.ts` — a per-designator, per-LOCALE decision
36
+ * carrying the census that backs it. Promotion is per-locale because the same token is a designator in
37
+ * one language and a disaster in another: `hall` is `Halle 2` at Frankfurt and `Village Hall` at 3,205
38
+ * British bus stops.
39
+ */
40
+
41
+ import { readLocalJSONFile, statPath } from "@mailwoman/core/fs/readers"
42
+ import { writeLocalFile } from "@mailwoman/core/fs/writers"
43
+ import { isoDate } from "@mailwoman/core/utils"
44
+ import { basename, join } from "path-ts"
45
+
46
+ import { SUBVENUE_PROMOTIONS, type SubVenuePromotion } from "#tools/sub-venue-promotions"
47
+ import { extractAttestedPhrases, readSubVenueJSONL, type SubVenueHarvestRow } from "#tools/sub-venue/harvest"
48
+ import { deriveHeadNounSurfaces } from "#tools/sub-venue/head-nouns"
49
+ import { buildSurfaceIndex } from "#tools/sub-venue/surfaces"
50
+ import {
51
+ CONCEPT_QIDS,
52
+ type IdentifierShape,
53
+ LexiconTier,
54
+ PROPOSED_DESIGNATORS,
55
+ SHIPPED_DESIGNATOR_SEED,
56
+ SHIPPED_MODIFIER_SEED,
57
+ type SubVenueDesignator,
58
+ type SubVenueLexiconSource,
59
+ type SubVenueLexiconTable,
60
+ type SubVenueModifier,
61
+ type SubVenueSurface,
62
+ SUBVENUE_LEXICON_VERSION,
63
+ } from "#tools/sub-venue/table"
64
+ import { surfacesFromWikidata } from "#tools/sub-venue/wikidata"
65
+
66
+ export * from "#tools/sub-venue/harvest"
67
+ export * from "#tools/sub-venue/head-nouns"
68
+ export * from "#tools/sub-venue/surfaces"
69
+ export * from "#tools/sub-venue/table"
70
+ export * from "#tools/sub-venue/wikidata"
71
+
72
+ /**
73
+ * Apply the curation decisions to a surface list, IN PLACE on a copy.
74
+ *
75
+ * A promotion binds `(designatorID, phrase, locale)`. A surface matches when it names the same record with the same
76
+ * phrase and its language is the locale's language OR the untagged `und` — the default `name` tag carries no language,
77
+ * and a German extract's untagged `Halle 2` is German.
78
+ *
79
+ * REGION is the subtle half. A surface attested in an extract carries that extract's region and matches only its own
80
+ * locale. A surface with `region: ""` is region-FREE — a Wikidata label or a derived head noun — and a promotion
81
+ * reaches it only when no REJECTION exists for the same designator, phrase and language anywhere else. That guard is
82
+ * not decoration: `pier` is promoted for en-GB and rejected for en-US, and without it the en-GB decision would curate
83
+ * the region-free English surface and hand `Pier 1 Imports` the promotion en-US was refused. Where no rejection
84
+ * competes — `terminal` in `es`, `ターミナル` in `ja` — the region-free surface is the whole point, since a language's
85
+ * designator does not stop at a border.
86
+ *
87
+ * Rejections mark nothing themselves. They exist in `promotions[]` as the record of a decision taken, so the next
88
+ * reader meets en-GB `hall`'s 3,204 bus stops before re-proposing it, not after.
89
+ */
90
+ export function applyPromotions(
91
+ surfaces: readonly SubVenueSurface[],
92
+ promotions: readonly SubVenuePromotion[]
93
+ ): SubVenueSurface[] {
94
+ const language = (locale: string): string => locale.split("-")[0]!
95
+ const region = (locale: string): string => locale.split("-")[1] ?? ""
96
+
97
+ const rejectedLanguages = new Set(
98
+ promotions
99
+ .filter((promotion) => promotion.decision === "reject")
100
+ .map((promotion) => `${promotion.designatorID} ${promotion.phrase} ${language(promotion.locale)}`)
101
+ )
102
+
103
+ const promoted = promotions.filter((promotion) => promotion.decision === "promote")
104
+
105
+ return surfaces.map((surface) => {
106
+ if (surface.curated) return surface
107
+
108
+ const hit = promoted.some((promotion) => {
109
+ if (promotion.designatorID !== surface.recordID || promotion.phrase !== surface.phrase) return false
110
+
111
+ const lang = language(promotion.locale)
112
+
113
+ if (surface.lang !== lang && surface.lang !== "und") return false
114
+
115
+ if (surface.region === region(promotion.locale)) return true
116
+
117
+ return surface.region === "" && !rejectedLanguages.has(`${promotion.designatorID} ${promotion.phrase} ${lang}`)
118
+ })
119
+
120
+ return hit ? { ...surface, curated: true } : surface
121
+ })
122
+ }
123
+
124
+ /**
125
+ * One harvestable input: rows plus the stamp they carry into the table.
126
+ */
127
+ export interface SubVenueHarvest {
128
+ rows: readonly SubVenueHarvestRow[]
129
+ source?: string
130
+ region?: string
131
+ }
132
+
133
+ /**
134
+ * Everything {@link buildSubVenueLexicon} needs, already parsed. Keeping the builder off the filesystem is what makes it
135
+ * deterministic and testable without fixtures on disk.
136
+ */
137
+ export interface BuildSubVenueLexiconInput {
138
+ /**
139
+ * The raw `designator-labels.json` SPARQL envelope, or `null` to build the seed-only table.
140
+ */
141
+ wikidata: unknown | null
142
+ /**
143
+ * Every harvestable source, in the order they should contribute. Order matters only for the surface INDEX: a source
144
+ * can match a phrase an earlier source introduced, never a later one.
145
+ */
146
+ harvests: readonly SubVenueHarvest[]
147
+ /**
148
+ * Provenance rows, copied off the fetch manifests by the caller.
149
+ */
150
+ sources: readonly SubVenueLexiconSource[]
151
+ /**
152
+ * Curation decisions. Defaults to the committed {@link SUBVENUE_PROMOTIONS}; pass an empty array to build the
153
+ * pre-curation table (which is what the promotion census itself is taken against).
154
+ */
155
+ promotions?: readonly SubVenuePromotion[]
156
+ }
157
+
158
+ /**
159
+ * Build the lexicon table. PURE and deterministic — same inputs, byte-identical output.
160
+ *
161
+ * Order of operations is required in three places:
162
+ *
163
+ * 1. Seed surfaces are inserted before anything else, so `terminal` indexes to the `terminal` designator rather than to
164
+ * whichever Wikidata alias sorts first.
165
+ * 2. Head nouns are derived AFTER Wikidata and BEFORE the harvests, because `ターミナル` has to exist as a surface before a
166
+ * Japanese extract can be searched for it. That ordering is the entire reason the Japan harvest finds anything — see
167
+ * `PROVENANCE.md`.
168
+ * 3. Promotions are applied LAST, over the union, so a decision can promote a surface whichever source produced it.
169
+ */
170
+ export function buildSubVenueLexicon(input: BuildSubVenueLexiconInput): SubVenueLexiconTable {
171
+ const designators: SubVenueDesignator[] = SHIPPED_DESIGNATOR_SEED.map((seed) => ({
172
+ id: seed.id,
173
+ tier: LexiconTier.SubVenue,
174
+ modifierEligible: seed.modifierEligible,
175
+ shipped: true,
176
+ provenance: [...seed.provenance],
177
+ }))
178
+
179
+ const byID = new Map(designators.map((d) => [d.id, d]))
180
+
181
+ for (const proposed of PROPOSED_DESIGNATORS) {
182
+ const existing = byID.get(proposed.id)
183
+
184
+ if (existing) {
185
+ existing.provenance = [...new Set([...existing.provenance, ...proposed.provenance])]
186
+
187
+ continue
188
+ }
189
+
190
+ const record: SubVenueDesignator = {
191
+ id: proposed.id,
192
+ tier: proposed.tier,
193
+ modifierEligible: false,
194
+ shipped: false,
195
+ provenance: [...proposed.provenance],
196
+ }
197
+
198
+ designators.push(record)
199
+ byID.set(record.id, record)
200
+ }
201
+
202
+ // A Wikidata concept id is provenance for the designator it names, whether or not the concept
203
+ // contributed a usable surface.
204
+ for (const [id, qid] of Object.entries(CONCEPT_QIDS)) {
205
+ const record = byID.get(id)
206
+
207
+ if (record) {
208
+ record.provenance = [...new Set([...record.provenance, `wikidata:${qid}`])]
209
+ }
210
+ }
211
+
212
+ const modifiers: SubVenueModifier[] = SHIPPED_MODIFIER_SEED.map((id) => ({
213
+ id,
214
+ shipped: true,
215
+ provenance: ["codex:directionals"],
216
+ }))
217
+
218
+ const surfaces: SubVenueSurface[] = [
219
+ ...designators.map((d): SubVenueSurface => ({
220
+ phrase: d.id,
221
+ recordID: d.id,
222
+ recordKind: "designator",
223
+ lang: "en",
224
+ region: "",
225
+ source: "seed",
226
+ // The English designator IS the shipped vocabulary — curated by construction.
227
+ curated: d.shipped,
228
+ observations: 0,
229
+ context: {},
230
+ })),
231
+ ...modifiers.map((m): SubVenueSurface => ({
232
+ phrase: m.id,
233
+ recordID: m.id,
234
+ recordKind: "modifier",
235
+ lang: "en",
236
+ region: "",
237
+ source: "seed",
238
+ curated: true,
239
+ observations: 0,
240
+ context: {},
241
+ })),
242
+ ]
243
+
244
+ if (input.wikidata) {
245
+ surfaces.push(...surfacesFromWikidata(input.wikidata))
246
+ }
247
+
248
+ surfaces.push(...deriveHeadNounSurfaces(surfaces))
249
+
250
+ const identifierShapes: IdentifierShape[] = []
251
+
252
+ for (const harvest of input.harvests) {
253
+ const attested = extractAttestedPhrases(harvest.rows, buildSurfaceIndex(surfaces), {
254
+ source: harvest.source,
255
+ region: harvest.region,
256
+ })
257
+
258
+ surfaces.push(...attested.surfaces)
259
+ identifierShapes.push(...attested.identifierShapes)
260
+ }
261
+
262
+ const promotions = [...(input.promotions ?? SUBVENUE_PROMOTIONS)]
263
+ const curated = applyPromotions(surfaces, promotions)
264
+
265
+ // Deterministic order everywhere. `localeCompare` matches the tie-break discipline
266
+ // `generate-taxonomy.ts` and `build-brands.ts` already use.
267
+ designators.sort((a, b) => a.id.localeCompare(b.id))
268
+ modifiers.sort((a, b) => a.id.localeCompare(b.id))
269
+
270
+ curated.sort(
271
+ (a, b) =>
272
+ a.phrase.localeCompare(b.phrase) ||
273
+ a.recordID.localeCompare(b.recordID) ||
274
+ a.lang.localeCompare(b.lang) ||
275
+ a.region.localeCompare(b.region) ||
276
+ a.source.localeCompare(b.source)
277
+ )
278
+
279
+ return {
280
+ version: SUBVENUE_LEXICON_VERSION,
281
+ sources: input.sources.toSorted((a, b) => a.id.localeCompare(b.id)),
282
+ designators,
283
+ modifiers,
284
+ surfaces: curated,
285
+ identifierShapes: identifierShapes.toSorted(
286
+ (a, b) =>
287
+ a.designatorID.localeCompare(b.designatorID) ||
288
+ a.region.localeCompare(b.region) ||
289
+ a.shape.localeCompare(b.shape)
290
+ ),
291
+ promotions: promotions.toSorted(
292
+ (a, b) =>
293
+ a.designatorID.localeCompare(b.designatorID) ||
294
+ a.locale.localeCompare(b.locale) ||
295
+ a.phrase.localeCompare(b.phrase)
296
+ ),
297
+ }
298
+ }
299
+
300
+ /**
301
+ * Serialize the table the way the committed artifact stores it: pretty-printed, trailing newline. Run `oxfmt` over the
302
+ * result before committing — repo law is that committed JSON is oxfmt-clean, which `JSON.stringify` cannot reproduce.
303
+ */
304
+ export function serializeSubVenueLexicon(table: SubVenueLexiconTable): string {
305
+ return JSON.stringify(table, null, 2) + "\n"
306
+ }
307
+
308
+ /**
309
+ * The Wikidata fetch manifest's shape, narrowed to the fields the lexicon copies into `sources[]`.
310
+ */
311
+ interface WikidataFetchManifest {
312
+ endpoint?: string
313
+ license?: string
314
+ downloaded_at?: string
315
+ files?: Array<{ filename?: string; rows?: number }>
316
+ }
317
+
318
+ /**
319
+ * One OSM extract to harvest: the JSONL path plus the ISO country its rows describe.
320
+ */
321
+ export interface SubVenueExtractInput {
322
+ path: string
323
+ region: string
324
+ }
325
+
326
+ export interface GenerateSubVenueLexiconOptions {
327
+ /**
328
+ * Directory holding the `mailwoman corpus fetch wikidata-subvenue` output. Omit to build the seed-only table.
329
+ */
330
+ wikidataDir?: string
331
+ /**
332
+ * OSM extract JSONLs, one per region.
333
+ */
334
+ extracts?: readonly SubVenueExtractInput[]
335
+ /**
336
+ * Already-read Overture rows (`readOvertureSubVenues`), grouped by the caller. Kept as a parameter rather than a path
337
+ * so this function stays free of a 3.9 GB database dependency — the CLI opens `poi.db`, this assembles.
338
+ */
339
+ overtureRows?: readonly (SubVenueHarvestRow & { country: string })[]
340
+ /**
341
+ * `poi.db`'s layer vintage, for `sources[]`. Only read when `overtureRows` is non-empty.
342
+ */
343
+ overtureVintage?: string
344
+ /**
345
+ * Where the table is written.
346
+ */
347
+ outPath: string
348
+ }
349
+
350
+ /**
351
+ * Read the fetch outputs, build the table, and write it.
352
+ *
353
+ * The IO half only — every decision lives in {@link buildSubVenueLexicon}, which is pure. Run `oxfmt` over `outPath`
354
+ * afterwards; repo law is that committed JSON is oxfmt-clean.
355
+ */
356
+ export async function generateSubVenueLexicon(options: GenerateSubVenueLexiconOptions): Promise<SubVenueLexiconTable> {
357
+ const sources: SubVenueLexiconSource[] = []
358
+ const harvests: SubVenueHarvest[] = []
359
+ let wikidata: unknown = null
360
+
361
+ if (options.wikidataDir) {
362
+ wikidata = await readLocalJSONFile<unknown>(join(options.wikidataDir, "designator-labels.json"))
363
+
364
+ const manifest = await readLocalJSONFile<WikidataFetchManifest>(join(options.wikidataDir, "MANIFEST.json"))
365
+
366
+ const labelFile = manifest.files?.find((f) => f.filename === "designator-labels.json")
367
+
368
+ sources.push({
369
+ id: "wikidata",
370
+ origin: manifest.endpoint ?? "https://query.wikidata.org/sparql",
371
+ license: manifest.license ?? "CC0",
372
+ // The DATE only. A full ISO timestamp would make every re-fetch a diff in the committed artifact for
373
+ // no information a reader of a vocabulary table can act on.
374
+ retrieved: (manifest.downloaded_at ?? "").slice(0, 10),
375
+ rows: labelFile?.rows ?? 0,
376
+ })
377
+ }
378
+
379
+ for (const extract of options.extracts ?? []) {
380
+ const rows = await readSubVenueJSONL(extract.path)
381
+
382
+ harvests.push({ rows, source: "osm", region: extract.region })
383
+
384
+ sources.push({
385
+ id: `osm:${extract.region.toLowerCase()}`,
386
+ // The extract's NAME, never its path. `AGENTS.md` forbids re-hardcoding the lab data root
387
+ // anywhere, and a committed artifact carrying `/mnt/playpen/...` would do exactly that while
388
+ // telling a reader on another machine nothing. `great-britain` identifies the Geofabrik region,
389
+ // which is the fact that matters.
390
+ origin: `OpenStreetMap via Geofabrik (${basename(extract.path, ".jsonl")})`,
391
+ license: "ODbL (OpenStreetMap)",
392
+ // The extract's mtime — when the rows were produced. `corpus/AGENTS.md`'s standing warning that
393
+ // a file's mtime is not its DATA's vintage applies to a downloaded archive; this file is a build
394
+ // output of ours, so its mtime is exactly the right number.
395
+ retrieved: isoDate((await statPath(extract.path)).mtime),
396
+ rows: rows.length,
397
+ })
398
+ }
399
+
400
+ if (options.overtureRows?.length) {
401
+ // Overture rows carry their own country, so they are harvested per REGION rather than in one pass —
402
+ // a `region` on the surface is the axis promotion is decided on and a mixed-country bucket would
403
+ // make it meaningless.
404
+ const byCountry = new Map<string, SubVenueHarvestRow[]>()
405
+
406
+ for (const row of options.overtureRows) {
407
+ const bucket = byCountry.get(row.country) ?? []
408
+ bucket.push(row)
409
+ byCountry.set(row.country, bucket)
410
+ }
411
+
412
+ for (const [country, rows] of [...byCountry].toSorted((a, b) => a[0].localeCompare(b[0]))) {
413
+ harvests.push({ rows, source: "overture", region: country })
414
+ }
415
+
416
+ sources.push({
417
+ id: "overture",
418
+ origin: "Overture Maps Foundation places, via the poi.db spatial layer",
419
+ license: "CDLA-Permissive-2.0",
420
+ retrieved: options.overtureVintage ?? "",
421
+ rows: options.overtureRows.length,
422
+ })
423
+ }
424
+
425
+ const table = buildSubVenueLexicon({ wikidata, harvests, sources })
426
+ await writeLocalFile(serializeSubVenueLexicon(table), options.outPath)
427
+
428
+ return table
429
+ }