@mailwoman/corpus 9.3.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 (991) 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/cz/recipes/pcfirst-preposition.ts +112 -0
  15. package/lib/de/recipes/locale.ts +360 -0
  16. package/lib/fr/adapters/ban/adapter.ts +159 -0
  17. package/lib/fr/recipes/admin-split.ts +243 -0
  18. package/lib/fr/recipes/bare-street.ts +171 -0
  19. package/lib/fr/recipes/fragment.ts +334 -0
  20. package/lib/fr/recipes/lieudit.ts +274 -0
  21. package/lib/fr/recipes/order.ts +246 -0
  22. package/lib/fr/tools/fetch/ban.ts +289 -0
  23. package/lib/index.ts +1 -1
  24. package/lib/international/recipes/locale.ts +598 -0
  25. package/lib/jp/tools/fetch/houjin.ts +141 -0
  26. package/lib/kr/adapters/juso/label-rows.ts +259 -0
  27. package/lib/kr/adapters/localdata/align.ts +299 -0
  28. package/lib/kr/adapters/localdata/key-index.ts +185 -0
  29. package/lib/kr/adapters/localdata/permit-rows.ts +186 -0
  30. package/lib/kr/tools/fetch/juso.ts +172 -0
  31. package/lib/kr/tools/fetch/localdata.ts +206 -0
  32. package/lib/nl/recipes/postcode.ts +117 -0
  33. package/lib/no/recipes/fragment.ts +213 -0
  34. package/lib/no/recipes/street/index.ts +91 -0
  35. package/lib/no/recipes/street/led.ts +135 -0
  36. package/lib/recipes/anchor-absorption.ts +2 -2
  37. package/lib/recipes/bare/country.ts +95 -0
  38. package/lib/recipes/bare/postcode/eval.ts +99 -0
  39. package/lib/recipes/bare/postcode/index.ts +327 -0
  40. package/lib/recipes/boundary-stress.ts +3 -1
  41. package/lib/recipes/country-balanced.ts +3 -2
  42. package/lib/recipes/house-venue.ts +2 -1
  43. package/lib/recipes/index.ts +28 -21
  44. package/lib/recipes/intersection.ts +3 -2
  45. package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
  46. package/lib/recipes/po/box/cedex/ca.ts +58 -0
  47. package/lib/recipes/po/box/cedex/fr.ts +76 -0
  48. package/lib/recipes/po/box/cedex/phrases.ts +108 -0
  49. package/lib/recipes/po/box/cedex/recipe.ts +203 -0
  50. package/lib/recipes/po/box/cedex/sources.ts +189 -0
  51. package/lib/recipes/po/box/cedex/types.ts +35 -0
  52. package/lib/recipes/po/box/cedex/us.ts +69 -0
  53. package/lib/recipes/po/box/cedex/vocabulary.ts +106 -0
  54. package/lib/recipes/po/box/cedex.ts +9 -0
  55. package/lib/recipes/po/box/index.ts +128 -0
  56. package/lib/recipes/scaffold.ts +18 -42
  57. package/lib/recipes/street/affix.ts +807 -0
  58. package/lib/recipes/street/bare.ts +102 -0
  59. package/lib/recipes/street.ts +3 -1
  60. package/lib/recipes/sub/venue/context.ts +149 -0
  61. package/lib/recipes/sub/venue/index.ts +997 -0
  62. package/lib/recipes/sub/venue/sources.ts +739 -0
  63. package/lib/recipes/trailing-region.ts +9 -9
  64. package/lib/recipes/unit.ts +3 -3
  65. package/lib/sg/recipes/register.ts +270 -0
  66. package/lib/sg/tools/fetch/acra.ts +179 -0
  67. package/lib/si/recipes/bare-village.ts +99 -0
  68. package/lib/south-asia/recipes/register.ts +214 -0
  69. package/lib/synthesizers/anchor-absorption.ts +1 -1
  70. package/lib/synthesizers/locale.ts +261 -0
  71. package/lib/synthesizers/street.ts +1 -1
  72. package/lib/synthesizers/utils.ts +2 -2
  73. package/lib/tools/audit.ts +3 -2
  74. package/lib/tools/corpus-stats.ts +3 -3
  75. package/lib/tools/fetch/download/index.ts +10 -0
  76. package/lib/tools/fetch/download/manifest.ts +102 -0
  77. package/lib/tools/fetch/download/network.ts +226 -0
  78. package/lib/tools/fetch/download/retry.ts +173 -0
  79. package/lib/tools/fetch/geonames/dump.ts +257 -0
  80. package/lib/tools/fetch/geonames/postal.ts +180 -0
  81. package/lib/tools/fetch/index.ts +47 -20
  82. package/lib/tools/fetch/openaddresses.ts +2 -2
  83. package/lib/tools/fetch/ourairports.ts +2 -2
  84. package/lib/tools/fetch/ppd.ts +1 -3
  85. package/lib/tools/fetch/wikidata-subvenue.ts +2 -2
  86. package/lib/tools/golden/promote.ts +340 -0
  87. package/lib/tools/golden/relabel-street/directory.ts +340 -0
  88. package/lib/tools/golden/relabel-street/index.ts +9 -0
  89. package/lib/tools/golden/relabel-street/row.ts +361 -0
  90. package/lib/tools/index.ts +10 -10
  91. package/lib/tools/ingest-csv.ts +5 -7
  92. package/lib/tools/lint/slice/vocab.ts +376 -0
  93. package/lib/tools/overlay-manifest.ts +92 -25
  94. package/lib/tools/overture-subvenue.ts +1 -1
  95. package/lib/tools/postcode-triples.ts +138 -14
  96. package/lib/tools/sub/venue/harvest.ts +234 -0
  97. package/lib/tools/sub/venue/head-nouns.ts +245 -0
  98. package/lib/tools/sub/venue/lexicon.ts +429 -0
  99. package/lib/tools/sub/venue/surfaces.ts +95 -0
  100. package/lib/tools/sub/venue/table.ts +281 -0
  101. package/lib/tools/sub/venue/wikidata.ts +85 -0
  102. package/lib/tw/tools/fetch/gcis.ts +180 -0
  103. package/lib/types.ts +1 -1
  104. package/lib/us/adapters/fcc-bdc/adapter.ts +173 -0
  105. package/lib/us/adapters/state/hi-schools/adapter.ts +160 -0
  106. package/lib/us/adapters/state/ia-contractors/adapter.ts +136 -0
  107. package/lib/us/adapters/state/ny-notaries/adapter.ts +133 -0
  108. package/lib/us/adapters/state/tx-notaries/adapter.ts +149 -0
  109. package/lib/us/adapters/tiger/adapter.ts +250 -0
  110. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +156 -0
  111. package/lib/us/adapters/usgov/imls-pls/adapter.ts +134 -0
  112. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +145 -0
  113. package/lib/us/adapters/usgov/nad/adapter.ts +324 -0
  114. package/lib/us/adapters/usgov/nppes/adapter.ts +143 -0
  115. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +182 -0
  116. package/lib/us/tools/fetch/hrsa.ts +59 -0
  117. package/lib/us/tools/fetch/imls-pls.ts +149 -0
  118. package/lib/us/tools/fetch/nad.ts +341 -0
  119. package/lib/us/tools/fetch/nppes.ts +165 -0
  120. package/lib/us/tools/fetch/state/hi-schools.ts +161 -0
  121. package/lib/us/tools/fetch/state/sources.ts +146 -0
  122. package/lib/us/tools/fetch/tiger-full.ts +308 -0
  123. package/lib/utils/align.ts +1 -1
  124. package/lib/utils/golden.ts +12 -8
  125. package/lib/utils/wof-json.ts +7 -13
  126. package/out/adapters/geonames/adapter.d.ts +1 -1
  127. package/out/adapters/geonames/adapter.js +3 -3
  128. package/out/adapters/geonames/adapter.js.map +1 -1
  129. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -0
  130. package/out/adapters/geonames/postal/adapter.js +107 -0
  131. package/out/adapters/geonames/postal/adapter.js.map +1 -0
  132. package/out/adapters/index.d.ts +16 -16
  133. package/out/adapters/index.d.ts.map +1 -1
  134. package/out/adapters/index.js +34 -32
  135. package/out/adapters/index.js.map +1 -1
  136. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  137. package/out/adapters/openaddresses/adapter.js +4 -6
  138. package/out/adapters/openaddresses/adapter.js.map +1 -1
  139. package/out/adapters/osm/adapter.d.ts +95 -0
  140. package/out/adapters/osm/adapter.d.ts.map +1 -0
  141. package/out/adapters/osm/adapter.js +211 -0
  142. package/out/adapters/osm/adapter.js.map +1 -0
  143. package/out/adapters/overture/adapter.d.ts +10 -0
  144. package/out/adapters/overture/adapter.d.ts.map +1 -1
  145. package/out/adapters/overture/adapter.js +20 -7
  146. package/out/adapters/overture/adapter.js.map +1 -1
  147. package/out/adapters/synth-po-box/adapter.js.map +1 -1
  148. package/out/adapters/utils/index.d.ts +1 -1
  149. package/out/adapters/utils/index.d.ts.map +1 -1
  150. package/out/adapters/utils/index.js.map +1 -1
  151. package/out/adapters/wof/admin/json/adapter.d.ts +79 -0
  152. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -0
  153. package/out/adapters/wof/admin/json/adapter.js +204 -0
  154. package/out/adapters/wof/admin/json/adapter.js.map +1 -0
  155. package/out/adapters/wof/json-rows.d.ts +73 -0
  156. package/out/adapters/wof/json-rows.d.ts.map +1 -0
  157. package/out/adapters/wof/json-rows.js +115 -0
  158. package/out/adapters/wof/json-rows.js.map +1 -0
  159. package/out/adapters/wof/postalcode-json/adapter.d.ts +65 -0
  160. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -0
  161. package/out/adapters/wof/postalcode-json/adapter.js +167 -0
  162. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
  163. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
  164. package/out/au/adapters/gnaf/adapter.js +127 -0
  165. package/out/au/adapters/gnaf/adapter.js.map +1 -0
  166. package/out/au/adapters/gnaf/assemble.d.ts +65 -0
  167. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
  168. package/out/au/adapters/gnaf/assemble.js +154 -0
  169. package/out/au/adapters/gnaf/assemble.js.map +1 -0
  170. package/out/cn/recipes/organizational-units.d.ts +36 -0
  171. package/out/cn/recipes/organizational-units.d.ts.map +1 -0
  172. package/out/cn/recipes/organizational-units.js +159 -0
  173. package/out/cn/recipes/organizational-units.js.map +1 -0
  174. package/out/cz/recipes/pcfirst-preposition.d.ts +22 -0
  175. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
  176. package/out/cz/recipes/pcfirst-preposition.js +101 -0
  177. package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
  178. package/out/de/recipes/locale.d.ts +44 -0
  179. package/out/de/recipes/locale.d.ts.map +1 -0
  180. package/out/de/recipes/locale.js +289 -0
  181. package/out/de/recipes/locale.js.map +1 -0
  182. package/out/env.d.ts +1 -1
  183. package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
  184. package/out/fr/adapters/ban/adapter.js +123 -0
  185. package/out/fr/adapters/ban/adapter.js.map +1 -0
  186. package/out/fr/adapters/ban/street-decompose.d.ts.map +1 -0
  187. package/out/fr/adapters/ban/street-decompose.js.map +1 -0
  188. package/out/fr/recipes/admin-split.d.ts +38 -0
  189. package/out/fr/recipes/admin-split.d.ts.map +1 -0
  190. package/out/fr/recipes/admin-split.js +192 -0
  191. package/out/fr/recipes/admin-split.js.map +1 -0
  192. package/out/fr/recipes/bare-street.d.ts +28 -0
  193. package/out/fr/recipes/bare-street.d.ts.map +1 -0
  194. package/out/fr/recipes/bare-street.js +144 -0
  195. package/out/fr/recipes/bare-street.js.map +1 -0
  196. package/out/fr/recipes/fragment.d.ts +77 -0
  197. package/out/fr/recipes/fragment.d.ts.map +1 -0
  198. package/out/fr/recipes/fragment.js +277 -0
  199. package/out/fr/recipes/fragment.js.map +1 -0
  200. package/out/fr/recipes/lieudit.d.ts +32 -0
  201. package/out/fr/recipes/lieudit.d.ts.map +1 -0
  202. package/out/fr/recipes/lieudit.js +211 -0
  203. package/out/fr/recipes/lieudit.js.map +1 -0
  204. package/out/fr/recipes/order.d.ts +38 -0
  205. package/out/fr/recipes/order.d.ts.map +1 -0
  206. package/out/fr/recipes/order.js +198 -0
  207. package/out/fr/recipes/order.js.map +1 -0
  208. package/out/fr/tools/fetch/ban.d.ts +31 -0
  209. package/out/fr/tools/fetch/ban.d.ts.map +1 -0
  210. package/out/fr/tools/fetch/ban.js +239 -0
  211. package/out/fr/tools/fetch/ban.js.map +1 -0
  212. package/out/index.d.ts +1 -1
  213. package/out/index.d.ts.map +1 -1
  214. package/out/index.js +1 -1
  215. package/out/index.js.map +1 -1
  216. package/out/international/recipes/locale.d.ts +136 -0
  217. package/out/international/recipes/locale.d.ts.map +1 -0
  218. package/out/international/recipes/locale.js +458 -0
  219. package/out/international/recipes/locale.js.map +1 -0
  220. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
  221. package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
  222. package/out/jp/tools/fetch/houjin.d.ts +24 -0
  223. package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
  224. package/out/jp/tools/fetch/houjin.js +102 -0
  225. package/out/jp/tools/fetch/houjin.js.map +1 -0
  226. package/out/kr/adapters/juso/label-rows.d.ts +76 -0
  227. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
  228. package/out/kr/adapters/juso/label-rows.js +194 -0
  229. package/out/kr/adapters/juso/label-rows.js.map +1 -0
  230. package/out/kr/adapters/localdata/align.d.ts +43 -0
  231. package/out/kr/adapters/localdata/align.d.ts.map +1 -0
  232. package/out/kr/adapters/localdata/align.js +223 -0
  233. package/out/kr/adapters/localdata/align.js.map +1 -0
  234. package/out/kr/adapters/localdata/key-index.d.ts +71 -0
  235. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
  236. package/out/kr/adapters/localdata/key-index.js +133 -0
  237. package/out/kr/adapters/localdata/key-index.js.map +1 -0
  238. package/out/kr/adapters/localdata/permit-rows.d.ts +66 -0
  239. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
  240. package/out/kr/adapters/localdata/permit-rows.js +131 -0
  241. package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
  242. package/out/kr/tools/fetch/juso.d.ts +30 -0
  243. package/out/kr/tools/fetch/juso.d.ts.map +1 -0
  244. package/out/kr/tools/fetch/juso.js +120 -0
  245. package/out/kr/tools/fetch/juso.js.map +1 -0
  246. package/out/kr/tools/fetch/localdata.d.ts +30 -0
  247. package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
  248. package/out/kr/tools/fetch/localdata.js +139 -0
  249. package/out/kr/tools/fetch/localdata.js.map +1 -0
  250. package/out/nl/recipes/postcode.d.ts +26 -0
  251. package/out/nl/recipes/postcode.d.ts.map +1 -0
  252. package/out/nl/recipes/postcode.js +103 -0
  253. package/out/nl/recipes/postcode.js.map +1 -0
  254. package/out/no/recipes/fragment.d.ts +43 -0
  255. package/out/no/recipes/fragment.d.ts.map +1 -0
  256. package/out/no/recipes/fragment.js +183 -0
  257. package/out/no/recipes/fragment.js.map +1 -0
  258. package/out/no/recipes/street/index.d.ts +18 -0
  259. package/out/no/recipes/street/index.d.ts.map +1 -0
  260. package/out/no/recipes/street/index.js +72 -0
  261. package/out/no/recipes/street/index.js.map +1 -0
  262. package/out/no/recipes/street/led.d.ts +24 -0
  263. package/out/no/recipes/street/led.d.ts.map +1 -0
  264. package/out/no/recipes/street/led.js +114 -0
  265. package/out/no/recipes/street/led.js.map +1 -0
  266. package/out/recipes/anchor-absorption.d.ts.map +1 -1
  267. package/out/recipes/anchor-absorption.js +2 -1
  268. package/out/recipes/anchor-absorption.js.map +1 -1
  269. package/out/recipes/bare/country.d.ts +25 -0
  270. package/out/recipes/bare/country.d.ts.map +1 -0
  271. package/out/recipes/bare/country.js +88 -0
  272. package/out/recipes/bare/country.js.map +1 -0
  273. package/out/recipes/bare/postcode/eval.d.ts +29 -0
  274. package/out/recipes/bare/postcode/eval.d.ts.map +1 -0
  275. package/out/recipes/bare/postcode/eval.js +85 -0
  276. package/out/recipes/bare/postcode/eval.js.map +1 -0
  277. package/out/recipes/bare/postcode/index.d.ts +62 -0
  278. package/out/recipes/bare/postcode/index.d.ts.map +1 -0
  279. package/out/recipes/bare/postcode/index.js +267 -0
  280. package/out/recipes/bare/postcode/index.js.map +1 -0
  281. package/out/recipes/boundary-stress.d.ts.map +1 -1
  282. package/out/recipes/boundary-stress.js +2 -1
  283. package/out/recipes/boundary-stress.js.map +1 -1
  284. package/out/recipes/country-balanced.d.ts.map +1 -1
  285. package/out/recipes/country-balanced.js +2 -1
  286. package/out/recipes/country-balanced.js.map +1 -1
  287. package/out/recipes/house-venue.d.ts.map +1 -1
  288. package/out/recipes/house-venue.js +2 -1
  289. package/out/recipes/house-venue.js.map +1 -1
  290. package/out/recipes/index.d.ts.map +1 -1
  291. package/out/recipes/index.js +28 -21
  292. package/out/recipes/index.js.map +1 -1
  293. package/out/recipes/intersection.d.ts.map +1 -1
  294. package/out/recipes/intersection.js +2 -1
  295. package/out/recipes/intersection.js.map +1 -1
  296. package/out/recipes/po/box/cedex/au-nz.d.ts +7 -0
  297. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -0
  298. package/out/recipes/po/box/cedex/au-nz.js +56 -0
  299. package/out/recipes/po/box/cedex/au-nz.js.map +1 -0
  300. package/out/recipes/po/box/cedex/ca.d.ts +7 -0
  301. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -0
  302. package/out/recipes/po/box/cedex/ca.js +38 -0
  303. package/out/recipes/po/box/cedex/ca.js.map +1 -0
  304. package/out/recipes/po/box/cedex/fr.d.ts +7 -0
  305. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -0
  306. package/out/recipes/po/box/cedex/fr.js +57 -0
  307. package/out/recipes/po/box/cedex/fr.js.map +1 -0
  308. package/out/recipes/po/box/cedex/phrases.d.ts +8 -0
  309. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -0
  310. package/out/recipes/po/box/cedex/phrases.js +76 -0
  311. package/out/recipes/po/box/cedex/phrases.js.map +1 -0
  312. package/out/recipes/po/box/cedex/recipe.d.ts +9 -0
  313. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -0
  314. package/out/recipes/po/box/cedex/recipe.js +153 -0
  315. package/out/recipes/po/box/cedex/recipe.js.map +1 -0
  316. package/out/recipes/po/box/cedex/sources.d.ts +86 -0
  317. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -0
  318. package/out/recipes/po/box/cedex/sources.js +143 -0
  319. package/out/recipes/po/box/cedex/sources.js.map +1 -0
  320. package/out/recipes/po/box/cedex/types.d.ts +31 -0
  321. package/out/recipes/po/box/cedex/types.d.ts.map +1 -0
  322. package/out/recipes/po/box/cedex/types.js +5 -0
  323. package/out/recipes/po/box/cedex/types.js.map +1 -0
  324. package/out/recipes/po/box/cedex/us.d.ts +7 -0
  325. package/out/recipes/po/box/cedex/us.d.ts.map +1 -0
  326. package/out/recipes/po/box/cedex/us.js +51 -0
  327. package/out/recipes/po/box/cedex/us.js.map +1 -0
  328. package/out/recipes/po/box/cedex/vocabulary.d.ts +68 -0
  329. package/out/recipes/po/box/cedex/vocabulary.d.ts.map +1 -0
  330. package/out/recipes/po/box/cedex/vocabulary.js +90 -0
  331. package/out/recipes/po/box/cedex/vocabulary.js.map +1 -0
  332. package/out/recipes/po/box/cedex.d.ts +9 -0
  333. package/out/recipes/po/box/cedex.d.ts.map +1 -0
  334. package/out/recipes/po/box/cedex.js +9 -0
  335. package/out/recipes/po/box/cedex.js.map +1 -0
  336. package/out/recipes/po/box/index.d.ts +17 -0
  337. package/out/recipes/po/box/index.d.ts.map +1 -0
  338. package/out/recipes/po/box/index.js +105 -0
  339. package/out/recipes/po/box/index.js.map +1 -0
  340. package/out/recipes/scaffold.d.ts +20 -1
  341. package/out/recipes/scaffold.d.ts.map +1 -1
  342. package/out/recipes/scaffold.js +18 -49
  343. package/out/recipes/scaffold.js.map +1 -1
  344. package/out/recipes/street/affix.d.ts +89 -0
  345. package/out/recipes/street/affix.d.ts.map +1 -0
  346. package/out/recipes/street/affix.js +565 -0
  347. package/out/recipes/street/affix.js.map +1 -0
  348. package/out/recipes/street/bare.d.ts +25 -0
  349. package/out/recipes/street/bare.d.ts.map +1 -0
  350. package/out/recipes/street/bare.js +87 -0
  351. package/out/recipes/street/bare.js.map +1 -0
  352. package/out/recipes/street.d.ts.map +1 -1
  353. package/out/recipes/street.js +2 -1
  354. package/out/recipes/street.js.map +1 -1
  355. package/out/recipes/sub/venue/context.d.ts +29 -0
  356. package/out/recipes/sub/venue/context.d.ts.map +1 -0
  357. package/out/recipes/sub/venue/context.js +106 -0
  358. package/out/recipes/sub/venue/context.js.map +1 -0
  359. package/out/recipes/sub/venue/index.d.ts +270 -0
  360. package/out/recipes/sub/venue/index.d.ts.map +1 -0
  361. package/out/recipes/sub/venue/index.js +728 -0
  362. package/out/recipes/sub/venue/index.js.map +1 -0
  363. package/out/recipes/sub/venue/sources.d.ts +209 -0
  364. package/out/recipes/sub/venue/sources.d.ts.map +1 -0
  365. package/out/recipes/sub/venue/sources.js +555 -0
  366. package/out/recipes/sub/venue/sources.js.map +1 -0
  367. package/out/recipes/trailing-region.d.ts.map +1 -1
  368. package/out/recipes/trailing-region.js +8 -2
  369. package/out/recipes/trailing-region.js.map +1 -1
  370. package/out/recipes/unit.d.ts.map +1 -1
  371. package/out/recipes/unit.js +2 -1
  372. package/out/recipes/unit.js.map +1 -1
  373. package/out/sg/recipes/register.d.ts +69 -0
  374. package/out/sg/recipes/register.d.ts.map +1 -0
  375. package/out/sg/recipes/register.js +211 -0
  376. package/out/sg/recipes/register.js.map +1 -0
  377. package/out/sg/tools/fetch/acra.d.ts +23 -0
  378. package/out/sg/tools/fetch/acra.d.ts.map +1 -0
  379. package/out/sg/tools/fetch/acra.js +126 -0
  380. package/out/sg/tools/fetch/acra.js.map +1 -0
  381. package/out/si/recipes/bare-village.d.ts +32 -0
  382. package/out/si/recipes/bare-village.d.ts.map +1 -0
  383. package/out/si/recipes/bare-village.js +89 -0
  384. package/out/si/recipes/bare-village.js.map +1 -0
  385. package/out/south-asia/recipes/register.d.ts +51 -0
  386. package/out/south-asia/recipes/register.d.ts.map +1 -0
  387. package/out/south-asia/recipes/register.js +154 -0
  388. package/out/south-asia/recipes/register.js.map +1 -0
  389. package/out/synthesizers/anchor-absorption.d.ts +1 -1
  390. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  391. package/out/synthesizers/anchor-absorption.js.map +1 -1
  392. package/out/synthesizers/boundary-stress.js.map +1 -1
  393. package/out/synthesizers/house-venue.js.map +1 -1
  394. package/out/synthesizers/intersection.js.map +1 -1
  395. package/out/synthesizers/locale.d.ts +116 -0
  396. package/out/synthesizers/locale.d.ts.map +1 -0
  397. package/out/synthesizers/locale.js +150 -0
  398. package/out/synthesizers/locale.js.map +1 -0
  399. package/out/synthesizers/no-street.d.ts.map +1 -1
  400. package/out/synthesizers/no-street.js.map +1 -1
  401. package/out/synthesizers/po-box.js.map +1 -1
  402. package/out/synthesizers/street.d.ts.map +1 -1
  403. package/out/synthesizers/street.js +1 -1
  404. package/out/synthesizers/street.js.map +1 -1
  405. package/out/synthesizers/utils.js +1 -1
  406. package/out/synthesizers/utils.js.map +1 -1
  407. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  408. package/out/test-kit/corpus-recipe.js.map +1 -1
  409. package/out/tools/audit.d.ts.map +1 -1
  410. package/out/tools/audit.js +3 -2
  411. package/out/tools/audit.js.map +1 -1
  412. package/out/tools/corpus-stats.js +3 -3
  413. package/out/tools/corpus-stats.js.map +1 -1
  414. package/out/tools/fetch/download/index.d.ts +10 -0
  415. package/out/tools/fetch/download/index.d.ts.map +1 -0
  416. package/out/tools/fetch/download/index.js +10 -0
  417. package/out/tools/fetch/download/index.js.map +1 -0
  418. package/out/tools/fetch/download/manifest.d.ts +47 -0
  419. package/out/tools/fetch/download/manifest.d.ts.map +1 -0
  420. package/out/tools/fetch/download/manifest.js +74 -0
  421. package/out/tools/fetch/download/manifest.js.map +1 -0
  422. package/out/tools/fetch/download/network.d.ts +105 -0
  423. package/out/tools/fetch/download/network.d.ts.map +1 -0
  424. package/out/tools/fetch/download/network.js +130 -0
  425. package/out/tools/fetch/download/network.js.map +1 -0
  426. package/out/tools/fetch/download/retry.d.ts +45 -0
  427. package/out/tools/fetch/download/retry.d.ts.map +1 -0
  428. package/out/tools/fetch/download/retry.js +136 -0
  429. package/out/tools/fetch/download/retry.js.map +1 -0
  430. package/out/tools/fetch/geonames/dump.d.ts +91 -0
  431. package/out/tools/fetch/geonames/dump.d.ts.map +1 -0
  432. package/out/tools/fetch/geonames/dump.js +171 -0
  433. package/out/tools/fetch/geonames/dump.js.map +1 -0
  434. package/out/tools/fetch/geonames/postal.d.ts +76 -0
  435. package/out/tools/fetch/geonames/postal.d.ts.map +1 -0
  436. package/out/tools/fetch/geonames/postal.js +126 -0
  437. package/out/tools/fetch/geonames/postal.js.map +1 -0
  438. package/out/tools/fetch/index.d.ts +47 -20
  439. package/out/tools/fetch/index.d.ts.map +1 -1
  440. package/out/tools/fetch/index.js +47 -20
  441. package/out/tools/fetch/index.js.map +1 -1
  442. package/out/tools/fetch/openaddresses.d.ts +1 -1
  443. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  444. package/out/tools/fetch/openaddresses.js +1 -1
  445. package/out/tools/fetch/openaddresses.js.map +1 -1
  446. package/out/tools/fetch/ourairports.d.ts +1 -1
  447. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  448. package/out/tools/fetch/ourairports.js +1 -1
  449. package/out/tools/fetch/ourairports.js.map +1 -1
  450. package/out/tools/fetch/ppd.js +1 -3
  451. package/out/tools/fetch/ppd.js.map +1 -1
  452. package/out/tools/fetch/wikidata-subvenue.d.ts +1 -1
  453. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  454. package/out/tools/fetch/wikidata-subvenue.js +1 -1
  455. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  456. package/out/tools/golden/expand.d.ts +90 -0
  457. package/out/tools/golden/expand.d.ts.map +1 -0
  458. package/out/tools/golden/expand.js +406 -0
  459. package/out/tools/golden/expand.js.map +1 -0
  460. package/out/tools/golden/promote.d.ts +72 -0
  461. package/out/tools/golden/promote.d.ts.map +1 -0
  462. package/out/tools/golden/promote.js +243 -0
  463. package/out/tools/golden/promote.js.map +1 -0
  464. package/out/tools/golden/relabel-street/directory.d.ts +83 -0
  465. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
  466. package/out/tools/golden/relabel-street/directory.js +216 -0
  467. package/out/tools/golden/relabel-street/directory.js.map +1 -0
  468. package/out/tools/golden/relabel-street/index.d.ts +9 -0
  469. package/out/tools/golden/relabel-street/index.d.ts.map +1 -0
  470. package/out/tools/golden/relabel-street/index.js +9 -0
  471. package/out/tools/golden/relabel-street/index.js.map +1 -0
  472. package/out/tools/golden/relabel-street/row.d.ts +121 -0
  473. package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
  474. package/out/tools/golden/relabel-street/row.js +232 -0
  475. package/out/tools/golden/relabel-street/row.js.map +1 -0
  476. package/out/tools/index.d.ts +10 -10
  477. package/out/tools/index.d.ts.map +1 -1
  478. package/out/tools/index.js +10 -10
  479. package/out/tools/index.js.map +1 -1
  480. package/out/tools/ingest-csv.d.ts.map +1 -1
  481. package/out/tools/ingest-csv.js +5 -7
  482. package/out/tools/ingest-csv.js.map +1 -1
  483. package/out/tools/lint/slice/index.d.ts +93 -0
  484. package/out/tools/lint/slice/index.d.ts.map +1 -0
  485. package/out/tools/lint/slice/index.js +322 -0
  486. package/out/tools/lint/slice/index.js.map +1 -0
  487. package/out/tools/lint/slice/vocab.d.ts +90 -0
  488. package/out/tools/lint/slice/vocab.d.ts.map +1 -0
  489. package/out/tools/lint/slice/vocab.js +254 -0
  490. package/out/tools/lint/slice/vocab.js.map +1 -0
  491. package/out/tools/overlay-manifest.d.ts +56 -6
  492. package/out/tools/overlay-manifest.d.ts.map +1 -1
  493. package/out/tools/overlay-manifest.js +56 -15
  494. package/out/tools/overlay-manifest.js.map +1 -1
  495. package/out/tools/overture-subvenue.d.ts +1 -1
  496. package/out/tools/postcode-triples.d.ts +36 -0
  497. package/out/tools/postcode-triples.d.ts.map +1 -1
  498. package/out/tools/postcode-triples.js +91 -12
  499. package/out/tools/postcode-triples.js.map +1 -1
  500. package/out/tools/slice/kryptonite.d.ts +32 -0
  501. package/out/tools/slice/kryptonite.d.ts.map +1 -0
  502. package/out/tools/slice/kryptonite.js +99 -0
  503. package/out/tools/slice/kryptonite.js.map +1 -0
  504. package/out/tools/slice/translit.d.ts +51 -0
  505. package/out/tools/slice/translit.d.ts.map +1 -0
  506. package/out/tools/slice/translit.js +166 -0
  507. package/out/tools/slice/translit.js.map +1 -0
  508. package/out/tools/sub/venue/harvest.d.ts +100 -0
  509. package/out/tools/sub/venue/harvest.d.ts.map +1 -0
  510. package/out/tools/sub/venue/harvest.js +168 -0
  511. package/out/tools/sub/venue/harvest.js.map +1 -0
  512. package/out/tools/sub/venue/head-nouns.d.ts +50 -0
  513. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -0
  514. package/out/tools/sub/venue/head-nouns.js.map +1 -0
  515. package/out/tools/sub/venue/lexicon.d.ts +156 -0
  516. package/out/tools/sub/venue/lexicon.d.ts.map +1 -0
  517. package/out/tools/sub/venue/lexicon.js +283 -0
  518. package/out/tools/sub/venue/lexicon.js.map +1 -0
  519. package/out/tools/sub/venue/promotions.d.ts +94 -0
  520. package/out/tools/sub/venue/promotions.d.ts.map +1 -0
  521. package/out/tools/sub/venue/promotions.js +266 -0
  522. package/out/tools/sub/venue/promotions.js.map +1 -0
  523. package/out/tools/sub/venue/surfaces.d.ts +45 -0
  524. package/out/tools/sub/venue/surfaces.d.ts.map +1 -0
  525. package/out/tools/sub/venue/surfaces.js.map +1 -0
  526. package/out/tools/sub/venue/table.d.ts +229 -0
  527. package/out/tools/sub/venue/table.d.ts.map +1 -0
  528. package/out/tools/sub/venue/table.js.map +1 -0
  529. package/out/tools/sub/venue/wikidata.d.ts +26 -0
  530. package/out/tools/sub/venue/wikidata.d.ts.map +1 -0
  531. package/out/tools/sub/venue/wikidata.js +62 -0
  532. package/out/tools/sub/venue/wikidata.js.map +1 -0
  533. package/out/tw/tools/fetch/gcis.d.ts +23 -0
  534. package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
  535. package/out/tw/tools/fetch/gcis.js +135 -0
  536. package/out/tw/tools/fetch/gcis.js.map +1 -0
  537. package/out/types.d.ts +1 -1
  538. package/out/types.d.ts.map +1 -1
  539. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  540. package/out/us/adapters/fcc-bdc/adapter.js +142 -0
  541. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
  542. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
  543. package/out/us/adapters/state/hi-schools/adapter.js +136 -0
  544. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
  545. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
  546. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
  547. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
  548. package/out/us/adapters/state/ia-contractors/adapter.js +104 -0
  549. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
  550. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
  551. package/out/us/adapters/state/ny-notaries/adapter.js +112 -0
  552. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
  553. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
  554. package/out/us/adapters/state/tx-notaries/adapter.js +118 -0
  555. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
  556. package/out/us/adapters/tiger/adapter.d.ts +55 -0
  557. package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
  558. package/out/us/adapters/tiger/adapter.js +197 -0
  559. package/out/us/adapters/tiger/adapter.js.map +1 -0
  560. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
  561. package/out/us/adapters/tiger/street-decompose.js.map +1 -0
  562. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
  563. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +121 -0
  564. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
  565. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
  566. package/out/us/adapters/usgov/imls-pls/adapter.js +106 -0
  567. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
  568. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
  569. package/out/us/adapters/usgov/irs-bmf/adapter.js +116 -0
  570. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
  571. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
  572. package/out/us/adapters/usgov/nad/adapter.js +239 -0
  573. package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
  574. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
  575. package/out/us/adapters/usgov/nppes/adapter.js +110 -0
  576. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
  577. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -0
  578. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +143 -0
  579. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
  580. package/out/us/fips-state.d.ts +41 -0
  581. package/out/us/fips-state.d.ts.map +1 -0
  582. package/out/us/fips-state.js +100 -0
  583. package/out/us/fips-state.js.map +1 -0
  584. package/out/us/tools/fetch/hrsa.d.ts +18 -0
  585. package/out/us/tools/fetch/hrsa.d.ts.map +1 -0
  586. package/out/us/tools/fetch/hrsa.js +46 -0
  587. package/out/us/tools/fetch/hrsa.js.map +1 -0
  588. package/out/us/tools/fetch/imls-pls.d.ts +25 -0
  589. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
  590. package/out/us/tools/fetch/imls-pls.js +108 -0
  591. package/out/us/tools/fetch/imls-pls.js.map +1 -0
  592. package/out/us/tools/fetch/nad.d.ts +70 -0
  593. package/out/us/tools/fetch/nad.d.ts.map +1 -0
  594. package/out/us/tools/fetch/nad.js +234 -0
  595. package/out/us/tools/fetch/nad.js.map +1 -0
  596. package/out/us/tools/fetch/nppes.d.ts +26 -0
  597. package/out/us/tools/fetch/nppes.d.ts.map +1 -0
  598. package/out/us/tools/fetch/nppes.js +126 -0
  599. package/out/us/tools/fetch/nppes.js.map +1 -0
  600. package/out/us/tools/fetch/state/hi-schools.d.ts +26 -0
  601. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
  602. package/out/us/tools/fetch/state/hi-schools.js +112 -0
  603. package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
  604. package/out/us/tools/fetch/state/sources.d.ts +26 -0
  605. package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
  606. package/out/us/tools/fetch/state/sources.js +111 -0
  607. package/out/us/tools/fetch/state/sources.js.map +1 -0
  608. package/out/us/tools/fetch/tiger-full.d.ts +22 -0
  609. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
  610. package/out/us/tools/fetch/tiger-full.js +217 -0
  611. package/out/us/tools/fetch/tiger-full.js.map +1 -0
  612. package/out/utils/align.d.ts +1 -1
  613. package/out/utils/align.d.ts.map +1 -1
  614. package/out/utils/align.js.map +1 -1
  615. package/out/utils/golden.d.ts +7 -3
  616. package/out/utils/golden.d.ts.map +1 -1
  617. package/out/utils/golden.js +12 -8
  618. package/out/utils/golden.js.map +1 -1
  619. package/out/utils/parquet.d.ts.map +1 -1
  620. package/out/utils/split.js.map +1 -1
  621. package/out/utils/wof-json.d.ts.map +1 -1
  622. package/out/utils/wof-json.js +7 -12
  623. package/out/utils/wof-json.js.map +1 -1
  624. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  625. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
  626. package/package.json +196 -46
  627. package/lib/adapters/ban/adapter.ts +0 -190
  628. package/lib/adapters/fcc-bdc/adapter.ts +0 -174
  629. package/lib/adapters/geonames-postal/adapter.ts +0 -122
  630. package/lib/adapters/gnaf/adapter.ts +0 -149
  631. package/lib/adapters/gnaf/assemble.ts +0 -225
  632. package/lib/adapters/state-hi-schools/adapter.ts +0 -170
  633. package/lib/adapters/state-ia-contractors/adapter.ts +0 -144
  634. package/lib/adapters/state-ny-notaries/adapter.ts +0 -141
  635. package/lib/adapters/state-tx-notaries/adapter.ts +0 -157
  636. package/lib/adapters/tiger/adapter.ts +0 -252
  637. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +0 -167
  638. package/lib/adapters/usgov-imls-pls/adapter.ts +0 -143
  639. package/lib/adapters/usgov-irs-bmf/adapter.ts +0 -151
  640. package/lib/adapters/usgov-nad/adapter.ts +0 -334
  641. package/lib/adapters/usgov-nppes/adapter.ts +0 -151
  642. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -193
  643. package/lib/adapters/wof-admin-json/adapter.ts +0 -231
  644. package/lib/adapters/wof-json-rows.ts +0 -129
  645. package/lib/adapters/wof-postalcode-json/adapter.ts +0 -176
  646. package/lib/name-prone-us-suffixes.ts +0 -12
  647. package/lib/recipes/bare-country.ts +0 -95
  648. package/lib/recipes/cz-pcfirst-preposition.ts +0 -111
  649. package/lib/recipes/fr-admin-split.ts +0 -242
  650. package/lib/recipes/fr-bare-street.ts +0 -170
  651. package/lib/recipes/fr-fragment.ts +0 -333
  652. package/lib/recipes/fr-lieudit.ts +0 -301
  653. package/lib/recipes/fr-order.ts +0 -245
  654. package/lib/recipes/german.ts +0 -359
  655. package/lib/recipes/locale.ts +0 -599
  656. package/lib/recipes/nl-postcode.ts +0 -115
  657. package/lib/recipes/no-fragment.ts +0 -219
  658. package/lib/recipes/no-street-led.ts +0 -141
  659. package/lib/recipes/no-street.ts +0 -90
  660. package/lib/recipes/po-box-cedex.ts +0 -976
  661. package/lib/recipes/po-box.ts +0 -123
  662. package/lib/recipes/si-bare-village.ts +0 -97
  663. package/lib/recipes/street-affix.ts +0 -804
  664. package/lib/recipes/street-bare.ts +0 -100
  665. package/lib/recipes/sub-venue-sources.ts +0 -877
  666. package/lib/recipes/sub-venue.ts +0 -997
  667. package/lib/synthesizers/german.ts +0 -260
  668. package/lib/tools/fetch/ban.ts +0 -289
  669. package/lib/tools/fetch/download.ts +0 -262
  670. package/lib/tools/fetch/geonames-dump.ts +0 -257
  671. package/lib/tools/fetch/geonames-postal.ts +0 -180
  672. package/lib/tools/fetch/hrsa.ts +0 -59
  673. package/lib/tools/fetch/imls-pls.ts +0 -149
  674. package/lib/tools/fetch/nad.ts +0 -341
  675. package/lib/tools/fetch/nppes.ts +0 -165
  676. package/lib/tools/fetch/state-hi-schools.ts +0 -161
  677. package/lib/tools/fetch/state-sources.ts +0 -146
  678. package/lib/tools/fetch/tiger-full.ts +0 -308
  679. package/lib/tools/golden-promote.ts +0 -337
  680. package/lib/tools/golden-relabel-street.ts +0 -683
  681. package/lib/tools/lint-slice-vocab.ts +0 -388
  682. package/lib/tools/sub-venue/harvest.ts +0 -234
  683. package/lib/tools/sub-venue/head-nouns.ts +0 -245
  684. package/lib/tools/sub-venue/surfaces.ts +0 -95
  685. package/lib/tools/sub-venue/table.ts +0 -281
  686. package/lib/tools/sub-venue/wikidata.ts +0 -85
  687. package/lib/tools/sub-venue-lexicon.ts +0 -429
  688. package/out/adapters/ban/adapter.d.ts.map +0 -1
  689. package/out/adapters/ban/adapter.js +0 -149
  690. package/out/adapters/ban/adapter.js.map +0 -1
  691. package/out/adapters/ban/street-decompose.d.ts.map +0 -1
  692. package/out/adapters/ban/street-decompose.js.map +0 -1
  693. package/out/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  694. package/out/adapters/fcc-bdc/adapter.js +0 -144
  695. package/out/adapters/fcc-bdc/adapter.js.map +0 -1
  696. package/out/adapters/geonames-postal/adapter.d.ts.map +0 -1
  697. package/out/adapters/geonames-postal/adapter.js +0 -107
  698. package/out/adapters/geonames-postal/adapter.js.map +0 -1
  699. package/out/adapters/gnaf/adapter.d.ts.map +0 -1
  700. package/out/adapters/gnaf/adapter.js +0 -124
  701. package/out/adapters/gnaf/adapter.js.map +0 -1
  702. package/out/adapters/gnaf/assemble.d.ts +0 -65
  703. package/out/adapters/gnaf/assemble.d.ts.map +0 -1
  704. package/out/adapters/gnaf/assemble.js +0 -154
  705. package/out/adapters/gnaf/assemble.js.map +0 -1
  706. package/out/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  707. package/out/adapters/state-hi-schools/adapter.js +0 -145
  708. package/out/adapters/state-hi-schools/adapter.js.map +0 -1
  709. package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
  710. package/out/adapters/state-hi-schools/workbook.js.map +0 -1
  711. package/out/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  712. package/out/adapters/state-ia-contractors/adapter.js +0 -111
  713. package/out/adapters/state-ia-contractors/adapter.js.map +0 -1
  714. package/out/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  715. package/out/adapters/state-ny-notaries/adapter.js +0 -119
  716. package/out/adapters/state-ny-notaries/adapter.js.map +0 -1
  717. package/out/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  718. package/out/adapters/state-tx-notaries/adapter.js +0 -125
  719. package/out/adapters/state-tx-notaries/adapter.js.map +0 -1
  720. package/out/adapters/tiger/adapter.d.ts +0 -55
  721. package/out/adapters/tiger/adapter.d.ts.map +0 -1
  722. package/out/adapters/tiger/adapter.js +0 -201
  723. package/out/adapters/tiger/adapter.js.map +0 -1
  724. package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
  725. package/out/adapters/tiger/street-decompose.js.map +0 -1
  726. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  727. package/out/adapters/usgov-hrsa-fqhc/adapter.js +0 -132
  728. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  729. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  730. package/out/adapters/usgov-imls-pls/adapter.js +0 -114
  731. package/out/adapters/usgov-imls-pls/adapter.js.map +0 -1
  732. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  733. package/out/adapters/usgov-irs-bmf/adapter.js +0 -120
  734. package/out/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  735. package/out/adapters/usgov-nad/adapter.d.ts.map +0 -1
  736. package/out/adapters/usgov-nad/adapter.js +0 -249
  737. package/out/adapters/usgov-nad/adapter.js.map +0 -1
  738. package/out/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  739. package/out/adapters/usgov-nppes/adapter.js +0 -118
  740. package/out/adapters/usgov-nppes/adapter.js.map +0 -1
  741. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  742. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -154
  743. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  744. package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  745. package/out/adapters/wof-admin-jp/adapter.js.map +0 -1
  746. package/out/adapters/wof-admin-json/adapter.d.ts +0 -79
  747. package/out/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  748. package/out/adapters/wof-admin-json/adapter.js +0 -197
  749. package/out/adapters/wof-admin-json/adapter.js.map +0 -1
  750. package/out/adapters/wof-json-rows.d.ts +0 -62
  751. package/out/adapters/wof-json-rows.d.ts.map +0 -1
  752. package/out/adapters/wof-json-rows.js +0 -83
  753. package/out/adapters/wof-json-rows.js.map +0 -1
  754. package/out/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  755. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  756. package/out/adapters/wof-postalcode-json/adapter.js +0 -151
  757. package/out/adapters/wof-postalcode-json/adapter.js.map +0 -1
  758. package/out/codex/us-fips-state.d.ts +0 -41
  759. package/out/codex/us-fips-state.d.ts.map +0 -1
  760. package/out/codex/us-fips-state.js +0 -100
  761. package/out/codex/us-fips-state.js.map +0 -1
  762. package/out/name-prone-us-suffixes.d.ts +0 -12
  763. package/out/name-prone-us-suffixes.d.ts.map +0 -1
  764. package/out/name-prone-us-suffixes.js +0 -12
  765. package/out/name-prone-us-suffixes.js.map +0 -1
  766. package/out/recipes/bare-country.d.ts +0 -25
  767. package/out/recipes/bare-country.d.ts.map +0 -1
  768. package/out/recipes/bare-country.js +0 -87
  769. package/out/recipes/bare-country.js.map +0 -1
  770. package/out/recipes/cn-organizational-units.d.ts +0 -36
  771. package/out/recipes/cn-organizational-units.d.ts.map +0 -1
  772. package/out/recipes/cn-organizational-units.js +0 -159
  773. package/out/recipes/cn-organizational-units.js.map +0 -1
  774. package/out/recipes/cz-pcfirst-preposition.d.ts +0 -22
  775. package/out/recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  776. package/out/recipes/cz-pcfirst-preposition.js +0 -100
  777. package/out/recipes/cz-pcfirst-preposition.js.map +0 -1
  778. package/out/recipes/fr-admin-split.d.ts +0 -38
  779. package/out/recipes/fr-admin-split.d.ts.map +0 -1
  780. package/out/recipes/fr-admin-split.js +0 -192
  781. package/out/recipes/fr-admin-split.js.map +0 -1
  782. package/out/recipes/fr-bare-street.d.ts +0 -28
  783. package/out/recipes/fr-bare-street.d.ts.map +0 -1
  784. package/out/recipes/fr-bare-street.js +0 -143
  785. package/out/recipes/fr-bare-street.js.map +0 -1
  786. package/out/recipes/fr-fragment.d.ts +0 -77
  787. package/out/recipes/fr-fragment.d.ts.map +0 -1
  788. package/out/recipes/fr-fragment.js +0 -276
  789. package/out/recipes/fr-fragment.js.map +0 -1
  790. package/out/recipes/fr-lieudit.d.ts +0 -32
  791. package/out/recipes/fr-lieudit.d.ts.map +0 -1
  792. package/out/recipes/fr-lieudit.js +0 -227
  793. package/out/recipes/fr-lieudit.js.map +0 -1
  794. package/out/recipes/fr-order.d.ts +0 -38
  795. package/out/recipes/fr-order.d.ts.map +0 -1
  796. package/out/recipes/fr-order.js +0 -197
  797. package/out/recipes/fr-order.js.map +0 -1
  798. package/out/recipes/german.d.ts +0 -44
  799. package/out/recipes/german.d.ts.map +0 -1
  800. package/out/recipes/german.js +0 -288
  801. package/out/recipes/german.js.map +0 -1
  802. package/out/recipes/locale.d.ts +0 -136
  803. package/out/recipes/locale.d.ts.map +0 -1
  804. package/out/recipes/locale.js +0 -460
  805. package/out/recipes/locale.js.map +0 -1
  806. package/out/recipes/nl-postcode.d.ts +0 -26
  807. package/out/recipes/nl-postcode.d.ts.map +0 -1
  808. package/out/recipes/nl-postcode.js +0 -102
  809. package/out/recipes/nl-postcode.js.map +0 -1
  810. package/out/recipes/no-fragment.d.ts +0 -43
  811. package/out/recipes/no-fragment.d.ts.map +0 -1
  812. package/out/recipes/no-fragment.js +0 -182
  813. package/out/recipes/no-fragment.js.map +0 -1
  814. package/out/recipes/no-street-led.d.ts +0 -24
  815. package/out/recipes/no-street-led.d.ts.map +0 -1
  816. package/out/recipes/no-street-led.js +0 -113
  817. package/out/recipes/no-street-led.js.map +0 -1
  818. package/out/recipes/no-street.d.ts +0 -18
  819. package/out/recipes/no-street.d.ts.map +0 -1
  820. package/out/recipes/no-street.js +0 -71
  821. package/out/recipes/no-street.js.map +0 -1
  822. package/out/recipes/po-box-cedex.d.ts +0 -38
  823. package/out/recipes/po-box-cedex.d.ts.map +0 -1
  824. package/out/recipes/po-box-cedex.js +0 -767
  825. package/out/recipes/po-box-cedex.js.map +0 -1
  826. package/out/recipes/po-box.d.ts +0 -17
  827. package/out/recipes/po-box.d.ts.map +0 -1
  828. package/out/recipes/po-box.js +0 -100
  829. package/out/recipes/po-box.js.map +0 -1
  830. package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
  831. package/out/recipes/reviewed-postcode-tail.js.map +0 -1
  832. package/out/recipes/si-bare-village.d.ts +0 -32
  833. package/out/recipes/si-bare-village.d.ts.map +0 -1
  834. package/out/recipes/si-bare-village.js +0 -88
  835. package/out/recipes/si-bare-village.js.map +0 -1
  836. package/out/recipes/street-affix.d.ts +0 -89
  837. package/out/recipes/street-affix.d.ts.map +0 -1
  838. package/out/recipes/street-affix.js +0 -563
  839. package/out/recipes/street-affix.js.map +0 -1
  840. package/out/recipes/street-bare.d.ts +0 -25
  841. package/out/recipes/street-bare.d.ts.map +0 -1
  842. package/out/recipes/street-bare.js +0 -86
  843. package/out/recipes/street-bare.js.map +0 -1
  844. package/out/recipes/sub-venue-sources.d.ts +0 -229
  845. package/out/recipes/sub-venue-sources.d.ts.map +0 -1
  846. package/out/recipes/sub-venue-sources.js +0 -653
  847. package/out/recipes/sub-venue-sources.js.map +0 -1
  848. package/out/recipes/sub-venue.d.ts +0 -269
  849. package/out/recipes/sub-venue.d.ts.map +0 -1
  850. package/out/recipes/sub-venue.js +0 -725
  851. package/out/recipes/sub-venue.js.map +0 -1
  852. package/out/synthesizers/german.d.ts +0 -115
  853. package/out/synthesizers/german.d.ts.map +0 -1
  854. package/out/synthesizers/german.js +0 -149
  855. package/out/synthesizers/german.js.map +0 -1
  856. package/out/tools/fetch/ban.d.ts +0 -31
  857. package/out/tools/fetch/ban.d.ts.map +0 -1
  858. package/out/tools/fetch/ban.js +0 -239
  859. package/out/tools/fetch/ban.js.map +0 -1
  860. package/out/tools/fetch/download.d.ts +0 -117
  861. package/out/tools/fetch/download.d.ts.map +0 -1
  862. package/out/tools/fetch/download.js +0 -160
  863. package/out/tools/fetch/download.js.map +0 -1
  864. package/out/tools/fetch/geonames-dump.d.ts +0 -91
  865. package/out/tools/fetch/geonames-dump.d.ts.map +0 -1
  866. package/out/tools/fetch/geonames-dump.js +0 -171
  867. package/out/tools/fetch/geonames-dump.js.map +0 -1
  868. package/out/tools/fetch/geonames-postal.d.ts +0 -76
  869. package/out/tools/fetch/geonames-postal.d.ts.map +0 -1
  870. package/out/tools/fetch/geonames-postal.js +0 -126
  871. package/out/tools/fetch/geonames-postal.js.map +0 -1
  872. package/out/tools/fetch/hrsa.d.ts +0 -18
  873. package/out/tools/fetch/hrsa.d.ts.map +0 -1
  874. package/out/tools/fetch/hrsa.js +0 -46
  875. package/out/tools/fetch/hrsa.js.map +0 -1
  876. package/out/tools/fetch/imls-pls.d.ts +0 -25
  877. package/out/tools/fetch/imls-pls.d.ts.map +0 -1
  878. package/out/tools/fetch/imls-pls.js +0 -108
  879. package/out/tools/fetch/imls-pls.js.map +0 -1
  880. package/out/tools/fetch/nad.d.ts +0 -70
  881. package/out/tools/fetch/nad.d.ts.map +0 -1
  882. package/out/tools/fetch/nad.js +0 -234
  883. package/out/tools/fetch/nad.js.map +0 -1
  884. package/out/tools/fetch/nppes.d.ts +0 -26
  885. package/out/tools/fetch/nppes.d.ts.map +0 -1
  886. package/out/tools/fetch/nppes.js +0 -126
  887. package/out/tools/fetch/nppes.js.map +0 -1
  888. package/out/tools/fetch/state-hi-schools.d.ts +0 -26
  889. package/out/tools/fetch/state-hi-schools.d.ts.map +0 -1
  890. package/out/tools/fetch/state-hi-schools.js +0 -112
  891. package/out/tools/fetch/state-hi-schools.js.map +0 -1
  892. package/out/tools/fetch/state-sources.d.ts +0 -26
  893. package/out/tools/fetch/state-sources.d.ts.map +0 -1
  894. package/out/tools/fetch/state-sources.js +0 -111
  895. package/out/tools/fetch/state-sources.js.map +0 -1
  896. package/out/tools/fetch/tiger-full.d.ts +0 -22
  897. package/out/tools/fetch/tiger-full.d.ts.map +0 -1
  898. package/out/tools/fetch/tiger-full.js +0 -217
  899. package/out/tools/fetch/tiger-full.js.map +0 -1
  900. package/out/tools/golden-expand.d.ts +0 -90
  901. package/out/tools/golden-expand.d.ts.map +0 -1
  902. package/out/tools/golden-expand.js +0 -406
  903. package/out/tools/golden-expand.js.map +0 -1
  904. package/out/tools/golden-promote.d.ts +0 -72
  905. package/out/tools/golden-promote.d.ts.map +0 -1
  906. package/out/tools/golden-promote.js +0 -240
  907. package/out/tools/golden-promote.js.map +0 -1
  908. package/out/tools/golden-relabel-street.d.ts +0 -196
  909. package/out/tools/golden-relabel-street.d.ts.map +0 -1
  910. package/out/tools/golden-relabel-street.js +0 -440
  911. package/out/tools/golden-relabel-street.js.map +0 -1
  912. package/out/tools/lint-slice-vocab.d.ts +0 -90
  913. package/out/tools/lint-slice-vocab.d.ts.map +0 -1
  914. package/out/tools/lint-slice-vocab.js +0 -267
  915. package/out/tools/lint-slice-vocab.js.map +0 -1
  916. package/out/tools/lint-slice.d.ts +0 -93
  917. package/out/tools/lint-slice.d.ts.map +0 -1
  918. package/out/tools/lint-slice.js +0 -322
  919. package/out/tools/lint-slice.js.map +0 -1
  920. package/out/tools/slice-kryptonite.d.ts +0 -32
  921. package/out/tools/slice-kryptonite.d.ts.map +0 -1
  922. package/out/tools/slice-kryptonite.js +0 -99
  923. package/out/tools/slice-kryptonite.js.map +0 -1
  924. package/out/tools/slice-translit.d.ts +0 -51
  925. package/out/tools/slice-translit.d.ts.map +0 -1
  926. package/out/tools/slice-translit.js +0 -166
  927. package/out/tools/slice-translit.js.map +0 -1
  928. package/out/tools/sub-venue/harvest.d.ts +0 -100
  929. package/out/tools/sub-venue/harvest.d.ts.map +0 -1
  930. package/out/tools/sub-venue/harvest.js +0 -168
  931. package/out/tools/sub-venue/harvest.js.map +0 -1
  932. package/out/tools/sub-venue/head-nouns.d.ts +0 -50
  933. package/out/tools/sub-venue/head-nouns.d.ts.map +0 -1
  934. package/out/tools/sub-venue/head-nouns.js.map +0 -1
  935. package/out/tools/sub-venue/surfaces.d.ts +0 -45
  936. package/out/tools/sub-venue/surfaces.d.ts.map +0 -1
  937. package/out/tools/sub-venue/surfaces.js.map +0 -1
  938. package/out/tools/sub-venue/table.d.ts +0 -229
  939. package/out/tools/sub-venue/table.d.ts.map +0 -1
  940. package/out/tools/sub-venue/table.js.map +0 -1
  941. package/out/tools/sub-venue/wikidata.d.ts +0 -26
  942. package/out/tools/sub-venue/wikidata.d.ts.map +0 -1
  943. package/out/tools/sub-venue/wikidata.js +0 -62
  944. package/out/tools/sub-venue/wikidata.js.map +0 -1
  945. package/out/tools/sub-venue-lexicon.d.ts +0 -156
  946. package/out/tools/sub-venue-lexicon.d.ts.map +0 -1
  947. package/out/tools/sub-venue-lexicon.js +0 -283
  948. package/out/tools/sub-venue-lexicon.js.map +0 -1
  949. package/out/tools/sub-venue-promotions.d.ts +0 -94
  950. package/out/tools/sub-venue-promotions.d.ts.map +0 -1
  951. package/out/tools/sub-venue-promotions.js +0 -266
  952. package/out/tools/sub-venue-promotions.js.map +0 -1
  953. /package/lib/{recipes/cn-organizational-units.ts → cn/recipes/organizational-units.ts} +0 -0
  954. /package/lib/{adapters → fr/adapters}/ban/street-decompose.ts +0 -0
  955. /package/lib/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.ts +0 -0
  956. /package/lib/tools/{golden-expand.ts → golden/expand.ts} +0 -0
  957. /package/lib/tools/{lint-slice.ts → lint/slice/index.ts} +0 -0
  958. /package/lib/tools/{slice-kryptonite.ts → slice/kryptonite.ts} +0 -0
  959. /package/lib/tools/{slice-translit.ts → slice/translit.ts} +0 -0
  960. /package/lib/tools/{sub-venue-promotions.ts → sub/venue/promotions.ts} +0 -0
  961. /package/lib/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.ts +0 -0
  962. /package/lib/{adapters → us/adapters}/tiger/street-decompose.ts +0 -0
  963. /package/lib/{codex/us-fips-state.ts → us/fips-state.ts} +0 -0
  964. /package/lib/{recipes → ve/recipes}/reviewed-postcode-tail.ts +0 -0
  965. /package/out/adapters/{geonames-postal → geonames/postal}/adapter.d.ts +0 -0
  966. /package/out/{adapters → au/adapters}/gnaf/adapter.d.ts +0 -0
  967. /package/out/{adapters → fr/adapters}/ban/adapter.d.ts +0 -0
  968. /package/out/{adapters → fr/adapters}/ban/street-decompose.d.ts +0 -0
  969. /package/out/{adapters → fr/adapters}/ban/street-decompose.js +0 -0
  970. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.d.ts +0 -0
  971. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.js +0 -0
  972. /package/out/tools/{sub-venue → sub/venue}/head-nouns.js +0 -0
  973. /package/out/tools/{sub-venue → sub/venue}/surfaces.js +0 -0
  974. /package/out/tools/{sub-venue → sub/venue}/table.js +0 -0
  975. /package/out/{adapters → us/adapters}/fcc-bdc/adapter.d.ts +0 -0
  976. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/adapter.d.ts +0 -0
  977. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.d.ts +0 -0
  978. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.js +0 -0
  979. /package/out/{adapters/state-ia-contractors → us/adapters/state/ia-contractors}/adapter.d.ts +0 -0
  980. /package/out/{adapters/state-ny-notaries → us/adapters/state/ny-notaries}/adapter.d.ts +0 -0
  981. /package/out/{adapters/state-tx-notaries → us/adapters/state/tx-notaries}/adapter.d.ts +0 -0
  982. /package/out/{adapters → us/adapters}/tiger/street-decompose.d.ts +0 -0
  983. /package/out/{adapters → us/adapters}/tiger/street-decompose.js +0 -0
  984. /package/out/{adapters/usgov-hrsa-fqhc → us/adapters/usgov/hrsa-fqhc}/adapter.d.ts +0 -0
  985. /package/out/{adapters/usgov-imls-pls → us/adapters/usgov/imls-pls}/adapter.d.ts +0 -0
  986. /package/out/{adapters/usgov-irs-bmf → us/adapters/usgov/irs-bmf}/adapter.d.ts +0 -0
  987. /package/out/{adapters/usgov-nad → us/adapters/usgov/nad}/adapter.d.ts +0 -0
  988. /package/out/{adapters/usgov-nppes → us/adapters/usgov/nppes}/adapter.d.ts +0 -0
  989. /package/out/{adapters/usgov-samhsa-treatment-locator → us/adapters/usgov/samhsa-treatment-locator}/adapter.d.ts +0 -0
  990. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.d.ts +0 -0
  991. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.js +0 -0
