@mailwoman/corpus 9.1.0 → 9.2.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 (436) hide show
  1. package/README.md +2 -2
  2. package/data/PROVENANCE.md +13 -0
  3. package/data/reviewed-ve-postcode-tuples.json +74 -0
  4. package/out/src/adapters/ban/adapter.d.ts +1 -1
  5. package/out/src/adapters/ban/adapter.d.ts.map +1 -1
  6. package/out/src/adapters/ban/adapter.js +4 -3
  7. package/out/src/adapters/ban/adapter.js.map +1 -1
  8. package/out/src/adapters/fcc-bdc/adapter.d.ts +1 -1
  9. package/out/src/adapters/fcc-bdc/adapter.d.ts.map +1 -1
  10. package/out/src/adapters/fcc-bdc/adapter.js +2 -2
  11. package/out/src/adapters/fcc-bdc/adapter.js.map +1 -1
  12. package/out/src/adapters/geonames/adapter.d.ts +1 -1
  13. package/out/src/adapters/geonames/adapter.d.ts.map +1 -1
  14. package/out/src/adapters/geonames/adapter.js +1 -1
  15. package/out/src/adapters/geonames/adapter.js.map +1 -1
  16. package/out/src/adapters/geonames-postal/adapter.d.ts +1 -1
  17. package/out/src/adapters/geonames-postal/adapter.d.ts.map +1 -1
  18. package/out/src/adapters/geonames-postal/adapter.js +2 -2
  19. package/out/src/adapters/geonames-postal/adapter.js.map +1 -1
  20. package/out/src/adapters/gnaf/adapter.d.ts +1 -1
  21. package/out/src/adapters/gnaf/adapter.d.ts.map +1 -1
  22. package/out/src/adapters/gnaf/adapter.js +1 -1
  23. package/out/src/adapters/gnaf/adapter.js.map +1 -1
  24. package/out/src/adapters/index.d.ts +1 -1
  25. package/out/src/adapters/index.d.ts.map +1 -1
  26. package/out/src/adapters/index.js +1 -1
  27. package/out/src/adapters/index.js.map +1 -1
  28. package/out/src/adapters/openaddresses/adapter.d.ts +1 -1
  29. package/out/src/adapters/openaddresses/adapter.d.ts.map +1 -1
  30. package/out/src/adapters/openaddresses/adapter.js +2 -2
  31. package/out/src/adapters/openaddresses/adapter.js.map +1 -1
  32. package/out/src/adapters/overture/adapter.d.ts +1 -1
  33. package/out/src/adapters/overture/adapter.d.ts.map +1 -1
  34. package/out/src/adapters/overture/adapter.js +1 -1
  35. package/out/src/adapters/overture/adapter.js.map +1 -1
  36. package/out/src/adapters/state-hi-schools/adapter.d.ts +1 -1
  37. package/out/src/adapters/state-hi-schools/adapter.d.ts.map +1 -1
  38. package/out/src/adapters/state-hi-schools/adapter.js +6 -5
  39. package/out/src/adapters/state-hi-schools/adapter.js.map +1 -1
  40. package/out/src/adapters/state-ia-contractors/adapter.d.ts +1 -1
  41. package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +1 -1
  42. package/out/src/adapters/state-ia-contractors/adapter.js +11 -6
  43. package/out/src/adapters/state-ia-contractors/adapter.js.map +1 -1
  44. package/out/src/adapters/state-ny-notaries/adapter.d.ts +1 -1
  45. package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +1 -1
  46. package/out/src/adapters/state-ny-notaries/adapter.js +11 -17
  47. package/out/src/adapters/state-ny-notaries/adapter.js.map +1 -1
  48. package/out/src/adapters/state-tx-notaries/adapter.d.ts +1 -1
  49. package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +1 -1
  50. package/out/src/adapters/state-tx-notaries/adapter.js +11 -6
  51. package/out/src/adapters/state-tx-notaries/adapter.js.map +1 -1
  52. package/out/src/adapters/synth-po-box/adapter.d.ts +2 -2
  53. package/out/src/adapters/synth-po-box/adapter.d.ts.map +1 -1
  54. package/out/src/adapters/synth-po-box/adapter.js +2 -2
  55. package/out/src/adapters/synth-po-box/adapter.js.map +1 -1
  56. package/out/src/adapters/tiger/adapter.d.ts +1 -1
  57. package/out/src/adapters/tiger/adapter.d.ts.map +1 -1
  58. package/out/src/adapters/tiger/adapter.js +1 -1
  59. package/out/src/adapters/tiger/adapter.js.map +1 -1
  60. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +1 -1
  61. package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -1
  62. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +6 -5
  63. package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -1
  64. package/out/src/adapters/usgov-imls-pls/adapter.d.ts +1 -1
  65. package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +1 -1
  66. package/out/src/adapters/usgov-imls-pls/adapter.js +10 -6
  67. package/out/src/adapters/usgov-imls-pls/adapter.js.map +1 -1
  68. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +1 -1
  69. package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -1
  70. package/out/src/adapters/usgov-irs-bmf/adapter.js +5 -4
  71. package/out/src/adapters/usgov-irs-bmf/adapter.js.map +1 -1
  72. package/out/src/adapters/usgov-nad/adapter.d.ts +1 -1
  73. package/out/src/adapters/usgov-nad/adapter.d.ts.map +1 -1
  74. package/out/src/adapters/usgov-nad/adapter.js +7 -7
  75. package/out/src/adapters/usgov-nad/adapter.js.map +1 -1
  76. package/out/src/adapters/usgov-nppes/adapter.d.ts +1 -1
  77. package/out/src/adapters/usgov-nppes/adapter.d.ts.map +1 -1
  78. package/out/src/adapters/usgov-nppes/adapter.js +9 -9
  79. package/out/src/adapters/usgov-nppes/adapter.js.map +1 -1
  80. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts +1 -1
  81. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -1
  82. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +6 -5
  83. package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -1
  84. package/out/src/adapters/utils/index.d.ts +7 -1
  85. package/out/src/adapters/utils/index.d.ts.map +1 -1
  86. package/out/src/adapters/utils/index.js +10 -2
  87. package/out/src/adapters/utils/index.js.map +1 -1
  88. package/out/src/adapters/wof-admin-jp/adapter.d.ts +1 -1
  89. package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +1 -1
  90. package/out/src/adapters/wof-admin-jp/adapter.js +5 -5
  91. package/out/src/adapters/wof-admin-jp/adapter.js.map +1 -1
  92. package/out/src/adapters/wof-admin-json/adapter.d.ts +4 -15
  93. package/out/src/adapters/wof-admin-json/adapter.d.ts.map +1 -1
  94. package/out/src/adapters/wof-admin-json/adapter.js +11 -35
  95. package/out/src/adapters/wof-admin-json/adapter.js.map +1 -1
  96. package/out/src/adapters/wof-json-rows.d.ts +32 -0
  97. package/out/src/adapters/wof-json-rows.d.ts.map +1 -0
  98. package/out/src/adapters/wof-json-rows.js +45 -0
  99. package/out/src/adapters/wof-json-rows.js.map +1 -0
  100. package/out/src/adapters/wof-postalcode-json/adapter.d.ts +4 -9
  101. package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +1 -1
  102. package/out/src/adapters/wof-postalcode-json/adapter.js +12 -37
  103. package/out/src/adapters/wof-postalcode-json/adapter.js.map +1 -1
  104. package/out/src/build.d.ts +4 -3
  105. package/out/src/build.d.ts.map +1 -1
  106. package/out/src/build.js +7 -4
  107. package/out/src/build.js.map +1 -1
  108. package/out/src/index.d.ts +1 -1
  109. package/out/src/index.d.ts.map +1 -1
  110. package/out/src/index.js +1 -1
  111. package/out/src/index.js.map +1 -1
  112. package/out/src/parquet-wrapper/reader.d.ts.map +1 -1
  113. package/out/src/parquet-wrapper/reader.js +5 -0
  114. package/out/src/parquet-wrapper/reader.js.map +1 -1
  115. package/out/src/runner.d.ts +2 -2
  116. package/out/src/runner.d.ts.map +1 -1
  117. package/out/src/runner.js +1 -1
  118. package/out/src/runner.js.map +1 -1
  119. package/out/src/shard-recipes/anchor-absorption.d.ts.map +1 -1
  120. package/out/src/shard-recipes/anchor-absorption.js +4 -5
  121. package/out/src/shard-recipes/anchor-absorption.js.map +1 -1
  122. package/out/src/shard-recipes/bare-country.d.ts +25 -0
  123. package/out/src/shard-recipes/bare-country.d.ts.map +1 -0
  124. package/out/src/shard-recipes/bare-country.js +87 -0
  125. package/out/src/shard-recipes/bare-country.js.map +1 -0
  126. package/out/src/shard-recipes/boundary-stress.d.ts.map +1 -1
  127. package/out/src/shard-recipes/boundary-stress.js +2 -2
  128. package/out/src/shard-recipes/boundary-stress.js.map +1 -1
  129. package/out/src/shard-recipes/country-balanced.d.ts.map +1 -1
  130. package/out/src/shard-recipes/country-balanced.js +6 -5
  131. package/out/src/shard-recipes/country-balanced.js.map +1 -1
  132. package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +1 -1
  133. package/out/src/shard-recipes/cz-pcfirst-preposition.js +28 -10
  134. package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +1 -1
  135. package/out/src/shard-recipes/fr-admin-split.d.ts.map +1 -1
  136. package/out/src/shard-recipes/fr-admin-split.js +4 -3
  137. package/out/src/shard-recipes/fr-admin-split.js.map +1 -1
  138. package/out/src/shard-recipes/fr-bare-street.d.ts.map +1 -1
  139. package/out/src/shard-recipes/fr-bare-street.js +72 -11
  140. package/out/src/shard-recipes/fr-bare-street.js.map +1 -1
  141. package/out/src/shard-recipes/fr-lieudit.d.ts.map +1 -1
  142. package/out/src/shard-recipes/fr-lieudit.js +4 -3
  143. package/out/src/shard-recipes/fr-lieudit.js.map +1 -1
  144. package/out/src/shard-recipes/fr-order.d.ts.map +1 -1
  145. package/out/src/shard-recipes/fr-order.js +4 -3
  146. package/out/src/shard-recipes/fr-order.js.map +1 -1
  147. package/out/src/shard-recipes/german.d.ts.map +1 -1
  148. package/out/src/shard-recipes/german.js +3 -3
  149. package/out/src/shard-recipes/german.js.map +1 -1
  150. package/out/src/shard-recipes/house-venue.js +1 -1
  151. package/out/src/shard-recipes/house-venue.js.map +1 -1
  152. package/out/src/shard-recipes/index.d.ts.map +1 -1
  153. package/out/src/shard-recipes/index.js +6 -0
  154. package/out/src/shard-recipes/index.js.map +1 -1
  155. package/out/src/shard-recipes/intersection.d.ts.map +1 -1
  156. package/out/src/shard-recipes/intersection.js +3 -3
  157. package/out/src/shard-recipes/intersection.js.map +1 -1
  158. package/out/src/shard-recipes/locale.d.ts +1 -1
  159. package/out/src/shard-recipes/locale.d.ts.map +1 -1
  160. package/out/src/shard-recipes/locale.js +5 -4
  161. package/out/src/shard-recipes/locale.js.map +1 -1
  162. package/out/src/shard-recipes/no-street.js +1 -1
  163. package/out/src/shard-recipes/no-street.js.map +1 -1
  164. package/out/src/shard-recipes/po-box-cedex.d.ts.map +1 -1
  165. package/out/src/shard-recipes/po-box-cedex.js +2 -2
  166. package/out/src/shard-recipes/po-box-cedex.js.map +1 -1
  167. package/out/src/shard-recipes/po-box.d.ts.map +1 -1
  168. package/out/src/shard-recipes/po-box.js +1 -1
  169. package/out/src/shard-recipes/po-box.js.map +1 -1
  170. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts +47 -0
  171. package/out/src/shard-recipes/reviewed-postcode-tail.d.ts.map +1 -0
  172. package/out/src/shard-recipes/reviewed-postcode-tail.js +125 -0
  173. package/out/src/shard-recipes/reviewed-postcode-tail.js.map +1 -0
  174. package/out/src/shard-recipes/scaffold.d.ts +33 -4
  175. package/out/src/shard-recipes/scaffold.d.ts.map +1 -1
  176. package/out/src/shard-recipes/scaffold.js +5 -6
  177. package/out/src/shard-recipes/scaffold.js.map +1 -1
  178. package/out/src/shard-recipes/street-affix.d.ts.map +1 -1
  179. package/out/src/shard-recipes/street-affix.js +2 -2
  180. package/out/src/shard-recipes/street-affix.js.map +1 -1
  181. package/out/src/shard-recipes/street-bare.js +3 -3
  182. package/out/src/shard-recipes/street-bare.js.map +1 -1
  183. package/out/src/shard-recipes/street.js +2 -2
  184. package/out/src/shard-recipes/street.js.map +1 -1
  185. package/out/src/shard-recipes/sub-venue-sources.d.ts +2 -2
  186. package/out/src/shard-recipes/sub-venue-sources.d.ts.map +1 -1
  187. package/out/src/shard-recipes/sub-venue-sources.js +1 -1
  188. package/out/src/shard-recipes/sub-venue-sources.js.map +1 -1
  189. package/out/src/shard-recipes/sub-venue.d.ts +1 -1
  190. package/out/src/shard-recipes/sub-venue.d.ts.map +1 -1
  191. package/out/src/shard-recipes/sub-venue.js +6 -5
  192. package/out/src/shard-recipes/sub-venue.js.map +1 -1
  193. package/out/src/shard-recipes/trailing-region.d.ts +74 -0
  194. package/out/src/shard-recipes/trailing-region.d.ts.map +1 -0
  195. package/out/src/shard-recipes/trailing-region.js +157 -0
  196. package/out/src/shard-recipes/trailing-region.js.map +1 -0
  197. package/out/src/shard-recipes/unit.d.ts.map +1 -1
  198. package/out/src/shard-recipes/unit.js +2 -2
  199. package/out/src/shard-recipes/unit.js.map +1 -1
  200. package/out/src/synthesizers/boundary-stress.d.ts +1 -1
  201. package/out/src/synthesizers/boundary-stress.d.ts.map +1 -1
  202. package/out/src/synthesizers/german.d.ts +1 -1
  203. package/out/src/synthesizers/german.d.ts.map +1 -1
  204. package/out/src/synthesizers/german.js.map +1 -1
  205. package/out/src/synthesizers/house-venue.d.ts +1 -1
  206. package/out/src/synthesizers/house-venue.d.ts.map +1 -1
  207. package/out/src/synthesizers/house-venue.js +16 -2
  208. package/out/src/synthesizers/house-venue.js.map +1 -1
  209. package/out/src/synthesizers/intersection.d.ts +1 -1
  210. package/out/src/synthesizers/intersection.d.ts.map +1 -1
  211. package/out/src/synthesizers/no-street.d.ts +1 -1
  212. package/out/src/synthesizers/no-street.d.ts.map +1 -1
  213. package/out/src/synthesizers/po-box.d.ts +1 -1
  214. package/out/src/synthesizers/po-box.d.ts.map +1 -1
  215. package/out/src/synthesizers/street.d.ts +1 -1
  216. package/out/src/synthesizers/street.d.ts.map +1 -1
  217. package/out/src/synthesizers/street.js +3 -2
  218. package/out/src/synthesizers/street.js.map +1 -1
  219. package/out/src/synthesizers/utils.d.ts +1 -1
  220. package/out/src/synthesizers/utils.d.ts.map +1 -1
  221. package/out/src/synthesizers/utils.js +3 -2
  222. package/out/src/synthesizers/utils.js.map +1 -1
  223. package/out/src/tools/align-shard.d.ts.map +1 -1
  224. package/out/src/tools/align-shard.js +2 -2
  225. package/out/src/tools/align-shard.js.map +1 -1
  226. package/out/src/tools/fetch/ban.d.ts.map +1 -1
  227. package/out/src/tools/fetch/ban.js +2 -18
  228. package/out/src/tools/fetch/ban.js.map +1 -1
  229. package/out/src/tools/fetch/download.d.ts +12 -3
  230. package/out/src/tools/fetch/download.d.ts.map +1 -1
  231. package/out/src/tools/fetch/download.js +20 -4
  232. package/out/src/tools/fetch/download.js.map +1 -1
  233. package/out/src/tools/fetch/geonames-dump.d.ts +87 -0
  234. package/out/src/tools/fetch/geonames-dump.d.ts.map +1 -0
  235. package/out/src/tools/fetch/geonames-dump.js +178 -0
  236. package/out/src/tools/fetch/geonames-dump.js.map +1 -0
  237. package/out/src/tools/fetch/geonames-postal.d.ts +76 -0
  238. package/out/src/tools/fetch/geonames-postal.d.ts.map +1 -0
  239. package/out/src/tools/fetch/geonames-postal.js +125 -0
  240. package/out/src/tools/fetch/geonames-postal.js.map +1 -0
  241. package/out/src/tools/fetch/imls-pls.d.ts.map +1 -1
  242. package/out/src/tools/fetch/imls-pls.js +2 -2
  243. package/out/src/tools/fetch/imls-pls.js.map +1 -1
  244. package/out/src/tools/fetch/index.d.ts +11 -0
  245. package/out/src/tools/fetch/index.d.ts.map +1 -1
  246. package/out/src/tools/fetch/index.js +11 -0
  247. package/out/src/tools/fetch/index.js.map +1 -1
  248. package/out/src/tools/fetch/nad.d.ts.map +1 -1
  249. package/out/src/tools/fetch/nad.js +20 -11
  250. package/out/src/tools/fetch/nad.js.map +1 -1
  251. package/out/src/tools/fetch/nppes.d.ts.map +1 -1
  252. package/out/src/tools/fetch/nppes.js +9 -7
  253. package/out/src/tools/fetch/nppes.js.map +1 -1
  254. package/out/src/tools/fetch/openaddresses.d.ts.map +1 -1
  255. package/out/src/tools/fetch/openaddresses.js +18 -17
  256. package/out/src/tools/fetch/openaddresses.js.map +1 -1
  257. package/out/src/tools/fetch/ourairports.d.ts.map +1 -1
  258. package/out/src/tools/fetch/ourairports.js +7 -2
  259. package/out/src/tools/fetch/ourairports.js.map +1 -1
  260. package/out/src/tools/fetch/ppd.d.ts +0 -4
  261. package/out/src/tools/fetch/ppd.d.ts.map +1 -1
  262. package/out/src/tools/fetch/ppd.js +1 -1
  263. package/out/src/tools/fetch/ppd.js.map +1 -1
  264. package/out/src/tools/fetch/state-hi-schools.d.ts.map +1 -1
  265. package/out/src/tools/fetch/state-hi-schools.js +3 -19
  266. package/out/src/tools/fetch/state-hi-schools.js.map +1 -1
  267. package/out/src/tools/fetch/state-sources.d.ts +4 -0
  268. package/out/src/tools/fetch/state-sources.d.ts.map +1 -1
  269. package/out/src/tools/fetch/state-sources.js +1 -5
  270. package/out/src/tools/fetch/state-sources.js.map +1 -1
  271. package/out/src/tools/fetch/tiger-full.d.ts.map +1 -1
  272. package/out/src/tools/fetch/tiger-full.js +15 -21
  273. package/out/src/tools/fetch/tiger-full.js.map +1 -1
  274. package/out/src/tools/golden-expand.d.ts.map +1 -1
  275. package/out/src/tools/golden-expand.js +34 -25
  276. package/out/src/tools/golden-expand.js.map +1 -1
  277. package/out/src/tools/golden-relabel-street.js +2 -2
  278. package/out/src/tools/golden-relabel-street.js.map +1 -1
  279. package/out/src/tools/index.d.ts +2 -2
  280. package/out/src/tools/index.d.ts.map +1 -1
  281. package/out/src/tools/index.js +2 -2
  282. package/out/src/tools/index.js.map +1 -1
  283. package/out/src/tools/ingest-csv.d.ts.map +1 -1
  284. package/out/src/tools/ingest-csv.js +0 -11
  285. package/out/src/tools/ingest-csv.js.map +1 -1
  286. package/out/src/tools/overlay-manifest.d.ts +4 -0
  287. package/out/src/tools/overlay-manifest.d.ts.map +1 -1
  288. package/out/src/tools/overlay-manifest.js +16 -6
  289. package/out/src/tools/overlay-manifest.js.map +1 -1
  290. package/out/src/tools/postcode-triples.d.ts +175 -0
  291. package/out/src/tools/postcode-triples.d.ts.map +1 -0
  292. package/out/src/tools/postcode-triples.js +304 -0
  293. package/out/src/tools/postcode-triples.js.map +1 -0
  294. package/out/src/tools/shard-kryptonite.d.ts.map +1 -1
  295. package/out/src/tools/shard-kryptonite.js +1 -2
  296. package/out/src/tools/shard-kryptonite.js.map +1 -1
  297. package/out/src/tools/shard-translit.d.ts.map +1 -1
  298. package/out/src/tools/shard-translit.js +4 -26
  299. package/out/src/tools/shard-translit.js.map +1 -1
  300. package/out/src/tools/sub-venue/harvest.d.ts +100 -0
  301. package/out/src/tools/sub-venue/harvest.d.ts.map +1 -0
  302. package/out/src/tools/sub-venue/harvest.js +168 -0
  303. package/out/src/tools/sub-venue/harvest.js.map +1 -0
  304. package/out/src/tools/sub-venue/head-nouns.d.ts +50 -0
  305. package/out/src/tools/sub-venue/head-nouns.d.ts.map +1 -0
  306. package/out/src/tools/sub-venue/head-nouns.js +210 -0
  307. package/out/src/tools/sub-venue/head-nouns.js.map +1 -0
  308. package/out/src/tools/sub-venue/surfaces.d.ts +45 -0
  309. package/out/src/tools/sub-venue/surfaces.d.ts.map +1 -0
  310. package/out/src/tools/sub-venue/surfaces.js +77 -0
  311. package/out/src/tools/sub-venue/surfaces.js.map +1 -0
  312. package/out/src/tools/sub-venue/table.d.ts +229 -0
  313. package/out/src/tools/sub-venue/table.d.ts.map +1 -0
  314. package/out/src/tools/sub-venue/table.js +108 -0
  315. package/out/src/tools/sub-venue/table.js.map +1 -0
  316. package/out/src/tools/sub-venue/wikidata.d.ts +26 -0
  317. package/out/src/tools/sub-venue/wikidata.d.ts.map +1 -0
  318. package/out/src/tools/sub-venue/wikidata.js +62 -0
  319. package/out/src/tools/sub-venue/wikidata.js.map +1 -0
  320. package/out/src/tools/sub-venue-lexicon.d.ts +27 -378
  321. package/out/src/tools/sub-venue-lexicon.d.ts.map +1 -1
  322. package/out/src/tools/sub-venue-lexicon.js +30 -565
  323. package/out/src/tools/sub-venue-lexicon.js.map +1 -1
  324. package/out/src/utils/align.d.ts +1 -1
  325. package/out/src/utils/align.d.ts.map +1 -1
  326. package/out/src/utils/align.js.map +1 -1
  327. package/out/src/utils/golden.js +1 -1
  328. package/out/src/utils/golden.js.map +1 -1
  329. package/out/src/utils/license.js +1 -1
  330. package/out/src/utils/license.js.map +1 -1
  331. package/out/src/utils/parquet.d.ts +24 -5
  332. package/out/src/utils/parquet.d.ts.map +1 -1
  333. package/out/src/utils/parquet.js +6 -2
  334. package/out/src/utils/parquet.js.map +1 -1
  335. package/out/src/utils/split.d.ts +1 -1
  336. package/out/src/utils/split.d.ts.map +1 -1
  337. package/out/src/utils/split.js +2 -2
  338. package/out/src/utils/split.js.map +1 -1
  339. package/package.json +230 -10
  340. package/src/adapters/ban/adapter.ts +6 -4
  341. package/src/adapters/fcc-bdc/adapter.ts +4 -3
  342. package/src/adapters/geonames/adapter.ts +3 -2
  343. package/src/adapters/geonames-postal/adapter.ts +4 -3
  344. package/src/adapters/gnaf/adapter.ts +3 -2
  345. package/src/adapters/index.ts +2 -2
  346. package/src/adapters/openaddresses/adapter.ts +4 -3
  347. package/src/adapters/overture/adapter.ts +3 -2
  348. package/src/adapters/state-hi-schools/adapter.ts +8 -6
  349. package/src/adapters/state-ia-contractors/adapter.ts +13 -7
  350. package/src/adapters/state-ny-notaries/adapter.ts +13 -31
  351. package/src/adapters/state-tx-notaries/adapter.ts +13 -7
  352. package/src/adapters/synth-po-box/adapter.ts +5 -4
  353. package/src/adapters/tiger/adapter.ts +3 -2
  354. package/src/adapters/usgov-hrsa-fqhc/adapter.ts +8 -6
  355. package/src/adapters/usgov-imls-pls/adapter.ts +12 -7
  356. package/src/adapters/usgov-irs-bmf/adapter.ts +7 -5
  357. package/src/adapters/usgov-nad/adapter.ts +9 -8
  358. package/src/adapters/usgov-nppes/adapter.ts +13 -11
  359. package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +8 -6
  360. package/src/adapters/utils/index.ts +16 -3
  361. package/src/adapters/wof-admin-jp/adapter.ts +9 -12
  362. package/src/adapters/wof-admin-json/adapter.ts +16 -54
  363. package/src/adapters/wof-json-rows.ts +79 -0
  364. package/src/adapters/wof-postalcode-json/adapter.ts +17 -50
  365. package/src/build.ts +10 -10
  366. package/src/index.ts +1 -1
  367. package/src/parquet-wrapper/reader.ts +9 -0
  368. package/src/runner.ts +2 -7
  369. package/src/shard-recipes/anchor-absorption.ts +5 -5
  370. package/src/shard-recipes/bare-country.ts +95 -0
  371. package/src/shard-recipes/boundary-stress.ts +2 -5
  372. package/src/shard-recipes/country-balanced.ts +8 -6
  373. package/src/shard-recipes/cz-pcfirst-preposition.ts +29 -10
  374. package/src/shard-recipes/fr-admin-split.ts +6 -4
  375. package/src/shard-recipes/fr-bare-street.ts +85 -10
  376. package/src/shard-recipes/fr-lieudit.ts +6 -4
  377. package/src/shard-recipes/fr-order.ts +6 -4
  378. package/src/shard-recipes/german.ts +4 -3
  379. package/src/shard-recipes/house-venue.ts +1 -1
  380. package/src/shard-recipes/index.ts +6 -0
  381. package/src/shard-recipes/intersection.ts +5 -4
  382. package/src/shard-recipes/locale.ts +6 -8
  383. package/src/shard-recipes/no-street.ts +1 -1
  384. package/src/shard-recipes/po-box-cedex.ts +4 -3
  385. package/src/shard-recipes/po-box.ts +1 -5
  386. package/src/shard-recipes/reviewed-postcode-tail.ts +189 -0
  387. package/src/shard-recipes/scaffold.ts +38 -7
  388. package/src/shard-recipes/street-affix.ts +4 -3
  389. package/src/shard-recipes/street-bare.ts +3 -3
  390. package/src/shard-recipes/street.ts +2 -2
  391. package/src/shard-recipes/sub-venue-sources.ts +4 -14
  392. package/src/shard-recipes/sub-venue.ts +10 -8
  393. package/src/shard-recipes/trailing-region.ts +183 -0
  394. package/src/shard-recipes/unit.ts +4 -3
  395. package/src/synthesizers/boundary-stress.ts +1 -1
  396. package/src/synthesizers/german.ts +2 -1
  397. package/src/synthesizers/house-venue.ts +17 -3
  398. package/src/synthesizers/intersection.ts +1 -1
  399. package/src/synthesizers/no-street.ts +1 -1
  400. package/src/synthesizers/po-box.ts +1 -1
  401. package/src/synthesizers/street.ts +5 -3
  402. package/src/synthesizers/utils.ts +5 -3
  403. package/src/tools/align-shard.ts +3 -2
  404. package/src/tools/fetch/ban.ts +2 -22
  405. package/src/tools/fetch/download.ts +22 -4
  406. package/src/tools/fetch/geonames-dump.ts +267 -0
  407. package/src/tools/fetch/geonames-postal.ts +180 -0
  408. package/src/tools/fetch/imls-pls.ts +2 -2
  409. package/src/tools/fetch/index.ts +11 -0
  410. package/src/tools/fetch/nad.ts +21 -10
  411. package/src/tools/fetch/nppes.ts +8 -6
  412. package/src/tools/fetch/openaddresses.ts +18 -22
  413. package/src/tools/fetch/ourairports.ts +7 -2
  414. package/src/tools/fetch/ppd.ts +1 -1
  415. package/src/tools/fetch/state-hi-schools.ts +3 -23
  416. package/src/tools/fetch/state-sources.ts +1 -1
  417. package/src/tools/fetch/tiger-full.ts +17 -24
  418. package/src/tools/golden-expand.ts +44 -33
  419. package/src/tools/golden-relabel-street.ts +2 -2
  420. package/src/tools/index.ts +2 -2
  421. package/src/tools/ingest-csv.ts +0 -13
  422. package/src/tools/overlay-manifest.ts +20 -8
  423. package/src/tools/postcode-triples.ts +375 -0
  424. package/src/tools/shard-kryptonite.ts +5 -4
  425. package/src/tools/shard-translit.ts +10 -35
  426. package/src/tools/sub-venue/harvest.ts +235 -0
  427. package/src/tools/sub-venue/head-nouns.ts +242 -0
  428. package/src/tools/sub-venue/surfaces.ts +95 -0
  429. package/src/tools/sub-venue/table.ts +281 -0
  430. package/src/tools/sub-venue/wikidata.ts +85 -0
  431. package/src/tools/sub-venue-lexicon.ts +67 -886
  432. package/src/utils/align.ts +2 -1
  433. package/src/utils/golden.ts +1 -1
  434. package/src/utils/license.ts +1 -1
  435. package/src/utils/parquet.ts +22 -8
  436. package/src/utils/split.ts +4 -3
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mailwoman/corpus",
3
- "version": "9.1.0",
3
+ "version": "9.2.0",
4
4
  "description": "Mailwoman corpus pipeline: BIO-labeled dataset builder for the neural classifier.",
