@mailwoman/corpus 10.0.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1382) hide show
  1. package/README.md +120 -34
  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 +791 -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 +31 -37
  24. package/lib/adapters/gleif/adapter.ts +829 -0
  25. package/lib/adapters/libpostal-dictionary.ts +37 -0
  26. package/lib/adapters/openaddresses/adapter.ts +52 -55
  27. package/lib/adapters/osm/adapter.ts +162 -83
  28. package/lib/adapters/overture/adapter.ts +52 -43
  29. package/lib/adapters/po-box/adapter.ts +207 -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 +136 -0
  34. package/lib/adapters/wof/admin/json/adapter.ts +50 -35
  35. package/lib/adapters/wof/json-rows.ts +57 -26
  36. package/lib/adapters/wof/postalcode-json/adapter.ts +63 -61
  37. package/lib/adapters.ts +230 -0
  38. package/lib/au/adapters/gnaf/adapter.ts +36 -44
  39. package/lib/au/adapters/gnaf/assemble.ts +31 -51
  40. package/lib/be/adapters/brussels/adapter.ts +566 -0
  41. package/lib/be/adapters/vlaanderen/adapter.ts +667 -0
  42. package/lib/be/adapters/wallonie/adapter.ts +537 -0
  43. package/lib/be/tools/fetch/brussels.ts +242 -0
  44. package/lib/be/tools/fetch/wallonie.ts +275 -0
  45. package/lib/build/adapters.ts +111 -0
  46. package/lib/build/align.ts +365 -0
  47. package/lib/build/checkpoint.ts +133 -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 +234 -0
  53. package/lib/build.ts +127 -315
  54. package/lib/cn/recipes/organizational-units.ts +20 -41
  55. package/lib/cz/adapters/cuzk/adapter.ts +320 -0
  56. package/lib/cz/recipes/pcfirst-preposition.ts +40 -27
  57. package/lib/cz/tools/fetch/cuzk.ts +710 -0
  58. package/lib/de/recipes/locale.ts +69 -59
  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 +323 -0
  62. package/lib/ee/adapters/ads/adapter.ts +240 -0
  63. package/lib/ee/tools/fetch/ads.ts +272 -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 +345 -0
  67. package/lib/es/adapters/gipuzkoa/adapter.ts +256 -0
  68. package/lib/es/adapters/navarra/adapter.ts +290 -0
  69. package/lib/es/cadastre.ts +194 -0
  70. package/lib/es/tools/fetch/bizkaia.ts +752 -0
  71. package/lib/es/tools/fetch/catastro.ts +765 -0
  72. package/lib/es/tools/fetch/gipuzkoa.ts +338 -0
  73. package/lib/es/tools/fetch/navarra.ts +496 -0
  74. package/lib/fi/adapters/ryhti/adapter.ts +319 -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 +600 -0
  78. package/lib/fr/adapters/ban/adapter.ts +87 -59
  79. package/lib/fr/adapters/finess/adapter.ts +619 -0
  80. package/lib/fr/adapters/finess/postal-lines.ts +157 -0
  81. package/lib/fr/adapters/finess/voie-type.ts +201 -0
  82. package/lib/fr/insee-country.ts +62 -0
  83. package/lib/fr/recipes/admin-split.ts +38 -60
  84. package/lib/fr/recipes/bare-street.ts +37 -50
  85. package/lib/fr/recipes/fragment.ts +59 -142
  86. package/lib/fr/recipes/lieudit.ts +111 -73
  87. package/lib/fr/recipes/order.ts +32 -59
  88. package/lib/fr/{adapters/ban/street-decompose.ts → street-decompose.ts} +4 -3
  89. package/lib/fr/tools/fetch/annuaire-education.ts +309 -0
  90. package/lib/fr/tools/fetch/ban.ts +30 -20
  91. package/lib/fr/tools/fetch/finess.ts +353 -0
  92. package/lib/gauntlet-inputs.ts +92 -0
  93. package/lib/index.ts +9 -3
  94. package/lib/inspire/address.ts +465 -0
  95. package/lib/inspire/archive.ts +44 -0
  96. package/lib/inspire/errors.ts +72 -0
  97. package/lib/inspire/stream.ts +265 -0
  98. package/lib/international/recipes/locale.ts +146 -184
  99. package/lib/it/adapters/anac/adapter.ts +527 -0
  100. package/lib/it/tools/fetch/anac.ts +391 -0
  101. package/lib/jp/adapters/wof-admin/adapter.ts +29 -23
  102. package/lib/jp/tools/fetch/houjin.ts +19 -21
  103. package/lib/kr/adapters/juso/label-rows.ts +24 -44
  104. package/lib/kr/adapters/localdata/align.ts +20 -31
  105. package/lib/kr/adapters/localdata/key-index.ts +17 -25
  106. package/lib/kr/adapters/localdata/permit-rows.ts +34 -27
  107. package/lib/kr/tools/fetch/juso.ts +19 -21
  108. package/lib/kr/tools/fetch/localdata.ts +29 -30
  109. package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
  110. package/lib/lu/tools/fetch/bd-adresses.ts +353 -0
  111. package/lib/lv/adapters/varis/adapter.ts +500 -0
  112. package/lib/lv/tools/fetch/varis.ts +215 -0
  113. package/lib/nl/adapters/kadaster/adapter.ts +386 -0
  114. package/lib/nl/recipes/postcode.ts +46 -24
  115. package/lib/nl/tools/fetch/kadaster.ts +302 -0
  116. package/lib/no/adapters/matrikkelen/adapter.ts +188 -0
  117. package/lib/no/recipes/fragment.ts +34 -58
  118. package/lib/no/recipes/street/led.ts +44 -25
  119. package/lib/no/recipes/{street/index.ts → street.ts} +29 -11
  120. package/lib/no/tools/fetch/matrikkelen.ts +531 -0
  121. package/lib/parquet/duckdb.ts +147 -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 +452 -0
  128. package/lib/pl/adapters/emuia/adapter.ts +202 -0
  129. package/lib/pl/tools/fetch/emuia.ts +361 -0
  130. package/lib/recipes/anchor-absorption.ts +30 -19
  131. package/lib/recipes/bare/country.ts +24 -32
  132. package/lib/recipes/bare/postcode/eval.ts +1 -1
  133. package/lib/recipes/bare/postcode.ts +346 -0
  134. package/lib/recipes/boundary-stress.ts +37 -20
  135. package/lib/recipes/country-balanced.ts +66 -86
  136. package/lib/recipes/house-venue.ts +36 -14
  137. package/lib/recipes/intersection.ts +84 -62
  138. package/lib/recipes/po/box/cedex/au-nz.ts +3 -3
  139. package/lib/recipes/po/box/cedex/ca.ts +3 -2
  140. package/lib/recipes/po/box/cedex/fr.ts +4 -3
  141. package/lib/recipes/po/box/cedex/phrases.ts +7 -6
  142. package/lib/recipes/po/box/cedex/recipe.ts +31 -19
  143. package/lib/recipes/po/box/cedex/sources.ts +16 -4
  144. package/lib/recipes/po/box/cedex/us.ts +7 -2
  145. package/lib/recipes/po/{box/index.ts → box.ts} +39 -18
  146. package/lib/recipes/scaffold.ts +267 -158
  147. package/lib/recipes/sources.ts +412 -0
  148. package/lib/recipes/street/affix.ts +54 -154
  149. package/lib/recipes/street/bare.ts +30 -17
  150. package/lib/recipes/street.ts +35 -9
  151. package/lib/recipes/sub/venue/context.ts +32 -23
  152. package/lib/recipes/sub/venue/render.ts +170 -0
  153. package/lib/recipes/sub/venue/sources.ts +92 -248
  154. package/lib/recipes/sub/venue.ts +795 -0
  155. package/lib/recipes/trailing-region.ts +75 -87
  156. package/lib/recipes/unit/sources.ts +44 -0
  157. package/lib/recipes/unit.ts +101 -89
  158. package/lib/recipes/venue.ts +347 -0
  159. package/lib/{recipes/index.ts → recipes.ts} +15 -11
  160. package/lib/registers.ts +280 -0
  161. package/lib/ro/adapters/retea-scolara/adapter.ts +264 -0
  162. package/lib/ro/tools/fetch/retea-scolara.ts +187 -0
  163. package/lib/runner.ts +221 -84
  164. package/lib/sg/recipes/register.ts +47 -53
  165. package/lib/sg/tools/fetch/acra.ts +23 -28
  166. package/lib/si/recipes/bare-village.ts +34 -17
  167. package/lib/sk/adapters/inspire/adapter.ts +393 -0
  168. package/lib/sk/tools/fetch/inspire.ts +403 -0
  169. package/lib/source-register/effective-manifest.ts +659 -0
  170. package/lib/source-register/register.ts +539 -0
  171. package/lib/source-register/training-manifest.ts +218 -0
  172. package/lib/source-register/types.ts +589 -0
  173. package/lib/source-register.ts +71 -0
  174. package/lib/south-asia/recipes/register.ts +45 -26
  175. package/lib/subvenue/harvest.ts +251 -0
  176. package/lib/{tools/sub/venue → subvenue}/promotions.ts +33 -70
  177. package/lib/subvenue/surfaces.ts +94 -0
  178. package/lib/subvenue/table.ts +264 -0
  179. package/lib/surfaces/locale.ts +248 -0
  180. package/lib/synthesizers/anchor-absorption.ts +56 -91
  181. package/lib/synthesizers/boundary-stress.ts +67 -155
  182. package/lib/synthesizers/house-venue.ts +65 -127
  183. package/lib/synthesizers/no-street.ts +71 -119
  184. package/lib/synthesizers/po-box.ts +93 -105
  185. package/lib/synthesizers/tail.ts +55 -0
  186. package/lib/synthesizers/utils.ts +82 -219
  187. package/lib/test-kit/corpus-recipe.ts +45 -28
  188. package/lib/test-kit.ts +116 -0
  189. package/lib/tools/align-canonical.ts +64 -0
  190. package/lib/tools/audit.ts +117 -120
  191. package/lib/tools/corpus-stats.ts +45 -31
  192. package/lib/tools/fetch/atom.ts +164 -0
  193. package/lib/tools/fetch/cordis.ts +320 -0
  194. package/lib/tools/fetch/download/manifest.ts +36 -23
  195. package/lib/tools/fetch/download/network.ts +55 -31
  196. package/lib/tools/fetch/download/retry.ts +30 -29
  197. package/lib/tools/fetch/geonames/dump.ts +75 -55
  198. package/lib/tools/fetch/geonames/postal.ts +27 -62
  199. package/lib/tools/fetch/gleif.ts +362 -0
  200. package/lib/tools/fetch/header.ts +71 -0
  201. package/lib/tools/fetch/inspire-addresses.ts +500 -0
  202. package/lib/tools/fetch/openaddresses.ts +23 -112
  203. package/lib/tools/fetch/ourairports.ts +18 -51
  204. package/lib/tools/fetch/ppd.ts +10 -8
  205. package/lib/tools/fetch/vlaanderen-ad.ts +435 -0
  206. package/lib/tools/fetch/wfs-harvest.ts +954 -0
  207. package/lib/tools/fetch/wikidata-subvenue.ts +45 -145
  208. package/lib/tools/fetch/zip-archive.ts +100 -0
  209. package/lib/tools/fetch.ts +101 -0
  210. package/lib/tools/golden/expand.ts +75 -44
  211. package/lib/tools/golden/promote.ts +47 -34
  212. package/lib/tools/golden/relabel-street/directory.ts +67 -39
  213. package/lib/tools/golden/relabel-street/row.ts +32 -109
  214. package/lib/tools/ingest-csv.ts +48 -51
  215. package/lib/tools/jsonl-to-parquet.ts +59 -98
  216. package/lib/tools/lint/recipe-output/vocab.ts +371 -0
  217. package/lib/tools/lint/{slice/index.ts → recipe-output.ts} +130 -126
  218. package/lib/tools/migrate/overlay-parquet.ts +173 -0
  219. package/lib/tools/migrate/recipe-output.ts +153 -0
  220. package/lib/tools/migrate/source-names.ts +161 -0
  221. package/lib/tools/{slice → overlay}/kryptonite.ts +47 -39
  222. package/lib/tools/overlay/manifest.ts +409 -0
  223. package/lib/tools/overlay/merge-source.ts +139 -0
  224. package/lib/tools/overlay/split-slice.ts +144 -0
  225. package/lib/tools/overlay/translit.ts +236 -0
  226. package/lib/tools/overture-subvenue.ts +18 -91
  227. package/lib/tools/postcode-triples.ts +284 -212
  228. package/lib/tools/source-register/build.ts +822 -0
  229. package/lib/tools/sub/venue/head-nouns.ts +38 -75
  230. package/lib/tools/sub/venue/lexicon.ts +71 -110
  231. package/lib/tools/sub/venue/wikidata.ts +13 -10
  232. package/lib/tw/tools/fetch/gcis.ts +21 -20
  233. package/lib/types.ts +305 -101
  234. package/lib/us/adapters/fcc-bdc/adapter.ts +26 -41
  235. package/lib/us/adapters/state/hi-schools/adapter.ts +28 -17
  236. package/lib/us/adapters/state/hi-schools/workbook.ts +8 -3
  237. package/lib/us/adapters/state/ia-contractors/adapter.ts +27 -15
  238. package/lib/us/adapters/state/ny-notaries/adapter.ts +24 -25
  239. package/lib/us/adapters/state/tx-notaries/adapter.ts +21 -15
  240. package/lib/us/adapters/tiger/adapter.ts +19 -44
  241. package/lib/us/adapters/tiger/street-decompose.ts +7 -17
  242. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +49 -34
  243. package/lib/us/adapters/usgov/imls-pls/adapter.ts +25 -19
  244. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +32 -23
  245. package/lib/us/adapters/usgov/nad/adapter.ts +61 -122
  246. package/lib/us/adapters/usgov/nppes/adapter.ts +72 -35
  247. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +47 -34
  248. package/lib/us/fips-state.ts +19 -10
  249. package/lib/{synthesizers → us/synthesizers}/intersection.ts +45 -35
  250. package/lib/{synthesizers → us/synthesizers}/street.ts +56 -43
  251. package/lib/us/tools/fetch/hrsa.ts +7 -8
  252. package/lib/us/tools/fetch/imls-pls.ts +18 -36
  253. package/lib/us/tools/fetch/nad.ts +51 -33
  254. package/lib/us/tools/fetch/nppes.ts +27 -39
  255. package/lib/us/tools/fetch/state/hi-schools.ts +24 -17
  256. package/lib/us/tools/fetch/state/sources.ts +12 -12
  257. package/lib/us/tools/fetch/tiger-full.ts +22 -74
  258. package/lib/utils/align.ts +52 -59
  259. package/lib/utils/{slice-stats.ts → cooccurrence-stats.ts} +22 -16
  260. package/lib/utils/golden.ts +36 -51
  261. package/lib/utils/license.ts +239 -27
  262. package/lib/utils/split.ts +209 -88
  263. package/lib/utils/tokenize.ts +25 -56
  264. package/lib/utils/wof-json.ts +130 -77
  265. package/lib/{utils/index.ts → utils.ts} +0 -1
  266. package/lib/ve/recipes/reviewed-postcode-tail.ts +40 -13
  267. package/out/adapters/cordis/adapter.d.ts +326 -0
  268. package/out/adapters/cordis/adapter.d.ts.map +1 -0
  269. package/out/adapters/cordis/adapter.js +622 -0
  270. package/out/adapters/cordis/adapter.js.map +1 -0
  271. package/out/adapters/dedup-key.d.ts +30 -0
  272. package/out/adapters/dedup-key.d.ts.map +1 -0
  273. package/out/adapters/dedup-key.js +35 -0
  274. package/out/adapters/dedup-key.js.map +1 -0
  275. package/out/adapters/errors.d.ts +17 -0
  276. package/out/adapters/errors.d.ts.map +1 -0
  277. package/out/adapters/errors.js +20 -0
  278. package/out/adapters/errors.js.map +1 -0
  279. package/out/adapters/geonames/adapter.d.ts +26 -28
  280. package/out/adapters/geonames/adapter.d.ts.map +1 -1
  281. package/out/adapters/geonames/adapter.js +40 -50
  282. package/out/adapters/geonames/adapter.js.map +1 -1
  283. package/out/adapters/geonames/postal/adapter.d.ts +14 -27
  284. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -1
  285. package/out/adapters/geonames/postal/adapter.js +30 -35
  286. package/out/adapters/geonames/postal/adapter.js.map +1 -1
  287. package/out/adapters/gleif/adapter.d.ts +293 -0
  288. package/out/adapters/gleif/adapter.d.ts.map +1 -0
  289. package/out/adapters/gleif/adapter.js +685 -0
  290. package/out/adapters/gleif/adapter.js.map +1 -0
  291. package/out/adapters/libpostal-dictionary.d.ts +20 -0
  292. package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
  293. package/out/adapters/libpostal-dictionary.js +34 -0
  294. package/out/adapters/libpostal-dictionary.js.map +1 -0
  295. package/out/adapters/openaddresses/adapter.d.ts +29 -43
  296. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  297. package/out/adapters/openaddresses/adapter.js +34 -46
  298. package/out/adapters/openaddresses/adapter.js.map +1 -1
  299. package/out/adapters/osm/adapter.d.ts +59 -52
  300. package/out/adapters/osm/adapter.d.ts.map +1 -1
  301. package/out/adapters/osm/adapter.js +119 -69
  302. package/out/adapters/osm/adapter.js.map +1 -1
  303. package/out/adapters/overture/adapter.d.ts +11 -37
  304. package/out/adapters/overture/adapter.d.ts.map +1 -1
  305. package/out/adapters/overture/adapter.js +45 -42
  306. package/out/adapters/overture/adapter.js.map +1 -1
  307. package/out/adapters/po-box/adapter.d.ts +66 -0
  308. package/out/adapters/po-box/adapter.d.ts.map +1 -0
  309. package/out/adapters/{synth-po-box → po-box}/adapter.js +48 -47
  310. package/out/adapters/po-box/adapter.js.map +1 -0
  311. package/out/adapters/registry.d.ts +55 -0
  312. package/out/adapters/registry.d.ts.map +1 -0
  313. package/out/adapters/registry.js +43 -0
  314. package/out/adapters/registry.js.map +1 -0
  315. package/out/adapters/sha256-stream.d.ts +26 -0
  316. package/out/adapters/sha256-stream.d.ts.map +1 -0
  317. package/out/adapters/sha256-stream.js +34 -0
  318. package/out/adapters/sha256-stream.js.map +1 -0
  319. package/out/adapters/source-id.d.ts +33 -0
  320. package/out/adapters/source-id.d.ts.map +1 -0
  321. package/out/adapters/source-id.js +42 -0
  322. package/out/adapters/source-id.js.map +1 -0
  323. package/out/adapters/street-line.d.ts +103 -0
  324. package/out/adapters/street-line.d.ts.map +1 -0
  325. package/out/adapters/street-line.js +118 -0
  326. package/out/adapters/street-line.js.map +1 -0
  327. package/out/adapters/wof/admin/json/adapter.d.ts +27 -18
  328. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -1
  329. package/out/adapters/wof/admin/json/adapter.js +48 -32
  330. package/out/adapters/wof/admin/json/adapter.js.map +1 -1
  331. package/out/adapters/wof/json-rows.d.ts +36 -19
  332. package/out/adapters/wof/json-rows.d.ts.map +1 -1
  333. package/out/adapters/wof/json-rows.js +35 -15
  334. package/out/adapters/wof/json-rows.js.map +1 -1
  335. package/out/adapters/wof/postalcode-json/adapter.d.ts +22 -38
  336. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -1
  337. package/out/adapters/wof/postalcode-json/adapter.js +60 -58
  338. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -1
  339. package/out/adapters.d.ts +75 -0
  340. package/out/adapters.d.ts.map +1 -0
  341. package/out/adapters.js +167 -0
  342. package/out/adapters.js.map +1 -0
  343. package/out/au/adapters/gnaf/adapter.d.ts +15 -27
  344. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -1
  345. package/out/au/adapters/gnaf/adapter.js +35 -43
  346. package/out/au/adapters/gnaf/adapter.js.map +1 -1
  347. package/out/au/adapters/gnaf/assemble.d.ts +15 -26
  348. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -1
  349. package/out/au/adapters/gnaf/assemble.js +26 -46
  350. package/out/au/adapters/gnaf/assemble.js.map +1 -1
  351. package/out/be/adapters/brussels/adapter.d.ts +212 -0
  352. package/out/be/adapters/brussels/adapter.d.ts.map +1 -0
  353. package/out/be/adapters/brussels/adapter.js +435 -0
  354. package/out/be/adapters/brussels/adapter.js.map +1 -0
  355. package/out/be/adapters/vlaanderen/adapter.d.ts +230 -0
  356. package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
  357. package/out/be/adapters/vlaanderen/adapter.js +418 -0
  358. package/out/be/adapters/vlaanderen/adapter.js.map +1 -0
  359. package/out/be/adapters/wallonie/adapter.d.ts +196 -0
  360. package/out/be/adapters/wallonie/adapter.d.ts.map +1 -0
  361. package/out/be/adapters/wallonie/adapter.js +437 -0
  362. package/out/be/adapters/wallonie/adapter.js.map +1 -0
  363. package/out/be/tools/fetch/brussels.d.ts +122 -0
  364. package/out/be/tools/fetch/brussels.d.ts.map +1 -0
  365. package/out/be/tools/fetch/brussels.js +148 -0
  366. package/out/be/tools/fetch/brussels.js.map +1 -0
  367. package/out/be/tools/fetch/wallonie.d.ts +120 -0
  368. package/out/be/tools/fetch/wallonie.d.ts.map +1 -0
  369. package/out/be/tools/fetch/wallonie.js +167 -0
  370. package/out/be/tools/fetch/wallonie.js.map +1 -0
  371. package/out/build/adapters.d.ts +33 -0
  372. package/out/build/adapters.d.ts.map +1 -0
  373. package/out/build/adapters.js +69 -0
  374. package/out/build/adapters.js.map +1 -0
  375. package/out/build/align.d.ts +74 -0
  376. package/out/build/align.d.ts.map +1 -0
  377. package/out/build/align.js +226 -0
  378. package/out/build/align.js.map +1 -0
  379. package/out/build/checkpoint.d.ts +94 -0
  380. package/out/build/checkpoint.d.ts.map +1 -0
  381. package/out/build/checkpoint.js +61 -0
  382. package/out/build/checkpoint.js.map +1 -0
  383. package/out/build/eligibility.d.ts +47 -0
  384. package/out/build/eligibility.d.ts.map +1 -0
  385. package/out/build/eligibility.js +80 -0
  386. package/out/build/eligibility.js.map +1 -0
  387. package/out/build/heap.d.ts +28 -0
  388. package/out/build/heap.d.ts.map +1 -0
  389. package/out/build/heap.js +47 -0
  390. package/out/build/heap.js.map +1 -0
  391. package/out/build/inputs.d.ts +52 -0
  392. package/out/build/inputs.d.ts.map +1 -0
  393. package/out/build/inputs.js +49 -0
  394. package/out/build/inputs.js.map +1 -0
  395. package/out/build/rows.d.ts +16 -0
  396. package/out/build/rows.d.ts.map +1 -0
  397. package/out/build/rows.js +19 -0
  398. package/out/build/rows.js.map +1 -0
  399. package/out/build/types.d.ts +222 -0
  400. package/out/build/types.d.ts.map +1 -0
  401. package/out/build/types.js +34 -0
  402. package/out/build/types.js.map +1 -0
  403. package/out/build.d.ts +6 -121
  404. package/out/build.d.ts.map +1 -1
  405. package/out/build.js +112 -207
  406. package/out/build.js.map +1 -1
  407. package/out/cn/recipes/organizational-units.d.ts +5 -22
  408. package/out/cn/recipes/organizational-units.d.ts.map +1 -1
  409. package/out/cn/recipes/organizational-units.js +20 -41
  410. package/out/cn/recipes/organizational-units.js.map +1 -1
  411. package/out/cz/adapters/cuzk/adapter.d.ts +52 -0
  412. package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -0
  413. package/out/cz/adapters/cuzk/adapter.js +269 -0
  414. package/out/cz/adapters/cuzk/adapter.js.map +1 -0
  415. package/out/cz/recipes/pcfirst-preposition.d.ts +7 -11
  416. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -1
  417. package/out/cz/recipes/pcfirst-preposition.js +36 -27
  418. package/out/cz/recipes/pcfirst-preposition.js.map +1 -1
  419. package/out/cz/tools/fetch/cuzk.d.ts +281 -0
  420. package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
  421. package/out/cz/tools/fetch/cuzk.js +448 -0
  422. package/out/cz/tools/fetch/cuzk.js.map +1 -0
  423. package/out/de/recipes/locale.d.ts +24 -26
  424. package/out/de/recipes/locale.d.ts.map +1 -1
  425. package/out/de/recipes/locale.js +67 -57
  426. package/out/de/recipes/locale.js.map +1 -1
  427. package/out/directory.d.ts +20 -0
  428. package/out/directory.d.ts.map +1 -0
  429. package/out/directory.js +27 -0
  430. package/out/directory.js.map +1 -0
  431. package/out/dk/adapters/inspire/adapter.d.ts +153 -0
  432. package/out/dk/adapters/inspire/adapter.d.ts.map +1 -0
  433. package/out/dk/adapters/inspire/adapter.js +258 -0
  434. package/out/dk/adapters/inspire/adapter.js.map +1 -0
  435. package/out/dk/tools/fetch/inspire.d.ts +101 -0
  436. package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
  437. package/out/dk/tools/fetch/inspire.js +232 -0
  438. package/out/dk/tools/fetch/inspire.js.map +1 -0
  439. package/out/ee/adapters/ads/adapter.d.ts +102 -0
  440. package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
  441. package/out/ee/adapters/ads/adapter.js +185 -0
  442. package/out/ee/adapters/ads/adapter.js.map +1 -0
  443. package/out/ee/tools/fetch/ads.d.ts +123 -0
  444. package/out/ee/tools/fetch/ads.d.ts.map +1 -0
  445. package/out/ee/tools/fetch/ads.js +197 -0
  446. package/out/ee/tools/fetch/ads.js.map +1 -0
  447. package/out/env.d.ts +6 -2
  448. package/out/env.d.ts.map +1 -1
  449. package/out/env.js +6 -2
  450. package/out/env.js.map +1 -1
  451. package/out/es/adapters/bizkaia/adapter.d.ts +143 -0
  452. package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -0
  453. package/out/es/adapters/bizkaia/adapter.js +332 -0
  454. package/out/es/adapters/bizkaia/adapter.js.map +1 -0
  455. package/out/es/adapters/catastro/adapter.d.ts +103 -0
  456. package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
  457. package/out/es/adapters/catastro/adapter.js +290 -0
  458. package/out/es/adapters/catastro/adapter.js.map +1 -0
  459. package/out/es/adapters/gipuzkoa/adapter.d.ts +84 -0
  460. package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
  461. package/out/es/adapters/gipuzkoa/adapter.js +218 -0
  462. package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
  463. package/out/es/adapters/navarra/adapter.d.ts +106 -0
  464. package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
  465. package/out/es/adapters/navarra/adapter.js +242 -0
  466. package/out/es/adapters/navarra/adapter.js.map +1 -0
  467. package/out/es/cadastre.d.ts +110 -0
  468. package/out/es/cadastre.d.ts.map +1 -0
  469. package/out/es/cadastre.js +128 -0
  470. package/out/es/cadastre.js.map +1 -0
  471. package/out/es/tools/fetch/bizkaia.d.ts +281 -0
  472. package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
  473. package/out/es/tools/fetch/bizkaia.js +478 -0
  474. package/out/es/tools/fetch/bizkaia.js.map +1 -0
  475. package/out/es/tools/fetch/catastro.d.ts +280 -0
  476. package/out/es/tools/fetch/catastro.d.ts.map +1 -0
  477. package/out/es/tools/fetch/catastro.js +491 -0
  478. package/out/es/tools/fetch/catastro.js.map +1 -0
  479. package/out/es/tools/fetch/gipuzkoa.d.ts +164 -0
  480. package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
  481. package/out/es/tools/fetch/gipuzkoa.js +210 -0
  482. package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
  483. package/out/es/tools/fetch/navarra.d.ts +194 -0
  484. package/out/es/tools/fetch/navarra.d.ts.map +1 -0
  485. package/out/es/tools/fetch/navarra.js +321 -0
  486. package/out/es/tools/fetch/navarra.js.map +1 -0
  487. package/out/fi/adapters/ryhti/adapter.d.ts +111 -0
  488. package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
  489. package/out/fi/adapters/ryhti/adapter.js +240 -0
  490. package/out/fi/adapters/ryhti/adapter.js.map +1 -0
  491. package/out/fi/tools/fetch/ryhti.d.ts +206 -0
  492. package/out/fi/tools/fetch/ryhti.d.ts.map +1 -0
  493. package/out/fi/tools/fetch/ryhti.js +324 -0
  494. package/out/fi/tools/fetch/ryhti.js.map +1 -0
  495. package/out/fingerprints.d.ts +68 -0
  496. package/out/fingerprints.d.ts.map +1 -0
  497. package/out/fingerprints.js +130 -0
  498. package/out/fingerprints.js.map +1 -0
  499. package/out/fr/adapters/annuaire-education/adapter.d.ts +236 -0
  500. package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -0
  501. package/out/fr/adapters/annuaire-education/adapter.js +477 -0
  502. package/out/fr/adapters/annuaire-education/adapter.js.map +1 -0
  503. package/out/fr/adapters/ban/adapter.d.ts +19 -25
  504. package/out/fr/adapters/ban/adapter.d.ts.map +1 -1
  505. package/out/fr/adapters/ban/adapter.js +65 -54
  506. package/out/fr/adapters/ban/adapter.js.map +1 -1
  507. package/out/fr/adapters/finess/adapter.d.ts +277 -0
  508. package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
  509. package/out/fr/adapters/finess/adapter.js +520 -0
  510. package/out/fr/adapters/finess/adapter.js.map +1 -0
  511. package/out/fr/adapters/finess/postal-lines.d.ts +61 -0
  512. package/out/fr/adapters/finess/postal-lines.d.ts.map +1 -0
  513. package/out/fr/adapters/finess/postal-lines.js +114 -0
  514. package/out/fr/adapters/finess/postal-lines.js.map +1 -0
  515. package/out/fr/adapters/finess/voie-type.d.ts +77 -0
  516. package/out/fr/adapters/finess/voie-type.d.ts.map +1 -0
  517. package/out/fr/adapters/finess/voie-type.js +173 -0
  518. package/out/fr/adapters/finess/voie-type.js.map +1 -0
  519. package/out/fr/insee-country.d.ts +45 -0
  520. package/out/fr/insee-country.d.ts.map +1 -0
  521. package/out/fr/insee-country.js +60 -0
  522. package/out/fr/insee-country.js.map +1 -0
  523. package/out/fr/recipes/admin-split.d.ts +4 -27
  524. package/out/fr/recipes/admin-split.d.ts.map +1 -1
  525. package/out/fr/recipes/admin-split.js +36 -58
  526. package/out/fr/recipes/admin-split.js.map +1 -1
  527. package/out/fr/recipes/bare-street.d.ts +2 -17
  528. package/out/fr/recipes/bare-street.d.ts.map +1 -1
  529. package/out/fr/recipes/bare-street.js +35 -50
  530. package/out/fr/recipes/bare-street.js.map +1 -1
  531. package/out/fr/recipes/fragment.d.ts +6 -65
  532. package/out/fr/recipes/fragment.d.ts.map +1 -1
  533. package/out/fr/recipes/fragment.js +55 -135
  534. package/out/fr/recipes/fragment.js.map +1 -1
  535. package/out/fr/recipes/lieudit.d.ts +17 -19
  536. package/out/fr/recipes/lieudit.d.ts.map +1 -1
  537. package/out/fr/recipes/lieudit.js +89 -68
  538. package/out/fr/recipes/lieudit.js.map +1 -1
  539. package/out/fr/recipes/order.d.ts +4 -27
  540. package/out/fr/recipes/order.d.ts.map +1 -1
  541. package/out/fr/recipes/order.js +31 -58
  542. package/out/fr/recipes/order.js.map +1 -1
  543. package/out/fr/{adapters/ban/street-decompose.d.ts → street-decompose.d.ts} +3 -2
  544. package/out/fr/street-decompose.d.ts.map +1 -0
  545. package/out/fr/{adapters/ban/street-decompose.js → street-decompose.js} +4 -3
  546. package/out/fr/street-decompose.js.map +1 -0
  547. package/out/fr/tools/fetch/annuaire-education.d.ts +133 -0
  548. package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
  549. package/out/fr/tools/fetch/annuaire-education.js +198 -0
  550. package/out/fr/tools/fetch/annuaire-education.js.map +1 -0
  551. package/out/fr/tools/fetch/ban.d.ts +9 -7
  552. package/out/fr/tools/fetch/ban.d.ts.map +1 -1
  553. package/out/fr/tools/fetch/ban.js +29 -19
  554. package/out/fr/tools/fetch/ban.js.map +1 -1
  555. package/out/fr/tools/fetch/finess.d.ts +145 -0
  556. package/out/fr/tools/fetch/finess.d.ts.map +1 -0
  557. package/out/fr/tools/fetch/finess.js +229 -0
  558. package/out/fr/tools/fetch/finess.js.map +1 -0
  559. package/out/gauntlet-inputs.d.ts +42 -0
  560. package/out/gauntlet-inputs.d.ts.map +1 -0
  561. package/out/gauntlet-inputs.js +78 -0
  562. package/out/gauntlet-inputs.js.map +1 -0
  563. package/out/index.d.ts +9 -3
  564. package/out/index.d.ts.map +1 -1
  565. package/out/index.js +9 -3
  566. package/out/index.js.map +1 -1
  567. package/out/inspire/address.d.ts +261 -0
  568. package/out/inspire/address.d.ts.map +1 -0
  569. package/out/inspire/address.js +395 -0
  570. package/out/inspire/address.js.map +1 -0
  571. package/out/inspire/archive.d.ts +36 -0
  572. package/out/inspire/archive.d.ts.map +1 -0
  573. package/out/inspire/archive.js +42 -0
  574. package/out/inspire/archive.js.map +1 -0
  575. package/out/inspire/errors.d.ts +56 -0
  576. package/out/inspire/errors.d.ts.map +1 -0
  577. package/out/inspire/errors.js +65 -0
  578. package/out/inspire/errors.js.map +1 -0
  579. package/out/inspire/stream.d.ts +140 -0
  580. package/out/inspire/stream.d.ts.map +1 -0
  581. package/out/inspire/stream.js +123 -0
  582. package/out/inspire/stream.js.map +1 -0
  583. package/out/international/recipes/locale.d.ts +40 -86
  584. package/out/international/recipes/locale.d.ts.map +1 -1
  585. package/out/international/recipes/locale.js +122 -157
  586. package/out/international/recipes/locale.js.map +1 -1
  587. package/out/it/adapters/anac/adapter.d.ts +269 -0
  588. package/out/it/adapters/anac/adapter.d.ts.map +1 -0
  589. package/out/it/adapters/anac/adapter.js +434 -0
  590. package/out/it/adapters/anac/adapter.js.map +1 -0
  591. package/out/it/tools/fetch/anac.d.ts +171 -0
  592. package/out/it/tools/fetch/anac.d.ts.map +1 -0
  593. package/out/it/tools/fetch/anac.js +269 -0
  594. package/out/it/tools/fetch/anac.js.map +1 -0
  595. package/out/jp/adapters/wof-admin/adapter.d.ts +14 -11
  596. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -1
  597. package/out/jp/adapters/wof-admin/adapter.js +27 -16
  598. package/out/jp/adapters/wof-admin/adapter.js.map +1 -1
  599. package/out/jp/tools/fetch/houjin.d.ts +7 -4
  600. package/out/jp/tools/fetch/houjin.d.ts.map +1 -1
  601. package/out/jp/tools/fetch/houjin.js +17 -13
  602. package/out/jp/tools/fetch/houjin.js.map +1 -1
  603. package/out/kr/adapters/juso/label-rows.d.ts +17 -31
  604. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -1
  605. package/out/kr/adapters/juso/label-rows.js +19 -41
  606. package/out/kr/adapters/juso/label-rows.js.map +1 -1
  607. package/out/kr/adapters/localdata/align.d.ts +4 -16
  608. package/out/kr/adapters/localdata/align.d.ts.map +1 -1
  609. package/out/kr/adapters/localdata/align.js +19 -30
  610. package/out/kr/adapters/localdata/align.js.map +1 -1
  611. package/out/kr/adapters/localdata/key-index.d.ts +13 -22
  612. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
  613. package/out/kr/adapters/localdata/key-index.js +15 -21
  614. package/out/kr/adapters/localdata/key-index.js.map +1 -1
  615. package/out/kr/adapters/localdata/permit-rows.d.ts +21 -14
  616. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -1
  617. package/out/kr/adapters/localdata/permit-rows.js +31 -26
  618. package/out/kr/adapters/localdata/permit-rows.js.map +1 -1
  619. package/out/kr/tools/fetch/juso.d.ts +11 -8
  620. package/out/kr/tools/fetch/juso.d.ts.map +1 -1
  621. package/out/kr/tools/fetch/juso.js +15 -14
  622. package/out/kr/tools/fetch/juso.js.map +1 -1
  623. package/out/kr/tools/fetch/localdata.d.ts +16 -9
  624. package/out/kr/tools/fetch/localdata.d.ts.map +1 -1
  625. package/out/kr/tools/fetch/localdata.js +24 -16
  626. package/out/kr/tools/fetch/localdata.js.map +1 -1
  627. package/out/lu/adapters/bd-adresses/adapter.d.ts +109 -0
  628. package/out/lu/adapters/bd-adresses/adapter.d.ts.map +1 -0
  629. package/out/lu/adapters/bd-adresses/adapter.js +196 -0
  630. package/out/lu/adapters/bd-adresses/adapter.js.map +1 -0
  631. package/out/lu/tools/fetch/bd-adresses.d.ts +165 -0
  632. package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -0
  633. package/out/lu/tools/fetch/bd-adresses.js +223 -0
  634. package/out/lu/tools/fetch/bd-adresses.js.map +1 -0
  635. package/out/lv/adapters/varis/adapter.d.ts +284 -0
  636. package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
  637. package/out/lv/adapters/varis/adapter.js +405 -0
  638. package/out/lv/adapters/varis/adapter.js.map +1 -0
  639. package/out/lv/tools/fetch/varis.d.ts +81 -0
  640. package/out/lv/tools/fetch/varis.d.ts.map +1 -0
  641. package/out/lv/tools/fetch/varis.js +133 -0
  642. package/out/lv/tools/fetch/varis.js.map +1 -0
  643. package/out/nl/adapters/kadaster/adapter.d.ts +125 -0
  644. package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -0
  645. package/out/nl/adapters/kadaster/adapter.js +309 -0
  646. package/out/nl/adapters/kadaster/adapter.js.map +1 -0
  647. package/out/nl/recipes/postcode.d.ts +12 -14
  648. package/out/nl/recipes/postcode.d.ts.map +1 -1
  649. package/out/nl/recipes/postcode.js +42 -24
  650. package/out/nl/recipes/postcode.js.map +1 -1
  651. package/out/nl/tools/fetch/kadaster.d.ts +159 -0
  652. package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
  653. package/out/nl/tools/fetch/kadaster.js +182 -0
  654. package/out/nl/tools/fetch/kadaster.js.map +1 -0
  655. package/out/no/adapters/matrikkelen/adapter.d.ts +44 -0
  656. package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -0
  657. package/out/no/adapters/matrikkelen/adapter.js +143 -0
  658. package/out/no/adapters/matrikkelen/adapter.js.map +1 -0
  659. package/out/no/recipes/fragment.d.ts +1 -33
  660. package/out/no/recipes/fragment.d.ts.map +1 -1
  661. package/out/no/recipes/fragment.js +23 -57
  662. package/out/no/recipes/fragment.js.map +1 -1
  663. package/out/no/recipes/street/led.d.ts +9 -12
  664. package/out/no/recipes/street/led.d.ts.map +1 -1
  665. package/out/no/recipes/street/led.js +34 -24
  666. package/out/no/recipes/street/led.js.map +1 -1
  667. package/out/no/recipes/street.d.ts +19 -0
  668. package/out/no/recipes/street.d.ts.map +1 -0
  669. package/out/no/recipes/{street/index.js → street.js} +28 -12
  670. package/out/no/recipes/street.js.map +1 -0
  671. package/out/no/tools/fetch/matrikkelen.d.ts +263 -0
  672. package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
  673. package/out/no/tools/fetch/matrikkelen.js +353 -0
  674. package/out/no/tools/fetch/matrikkelen.js.map +1 -0
  675. package/out/parquet/duckdb.d.ts +103 -0
  676. package/out/parquet/duckdb.d.ts.map +1 -0
  677. package/out/parquet/duckdb.js +93 -0
  678. package/out/parquet/duckdb.js.map +1 -0
  679. package/out/parquet/readers.d.ts +44 -0
  680. package/out/parquet/readers.d.ts.map +1 -0
  681. package/out/parquet/readers.js +69 -0
  682. package/out/parquet/readers.js.map +1 -0
  683. package/out/parquet/schema.d.ts +95 -0
  684. package/out/parquet/schema.d.ts.map +1 -0
  685. package/out/parquet/schema.js +157 -0
  686. package/out/parquet/schema.js.map +1 -0
  687. package/out/parquet/shuffle.d.ts +25 -0
  688. package/out/parquet/shuffle.d.ts.map +1 -0
  689. package/out/parquet/shuffle.js +44 -0
  690. package/out/parquet/shuffle.js.map +1 -0
  691. package/out/parquet/span-sql.d.ts +49 -0
  692. package/out/parquet/span-sql.d.ts.map +1 -0
  693. package/out/parquet/span-sql.js +53 -0
  694. package/out/parquet/span-sql.js.map +1 -0
  695. package/out/parquet/streams.d.ts +47 -0
  696. package/out/parquet/streams.d.ts.map +1 -0
  697. package/out/parquet/streams.js +78 -0
  698. package/out/parquet/streams.js.map +1 -0
  699. package/out/parquet/writers.d.ts +124 -0
  700. package/out/parquet/writers.d.ts.map +1 -0
  701. package/out/parquet/writers.js +252 -0
  702. package/out/parquet/writers.js.map +1 -0
  703. package/out/pl/adapters/emuia/adapter.d.ts +81 -0
  704. package/out/pl/adapters/emuia/adapter.d.ts.map +1 -0
  705. package/out/pl/adapters/emuia/adapter.js +178 -0
  706. package/out/pl/adapters/emuia/adapter.js.map +1 -0
  707. package/out/pl/tools/fetch/emuia.d.ts +166 -0
  708. package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
  709. package/out/pl/tools/fetch/emuia.js +261 -0
  710. package/out/pl/tools/fetch/emuia.js.map +1 -0
  711. package/out/recipes/anchor-absorption.d.ts +9 -9
  712. package/out/recipes/anchor-absorption.d.ts.map +1 -1
  713. package/out/recipes/anchor-absorption.js +29 -19
  714. package/out/recipes/anchor-absorption.js.map +1 -1
  715. package/out/recipes/bare/country.d.ts +2 -20
  716. package/out/recipes/bare/country.d.ts.map +1 -1
  717. package/out/recipes/bare/country.js +20 -31
  718. package/out/recipes/bare/country.js.map +1 -1
  719. package/out/recipes/bare/postcode/eval.d.ts +1 -1
  720. package/out/recipes/bare/postcode/eval.js +1 -1
  721. package/out/recipes/bare/postcode.d.ts +41 -0
  722. package/out/recipes/bare/postcode.d.ts.map +1 -0
  723. package/out/recipes/bare/{postcode/index.js → postcode.js} +92 -80
  724. package/out/recipes/bare/postcode.js.map +1 -0
  725. package/out/recipes/boundary-stress.d.ts +8 -8
  726. package/out/recipes/boundary-stress.d.ts.map +1 -1
  727. package/out/recipes/boundary-stress.js +37 -20
  728. package/out/recipes/boundary-stress.js.map +1 -1
  729. package/out/recipes/country-balanced.d.ts +3 -21
  730. package/out/recipes/country-balanced.d.ts.map +1 -1
  731. package/out/recipes/country-balanced.js +58 -76
  732. package/out/recipes/country-balanced.js.map +1 -1
  733. package/out/recipes/house-venue.d.ts +8 -6
  734. package/out/recipes/house-venue.d.ts.map +1 -1
  735. package/out/recipes/house-venue.js +33 -14
  736. package/out/recipes/house-venue.js.map +1 -1
  737. package/out/recipes/intersection.d.ts +20 -20
  738. package/out/recipes/intersection.d.ts.map +1 -1
  739. package/out/recipes/intersection.js +67 -55
  740. package/out/recipes/intersection.js.map +1 -1
  741. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -1
  742. package/out/recipes/po/box/cedex/au-nz.js +3 -3
  743. package/out/recipes/po/box/cedex/au-nz.js.map +1 -1
  744. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -1
  745. package/out/recipes/po/box/cedex/ca.js +2 -2
  746. package/out/recipes/po/box/cedex/ca.js.map +1 -1
  747. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -1
  748. package/out/recipes/po/box/cedex/fr.js +3 -3
  749. package/out/recipes/po/box/cedex/fr.js.map +1 -1
  750. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -1
  751. package/out/recipes/po/box/cedex/phrases.js +7 -6
  752. package/out/recipes/po/box/cedex/phrases.js.map +1 -1
  753. package/out/recipes/po/box/cedex/recipe.d.ts +1 -1
  754. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -1
  755. package/out/recipes/po/box/cedex/recipe.js +27 -16
  756. package/out/recipes/po/box/cedex/recipe.js.map +1 -1
  757. package/out/recipes/po/box/cedex/sources.d.ts +20 -14
  758. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
  759. package/out/recipes/po/box/cedex/sources.js +2 -2
  760. package/out/recipes/po/box/cedex/sources.js.map +1 -1
  761. package/out/recipes/po/box/cedex/us.d.ts.map +1 -1
  762. package/out/recipes/po/box/cedex/us.js +5 -2
  763. package/out/recipes/po/box/cedex/us.js.map +1 -1
  764. package/out/recipes/po/box.d.ts +18 -0
  765. package/out/recipes/po/box.d.ts.map +1 -0
  766. package/out/recipes/po/{box/index.js → box.js} +37 -19
  767. package/out/recipes/po/box.js.map +1 -0
  768. package/out/recipes/scaffold.d.ts +223 -141
  769. package/out/recipes/scaffold.d.ts.map +1 -1
  770. package/out/recipes/scaffold.js +75 -65
  771. package/out/recipes/scaffold.js.map +1 -1
  772. package/out/recipes/sources.d.ts +178 -0
  773. package/out/recipes/sources.d.ts.map +1 -0
  774. package/out/recipes/sources.js +361 -0
  775. package/out/recipes/sources.js.map +1 -0
  776. package/out/recipes/street/affix.d.ts +20 -50
  777. package/out/recipes/street/affix.d.ts.map +1 -1
  778. package/out/recipes/street/affix.js +45 -133
  779. package/out/recipes/street/affix.js.map +1 -1
  780. package/out/recipes/street/bare.d.ts +9 -7
  781. package/out/recipes/street/bare.d.ts.map +1 -1
  782. package/out/recipes/street/bare.js +27 -16
  783. package/out/recipes/street/bare.js.map +1 -1
  784. package/out/recipes/street.d.ts +6 -4
  785. package/out/recipes/street.d.ts.map +1 -1
  786. package/out/recipes/street.js +32 -9
  787. package/out/recipes/street.js.map +1 -1
  788. package/out/recipes/sub/venue/context.d.ts +12 -9
  789. package/out/recipes/sub/venue/context.d.ts.map +1 -1
  790. package/out/recipes/sub/venue/context.js +23 -17
  791. package/out/recipes/sub/venue/context.js.map +1 -1
  792. package/out/recipes/sub/venue/render.d.ts +58 -0
  793. package/out/recipes/sub/venue/render.d.ts.map +1 -0
  794. package/out/recipes/sub/venue/render.js +118 -0
  795. package/out/recipes/sub/venue/render.js.map +1 -0
  796. package/out/recipes/sub/venue/sources.d.ts +53 -93
  797. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  798. package/out/recipes/sub/venue/sources.js +57 -197
  799. package/out/recipes/sub/venue/sources.js.map +1 -1
  800. package/out/recipes/sub/venue.d.ts +173 -0
  801. package/out/recipes/sub/venue.d.ts.map +1 -0
  802. package/out/recipes/sub/venue.js +558 -0
  803. package/out/recipes/sub/venue.js.map +1 -0
  804. package/out/recipes/trailing-region.d.ts +9 -61
  805. package/out/recipes/trailing-region.d.ts.map +1 -1
  806. package/out/recipes/trailing-region.js +61 -86
  807. package/out/recipes/trailing-region.js.map +1 -1
  808. package/out/recipes/unit/sources.d.ts +28 -0
  809. package/out/recipes/unit/sources.d.ts.map +1 -0
  810. package/out/recipes/unit/sources.js +30 -0
  811. package/out/recipes/unit/sources.js.map +1 -0
  812. package/out/recipes/unit.d.ts +30 -17
  813. package/out/recipes/unit.d.ts.map +1 -1
  814. package/out/recipes/unit.js +90 -79
  815. package/out/recipes/unit.js.map +1 -1
  816. package/out/recipes/venue.d.ts +119 -0
  817. package/out/recipes/venue.d.ts.map +1 -0
  818. package/out/recipes/venue.js +245 -0
  819. package/out/recipes/venue.js.map +1 -0
  820. package/out/recipes.d.ts +26 -0
  821. package/out/recipes.d.ts.map +1 -0
  822. package/out/{recipes/index.js → recipes.js} +16 -12
  823. package/out/recipes.js.map +1 -0
  824. package/out/registers.d.ts +279 -0
  825. package/out/registers.d.ts.map +1 -0
  826. package/out/registers.js +275 -0
  827. package/out/registers.js.map +1 -0
  828. package/out/ro/adapters/retea-scolara/adapter.d.ts +114 -0
  829. package/out/ro/adapters/retea-scolara/adapter.d.ts.map +1 -0
  830. package/out/ro/adapters/retea-scolara/adapter.js +209 -0
  831. package/out/ro/adapters/retea-scolara/adapter.js.map +1 -0
  832. package/out/ro/tools/fetch/retea-scolara.d.ts +69 -0
  833. package/out/ro/tools/fetch/retea-scolara.d.ts.map +1 -0
  834. package/out/ro/tools/fetch/retea-scolara.js +117 -0
  835. package/out/ro/tools/fetch/retea-scolara.js.map +1 -0
  836. package/out/runner.d.ts +121 -60
  837. package/out/runner.d.ts.map +1 -1
  838. package/out/runner.js +130 -56
  839. package/out/runner.js.map +1 -1
  840. package/out/sg/recipes/register.d.ts +18 -32
  841. package/out/sg/recipes/register.d.ts.map +1 -1
  842. package/out/sg/recipes/register.js +45 -50
  843. package/out/sg/recipes/register.js.map +1 -1
  844. package/out/sg/tools/fetch/acra.d.ts +11 -14
  845. package/out/sg/tools/fetch/acra.d.ts.map +1 -1
  846. package/out/sg/tools/fetch/acra.js +18 -21
  847. package/out/sg/tools/fetch/acra.js.map +1 -1
  848. package/out/si/recipes/bare-village.d.ts +12 -13
  849. package/out/si/recipes/bare-village.d.ts.map +1 -1
  850. package/out/si/recipes/bare-village.js +31 -17
  851. package/out/si/recipes/bare-village.js.map +1 -1
  852. package/out/sk/adapters/inspire/adapter.d.ts +119 -0
  853. package/out/sk/adapters/inspire/adapter.d.ts.map +1 -0
  854. package/out/sk/adapters/inspire/adapter.js +318 -0
  855. package/out/sk/adapters/inspire/adapter.js.map +1 -0
  856. package/out/sk/tools/fetch/inspire.d.ts +196 -0
  857. package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
  858. package/out/sk/tools/fetch/inspire.js +281 -0
  859. package/out/sk/tools/fetch/inspire.js.map +1 -0
  860. package/out/source-register/effective-manifest.d.ts +355 -0
  861. package/out/source-register/effective-manifest.d.ts.map +1 -0
  862. package/out/source-register/effective-manifest.js +355 -0
  863. package/out/source-register/effective-manifest.js.map +1 -0
  864. package/out/source-register/register.d.ts +79 -0
  865. package/out/source-register/register.d.ts.map +1 -0
  866. package/out/source-register/register.js +400 -0
  867. package/out/source-register/register.js.map +1 -0
  868. package/out/source-register/training-manifest.d.ts +111 -0
  869. package/out/source-register/training-manifest.d.ts.map +1 -0
  870. package/out/source-register/training-manifest.js +120 -0
  871. package/out/source-register/training-manifest.js.map +1 -0
  872. package/out/source-register/types.d.ts +538 -0
  873. package/out/source-register/types.d.ts.map +1 -0
  874. package/out/source-register/types.js +263 -0
  875. package/out/source-register/types.js.map +1 -0
  876. package/out/source-register.d.ts +19 -0
  877. package/out/source-register.d.ts.map +1 -0
  878. package/out/source-register.js +16 -0
  879. package/out/source-register.js.map +1 -0
  880. package/out/south-asia/recipes/register.d.ts +20 -17
  881. package/out/south-asia/recipes/register.d.ts.map +1 -1
  882. package/out/south-asia/recipes/register.js +44 -24
  883. package/out/south-asia/recipes/register.js.map +1 -1
  884. package/out/subvenue/harvest.d.ts +117 -0
  885. package/out/subvenue/harvest.d.ts.map +1 -0
  886. package/out/subvenue/harvest.js +172 -0
  887. package/out/subvenue/harvest.js.map +1 -0
  888. package/out/subvenue/promotions.d.ts +65 -0
  889. package/out/subvenue/promotions.d.ts.map +1 -0
  890. package/out/{tools/sub/venue → subvenue}/promotions.js +15 -55
  891. package/out/subvenue/promotions.js.map +1 -0
  892. package/out/subvenue/surfaces.d.ts +39 -0
  893. package/out/subvenue/surfaces.d.ts.map +1 -0
  894. package/out/subvenue/surfaces.js +75 -0
  895. package/out/subvenue/surfaces.js.map +1 -0
  896. package/out/subvenue/table.d.ts +212 -0
  897. package/out/subvenue/table.d.ts.map +1 -0
  898. package/out/subvenue/table.js +94 -0
  899. package/out/subvenue/table.js.map +1 -0
  900. package/out/surfaces/locale.d.ts +113 -0
  901. package/out/surfaces/locale.d.ts.map +1 -0
  902. package/out/surfaces/locale.js +138 -0
  903. package/out/surfaces/locale.js.map +1 -0
  904. package/out/synthesizers/anchor-absorption.d.ts +22 -30
  905. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  906. package/out/synthesizers/anchor-absorption.js +30 -85
  907. package/out/synthesizers/anchor-absorption.js.map +1 -1
  908. package/out/synthesizers/boundary-stress.d.ts +18 -49
  909. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  910. package/out/synthesizers/boundary-stress.js +45 -142
  911. package/out/synthesizers/boundary-stress.js.map +1 -1
  912. package/out/synthesizers/house-venue.d.ts +23 -25
  913. package/out/synthesizers/house-venue.d.ts.map +1 -1
  914. package/out/synthesizers/house-venue.js +47 -118
  915. package/out/synthesizers/house-venue.js.map +1 -1
  916. package/out/synthesizers/no-street.d.ts +7 -37
  917. package/out/synthesizers/no-street.d.ts.map +1 -1
  918. package/out/synthesizers/no-street.js +55 -111
  919. package/out/synthesizers/no-street.js.map +1 -1
  920. package/out/synthesizers/po-box.d.ts +48 -45
  921. package/out/synthesizers/po-box.d.ts.map +1 -1
  922. package/out/synthesizers/po-box.js +57 -97
  923. package/out/synthesizers/po-box.js.map +1 -1
  924. package/out/synthesizers/tail.d.ts +36 -0
  925. package/out/synthesizers/tail.d.ts.map +1 -0
  926. package/out/synthesizers/tail.js +32 -0
  927. package/out/synthesizers/tail.js.map +1 -0
  928. package/out/synthesizers/utils.d.ts +33 -129
  929. package/out/synthesizers/utils.d.ts.map +1 -1
  930. package/out/synthesizers/utils.js +71 -167
  931. package/out/synthesizers/utils.js.map +1 -1
  932. package/out/test-kit/corpus-recipe.d.ts +29 -23
  933. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  934. package/out/test-kit/corpus-recipe.js +28 -13
  935. package/out/test-kit/corpus-recipe.js.map +1 -1
  936. package/out/test-kit.d.ts +63 -0
  937. package/out/test-kit.d.ts.map +1 -0
  938. package/out/test-kit.js +88 -0
  939. package/out/test-kit.js.map +1 -0
  940. package/out/tools/align-canonical.d.ts +7 -0
  941. package/out/tools/align-canonical.d.ts.map +1 -0
  942. package/out/tools/align-canonical.js +52 -0
  943. package/out/tools/align-canonical.js.map +1 -0
  944. package/out/tools/audit.d.ts +19 -11
  945. package/out/tools/audit.d.ts.map +1 -1
  946. package/out/tools/audit.js +89 -97
  947. package/out/tools/audit.js.map +1 -1
  948. package/out/tools/corpus-stats.d.ts +24 -15
  949. package/out/tools/corpus-stats.d.ts.map +1 -1
  950. package/out/tools/corpus-stats.js +34 -30
  951. package/out/tools/corpus-stats.js.map +1 -1
  952. package/out/tools/fetch/atom.d.ts +115 -0
  953. package/out/tools/fetch/atom.d.ts.map +1 -0
  954. package/out/tools/fetch/atom.js +83 -0
  955. package/out/tools/fetch/atom.js.map +1 -0
  956. package/out/tools/fetch/cordis.d.ts +124 -0
  957. package/out/tools/fetch/cordis.d.ts.map +1 -0
  958. package/out/tools/fetch/cordis.js +210 -0
  959. package/out/tools/fetch/cordis.js.map +1 -0
  960. package/out/tools/fetch/download/manifest.d.ts +27 -18
  961. package/out/tools/fetch/download/manifest.d.ts.map +1 -1
  962. package/out/tools/fetch/download/manifest.js +22 -14
  963. package/out/tools/fetch/download/manifest.js.map +1 -1
  964. package/out/tools/fetch/download/network.d.ts +48 -27
  965. package/out/tools/fetch/download/network.d.ts.map +1 -1
  966. package/out/tools/fetch/download/network.js +26 -16
  967. package/out/tools/fetch/download/network.js.map +1 -1
  968. package/out/tools/fetch/download/retry.d.ts +16 -15
  969. package/out/tools/fetch/download/retry.d.ts.map +1 -1
  970. package/out/tools/fetch/download/retry.js +28 -28
  971. package/out/tools/fetch/download/retry.js.map +1 -1
  972. package/out/tools/fetch/{download/index.d.ts → download.d.ts} +1 -1
  973. package/out/tools/fetch/download.d.ts.map +1 -0
  974. package/out/tools/fetch/{download/index.js → download.js} +1 -1
  975. package/out/tools/fetch/download.js.map +1 -0
  976. package/out/tools/fetch/geonames/dump.d.ts +51 -32
  977. package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
  978. package/out/tools/fetch/geonames/dump.js +54 -43
  979. package/out/tools/fetch/geonames/dump.js.map +1 -1
  980. package/out/tools/fetch/geonames/postal.d.ts +14 -49
  981. package/out/tools/fetch/geonames/postal.d.ts.map +1 -1
  982. package/out/tools/fetch/geonames/postal.js +17 -56
  983. package/out/tools/fetch/geonames/postal.js.map +1 -1
  984. package/out/tools/fetch/gleif.d.ts +138 -0
  985. package/out/tools/fetch/gleif.d.ts.map +1 -0
  986. package/out/tools/fetch/gleif.js +222 -0
  987. package/out/tools/fetch/gleif.js.map +1 -0
  988. package/out/tools/fetch/header.d.ts +43 -0
  989. package/out/tools/fetch/header.d.ts.map +1 -0
  990. package/out/tools/fetch/header.js +61 -0
  991. package/out/tools/fetch/header.js.map +1 -0
  992. package/out/tools/fetch/inspire-addresses.d.ts +254 -0
  993. package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
  994. package/out/tools/fetch/inspire-addresses.js +277 -0
  995. package/out/tools/fetch/inspire-addresses.js.map +1 -0
  996. package/out/tools/fetch/openaddresses.d.ts +1 -4
  997. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  998. package/out/tools/fetch/openaddresses.js +20 -99
  999. package/out/tools/fetch/openaddresses.js.map +1 -1
  1000. package/out/tools/fetch/ourairports.d.ts +6 -33
  1001. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  1002. package/out/tools/fetch/ourairports.js +14 -47
  1003. package/out/tools/fetch/ourairports.js.map +1 -1
  1004. package/out/tools/fetch/ppd.d.ts +4 -3
  1005. package/out/tools/fetch/ppd.d.ts.map +1 -1
  1006. package/out/tools/fetch/ppd.js +10 -7
  1007. package/out/tools/fetch/ppd.js.map +1 -1
  1008. package/out/tools/fetch/vlaanderen-ad.d.ts +131 -0
  1009. package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -0
  1010. package/out/tools/fetch/vlaanderen-ad.js +293 -0
  1011. package/out/tools/fetch/vlaanderen-ad.js.map +1 -0
  1012. package/out/tools/fetch/wfs-harvest.d.ts +420 -0
  1013. package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
  1014. package/out/tools/fetch/wfs-harvest.js +525 -0
  1015. package/out/tools/fetch/wfs-harvest.js.map +1 -0
  1016. package/out/tools/fetch/wikidata-subvenue.d.ts +32 -100
  1017. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  1018. package/out/tools/fetch/wikidata-subvenue.js +27 -122
  1019. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  1020. package/out/tools/fetch/zip-archive.d.ts +54 -0
  1021. package/out/tools/fetch/zip-archive.d.ts.map +1 -0
  1022. package/out/tools/fetch/zip-archive.js +58 -0
  1023. package/out/tools/fetch/zip-archive.js.map +1 -0
  1024. package/out/tools/fetch.d.ts +99 -0
  1025. package/out/tools/fetch.d.ts.map +1 -0
  1026. package/out/tools/fetch.js +95 -0
  1027. package/out/tools/fetch.js.map +1 -0
  1028. package/out/tools/golden/expand.d.ts +28 -13
  1029. package/out/tools/golden/expand.d.ts.map +1 -1
  1030. package/out/tools/golden/expand.js +51 -37
  1031. package/out/tools/golden/expand.js.map +1 -1
  1032. package/out/tools/golden/promote.d.ts +13 -8
  1033. package/out/tools/golden/promote.d.ts.map +1 -1
  1034. package/out/tools/golden/promote.js +38 -30
  1035. package/out/tools/golden/promote.js.map +1 -1
  1036. package/out/tools/golden/relabel-street/directory.d.ts +25 -10
  1037. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
  1038. package/out/tools/golden/relabel-street/directory.js +44 -32
  1039. package/out/tools/golden/relabel-street/directory.js.map +1 -1
  1040. package/out/tools/golden/relabel-street/row.d.ts +18 -69
  1041. package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
  1042. package/out/tools/golden/relabel-street/row.js +19 -77
  1043. package/out/tools/golden/relabel-street/row.js.map +1 -1
  1044. package/out/tools/golden/{relabel-street/index.d.ts → relabel-street.d.ts} +1 -1
  1045. package/out/tools/golden/relabel-street.d.ts.map +1 -0
  1046. package/out/tools/golden/{relabel-street/index.js → relabel-street.js} +1 -1
  1047. package/out/tools/golden/relabel-street.js.map +1 -0
  1048. package/out/tools/ingest-csv.d.ts +19 -15
  1049. package/out/tools/ingest-csv.d.ts.map +1 -1
  1050. package/out/tools/ingest-csv.js +42 -46
  1051. package/out/tools/ingest-csv.js.map +1 -1
  1052. package/out/tools/jsonl-to-parquet.d.ts +15 -28
  1053. package/out/tools/jsonl-to-parquet.d.ts.map +1 -1
  1054. package/out/tools/jsonl-to-parquet.js +49 -91
  1055. package/out/tools/jsonl-to-parquet.js.map +1 -1
  1056. package/out/tools/lint/recipe-output/vocab.d.ts +82 -0
  1057. package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -0
  1058. package/out/tools/lint/{slice → recipe-output}/vocab.js +54 -69
  1059. package/out/tools/lint/recipe-output/vocab.js.map +1 -0
  1060. package/out/tools/lint/recipe-output.d.ts +73 -0
  1061. package/out/tools/lint/recipe-output.d.ts.map +1 -0
  1062. package/out/tools/lint/{slice/index.js → recipe-output.js} +93 -96
  1063. package/out/tools/lint/recipe-output.js.map +1 -0
  1064. package/out/tools/migrate/overlay-parquet.d.ts +30 -0
  1065. package/out/tools/migrate/overlay-parquet.d.ts.map +1 -0
  1066. package/out/tools/migrate/overlay-parquet.js +141 -0
  1067. package/out/tools/migrate/overlay-parquet.js.map +1 -0
  1068. package/out/tools/migrate/recipe-output.d.ts +35 -0
  1069. package/out/tools/migrate/recipe-output.d.ts.map +1 -0
  1070. package/out/tools/migrate/recipe-output.js +124 -0
  1071. package/out/tools/migrate/recipe-output.js.map +1 -0
  1072. package/out/tools/migrate/source-names.d.ts +52 -0
  1073. package/out/tools/migrate/source-names.d.ts.map +1 -0
  1074. package/out/tools/migrate/source-names.js +105 -0
  1075. package/out/tools/migrate/source-names.js.map +1 -0
  1076. package/out/tools/overlay/kryptonite.d.ts +33 -0
  1077. package/out/tools/overlay/kryptonite.d.ts.map +1 -0
  1078. package/out/tools/{slice → overlay}/kryptonite.js +39 -29
  1079. package/out/tools/overlay/kryptonite.js.map +1 -0
  1080. package/out/tools/overlay/manifest.d.ts +143 -0
  1081. package/out/tools/overlay/manifest.d.ts.map +1 -0
  1082. package/out/tools/overlay/manifest.js +261 -0
  1083. package/out/tools/overlay/manifest.js.map +1 -0
  1084. package/out/tools/overlay/merge-source.d.ts +74 -0
  1085. package/out/tools/overlay/merge-source.d.ts.map +1 -0
  1086. package/out/tools/overlay/merge-source.js +63 -0
  1087. package/out/tools/overlay/merge-source.js.map +1 -0
  1088. package/out/tools/overlay/split-slice.d.ts +66 -0
  1089. package/out/tools/overlay/split-slice.d.ts.map +1 -0
  1090. package/out/tools/overlay/split-slice.js +78 -0
  1091. package/out/tools/overlay/split-slice.js.map +1 -0
  1092. package/out/tools/overlay/translit.d.ts +55 -0
  1093. package/out/tools/overlay/translit.d.ts.map +1 -0
  1094. package/out/tools/{slice → overlay}/translit.js +61 -49
  1095. package/out/tools/overlay/translit.js.map +1 -0
  1096. package/out/tools/overture-subvenue.d.ts +17 -76
  1097. package/out/tools/overture-subvenue.d.ts.map +1 -1
  1098. package/out/tools/overture-subvenue.js +7 -74
  1099. package/out/tools/overture-subvenue.js.map +1 -1
  1100. package/out/tools/postcode-triples.d.ts +78 -127
  1101. package/out/tools/postcode-triples.d.ts.map +1 -1
  1102. package/out/tools/postcode-triples.js +200 -193
  1103. package/out/tools/postcode-triples.js.map +1 -1
  1104. package/out/tools/source-register/build.d.ts +147 -0
  1105. package/out/tools/source-register/build.d.ts.map +1 -0
  1106. package/out/tools/source-register/build.js +517 -0
  1107. package/out/tools/source-register/build.js.map +1 -0
  1108. package/out/tools/sub/venue/head-nouns.d.ts +9 -38
  1109. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
  1110. package/out/tools/sub/venue/head-nouns.js +37 -74
  1111. package/out/tools/sub/venue/head-nouns.js.map +1 -1
  1112. package/out/tools/sub/venue/lexicon.d.ts +53 -84
  1113. package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
  1114. package/out/tools/sub/venue/lexicon.js +42 -90
  1115. package/out/tools/sub/venue/lexicon.js.map +1 -1
  1116. package/out/tools/sub/venue/wikidata.d.ts +8 -6
  1117. package/out/tools/sub/venue/wikidata.d.ts.map +1 -1
  1118. package/out/tools/sub/venue/wikidata.js +12 -9
  1119. package/out/tools/sub/venue/wikidata.js.map +1 -1
  1120. package/out/tw/tools/fetch/gcis.d.ts +9 -3
  1121. package/out/tw/tools/fetch/gcis.d.ts.map +1 -1
  1122. package/out/tw/tools/fetch/gcis.js +19 -13
  1123. package/out/tw/tools/fetch/gcis.js.map +1 -1
  1124. package/out/types.d.ts +271 -101
  1125. package/out/types.d.ts.map +1 -1
  1126. package/out/types.js +133 -9
  1127. package/out/types.js.map +1 -1
  1128. package/out/us/adapters/fcc-bdc/adapter.d.ts +18 -36
  1129. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -1
  1130. package/out/us/adapters/fcc-bdc/adapter.js +25 -38
  1131. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -1
  1132. package/out/us/adapters/state/hi-schools/adapter.d.ts +12 -11
  1133. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -1
  1134. package/out/us/adapters/state/hi-schools/adapter.js +26 -16
  1135. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -1
  1136. package/out/us/adapters/state/hi-schools/workbook.d.ts +8 -3
  1137. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -1
  1138. package/out/us/adapters/state/hi-schools/workbook.js +3 -1
  1139. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -1
  1140. package/out/us/adapters/state/ia-contractors/adapter.d.ts +13 -6
  1141. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -1
  1142. package/out/us/adapters/state/ia-contractors/adapter.js +27 -14
  1143. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -1
  1144. package/out/us/adapters/state/ny-notaries/adapter.d.ts +7 -6
  1145. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -1
  1146. package/out/us/adapters/state/ny-notaries/adapter.js +24 -22
  1147. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -1
  1148. package/out/us/adapters/state/tx-notaries/adapter.d.ts +8 -7
  1149. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -1
  1150. package/out/us/adapters/state/tx-notaries/adapter.js +21 -14
  1151. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -1
  1152. package/out/us/adapters/tiger/adapter.d.ts +10 -34
  1153. package/out/us/adapters/tiger/adapter.d.ts.map +1 -1
  1154. package/out/us/adapters/tiger/adapter.js +18 -42
  1155. package/out/us/adapters/tiger/adapter.js.map +1 -1
  1156. package/out/us/adapters/tiger/street-decompose.d.ts +6 -13
  1157. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -1
  1158. package/out/us/adapters/tiger/street-decompose.js +7 -17
  1159. package/out/us/adapters/tiger/street-decompose.js.map +1 -1
  1160. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts +26 -20
  1161. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -1
  1162. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +41 -29
  1163. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -1
  1164. package/out/us/adapters/usgov/imls-pls/adapter.d.ts +8 -7
  1165. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -1
  1166. package/out/us/adapters/usgov/imls-pls/adapter.js +25 -18
  1167. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -1
  1168. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +11 -10
  1169. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -1
  1170. package/out/us/adapters/usgov/irs-bmf/adapter.js +32 -22
  1171. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -1
  1172. package/out/us/adapters/usgov/nad/adapter.d.ts +11 -31
  1173. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -1
  1174. package/out/us/adapters/usgov/nad/adapter.js +57 -111
  1175. package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
  1176. package/out/us/adapters/usgov/nppes/adapter.d.ts +12 -22
  1177. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -1
  1178. package/out/us/adapters/usgov/nppes/adapter.js +62 -32
  1179. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -1
  1180. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts +16 -15
  1181. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -1
  1182. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +38 -28
  1183. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
  1184. package/out/us/fips-state.d.ts +19 -10
  1185. package/out/us/fips-state.d.ts.map +1 -1
  1186. package/out/us/fips-state.js +17 -8
  1187. package/out/us/fips-state.js.map +1 -1
  1188. package/out/{synthesizers → us/synthesizers}/intersection.d.ts +10 -8
  1189. package/out/us/synthesizers/intersection.d.ts.map +1 -0
  1190. package/out/{synthesizers → us/synthesizers}/intersection.js +46 -35
  1191. package/out/us/synthesizers/intersection.js.map +1 -0
  1192. package/out/{synthesizers → us/synthesizers}/street.d.ts +19 -12
  1193. package/out/us/synthesizers/street.d.ts.map +1 -0
  1194. package/out/{synthesizers → us/synthesizers}/street.js +45 -38
  1195. package/out/us/synthesizers/street.js.map +1 -0
  1196. package/out/us/tools/fetch/hrsa.d.ts +3 -3
  1197. package/out/us/tools/fetch/hrsa.d.ts.map +1 -1
  1198. package/out/us/tools/fetch/hrsa.js +6 -7
  1199. package/out/us/tools/fetch/hrsa.js.map +1 -1
  1200. package/out/us/tools/fetch/imls-pls.d.ts +5 -16
  1201. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -1
  1202. package/out/us/tools/fetch/imls-pls.js +17 -34
  1203. package/out/us/tools/fetch/imls-pls.js.map +1 -1
  1204. package/out/us/tools/fetch/nad.d.ts +22 -10
  1205. package/out/us/tools/fetch/nad.d.ts.map +1 -1
  1206. package/out/us/tools/fetch/nad.js +30 -25
  1207. package/out/us/tools/fetch/nad.js.map +1 -1
  1208. package/out/us/tools/fetch/nppes.d.ts +6 -16
  1209. package/out/us/tools/fetch/nppes.d.ts.map +1 -1
  1210. package/out/us/tools/fetch/nppes.js +24 -36
  1211. package/out/us/tools/fetch/nppes.js.map +1 -1
  1212. package/out/us/tools/fetch/state/hi-schools.d.ts +9 -5
  1213. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
  1214. package/out/us/tools/fetch/state/hi-schools.js +16 -14
  1215. package/out/us/tools/fetch/state/hi-schools.js.map +1 -1
  1216. package/out/us/tools/fetch/state/sources.d.ts +8 -7
  1217. package/out/us/tools/fetch/state/sources.d.ts.map +1 -1
  1218. package/out/us/tools/fetch/state/sources.js +8 -9
  1219. package/out/us/tools/fetch/state/sources.js.map +1 -1
  1220. package/out/us/tools/fetch/tiger-full.d.ts +1 -14
  1221. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -1
  1222. package/out/us/tools/fetch/tiger-full.js +16 -55
  1223. package/out/us/tools/fetch/tiger-full.js.map +1 -1
  1224. package/out/utils/align.d.ts +26 -19
  1225. package/out/utils/align.d.ts.map +1 -1
  1226. package/out/utils/align.js +32 -47
  1227. package/out/utils/align.js.map +1 -1
  1228. package/out/utils/cooccurrence-stats.d.ts +58 -0
  1229. package/out/utils/cooccurrence-stats.d.ts.map +1 -0
  1230. package/out/utils/cooccurrence-stats.js +62 -0
  1231. package/out/utils/cooccurrence-stats.js.map +1 -0
  1232. package/out/utils/golden.d.ts +21 -31
  1233. package/out/utils/golden.d.ts.map +1 -1
  1234. package/out/utils/golden.js +30 -46
  1235. package/out/utils/golden.js.map +1 -1
  1236. package/out/utils/license.d.ts +159 -22
  1237. package/out/utils/license.d.ts.map +1 -1
  1238. package/out/utils/license.js +156 -26
  1239. package/out/utils/license.js.map +1 -1
  1240. package/out/utils/split.d.ts +66 -70
  1241. package/out/utils/split.d.ts.map +1 -1
  1242. package/out/utils/split.js +162 -69
  1243. package/out/utils/split.js.map +1 -1
  1244. package/out/utils/tokenize.d.ts +15 -44
  1245. package/out/utils/tokenize.d.ts.map +1 -1
  1246. package/out/utils/tokenize.js +18 -31
  1247. package/out/utils/tokenize.js.map +1 -1
  1248. package/out/utils/wof-json.d.ts +88 -62
  1249. package/out/utils/wof-json.d.ts.map +1 -1
  1250. package/out/utils/wof-json.js +77 -56
  1251. package/out/utils/wof-json.js.map +1 -1
  1252. package/out/{utils/index.js → utils.d.ts} +1 -2
  1253. package/out/utils.d.ts.map +1 -0
  1254. package/out/{utils/index.d.ts → utils.js} +1 -2
  1255. package/out/utils.js.map +1 -0
  1256. package/out/ve/recipes/reviewed-postcode-tail.d.ts +25 -7
  1257. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -1
  1258. package/out/ve/recipes/reviewed-postcode-tail.js +33 -12
  1259. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -1
  1260. package/package.json +45 -488
  1261. package/lib/adapters/index.ts +0 -160
  1262. package/lib/adapters/synth-po-box/adapter.ts +0 -204
  1263. package/lib/adapters/utils/index.ts +0 -307
  1264. package/lib/recipes/bare/postcode/index.ts +0 -327
  1265. package/lib/recipes/sub/venue/index.ts +0 -997
  1266. package/lib/synthesizers/locale.ts +0 -261
  1267. package/lib/test-kit/index.ts +0 -100
  1268. package/lib/tools/align-slice.ts +0 -68
  1269. package/lib/tools/fetch/index.ts +0 -174
  1270. package/lib/tools/gb-title-case.ts +0 -69
  1271. package/lib/tools/index.ts +0 -28
  1272. package/lib/tools/lint/slice/vocab.ts +0 -376
  1273. package/lib/tools/overlay-manifest.ts +0 -215
  1274. package/lib/tools/slice/translit.ts +0 -218
  1275. package/lib/tools/sub/venue/harvest.ts +0 -234
  1276. package/lib/tools/sub/venue/surfaces.ts +0 -95
  1277. package/lib/tools/sub/venue/table.ts +0 -281
  1278. package/lib/utils/parquet.ts +0 -582
  1279. package/out/adapters/index.d.ts +0 -51
  1280. package/out/adapters/index.d.ts.map +0 -1
  1281. package/out/adapters/index.js +0 -97
  1282. package/out/adapters/index.js.map +0 -1
  1283. package/out/adapters/synth-po-box/adapter.d.ts +0 -67
  1284. package/out/adapters/synth-po-box/adapter.d.ts.map +0 -1
  1285. package/out/adapters/synth-po-box/adapter.js.map +0 -1
  1286. package/out/adapters/utils/index.d.ts +0 -191
  1287. package/out/adapters/utils/index.d.ts.map +0 -1
  1288. package/out/adapters/utils/index.js +0 -206
  1289. package/out/adapters/utils/index.js.map +0 -1
  1290. package/out/fr/adapters/ban/street-decompose.d.ts.map +0 -1
  1291. package/out/fr/adapters/ban/street-decompose.js.map +0 -1
  1292. package/out/no/recipes/street/index.d.ts +0 -18
  1293. package/out/no/recipes/street/index.d.ts.map +0 -1
  1294. package/out/no/recipes/street/index.js.map +0 -1
  1295. package/out/recipes/bare/postcode/index.d.ts +0 -62
  1296. package/out/recipes/bare/postcode/index.d.ts.map +0 -1
  1297. package/out/recipes/bare/postcode/index.js.map +0 -1
  1298. package/out/recipes/index.d.ts +0 -24
  1299. package/out/recipes/index.d.ts.map +0 -1
  1300. package/out/recipes/index.js.map +0 -1
  1301. package/out/recipes/po/box/index.d.ts +0 -17
  1302. package/out/recipes/po/box/index.d.ts.map +0 -1
  1303. package/out/recipes/po/box/index.js.map +0 -1
  1304. package/out/recipes/sub/venue/index.d.ts +0 -270
  1305. package/out/recipes/sub/venue/index.d.ts.map +0 -1
  1306. package/out/recipes/sub/venue/index.js +0 -728
  1307. package/out/recipes/sub/venue/index.js.map +0 -1
  1308. package/out/synthesizers/intersection.d.ts.map +0 -1
  1309. package/out/synthesizers/intersection.js.map +0 -1
  1310. package/out/synthesizers/locale.d.ts +0 -116
  1311. package/out/synthesizers/locale.d.ts.map +0 -1
  1312. package/out/synthesizers/locale.js +0 -150
  1313. package/out/synthesizers/locale.js.map +0 -1
  1314. package/out/synthesizers/street.d.ts.map +0 -1
  1315. package/out/synthesizers/street.js.map +0 -1
  1316. package/out/test-kit/index.d.ts +0 -48
  1317. package/out/test-kit/index.d.ts.map +0 -1
  1318. package/out/test-kit/index.js +0 -78
  1319. package/out/test-kit/index.js.map +0 -1
  1320. package/out/tools/align-slice.d.ts +0 -7
  1321. package/out/tools/align-slice.d.ts.map +0 -1
  1322. package/out/tools/align-slice.js +0 -55
  1323. package/out/tools/align-slice.js.map +0 -1
  1324. package/out/tools/fetch/download/index.d.ts.map +0 -1
  1325. package/out/tools/fetch/download/index.js.map +0 -1
  1326. package/out/tools/fetch/index.d.ts +0 -171
  1327. package/out/tools/fetch/index.d.ts.map +0 -1
  1328. package/out/tools/fetch/index.js +0 -170
  1329. package/out/tools/fetch/index.js.map +0 -1
  1330. package/out/tools/gb-title-case.d.ts +0 -2
  1331. package/out/tools/gb-title-case.d.ts.map +0 -1
  1332. package/out/tools/gb-title-case.js +0 -65
  1333. package/out/tools/gb-title-case.js.map +0 -1
  1334. package/out/tools/golden/relabel-street/index.d.ts.map +0 -1
  1335. package/out/tools/golden/relabel-street/index.js.map +0 -1
  1336. package/out/tools/index.d.ts +0 -28
  1337. package/out/tools/index.d.ts.map +0 -1
  1338. package/out/tools/index.js +0 -28
  1339. package/out/tools/index.js.map +0 -1
  1340. package/out/tools/lint/slice/index.d.ts +0 -93
  1341. package/out/tools/lint/slice/index.d.ts.map +0 -1
  1342. package/out/tools/lint/slice/index.js.map +0 -1
  1343. package/out/tools/lint/slice/vocab.d.ts +0 -90
  1344. package/out/tools/lint/slice/vocab.d.ts.map +0 -1
  1345. package/out/tools/lint/slice/vocab.js.map +0 -1
  1346. package/out/tools/overlay-manifest.d.ts +0 -89
  1347. package/out/tools/overlay-manifest.d.ts.map +0 -1
  1348. package/out/tools/overlay-manifest.js +0 -131
  1349. package/out/tools/overlay-manifest.js.map +0 -1
  1350. package/out/tools/slice/kryptonite.d.ts +0 -32
  1351. package/out/tools/slice/kryptonite.d.ts.map +0 -1
  1352. package/out/tools/slice/kryptonite.js.map +0 -1
  1353. package/out/tools/slice/translit.d.ts +0 -51
  1354. package/out/tools/slice/translit.d.ts.map +0 -1
  1355. package/out/tools/slice/translit.js.map +0 -1
  1356. package/out/tools/sub/venue/harvest.d.ts +0 -100
  1357. package/out/tools/sub/venue/harvest.d.ts.map +0 -1
  1358. package/out/tools/sub/venue/harvest.js +0 -168
  1359. package/out/tools/sub/venue/harvest.js.map +0 -1
  1360. package/out/tools/sub/venue/promotions.d.ts +0 -94
  1361. package/out/tools/sub/venue/promotions.d.ts.map +0 -1
  1362. package/out/tools/sub/venue/promotions.js.map +0 -1
  1363. package/out/tools/sub/venue/surfaces.d.ts +0 -45
  1364. package/out/tools/sub/venue/surfaces.d.ts.map +0 -1
  1365. package/out/tools/sub/venue/surfaces.js +0 -77
  1366. package/out/tools/sub/venue/surfaces.js.map +0 -1
  1367. package/out/tools/sub/venue/table.d.ts +0 -229
  1368. package/out/tools/sub/venue/table.d.ts.map +0 -1
  1369. package/out/tools/sub/venue/table.js +0 -108
  1370. package/out/tools/sub/venue/table.js.map +0 -1
  1371. package/out/utils/index.d.ts.map +0 -1
  1372. package/out/utils/index.js.map +0 -1
  1373. package/out/utils/parquet.d.ts +0 -178
  1374. package/out/utils/parquet.d.ts.map +0 -1
  1375. package/out/utils/parquet.js +0 -371
  1376. package/out/utils/parquet.js.map +0 -1
  1377. package/out/utils/slice-stats.d.ts +0 -52
  1378. package/out/utils/slice-stats.d.ts.map +0 -1
  1379. package/out/utils/slice-stats.js +0 -58
  1380. package/out/utils/slice-stats.js.map +0 -1
  1381. /package/lib/tools/fetch/{download/index.ts → download.ts} +0 -0
  1382. /package/lib/tools/golden/{relabel-street/index.ts → relabel-street.ts} +0 -0
