@mailwoman/corpus 9.4.0 → 10.1.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 (1724) hide show
  1. package/README.md +134 -32
  2. package/data/PROVENANCE.md +623 -17
  3. package/data/address-source-register.json +14249 -0
  4. package/data/builds/v0.7.0-de-holdout/inputs.json +22 -0
  5. package/data/builds/v0.8.0-registers/inputs.json +92 -0
  6. package/data/license-decisions.json +1603 -0
  7. package/data/licenses/PROVENANCE.md +65 -0
  8. package/data/licenses/cdla-permissive-2.0.md +43 -0
  9. package/data/licenses/geonames-publication.md +34 -0
  10. package/data/licenses/licence-ouverte-2.0.md +36 -0
  11. package/data/licenses/national-address-database.md +46 -0
  12. package/data/licenses/nlod-2.0.md +90 -0
  13. package/data/licenses/sirene-publication.md +38 -0
  14. package/data/licenses/whosonfirst-licenses.md +65 -0
  15. package/data/source-resolutions.json +804 -0
  16. package/data/sub-venue-lexicon.json +1 -1
  17. package/data/training-manifests/v0.7.0-de-holdout.effective.json +477 -0
  18. package/data/training-manifests/v0.7.0-de-holdout.json +78 -0
  19. package/lib/adapters/cordis/adapter.ts +785 -0
  20. package/lib/adapters/dedup-key.ts +40 -0
  21. package/lib/adapters/errors.ts +21 -0
  22. package/lib/adapters/geonames/adapter.ts +43 -53
  23. package/lib/adapters/geonames/postal/adapter.ts +116 -0
  24. package/lib/adapters/gleif/adapter.ts +828 -0
  25. package/lib/adapters/libpostal-dictionary.ts +39 -0
  26. package/lib/adapters/openaddresses/adapter.ts +54 -61
  27. package/lib/adapters/osm/adapter.ts +356 -0
  28. package/lib/adapters/overture/adapter.ts +65 -41
  29. package/lib/adapters/po-box/adapter.ts +202 -0
  30. package/lib/adapters/registry.ts +79 -0
  31. package/lib/adapters/sha256-stream.ts +49 -0
  32. package/lib/adapters/source-id.ts +49 -0
  33. package/lib/adapters/street-line.ts +135 -0
  34. package/lib/adapters/wof/admin/json/adapter.ts +254 -0
  35. package/lib/adapters/wof/json-rows.ts +211 -0
  36. package/lib/adapters/wof/postalcode-json/adapter.ts +194 -0
  37. package/lib/adapters.ts +230 -0
  38. package/lib/au/adapters/gnaf/adapter.ts +144 -0
  39. package/lib/au/adapters/gnaf/assemble.ts +205 -0
  40. package/lib/be/adapters/brussels/adapter.ts +566 -0
  41. package/lib/be/adapters/vlaanderen/adapter.ts +670 -0
  42. package/lib/be/adapters/wallonie/adapter.ts +537 -0
  43. package/lib/be/tools/fetch/brussels.ts +239 -0
  44. package/lib/be/tools/fetch/wallonie.ts +274 -0
  45. package/lib/build/adapters.ts +110 -0
  46. package/lib/build/align.ts +364 -0
  47. package/lib/build/checkpoint.ts +131 -0
  48. package/lib/build/eligibility.ts +96 -0
  49. package/lib/build/heap.ts +53 -0
  50. package/lib/build/inputs.ts +81 -0
  51. package/lib/build/rows.ts +21 -0
  52. package/lib/build/types.ts +232 -0
  53. package/lib/build.ts +127 -315
  54. package/lib/cn/recipes/organizational-units.ts +178 -0
  55. package/lib/cz/adapters/cuzk/adapter.ts +317 -0
  56. package/lib/cz/recipes/pcfirst-preposition.ts +125 -0
  57. package/lib/cz/tools/fetch/cuzk.ts +699 -0
  58. package/lib/de/recipes/locale.ts +370 -0
  59. package/lib/directory.ts +31 -0
  60. package/lib/dk/adapters/inspire/adapter.ts +345 -0
  61. package/lib/dk/tools/fetch/inspire.ts +321 -0
  62. package/lib/ee/adapters/ads/adapter.ts +246 -0
  63. package/lib/ee/tools/fetch/ads.ts +270 -0
  64. package/lib/env.ts +6 -2
  65. package/lib/es/adapters/bizkaia/adapter.ts +388 -0
  66. package/lib/es/adapters/catastro/adapter.ts +343 -0
  67. package/lib/es/adapters/gipuzkoa/adapter.ts +263 -0
  68. package/lib/es/adapters/navarra/adapter.ts +289 -0
  69. package/lib/es/cadastre.ts +194 -0
  70. package/lib/es/tools/fetch/bizkaia.ts +748 -0
  71. package/lib/es/tools/fetch/catastro.ts +754 -0
  72. package/lib/es/tools/fetch/gipuzkoa.ts +336 -0
  73. package/lib/es/tools/fetch/navarra.ts +488 -0
  74. package/lib/fi/adapters/ryhti/adapter.ts +323 -0
  75. package/lib/fi/tools/fetch/ryhti.ts +476 -0
  76. package/lib/fingerprints.ts +154 -0
  77. package/lib/fr/adapters/annuaire-education/adapter.ts +598 -0
  78. package/lib/fr/adapters/ban/adapter.ts +187 -0
  79. package/lib/fr/adapters/finess/adapter.ts +618 -0
  80. package/lib/fr/adapters/finess/postal-lines.ts +157 -0
  81. package/lib/fr/adapters/finess/voie-type.ts +200 -0
  82. package/lib/fr/insee-country.ts +62 -0
  83. package/lib/fr/recipes/admin-split.ts +221 -0
  84. package/lib/fr/recipes/bare-street.ts +158 -0
  85. package/lib/fr/recipes/fragment.ts +251 -0
  86. package/lib/fr/recipes/lieudit.ts +310 -0
  87. package/lib/fr/recipes/order.ts +219 -0
  88. package/lib/fr/street-decompose.ts +67 -0
  89. package/lib/fr/tools/fetch/annuaire-education.ts +306 -0
  90. package/lib/fr/tools/fetch/ban.ts +298 -0
  91. package/lib/fr/tools/fetch/finess.ts +352 -0
  92. package/lib/gauntlet-inputs.ts +92 -0
  93. package/lib/index.ts +10 -4
  94. package/lib/inspire/address.ts +457 -0
  95. package/lib/inspire/archive.ts +44 -0
  96. package/lib/inspire/errors.ts +71 -0
  97. package/lib/inspire/stream.ts +262 -0
  98. package/lib/international/recipes/locale.ts +556 -0
  99. package/lib/it/adapters/anac/adapter.ts +522 -0
  100. package/lib/it/tools/fetch/anac.ts +394 -0
  101. package/lib/jp/adapters/wof-admin/adapter.ts +224 -0
  102. package/lib/jp/tools/fetch/houjin.ts +139 -0
  103. package/lib/kr/adapters/juso/label-rows.ts +239 -0
  104. package/lib/kr/adapters/localdata/align.ts +288 -0
  105. package/lib/kr/adapters/localdata/key-index.ts +177 -0
  106. package/lib/kr/adapters/localdata/permit-rows.ts +193 -0
  107. package/lib/kr/tools/fetch/juso.ts +170 -0
  108. package/lib/kr/tools/fetch/localdata.ts +205 -0
  109. package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
  110. package/lib/lu/tools/fetch/bd-adresses.ts +351 -0
  111. package/lib/lv/adapters/varis/adapter.ts +499 -0
  112. package/lib/lv/tools/fetch/varis.ts +214 -0
  113. package/lib/nl/adapters/kadaster/adapter.ts +386 -0
  114. package/lib/nl/recipes/postcode.ts +139 -0
  115. package/lib/nl/tools/fetch/kadaster.ts +298 -0
  116. package/lib/no/adapters/matrikkelen/adapter.ts +187 -0
  117. package/lib/no/recipes/fragment.ts +189 -0
  118. package/lib/no/recipes/street/led.ts +154 -0
  119. package/lib/no/recipes/street.ts +109 -0
  120. package/lib/no/tools/fetch/matrikkelen.ts +519 -0
  121. package/lib/parquet/duckdb.ts +144 -0
  122. package/lib/parquet/readers.ts +86 -0
  123. package/lib/parquet/schema.ts +214 -0
  124. package/lib/parquet/shuffle.ts +59 -0
  125. package/lib/parquet/span-sql.ts +54 -0
  126. package/lib/parquet/streams.ts +113 -0
  127. package/lib/parquet/writers.ts +451 -0
  128. package/lib/pl/adapters/emuia/adapter.ts +202 -0
  129. package/lib/pl/tools/fetch/emuia.ts +360 -0
  130. package/lib/recipes/anchor-absorption.ts +30 -19
  131. package/lib/recipes/bare/country.ts +87 -0
  132. package/lib/recipes/bare/postcode/eval.ts +99 -0
  133. package/lib/recipes/bare/postcode.ts +346 -0
  134. package/lib/recipes/boundary-stress.ts +36 -19
  135. package/lib/recipes/country-balanced.ts +67 -87
  136. package/lib/recipes/house-venue.ts +31 -13
  137. package/lib/recipes/intersection.ts +83 -61
  138. package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
  139. package/lib/recipes/po/box/cedex/ca.ts +59 -0
  140. package/lib/recipes/po/box/cedex/fr.ts +77 -0
  141. package/lib/recipes/po/box/cedex/phrases.ts +109 -0
  142. package/lib/recipes/po/box/cedex/recipe.ts +215 -0
  143. package/lib/recipes/po/box/cedex/sources.ts +189 -0
  144. package/lib/recipes/po/box/cedex/types.ts +35 -0
  145. package/lib/recipes/po/box/cedex/us.ts +74 -0
  146. package/lib/recipes/po/box/cedex/vocabulary.ts +106 -0
  147. package/lib/recipes/po/box/cedex.ts +9 -0
  148. package/lib/recipes/po/box.ts +149 -0
  149. package/lib/recipes/scaffold.ts +258 -182
  150. package/lib/recipes/sources.ts +399 -0
  151. package/lib/recipes/street/affix.ts +707 -0
  152. package/lib/recipes/street/bare.ts +115 -0
  153. package/lib/recipes/street.ts +32 -8
  154. package/lib/recipes/sub/venue/context.ts +156 -0
  155. package/lib/recipes/sub/venue/render.ts +170 -0
  156. package/lib/recipes/sub/venue/sources.ts +588 -0
  157. package/lib/recipes/sub/venue.ts +801 -0
  158. package/lib/recipes/trailing-region.ts +70 -81
  159. package/lib/recipes/unit/sources.ts +44 -0
  160. package/lib/recipes/unit.ts +102 -90
  161. package/lib/recipes.ts +106 -0
  162. package/lib/registers.ts +278 -0
  163. package/lib/ro/adapters/retea-scolara/adapter.ts +264 -0
  164. package/lib/ro/tools/fetch/retea-scolara.ts +187 -0
  165. package/lib/runner.ts +220 -84
  166. package/lib/sg/recipes/register.ts +264 -0
  167. package/lib/sg/tools/fetch/acra.ts +174 -0
  168. package/lib/si/recipes/bare-village.ts +116 -0
  169. package/lib/sk/adapters/inspire/adapter.ts +395 -0
  170. package/lib/sk/tools/fetch/inspire.ts +402 -0
  171. package/lib/source-register/effective-manifest.ts +659 -0
  172. package/lib/source-register/register.ts +539 -0
  173. package/lib/source-register/training-manifest.ts +218 -0
  174. package/lib/source-register/types.ts +590 -0
  175. package/lib/source-register.ts +71 -0
  176. package/lib/south-asia/recipes/register.ts +233 -0
  177. package/lib/subvenue/harvest.ts +251 -0
  178. package/lib/subvenue/promotions.ts +293 -0
  179. package/lib/subvenue/surfaces.ts +94 -0
  180. package/lib/subvenue/table.ts +264 -0
  181. package/lib/surfaces/locale.ts +246 -0
  182. package/lib/synthesizers/anchor-absorption.ts +55 -91
  183. package/lib/synthesizers/boundary-stress.ts +49 -131
  184. package/lib/synthesizers/house-venue.ts +44 -102
  185. package/lib/synthesizers/intersection.ts +37 -26
  186. package/lib/synthesizers/no-street.ts +70 -119
  187. package/lib/synthesizers/po-box.ts +90 -105
  188. package/lib/synthesizers/street.ts +47 -35
  189. package/lib/synthesizers/utils.ts +65 -219
  190. package/lib/test-kit/corpus-recipe.ts +45 -28
  191. package/lib/test-kit.ts +116 -0
  192. package/lib/tools/align-canonical.ts +64 -0
  193. package/lib/tools/audit.ts +114 -118
  194. package/lib/tools/corpus-stats.ts +46 -32
  195. package/lib/tools/fetch/atom.ts +164 -0
  196. package/lib/tools/fetch/cordis.ts +318 -0
  197. package/lib/tools/fetch/download/manifest.ts +114 -0
  198. package/lib/tools/fetch/download/network.ts +250 -0
  199. package/lib/tools/fetch/download/retry.ts +174 -0
  200. package/lib/tools/fetch/download.ts +4 -471
  201. package/lib/tools/fetch/geonames/dump.ts +275 -0
  202. package/lib/tools/fetch/geonames/postal.ts +145 -0
  203. package/lib/tools/fetch/gleif.ts +360 -0
  204. package/lib/tools/fetch/header.ts +69 -0
  205. package/lib/tools/fetch/inspire-addresses.ts +495 -0
  206. package/lib/tools/fetch/openaddresses.ts +20 -109
  207. package/lib/tools/fetch/ourairports.ts +16 -49
  208. package/lib/tools/fetch/ppd.ts +10 -10
  209. package/lib/tools/fetch/vlaanderen-ad.ts +435 -0
  210. package/lib/tools/fetch/wfs-harvest.ts +943 -0
  211. package/lib/tools/fetch/wikidata-subvenue.ts +43 -143
  212. package/lib/tools/fetch/zip-archive.ts +100 -0
  213. package/lib/tools/fetch.ts +143 -0
  214. package/lib/tools/golden/expand.ts +605 -0
  215. package/lib/tools/golden/promote.ts +349 -0
  216. package/lib/tools/golden/relabel-street/directory.ts +367 -0
  217. package/lib/tools/golden/relabel-street/row.ts +283 -0
  218. package/lib/tools/golden/relabel-street.ts +9 -0
  219. package/lib/tools/ingest-csv.ts +45 -50
  220. package/lib/tools/jsonl-to-parquet.ts +59 -98
  221. package/lib/tools/lint/recipe-output/vocab.ts +366 -0
  222. package/lib/tools/lint/recipe-output.ts +482 -0
  223. package/lib/tools/migrate/overlay-parquet.ts +173 -0
  224. package/lib/tools/migrate/recipe-output.ts +153 -0
  225. package/lib/tools/migrate/source-names.ts +161 -0
  226. package/lib/tools/overlay/kryptonite.ts +144 -0
  227. package/lib/tools/overlay/manifest.ts +407 -0
  228. package/lib/tools/overlay/merge-source.ts +138 -0
  229. package/lib/tools/overlay/split-slice.ts +144 -0
  230. package/lib/tools/overlay/translit.ts +234 -0
  231. package/lib/tools/overture-subvenue.ts +18 -91
  232. package/lib/tools/postcode-triples.ts +362 -167
  233. package/lib/tools/source-register/build.ts +819 -0
  234. package/lib/tools/sub/venue/head-nouns.ts +208 -0
  235. package/lib/tools/sub/venue/lexicon.ts +394 -0
  236. package/lib/tools/sub/venue/wikidata.ts +88 -0
  237. package/lib/tools.ts +31 -0
  238. package/lib/tw/tools/fetch/gcis.ts +181 -0
  239. package/lib/types.ts +304 -101
  240. package/lib/us/adapters/fcc-bdc/adapter.ts +158 -0
  241. package/lib/us/adapters/state/hi-schools/adapter.ts +171 -0
  242. package/lib/us/adapters/state/hi-schools/workbook.ts +40 -0
  243. package/lib/us/adapters/state/ia-contractors/adapter.ts +148 -0
  244. package/lib/us/adapters/state/ny-notaries/adapter.ts +132 -0
  245. package/lib/us/adapters/state/tx-notaries/adapter.ts +155 -0
  246. package/lib/us/adapters/tiger/adapter.ts +225 -0
  247. package/lib/us/adapters/tiger/street-decompose.ts +73 -0
  248. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +171 -0
  249. package/lib/us/adapters/usgov/imls-pls/adapter.ts +140 -0
  250. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +154 -0
  251. package/lib/us/adapters/usgov/nad/adapter.ts +263 -0
  252. package/lib/us/adapters/usgov/nppes/adapter.ts +180 -0
  253. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +195 -0
  254. package/lib/us/fips-state.ts +122 -0
  255. package/lib/us/tools/fetch/hrsa.ts +58 -0
  256. package/lib/us/tools/fetch/imls-pls.ts +131 -0
  257. package/lib/us/tools/fetch/nad.ts +359 -0
  258. package/lib/us/tools/fetch/nppes.ts +153 -0
  259. package/lib/us/tools/fetch/state/hi-schools.ts +167 -0
  260. package/lib/us/tools/fetch/state/sources.ts +146 -0
  261. package/lib/us/tools/fetch/tiger-full.ts +256 -0
  262. package/lib/utils/align.ts +43 -53
  263. package/lib/utils/cooccurrence-stats.ts +101 -0
  264. package/lib/utils/golden.ts +39 -50
  265. package/lib/utils/license.ts +238 -26
  266. package/lib/utils/split.ts +205 -88
  267. package/lib/utils/tokenize.ts +22 -34
  268. package/lib/utils/wof-json.ts +134 -87
  269. package/lib/utils.ts +13 -0
  270. package/lib/ve/recipes/reviewed-postcode-tail.ts +217 -0
  271. package/out/adapters/cordis/adapter.d.ts +324 -0
  272. package/out/adapters/cordis/adapter.d.ts.map +1 -0
  273. package/out/adapters/cordis/adapter.js +616 -0
  274. package/out/adapters/cordis/adapter.js.map +1 -0
  275. package/out/adapters/dedup-key.d.ts +30 -0
  276. package/out/adapters/dedup-key.d.ts.map +1 -0
  277. package/out/adapters/dedup-key.js +35 -0
  278. package/out/adapters/dedup-key.js.map +1 -0
  279. package/out/adapters/errors.d.ts +17 -0
  280. package/out/adapters/errors.d.ts.map +1 -0
  281. package/out/adapters/errors.js +20 -0
  282. package/out/adapters/errors.js.map +1 -0
  283. package/out/adapters/geonames/adapter.d.ts +26 -28
  284. package/out/adapters/geonames/adapter.d.ts.map +1 -1
  285. package/out/adapters/geonames/adapter.js +40 -50
  286. package/out/adapters/geonames/adapter.js.map +1 -1
  287. package/out/adapters/geonames/postal/adapter.d.ts +41 -0
  288. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -0
  289. package/out/adapters/geonames/postal/adapter.js +102 -0
  290. package/out/adapters/geonames/postal/adapter.js.map +1 -0
  291. package/out/adapters/gleif/adapter.d.ts +293 -0
  292. package/out/adapters/gleif/adapter.d.ts.map +1 -0
  293. package/out/adapters/gleif/adapter.js +684 -0
  294. package/out/adapters/gleif/adapter.js.map +1 -0
  295. package/out/adapters/libpostal-dictionary.d.ts +22 -0
  296. package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
  297. package/out/adapters/libpostal-dictionary.js +36 -0
  298. package/out/adapters/libpostal-dictionary.js.map +1 -0
  299. package/out/adapters/openaddresses/adapter.d.ts +28 -43
  300. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  301. package/out/adapters/openaddresses/adapter.js +37 -51
  302. package/out/adapters/openaddresses/adapter.js.map +1 -1
  303. package/out/adapters/osm/adapter.d.ts +101 -0
  304. package/out/adapters/osm/adapter.d.ts.map +1 -0
  305. package/out/adapters/osm/adapter.js +260 -0
  306. package/out/adapters/osm/adapter.js.map +1 -0
  307. package/out/adapters/overture/adapter.d.ts +14 -30
  308. package/out/adapters/overture/adapter.d.ts.map +1 -1
  309. package/out/adapters/overture/adapter.js +57 -41
  310. package/out/adapters/overture/adapter.js.map +1 -1
  311. package/out/adapters/po-box/adapter.d.ts +63 -0
  312. package/out/adapters/po-box/adapter.d.ts.map +1 -0
  313. package/out/adapters/po-box/adapter.js +139 -0
  314. package/out/adapters/po-box/adapter.js.map +1 -0
  315. package/out/adapters/registry.d.ts +55 -0
  316. package/out/adapters/registry.d.ts.map +1 -0
  317. package/out/adapters/registry.js +43 -0
  318. package/out/adapters/registry.js.map +1 -0
  319. package/out/adapters/sha256-stream.d.ts +26 -0
  320. package/out/adapters/sha256-stream.d.ts.map +1 -0
  321. package/out/adapters/sha256-stream.js +34 -0
  322. package/out/adapters/sha256-stream.js.map +1 -0
  323. package/out/adapters/source-id.d.ts +33 -0
  324. package/out/adapters/source-id.d.ts.map +1 -0
  325. package/out/adapters/source-id.js +42 -0
  326. package/out/adapters/source-id.js.map +1 -0
  327. package/out/adapters/street-line.d.ts +102 -0
  328. package/out/adapters/street-line.d.ts.map +1 -0
  329. package/out/adapters/street-line.js +117 -0
  330. package/out/adapters/street-line.js.map +1 -0
  331. package/out/adapters/wof/admin/json/adapter.d.ts +88 -0
  332. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -0
  333. package/out/adapters/wof/admin/json/adapter.js +220 -0
  334. package/out/adapters/wof/admin/json/adapter.js.map +1 -0
  335. package/out/adapters/wof/json-rows.d.ts +89 -0
  336. package/out/adapters/wof/json-rows.d.ts.map +1 -0
  337. package/out/adapters/wof/json-rows.js +135 -0
  338. package/out/adapters/wof/json-rows.js.map +1 -0
  339. package/out/adapters/wof/postalcode-json/adapter.d.ts +49 -0
  340. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -0
  341. package/out/adapters/wof/postalcode-json/adapter.js +165 -0
  342. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
  343. package/out/adapters.d.ts +75 -0
  344. package/out/adapters.d.ts.map +1 -0
  345. package/out/adapters.js +167 -0
  346. package/out/adapters.js.map +1 -0
  347. package/out/au/adapters/gnaf/adapter.d.ts +37 -0
  348. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
  349. package/out/au/adapters/gnaf/adapter.js +119 -0
  350. package/out/au/adapters/gnaf/adapter.js.map +1 -0
  351. package/out/au/adapters/gnaf/assemble.d.ts +54 -0
  352. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
  353. package/out/au/adapters/gnaf/assemble.js +134 -0
  354. package/out/au/adapters/gnaf/assemble.js.map +1 -0
  355. package/out/be/adapters/brussels/adapter.d.ts +212 -0
  356. package/out/be/adapters/brussels/adapter.d.ts.map +1 -0
  357. package/out/be/adapters/brussels/adapter.js +435 -0
  358. package/out/be/adapters/brussels/adapter.js.map +1 -0
  359. package/out/be/adapters/vlaanderen/adapter.d.ts +233 -0
  360. package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
  361. package/out/be/adapters/vlaanderen/adapter.js +416 -0
  362. package/out/be/adapters/vlaanderen/adapter.js.map +1 -0
  363. package/out/be/adapters/wallonie/adapter.d.ts +196 -0
  364. package/out/be/adapters/wallonie/adapter.d.ts.map +1 -0
  365. package/out/be/adapters/wallonie/adapter.js +437 -0
  366. package/out/be/adapters/wallonie/adapter.js.map +1 -0
  367. package/out/be/tools/fetch/brussels.d.ts +119 -0
  368. package/out/be/tools/fetch/brussels.d.ts.map +1 -0
  369. package/out/be/tools/fetch/brussels.js +146 -0
  370. package/out/be/tools/fetch/brussels.js.map +1 -0
  371. package/out/be/tools/fetch/wallonie.d.ts +119 -0
  372. package/out/be/tools/fetch/wallonie.d.ts.map +1 -0
  373. package/out/be/tools/fetch/wallonie.js +167 -0
  374. package/out/be/tools/fetch/wallonie.js.map +1 -0
  375. package/out/build/adapters.d.ts +33 -0
  376. package/out/build/adapters.d.ts.map +1 -0
  377. package/out/build/adapters.js +68 -0
  378. package/out/build/adapters.js.map +1 -0
  379. package/out/build/align.d.ts +73 -0
  380. package/out/build/align.d.ts.map +1 -0
  381. package/out/build/align.js +226 -0
  382. package/out/build/align.js.map +1 -0
  383. package/out/build/checkpoint.d.ts +94 -0
  384. package/out/build/checkpoint.d.ts.map +1 -0
  385. package/out/build/checkpoint.js +59 -0
  386. package/out/build/checkpoint.js.map +1 -0
  387. package/out/build/eligibility.d.ts +47 -0
  388. package/out/build/eligibility.d.ts.map +1 -0
  389. package/out/build/eligibility.js +80 -0
  390. package/out/build/eligibility.js.map +1 -0
  391. package/out/build/heap.d.ts +28 -0
  392. package/out/build/heap.d.ts.map +1 -0
  393. package/out/build/heap.js +47 -0
  394. package/out/build/heap.js.map +1 -0
  395. package/out/build/inputs.d.ts +52 -0
  396. package/out/build/inputs.d.ts.map +1 -0
  397. package/out/build/inputs.js +49 -0
  398. package/out/build/inputs.js.map +1 -0
  399. package/out/build/rows.d.ts +16 -0
  400. package/out/build/rows.d.ts.map +1 -0
  401. package/out/build/rows.js +19 -0
  402. package/out/build/rows.js.map +1 -0
  403. package/out/build/types.d.ts +220 -0
  404. package/out/build/types.d.ts.map +1 -0
  405. package/out/build/types.js +34 -0
  406. package/out/build/types.js.map +1 -0
  407. package/out/build.d.ts +6 -121
  408. package/out/build.d.ts.map +1 -1
  409. package/out/build.js +112 -207
  410. package/out/build.js.map +1 -1
  411. package/out/cn/recipes/organizational-units.d.ts +19 -0
  412. package/out/cn/recipes/organizational-units.d.ts.map +1 -0
  413. package/out/cn/recipes/organizational-units.js +138 -0
  414. package/out/cn/recipes/organizational-units.js.map +1 -0
  415. package/out/cz/adapters/cuzk/adapter.d.ts +52 -0
  416. package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -0
  417. package/out/cz/adapters/cuzk/adapter.js +266 -0
  418. package/out/cz/adapters/cuzk/adapter.js.map +1 -0
  419. package/out/cz/recipes/pcfirst-preposition.d.ts +18 -0
  420. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
  421. package/out/cz/recipes/pcfirst-preposition.js +110 -0
  422. package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
  423. package/out/cz/tools/fetch/cuzk.d.ts +272 -0
  424. package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
  425. package/out/cz/tools/fetch/cuzk.js +446 -0
  426. package/out/cz/tools/fetch/cuzk.js.map +1 -0
  427. package/out/de/recipes/locale.d.ts +42 -0
  428. package/out/de/recipes/locale.d.ts.map +1 -0
  429. package/out/de/recipes/locale.js +299 -0
  430. package/out/de/recipes/locale.js.map +1 -0
  431. package/out/directory.d.ts +20 -0
  432. package/out/directory.d.ts.map +1 -0
  433. package/out/directory.js +27 -0
  434. package/out/directory.js.map +1 -0
  435. package/out/dk/adapters/inspire/adapter.d.ts +154 -0
  436. package/out/dk/adapters/inspire/adapter.d.ts.map +1 -0
  437. package/out/dk/adapters/inspire/adapter.js +258 -0
  438. package/out/dk/adapters/inspire/adapter.js.map +1 -0
  439. package/out/dk/tools/fetch/inspire.d.ts +100 -0
  440. package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
  441. package/out/dk/tools/fetch/inspire.js +230 -0
  442. package/out/dk/tools/fetch/inspire.js.map +1 -0
  443. package/out/ee/adapters/ads/adapter.d.ts +109 -0
  444. package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
  445. package/out/ee/adapters/ads/adapter.js +191 -0
  446. package/out/ee/adapters/ads/adapter.js.map +1 -0
  447. package/out/ee/tools/fetch/ads.d.ts +123 -0
  448. package/out/ee/tools/fetch/ads.d.ts.map +1 -0
  449. package/out/ee/tools/fetch/ads.js +195 -0
  450. package/out/ee/tools/fetch/ads.js.map +1 -0
  451. package/out/env.d.ts +7 -3
  452. package/out/env.d.ts.map +1 -1
  453. package/out/env.js +6 -2
  454. package/out/env.js.map +1 -1
  455. package/out/es/adapters/bizkaia/adapter.d.ts +143 -0
  456. package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -0
  457. package/out/es/adapters/bizkaia/adapter.js +332 -0
  458. package/out/es/adapters/bizkaia/adapter.js.map +1 -0
  459. package/out/es/adapters/catastro/adapter.d.ts +104 -0
  460. package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
  461. package/out/es/adapters/catastro/adapter.js +288 -0
  462. package/out/es/adapters/catastro/adapter.js.map +1 -0
  463. package/out/es/adapters/gipuzkoa/adapter.d.ts +91 -0
  464. package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
  465. package/out/es/adapters/gipuzkoa/adapter.js +225 -0
  466. package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
  467. package/out/es/adapters/navarra/adapter.d.ts +105 -0
  468. package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
  469. package/out/es/adapters/navarra/adapter.js +241 -0
  470. package/out/es/adapters/navarra/adapter.js.map +1 -0
  471. package/out/es/cadastre.d.ts +109 -0
  472. package/out/es/cadastre.d.ts.map +1 -0
  473. package/out/es/cadastre.js +130 -0
  474. package/out/es/cadastre.js.map +1 -0
  475. package/out/es/tools/fetch/bizkaia.d.ts +278 -0
  476. package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
  477. package/out/es/tools/fetch/bizkaia.js +477 -0
  478. package/out/es/tools/fetch/bizkaia.js.map +1 -0
  479. package/out/es/tools/fetch/catastro.d.ts +272 -0
  480. package/out/es/tools/fetch/catastro.d.ts.map +1 -0
  481. package/out/es/tools/fetch/catastro.js +486 -0
  482. package/out/es/tools/fetch/catastro.js.map +1 -0
  483. package/out/es/tools/fetch/gipuzkoa.d.ts +162 -0
  484. package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
  485. package/out/es/tools/fetch/gipuzkoa.js +209 -0
  486. package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
  487. package/out/es/tools/fetch/navarra.d.ts +189 -0
  488. package/out/es/tools/fetch/navarra.d.ts.map +1 -0
  489. package/out/es/tools/fetch/navarra.js +316 -0
  490. package/out/es/tools/fetch/navarra.js.map +1 -0
  491. package/out/fi/adapters/ryhti/adapter.d.ts +115 -0
  492. package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
  493. package/out/fi/adapters/ryhti/adapter.js +244 -0
  494. package/out/fi/adapters/ryhti/adapter.js.map +1 -0
  495. package/out/fi/tools/fetch/ryhti.d.ts +206 -0
  496. package/out/fi/tools/fetch/ryhti.d.ts.map +1 -0
  497. package/out/fi/tools/fetch/ryhti.js +327 -0
  498. package/out/fi/tools/fetch/ryhti.js.map +1 -0
  499. package/out/fingerprints.d.ts +68 -0
  500. package/out/fingerprints.d.ts.map +1 -0
  501. package/out/fingerprints.js +130 -0
  502. package/out/fingerprints.js.map +1 -0
  503. package/out/fr/adapters/annuaire-education/adapter.d.ts +236 -0
  504. package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -0
  505. package/out/fr/adapters/annuaire-education/adapter.js +475 -0
  506. package/out/fr/adapters/annuaire-education/adapter.js.map +1 -0
  507. package/out/fr/adapters/ban/adapter.d.ts +38 -0
  508. package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
  509. package/out/fr/adapters/ban/adapter.js +134 -0
  510. package/out/fr/adapters/ban/adapter.js.map +1 -0
  511. package/out/fr/adapters/finess/adapter.d.ts +276 -0
  512. package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
  513. package/out/fr/adapters/finess/adapter.js +519 -0
  514. package/out/fr/adapters/finess/adapter.js.map +1 -0
  515. package/out/fr/adapters/finess/postal-lines.d.ts +61 -0
  516. package/out/fr/adapters/finess/postal-lines.d.ts.map +1 -0
  517. package/out/fr/adapters/finess/postal-lines.js +114 -0
  518. package/out/fr/adapters/finess/postal-lines.js.map +1 -0
  519. package/out/fr/adapters/finess/voie-type.d.ts +77 -0
  520. package/out/fr/adapters/finess/voie-type.d.ts.map +1 -0
  521. package/out/fr/adapters/finess/voie-type.js +172 -0
  522. package/out/fr/adapters/finess/voie-type.js.map +1 -0
  523. package/out/fr/insee-country.d.ts +45 -0
  524. package/out/fr/insee-country.d.ts.map +1 -0
  525. package/out/fr/insee-country.js +60 -0
  526. package/out/fr/insee-country.js.map +1 -0
  527. package/out/fr/recipes/admin-split.d.ts +15 -0
  528. package/out/fr/recipes/admin-split.d.ts.map +1 -0
  529. package/out/fr/recipes/admin-split.js +170 -0
  530. package/out/fr/recipes/admin-split.js.map +1 -0
  531. package/out/fr/recipes/bare-street.d.ts +13 -0
  532. package/out/fr/recipes/bare-street.d.ts.map +1 -0
  533. package/out/fr/recipes/bare-street.js +129 -0
  534. package/out/fr/recipes/bare-street.js.map +1 -0
  535. package/out/fr/recipes/fragment.d.ts +18 -0
  536. package/out/fr/recipes/fragment.d.ts.map +1 -0
  537. package/out/fr/recipes/fragment.js +197 -0
  538. package/out/fr/recipes/fragment.js.map +1 -0
  539. package/out/fr/recipes/lieudit.d.ts +30 -0
  540. package/out/fr/recipes/lieudit.d.ts.map +1 -0
  541. package/out/fr/recipes/lieudit.js +231 -0
  542. package/out/fr/recipes/lieudit.js.map +1 -0
  543. package/out/fr/recipes/order.d.ts +15 -0
  544. package/out/fr/recipes/order.d.ts.map +1 -0
  545. package/out/fr/recipes/order.js +171 -0
  546. package/out/fr/recipes/order.js.map +1 -0
  547. package/out/fr/street-decompose.d.ts +29 -0
  548. package/out/fr/street-decompose.d.ts.map +1 -0
  549. package/out/fr/street-decompose.js +52 -0
  550. package/out/fr/street-decompose.js.map +1 -0
  551. package/out/fr/tools/fetch/annuaire-education.d.ts +130 -0
  552. package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
  553. package/out/fr/tools/fetch/annuaire-education.js +196 -0
  554. package/out/fr/tools/fetch/annuaire-education.js.map +1 -0
  555. package/out/fr/tools/fetch/ban.d.ts +33 -0
  556. package/out/fr/tools/fetch/ban.d.ts.map +1 -0
  557. package/out/fr/tools/fetch/ban.js +248 -0
  558. package/out/fr/tools/fetch/ban.js.map +1 -0
  559. package/out/fr/tools/fetch/finess.d.ts +145 -0
  560. package/out/fr/tools/fetch/finess.d.ts.map +1 -0
  561. package/out/fr/tools/fetch/finess.js +228 -0
  562. package/out/fr/tools/fetch/finess.js.map +1 -0
  563. package/out/gauntlet-inputs.d.ts +42 -0
  564. package/out/gauntlet-inputs.d.ts.map +1 -0
  565. package/out/gauntlet-inputs.js +78 -0
  566. package/out/gauntlet-inputs.js.map +1 -0
  567. package/out/index.d.ts +10 -4
  568. package/out/index.d.ts.map +1 -1
  569. package/out/index.js +10 -4
  570. package/out/index.js.map +1 -1
  571. package/out/inspire/address.d.ts +251 -0
  572. package/out/inspire/address.d.ts.map +1 -0
  573. package/out/inspire/address.js +384 -0
  574. package/out/inspire/address.js.map +1 -0
  575. package/out/inspire/archive.d.ts +36 -0
  576. package/out/inspire/archive.d.ts.map +1 -0
  577. package/out/inspire/archive.js +42 -0
  578. package/out/inspire/archive.js.map +1 -0
  579. package/out/inspire/errors.d.ts +55 -0
  580. package/out/inspire/errors.d.ts.map +1 -0
  581. package/out/inspire/errors.js +64 -0
  582. package/out/inspire/errors.js.map +1 -0
  583. package/out/inspire/stream.d.ts +137 -0
  584. package/out/inspire/stream.d.ts.map +1 -0
  585. package/out/inspire/stream.js +125 -0
  586. package/out/inspire/stream.js.map +1 -0
  587. package/out/international/recipes/locale.d.ts +90 -0
  588. package/out/international/recipes/locale.d.ts.map +1 -0
  589. package/out/international/recipes/locale.js +419 -0
  590. package/out/international/recipes/locale.js.map +1 -0
  591. package/out/it/adapters/anac/adapter.d.ts +267 -0
  592. package/out/it/adapters/anac/adapter.d.ts.map +1 -0
  593. package/out/it/adapters/anac/adapter.js +429 -0
  594. package/out/it/adapters/anac/adapter.js.map +1 -0
  595. package/out/it/tools/fetch/anac.d.ts +174 -0
  596. package/out/it/tools/fetch/anac.d.ts.map +1 -0
  597. package/out/it/tools/fetch/anac.js +272 -0
  598. package/out/it/tools/fetch/anac.js.map +1 -0
  599. package/out/jp/adapters/wof-admin/adapter.d.ts +68 -0
  600. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
  601. package/out/jp/adapters/wof-admin/adapter.js +172 -0
  602. package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
  603. package/out/jp/tools/fetch/houjin.d.ts +27 -0
  604. package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
  605. package/out/jp/tools/fetch/houjin.js +106 -0
  606. package/out/jp/tools/fetch/houjin.js.map +1 -0
  607. package/out/kr/adapters/juso/label-rows.d.ts +62 -0
  608. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
  609. package/out/kr/adapters/juso/label-rows.js +172 -0
  610. package/out/kr/adapters/juso/label-rows.js.map +1 -0
  611. package/out/kr/adapters/localdata/align.d.ts +31 -0
  612. package/out/kr/adapters/localdata/align.d.ts.map +1 -0
  613. package/out/kr/adapters/localdata/align.js +212 -0
  614. package/out/kr/adapters/localdata/align.js.map +1 -0
  615. package/out/kr/adapters/localdata/key-index.d.ts +62 -0
  616. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
  617. package/out/kr/adapters/localdata/key-index.js +127 -0
  618. package/out/kr/adapters/localdata/key-index.js.map +1 -0
  619. package/out/kr/adapters/localdata/permit-rows.d.ts +73 -0
  620. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
  621. package/out/kr/adapters/localdata/permit-rows.js +136 -0
  622. package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
  623. package/out/kr/tools/fetch/juso.d.ts +33 -0
  624. package/out/kr/tools/fetch/juso.d.ts.map +1 -0
  625. package/out/kr/tools/fetch/juso.js +121 -0
  626. package/out/kr/tools/fetch/juso.js.map +1 -0
  627. package/out/kr/tools/fetch/localdata.d.ts +37 -0
  628. package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
  629. package/out/kr/tools/fetch/localdata.js +147 -0
  630. package/out/kr/tools/fetch/localdata.js.map +1 -0
  631. package/out/lu/adapters/bd-adresses/adapter.d.ts +109 -0
  632. package/out/lu/adapters/bd-adresses/adapter.d.ts.map +1 -0
  633. package/out/lu/adapters/bd-adresses/adapter.js +196 -0
  634. package/out/lu/adapters/bd-adresses/adapter.js.map +1 -0
  635. package/out/lu/tools/fetch/bd-adresses.d.ts +163 -0
  636. package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -0
  637. package/out/lu/tools/fetch/bd-adresses.js +223 -0
  638. package/out/lu/tools/fetch/bd-adresses.js.map +1 -0
  639. package/out/lv/adapters/varis/adapter.d.ts +283 -0
  640. package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
  641. package/out/lv/adapters/varis/adapter.js +404 -0
  642. package/out/lv/adapters/varis/adapter.js.map +1 -0
  643. package/out/lv/tools/fetch/varis.d.ts +80 -0
  644. package/out/lv/tools/fetch/varis.d.ts.map +1 -0
  645. package/out/lv/tools/fetch/varis.js +133 -0
  646. package/out/lv/tools/fetch/varis.js.map +1 -0
  647. package/out/nl/adapters/kadaster/adapter.d.ts +125 -0
  648. package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -0
  649. package/out/nl/adapters/kadaster/adapter.js +310 -0
  650. package/out/nl/adapters/kadaster/adapter.js.map +1 -0
  651. package/out/nl/recipes/postcode.d.ts +24 -0
  652. package/out/nl/recipes/postcode.d.ts.map +1 -0
  653. package/out/nl/recipes/postcode.js +121 -0
  654. package/out/nl/recipes/postcode.js.map +1 -0
  655. package/out/nl/tools/fetch/kadaster.d.ts +155 -0
  656. package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
  657. package/out/nl/tools/fetch/kadaster.js +179 -0
  658. package/out/nl/tools/fetch/kadaster.js.map +1 -0
  659. package/out/no/adapters/matrikkelen/adapter.d.ts +44 -0
  660. package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -0
  661. package/out/no/adapters/matrikkelen/adapter.js +143 -0
  662. package/out/no/adapters/matrikkelen/adapter.js.map +1 -0
  663. package/out/no/recipes/fragment.d.ts +11 -0
  664. package/out/no/recipes/fragment.d.ts.map +1 -0
  665. package/out/no/recipes/fragment.js +149 -0
  666. package/out/no/recipes/fragment.js.map +1 -0
  667. package/out/no/recipes/street/led.d.ts +21 -0
  668. package/out/no/recipes/street/led.d.ts.map +1 -0
  669. package/out/no/recipes/street/led.js +124 -0
  670. package/out/no/recipes/street/led.js.map +1 -0
  671. package/out/no/recipes/street.d.ts +19 -0
  672. package/out/no/recipes/street.d.ts.map +1 -0
  673. package/out/no/recipes/street.js +88 -0
  674. package/out/no/recipes/street.js.map +1 -0
  675. package/out/no/tools/fetch/matrikkelen.d.ts +251 -0
  676. package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
  677. package/out/no/tools/fetch/matrikkelen.js +345 -0
  678. package/out/no/tools/fetch/matrikkelen.js.map +1 -0
  679. package/out/parquet/duckdb.d.ts +100 -0
  680. package/out/parquet/duckdb.d.ts.map +1 -0
  681. package/out/parquet/duckdb.js +92 -0
  682. package/out/parquet/duckdb.js.map +1 -0
  683. package/out/parquet/readers.d.ts +44 -0
  684. package/out/parquet/readers.d.ts.map +1 -0
  685. package/out/parquet/readers.js +69 -0
  686. package/out/parquet/readers.js.map +1 -0
  687. package/out/parquet/schema.d.ts +95 -0
  688. package/out/parquet/schema.d.ts.map +1 -0
  689. package/out/parquet/schema.js +157 -0
  690. package/out/parquet/schema.js.map +1 -0
  691. package/out/parquet/shuffle.d.ts +25 -0
  692. package/out/parquet/shuffle.d.ts.map +1 -0
  693. package/out/parquet/shuffle.js +44 -0
  694. package/out/parquet/shuffle.js.map +1 -0
  695. package/out/parquet/span-sql.d.ts +49 -0
  696. package/out/parquet/span-sql.d.ts.map +1 -0
  697. package/out/parquet/span-sql.js +53 -0
  698. package/out/parquet/span-sql.js.map +1 -0
  699. package/out/parquet/streams.d.ts +47 -0
  700. package/out/parquet/streams.d.ts.map +1 -0
  701. package/out/parquet/streams.js +78 -0
  702. package/out/parquet/streams.js.map +1 -0
  703. package/out/parquet/writers.d.ts +124 -0
  704. package/out/parquet/writers.d.ts.map +1 -0
  705. package/out/parquet/writers.js +251 -0
  706. package/out/parquet/writers.js.map +1 -0
  707. package/out/pl/adapters/emuia/adapter.d.ts +81 -0
  708. package/out/pl/adapters/emuia/adapter.d.ts.map +1 -0
  709. package/out/pl/adapters/emuia/adapter.js +178 -0
  710. package/out/pl/adapters/emuia/adapter.js.map +1 -0
  711. package/out/pl/tools/fetch/emuia.d.ts +165 -0
  712. package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
  713. package/out/pl/tools/fetch/emuia.js +260 -0
  714. package/out/pl/tools/fetch/emuia.js.map +1 -0
  715. package/out/recipes/anchor-absorption.d.ts +9 -9
  716. package/out/recipes/anchor-absorption.d.ts.map +1 -1
  717. package/out/recipes/anchor-absorption.js +29 -19
  718. package/out/recipes/anchor-absorption.js.map +1 -1
  719. package/out/recipes/bare/country.d.ts +7 -0
  720. package/out/recipes/bare/country.d.ts.map +1 -0
  721. package/out/recipes/bare/country.js +77 -0
  722. package/out/recipes/bare/country.js.map +1 -0
  723. package/out/recipes/bare/postcode/eval.d.ts +29 -0
  724. package/out/recipes/bare/postcode/eval.d.ts.map +1 -0
  725. package/out/recipes/bare/postcode/eval.js +85 -0
  726. package/out/recipes/bare/postcode/eval.js.map +1 -0
  727. package/out/recipes/bare/postcode.d.ts +41 -0
  728. package/out/recipes/bare/postcode.d.ts.map +1 -0
  729. package/out/recipes/bare/postcode.js +279 -0
  730. package/out/recipes/bare/postcode.js.map +1 -0
  731. package/out/recipes/boundary-stress.d.ts +8 -8
  732. package/out/recipes/boundary-stress.d.ts.map +1 -1
  733. package/out/recipes/boundary-stress.js +36 -19
  734. package/out/recipes/boundary-stress.js.map +1 -1
  735. package/out/recipes/country-balanced.d.ts +3 -21
  736. package/out/recipes/country-balanced.d.ts.map +1 -1
  737. package/out/recipes/country-balanced.js +58 -76
  738. package/out/recipes/country-balanced.js.map +1 -1
  739. package/out/recipes/house-venue.d.ts +8 -6
  740. package/out/recipes/house-venue.d.ts.map +1 -1
  741. package/out/recipes/house-venue.js +29 -13
  742. package/out/recipes/house-venue.js.map +1 -1
  743. package/out/recipes/intersection.d.ts +20 -20
  744. package/out/recipes/intersection.d.ts.map +1 -1
  745. package/out/recipes/intersection.js +65 -53
  746. package/out/recipes/intersection.js.map +1 -1
  747. package/out/recipes/po/box/cedex/au-nz.d.ts +7 -0
  748. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -0
  749. package/out/recipes/po/box/cedex/au-nz.js +56 -0
  750. package/out/recipes/po/box/cedex/au-nz.js.map +1 -0
  751. package/out/recipes/po/box/cedex/ca.d.ts +7 -0
  752. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -0
  753. package/out/recipes/po/box/cedex/ca.js +38 -0
  754. package/out/recipes/po/box/cedex/ca.js.map +1 -0
  755. package/out/recipes/po/box/cedex/fr.d.ts +7 -0
  756. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -0
  757. package/out/recipes/po/box/cedex/fr.js +57 -0
  758. package/out/recipes/po/box/cedex/fr.js.map +1 -0
  759. package/out/recipes/po/box/cedex/phrases.d.ts +8 -0
  760. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -0
  761. package/out/recipes/po/box/cedex/phrases.js +77 -0
  762. package/out/recipes/po/box/cedex/phrases.js.map +1 -0
  763. package/out/recipes/po/box/cedex/recipe.d.ts +9 -0
  764. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -0
  765. package/out/recipes/po/box/cedex/recipe.js +163 -0
  766. package/out/recipes/po/box/cedex/recipe.js.map +1 -0
  767. package/out/recipes/po/box/cedex/sources.d.ts +86 -0
  768. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -0
  769. package/out/recipes/po/box/cedex/sources.js +143 -0
  770. package/out/recipes/po/box/cedex/sources.js.map +1 -0
  771. package/out/recipes/po/box/cedex/types.d.ts +31 -0
  772. package/out/recipes/po/box/cedex/types.d.ts.map +1 -0
  773. package/out/recipes/po/box/cedex/types.js +5 -0
  774. package/out/recipes/po/box/cedex/types.js.map +1 -0
  775. package/out/recipes/po/box/cedex/us.d.ts +7 -0
  776. package/out/recipes/po/box/cedex/us.d.ts.map +1 -0
  777. package/out/recipes/po/box/cedex/us.js +54 -0
  778. package/out/recipes/po/box/cedex/us.js.map +1 -0
  779. package/out/recipes/po/box/cedex/vocabulary.d.ts +68 -0
  780. package/out/recipes/po/box/cedex/vocabulary.d.ts.map +1 -0
  781. package/out/recipes/po/box/cedex/vocabulary.js +90 -0
  782. package/out/recipes/po/box/cedex/vocabulary.js.map +1 -0
  783. package/out/recipes/po/box/cedex.d.ts +9 -0
  784. package/out/recipes/po/box/cedex.d.ts.map +1 -0
  785. package/out/recipes/po/box/cedex.js +9 -0
  786. package/out/recipes/po/box/cedex.js.map +1 -0
  787. package/out/recipes/po/box.d.ts +18 -0
  788. package/out/recipes/po/box.d.ts.map +1 -0
  789. package/out/recipes/po/box.js +123 -0
  790. package/out/recipes/po/box.js.map +1 -0
  791. package/out/recipes/scaffold.d.ts +214 -121
  792. package/out/recipes/scaffold.d.ts.map +1 -1
  793. package/out/recipes/scaffold.js +78 -88
  794. package/out/recipes/scaffold.js.map +1 -1
  795. package/out/recipes/sources.d.ts +178 -0
  796. package/out/recipes/sources.d.ts.map +1 -0
  797. package/out/recipes/sources.js +348 -0
  798. package/out/recipes/sources.js.map +1 -0
  799. package/out/recipes/street/affix.d.ts +59 -0
  800. package/out/recipes/street/affix.d.ts.map +1 -0
  801. package/out/recipes/street/affix.js +477 -0
  802. package/out/recipes/street/affix.js.map +1 -0
  803. package/out/recipes/street/bare.d.ts +27 -0
  804. package/out/recipes/street/bare.d.ts.map +1 -0
  805. package/out/recipes/street/bare.js +98 -0
  806. package/out/recipes/street/bare.js.map +1 -0
  807. package/out/recipes/street.d.ts +6 -4
  808. package/out/recipes/street.d.ts.map +1 -1
  809. package/out/recipes/street.js +29 -8
  810. package/out/recipes/street.js.map +1 -1
  811. package/out/recipes/sub/venue/context.d.ts +32 -0
  812. package/out/recipes/sub/venue/context.d.ts.map +1 -0
  813. package/out/recipes/sub/venue/context.js +110 -0
  814. package/out/recipes/sub/venue/context.js.map +1 -0
  815. package/out/recipes/sub/venue/render.d.ts +58 -0
  816. package/out/recipes/sub/venue/render.d.ts.map +1 -0
  817. package/out/recipes/sub/venue/render.js +118 -0
  818. package/out/recipes/sub/venue/render.js.map +1 -0
  819. package/out/recipes/sub/venue/sources.d.ts +166 -0
  820. package/out/recipes/sub/venue/sources.d.ts.map +1 -0
  821. package/out/recipes/sub/venue/sources.js +419 -0
  822. package/out/recipes/sub/venue/sources.js.map +1 -0
  823. package/out/recipes/sub/venue.d.ts +176 -0
  824. package/out/recipes/sub/venue.d.ts.map +1 -0
  825. package/out/recipes/sub/venue.js +562 -0
  826. package/out/recipes/sub/venue.js.map +1 -0
  827. package/out/recipes/trailing-region.d.ts +9 -61
  828. package/out/recipes/trailing-region.d.ts.map +1 -1
  829. package/out/recipes/trailing-region.js +56 -81
  830. package/out/recipes/trailing-region.js.map +1 -1
  831. package/out/recipes/unit/sources.d.ts +28 -0
  832. package/out/recipes/unit/sources.d.ts.map +1 -0
  833. package/out/recipes/unit/sources.js +30 -0
  834. package/out/recipes/unit/sources.js.map +1 -0
  835. package/out/recipes/unit.d.ts +30 -17
  836. package/out/recipes/unit.d.ts.map +1 -1
  837. package/out/recipes/unit.js +90 -79
  838. package/out/recipes/unit.js.map +1 -1
  839. package/out/recipes.d.ts +26 -0
  840. package/out/recipes.d.ts.map +1 -0
  841. package/out/recipes.js +100 -0
  842. package/out/recipes.js.map +1 -0
  843. package/out/registers.d.ts +277 -0
  844. package/out/registers.d.ts.map +1 -0
  845. package/out/registers.js +273 -0
  846. package/out/registers.js.map +1 -0
  847. package/out/ro/adapters/retea-scolara/adapter.d.ts +114 -0
  848. package/out/ro/adapters/retea-scolara/adapter.d.ts.map +1 -0
  849. package/out/ro/adapters/retea-scolara/adapter.js +209 -0
  850. package/out/ro/adapters/retea-scolara/adapter.js.map +1 -0
  851. package/out/ro/tools/fetch/retea-scolara.d.ts +69 -0
  852. package/out/ro/tools/fetch/retea-scolara.d.ts.map +1 -0
  853. package/out/ro/tools/fetch/retea-scolara.js +117 -0
  854. package/out/ro/tools/fetch/retea-scolara.js.map +1 -0
  855. package/out/runner.d.ts +120 -60
  856. package/out/runner.d.ts.map +1 -1
  857. package/out/runner.js +130 -56
  858. package/out/runner.js.map +1 -1
  859. package/out/sg/recipes/register.d.ts +55 -0
  860. package/out/sg/recipes/register.d.ts.map +1 -0
  861. package/out/sg/recipes/register.js +206 -0
  862. package/out/sg/recipes/register.js.map +1 -0
  863. package/out/sg/tools/fetch/acra.d.ts +20 -0
  864. package/out/sg/tools/fetch/acra.d.ts.map +1 -0
  865. package/out/sg/tools/fetch/acra.js +123 -0
  866. package/out/sg/tools/fetch/acra.js.map +1 -0
  867. package/out/si/recipes/bare-village.d.ts +31 -0
  868. package/out/si/recipes/bare-village.d.ts.map +1 -0
  869. package/out/si/recipes/bare-village.js +103 -0
  870. package/out/si/recipes/bare-village.js.map +1 -0
  871. package/out/sk/adapters/inspire/adapter.d.ts +119 -0
  872. package/out/sk/adapters/inspire/adapter.d.ts.map +1 -0
  873. package/out/sk/adapters/inspire/adapter.js +318 -0
  874. package/out/sk/adapters/inspire/adapter.js.map +1 -0
  875. package/out/sk/tools/fetch/inspire.d.ts +195 -0
  876. package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
  877. package/out/sk/tools/fetch/inspire.js +280 -0
  878. package/out/sk/tools/fetch/inspire.js.map +1 -0
  879. package/out/source-register/effective-manifest.d.ts +355 -0
  880. package/out/source-register/effective-manifest.d.ts.map +1 -0
  881. package/out/source-register/effective-manifest.js +355 -0
  882. package/out/source-register/effective-manifest.js.map +1 -0
  883. package/out/source-register/register.d.ts +79 -0
  884. package/out/source-register/register.d.ts.map +1 -0
  885. package/out/source-register/register.js +400 -0
  886. package/out/source-register/register.js.map +1 -0
  887. package/out/source-register/training-manifest.d.ts +111 -0
  888. package/out/source-register/training-manifest.d.ts.map +1 -0
  889. package/out/source-register/training-manifest.js +120 -0
  890. package/out/source-register/training-manifest.js.map +1 -0
  891. package/out/source-register/types.d.ts +539 -0
  892. package/out/source-register/types.d.ts.map +1 -0
  893. package/out/source-register/types.js +263 -0
  894. package/out/source-register/types.js.map +1 -0
  895. package/out/source-register.d.ts +19 -0
  896. package/out/source-register.d.ts.map +1 -0
  897. package/out/source-register.js +16 -0
  898. package/out/source-register.js.map +1 -0
  899. package/out/south-asia/recipes/register.d.ts +54 -0
  900. package/out/south-asia/recipes/register.d.ts.map +1 -0
  901. package/out/south-asia/recipes/register.js +174 -0
  902. package/out/south-asia/recipes/register.js.map +1 -0
  903. package/out/subvenue/harvest.d.ts +117 -0
  904. package/out/subvenue/harvest.d.ts.map +1 -0
  905. package/out/subvenue/harvest.js +172 -0
  906. package/out/subvenue/harvest.js.map +1 -0
  907. package/out/subvenue/promotions.d.ts +65 -0
  908. package/out/subvenue/promotions.d.ts.map +1 -0
  909. package/out/subvenue/promotions.js +226 -0
  910. package/out/subvenue/promotions.js.map +1 -0
  911. package/out/subvenue/surfaces.d.ts +39 -0
  912. package/out/subvenue/surfaces.d.ts.map +1 -0
  913. package/out/subvenue/surfaces.js +75 -0
  914. package/out/subvenue/surfaces.js.map +1 -0
  915. package/out/subvenue/table.d.ts +212 -0
  916. package/out/subvenue/table.d.ts.map +1 -0
  917. package/out/subvenue/table.js +94 -0
  918. package/out/subvenue/table.js.map +1 -0
  919. package/out/surfaces/locale.d.ts +113 -0
  920. package/out/surfaces/locale.d.ts.map +1 -0
  921. package/out/surfaces/locale.js +136 -0
  922. package/out/surfaces/locale.js.map +1 -0
  923. package/out/synthesizers/anchor-absorption.d.ts +22 -31
  924. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  925. package/out/synthesizers/anchor-absorption.js +30 -85
  926. package/out/synthesizers/anchor-absorption.js.map +1 -1
  927. package/out/synthesizers/boundary-stress.d.ts +17 -48
  928. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  929. package/out/synthesizers/boundary-stress.js +27 -121
  930. package/out/synthesizers/boundary-stress.js.map +1 -1
  931. package/out/synthesizers/house-venue.d.ts +22 -25
  932. package/out/synthesizers/house-venue.d.ts.map +1 -1
  933. package/out/synthesizers/house-venue.js +28 -97
  934. package/out/synthesizers/house-venue.js.map +1 -1
  935. package/out/synthesizers/intersection.d.ts +10 -8
  936. package/out/synthesizers/intersection.d.ts.map +1 -1
  937. package/out/synthesizers/intersection.js +33 -26
  938. package/out/synthesizers/intersection.js.map +1 -1
  939. package/out/synthesizers/no-street.d.ts +7 -37
  940. package/out/synthesizers/no-street.d.ts.map +1 -1
  941. package/out/synthesizers/no-street.js +55 -111
  942. package/out/synthesizers/no-street.js.map +1 -1
  943. package/out/synthesizers/po-box.d.ts +46 -45
  944. package/out/synthesizers/po-box.d.ts.map +1 -1
  945. package/out/synthesizers/po-box.js +57 -97
  946. package/out/synthesizers/po-box.js.map +1 -1
  947. package/out/synthesizers/street.d.ts +18 -12
  948. package/out/synthesizers/street.d.ts.map +1 -1
  949. package/out/synthesizers/street.js +37 -30
  950. package/out/synthesizers/street.js.map +1 -1
  951. package/out/synthesizers/utils.d.ts +32 -129
  952. package/out/synthesizers/utils.d.ts.map +1 -1
  953. package/out/synthesizers/utils.js +54 -166
  954. package/out/synthesizers/utils.js.map +1 -1
  955. package/out/test-kit/corpus-recipe.d.ts +29 -23
  956. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  957. package/out/test-kit/corpus-recipe.js +28 -13
  958. package/out/test-kit/corpus-recipe.js.map +1 -1
  959. package/out/test-kit.d.ts +63 -0
  960. package/out/test-kit.d.ts.map +1 -0
  961. package/out/test-kit.js +88 -0
  962. package/out/test-kit.js.map +1 -0
  963. package/out/tools/align-canonical.d.ts +7 -0
  964. package/out/tools/align-canonical.d.ts.map +1 -0
  965. package/out/tools/align-canonical.js +52 -0
  966. package/out/tools/align-canonical.js.map +1 -0
  967. package/out/tools/audit.d.ts +18 -11
  968. package/out/tools/audit.d.ts.map +1 -1
  969. package/out/tools/audit.js +87 -95
  970. package/out/tools/audit.js.map +1 -1
  971. package/out/tools/corpus-stats.d.ts +24 -15
  972. package/out/tools/corpus-stats.d.ts.map +1 -1
  973. package/out/tools/corpus-stats.js +35 -31
  974. package/out/tools/corpus-stats.js.map +1 -1
  975. package/out/tools/fetch/atom.d.ts +115 -0
  976. package/out/tools/fetch/atom.d.ts.map +1 -0
  977. package/out/tools/fetch/atom.js +84 -0
  978. package/out/tools/fetch/atom.js.map +1 -0
  979. package/out/tools/fetch/cordis.d.ts +123 -0
  980. package/out/tools/fetch/cordis.d.ts.map +1 -0
  981. package/out/tools/fetch/cordis.js +208 -0
  982. package/out/tools/fetch/cordis.js.map +1 -0
  983. package/out/tools/fetch/download/manifest.d.ts +56 -0
  984. package/out/tools/fetch/download/manifest.d.ts.map +1 -0
  985. package/out/tools/fetch/download/manifest.js +81 -0
  986. package/out/tools/fetch/download/manifest.js.map +1 -0
  987. package/out/tools/fetch/download/network.d.ts +126 -0
  988. package/out/tools/fetch/download/network.d.ts.map +1 -0
  989. package/out/tools/fetch/download/network.js +140 -0
  990. package/out/tools/fetch/download/network.js.map +1 -0
  991. package/out/tools/fetch/download/retry.d.ts +46 -0
  992. package/out/tools/fetch/download/retry.d.ts.map +1 -0
  993. package/out/tools/fetch/download/retry.js +136 -0
  994. package/out/tools/fetch/download/retry.js.map +1 -0
  995. package/out/tools/fetch/download.d.ts +4 -176
  996. package/out/tools/fetch/download.d.ts.map +1 -1
  997. package/out/tools/fetch/download.js +4 -312
  998. package/out/tools/fetch/download.js.map +1 -1
  999. package/out/tools/fetch/geonames/dump.d.ts +109 -0
  1000. package/out/tools/fetch/geonames/dump.d.ts.map +1 -0
  1001. package/out/tools/fetch/geonames/dump.js +181 -0
  1002. package/out/tools/fetch/geonames/dump.js.map +1 -0
  1003. package/out/tools/fetch/geonames/postal.d.ts +41 -0
  1004. package/out/tools/fetch/geonames/postal.d.ts.map +1 -0
  1005. package/out/tools/fetch/geonames/postal.js +87 -0
  1006. package/out/tools/fetch/geonames/postal.js.map +1 -0
  1007. package/out/tools/fetch/gleif.d.ts +137 -0
  1008. package/out/tools/fetch/gleif.d.ts.map +1 -0
  1009. package/out/tools/fetch/gleif.js +220 -0
  1010. package/out/tools/fetch/gleif.js.map +1 -0
  1011. package/out/tools/fetch/header.d.ts +41 -0
  1012. package/out/tools/fetch/header.d.ts.map +1 -0
  1013. package/out/tools/fetch/header.js +59 -0
  1014. package/out/tools/fetch/header.js.map +1 -0
  1015. package/out/tools/fetch/inspire-addresses.d.ts +249 -0
  1016. package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
  1017. package/out/tools/fetch/inspire-addresses.js +276 -0
  1018. package/out/tools/fetch/inspire-addresses.js.map +1 -0
  1019. package/out/tools/fetch/openaddresses.d.ts +0 -3
  1020. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  1021. package/out/tools/fetch/openaddresses.js +18 -97
  1022. package/out/tools/fetch/openaddresses.js.map +1 -1
  1023. package/out/tools/fetch/ourairports.d.ts +5 -32
  1024. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  1025. package/out/tools/fetch/ourairports.js +13 -46
  1026. package/out/tools/fetch/ourairports.js.map +1 -1
  1027. package/out/tools/fetch/ppd.d.ts +4 -3
  1028. package/out/tools/fetch/ppd.d.ts.map +1 -1
  1029. package/out/tools/fetch/ppd.js +10 -9
  1030. package/out/tools/fetch/ppd.js.map +1 -1
  1031. package/out/tools/fetch/vlaanderen-ad.d.ts +131 -0
  1032. package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -0
  1033. package/out/tools/fetch/vlaanderen-ad.js +293 -0
  1034. package/out/tools/fetch/vlaanderen-ad.js.map +1 -0
  1035. package/out/tools/fetch/wfs-harvest.d.ts +410 -0
  1036. package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
  1037. package/out/tools/fetch/wfs-harvest.js +522 -0
  1038. package/out/tools/fetch/wfs-harvest.js.map +1 -0
  1039. package/out/tools/fetch/wikidata-subvenue.d.ts +31 -99
  1040. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  1041. package/out/tools/fetch/wikidata-subvenue.js +26 -121
  1042. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  1043. package/out/tools/fetch/zip-archive.d.ts +54 -0
  1044. package/out/tools/fetch/zip-archive.d.ts.map +1 -0
  1045. package/out/tools/fetch/zip-archive.js +58 -0
  1046. package/out/tools/fetch/zip-archive.js.map +1 -0
  1047. package/out/tools/fetch.d.ts +140 -0
  1048. package/out/tools/fetch.d.ts.map +1 -0
  1049. package/out/tools/fetch.js +136 -0
  1050. package/out/tools/fetch.js.map +1 -0
  1051. package/out/tools/golden/expand.d.ts +105 -0
  1052. package/out/tools/golden/expand.d.ts.map +1 -0
  1053. package/out/tools/golden/expand.js +420 -0
  1054. package/out/tools/golden/expand.js.map +1 -0
  1055. package/out/tools/golden/promote.d.ts +77 -0
  1056. package/out/tools/golden/promote.d.ts.map +1 -0
  1057. package/out/tools/golden/promote.js +248 -0
  1058. package/out/tools/golden/promote.js.map +1 -0
  1059. package/out/tools/golden/relabel-street/directory.d.ts +98 -0
  1060. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
  1061. package/out/tools/golden/relabel-street/directory.js +227 -0
  1062. package/out/tools/golden/relabel-street/directory.js.map +1 -0
  1063. package/out/tools/golden/relabel-street/row.d.ts +69 -0
  1064. package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
  1065. package/out/tools/golden/relabel-street/row.js +174 -0
  1066. package/out/tools/golden/relabel-street/row.js.map +1 -0
  1067. package/out/tools/golden/relabel-street.d.ts +9 -0
  1068. package/out/tools/golden/relabel-street.d.ts.map +1 -0
  1069. package/out/tools/golden/relabel-street.js +9 -0
  1070. package/out/tools/golden/relabel-street.js.map +1 -0
  1071. package/out/tools/ingest-csv.d.ts +19 -15
  1072. package/out/tools/ingest-csv.d.ts.map +1 -1
  1073. package/out/tools/ingest-csv.js +39 -45
  1074. package/out/tools/ingest-csv.js.map +1 -1
  1075. package/out/tools/jsonl-to-parquet.d.ts +15 -28
  1076. package/out/tools/jsonl-to-parquet.d.ts.map +1 -1
  1077. package/out/tools/jsonl-to-parquet.js +49 -91
  1078. package/out/tools/jsonl-to-parquet.js.map +1 -1
  1079. package/out/tools/lint/recipe-output/vocab.d.ts +77 -0
  1080. package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -0
  1081. package/out/tools/lint/recipe-output/vocab.js +239 -0
  1082. package/out/tools/lint/recipe-output/vocab.js.map +1 -0
  1083. package/out/tools/lint/recipe-output.d.ts +73 -0
  1084. package/out/tools/lint/recipe-output.d.ts.map +1 -0
  1085. package/out/tools/lint/recipe-output.js +302 -0
  1086. package/out/tools/lint/recipe-output.js.map +1 -0
  1087. package/out/tools/migrate/overlay-parquet.d.ts +30 -0
  1088. package/out/tools/migrate/overlay-parquet.d.ts.map +1 -0
  1089. package/out/tools/migrate/overlay-parquet.js +141 -0
  1090. package/out/tools/migrate/overlay-parquet.js.map +1 -0
  1091. package/out/tools/migrate/recipe-output.d.ts +35 -0
  1092. package/out/tools/migrate/recipe-output.d.ts.map +1 -0
  1093. package/out/tools/migrate/recipe-output.js +124 -0
  1094. package/out/tools/migrate/recipe-output.js.map +1 -0
  1095. package/out/tools/migrate/source-names.d.ts +52 -0
  1096. package/out/tools/migrate/source-names.d.ts.map +1 -0
  1097. package/out/tools/migrate/source-names.js +105 -0
  1098. package/out/tools/migrate/source-names.js.map +1 -0
  1099. package/out/tools/overlay/kryptonite.d.ts +33 -0
  1100. package/out/tools/overlay/kryptonite.d.ts.map +1 -0
  1101. package/out/tools/overlay/kryptonite.js +108 -0
  1102. package/out/tools/overlay/kryptonite.js.map +1 -0
  1103. package/out/tools/overlay/manifest.d.ts +142 -0
  1104. package/out/tools/overlay/manifest.d.ts.map +1 -0
  1105. package/out/tools/overlay/manifest.js +260 -0
  1106. package/out/tools/overlay/manifest.js.map +1 -0
  1107. package/out/tools/overlay/merge-source.d.ts +73 -0
  1108. package/out/tools/overlay/merge-source.d.ts.map +1 -0
  1109. package/out/tools/overlay/merge-source.js +63 -0
  1110. package/out/tools/overlay/merge-source.js.map +1 -0
  1111. package/out/tools/overlay/split-slice.d.ts +66 -0
  1112. package/out/tools/overlay/split-slice.d.ts.map +1 -0
  1113. package/out/tools/overlay/split-slice.js +78 -0
  1114. package/out/tools/overlay/split-slice.js.map +1 -0
  1115. package/out/tools/overlay/translit.d.ts +54 -0
  1116. package/out/tools/overlay/translit.d.ts.map +1 -0
  1117. package/out/tools/overlay/translit.js +177 -0
  1118. package/out/tools/overlay/translit.js.map +1 -0
  1119. package/out/tools/overture-subvenue.d.ts +17 -76
  1120. package/out/tools/overture-subvenue.d.ts.map +1 -1
  1121. package/out/tools/overture-subvenue.js +7 -74
  1122. package/out/tools/overture-subvenue.js.map +1 -1
  1123. package/out/tools/postcode-triples.d.ts +96 -109
  1124. package/out/tools/postcode-triples.d.ts.map +1 -1
  1125. package/out/tools/postcode-triples.js +237 -152
  1126. package/out/tools/postcode-triples.js.map +1 -1
  1127. package/out/tools/source-register/build.d.ts +145 -0
  1128. package/out/tools/source-register/build.d.ts.map +1 -0
  1129. package/out/tools/source-register/build.js +515 -0
  1130. package/out/tools/source-register/build.js.map +1 -0
  1131. package/out/tools/sub/venue/head-nouns.d.ts +21 -0
  1132. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -0
  1133. package/out/tools/sub/venue/head-nouns.js +176 -0
  1134. package/out/tools/sub/venue/head-nouns.js.map +1 -0
  1135. package/out/tools/sub/venue/lexicon.d.ts +129 -0
  1136. package/out/tools/sub/venue/lexicon.d.ts.map +1 -0
  1137. package/out/tools/sub/venue/lexicon.js +239 -0
  1138. package/out/tools/sub/venue/lexicon.js.map +1 -0
  1139. package/out/tools/sub/venue/wikidata.d.ts +28 -0
  1140. package/out/tools/sub/venue/wikidata.d.ts.map +1 -0
  1141. package/out/tools/sub/venue/wikidata.js +65 -0
  1142. package/out/tools/sub/venue/wikidata.js.map +1 -0
  1143. package/out/tools.d.ts +31 -0
  1144. package/out/tools.d.ts.map +1 -0
  1145. package/out/tools.js +31 -0
  1146. package/out/tools.js.map +1 -0
  1147. package/out/tw/tools/fetch/gcis.d.ts +29 -0
  1148. package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
  1149. package/out/tw/tools/fetch/gcis.js +141 -0
  1150. package/out/tw/tools/fetch/gcis.js.map +1 -0
  1151. package/out/types.d.ts +270 -101
  1152. package/out/types.d.ts.map +1 -1
  1153. package/out/types.js +133 -9
  1154. package/out/types.js.map +1 -1
  1155. package/out/us/adapters/fcc-bdc/adapter.d.ts +50 -0
  1156. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  1157. package/out/us/adapters/fcc-bdc/adapter.js +129 -0
  1158. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
  1159. package/out/us/adapters/state/hi-schools/adapter.d.ts +47 -0
  1160. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
  1161. package/out/us/adapters/state/hi-schools/adapter.js +146 -0
  1162. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
  1163. package/out/us/adapters/state/hi-schools/workbook.d.ts +34 -0
  1164. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
  1165. package/out/us/adapters/state/hi-schools/workbook.js +22 -0
  1166. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
  1167. package/out/us/adapters/state/ia-contractors/adapter.d.ts +41 -0
  1168. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
  1169. package/out/us/adapters/state/ia-contractors/adapter.js +117 -0
  1170. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
  1171. package/out/us/adapters/state/ny-notaries/adapter.d.ts +33 -0
  1172. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
  1173. package/out/us/adapters/state/ny-notaries/adapter.js +114 -0
  1174. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
  1175. package/out/us/adapters/state/tx-notaries/adapter.d.ts +34 -0
  1176. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
  1177. package/out/us/adapters/state/tx-notaries/adapter.js +125 -0
  1178. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
  1179. package/out/us/adapters/tiger/adapter.d.ts +31 -0
  1180. package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
  1181. package/out/us/adapters/tiger/adapter.js +173 -0
  1182. package/out/us/adapters/tiger/adapter.js.map +1 -0
  1183. package/out/us/adapters/tiger/street-decompose.d.ts +23 -0
  1184. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
  1185. package/out/us/adapters/tiger/street-decompose.js +58 -0
  1186. package/out/us/adapters/tiger/street-decompose.js.map +1 -0
  1187. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts +62 -0
  1188. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
  1189. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +133 -0
  1190. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
  1191. package/out/us/adapters/usgov/imls-pls/adapter.d.ts +37 -0
  1192. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
  1193. package/out/us/adapters/usgov/imls-pls/adapter.js +113 -0
  1194. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
  1195. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +38 -0
  1196. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
  1197. package/out/us/adapters/usgov/irs-bmf/adapter.js +126 -0
  1198. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
  1199. package/out/us/adapters/usgov/nad/adapter.d.ts +28 -0
  1200. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
  1201. package/out/us/adapters/usgov/nad/adapter.js +185 -0
  1202. package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
  1203. package/out/us/adapters/usgov/nppes/adapter.d.ts +29 -0
  1204. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
  1205. package/out/us/adapters/usgov/nppes/adapter.js +140 -0
  1206. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
  1207. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts +47 -0
  1208. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -0
  1209. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +153 -0
  1210. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
  1211. package/out/us/fips-state.d.ts +50 -0
  1212. package/out/us/fips-state.d.ts.map +1 -0
  1213. package/out/us/fips-state.js +109 -0
  1214. package/out/us/fips-state.js.map +1 -0
  1215. package/out/us/tools/fetch/hrsa.d.ts +18 -0
  1216. package/out/us/tools/fetch/hrsa.d.ts.map +1 -0
  1217. package/out/us/tools/fetch/hrsa.js +45 -0
  1218. package/out/us/tools/fetch/hrsa.js.map +1 -0
  1219. package/out/us/tools/fetch/imls-pls.d.ts +14 -0
  1220. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
  1221. package/out/us/tools/fetch/imls-pls.js +91 -0
  1222. package/out/us/tools/fetch/imls-pls.js.map +1 -0
  1223. package/out/us/tools/fetch/nad.d.ts +82 -0
  1224. package/out/us/tools/fetch/nad.d.ts.map +1 -0
  1225. package/out/us/tools/fetch/nad.js +239 -0
  1226. package/out/us/tools/fetch/nad.js.map +1 -0
  1227. package/out/us/tools/fetch/nppes.d.ts +16 -0
  1228. package/out/us/tools/fetch/nppes.d.ts.map +1 -0
  1229. package/out/us/tools/fetch/nppes.js +114 -0
  1230. package/out/us/tools/fetch/nppes.js.map +1 -0
  1231. package/out/us/tools/fetch/state/hi-schools.d.ts +29 -0
  1232. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
  1233. package/out/us/tools/fetch/state/hi-schools.js +114 -0
  1234. package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
  1235. package/out/us/tools/fetch/state/sources.d.ts +27 -0
  1236. package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
  1237. package/out/us/tools/fetch/state/sources.js +110 -0
  1238. package/out/us/tools/fetch/state/sources.js.map +1 -0
  1239. package/out/us/tools/fetch/tiger-full.d.ts +9 -0
  1240. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
  1241. package/out/us/tools/fetch/tiger-full.js +178 -0
  1242. package/out/us/tools/fetch/tiger-full.js.map +1 -0
  1243. package/out/utils/align.d.ts +25 -20
  1244. package/out/utils/align.d.ts.map +1 -1
  1245. package/out/utils/align.js +27 -42
  1246. package/out/utils/align.js.map +1 -1
  1247. package/out/utils/cooccurrence-stats.d.ts +58 -0
  1248. package/out/utils/cooccurrence-stats.d.ts.map +1 -0
  1249. package/out/utils/cooccurrence-stats.js +62 -0
  1250. package/out/utils/cooccurrence-stats.js.map +1 -0
  1251. package/out/utils/golden.d.ts +23 -29
  1252. package/out/utils/golden.d.ts.map +1 -1
  1253. package/out/utils/golden.js +33 -45
  1254. package/out/utils/golden.js.map +1 -1
  1255. package/out/utils/license.d.ts +158 -21
  1256. package/out/utils/license.d.ts.map +1 -1
  1257. package/out/utils/license.js +156 -26
  1258. package/out/utils/license.js.map +1 -1
  1259. package/out/utils/split.d.ts +66 -70
  1260. package/out/utils/split.d.ts.map +1 -1
  1261. package/out/utils/split.js +158 -69
  1262. package/out/utils/split.js.map +1 -1
  1263. package/out/utils/tokenize.d.ts +16 -28
  1264. package/out/utils/tokenize.d.ts.map +1 -1
  1265. package/out/utils/tokenize.js +18 -31
  1266. package/out/utils/tokenize.js.map +1 -1
  1267. package/out/utils/wof-json.d.ts +88 -62
  1268. package/out/utils/wof-json.d.ts.map +1 -1
  1269. package/out/utils/wof-json.js +81 -65
  1270. package/out/utils/wof-json.js.map +1 -1
  1271. package/out/utils.d.ts +13 -0
  1272. package/out/utils.d.ts.map +1 -0
  1273. package/out/utils.js +13 -0
  1274. package/out/utils.js.map +1 -0
  1275. package/out/ve/recipes/reviewed-postcode-tail.d.ts +65 -0
  1276. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  1277. package/out/ve/recipes/reviewed-postcode-tail.js +146 -0
  1278. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
  1279. package/package.json +46 -330
  1280. package/lib/adapters/ban/adapter.ts +0 -190
  1281. package/lib/adapters/ban/street-decompose.ts +0 -66
  1282. package/lib/adapters/fcc-bdc/adapter.ts +0 -174
  1283. package/lib/adapters/geonames-postal/adapter.ts +0 -122
  1284. package/lib/adapters/gnaf/adapter.ts +0 -149
  1285. package/lib/adapters/gnaf/assemble.ts +0 -225
  1286. package/lib/adapters/index.ts +0 -153
  1287. package/lib/adapters/state-hi-schools/adapter.ts +0 -170
  1288. package/lib/adapters/state-hi-schools/workbook.ts +0 -35
  1289. package/lib/adapters/state-ia-contractors/adapter.ts +0 -144
  1290. package/lib/adapters/state-ny-notaries/adapter.ts +0 -141
  1291. package/lib/adapters/state-tx-notaries/adapter.ts +0 -157
  1292. package/lib/adapters/synth-po-box/adapter.ts +0 -204
  1293. package/lib/adapters/tiger/adapter.ts +0 -252
  1294. package/lib/adapters/tiger/street-decompose.ts +0 -83
  1295. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +0 -167
  1296. package/lib/adapters/usgov-imls-pls/adapter.ts +0 -143
  1297. package/lib/adapters/usgov-irs-bmf/adapter.ts +0 -151
  1298. package/lib/adapters/usgov-nad/adapter.ts +0 -334
  1299. package/lib/adapters/usgov-nppes/adapter.ts +0 -151
  1300. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -193
  1301. package/lib/adapters/utils/index.ts +0 -307
  1302. package/lib/adapters/wof-admin-jp/adapter.ts +0 -214
  1303. package/lib/adapters/wof-admin-json/adapter.ts +0 -231
  1304. package/lib/adapters/wof-json-rows.ts +0 -129
  1305. package/lib/adapters/wof-postalcode-json/adapter.ts +0 -176
  1306. package/lib/codex/us-fips-state.ts +0 -113
  1307. package/lib/recipes/bare-country.ts +0 -95
  1308. package/lib/recipes/cn-organizational-units.ts +0 -199
  1309. package/lib/recipes/cz-pcfirst-preposition.ts +0 -112
  1310. package/lib/recipes/fr-admin-split.ts +0 -243
  1311. package/lib/recipes/fr-bare-street.ts +0 -171
  1312. package/lib/recipes/fr-fragment.ts +0 -334
  1313. package/lib/recipes/fr-lieudit.ts +0 -301
  1314. package/lib/recipes/fr-order.ts +0 -246
  1315. package/lib/recipes/german.ts +0 -360
  1316. package/lib/recipes/index.ts +0 -97
  1317. package/lib/recipes/locale.ts +0 -600
  1318. package/lib/recipes/nl-postcode.ts +0 -117
  1319. package/lib/recipes/no-fragment.ts +0 -213
  1320. package/lib/recipes/no-street-led.ts +0 -135
  1321. package/lib/recipes/no-street.ts +0 -91
  1322. package/lib/recipes/po-box-cedex.ts +0 -976
  1323. package/lib/recipes/po-box.ts +0 -124
  1324. package/lib/recipes/reviewed-postcode-tail.ts +0 -190
  1325. package/lib/recipes/si-bare-village.ts +0 -99
  1326. package/lib/recipes/street-affix.ts +0 -805
  1327. package/lib/recipes/street-bare.ts +0 -102
  1328. package/lib/recipes/sub-venue-sources.ts +0 -878
  1329. package/lib/recipes/sub-venue.ts +0 -998
  1330. package/lib/synthesizers/german.ts +0 -260
  1331. package/lib/test-kit/index.ts +0 -100
  1332. package/lib/tools/align-slice.ts +0 -68
  1333. package/lib/tools/fetch/acra-sg.ts +0 -174
  1334. package/lib/tools/fetch/ban.ts +0 -289
  1335. package/lib/tools/fetch/gcis-tw.ts +0 -175
  1336. package/lib/tools/fetch/geonames-dump.ts +0 -257
  1337. package/lib/tools/fetch/geonames-postal.ts +0 -180
  1338. package/lib/tools/fetch/houjin-jp.ts +0 -135
  1339. package/lib/tools/fetch/hrsa.ts +0 -59
  1340. package/lib/tools/fetch/imls-pls.ts +0 -149
  1341. package/lib/tools/fetch/index.ts +0 -174
  1342. package/lib/tools/fetch/juso-kr.ts +0 -165
  1343. package/lib/tools/fetch/localdata-kr.ts +0 -194
  1344. package/lib/tools/fetch/nad.ts +0 -341
  1345. package/lib/tools/fetch/nppes.ts +0 -165
  1346. package/lib/tools/fetch/state-hi-schools.ts +0 -161
  1347. package/lib/tools/fetch/state-sources.ts +0 -146
  1348. package/lib/tools/fetch/tiger-full.ts +0 -308
  1349. package/lib/tools/gb-title-case.ts +0 -69
  1350. package/lib/tools/golden-expand.ts +0 -574
  1351. package/lib/tools/golden-promote.ts +0 -337
  1352. package/lib/tools/golden-relabel-street.ts +0 -686
  1353. package/lib/tools/index.ts +0 -28
  1354. package/lib/tools/lint-slice-vocab.ts +0 -388
  1355. package/lib/tools/lint-slice.ts +0 -496
  1356. package/lib/tools/overlay-manifest.ts +0 -148
  1357. package/lib/tools/slice-kryptonite.ts +0 -137
  1358. package/lib/tools/slice-translit.ts +0 -218
  1359. package/lib/tools/sub-venue/harvest.ts +0 -234
  1360. package/lib/tools/sub-venue/head-nouns.ts +0 -245
  1361. package/lib/tools/sub-venue/surfaces.ts +0 -95
  1362. package/lib/tools/sub-venue/table.ts +0 -281
  1363. package/lib/tools/sub-venue/wikidata.ts +0 -85
  1364. package/lib/tools/sub-venue-lexicon.ts +0 -429
  1365. package/lib/tools/sub-venue-promotions.ts +0 -330
  1366. package/lib/utils/index.ts +0 -14
  1367. package/lib/utils/parquet.ts +0 -582
  1368. package/lib/utils/slice-stats.ts +0 -95
  1369. package/out/adapters/ban/adapter.d.ts +0 -44
  1370. package/out/adapters/ban/adapter.d.ts.map +0 -1
  1371. package/out/adapters/ban/adapter.js +0 -149
  1372. package/out/adapters/ban/adapter.js.map +0 -1
  1373. package/out/adapters/ban/street-decompose.d.ts +0 -28
  1374. package/out/adapters/ban/street-decompose.d.ts.map +0 -1
  1375. package/out/adapters/ban/street-decompose.js +0 -51
  1376. package/out/adapters/ban/street-decompose.js.map +0 -1
  1377. package/out/adapters/fcc-bdc/adapter.d.ts +0 -68
  1378. package/out/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  1379. package/out/adapters/fcc-bdc/adapter.js +0 -144
  1380. package/out/adapters/fcc-bdc/adapter.js.map +0 -1
  1381. package/out/adapters/geonames-postal/adapter.d.ts +0 -54
  1382. package/out/adapters/geonames-postal/adapter.d.ts.map +0 -1
  1383. package/out/adapters/geonames-postal/adapter.js +0 -107
  1384. package/out/adapters/geonames-postal/adapter.js.map +0 -1
  1385. package/out/adapters/gnaf/adapter.d.ts +0 -49
  1386. package/out/adapters/gnaf/adapter.d.ts.map +0 -1
  1387. package/out/adapters/gnaf/adapter.js +0 -124
  1388. package/out/adapters/gnaf/adapter.js.map +0 -1
  1389. package/out/adapters/gnaf/assemble.d.ts +0 -65
  1390. package/out/adapters/gnaf/assemble.d.ts.map +0 -1
  1391. package/out/adapters/gnaf/assemble.js +0 -154
  1392. package/out/adapters/gnaf/assemble.js.map +0 -1
  1393. package/out/adapters/index.d.ts +0 -51
  1394. package/out/adapters/index.d.ts.map +0 -1
  1395. package/out/adapters/index.js +0 -95
  1396. package/out/adapters/index.js.map +0 -1
  1397. package/out/adapters/state-hi-schools/adapter.d.ts +0 -46
  1398. package/out/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  1399. package/out/adapters/state-hi-schools/adapter.js +0 -145
  1400. package/out/adapters/state-hi-schools/adapter.js.map +0 -1
  1401. package/out/adapters/state-hi-schools/workbook.d.ts +0 -29
  1402. package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
  1403. package/out/adapters/state-hi-schools/workbook.js +0 -20
  1404. package/out/adapters/state-hi-schools/workbook.js.map +0 -1
  1405. package/out/adapters/state-ia-contractors/adapter.d.ts +0 -34
  1406. package/out/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  1407. package/out/adapters/state-ia-contractors/adapter.js +0 -111
  1408. package/out/adapters/state-ia-contractors/adapter.js.map +0 -1
  1409. package/out/adapters/state-ny-notaries/adapter.d.ts +0 -32
  1410. package/out/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  1411. package/out/adapters/state-ny-notaries/adapter.js +0 -119
  1412. package/out/adapters/state-ny-notaries/adapter.js.map +0 -1
  1413. package/out/adapters/state-tx-notaries/adapter.d.ts +0 -33
  1414. package/out/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  1415. package/out/adapters/state-tx-notaries/adapter.js +0 -125
  1416. package/out/adapters/state-tx-notaries/adapter.js.map +0 -1
  1417. package/out/adapters/synth-po-box/adapter.d.ts +0 -67
  1418. package/out/adapters/synth-po-box/adapter.d.ts.map +0 -1
  1419. package/out/adapters/synth-po-box/adapter.js +0 -140
  1420. package/out/adapters/synth-po-box/adapter.js.map +0 -1
  1421. package/out/adapters/tiger/adapter.d.ts +0 -55
  1422. package/out/adapters/tiger/adapter.d.ts.map +0 -1
  1423. package/out/adapters/tiger/adapter.js +0 -201
  1424. package/out/adapters/tiger/adapter.js.map +0 -1
  1425. package/out/adapters/tiger/street-decompose.d.ts +0 -30
  1426. package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
  1427. package/out/adapters/tiger/street-decompose.js +0 -68
  1428. package/out/adapters/tiger/street-decompose.js.map +0 -1
  1429. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -56
  1430. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  1431. package/out/adapters/usgov-hrsa-fqhc/adapter.js +0 -132
  1432. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  1433. package/out/adapters/usgov-imls-pls/adapter.d.ts +0 -36
  1434. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  1435. package/out/adapters/usgov-imls-pls/adapter.js +0 -114
  1436. package/out/adapters/usgov-imls-pls/adapter.js.map +0 -1
  1437. package/out/adapters/usgov-irs-bmf/adapter.d.ts +0 -37
  1438. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  1439. package/out/adapters/usgov-irs-bmf/adapter.js +0 -120
  1440. package/out/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  1441. package/out/adapters/usgov-nad/adapter.d.ts +0 -48
  1442. package/out/adapters/usgov-nad/adapter.d.ts.map +0 -1
  1443. package/out/adapters/usgov-nad/adapter.js +0 -249
  1444. package/out/adapters/usgov-nad/adapter.js.map +0 -1
  1445. package/out/adapters/usgov-nppes/adapter.d.ts +0 -39
  1446. package/out/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  1447. package/out/adapters/usgov-nppes/adapter.js +0 -118
  1448. package/out/adapters/usgov-nppes/adapter.js.map +0 -1
  1449. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts +0 -46
  1450. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  1451. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -154
  1452. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  1453. package/out/adapters/utils/index.d.ts +0 -191
  1454. package/out/adapters/utils/index.d.ts.map +0 -1
  1455. package/out/adapters/utils/index.js +0 -206
  1456. package/out/adapters/utils/index.js.map +0 -1
  1457. package/out/adapters/wof-admin-jp/adapter.d.ts +0 -65
  1458. package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  1459. package/out/adapters/wof-admin-jp/adapter.js +0 -161
  1460. package/out/adapters/wof-admin-jp/adapter.js.map +0 -1
  1461. package/out/adapters/wof-admin-json/adapter.d.ts +0 -79
  1462. package/out/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  1463. package/out/adapters/wof-admin-json/adapter.js +0 -197
  1464. package/out/adapters/wof-admin-json/adapter.js.map +0 -1
  1465. package/out/adapters/wof-json-rows.d.ts +0 -62
  1466. package/out/adapters/wof-json-rows.d.ts.map +0 -1
  1467. package/out/adapters/wof-json-rows.js +0 -83
  1468. package/out/adapters/wof-json-rows.js.map +0 -1
  1469. package/out/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  1470. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  1471. package/out/adapters/wof-postalcode-json/adapter.js +0 -151
  1472. package/out/adapters/wof-postalcode-json/adapter.js.map +0 -1
  1473. package/out/codex/us-fips-state.d.ts +0 -41
  1474. package/out/codex/us-fips-state.d.ts.map +0 -1
  1475. package/out/codex/us-fips-state.js +0 -100
  1476. package/out/codex/us-fips-state.js.map +0 -1
  1477. package/out/recipes/bare-country.d.ts +0 -25
  1478. package/out/recipes/bare-country.d.ts.map +0 -1
  1479. package/out/recipes/bare-country.js +0 -88
  1480. package/out/recipes/bare-country.js.map +0 -1
  1481. package/out/recipes/cn-organizational-units.d.ts +0 -36
  1482. package/out/recipes/cn-organizational-units.d.ts.map +0 -1
  1483. package/out/recipes/cn-organizational-units.js +0 -159
  1484. package/out/recipes/cn-organizational-units.js.map +0 -1
  1485. package/out/recipes/cz-pcfirst-preposition.d.ts +0 -22
  1486. package/out/recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  1487. package/out/recipes/cz-pcfirst-preposition.js +0 -101
  1488. package/out/recipes/cz-pcfirst-preposition.js.map +0 -1
  1489. package/out/recipes/fr-admin-split.d.ts +0 -38
  1490. package/out/recipes/fr-admin-split.d.ts.map +0 -1
  1491. package/out/recipes/fr-admin-split.js +0 -192
  1492. package/out/recipes/fr-admin-split.js.map +0 -1
  1493. package/out/recipes/fr-bare-street.d.ts +0 -28
  1494. package/out/recipes/fr-bare-street.d.ts.map +0 -1
  1495. package/out/recipes/fr-bare-street.js +0 -144
  1496. package/out/recipes/fr-bare-street.js.map +0 -1
  1497. package/out/recipes/fr-fragment.d.ts +0 -77
  1498. package/out/recipes/fr-fragment.d.ts.map +0 -1
  1499. package/out/recipes/fr-fragment.js +0 -277
  1500. package/out/recipes/fr-fragment.js.map +0 -1
  1501. package/out/recipes/fr-lieudit.d.ts +0 -32
  1502. package/out/recipes/fr-lieudit.d.ts.map +0 -1
  1503. package/out/recipes/fr-lieudit.js +0 -227
  1504. package/out/recipes/fr-lieudit.js.map +0 -1
  1505. package/out/recipes/fr-order.d.ts +0 -38
  1506. package/out/recipes/fr-order.d.ts.map +0 -1
  1507. package/out/recipes/fr-order.js +0 -198
  1508. package/out/recipes/fr-order.js.map +0 -1
  1509. package/out/recipes/german.d.ts +0 -44
  1510. package/out/recipes/german.d.ts.map +0 -1
  1511. package/out/recipes/german.js +0 -289
  1512. package/out/recipes/german.js.map +0 -1
  1513. package/out/recipes/index.d.ts +0 -24
  1514. package/out/recipes/index.d.ts.map +0 -1
  1515. package/out/recipes/index.js +0 -91
  1516. package/out/recipes/index.js.map +0 -1
  1517. package/out/recipes/locale.d.ts +0 -136
  1518. package/out/recipes/locale.d.ts.map +0 -1
  1519. package/out/recipes/locale.js +0 -460
  1520. package/out/recipes/locale.js.map +0 -1
  1521. package/out/recipes/nl-postcode.d.ts +0 -26
  1522. package/out/recipes/nl-postcode.d.ts.map +0 -1
  1523. package/out/recipes/nl-postcode.js +0 -103
  1524. package/out/recipes/nl-postcode.js.map +0 -1
  1525. package/out/recipes/no-fragment.d.ts +0 -43
  1526. package/out/recipes/no-fragment.d.ts.map +0 -1
  1527. package/out/recipes/no-fragment.js +0 -183
  1528. package/out/recipes/no-fragment.js.map +0 -1
  1529. package/out/recipes/no-street-led.d.ts +0 -24
  1530. package/out/recipes/no-street-led.d.ts.map +0 -1
  1531. package/out/recipes/no-street-led.js +0 -114
  1532. package/out/recipes/no-street-led.js.map +0 -1
  1533. package/out/recipes/no-street.d.ts +0 -18
  1534. package/out/recipes/no-street.d.ts.map +0 -1
  1535. package/out/recipes/no-street.js +0 -72
  1536. package/out/recipes/no-street.js.map +0 -1
  1537. package/out/recipes/po-box-cedex.d.ts +0 -38
  1538. package/out/recipes/po-box-cedex.d.ts.map +0 -1
  1539. package/out/recipes/po-box-cedex.js +0 -768
  1540. package/out/recipes/po-box-cedex.js.map +0 -1
  1541. package/out/recipes/po-box.d.ts +0 -17
  1542. package/out/recipes/po-box.d.ts.map +0 -1
  1543. package/out/recipes/po-box.js +0 -101
  1544. package/out/recipes/po-box.js.map +0 -1
  1545. package/out/recipes/reviewed-postcode-tail.d.ts +0 -47
  1546. package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
  1547. package/out/recipes/reviewed-postcode-tail.js +0 -125
  1548. package/out/recipes/reviewed-postcode-tail.js.map +0 -1
  1549. package/out/recipes/si-bare-village.d.ts +0 -32
  1550. package/out/recipes/si-bare-village.d.ts.map +0 -1
  1551. package/out/recipes/si-bare-village.js +0 -89
  1552. package/out/recipes/si-bare-village.js.map +0 -1
  1553. package/out/recipes/street-affix.d.ts +0 -89
  1554. package/out/recipes/street-affix.d.ts.map +0 -1
  1555. package/out/recipes/street-affix.js +0 -563
  1556. package/out/recipes/street-affix.js.map +0 -1
  1557. package/out/recipes/street-bare.d.ts +0 -25
  1558. package/out/recipes/street-bare.d.ts.map +0 -1
  1559. package/out/recipes/street-bare.js +0 -87
  1560. package/out/recipes/street-bare.js.map +0 -1
  1561. package/out/recipes/sub-venue-sources.d.ts +0 -229
  1562. package/out/recipes/sub-venue-sources.d.ts.map +0 -1
  1563. package/out/recipes/sub-venue-sources.js +0 -654
  1564. package/out/recipes/sub-venue-sources.js.map +0 -1
  1565. package/out/recipes/sub-venue.d.ts +0 -269
  1566. package/out/recipes/sub-venue.d.ts.map +0 -1
  1567. package/out/recipes/sub-venue.js +0 -726
  1568. package/out/recipes/sub-venue.js.map +0 -1
  1569. package/out/synthesizers/german.d.ts +0 -115
  1570. package/out/synthesizers/german.d.ts.map +0 -1
  1571. package/out/synthesizers/german.js +0 -149
  1572. package/out/synthesizers/german.js.map +0 -1
  1573. package/out/test-kit/index.d.ts +0 -48
  1574. package/out/test-kit/index.d.ts.map +0 -1
  1575. package/out/test-kit/index.js +0 -78
  1576. package/out/test-kit/index.js.map +0 -1
  1577. package/out/tools/align-slice.d.ts +0 -7
  1578. package/out/tools/align-slice.d.ts.map +0 -1
  1579. package/out/tools/align-slice.js +0 -55
  1580. package/out/tools/align-slice.js.map +0 -1
  1581. package/out/tools/fetch/acra-sg.d.ts +0 -23
  1582. package/out/tools/fetch/acra-sg.d.ts.map +0 -1
  1583. package/out/tools/fetch/acra-sg.js +0 -126
  1584. package/out/tools/fetch/acra-sg.js.map +0 -1
  1585. package/out/tools/fetch/ban.d.ts +0 -31
  1586. package/out/tools/fetch/ban.d.ts.map +0 -1
  1587. package/out/tools/fetch/ban.js +0 -239
  1588. package/out/tools/fetch/ban.js.map +0 -1
  1589. package/out/tools/fetch/gcis-tw.d.ts +0 -23
  1590. package/out/tools/fetch/gcis-tw.d.ts.map +0 -1
  1591. package/out/tools/fetch/gcis-tw.js +0 -135
  1592. package/out/tools/fetch/gcis-tw.js.map +0 -1
  1593. package/out/tools/fetch/geonames-dump.d.ts +0 -91
  1594. package/out/tools/fetch/geonames-dump.d.ts.map +0 -1
  1595. package/out/tools/fetch/geonames-dump.js +0 -171
  1596. package/out/tools/fetch/geonames-dump.js.map +0 -1
  1597. package/out/tools/fetch/geonames-postal.d.ts +0 -76
  1598. package/out/tools/fetch/geonames-postal.d.ts.map +0 -1
  1599. package/out/tools/fetch/geonames-postal.js +0 -126
  1600. package/out/tools/fetch/geonames-postal.js.map +0 -1
  1601. package/out/tools/fetch/houjin-jp.d.ts +0 -24
  1602. package/out/tools/fetch/houjin-jp.d.ts.map +0 -1
  1603. package/out/tools/fetch/houjin-jp.js +0 -102
  1604. package/out/tools/fetch/houjin-jp.js.map +0 -1
  1605. package/out/tools/fetch/hrsa.d.ts +0 -18
  1606. package/out/tools/fetch/hrsa.d.ts.map +0 -1
  1607. package/out/tools/fetch/hrsa.js +0 -46
  1608. package/out/tools/fetch/hrsa.js.map +0 -1
  1609. package/out/tools/fetch/imls-pls.d.ts +0 -25
  1610. package/out/tools/fetch/imls-pls.d.ts.map +0 -1
  1611. package/out/tools/fetch/imls-pls.js +0 -108
  1612. package/out/tools/fetch/imls-pls.js.map +0 -1
  1613. package/out/tools/fetch/index.d.ts +0 -171
  1614. package/out/tools/fetch/index.d.ts.map +0 -1
  1615. package/out/tools/fetch/index.js +0 -170
  1616. package/out/tools/fetch/index.js.map +0 -1
  1617. package/out/tools/fetch/juso-kr.d.ts +0 -30
  1618. package/out/tools/fetch/juso-kr.d.ts.map +0 -1
  1619. package/out/tools/fetch/juso-kr.js +0 -120
  1620. package/out/tools/fetch/juso-kr.js.map +0 -1
  1621. package/out/tools/fetch/localdata-kr.d.ts +0 -30
  1622. package/out/tools/fetch/localdata-kr.d.ts.map +0 -1
  1623. package/out/tools/fetch/localdata-kr.js +0 -139
  1624. package/out/tools/fetch/localdata-kr.js.map +0 -1
  1625. package/out/tools/fetch/nad.d.ts +0 -70
  1626. package/out/tools/fetch/nad.d.ts.map +0 -1
  1627. package/out/tools/fetch/nad.js +0 -234
  1628. package/out/tools/fetch/nad.js.map +0 -1
  1629. package/out/tools/fetch/nppes.d.ts +0 -26
  1630. package/out/tools/fetch/nppes.d.ts.map +0 -1
  1631. package/out/tools/fetch/nppes.js +0 -126
  1632. package/out/tools/fetch/nppes.js.map +0 -1
  1633. package/out/tools/fetch/state-hi-schools.d.ts +0 -26
  1634. package/out/tools/fetch/state-hi-schools.d.ts.map +0 -1
  1635. package/out/tools/fetch/state-hi-schools.js +0 -112
  1636. package/out/tools/fetch/state-hi-schools.js.map +0 -1
  1637. package/out/tools/fetch/state-sources.d.ts +0 -26
  1638. package/out/tools/fetch/state-sources.d.ts.map +0 -1
  1639. package/out/tools/fetch/state-sources.js +0 -111
  1640. package/out/tools/fetch/state-sources.js.map +0 -1
  1641. package/out/tools/fetch/tiger-full.d.ts +0 -22
  1642. package/out/tools/fetch/tiger-full.d.ts.map +0 -1
  1643. package/out/tools/fetch/tiger-full.js +0 -217
  1644. package/out/tools/fetch/tiger-full.js.map +0 -1
  1645. package/out/tools/gb-title-case.d.ts +0 -2
  1646. package/out/tools/gb-title-case.d.ts.map +0 -1
  1647. package/out/tools/gb-title-case.js +0 -65
  1648. package/out/tools/gb-title-case.js.map +0 -1
  1649. package/out/tools/golden-expand.d.ts +0 -90
  1650. package/out/tools/golden-expand.d.ts.map +0 -1
  1651. package/out/tools/golden-expand.js +0 -406
  1652. package/out/tools/golden-expand.js.map +0 -1
  1653. package/out/tools/golden-promote.d.ts +0 -72
  1654. package/out/tools/golden-promote.d.ts.map +0 -1
  1655. package/out/tools/golden-promote.js +0 -240
  1656. package/out/tools/golden-promote.js.map +0 -1
  1657. package/out/tools/golden-relabel-street.d.ts +0 -196
  1658. package/out/tools/golden-relabel-street.d.ts.map +0 -1
  1659. package/out/tools/golden-relabel-street.js +0 -439
  1660. package/out/tools/golden-relabel-street.js.map +0 -1
  1661. package/out/tools/index.d.ts +0 -28
  1662. package/out/tools/index.d.ts.map +0 -1
  1663. package/out/tools/index.js +0 -28
  1664. package/out/tools/index.js.map +0 -1
  1665. package/out/tools/lint-slice-vocab.d.ts +0 -90
  1666. package/out/tools/lint-slice-vocab.d.ts.map +0 -1
  1667. package/out/tools/lint-slice-vocab.js +0 -267
  1668. package/out/tools/lint-slice-vocab.js.map +0 -1
  1669. package/out/tools/lint-slice.d.ts +0 -93
  1670. package/out/tools/lint-slice.d.ts.map +0 -1
  1671. package/out/tools/lint-slice.js +0 -322
  1672. package/out/tools/lint-slice.js.map +0 -1
  1673. package/out/tools/overlay-manifest.d.ts +0 -39
  1674. package/out/tools/overlay-manifest.d.ts.map +0 -1
  1675. package/out/tools/overlay-manifest.js +0 -90
  1676. package/out/tools/overlay-manifest.js.map +0 -1
  1677. package/out/tools/slice-kryptonite.d.ts +0 -32
  1678. package/out/tools/slice-kryptonite.d.ts.map +0 -1
  1679. package/out/tools/slice-kryptonite.js +0 -99
  1680. package/out/tools/slice-kryptonite.js.map +0 -1
  1681. package/out/tools/slice-translit.d.ts +0 -51
  1682. package/out/tools/slice-translit.d.ts.map +0 -1
  1683. package/out/tools/slice-translit.js +0 -166
  1684. package/out/tools/slice-translit.js.map +0 -1
  1685. package/out/tools/sub-venue/harvest.d.ts +0 -100
  1686. package/out/tools/sub-venue/harvest.d.ts.map +0 -1
  1687. package/out/tools/sub-venue/harvest.js +0 -168
  1688. package/out/tools/sub-venue/harvest.js.map +0 -1
  1689. package/out/tools/sub-venue/head-nouns.d.ts +0 -50
  1690. package/out/tools/sub-venue/head-nouns.d.ts.map +0 -1
  1691. package/out/tools/sub-venue/head-nouns.js +0 -213
  1692. package/out/tools/sub-venue/head-nouns.js.map +0 -1
  1693. package/out/tools/sub-venue/surfaces.d.ts +0 -45
  1694. package/out/tools/sub-venue/surfaces.d.ts.map +0 -1
  1695. package/out/tools/sub-venue/surfaces.js +0 -77
  1696. package/out/tools/sub-venue/surfaces.js.map +0 -1
  1697. package/out/tools/sub-venue/table.d.ts +0 -229
  1698. package/out/tools/sub-venue/table.d.ts.map +0 -1
  1699. package/out/tools/sub-venue/table.js +0 -108
  1700. package/out/tools/sub-venue/table.js.map +0 -1
  1701. package/out/tools/sub-venue/wikidata.d.ts +0 -26
  1702. package/out/tools/sub-venue/wikidata.d.ts.map +0 -1
  1703. package/out/tools/sub-venue/wikidata.js +0 -62
  1704. package/out/tools/sub-venue/wikidata.js.map +0 -1
  1705. package/out/tools/sub-venue-lexicon.d.ts +0 -156
  1706. package/out/tools/sub-venue-lexicon.d.ts.map +0 -1
  1707. package/out/tools/sub-venue-lexicon.js +0 -283
  1708. package/out/tools/sub-venue-lexicon.js.map +0 -1
  1709. package/out/tools/sub-venue-promotions.d.ts +0 -94
  1710. package/out/tools/sub-venue-promotions.d.ts.map +0 -1
  1711. package/out/tools/sub-venue-promotions.js +0 -266
  1712. package/out/tools/sub-venue-promotions.js.map +0 -1
  1713. package/out/utils/index.d.ts +0 -14
  1714. package/out/utils/index.d.ts.map +0 -1
  1715. package/out/utils/index.js +0 -14
  1716. package/out/utils/index.js.map +0 -1
  1717. package/out/utils/parquet.d.ts +0 -178
  1718. package/out/utils/parquet.d.ts.map +0 -1
  1719. package/out/utils/parquet.js +0 -371
  1720. package/out/utils/parquet.js.map +0 -1
  1721. package/out/utils/slice-stats.d.ts +0 -52
  1722. package/out/utils/slice-stats.d.ts.map +0 -1
  1723. package/out/utils/slice-stats.js +0 -58
  1724. package/out/utils/slice-stats.js.map +0 -1