5
5
  "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/sister-software/mailwoman.git",
9
- "directory": "corpus"
9
+ "directory": "packages/corpus"
10
10
  },
11
11
  "files": [
12
12
  "data/**",
@@ -22,11 +22,55 @@
22
22
  "!*.test.tsx",
23
23
  "!**/*.test.ts",
24
24
  "!**/*.test.tsx",
25
- "!test-kit/**/*"
25
+ "!test-kit/**/*",
26
+ "!test/**"
26
27
  ],
27
28
  "type": "module",
28
29
  "imports": {
29
- "#test-kit": "./test-kit/index.ts"
30
+ "#adapters/utils": {
31
+ "types": "./out/src/adapters/utils/index.d.ts",
32
+ "default": "./out/src/adapters/utils/index.js"
33
+ },
34
+ "#runner": {
35
+ "types": "./out/src/runner.d.ts",
36
+ "default": "./out/src/runner.js"
37
+ },
38
+ "#synthesizers/utils": {
39
+ "types": "./out/src/synthesizers/utils.d.ts",
40
+ "default": "./out/src/synthesizers/utils.js"
41
+ },
42
+ "#types": {
43
+ "types": "./out/src/types.d.ts",
44
+ "default": "./out/src/types.js"
45
+ },
46
+ "#utils": {
47
+ "types": "./out/src/utils/index.d.ts",
48
+ "default": "./out/src/utils/index.js"
49
+ },
50
+ "#utils/*": {
51
+ "types": "./out/src/utils/*.d.ts",
52
+ "default": "./out/src/utils/*.js"
53
+ },
54
+ "#codex/*": {
55
+ "types": "./out/src/codex/*.d.ts",
56
+ "default": "./out/src/codex/*.js"
57
+ },
58
+ "#synthesizers/*": {
59
+ "types": "./out/src/synthesizers/*.d.ts",
60
+ "default": "./out/src/synthesizers/*.js"
61
+ },
62
+ "#tools": {
63
+ "types": "./out/src/tools/index.d.ts",
64
+ "default": "./out/src/tools/index.js"
65
+ },
66
+ "#adapters/*": {
67
+ "types": "./out/src/adapters/*.d.ts",
68
+ "default": "./out/src/adapters/*.js"
69
+ },
70
+ "#parquet-wrapper": {
71
+ "types": "./out/src/parquet-wrapper/index.d.ts",
72
+ "default": "./out/src/parquet-wrapper/index.js"
73
+ }
30
74
  },
