@mailwoman/corpus 9.1.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1202) hide show
  1. package/README.md +24 -24
  2. package/data/PROVENANCE.md +20 -7
  3. package/data/reviewed-ve-postcode-tuples.json +74 -0
  4. package/lib/adapters/ban/adapter.ts +190 -0
  5. package/lib/adapters/ban/street-decompose.ts +66 -0
  6. package/lib/adapters/fcc-bdc/adapter.ts +174 -0
  7. package/lib/adapters/geonames/adapter.ts +199 -0
  8. package/lib/adapters/geonames-postal/adapter.ts +122 -0
  9. package/lib/adapters/gnaf/adapter.ts +149 -0
  10. package/lib/adapters/gnaf/assemble.ts +225 -0
  11. package/lib/adapters/index.ts +153 -0
  12. package/lib/adapters/openaddresses/adapter.ts +251 -0
  13. package/lib/adapters/overture/adapter.ts +162 -0
  14. package/lib/adapters/state-hi-schools/adapter.ts +170 -0
  15. package/lib/adapters/state-hi-schools/workbook.ts +35 -0
  16. package/lib/adapters/state-ia-contractors/adapter.ts +144 -0
  17. package/lib/adapters/state-ny-notaries/adapter.ts +141 -0
  18. package/lib/adapters/state-tx-notaries/adapter.ts +157 -0
  19. package/lib/adapters/synth-po-box/adapter.ts +204 -0
  20. package/lib/adapters/tiger/adapter.ts +252 -0
  21. package/lib/adapters/tiger/street-decompose.ts +83 -0
  22. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +167 -0
  23. package/lib/adapters/usgov-imls-pls/adapter.ts +143 -0
  24. package/lib/adapters/usgov-irs-bmf/adapter.ts +151 -0
  25. package/lib/adapters/usgov-nad/adapter.ts +334 -0
  26. package/lib/adapters/usgov-nppes/adapter.ts +151 -0
  27. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +193 -0
  28. package/lib/adapters/utils/index.ts +307 -0
  29. package/lib/adapters/wof-admin-jp/adapter.ts +214 -0
  30. package/lib/adapters/wof-admin-json/adapter.ts +231 -0
  31. package/lib/adapters/wof-json-rows.ts +129 -0
  32. package/lib/adapters/wof-postalcode-json/adapter.ts +176 -0
  33. package/lib/build.ts +378 -0
  34. package/lib/env.ts +50 -0
  35. package/lib/index.ts +13 -0
  36. package/lib/name-prone-us-suffixes.ts +12 -0
  37. package/lib/recipes/anchor-absorption.ts +101 -0
  38. package/lib/recipes/bare-country.ts +95 -0
  39. package/lib/recipes/boundary-stress.ts +100 -0
  40. package/lib/recipes/cn-organizational-units.ts +199 -0
  41. package/lib/recipes/country-balanced.ts +509 -0
  42. package/lib/recipes/cz-pcfirst-preposition.ts +111 -0
  43. package/lib/recipes/fr-admin-split.ts +242 -0
  44. package/lib/recipes/fr-bare-street.ts +170 -0
  45. package/lib/recipes/fr-fragment.ts +333 -0
  46. package/lib/recipes/fr-lieudit.ts +301 -0
  47. package/lib/recipes/fr-order.ts +245 -0
  48. package/lib/recipes/german.ts +359 -0
  49. package/lib/recipes/house-venue.ts +92 -0
  50. package/lib/recipes/index.ts +97 -0
  51. package/lib/recipes/intersection.ts +618 -0
  52. package/lib/recipes/locale.ts +599 -0
  53. package/lib/recipes/nl-postcode.ts +115 -0
  54. package/lib/recipes/no-fragment.ts +219 -0
  55. package/lib/recipes/no-street-led.ts +141 -0
  56. package/lib/recipes/no-street.ts +90 -0
  57. package/lib/recipes/po-box-cedex.ts +976 -0
  58. package/lib/recipes/po-box.ts +123 -0
  59. package/lib/recipes/reviewed-postcode-tail.ts +190 -0
  60. package/lib/recipes/scaffold.ts +469 -0
  61. package/lib/recipes/si-bare-village.ts +97 -0
  62. package/lib/recipes/street-affix.ts +804 -0
  63. package/lib/recipes/street-bare.ts +100 -0
  64. package/lib/recipes/street.ts +81 -0
  65. package/lib/recipes/sub-venue-sources.ts +877 -0
  66. package/lib/recipes/sub-venue.ts +997 -0
  67. package/lib/recipes/trailing-region.ts +183 -0
  68. package/lib/recipes/unit.ts +304 -0
  69. package/lib/runner.ts +312 -0
  70. package/lib/synthesizers/anchor-absorption.ts +288 -0
  71. package/lib/synthesizers/boundary-stress.ts +532 -0
  72. package/lib/synthesizers/german.ts +260 -0
  73. package/lib/synthesizers/house-venue.ts +308 -0
  74. package/lib/synthesizers/intersection.ts +233 -0
  75. package/lib/synthesizers/no-street.ts +327 -0
  76. package/lib/synthesizers/po-box.ts +323 -0
  77. package/lib/synthesizers/street.ts +269 -0
  78. package/lib/synthesizers/utils.ts +993 -0
  79. package/lib/test-kit/corpus-recipe.ts +86 -0
  80. package/lib/test-kit/index.ts +100 -0
  81. package/lib/tools/align-slice.ts +68 -0
  82. package/lib/tools/audit.ts +403 -0
  83. package/lib/tools/corpus-stats.ts +136 -0
  84. package/lib/tools/fetch/ban.ts +289 -0
  85. package/lib/tools/fetch/download.ts +262 -0
  86. package/lib/tools/fetch/geonames-dump.ts +257 -0
  87. package/lib/tools/fetch/geonames-postal.ts +180 -0
  88. package/lib/tools/fetch/hrsa.ts +59 -0
  89. package/lib/tools/fetch/imls-pls.ts +149 -0
  90. package/lib/tools/fetch/index.ts +147 -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 +683 -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/license.ts +50 -0
  125. package/lib/utils/parquet.ts +582 -0
  126. package/lib/utils/slice-stats.ts +95 -0
  127. package/lib/utils/split.ts +279 -0
  128. package/lib/utils/tokenize.ts +120 -0
  129. package/lib/utils/wof-json.ts +247 -0
  130. package/out/adapters/ban/adapter.d.ts +44 -0
  131. package/out/adapters/ban/adapter.d.ts.map +1 -0
  132. package/out/adapters/ban/adapter.js +149 -0
  133. package/out/adapters/ban/adapter.js.map +1 -0
  134. package/out/adapters/ban/street-decompose.d.ts.map +1 -0
  135. package/out/adapters/ban/street-decompose.js +51 -0
  136. package/out/adapters/ban/street-decompose.js.map +1 -0
  137. package/out/adapters/fcc-bdc/adapter.d.ts +68 -0
  138. package/out/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  139. package/out/adapters/fcc-bdc/adapter.js +144 -0
  140. package/out/adapters/fcc-bdc/adapter.js.map +1 -0
  141. package/out/adapters/geonames/adapter.d.ts +46 -0
  142. package/out/adapters/geonames/adapter.d.ts.map +1 -0
  143. package/out/adapters/geonames/adapter.js +176 -0
  144. package/out/adapters/geonames/adapter.js.map +1 -0
  145. package/out/adapters/geonames-postal/adapter.d.ts +54 -0
  146. package/out/adapters/geonames-postal/adapter.d.ts.map +1 -0
  147. package/out/adapters/geonames-postal/adapter.js +107 -0
  148. package/out/adapters/geonames-postal/adapter.js.map +1 -0
  149. package/out/adapters/gnaf/adapter.d.ts +49 -0
  150. package/out/adapters/gnaf/adapter.d.ts.map +1 -0
  151. package/out/adapters/gnaf/adapter.js +124 -0
  152. package/out/adapters/gnaf/adapter.js.map +1 -0
  153. package/out/adapters/gnaf/assemble.d.ts +65 -0
  154. package/out/adapters/gnaf/assemble.d.ts.map +1 -0
  155. package/out/adapters/gnaf/assemble.js +154 -0
  156. package/out/adapters/gnaf/assemble.js.map +1 -0
  157. package/out/adapters/index.d.ts +51 -0
  158. package/out/adapters/index.d.ts.map +1 -0
  159. package/out/adapters/index.js +95 -0
  160. package/out/adapters/index.js.map +1 -0
  161. package/out/adapters/openaddresses/adapter.d.ts +72 -0
  162. package/out/adapters/openaddresses/adapter.d.ts.map +1 -0
  163. package/out/adapters/openaddresses/adapter.js +186 -0
  164. package/out/adapters/openaddresses/adapter.js.map +1 -0
  165. package/out/adapters/overture/adapter.d.ts +48 -0
  166. package/out/adapters/overture/adapter.d.ts.map +1 -0
  167. package/out/adapters/overture/adapter.js +125 -0
  168. package/out/adapters/overture/adapter.js.map +1 -0
  169. package/out/adapters/state-hi-schools/adapter.d.ts +46 -0
  170. package/out/adapters/state-hi-schools/adapter.d.ts.map +1 -0
  171. package/out/adapters/state-hi-schools/adapter.js +145 -0
  172. package/out/adapters/state-hi-schools/adapter.js.map +1 -0
  173. package/out/adapters/state-hi-schools/workbook.d.ts +29 -0
  174. package/out/adapters/state-hi-schools/workbook.d.ts.map +1 -0
  175. package/out/adapters/state-hi-schools/workbook.js +20 -0
  176. package/out/adapters/state-hi-schools/workbook.js.map +1 -0
  177. package/out/adapters/state-ia-contractors/adapter.d.ts +34 -0
  178. package/out/adapters/state-ia-contractors/adapter.d.ts.map +1 -0
  179. package/out/adapters/state-ia-contractors/adapter.js +111 -0
  180. package/out/adapters/state-ia-contractors/adapter.js.map +1 -0
  181. package/out/adapters/state-ny-notaries/adapter.d.ts +32 -0
  182. package/out/adapters/state-ny-notaries/adapter.d.ts.map +1 -0
  183. package/out/adapters/state-ny-notaries/adapter.js +119 -0
  184. package/out/adapters/state-ny-notaries/adapter.js.map +1 -0
  185. package/out/adapters/state-tx-notaries/adapter.d.ts +33 -0
  186. package/out/adapters/state-tx-notaries/adapter.d.ts.map +1 -0
  187. package/out/adapters/state-tx-notaries/adapter.js +125 -0
  188. package/out/adapters/state-tx-notaries/adapter.js.map +1 -0
  189. package/out/adapters/synth-po-box/adapter.d.ts +67 -0
  190. package/out/adapters/synth-po-box/adapter.d.ts.map +1 -0
  191. package/out/adapters/synth-po-box/adapter.js +140 -0
  192. package/out/adapters/synth-po-box/adapter.js.map +1 -0
  193. package/out/adapters/tiger/adapter.d.ts +55 -0
  194. package/out/adapters/tiger/adapter.d.ts.map +1 -0
  195. package/out/adapters/tiger/adapter.js +201 -0
  196. package/out/adapters/tiger/adapter.js.map +1 -0
  197. package/out/adapters/tiger/street-decompose.d.ts.map +1 -0
  198. package/out/adapters/tiger/street-decompose.js +68 -0
  199. package/out/adapters/tiger/street-decompose.js.map +1 -0
  200. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +56 -0
  201. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -0
  202. package/out/adapters/usgov-hrsa-fqhc/adapter.js +132 -0
  203. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -0
  204. package/out/adapters/usgov-imls-pls/adapter.d.ts +36 -0
  205. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +1 -0
  206. package/out/adapters/usgov-imls-pls/adapter.js +114 -0
  207. package/out/adapters/usgov-imls-pls/adapter.js.map +1 -0
  208. package/out/adapters/usgov-irs-bmf/adapter.d.ts +37 -0
  209. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -0
  210. package/out/adapters/usgov-irs-bmf/adapter.js +120 -0
  211. package/out/adapters/usgov-irs-bmf/adapter.js.map +1 -0
  212. package/out/adapters/usgov-nad/adapter.d.ts +48 -0
  213. package/out/adapters/usgov-nad/adapter.d.ts.map +1 -0
  214. package/out/adapters/usgov-nad/adapter.js +249 -0
  215. package/out/adapters/usgov-nad/adapter.js.map +1 -0
  216. package/out/adapters/usgov-nppes/adapter.d.ts +39 -0
  217. package/out/adapters/usgov-nppes/adapter.d.ts.map +1 -0
  218. package/out/adapters/usgov-nppes/adapter.js +118 -0
  219. package/out/adapters/usgov-nppes/adapter.js.map +1 -0
  220. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts +46 -0
  221. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -0
  222. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +154 -0
  223. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -0
  224. package/out/adapters/utils/index.d.ts +191 -0
  225. package/out/adapters/utils/index.d.ts.map +1 -0
  226. package/out/adapters/utils/index.js +206 -0
  227. package/out/adapters/utils/index.js.map +1 -0
  228. package/out/adapters/wof-admin-jp/adapter.d.ts +65 -0
  229. package/out/adapters/wof-admin-jp/adapter.d.ts.map +1 -0
  230. package/out/adapters/wof-admin-jp/adapter.js +161 -0
  231. package/out/adapters/wof-admin-jp/adapter.js.map +1 -0
  232. package/out/adapters/wof-admin-json/adapter.d.ts +79 -0
  233. package/out/adapters/wof-admin-json/adapter.d.ts.map +1 -0
  234. package/out/adapters/wof-admin-json/adapter.js +197 -0
  235. package/out/adapters/wof-admin-json/adapter.js.map +1 -0
  236. package/out/adapters/wof-json-rows.d.ts +62 -0
  237. package/out/adapters/wof-json-rows.d.ts.map +1 -0
  238. package/out/adapters/wof-json-rows.js +83 -0
  239. package/out/adapters/wof-json-rows.js.map +1 -0
  240. package/out/adapters/wof-postalcode-json/adapter.d.ts +65 -0
  241. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +1 -0
  242. package/out/adapters/wof-postalcode-json/adapter.js +151 -0
  243. package/out/adapters/wof-postalcode-json/adapter.js.map +1 -0
  244. package/out/build.d.ts +132 -0
  245. package/out/build.d.ts.map +1 -0
  246. package/out/build.js +245 -0
  247. package/out/build.js.map +1 -0
  248. package/out/codex/us-fips-state.d.ts.map +1 -0
  249. package/out/codex/us-fips-state.js.map +1 -0
  250. package/out/env.d.ts +46 -0
  251. package/out/env.d.ts.map +1 -0
  252. package/out/env.js +46 -0
  253. package/out/env.js.map +1 -0
  254. package/out/index.d.ts +13 -0
  255. package/out/index.d.ts.map +1 -0
  256. package/out/index.js +13 -0
  257. package/out/index.js.map +1 -0
  258. package/out/name-prone-us-suffixes.d.ts +12 -0
  259. package/out/name-prone-us-suffixes.d.ts.map +1 -0
  260. package/out/name-prone-us-suffixes.js +12 -0
  261. package/out/name-prone-us-suffixes.js.map +1 -0
  262. package/out/recipes/anchor-absorption.d.ts +20 -0
  263. package/out/recipes/anchor-absorption.d.ts.map +1 -0
  264. package/out/recipes/anchor-absorption.js +81 -0
  265. package/out/recipes/anchor-absorption.js.map +1 -0
  266. package/out/recipes/bare-country.d.ts +25 -0
  267. package/out/recipes/bare-country.d.ts.map +1 -0
  268. package/out/recipes/bare-country.js +87 -0
  269. package/out/recipes/bare-country.js.map +1 -0
  270. package/out/recipes/boundary-stress.d.ts +20 -0
  271. package/out/recipes/boundary-stress.d.ts.map +1 -0
  272. package/out/recipes/boundary-stress.js +83 -0
  273. package/out/recipes/boundary-stress.js.map +1 -0
  274. package/out/recipes/cn-organizational-units.d.ts +36 -0
  275. package/out/recipes/cn-organizational-units.d.ts.map +1 -0
  276. package/out/recipes/cn-organizational-units.js +159 -0
  277. package/out/recipes/cn-organizational-units.js.map +1 -0
  278. package/out/recipes/country-balanced.d.ts +32 -0
  279. package/out/recipes/country-balanced.d.ts.map +1 -0
  280. package/out/recipes/country-balanced.js +393 -0
  281. package/out/recipes/country-balanced.js.map +1 -0
  282. package/out/recipes/cz-pcfirst-preposition.d.ts +22 -0
  283. package/out/recipes/cz-pcfirst-preposition.d.ts.map +1 -0
  284. package/out/recipes/cz-pcfirst-preposition.js +100 -0
  285. package/out/recipes/cz-pcfirst-preposition.js.map +1 -0
  286. package/out/recipes/fr-admin-split.d.ts +38 -0
  287. package/out/recipes/fr-admin-split.d.ts.map +1 -0
  288. package/out/recipes/fr-admin-split.js +192 -0
  289. package/out/recipes/fr-admin-split.js.map +1 -0
  290. package/out/recipes/fr-bare-street.d.ts +28 -0
  291. package/out/recipes/fr-bare-street.d.ts.map +1 -0
  292. package/out/recipes/fr-bare-street.js +143 -0
  293. package/out/recipes/fr-bare-street.js.map +1 -0
  294. package/out/recipes/fr-fragment.d.ts +77 -0
  295. package/out/recipes/fr-fragment.d.ts.map +1 -0
  296. package/out/recipes/fr-fragment.js +276 -0
  297. package/out/recipes/fr-fragment.js.map +1 -0
  298. package/out/recipes/fr-lieudit.d.ts +32 -0
  299. package/out/recipes/fr-lieudit.d.ts.map +1 -0
  300. package/out/recipes/fr-lieudit.js +227 -0
  301. package/out/recipes/fr-lieudit.js.map +1 -0
  302. package/out/recipes/fr-order.d.ts +38 -0
  303. package/out/recipes/fr-order.d.ts.map +1 -0
  304. package/out/recipes/fr-order.js +197 -0
  305. package/out/recipes/fr-order.js.map +1 -0
  306. package/out/recipes/german.d.ts +44 -0
  307. package/out/recipes/german.d.ts.map +1 -0
  308. package/out/recipes/german.js +288 -0
  309. package/out/recipes/german.js.map +1 -0
  310. package/out/recipes/house-venue.d.ts +18 -0
  311. package/out/recipes/house-venue.d.ts.map +1 -0
  312. package/out/recipes/house-venue.js +73 -0
  313. package/out/recipes/house-venue.js.map +1 -0
  314. package/out/recipes/index.d.ts +24 -0
  315. package/out/recipes/index.d.ts.map +1 -0
  316. package/out/recipes/index.js +91 -0
  317. package/out/recipes/index.js.map +1 -0
  318. package/out/recipes/intersection.d.ts +42 -0
  319. package/out/recipes/intersection.d.ts.map +1 -0
  320. package/out/recipes/intersection.js +452 -0
  321. package/out/recipes/intersection.js.map +1 -0
  322. package/out/recipes/locale.d.ts +136 -0
  323. package/out/recipes/locale.d.ts.map +1 -0
  324. package/out/recipes/locale.js +460 -0
  325. package/out/recipes/locale.js.map +1 -0
  326. package/out/recipes/nl-postcode.d.ts +26 -0
  327. package/out/recipes/nl-postcode.d.ts.map +1 -0
  328. package/out/recipes/nl-postcode.js +102 -0
  329. package/out/recipes/nl-postcode.js.map +1 -0
  330. package/out/recipes/no-fragment.d.ts +43 -0
  331. package/out/recipes/no-fragment.d.ts.map +1 -0
  332. package/out/recipes/no-fragment.js +182 -0
  333. package/out/recipes/no-fragment.js.map +1 -0
  334. package/out/recipes/no-street-led.d.ts +24 -0
  335. package/out/recipes/no-street-led.d.ts.map +1 -0
  336. package/out/recipes/no-street-led.js +113 -0
  337. package/out/recipes/no-street-led.js.map +1 -0
  338. package/out/recipes/no-street.d.ts +18 -0
  339. package/out/recipes/no-street.d.ts.map +1 -0
  340. package/out/recipes/no-street.js +71 -0
  341. package/out/recipes/no-street.js.map +1 -0
  342. package/out/recipes/po-box-cedex.d.ts +38 -0
  343. package/out/recipes/po-box-cedex.d.ts.map +1 -0
  344. package/out/recipes/po-box-cedex.js +767 -0
  345. package/out/recipes/po-box-cedex.js.map +1 -0
  346. package/out/recipes/po-box.d.ts +17 -0
  347. package/out/recipes/po-box.d.ts.map +1 -0
  348. package/out/recipes/po-box.js +100 -0
  349. package/out/recipes/po-box.js.map +1 -0
  350. package/out/recipes/reviewed-postcode-tail.d.ts +47 -0
  351. package/out/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  352. package/out/recipes/reviewed-postcode-tail.js +125 -0
  353. package/out/recipes/reviewed-postcode-tail.js.map +1 -0
  354. package/out/recipes/scaffold.d.ts +324 -0
  355. package/out/recipes/scaffold.d.ts.map +1 -0
  356. package/out/recipes/scaffold.js +186 -0
  357. package/out/recipes/scaffold.js.map +1 -0
  358. package/out/recipes/si-bare-village.d.ts +32 -0
  359. package/out/recipes/si-bare-village.d.ts.map +1 -0
  360. package/out/recipes/si-bare-village.js +88 -0
  361. package/out/recipes/si-bare-village.js.map +1 -0
  362. package/out/recipes/street-affix.d.ts +89 -0
  363. package/out/recipes/street-affix.d.ts.map +1 -0
  364. package/out/recipes/street-affix.js +563 -0
  365. package/out/recipes/street-affix.js.map +1 -0
  366. package/out/recipes/street-bare.d.ts +25 -0
  367. package/out/recipes/street-bare.d.ts.map +1 -0
  368. package/out/recipes/street-bare.js +86 -0
  369. package/out/recipes/street-bare.js.map +1 -0
  370. package/out/recipes/street.d.ts +15 -0
  371. package/out/recipes/street.d.ts.map +1 -0
  372. package/out/recipes/street.js +69 -0
  373. package/out/recipes/street.js.map +1 -0
  374. package/out/recipes/sub-venue-sources.d.ts +229 -0
  375. package/out/recipes/sub-venue-sources.d.ts.map +1 -0
  376. package/out/recipes/sub-venue-sources.js +653 -0
  377. package/out/recipes/sub-venue-sources.js.map +1 -0
  378. package/out/recipes/sub-venue.d.ts +269 -0
  379. package/out/recipes/sub-venue.d.ts.map +1 -0
  380. package/out/recipes/sub-venue.js +725 -0
  381. package/out/recipes/sub-venue.js.map +1 -0
  382. package/out/recipes/trailing-region.d.ts +74 -0
  383. package/out/recipes/trailing-region.d.ts.map +1 -0
  384. package/out/recipes/trailing-region.js +157 -0
  385. package/out/recipes/trailing-region.js.map +1 -0
  386. package/out/recipes/unit.d.ts +29 -0
  387. package/out/recipes/unit.d.ts.map +1 -0
  388. package/out/recipes/unit.js +230 -0
  389. package/out/recipes/unit.js.map +1 -0
  390. package/out/runner.d.ts +130 -0
  391. package/out/runner.d.ts.map +1 -0
  392. package/out/runner.js +185 -0
  393. package/out/runner.js.map +1 -0
  394. package/out/synthesizers/anchor-absorption.d.ts +63 -0
  395. package/out/synthesizers/anchor-absorption.d.ts.map +1 -0
  396. package/out/synthesizers/anchor-absorption.js +221 -0
  397. package/out/synthesizers/anchor-absorption.js.map +1 -0
  398. package/out/synthesizers/boundary-stress.d.ts +78 -0
  399. package/out/synthesizers/boundary-stress.d.ts.map +1 -0
  400. package/out/synthesizers/boundary-stress.js +455 -0
  401. package/out/synthesizers/boundary-stress.js.map +1 -0
  402. package/out/synthesizers/german.d.ts +115 -0
  403. package/out/synthesizers/german.d.ts.map +1 -0
  404. package/out/synthesizers/german.js +149 -0
  405. package/out/synthesizers/german.js.map +1 -0
  406. package/out/synthesizers/house-venue.d.ts +56 -0
  407. package/out/synthesizers/house-venue.d.ts.map +1 -0
  408. package/out/synthesizers/house-venue.js +247 -0
  409. package/out/synthesizers/house-venue.js.map +1 -0
  410. package/out/synthesizers/intersection.d.ts +52 -0
  411. package/out/synthesizers/intersection.d.ts.map +1 -0
  412. package/out/synthesizers/intersection.js +175 -0
  413. package/out/synthesizers/intersection.js.map +1 -0
  414. package/out/synthesizers/no-street.d.ts +72 -0
  415. package/out/synthesizers/no-street.d.ts.map +1 -0
  416. package/out/synthesizers/no-street.js +262 -0
  417. package/out/synthesizers/no-street.js.map +1 -0
  418. package/out/synthesizers/po-box.d.ts +108 -0
  419. package/out/synthesizers/po-box.d.ts.map +1 -0
  420. package/out/synthesizers/po-box.js +250 -0
  421. package/out/synthesizers/po-box.js.map +1 -0
  422. package/out/synthesizers/street.d.ts +54 -0
  423. package/out/synthesizers/street.d.ts.map +1 -0
  424. package/out/synthesizers/street.js +218 -0
  425. package/out/synthesizers/street.js.map +1 -0
  426. package/out/synthesizers/utils.d.ts +241 -0
  427. package/out/synthesizers/utils.d.ts.map +1 -0
  428. package/out/synthesizers/utils.js +776 -0
  429. package/out/synthesizers/utils.js.map +1 -0
  430. package/out/test-kit/corpus-recipe.d.ts +59 -0
  431. package/out/test-kit/corpus-recipe.d.ts.map +1 -0
  432. package/out/test-kit/corpus-recipe.js +39 -0
  433. package/out/test-kit/corpus-recipe.js.map +1 -0
  434. package/out/test-kit/index.d.ts +48 -0
  435. package/out/test-kit/index.d.ts.map +1 -0
  436. package/out/test-kit/index.js +78 -0
  437. package/out/test-kit/index.js.map +1 -0
  438. package/out/tools/align-slice.d.ts +7 -0
  439. package/out/tools/align-slice.d.ts.map +1 -0
  440. package/out/tools/align-slice.js +55 -0
  441. package/out/tools/align-slice.js.map +1 -0
  442. package/out/tools/audit.d.ts +29 -0
  443. package/out/tools/audit.d.ts.map +1 -0
  444. package/out/tools/audit.js +282 -0
  445. package/out/tools/audit.js.map +1 -0
  446. package/out/tools/corpus-stats.d.ts +44 -0
  447. package/out/tools/corpus-stats.d.ts.map +1 -0
  448. package/out/tools/corpus-stats.js +102 -0
  449. package/out/tools/corpus-stats.js.map +1 -0
  450. package/out/tools/fetch/ban.d.ts +31 -0
  451. package/out/tools/fetch/ban.d.ts.map +1 -0
  452. package/out/tools/fetch/ban.js +239 -0
  453. package/out/tools/fetch/ban.js.map +1 -0
  454. package/out/tools/fetch/download.d.ts +117 -0
  455. package/out/tools/fetch/download.d.ts.map +1 -0
  456. package/out/tools/fetch/download.js +160 -0
  457. package/out/tools/fetch/download.js.map +1 -0
  458. package/out/tools/fetch/geonames-dump.d.ts +91 -0
  459. package/out/tools/fetch/geonames-dump.d.ts.map +1 -0
  460. package/out/tools/fetch/geonames-dump.js +171 -0
  461. package/out/tools/fetch/geonames-dump.js.map +1 -0
  462. package/out/tools/fetch/geonames-postal.d.ts +76 -0
  463. package/out/tools/fetch/geonames-postal.d.ts.map +1 -0
  464. package/out/tools/fetch/geonames-postal.js +126 -0
  465. package/out/tools/fetch/geonames-postal.js.map +1 -0
  466. package/out/tools/fetch/hrsa.d.ts +18 -0
  467. package/out/tools/fetch/hrsa.d.ts.map +1 -0
  468. package/out/tools/fetch/hrsa.js +46 -0
  469. package/out/tools/fetch/hrsa.js.map +1 -0
  470. package/out/tools/fetch/imls-pls.d.ts +25 -0
  471. package/out/tools/fetch/imls-pls.d.ts.map +1 -0
  472. package/out/tools/fetch/imls-pls.js +108 -0
  473. package/out/tools/fetch/imls-pls.js.map +1 -0
  474. package/out/tools/fetch/index.d.ts +144 -0
  475. package/out/tools/fetch/index.d.ts.map +1 -0
  476. package/out/tools/fetch/index.js +143 -0
  477. package/out/tools/fetch/index.js.map +1 -0
  478. package/out/tools/fetch/nad.d.ts +70 -0
  479. package/out/tools/fetch/nad.d.ts.map +1 -0
  480. package/out/tools/fetch/nad.js +234 -0
  481. package/out/tools/fetch/nad.js.map +1 -0
  482. package/out/tools/fetch/nppes.d.ts +26 -0
  483. package/out/tools/fetch/nppes.d.ts.map +1 -0
  484. package/out/tools/fetch/nppes.js +126 -0
  485. package/out/tools/fetch/nppes.js.map +1 -0
  486. package/out/tools/fetch/openaddresses.d.ts +9 -0
  487. package/out/tools/fetch/openaddresses.d.ts.map +1 -0
  488. package/out/tools/fetch/openaddresses.js +279 -0
  489. package/out/tools/fetch/openaddresses.js.map +1 -0
  490. package/out/tools/fetch/ourairports.d.ts +45 -0
  491. package/out/tools/fetch/ourairports.d.ts.map +1 -0
  492. package/out/tools/fetch/ourairports.js +128 -0
  493. package/out/tools/fetch/ourairports.js.map +1 -0
  494. package/out/tools/fetch/ppd.d.ts +14 -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 +440 -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 +47 -0
  611. package/out/utils/license.js.map +1 -0
  612. package/out/utils/parquet.d.ts +178 -0
  613. package/out/utils/parquet.d.ts.map +1 -0
  614. package/out/utils/parquet.js +371 -0
  615. package/out/utils/parquet.js.map +1 -0
  616. package/out/utils/slice-stats.d.ts +52 -0
  617. package/out/utils/slice-stats.d.ts.map +1 -0
  618. package/out/utils/slice-stats.js +58 -0
  619. package/out/utils/slice-stats.js.map +1 -0
  620. package/out/utils/split.d.ts +128 -0
  621. package/out/utils/split.d.ts.map +1 -0
  622. package/out/utils/split.js +204 -0
  623. package/out/utils/split.js.map +1 -0
  624. package/out/utils/tokenize.d.ts +64 -0
  625. package/out/utils/tokenize.d.ts.map +1 -0
  626. package/out/utils/tokenize.js +82 -0
  627. package/out/utils/tokenize.js.map +1 -0
  628. package/out/utils/wof-json.d.ts +113 -0
  629. package/out/utils/wof-json.d.ts.map +1 -0
  630. package/out/utils/wof-json.js +173 -0
  631. package/out/utils/wof-json.js.map +1 -0
  632. package/package.json +350 -65
  633. package/out/src/adapters/ban/adapter.d.ts +0 -44
  634. package/out/src/adapters/ban/adapter.d.ts.map +0 -1
  635. package/out/src/adapters/ban/adapter.js +0 -148
  636. package/out/src/adapters/ban/adapter.js.map +0 -1
  637. package/out/src/adapters/ban/street-decompose.d.ts.map +0 -1
  638. package/out/src/adapters/ban/street-decompose.js +0 -75
  639. package/out/src/adapters/ban/street-decompose.js.map +0 -1
  640. package/out/src/adapters/fcc-bdc/adapter.d.ts +0 -68
  641. package/out/src/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  642. package/out/src/adapters/fcc-bdc/adapter.js +0 -144
  643. package/out/src/adapters/fcc-bdc/adapter.js.map +0 -1
  644. package/out/src/adapters/geonames/adapter.d.ts +0 -46
  645. package/out/src/adapters/geonames/adapter.d.ts.map +0 -1
  646. package/out/src/adapters/geonames/adapter.js +0 -176
  647. package/out/src/adapters/geonames/adapter.js.map +0 -1
  648. package/out/src/adapters/geonames-postal/adapter.d.ts +0 -41
  649. package/out/src/adapters/geonames-postal/adapter.d.ts.map +0 -1
  650. package/out/src/adapters/geonames-postal/adapter.js +0 -104
  651. package/out/src/adapters/geonames-postal/adapter.js.map +0 -1
  652. package/out/src/adapters/gnaf/adapter.d.ts +0 -49
  653. package/out/src/adapters/gnaf/adapter.d.ts.map +0 -1
  654. package/out/src/adapters/gnaf/adapter.js +0 -124
  655. package/out/src/adapters/gnaf/adapter.js.map +0 -1
  656. package/out/src/adapters/gnaf/assemble.d.ts +0 -65
  657. package/out/src/adapters/gnaf/assemble.d.ts.map +0 -1
  658. package/out/src/adapters/gnaf/assemble.js +0 -154
  659. package/out/src/adapters/gnaf/assemble.js.map +0 -1
  660. package/out/src/adapters/index.d.ts +0 -51
  661. package/out/src/adapters/index.d.ts.map +0 -1
  662. package/out/src/adapters/index.js +0 -95
  663. package/out/src/adapters/index.js.map +0 -1
  664. package/out/src/adapters/openaddresses/adapter.d.ts +0 -72
  665. package/out/src/adapters/openaddresses/adapter.d.ts.map +0 -1
  666. package/out/src/adapters/openaddresses/adapter.js +0 -186
  667. package/out/src/adapters/openaddresses/adapter.js.map +0 -1
  668. package/out/src/adapters/overture/adapter.d.ts +0 -48
  669. package/out/src/adapters/overture/adapter.d.ts.map +0 -1
  670. package/out/src/adapters/overture/adapter.js +0 -125
  671. package/out/src/adapters/overture/adapter.js.map +0 -1
  672. package/out/src/adapters/state-hi-schools/adapter.d.ts +0 -47
  673. package/out/src/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  674. package/out/src/adapters/state-hi-schools/adapter.js +0 -132
  675. package/out/src/adapters/state-hi-schools/adapter.js.map +0 -1
  676. package/out/src/adapters/state-ia-contractors/adapter.d.ts +0 -34
  677. package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  678. package/out/src/adapters/state-ia-contractors/adapter.js +0 -106
  679. package/out/src/adapters/state-ia-contractors/adapter.js.map +0 -1
  680. package/out/src/adapters/state-ny-notaries/adapter.d.ts +0 -32
  681. package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  682. package/out/src/adapters/state-ny-notaries/adapter.js +0 -125
  683. package/out/src/adapters/state-ny-notaries/adapter.js.map +0 -1
  684. package/out/src/adapters/state-tx-notaries/adapter.d.ts +0 -33
  685. package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  686. package/out/src/adapters/state-tx-notaries/adapter.js +0 -120
  687. package/out/src/adapters/state-tx-notaries/adapter.js.map +0 -1
  688. package/out/src/adapters/synth-po-box/adapter.d.ts +0 -67
  689. package/out/src/adapters/synth-po-box/adapter.d.ts.map +0 -1
  690. package/out/src/adapters/synth-po-box/adapter.js +0 -140
  691. package/out/src/adapters/synth-po-box/adapter.js.map +0 -1
  692. package/out/src/adapters/tiger/adapter.d.ts +0 -55
  693. package/out/src/adapters/tiger/adapter.d.ts.map +0 -1
  694. package/out/src/adapters/tiger/adapter.js +0 -201
  695. package/out/src/adapters/tiger/adapter.js.map +0 -1
  696. package/out/src/adapters/tiger/street-decompose.d.ts.map +0 -1
  697. package/out/src/adapters/tiger/street-decompose.js +0 -90
  698. package/out/src/adapters/tiger/street-decompose.js.map +0 -1
  699. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -47
  700. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  701. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +0 -138
  702. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  703. package/out/src/adapters/usgov-imls-pls/adapter.d.ts +0 -36
  704. package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  705. package/out/src/adapters/usgov-imls-pls/adapter.js +0 -110
  706. package/out/src/adapters/usgov-imls-pls/adapter.js.map +0 -1
  707. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +0 -37
  708. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  709. package/out/src/adapters/usgov-irs-bmf/adapter.js +0 -123
  710. package/out/src/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  711. package/out/src/adapters/usgov-nad/adapter.d.ts +0 -48
  712. package/out/src/adapters/usgov-nad/adapter.d.ts.map +0 -1
  713. package/out/src/adapters/usgov-nad/adapter.js +0 -252
  714. package/out/src/adapters/usgov-nad/adapter.js.map +0 -1
  715. package/out/src/adapters/usgov-nppes/adapter.d.ts +0 -39
  716. package/out/src/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  717. package/out/src/adapters/usgov-nppes/adapter.js +0 -116
  718. package/out/src/adapters/usgov-nppes/adapter.js.map +0 -1
  719. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts +0 -46
  720. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  721. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -155
  722. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  723. package/out/src/adapters/utils/index.d.ts +0 -144
  724. package/out/src/adapters/utils/index.d.ts.map +0 -1
  725. package/out/src/adapters/utils/index.js +0 -151
  726. package/out/src/adapters/utils/index.js.map +0 -1
  727. package/out/src/adapters/wof-admin-jp/adapter.d.ts +0 -65
  728. package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  729. package/out/src/adapters/wof-admin-jp/adapter.js +0 -164
  730. package/out/src/adapters/wof-admin-jp/adapter.js.map +0 -1
  731. package/out/src/adapters/wof-admin-json/adapter.d.ts +0 -93
  732. package/out/src/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  733. package/out/src/adapters/wof-admin-json/adapter.js +0 -248
  734. package/out/src/adapters/wof-admin-json/adapter.js.map +0 -1
  735. package/out/src/adapters/wof-postalcode-json/adapter.d.ts +0 -70
  736. package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  737. package/out/src/adapters/wof-postalcode-json/adapter.js +0 -185
  738. package/out/src/adapters/wof-postalcode-json/adapter.js.map +0 -1
  739. package/out/src/build.d.ts +0 -131
  740. package/out/src/build.d.ts.map +0 -1
  741. package/out/src/build.js +0 -248
  742. package/out/src/build.js.map +0 -1
  743. package/out/src/codex/us-fips-state.d.ts.map +0 -1
  744. package/out/src/codex/us-fips-state.js.map +0 -1
  745. package/out/src/index.d.ts +0 -14
  746. package/out/src/index.d.ts.map +0 -1
  747. package/out/src/index.js +0 -14
  748. package/out/src/index.js.map +0 -1
  749. package/out/src/name-prone-us-suffixes.d.ts +0 -12
  750. package/out/src/name-prone-us-suffixes.d.ts.map +0 -1
  751. package/out/src/name-prone-us-suffixes.js +0 -12
  752. package/out/src/name-prone-us-suffixes.js.map +0 -1
  753. package/out/src/parquet-wrapper/index.d.ts +0 -9
  754. package/out/src/parquet-wrapper/index.d.ts.map +0 -1
  755. package/out/src/parquet-wrapper/index.js +0 -9
  756. package/out/src/parquet-wrapper/index.js.map +0 -1
  757. package/out/src/parquet-wrapper/reader.d.ts +0 -34
  758. package/out/src/parquet-wrapper/reader.d.ts.map +0 -1
  759. package/out/src/parquet-wrapper/reader.js +0 -64
  760. package/out/src/parquet-wrapper/reader.js.map +0 -1
  761. package/out/src/parquet-wrapper/schema.d.ts +0 -49
  762. package/out/src/parquet-wrapper/schema.d.ts.map +0 -1
  763. package/out/src/parquet-wrapper/schema.js +0 -55
  764. package/out/src/parquet-wrapper/schema.js.map +0 -1
  765. package/out/src/parquet-wrapper/writer.d.ts +0 -46
  766. package/out/src/parquet-wrapper/writer.d.ts.map +0 -1
  767. package/out/src/parquet-wrapper/writer.js +0 -76
  768. package/out/src/parquet-wrapper/writer.js.map +0 -1
  769. package/out/src/runner.d.ts +0 -126
  770. package/out/src/runner.d.ts.map +0 -1
  771. package/out/src/runner.js +0 -189
  772. package/out/src/runner.js.map +0 -1
  773. package/out/src/shard-recipes/anchor-absorption.d.ts +0 -20
  774. package/out/src/shard-recipes/anchor-absorption.d.ts.map +0 -1
  775. package/out/src/shard-recipes/anchor-absorption.js +0 -83
  776. package/out/src/shard-recipes/anchor-absorption.js.map +0 -1
  777. package/out/src/shard-recipes/boundary-stress.d.ts +0 -20
  778. package/out/src/shard-recipes/boundary-stress.d.ts.map +0 -1
  779. package/out/src/shard-recipes/boundary-stress.js +0 -83
  780. package/out/src/shard-recipes/boundary-stress.js.map +0 -1
  781. package/out/src/shard-recipes/country-balanced.d.ts +0 -32
  782. package/out/src/shard-recipes/country-balanced.d.ts.map +0 -1
  783. package/out/src/shard-recipes/country-balanced.js +0 -405
  784. package/out/src/shard-recipes/country-balanced.js.map +0 -1
  785. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts +0 -22
  786. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  787. package/out/src/shard-recipes/cz-pcfirst-preposition.js +0 -82
  788. package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +0 -1
  789. package/out/src/shard-recipes/fr-admin-split.d.ts +0 -38
  790. package/out/src/shard-recipes/fr-admin-split.d.ts.map +0 -1
  791. package/out/src/shard-recipes/fr-admin-split.js +0 -187
  792. package/out/src/shard-recipes/fr-admin-split.js.map +0 -1
  793. package/out/src/shard-recipes/fr-bare-street.d.ts +0 -28
  794. package/out/src/shard-recipes/fr-bare-street.d.ts.map +0 -1
  795. package/out/src/shard-recipes/fr-bare-street.js +0 -82
  796. package/out/src/shard-recipes/fr-bare-street.js.map +0 -1
  797. package/out/src/shard-recipes/fr-fragment.d.ts +0 -77
  798. package/out/src/shard-recipes/fr-fragment.d.ts.map +0 -1
  799. package/out/src/shard-recipes/fr-fragment.js +0 -276
  800. package/out/src/shard-recipes/fr-fragment.js.map +0 -1
  801. package/out/src/shard-recipes/fr-lieudit.d.ts +0 -32
  802. package/out/src/shard-recipes/fr-lieudit.d.ts.map +0 -1
  803. package/out/src/shard-recipes/fr-lieudit.js +0 -225
  804. package/out/src/shard-recipes/fr-lieudit.js.map +0 -1
  805. package/out/src/shard-recipes/fr-order.d.ts +0 -38
  806. package/out/src/shard-recipes/fr-order.d.ts.map +0 -1
  807. package/out/src/shard-recipes/fr-order.js +0 -207
  808. package/out/src/shard-recipes/fr-order.js.map +0 -1
  809. package/out/src/shard-recipes/german.d.ts +0 -23
  810. package/out/src/shard-recipes/german.d.ts.map +0 -1
  811. package/out/src/shard-recipes/german.js +0 -132
  812. package/out/src/shard-recipes/german.js.map +0 -1
  813. package/out/src/shard-recipes/house-venue.d.ts +0 -18
  814. package/out/src/shard-recipes/house-venue.d.ts.map +0 -1
  815. package/out/src/shard-recipes/house-venue.js +0 -74
  816. package/out/src/shard-recipes/house-venue.js.map +0 -1
  817. package/out/src/shard-recipes/index.d.ts +0 -24
  818. package/out/src/shard-recipes/index.d.ts.map +0 -1
  819. package/out/src/shard-recipes/index.js +0 -83
  820. package/out/src/shard-recipes/index.js.map +0 -1
  821. package/out/src/shard-recipes/intersection.d.ts +0 -42
  822. package/out/src/shard-recipes/intersection.d.ts.map +0 -1
  823. package/out/src/shard-recipes/intersection.js +0 -460
  824. package/out/src/shard-recipes/intersection.js.map +0 -1
  825. package/out/src/shard-recipes/locale.d.ts +0 -135
  826. package/out/src/shard-recipes/locale.d.ts.map +0 -1
  827. package/out/src/shard-recipes/locale.js +0 -458
  828. package/out/src/shard-recipes/locale.js.map +0 -1
  829. package/out/src/shard-recipes/nl-postcode.d.ts +0 -26
  830. package/out/src/shard-recipes/nl-postcode.d.ts.map +0 -1
  831. package/out/src/shard-recipes/nl-postcode.js +0 -102
  832. package/out/src/shard-recipes/nl-postcode.js.map +0 -1
  833. package/out/src/shard-recipes/no-fragment.d.ts +0 -43
  834. package/out/src/shard-recipes/no-fragment.d.ts.map +0 -1
  835. package/out/src/shard-recipes/no-fragment.js +0 -188
  836. package/out/src/shard-recipes/no-fragment.js.map +0 -1
  837. package/out/src/shard-recipes/no-street-led.d.ts +0 -24
  838. package/out/src/shard-recipes/no-street-led.d.ts.map +0 -1
  839. package/out/src/shard-recipes/no-street-led.js +0 -121
  840. package/out/src/shard-recipes/no-street-led.js.map +0 -1
  841. package/out/src/shard-recipes/no-street.d.ts +0 -18
  842. package/out/src/shard-recipes/no-street.d.ts.map +0 -1
  843. package/out/src/shard-recipes/no-street.js +0 -72
  844. package/out/src/shard-recipes/no-street.js.map +0 -1
  845. package/out/src/shard-recipes/po-box-cedex.d.ts +0 -38
  846. package/out/src/shard-recipes/po-box-cedex.d.ts.map +0 -1
  847. package/out/src/shard-recipes/po-box-cedex.js +0 -726
  848. package/out/src/shard-recipes/po-box-cedex.js.map +0 -1
  849. package/out/src/shard-recipes/po-box.d.ts +0 -17
  850. package/out/src/shard-recipes/po-box.d.ts.map +0 -1
  851. package/out/src/shard-recipes/po-box.js +0 -101
  852. package/out/src/shard-recipes/po-box.js.map +0 -1
  853. package/out/src/shard-recipes/scaffold.d.ts +0 -217
  854. package/out/src/shard-recipes/scaffold.d.ts.map +0 -1
  855. package/out/src/shard-recipes/scaffold.js +0 -138
  856. package/out/src/shard-recipes/scaffold.js.map +0 -1
  857. package/out/src/shard-recipes/si-bare-village.d.ts +0 -32
  858. package/out/src/shard-recipes/si-bare-village.d.ts.map +0 -1
  859. package/out/src/shard-recipes/si-bare-village.js +0 -88
  860. package/out/src/shard-recipes/si-bare-village.js.map +0 -1
  861. package/out/src/shard-recipes/street-affix.d.ts +0 -89
  862. package/out/src/shard-recipes/street-affix.d.ts.map +0 -1
  863. package/out/src/shard-recipes/street-affix.js +0 -578
  864. package/out/src/shard-recipes/street-affix.js.map +0 -1
  865. package/out/src/shard-recipes/street-bare.d.ts +0 -25
  866. package/out/src/shard-recipes/street-bare.d.ts.map +0 -1
  867. package/out/src/shard-recipes/street-bare.js +0 -86
  868. package/out/src/shard-recipes/street-bare.js.map +0 -1
  869. package/out/src/shard-recipes/street.d.ts +0 -15
  870. package/out/src/shard-recipes/street.d.ts.map +0 -1
  871. package/out/src/shard-recipes/street.js +0 -69
  872. package/out/src/shard-recipes/street.js.map +0 -1
  873. package/out/src/shard-recipes/sub-venue-sources.d.ts +0 -228
  874. package/out/src/shard-recipes/sub-venue-sources.d.ts.map +0 -1
  875. package/out/src/shard-recipes/sub-venue-sources.js +0 -664
  876. package/out/src/shard-recipes/sub-venue-sources.js.map +0 -1
  877. package/out/src/shard-recipes/sub-venue.d.ts +0 -269
  878. package/out/src/shard-recipes/sub-venue.d.ts.map +0 -1
  879. package/out/src/shard-recipes/sub-venue.js +0 -709
  880. package/out/src/shard-recipes/sub-venue.js.map +0 -1
  881. package/out/src/shard-recipes/unit.d.ts +0 -29
  882. package/out/src/shard-recipes/unit.d.ts.map +0 -1
  883. package/out/src/shard-recipes/unit.js +0 -243
  884. package/out/src/shard-recipes/unit.js.map +0 -1
  885. package/out/src/synthesizers/anchor-absorption.d.ts +0 -63
  886. package/out/src/synthesizers/anchor-absorption.d.ts.map +0 -1
  887. package/out/src/synthesizers/anchor-absorption.js +0 -223
  888. package/out/src/synthesizers/anchor-absorption.js.map +0 -1
  889. package/out/src/synthesizers/boundary-stress.d.ts +0 -78
  890. package/out/src/synthesizers/boundary-stress.d.ts.map +0 -1
  891. package/out/src/synthesizers/boundary-stress.js +0 -455
  892. package/out/src/synthesizers/boundary-stress.js.map +0 -1
  893. package/out/src/synthesizers/german.d.ts +0 -107
  894. package/out/src/synthesizers/german.d.ts.map +0 -1
  895. package/out/src/synthesizers/german.js +0 -148
  896. package/out/src/synthesizers/german.js.map +0 -1
  897. package/out/src/synthesizers/house-venue.d.ts +0 -56
  898. package/out/src/synthesizers/house-venue.d.ts.map +0 -1
  899. package/out/src/synthesizers/house-venue.js +0 -253
  900. package/out/src/synthesizers/house-venue.js.map +0 -1
  901. package/out/src/synthesizers/intersection.d.ts +0 -52
  902. package/out/src/synthesizers/intersection.d.ts.map +0 -1
  903. package/out/src/synthesizers/intersection.js +0 -175
  904. package/out/src/synthesizers/intersection.js.map +0 -1
  905. package/out/src/synthesizers/no-street.d.ts +0 -72
  906. package/out/src/synthesizers/no-street.d.ts.map +0 -1
  907. package/out/src/synthesizers/no-street.js +0 -282
  908. package/out/src/synthesizers/no-street.js.map +0 -1
  909. package/out/src/synthesizers/po-box.d.ts +0 -104
  910. package/out/src/synthesizers/po-box.d.ts.map +0 -1
  911. package/out/src/synthesizers/po-box.js +0 -266
  912. package/out/src/synthesizers/po-box.js.map +0 -1
  913. package/out/src/synthesizers/street.d.ts +0 -54
  914. package/out/src/synthesizers/street.d.ts.map +0 -1
  915. package/out/src/synthesizers/street.js +0 -220
  916. package/out/src/synthesizers/street.js.map +0 -1
  917. package/out/src/synthesizers/utils.d.ts +0 -203
  918. package/out/src/synthesizers/utils.d.ts.map +0 -1
  919. package/out/src/synthesizers/utils.js +0 -707
  920. package/out/src/synthesizers/utils.js.map +0 -1
  921. package/out/src/tools/align-shard.d.ts +0 -8
  922. package/out/src/tools/align-shard.d.ts.map +0 -1
  923. package/out/src/tools/align-shard.js +0 -56
  924. package/out/src/tools/align-shard.js.map +0 -1
  925. package/out/src/tools/audit.d.ts +0 -28
  926. package/out/src/tools/audit.d.ts.map +0 -1
  927. package/out/src/tools/audit.js +0 -285
  928. package/out/src/tools/audit.js.map +0 -1
  929. package/out/src/tools/corpus-stats.d.ts +0 -44
  930. package/out/src/tools/corpus-stats.d.ts.map +0 -1
  931. package/out/src/tools/corpus-stats.js +0 -138
  932. package/out/src/tools/corpus-stats.js.map +0 -1
  933. package/out/src/tools/fetch/ban.d.ts +0 -31
  934. package/out/src/tools/fetch/ban.d.ts.map +0 -1
  935. package/out/src/tools/fetch/ban.js +0 -255
  936. package/out/src/tools/fetch/ban.js.map +0 -1
  937. package/out/src/tools/fetch/download.d.ts +0 -69
  938. package/out/src/tools/fetch/download.d.ts.map +0 -1
  939. package/out/src/tools/fetch/download.js +0 -100
  940. package/out/src/tools/fetch/download.js.map +0 -1
  941. package/out/src/tools/fetch/hrsa.d.ts +0 -18
  942. package/out/src/tools/fetch/hrsa.d.ts.map +0 -1
  943. package/out/src/tools/fetch/hrsa.js +0 -46
  944. package/out/src/tools/fetch/hrsa.js.map +0 -1
  945. package/out/src/tools/fetch/imls-pls.d.ts +0 -25
  946. package/out/src/tools/fetch/imls-pls.d.ts.map +0 -1
  947. package/out/src/tools/fetch/imls-pls.js +0 -108
  948. package/out/src/tools/fetch/imls-pls.js.map +0 -1
  949. package/out/src/tools/fetch/index.d.ts +0 -133
  950. package/out/src/tools/fetch/index.d.ts.map +0 -1
  951. package/out/src/tools/fetch/index.js +0 -132
  952. package/out/src/tools/fetch/index.js.map +0 -1
  953. package/out/src/tools/fetch/nad.d.ts +0 -70
  954. package/out/src/tools/fetch/nad.d.ts.map +0 -1
  955. package/out/src/tools/fetch/nad.js +0 -225
  956. package/out/src/tools/fetch/nad.js.map +0 -1
  957. package/out/src/tools/fetch/nppes.d.ts +0 -26
  958. package/out/src/tools/fetch/nppes.d.ts.map +0 -1
  959. package/out/src/tools/fetch/nppes.js +0 -124
  960. package/out/src/tools/fetch/nppes.js.map +0 -1
  961. package/out/src/tools/fetch/openaddresses.d.ts +0 -61
  962. package/out/src/tools/fetch/openaddresses.d.ts.map +0 -1
  963. package/out/src/tools/fetch/openaddresses.js +0 -316
  964. package/out/src/tools/fetch/openaddresses.js.map +0 -1
  965. package/out/src/tools/fetch/ourairports.d.ts +0 -45
  966. package/out/src/tools/fetch/ourairports.d.ts.map +0 -1
  967. package/out/src/tools/fetch/ourairports.js +0 -123
  968. package/out/src/tools/fetch/ourairports.js.map +0 -1
  969. package/out/src/tools/fetch/ppd.d.ts +0 -18
  970. package/out/src/tools/fetch/ppd.d.ts.map +0 -1
  971. package/out/src/tools/fetch/ppd.js +0 -100
  972. package/out/src/tools/fetch/ppd.js.map +0 -1
  973. package/out/src/tools/fetch/state-hi-schools.d.ts +0 -25
  974. package/out/src/tools/fetch/state-hi-schools.d.ts.map +0 -1
  975. package/out/src/tools/fetch/state-hi-schools.js +0 -178
  976. package/out/src/tools/fetch/state-hi-schools.js.map +0 -1
  977. package/out/src/tools/fetch/state-sources.d.ts +0 -22
  978. package/out/src/tools/fetch/state-sources.d.ts.map +0 -1
  979. package/out/src/tools/fetch/state-sources.js +0 -115
  980. package/out/src/tools/fetch/state-sources.js.map +0 -1
  981. package/out/src/tools/fetch/tiger-full.d.ts +0 -42
  982. package/out/src/tools/fetch/tiger-full.d.ts.map +0 -1
  983. package/out/src/tools/fetch/tiger-full.js +0 -254
  984. package/out/src/tools/fetch/tiger-full.js.map +0 -1
  985. package/out/src/tools/fetch/wikidata-subvenue.d.ts +0 -171
  986. package/out/src/tools/fetch/wikidata-subvenue.d.ts.map +0 -1
  987. package/out/src/tools/fetch/wikidata-subvenue.js +0 -275
  988. package/out/src/tools/fetch/wikidata-subvenue.js.map +0 -1
  989. package/out/src/tools/gb-title-case.d.ts.map +0 -1
  990. package/out/src/tools/gb-title-case.js.map +0 -1
  991. package/out/src/tools/golden-expand.d.ts +0 -90
  992. package/out/src/tools/golden-expand.d.ts.map +0 -1
  993. package/out/src/tools/golden-expand.js +0 -404
  994. package/out/src/tools/golden-expand.js.map +0 -1
  995. package/out/src/tools/golden-promote.d.ts.map +0 -1
  996. package/out/src/tools/golden-promote.js +0 -244
  997. package/out/src/tools/golden-promote.js.map +0 -1
  998. package/out/src/tools/golden-relabel-street.d.ts +0 -196
  999. package/out/src/tools/golden-relabel-street.d.ts.map +0 -1
  1000. package/out/src/tools/golden-relabel-street.js +0 -440
  1001. package/out/src/tools/golden-relabel-street.js.map +0 -1
  1002. package/out/src/tools/index.d.ts +0 -28
  1003. package/out/src/tools/index.d.ts.map +0 -1
  1004. package/out/src/tools/index.js +0 -28
  1005. package/out/src/tools/index.js.map +0 -1
  1006. package/out/src/tools/ingest-csv.d.ts.map +0 -1
  1007. package/out/src/tools/ingest-csv.js +0 -307
  1008. package/out/src/tools/ingest-csv.js.map +0 -1
  1009. package/out/src/tools/jsonl-to-parquet.d.ts +0 -61
  1010. package/out/src/tools/jsonl-to-parquet.d.ts.map +0 -1
  1011. package/out/src/tools/jsonl-to-parquet.js +0 -164
  1012. package/out/src/tools/jsonl-to-parquet.js.map +0 -1
  1013. package/out/src/tools/lint-shard-vocab.d.ts +0 -90
  1014. package/out/src/tools/lint-shard-vocab.d.ts.map +0 -1
  1015. package/out/src/tools/lint-shard-vocab.js +0 -281
  1016. package/out/src/tools/lint-shard-vocab.js.map +0 -1
  1017. package/out/src/tools/lint-shard.d.ts +0 -93
  1018. package/out/src/tools/lint-shard.d.ts.map +0 -1
  1019. package/out/src/tools/lint-shard.js +0 -354
  1020. package/out/src/tools/lint-shard.js.map +0 -1
  1021. package/out/src/tools/overlay-manifest.d.ts +0 -35
  1022. package/out/src/tools/overlay-manifest.d.ts.map +0 -1
  1023. package/out/src/tools/overlay-manifest.js +0 -88
  1024. package/out/src/tools/overlay-manifest.js.map +0 -1
  1025. package/out/src/tools/overture-subvenue.d.ts +0 -112
  1026. package/out/src/tools/overture-subvenue.d.ts.map +0 -1
  1027. package/out/src/tools/overture-subvenue.js +0 -144
  1028. package/out/src/tools/overture-subvenue.js.map +0 -1
  1029. package/out/src/tools/shard-kryptonite.d.ts +0 -32
  1030. package/out/src/tools/shard-kryptonite.d.ts.map +0 -1
  1031. package/out/src/tools/shard-kryptonite.js +0 -101
  1032. package/out/src/tools/shard-kryptonite.js.map +0 -1
  1033. package/out/src/tools/shard-translit.d.ts +0 -51
  1034. package/out/src/tools/shard-translit.d.ts.map +0 -1
  1035. package/out/src/tools/shard-translit.js +0 -197
  1036. package/out/src/tools/shard-translit.js.map +0 -1
  1037. package/out/src/tools/sub-venue-lexicon.d.ts +0 -507
  1038. package/out/src/tools/sub-venue-lexicon.d.ts.map +0 -1
  1039. package/out/src/tools/sub-venue-lexicon.js +0 -817
  1040. package/out/src/tools/sub-venue-lexicon.js.map +0 -1
  1041. package/out/src/tools/sub-venue-promotions.d.ts +0 -94
  1042. package/out/src/tools/sub-venue-promotions.d.ts.map +0 -1
  1043. package/out/src/tools/sub-venue-promotions.js +0 -266
  1044. package/out/src/tools/sub-venue-promotions.js.map +0 -1
  1045. package/out/src/types.d.ts +0 -221
  1046. package/out/src/types.d.ts.map +0 -1
  1047. package/out/src/types.js.map +0 -1
  1048. package/out/src/utils/align.d.ts +0 -93
  1049. package/out/src/utils/align.d.ts.map +0 -1
  1050. package/out/src/utils/align.js +0 -234
  1051. package/out/src/utils/align.js.map +0 -1
  1052. package/out/src/utils/golden.d.ts +0 -69
  1053. package/out/src/utils/golden.d.ts.map +0 -1
  1054. package/out/src/utils/golden.js +0 -127
  1055. package/out/src/utils/golden.js.map +0 -1
  1056. package/out/src/utils/index.d.ts +0 -14
  1057. package/out/src/utils/index.d.ts.map +0 -1
  1058. package/out/src/utils/index.js +0 -14
  1059. package/out/src/utils/index.js.map +0 -1
  1060. package/out/src/utils/license.d.ts.map +0 -1
  1061. package/out/src/utils/license.js +0 -47
  1062. package/out/src/utils/license.js.map +0 -1
  1063. package/out/src/utils/parquet.d.ts +0 -143
  1064. package/out/src/utils/parquet.d.ts.map +0 -1
  1065. package/out/src/utils/parquet.js +0 -258
  1066. package/out/src/utils/parquet.js.map +0 -1
  1067. package/out/src/utils/split.d.ts +0 -127
  1068. package/out/src/utils/split.d.ts.map +0 -1
  1069. package/out/src/utils/split.js +0 -204
  1070. package/out/src/utils/split.js.map +0 -1
  1071. package/out/src/utils/tokenize.d.ts +0 -56
  1072. package/out/src/utils/tokenize.d.ts.map +0 -1
  1073. package/out/src/utils/tokenize.js +0 -48
  1074. package/out/src/utils/tokenize.js.map +0 -1
  1075. package/out/src/utils/wof-json.d.ts +0 -109
  1076. package/out/src/utils/wof-json.d.ts.map +0 -1
  1077. package/out/src/utils/wof-json.js +0 -173
  1078. package/out/src/utils/wof-json.js.map +0 -1
  1079. package/src/adapters/ban/adapter.ts +0 -189
  1080. package/src/adapters/ban/street-decompose.ts +0 -96
  1081. package/src/adapters/fcc-bdc/adapter.ts +0 -173
  1082. package/src/adapters/geonames/adapter.ts +0 -199
  1083. package/src/adapters/geonames-postal/adapter.ts +0 -118
  1084. package/src/adapters/gnaf/adapter.ts +0 -148
  1085. package/src/adapters/gnaf/assemble.ts +0 -226
  1086. package/src/adapters/index.ts +0 -149
  1087. package/src/adapters/openaddresses/adapter.ts +0 -250
  1088. package/src/adapters/overture/adapter.ts +0 -161
  1089. package/src/adapters/state-hi-schools/adapter.ts +0 -162
  1090. package/src/adapters/state-ia-contractors/adapter.ts +0 -138
  1091. package/src/adapters/state-ny-notaries/adapter.ts +0 -159
  1092. package/src/adapters/state-tx-notaries/adapter.ts +0 -151
  1093. package/src/adapters/synth-po-box/adapter.ts +0 -203
  1094. package/src/adapters/tiger/adapter.ts +0 -252
  1095. package/src/adapters/tiger/street-decompose.ts +0 -111
  1096. package/src/adapters/usgov-hrsa-fqhc/adapter.ts +0 -181
  1097. package/src/adapters/usgov-imls-pls/adapter.ts +0 -138
  1098. package/src/adapters/usgov-irs-bmf/adapter.ts +0 -161
  1099. package/src/adapters/usgov-nad/adapter.ts +0 -347
  1100. package/src/adapters/usgov-nppes/adapter.ts +0 -157
  1101. package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -202
  1102. package/src/adapters/utils/index.ts +0 -220
  1103. package/src/adapters/wof-admin-jp/adapter.ts +0 -219
  1104. package/src/adapters/wof-admin-json/adapter.ts +0 -294
  1105. package/src/adapters/wof-postalcode-json/adapter.ts +0 -216
  1106. package/src/build.ts +0 -386
  1107. package/src/index.ts +0 -14
  1108. package/src/name-prone-us-suffixes.ts +0 -12
  1109. package/src/parquet-wrapper/index.ts +0 -9
  1110. package/src/parquet-wrapper/reader.ts +0 -88
  1111. package/src/parquet-wrapper/schema.ts +0 -88
  1112. package/src/parquet-wrapper/writer.ts +0 -110
  1113. package/src/runner.ts +0 -322
  1114. package/src/shard-recipes/anchor-absorption.ts +0 -103
  1115. package/src/shard-recipes/boundary-stress.ts +0 -104
  1116. package/src/shard-recipes/country-balanced.ts +0 -522
  1117. package/src/shard-recipes/cz-pcfirst-preposition.ts +0 -92
  1118. package/src/shard-recipes/fr-admin-split.ts +0 -237
  1119. package/src/shard-recipes/fr-bare-street.ts +0 -95
  1120. package/src/shard-recipes/fr-fragment.ts +0 -332
  1121. package/src/shard-recipes/fr-lieudit.ts +0 -300
  1122. package/src/shard-recipes/fr-order.ts +0 -256
  1123. package/src/shard-recipes/german.ts +0 -169
  1124. package/src/shard-recipes/house-venue.ts +0 -88
  1125. package/src/shard-recipes/index.ts +0 -89
  1126. package/src/shard-recipes/intersection.ts +0 -629
  1127. package/src/shard-recipes/locale.ts +0 -601
  1128. package/src/shard-recipes/nl-postcode.ts +0 -115
  1129. package/src/shard-recipes/no-fragment.ts +0 -219
  1130. package/src/shard-recipes/no-street-led.ts +0 -143
  1131. package/src/shard-recipes/no-street.ts +0 -86
  1132. package/src/shard-recipes/po-box-cedex.ts +0 -919
  1133. package/src/shard-recipes/po-box.ts +0 -123
  1134. package/src/shard-recipes/scaffold.ts +0 -329
  1135. package/src/shard-recipes/si-bare-village.ts +0 -97
  1136. package/src/shard-recipes/street-affix.ts +0 -825
  1137. package/src/shard-recipes/street-bare.ts +0 -101
  1138. package/src/shard-recipes/street.ts +0 -82
  1139. package/src/shard-recipes/sub-venue-sources.ts +0 -895
  1140. package/src/shard-recipes/sub-venue.ts +0 -982
  1141. package/src/shard-recipes/unit.ts +0 -320
  1142. package/src/synthesizers/anchor-absorption.ts +0 -290
  1143. package/src/synthesizers/boundary-stress.ts +0 -531
  1144. package/src/synthesizers/german.ts +0 -250
  1145. package/src/synthesizers/house-venue.ts +0 -316
  1146. package/src/synthesizers/intersection.ts +0 -232
  1147. package/src/synthesizers/no-street.ts +0 -349
  1148. package/src/synthesizers/po-box.ts +0 -339
  1149. package/src/synthesizers/street.ts +0 -272
  1150. package/src/synthesizers/utils.ts +0 -901
  1151. package/src/tools/align-shard.ts +0 -69
  1152. package/src/tools/audit.ts +0 -399
  1153. package/src/tools/corpus-stats.ts +0 -184
  1154. package/src/tools/fetch/ban.ts +0 -310
  1155. package/src/tools/fetch/download.ts +0 -158
  1156. package/src/tools/fetch/hrsa.ts +0 -68
  1157. package/src/tools/fetch/imls-pls.ts +0 -158
  1158. package/src/tools/fetch/index.ts +0 -136
  1159. package/src/tools/fetch/nad.ts +0 -331
  1160. package/src/tools/fetch/nppes.ts +0 -172
  1161. package/src/tools/fetch/openaddresses.ts +0 -408
  1162. package/src/tools/fetch/ourairports.ts +0 -166
  1163. package/src/tools/fetch/ppd.ts +0 -137
  1164. package/src/tools/fetch/state-hi-schools.ts +0 -228
  1165. package/src/tools/fetch/state-sources.ts +0 -155
  1166. package/src/tools/fetch/tiger-full.ts +0 -361
  1167. package/src/tools/fetch/wikidata-subvenue.ts +0 -386
  1168. package/src/tools/golden-expand.ts +0 -573
  1169. package/src/tools/golden-promote.ts +0 -353
  1170. package/src/tools/golden-relabel-street.ts +0 -685
  1171. package/src/tools/index.ts +0 -28
  1172. package/src/tools/ingest-csv.ts +0 -435
  1173. package/src/tools/jsonl-to-parquet.ts +0 -221
  1174. package/src/tools/lint-shard-vocab.ts +0 -409
  1175. package/src/tools/lint-shard.ts +0 -543
  1176. package/src/tools/overlay-manifest.ts +0 -145
  1177. package/src/tools/overture-subvenue.ts +0 -215
  1178. package/src/tools/shard-kryptonite.ts +0 -138
  1179. package/src/tools/shard-translit.ts +0 -270
  1180. package/src/tools/sub-venue-lexicon.ts +0 -1250
  1181. package/src/tools/sub-venue-promotions.ts +0 -330
  1182. package/src/types.ts +0 -247
  1183. package/src/utils/align.ts +0 -330
  1184. package/src/utils/golden.ts +0 -176
  1185. package/src/utils/index.ts +0 -14
  1186. package/src/utils/license.ts +0 -50
  1187. package/src/utils/parquet.ts +0 -377
  1188. package/src/utils/split.ts +0 -278
  1189. package/src/utils/tokenize.ts +0 -78
  1190. package/src/utils/wof-json.ts +0 -244
  1191. /package/{src → lib}/codex/us-fips-state.ts +0 -0
  1192. /package/{src → lib}/tools/gb-title-case.ts +0 -0
  1193. /package/out/{src/adapters → adapters}/ban/street-decompose.d.ts +0 -0
  1194. /package/out/{src/adapters → adapters}/tiger/street-decompose.d.ts +0 -0
  1195. /package/out/{src/codex → codex}/us-fips-state.d.ts +0 -0
  1196. /package/out/{src/codex → codex}/us-fips-state.js +0 -0
  1197. /package/out/{src/tools → tools}/gb-title-case.d.ts +0 -0
  1198. /package/out/{src/tools → tools}/gb-title-case.js +0 -0
  1199. /package/out/{src/tools → tools}/golden-promote.d.ts +0 -0
  1200. /package/out/{src/tools → tools}/ingest-csv.d.ts +0 -0
  1201. /package/out/{src/types.js → types.js} +0 -0
  1202. /package/out/{src/utils → utils}/license.d.ts +0 -0