@@ -3,53 +3,54 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `intersection` slice recipe — the REAL-pair intersection training slice (#487). The model scored
7
- * 0.0 on intersection_a/b because the training mix had ZERO intersection-labeled rows. This is
8
- * the missing data. Ported from scripts/build-intersection-slice.mjs.
6
+ * `intersection` recipe, the real-pair intersection training source.
9
7
  *
10
- * STREET PAIRS ARE REAL: the same TIGER 2023 EDGES extraction as the eval builder
11
- * (scripts/eval/build-intersection-real.ts) — a node where two road edges (MTFCC S1*) with
8
+ * Street pairs are real. The extraction matches the eval builder
9
+ * (`scripts/eval/build-intersection-real.ts`). A node where two road edges (mtfcc S1*) with
12
10
  * distinct FULLNAMEs meet is a real crossing. Real pairs avoid teaching fake street-street
13
11
  * co-occurrences.
14
12
  *
15
- * LEAKAGE POLICY (mirrors the affix slice's VT discipline):
13
+ * Leakage policy (mirrors the affix recipe's VT discipline):
16
14
  *
17
- * - TRAIN counties: Cook IL (grid city) + Morris NJ (suburb).
18
- * - GOLDEN (`--golden`) county: Washington VT (rural) ONLY — the corpus defaultHoldout state.
19
- * - Every crossing in data/eval/external/intersection-real.jsonl is excluded from BOTH modes, by node
20
- * id AND by order-insensitive name pair (the eval shares all three counties).
15
+ * - train counties: Cook IL (grid city) + Morris NJ (suburb).
16
+ * - golden (`--golden`) county: Washington VT (rural) only, the corpus defaultHoldout state.
17
+ * - Every crossing in data/eval/external/intersection-real.jsonl is excluded from both modes, by node
18
+ * id and by order-insensitive name pair (the eval shares all three counties).
21
19
  *
22
- * RENDERING: junction-format variety — padded/TIGHT `&` and `/`, `and`, `at`, `@`, leading-phrase
23
- * `corner of` / `intersection of` — crossed with tails (bare / `, ST` / `, ST ZIP` / `, City, ST
24
- * [ZIP]`) and case variants. ZIPs are the crossing's own TIGER edge ZIPL (real); the locality
25
- * tail comes from the OA Cook-county ZIP→city majority map.
20
+ * Junction-format variety includes padded and tight `&` and `/`, `and`, `at`, `@`, and the
21
+ * leading phrases `corner of` and `intersection of`, crossed with tails (bare / `, ST` / `, ST ZIP` /
22
+ * `, City, ST [ZIP]`) and case variants. ZIPs are the crossing's own tiger edge zipl (real). The
23
+ * locality tail comes from the OA Cook-county ZIP→city majority map.
26
24
  *
27
- * AUDIT: every emitted row is label-checked on the RAW SURFACE via the #519 char-offset span
28
- * triple. Any violation FAILS the build (throws). A JSON audit report lands next to the output.
25
+ * Audit: every emitted row is label-checked on the RAW surface via the char-offset span triple. Any
26
+ * violation fails the build (throws). A JSON audit report lands next to the output.
29
27
  *
30
- * External inputs (`--edges-dir`, opts.edgesDir; both already on disk — do not re-download):
28
+ * External inputs (`--edges-dir` and opts.edgesDir, both already on disk. Do not re-download):
31
29
  *
32
- * - <edges-dir>/tl_2023_{17031,34027,50023}_edges.shp (unzipped TIGER 2023 EDGES; default
30
+ * - <edges-dir>/tl_2023_{17031,34027,50023}_edges.shp (unzipped tiger 2023 edges. default
33
31
  * `$MAILWOMAN_DATA_ROOT/census/tiger2023-edges`, where `mailwoman situs interpolation` puts them)
34
32
  * - `$MAILWOMAN_DATA_ROOT/oa-cache/us__il__cook.zip` (ZIP→city tails)
35
33
  */
36
34
 
37
35
  import type { DuckDBConnection } from "@duckdb/node-api"
36
+ import type { ComponentTag } from "@mailwoman/codex/component"
38
37
  import { dataRootPath } from "@mailwoman/core/data-root"
39
38
  import { pathExists } from "@mailwoman/core/fs/readers"
40
39
  import { writeLocalJSONFile } from "@mailwoman/core/fs/writers"
40
+ import { stringifyJSON } from "@mailwoman/core/json"
41
41
  import { repoRootPath } from "@mailwoman/core/paths"
42
- import type { ComponentTag } from "@mailwoman/core/types"
42
+ import { sample } from "@mailwoman/core/random"
43
43
  import { mulberry32 as makeMulberry32 } from "@mailwoman/core/utils"
44
44
  import type { PathBuilderLike } from "path-ts"
45
45
  import { JSONSpliterator } from "spliterator"
46
46
 
47
- import { stableSourceID } from "#adapters/utils"
47
+ import { stableSourceID } from "#adapters/source-id"
48
+ import { openDuckDB } from "#parquet/duckdb"
48
49
  import { readZippedCSVRecords, type CorpusRecipe } from "#recipes/scaffold"
49
- import { pick, weightedPick } from "#synthesizers/utils"
50
+ import { defaultRecipeSource } from "#recipes/sources"
51
+ import { weightedPick } from "#synthesizers/utils"
50
52
  import type { CanonicalRow, LabeledRow } from "#types"
51
53
  import { alignRow } from "#utils"
52
- import { connectDuckDB } from "#utils/parquet"
53
54
 
54
55
  interface County {
55
56
  fips: string
@@ -66,15 +67,18 @@ const GOLDEN_COUNTIES: readonly County[] = [{ fips: "50023", state: "VT", regime
66
67
 
67
68
  const EVAL_GOLD_PATH = repoRootPath("data", "eval", "external", "intersection-real.jsonl")
68
69
  /**
69
- * Where `mailwoman situs interpolation` unpacks the per-county TIGER EDGES shapefiles — a Census download, so it sits
70
- * beside the other Census vintages under `census/`. `--edges-dir` overrides it.
70
+ * Where `mailwoman situs interpolation` unpacks the per-county tiger edges shapefiles.
71
+ *
72
+ * A Census download, so it sits beside the other Census vintages under `census/`.
73
+ *
74
+ * `--edges-dir` overrides it.
71
75
  */
72
76
  const DEFAULT_EDGES_DIR = dataRootPath("census", "tiger2023-edges")
73
77
 
74
78
  const OA_COOK = { zip: dataRootPath("oa-cache", "us__il__cook.zip"), csv: "us/il/cook.csv" }
75
79
 
76
80
  /**
77
- * One real crossing extracted from a county's TIGER EDGES shapefile.
81
+ * One real crossing extracted from a county's tiger edges shapefile.
78
82
  */
79
83
  interface Crossing {
80
84
  a: string
@@ -86,8 +90,10 @@ interface Crossing {
86
90
  }
87
91
 
88
92
  /**
89
- * Junction forms. Weights favor the common connectors; the tight (unpadded) variants and leading phrases get enough
90
- * mass to register (each ≥5%) — they're the audited gaps the old synth missed.
93
+ * Junction forms.
94
+ *
95
+ * Weights favor the common connectors.
96
+ * The tight (unpadded) variants and leading phrases each account for at least 5% of the mass.
91
97
  */
92
98
  interface Form {
93
99
  id: string
@@ -108,9 +114,15 @@ const FORMS: readonly Form[] = [
108
114
  ]
109
115
 
110
116
  /**
111
- * Tail forms. ~55% bare (the v0.7.2 lesson: an always-present tail taught the model to read post-intersection text as a
112
- * locality and fumble bare "X & Y"). City tails require a ZIP→city hit (Cook only); ZIP tails require the edge to carry
113
- * a ZIPL. Misses downgrade to the region tail.
117
+ * Tail forms.
118
+ * About 55% bare.
119
+ *
120
+ * An always-present tail teaches the model to read post-intersection text as a locality,
121
+ * so the bare form keeps a majority.
122
+ * City tails require a ZIP→city hit (Cook only).
123
+ *
124
+ * ZIP tails require the edge to include a zipl.
125
+ * Misses downgrade to the region tail.
114
126
  */
115
127
  interface Tail {
116
128
  id: string
@@ -138,14 +150,16 @@ const CASES: readonly Casing[] = [
138
150
  ]
139
151
 
140
152
  /**
141
- * Words a connector may contribute as O tokens. The audit rejects any O token outside this set — an unlabeled
142
- * street/locality token would surface here.
153
+ * Words a connector may contribute as O tokens.
154
+ *
155
+ * The audit rejects any O token outside this set.
156
+ * An unlabeled street/locality token would surface here.
143
157
  */
144
158
  const CONNECTOR_O_TOKENS = new Set(["and", "at", "of", "corner", "intersection"])
145
159
 
146
160
  /**
147
- * Street names that would make the connector ambiguous or break verbatim alignment: embedded connector punctuation, or
148
- * a standalone "and"/"at" word.
161
+ * Street names that would make the connector ambiguous or break verbatim alignment:
162
+ * embedded connector punctuation, or a standalone "and"/"at" word.
149
163
  */
150
164
  const BAD_NAME = /[,&@/]|\b(and|at)\b/i
151
165
 
@@ -160,7 +174,8 @@ const CONNECTOR_PUNCT_RE = /^[\s,&@/]*$/
160
174
  const pairKey = (a: string, b: string): string => [a.toLowerCase(), b.toLowerCase()].toSorted().join("\u001F")
161
175
 
162
176
  /**
163
- * One row of the intersection eval gold — the shape this recipe reads to exclude eval crossings.
177
+ * One row of the intersection eval gold.
178
+ * The shape this recipe reads to exclude eval crossings.
164
179
  */
165
180
  interface EvalGoldRow {
166
181
  node: number | string
@@ -189,9 +204,11 @@ async function readEvalExclusions(): Promise<{ nodes: Set<number>; pairs: Set<st
189
204
  }
190
205
 
191
206
  /**
192
- * Extract real crossings from one county's TIGER EDGES shapefile. Same query shape as the eval builder (2 incident
193
- * distinct S1* FULLNAMEs at a node, both names >=6 chars), plus the edge ZIPL so tails can carry the crossing's own
194
- * ZIP. Hash-ordered for seed-stable determinism.
207
+ * Extract real crossings from one county's tiger edges shapefile.
208
+ *
209
+ * Same query shape as the eval builder (2 incident distinct S1* FULLNAMEs at a node, both names >=6 chars),
210
+ * plus the edge zipl so tails can include the crossing's own ZIP.
211
+ * Hash-ordered for seed-stable determinism.
195
212
  */
196
213
  async function extractCrossings(
197
214
  db: DuckDBConnection,
@@ -245,7 +262,6 @@ async function extractCrossings(
245
262
  async function buildZipCityMap(): Promise<Map<string, string>> {
246
263
  const counts = new Map<string, Map<string, number>>()
247
264
 
248
- // zip → Map(city → n)
249
265
  for await (const row of readZippedCSVRecords(OA_COOK.zip, OA_COOK.csv)) {
250
266
  const city = row.city ?? ""
251
267
  const zip = row.postcode ?? ""
@@ -279,8 +295,10 @@ async function buildZipCityMap(): Promise<Map<string, string>> {
279
295
  }
280
296
 
281
297
  /**
282
- * Render one crossing → { raw, components, formID, tailID, caseID }. Components are inserted in claim order (streets
283
- * first) so alignment can't grab a region/postcode lookalike inside a street.
298
+ * Render one crossing → { raw, components, formID, tailID, caseID }.
299
+ *
300
+ * Components are inserted in claim order (streets first) so alignment can't grab
301
+ * a region/postcode lookalike inside a street.
284
302
  */
285
303
  function renderRow(
286
304
  random: () => number,
@@ -326,15 +344,18 @@ function renderRow(
326
344
  const casing = weightedPick(CASES, random, (c) => c.w)
327
345
  raw = casing.apply(raw)
328
346
 
329
- // Components keep their original case; alignRow matches case-insensitively and labels the
330
- // tokens of the (cased) raw — the parquet row carries tokens+labels only.
347
+ // Components keep their original case. alignRow matches case-insensitively
348
+ // and labels the tokens of the (cased) raw.
349
+ // The parquet row contains tokens+labels only.
331
350
  return { raw, components, formID: form.id, tailID: tail.id, caseID: casing.id }
332
351
  }
333
352
 
334
353
  /**
335
- * Label-correctness audit for one aligned row, on the RAW SURFACE via the #519 span triple. Returns a list of
336
- * violations (empty = clean). Re-derives the span checks independent of `alignRow`'s own assertion, so a builder bug
337
- * can't vouch for itself.
354
+ * Label-correctness audit for one aligned row, on the RAW surface via the char-offset span triple.
355
+ *
356
+ * @returns A list of violations (empty = clean).
357
+ * Re-derives the span checks independent of `alignRow`'s own assertion,
358
+ * so a builder bug can't vouch for itself.
338
359
  */
339
360
  function auditRow(row: LabeledRow, components: Partial<Record<ComponentTag, string>>): string[] {
340
361
  const errors: string[] = []
@@ -374,7 +395,6 @@ function auditRow(row: LabeledRow, components: Partial<Record<ComponentTag, stri
374
395
  errors.push(`span count ${span_tags.length} != components ${compCount}`)
375
396
  }
376
397
 
377
- // Raw-surface reconstruction: each component's single span slices raw to the component verbatim.
378
398
  for (const [tag, value] of Object.entries(components)) {
379
399
  if (value == null) continue
380
400
  const indices = span_tags.map((t, i) => (t === tag ? i : -1)).filter((i) => i >= 0)
@@ -429,8 +449,10 @@ function auditRow(row: LabeledRow, components: Partial<Record<ComponentTag, stri
429
449
  }
430
450
 
431
451
  /**
432
- * Slice recipe registered with the corpus builder — see the file header for the parse behaviour it exists to exercise,
433
- * and `description` below for the surface form it generates.
452
+ * Recipe registered with the corpus builder.
453
+ *
454
+ * See the file header for the parse behavior it exercises.
455
+ * See `description` below for the generated surface form.
434
456
  */
435
457
  export const intersectionRecipe: CorpusRecipe = {
436
458
  name: "intersection",
@@ -443,17 +465,17 @@ export const intersectionRecipe: CorpusRecipe = {
443
465
  },
444
466
  ],
445
467
  async run(opts, write) {
446
- // Legacy build-intersection-slice.mjs seeded `mulberry32(opts.seed)`.
447
468
  const random = makeMulberry32(opts.seed)
448
469
  const count = opts.count ?? 40_000
449
- const source = opts.sourceName ?? "synth-intersection"
470
+ const source = opts.sourceName ?? defaultRecipeSource("synth-intersection")
450
471
  const edgesDir = opts.edgesDir ?? DEFAULT_EDGES_DIR
451
472
  const counties = opts.golden ? GOLDEN_COUNTIES : TRAIN_COUNTIES
452
473
  const exclusions = await readEvalExclusions()
453
474
 
454
475
  console.error(` eval exclusions: ${exclusions.nodes.size} nodes, ${exclusions.pairs.size} pairs`)
455
476
 
456
- const db = await connectDuckDB()
477
+ using db = await openDuckDB()
478
+
457
479
  await db.run("INSTALL spatial; LOAD spatial;")
458
480
 
459
481
  // Pool real crossings: eval-excluded, connector-safe names, one crossing per distinct pair.
@@ -518,7 +540,7 @@ export const intersectionRecipe: CorpusRecipe = {
518
540
  const samples: Array<{ form: string; raw: string; tokens: readonly string[]; labels: readonly string[] }> = []
519
541
 
520
542
  while (emitted < count && guard++ < count * 10) {
521
- const crossing = pick(pool, random)
543
+ const crossing = sample(pool, random)
522
544
  const { raw, components, formID, tailID, caseID } = renderRow(random, crossing, zipCity)
523
545
 
524
546
  if (seenRaw.has(raw)) {
@@ -529,7 +551,7 @@ export const intersectionRecipe: CorpusRecipe = {
529
551
 
530
552
  if (opts.golden) {
531
553
  seenRaw.add(raw)
532
- write(JSON.stringify({ raw, components, country: "US", form: formID }) + "\n")
554
+ write(stringifyJSON({ raw, components, country: "US", form: formID }))
533
555
  formCounts[formID] = (formCounts[formID] ?? 0) + 1
534
556
  tailCounts[tailID] = (tailCounts[tailID] ?? 0) + 1
535
557
  caseCounts[caseID] = (caseCounts[caseID] ?? 0) + 1
@@ -552,8 +574,8 @@ export const intersectionRecipe: CorpusRecipe = {
552
574
  license: "TIGER/Line 2023 EDGES (US Census, public domain) real street pairs; OA Cook IL zip-to-city tails",
553
575
  }
554
576
 
555
- // Verbatim-only alignment: raw is built from the component values, so a fuzzy fallback could
556
- // only ever mislabel (e.g. claim a lookalike window for a near-duplicate street).
577
+ // Verbatim-only alignment: raw is built from the component values, so a fuzzy fallback
578
+ // could only ever mislabel (e.g. Claim a lookalike window for a near-duplicate street).
557
579
  const aligned = alignRow(canonical, { maxEditDistance: 0 })
558
580
 
559
581
  if (aligned.kind !== "labeled" || !aligned.row) {
@@ -571,7 +593,7 @@ export const intersectionRecipe: CorpusRecipe = {
571
593
  }
572
594
 
573
595
  seenRaw.add(raw)
574
- write(JSON.stringify({ ...aligned.row, synth_method: "intersection", synth_base_id: null }) + "\n")
596
+ write(stringifyJSON({ ...aligned.row, synth_method: "intersection", synth_base_id: null }))
575
597
  formCounts[formID] = (formCounts[formID] ?? 0) + 1
576
598
  tailCounts[tailID] = (tailCounts[tailID] ?? 0) + 1
577
599
  caseCounts[caseID] = (caseCounts[caseID] ?? 0) + 1
@@ -604,14 +626,14 @@ export const intersectionRecipe: CorpusRecipe = {
604
626
 
605
627
  console.error(
606
628
  `Done: emitted ${emitted} rows (skipped ${skipped}) from ${usedCrossings.size}/${pool.length} real crossings. → ${opts.output}\n` +
607
- ` forms: ${JSON.stringify(formCounts)}\n` +
608
- ` tails: ${JSON.stringify(tailCounts)}\n` +
609
- ` cases: ${JSON.stringify(caseCounts)}\n` +
629
+ ` forms: ${stringifyJSON(formCounts)}\n` +
630
+ ` tails: ${stringifyJSON(tailCounts)}\n` +
631
+ ` cases: ${stringifyJSON(caseCounts)}\n` +
610
632
  ` audit: ${auditErrors.length} violation(s)`
611
633
  )
612
634
 
613
635
  if (auditErrors.length) {
614
- throw new Error(`AUDIT FAILED — first violation: ${JSON.stringify(auditErrors[0])}`)
636
+ throw new Error(`AUDIT FAILED — first violation: ${stringifyJSON(auditErrors[0])}`)
615
637
  }
616
638
 
617
639
  return { emitted, skipped }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ */
4
+
5
+ import { isAuDeliveryService } from "@mailwoman/codex/au"
6
+ import { isNZDeliveryService } from "@mailwoman/codex/nz"
7
+ import { sample } from "@mailwoman/core/random"
8
+
9
+ import { makeAuNZPoBoxPhrase } from "#recipes/po/box/cedex/phrases"
10
+ import type { AUTuple, NZTuple, Rendered } from "#recipes/po/box/cedex/types"
11
+ import {
12
+ AU_LEADERS_CURRENT,
13
+ AU_LEADERS_LEGACY,
14
+ NZ_LEADERS_COMMON,
15
+ NZ_LEADERS_RARE,
16
+ VENUES_EN,
17
+ } from "#recipes/po/box/cedex/vocabulary"
18
+
19
+ const AU_UPPER_LOCALITY_CUTOFF = 0.6,
20
+ AU_STANDARD_CUTOFF = 0.45,
21
+ AU_LABEL_CUTOFF = 0.6,
22
+ AU_NO_POSTCODE_CUTOFF = 0.75,
23
+ AU_BARE_CUTOFF = 0.88
24
+
25
+ const NZ_STANDARD_CUTOFF = 0.55,
26
+ NZ_NO_POSTCODE_CUTOFF = 0.7,
27
+ NZ_BARE_CUTOFF = 0.85
28
+
29
+ export function renderAUPoBox(random: () => number, tuple: AUTuple): Rendered {
30
+ const phrase = makeAuNZPoBoxPhrase(random, AU_LEADERS_CURRENT, AU_LEADERS_LEGACY, isAuDeliveryService)
31
+ const { locality, region, postcode } = tuple
32
+ const draw = random()
33
+ const location = draw < AU_UPPER_LOCALITY_CUTOFF ? locality.toUpperCase() : locality
34
+ const base = { po_box: phrase, locality: location, region, postcode }
35
+
36
+ if (draw < AU_STANDARD_CUTOFF)
37
+ return { fmt: "au-standard", raw: `${phrase}, ${location} ${region} ${postcode}`, components: base }
38
+
39
+ if (draw < AU_LABEL_CUTOFF) {
40
+ const upper = phrase.toUpperCase()
41
+
42
+ return {
43
+ fmt: "au-label-nocomma",
44
+ raw: `${upper} ${locality.toUpperCase()} ${region} ${postcode}`,
45
+ components: { po_box: upper, locality: locality.toUpperCase(), region, postcode },
46
+ }
47
+ }
48
+
49
+ if (draw < AU_NO_POSTCODE_CUTOFF)
50
+ return {
51
+ fmt: "au-no-postcode",
52
+ raw: `${phrase}, ${location} ${region}`,
53
+ components: { po_box: phrase, locality: location, region },
54
+ }
55
+
56
+ if (draw < AU_BARE_CUTOFF) return { fmt: "au-bare", raw: phrase, components: { po_box: phrase } }
57
+ const venue = sample(VENUES_EN, random)
58
+
59
+ return {
60
+ fmt: "au-venue",
61
+ raw: `${venue}, ${phrase}, ${location} ${region} ${postcode}`,
62
+ components: { venue, ...base },
63
+ }
64
+ }
65
+
66
+ export function renderNZPoBox(random: () => number, tuple: NZTuple): Rendered {
67
+ const phrase = makeAuNZPoBoxPhrase(random, NZ_LEADERS_COMMON, NZ_LEADERS_RARE, isNZDeliveryService)
68
+ const { locality, postcode } = tuple
69
+ const base = { po_box: phrase, locality, postcode }
70
+ const draw = random()
71
+
72
+ if (draw < NZ_STANDARD_CUTOFF)
73
+ return { fmt: "nz-standard", raw: `${phrase}, ${locality} ${postcode}`, components: base }
74
+
75
+ if (draw < NZ_NO_POSTCODE_CUTOFF)
76
+ return { fmt: "nz-no-postcode", raw: `${phrase}, ${locality}`, components: { po_box: phrase, locality } }
77
+
78
+ if (draw < NZ_BARE_CUTOFF) return { fmt: "nz-bare", raw: phrase, components: { po_box: phrase } }
79
+ const venue = sample(VENUES_EN, random)
80
+
81
+ return { fmt: "nz-venue", raw: `${venue}, ${phrase}, ${locality} ${postcode}`, components: { venue, ...base } }
82
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ */
4
+
5
+ import { sample } from "@mailwoman/core/random"
6
+
7
+ import { makeCaPostcode, makePoBoxPhrase } from "#recipes/po/box/cedex/phrases"
8
+ import type { Rendered } from "#recipes/po/box/cedex/types"
9
+ import {
10
+ CA_EN_LEADERS,
11
+ CA_FR_LEADERS,
12
+ ON_FSA_LETTERS,
13
+ QC_FSA_LETTERS,
14
+ VENUES_FR,
15
+ } from "#recipes/po/box/cedex/vocabulary"
16
+
17
+ const CA_FR_GOLDEN_ORDER_CUTOFF = 0.4,
18
+ CA_FR_NATIVE_CUTOFF = 0.7,
19
+ CA_FR_BARE_CUTOFF = 0.85
20
+
21
+ const CA_EN_STANDARD_CUTOFF = 0.5,
22
+ CA_EN_GOLDEN_ORDER_CUTOFF = 0.8
23
+
24
+ export function renderCaFr(random: () => number, locality: string): Rendered {
25
+ const phrase = makePoBoxPhrase(random, CA_FR_LEADERS)
26
+ const postcode = makeCaPostcode(random, QC_FSA_LETTERS)
27
+ const components = { po_box: phrase, postcode, locality, region: "QC" }
28
+ const draw = random()
29
+
30
+ if (draw < CA_FR_GOLDEN_ORDER_CUTOFF)
31
+ return { fmt: "ca-fr-golden-order", raw: `${phrase}, ${postcode} ${locality}, QC`, components }
32
+
33
+ if (draw < CA_FR_NATIVE_CUTOFF)
34
+ return { fmt: "ca-fr-native", raw: `${phrase}, ${locality} QC ${postcode}`, components }
35
+
36
+ if (draw < CA_FR_BARE_CUTOFF) return { fmt: "ca-fr-bare", raw: phrase, components: { po_box: phrase } }
37
+ const venue = sample(VENUES_FR, random)
38
+
39
+ return {
40
+ fmt: "ca-fr-venue",
41
+ raw: `${venue}, ${phrase}, ${locality} QC ${postcode}`,
42
+ components: { venue, ...components },
43
+ }
44
+ }
45
+
46
+ export function renderCaEn(random: () => number, locality: string): Rendered {
47
+ const phrase = makePoBoxPhrase(random, CA_EN_LEADERS)
48
+ const postcode = makeCaPostcode(random, ON_FSA_LETTERS)
49
+ const components = { po_box: phrase, locality, region: "ON", postcode }
50
+ const draw = random()
51
+
52
+ if (draw < CA_EN_STANDARD_CUTOFF)
53
+ return { fmt: "ca-en-standard", raw: `${phrase}, ${locality}, ON ${postcode}`, components }
54
+
55
+ if (draw < CA_EN_GOLDEN_ORDER_CUTOFF)
56
+ return { fmt: "ca-en-golden-order", raw: `${phrase}, ${postcode} ${locality}, ON`, components }
57
+
58
+ return { fmt: "ca-en-bare", raw: phrase, components: { po_box: phrase } }
59
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ */
4
+
5
+ import { sample } from "@mailwoman/core/random"
6
+
7
+ import { makeCedex, makePoBoxPhrase } from "#recipes/po/box/cedex/phrases"
8
+ import type { FRTuple, Rendered } from "#recipes/po/box/cedex/types"
9
+ import { FR_LEADERS, VENUES_FR } from "#recipes/po/box/cedex/vocabulary"
10
+
11
+ const BP_TAIL_CUTOFF = 0.45,
12
+ BP_BARE_CUTOFF = 0.6,
13
+ BP_CEDEX_CUTOFF = 0.8
14
+
15
+ const CEDEX_UPPER_LOCALITY_SHARE = 0.6,
16
+ CEDEX_LINE_CUTOFF = 0.4,
17
+ CEDEX_FULL_CUTOFF = 0.75,
18
+ CEDEX_GOLDEN_ORDER_CUTOFF = 0.85
19
+
20
+ export function renderBpFr(random: () => number, tuple: FRTuple): Rendered {
21
+ const phrase = makePoBoxPhrase(random, FR_LEADERS)
22
+ const { locality, postcode } = tuple
23
+ const location = random() < 0.5 ? locality.toUpperCase() : locality
24
+ const draw = random()
25
+
26
+ if (draw < BP_TAIL_CUTOFF)
27
+ return {
28
+ fmt: "bp-tail",
29
+ raw: `${phrase}, ${postcode} ${location}`,
30
+ components: { po_box: phrase, postcode, locality: location },
31
+ }
32
+
33
+ if (draw < BP_BARE_CUTOFF) return { fmt: "bp-bare", raw: phrase, components: { po_box: phrase } }
34
+
35
+ if (draw < BP_CEDEX_CUTOFF) {
36
+ const cedex = makeCedex(random)
37
+ const upperLocality = locality.toUpperCase()
38
+
39
+ return {
40
+ fmt: "bp-cedex",
41
+ raw: `${phrase}, ${postcode} ${upperLocality} ${cedex}`,
42
+ components: { po_box: phrase, postcode, locality: upperLocality, cedex },
43
+ }
44
+ }
45
+
46
+ const venue = sample(VENUES_FR, random)
47
+
48
+ return {
49
+ fmt: "bp-venue",
50
+ raw: `${venue}, ${phrase}, ${postcode} ${location}`,
51
+ components: { venue, po_box: phrase, postcode, locality: location },
52
+ }
53
+ }
54
+
55
+ export function renderCedexFr(random: () => number, tuple: FRTuple): Rendered {
56
+ const cedex = makeCedex(random)
57
+ const { house_number, street, locality, postcode } = tuple
58
+ const location = random() < CEDEX_UPPER_LOCALITY_SHARE ? locality.toUpperCase() : locality
59
+ const line = { postcode, locality: location, cedex }
60
+ const draw = random()
61
+
62
+ if (draw < CEDEX_LINE_CUTOFF) return { fmt: "cedex-line", raw: `${postcode} ${location} ${cedex}`, components: line }
63
+
64
+ if (draw < CEDEX_FULL_CUTOFF)
65
+ return {
66
+ fmt: "cedex-full",
67
+ raw: `${house_number} ${street}, ${postcode} ${location} ${cedex}`,
68
+ components: { house_number, street, ...line },
69
+ }
70
+
71
+ if (draw < CEDEX_GOLDEN_ORDER_CUTOFF)
72
+ return { fmt: "cedex-golden-order", raw: `${postcode} ${cedex} ${location}`, components: line }
73
+
74
+ const venue = sample(VENUES_FR, random)
75
+
76
+ return { fmt: "cedex-venue", raw: `${venue}, ${postcode} ${location} ${cedex}`, components: { venue, ...line } }
77
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ */
4
+
5
+ import { normalizeCaPostalCode } from "@mailwoman/codex/ca"
6
+ import { isCedex } from "@mailwoman/codex/fr"
7
+ import { isNZDeliveryService } from "@mailwoman/codex/nz"
8
+ import { isUSPoBoxDesignator, matchPOBox } from "@mailwoman/codex/us"
9
+ import { sample } from "@mailwoman/core/random"
10
+
11
+ import { CA_INTERIOR_LETTERS } from "#recipes/po/box/cedex/vocabulary"
12
+ import { maybeNoisifyBoxNumber } from "#synthesizers/po-box"
13
+ import { tieredNumber } from "#synthesizers/utils"
14
+
15
+ const BOX_TWO_DIGIT_CUTOFF = 0.3
16
+ const BOX_THREE_DIGIT_CUTOFF = 0.7
17
+ const BOX_FOUR_DIGIT_CUTOFF = 0.95
18
+ const TEMPLATE_CASE_CUTOFF = 0.7
19
+ const UPPER_CASE_CUTOFF = 0.92
20
+ const RARE_LEADER_SHARE = 0.1
21
+ const CEDEX_UPPER_CUTOFF = 0.6
22
+ const CEDEX_TITLE_CUTOFF = 0.9
23
+ const CEDEX_UNNUMBERED_SHARE = 0.2
24
+
25
+ const pickBoxNumber = (random: () => number): string =>
26
+ tieredNumber(random, [
27
+ { cutoff: BOX_TWO_DIGIT_CUTOFF, base: 1, span: 99 },
28
+ { cutoff: BOX_THREE_DIGIT_CUTOFF, base: 100, span: 900 },
29
+ { cutoff: BOX_FOUR_DIGIT_CUTOFF, base: 1000, span: 9000 },
30
+ { base: 10_000, span: 90_000 },
31
+ ])
32
+
33
+ const caseDial = (random: () => number, value: string): string => {
34
+ const draw = random()
35
+
36
+ return draw < TEMPLATE_CASE_CUTOFF ? value : draw < UPPER_CASE_CUTOFF ? value.toUpperCase() : value.toLowerCase()
37
+ }
38
+
39
+ export function makePoBoxPhrase(
40
+ random: () => number,
41
+ leaders: ReadonlyArray<string>,
42
+ rareLeaders?: ReadonlyArray<string>
43
+ ): string {
44
+ let leader = sample(leaders, random)
45
+
46
+ if (rareLeaders && random() < RARE_LEADER_SHARE) {
47
+ leader = sample(rareLeaders, random)
48
+ }
49
+
50
+ const number = maybeNoisifyBoxNumber(pickBoxNumber(random), random)
51
+ const phrase = leader === "#" ? `#${number}` : `${caseDial(random, leader)} ${number}`
52
+
53
+ if (isUSPoBoxDesignator(leader) && /^[\dA-Za-z][\dA-Za-z-]*$/.test(number) && !matchPOBox(phrase))
54
+ throw new Error(`generated a po_box phrase the codex matcher rejects: "${phrase}"`)
55
+
56
+ return phrase
57
+ }
58
+
59
+ export function makeCedex(random: () => number): string {
60
+ const draw = random()
61
+ const word = draw < CEDEX_UPPER_CUTOFF ? "CEDEX" : draw < CEDEX_TITLE_CUTOFF ? "Cedex" : "cedex"
62
+ let phrase = word
63
+
64
+ if (random() >= CEDEX_UNNUMBERED_SHARE) {
65
+ const number = 1 + Math.floor(random() * 20)
66
+ phrase = `${word} ${random() < 0.5 ? String(number).padStart(2, "0") : String(number)}`
67
+ }
68
+
69
+ if (!isCedex(phrase)) throw new Error(`makeCedex emitted a phrase the codex matcher rejects: "${phrase}"`)
70
+
71
+ return phrase
72
+ }
73
+
74
+ export function makeAuNZPoBoxPhrase(
75
+ random: () => number,
76
+ leaders: ReadonlyArray<string>,
77
+ rareLeaders: ReadonlyArray<string>,
78
+ validate: (input: unknown) => boolean
79
+ ): string {
80
+ let leader = sample(leaders, random)
81
+
82
+ if (random() < RARE_LEADER_SHARE) {
83
+ leader = sample(rareLeaders, random)
84
+ }
85
+
86
+ let number = maybeNoisifyBoxNumber(pickBoxNumber(random), random)
87
+
88
+ if (leader === "CMB" && validate === isNZDeliveryService) {
89
+ number = `B${number}`
90
+ }
91
+
92
+ const phrase = `${caseDial(random, leader)} ${number}`
93
+ const cleanID = validate === isNZDeliveryService ? /^[\dA-Za-z]+$/ : /^[\dA-Za-z][\dA-Za-z-]*$/
94
+
95
+ if (cleanID.test(number) && !validate(phrase))
96
+ throw new Error(`generated a phrase the codex matcher rejects: "${phrase}"`)
97
+
98
+ return phrase
99
+ }
100
+
101
+ export function makeCaPostcode(random: () => number, fsaLetters: string[]): string {
102
+ const letter = () => CA_INTERIOR_LETTERS[Math.floor(random() * CA_INTERIOR_LETTERS.length)]!
103
+ const digit = () => String(Math.floor(random() * 10))
104
+ const postcode = `${sample(fsaLetters, random)}${digit()}${letter()} ${digit()}${letter()}${digit()}`
105
+
106
+ if (!normalizeCaPostalCode(postcode)) throw new Error(`generated an invalid CA postcode: ${postcode}`)
107
+
108
+ return postcode
109
+ }