31
75
  "exports": {
32
76
  "./package.json": "./package.json",
@@ -59,6 +103,10 @@
59
103
  "types": "./out/src/synthesizers/*.d.ts",
60
104
  "default": "./out/src/synthesizers/*.js"
61
105
  },
106
+ "./shard-recipes/*": {
107
+ "types": "./out/src/shard-recipes/*.d.ts",
108
+ "default": "./out/src/shard-recipes/*.js"
109
+ },
62
110
  "./adapters/utils": {
63
111
  "types": "./out/src/adapters/utils/index.d.ts",
64
112
  "default": "./out/src/adapters/utils/index.js"
@@ -78,6 +126,66 @@
78
126
  "./codex/*": {
79
127
  "types": "./out/src/codex/*.d.ts",
80
128
  "default": "./out/src/codex/*.js"
129
+ },
130
+ "./utils/parquet": {
131
+ "types": "./out/src/utils/parquet.d.ts",
132
+ "default": "./out/src/utils/parquet.js"
133
+ },
134
+ "./tools/postcode-triples": {
135
+ "types": "./out/src/tools/postcode-triples.d.ts",
136
+ "default": "./out/src/tools/postcode-triples.js"
137
+ },
138
+ "./tools/audit": {
139
+ "types": "./out/src/tools/audit.d.ts",
140
+ "default": "./out/src/tools/audit.js"
141
+ },
142
+ "./tools/gb-title-case": {
143
+ "types": "./out/src/tools/gb-title-case.d.ts",
144
+ "default": "./out/src/tools/gb-title-case.js"
145
+ },
146
+ "./tools/golden-relabel-street": {
147
+ "types": "./out/src/tools/golden-relabel-street.d.ts",
148
+ "default": "./out/src/tools/golden-relabel-street.js"
149
+ },
150
+ "./tools/overture-subvenue": {
151
+ "types": "./out/src/tools/overture-subvenue.d.ts",
152
+ "default": "./out/src/tools/overture-subvenue.js"
153
+ },
154
+ "./tools/sub-venue-lexicon": {
155
+ "types": "./out/src/tools/sub-venue-lexicon.d.ts",
156
+ "default": "./out/src/tools/sub-venue-lexicon.js"
157
+ },
158
+ "./tools/sub-venue-promotions": {
159
+ "types": "./out/src/tools/sub-venue-promotions.d.ts",
160
+ "default": "./out/src/tools/sub-venue-promotions.js"
161
+ },
162
+ "./tools/fetch/download": {
163
+ "types": "./out/src/tools/fetch/download.d.ts",
164
+ "default": "./out/src/tools/fetch/download.js"
165
+ },
166
+ "./tools/fetch/ppd": {
167
+ "types": "./out/src/tools/fetch/ppd.d.ts",
168
+ "default": "./out/src/tools/fetch/ppd.js"
169
+ },
170
+ "./utils/tokenize": {
171
+ "types": "./out/src/utils/tokenize.d.ts",
172
+ "default": "./out/src/utils/tokenize.js"
173
+ },
174
+ "./utils/golden": {
175
+ "types": "./out/src/utils/golden.d.ts",
176
+ "default": "./out/src/utils/golden.js"
177
+ },
178
+ "./utils/license": {
179
+ "types": "./out/src/utils/license.d.ts",
180
+ "default": "./out/src/utils/license.js"
181
+ },
182
+ "./utils/split": {
183
+ "types": "./out/src/utils/split.d.ts",
184
+ "default": "./out/src/utils/split.js"
185
+ },
186
+ "./utils/wof-json": {
187
+ "types": "./out/src/utils/wof-json.d.ts",
188
+ "default": "./out/src/utils/wof-json.js"
81
189
  }
82
190
  },
