@mailwoman/corpus 9.2.0 → 9.4.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 (1261) 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/recipes/anchor-absorption.ts +101 -0
  33. package/lib/recipes/bare-country.ts +95 -0
  34. package/lib/recipes/boundary-stress.ts +102 -0
  35. package/lib/recipes/cn-organizational-units.ts +199 -0
  36. package/lib/recipes/country-balanced.ts +510 -0
  37. package/lib/recipes/cz-pcfirst-preposition.ts +112 -0
  38. package/lib/recipes/fr-admin-split.ts +243 -0
  39. package/lib/recipes/fr-bare-street.ts +171 -0
  40. package/lib/recipes/fr-fragment.ts +334 -0
  41. package/lib/recipes/fr-lieudit.ts +301 -0
  42. package/lib/recipes/fr-order.ts +246 -0
  43. package/lib/recipes/german.ts +360 -0
  44. package/lib/recipes/house-venue.ts +93 -0
  45. package/lib/recipes/index.ts +97 -0
  46. package/lib/recipes/intersection.ts +619 -0
  47. package/lib/recipes/locale.ts +600 -0
  48. package/lib/recipes/nl-postcode.ts +117 -0
  49. package/lib/recipes/no-fragment.ts +213 -0
  50. package/lib/recipes/no-street-led.ts +135 -0
  51. package/lib/recipes/no-street.ts +91 -0
  52. package/lib/recipes/po-box-cedex.ts +976 -0
  53. package/lib/recipes/po-box.ts +124 -0
  54. package/lib/recipes/reviewed-postcode-tail.ts +190 -0
  55. package/lib/recipes/scaffold.ts +468 -0
  56. package/lib/recipes/si-bare-village.ts +99 -0
  57. package/lib/recipes/street-affix.ts +805 -0
  58. package/lib/recipes/street-bare.ts +102 -0
  59. package/lib/recipes/street.ts +83 -0
  60. package/lib/recipes/sub-venue-sources.ts +878 -0
  61. package/lib/recipes/sub-venue.ts +998 -0
  62. package/lib/recipes/trailing-region.ts +178 -0
  63. package/lib/recipes/unit.ts +304 -0
  64. package/lib/runner.ts +312 -0
  65. package/lib/synthesizers/anchor-absorption.ts +288 -0
  66. package/lib/synthesizers/boundary-stress.ts +532 -0
  67. package/lib/synthesizers/german.ts +260 -0
  68. package/lib/synthesizers/house-venue.ts +308 -0
  69. package/lib/synthesizers/intersection.ts +233 -0
  70. package/lib/synthesizers/no-street.ts +327 -0
  71. package/lib/synthesizers/po-box.ts +323 -0
  72. package/lib/synthesizers/street.ts +269 -0
  73. package/lib/synthesizers/utils.ts +993 -0
  74. package/lib/test-kit/corpus-recipe.ts +86 -0
  75. package/lib/test-kit/index.ts +100 -0
  76. package/lib/tools/align-slice.ts +68 -0
  77. package/lib/tools/audit.ts +403 -0
  78. package/lib/tools/corpus-stats.ts +136 -0
  79. package/lib/tools/fetch/acra-sg.ts +174 -0
  80. package/lib/tools/fetch/ban.ts +289 -0
  81. package/lib/tools/fetch/download.ts +477 -0
  82. package/lib/tools/fetch/gcis-tw.ts +175 -0
  83. package/lib/tools/fetch/geonames-dump.ts +257 -0
  84. package/lib/tools/fetch/geonames-postal.ts +180 -0
  85. package/lib/tools/fetch/houjin-jp.ts +135 -0
  86. package/lib/tools/fetch/hrsa.ts +59 -0
  87. package/lib/tools/fetch/imls-pls.ts +149 -0
  88. package/lib/tools/fetch/index.ts +174 -0
  89. package/lib/tools/fetch/juso-kr.ts +165 -0
  90. package/lib/tools/fetch/localdata-kr.ts +194 -0
  91. package/lib/tools/fetch/nad.ts +341 -0
  92. package/lib/tools/fetch/nppes.ts +165 -0
  93. package/lib/tools/fetch/openaddresses.ts +347 -0
  94. package/lib/tools/fetch/ourairports.ts +170 -0
  95. package/lib/tools/fetch/ppd.ts +121 -0
  96. package/lib/tools/fetch/state-hi-schools.ts +161 -0
  97. package/lib/tools/fetch/state-sources.ts +146 -0
  98. package/lib/tools/fetch/tiger-full.ts +308 -0
  99. package/lib/tools/fetch/wikidata-subvenue.ts +384 -0
  100. package/lib/tools/golden-expand.ts +574 -0
  101. package/lib/tools/golden-promote.ts +337 -0
  102. package/lib/tools/golden-relabel-street.ts +686 -0
  103. package/lib/tools/index.ts +28 -0
  104. package/lib/tools/ingest-csv.ts +378 -0
  105. package/lib/tools/jsonl-to-parquet.ts +207 -0
  106. package/lib/tools/lint-slice-vocab.ts +388 -0
  107. package/lib/tools/lint-slice.ts +496 -0
  108. package/lib/tools/overlay-manifest.ts +148 -0
  109. package/lib/tools/overture-subvenue.ts +209 -0
  110. package/lib/tools/postcode-triples.ts +363 -0
  111. package/lib/tools/slice-kryptonite.ts +137 -0
  112. package/lib/tools/slice-translit.ts +218 -0
  113. package/lib/tools/sub-venue/harvest.ts +234 -0
  114. package/lib/tools/sub-venue/head-nouns.ts +245 -0
  115. package/lib/tools/sub-venue/surfaces.ts +95 -0
  116. package/lib/tools/sub-venue/table.ts +281 -0
  117. package/lib/tools/sub-venue/wikidata.ts +85 -0
  118. package/lib/tools/sub-venue-lexicon.ts +429 -0
  119. package/lib/tools/sub-venue-promotions.ts +330 -0
  120. package/lib/types.ts +247 -0
  121. package/lib/utils/align.ts +330 -0
  122. package/lib/utils/golden.ts +189 -0
  123. package/lib/utils/index.ts +14 -0
  124. package/lib/utils/parquet.ts +582 -0
  125. package/lib/utils/slice-stats.ts +95 -0
  126. package/lib/utils/split.ts +279 -0
  127. package/lib/utils/tokenize.ts +120 -0
  128. package/lib/utils/wof-json.ts +247 -0
  129. package/out/adapters/ban/adapter.d.ts.map +1 -0
  130. package/out/adapters/ban/adapter.js +149 -0
  131. package/out/adapters/ban/adapter.js.map +1 -0
  132. package/out/adapters/ban/street-decompose.d.ts.map +1 -0
  133. package/out/adapters/ban/street-decompose.js +51 -0
  134. package/out/adapters/ban/street-decompose.js.map +1 -0
  135. package/out/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  136. package/out/adapters/fcc-bdc/adapter.js +144 -0
  137. package/out/adapters/fcc-bdc/adapter.js.map +1 -0
  138. package/out/adapters/geonames/adapter.d.ts.map +1 -0
  139. package/out/adapters/geonames/adapter.js +176 -0
  140. package/out/adapters/geonames/adapter.js.map +1 -0
  141. package/out/adapters/geonames-postal/adapter.d.ts +54 -0
  142. package/out/adapters/geonames-postal/adapter.d.ts.map +1 -0
  143. package/out/adapters/geonames-postal/adapter.js +107 -0
  144. package/out/adapters/geonames-postal/adapter.js.map +1 -0
  145. package/out/adapters/gnaf/adapter.d.ts +49 -0
  146. package/out/adapters/gnaf/adapter.d.ts.map +1 -0
  147. package/out/adapters/gnaf/adapter.js +124 -0
  148. package/out/adapters/gnaf/adapter.js.map +1 -0
  149. package/out/adapters/gnaf/assemble.d.ts +65 -0
  150. package/out/adapters/gnaf/assemble.d.ts.map +1 -0
  151. package/out/adapters/gnaf/assemble.js +154 -0
  152. package/out/adapters/gnaf/assemble.js.map +1 -0
  153. package/out/adapters/index.d.ts +51 -0
  154. package/out/adapters/index.d.ts.map +1 -0
  155. package/out/adapters/index.js +95 -0
  156. package/out/adapters/index.js.map +1 -0
  157. package/out/adapters/openaddresses/adapter.d.ts.map +1 -0
  158. package/out/adapters/openaddresses/adapter.js +186 -0
  159. package/out/adapters/openaddresses/adapter.js.map +1 -0
  160. package/out/adapters/overture/adapter.d.ts +48 -0
  161. package/out/adapters/overture/adapter.d.ts.map +1 -0
  162. package/out/adapters/overture/adapter.js +125 -0
  163. package/out/adapters/overture/adapter.js.map +1 -0
  164. package/out/adapters/state-hi-schools/adapter.d.ts +46 -0
  165. package/out/adapters/state-hi-schools/adapter.d.ts.map +1 -0
  166. package/out/adapters/state-hi-schools/adapter.js +145 -0
  167. package/out/adapters/state-hi-schools/adapter.js.map +1 -0
  168. package/out/adapters/state-hi-schools/workbook.d.ts +29 -0
  169. package/out/adapters/state-hi-schools/workbook.d.ts.map +1 -0
  170. package/out/adapters/state-hi-schools/workbook.js +20 -0
  171. package/out/adapters/state-hi-schools/workbook.js.map +1 -0
  172. package/out/adapters/state-ia-contractors/adapter.d.ts.map +1 -0
  173. package/out/adapters/state-ia-contractors/adapter.js.map +1 -0
  174. package/out/adapters/state-ny-notaries/adapter.d.ts.map +1 -0
  175. package/out/adapters/state-ny-notaries/adapter.js.map +1 -0
  176. package/out/adapters/state-tx-notaries/adapter.d.ts.map +1 -0
  177. package/out/adapters/state-tx-notaries/adapter.js.map +1 -0
  178. package/out/adapters/synth-po-box/adapter.d.ts.map +1 -0
  179. package/out/adapters/synth-po-box/adapter.js +140 -0
  180. package/out/adapters/synth-po-box/adapter.js.map +1 -0
  181. package/out/adapters/tiger/adapter.d.ts +55 -0
  182. package/out/adapters/tiger/adapter.d.ts.map +1 -0
  183. package/out/adapters/tiger/adapter.js +201 -0
  184. package/out/adapters/tiger/adapter.js.map +1 -0
  185. package/out/adapters/tiger/street-decompose.d.ts.map +1 -0
  186. package/out/adapters/tiger/street-decompose.js +68 -0
  187. package/out/adapters/tiger/street-decompose.js.map +1 -0
  188. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +56 -0
  189. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -0
  190. package/out/adapters/usgov-hrsa-fqhc/adapter.js +132 -0
  191. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -0
  192. package/out/adapters/usgov-imls-pls/adapter.d.ts +36 -0
  193. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +1 -0
  194. package/out/adapters/usgov-imls-pls/adapter.js +114 -0
  195. package/out/adapters/usgov-imls-pls/adapter.js.map +1 -0
  196. package/out/adapters/usgov-irs-bmf/adapter.d.ts +37 -0
  197. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -0
  198. package/out/adapters/usgov-irs-bmf/adapter.js +120 -0
  199. package/out/adapters/usgov-irs-bmf/adapter.js.map +1 -0
  200. package/out/adapters/usgov-nad/adapter.d.ts +48 -0
  201. package/out/adapters/usgov-nad/adapter.d.ts.map +1 -0
  202. package/out/adapters/usgov-nad/adapter.js +249 -0
  203. package/out/adapters/usgov-nad/adapter.js.map +1 -0
  204. package/out/adapters/usgov-nppes/adapter.d.ts.map +1 -0
  205. package/out/adapters/usgov-nppes/adapter.js +118 -0
  206. package/out/adapters/usgov-nppes/adapter.js.map +1 -0
  207. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -0
  208. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +154 -0
  209. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -0
  210. package/out/adapters/utils/index.d.ts +191 -0
  211. package/out/adapters/utils/index.d.ts.map +1 -0
  212. package/out/adapters/utils/index.js +206 -0
  213. package/out/adapters/utils/index.js.map +1 -0
  214. package/out/adapters/wof-admin-jp/adapter.d.ts.map +1 -0
  215. package/out/adapters/wof-admin-jp/adapter.js +161 -0
  216. package/out/adapters/wof-admin-jp/adapter.js.map +1 -0
  217. package/out/adapters/wof-admin-json/adapter.d.ts +79 -0
  218. package/out/adapters/wof-admin-json/adapter.d.ts.map +1 -0
  219. package/out/adapters/wof-admin-json/adapter.js +197 -0
  220. package/out/adapters/wof-admin-json/adapter.js.map +1 -0
  221. package/out/adapters/wof-json-rows.d.ts +62 -0
  222. package/out/adapters/wof-json-rows.d.ts.map +1 -0
  223. package/out/adapters/wof-json-rows.js +83 -0
  224. package/out/adapters/wof-json-rows.js.map +1 -0
  225. package/out/adapters/wof-postalcode-json/adapter.d.ts +65 -0
  226. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +1 -0
  227. package/out/adapters/wof-postalcode-json/adapter.js +151 -0
  228. package/out/adapters/wof-postalcode-json/adapter.js.map +1 -0
  229. package/out/build.d.ts +132 -0
  230. package/out/build.d.ts.map +1 -0
  231. package/out/build.js +245 -0
  232. package/out/build.js.map +1 -0
  233. package/out/codex/us-fips-state.d.ts.map +1 -0
  234. package/out/codex/us-fips-state.js.map +1 -0
  235. package/out/env.d.ts +46 -0
  236. package/out/env.d.ts.map +1 -0
  237. package/out/env.js +46 -0
  238. package/out/env.js.map +1 -0
  239. package/out/index.d.ts +13 -0
  240. package/out/index.d.ts.map +1 -0
  241. package/out/index.js +13 -0
  242. package/out/index.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 +82 -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 +88 -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 +84 -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 +394 -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 +101 -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 +144 -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 +277 -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 +198 -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 +289 -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 +74 -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 +453 -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 +103 -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 +183 -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 +114 -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 +72 -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 +768 -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 +101 -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 +323 -0
  336. package/out/recipes/scaffold.d.ts.map +1 -0
  337. package/out/recipes/scaffold.js +174 -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 +89 -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 +87 -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 +70 -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 +654 -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 +726 -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 +158 -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 +231 -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/acra-sg.d.ts +23 -0
  432. package/out/tools/fetch/acra-sg.d.ts.map +1 -0
  433. package/out/tools/fetch/acra-sg.js +126 -0
  434. package/out/tools/fetch/acra-sg.js.map +1 -0
  435. package/out/tools/fetch/ban.d.ts +31 -0
  436. package/out/tools/fetch/ban.d.ts.map +1 -0
  437. package/out/tools/fetch/ban.js +239 -0
  438. package/out/tools/fetch/ban.js.map +1 -0
  439. package/out/tools/fetch/download.d.ts +182 -0
  440. package/out/tools/fetch/download.d.ts.map +1 -0
  441. package/out/tools/fetch/download.js +318 -0
  442. package/out/tools/fetch/download.js.map +1 -0
  443. package/out/tools/fetch/gcis-tw.d.ts +23 -0
  444. package/out/tools/fetch/gcis-tw.d.ts.map +1 -0
  445. package/out/tools/fetch/gcis-tw.js +135 -0
  446. package/out/tools/fetch/gcis-tw.js.map +1 -0
  447. package/out/tools/fetch/geonames-dump.d.ts +91 -0
  448. package/out/tools/fetch/geonames-dump.d.ts.map +1 -0
  449. package/out/tools/fetch/geonames-dump.js +171 -0
  450. package/out/tools/fetch/geonames-dump.js.map +1 -0
  451. package/out/tools/fetch/geonames-postal.d.ts +76 -0
  452. package/out/tools/fetch/geonames-postal.d.ts.map +1 -0
  453. package/out/tools/fetch/geonames-postal.js +126 -0
  454. package/out/tools/fetch/geonames-postal.js.map +1 -0
  455. package/out/tools/fetch/houjin-jp.d.ts +24 -0
  456. package/out/tools/fetch/houjin-jp.d.ts.map +1 -0
  457. package/out/tools/fetch/houjin-jp.js +102 -0
  458. package/out/tools/fetch/houjin-jp.js.map +1 -0
  459. package/out/tools/fetch/hrsa.d.ts +18 -0
  460. package/out/tools/fetch/hrsa.d.ts.map +1 -0
  461. package/out/tools/fetch/hrsa.js +46 -0
  462. package/out/tools/fetch/hrsa.js.map +1 -0
  463. package/out/tools/fetch/imls-pls.d.ts +25 -0
  464. package/out/tools/fetch/imls-pls.d.ts.map +1 -0
  465. package/out/tools/fetch/imls-pls.js +108 -0
  466. package/out/tools/fetch/imls-pls.js.map +1 -0
  467. package/out/tools/fetch/index.d.ts +171 -0
  468. package/out/tools/fetch/index.d.ts.map +1 -0
  469. package/out/tools/fetch/index.js +170 -0
  470. package/out/tools/fetch/index.js.map +1 -0
  471. package/out/tools/fetch/juso-kr.d.ts +30 -0
  472. package/out/tools/fetch/juso-kr.d.ts.map +1 -0
  473. package/out/tools/fetch/juso-kr.js +120 -0
  474. package/out/tools/fetch/juso-kr.js.map +1 -0
  475. package/out/tools/fetch/localdata-kr.d.ts +30 -0
  476. package/out/tools/fetch/localdata-kr.d.ts.map +1 -0
  477. package/out/tools/fetch/localdata-kr.js +139 -0
  478. package/out/tools/fetch/localdata-kr.js.map +1 -0
  479. package/out/tools/fetch/nad.d.ts +70 -0
  480. package/out/tools/fetch/nad.d.ts.map +1 -0
  481. package/out/tools/fetch/nad.js +234 -0
  482. package/out/tools/fetch/nad.js.map +1 -0
  483. package/out/tools/fetch/nppes.d.ts +26 -0
  484. package/out/tools/fetch/nppes.d.ts.map +1 -0
  485. package/out/tools/fetch/nppes.js +126 -0
  486. package/out/tools/fetch/nppes.js.map +1 -0
  487. package/out/tools/fetch/openaddresses.d.ts +9 -0
  488. package/out/tools/fetch/openaddresses.d.ts.map +1 -0
  489. package/out/tools/fetch/openaddresses.js +279 -0
  490. package/out/tools/fetch/openaddresses.js.map +1 -0
  491. package/out/tools/fetch/ourairports.d.ts +45 -0
  492. package/out/tools/fetch/ourairports.d.ts.map +1 -0
  493. package/out/tools/fetch/ourairports.js +128 -0
  494. package/out/tools/fetch/ourairports.js.map +1 -0
  495. package/out/tools/fetch/ppd.d.ts.map +1 -0
  496. package/out/tools/fetch/ppd.js +85 -0
  497. package/out/tools/fetch/ppd.js.map +1 -0
  498. package/out/tools/fetch/state-hi-schools.d.ts +26 -0
  499. package/out/tools/fetch/state-hi-schools.d.ts.map +1 -0
  500. package/out/tools/fetch/state-hi-schools.js +112 -0
  501. package/out/tools/fetch/state-hi-schools.js.map +1 -0
  502. package/out/tools/fetch/state-sources.d.ts +26 -0
  503. package/out/tools/fetch/state-sources.d.ts.map +1 -0
  504. package/out/tools/fetch/state-sources.js +111 -0
  505. package/out/tools/fetch/state-sources.js.map +1 -0
  506. package/out/tools/fetch/tiger-full.d.ts +22 -0
  507. package/out/tools/fetch/tiger-full.d.ts.map +1 -0
  508. package/out/tools/fetch/tiger-full.js +217 -0
  509. package/out/tools/fetch/tiger-full.js.map +1 -0
  510. package/out/tools/fetch/wikidata-subvenue.d.ts +171 -0
  511. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -0
  512. package/out/tools/fetch/wikidata-subvenue.js +274 -0
  513. package/out/tools/fetch/wikidata-subvenue.js.map +1 -0
  514. package/out/tools/gb-title-case.d.ts.map +1 -0
  515. package/out/tools/gb-title-case.js.map +1 -0
  516. package/out/tools/golden-expand.d.ts +90 -0
  517. package/out/tools/golden-expand.d.ts.map +1 -0
  518. package/out/tools/golden-expand.js +406 -0
  519. package/out/tools/golden-expand.js.map +1 -0
  520. package/out/tools/golden-promote.d.ts.map +1 -0
  521. package/out/tools/golden-promote.js +240 -0
  522. package/out/tools/golden-promote.js.map +1 -0
  523. package/out/tools/golden-relabel-street.d.ts +196 -0
  524. package/out/tools/golden-relabel-street.d.ts.map +1 -0
  525. package/out/tools/golden-relabel-street.js +439 -0
  526. package/out/tools/golden-relabel-street.js.map +1 -0
  527. package/out/tools/index.d.ts +28 -0
  528. package/out/tools/index.d.ts.map +1 -0
  529. package/out/tools/index.js +28 -0
  530. package/out/tools/index.js.map +1 -0
  531. package/out/tools/ingest-csv.d.ts.map +1 -0
  532. package/out/tools/ingest-csv.js +265 -0
  533. package/out/tools/ingest-csv.js.map +1 -0
  534. package/out/tools/jsonl-to-parquet.d.ts +61 -0
  535. package/out/tools/jsonl-to-parquet.d.ts.map +1 -0
  536. package/out/tools/jsonl-to-parquet.js +150 -0
  537. package/out/tools/jsonl-to-parquet.js.map +1 -0
  538. package/out/tools/lint-slice-vocab.d.ts +90 -0
  539. package/out/tools/lint-slice-vocab.d.ts.map +1 -0
  540. package/out/tools/lint-slice-vocab.js +267 -0
  541. package/out/tools/lint-slice-vocab.js.map +1 -0
  542. package/out/tools/lint-slice.d.ts +93 -0
  543. package/out/tools/lint-slice.d.ts.map +1 -0
  544. package/out/tools/lint-slice.js +322 -0
  545. package/out/tools/lint-slice.js.map +1 -0
  546. package/out/tools/overlay-manifest.d.ts +39 -0
  547. package/out/tools/overlay-manifest.d.ts.map +1 -0
  548. package/out/tools/overlay-manifest.js +90 -0
  549. package/out/tools/overlay-manifest.js.map +1 -0
  550. package/out/tools/overture-subvenue.d.ts +112 -0
  551. package/out/tools/overture-subvenue.d.ts.map +1 -0
  552. package/out/tools/overture-subvenue.js +139 -0
  553. package/out/tools/overture-subvenue.js.map +1 -0
  554. package/out/tools/postcode-triples.d.ts +174 -0
  555. package/out/tools/postcode-triples.d.ts.map +1 -0
  556. package/out/tools/postcode-triples.js +292 -0
  557. package/out/tools/postcode-triples.js.map +1 -0
  558. package/out/tools/slice-kryptonite.d.ts +32 -0
  559. package/out/tools/slice-kryptonite.d.ts.map +1 -0
  560. package/out/tools/slice-kryptonite.js +99 -0
  561. package/out/tools/slice-kryptonite.js.map +1 -0
  562. package/out/tools/slice-translit.d.ts +51 -0
  563. package/out/tools/slice-translit.d.ts.map +1 -0
  564. package/out/tools/slice-translit.js +166 -0
  565. package/out/tools/slice-translit.js.map +1 -0
  566. package/out/tools/sub-venue/harvest.d.ts +100 -0
  567. package/out/tools/sub-venue/harvest.d.ts.map +1 -0
  568. package/out/tools/sub-venue/harvest.js +168 -0
  569. package/out/tools/sub-venue/harvest.js.map +1 -0
  570. package/out/tools/sub-venue/head-nouns.d.ts +50 -0
  571. package/out/tools/sub-venue/head-nouns.d.ts.map +1 -0
  572. package/out/tools/sub-venue/head-nouns.js +213 -0
  573. package/out/tools/sub-venue/head-nouns.js.map +1 -0
  574. package/out/tools/sub-venue/surfaces.d.ts +45 -0
  575. package/out/tools/sub-venue/surfaces.d.ts.map +1 -0
  576. package/out/tools/sub-venue/surfaces.js +77 -0
  577. package/out/tools/sub-venue/surfaces.js.map +1 -0
  578. package/out/tools/sub-venue/table.d.ts +229 -0
  579. package/out/tools/sub-venue/table.d.ts.map +1 -0
  580. package/out/tools/sub-venue/table.js +108 -0
  581. package/out/tools/sub-venue/table.js.map +1 -0
  582. package/out/tools/sub-venue/wikidata.d.ts +26 -0
  583. package/out/tools/sub-venue/wikidata.d.ts.map +1 -0
  584. package/out/tools/sub-venue/wikidata.js +62 -0
  585. package/out/tools/sub-venue/wikidata.js.map +1 -0
  586. package/out/tools/sub-venue-lexicon.d.ts +156 -0
  587. package/out/tools/sub-venue-lexicon.d.ts.map +1 -0
  588. package/out/tools/sub-venue-lexicon.js +283 -0
  589. package/out/tools/sub-venue-lexicon.js.map +1 -0
  590. package/out/tools/sub-venue-promotions.d.ts +94 -0
  591. package/out/tools/sub-venue-promotions.d.ts.map +1 -0
  592. package/out/tools/sub-venue-promotions.js +266 -0
  593. package/out/tools/sub-venue-promotions.js.map +1 -0
  594. package/out/types.d.ts +221 -0
  595. package/out/types.d.ts.map +1 -0
  596. package/out/types.js.map +1 -0
  597. package/out/utils/align.d.ts +93 -0
  598. package/out/utils/align.d.ts.map +1 -0
  599. package/out/utils/align.js +234 -0
  600. package/out/utils/align.js.map +1 -0
  601. package/out/utils/golden.d.ts +85 -0
  602. package/out/utils/golden.d.ts.map +1 -0
  603. package/out/utils/golden.js +127 -0
  604. package/out/utils/golden.js.map +1 -0
  605. package/out/utils/index.d.ts +14 -0
  606. package/out/utils/index.d.ts.map +1 -0
  607. package/out/utils/index.js +14 -0
  608. package/out/utils/index.js.map +1 -0
  609. package/out/utils/license.d.ts.map +1 -0
  610. package/out/utils/license.js.map +1 -0
  611. package/out/utils/parquet.d.ts +178 -0
  612. package/out/utils/parquet.d.ts.map +1 -0
  613. package/out/utils/parquet.js +371 -0
  614. package/out/utils/parquet.js.map +1 -0
  615. package/out/utils/slice-stats.d.ts +52 -0
  616. package/out/utils/slice-stats.d.ts.map +1 -0
  617. package/out/utils/slice-stats.js +58 -0
  618. package/out/utils/slice-stats.js.map +1 -0
  619. package/out/utils/split.d.ts +128 -0
  620. package/out/utils/split.d.ts.map +1 -0
  621. package/out/utils/split.js +204 -0
  622. package/out/utils/split.js.map +1 -0
  623. package/out/utils/tokenize.d.ts +64 -0
  624. package/out/utils/tokenize.d.ts.map +1 -0
  625. package/out/utils/tokenize.js +82 -0
  626. package/out/utils/tokenize.js.map +1 -0
  627. package/out/utils/wof-json.d.ts +113 -0
  628. package/out/utils/wof-json.d.ts.map +1 -0
  629. package/out/utils/wof-json.js +173 -0
  630. package/out/utils/wof-json.js.map +1 -0
  631. package/package.json +259 -194
  632. package/out/src/adapters/ban/adapter.d.ts.map +0 -1
  633. package/out/src/adapters/ban/adapter.js +0 -149
  634. package/out/src/adapters/ban/adapter.js.map +0 -1
  635. package/out/src/adapters/ban/street-decompose.d.ts.map +0 -1
  636. package/out/src/adapters/ban/street-decompose.js +0 -75
  637. package/out/src/adapters/ban/street-decompose.js.map +0 -1
  638. package/out/src/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  639. package/out/src/adapters/fcc-bdc/adapter.js +0 -144
  640. package/out/src/adapters/fcc-bdc/adapter.js.map +0 -1
  641. package/out/src/adapters/geonames/adapter.d.ts.map +0 -1
  642. package/out/src/adapters/geonames/adapter.js +0 -176
  643. package/out/src/adapters/geonames/adapter.js.map +0 -1
  644. package/out/src/adapters/geonames-postal/adapter.d.ts +0 -41
  645. package/out/src/adapters/geonames-postal/adapter.d.ts.map +0 -1
  646. package/out/src/adapters/geonames-postal/adapter.js +0 -104
  647. package/out/src/adapters/geonames-postal/adapter.js.map +0 -1
  648. package/out/src/adapters/gnaf/adapter.d.ts +0 -49
  649. package/out/src/adapters/gnaf/adapter.d.ts.map +0 -1
  650. package/out/src/adapters/gnaf/adapter.js +0 -124
  651. package/out/src/adapters/gnaf/adapter.js.map +0 -1
  652. package/out/src/adapters/gnaf/assemble.d.ts +0 -65
  653. package/out/src/adapters/gnaf/assemble.d.ts.map +0 -1
  654. package/out/src/adapters/gnaf/assemble.js +0 -154
  655. package/out/src/adapters/gnaf/assemble.js.map +0 -1
  656. package/out/src/adapters/index.d.ts +0 -51
  657. package/out/src/adapters/index.d.ts.map +0 -1
  658. package/out/src/adapters/index.js +0 -95
  659. package/out/src/adapters/index.js.map +0 -1
  660. package/out/src/adapters/openaddresses/adapter.d.ts.map +0 -1
  661. package/out/src/adapters/openaddresses/adapter.js +0 -186
  662. package/out/src/adapters/openaddresses/adapter.js.map +0 -1
  663. package/out/src/adapters/overture/adapter.d.ts +0 -48
  664. package/out/src/adapters/overture/adapter.d.ts.map +0 -1
  665. package/out/src/adapters/overture/adapter.js +0 -125
  666. package/out/src/adapters/overture/adapter.js.map +0 -1
  667. package/out/src/adapters/state-hi-schools/adapter.d.ts +0 -47
  668. package/out/src/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  669. package/out/src/adapters/state-hi-schools/adapter.js +0 -133
  670. package/out/src/adapters/state-hi-schools/adapter.js.map +0 -1
  671. package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  672. package/out/src/adapters/state-ia-contractors/adapter.js.map +0 -1
  673. package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  674. package/out/src/adapters/state-ny-notaries/adapter.js.map +0 -1
  675. package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  676. package/out/src/adapters/state-tx-notaries/adapter.js.map +0 -1
  677. package/out/src/adapters/synth-po-box/adapter.d.ts.map +0 -1
  678. package/out/src/adapters/synth-po-box/adapter.js +0 -140
  679. package/out/src/adapters/synth-po-box/adapter.js.map +0 -1
  680. package/out/src/adapters/tiger/adapter.d.ts +0 -55
  681. package/out/src/adapters/tiger/adapter.d.ts.map +0 -1
  682. package/out/src/adapters/tiger/adapter.js +0 -201
  683. package/out/src/adapters/tiger/adapter.js.map +0 -1
  684. package/out/src/adapters/tiger/street-decompose.d.ts.map +0 -1
  685. package/out/src/adapters/tiger/street-decompose.js +0 -90
  686. package/out/src/adapters/tiger/street-decompose.js.map +0 -1
  687. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -47
  688. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  689. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +0 -139
  690. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  691. package/out/src/adapters/usgov-imls-pls/adapter.d.ts +0 -36
  692. package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  693. package/out/src/adapters/usgov-imls-pls/adapter.js +0 -114
  694. package/out/src/adapters/usgov-imls-pls/adapter.js.map +0 -1
  695. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +0 -37
  696. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  697. package/out/src/adapters/usgov-irs-bmf/adapter.js +0 -124
  698. package/out/src/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  699. package/out/src/adapters/usgov-nad/adapter.d.ts +0 -48
  700. package/out/src/adapters/usgov-nad/adapter.d.ts.map +0 -1
  701. package/out/src/adapters/usgov-nad/adapter.js +0 -252
  702. package/out/src/adapters/usgov-nad/adapter.js.map +0 -1
  703. package/out/src/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  704. package/out/src/adapters/usgov-nppes/adapter.js +0 -116
  705. package/out/src/adapters/usgov-nppes/adapter.js.map +0 -1
  706. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  707. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -156
  708. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  709. package/out/src/adapters/utils/index.d.ts +0 -150
  710. package/out/src/adapters/utils/index.d.ts.map +0 -1
  711. package/out/src/adapters/utils/index.js +0 -159
  712. package/out/src/adapters/utils/index.js.map +0 -1
  713. package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  714. package/out/src/adapters/wof-admin-jp/adapter.js +0 -164
  715. package/out/src/adapters/wof-admin-jp/adapter.js.map +0 -1
  716. package/out/src/adapters/wof-admin-json/adapter.d.ts +0 -82
  717. package/out/src/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  718. package/out/src/adapters/wof-admin-json/adapter.js +0 -224
  719. package/out/src/adapters/wof-admin-json/adapter.js.map +0 -1
  720. package/out/src/adapters/wof-json-rows.d.ts +0 -32
  721. package/out/src/adapters/wof-json-rows.d.ts.map +0 -1
  722. package/out/src/adapters/wof-json-rows.js +0 -45
  723. package/out/src/adapters/wof-json-rows.js.map +0 -1
  724. package/out/src/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  725. package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  726. package/out/src/adapters/wof-postalcode-json/adapter.js +0 -160
  727. package/out/src/adapters/wof-postalcode-json/adapter.js.map +0 -1
  728. package/out/src/build.d.ts +0 -132
  729. package/out/src/build.d.ts.map +0 -1
  730. package/out/src/build.js +0 -251
  731. package/out/src/build.js.map +0 -1
  732. package/out/src/codex/us-fips-state.d.ts.map +0 -1
  733. package/out/src/codex/us-fips-state.js.map +0 -1
  734. package/out/src/index.d.ts +0 -14
  735. package/out/src/index.d.ts.map +0 -1
  736. package/out/src/index.js +0 -14
  737. package/out/src/index.js.map +0 -1
  738. package/out/src/name-prone-us-suffixes.d.ts +0 -12
  739. package/out/src/name-prone-us-suffixes.d.ts.map +0 -1
  740. package/out/src/name-prone-us-suffixes.js +0 -12
  741. package/out/src/name-prone-us-suffixes.js.map +0 -1
  742. package/out/src/parquet-wrapper/index.d.ts +0 -9
  743. package/out/src/parquet-wrapper/index.d.ts.map +0 -1
  744. package/out/src/parquet-wrapper/index.js +0 -9
  745. package/out/src/parquet-wrapper/index.js.map +0 -1
  746. package/out/src/parquet-wrapper/reader.d.ts +0 -34
  747. package/out/src/parquet-wrapper/reader.d.ts.map +0 -1
  748. package/out/src/parquet-wrapper/reader.js +0 -69
  749. package/out/src/parquet-wrapper/reader.js.map +0 -1
  750. package/out/src/parquet-wrapper/schema.d.ts +0 -49
  751. package/out/src/parquet-wrapper/schema.d.ts.map +0 -1
  752. package/out/src/parquet-wrapper/schema.js +0 -55
  753. package/out/src/parquet-wrapper/schema.js.map +0 -1
  754. package/out/src/parquet-wrapper/writer.d.ts +0 -46
  755. package/out/src/parquet-wrapper/writer.d.ts.map +0 -1
  756. package/out/src/parquet-wrapper/writer.js +0 -76
  757. package/out/src/parquet-wrapper/writer.js.map +0 -1
  758. package/out/src/runner.d.ts +0 -126
  759. package/out/src/runner.d.ts.map +0 -1
  760. package/out/src/runner.js +0 -189
  761. package/out/src/runner.js.map +0 -1
  762. package/out/src/shard-recipes/anchor-absorption.d.ts +0 -20
  763. package/out/src/shard-recipes/anchor-absorption.d.ts.map +0 -1
  764. package/out/src/shard-recipes/anchor-absorption.js +0 -82
  765. package/out/src/shard-recipes/anchor-absorption.js.map +0 -1
  766. package/out/src/shard-recipes/bare-country.d.ts +0 -25
  767. package/out/src/shard-recipes/bare-country.d.ts.map +0 -1
  768. package/out/src/shard-recipes/bare-country.js +0 -87
  769. package/out/src/shard-recipes/bare-country.js.map +0 -1
  770. package/out/src/shard-recipes/boundary-stress.d.ts +0 -20
  771. package/out/src/shard-recipes/boundary-stress.d.ts.map +0 -1
  772. package/out/src/shard-recipes/boundary-stress.js +0 -83
  773. package/out/src/shard-recipes/boundary-stress.js.map +0 -1
  774. package/out/src/shard-recipes/country-balanced.d.ts +0 -32
  775. package/out/src/shard-recipes/country-balanced.d.ts.map +0 -1
  776. package/out/src/shard-recipes/country-balanced.js +0 -406
  777. package/out/src/shard-recipes/country-balanced.js.map +0 -1
  778. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts +0 -22
  779. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  780. package/out/src/shard-recipes/cz-pcfirst-preposition.js +0 -100
  781. package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +0 -1
  782. package/out/src/shard-recipes/fr-admin-split.d.ts +0 -38
  783. package/out/src/shard-recipes/fr-admin-split.d.ts.map +0 -1
  784. package/out/src/shard-recipes/fr-admin-split.js +0 -188
  785. package/out/src/shard-recipes/fr-admin-split.js.map +0 -1
  786. package/out/src/shard-recipes/fr-bare-street.d.ts +0 -28
  787. package/out/src/shard-recipes/fr-bare-street.d.ts.map +0 -1
  788. package/out/src/shard-recipes/fr-bare-street.js +0 -143
  789. package/out/src/shard-recipes/fr-bare-street.js.map +0 -1
  790. package/out/src/shard-recipes/fr-fragment.d.ts +0 -77
  791. package/out/src/shard-recipes/fr-fragment.d.ts.map +0 -1
  792. package/out/src/shard-recipes/fr-fragment.js +0 -276
  793. package/out/src/shard-recipes/fr-fragment.js.map +0 -1
  794. package/out/src/shard-recipes/fr-lieudit.d.ts +0 -32
  795. package/out/src/shard-recipes/fr-lieudit.d.ts.map +0 -1
  796. package/out/src/shard-recipes/fr-lieudit.js +0 -226
  797. package/out/src/shard-recipes/fr-lieudit.js.map +0 -1
  798. package/out/src/shard-recipes/fr-order.d.ts +0 -38
  799. package/out/src/shard-recipes/fr-order.d.ts.map +0 -1
  800. package/out/src/shard-recipes/fr-order.js +0 -208
  801. package/out/src/shard-recipes/fr-order.js.map +0 -1
  802. package/out/src/shard-recipes/german.d.ts +0 -23
  803. package/out/src/shard-recipes/german.d.ts.map +0 -1
  804. package/out/src/shard-recipes/german.js +0 -132
  805. package/out/src/shard-recipes/german.js.map +0 -1
  806. package/out/src/shard-recipes/house-venue.d.ts +0 -18
  807. package/out/src/shard-recipes/house-venue.d.ts.map +0 -1
  808. package/out/src/shard-recipes/house-venue.js +0 -74
  809. package/out/src/shard-recipes/house-venue.js.map +0 -1
  810. package/out/src/shard-recipes/index.d.ts +0 -24
  811. package/out/src/shard-recipes/index.d.ts.map +0 -1
  812. package/out/src/shard-recipes/index.js +0 -89
  813. package/out/src/shard-recipes/index.js.map +0 -1
  814. package/out/src/shard-recipes/intersection.d.ts +0 -42
  815. package/out/src/shard-recipes/intersection.d.ts.map +0 -1
  816. package/out/src/shard-recipes/intersection.js +0 -460
  817. package/out/src/shard-recipes/intersection.js.map +0 -1
  818. package/out/src/shard-recipes/locale.d.ts +0 -135
  819. package/out/src/shard-recipes/locale.d.ts.map +0 -1
  820. package/out/src/shard-recipes/locale.js +0 -459
  821. package/out/src/shard-recipes/locale.js.map +0 -1
  822. package/out/src/shard-recipes/nl-postcode.d.ts +0 -26
  823. package/out/src/shard-recipes/nl-postcode.d.ts.map +0 -1
  824. package/out/src/shard-recipes/nl-postcode.js +0 -102
  825. package/out/src/shard-recipes/nl-postcode.js.map +0 -1
  826. package/out/src/shard-recipes/no-fragment.d.ts +0 -43
  827. package/out/src/shard-recipes/no-fragment.d.ts.map +0 -1
  828. package/out/src/shard-recipes/no-fragment.js +0 -188
  829. package/out/src/shard-recipes/no-fragment.js.map +0 -1
  830. package/out/src/shard-recipes/no-street-led.d.ts +0 -24
  831. package/out/src/shard-recipes/no-street-led.d.ts.map +0 -1
  832. package/out/src/shard-recipes/no-street-led.js +0 -121
  833. package/out/src/shard-recipes/no-street-led.js.map +0 -1
  834. package/out/src/shard-recipes/no-street.d.ts +0 -18
  835. package/out/src/shard-recipes/no-street.d.ts.map +0 -1
  836. package/out/src/shard-recipes/no-street.js +0 -72
  837. package/out/src/shard-recipes/no-street.js.map +0 -1
  838. package/out/src/shard-recipes/po-box-cedex.d.ts +0 -38
  839. package/out/src/shard-recipes/po-box-cedex.d.ts.map +0 -1
  840. package/out/src/shard-recipes/po-box-cedex.js +0 -726
  841. package/out/src/shard-recipes/po-box-cedex.js.map +0 -1
  842. package/out/src/shard-recipes/po-box.d.ts +0 -17
  843. package/out/src/shard-recipes/po-box.d.ts.map +0 -1
  844. package/out/src/shard-recipes/po-box.js +0 -101
  845. package/out/src/shard-recipes/po-box.js.map +0 -1
  846. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts +0 -47
  847. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts.map +0 -1
  848. package/out/src/shard-recipes/reviewed-postcode-tail.js +0 -125
  849. package/out/src/shard-recipes/reviewed-postcode-tail.js.map +0 -1
  850. package/out/src/shard-recipes/scaffold.d.ts +0 -246
  851. package/out/src/shard-recipes/scaffold.d.ts.map +0 -1
  852. package/out/src/shard-recipes/scaffold.js +0 -137
  853. package/out/src/shard-recipes/scaffold.js.map +0 -1
  854. package/out/src/shard-recipes/si-bare-village.d.ts +0 -32
  855. package/out/src/shard-recipes/si-bare-village.d.ts.map +0 -1
  856. package/out/src/shard-recipes/si-bare-village.js +0 -88
  857. package/out/src/shard-recipes/si-bare-village.js.map +0 -1
  858. package/out/src/shard-recipes/street-affix.d.ts +0 -89
  859. package/out/src/shard-recipes/street-affix.d.ts.map +0 -1
  860. package/out/src/shard-recipes/street-affix.js +0 -578
  861. package/out/src/shard-recipes/street-affix.js.map +0 -1
  862. package/out/src/shard-recipes/street-bare.d.ts +0 -25
  863. package/out/src/shard-recipes/street-bare.d.ts.map +0 -1
  864. package/out/src/shard-recipes/street-bare.js +0 -86
  865. package/out/src/shard-recipes/street-bare.js.map +0 -1
  866. package/out/src/shard-recipes/street.d.ts +0 -15
  867. package/out/src/shard-recipes/street.d.ts.map +0 -1
  868. package/out/src/shard-recipes/street.js +0 -69
  869. package/out/src/shard-recipes/street.js.map +0 -1
  870. package/out/src/shard-recipes/sub-venue-sources.d.ts +0 -228
  871. package/out/src/shard-recipes/sub-venue-sources.d.ts.map +0 -1
  872. package/out/src/shard-recipes/sub-venue-sources.js +0 -664
  873. package/out/src/shard-recipes/sub-venue-sources.js.map +0 -1
  874. package/out/src/shard-recipes/sub-venue.d.ts +0 -269
  875. package/out/src/shard-recipes/sub-venue.d.ts.map +0 -1
  876. package/out/src/shard-recipes/sub-venue.js +0 -710
  877. package/out/src/shard-recipes/sub-venue.js.map +0 -1
  878. package/out/src/shard-recipes/trailing-region.d.ts +0 -74
  879. package/out/src/shard-recipes/trailing-region.d.ts.map +0 -1
  880. package/out/src/shard-recipes/trailing-region.js +0 -157
  881. package/out/src/shard-recipes/trailing-region.js.map +0 -1
  882. package/out/src/shard-recipes/unit.d.ts +0 -29
  883. package/out/src/shard-recipes/unit.d.ts.map +0 -1
  884. package/out/src/shard-recipes/unit.js +0 -243
  885. package/out/src/shard-recipes/unit.js.map +0 -1
  886. package/out/src/synthesizers/anchor-absorption.d.ts +0 -63
  887. package/out/src/synthesizers/anchor-absorption.d.ts.map +0 -1
  888. package/out/src/synthesizers/anchor-absorption.js +0 -223
  889. package/out/src/synthesizers/anchor-absorption.js.map +0 -1
  890. package/out/src/synthesizers/boundary-stress.d.ts +0 -78
  891. package/out/src/synthesizers/boundary-stress.d.ts.map +0 -1
  892. package/out/src/synthesizers/boundary-stress.js +0 -455
  893. package/out/src/synthesizers/boundary-stress.js.map +0 -1
  894. package/out/src/synthesizers/german.d.ts +0 -107
  895. package/out/src/synthesizers/german.d.ts.map +0 -1
  896. package/out/src/synthesizers/german.js +0 -148
  897. package/out/src/synthesizers/german.js.map +0 -1
  898. package/out/src/synthesizers/house-venue.d.ts +0 -56
  899. package/out/src/synthesizers/house-venue.d.ts.map +0 -1
  900. package/out/src/synthesizers/house-venue.js +0 -267
  901. package/out/src/synthesizers/house-venue.js.map +0 -1
  902. package/out/src/synthesizers/intersection.d.ts +0 -52
  903. package/out/src/synthesizers/intersection.d.ts.map +0 -1
  904. package/out/src/synthesizers/intersection.js +0 -175
  905. package/out/src/synthesizers/intersection.js.map +0 -1
  906. package/out/src/synthesizers/no-street.d.ts +0 -72
  907. package/out/src/synthesizers/no-street.d.ts.map +0 -1
  908. package/out/src/synthesizers/no-street.js +0 -282
  909. package/out/src/synthesizers/no-street.js.map +0 -1
  910. package/out/src/synthesizers/po-box.d.ts +0 -104
  911. package/out/src/synthesizers/po-box.d.ts.map +0 -1
  912. package/out/src/synthesizers/po-box.js +0 -266
  913. package/out/src/synthesizers/po-box.js.map +0 -1
  914. package/out/src/synthesizers/street.d.ts +0 -54
  915. package/out/src/synthesizers/street.d.ts.map +0 -1
  916. package/out/src/synthesizers/street.js +0 -221
  917. package/out/src/synthesizers/street.js.map +0 -1
  918. package/out/src/synthesizers/utils.d.ts +0 -203
  919. package/out/src/synthesizers/utils.d.ts.map +0 -1
  920. package/out/src/synthesizers/utils.js +0 -708
  921. package/out/src/synthesizers/utils.js.map +0 -1
  922. package/out/src/tools/align-shard.d.ts +0 -8
  923. package/out/src/tools/align-shard.d.ts.map +0 -1
  924. package/out/src/tools/align-shard.js +0 -56
  925. package/out/src/tools/align-shard.js.map +0 -1
  926. package/out/src/tools/audit.d.ts +0 -28
  927. package/out/src/tools/audit.d.ts.map +0 -1
  928. package/out/src/tools/audit.js +0 -285
  929. package/out/src/tools/audit.js.map +0 -1
  930. package/out/src/tools/corpus-stats.d.ts +0 -44
  931. package/out/src/tools/corpus-stats.d.ts.map +0 -1
  932. package/out/src/tools/corpus-stats.js +0 -138
  933. package/out/src/tools/corpus-stats.js.map +0 -1
  934. package/out/src/tools/fetch/ban.d.ts +0 -31
  935. package/out/src/tools/fetch/ban.d.ts.map +0 -1
  936. package/out/src/tools/fetch/ban.js +0 -239
  937. package/out/src/tools/fetch/ban.js.map +0 -1
  938. package/out/src/tools/fetch/download.d.ts +0 -78
  939. package/out/src/tools/fetch/download.d.ts.map +0 -1
  940. package/out/src/tools/fetch/download.js +0 -116
  941. package/out/src/tools/fetch/download.js.map +0 -1
  942. package/out/src/tools/fetch/geonames-dump.d.ts +0 -87
  943. package/out/src/tools/fetch/geonames-dump.d.ts.map +0 -1
  944. package/out/src/tools/fetch/geonames-dump.js +0 -178
  945. package/out/src/tools/fetch/geonames-dump.js.map +0 -1
  946. package/out/src/tools/fetch/geonames-postal.d.ts +0 -76
  947. package/out/src/tools/fetch/geonames-postal.d.ts.map +0 -1
  948. package/out/src/tools/fetch/geonames-postal.js +0 -125
  949. package/out/src/tools/fetch/geonames-postal.js.map +0 -1
  950. package/out/src/tools/fetch/hrsa.d.ts +0 -18
  951. package/out/src/tools/fetch/hrsa.d.ts.map +0 -1
  952. package/out/src/tools/fetch/hrsa.js +0 -46
  953. package/out/src/tools/fetch/hrsa.js.map +0 -1
  954. package/out/src/tools/fetch/imls-pls.d.ts +0 -25
  955. package/out/src/tools/fetch/imls-pls.d.ts.map +0 -1
  956. package/out/src/tools/fetch/imls-pls.js +0 -108
  957. package/out/src/tools/fetch/imls-pls.js.map +0 -1
  958. package/out/src/tools/fetch/index.d.ts +0 -144
  959. package/out/src/tools/fetch/index.d.ts.map +0 -1
  960. package/out/src/tools/fetch/index.js +0 -143
  961. package/out/src/tools/fetch/index.js.map +0 -1
  962. package/out/src/tools/fetch/nad.d.ts +0 -70
  963. package/out/src/tools/fetch/nad.d.ts.map +0 -1
  964. package/out/src/tools/fetch/nad.js +0 -234
  965. package/out/src/tools/fetch/nad.js.map +0 -1
  966. package/out/src/tools/fetch/nppes.d.ts +0 -26
  967. package/out/src/tools/fetch/nppes.d.ts.map +0 -1
  968. package/out/src/tools/fetch/nppes.js +0 -126
  969. package/out/src/tools/fetch/nppes.js.map +0 -1
  970. package/out/src/tools/fetch/openaddresses.d.ts +0 -61
  971. package/out/src/tools/fetch/openaddresses.d.ts.map +0 -1
  972. package/out/src/tools/fetch/openaddresses.js +0 -317
  973. package/out/src/tools/fetch/openaddresses.js.map +0 -1
  974. package/out/src/tools/fetch/ourairports.d.ts +0 -45
  975. package/out/src/tools/fetch/ourairports.d.ts.map +0 -1
  976. package/out/src/tools/fetch/ourairports.js +0 -128
  977. package/out/src/tools/fetch/ourairports.js.map +0 -1
  978. package/out/src/tools/fetch/ppd.d.ts.map +0 -1
  979. package/out/src/tools/fetch/ppd.js +0 -100
  980. package/out/src/tools/fetch/ppd.js.map +0 -1
  981. package/out/src/tools/fetch/state-hi-schools.d.ts +0 -25
  982. package/out/src/tools/fetch/state-hi-schools.d.ts.map +0 -1
  983. package/out/src/tools/fetch/state-hi-schools.js +0 -162
  984. package/out/src/tools/fetch/state-hi-schools.js.map +0 -1
  985. package/out/src/tools/fetch/state-sources.d.ts +0 -26
  986. package/out/src/tools/fetch/state-sources.d.ts.map +0 -1
  987. package/out/src/tools/fetch/state-sources.js +0 -111
  988. package/out/src/tools/fetch/state-sources.js.map +0 -1
  989. package/out/src/tools/fetch/tiger-full.d.ts +0 -42
  990. package/out/src/tools/fetch/tiger-full.d.ts.map +0 -1
  991. package/out/src/tools/fetch/tiger-full.js +0 -248
  992. package/out/src/tools/fetch/tiger-full.js.map +0 -1
  993. package/out/src/tools/fetch/wikidata-subvenue.d.ts +0 -171
  994. package/out/src/tools/fetch/wikidata-subvenue.d.ts.map +0 -1
  995. package/out/src/tools/fetch/wikidata-subvenue.js +0 -275
  996. package/out/src/tools/fetch/wikidata-subvenue.js.map +0 -1
  997. package/out/src/tools/gb-title-case.d.ts.map +0 -1
  998. package/out/src/tools/gb-title-case.js.map +0 -1
  999. package/out/src/tools/golden-expand.d.ts +0 -90
  1000. package/out/src/tools/golden-expand.d.ts.map +0 -1
  1001. package/out/src/tools/golden-expand.js +0 -413
  1002. package/out/src/tools/golden-expand.js.map +0 -1
  1003. package/out/src/tools/golden-promote.d.ts.map +0 -1
  1004. package/out/src/tools/golden-promote.js +0 -244
  1005. package/out/src/tools/golden-promote.js.map +0 -1
  1006. package/out/src/tools/golden-relabel-street.d.ts +0 -196
  1007. package/out/src/tools/golden-relabel-street.d.ts.map +0 -1
  1008. package/out/src/tools/golden-relabel-street.js +0 -440
  1009. package/out/src/tools/golden-relabel-street.js.map +0 -1
  1010. package/out/src/tools/index.d.ts +0 -28
  1011. package/out/src/tools/index.d.ts.map +0 -1
  1012. package/out/src/tools/index.js +0 -28
  1013. package/out/src/tools/index.js.map +0 -1
  1014. package/out/src/tools/ingest-csv.d.ts.map +0 -1
  1015. package/out/src/tools/ingest-csv.js +0 -296
  1016. package/out/src/tools/ingest-csv.js.map +0 -1
  1017. package/out/src/tools/jsonl-to-parquet.d.ts +0 -61
  1018. package/out/src/tools/jsonl-to-parquet.d.ts.map +0 -1
  1019. package/out/src/tools/jsonl-to-parquet.js +0 -164
  1020. package/out/src/tools/jsonl-to-parquet.js.map +0 -1
  1021. package/out/src/tools/lint-shard-vocab.d.ts +0 -90
  1022. package/out/src/tools/lint-shard-vocab.d.ts.map +0 -1
  1023. package/out/src/tools/lint-shard-vocab.js +0 -281
  1024. package/out/src/tools/lint-shard-vocab.js.map +0 -1
  1025. package/out/src/tools/lint-shard.d.ts +0 -93
  1026. package/out/src/tools/lint-shard.d.ts.map +0 -1
  1027. package/out/src/tools/lint-shard.js +0 -354
  1028. package/out/src/tools/lint-shard.js.map +0 -1
  1029. package/out/src/tools/overlay-manifest.d.ts +0 -39
  1030. package/out/src/tools/overlay-manifest.d.ts.map +0 -1
  1031. package/out/src/tools/overlay-manifest.js +0 -98
  1032. package/out/src/tools/overlay-manifest.js.map +0 -1
  1033. package/out/src/tools/overture-subvenue.d.ts +0 -112
  1034. package/out/src/tools/overture-subvenue.d.ts.map +0 -1
  1035. package/out/src/tools/overture-subvenue.js +0 -144
  1036. package/out/src/tools/overture-subvenue.js.map +0 -1
  1037. package/out/src/tools/postcode-triples.d.ts +0 -175
  1038. package/out/src/tools/postcode-triples.d.ts.map +0 -1
  1039. package/out/src/tools/postcode-triples.js +0 -304
  1040. package/out/src/tools/postcode-triples.js.map +0 -1
  1041. package/out/src/tools/shard-kryptonite.d.ts +0 -32
  1042. package/out/src/tools/shard-kryptonite.d.ts.map +0 -1
  1043. package/out/src/tools/shard-kryptonite.js +0 -100
  1044. package/out/src/tools/shard-kryptonite.js.map +0 -1
  1045. package/out/src/tools/shard-translit.d.ts +0 -51
  1046. package/out/src/tools/shard-translit.d.ts.map +0 -1
  1047. package/out/src/tools/shard-translit.js +0 -175
  1048. package/out/src/tools/shard-translit.js.map +0 -1
  1049. package/out/src/tools/sub-venue/harvest.d.ts +0 -100
  1050. package/out/src/tools/sub-venue/harvest.d.ts.map +0 -1
  1051. package/out/src/tools/sub-venue/harvest.js +0 -168
  1052. package/out/src/tools/sub-venue/harvest.js.map +0 -1
  1053. package/out/src/tools/sub-venue/head-nouns.d.ts +0 -50
  1054. package/out/src/tools/sub-venue/head-nouns.d.ts.map +0 -1
  1055. package/out/src/tools/sub-venue/head-nouns.js +0 -210
  1056. package/out/src/tools/sub-venue/head-nouns.js.map +0 -1
  1057. package/out/src/tools/sub-venue/surfaces.d.ts +0 -45
  1058. package/out/src/tools/sub-venue/surfaces.d.ts.map +0 -1
  1059. package/out/src/tools/sub-venue/surfaces.js +0 -77
  1060. package/out/src/tools/sub-venue/surfaces.js.map +0 -1
  1061. package/out/src/tools/sub-venue/table.d.ts +0 -229
  1062. package/out/src/tools/sub-venue/table.d.ts.map +0 -1
  1063. package/out/src/tools/sub-venue/table.js +0 -108
  1064. package/out/src/tools/sub-venue/table.js.map +0 -1
  1065. package/out/src/tools/sub-venue/wikidata.d.ts +0 -26
  1066. package/out/src/tools/sub-venue/wikidata.d.ts.map +0 -1
  1067. package/out/src/tools/sub-venue/wikidata.js +0 -62
  1068. package/out/src/tools/sub-venue/wikidata.js.map +0 -1
  1069. package/out/src/tools/sub-venue-lexicon.d.ts +0 -156
  1070. package/out/src/tools/sub-venue-lexicon.d.ts.map +0 -1
  1071. package/out/src/tools/sub-venue-lexicon.js +0 -282
  1072. package/out/src/tools/sub-venue-lexicon.js.map +0 -1
  1073. package/out/src/tools/sub-venue-promotions.d.ts +0 -94
  1074. package/out/src/tools/sub-venue-promotions.d.ts.map +0 -1
  1075. package/out/src/tools/sub-venue-promotions.js +0 -266
  1076. package/out/src/tools/sub-venue-promotions.js.map +0 -1
  1077. package/out/src/types.d.ts +0 -221
  1078. package/out/src/types.d.ts.map +0 -1
  1079. package/out/src/types.js.map +0 -1
  1080. package/out/src/utils/align.d.ts +0 -93
  1081. package/out/src/utils/align.d.ts.map +0 -1
  1082. package/out/src/utils/align.js +0 -234
  1083. package/out/src/utils/align.js.map +0 -1
  1084. package/out/src/utils/golden.d.ts +0 -69
  1085. package/out/src/utils/golden.d.ts.map +0 -1
  1086. package/out/src/utils/golden.js +0 -127
  1087. package/out/src/utils/golden.js.map +0 -1
  1088. package/out/src/utils/index.d.ts +0 -14
  1089. package/out/src/utils/index.d.ts.map +0 -1
  1090. package/out/src/utils/index.js +0 -14
  1091. package/out/src/utils/index.js.map +0 -1
  1092. package/out/src/utils/license.d.ts.map +0 -1
  1093. package/out/src/utils/license.js.map +0 -1
  1094. package/out/src/utils/parquet.d.ts +0 -162
  1095. package/out/src/utils/parquet.d.ts.map +0 -1
  1096. package/out/src/utils/parquet.js +0 -262
  1097. package/out/src/utils/parquet.js.map +0 -1
  1098. package/out/src/utils/split.d.ts +0 -127
  1099. package/out/src/utils/split.d.ts.map +0 -1
  1100. package/out/src/utils/split.js +0 -204
  1101. package/out/src/utils/split.js.map +0 -1
  1102. package/out/src/utils/tokenize.d.ts +0 -56
  1103. package/out/src/utils/tokenize.d.ts.map +0 -1
  1104. package/out/src/utils/tokenize.js +0 -48
  1105. package/out/src/utils/tokenize.js.map +0 -1
  1106. package/out/src/utils/wof-json.d.ts +0 -109
  1107. package/out/src/utils/wof-json.d.ts.map +0 -1
  1108. package/out/src/utils/wof-json.js +0 -173
  1109. package/out/src/utils/wof-json.js.map +0 -1
  1110. package/src/adapters/ban/adapter.ts +0 -191
  1111. package/src/adapters/ban/street-decompose.ts +0 -96
  1112. package/src/adapters/fcc-bdc/adapter.ts +0 -174
  1113. package/src/adapters/geonames/adapter.ts +0 -200
  1114. package/src/adapters/geonames-postal/adapter.ts +0 -119
  1115. package/src/adapters/gnaf/adapter.ts +0 -149
  1116. package/src/adapters/gnaf/assemble.ts +0 -226
  1117. package/src/adapters/index.ts +0 -149
  1118. package/src/adapters/openaddresses/adapter.ts +0 -251
  1119. package/src/adapters/overture/adapter.ts +0 -162
  1120. package/src/adapters/state-hi-schools/adapter.ts +0 -164
  1121. package/src/adapters/synth-po-box/adapter.ts +0 -204
  1122. package/src/adapters/tiger/adapter.ts +0 -253
  1123. package/src/adapters/tiger/street-decompose.ts +0 -111
  1124. package/src/adapters/usgov-hrsa-fqhc/adapter.ts +0 -183
  1125. package/src/adapters/usgov-imls-pls/adapter.ts +0 -143
  1126. package/src/adapters/usgov-irs-bmf/adapter.ts +0 -163
  1127. package/src/adapters/usgov-nad/adapter.ts +0 -348
  1128. package/src/adapters/usgov-nppes/adapter.ts +0 -159
  1129. package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -204
  1130. package/src/adapters/utils/index.ts +0 -233
  1131. package/src/adapters/wof-admin-jp/adapter.ts +0 -216
  1132. package/src/adapters/wof-admin-json/adapter.ts +0 -256
  1133. package/src/adapters/wof-json-rows.ts +0 -79
  1134. package/src/adapters/wof-postalcode-json/adapter.ts +0 -183
  1135. package/src/build.ts +0 -386
  1136. package/src/index.ts +0 -14
  1137. package/src/name-prone-us-suffixes.ts +0 -12
  1138. package/src/parquet-wrapper/index.ts +0 -9
  1139. package/src/parquet-wrapper/reader.ts +0 -97
  1140. package/src/parquet-wrapper/schema.ts +0 -88
  1141. package/src/parquet-wrapper/writer.ts +0 -110
  1142. package/src/runner.ts +0 -317
  1143. package/src/shard-recipes/anchor-absorption.ts +0 -103
  1144. package/src/shard-recipes/bare-country.ts +0 -95
  1145. package/src/shard-recipes/boundary-stress.ts +0 -101
  1146. package/src/shard-recipes/country-balanced.ts +0 -524
  1147. package/src/shard-recipes/cz-pcfirst-preposition.ts +0 -111
  1148. package/src/shard-recipes/fr-admin-split.ts +0 -239
  1149. package/src/shard-recipes/fr-bare-street.ts +0 -170
  1150. package/src/shard-recipes/fr-fragment.ts +0 -332
  1151. package/src/shard-recipes/fr-lieudit.ts +0 -302
  1152. package/src/shard-recipes/fr-order.ts +0 -258
  1153. package/src/shard-recipes/german.ts +0 -170
  1154. package/src/shard-recipes/house-venue.ts +0 -88
  1155. package/src/shard-recipes/index.ts +0 -95
  1156. package/src/shard-recipes/intersection.ts +0 -630
  1157. package/src/shard-recipes/locale.ts +0 -599
  1158. package/src/shard-recipes/nl-postcode.ts +0 -115
  1159. package/src/shard-recipes/no-fragment.ts +0 -219
  1160. package/src/shard-recipes/no-street-led.ts +0 -143
  1161. package/src/shard-recipes/no-street.ts +0 -86
  1162. package/src/shard-recipes/po-box-cedex.ts +0 -920
  1163. package/src/shard-recipes/po-box.ts +0 -119
  1164. package/src/shard-recipes/reviewed-postcode-tail.ts +0 -189
  1165. package/src/shard-recipes/scaffold.ts +0 -360
  1166. package/src/shard-recipes/si-bare-village.ts +0 -97
  1167. package/src/shard-recipes/street-affix.ts +0 -826
  1168. package/src/shard-recipes/street-bare.ts +0 -101
  1169. package/src/shard-recipes/street.ts +0 -82
  1170. package/src/shard-recipes/sub-venue-sources.ts +0 -885
  1171. package/src/shard-recipes/sub-venue.ts +0 -984
  1172. package/src/shard-recipes/trailing-region.ts +0 -183
  1173. package/src/shard-recipes/unit.ts +0 -321
  1174. package/src/synthesizers/anchor-absorption.ts +0 -290
  1175. package/src/synthesizers/boundary-stress.ts +0 -531
  1176. package/src/synthesizers/german.ts +0 -251
  1177. package/src/synthesizers/house-venue.ts +0 -330
  1178. package/src/synthesizers/intersection.ts +0 -232
  1179. package/src/synthesizers/no-street.ts +0 -349
  1180. package/src/synthesizers/po-box.ts +0 -339
  1181. package/src/synthesizers/street.ts +0 -274
  1182. package/src/synthesizers/utils.ts +0 -903
  1183. package/src/tools/align-shard.ts +0 -70
  1184. package/src/tools/audit.ts +0 -399
  1185. package/src/tools/corpus-stats.ts +0 -184
  1186. package/src/tools/fetch/ban.ts +0 -290
  1187. package/src/tools/fetch/download.ts +0 -176
  1188. package/src/tools/fetch/geonames-dump.ts +0 -267
  1189. package/src/tools/fetch/geonames-postal.ts +0 -180
  1190. package/src/tools/fetch/hrsa.ts +0 -68
  1191. package/src/tools/fetch/imls-pls.ts +0 -158
  1192. package/src/tools/fetch/index.ts +0 -147
  1193. package/src/tools/fetch/nad.ts +0 -342
  1194. package/src/tools/fetch/nppes.ts +0 -174
  1195. package/src/tools/fetch/openaddresses.ts +0 -404
  1196. package/src/tools/fetch/ourairports.ts +0 -171
  1197. package/src/tools/fetch/ppd.ts +0 -137
  1198. package/src/tools/fetch/state-hi-schools.ts +0 -208
  1199. package/src/tools/fetch/state-sources.ts +0 -155
  1200. package/src/tools/fetch/tiger-full.ts +0 -354
  1201. package/src/tools/fetch/wikidata-subvenue.ts +0 -386
  1202. package/src/tools/golden-expand.ts +0 -584
  1203. package/src/tools/golden-promote.ts +0 -353
  1204. package/src/tools/golden-relabel-street.ts +0 -685
  1205. package/src/tools/index.ts +0 -28
  1206. package/src/tools/ingest-csv.ts +0 -422
  1207. package/src/tools/jsonl-to-parquet.ts +0 -221
  1208. package/src/tools/lint-shard-vocab.ts +0 -409
  1209. package/src/tools/lint-shard.ts +0 -543
  1210. package/src/tools/overlay-manifest.ts +0 -157
  1211. package/src/tools/overture-subvenue.ts +0 -215
  1212. package/src/tools/postcode-triples.ts +0 -375
  1213. package/src/tools/shard-kryptonite.ts +0 -139
  1214. package/src/tools/shard-translit.ts +0 -245
  1215. package/src/tools/sub-venue/harvest.ts +0 -235
  1216. package/src/tools/sub-venue/head-nouns.ts +0 -242
  1217. package/src/tools/sub-venue/surfaces.ts +0 -95
  1218. package/src/tools/sub-venue/table.ts +0 -281
  1219. package/src/tools/sub-venue/wikidata.ts +0 -85
  1220. package/src/tools/sub-venue-lexicon.ts +0 -431
  1221. package/src/tools/sub-venue-promotions.ts +0 -330
  1222. package/src/types.ts +0 -247
  1223. package/src/utils/align.ts +0 -331
  1224. package/src/utils/golden.ts +0 -176
  1225. package/src/utils/index.ts +0 -14
  1226. package/src/utils/parquet.ts +0 -391
  1227. package/src/utils/split.ts +0 -279
  1228. package/src/utils/tokenize.ts +0 -78
  1229. package/src/utils/wof-json.ts +0 -244
  1230. /package/{src → lib}/adapters/state-ia-contractors/adapter.ts +0 -0
  1231. /package/{src → lib}/adapters/state-ny-notaries/adapter.ts +0 -0
  1232. /package/{src → lib}/adapters/state-tx-notaries/adapter.ts +0 -0
  1233. /package/{src → lib}/codex/us-fips-state.ts +0 -0
  1234. /package/{src → lib}/tools/gb-title-case.ts +0 -0
  1235. /package/{src → lib}/utils/license.ts +0 -0
  1236. /package/out/{src/adapters → adapters}/ban/adapter.d.ts +0 -0
  1237. /package/out/{src/adapters → adapters}/ban/street-decompose.d.ts +0 -0
  1238. /package/out/{src/adapters → adapters}/fcc-bdc/adapter.d.ts +0 -0
  1239. /package/out/{src/adapters → adapters}/geonames/adapter.d.ts +0 -0
  1240. /package/out/{src/adapters → adapters}/openaddresses/adapter.d.ts +0 -0
  1241. /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.d.ts +0 -0
  1242. /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.js +0 -0
  1243. /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.d.ts +0 -0
  1244. /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.js +0 -0
  1245. /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.d.ts +0 -0
  1246. /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.js +0 -0
  1247. /package/out/{src/adapters → adapters}/synth-po-box/adapter.d.ts +0 -0
  1248. /package/out/{src/adapters → adapters}/tiger/street-decompose.d.ts +0 -0
  1249. /package/out/{src/adapters → adapters}/usgov-nppes/adapter.d.ts +0 -0
  1250. /package/out/{src/adapters → adapters}/usgov-samhsa-treatment-locator/adapter.d.ts +0 -0
  1251. /package/out/{src/adapters → adapters}/wof-admin-jp/adapter.d.ts +0 -0
  1252. /package/out/{src/codex → codex}/us-fips-state.d.ts +0 -0
  1253. /package/out/{src/codex → codex}/us-fips-state.js +0 -0
  1254. /package/out/{src/tools → tools}/fetch/ppd.d.ts +0 -0
  1255. /package/out/{src/tools → tools}/gb-title-case.d.ts +0 -0
  1256. /package/out/{src/tools → tools}/gb-title-case.js +0 -0
  1257. /package/out/{src/tools → tools}/golden-promote.d.ts +0 -0
  1258. /package/out/{src/tools → tools}/ingest-csv.d.ts +0 -0
  1259. /package/out/{src/types.js → types.js} +0 -0
  1260. /package/out/{src/utils → utils}/license.d.ts +0 -0
  1261. /package/out/{src/utils → utils}/license.js +0 -0