@@ -3,31 +3,16 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Shared utilities for the `wof-admin` / `wof-postalcode` GeoJSON-bundle adapters.
7
- *
8
- * The Phase 1.5.1 pivot moved both adapters off the SpatiaLite distribution (dead mirror, empty
9
- * `names` table) and onto the per-record GeoJSON bundles published as
10
- * `github.com/whosonfirst-data/whosonfirst-data-{admin,postalcode}-<cc>` repos. Each repo carries
11
- * a tree of `data/<3>/<3>/<3>/<wof-id>.geojson` files plus alternate-geometry siblings like
12
- * `<id>-alt-quattroshapes.geojson`. The adapter only consumes the canonical record (no `-alt-`
13
- * files); the alternate geometries are irrelevant to the name/hierarchy concerns Phase 1 cares
14
- * about.
15
- *
16
- * This module provides:
17
- *
18
- * - `WOFRecord`: the lightweight per-feature shape both adapters carry in their ancestry index.
19
- * - `walkFeatures`: streaming directory walk → parsed `WOFRecord`s (skips alt files, bad JSON,
20
- * deprecated records).
21
- * - `buildAncestryIndex`: in-memory ancestry chain construction (`Map<id, ancestors[]>`).
22
- * - `extractNameVariants`: pulls `name:*` localized name lists off a feature's properties.
23
- * - `normalizeNameKey`: turns `"name:eng_x_colloquial"` into `"name-eng-x-colloquial"` for safe use
24
- * in `source_id` suffixes.
25
- *
26
- * `is_current` semantics follow WOF + Pelias: `mz:is_current` ∈ {`1`, `-1`} are live; `0` is
27
- * superseded. WOF's official postalcode distribution stamps every row with `-1` ("unknown but
28
- * treated as active"), which is why the previous SpatiaLite adapter's `is_current = 1` filter
29
- * silently emitted zero rows from the real corpus.
6
+ * Shared utilities for the `wof-admin` / `wof-postalcode` GeoJSON-bundle adapters. They read the
7
+ * per-record bundles published as `github.com/whosonfirst-data/whosonfirst-data-{admin,postalcode}-<cc>`
8
+ * repos: a tree of `data/<3>/<3>/<3>/<wof-id>.geojson` files plus alternate-geometry siblings like
9
+ * `<id>-alt-quattroshapes.geojson`, of which only the canonical record is consumed.
10
+ *
11
+ * `is_current` semantics follow WOF + Pelias: `mz:is_current` ∈ {`1`, `-1`} are live and `0` is
12
+ * superseded. WOF's official postalcode distribution stamps every row `-1` ("unknown but treated as
13
+ * active"), so an `is_current = 1` filter silently emits zero rows from the real corpus.
30
14
  */