83
191
  "publishConfig": {
@@ -113,6 +221,10 @@
113
221
  "types": "./out/src/synthesizers/*.d.ts",
114
222
  "default": "./out/src/synthesizers/*.js"
115
223
  },
224
+ "./shard-recipes/*": {
225
+ "types": "./out/src/shard-recipes/*.d.ts",
226
+ "default": "./out/src/shard-recipes/*.js"
227
+ },
116
228
  "./adapters/utils": {
117
229
  "types": "./out/src/adapters/utils/index.d.ts",
118
230
  "default": "./out/src/adapters/utils/index.js"
@@ -132,22 +244,130 @@
132
244
  "./codex/*": {
133
245
  "types": "./out/src/codex/*.d.ts",
134
246
  "default": "./out/src/codex/*.js"
247
+ },
248
+ "./utils/parquet": {
249
+ "types": "./out/src/utils/parquet.d.ts",
250
+ "default": "./out/src/utils/parquet.js"
251
+ },
252
+ "./tools/postcode-triples": {
253
+ "types": "./out/src/tools/postcode-triples.d.ts",
254
+ "default": "./out/src/tools/postcode-triples.js"
255
+ },
256
+ "./tools/audit": {
257
+ "types": "./out/src/tools/audit.d.ts",
258
+ "default": "./out/src/tools/audit.js"
259
+ },
260
+ "./tools/gb-title-case": {
261
+ "types": "./out/src/tools/gb-title-case.d.ts",
262
+ "default": "./out/src/tools/gb-title-case.js"
263
+ },
264
+ "./tools/golden-relabel-street": {
265
+ "types": "./out/src/tools/golden-relabel-street.d.ts",
266
+ "default": "./out/src/tools/golden-relabel-street.js"
267
+ },
268
+ "./tools/overture-subvenue": {
269
+ "types": "./out/src/tools/overture-subvenue.d.ts",
270
+ "default": "./out/src/tools/overture-subvenue.js"
271
+ },
272
+ "./tools/sub-venue-lexicon": {
273
+ "types": "./out/src/tools/sub-venue-lexicon.d.ts",
274
+ "default": "./out/src/tools/sub-venue-lexicon.js"
275
+ },
276
+ "./tools/sub-venue-promotions": {
277
+ "types": "./out/src/tools/sub-venue-promotions.d.ts",
278
+ "default": "./out/src/tools/sub-venue-promotions.js"
279
+ },
280
+ "./tools/fetch/download": {
281
+ "types": "./out/src/tools/fetch/download.d.ts",
282
+ "default": "./out/src/tools/fetch/download.js"
283
+ },
284
+ "./tools/fetch/ppd": {
285
+ "types": "./out/src/tools/fetch/ppd.d.ts",
286
+ "default": "./out/src/tools/fetch/ppd.js"
287
+ },
288
+ "./utils/tokenize": {
289
+ "types": "./out/src/utils/tokenize.d.ts",
290
+ "default": "./out/src/utils/tokenize.js"
291
+ },
292
+ "./utils/golden": {
293
+ "types": "./out/src/utils/golden.d.ts",
294
+ "default": "./out/src/utils/golden.js"
295
+ },
296
+ "./utils/license": {
297
+ "types": "./out/src/utils/license.d.ts",
298
+ "default": "./out/src/utils/license.js"
299
+ },
300
+ "./utils/split": {
301
+ "types": "./out/src/utils/split.d.ts",
302
+ "default": "./out/src/utils/split.js"
303
+ },
304
+ "./utils/wof-json": {
305
+ "types": "./out/src/utils/wof-json.d.ts",
306
+ "default": "./out/src/utils/wof-json.js"
307
+ }
308
+ },
309
+ "imports": {
310
+ "#adapters/utils": {
311
+ "types": "./out/src/adapters/utils/index.d.ts",
312
+ "default": "./out/src/adapters/utils/index.js"
313
+ },
314
+ "#runner": {
315
+ "types": "./out/src/runner.d.ts",
316
+ "default": "./out/src/runner.js"
317
+ },
318
+ "#synthesizers/utils": {
319
+ "types": "./out/src/synthesizers/utils.d.ts",
320
+ "default": "./out/src/synthesizers/utils.js"
321
+ },
322
+ "#types": {
323
+ "types": "./out/src/types.d.ts",
324
+ "default": "./out/src/types.js"
325
+ },
326
+ "#utils": {
327
+ "types": "./out/src/utils/index.d.ts",
328
+ "default": "./out/src/utils/index.js"
329
+ },
330
+ "#utils/*": {
331
+ "types": "./out/src/utils/*.d.ts",
332
+ "default": "./out/src/utils/*.js"
333
+ },
334
+ "#codex/*": {
335
+ "types": "./out/src/codex/*.d.ts",
336
+ "default": "./out/src/codex/*.js"
337
+ },
338
+ "#synthesizers/*": {
339
+ "types": "./out/src/synthesizers/*.d.ts",
340
+ "default": "./out/src/synthesizers/*.js"
341
+ },
342
+ "#tools": {
343
+ "types": "./out/src/tools/index.d.ts",
344
+ "default": "./out/src/tools/index.js"
345
+ },
346
+ "#adapters/*": {
347
+ "types": "./out/src/adapters/*.d.ts",
348
+ "default": "./out/src/adapters/*.js"
349
+ },
350
+ "#parquet-wrapper": {
351
+ "types": "./out/src/parquet-wrapper/index.d.ts",
352
+ "default": "./out/src/parquet-wrapper/index.js"
135
353
  }
136
354
  }