@@ -1,404 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Generate golden-set candidate entries by LLM-driven surface-form synthesis from a verified-label
7
- * seed pulled out of the corpus's labeled test split.
8
- *
9
- * ## Why this approach
10
- *
11
- * The Phase 2 golden set has 74 entries; session-notes.md called for ≥500/locale. Manual curation
12
- * doesn't scale. Pure-LLM generation (invent raw + labels from scratch) is too noisy — labels
13
- * would be unverified.
14
- *
15
- * This module takes the middle path:
16
- *
17
- * 1. **Seeds come from corpus-v0.2.0 test shard** — already through the alignment pipeline, so labels
18
- * are pipeline-verified.
19
- * 2. **LLM only varies the surface form** — case, abbreviations, reordering, dropped components. The
20
- * component VALUES (locality string, postcode digits, etc.) are preserved verbatim.
21
- * 3. **Programmatic validator drops hallucinations** — every component value must appear as a
22
- * substring (case-insensitive, whitespace-normalized) of the variant's raw. Failures dropped
23
- * silently; cost is wasted tokens, never bad-labeled golden entries.
24
- *
25
- * ## Usage
26
- *
27
- * ```sh
28
- * DEEPSEEK_API_KEY=sk-... \
29
- * mailwoman corpus golden expand \
30
- * --count 1000 \
31
- * --variants 5 \
32
- * --output data/eval/golden/candidates/expand-$(date +%Y%m%d-%H%M%S).jsonl
33
- * ```
34
- *
35
- * ## Env
36
- *
37
- * - `DEEPSEEK_API_KEY` — required for provider `deepseek`
38
- * - `ANTHROPIC_API_KEY` — required for provider `anthropic`
39
- *
40
- * ## What this module does NOT do
41
- *
42
- * - Does not commit anything or modify the versioned golden dir. Candidates land in
43
- * `data/eval/golden/candidates/` for operator review (skim, prune, then run
44
- * `mailwoman corpus golden promote`).
45
- * - Does not score the LLM's quality — that's an eyeball job after pilot lands.
46
- * - Does not retry hallucinated candidates. Cost of wasted tokens is trivial (~$0.0006/each).
47
- */
48
- import { mkdir } from "node:fs/promises";
49
- import { dirname } from "node:path";
50
- import { ParquetReader } from "@dsnp/parquetjs";
51
- import { $private } from "@mailwoman/core/env";
52
- import { tryParsingJSON } from "@mailwoman/core/objects";
53
- import { dataRootPath } from "@mailwoman/core/utils";
54
- import { createNewlineWriter } from "spliterator";
55
- // ── Types ─────────────────────────────────────────────────────────────────
56
- /**
57
- * Longest raw line still plausibly a single address rather than a concatenated record.
58
- */
59
- const MAX_CANDIDATE_LENGTH = 500;
60
- // ── Seed loading ──────────────────────────────────────────────────────────
61
- /**
62
- * Decode BIO labels + tokens into a verified components map. Mirrors the Python `decode_components` in
63
- * mailwoman_train/eval.py — first-occurrence-wins per tag, contiguous B-X/I-X runs concatenated with a single space
64
- * (the canonical separator used by corpus alignment).
65
- */
66
- function decodeComponents(tokens, labels) {
67
- const out = {};
68
- let currentTag = null;
69
- let currentTokens = [];
70
- const flush = () => {
71
- if (currentTag && currentTokens.length && !(currentTag in out)) {
72
- out[currentTag] = currentTokens.join(" ").trim();
73
- }
74
- currentTag = null;
75
- currentTokens = [];
76
- };
77
- for (let i = 0; i < labels.length; i++) {
78
- const label = labels[i];
79
- const tok = tokens[i] ?? "";
80
- if (label === "O") {
81
- flush();
82
- continue;
83
- }
84
- const [prefix, tag] = label.split("-", 2);
85
- if (prefix === "B" || currentTag !== tag) {
86
- flush();
87
- currentTag = tag;
88
- currentTokens = [tok];
89
- }
90
- else {
91
- currentTokens.push(tok);
92
- }
93
- }
94
- flush();
95
- return out;
96
- }
97
- async function loadSeeds(corpusPath, count, includeSources, report) {
98
- const paths = corpusPath
99
- .split(",")
100
- .map((p) => p.trim())
101
- .filter(Boolean);
102
- report?.(`reading seeds from ${paths.length} shard(s) (target: ${count}, stratified)`);
103
- if (includeSources) {
104
- report?.(` include-sources filter: ${Array.from(includeSources).join(", ")}`);
105
- }
106
- // Stratified sampling: read all rows from all shards, group by source. Bounded by per-source
107
- // reservoir: keep at most max(2*count, 5000) rows per source so we don't blow memory on train
108
- // shards (1M rows × many shards). Sampling later is uniform within each pool.
109
- const bySource = new Map();
110
- const PER_SOURCE_CAP = Math.max(2 * count, 5000);
111
- let scanned = 0;
112
- let skippedThinComponents = 0;
113
- for (const path of paths) {
114
- const reader = await ParquetReader.openFile(path);
115
- const cursor = reader.getCursor();
116
- while (true) {
117
- const row = (await cursor.next());
118
- if (!row)
119
- break;
120
- scanned++;
121
- // Source allow-list (--include-sources) — applied early to skip parsing rows we won't use
122
- if (includeSources && !includeSources.has(row.source))
123
- continue;
124
- const components = decodeComponents(row.tokens ?? [], row.labels ?? []);
125
- // Skip rows with too few components — single-name wof-admin entries don't make useful seeds
126
- if (Object.keys(components).length < 2) {
127
- skippedThinComponents++;
128
- continue;
129
- }
130
- const seed = {
131
- raw: row.raw,
132
- components,
133
- country: row.country,
134
- source: row.source,
135
- source_id: row.source_id,
136
- };
137
- let bucket = bySource.get(row.source);
138
- if (!bucket) {
139
- bucket = [];
140
- bySource.set(row.source, bucket);
141
- }
142
- if (bucket.length < PER_SOURCE_CAP) {
143
- bucket.push(seed);
144
- }
145
- }
146
- await reader.close();
147
- }
148
- report?.(` scanned ${scanned} rows across ${paths.length} shard(s); thin-components dropped: ${skippedThinComponents}`);
149
- report?.(` per-source pool sizes:`);
150
- for (const [src, pool] of bySource) {
151
- report?.(` ${src}: ${pool.length}`);
152
- }
153
- // Round-robin sample. Each source gives floor(count / nSources) seeds; rounding goes
154
- // to sources in alphabetical order. If a pool is smaller than its target, take all of it.
155
- const sources = Array.from(bySource.keys()).toSorted();
156
- const perSource = Math.floor(count / sources.length);
157
- const remainder = count - perSource * sources.length;
158
- const picked = [];
159
- for (let i = 0; i < sources.length; i++) {
160
- const src = sources[i];
161
- const pool = bySource.get(src);
162
- const target = perSource + (i < remainder ? 1 : 0);
163
- // Random subsample without replacement — deterministic via shuffle then slice
164
- for (let j = pool.length - 1; j > 0; j--) {
165
- const k = Math.floor(Math.random() * (j + 1));
166
- [pool[j], pool[k]] = [pool[k], pool[j]];
167
- }
168
- const take = Math.min(target, pool.length);
169
- picked.push(...pool.slice(0, take));
170
- if (take < target) {
171
- report?.(` ⚠ ${src}: requested ${target}, pool had ${pool.length}`);
172
- }
173
- }
174
- report?.(` → loaded ${picked.length} seeds across ${sources.length} sources`);
175
- return picked;
176
- }
177
- const SYSTEM_PROMPT = `You are a postal-address surface-form generator. Given a structured address, produce realistic variants a human might type into a geocoder.
178
-
179
- CONSTRAINT — you MUST preserve every kept component value verbatim in the output. You may:
180
- - vary case (UPPER, lower, Title Case)
181
- - abbreviate (Saint → St, Avenue → Ave, Boulevard → Blvd, North → N, etc.)
182
- - vary punctuation (commas, dashes, spaces, line breaks)
183
- - reorder components (postcode-first, country-first, address-only)
184
- - drop OPTIONAL components — list them in "dropped"
185
-
186
- OPTIONAL components (allowed to drop): country, postcode, dependent_locality, subregion, cedex.
187
- REQUIRED components (must keep, even if input has them): locality, region (when present),
188
- street, house_number, venue (when present).
189
-
190
- ALWAYS keep AT LEAST 2 components in the final raw text. Single-component variants like
191
- "VT" or "Paris" are USELESS as eval entries — do not produce them.
192
-
193
- You MUST NOT:
194
- - introduce typos (validator drops these silently — wasted tokens)
195
- - invent new component values
196
- - produce text longer than 500 characters
197
- - output a degenerate single-token answer
198
-
199
- OUTPUT a JSON array of N objects, each shaped {"raw": "...", "dropped": ["..."]}.`;
200
- function buildUserPrompt(seed, n) {
201
- return `INPUT:
202
- ${JSON.stringify({ raw: seed.raw, components: seed.components, country: seed.country }, null, 2)}
203
-
204
- N: ${n}`;
205
- }
206
- function makeDeepseekProvider(model) {
207
- const apiKey = $private.DEEPSEEK_API_KEY;
208
- if (!apiKey)
209
- throw new Error("DEEPSEEK_API_KEY env var is required for provider deepseek");
210
- return {
211
- name: "deepseek",
212
- model,
213
- async generateVariants(seed, n) {
214
- const res = await fetch("https://api.deepseek.com/chat/completions", {
215
- method: "POST",
216
- headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
217
- body: JSON.stringify({
218
- model,
219
- messages: [
220
- { role: "system", content: SYSTEM_PROMPT },
221
- { role: "user", content: buildUserPrompt(seed, n) },
222
- ],
223
- response_format: { type: "json_object" },
224
- max_tokens: 800,
225
- temperature: 0.7,
226
- }),
227
- signal: AbortSignal.timeout(60_000),
228
- });
229
- if (!res.ok)
230
- throw new Error(`DeepSeek HTTP ${res.status}: ${await res.text()}`);
231
- const data = (await res.json());
232
- const content = data.choices?.[0]?.message.content ?? "{}";
233
- return parseCandidates(content);
234
- },
235
- };
236
- }
237
- function makeAnthropicProvider(model) {
238
- const apiKey = $private.ANTHROPIC_API_KEY;
239
- if (!apiKey)
240
- throw new Error("ANTHROPIC_API_KEY env var is required for provider anthropic");
241
- return {
242
- name: "anthropic",
243
- model,
244
- async generateVariants(seed, n) {
245
- const res = await fetch("https://api.anthropic.com/v1/messages", {
246
- method: "POST",
247
- headers: {
248
- "x-api-key": apiKey,
249
- "anthropic-version": "2023-06-01",
250
- "Content-Type": "application/json",
251
- },
252
- body: JSON.stringify({
253
- model,
254
- max_tokens: 800,
255
- system: SYSTEM_PROMPT,
256
- messages: [{ role: "user", content: buildUserPrompt(seed, n) }],
257
- }),
258
- signal: AbortSignal.timeout(60_000),
259
- });
260
- if (!res.ok)
261
- throw new Error(`Anthropic HTTP ${res.status}: ${await res.text()}`);
262
- const data = (await res.json());
263
- const text = data.content?.find((c) => c.type === "text")?.text ?? "[]";
264
- return parseCandidates(text);
265
- },
266
- };
267
- }
268
- function parseCandidates(text) {
269
- // Strip markdown fences the model sometimes wraps around JSON
270
- const cleaned = text.replaceAll(/^```(?:json)?\n?|\n?```$/g, "").trim();
271
- const parsed = tryParsingJSON(cleaned);
272
- if (Array.isArray(parsed))
273
- return parsed;
274
- // Some providers wrap in {"variants": [...]} or {"candidates": [...]}
275
- if (typeof parsed === "object" && parsed !== null) {
276
- for (const key of ["variants", "candidates", "results"]) {
277
- const v = parsed[key];
278
- if (Array.isArray(v))
279
- return v;
280
- }
281
- }
282
- return [];
283
- }
284
- // ── Validator ─────────────────────────────────────────────────────────────
285
- function normalize(s) {
286
- return s.toLowerCase().replaceAll(/\s+/g, " ").trim();
287
- }
288
- /**
289
- * Components that are NEVER allowed to be dropped — keeps degenerate single-token candidates out.
290
- */
291
- const REQUIRED_COMPONENT_TAGS = new Set(["locality", "region", "street", "house_number", "venue"]);
292
- function validate(seed, candidate) {
293
- if (!candidate.raw || typeof candidate.raw !== "string")
294
- return false;
295
- if (candidate.raw.length > MAX_CANDIDATE_LENGTH)
296
- return false;
297
- if (/```|<\/?\w+>|^\s*\{/.test(candidate.raw))
298
- return false;
299
- const normRaw = normalize(candidate.raw);
300
- const dropped = new Set(candidate.dropped);
301
- // LLM cannot drop required components present in the seed.
302
- for (const tag of dropped) {
303
- if (REQUIRED_COMPONENT_TAGS.has(tag) && seed.components[tag])
304
- return false;
305
- }
306
- // Every kept component value must appear verbatim (post-normalization) in the candidate raw.
307
- let keptCount = 0;
308
- for (const [tag, value] of Object.entries(seed.components)) {
309
- if (dropped.has(tag))
310
- continue;
311
- if (!value)
312
- continue;
313
- if (!normRaw.includes(normalize(value)))
314
- return false;
315
- keptCount++;
316
- }
317
- // Reject degenerate single-component candidates ("VT", "Paris" alone).
318
- if (keptCount < 2)
319
- return false;
320
- return true;
321
- }
322
- // ── Main pipeline ─────────────────────────────────────────────────────────
323
- export async function expandGolden(options = {}, report) {
324
- const corpusPath = options.corpus ?? dataRootPath("corpus", "versioned", "v0.2.0", "corpus-v0.2.0", "test", "part-0000.parquet");
325
- const count = options.count ?? 100;
326
- const variants = options.variants ?? 5;
327
- const providerName = options.provider ?? "deepseek";
328
- const model = options.model ?? (providerName === "anthropic" ? "claude-haiku-4-5-20251001" : "deepseek-chat");
329
- const concurrencyLimit = options.concurrency ?? 4;
330
- const includeSources = options.includeSources ? new Set(options.includeSources.split(",").map((s) => s.trim())) : null;
331
- const ts = new Date().toISOString().replaceAll(/[:.]/g, "-").slice(0, 19);
332
- const outputPath = options.output ?? `data/eval/golden/candidates/expand-${ts}.jsonl`;
333
- const provider = providerName === "anthropic" ? makeAnthropicProvider(model) : makeDeepseekProvider(model);
334
- report?.(`provider: ${provider.name} model: ${provider.model}`);
335
- const seeds = await loadSeeds(corpusPath, count, includeSources, report);
336
- if (!seeds.length) {
337
- throw new Error("no seeds loaded — corpus path or filter is wrong");
338
- }
339
- await mkdir(dirname(outputPath), { recursive: true });
340
- const outRows = [];
341
- let kept = 0;
342
- let dropped = 0;
343
- let errored = 0;
344
- // Bounded-concurrency worker pool
345
- let cursor = 0;
346
- const workers = Array.from({ length: Math.min(concurrencyLimit, seeds.length) }, async () => {
347
- while (true) {
348
- const i = cursor++;
349
- if (i >= seeds.length)
350
- return;
351
- const seed = seeds[i];
352
- try {
353
- const candidates = await provider.generateVariants(seed, variants);
354
- for (const cand of candidates) {
355
- if (validate(seed, cand)) {
356
- const goldenCandidate = {
357
- raw: cand.raw,
358
- components: { ...seed.components },
359
- country: seed.country,
360
- source: `expand-golden:${provider.name}`,
361
- seed_source_id: seed.source_id,
362
- seed_source_adapter: seed.source,
363
- dropped_components: cand.dropped ?? [],
364
- provenance: { provider: provider.name, model: provider.model },
365
- };
366
- // Remove dropped components from the components map
367
- for (const tag of goldenCandidate.dropped_components) {
368
- // oxlint-disable-next-line typescript/no-dynamic-delete -- removing one key from a plain record; the object is not on a hot path
369
- delete goldenCandidate.components[tag];
370
- }
371
- outRows.push(goldenCandidate);
372
- kept++;
373
- }
374
- else {
375
- dropped++;
376
- }
377
- }
378
- }
379
- catch (error) {
380
- errored++;
381
- report?.(` ✗ seed ${seed.source_id}: ${error.message}`);
382
- }
383
- if ((i + 1) % 10 === 0) {
384
- report?.(` progress: ${i + 1}/${seeds.length} kept=${kept} dropped=${dropped} errored=${errored}`);
385
- }
386
- }
387
- });
388
- await Promise.all(workers);
389
- {
390
- await using out = createNewlineWriter(outputPath);
391
- for (const row of outRows) {
392
- await out.write(JSON.stringify(row));
393
- }
394
- }
395
- report?.(`=== summary ===`);
396
- report?.(`seeds processed: ${seeds.length}`);
397
- report?.(`candidates kept: ${kept}`);
398
- report?.(`candidates dropped (validator): ${dropped}`);
399
- report?.(`seeds with errors: ${errored}`);
400
- report?.(`yield: ${seeds.length ? ((kept / (seeds.length * variants)) * 100).toFixed(1) : "0"}%`);
401
- report?.(`output: ${outputPath}`);
402
- return { seedsProcessed: seeds.length, kept, dropped, errored, outputPath };
403
- }
404
- //# sourceMappingURL=golden-expand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"golden-expand.js","sourceRoot":"","sources":["../../../src/tools/golden-expand.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"golden-promote.d.ts","sourceRoot":"","sources":["../../../src/tools/golden-promote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAqCH,MAAM,WAAW,YAAY;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAClH,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAyED,wBAAsB,aAAa,CAClC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgLvB"}
@@ -1,244 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Promote LLM-synthesized golden-set candidates into a versioned golden dir, with
7
- * human-typed-likelihood filters + dedup. Companion to `golden-expand.ts`.
8
- *
9
- * ## What it does
10
- *
11
- * 1. Reads a candidates JSONL from `data/eval/golden/candidates/`
12
- * 2. Reads the previous-version golden dir for forward-copy + dedup base
13
- * 3. Applies filters that drop candidates unlikely to be human-typed:
14
- *
15
- * - Components-glued-without-commas (5+ components but <2 separators → freeform jumble)
16
- * - Postcode-at-start with many other components (US/UK conventions put postcode last; FR puts it
17
- * before locality only)
18
- * - Suspicious-token signals (unmatched brackets, control chars, etc.)
19
- * 4. Dedupes by normalized raw (case-insensitive, whitespace-collapsed)
20
- * 5. Splits by country (US/FR/other) and writes `data/eval/golden/v<X.Y.Z>/{us,fr,other}.jsonl`
21
- * 6. Forward-copies the prior version's adversarial.jsonl + README as-is
22
- * 7. Writes MANIFEST.json with sha256 of each output file
23
- *
24
- * ## Usage
25
- *
26
- * ```sh
27
- * mailwoman corpus golden promote \
28
- * --input data/eval/golden/candidates/expand-20260518-162627.jsonl \
29
- * --bump-to v0.1.1 \
30
- * --prior v0.1.0
31
- * ```
32
- */
33
- import { copyFileSync, existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
34
- import { join } from "node:path";
35
- import { sha256File } from "@mailwoman/core/utils";
36
- import { createNewlineWriter, JSONSpliterator } from "spliterator";
37
- // ── Types ──────────────────────────────────────────────────────────────────
38
- /**
39
- * Components a candidate needs before it is rich enough to be worth a golden-set slot.
40
- */
41
- const MIN_GOLDEN_COMPONENTS = 5;
42
- /**
43
- * Components an existing entry must still carry to survive promotion.
44
- */
45
- const MIN_PROMOTABLE_COMPONENTS = 4;
46
- /**
47
- * Quote-delimited segments above which the raw line is malformed rather than merely quoted.
48
- */
49
- const MAX_QUOTE_SEGMENTS = 3;
50
- // ── Filters ───────────────────────────────────────────────────────────────
51
- function normalize(s) {
52
- return s.toLowerCase().replaceAll(/\s+/g, " ").trim();
53
- }
54
- /**
55
- * Heuristic: an address with 5+ components but fewer than 2 separators (commas/newlines/dashes) is most likely glued
56
- * together rather than human-typed.
57
- */
58
- function isComponentsGlued(entry) {
59
- const componentCount = Object.keys(entry.components).length;
60
- if (componentCount < MIN_GOLDEN_COMPONENTS)
61
- return false;
62
- const separators = (entry.raw.match(/[,\n;]/g) ?? []).length;
63
- return separators < 2;
64
- }
65
- /**
66
- * Heuristic: in US/UK conventions, postcode goes at the END of the address. If postcode appears in the first third of a
67
- * multi-component raw AND there are 4+ components, the LLM probably over-aggressively reordered. FR is exempt (postcode
68
- * often precedes locality there).
69
- */
70
- function isPostcodeBadlyLeading(entry) {
71
- if (Object.keys(entry.components).length < MIN_PROMOTABLE_COMPONENTS)
72
- return false;
73
- if (entry.country === "FR" || entry.country === "France")
74
- return false;
75
- const postcode = entry.components.postcode;
76
- if (!postcode)
77
- return false;
78
- const postcodeIdx = entry.raw.indexOf(postcode);
79
- if (postcodeIdx === -1)
80
- return false;
81
- return postcodeIdx < entry.raw.length / 3;
82
- }
83
- /**
84
- * Heuristic: catch-all for visually-bad outputs — unmatched brackets, control chars, suspicious punctuation that
85
- * suggests the LLM emitted markup instead of an address.
86
- */
87
- function isSuspicious(entry) {
88
- const raw = entry.raw;
89
- // eslint-disable-next-line no-control-regex
90
- if (/[\u0000-\u001F\u007F]/.test(raw))
91
- return true;
92
- const openBrackets = (raw.match(/[[({<]/g) ?? []).length;
93
- const closeBrackets = (raw.match(/[\])}>]/g) ?? []).length;
94
- if (openBrackets !== closeBrackets)
95
- return true;
96
- if (raw.split('"').length > MAX_QUOTE_SEGMENTS)
97
- return true;
98
- // too many quote marks
99
- return false;
100
- }
101
- // ── IO ─────────────────────────────────────────────────────────────────────
102
- /**
103
- * Read a JSONL, tolerating a missing file (returns `[]`) — prior golden dirs may lack a bucket.
104
- */
105
- async function readJSONLIfPresent(path) {
106
- if (!existsSync(path))
107
- return [];
108
- return Array.fromAsync(JSONSpliterator.fromAsync(path));
109
- }
110
- // ── Main ───────────────────────────────────────────────────────────────────
111
- export async function promoteGolden(options, report) {
112
- const prior = options.prior ?? "v0.1.0";
113
- const goldenRoot = options.goldenRoot ?? "data/eval/golden";
114
- const applyFilters = !options.noFilters;
115
- const dryRun = options.dryRun ?? false;
116
- report?.(`reading candidates: ${options.input}`);
117
- const candidates = await readJSONLIfPresent(options.input);
118
- report?.(` ${candidates.length} candidates loaded`);
119
- // Forward-copy base: existing entries from the prior golden version go forward verbatim,
120
- // and we dedupe new candidates against them so v_new = v_old ∪ accepted_candidates.
121
- const priorDir = join(goldenRoot, prior);
122
- const priorEntries = [];
123
- const seenNormalized = new Set();
124
- if (existsSync(priorDir)) {
125
- for (const f of readdirSync(priorDir).filter((n) => n.endsWith(".jsonl"))) {
126
- const country = f.replace(".jsonl", "").toUpperCase();
127
- const entries = await readJSONLIfPresent(join(priorDir, f));
128
- priorEntries.push({ country, entries });
129
- for (const e of entries) {
130
- seenNormalized.add(normalize(e.raw));
131
- }
132
- report?.(` prior ${country}: ${entries.length} entries (forward-copy base)`);
133
- }
134
- }
135
- else {
136
- report?.(` ⚠ prior dir ${priorDir} not found — starting fresh`);
137
- }
138
- // Filter pass
139
- const stats = {
140
- candidatesIn: candidates.length,
141
- filteredOut: { glued: 0, postcodeLeading: 0, suspicious: 0, duplicate: 0, forwardDup: 0 },
142
- kept: 0,
143
- perCountry: {},
144
- };
145
- const accepted = [];
146
- const seenInBatch = new Set();
147
- for (const cand of candidates) {
148
- const norm = normalize(cand.raw);
149
- // Dedup pass 1: against prior versioned golden
150
- if (seenNormalized.has(norm)) {
151
- stats.filteredOut.forwardDup++;
152
- continue;
153
- }
154
- // Dedup pass 2: against this batch
155
- if (seenInBatch.has(norm)) {
156
- stats.filteredOut.duplicate++;
157
- continue;
158
- }
159
- if (applyFilters) {
160
- if (isComponentsGlued(cand)) {
161
- stats.filteredOut.glued++;
162
- continue;
163
- }
164
- if (isPostcodeBadlyLeading(cand)) {
165
- stats.filteredOut.postcodeLeading++;
166
- continue;
167
- }
168
- if (isSuspicious(cand)) {
169
- stats.filteredOut.suspicious++;
170
- continue;
171
- }
172
- }
173
- accepted.push(cand);
174
- seenInBatch.add(norm);
175
- stats.kept++;
176
- const country = cand.country || "OTHER";
177
- stats.perCountry[country] = (stats.perCountry[country] ?? 0) + 1;
178
- }
179
- // Bucket per country, including forward-copied entries
180
- const buckets = new Map();
181
- for (const { country, entries } of priorEntries) {
182
- // Existing files keyed by filename uppercase (us.jsonl → US, adversarial.jsonl → ADVERSARIAL)
183
- buckets.set(country, [...entries]);
184
- }
185
- for (const cand of accepted) {
186
- const key = (cand.country || "OTHER").toUpperCase();
187
- if (!buckets.has(key)) {
188
- buckets.set(key, []);
189
- }
190
- buckets.get(key).push(cand);
191
- }
192
- // Output
193
- const outDir = join(goldenRoot, options.bumpTo);
194
- report?.(`=== plan ===`);
195
- report?.(`output dir: ${outDir}${dryRun ? " (dry-run)" : ""}`);
196
- for (const [key, entries] of buckets) {
197
- report?.(` ${key.toLowerCase()}.jsonl: ${entries.length} entries`);
198
- }
199
- report?.(`=== filter stats ===`);
200
- report?.(`candidates in: ${stats.candidatesIn}`);
201
- report?.(` filtered (glued): ${stats.filteredOut.glued}`);
202
- report?.(` filtered (postcode-lead): ${stats.filteredOut.postcodeLeading}`);
203
- report?.(` filtered (suspicious): ${stats.filteredOut.suspicious}`);
204
- report?.(` filtered (dup-in-batch): ${stats.filteredOut.duplicate}`);
205
- report?.(` filtered (dup-vs-prior): ${stats.filteredOut.forwardDup}`);
206
- report?.(` kept: ${stats.kept}`);
207
- report?.(`per-country (kept):`);
208
- for (const [c, n] of Object.entries(stats.perCountry).toSorted((a, b) => b[1] - a[1])) {
209
- report?.(` ${c}: ${n}`);
210
- }
211
- if (dryRun) {
212
- report?.(`(dry-run: no files written)`);
213
- return stats;
214
- }
215
- mkdirSync(outDir, { recursive: true });
216
- const manifest = {
217
- promoted_at: new Date().toISOString(),
218
- from: options.input,
219
- from_sha256: await sha256File(options.input),
220
- files: {},
221
- };
222
- for (const [key, entries] of buckets) {
223
- const filename = `${key.toLowerCase()}.jsonl`;
224
- const path = join(outDir, filename);
225
- {
226
- await using out = createNewlineWriter(path);
227
- for (const entry of entries) {
228
- await out.write(JSON.stringify(entry));
229
- }
230
- }
231
- manifest.files[filename] = { entries: entries.length, sha256: await sha256File(path) };
232
- }
233
- // Forward-copy non-.jsonl files (README.md, etc.) from prior
234
- if (existsSync(priorDir)) {
235
- for (const f of readdirSync(priorDir).filter((n) => !n.endsWith(".jsonl"))) {
236
- copyFileSync(join(priorDir, f), join(outDir, f));
237
- report?.(` forward-copied: ${f}`);
238
- }
239
- }
240
- writeFileSync(join(outDir, "MANIFEST.json"), JSON.stringify(manifest, null, 2) + "\n");
241
- report?.(`✓ promoted to ${outDir}`);
242
- return stats;
243
- }
244
- //# sourceMappingURL=golden-promote.js.map