15
+ import type { PathBuilderLike } from "path-ts";
31
16
  /**
32
17
  * A WOF GeoJSON feature, as published by the per-record bundles.
33
18
  */
@@ -37,77 +22,118 @@ export interface WOFFeature {
37
22
  properties?: Record<string, unknown> | null;
38
23
  }
39
24
  /**
40
- * Lightweight in-memory shape both adapters keep per record. Geometry is intentionally dropped — it's 95% of the file
41
- * weight and the adapters never consult it.
25
+ * Lightweight in-memory shape both adapters keep per record.
26
+ *
27
+ * Geometry is intentionally dropped because the adapters never consult it.
42
28
  */
43
29
  export interface WOFRecord {
44
30
  id: number;
45
31
  parent_id: number | null;
46
- /**
47
- * Canonical `wof:name` of the record.
48
- */
49
32
  name: string;
50
33
  placetype: string;
51
34
  /**
52
- * ISO 3166-1 alpha-2 from `wof:country`.
35
+ * ISO 3166-1 alpha-2 from `wof:country`, upper-cased on read.
36
+ *
37
+ * The standard's codes are upper case.
38
+ * The publisher's spelling can differ.
39
+ *
40
+ * A consumer such as the `--country NL` filter compares the two strings directly.
53
41
  */
54
42
  country: string;
55
43
  /**
56
44
  * Localized name variants from `name:*` properties.
57
45
  *
58
- * Keys are the raw `name:eng_x_preferred` form; values are the first non-empty string from the underlying array (WOF
59
- * stores variants as arrays even when only one form is present). The canonical `wof:name` is NOT included here —
60
- * adapters add a synthetic `"default"` slot for it.
46
+ * Keys are the raw `name:eng_x_preferred` form.
47
+ * Values are the first non-empty string from the underlying array, because WOF
48
+ * stores variants as arrays even when only one form is present.
49
+ *
50
+ * The canonical `wof:name` is not included — adapters add a synthetic `"default"` slot for it.
61
51
  */
62
52
  nameVariants: Map<string, string>;
63
53
  }
