@mailwoman/corpus 9.4.0 → 10.0.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 (981) hide show
  1. package/README.md +16 -0
  2. package/lib/adapters/geonames/adapter.ts +3 -3
  3. package/lib/adapters/geonames/postal/adapter.ts +122 -0
  4. package/lib/adapters/index.ts +39 -32
  5. package/lib/adapters/openaddresses/adapter.ts +4 -7
  6. package/lib/adapters/osm/adapter.ts +278 -0
  7. package/lib/adapters/overture/adapter.ts +22 -7
  8. package/lib/adapters/utils/index.ts +1 -1
  9. package/lib/adapters/wof/admin/json/adapter.ts +239 -0
  10. package/lib/adapters/wof/json-rows.ts +181 -0
  11. package/lib/adapters/wof/postalcode-json/adapter.ts +196 -0
  12. package/lib/au/adapters/gnaf/adapter.ts +152 -0
  13. package/lib/au/adapters/gnaf/assemble.ts +225 -0
  14. package/lib/de/recipes/locale.ts +360 -0
  15. package/lib/fr/adapters/ban/adapter.ts +159 -0
  16. package/lib/fr/recipes/admin-split.ts +243 -0
  17. package/lib/fr/recipes/bare-street.ts +171 -0
  18. package/lib/fr/recipes/fragment.ts +334 -0
  19. package/lib/fr/recipes/lieudit.ts +274 -0
  20. package/lib/fr/recipes/order.ts +246 -0
  21. package/lib/fr/tools/fetch/ban.ts +289 -0
  22. package/lib/index.ts +1 -1
  23. package/lib/international/recipes/locale.ts +598 -0
  24. package/lib/jp/tools/fetch/houjin.ts +141 -0
  25. package/lib/kr/adapters/juso/label-rows.ts +259 -0
  26. package/lib/kr/adapters/localdata/align.ts +299 -0
  27. package/lib/kr/adapters/localdata/key-index.ts +185 -0
  28. package/lib/kr/adapters/localdata/permit-rows.ts +186 -0
  29. package/lib/kr/tools/fetch/juso.ts +172 -0
  30. package/lib/kr/tools/fetch/localdata.ts +206 -0
  31. package/lib/recipes/bare/postcode/eval.ts +99 -0
  32. package/lib/recipes/bare/postcode/index.ts +327 -0
  33. package/lib/recipes/country-balanced.ts +1 -1
  34. package/lib/recipes/index.ts +28 -21
  35. package/lib/recipes/intersection.ts +1 -1
  36. package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
  37. package/lib/recipes/po/box/cedex/ca.ts +58 -0
  38. package/lib/recipes/po/box/cedex/fr.ts +76 -0
  39. package/lib/recipes/po/box/cedex/phrases.ts +108 -0
  40. package/lib/recipes/po/box/cedex/recipe.ts +203 -0
  41. package/lib/recipes/po/box/cedex/sources.ts +189 -0
  42. package/lib/recipes/po/box/cedex/types.ts +35 -0
  43. package/lib/recipes/po/box/cedex/us.ts +69 -0
  44. package/lib/recipes/po/box/cedex/vocabulary.ts +106 -0
  45. package/lib/recipes/po/box/cedex.ts +9 -0
  46. package/lib/recipes/po/box/index.ts +128 -0
  47. package/lib/recipes/scaffold.ts +18 -41
  48. package/lib/recipes/street/affix.ts +807 -0
  49. package/lib/recipes/sub/venue/context.ts +149 -0
  50. package/lib/recipes/sub/venue/index.ts +997 -0
  51. package/lib/recipes/sub/venue/sources.ts +739 -0
  52. package/lib/recipes/trailing-region.ts +6 -1
  53. package/lib/recipes/unit.ts +1 -1
  54. package/lib/sg/recipes/register.ts +270 -0
  55. package/lib/sg/tools/fetch/acra.ts +179 -0
  56. package/lib/south-asia/recipes/register.ts +214 -0
  57. package/lib/synthesizers/anchor-absorption.ts +1 -1
  58. package/lib/synthesizers/locale.ts +261 -0
  59. package/lib/synthesizers/street.ts +1 -1
  60. package/lib/synthesizers/utils.ts +2 -2
  61. package/lib/tools/audit.ts +3 -2
  62. package/lib/tools/corpus-stats.ts +3 -3
  63. package/lib/tools/fetch/download/index.ts +10 -0
  64. package/lib/tools/fetch/download/manifest.ts +102 -0
  65. package/lib/tools/fetch/download/network.ts +226 -0
  66. package/lib/tools/fetch/download/retry.ts +173 -0
  67. package/lib/tools/fetch/geonames/dump.ts +257 -0
  68. package/lib/tools/fetch/geonames/postal.ts +180 -0
  69. package/lib/tools/fetch/index.ts +30 -30
  70. package/lib/tools/fetch/openaddresses.ts +2 -2
  71. package/lib/tools/fetch/ourairports.ts +2 -2
  72. package/lib/tools/fetch/ppd.ts +1 -3
  73. package/lib/tools/fetch/wikidata-subvenue.ts +2 -2
  74. package/lib/tools/golden/promote.ts +340 -0
  75. package/lib/tools/golden/relabel-street/directory.ts +340 -0
  76. package/lib/tools/golden/relabel-street/index.ts +9 -0
  77. package/lib/tools/golden/relabel-street/row.ts +361 -0
  78. package/lib/tools/index.ts +10 -10
  79. package/lib/tools/ingest-csv.ts +5 -7
  80. package/lib/tools/lint/slice/vocab.ts +376 -0
  81. package/lib/tools/overlay-manifest.ts +92 -25
  82. package/lib/tools/overture-subvenue.ts +1 -1
  83. package/lib/tools/postcode-triples.ts +138 -14
  84. package/lib/tools/sub/venue/harvest.ts +234 -0
  85. package/lib/tools/sub/venue/head-nouns.ts +245 -0
  86. package/lib/tools/sub/venue/lexicon.ts +429 -0
  87. package/lib/tools/sub/venue/surfaces.ts +95 -0
  88. package/lib/tools/sub/venue/table.ts +281 -0
  89. package/lib/tools/sub/venue/wikidata.ts +85 -0
  90. package/lib/tw/tools/fetch/gcis.ts +180 -0
  91. package/lib/types.ts +1 -1
  92. package/lib/us/adapters/fcc-bdc/adapter.ts +173 -0
  93. package/lib/us/adapters/state/hi-schools/adapter.ts +160 -0
  94. package/lib/us/adapters/state/ia-contractors/adapter.ts +136 -0
  95. package/lib/us/adapters/state/ny-notaries/adapter.ts +133 -0
  96. package/lib/us/adapters/state/tx-notaries/adapter.ts +149 -0
  97. package/lib/us/adapters/tiger/adapter.ts +250 -0
  98. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +156 -0
  99. package/lib/us/adapters/usgov/imls-pls/adapter.ts +134 -0
  100. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +145 -0
  101. package/lib/us/adapters/usgov/nad/adapter.ts +324 -0
  102. package/lib/us/adapters/usgov/nppes/adapter.ts +143 -0
  103. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +182 -0
  104. package/lib/us/tools/fetch/hrsa.ts +59 -0
  105. package/lib/us/tools/fetch/imls-pls.ts +149 -0
  106. package/lib/us/tools/fetch/nad.ts +341 -0
  107. package/lib/us/tools/fetch/nppes.ts +165 -0
  108. package/lib/us/tools/fetch/state/hi-schools.ts +161 -0
  109. package/lib/us/tools/fetch/state/sources.ts +146 -0
  110. package/lib/us/tools/fetch/tiger-full.ts +308 -0
  111. package/lib/utils/align.ts +1 -1
  112. package/lib/utils/golden.ts +12 -8
  113. package/lib/utils/wof-json.ts +7 -13
  114. package/out/adapters/geonames/adapter.d.ts +1 -1
  115. package/out/adapters/geonames/adapter.js +3 -3
  116. package/out/adapters/geonames/adapter.js.map +1 -1
  117. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -0
  118. package/out/adapters/geonames/postal/adapter.js +107 -0
  119. package/out/adapters/geonames/postal/adapter.js.map +1 -0
  120. package/out/adapters/index.d.ts +16 -16
  121. package/out/adapters/index.d.ts.map +1 -1
  122. package/out/adapters/index.js +34 -32
  123. package/out/adapters/index.js.map +1 -1
  124. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  125. package/out/adapters/openaddresses/adapter.js +4 -6
  126. package/out/adapters/openaddresses/adapter.js.map +1 -1
  127. package/out/adapters/osm/adapter.d.ts +95 -0
  128. package/out/adapters/osm/adapter.d.ts.map +1 -0
  129. package/out/adapters/osm/adapter.js +211 -0
  130. package/out/adapters/osm/adapter.js.map +1 -0
  131. package/out/adapters/overture/adapter.d.ts +10 -0
  132. package/out/adapters/overture/adapter.d.ts.map +1 -1
  133. package/out/adapters/overture/adapter.js +20 -7
  134. package/out/adapters/overture/adapter.js.map +1 -1
  135. package/out/adapters/synth-po-box/adapter.js.map +1 -1
  136. package/out/adapters/utils/index.d.ts +1 -1
  137. package/out/adapters/utils/index.d.ts.map +1 -1
  138. package/out/adapters/utils/index.js.map +1 -1
  139. package/out/adapters/wof/admin/json/adapter.d.ts +79 -0
  140. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -0
  141. package/out/adapters/wof/admin/json/adapter.js +204 -0
  142. package/out/adapters/wof/admin/json/adapter.js.map +1 -0
  143. package/out/adapters/wof/json-rows.d.ts +73 -0
  144. package/out/adapters/wof/json-rows.d.ts.map +1 -0
  145. package/out/adapters/wof/json-rows.js +115 -0
  146. package/out/adapters/wof/json-rows.js.map +1 -0
  147. package/out/adapters/wof/postalcode-json/adapter.d.ts +65 -0
  148. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -0
  149. package/out/adapters/wof/postalcode-json/adapter.js +167 -0
  150. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
  151. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
  152. package/out/au/adapters/gnaf/adapter.js +127 -0
  153. package/out/au/adapters/gnaf/adapter.js.map +1 -0
  154. package/out/au/adapters/gnaf/assemble.d.ts +65 -0
  155. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
  156. package/out/au/adapters/gnaf/assemble.js +154 -0
  157. package/out/au/adapters/gnaf/assemble.js.map +1 -0
  158. package/out/cn/recipes/organizational-units.d.ts +36 -0
  159. package/out/cn/recipes/organizational-units.d.ts.map +1 -0
  160. package/out/cn/recipes/organizational-units.js +159 -0
  161. package/out/cn/recipes/organizational-units.js.map +1 -0
  162. package/out/cz/recipes/pcfirst-preposition.d.ts +22 -0
  163. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
  164. package/out/cz/recipes/pcfirst-preposition.js +101 -0
  165. package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
  166. package/out/de/recipes/locale.d.ts +44 -0
  167. package/out/de/recipes/locale.d.ts.map +1 -0
  168. package/out/de/recipes/locale.js +289 -0
  169. package/out/de/recipes/locale.js.map +1 -0
  170. package/out/env.d.ts +1 -1
  171. package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
  172. package/out/fr/adapters/ban/adapter.js +123 -0
  173. package/out/fr/adapters/ban/adapter.js.map +1 -0
  174. package/out/fr/adapters/ban/street-decompose.d.ts.map +1 -0
  175. package/out/fr/adapters/ban/street-decompose.js.map +1 -0
  176. package/out/fr/recipes/admin-split.d.ts +38 -0
  177. package/out/fr/recipes/admin-split.d.ts.map +1 -0
  178. package/out/fr/recipes/admin-split.js +192 -0
  179. package/out/fr/recipes/admin-split.js.map +1 -0
  180. package/out/fr/recipes/bare-street.d.ts +28 -0
  181. package/out/fr/recipes/bare-street.d.ts.map +1 -0
  182. package/out/fr/recipes/bare-street.js +144 -0
  183. package/out/fr/recipes/bare-street.js.map +1 -0
  184. package/out/fr/recipes/fragment.d.ts +77 -0
  185. package/out/fr/recipes/fragment.d.ts.map +1 -0
  186. package/out/fr/recipes/fragment.js +277 -0
  187. package/out/fr/recipes/fragment.js.map +1 -0
  188. package/out/fr/recipes/lieudit.d.ts +32 -0
  189. package/out/fr/recipes/lieudit.d.ts.map +1 -0
  190. package/out/fr/recipes/lieudit.js +211 -0
  191. package/out/fr/recipes/lieudit.js.map +1 -0
  192. package/out/fr/recipes/order.d.ts +38 -0
  193. package/out/fr/recipes/order.d.ts.map +1 -0
  194. package/out/fr/recipes/order.js +198 -0
  195. package/out/fr/recipes/order.js.map +1 -0
  196. package/out/fr/tools/fetch/ban.d.ts +31 -0
  197. package/out/fr/tools/fetch/ban.d.ts.map +1 -0
  198. package/out/fr/tools/fetch/ban.js +239 -0
  199. package/out/fr/tools/fetch/ban.js.map +1 -0
  200. package/out/index.d.ts +1 -1
  201. package/out/index.d.ts.map +1 -1
  202. package/out/index.js +1 -1
  203. package/out/index.js.map +1 -1
  204. package/out/international/recipes/locale.d.ts +136 -0
  205. package/out/international/recipes/locale.d.ts.map +1 -0
  206. package/out/international/recipes/locale.js +458 -0
  207. package/out/international/recipes/locale.js.map +1 -0
  208. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
  209. package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
  210. package/out/jp/tools/fetch/houjin.d.ts +24 -0
  211. package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
  212. package/out/jp/tools/fetch/houjin.js +102 -0
  213. package/out/jp/tools/fetch/houjin.js.map +1 -0
  214. package/out/kr/adapters/juso/label-rows.d.ts +76 -0
  215. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
  216. package/out/kr/adapters/juso/label-rows.js +194 -0
  217. package/out/kr/adapters/juso/label-rows.js.map +1 -0
  218. package/out/kr/adapters/localdata/align.d.ts +43 -0
  219. package/out/kr/adapters/localdata/align.d.ts.map +1 -0
  220. package/out/kr/adapters/localdata/align.js +223 -0
  221. package/out/kr/adapters/localdata/align.js.map +1 -0
  222. package/out/kr/adapters/localdata/key-index.d.ts +71 -0
  223. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
  224. package/out/kr/adapters/localdata/key-index.js +133 -0
  225. package/out/kr/adapters/localdata/key-index.js.map +1 -0
  226. package/out/kr/adapters/localdata/permit-rows.d.ts +66 -0
  227. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
  228. package/out/kr/adapters/localdata/permit-rows.js +131 -0
  229. package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
  230. package/out/kr/tools/fetch/juso.d.ts +30 -0
  231. package/out/kr/tools/fetch/juso.d.ts.map +1 -0
  232. package/out/kr/tools/fetch/juso.js +120 -0
  233. package/out/kr/tools/fetch/juso.js.map +1 -0
  234. package/out/kr/tools/fetch/localdata.d.ts +30 -0
  235. package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
  236. package/out/kr/tools/fetch/localdata.js +139 -0
  237. package/out/kr/tools/fetch/localdata.js.map +1 -0
  238. package/out/nl/recipes/postcode.d.ts +26 -0
  239. package/out/nl/recipes/postcode.d.ts.map +1 -0
  240. package/out/nl/recipes/postcode.js +103 -0
  241. package/out/nl/recipes/postcode.js.map +1 -0
  242. package/out/no/recipes/fragment.d.ts +43 -0
  243. package/out/no/recipes/fragment.d.ts.map +1 -0
  244. package/out/no/recipes/fragment.js +183 -0
  245. package/out/no/recipes/fragment.js.map +1 -0
  246. package/out/no/recipes/street/index.d.ts +18 -0
  247. package/out/no/recipes/street/index.d.ts.map +1 -0
  248. package/out/no/recipes/street/index.js +72 -0
  249. package/out/no/recipes/street/index.js.map +1 -0
  250. package/out/no/recipes/street/led.d.ts +24 -0
  251. package/out/no/recipes/street/led.d.ts.map +1 -0
  252. package/out/no/recipes/street/led.js +114 -0
  253. package/out/no/recipes/street/led.js.map +1 -0
  254. package/out/recipes/bare/country.d.ts +25 -0
  255. package/out/recipes/bare/country.d.ts.map +1 -0
  256. package/out/recipes/bare/country.js +88 -0
  257. package/out/recipes/bare/country.js.map +1 -0
  258. package/out/recipes/bare/postcode/eval.d.ts +29 -0
  259. package/out/recipes/bare/postcode/eval.d.ts.map +1 -0
  260. package/out/recipes/bare/postcode/eval.js +85 -0
  261. package/out/recipes/bare/postcode/eval.js.map +1 -0
  262. package/out/recipes/bare/postcode/index.d.ts +62 -0
  263. package/out/recipes/bare/postcode/index.d.ts.map +1 -0
  264. package/out/recipes/bare/postcode/index.js +267 -0
  265. package/out/recipes/bare/postcode/index.js.map +1 -0
  266. package/out/recipes/country-balanced.js.map +1 -1
  267. package/out/recipes/index.d.ts.map +1 -1
  268. package/out/recipes/index.js +28 -21
  269. package/out/recipes/index.js.map +1 -1
  270. package/out/recipes/intersection.js.map +1 -1
  271. package/out/recipes/po/box/cedex/au-nz.d.ts +7 -0
  272. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -0
  273. package/out/recipes/po/box/cedex/au-nz.js +56 -0
  274. package/out/recipes/po/box/cedex/au-nz.js.map +1 -0
  275. package/out/recipes/po/box/cedex/ca.d.ts +7 -0
  276. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -0
  277. package/out/recipes/po/box/cedex/ca.js +38 -0
  278. package/out/recipes/po/box/cedex/ca.js.map +1 -0
  279. package/out/recipes/po/box/cedex/fr.d.ts +7 -0
  280. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -0
  281. package/out/recipes/po/box/cedex/fr.js +57 -0
  282. package/out/recipes/po/box/cedex/fr.js.map +1 -0
  283. package/out/recipes/po/box/cedex/phrases.d.ts +8 -0
  284. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -0
  285. package/out/recipes/po/box/cedex/phrases.js +76 -0
  286. package/out/recipes/po/box/cedex/phrases.js.map +1 -0
  287. package/out/recipes/po/box/cedex/recipe.d.ts +9 -0
  288. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -0
  289. package/out/recipes/po/box/cedex/recipe.js +153 -0
  290. package/out/recipes/po/box/cedex/recipe.js.map +1 -0
  291. package/out/recipes/po/box/cedex/sources.d.ts +86 -0
  292. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -0
  293. package/out/recipes/po/box/cedex/sources.js +143 -0
  294. package/out/recipes/po/box/cedex/sources.js.map +1 -0
  295. package/out/recipes/po/box/cedex/types.d.ts +31 -0
  296. package/out/recipes/po/box/cedex/types.d.ts.map +1 -0
  297. package/out/recipes/po/box/cedex/types.js +5 -0
  298. package/out/recipes/po/box/cedex/types.js.map +1 -0
  299. package/out/recipes/po/box/cedex/us.d.ts +7 -0
  300. package/out/recipes/po/box/cedex/us.d.ts.map +1 -0
  301. package/out/recipes/po/box/cedex/us.js +51 -0
  302. package/out/recipes/po/box/cedex/us.js.map +1 -0
  303. package/out/recipes/po/box/cedex/vocabulary.d.ts +68 -0
  304. package/out/recipes/po/box/cedex/vocabulary.d.ts.map +1 -0
  305. package/out/recipes/po/box/cedex/vocabulary.js +90 -0
  306. package/out/recipes/po/box/cedex/vocabulary.js.map +1 -0
  307. package/out/recipes/po/box/cedex.d.ts +9 -0
  308. package/out/recipes/po/box/cedex.d.ts.map +1 -0
  309. package/out/recipes/po/box/cedex.js +9 -0
  310. package/out/recipes/po/box/cedex.js.map +1 -0
  311. package/out/recipes/po/box/index.d.ts +17 -0
  312. package/out/recipes/po/box/index.d.ts.map +1 -0
  313. package/out/recipes/po/box/index.js +105 -0
  314. package/out/recipes/po/box/index.js.map +1 -0
  315. package/out/recipes/scaffold.d.ts +20 -0
  316. package/out/recipes/scaffold.d.ts.map +1 -1
  317. package/out/recipes/scaffold.js +18 -37
  318. package/out/recipes/scaffold.js.map +1 -1
  319. package/out/recipes/street/affix.d.ts +89 -0
  320. package/out/recipes/street/affix.d.ts.map +1 -0
  321. package/out/recipes/street/affix.js +565 -0
  322. package/out/recipes/street/affix.js.map +1 -0
  323. package/out/recipes/street/bare.d.ts +25 -0
  324. package/out/recipes/street/bare.d.ts.map +1 -0
  325. package/out/recipes/street/bare.js +87 -0
  326. package/out/recipes/street/bare.js.map +1 -0
  327. package/out/recipes/sub/venue/context.d.ts +29 -0
  328. package/out/recipes/sub/venue/context.d.ts.map +1 -0
  329. package/out/recipes/sub/venue/context.js +106 -0
  330. package/out/recipes/sub/venue/context.js.map +1 -0
  331. package/out/recipes/sub/venue/index.d.ts +270 -0
  332. package/out/recipes/sub/venue/index.d.ts.map +1 -0
  333. package/out/recipes/sub/venue/index.js +728 -0
  334. package/out/recipes/sub/venue/index.js.map +1 -0
  335. package/out/recipes/sub/venue/sources.d.ts +209 -0
  336. package/out/recipes/sub/venue/sources.d.ts.map +1 -0
  337. package/out/recipes/sub/venue/sources.js +555 -0
  338. package/out/recipes/sub/venue/sources.js.map +1 -0
  339. package/out/recipes/trailing-region.d.ts.map +1 -1
  340. package/out/recipes/trailing-region.js +6 -1
  341. package/out/recipes/trailing-region.js.map +1 -1
  342. package/out/recipes/unit.js.map +1 -1
  343. package/out/sg/recipes/register.d.ts +69 -0
  344. package/out/sg/recipes/register.d.ts.map +1 -0
  345. package/out/sg/recipes/register.js +211 -0
  346. package/out/sg/recipes/register.js.map +1 -0
  347. package/out/sg/tools/fetch/acra.d.ts +23 -0
  348. package/out/sg/tools/fetch/acra.d.ts.map +1 -0
  349. package/out/sg/tools/fetch/acra.js +126 -0
  350. package/out/sg/tools/fetch/acra.js.map +1 -0
  351. package/out/si/recipes/bare-village.d.ts +32 -0
  352. package/out/si/recipes/bare-village.d.ts.map +1 -0
  353. package/out/si/recipes/bare-village.js +89 -0
  354. package/out/si/recipes/bare-village.js.map +1 -0
  355. package/out/south-asia/recipes/register.d.ts +51 -0
  356. package/out/south-asia/recipes/register.d.ts.map +1 -0
  357. package/out/south-asia/recipes/register.js +154 -0
  358. package/out/south-asia/recipes/register.js.map +1 -0
  359. package/out/synthesizers/anchor-absorption.d.ts +1 -1
  360. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  361. package/out/synthesizers/anchor-absorption.js.map +1 -1
  362. package/out/synthesizers/boundary-stress.js.map +1 -1
  363. package/out/synthesizers/house-venue.js.map +1 -1
  364. package/out/synthesizers/intersection.js.map +1 -1
  365. package/out/synthesizers/locale.d.ts +116 -0
  366. package/out/synthesizers/locale.d.ts.map +1 -0
  367. package/out/synthesizers/locale.js +150 -0
  368. package/out/synthesizers/locale.js.map +1 -0
  369. package/out/synthesizers/no-street.d.ts.map +1 -1
  370. package/out/synthesizers/no-street.js.map +1 -1
  371. package/out/synthesizers/po-box.js.map +1 -1
  372. package/out/synthesizers/street.d.ts.map +1 -1
  373. package/out/synthesizers/street.js +1 -1
  374. package/out/synthesizers/street.js.map +1 -1
  375. package/out/synthesizers/utils.js +1 -1
  376. package/out/synthesizers/utils.js.map +1 -1
  377. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  378. package/out/test-kit/corpus-recipe.js.map +1 -1
  379. package/out/tools/audit.d.ts.map +1 -1
  380. package/out/tools/audit.js +3 -2
  381. package/out/tools/audit.js.map +1 -1
  382. package/out/tools/corpus-stats.js +3 -3
  383. package/out/tools/corpus-stats.js.map +1 -1
  384. package/out/tools/fetch/download/index.d.ts +10 -0
  385. package/out/tools/fetch/download/index.d.ts.map +1 -0
  386. package/out/tools/fetch/download/index.js +10 -0
  387. package/out/tools/fetch/download/index.js.map +1 -0
  388. package/out/tools/fetch/download/manifest.d.ts +47 -0
  389. package/out/tools/fetch/download/manifest.d.ts.map +1 -0
  390. package/out/tools/fetch/download/manifest.js +74 -0
  391. package/out/tools/fetch/download/manifest.js.map +1 -0
  392. package/out/tools/fetch/download/network.d.ts +105 -0
  393. package/out/tools/fetch/download/network.d.ts.map +1 -0
  394. package/out/tools/fetch/download/network.js +130 -0
  395. package/out/tools/fetch/download/network.js.map +1 -0
  396. package/out/tools/fetch/download/retry.d.ts +45 -0
  397. package/out/tools/fetch/download/retry.d.ts.map +1 -0
  398. package/out/tools/fetch/download/retry.js +136 -0
  399. package/out/tools/fetch/download/retry.js.map +1 -0
  400. package/out/tools/fetch/geonames/dump.d.ts +91 -0
  401. package/out/tools/fetch/geonames/dump.d.ts.map +1 -0
  402. package/out/tools/fetch/geonames/dump.js +171 -0
  403. package/out/tools/fetch/geonames/dump.js.map +1 -0
  404. package/out/tools/fetch/geonames/postal.d.ts +76 -0
  405. package/out/tools/fetch/geonames/postal.d.ts.map +1 -0
  406. package/out/tools/fetch/geonames/postal.js +126 -0
  407. package/out/tools/fetch/geonames/postal.js.map +1 -0
  408. package/out/tools/fetch/index.d.ts +30 -30
  409. package/out/tools/fetch/index.d.ts.map +1 -1
  410. package/out/tools/fetch/index.js +30 -30
  411. package/out/tools/fetch/index.js.map +1 -1
  412. package/out/tools/fetch/openaddresses.d.ts +1 -1
  413. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  414. package/out/tools/fetch/openaddresses.js +1 -1
  415. package/out/tools/fetch/openaddresses.js.map +1 -1
  416. package/out/tools/fetch/ourairports.d.ts +1 -1
  417. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  418. package/out/tools/fetch/ourairports.js +1 -1
  419. package/out/tools/fetch/ourairports.js.map +1 -1
  420. package/out/tools/fetch/ppd.js +1 -3
  421. package/out/tools/fetch/ppd.js.map +1 -1
  422. package/out/tools/fetch/wikidata-subvenue.d.ts +1 -1
  423. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  424. package/out/tools/fetch/wikidata-subvenue.js +1 -1
  425. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  426. package/out/tools/golden/expand.d.ts +90 -0
  427. package/out/tools/golden/expand.d.ts.map +1 -0
  428. package/out/tools/golden/expand.js +406 -0
  429. package/out/tools/golden/expand.js.map +1 -0
  430. package/out/tools/golden/promote.d.ts +72 -0
  431. package/out/tools/golden/promote.d.ts.map +1 -0
  432. package/out/tools/golden/promote.js +243 -0
  433. package/out/tools/golden/promote.js.map +1 -0
  434. package/out/tools/golden/relabel-street/directory.d.ts +83 -0
  435. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
  436. package/out/tools/golden/relabel-street/directory.js +216 -0
  437. package/out/tools/golden/relabel-street/directory.js.map +1 -0
  438. package/out/tools/golden/relabel-street/index.d.ts +9 -0
  439. package/out/tools/golden/relabel-street/index.d.ts.map +1 -0
  440. package/out/tools/golden/relabel-street/index.js +9 -0
  441. package/out/tools/golden/relabel-street/index.js.map +1 -0
  442. package/out/tools/golden/relabel-street/row.d.ts +121 -0
  443. package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
  444. package/out/tools/golden/relabel-street/row.js +232 -0
  445. package/out/tools/golden/relabel-street/row.js.map +1 -0
  446. package/out/tools/index.d.ts +10 -10
  447. package/out/tools/index.d.ts.map +1 -1
  448. package/out/tools/index.js +10 -10
  449. package/out/tools/index.js.map +1 -1
  450. package/out/tools/ingest-csv.d.ts.map +1 -1
  451. package/out/tools/ingest-csv.js +5 -7
  452. package/out/tools/ingest-csv.js.map +1 -1
  453. package/out/tools/lint/slice/index.d.ts +93 -0
  454. package/out/tools/lint/slice/index.d.ts.map +1 -0
  455. package/out/tools/lint/slice/index.js +322 -0
  456. package/out/tools/lint/slice/index.js.map +1 -0
  457. package/out/tools/lint/slice/vocab.d.ts +90 -0
  458. package/out/tools/lint/slice/vocab.d.ts.map +1 -0
  459. package/out/tools/lint/slice/vocab.js +254 -0
  460. package/out/tools/lint/slice/vocab.js.map +1 -0
  461. package/out/tools/overlay-manifest.d.ts +56 -6
  462. package/out/tools/overlay-manifest.d.ts.map +1 -1
  463. package/out/tools/overlay-manifest.js +56 -15
  464. package/out/tools/overlay-manifest.js.map +1 -1
  465. package/out/tools/overture-subvenue.d.ts +1 -1
  466. package/out/tools/postcode-triples.d.ts +36 -0
  467. package/out/tools/postcode-triples.d.ts.map +1 -1
  468. package/out/tools/postcode-triples.js +91 -12
  469. package/out/tools/postcode-triples.js.map +1 -1
  470. package/out/tools/slice/kryptonite.d.ts +32 -0
  471. package/out/tools/slice/kryptonite.d.ts.map +1 -0
  472. package/out/tools/slice/kryptonite.js +99 -0
  473. package/out/tools/slice/kryptonite.js.map +1 -0
  474. package/out/tools/slice/translit.d.ts +51 -0
  475. package/out/tools/slice/translit.d.ts.map +1 -0
  476. package/out/tools/slice/translit.js +166 -0
  477. package/out/tools/slice/translit.js.map +1 -0
  478. package/out/tools/sub/venue/harvest.d.ts +100 -0
  479. package/out/tools/sub/venue/harvest.d.ts.map +1 -0
  480. package/out/tools/sub/venue/harvest.js +168 -0
  481. package/out/tools/sub/venue/harvest.js.map +1 -0
  482. package/out/tools/sub/venue/head-nouns.d.ts +50 -0
  483. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -0
  484. package/out/tools/sub/venue/head-nouns.js.map +1 -0
  485. package/out/tools/sub/venue/lexicon.d.ts +156 -0
  486. package/out/tools/sub/venue/lexicon.d.ts.map +1 -0
  487. package/out/tools/sub/venue/lexicon.js +283 -0
  488. package/out/tools/sub/venue/lexicon.js.map +1 -0
  489. package/out/tools/sub/venue/promotions.d.ts +94 -0
  490. package/out/tools/sub/venue/promotions.d.ts.map +1 -0
  491. package/out/tools/sub/venue/promotions.js +266 -0
  492. package/out/tools/sub/venue/promotions.js.map +1 -0
  493. package/out/tools/sub/venue/surfaces.d.ts +45 -0
  494. package/out/tools/sub/venue/surfaces.d.ts.map +1 -0
  495. package/out/tools/sub/venue/surfaces.js.map +1 -0
  496. package/out/tools/sub/venue/table.d.ts +229 -0
  497. package/out/tools/sub/venue/table.d.ts.map +1 -0
  498. package/out/tools/sub/venue/table.js.map +1 -0
  499. package/out/tools/sub/venue/wikidata.d.ts +26 -0
  500. package/out/tools/sub/venue/wikidata.d.ts.map +1 -0
  501. package/out/tools/sub/venue/wikidata.js +62 -0
  502. package/out/tools/sub/venue/wikidata.js.map +1 -0
  503. package/out/tw/tools/fetch/gcis.d.ts +23 -0
  504. package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
  505. package/out/tw/tools/fetch/gcis.js +135 -0
  506. package/out/tw/tools/fetch/gcis.js.map +1 -0
  507. package/out/types.d.ts +1 -1
  508. package/out/types.d.ts.map +1 -1
  509. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  510. package/out/us/adapters/fcc-bdc/adapter.js +142 -0
  511. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
  512. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
  513. package/out/us/adapters/state/hi-schools/adapter.js +136 -0
  514. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
  515. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
  516. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
  517. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
  518. package/out/us/adapters/state/ia-contractors/adapter.js +104 -0
  519. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
  520. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
  521. package/out/us/adapters/state/ny-notaries/adapter.js +112 -0
  522. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
  523. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
  524. package/out/us/adapters/state/tx-notaries/adapter.js +118 -0
  525. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
  526. package/out/us/adapters/tiger/adapter.d.ts +55 -0
  527. package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
  528. package/out/us/adapters/tiger/adapter.js +197 -0
  529. package/out/us/adapters/tiger/adapter.js.map +1 -0
  530. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
  531. package/out/us/adapters/tiger/street-decompose.js.map +1 -0
  532. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
  533. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +121 -0
  534. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
  535. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
  536. package/out/us/adapters/usgov/imls-pls/adapter.js +106 -0
  537. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
  538. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
  539. package/out/us/adapters/usgov/irs-bmf/adapter.js +116 -0
  540. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
  541. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
  542. package/out/us/adapters/usgov/nad/adapter.js +239 -0
  543. package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
  544. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
  545. package/out/us/adapters/usgov/nppes/adapter.js +110 -0
  546. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
  547. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -0
  548. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +143 -0
  549. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
  550. package/out/us/fips-state.d.ts +41 -0
  551. package/out/us/fips-state.d.ts.map +1 -0
  552. package/out/us/fips-state.js +100 -0
  553. package/out/us/fips-state.js.map +1 -0
  554. package/out/us/tools/fetch/hrsa.d.ts +18 -0
  555. package/out/us/tools/fetch/hrsa.d.ts.map +1 -0
  556. package/out/us/tools/fetch/hrsa.js +46 -0
  557. package/out/us/tools/fetch/hrsa.js.map +1 -0
  558. package/out/us/tools/fetch/imls-pls.d.ts +25 -0
  559. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
  560. package/out/us/tools/fetch/imls-pls.js +108 -0
  561. package/out/us/tools/fetch/imls-pls.js.map +1 -0
  562. package/out/us/tools/fetch/nad.d.ts +70 -0
  563. package/out/us/tools/fetch/nad.d.ts.map +1 -0
  564. package/out/us/tools/fetch/nad.js +234 -0
  565. package/out/us/tools/fetch/nad.js.map +1 -0
  566. package/out/us/tools/fetch/nppes.d.ts +26 -0
  567. package/out/us/tools/fetch/nppes.d.ts.map +1 -0
  568. package/out/us/tools/fetch/nppes.js +126 -0
  569. package/out/us/tools/fetch/nppes.js.map +1 -0
  570. package/out/us/tools/fetch/state/hi-schools.d.ts +26 -0
  571. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
  572. package/out/us/tools/fetch/state/hi-schools.js +112 -0
  573. package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
  574. package/out/us/tools/fetch/state/sources.d.ts +26 -0
  575. package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
  576. package/out/us/tools/fetch/state/sources.js +111 -0
  577. package/out/us/tools/fetch/state/sources.js.map +1 -0
  578. package/out/us/tools/fetch/tiger-full.d.ts +22 -0
  579. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
  580. package/out/us/tools/fetch/tiger-full.js +217 -0
  581. package/out/us/tools/fetch/tiger-full.js.map +1 -0
  582. package/out/utils/align.d.ts +1 -1
  583. package/out/utils/align.d.ts.map +1 -1
  584. package/out/utils/align.js.map +1 -1
  585. package/out/utils/golden.d.ts +7 -3
  586. package/out/utils/golden.d.ts.map +1 -1
  587. package/out/utils/golden.js +12 -8
  588. package/out/utils/golden.js.map +1 -1
  589. package/out/utils/parquet.d.ts.map +1 -1
  590. package/out/utils/split.js.map +1 -1
  591. package/out/utils/wof-json.d.ts.map +1 -1
  592. package/out/utils/wof-json.js +7 -12
  593. package/out/utils/wof-json.js.map +1 -1
  594. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  595. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
  596. package/package.json +196 -46
  597. package/lib/adapters/ban/adapter.ts +0 -190
  598. package/lib/adapters/fcc-bdc/adapter.ts +0 -174
  599. package/lib/adapters/geonames-postal/adapter.ts +0 -122
  600. package/lib/adapters/gnaf/adapter.ts +0 -149
  601. package/lib/adapters/gnaf/assemble.ts +0 -225
  602. package/lib/adapters/state-hi-schools/adapter.ts +0 -170
  603. package/lib/adapters/state-ia-contractors/adapter.ts +0 -144
  604. package/lib/adapters/state-ny-notaries/adapter.ts +0 -141
  605. package/lib/adapters/state-tx-notaries/adapter.ts +0 -157
  606. package/lib/adapters/tiger/adapter.ts +0 -252
  607. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +0 -167
  608. package/lib/adapters/usgov-imls-pls/adapter.ts +0 -143
  609. package/lib/adapters/usgov-irs-bmf/adapter.ts +0 -151
  610. package/lib/adapters/usgov-nad/adapter.ts +0 -334
  611. package/lib/adapters/usgov-nppes/adapter.ts +0 -151
  612. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -193
  613. package/lib/adapters/wof-admin-json/adapter.ts +0 -231
  614. package/lib/adapters/wof-json-rows.ts +0 -129
  615. package/lib/adapters/wof-postalcode-json/adapter.ts +0 -176
  616. package/lib/recipes/fr-admin-split.ts +0 -243
  617. package/lib/recipes/fr-bare-street.ts +0 -171
  618. package/lib/recipes/fr-fragment.ts +0 -334
  619. package/lib/recipes/fr-lieudit.ts +0 -301
  620. package/lib/recipes/fr-order.ts +0 -246
  621. package/lib/recipes/german.ts +0 -360
  622. package/lib/recipes/locale.ts +0 -600
  623. package/lib/recipes/po-box-cedex.ts +0 -976
  624. package/lib/recipes/po-box.ts +0 -124
  625. package/lib/recipes/street-affix.ts +0 -805
  626. package/lib/recipes/sub-venue-sources.ts +0 -878
  627. package/lib/recipes/sub-venue.ts +0 -998
  628. package/lib/synthesizers/german.ts +0 -260
  629. package/lib/tools/fetch/acra-sg.ts +0 -174
  630. package/lib/tools/fetch/ban.ts +0 -289
  631. package/lib/tools/fetch/download.ts +0 -477
  632. package/lib/tools/fetch/gcis-tw.ts +0 -175
  633. package/lib/tools/fetch/geonames-dump.ts +0 -257
  634. package/lib/tools/fetch/geonames-postal.ts +0 -180
  635. package/lib/tools/fetch/houjin-jp.ts +0 -135
  636. package/lib/tools/fetch/hrsa.ts +0 -59
  637. package/lib/tools/fetch/imls-pls.ts +0 -149
  638. package/lib/tools/fetch/juso-kr.ts +0 -165
  639. package/lib/tools/fetch/localdata-kr.ts +0 -194
  640. package/lib/tools/fetch/nad.ts +0 -341
  641. package/lib/tools/fetch/nppes.ts +0 -165
  642. package/lib/tools/fetch/state-hi-schools.ts +0 -161
  643. package/lib/tools/fetch/state-sources.ts +0 -146
  644. package/lib/tools/fetch/tiger-full.ts +0 -308
  645. package/lib/tools/golden-promote.ts +0 -337
  646. package/lib/tools/golden-relabel-street.ts +0 -686
  647. package/lib/tools/lint-slice-vocab.ts +0 -388
  648. package/lib/tools/sub-venue/harvest.ts +0 -234
  649. package/lib/tools/sub-venue/head-nouns.ts +0 -245
  650. package/lib/tools/sub-venue/surfaces.ts +0 -95
  651. package/lib/tools/sub-venue/table.ts +0 -281
  652. package/lib/tools/sub-venue/wikidata.ts +0 -85
  653. package/lib/tools/sub-venue-lexicon.ts +0 -429
  654. package/out/adapters/ban/adapter.d.ts.map +0 -1
  655. package/out/adapters/ban/adapter.js +0 -149
  656. package/out/adapters/ban/adapter.js.map +0 -1
  657. package/out/adapters/ban/street-decompose.d.ts.map +0 -1
  658. package/out/adapters/ban/street-decompose.js.map +0 -1
  659. package/out/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  660. package/out/adapters/fcc-bdc/adapter.js +0 -144
  661. package/out/adapters/fcc-bdc/adapter.js.map +0 -1
  662. package/out/adapters/geonames-postal/adapter.d.ts.map +0 -1
  663. package/out/adapters/geonames-postal/adapter.js +0 -107
  664. package/out/adapters/geonames-postal/adapter.js.map +0 -1
  665. package/out/adapters/gnaf/adapter.d.ts.map +0 -1
  666. package/out/adapters/gnaf/adapter.js +0 -124
  667. package/out/adapters/gnaf/adapter.js.map +0 -1
  668. package/out/adapters/gnaf/assemble.d.ts +0 -65
  669. package/out/adapters/gnaf/assemble.d.ts.map +0 -1
  670. package/out/adapters/gnaf/assemble.js +0 -154
  671. package/out/adapters/gnaf/assemble.js.map +0 -1
  672. package/out/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  673. package/out/adapters/state-hi-schools/adapter.js +0 -145
  674. package/out/adapters/state-hi-schools/adapter.js.map +0 -1
  675. package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
  676. package/out/adapters/state-hi-schools/workbook.js.map +0 -1
  677. package/out/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  678. package/out/adapters/state-ia-contractors/adapter.js +0 -111
  679. package/out/adapters/state-ia-contractors/adapter.js.map +0 -1
  680. package/out/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  681. package/out/adapters/state-ny-notaries/adapter.js +0 -119
  682. package/out/adapters/state-ny-notaries/adapter.js.map +0 -1
  683. package/out/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  684. package/out/adapters/state-tx-notaries/adapter.js +0 -125
  685. package/out/adapters/state-tx-notaries/adapter.js.map +0 -1
  686. package/out/adapters/tiger/adapter.d.ts +0 -55
  687. package/out/adapters/tiger/adapter.d.ts.map +0 -1
  688. package/out/adapters/tiger/adapter.js +0 -201
  689. package/out/adapters/tiger/adapter.js.map +0 -1
  690. package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
  691. package/out/adapters/tiger/street-decompose.js.map +0 -1
  692. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  693. package/out/adapters/usgov-hrsa-fqhc/adapter.js +0 -132
  694. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  695. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  696. package/out/adapters/usgov-imls-pls/adapter.js +0 -114
  697. package/out/adapters/usgov-imls-pls/adapter.js.map +0 -1
  698. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  699. package/out/adapters/usgov-irs-bmf/adapter.js +0 -120
  700. package/out/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  701. package/out/adapters/usgov-nad/adapter.d.ts.map +0 -1
  702. package/out/adapters/usgov-nad/adapter.js +0 -249
  703. package/out/adapters/usgov-nad/adapter.js.map +0 -1
  704. package/out/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  705. package/out/adapters/usgov-nppes/adapter.js +0 -118
  706. package/out/adapters/usgov-nppes/adapter.js.map +0 -1
  707. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  708. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -154
  709. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  710. package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  711. package/out/adapters/wof-admin-jp/adapter.js.map +0 -1
  712. package/out/adapters/wof-admin-json/adapter.d.ts +0 -79
  713. package/out/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  714. package/out/adapters/wof-admin-json/adapter.js +0 -197
  715. package/out/adapters/wof-admin-json/adapter.js.map +0 -1
  716. package/out/adapters/wof-json-rows.d.ts +0 -62
  717. package/out/adapters/wof-json-rows.d.ts.map +0 -1
  718. package/out/adapters/wof-json-rows.js +0 -83
  719. package/out/adapters/wof-json-rows.js.map +0 -1
  720. package/out/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  721. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  722. package/out/adapters/wof-postalcode-json/adapter.js +0 -151
  723. package/out/adapters/wof-postalcode-json/adapter.js.map +0 -1
  724. package/out/codex/us-fips-state.d.ts +0 -41
  725. package/out/codex/us-fips-state.d.ts.map +0 -1
  726. package/out/codex/us-fips-state.js +0 -100
  727. package/out/codex/us-fips-state.js.map +0 -1
  728. package/out/recipes/bare-country.d.ts +0 -25
  729. package/out/recipes/bare-country.d.ts.map +0 -1
  730. package/out/recipes/bare-country.js +0 -88
  731. package/out/recipes/bare-country.js.map +0 -1
  732. package/out/recipes/cn-organizational-units.d.ts +0 -36
  733. package/out/recipes/cn-organizational-units.d.ts.map +0 -1
  734. package/out/recipes/cn-organizational-units.js +0 -159
  735. package/out/recipes/cn-organizational-units.js.map +0 -1
  736. package/out/recipes/cz-pcfirst-preposition.d.ts +0 -22
  737. package/out/recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  738. package/out/recipes/cz-pcfirst-preposition.js +0 -101
  739. package/out/recipes/cz-pcfirst-preposition.js.map +0 -1
  740. package/out/recipes/fr-admin-split.d.ts +0 -38
  741. package/out/recipes/fr-admin-split.d.ts.map +0 -1
  742. package/out/recipes/fr-admin-split.js +0 -192
  743. package/out/recipes/fr-admin-split.js.map +0 -1
  744. package/out/recipes/fr-bare-street.d.ts +0 -28
  745. package/out/recipes/fr-bare-street.d.ts.map +0 -1
  746. package/out/recipes/fr-bare-street.js +0 -144
  747. package/out/recipes/fr-bare-street.js.map +0 -1
  748. package/out/recipes/fr-fragment.d.ts +0 -77
  749. package/out/recipes/fr-fragment.d.ts.map +0 -1
  750. package/out/recipes/fr-fragment.js +0 -277
  751. package/out/recipes/fr-fragment.js.map +0 -1
  752. package/out/recipes/fr-lieudit.d.ts +0 -32
  753. package/out/recipes/fr-lieudit.d.ts.map +0 -1
  754. package/out/recipes/fr-lieudit.js +0 -227
  755. package/out/recipes/fr-lieudit.js.map +0 -1
  756. package/out/recipes/fr-order.d.ts +0 -38
  757. package/out/recipes/fr-order.d.ts.map +0 -1
  758. package/out/recipes/fr-order.js +0 -198
  759. package/out/recipes/fr-order.js.map +0 -1
  760. package/out/recipes/german.d.ts +0 -44
  761. package/out/recipes/german.d.ts.map +0 -1
  762. package/out/recipes/german.js +0 -289
  763. package/out/recipes/german.js.map +0 -1
  764. package/out/recipes/locale.d.ts +0 -136
  765. package/out/recipes/locale.d.ts.map +0 -1
  766. package/out/recipes/locale.js +0 -460
  767. package/out/recipes/locale.js.map +0 -1
  768. package/out/recipes/nl-postcode.d.ts +0 -26
  769. package/out/recipes/nl-postcode.d.ts.map +0 -1
  770. package/out/recipes/nl-postcode.js +0 -103
  771. package/out/recipes/nl-postcode.js.map +0 -1
  772. package/out/recipes/no-fragment.d.ts +0 -43
  773. package/out/recipes/no-fragment.d.ts.map +0 -1
  774. package/out/recipes/no-fragment.js +0 -183
  775. package/out/recipes/no-fragment.js.map +0 -1
  776. package/out/recipes/no-street-led.d.ts +0 -24
  777. package/out/recipes/no-street-led.d.ts.map +0 -1
  778. package/out/recipes/no-street-led.js +0 -114
  779. package/out/recipes/no-street-led.js.map +0 -1
  780. package/out/recipes/no-street.d.ts +0 -18
  781. package/out/recipes/no-street.d.ts.map +0 -1
  782. package/out/recipes/no-street.js +0 -72
  783. package/out/recipes/no-street.js.map +0 -1
  784. package/out/recipes/po-box-cedex.d.ts +0 -38
  785. package/out/recipes/po-box-cedex.d.ts.map +0 -1
  786. package/out/recipes/po-box-cedex.js +0 -768
  787. package/out/recipes/po-box-cedex.js.map +0 -1
  788. package/out/recipes/po-box.d.ts +0 -17
  789. package/out/recipes/po-box.d.ts.map +0 -1
  790. package/out/recipes/po-box.js +0 -101
  791. package/out/recipes/po-box.js.map +0 -1
  792. package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
  793. package/out/recipes/reviewed-postcode-tail.js.map +0 -1
  794. package/out/recipes/si-bare-village.d.ts +0 -32
  795. package/out/recipes/si-bare-village.d.ts.map +0 -1
  796. package/out/recipes/si-bare-village.js +0 -89
  797. package/out/recipes/si-bare-village.js.map +0 -1
  798. package/out/recipes/street-affix.d.ts +0 -89
  799. package/out/recipes/street-affix.d.ts.map +0 -1
  800. package/out/recipes/street-affix.js +0 -563
  801. package/out/recipes/street-affix.js.map +0 -1
  802. package/out/recipes/street-bare.d.ts +0 -25
  803. package/out/recipes/street-bare.d.ts.map +0 -1
  804. package/out/recipes/street-bare.js +0 -87
  805. package/out/recipes/street-bare.js.map +0 -1
  806. package/out/recipes/sub-venue-sources.d.ts +0 -229
  807. package/out/recipes/sub-venue-sources.d.ts.map +0 -1
  808. package/out/recipes/sub-venue-sources.js +0 -654
  809. package/out/recipes/sub-venue-sources.js.map +0 -1
  810. package/out/recipes/sub-venue.d.ts +0 -269
  811. package/out/recipes/sub-venue.d.ts.map +0 -1
  812. package/out/recipes/sub-venue.js +0 -726
  813. package/out/recipes/sub-venue.js.map +0 -1
  814. package/out/synthesizers/german.d.ts +0 -115
  815. package/out/synthesizers/german.d.ts.map +0 -1
  816. package/out/synthesizers/german.js +0 -149
  817. package/out/synthesizers/german.js.map +0 -1
  818. package/out/tools/fetch/acra-sg.d.ts +0 -23
  819. package/out/tools/fetch/acra-sg.d.ts.map +0 -1
  820. package/out/tools/fetch/acra-sg.js +0 -126
  821. package/out/tools/fetch/acra-sg.js.map +0 -1
  822. package/out/tools/fetch/ban.d.ts +0 -31
  823. package/out/tools/fetch/ban.d.ts.map +0 -1
  824. package/out/tools/fetch/ban.js +0 -239
  825. package/out/tools/fetch/ban.js.map +0 -1
  826. package/out/tools/fetch/download.d.ts +0 -182
  827. package/out/tools/fetch/download.d.ts.map +0 -1
  828. package/out/tools/fetch/download.js +0 -318
  829. package/out/tools/fetch/download.js.map +0 -1
  830. package/out/tools/fetch/gcis-tw.d.ts +0 -23
  831. package/out/tools/fetch/gcis-tw.d.ts.map +0 -1
  832. package/out/tools/fetch/gcis-tw.js +0 -135
  833. package/out/tools/fetch/gcis-tw.js.map +0 -1
  834. package/out/tools/fetch/geonames-dump.d.ts +0 -91
  835. package/out/tools/fetch/geonames-dump.d.ts.map +0 -1
  836. package/out/tools/fetch/geonames-dump.js +0 -171
  837. package/out/tools/fetch/geonames-dump.js.map +0 -1
  838. package/out/tools/fetch/geonames-postal.d.ts +0 -76
  839. package/out/tools/fetch/geonames-postal.d.ts.map +0 -1
  840. package/out/tools/fetch/geonames-postal.js +0 -126
  841. package/out/tools/fetch/geonames-postal.js.map +0 -1
  842. package/out/tools/fetch/houjin-jp.d.ts +0 -24
  843. package/out/tools/fetch/houjin-jp.d.ts.map +0 -1
  844. package/out/tools/fetch/houjin-jp.js +0 -102
  845. package/out/tools/fetch/houjin-jp.js.map +0 -1
  846. package/out/tools/fetch/hrsa.d.ts +0 -18
  847. package/out/tools/fetch/hrsa.d.ts.map +0 -1
  848. package/out/tools/fetch/hrsa.js +0 -46
  849. package/out/tools/fetch/hrsa.js.map +0 -1
  850. package/out/tools/fetch/imls-pls.d.ts +0 -25
  851. package/out/tools/fetch/imls-pls.d.ts.map +0 -1
  852. package/out/tools/fetch/imls-pls.js +0 -108
  853. package/out/tools/fetch/imls-pls.js.map +0 -1
  854. package/out/tools/fetch/juso-kr.d.ts +0 -30
  855. package/out/tools/fetch/juso-kr.d.ts.map +0 -1
  856. package/out/tools/fetch/juso-kr.js +0 -120
  857. package/out/tools/fetch/juso-kr.js.map +0 -1
  858. package/out/tools/fetch/localdata-kr.d.ts +0 -30
  859. package/out/tools/fetch/localdata-kr.d.ts.map +0 -1
  860. package/out/tools/fetch/localdata-kr.js +0 -139
  861. package/out/tools/fetch/localdata-kr.js.map +0 -1
  862. package/out/tools/fetch/nad.d.ts +0 -70
  863. package/out/tools/fetch/nad.d.ts.map +0 -1
  864. package/out/tools/fetch/nad.js +0 -234
  865. package/out/tools/fetch/nad.js.map +0 -1
  866. package/out/tools/fetch/nppes.d.ts +0 -26
  867. package/out/tools/fetch/nppes.d.ts.map +0 -1
  868. package/out/tools/fetch/nppes.js +0 -126
  869. package/out/tools/fetch/nppes.js.map +0 -1
  870. package/out/tools/fetch/state-hi-schools.d.ts +0 -26
  871. package/out/tools/fetch/state-hi-schools.d.ts.map +0 -1
  872. package/out/tools/fetch/state-hi-schools.js +0 -112
  873. package/out/tools/fetch/state-hi-schools.js.map +0 -1
  874. package/out/tools/fetch/state-sources.d.ts +0 -26
  875. package/out/tools/fetch/state-sources.d.ts.map +0 -1
  876. package/out/tools/fetch/state-sources.js +0 -111
  877. package/out/tools/fetch/state-sources.js.map +0 -1
  878. package/out/tools/fetch/tiger-full.d.ts +0 -22
  879. package/out/tools/fetch/tiger-full.d.ts.map +0 -1
  880. package/out/tools/fetch/tiger-full.js +0 -217
  881. package/out/tools/fetch/tiger-full.js.map +0 -1
  882. package/out/tools/golden-expand.d.ts +0 -90
  883. package/out/tools/golden-expand.d.ts.map +0 -1
  884. package/out/tools/golden-expand.js +0 -406
  885. package/out/tools/golden-expand.js.map +0 -1
  886. package/out/tools/golden-promote.d.ts +0 -72
  887. package/out/tools/golden-promote.d.ts.map +0 -1
  888. package/out/tools/golden-promote.js +0 -240
  889. package/out/tools/golden-promote.js.map +0 -1
  890. package/out/tools/golden-relabel-street.d.ts +0 -196
  891. package/out/tools/golden-relabel-street.d.ts.map +0 -1
  892. package/out/tools/golden-relabel-street.js +0 -439
  893. package/out/tools/golden-relabel-street.js.map +0 -1
  894. package/out/tools/lint-slice-vocab.d.ts +0 -90
  895. package/out/tools/lint-slice-vocab.d.ts.map +0 -1
  896. package/out/tools/lint-slice-vocab.js +0 -267
  897. package/out/tools/lint-slice-vocab.js.map +0 -1
  898. package/out/tools/lint-slice.d.ts +0 -93
  899. package/out/tools/lint-slice.d.ts.map +0 -1
  900. package/out/tools/lint-slice.js +0 -322
  901. package/out/tools/lint-slice.js.map +0 -1
  902. package/out/tools/slice-kryptonite.d.ts +0 -32
  903. package/out/tools/slice-kryptonite.d.ts.map +0 -1
  904. package/out/tools/slice-kryptonite.js +0 -99
  905. package/out/tools/slice-kryptonite.js.map +0 -1
  906. package/out/tools/slice-translit.d.ts +0 -51
  907. package/out/tools/slice-translit.d.ts.map +0 -1
  908. package/out/tools/slice-translit.js +0 -166
  909. package/out/tools/slice-translit.js.map +0 -1
  910. package/out/tools/sub-venue/harvest.d.ts +0 -100
  911. package/out/tools/sub-venue/harvest.d.ts.map +0 -1
  912. package/out/tools/sub-venue/harvest.js +0 -168
  913. package/out/tools/sub-venue/harvest.js.map +0 -1
  914. package/out/tools/sub-venue/head-nouns.d.ts +0 -50
  915. package/out/tools/sub-venue/head-nouns.d.ts.map +0 -1
  916. package/out/tools/sub-venue/head-nouns.js.map +0 -1
  917. package/out/tools/sub-venue/surfaces.d.ts +0 -45
  918. package/out/tools/sub-venue/surfaces.d.ts.map +0 -1
  919. package/out/tools/sub-venue/surfaces.js.map +0 -1
  920. package/out/tools/sub-venue/table.d.ts +0 -229
  921. package/out/tools/sub-venue/table.d.ts.map +0 -1
  922. package/out/tools/sub-venue/table.js.map +0 -1
  923. package/out/tools/sub-venue/wikidata.d.ts +0 -26
  924. package/out/tools/sub-venue/wikidata.d.ts.map +0 -1
  925. package/out/tools/sub-venue/wikidata.js +0 -62
  926. package/out/tools/sub-venue/wikidata.js.map +0 -1
  927. package/out/tools/sub-venue-lexicon.d.ts +0 -156
  928. package/out/tools/sub-venue-lexicon.d.ts.map +0 -1
  929. package/out/tools/sub-venue-lexicon.js +0 -283
  930. package/out/tools/sub-venue-lexicon.js.map +0 -1
  931. package/out/tools/sub-venue-promotions.d.ts +0 -94
  932. package/out/tools/sub-venue-promotions.d.ts.map +0 -1
  933. package/out/tools/sub-venue-promotions.js +0 -266
  934. package/out/tools/sub-venue-promotions.js.map +0 -1
  935. /package/lib/{recipes/cn-organizational-units.ts → cn/recipes/organizational-units.ts} +0 -0
  936. /package/lib/{recipes/cz-pcfirst-preposition.ts → cz/recipes/pcfirst-preposition.ts} +0 -0
  937. /package/lib/{adapters → fr/adapters}/ban/street-decompose.ts +0 -0
  938. /package/lib/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.ts +0 -0
  939. /package/lib/{recipes/nl-postcode.ts → nl/recipes/postcode.ts} +0 -0
  940. /package/lib/{recipes/no-fragment.ts → no/recipes/fragment.ts} +0 -0
  941. /package/lib/{recipes/no-street.ts → no/recipes/street/index.ts} +0 -0
  942. /package/lib/{recipes/no-street-led.ts → no/recipes/street/led.ts} +0 -0
  943. /package/lib/recipes/{bare-country.ts → bare/country.ts} +0 -0
  944. /package/lib/recipes/{street-bare.ts → street/bare.ts} +0 -0
  945. /package/lib/{recipes/si-bare-village.ts → si/recipes/bare-village.ts} +0 -0
  946. /package/lib/tools/{golden-expand.ts → golden/expand.ts} +0 -0
  947. /package/lib/tools/{lint-slice.ts → lint/slice/index.ts} +0 -0
  948. /package/lib/tools/{slice-kryptonite.ts → slice/kryptonite.ts} +0 -0
  949. /package/lib/tools/{slice-translit.ts → slice/translit.ts} +0 -0
  950. /package/lib/tools/{sub-venue-promotions.ts → sub/venue/promotions.ts} +0 -0
  951. /package/lib/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.ts +0 -0
  952. /package/lib/{adapters → us/adapters}/tiger/street-decompose.ts +0 -0
  953. /package/lib/{codex/us-fips-state.ts → us/fips-state.ts} +0 -0
  954. /package/lib/{recipes → ve/recipes}/reviewed-postcode-tail.ts +0 -0
  955. /package/out/adapters/{geonames-postal → geonames/postal}/adapter.d.ts +0 -0
  956. /package/out/{adapters → au/adapters}/gnaf/adapter.d.ts +0 -0
  957. /package/out/{adapters → fr/adapters}/ban/adapter.d.ts +0 -0
  958. /package/out/{adapters → fr/adapters}/ban/street-decompose.d.ts +0 -0
  959. /package/out/{adapters → fr/adapters}/ban/street-decompose.js +0 -0
  960. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.d.ts +0 -0
  961. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.js +0 -0
  962. /package/out/tools/{sub-venue → sub/venue}/head-nouns.js +0 -0
  963. /package/out/tools/{sub-venue → sub/venue}/surfaces.js +0 -0
  964. /package/out/tools/{sub-venue → sub/venue}/table.js +0 -0
  965. /package/out/{adapters → us/adapters}/fcc-bdc/adapter.d.ts +0 -0
  966. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/adapter.d.ts +0 -0
  967. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.d.ts +0 -0
  968. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.js +0 -0
  969. /package/out/{adapters/state-ia-contractors → us/adapters/state/ia-contractors}/adapter.d.ts +0 -0
  970. /package/out/{adapters/state-ny-notaries → us/adapters/state/ny-notaries}/adapter.d.ts +0 -0
  971. /package/out/{adapters/state-tx-notaries → us/adapters/state/tx-notaries}/adapter.d.ts +0 -0
  972. /package/out/{adapters → us/adapters}/tiger/street-decompose.d.ts +0 -0
  973. /package/out/{adapters → us/adapters}/tiger/street-decompose.js +0 -0
  974. /package/out/{adapters/usgov-hrsa-fqhc → us/adapters/usgov/hrsa-fqhc}/adapter.d.ts +0 -0
  975. /package/out/{adapters/usgov-imls-pls → us/adapters/usgov/imls-pls}/adapter.d.ts +0 -0
  976. /package/out/{adapters/usgov-irs-bmf → us/adapters/usgov/irs-bmf}/adapter.d.ts +0 -0
  977. /package/out/{adapters/usgov-nad → us/adapters/usgov/nad}/adapter.d.ts +0 -0
  978. /package/out/{adapters/usgov-nppes → us/adapters/usgov/nppes}/adapter.d.ts +0 -0
  979. /package/out/{adapters/usgov-samhsa-treatment-locator → us/adapters/usgov/samhsa-treatment-locator}/adapter.d.ts +0 -0
  980. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.d.ts +0 -0
  981. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.js +0 -0