@@ -0,0 +1,170 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `state-hi-schools`: Hawaii DOE public + charter school workbook consumer.
7
+ *
8
+ * The Hawaii State Department of Education publishes a directory of all HIDOE schools and public
9
+ * charter schools (PCS) as an XLSX workbook (`SchoolList.xlsx`) with two sheets: `HIDOE` (~258
10
+ * rows) and `PCS` (~38 rows). Total ~296 rows statewide. Each row carries a school name,
11
+ * single-line street address, city, ZIP, a numeric `code`, and HI-specific administrative columns
12
+ * (complex, complex_area, district, island, charter).
13
+ *
14
+ * The adapter consumes the original XLSX retained by the fetcher and reads both worksheets directly.
15
+ * Legacy flat CSV artifacts remain accepted so existing source caches do not need conversion.
16
+ *
17
+ * Address parsing notes: Hawaii's residential numbering is hyphenated on Oahu (`47-470 Hui Aeko
18
+ * Place`), Kauai (`2-4035 Kaumualii Hwy`), and elsewhere. The shared HOUSE_NUMBER_PREFIX regex
19
+ * covers this via its optional `(?:-\d+)?` group.
20
+ *
21
+ * The `island` and `district` columns are HIDOE administrative labels (Honolulu, Central, Leeward,
22
+ * Windward, Hilo, Hawaii, Maui, Kauai) — they are NOT US counties and intentionally are not
23
+ * surfaced as `subregion`.
24
+ *
25
+ * Output: one row per school with `venue` (school name), `(house_number?, street, locality,
26
+ * region=HI, postcode)`, and a stable `source_id` derived from the school `code`.
27
+ *
28
+ * License: stamped `"Public Domain"` per Hawaii state government open-data terms.
29
+ */
30
+
31
+ import { isPresent } from "@mailwoman/core/objects"
32
+ import { reconcileComponents } from "@mailwoman/formatter"
33
+ import { CSVSpliterator, XLSXSpliterator } from "spliterator"
34
+
35
+ import { type HiSchoolRow, schoolCellText, STATE_HI_SCHOOL_SHEETS } from "#adapters/state-hi-schools/workbook"
36
+ import { splitStreetLine, stableSourceID } from "#adapters/utils"
37
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
38
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
39
+
40
+ /**
41
+ * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
42
+ * it came from.
43
+ */
44
+ export const STATE_HI_SCHOOLS_ADAPTER_ID = "state-hi-schools"
45
+ /**
46
+ * License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
47
+ * than having to look them up.
48
+ */
49
+ export const STATE_HI_SCHOOLS_DEFAULT_LICENSE = "Public Domain"
50
+
51
+ const HI_STATE_ABBR = "HI"
52
+
53
+ function normalizeZip(raw: HiSchoolRow["zip"]): string {
54
+ const trimmed = schoolCellText(raw)
55
+
56
+ if (!trimmed) return ""
57
+
58
+ // XLSX → CSV conversion may emit numeric ZIPs without leading zeros. HI ZIPs all begin
59
+ // with 96, so a 4-digit value indicates a leading-zero stripped during numeric coercion
60
+ // (defensive — has not been observed in the published file as of 2026-05).
61
+ if (/^\d{4}$/.test(trimmed)) return `0${trimmed}`
62
+
63
+ return trimmed
64
+ }
65
+
66
+ async function* readSchoolRows(inputPath: string): AsyncGenerator<HiSchoolRow> {
67
+ if (inputPath.toLowerCase().endsWith(".xlsx")) {
68
+ for (const sheet of STATE_HI_SCHOOL_SHEETS) {
69
+ yield* XLSXSpliterator.fromAsync<HiSchoolRow>(inputPath, {
70
+ sheet,
71
+ mode: "object",
72
+ normalizeKeys: false,
73
+ })
74
+ }
75
+
76
+ return
77
+ }
78
+
79
+ yield* CSVSpliterator.fromAsync<HiSchoolRow>(inputPath, {
80
+ mode: "object",
81
+ normalizeKeys: false,
82
+ enableQuoteHandling: true,
83
+ })
84
+ }
85
+
86
+ export function createStateHiSchoolsAdapter(): CorpusAdapter {
87
+ return {
88
+ id: STATE_HI_SCHOOLS_ADAPTER_ID,
89
+ defaultLicense: STATE_HI_SCHOOLS_DEFAULT_LICENSE,
90
+ description: "Hawaii DOE School Directory — ~300 K-12 public + charter schools with venue+address (public-domain).",
91
+
92
+ async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
93
+ if (opts.country && opts.country !== "US") {
94
+ throw new Error(`state-hi-schools adapter: only US supported, got country=${opts.country}`)
95
+ }
96
+
97
+ const state = lookupStateAbbreviation(HI_STATE_ABBR)
98
+
99
+ if (!state) {
100
+ throw new Error(`state-hi-schools adapter: HI not found in state codex (corpus bug)`)
101
+ }
102
+
103
+ let emitted = 0
104
+
105
+ for await (const record of readSchoolRows(opts.inputPath)) {
106
+ if (opts.signal?.aborted) break
107
+
108
+ if (opts.limit !== undefined && emitted >= opts.limit) break
109
+
110
+ const name = schoolCellText(record.name)
111
+ const address = schoolCellText(record.address)
112
+ const city = schoolCellText(record.city)
113
+ const zip = normalizeZip(record.zip)
114
+
115
+ if (!name || !address || !city || !zip) continue
116
+
117
+ const split = splitStreetLine(address)
118
+
119
+ if (!split) continue
120
+
121
+ const components: CanonicalRow["components"] = {
122
+ venue: name,
123
+ ...(split.house_number ? { house_number: split.house_number } : {}),
124
+ street: split.street,
125
+ locality: city,
126
+ region: state.abbreviation,
127
+ postcode: zip,
128
+ }
129
+
130
+ const streetPart = [split.house_number, split.street].filter(isPresent).join(" ").trim()
131
+
132
+ const raw = [
133
+ name,
134
+ streetPart,
135
+ [city, [HI_STATE_ABBR, zip].filter(isPresent).join(" ")].filter(isPresent).join(", "),
136
+ ]
137
+ .filter(isPresent)
138
+ .join(", ")
139
+
140
+ const aligned = reconcileComponents(components, raw)
141
+
142
+ if (Object.keys(aligned).length <= 2) continue
143
+
144
+ const code = schoolCellText(record.code)
145
+
146
+ const sourceID = code
147
+ ? `${STATE_HI_SCHOOLS_ADAPTER_ID}-${code}`
148
+ : stableSourceID(STATE_HI_SCHOOLS_ADAPTER_ID, aligned)
149
+
150
+ yield {
151
+ raw,
152
+ components: aligned,
153
+ country: "US",
154
+ locale: "en-US",
155
+ source: STATE_HI_SCHOOLS_ADAPTER_ID,
156
+ source_id: sourceID,
157
+ corpus_version: "",
158
+ license: STATE_HI_SCHOOLS_DEFAULT_LICENSE,
159
+ }
160
+
161
+ emitted++
162
+ }
163
+ },
164
+ }
165
+ }
166
+
167
+ /**
168
+ * The configured adapter instance registered with the corpus builder.
169
+ */
170
+ export const stateHiSchoolsAdapter = createStateHiSchoolsAdapter()
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ */
6
+
7
+ import type { XLSXCellValue } from "spliterator"
8
+
9
+ /**
10
+ * The two worksheets that together form the public-school directory.
11
+ */
12
+ export const STATE_HI_SCHOOL_SHEETS = ["HIDOE", "PCS"] as const
13
+
14
+ /**
15
+ * Columns required to construct a corpus row. Fetch validation uses the same contract as the adapter.
16
+ */
17
+ export const STATE_HI_SCHOOL_REQUIRED_COLUMNS = ["code", "name", "address", "city", "zip"] as const
18
+
19
+ /**
20
+ * Workbook row fields consumed by the adapter. XLSX cells are typed; the legacy CSV path supplies strings.
21
+ */
22
+ export interface HiSchoolRow {
23
+ code: XLSXCellValue | undefined
24
+ name: XLSXCellValue | undefined
25
+ address: XLSXCellValue | undefined
26
+ city: XLSXCellValue | undefined
27
+ zip: XLSXCellValue | undefined
28
+ }
29
+
30
+ /**
31
+ * Convert a typed workbook cell or legacy CSV field to the trimmed text used by the corpus row.
32
+ */
33
+ export function schoolCellText(value: XLSXCellValue | undefined): string {
34
+ return value === null || value === undefined ? "" : String(value).trim()
35
+ }
@@ -0,0 +1,204 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `synth-po-box`: PO box / PMB / Apartado / BP synthesizer adapter.
7
+ *
8
+ * Consumes a JSONL stream of (locality, region, postcode, country) tuples — typically extracted
9
+ * from existing corpus output (TIGER/NAD/BAN/WOF) — and emits synthetic PO box training rows. See
10
+ * `@mailwoman/corpus/synthesizers/po-box` for the per-locale templates and number-noise logic.
11
+ *
12
+ * Why an adapter and not an augmenter:
13
+ *
14
+ * - Per USPS Pub 28 / DMM 508, a PO box delivery line is mutually exclusive with a street line.
15
+ * Synthesizing PO boxes by mutating a street row would teach the model an invalid pattern.
16
+ * The clean shape is: read just (locality, region, postcode, country) and produce a fresh
17
+ * PO-box-shaped row.
18
+ * - Per-DeepSeek (3-turn consult, 2026-05-28): PMB rows that COMBINE a street line with a PMB number
19
+ * ARE valid (CMRA addresses). Those are produced when `pmbRatio > 0` AND the input tuple
20
+ * carries a `street` field.
21
+ */
22
+
23
+ import { tryParsingJSON } from "@mailwoman/core/json"
24
+ import { makeLcg } from "@mailwoman/core/random"
25
+ import { TextSpliterator } from "spliterator"
26
+
27
+ import { stableSourceID } from "#adapters/utils"
28
+ import {
29
+ countryToLocale,
30
+ REGION_OPTIONAL_LOCALES,
31
+ synthesizeMilitaryPoBoxRow,
32
+ synthesizePoBoxRow,
33
+ type PoBoxBaseTuple,
34
+ } from "#synthesizers/po-box"
35
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
36
+
37
+ /**
38
+ * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
39
+ * it came from.
40
+ */
41
+ export const SYNTH_PO_BOX_ADAPTER_ID = "synth-po-box"
42
+ /**
43
+ * License for the synthetic PO-box rows. The output is generated, but it inherits the terms of the real tuples it is
44
+ * derived from, so the attribution travels with it.
45
+ */
46
+ export const SYNTH_PO_BOX_LICENSE = "Synthetic — derived from CC-BY / public-domain input tuples"
47
+
48
+ export interface PoBoxInputRow extends PoBoxBaseTuple {
49
+ street?: string
50
+ houseNumber?: string
51
+ }
52
+
53
+ export interface SynthPoBoxAdapterOptions {
54
+ /**
55
+ * How many PO box variants to emit per input tuple. Each variant picks a different leader (and possibly a different
56
+ * number / noise level). Default 1.
57
+ */
58
+ variantsPerInput?: number
59
+ /**
60
+ * Probability (0..1) of emitting a PMB-with-street variant when both the input has a street and the locale supports
61
+ * PMB. Default 0.15.
62
+ */
63
+ pmbRatio?: number
64
+ /**
65
+ * Deterministic seed for reproducible synthesis. Default Date.now().
66
+ */
67
+ seed?: number
68
+ /**
69
+ * Probability (0..1), evaluated per input tuple, of ALSO emitting one US military/diplomatic PO-box row
70
+ * (`PSC/CMR/Unit <id> Box <box>, APO/FPO/DPO AA/AE/AP <zip>`, #517). These rows are self-contained — they draw no
71
+ * field from the input tuple, so military volume scales with the input stream size. Default 0 (off) — the adapter's
72
+ * contract is "one row per input"; the corpus build recipe opts in to seed the rare-but-real military class without
73
+ * changing the default.
74
+ */
75
+ militaryRatio?: number
76
+ }
77
+
78
+ export function createSynthPoBoxAdapter(opts: SynthPoBoxAdapterOptions = {}): CorpusAdapter {
79
+ const variantsPerInput = opts.variantsPerInput ?? 1
80
+ const pmbRatio = opts.pmbRatio ?? 0.15
81
+ const militaryRatio = opts.militaryRatio ?? 0
82
+
83
+ return {
84
+ id: SYNTH_PO_BOX_ADAPTER_ID,
85
+ defaultLicense: SYNTH_PO_BOX_LICENSE,
86
+ description:
87
+ "Synthetic PO box / PMB / Apartado / Boîte Postale rows. Consumes JSONL of (locality, region, postcode, country) tuples and emits locale-appropriate PO box variants.",
88
+
89
+ async *rows(options: AdapterOptions): AsyncIterable<CanonicalRow> {
90
+ const random = makeLcg(opts.seed ?? Date.now())
91
+
92
+ // TextSpliterator streams string lines; the per-line tryParsingJSON below keeps this reader
93
+ // tolerant of malformed rows (skipped++), so TextSpliterator + a non-throwing parse — not
94
+ // JSONSpliterator, which would throw on the first bad line.
95
+ const lines = TextSpliterator.fromAsync(options.inputPath)
96
+
97
+ let emitted = 0
98
+ let skipped = 0
99
+ let militarySeq = 0
100
+
101
+ for await (const line of lines) {
102
+ if (options.signal?.aborted) break
103
+
104
+ if (options.limit !== undefined && emitted >= options.limit) break
105
+
106
+ const trimmed = line.trim()
107
+
108
+ if (!trimmed) continue
109
+
110
+ const input = tryParsingJSON<PoBoxInputRow>(trimmed)
111
+
112
+ if (input === null) {
113
+ skipped++
114
+
115
+ continue
116
+ }
117
+
118
+ // Region is required EXCEPT for region-less locales (NZ: `Private Bag 12, Auckland 1010`
119
+ // has no region token, #517). synthesizePoBoxRow handles region absence; the guard just
120
+ // must not discard those tuples as "missing region".
121
+ const regionOptional = input.country ? REGION_OPTIONAL_LOCALES.has(countryToLocale(input.country)) : false
122
+
123
+ if (!input.locality || !input.postcode || !input.country || (!input.region && !regionOptional)) {
124
+ skipped++
125
+
126
+ continue
127
+ }
128
+
129
+ if (options.country && options.country !== input.country) continue
130
+
131
+ for (let v = 0; v < variantsPerInput; v++) {
132
+ const synth = synthesizePoBoxRow(input, { random, pmbRatio })
133
+
134
+ if (!synth) continue
135
+
136
+ // Include `v` in dependent_locality slot to vary the digest across variants;
137
+ // stableSourceID only accepts ComponentTag keys.
138
+ const sourceID = stableSourceID(SYNTH_PO_BOX_ADAPTER_ID, {
139
+ locality: `${input.locality}#${v}`,
140
+ region: input.region,
141
+ postcode: input.postcode,
142
+ country: input.country,
143
+ })
144
+
145
+ yield {
146
+ raw: synth.raw,
147
+ components: synth.components,
148
+ country: input.country,
149
+ locale: synth.locale,
150
+ source: SYNTH_PO_BOX_ADAPTER_ID,
151
+ source_id: sourceID,
152
+ corpus_version: "",
153
+ license: SYNTH_PO_BOX_LICENSE,
154
+ }
155
+
156
+ emitted++
157
+
158
+ if (options.limit !== undefined && emitted >= options.limit) break
159
+ }
160
+
161
+ // US military/diplomatic PO-box rows (#517): self-contained — draw nothing from the input
162
+ // tuple — emitted per input line with probability `militaryRatio` (off by default, so the
163
+ // default random stream and output are byte-identical). Military volume scales with the
164
+ // stream rather than the US-tuple count. US-only: suppressed under a non-US country filter
165
+ // and counted against `limit` like any other row.
166
+ const militaryAllowed = !options.country || options.country === "US"
167
+
168
+ if (
169
+ militaryRatio > 0 &&
170
+ militaryAllowed &&
171
+ (options.limit === undefined || emitted < options.limit) &&
172
+ random() < militaryRatio
173
+ ) {
174
+ const mil = synthesizeMilitaryPoBoxRow({ random })
175
+
176
+ const sourceID = stableSourceID(SYNTH_PO_BOX_ADAPTER_ID, {
177
+ po_box: `${mil.components.po_box}#mil${militarySeq++}`,
178
+ locality: mil.components.locality!,
179
+ region: mil.components.region!,
180
+ postcode: mil.components.postcode!,
181
+ })
182
+
183
+ yield {
184
+ raw: mil.raw,
185
+ components: mil.components,
186
+ country: "US",
187
+ locale: mil.locale,
188
+ source: SYNTH_PO_BOX_ADAPTER_ID,
189
+ source_id: sourceID,
190
+ corpus_version: "",
191
+ license: SYNTH_PO_BOX_LICENSE,
192
+ }
193
+
194
+ emitted++
195
+ }
196
+ }
197
+ },
198
+ }
199
+ }
200
+
201
+ /**
202
+ * The configured adapter instance registered with the corpus builder.
203
+ */
204
+ export const synthPoBoxAdapter = createSynthPoBoxAdapter()
@@ -0,0 +1,252 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `tiger`: US Census TIGER/Line consumer adapter.
7
+ *
8
+ * TIGER/Line is the canonical US street + locality dataset published by the Census Bureau as a
9
+ * **public-domain** product (no ODbL share-alike concerns for US-only corpora). Coverage extends
10
+ * to every named street segment + every incorporated place + CDP across the 50 states + DC + the
11
+ * five primary territories — substantially better US street-name coverage than OSM, especially in
12
+ * rural areas.
13
+ *
14
+ * Following the `wof-admin` / `wof-postalcode` pattern, this adapter consumes a SQLite database the
15
+ * operator pre-builds from the raw TIGER shapefiles (see the README for the schema and a
16
+ * suggested `ogr2ogr` pipeline). The mailwoman side does not parse Shapefile binary directly —
17
+ * keeping the adapter narrow lets the operator pick their own ingestion tool (ogr2ogr / shp2pgsql
18
+ * / a custom Python script / etc.) without forcing a heavy native dep into `@mailwoman/corpus`.
19
+ *
20
+ * Two row classes are emitted:
21
+ *
22
+ * - **Street-level** (`tiger_streets`): one row per segment, optionally with up to two postcode
23
+ * variants if `zipl` / `zipr` differ. Components: `{ street, region, postcode? }`. Streets
24
+ * without a recognized state FIPS are dropped — there's no useful row without `region`.
25
+ * - **Locality-level** (`tiger_places`): up to three variants per place: locality-only,
26
+ * locality-with-region, locality-with-region-country (mirrors `wof-admin`'s fan-out for
27
+ * consistency).
28
+ * - `packages/corpus/lib/codex/us-fips-state.ts` — the FIPS → `{abbreviation, name}` lookup table
29
+ * (originally `tiger/state.ts`, AGPL-3.0 → AGPL-3.0). The full isp-nexus TIGER module ships a
30
+ * TypeORM-backed service layer; mailwoman only needs the lookup data so we don't carry the
31
+ * service layer over.
32
+ *
33
+ * License: stamped `"Public Domain"` per Census Bureau guidance on TIGER/Line. No per-row override
34
+ * needed — every row in TIGER is the same license.
35
+ */
36
+
37
+ import { formatAddress, reconcileComponents } from "@mailwoman/formatter"
38
+ import { DatabaseClient } from "@mailwoman/sqlite/client"
39
+ import type { TIGERDatabase } from "@mailwoman/tiger/sdk/schema"
40
+
41
+ import { decomposeStreet } from "#adapters/tiger/street-decompose"
42
+ import { lookupFipsState } from "#codex/us-fips-state"
43
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
44
+
45
+ /**
46
+ * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
47
+ * it came from.
48
+ */
49
+ export const TIGER_ADAPTER_ID = "tiger"
50
+ /**
51
+ * License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
52
+ * than having to look them up.
53
+ */
54
+ export const TIGER_DEFAULT_LICENSE = "Public Domain"
55
+
56
+ /**
57
+ * The country surface form used in `formatAddress` for US. Matches the canonical OpenCage US template output so
58
+ * reconciliation doesn't strip it when the row carries `country` explicitly.
59
+ */
60
+ const US_COUNTRY_DISPLAY = "United States of America"
61
+
62
+ interface TigerStreetRow {
63
+ linearid: string
64
+ fullname: string
65
+ zipl: string | null
66
+ zipr: string | null
67
+ statefp: string
68
+ }
69
+
70
+ interface TigerPlaceRow {
71
+ geoid: string
72
+ name: string
73
+ statefp: string
74
+ lsad: string | null
75
+ }
76
+
77
+ /**
78
+ * Yield one or more `CanonicalRow`s per street segment. Postcode variants:
79
+ *
80
+ * - No ZIP set → one row, street + region.
81
+ * - `zipl === zipr` → one row, street + region + postcode.
82
+ * - `zipl !== zipr` → two rows (one per side's ZIP).
83
+ */
84
+ function* streetVariants(row: TigerStreetRow): Iterable<{
85
+ components: CanonicalRow["components"]
86
+ variantKey: string
87
+ }> {
88
+ const fullname = row.fullname.trim()
89
+
90
+ if (!fullname) return
91
+ const state = lookupFipsState(row.statefp)
92
+
93
+ if (!state) return
94
+
95
+ const zipl = row.zipl?.trim() ?? ""
96
+ const zipr = row.zipr?.trim() ?? ""
97
+
98
+ const decomposed = decomposeStreet(fullname)
99
+
100
+ const baseComponents: CanonicalRow["components"] = {
101
+ region: state.abbreviation,
102
+ street: decomposed.street,
103
+ }
104
+
105
+ if (decomposed.prefix) {
106
+ baseComponents.street_prefix = decomposed.prefix
107
+ }
108
+
109
+ if (decomposed.suffix) {
110
+ baseComponents.street_suffix = decomposed.suffix
111
+ }
112
+
113
+ if (!zipl && !zipr) {
114
+ yield { components: baseComponents, variantKey: "no-zip" }
115
+
116
+ return
117
+ }
118
+
119
+ if (zipl && zipr && zipl === zipr) {
120
+ yield {
121
+ components: { ...baseComponents, postcode: zipl },
122
+ variantKey: `zip-${zipl}`,
123
+ }
124
+
125
+ return
126
+ }
127
+
128
+ if (zipl) {
129
+ yield { components: { ...baseComponents, postcode: zipl }, variantKey: `zipl-${zipl}` }
130
+ }
131
+
132
+ if (zipr && zipr !== zipl) {
133
+ yield { components: { ...baseComponents, postcode: zipr }, variantKey: `zipr-${zipr}` }
134
+ }
135
+ }
136
+
137
+ /**
138
+ * Three locality-level variants, mirroring `wof-admin`'s fan-out.
139
+ */
140
+ function* placeVariants(row: TigerPlaceRow): Iterable<{
141
+ components: CanonicalRow["components"]
142
+ variantKey: string
143
+ }> {
144
+ const name = row.name.trim()
145
+
146
+ if (!name) return
147
+ const state = lookupFipsState(row.statefp)
148
+
149
+ if (!state) return
150
+
151
+ yield {
152
+ components: { locality: name },
153
+ variantKey: "locality-only",
154
+ }
155
+
156
+ yield {
157
+ components: { locality: name, region: state.abbreviation },
158
+ variantKey: "with-region",
159
+ }
160
+
161
+ yield {
162
+ components: { locality: name, region: state.abbreviation, country: US_COUNTRY_DISPLAY },
163
+ variantKey: "with-region-country",
164
+ }
165
+ }
166
+
167
+ /**
168
+ * Build a TIGER adapter. Pure factory so multiple instances can be created in tests.
169
+ */
170
+ export function createTigerAdapter(): CorpusAdapter {
171
+ return {
172
+ id: TIGER_ADAPTER_ID,
173
+ defaultLicense: TIGER_DEFAULT_LICENSE,
174
+ description:
175
+ "US Census TIGER/Line streets + places consumer (public-domain); SQLite DB built via `mailwoman tiger fetch`.",
176
+
177
+ async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
178
+ if (opts.country && opts.country !== "US") {
179
+ throw new Error(`tiger adapter: only US supported, got country=${opts.country}`)
180
+ }
181
+
182
+ const db = new DatabaseClient<TIGERDatabase>(opts.inputPath, { readOnly: true })
183
+ let emitted = 0
184
+
185
+ try {
186
+ const streetStmt = db.prepare(`SELECT linearid, fullname, zipl, zipr, statefp FROM tiger_streets`)
187
+ const placeStmt = db.prepare(`SELECT geoid, name, statefp, lsad FROM tiger_places`)
188
+
189
+ for (const row of streetStmt.iterate() as IterableIterator<TigerStreetRow>) {
190
+ if (opts.signal?.aborted) return
191
+
192
+ for (const variant of streetVariants(row)) {
193
+ if (opts.limit !== undefined && emitted >= opts.limit) return
194
+ const raw = formatAddress(variant.components, "US", { separator: ", " })
195
+
196
+ if (!raw) continue
197
+ const aligned = reconcileComponents(variant.components, raw)
198
+
199
+ if (!Object.keys(aligned).length) continue
200
+
201
+ yield {
202
+ raw,
203
+ components: aligned,
204
+ country: "US",
205
+ locale: "en-US",
206
+ source: TIGER_ADAPTER_ID,
207
+ source_id: `${TIGER_ADAPTER_ID}-st-${row.linearid}-${variant.variantKey}`,
208
+ corpus_version: "",
209
+ license: TIGER_DEFAULT_LICENSE,
210
+ }
211
+
212
+ emitted++
213
+ }
214
+ }
215
+
216
+ for (const row of placeStmt.iterate() as IterableIterator<TigerPlaceRow>) {
217
+ if (opts.signal?.aborted) return
218
+
219
+ for (const variant of placeVariants(row)) {
220
+ if (opts.limit !== undefined && emitted >= opts.limit) return
221
+ const raw = formatAddress(variant.components, "US", { separator: ", " })
222
+
223
+ if (!raw) continue
224
+ const aligned = reconcileComponents(variant.components, raw)
225
+
226
+ if (!Object.keys(aligned).length) continue
227
+
228
+ yield {
229
+ raw,
230
+ components: aligned,
231
+ country: "US",
232
+ locale: "en-US",
233
+ source: TIGER_ADAPTER_ID,
234
+ source_id: `${TIGER_ADAPTER_ID}-pl-${row.geoid}-${variant.variantKey}`,
235
+ corpus_version: "",
236
+ license: TIGER_DEFAULT_LICENSE,
237
+ }
238
+
239
+ emitted++
240
+ }
241
+ }
242
+ } finally {
243
+ await db.destroy()
244
+ }
245
+ },
246
+ }
247
+ }
248
+
249
+ /**
250
+ * The configured adapter instance registered with the corpus builder.
251
+ */
252
+ export const tigerAdapter = createTigerAdapter()