64
54
  /**
65
- * `mz:is_current` ∈ {`1`, `-1`} → keep. `0` → drop.
55
+ * `mz:is_current` ∈ {`1`, `-1`} → keep, `0` → drop.
66
56
  *
67
- * Real WOF postalcode distros tag every row `-1` ("unknown but treated as active"); the Pelias importer accepts `-1`
68
- * alongside `1`. Tightening the predicate to `= 1` is the trap: the postalcode distros then contribute ZERO rows to the
69
- * corpus, silently, with nothing raised to notice it by.
57
+ * Real WOF postalcode distros tag every row `-1` ("unknown but treated as active") and the
58
+ * Pelias importer accepts `-1` alongside `1`; tightening the predicate to `= 1` makes the
59
+ * postalcode distros contribute zero rows to the corpus, silently, with no error to notice it by.
70
60
  */
71
61
  export declare function isCurrentFeature(props: Record<string, unknown>): boolean;
72
62
  /**
73
- * Pull `name:*` localized variants off a WOF feature's properties. WOF stores variants as arrays (`["Saint
74
- * Petersburg"]`); we lift the first non-empty string. Multiple-value variants (rare; usually historical aliases) are
75
- * not split into separate rows by this helper — adapters can opt in by iterating the underlying array if they need it.
63
+ * Pull `name:*` localized variants off a WOF feature's properties, lifting the first
64
+ * non-empty string from the array WOF stores them in (`["Saint Petersburg"]`);
65
+ * Multiple-value variants are rare and usually historical aliases.
66
+ *
67
+ * This function keeps them together.
68
+ * An adapter that needs separate values can iterate the underlying array.
76
69
  */