@@ -1,126 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Fetch the GeoNames per-country postal-code exports — the only source in this family that carries a
7
- * `(postcode, locality, region)` triple with the NAMES inline.
8
- *
9
- * Source : https://download.geonames.org/export/zip/<CC>.zip
10
- * License: CC-BY-4.0, attribute "GeoNames". Tier B.
11
- *
12
- * ## Why this source and not a join
13
- *
14
- * A postcode slice is only useful to the corpus if a postcode reaches a locality and a region. Two routes exist and
15
- * only one of them works everywhere:
16
- *
17
- * - **`parent_id`** — `postalcode-intl.db` carries a real parent that resolves in the admin gazetteer (measured: NL
18
- * 97.5% of rows linked, FR 90.7%, DE 66.1%, ES 34.9%, IT 27.4%, and 93.8–100% of those resolve to a
19
- * `locality`/`localadmin`). It is also the ONLY slice that does: `postalcode-geonames-intl.db` and every
20
- * `postalcode-<cc>-overture.db` carry `parent_id = 0` on every row, so five countries have this route and the rest
21
- * have none.
22
- * - **Nearest locality centroid** — the obvious fallback, and it does not work. Scored against the `parent_id` truth
23
- * on 1,000–1,500 postcodes per country: NL 81.1%, DE 44.7%, ES 35.1%, FR 29.0%, IT 13.5%. A locality's centroid
24
- * sits at its middle, so a postcode near the edge is routinely closer to a neighbouring town's centroid than to its
25
- * own. Under 50% for four of the five, which is not a join.
26
- *
27
- * The GeoNames export sidesteps both: columns 3 and 4 ARE the place and admin1 names, so there is nothing to join and
28
- * nothing to approximate. `@mailwoman/corpus`'s `geonames-postal` adapter consumes it directly.
29
- *
30
- * ## Coverage is not universal, and the gap is the point
31
- *
32
- * GeoNames publishes ~80 countries, NOT all of them. Venezuela returns 404 — so a VE postcode slice cannot be built
33
- * from this source at any effort, and that is an acquisition question rather than a build one. Ask for a country
34
- * before assuming it is there; an absent country fails as one entry, never as the whole run.
35
- *
36
- * ## Row counts from this source overstate, for some countries by exactly 2×
37
- *
38
- * Countries whose postcode format contains a hyphen are published TWICE — once `3750-000`, once `3750000`. Measured
39
- * on the slice built from this source: PT 395,544 rows over 197,772 distinct codes and PL 40,598 over 20,299, both
40
- * exactly 2.00×, while AU, CZ and AT (no hyphen in the format) are 1.00×. A consumer sizing a slice from the row
41
- * count doubles its estimate for those countries.
42
- *
43
- * ## Why `downloadToFile` and not `APIClient`
44
- *
45
- * Same split `AGENTS.md` draws and the `ourairports` sibling explains: these are static file transfers from a plain
46
- * file host, run once per refresh. The pacing, retry and caching `APIClient` exists for have nothing to act on here.
47
- *
48
- * Invoke via `mailwoman corpus fetch geonames-postal --countries pt,au,nz`.
49
- */
50
- import { makeDirectories } from "@mailwoman/core/fs/writers";
51
- import { sha256File } from "@mailwoman/core/hash";
52
- import { join } from "path-ts";
53
- import { downloadToFile, HTTPStatusError, writeManifest } from "#tools/fetch/download";
54
- /**
55
- * The one status that means "the source does not publish this country" rather than "the transfer failed".
56
- */
57
- const HTTP_NOT_FOUND = 404;
58
- const SLUG = "geonames-postal";
59
- /**
60
- * GeoNames' own export directory. One zip per ISO alpha-2 code, each holding `<CC>.txt` plus the shared `readme.txt`.
61
- */
62
- const BASE_URL = "https://download.geonames.org/export/zip";
63
- /**
64
- * Countries fetched when the caller names none.
65
- *
66
- * These are the ones the corpus wants and cannot get from `postalcode-intl.db`'s `parent_id` route — see the header for
67
- * why that route covers exactly five countries. Venezuela is deliberately absent because GeoNames does not publish it.
68
- */
69
- export const GEONAMES_POSTAL_DEFAULT_COUNTRIES = ["PT", "AU", "NZ", "IE", "BR", "ZA", "MX"];
70
- /**
71
- * Download the requested GeoNames postal zips into `<outRoot>/geonames-postal/`, with a sibling `MANIFEST.json`
72
- * carrying each file's origin URL, sha256 and byte count, plus the countries the source does not publish.
73
- *
74
- * A country the source does not carry is counted as failed and named in `failedCodes` — it does not stop the rest.
75
- */
76
- export async function fetchGeonamesPostal(options, report) {
77
- const destDir = join(options.outRoot, SLUG);
78
- await makeDirectories(destDir);
79
- const countries = (options.countries ?? GEONAMES_POSTAL_DEFAULT_COUNTRIES).map((code) => code.trim().toUpperCase());
80
- const baseURL = options.baseURL ?? BASE_URL;
81
- const retryDelayMs = options.retryDelayMs;
82
- const entries = [];
83
- const failedCodes = [];
84
- const unavailable = [];
85
- let fetched = 0;
86
- let failed = 0;
87
- for (const country of countries) {
88
- const filename = `${country}.zip`;
89
- const url = `${baseURL}/${filename}`;
90
- const dest = join(destDir, filename);
91
- report?.(`=== ${SLUG} / ${country}`);
92
- try {
93
- const { bytes } = await downloadToFile({ url, dest, timeoutMs: 300_000, retries: 2, retryDelayMs, report });
94
- entries.push({ country, filename, source_url: url, sha256: await sha256File(dest), bytes });
95
- fetched++;
96
- }
97
- catch (error) {
98
- const message = error instanceof Error ? error.message : String(error);
99
- // A 404 here means GeoNames does not publish the country at all, which is a different finding from a failed
100
- // transfer and the one a caller planning a slice needs to see. Branch on the TYPED status: matching message
101
- // prose classified a 500 as "unpublished" whenever the URL happened to contain the substring 404 — an
102
- // ephemeral test-server port did exactly that in CI.
103
- if (error instanceof HTTPStatusError && error.status === HTTP_NOT_FOUND) {
104
- report?.(`✗ ${country}: GeoNames does not publish a postal export for this country`);
105
- unavailable.push(country);
106
- }
107
- else {
108
- report?.(`✗ ${country}: ${message}`);
109
- }
110
- failedCodes.push(country);
111
- failed++;
112
- }
113
- }
114
- const manifest = {
115
- source: "GeoNames postal codes",
116
- base_url: baseURL,
117
- license: "CC-BY-4.0",
118
- attribution: "GeoNames",
119
- downloaded_at: new Date().toISOString(),
120
- files: entries,
121
- unavailable,
122
- };
123
- await writeManifest(join(destDir, "MANIFEST.json"), manifest);
124
- return { fetched, skipped: 0, failed, failedCodes };
125
- }
126
- //# sourceMappingURL=geonames-postal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"geonames-postal.js","sourceRoot":"","sources":["../../../lib/tools/fetch/geonames-postal.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Re-fetch the HRSA Health Center Service Delivery Sites CSV. Source for the `usgov-hrsa-fqhc`
7
- * adapter. US Public Domain.
8
- *
9
- * Uses Node's built-in fetch (gzip/brotli) and streaming sha256 instead of curl + sha256sum, and
10
- * writes the same sibling `MANIFEST.json` (origin URL + fetch timestamp + byte count + sha256) so
11
- * downstream adapters can verify provenance.
12
- *
13
- * Invoke via `mailwoman corpus fetch hrsa --out-root <path>`.
14
- */
15
- import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download";
16
- export type FetchHRSAOptions = BaseFetchOptions;
17
- export declare function fetchHRSA(options: FetchHRSAOptions, report?: (line: string) => void): Promise<FetchSummary>;
18
- //# sourceMappingURL=hrsa.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hrsa.d.ts","sourceRoot":"","sources":["../../../lib/tools/fetch/hrsa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAA;AAO3F,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAA;AAE/C,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CA8BjH"}
@@ -1,46 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Re-fetch the HRSA Health Center Service Delivery Sites CSV. Source for the `usgov-hrsa-fqhc`
7
- * adapter. US Public Domain.
8
- *
9
- * Uses Node's built-in fetch (gzip/brotli) and streaming sha256 instead of curl + sha256sum, and
10
- * writes the same sibling `MANIFEST.json` (origin URL + fetch timestamp + byte count + sha256) so
11
- * downstream adapters can verify provenance.
12
- *
13
- * Invoke via `mailwoman corpus fetch hrsa --out-root <path>`.
14
- */
15
- import { makeDirectories } from "@mailwoman/core/fs/writers";
16
- import { sha256File } from "@mailwoman/core/hash";
17
- import { join } from "path-ts";
18
- import { downloadToFile, writeManifest } from "#tools/fetch/download";
19
- const SLUG = "usgov-hrsa-fqhc";
20
- const FILENAME = "Health_Center_Service_Delivery_and_LookAlike_Sites.csv";
21
- const SOURCE_URL = `https://data.hrsa.gov/DataDownload/DD_Files/${FILENAME}`;
22
- export async function fetchHRSA(options, report) {
23
- const destDir = join(options.outRoot, SLUG);
24
- await makeDirectories(destDir);
25
- const dest = join(destDir, FILENAME);
26
- report?.(`=== ${SLUG} / ${FILENAME}`);
27
- const { bytes } = await downloadToFile({
28
- url: SOURCE_URL,
29
- dest,
30
- timeoutMs: 600_000,
31
- headers: { "Accept-Encoding": "gzip, br" },
32
- report,
33
- });
34
- const sha = await sha256File(dest);
35
- const manifest = {
36
- source_url: SOURCE_URL,
37
- downloaded_at: new Date().toISOString(),
38
- filename: FILENAME,
39
- sha256: sha,
40
- bytes,
41
- };
42
- await writeManifest(join(destDir, "MANIFEST.json"), manifest);
43
- report?.(` ✓ ${(bytes / 1024 / 1024).toFixed(1)} MB sha256=${sha}`);
44
- return { fetched: 1, skipped: 0, failed: 0, failedCodes: [] };
45
- }
46
- //# sourceMappingURL=hrsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hrsa.js","sourceRoot":"","sources":["../../../lib/tools/fetch/hrsa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAG9B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErE,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAC9B,MAAM,QAAQ,GAAG,wDAAwD,CAAA;AACzE,MAAM,UAAU,GAAG,+CAA+C,QAAQ,EAAE,CAAA;AAI5E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB,EAAE,MAA+B;IACzF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3C,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEpC,MAAM,EAAE,CAAC,OAAO,IAAI,MAAM,QAAQ,EAAE,CAAC,CAAA;IAErC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC;QACtC,GAAG,EAAE,UAAU;QACf,IAAI;QACJ,SAAS,EAAE,OAAO;QAClB,OAAO,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE;QAC1C,MAAM;KACN,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,QAAQ,GAAmB;QAChC,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACvC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,GAAG;QACX,KAAK;KACL,CAAA;IAED,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAA;IAE7D,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;IAErE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;AAC9D,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Re-fetch the IMLS Public Libraries Survey (PLS) outlet-level data. Each US public library branch
7
- * (outlet) is one row, ~17K rows with address fields. Source for the `usgov-imls-pls` adapter. US
8
- * Public Domain (federal statistical survey).
9
- *
10
- * The FY 2023 release is the most current as of 2026-05. IMLS ships a single ZIP containing CSV,
11
- * SAS, and SPSS variants. We extract the outlet-level CSV (pls_fy*_outlet*.csv or similar) and
12
- * discard the rest. The administrative-entity (system-level) CSV is intentionally skipped — it has
13
- * no per-branch address detail.
14
- *
15
- * Uses Node's built-in fetch (gzip/brotli) and streaming sha256 instead of curl + sha256sum. The
16
- * ZIP is unpacked with the `unzip` binary via `node:child_process` (no clean Node equivalent for
17
- * member listing + selective extraction).
18
- *
19
- * Invoke via `mailwoman corpus fetch imls-pls --out-root <path>`. Idempotent: if dest CSV exists
20
- * and sha matches MANIFEST, skips download.
21
- */
22
- import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download";
23
- export type FetchIMLSPLSOptions = BaseFetchOptions;
24
- export declare function fetchIMLSPLS(options: FetchIMLSPLSOptions, report?: (line: string) => void): Promise<FetchSummary>;
25
- //# sourceMappingURL=imls-pls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imls-pls.d.ts","sourceRoot":"","sources":["../../../lib/tools/fetch/imls-pls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAA;AAc3F,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAElD,wBAAsB,YAAY,CACjC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,YAAY,CAAC,CAiGvB"}
@@ -1,108 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Re-fetch the IMLS Public Libraries Survey (PLS) outlet-level data. Each US public library branch
7
- * (outlet) is one row, ~17K rows with address fields. Source for the `usgov-imls-pls` adapter. US
8
- * Public Domain (federal statistical survey).
9
- *
10
- * The FY 2023 release is the most current as of 2026-05. IMLS ships a single ZIP containing CSV,
11
- * SAS, and SPSS variants. We extract the outlet-level CSV (pls_fy*_outlet*.csv or similar) and
12
- * discard the rest. The administrative-entity (system-level) CSV is intentionally skipped — it has
13
- * no per-branch address detail.
14
- *
15
- * Uses Node's built-in fetch (gzip/brotli) and streaming sha256 instead of curl + sha256sum. The
16
- * ZIP is unpacked with the `unzip` binary via `node:child_process` (no clean Node equivalent for
17
- * member listing + selective extraction).
18
- *
19
- * Invoke via `mailwoman corpus fetch imls-pls --out-root <path>`. Idempotent: if dest CSV exists
20
- * and sha matches MANIFEST, skips download.
21
- */
22
- /* oxlint-disable sister-software/prefer-region-over-marks -- these markers label steps inside one
23
- procedure, not sections of declarations. A region there folds nothing a reader wants folded. */
24
- import { BYTES_PER_KIB, ByteFormatter } from "@mailwoman/core/fs/formatters";
25
- import { statPath, pathExists } from "@mailwoman/core/fs/readers";
26
- import { makeDirectories, removePathIfPresent } from "@mailwoman/core/fs/writers";
27
- import { extractZipEntry, listZipEntries } from "@mailwoman/core/fs/zip";
28
- import { sha256File } from "@mailwoman/core/hash";
29
- import { basename, join } from "path-ts";
30
- import { downloadToFile, readManifest, writeManifest } from "#tools/fetch/download";
31
- /**
32
- * Bytes per KiB — the divisor for human-readable sizes, and the floor below which a "download" is an error page rather
33
- * than data.
34
- */
35
- /**
36
- * The PLS FY 2023 bulk CSV ZIP (most recent as of 2026-05). If IMLS publishes a newer year, update this URL.
37
- */
38
- const ZIP_URL = "https://www.imls.gov/sites/default/files/2025-08/pls_fy2023_csv.zip";
39
- const SLUG = "usgov-imls-pls";
40
- export async function fetchIMLSPLS(options, report) {
41
- const destDir = join(options.outRoot, SLUG);
42
- await makeDirectories(destDir);
43
- const zipDest = join(destDir, basename(ZIP_URL));
44
- const manifestPath = join(destDir, "MANIFEST.json");
45
- report?.(`=== ${SLUG}`);
46
- // MARK: Idempotency check
47
- const recorded = await readManifest(manifestPath);
48
- if (recorded?.sha256 && recorded.filename) {
49
- const recordedPath = join(destDir, recorded.filename);
50
- if ((await pathExists(recordedPath)) && (await sha256File(recordedPath)) === recorded.sha256) {
51
- report?.(" ✓ Already current (sha256 matches MANIFEST) — skipping download.");
52
- return { fetched: 0, skipped: 1, failed: 0, failedCodes: [] };
53
- }
54
- }
55
- // MARK: Download ZIP
56
- report?.(` Downloading ${ZIP_URL} ...`);
57
- const { bytes: zipSize } = await downloadToFile({
58
- url: ZIP_URL,
59
- dest: zipDest,
60
- timeoutMs: 600_000,
61
- headers: { "Accept-Encoding": "gzip, br" },
62
- report,
63
- });
64
- report?.(` Downloaded: ${ByteFormatter.formatIEC(zipSize)}`);
65
- if (zipSize < BYTES_PER_KIB) {
66
- report?.(` ✗ Response too small (${zipSize} bytes) — probable error page`);
67
- return { fetched: 0, skipped: 0, failed: 1, failedCodes: [SLUG] };
68
- }
69
- // Discover the outlet-level CSV inside the ZIP.
70
- // Outlet files match: pls_fy*outlet*.csv (case-insensitive)
71
- // Administrative-entity files match: pls_fy*ae*.csv — we skip those.
72
- report?.(" Inspecting ZIP contents ...");
73
- const entries = (await listZipEntries(zipDest)).map((entry) => entry.name);
74
- let csvName = entries.find((name) => /pls_fy.*outlet.*\.csv/i.test(name));
75
- // Fallback: if IMLS renames the file, grab any CSV that is NOT the ae file.
76
- if (!csvName) {
77
- csvName = entries.find((name) => /\.csv$/i.test(name) && !/system|state|_ae\b|_se\b/i.test(name));
78
- }
79
- if (!csvName) {
80
- report?.(" Available files in ZIP:");
81
- for (const name of entries) {
82
- report?.(` ${name}`);
83
- }
84
- report?.(" ✗ Could not identify outlet CSV — inspect above listing and update this module");
85
- return { fetched: 0, skipped: 0, failed: 1, failedCodes: [SLUG] };
86
- }
87
- report?.(` Extracting outlet CSV: ${csvName}`);
88
- const csvDest = join(destDir, basename(csvName));
89
- await extractZipEntry(zipDest, csvName, csvDest);
90
- const csvSize = (await statPath(csvDest)).size;
91
- const csvSha = await sha256File(csvDest);
92
- // MARK: Remove ZIP (small, but keep destDir clean)
93
- await removePathIfPresent(zipDest);
94
- report?.(" Removed ZIP (CSV kept)");
95
- // MARK: Write MANIFEST
96
- const manifest = {
97
- source_url: ZIP_URL,
98
- downloaded_at: new Date().toISOString(),
99
- filename: basename(csvName),
100
- sha256: csvSha,
101
- bytes: csvSize,
102
- };
103
- await writeManifest(manifestPath, manifest);
104
- report?.(` ✓ ${(csvSize / 1024 / 1024).toFixed(1)} MB sha256=${csvSha}`);
105
- report?.(` MANIFEST written to ${manifestPath}`);
106
- return { fetched: 1, skipped: 0, failed: 0, failedCodes: [] };
107
- }
108
- //# sourceMappingURL=imls-pls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imls-pls.js","sourceRoot":"","sources":["../../../lib/tools/fetch/imls-pls.ts"],"names":[],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Fetch the US DOT National Address Database (NAD) — ~97 million structured US address-point
7
- * records aggregated from state and local authorities. Source for the `usgov-nad` adapter (#30).
8
- * US Public Domain (17 U.S.C. § 105).
9
- *
10
- * - Bounded per-chunk page concurrency (4× speedup at safe pressure)
11
- * - 5× larger page size (5 000 vs. the old bash fetcher's 2 000) — fewer round-trips per chunk
12
- * - Honest `complete: true` flag: only set when every page in the chunk fetched cleanly
13
- * - Built-in fetch with gzip/brotli decompression (no curl + Python subprocess tax)
14
- * - Per-chunk manifest with sha256 + record count + error count
15
- *
16
- * ## Source layout
17
- *
18
- * The ArcGIS FeatureServer is the only fully-automated path. As of 2026-05:
19
- *
20
- * - **`bulk`** mode requires a pre-signed S3 URL (Akamai blocks scripted curl on the DOT page). Pass
21
- * `--nad-url <presigned>` from a browser visit to
22
- * [https://www.transportation.gov/gis/national-address-database](https://www.transportation.gov/gis/national-address-database).
23
- * - **`featureserver`** mode (default) pages the live FeatureService via OBJECTID ranges, writing
24
- * NDJSON chunks into `<outRoot>/usgov-nad/featureserver/`.
25
- *
26
- * ## Usage
27
- *
28
- * ```sh
29
- * mailwoman corpus fetch nad --out-root $MAILWOMAN_DATA_ROOT/corpus/sources
30
- *
31
- * # Resume from an OID
32
- * mailwoman corpus fetch nad --start-oid 34400001
33
- *
34
- * # Increase concurrency on a fast link
35
- * mailwoman corpus fetch nad --concurrency 8 --page-size 10000
36
- * ```
37
- */
38
- import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download";
39
- export interface FetchNADOptions extends BaseFetchOptions {
40
- /**
41
- * Fetch strategy. Default `featureserver`.
42
- */
43
- mode?: "featureserver" | "bulk";
44
- /**
45
- * Pre-signed S3 URL for bulk mode.
46
- */
47
- nadURL?: string;
48
- /**
49
- * Records per output file. Default `100000`.
50
- */
51
- chunkSize?: number;
52
- /**
53
- * Records per HTTP request. Default `5000`.
54
- */
55
- pageSize?: number;
56
- /**
57
- * Parallel page fetches within a chunk. Default `4`.
58
- */
59
- concurrency?: number;
60
- /**
61
- * Start OBJECTID. Default `1`.
62
- */
63
- startOID?: number;
64
- /**
65
- * Stop before this OID. Default = total count.
66
- */
67
- endOID?: number;
68
- }
69
- export declare function fetchNAD(options: FetchNADOptions, report?: (line: string) => void): Promise<FetchSummary>;
70
- //# sourceMappingURL=nad.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nad.d.ts","sourceRoot":"","sources":["../../../lib/tools/fetch/nad.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAQ3E,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACxD;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CAAA;IAC/B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAuPD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAY/G"}