@@ -1,193 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * `usgov-samhsa-treatment-locator`: SAMHSA Behavioral Health Treatment Services Locator CSV
7
- * consumer.
8
- *
9
- * SAMHSA's Treatment Locator (`findtreatment.gov`) is the federal directory of substance-use and
10
- * mental-health treatment facilities. The published CSV carries the facility name, an optional
11
- * secondary name (typically the organizational parent), and the postal address quad split into
12
- * primary + secondary street lines. Phase 1.6 §1.2 (#22) selects this source for the same reason
13
- * it selects HRSA: facility names are hand-typed venue strings and the addresses pass through
14
- * enough human + system hands to accumulate the suite-designator + sub-tenant chaos ("Suite C,
15
- * behind main building") that pure gazetteer data does not.
16
- *
17
- * SAMHSA's two-line address shape is the key adapter-specific concern. `street1` typically carries
18
- * the canonical postal address (`"123 Main St"`); `street2` carries the suite / unit / "second
19
- * floor" surface form. The adapter joins them with `", "` into a single `street` component (Phase
20
- * 1 keeps `unit` as a deferred slot since the OpenCage template doesn't have a clean rendering
21
- * for it). Operators wanting a different join policy can subclass the factory.
22
- *
23
- * Column names below match the canonical SAMHSA Behavioral Health Treatment Services Locator CSV
24
- * export header. Operators substituting a closely-related extract should rename columns to match;
25
- * the README has the mapping cheatsheet.
26
- *
27
- * License: stamped `"Public Domain"` per the SAMHSA Open Data Foundry's federal-government
28
- * distribution terms.
29
- */
30
-
31
- import { reconcileComponents } from "@mailwoman/formatter"
32
- import { CSVSpliterator } from "spliterator"
33
-
34
- import { composeRaw, splitStreetLine, stableSourceID } from "#adapters/utils"
35
- import { lookupStateAbbreviation } from "#codex/us-fips-state"
36
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
37
-
38
- /**
39
- * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
40
- * it came from.
41
- */
42
- export const USGOV_SAMHSA_ADAPTER_ID = "usgov-samhsa-treatment-locator"
43
- /**
44
- * License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
45
- * than having to look them up.
46
- */
47
- export const USGOV_SAMHSA_DEFAULT_LICENSE = "Public Domain"
48
-
49
- /**
50
- * Subset of SAMHSA Treatment Locator CSV columns consulted by the adapter. Column names match the canonical SAMHSA Open
51
- * Data Foundry export header. `name1` is the venue; `name2` is optional and folded into the venue when present.
52
- */
53
- interface SamhsaSiteRow {
54
- name1: string
55
- name2?: string
56
- street1: string
57
- street2?: string
58
- city: string
59
- state: string
60
- zip: string
61
- /**
62
- * Optional. Falls back to `stableSourceID` derived from components when missing.
63
- */
64
- frid?: string
65
- }
66
-
67
- /**
68
- * Join the SAMHSA two-line street: primary street + optional secondary line (suite / unit / floor / "behind main
69
- * building") on `", "`. The combined value is the `street` component surface form. Phase 1 does not break this out into
70
- * the `unit` component — see the file-level comment.
71
- */
72
- function joinTwoLineStreet(street1: string, street2: string | undefined): string {
73
- const s1 = street1.trim()
74
- const s2 = (street2 ?? "").trim()
75
-
76
- if (!s1 && !s2) return ""
77
-
78
- if (!s2) return s1
79
-
80
- if (!s1) return s2
81
-
82
- return `${s1}, ${s2}`
83
- }
84
-
85
- /**
86
- * Combine `name1` + optional `name2` into a single venue surface form. SAMHSA conventions:
87
- *
88
- * - `name1` is the program / clinic name ("Mountain Plains Counseling Services").
89
- * - `name2` is the parent organization ("Catholic Charities of Wyoming"), if any.
90
- *
91
- * Both render together as `"<name1> - <name2>"` when both are present — geocoder users typically type either form, so
92
- * the model benefits from the joined surface.
93
- */
94
- function composeVenue(name1: string, name2: string | undefined): string {
95
- const n1 = name1.trim()
96
- const n2 = (name2 ?? "").trim()
97
-
98
- if (!n1 && !n2) return ""
99
-
100
- if (!n2) return n1
101
-
102
- if (!n1) return n2
103
-
104
- return `${n1} - ${n2}`
105
- }
106
-
107
- export function createUsgovSamhsaTreatmentLocatorAdapter(): CorpusAdapter {
108
- return {
109
- id: USGOV_SAMHSA_ADAPTER_ID,
110
- defaultLicense: USGOV_SAMHSA_DEFAULT_LICENSE,
111
- description:
112
- "SAMHSA Behavioral Health Treatment Services Locator (public-domain). Adversarial source: venue + two-line address co-occurrence, hand-entered.",
113
-
114
- async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
115
- if (opts.country && opts.country !== "US") {
116
- throw new Error(`usgov-samhsa adapter: only US supported, got country=${opts.country}`)
117
- }
118
-
119
- const rows = CSVSpliterator.fromAsync(opts.inputPath, {
120
- mode: "object",
121
- normalizeKeys: false,
122
- enableQuoteHandling: true,
123
- })
124
-
125
- let emitted = 0
126
-
127
- for await (const record of rows as AsyncIterable<SamhsaSiteRow>) {
128
- if (opts.signal?.aborted) break
129
-
130
- if (opts.limit !== undefined && emitted >= opts.limit) break
131
-
132
- const venue = composeVenue(record.name1 ?? "", record.name2)
133
- const street = joinTwoLineStreet(record.street1 ?? "", record.street2)
134
- const split = splitStreetLine(street)
135
- const city = (record.city ?? "").trim()
136
- const stateAbbr = (record.state ?? "").trim()
137
- const postcode = (record.zip ?? "").trim()
138
-
139
- if (!venue || !split || !city || !postcode) continue
140
- const state = lookupStateAbbreviation(stateAbbr)
141
-
142
- if (!state) continue
143
-
144
- // venue first — same kryptonite-defending insertion order as HRSA.
145
- const components: CanonicalRow["components"] = {
146
- venue,
147
- ...(split.house_number ? { house_number: split.house_number } : {}),
148
- street: split.street,
149
- locality: city,
150
- region: state.abbreviation,
151
- postcode,
152
- }
153
-
154
- const raw = composeRaw({
155
- venue,
156
- houseNumber: split.house_number,
157
- street: split.street,
158
- locality: city,
159
- region: state.abbreviation,
160
- postcode,
161
- })
162
-
163
- if (!raw) continue
164
-
165
- const aligned = reconcileComponents(components, raw)
166
-
167
- if (!Object.keys(aligned).length) continue
168
-
169
- const frID = (record.frid ?? "").trim()
170
-
171
- const sourceID = frID ? `${USGOV_SAMHSA_ADAPTER_ID}-${frID}` : stableSourceID(USGOV_SAMHSA_ADAPTER_ID, aligned)
172
-
173
- yield {
174
- raw,
175
- components: aligned,
176
- country: "US",
177
- locale: "en-US",
178
- source: USGOV_SAMHSA_ADAPTER_ID,
179
- source_id: sourceID,
180
- corpus_version: "",
181
- license: USGOV_SAMHSA_DEFAULT_LICENSE,
182
- }
183
-
184
- emitted++
185
- }
186
- },
187
- }
188
- }
189
-
190
- /**
191
- * The configured adapter instance registered with the corpus builder.
192
- */
193
- export const usgovSamhsaTreatmentLocatorAdapter = createUsgovSamhsaTreatmentLocatorAdapter()
@@ -1,231 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * `wof-admin`: Who's On First admin GeoJSON-bundle adapter.
7
- *
8
- * **Phase 1.5.1 pivot.** The original Phase 1.5 SQLite adapter (formerly at
9
- * `packages/corpus/lib/adapters/wof-admin/`, removed in this same change) was replaced by this
10
- * one because the SQLite distribution path was unworkable for the real corpus build:
11
- *
12
- * 1. `dist.whosonfirst.org/sqlite/` is dead (NXDOMAIN); the Geocode-Earth mirror is the only one.
13
- * 2. The Geocode-Earth-hosted postalcode DB tags every row `mz:is_current = -1` ("unknown but treated
14
- * as active"); the SQLite adapter's `is_current = 1` predicate emitted zero rows.
15
- * 3. The `names` table in the SQLite distribution is empty — localized `name:*` variants live in a
16
- * separate distribution. The St. Petersburg / Mt. Vernon / Ft. Lauderdale alternation cases
17
- * (the original Phase 1.5.1 motivator) cannot be solved on the SQLite path even with a
18
- * patched `is_current` predicate.
19
- *
20
- * Input: a directory containing one or more cloned `whosonfirst-data-admin-<cc>` GitHub repos. Each
21
- * repo has `data/XXX/YYY/ZZZ/<wof-id>.geojson` files; `**\/*.geojson` walks the tree recursively.
22
- * Alternate-geometry siblings (`-alt-*`) are skipped — they're separate exports of the same
23
- * record, not new records.
24
- *
25
- * Per record, the adapter emits one row per `(name-variant, hierarchy-variant)` pair:
26
- *
27
- * - **Name variants**: the canonical `wof:name` (slot key `default`) plus every `name:*` localized
28
- * variant present on the feature (`name:eng_x_preferred`, `name:eng_x_colloquial`,
29
- * `name:rus_x_preferred`, ...). This is the Phase 1.5.1 fix for the St. Petersburg case:
30
- * `"Saint Petersburg"` (canonical) and `"St. Petersburg"` (eng_x_colloquial) both become
31
- * training rows for the same WOF id.
32
- * - **Hierarchy variants** (unchanged from the SQLite adapter): locality → 3 variants, region → 2,
33
- * country → 1, county → 1.
34
- *
35
- * `source_id` is `wof-admin-<wof_id>-<name-slot>-<hierarchy-variant>`. The previous SQLite adapter
36
- * used `wof-admin-<wof_id>-<hierarchy-variant>` (no name slot); the new format adds a name-slot
37
- * segment so the colloquial / preferred / per-locale variants survive dedup independently.
38
- *
39
- * License: CC0. The adapter stamps every row with `CC0-1.0`.
40
- */
41
-
42
- import type { WhosOnFirstPlacetype } from "@mailwoman/core/resources/whosonfirst"
43
- import type { ComponentTag } from "@mailwoman/core/types"
44
-
45
- import {
46
- COUNTRY_DISPLAY_NAME,
47
- emitWOFJSONRows,
48
- LOCALE_BY_COUNTRY,
49
- nameSlotsFor as wofNameSlotsFor,
50
- type WOFVariantSpec,
51
- } from "#adapters/wof-json-rows"
52
- import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
53
- import { buildAncestryIndex, walkFeatures, type WOFRecord } from "#utils"
54
-
55
- /**
56
- * Map a WOF placetype to a Mailwoman `ComponentTag`, or `undefined` to skip.
57
- *
58
- * Per-adapter deliberately (the postalcode adapter carries its own): each table is a record FILTER for its adapter's
59
- * emission set, not a shared vocabulary.
60
- */
61
- function placetypeToTag(placetype: WhosOnFirstPlacetype | string): ComponentTag | undefined {
62
- switch (placetype) {
63
- case "country":
64
- case "nation":
65
- return "country"
66
- case "macroregion":
67
- case "region":
68
- return "region"
69
- case "macrocounty":
70
- case "county":
71
- case "localadmin":
72
- return "subregion"
73
- case "locality":
74
- return "locality"
75
- case "borough":
76
- case "macrohood":
77
- case "neighbourhood":
78
- case "microhood":
79
- return "dependent_locality"
80
- default:
81
- return undefined
82
- }
83
- }
84
-
85
- /**
86
- * Compute the hierarchy variants for a record given its ancestry chain and the chosen `selfName`.
87
- *
88
- * `selfName` is the surface form to use for the record's own component (locality / region / country / subregion).
89
- * Callers pass the canonical `wof:name` for the `"default"` slot and a `name:*` localized value for variant slots;
90
- * ancestor names always come from the ancestor's canonical `wof:name`.
91
- *
92
- * Country variants substitute `COUNTRY_DISPLAY_NAME` for the default slot so the OpenCage template produces the
93
- * canonicalized form (`"United States of America"`), matching the legacy SQLite adapter's behavior.
94
- */
95
- export function variantsFor(row: WOFRecord, ancestry: WOFRecord[], selfName: string): WOFVariantSpec[] {
96
- const selfTag = placetypeToTag(row.placetype)
97
-
98
- if (!selfTag) return []
99
-
100
- const region = ancestry.find((a) => placetypeToTag(a.placetype) === "region")
101
- const country = ancestry.find((a) => placetypeToTag(a.placetype) === "country")
102
- const countryDisplay = COUNTRY_DISPLAY_NAME[row.country] ?? country?.name ?? row.country
103
-
104
- const variants: WOFVariantSpec[] = []
105
-
106
- switch (selfTag) {
107
- case "locality":
108
- case "dependent_locality": {
109
- variants.push({ suffix: "self", components: { [selfTag]: selfName } })
110
-
111
- if (region) {
112
- variants.push({
113
- suffix: "with-region",
114
- components: { [selfTag]: selfName, region: region.name },
115
- })
116
- }
117
-
118
- if (region && country) {
119
- variants.push({
120
- suffix: "with-region-country",
121
- components: { [selfTag]: selfName, region: region.name, country: countryDisplay },
122
- })
123
- } else if (!region && country) {
124
- variants.push({
125
- suffix: "with-country",
126
- components: { [selfTag]: selfName, country: countryDisplay },
127
- })
128
- }
129
-
130
- return variants
131
- }
132
-
133
- case "region": {
134
- variants.push({ suffix: "self", components: { region: selfName } })
135
-
136
- if (country) {
137
- variants.push({
138
- suffix: "with-country",
139
- components: { region: selfName, country: countryDisplay },
140
- })
141
- }
142
-
143
- return variants
144
- }
145
-
146
- case "country": {
147
- variants.push({ suffix: "self", components: { country: selfName } })
148
-
149
- return variants
150
- }
151
-
152
- case "subregion": {
153
- variants.push({ suffix: "self", components: { subregion: selfName } })
154
-
155
- return variants
156
- }
157
-
158
- default:
159
- return []
160
- }
161
- }
162
-
163
- /**
164
- * Build the per-record name-slot list. The canonical `"default"` slot uses the OpenCage-canonical country form when the
165
- * record is itself a country (matches SQLite-adapter behavior); every other placetype's default slot uses `wof:name`
166
- * verbatim.
167
- */
168
- export function nameSlotsFor(rec: WOFRecord): Array<{ key: string; value: string }> {
169
- return wofNameSlotsFor(rec, {
170
- canonicalName: (record) =>
171
- placetypeToTag(record.placetype) === "country"
172
- ? (COUNTRY_DISPLAY_NAME[record.country] ?? record.name)
173
- : record.name,
174
- })
175
- }
176
-
177
- /**
178
- * Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
179
- * it came from.
180
- */
181
- export const WOF_ADMIN_ADAPTER_ID = "wof-admin"
182
-
183
- /**
184
- * Construct the wof-admin JSON-bundle adapter. The adapter is stateless across runs; calling this twice with the same
185
- * input directory produces byte-identical `canonical.jsonl` (records are emitted in sorted `wof:id` order to be
186
- * insensitive to filesystem walk ordering).
187
- */
188
- export function createWOFAdminAdapter(): CorpusAdapter {
189
- return {
190
- id: WOF_ADMIN_ADAPTER_ID,
191
- defaultLicense: "CC0-1.0",
192
- description:
193
- "Who's On First admin GeoJSON bundles (countries, regions, counties, localities) — multi-name variants per record.",
194
-
195
- async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
196
- // Pass 1: scan every GeoJSON file once, build the in-memory record index.
197
- // We keep only records whose placetype maps to a ComponentTag — irrelevant placetypes
198
- // (campus, county-region hybrids on which Mailwoman has no opinion) are dropped here so
199
- // they don't inflate the ancestry index. Country-filtered runs prune to the matching
200
- // country code too; the ancestors of a same-country record live in the same admin repo.
201
- const byID = new Map<number, WOFRecord>()
202
-
203
- for await (const rec of walkFeatures(opts.inputPath, { signal: opts.signal })) {
204
- if (opts.signal?.aborted) return
205
-
206
- if (opts.country && rec.country !== opts.country) continue
207
-
208
- if (!placetypeToTag(rec.placetype)) continue
209
- byID.set(rec.id, rec)
210
- }
211
-
212
- const ancestry = buildAncestryIndex(byID)
213
-
214
- // Pass 2: emit rows in sorted-id order for deterministic JSONL.
215
- yield* emitWOFJSONRows({
216
- records: byID,
217
- ancestry,
218
- adapterOptions: opts,
219
- adapterID: WOF_ADMIN_ADAPTER_ID,
220
- localeByCountry: LOCALE_BY_COUNTRY,
221
- nameSlotsFor,
222
- variantsFor,
223
- })
224
- },
225
- }
226
- }
227
-
228
- /**
229
- * Single shared instance, suitable for `defaultAdapterRegistry`.
230
- */
231
- export const wofAdminAdapter = createWOFAdminAdapter()
@@ -1,129 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- * @file Deterministic canonical-row emission shared by WOF GeoJSON adapters.
6
- */
7
-
8
- import type { ComponentTag } from "@mailwoman/core/types"
9
- import { formatAddress, reconcileComponents } from "@mailwoman/formatter"
10
-
11
- import type { AdapterOptions, CanonicalRow } from "#types"
12
- import { normalizeNameKey, type WOFRecord } from "#utils"
13
-
14
- /**
15
- * Display name for the country, keyed by ISO 3166-1 alpha-2.
16
- *
17
- * Must be the **OpenCage-canonical** surface form: the `address-formatter` library expands some country names en route
18
- * to its output (e.g. `"United States"` → `"United States of America"`). If `components.country` and the formatted
19
- * `raw` disagree, alignment will fail downstream. Keying off the canonical form keeps the two in lockstep.
20
- *
21
- * Phase 1 US + FR only; extend as new locales come online. Missing countries fall back to the country row's `wof:name`,
22
- * accepting the alignment risk for non-canonicalized names.
23
- */
24
- export const COUNTRY_DISPLAY_NAME: Record<string, string> = {
25
- US: "United States of America",
26
- FR: "France",
27
- }
28
-
29
- /**
30
- * BCP-47 locale defaulting for the corpus row's `locale` field. Defaulted by country.
31
- */
32
- export const LOCALE_BY_COUNTRY: Record<string, string> = {
33
- US: "en-US",
34
- FR: "fr-FR",
35
- }
36
-
37
- export interface WOFVariantSpec {
38
- suffix: string
39
- components: Partial<Record<ComponentTag, string>>
40
- }
41
-
42
- export interface NameSlotOptions {
43
- /**
44
- * Canonical surface for the record's own `"default"` slot. Default `rec.name` verbatim; the admin adapter substitutes
45
- * the OpenCage-canonical {@link COUNTRY_DISPLAY_NAME} for country records.
46
- */
47
- canonicalName?: (rec: WOFRecord) => string
48
- }
49
-
50
- /**
51
- * Build the per-record name-slot list: the canonical `"default"` slot, then every `name:*` variant deduplicated against
52
- * it so a redundant `"default"`-equivalent row is not emitted under a localized key.
53
- */
54
- export function nameSlotsFor(rec: WOFRecord, options: NameSlotOptions = {}): Array<{ key: string; value: string }> {
55
- const canonicalSelfName = options.canonicalName?.(rec) ?? rec.name
56
-
57
- const seen = new Set<string>([canonicalSelfName])
58
- const slots: Array<{ key: string; value: string }> = [{ key: "default", value: canonicalSelfName }]
59
-
60
- for (const [rawKey, value] of rec.nameVariants) {
61
- if (seen.has(value)) continue
62
- seen.add(value)
63
- slots.push({ key: normalizeNameKey(rawKey), value })
64
- }
65
-
66
- return slots
67
- }
68
-
69
- interface EmitWOFJSONRowsOptions {
70
- records: ReadonlyMap<number, WOFRecord>
71
- ancestry: ReadonlyMap<number, WOFRecord[]>
72
- adapterOptions: AdapterOptions
73
- adapterID: string
74
- localeByCountry: Readonly<Record<string, string>>
75
- shouldEmit?: (record: WOFRecord) => boolean
76
- nameSlotsFor: (record: WOFRecord) => Array<{ key: string; value: string }>
77
- variantsFor: (record: WOFRecord, ancestry: WOFRecord[], selfName: string) => WOFVariantSpec[]
78
- }
79
-
80
- /**
81
- * Emit aligned rows in WOF-id order, enforcing the adapter limit across all name and hierarchy variants.
82
- */
83
- export function* emitWOFJSONRows(options: EmitWOFJSONRowsOptions): Generator<CanonicalRow> {
84
- const {
85
- records,
86
- ancestry,
87
- adapterOptions,
88
- adapterID,
89
- localeByCountry,
90
- shouldEmit = () => true,
91
- nameSlotsFor: slotsForRecord,
92
- variantsFor,
93
- } = options
94
-
95
- let emitted = 0
96
-
97
- for (const id of [...records.keys()].toSorted((a, b) => a - b)) {
98
- if (adapterOptions.signal?.aborted) return
99
- const record = records.get(id)!
100
-
101
- if (!shouldEmit(record)) continue
102
-
103
- for (const slot of slotsForRecord(record)) {
104
- for (const variant of variantsFor(record, ancestry.get(id) ?? [], slot.value)) {
105
- if (adapterOptions.limit !== undefined && emitted >= adapterOptions.limit) return
106
-
107
- const raw = formatAddress(variant.components, record.country, { separator: ", " })
108
-
109
- if (!raw) continue
110
- const components = reconcileComponents(variant.components, raw)
111
-
112
- if (!Object.keys(components).length) continue
113
-
114
- yield {
115
- raw,
116
- components,
117
- country: record.country,
118
- locale: localeByCountry[record.country],
119
- source: adapterID,
120
- source_id: `${adapterID}-${record.id}-${slot.key}-${variant.suffix}`,
121
- corpus_version: "",
122
- license: "CC0-1.0",
123
- }
124
-
125
- emitted++
126
- }
127
- }
128
- }
129
- }