77
70
  export declare function extractNameVariants(props: Record<string, unknown>): Map<string, string>;
78
71
  /**
79
- * Turn a `name:*` property key into a hyphen-safe suffix fragment for `source_id`.
80
- *
81
- * `"name:eng_x_colloquial"` → `"name-eng-x-colloquial"`. `:` and `_` both become `-` because both collide with the
82
- * existing source_id separator vocabulary and downstream consumers split on `-`.
72
+ * Turn a `name:*` property key into a hyphen-safe suffix fragment for `source_id`
73
+ * (`"name:eng_x_colloquial"` → `"name-eng-x-colloquial"`); both `:` and `_` become `-`
74
+ * because both collide with the separator vocabulary downstream consumers split on.
83
75
  */
84
76
  export declare function normalizeNameKey(rawKey: string): string;
85
77
  /**
86
- * Stream every canonical GeoJSON file under `repoDir` and yield parsed `WOFRecord`s.
78
+ * Stream every canonical GeoJSON file under `repoDir` and yield parsed `WOFRecord`s;
79
+ * `repoDir` may be a single cloned `whosonfirst-data-*` repo or a parent holding several
80
+ * (the corpus pipeline clones all four into a shared `wof/repos/` root).
87
81
  *
88
- * `repoDir` may point at a single cloned `whosonfirst-data-*` repo OR at a parent directory holding several such repos
89
- * (the corpus pipeline clones all four into a shared `wof/repos/` root and runs the adapter against that root).
90
- * `**\/*.geojson` walks the whole tree; `-alt-` siblings are skipped since they're alternate-geometry exports, not new
91
- * records.
82
+ * `-alt-` siblings are skipped as alternate-geometry exports.
83
+ * They do not represent new records.
92
84
  *
93
- * Errors per-file (unreadable, malformed JSON, missing properties) are swallowed so one bad file doesn't poison a 3 GB
94
- * walk. Adapters can add stricter validation downstream if they need it.
85
+ * Per-file errors (unreadable files, malformed JSON, or missing properties) are swallowed
86
+ * so one bad file does not poison a multi-gigabyte walk.
95
87
  */