137
355
  },
138
356
  "dependencies": {
139
357
  "@dsnp/parquetjs": "1.8.9",
140
- "@mailwoman/ban": "9.1.0",
141
- "@mailwoman/codex": "9.1.0",
142
- "@mailwoman/core": "9.1.0",
143
- "@mailwoman/formatter": "9.1.0",
358
+ "@mailwoman/ban": "9.2.0",
359
+ "@mailwoman/codex": "9.2.0",
360
+ "@mailwoman/core": "9.2.0",
361
+ "@mailwoman/formatter": "9.2.0",
144
362
  "fast-glob": "^3.3.3",
145
363
  "fastest-levenshtein": "^1.0.16",
146
364
  "lru-cache": "^11.5.2",
147
365
  "path-ts": "^2.1.0",
148
- "spliterator": "^6.1.0"
366
+ "spliterator": "^6.2.0"
149
367
  },
150
368
  "devDependencies": {
151
- "@types/node": ">=26.1.2"
369
+ "@types/node": ">=26.1.2",
370
+ "adm-zip": "^0.6.0",
371
+ "kysely": "^0.29.4"
152
372
  }
153
373
  }
@@ -31,11 +31,13 @@
31
31
  * country !== FR).
32
32
  */
33
33
 
34
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
35
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
34
+ import { isPresent } from "@mailwoman/core/objects"
36
35
  import { reconcileComponents } from "@mailwoman/formatter"
