@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 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACrD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAEjD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC/C;;OAEG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAEzB;;OAEG;IACH,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;IAE3B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,YAAY,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;CACvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -1,93 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Alignment: turn a `CanonicalRow` (raw + components) into a `LabeledRow` (raw + tokens + BIO
7
- * labels) or a `QuarantinedRow` (raw + reason) per the Phase 1 plan.
8
- *
9
- * Pipeline:
10
- *
11
- * 1. For each `(tag, value)` in `components`, find the value's character span in `raw`. First try a
12
- * verbatim substring match (case-insensitive, whitespace-collapsed). If that fails, fall
13
- * back to fuzzy match via `fastest-levenshtein`, with a tunable edit distance threshold.
14
- * 2. If any component cannot be located, reject the row with a human-readable reason and send it to
15
- * the quarantine pile (`reason: "component-not-found:<tag>"` or
16
- * `"edit-distance-exceeded:<tag>:<dist>"`).
17
- * 3. Tokenize `raw` with the supplied `Tokenizer` (defaults to the whitespace tokenizer).
18
- * 4. For each token: walk the list of component spans, pick the one whose span contains the token's
19
- * character range. First token in a component span → `B-<tag>`; subsequent tokens →
20
- * `I-<tag>`; no overlap → `O`.
21
- * 5. Emit the located char spans verbatim as `span_starts[]` / `span_ends[]` / `span_tags[]` (the
22
- * v0.5.0 char-offset format, #519). The token quantization in step 4 is the part the v0.5.0
23
- * rebuild deletes; during the transition both representations ride on every labeled row.
24
- *
25
- * Structural invariants the function preserves (the span ones loudly — a violation throws rather
26
- * than quarantines, because it indicates a bug here, not bad source data):
27
- *
28
- * - `tokens.length === labels.length` always.
29
- * - Each component contributes at most one contiguous BIO run (no `B-tag … O … I-tag` gaps). This is
30
- * enforced by greedy first-match span assignment + ordered token iteration.
31
- * - The span triple is sorted ascending by start and non-overlapping.
32
- * - `raw` is NFC-normalized (asserted per row; a non-NFC raw makes char offsets ambiguous downstream
33
- * — NFD `é` occupies two code units where NFC `é` occupies one — and silently so).
34
- */
35
- import type { ComponentTag } from "@mailwoman/core/types";
36
- import type { CanonicalRow, LabeledRow, QuarantinedRow } from "@mailwoman/corpus/types";
37
- import { type Tokenizer } from "./tokenize.ts";
38
- /**
39
- * Options for `alignRow`.
40
- */
41
- export interface AlignOptions {
42
- /**
43
- * Tokenizer to use. Defaults to `whitespaceTokenizer()`.
44
- */
45
- tokenizer?: Tokenizer;
46
- /**
47
- * Max Levenshtein edit distance to accept when a verbatim substring match fails. Set `0` to require verbatim matches
48
- * only. Default `2`.
49
- *
50
- * Distance is computed against same-length windows in `raw`, so the threshold scales naturally with the component
51
- * value length.
52
- */
53
- maxEditDistance?: number;
54
- /**
55
- * Case-insensitive comparison for substring search. Default `true`. The retained span in `raw` is the original case;
56
- * only matching is case-insensitive.
57
- */
58
- caseInsensitive?: boolean;
59
- }
60
- /**
61
- * Either a successful labeled row or a quarantined one.
62
- */
63
- export type AlignmentResult = {
64
- kind: "labeled";
65
- row: LabeledRow;
66
- } | {
67
- kind: "quarantined";
68
- row: QuarantinedRow;
69
- };
70
- /**
71
- * One located char-offset label span over a row's `raw` ([start, end) in UTF-16 code units). The element type behind
72
- * the parallel `span_starts[]`/`span_ends[]`/`span_tags[]` triple on `LabeledRow` (#519).
73
- */
74
- export interface ComponentSpan {
75
- tag: ComponentTag;
76
- start: number;
77
- end: number;
78
- }
79
- /**
80
- * Align a single row.
81
- */
82
- export declare function alignRow(row: CanonicalRow, opts?: AlignOptions): AlignmentResult;
83
- /**
84
- * Enforce the #519 span-triple invariants — in-bounds, sorted ascending by start, non-overlapping — loudly.
85
- *
86
- * For `alignRow`: `claimed`-span bookkeeping in `locateSpan` already makes overlap impossible and the caller sorts, so
87
- * a violation here is a bug in this file, not bad source data: throw (naming the row) rather than quarantine, so the
88
- * corruption can't ride into a corpus. Exported for every OTHER span producer (`composeAdversarialRow`'s offset
89
- * arithmetic, future synthesis paths) — any code that emits the triple without going through `alignRow` must pass its
90
- * output through this.
91
- */
92
- export declare function assertSpanInvariants(spans: readonly ComponentSpan[], row: Pick<CanonicalRow, "raw" | "source" | "source_id">): void;
93
- //# sourceMappingURL=align.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/utils/align.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGvF,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAEnF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,CAAA;AAEjH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,YAAY,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,GAAE,YAAiB,GAAG,eAAe,CAsFpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC,GACrD,IAAI,CA4BN"}
@@ -1,234 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Alignment: turn a `CanonicalRow` (raw + components) into a `LabeledRow` (raw + tokens + BIO
7
- * labels) or a `QuarantinedRow` (raw + reason) per the Phase 1 plan.
8
- *
9
- * Pipeline:
10
- *
11
- * 1. For each `(tag, value)` in `components`, find the value's character span in `raw`. First try a
12
- * verbatim substring match (case-insensitive, whitespace-collapsed). If that fails, fall
13
- * back to fuzzy match via `fastest-levenshtein`, with a tunable edit distance threshold.
14
- * 2. If any component cannot be located, reject the row with a human-readable reason and send it to
15
- * the quarantine pile (`reason: "component-not-found:<tag>"` or
16
- * `"edit-distance-exceeded:<tag>:<dist>"`).
17
- * 3. Tokenize `raw` with the supplied `Tokenizer` (defaults to the whitespace tokenizer).
18
- * 4. For each token: walk the list of component spans, pick the one whose span contains the token's
19
- * character range. First token in a component span → `B-<tag>`; subsequent tokens →
20
- * `I-<tag>`; no overlap → `O`.
21
- * 5. Emit the located char spans verbatim as `span_starts[]` / `span_ends[]` / `span_tags[]` (the
22
- * v0.5.0 char-offset format, #519). The token quantization in step 4 is the part the v0.5.0
23
- * rebuild deletes; during the transition both representations ride on every labeled row.
24
- *
25
- * Structural invariants the function preserves (the span ones loudly — a violation throws rather
26
- * than quarantines, because it indicates a bug here, not bad source data):
27
- *
28
- * - `tokens.length === labels.length` always.
29
- * - Each component contributes at most one contiguous BIO run (no `B-tag … O … I-tag` gaps). This is
30
- * enforced by greedy first-match span assignment + ordered token iteration.
31
- * - The span triple is sorted ascending by start and non-overlapping.
32
- * - `raw` is NFC-normalized (asserted per row; a non-NFC raw makes char offsets ambiguous downstream
33
- * — NFD `é` occupies two code units where NFC `é` occupies one — and silently so).
34
- */
35
- import { distance as levenshteinDistance } from "fastest-levenshtein";
36
- import { whitespaceTokenizer } from "./tokenize.js";
37
- /**
38
- * Align a single row.
39
- */
40
- export function alignRow(row, opts = {}) {
41
- const tokenizer = opts.tokenizer ?? whitespaceTokenizer();
42
- const maxEditDistance = opts.maxEditDistance ?? 2;
43
- const caseInsensitive = opts.caseInsensitive ?? true;
44
- if (!row.raw) {
45
- return { kind: "quarantined", row: { row, reason: "raw-empty" } };
46
- }
47
- // #519 NFC handling — relaxed from a hard throw to normalization (2026-06-12, DeepSeek-validated):
48
- // one non-NFC row (e.g. a non-Latin name variant like "দক্ষিণ কোরিয়া") must not crash a multi-hour
49
- // build. Normalize `raw` AND every component value to NFC, compute spans over the NFC raw, and
50
- // store the NFC raw — preserving the #519 single-normalization-form principle while keeping the row.
51
- const raw = row.raw.normalize("NFC");
52
- const components = { ...row.components };
53
- for (const key of Object.keys(components)) {
54
- const v = components[key];
55
- if (typeof v === "string") {
56
- components[key] = v.normalize("NFC");
57
- }
58
- }
59
- const componentSpans = [];
60
- const claimed = [];
61
- const haystack = caseInsensitive ? raw.toLowerCase() : raw;
62
- // Longest value first: a short component must not claim a word that a longer, more specific
63
- // component owns ("Alaska Regional Dr, Alaska" — region "Alaska" stealing the street's first
64
- // word quarantined the street; pilot2's residual class). Emit order is unaffected — spans are
65
- // re-sorted by start below.
66
- const entries = Object.entries(components).toSorted((a, b) => (b[1]?.length ?? 0) - (a[1]?.length ?? 0));
67
- for (const [tag, value] of entries) {
68
- if (!value)
69
- continue;
70
- const needle = caseInsensitive ? value.toLowerCase() : value;
71
- const span = locateSpan({ haystack, needle, raw, claimed, maxEditDistance });
72
- if (!span) {
73
- return {
74
- kind: "quarantined",
75
- row: { row, reason: `component-not-found:${tag}` },
76
- };
77
- }
78
- // Defensive bounds quarantine (2026-06-12): locateSpan's fuzzy/boundary logic can over-run the
79
- // raw by a code unit on some non-Latin / combining-mark strings (e.g. Bengali name variants),
80
- // yielding a span past the end. An out-of-bounds offset can never be a valid char span —
81
- // quarantine the row rather than crash assertSpanInvariants and take down a multi-hour build.
82
- // (If this class proves large in the quarantine report, locateSpan's boundary logic needs a
83
- // combining-mark fix to KEEP these non-Latin rows.)
84
- if (span.start < 0 || span.end > raw.length || span.start >= span.end) {
85
- return {
86
- kind: "quarantined",
87
- row: { row, reason: `span-out-of-bounds:${tag}` },
88
- };
89
- }
90
- componentSpans.push({ tag, start: span.start, end: span.end });
91
- claimed.push([span.start, span.end]);
92
- }
93
- componentSpans.sort((a, b) => a.start - b.start);
94
- assertSpanInvariants(componentSpans, { ...row, raw });
95
- const tokens = tokenizer.tokenize(raw);
96
- const labels = labelTokens(tokens, componentSpans);
97
- const labeled = {
98
- ...row,
99
- raw,
100
- components,
101
- tokens: tokens.map((t) => t.text),
102
- labels,
103
- // The v0.5.0 char-offset triple (#519): the located spans, emitted verbatim. The token
104
- // quantization above is what the rebuild deletes; both ride during the transition.
105
- span_starts: componentSpans.map((s) => s.start),
106
- span_ends: componentSpans.map((s) => s.end),
107
- span_tags: componentSpans.map((s) => s.tag),
108
- };
109
- return { kind: "labeled", row: labeled };
110
- }
111
- /**
112
- * Enforce the #519 span-triple invariants — in-bounds, sorted ascending by start, non-overlapping — loudly.
113
- *
114
- * For `alignRow`: `claimed`-span bookkeeping in `locateSpan` already makes overlap impossible and the caller sorts, so
115
- * a violation here is a bug in this file, not bad source data: throw (naming the row) rather than quarantine, so the
116
- * corruption can't ride into a corpus. Exported for every OTHER span producer (`composeAdversarialRow`'s offset
117
- * arithmetic, future synthesis paths) — any code that emits the triple without going through `alignRow` must pass its
118
- * output through this.
119
- */
120
- export function assertSpanInvariants(spans, row) {
121
- for (let i = 0; i < spans.length; i++) {
122
- const s = spans[i];
123
- if (!(s.start >= 0 && s.start < s.end && s.end <= row.raw.length)) {
124
- throw new Error(`alignRow: span out of bounds (source=${row.source}, source_id=${row.source_id}): ` +
125
- `${s.tag}@[${s.start}, ${s.end}) over raw of length ${row.raw.length}`);
126
- }
127
- if (i === 0)
128
- continue;
129
- const prev = spans[i - 1];
130
- if (s.start < prev.start) {
131
- throw new Error(`alignRow: spans not sorted (source=${row.source}, source_id=${row.source_id}): ` +
132
- `${prev.tag}@[${prev.start}, ${prev.end}) precedes ${s.tag}@[${s.start}, ${s.end})`);
133
- }
134
- if (s.start < prev.end) {
135
- throw new Error(`alignRow: spans overlap (source=${row.source}, source_id=${row.source_id}): ` +
136
- `${prev.tag}@[${prev.start}, ${prev.end}) overlaps ${s.tag}@[${s.start}, ${s.end})`);
137
- }
138
- }
139
- }
140
- /**
141
- * Locate `needle` in `haystack` (both already normalized for case if requested), preferring verbatim substring match.
142
- * Falls back to a fuzzy window scan when verbatim fails and `maxEditDistance > 0`. Already-claimed spans are skipped so
143
- * two components don't grab overlapping ranges.
144
- *
145
- * Returns the span in the original `raw` (not the lower-cased `haystack`).
146
- */
147
- function locateSpan(args) {
148
- const { haystack, needle, claimed, maxEditDistance } = args;
149
- if (!needle.length)
150
- return undefined;
151
- // Pass 1: verbatim substring. Word-boundary-aligned matches are PREFERRED over intra-word ones
152
- // — leftmost-substring alone let a short value claim the inside of an earlier word (region "AK"
153
- // matched inside "Umak"/"Lake", scrambling every later span; caught by the v0.5.0 pilot build).
154
- // Intra-word matches stay allowed as the fallback because they are essential for affix
155
- // supervision (street_suffix "straße" inside "Hauptstraße" has no boundary-aligned occurrence —
156
- // sub-word spans are the point of the char-offset format).
157
- let intraWord;
158
- let from = 0;
159
- while (true) {
160
- const idx = haystack.indexOf(needle, from);
161
- if (idx === -1)
162
- break;
163
- const end = idx + needle.length;
164
- if (!overlapsClaimed(idx, end, claimed)) {
165
- if (isBoundaryAligned(haystack, idx, end))
166
- return { start: idx, end };
167
- intraWord ??= { start: idx, end };
168
- }
169
- from = idx + 1;
170
- }
171
- if (intraWord)
172
- return intraWord;
173
- if (maxEditDistance <= 0)
174
- return undefined;
175
- // Pass 2: fuzzy sliding-window. Walk over candidate windows of length `needle.length`
176
- // across haystack, compute Levenshtein, pick the leftmost window under the threshold.
177
- const len = needle.length;
178
- for (let i = 0; i + len <= haystack.length; i++) {
179
- if (overlapsClaimed(i, i + len, claimed))
180
- continue;
181
- const window = haystack.slice(i, i + len);
182
- if (window === needle)
183
- return { start: i, end: i + len }; // covered by pass 1, but cheap
184
- const d = levenshteinDistance(window, needle);
185
- if (d <= maxEditDistance)
186
- return { start: i, end: i + len };
187
- }
188
- return undefined;
189
- }
190
- const WORD_CHAR = /[\p{L}\p{N}]/u;
191
- /**
192
- * Both needle edges sit on word boundaries of the haystack (string edges count as boundaries).
193
- */
194
- function isBoundaryAligned(haystack, start, end) {
195
- const before = start === 0 || !WORD_CHAR.test(haystack[start - 1]);
196
- const after = end === haystack.length || !WORD_CHAR.test(haystack[end]);
197
- return before && after;
198
- }
199
- function overlapsClaimed(start, end, claimed) {
200
- for (const [a, b] of claimed) {
201
- if (start < b && a < end)
202
- return true;
203
- }
204
- return false;
205
- }
206
- /**
207
- * Assign BIO labels to tokens given the component spans. Components MUST be sorted by start offset. For each token,
208
- * find the first component span that contains the token's start offset; if the token is the first one inside that span
209
- * emit `B-<tag>`, else `I-<tag>`.
210
- */
211
- function labelTokens(tokens, spans) {
212
- const out = [];
213
- const seenSpan = new Set();
214
- // index into `spans`
215
- for (const token of tokens) {
216
- let assigned = "O";
217
- for (let i = 0; i < spans.length; i++) {
218
- const s = spans[i];
219
- if (token.start >= s.start && token.end <= s.end) {
220
- if (!seenSpan.has(i)) {
221
- assigned = `B-${s.tag}`;
222
- seenSpan.add(i);
223
- }
224
- else {
225
- assigned = `I-${s.tag}`;
226
- }
227
- break;
228
- }
229
- }
230
- out.push(assigned);
231
- }
232
- return out;
233
- }
234
- //# sourceMappingURL=align.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"align.js","sourceRoot":"","sources":["../../../src/utils/align.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Golden eval-set validator (Phase 1 task #9 in the plan).
7
- *
8
- * The golden set is hand-labeled ground truth for the neural classifier. Each entry must carry
9
- * components whose surface forms actually occur in `raw` — otherwise the entry will silently rot
10
- * the eval signal. This module:
11
- *
12
- * - Defines `GoldenEntry` (schema check).
13
- * - Loads `.jsonl` files (one entry per line).
14
- * - Validates every entry: schema shape, ComponentTag membership, reachability of each component in
15
- * `raw` via the same `reconcileComponents` helper alignment uses.
16
- * - Returns a structured report of per-entry errors so the CLI / CI surface can act on it.
17
- *
18
- * The 1000-entry target (500 US + 500 FR) is a human task. This module catches the regressions that
19
- * creep in over time as new entries land.
20
- */
21
- import { type ComponentTag } from "@mailwoman/core/types";
22
- /**
23
- * One entry in a golden `.jsonl` file.
24
- */
25
- export interface GoldenEntry {
26
- raw: string;
27
- components: Partial<Record<ComponentTag, string>>;
28
- country: string;
29
- source: "golden";
30
- notes?: string;
31
- }
32
- /**
33
- * Per-entry validation failure.
34
- */
35
- export interface GoldenIssue {
36
- file: string;
37
- line: number;
38
- reason: string;
39
- }
40
- /**
41
- * Aggregate report from `validateGoldenDir`.
42
- */
43
- export interface GoldenReport {
44
- entries: number;
45
- files: number;
46
- issues: GoldenIssue[];
47
- }
48
- /**
49
- * Parse a single JSONL line into a `GoldenEntry`. Throws on schema violations.
50
- */
51
- export declare function parseGoldenLine(line: string): GoldenEntry;
52
- /**
53
- * Check that every component in `entry` appears in `entry.raw` (reconciliation-equivalent).
54
- */
55
- export declare function unreachableComponents(entry: GoldenEntry): ComponentTag[];
56
- /**
57
- * Validate one `.jsonl` file end-to-end, returning a list of issues.
58
- *
59
- * Parses line by line over `TextSpliterator` rather than `JSONSpliterator`: every issue this returns carries the LINE
60
- * NUMBER it was found on, and a malformed line has to be REPORTED rather than thrown. `JSONSpliterator` parses each row
61
- * for you and throws on the first bad one — correct for consumers that want the rows, wrong for the validator whose
62
- * whole job is locating the bad ones.
63
- */
64
- export declare function validateGoldenFile(path: string): Promise<GoldenIssue[]>;
65
- /**
66
- * Validate every `.jsonl` in a golden directory.
67
- */
68
- export declare function validateGoldenDir(dir: string): Promise<GoldenReport>;
69
- //# sourceMappingURL=golden.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"golden.d.ts","sourceRoot":"","sources":["../../../src/utils/golden.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAOzE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,QAAQ,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,EAAE,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAmCzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,EAAE,CAWxE;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6B7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkB1E"}
@@ -1,127 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Golden eval-set validator (Phase 1 task #9 in the plan).
7
- *
8
- * The golden set is hand-labeled ground truth for the neural classifier. Each entry must carry
9
- * components whose surface forms actually occur in `raw` — otherwise the entry will silently rot
10
- * the eval signal. This module:
11
- *
12
- * - Defines `GoldenEntry` (schema check).
13
- * - Loads `.jsonl` files (one entry per line).
14
- * - Validates every entry: schema shape, ComponentTag membership, reachability of each component in
15
- * `raw` via the same `reconcileComponents` helper alignment uses.
16
- * - Returns a structured report of per-entry errors so the CLI / CI surface can act on it.
17
- *
18
- * The 1000-entry target (500 US + 500 FR) is a human task. This module catches the regressions that
19
- * creep in over time as new entries land.
20
- */
21
- import { readdir } from "node:fs/promises";
22
- import { COMPONENT_TAGS } from "@mailwoman/core/types";
23
- import { reconcileComponents } from "@mailwoman/formatter";
24
- import { join } from "path-ts";
25
- import { TextSpliterator } from "spliterator";
26
- const TAG_SET = new Set(COMPONENT_TAGS);
27
- /**
28
- * Parse a single JSONL line into a `GoldenEntry`. Throws on schema violations.
29
- */
30
- export function parseGoldenLine(line) {
31
- // The throw IS the result: `validateGoldenFile` catches it and records the message against the line
32
- // number, so a tolerant parse would report a corrupt row as valid.
33
- // oxlint-disable-next-line no-restricted-properties
34
- const obj = JSON.parse(line);
35
- if (typeof obj.raw !== "string" || !obj.raw.length) {
36
- throw new Error("missing/empty raw");
37
- }
38
- if (typeof obj.country !== "string" || !/^[A-Z]{2}$/u.test(obj.country)) {
39
- throw new Error(`country must be ISO 3166-1 alpha-2 (got ${JSON.stringify(obj.country)})`);
40
- }
41
- if (obj.source !== "golden") {
42
- throw new Error(`source must be "golden" (got ${JSON.stringify(obj.source)})`);
43
- }
44
- const components = (obj.components ?? {});
45
- for (const [k, v] of Object.entries(components)) {
46
- if (!TAG_SET.has(k))
47
- throw new Error(`unknown ComponentTag: ${k}`);
48
- if (typeof v !== "string" || !v.length) {
49
- throw new Error(`components.${k} must be a non-empty string`);
50
- }
51
- }
52
- return {
53
- raw: obj.raw,
54
- components: components,
55
- country: obj.country,
56
- source: "golden",
57
- notes: typeof obj.notes === "string" ? obj.notes : undefined,
58
- };
59
- }
60
- /**
61
- * Check that every component in `entry` appears in `entry.raw` (reconciliation-equivalent).
62
- */
63
- export function unreachableComponents(entry) {
64
- const reconciled = reconcileComponents(entry.components, entry.raw);
65
- const missing = [];
66
- for (const tag of Object.keys(entry.components)) {
67
- if (!(tag in reconciled)) {
68
- missing.push(tag);
69
- }
70
- }
71
- return missing;
72
- }
73
- /**
74
- * Validate one `.jsonl` file end-to-end, returning a list of issues.
75
- *
76
- * Parses line by line over `TextSpliterator` rather than `JSONSpliterator`: every issue this returns carries the LINE
77
- * NUMBER it was found on, and a malformed line has to be REPORTED rather than thrown. `JSONSpliterator` parses each row
78
- * for you and throws on the first bad one — correct for consumers that want the rows, wrong for the validator whose
79
- * whole job is locating the bad ones.
80
- */
81
- export async function validateGoldenFile(path) {
82
- const issues = [];
83
- // Counted over EVERY row including blanks, so the number matches what an editor shows.
84
- let lineNumber = 0;
85
- for await (const raw of TextSpliterator.fromAsync(path, { skipEmpty: false })) {
86
- lineNumber++;
87
- const line = raw.trim();
88
- if (!line)
89
- continue;
90
- const i = lineNumber - 1;
91
- try {
92
- const entry = parseGoldenLine(line);
93
- const unreachable = unreachableComponents(entry);
94
- if (unreachable.length) {
95
- issues.push({
96
- file: path,
97
- line: i + 1,
98
- reason: `components not reachable in raw: ${unreachable.join(", ")}`,
99
- });
100
- }
101
- }
102
- catch (error) {
103
- issues.push({ file: path, line: i + 1, reason: error.message });
104
- }
105
- }
106
- return issues;
107
- }
108
- /**
109
- * Validate every `.jsonl` in a golden directory.
110
- */
111
- export async function validateGoldenDir(dir) {
112
- const files = (await readdir(dir)).filter((n) => n.endsWith(".jsonl")).toSorted();
113
- const issues = [];
114
- let entries = 0;
115
- for (const name of files) {
116
- const fullPath = join(dir, name);
117
- const fileIssues = await validateGoldenFile(fullPath);
118
- issues.push(...fileIssues);
119
- for await (const line of TextSpliterator.fromAsync(fullPath)) {
120
- if (line.trim()) {
121
- entries++;
122
- }
123
- }
124
- }
125
- return { entries, files: files.length, issues };
126
- }
127
- //# sourceMappingURL=golden.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"golden.js","sourceRoot":"","sources":["../../../src/utils/golden.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- */
6
- export * from "./align.ts";
7
- export * from "../build.ts";
8
- export * from "./golden.ts";
9
- export * from "./parquet.ts";
10
- export * from "./license.ts";
11
- export * from "./split.ts";
12
- export * from "./tokenize.ts";
13
- export * from "./wof-json.ts";
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA"}
@@ -1,14 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- */
6
- export * from "./align.js";
7
- export * from "../build.js";
8
- export * from "./golden.js";
9
- export * from "./parquet.js";
10
- export * from "./license.js";
11
- export * from "./split.js";
12
- export * from "./tokenize.js";
13
- export * from "./wof-json.js";
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../../src/utils/license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAmD,CAAA;AAEnF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAIjG"}
@@ -1,47 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Corpus licensing — the single source of truth for the training-data license policy (#26).
7
- *
8
- * Posture (operator, 2026-06-19): **exclusion is a deliberate act, not a silent default.** The
9
- * build INCLUDES every row an adapter yields (stamping its `license`); a build that needs a clean
10
- * license set — e.g. the proprietary `@mailwoman/neural-weights-*` weights, which must not
11
- * inherit a share-alike obligation — PURPOSELY excludes kinds via `buildCorpus({ excludeLicenses
12
- * })` (CLI `--exclude-licenses` / `--exclude-share-alike`). Nothing is dropped on a license
13
- * string unless the operator named it. This avoids the trap of silently dropping allowed data
14
- * mis-stamped with a conservative license (e.g. BAN, which is dual-licensed Licence Ouverte OR
15
- * ODbL — we elect Licence Ouverte; a default-deny on the old `ODbL` stamp would have wrongly
16
- * dropped 48M allowed rows).
17
- *
18
- * Tier reference (#26): A = PD/CC0 (allowed); B = CC-BY / Licence Ouverte (allowed WITH attribution
19
- * — the model card must carry it); C = share-alike (ODbL, CC-BY-SA, CC-SA) — exclude for a
20
- * proprietary-weights build via `--exclude-share-alike`.
21
- */
22
- /**
23
- * Licenses that require share-alike / create a copyleft obligation on derived works (Tier C). The
24
- * `--exclude-share-alike` convenience expands to this; `allowShareAlike: false` adapters also use it.
25
- */
26
- export const SHARE_ALIKE_PATTERN = /^ODbL|^Open Database License|^CC-BY-SA|^CC-SA/i;
27
- /**
28
- * Compile a `--exclude-licenses` spec (comma-separated, e.g. `"ODbL,CC-BY-SA"`) into anchored, case-insensitive prefix
29
- * patterns. Each entry matches a license string that STARTS with it, so `CC-BY-SA` catches `CC-BY-SA-3.0`,
30
- * `CC-BY-SA-4.0`, etc. Regex metacharacters are escaped — the spec is a literal license prefix, not a user-supplied
31
- * regex.
32
- */
33
- export function compileLicenseExcludes(spec) {
34
- return spec
35
- .split(",")
36
- .map((s) => s.trim())
37
- .filter(Boolean)
38
- .map((s) => new RegExp("^" + s.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&"), "i"));
39
- }
40
- /**
41
- * True iff `license` matches any of the exclude `patterns` (empty patterns → never excluded).
42
- */
43
- export function licenseExcluded(license, patterns) {
44
- const l = license ?? "";
45
- return patterns.some((p) => p.test(l));
46
- }
47
- //# sourceMappingURL=license.js.map