96
- export declare function walkFeatures(repoDir: string, opts?: {
88
+ export declare function walkFeatures(repoDir: PathBuilderLike, opts?: {
97
89
  signal?: AbortSignal;
98
90
  }): AsyncIterable<WOFRecord>;
99
91
  /**
100
- * Build an in-memory ancestry index: `Map<wof_id, [parent, grandparent, ...]>` walking `parent_id` upward and stopping
101
- * at the first missing link. A cycle guard halts at any re-visit (defensive — WOF data is acyclic by construction but
102
- * corrupt fixtures shouldn't infinite-loop the adapter).
92
+ * The component tags a variant builder looks an ancestor up by.
93
+ *
94
+ * Measured over both adapters on 2026-09-28: `variantsFor` reads the nearest `region`
95
+ * and `country` ancestor, `postcodeVariantsFor` reads the nearest `locality`, `region` and `country`,
96
+ * and each one reads the ancestor's `placetype` to classify it and its `name` to use it.
97
+ * No caller reads an ancestor's `nameVariants`, `id`, `parent_id` or `country`.
98
+ */
99
+ export declare const ANCESTOR_NAME_TAGS: readonly ["locality", "region", "country"];
100
+ /**
101
+ * The nearest ancestor's `wof:name` per tag in {@linkcode ANCESTOR_NAME_TAGS}.
102
+ *
103
+ * A tag with no ancestor has no key.
104
+ * `ancestry.find(…) === undefined` expresses that state.
105
+ */
106
+ export type AncestorNames = Partial<Record<(typeof ANCESTOR_NAME_TAGS)[number], string>>;
107
+ /**
108
+ * The ancestor names each record needs, keyed by `wof:id`.
109
+ *
110
+ * The predecessor index held one array of record references per record, so a run over the 13,274,691
111
+ * admin records of `v0.7.0-de-holdout` allocated 13.3 million arrays alongside the record index.
112
+ * This holds at most three strings per record instead.
113
+ *
114
+ * Each string is the same object the ancestor already holds, so the index costs
115
+ * one small object per record without copying a name.
116
+ *
117
+ * The adapter's second pass reads only this.
118
+ * `wof-postalcode` keeps admin records in its record index solely so postcode ancestry resolves.
119
+ * It can release them once this index is built.
120
+ *
121
+ * Nearest wins: the walk goes upward from the record's parent and the first ancestor
122
+ * carrying a tag sets it, matching the `ancestry.find` the builders used.
123
+ */
124
+ export type AncestorNameIndex = Map<number, AncestorNames>;
125
+ /**
126
+ * Resolves {@linkcode AncestorNameIndex} from a record index.
127
+ *
128
+ * `tagOf` maps a WOF placetype to a component tag, or returns a value outside
129
+ * {@linkcode ANCESTOR_NAME_TAGS} for a placetype no builder looks up.
130
+ * It is a parameter because `placetypeToTag` lives with the adapters and this module does not import them.
103
131
  *
104
- * Records whose ancestors aren't in `byID` (e.g. an FR locality whose region wasn't included in the cloned repo set)
105
- * get a shorter chain; the variant emission gracefully degrades.
132
+ * The walk stops at the first `parent_id` absent from `byID`, and a cycle guard halts at any re-visit.
133
+ * WOF data is acyclic by construction.
134
+ * The guard keeps a corrupt fixture from looping the adapter.
106
135
  *
107
- * `wof-admin-jp`'s `chainOf` walks the same parent-child relation over SQLite `spr` rows with an
108
- * outside-the-preloaded-set fallback query — a different substrate with a different escape hatch, kept separate on
109
- * purpose.
136
+ * A record whose ancestors are absent resolves the tags it can reach rather than failing.
110
137
  */
111
- export type AncestryIndex = Map<number, WOFRecord[]>;
112
- export declare function buildAncestryIndex(byID: Map<number, WOFRecord>): AncestryIndex;
138
+ export declare function buildAncestorNameIndex(byID: ReadonlyMap<number, WOFRecord>, tagOf: (placetype: string) => string | null | undefined): AncestorNameIndex;
113
139
  //# sourceMappingURL=wof-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wof-json.d.ts","sourceRoot":"","sources":["../../lib/utils/wof-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AA+CD;;;;;;;;;;GAUG;AACH,wBAAuB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CA0BlH;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;AAEpD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,aAAa,CAuB9E"}
1
+ {"version":3,"file":"wof-json.d.ts","sourceRoot":"","sources":["../../lib/utils/wof-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;;OAQG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcvF;AAcD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAiDD;;;;;;;;;;GAUG;AACH,wBAAuB,YAAY,CAClC,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACjC,aAAa,CAAC,SAAS,CAAC,CA2B1B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAAI,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAExF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACpC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,GACrD,iBAAiB,CA+BnB"}
@@ -3,40 +3,24 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Shared utilities for the `wof-admin` / `wof-postalcode` GeoJSON-bundle adapters.
6
+ * Shared utilities for the `wof-admin` / `wof-postalcode` GeoJSON-bundle adapters. They read the
7
+ * per-record bundles published as `github.com/whosonfirst-data/whosonfirst-data-{admin,postalcode}-<cc>`
8
+ * repos: a tree of `data/<3>/<3>/<3>/<wof-id>.geojson` files plus alternate-geometry siblings like
9
+ * `<id>-alt-quattroshapes.geojson`, of which only the canonical record is consumed.
7
10
  *
8
- * The Phase 1.5.1 pivot moved both adapters off the SpatiaLite distribution (dead mirror, empty
9
- * `names` table) and onto the per-record GeoJSON bundles published as
10
- * `github.com/whosonfirst-data/whosonfirst-data-{admin,postalcode}-<cc>` repos. Each repo carries
11
- * a tree of `data/<3>/<3>/<3>/<wof-id>.geojson` files plus alternate-geometry siblings like
12
- * `<id>-alt-quattroshapes.geojson`. The adapter only consumes the canonical record (no `-alt-`
13
- * files); the alternate geometries are irrelevant to the name/hierarchy concerns Phase 1 cares
14
- * about.
15
- *
16
- * This module provides:
17
- *
18
- * - `WOFRecord`: the lightweight per-feature shape both adapters carry in their ancestry index.
19
- * - `walkFeatures`: streaming directory walk → parsed `WOFRecord`s (skips alt files, bad JSON,
20
- * deprecated records).
21
- * - `buildAncestryIndex`: in-memory ancestry chain construction (`Map<id, ancestors[]>`).
22
- * - `extractNameVariants`: pulls `name:*` localized name lists off a feature's properties.
23
- * - `normalizeNameKey`: turns `"name:eng_x_colloquial"` into `"name-eng-x-colloquial"` for safe use
24
- * in `source_id` suffixes.
25
- *
26
- * `is_current` semantics follow WOF + Pelias: `mz:is_current` ∈ {`1`, `-1`} are live; `0` is
27
- * superseded. WOF's official postalcode distribution stamps every row with `-1` ("unknown but
28
- * treated as active"), which is why the previous SpatiaLite adapter's `is_current = 1` filter
29
- * silently emitted zero rows from the real corpus.
11
+ * `is_current` semantics follow WOF + Pelias: `mz:is_current` ∈ {`1`, `-1`} are live and `0` is
12
+ * superseded. WOF's official postalcode distribution stamps every row `-1` ("unknown but treated as
13
+ * active"), so an `is_current = 1` filter silently emits zero rows from the real corpus.
30
14
  */
31
15
  import { readLocalTextFile } from "@mailwoman/core/fs/readers";
32
16
  import { tryParsingJSON } from "@mailwoman/core/json";
33
17
  import { Globerator } from "spliterator/node/fs";
34
18
  /**
35
- * `mz:is_current` ∈ {`1`, `-1`} → keep. `0` → drop.
19
+ * `mz:is_current` ∈ {`1`, `-1`} → keep, `0` → drop.
36
20
  *
37
- * Real WOF postalcode distros tag every row `-1` ("unknown but treated as active"); the Pelias importer accepts `-1`
38
- * alongside `1`. Tightening the predicate to `= 1` is the trap: the postalcode distros then contribute ZERO rows to the
39
- * corpus, silently, with nothing raised to notice it by.
21
+ * Real WOF postalcode distros tag every row `-1` ("unknown but treated as active") and the
22
+ * Pelias importer accepts `-1` alongside `1`; tightening the predicate to `= 1` makes the
23
+ * postalcode distros contribute zero rows to the corpus, silently, with no error to notice it by.
40
24
  */
41
25
  export function isCurrentFeature(props) {
42
26
  const raw = props["mz:is_current"];
@@ -44,37 +28,45 @@ export function isCurrentFeature(props) {
44
28
  return n !== 0;
45
29
  }
46
30
  /**
47
- * Pull `name:*` localized variants off a WOF feature's properties. WOF stores variants as arrays (`["Saint
48
- * Petersburg"]`); we lift the first non-empty string. Multiple-value variants (rare; usually historical aliases) are
49
- * not split into separate rows by this helper — adapters can opt in by iterating the underlying array if they need it.
31
+ * Pull `name:*` localized variants off a WOF feature's properties, lifting the first
32
+ * non-empty string from the array WOF stores them in (`["Saint Petersburg"]`);
33
+ * Multiple-value variants are rare and usually historical aliases.
34
+ *
35
+ * This function keeps them together.
36
+ * An adapter that needs separate values can iterate the underlying array.
50
37
  */
51
38
  export function extractNameVariants(props) {
52
39
  const out = new Map();
53
40
  for (const [key, value] of Object.entries(props)) {
54
41
  if (!key.startsWith("name:"))
55
42
  continue;
56
- const candidate = Array.isArray(value)
57
- ? value.find((v) => typeof v === "string" && v.trim().length > 0)
58
- : typeof value === "string" && value.trim().length
59
- ? value
60
- : undefined;
43
+ const candidate = firstNonBlankString(value);
61
44
  if (candidate) {
62
- out.set(key, candidate.trim());
45
+ out.set(key, candidate);
63
46
  }
64
47
  }
65
48
  return out;
66
49
  }
50
+ function firstNonBlankString(value) {
51
+ for (const candidate of Array.isArray(value) ? value : [value]) {
52
+ if (typeof candidate !== "string")
53
+ continue;
54
+ const normalized = candidate.trim();
55
+ if (normalized)
56
+ return normalized;
57
+ }
58
+ return null;
59
+ }
67
60
  /**
68
- * Turn a `name:*` property key into a hyphen-safe suffix fragment for `source_id`.
69
- *
70
- * `"name:eng_x_colloquial"` → `"name-eng-x-colloquial"`. `:` and `_` both become `-` because both collide with the
71
- * existing source_id separator vocabulary and downstream consumers split on `-`.
61
+ * Turn a `name:*` property key into a hyphen-safe suffix fragment for `source_id`
62
+ * (`"name:eng_x_colloquial"` → `"name-eng-x-colloquial"`); both `:` and `_` become `-`
63
+ * because both collide with the separator vocabulary downstream consumers split on.
72
64
  */
73
65
  export function normalizeNameKey(rawKey) {
74
66
  return rawKey.replaceAll(/[:_]/g, "-");
75
67
  }
76
68
  /**
77
- * Result of parsing a single GeoJSON file. `null` means "skip this row" (any reason).
69
+ * Parse a single GeoJSON feature; `null` means skip this row for any reason.
78
70
  */
79
71
  function recordFromFeature(feature) {
80
72
  if (!feature || feature.type !== "Feature" || !feature.properties)
@@ -90,9 +82,10 @@ function recordFromFeature(feature) {
90
82
  const placetype = props["wof:placetype"];
91
83
  if (typeof placetype !== "string" || !placetype)
92
84
  return null;
93
- const country = props["wof:country"];
94
- if (typeof country !== "string" || !country)
85
+ const rawCountry = props["wof:country"];
86
+ if (typeof rawCountry !== "string" || !rawCountry)
95
87
  return null;
88
+ const country = rawCountry.toUpperCase();
96
89
  if (!isCurrentFeature(props))
97
90
  return null;
98
91
  const parentRaw = props["wof:parent_id"];
@@ -111,21 +104,22 @@ function recordFromFeature(feature) {
111
104
  };
112
105
  }
113
106
  /**
114
- * Stream every canonical GeoJSON file under `repoDir` and yield parsed `WOFRecord`s.
107
+ * Stream every canonical GeoJSON file under `repoDir` and yield parsed `WOFRecord`s;
108
+ * `repoDir` may be a single cloned `whosonfirst-data-*` repo or a parent holding several
109
+ * (the corpus pipeline clones all four into a shared `wof/repos/` root).
115
110
  *
116
- * `repoDir` may point at a single cloned `whosonfirst-data-*` repo OR at a parent directory holding several such repos
117
- * (the corpus pipeline clones all four into a shared `wof/repos/` root and runs the adapter against that root).
118
- * `**\/*.geojson` walks the whole tree; `-alt-` siblings are skipped since they're alternate-geometry exports, not new
119
- * records.
111
+ * `-alt-` siblings are skipped as alternate-geometry exports.
112
+ * They do not represent new records.
120
113
  *
121
- * Errors per-file (unreadable, malformed JSON, missing properties) are swallowed so one bad file doesn't poison a 3 GB
122
- * walk. Adapters can add stricter validation downstream if they need it.
114
+ * Per-file errors (unreadable files, malformed JSON, or missing properties) are swallowed
115
+ * so one bad file does not poison a multi-gigabyte walk.
123
116
  */
124
117
  export async function* walkFeatures(repoDir, opts = {}) {
125
118
  for await (const filePath of Globerator.from("**/*.geojson", {
126
119
  cwd: repoDir,
120
+ absolute: true,
127
121
  exclude: ["**/*-alt-*.geojson"],
128
- // Preserve the recursive fast-glob walk this replaces: bundle repositories can expose data through a link.
122
+ // Bundle repositories can expose their data through a link.
129
123
  followSymlinks: true,
130
124
  signal: opts.signal,
131
125
  })) {
@@ -137,7 +131,7 @@ export async function* walkFeatures(repoDir, opts = {}) {
137
131
  continue;
138
132
  }
139
133
  const parsed = tryParsingJSON(text);
140
- if (parsed === null)
134
+ if (!parsed)
141
135
  continue;
142
136
  const rec = recordFromFeature(parsed);
143
137
  if (rec) {
@@ -145,10 +139,32 @@ export async function* walkFeatures(repoDir, opts = {}) {
145
139
  }
146
140
  }
147
141
  }
148
- export function buildAncestryIndex(byID) {
142
+ /**
143
+ * The component tags a variant builder looks an ancestor up by.
144
+ *
145
+ * Measured over both adapters on 2026-09-28: `variantsFor` reads the nearest `region`
146
+ * and `country` ancestor, `postcodeVariantsFor` reads the nearest `locality`, `region` and `country`,
147
+ * and each one reads the ancestor's `placetype` to classify it and its `name` to use it.
148
+ * No caller reads an ancestor's `nameVariants`, `id`, `parent_id` or `country`.
149
+ */
150
+ export const ANCESTOR_NAME_TAGS = ["locality", "region", "country"];
151
+ /**
152
+ * Resolves {@linkcode AncestorNameIndex} from a record index.
153
+ *
154
+ * `tagOf` maps a WOF placetype to a component tag, or returns a value outside
155
+ * {@linkcode ANCESTOR_NAME_TAGS} for a placetype no builder looks up.
156
+ * It is a parameter because `placetypeToTag` lives with the adapters and this module does not import them.
157
+ *
158
+ * The walk stops at the first `parent_id` absent from `byID`, and a cycle guard halts at any re-visit.
159
+ * WOF data is acyclic by construction.
160
+ * The guard keeps a corrupt fixture from looping the adapter.
161
+ *
162
+ * A record whose ancestors are absent resolves the tags it can reach rather than failing.
163
+ */
164
+ export function buildAncestorNameIndex(byID, tagOf) {
149
165
  const index = new Map();
150
166
  for (const [id, rec] of byID) {
151
- const chain = [];
167
+ const names = {};
152
168
  const guard = new Set([id]);
153
169
  let cur = rec.parent_id;
154
170
  while (cur !== null && cur > 0) {
@@ -157,11 +173,16 @@ export function buildAncestryIndex(byID) {
157
173
  break;
158
174
  if (guard.has(parent.id))
159
175
  break;
160
- chain.push(parent);
176
+ const tag = tagOf(parent.placetype);
177
+ for (const wanted of ANCESTOR_NAME_TAGS) {
178
+ if (tag === wanted && !names[wanted]) {
179
+ names[wanted] = parent.name;
180
+ }
181
+ }
161
182
  guard.add(parent.id);
162
183
  cur = parent.parent_id;
163
184
  }
164
- index.set(id, chain);
185
+ index.set(id, names);
165
186
  }
166
187
  return index;
167
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wof-json.js","sourceRoot":"","sources":["../../lib/utils/wof-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wof-json.js","sourceRoot":"","sources":["../../lib/utils/wof-json.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,8 @@
6
6
  export * from "#utils/align";
7
7
  export * from "#build";
8
8
  export * from "#utils/golden";
9
- export * from "#utils/parquet";
10
9
  export * from "#utils/license";
11
10
  export * from "#utils/split";
12
11
  export * from "#utils/tokenize";
13
12
  export * from "#utils/wof-json";
14
- //# sourceMappingURL=index.js.map
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
@@ -6,9 +6,8 @@
6
6
  export * from "#utils/align";
7
7
  export * from "#build";
8
8
  export * from "#utils/golden";
9
- export * from "#utils/parquet";
10
9
  export * from "#utils/license";
11
10
  export * from "#utils/split";
12
11
  export * from "#utils/tokenize";
13
12
  export * from "#utils/wof-json";
14
- //# sourceMappingURL=index.d.ts.map
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
@@ -3,15 +3,16 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * A bounded, reviewed source for Venezuela's `locality postcode, region` convention (#1821).
7
- * Bulk sources yielded zero Venezuelan tuples, so this recipe reads four reviewed facts and applies
8
- * only transformations that do not create another postcode-to-place join.
6
+ * Renders four hand-reviewed Venezuelan postcode facts in the `locality postcode, region` order.
9
7
  */
8
+ import type { PathBuilderLike } from "path-ts";
10
9
  import { type CorpusRecipe } from "#recipes/scaffold";
11
10
  /**
12
- * A separate sampler bucket so a receipt measures these reviewed after-locality rows and no other postcode placement.
11
+ * The source label for these rows.
12
+ *
13
+ * The rows get their own sampler bucket so an eval can measure them apart from other postcode placements.
13
14
  */
14
- export declare const REVIEWED_POSTCODE_TAIL_SOURCE = "synth-reviewed-postcode-tail";
15
+ export declare const REVIEWED_POSTCODE_TAIL_SOURCE: string;
15
16
  interface ReviewedTupleProvenance {
16
17
  publisher: string;
17
18
  url: string;
@@ -19,6 +20,9 @@ interface ReviewedTupleProvenance {
19
20
  reviewStatus: "reviewed";
20
21
  sourceLicenseNote: string;
21
22
  }
23
+ /**
24
+ * One reviewed postcode fact and the source it was read from.
25
+ */
22
26
  export interface ReviewedPostcodeTuple {
23
27
  id: string;
24
28
  locality: string;
@@ -36,11 +40,25 @@ interface Variant {
36
40
  raw: string;
37
41
  components: Record<string, string>;
38
42
  }
43
+ /**
44
+ * Returns the path of the committed reviewed-tuple data file.
45
+ */
39
46
  export declare function defaultReviewedPostcodeTuplePath(): string;
40
- export declare function readReviewedPostcodeTuples(path?: string): Promise<ReviewedPostcodeTuple[]>;
47
+ /**
48
+ * Reads and validates the reviewed tuples.
49
+ *
50
+ * @throws When the file does not hold exactly four complete, unique, reviewed tuples.
51
+ */
52
+ export declare function readReviewedPostcodeTuples(path?: PathBuilderLike): Promise<ReviewedPostcodeTuple[]>;
53
+ /**
54
+ * Returns the surface variants of one tuple.
55
+ *
56
+ * Every variant reuses the tuple's own locality, postcode and region, so no variant
57
+ * pairs a postcode with a place the review did not cover.
58
+ */
41
59
  export declare function reviewedPostcodeTailVariants(tuple: ReviewedPostcodeTuple): Variant[];
42
60
  /**
43
- * Emit bounded surface variants of the committed reviewed facts without constructing another geographic join.
61
+ * The corpus recipe that emits every variant of every reviewed tuple.
44
62
  */
45
63
  export declare const reviewedPostcodeTailRecipe: CorpusRecipe;
46
64
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"reviewed-postcode-tail.d.ts","sourceRoot":"","sources":["../../../lib/ve/recipes/reviewed-postcode-tail.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAiB,MAAM,mBAAmB,CAAA;AAEnF;;GAEG;AACH,eAAO,MAAM,6BAA6B,iCAAiC,CAAA;AAO3E,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,UAAU,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,WAAW,CAAA;IACpB,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,OAAO,CAAA;IACf,iBAAiB,EAAE,gBAAgB,CAAA;IACnC,UAAU,EAAE,uBAAuB,CAAA;CACnC;AAQD,KAAK,SAAS,GACX,mBAAmB,GACnB,sBAAsB,GACtB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,eAAe,CAAA;AAElB,UAAU,OAAO;IAChB,EAAE,EAAE,SAAS,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAID,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD;AAED,wBAAsB,0BAA0B,CAC/C,IAAI,SAAqC,GACvC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAsClC;AAID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,EAAE,CAkCpF;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,YAkCxC,CAAA"}
1
+ {"version":3,"file":"reviewed-postcode-tail.d.ts","sourceRoot":"","sources":["../../../lib/ve/recipes/reviewed-postcode-tail.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAiB,KAAK,YAAY,EAAkB,MAAM,mBAAmB,CAAA;AAKpF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAsD,CAAA;AAIhG,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,UAAU,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,WAAW,CAAA;IACpB,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,OAAO,CAAA;IACf,iBAAiB,EAAE,gBAAgB,CAAA;IACnC,UAAU,EAAE,uBAAuB,CAAA;CACnC;AAQD,KAAK,SAAS,GACX,mBAAmB,GACnB,sBAAsB,GACtB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,eAAe,CAAA;AAElB,UAAU,OAAO;IAChB,EAAE,EAAE,SAAS,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAID;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC/C,IAAI,GAAE,eAAoD,GACxD,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAsClC;AAID;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,EAAE,CAkCpF;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,YA2CxC,CAAA"}