37
36
  import { CSVSpliterator } from "spliterator"
38
37
 
38
+ import { stableSourceID } from "#adapters/utils"
39
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
40
+
39
41
  import { decomposeFrStreet } from "./street-decompose.ts"
40
42
 
41
43
  /**
@@ -81,13 +83,13 @@ function composeHouseNumber(numero: string, rep: string): string {
81
83
  */
82
84
  function composeRaw(house: string, street: string, postcode: string, locality: string): string {
83
85
  const parts: string[] = []
84
- const streetPart = [house, street].filter(Boolean).join(" ").trim()
86
+ const streetPart = [house, street].filter(isPresent).join(" ").trim()
85
87
 
86
88
  if (streetPart) {
87
89
  parts.push(streetPart)
88
90
  }
89
91
 
90
- const cityPart = [postcode, locality].filter(Boolean).join(" ").trim()
92
+ const cityPart = [postcode, locality].filter(isPresent).join(" ").trim()
91
93
 
92
94
  if (cityPart) {
93
95
  parts.push(cityPart)
@@ -36,11 +36,12 @@
36
36
 
37
37
  import { DatabaseSync } from "node:sqlite"
38
38
 
39
- import { splitStreetLine } from "@mailwoman/corpus/adapters/utils"
40
- import { lookupStateAbbreviation } from "@mailwoman/corpus/codex/us-fips-state"
41
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
42
39
  import { formatAddress, reconcileComponents } from "@mailwoman/formatter"
43
40
 
41
+ import { splitStreetLine } from "#adapters/utils"
42
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
43
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
44
+
44
45
  /**
45
46
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
46
47
  * it came from.
@@ -30,12 +30,13 @@
30
30
 
31
31
  import { existsSync } from "node:fs"
32
32
 
33
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
34
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
35
33
  import { reconcileComponents } from "@mailwoman/formatter"
36
34
  import { dirname, join } from "path-ts"
37
35
  import { TSVSpliterator } from "spliterator"
38
36
 
37
+ import { stableSourceID } from "#adapters/utils"
38
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
39
+
39
40
  /**
40
41
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
41
42
  * it came from.
@@ -23,11 +23,12 @@
23
23
  * `"CC-BY-4.0"` per row (attribute "GeoNames").
24
24
  */
25
25
 
26
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
27
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
28
26
  import { reconcileComponents } from "@mailwoman/formatter"
29
27
  import { TSVSpliterator } from "spliterator"
30
28
 
29
+ import { stableSourceID } from "#adapters/utils"
30
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
31
+
31
32
  /**
32
33
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
33
34
  * it came from.
@@ -49,7 +50,7 @@ export function createGeonamesPostalAdapter(): CorpusAdapter {
49
50
  id: GEONAMES_POSTAL_ADAPTER_ID,
50
51
  defaultLicense: GEONAMES_POSTAL_DEFAULT_LICENSE,
51
52
  description:
52
- "GeoNames postal codes (CC-BY-4.0) — multi-locale postcode→locality→region, names inline; international postcode-first order.",
53
+ "GeoNames postcodes (CC-BY-4.0) — multi-locale postcode→locality→region, names inline; international postcode-first order.",
53
54
 
54
55
  async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
55
56
  // `header: false` — the GeoNames postal dump is headerless, and the spliterator would
@@ -29,11 +29,12 @@
29
29
  */
30
30
 
31
31
  import { tryParsingJSON } from "@mailwoman/core/objects"
32
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
33
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
34
32
  import { reconcileComponents } from "@mailwoman/formatter"
35
33
  import { TextSpliterator } from "spliterator"
36
34
 
35
+ import { stableSourceID } from "#adapters/utils"
36
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
37
+
37
38
  /**
38
39
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
39
40
  * it came from.
@@ -19,8 +19,8 @@
19
19
  * implementations; the registered ids are unchanged).
20
20
  */
21
21
 
22
- import { defaultAdapterRegistry } from "@mailwoman/corpus/adapters/utils"
23
- import type { CorpusAdapter } from "@mailwoman/corpus/types"
22
+ import { defaultAdapterRegistry } from "#adapters/utils"
23
+ import type { CorpusAdapter } from "#types"
24
24
 
25
25
  import { banAdapter } from "./ban/adapter.ts"
26
26
  import { fccBdcAdapter } from "./fcc-bdc/adapter.ts"
@@ -37,12 +37,13 @@
37
37
  */
38
38
 
39
39
  import { tryParsingJSON } from "@mailwoman/core/objects"
40
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
41
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
42
- import { SHARE_ALIKE_PATTERN } from "@mailwoman/corpus/utils"
43
40
  import { formatAddress, reconcileComponents } from "@mailwoman/formatter"
44
41
  import { TextSpliterator } from "spliterator"
45
42
 
43
+ import { stableSourceID } from "#adapters/utils"
44
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
45
+ import { SHARE_ALIKE_PATTERN } from "#utils"
46
+
46
47
  /**
47
48
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
48
49
  * it came from.
@@ -31,11 +31,12 @@
31
31
  */
32
32
 
33
33
  import { tryParsingJSON } from "@mailwoman/core/objects"
34
- import { stableSourceID } from "@mailwoman/corpus/adapters/utils"
35
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
36
34
  import { formatAddress, reconcileComponents } from "@mailwoman/formatter"
37
35
  import { TextSpliterator } from "spliterator"
38
36
 
37
+ import { stableSourceID } from "#adapters/utils"
38
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
39
+
39
40
  /**
40
41
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
41
42
  * it came from.
@@ -29,12 +29,14 @@
29
29
  * License: stamped `"Public Domain"` per Hawaii state government open-data terms.
30
30
  */
31
31
 
32
- import { splitStreetLine, stableSourceID } from "@mailwoman/corpus/adapters/utils"
33
- import { lookupStateAbbreviation } from "@mailwoman/corpus/codex/us-fips-state"
34
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
32
+ import { isPresent } from "@mailwoman/core/objects"
35
33
  import { reconcileComponents } from "@mailwoman/formatter"
36
34
  import { CSVSpliterator } from "spliterator"
37
35
 
36
+ import { splitStreetLine, stableSourceID } from "#adapters/utils"
37
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
38
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
39
+
38
40
  /**
39
41
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
40
42
  * it came from.
@@ -119,14 +121,14 @@ export function createStateHiSchoolsAdapter(): CorpusAdapter {
119
121
  postcode: zip,
120
122
  }
121
123
 
122
- const streetPart = [split.house_number, split.street].filter(Boolean).join(" ").trim()
124
+ const streetPart = [split.house_number, split.street].filter(isPresent).join(" ").trim()
123
125
 
124
126
  const raw = [
125
127
  name,
126
128
  streetPart,
127
- [city, [HI_STATE_ABBR, zip].filter(Boolean).join(" ")].filter(Boolean).join(", "),
129
+ [city, [HI_STATE_ABBR, zip].filter(isPresent).join(" ")].filter(isPresent).join(", "),
128
130
  ]
129
- .filter(Boolean)
131
+ .filter(isPresent)
130
132
  .join(", ")
131
133
 
132
134
  const aligned = reconcileComponents(components, raw)
@@ -16,12 +16,14 @@
16
16
  * License: stamped `"Public Domain"` per Iowa state government open-data terms.
17
17
  */
18
18
 
19
- import { splitStreetLine, stableSourceID } from "@mailwoman/corpus/adapters/utils"
20
- import { lookupStateAbbreviation } from "@mailwoman/corpus/codex/us-fips-state"
21
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
19
+ import { isPresent } from "@mailwoman/core/objects"
22
20
  import { reconcileComponents } from "@mailwoman/formatter"
23
21
  import { CSVSpliterator } from "spliterator"
24
22
 
23
+ import { splitStreetLine, stableSourceID } from "#adapters/utils"
24
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
25
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
26
+
25
27
  /**
26
28
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
27
29
  * it came from.
@@ -83,7 +85,7 @@ export function createStateIaContractorsAdapter(): CorpusAdapter {
83
85
 
84
86
  if (!state) continue
85
87
 
86
- const fullAddress = [address1, address2].filter(Boolean).join(" ")
88
+ const fullAddress = [address1, address2].filter(isPresent).join(" ")
87
89
  const split = splitStreetLine(fullAddress)
88
90
 
89
91
  if (!split) continue
@@ -99,10 +101,14 @@ export function createStateIaContractorsAdapter(): CorpusAdapter {
99
101
  postcode: zip,
100
102
  }
101
103
 
102
- const streetPart = [split.house_number, split.street].filter(Boolean).join(" ").trim()
104
+ const streetPart = [split.house_number, split.street].filter(isPresent).join(" ").trim()
103
105
 
104
- const raw = [venue, streetPart, [city, [stateAbbr, zip].filter(Boolean).join(" ")].filter(Boolean).join(", ")]
105
- .filter(Boolean)
106
+ const raw = [
107
+ venue,
108
+ streetPart,
109
+ [city, [stateAbbr, zip].filter(isPresent).join(" ")].filter(isPresent).join(", "),
110
+ ]
111
+ .filter(isPresent)
106
112
  .join(", ")
107
113
 
108
114
  const aligned = reconcileComponents(components, raw)
@@ -14,12 +14,14 @@
14
14
  * License: stamped `"Public Domain"` per New York state government open-data terms.
15
15
  */
16
16
 
17
- import { splitStreetLine, stableSourceID } from "@mailwoman/corpus/adapters/utils"
18
- import { lookupStateAbbreviation } from "@mailwoman/corpus/codex/us-fips-state"
19
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
17
+ import { isPresent } from "@mailwoman/core/objects"
20
18
  import { reconcileComponents } from "@mailwoman/formatter"
21
19
  import { CSVSpliterator } from "spliterator"
22
20
 
21
+ import { splitStreetLine, stableSourceID } from "#adapters/utils"
22
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
23
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
24
+
23
25
  /**
24
26
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
25
27
  * it came from.
@@ -31,30 +33,6 @@ export const STATE_NY_NOTARIES_ADAPTER_ID = "state-ny-notaries"
31
33
  */
32
34
  export const STATE_NY_NOTARIES_DEFAULT_LICENSE = "Public Domain"
33
35
 
34
- interface NyNotaryRow {
35
- "Commission Holder Name": string
36
- "Commission Number (UID)": string
37
- "Business Name (if available)": string
38
- "Business Address 1 (if available)": string
39
- "Business Address 2 (if available)": string
40
- " Business City (if available)": string
41
- "Business State (if available)": string
42
- "Business Zip (if available)": string
43
- "Commissioned County": string
44
- }
45
-
46
- const RAW_NY_COLUMNS = [
47
- "Commission Holder Name",
48
- "Commission Number (UID)",
49
- "Business Name (if available)",
50
- "Business Address 1 (if available)",
51
- "Business Address 2 (if available)",
52
- " Business City (if available)",
53
- "Business State (if available)",
54
- "Business Zip (if available)",
55
- "Commissioned County",
56
- ] as const
57
-
58
36
  export function createStateNyNotariesAdapter(): CorpusAdapter {
59
37
  return {
60
38
  id: STATE_NY_NOTARIES_ADAPTER_ID,
@@ -103,7 +81,7 @@ export function createStateNyNotariesAdapter(): CorpusAdapter {
103
81
 
104
82
  if (!state) continue
105
83
 
106
- const fullAddress = [address1, address2].filter(Boolean).join(" ")
84
+ const fullAddress = [address1, address2].filter(isPresent).join(" ")
107
85
  const split = splitStreetLine(fullAddress)
108
86
 
109
87
  if (!split) continue
@@ -120,10 +98,14 @@ export function createStateNyNotariesAdapter(): CorpusAdapter {
120
98
  ...(county ? { subregion: county } : {}),
121
99
  }
122
100
 
123
- const streetPart = [split.house_number, split.street].filter(Boolean).join(" ").trim()
101
+ const streetPart = [split.house_number, split.street].filter(isPresent).join(" ").trim()
124
102
 
125
- const raw = [venue, streetPart, [city, [stateAbbr, zip].filter(Boolean).join(" ")].filter(Boolean).join(", ")]
126
- .filter(Boolean)
103
+ const raw = [
104
+ venue,
105
+ streetPart,
106
+ [city, [stateAbbr, zip].filter(isPresent).join(" ")].filter(isPresent).join(", "),
107
+ ]
108
+ .filter(isPresent)
127
109
  .join(", ")
128
110
 
129
111
  const aligned = reconcileComponents(components, raw)
@@ -15,12 +15,14 @@
15
15
  * License: stamped `"Public Domain"` per Texas state government open-data terms.
16
16
  */
17
17
 
18
- import { splitStreetLine, stableSourceID } from "@mailwoman/corpus/adapters/utils"
19
- import { lookupStateAbbreviation } from "@mailwoman/corpus/codex/us-fips-state"
20
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "@mailwoman/corpus/types"
18
+ import { isPresent } from "@mailwoman/core/objects"
21
19
  import { reconcileComponents } from "@mailwoman/formatter"
22
20
  import { CSVSpliterator } from "spliterator"
23
21
 
22
+ import { splitStreetLine, stableSourceID } from "#adapters/utils"
23
+ import { lookupStateAbbreviation } from "#codex/us-fips-state"
24
+ import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
25
+
24
26
  /**
25
27
  * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
26
28
  * it came from.
@@ -103,7 +105,7 @@ export function createStateTxNotariesAdapter(): CorpusAdapter {
103
105
 
104
106
  if (!split) continue
105
107
 
106
- const venue = [firstName, lastName].filter(Boolean).join(" ") || undefined
108
+ const venue = [firstName, lastName].filter(isPresent).join(" ") || undefined
107
109
 
108
110
  const components: CanonicalRow["components"] = {
109
111
  ...(venue ? { venue } : {}),
@@ -114,10 +116,14 @@ export function createStateTxNotariesAdapter(): CorpusAdapter {
114
116
  ...(zip ? { postcode: zip } : {}),
115
117
  }
116
118
 
117
- const streetPart = [split.house_number, split.street].filter(Boolean).join(" ").trim()
119
+ const streetPart = [split.house_number, split.street].filter(isPresent).join(" ").trim()
118
120
 
119
- const raw = [venue, streetPart, [city, [stateAbbr, zip].filter(Boolean).join(" ")].filter(Boolean).join(", ")]
120
- .filter(Boolean)
121
+ const raw = [
122
+ venue,
123
+ streetPart,
124
+ [city, [stateAbbr, zip].filter(isPresent).join(" ")].filter(isPresent).join(", "),
125
+ ]
126
+ .filter(isPresent)
121
127
  .join(", ")
122
128
 
123
129
  const aligned = reconcileComponents(components, raw)