@mailwoman/corpus 10.0.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1372) 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 +785 -0
  20. package/lib/adapters/dedup-key.ts +40 -0
  21. package/lib/adapters/errors.ts +21 -0
  22. package/lib/adapters/geonames/adapter.ts +42 -52
  23. package/lib/adapters/geonames/postal/adapter.ts +31 -37
  24. package/lib/adapters/gleif/adapter.ts +828 -0
  25. package/lib/adapters/libpostal-dictionary.ts +39 -0
  26. package/lib/adapters/openaddresses/adapter.ts +51 -55
  27. package/lib/adapters/osm/adapter.ts +148 -70
  28. package/lib/adapters/overture/adapter.ts +52 -43
  29. package/lib/adapters/po-box/adapter.ts +202 -0
  30. package/lib/adapters/registry.ts +79 -0
  31. package/lib/adapters/sha256-stream.ts +49 -0
  32. package/lib/adapters/source-id.ts +49 -0
  33. package/lib/adapters/street-line.ts +135 -0
  34. package/lib/adapters/wof/admin/json/adapter.ts +48 -33
  35. package/lib/adapters/wof/json-rows.ts +56 -26
  36. package/lib/adapters/wof/postalcode-json/adapter.ts +57 -59
  37. package/lib/adapters.ts +230 -0
  38. package/lib/au/adapters/gnaf/adapter.ts +35 -43
  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 +670 -0
  42. package/lib/be/adapters/wallonie/adapter.ts +537 -0
  43. package/lib/be/tools/fetch/brussels.ts +239 -0
  44. package/lib/be/tools/fetch/wallonie.ts +274 -0
  45. package/lib/build/adapters.ts +110 -0
  46. package/lib/build/align.ts +364 -0
  47. package/lib/build/checkpoint.ts +131 -0
  48. package/lib/build/eligibility.ts +96 -0
  49. package/lib/build/heap.ts +53 -0
  50. package/lib/build/inputs.ts +81 -0
  51. package/lib/build/rows.ts +21 -0
  52. package/lib/build/types.ts +232 -0
  53. package/lib/build.ts +127 -315
  54. package/lib/cn/recipes/organizational-units.ts +20 -41
  55. package/lib/cz/adapters/cuzk/adapter.ts +317 -0
  56. package/lib/cz/recipes/pcfirst-preposition.ts +40 -27
  57. package/lib/cz/tools/fetch/cuzk.ts +699 -0
  58. package/lib/de/recipes/locale.ts +68 -58
  59. package/lib/directory.ts +31 -0
  60. package/lib/dk/adapters/inspire/adapter.ts +345 -0
  61. package/lib/dk/tools/fetch/inspire.ts +321 -0
  62. package/lib/ee/adapters/ads/adapter.ts +246 -0
  63. package/lib/ee/tools/fetch/ads.ts +270 -0
  64. package/lib/env.ts +6 -2
  65. package/lib/es/adapters/bizkaia/adapter.ts +388 -0
  66. package/lib/es/adapters/catastro/adapter.ts +343 -0
  67. package/lib/es/adapters/gipuzkoa/adapter.ts +263 -0
  68. package/lib/es/adapters/navarra/adapter.ts +289 -0
  69. package/lib/es/cadastre.ts +194 -0
  70. package/lib/es/tools/fetch/bizkaia.ts +748 -0
  71. package/lib/es/tools/fetch/catastro.ts +754 -0
  72. package/lib/es/tools/fetch/gipuzkoa.ts +336 -0
  73. package/lib/es/tools/fetch/navarra.ts +488 -0
  74. package/lib/fi/adapters/ryhti/adapter.ts +323 -0
  75. package/lib/fi/tools/fetch/ryhti.ts +476 -0
  76. package/lib/fingerprints.ts +154 -0
  77. package/lib/fr/adapters/annuaire-education/adapter.ts +598 -0
  78. package/lib/fr/adapters/ban/adapter.ts +87 -59
  79. package/lib/fr/adapters/finess/adapter.ts +618 -0
  80. package/lib/fr/adapters/finess/postal-lines.ts +157 -0
  81. package/lib/fr/adapters/finess/voie-type.ts +200 -0
  82. package/lib/fr/insee-country.ts +62 -0
  83. package/lib/fr/recipes/admin-split.ts +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 +109 -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 +306 -0
  90. package/lib/fr/tools/fetch/ban.ts +28 -19
  91. package/lib/fr/tools/fetch/finess.ts +352 -0
  92. package/lib/gauntlet-inputs.ts +92 -0
  93. package/lib/index.ts +9 -3
  94. package/lib/inspire/address.ts +457 -0
  95. package/lib/inspire/archive.ts +44 -0
  96. package/lib/inspire/errors.ts +71 -0
  97. package/lib/inspire/stream.ts +262 -0
  98. package/lib/international/recipes/locale.ts +134 -176
  99. package/lib/it/adapters/anac/adapter.ts +522 -0
  100. package/lib/it/tools/fetch/anac.ts +394 -0
  101. package/lib/jp/adapters/wof-admin/adapter.ts +27 -17
  102. package/lib/jp/tools/fetch/houjin.ts +16 -18
  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 +33 -26
  107. package/lib/kr/tools/fetch/juso.ts +19 -21
  108. package/lib/kr/tools/fetch/localdata.ts +28 -29
  109. package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
  110. package/lib/lu/tools/fetch/bd-adresses.ts +351 -0
  111. package/lib/lv/adapters/varis/adapter.ts +499 -0
  112. package/lib/lv/tools/fetch/varis.ts +214 -0
  113. package/lib/nl/adapters/kadaster/adapter.ts +386 -0
  114. package/lib/nl/recipes/postcode.ts +46 -24
  115. package/lib/nl/tools/fetch/kadaster.ts +298 -0
  116. package/lib/no/adapters/matrikkelen/adapter.ts +187 -0
  117. package/lib/no/recipes/fragment.ts +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 +519 -0
  121. package/lib/parquet/duckdb.ts +144 -0
  122. package/lib/parquet/readers.ts +86 -0
  123. package/lib/parquet/schema.ts +214 -0
  124. package/lib/parquet/shuffle.ts +59 -0
  125. package/lib/parquet/span-sql.ts +54 -0
  126. package/lib/parquet/streams.ts +113 -0
  127. package/lib/parquet/writers.ts +451 -0
  128. package/lib/pl/adapters/emuia/adapter.ts +202 -0
  129. package/lib/pl/tools/fetch/emuia.ts +360 -0
  130. package/lib/recipes/anchor-absorption.ts +30 -19
  131. package/lib/recipes/bare/country.ts +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 +36 -19
  135. package/lib/recipes/country-balanced.ts +66 -86
  136. package/lib/recipes/house-venue.ts +31 -13
  137. package/lib/recipes/intersection.ts +82 -60
  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 +28 -16
  143. package/lib/recipes/po/box/cedex/sources.ts +3 -3
  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 +252 -153
  147. package/lib/recipes/sources.ts +399 -0
  148. package/lib/recipes/street/affix.ts +54 -154
  149. package/lib/recipes/street/bare.ts +28 -15
  150. package/lib/recipes/street.ts +32 -8
  151. package/lib/recipes/sub/venue/context.ts +30 -23
  152. package/lib/recipes/sub/venue/render.ts +170 -0
  153. package/lib/recipes/sub/venue/sources.ts +68 -219
  154. package/lib/recipes/sub/venue.ts +801 -0
  155. package/lib/recipes/trailing-region.ts +69 -85
  156. package/lib/recipes/unit/sources.ts +44 -0
  157. package/lib/recipes/unit.ts +101 -89
  158. package/lib/{recipes/index.ts → recipes.ts} +13 -11
  159. package/lib/registers.ts +278 -0
  160. package/lib/ro/adapters/retea-scolara/adapter.ts +264 -0
  161. package/lib/ro/tools/fetch/retea-scolara.ts +187 -0
  162. package/lib/runner.ts +220 -84
  163. package/lib/sg/recipes/register.ts +46 -52
  164. package/lib/sg/tools/fetch/acra.ts +20 -25
  165. package/lib/si/recipes/bare-village.ts +34 -17
  166. package/lib/sk/adapters/inspire/adapter.ts +395 -0
  167. package/lib/sk/tools/fetch/inspire.ts +402 -0
  168. package/lib/source-register/effective-manifest.ts +659 -0
  169. package/lib/source-register/register.ts +539 -0
  170. package/lib/source-register/training-manifest.ts +218 -0
  171. package/lib/source-register/types.ts +590 -0
  172. package/lib/source-register.ts +71 -0
  173. package/lib/south-asia/recipes/register.ts +45 -26
  174. package/lib/subvenue/harvest.ts +251 -0
  175. package/lib/{tools/sub/venue → subvenue}/promotions.ts +33 -70
  176. package/lib/subvenue/surfaces.ts +94 -0
  177. package/lib/subvenue/table.ts +264 -0
  178. package/lib/surfaces/locale.ts +246 -0
  179. package/lib/synthesizers/anchor-absorption.ts +55 -91
  180. package/lib/synthesizers/boundary-stress.ts +49 -131
  181. package/lib/synthesizers/house-venue.ts +44 -102
  182. package/lib/synthesizers/intersection.ts +37 -26
  183. package/lib/synthesizers/no-street.ts +70 -119
  184. package/lib/synthesizers/po-box.ts +90 -105
  185. package/lib/synthesizers/street.ts +46 -34
  186. package/lib/synthesizers/utils.ts +64 -218
  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 +113 -118
  191. package/lib/tools/corpus-stats.ts +44 -30
  192. package/lib/tools/fetch/atom.ts +164 -0
  193. package/lib/tools/fetch/cordis.ts +318 -0
  194. package/lib/tools/fetch/download/manifest.ts +34 -22
  195. package/lib/tools/fetch/download/network.ts +55 -31
  196. package/lib/tools/fetch/download/retry.ts +26 -25
  197. package/lib/tools/fetch/geonames/dump.ts +72 -54
  198. package/lib/tools/fetch/geonames/postal.ts +27 -62
  199. package/lib/tools/fetch/gleif.ts +360 -0
  200. package/lib/tools/fetch/header.ts +69 -0
  201. package/lib/tools/fetch/inspire-addresses.ts +495 -0
  202. package/lib/tools/fetch/openaddresses.ts +22 -111
  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 +943 -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 +143 -0
  210. package/lib/tools/golden/expand.ts +74 -43
  211. package/lib/tools/golden/promote.ts +41 -32
  212. package/lib/tools/golden/relabel-street/directory.ts +63 -36
  213. package/lib/tools/golden/relabel-street/row.ts +28 -106
  214. package/lib/tools/ingest-csv.ts +45 -48
  215. package/lib/tools/jsonl-to-parquet.ts +59 -98
  216. package/lib/tools/lint/recipe-output/vocab.ts +366 -0
  217. package/lib/tools/lint/{slice/index.ts → recipe-output.ts} +107 -121
  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 +43 -36
  222. package/lib/tools/overlay/manifest.ts +407 -0
  223. package/lib/tools/overlay/merge-source.ts +138 -0
  224. package/lib/tools/overlay/split-slice.ts +144 -0
  225. package/lib/tools/{slice → overlay}/translit.ts +74 -58
  226. package/lib/tools/overture-subvenue.ts +17 -90
  227. package/lib/tools/postcode-triples.ts +281 -210
  228. package/lib/tools/source-register/build.ts +819 -0
  229. package/lib/tools/sub/venue/head-nouns.ts +38 -75
  230. package/lib/tools/sub/venue/lexicon.ts +71 -106
  231. package/lib/tools/sub/venue/wikidata.ts +13 -10
  232. package/lib/tools.ts +31 -0
  233. package/lib/tw/tools/fetch/gcis.ts +17 -16
  234. package/lib/types.ts +304 -101
  235. package/lib/us/adapters/fcc-bdc/adapter.ts +26 -41
  236. package/lib/us/adapters/state/hi-schools/adapter.ts +28 -17
  237. package/lib/us/adapters/state/hi-schools/workbook.ts +7 -2
  238. package/lib/us/adapters/state/ia-contractors/adapter.ts +27 -15
  239. package/lib/us/adapters/state/ny-notaries/adapter.ts +24 -25
  240. package/lib/us/adapters/state/tx-notaries/adapter.ts +21 -15
  241. package/lib/us/adapters/tiger/adapter.ts +19 -44
  242. package/lib/us/adapters/tiger/street-decompose.ts +7 -17
  243. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +49 -34
  244. package/lib/us/adapters/usgov/imls-pls/adapter.ts +25 -19
  245. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +32 -23
  246. package/lib/us/adapters/usgov/nad/adapter.ts +51 -112
  247. package/lib/us/adapters/usgov/nppes/adapter.ts +72 -35
  248. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +43 -30
  249. package/lib/us/fips-state.ts +17 -8
  250. package/lib/us/tools/fetch/hrsa.ts +7 -8
  251. package/lib/us/tools/fetch/imls-pls.ts +17 -35
  252. package/lib/us/tools/fetch/nad.ts +50 -32
  253. package/lib/us/tools/fetch/nppes.ts +23 -35
  254. package/lib/us/tools/fetch/state/hi-schools.ts +22 -16
  255. package/lib/us/tools/fetch/state/sources.ts +12 -12
  256. package/lib/us/tools/fetch/tiger-full.ts +21 -73
  257. package/lib/utils/align.ts +42 -52
  258. package/lib/utils/{slice-stats.ts → cooccurrence-stats.ts} +22 -16
  259. package/lib/utils/golden.ts +34 -49
  260. package/lib/utils/license.ts +238 -26
  261. package/lib/utils/split.ts +205 -88
  262. package/lib/utils/tokenize.ts +22 -34
  263. package/lib/utils/wof-json.ts +129 -76
  264. package/lib/{utils/index.ts → utils.ts} +0 -1
  265. package/lib/ve/recipes/reviewed-postcode-tail.ts +40 -13
  266. package/out/adapters/cordis/adapter.d.ts +324 -0
  267. package/out/adapters/cordis/adapter.d.ts.map +1 -0
  268. package/out/adapters/cordis/adapter.js +616 -0
  269. package/out/adapters/cordis/adapter.js.map +1 -0
  270. package/out/adapters/dedup-key.d.ts +30 -0
  271. package/out/adapters/dedup-key.d.ts.map +1 -0
  272. package/out/adapters/dedup-key.js +35 -0
  273. package/out/adapters/dedup-key.js.map +1 -0
  274. package/out/adapters/errors.d.ts +17 -0
  275. package/out/adapters/errors.d.ts.map +1 -0
  276. package/out/adapters/errors.js +20 -0
  277. package/out/adapters/errors.js.map +1 -0
  278. package/out/adapters/geonames/adapter.d.ts +26 -28
  279. package/out/adapters/geonames/adapter.d.ts.map +1 -1
  280. package/out/adapters/geonames/adapter.js +39 -49
  281. package/out/adapters/geonames/adapter.js.map +1 -1
  282. package/out/adapters/geonames/postal/adapter.d.ts +14 -27
  283. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -1
  284. package/out/adapters/geonames/postal/adapter.js +30 -35
  285. package/out/adapters/geonames/postal/adapter.js.map +1 -1
  286. package/out/adapters/gleif/adapter.d.ts +293 -0
  287. package/out/adapters/gleif/adapter.d.ts.map +1 -0
  288. package/out/adapters/gleif/adapter.js +684 -0
  289. package/out/adapters/gleif/adapter.js.map +1 -0
  290. package/out/adapters/libpostal-dictionary.d.ts +22 -0
  291. package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
  292. package/out/adapters/libpostal-dictionary.js +36 -0
  293. package/out/adapters/libpostal-dictionary.js.map +1 -0
  294. package/out/adapters/openaddresses/adapter.d.ts +28 -43
  295. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  296. package/out/adapters/openaddresses/adapter.js +34 -46
  297. package/out/adapters/openaddresses/adapter.js.map +1 -1
  298. package/out/adapters/osm/adapter.d.ts +48 -42
  299. package/out/adapters/osm/adapter.d.ts.map +1 -1
  300. package/out/adapters/osm/adapter.js +116 -67
  301. package/out/adapters/osm/adapter.js.map +1 -1
  302. package/out/adapters/overture/adapter.d.ts +11 -37
  303. package/out/adapters/overture/adapter.d.ts.map +1 -1
  304. package/out/adapters/overture/adapter.js +45 -42
  305. package/out/adapters/overture/adapter.js.map +1 -1
  306. package/out/adapters/po-box/adapter.d.ts +63 -0
  307. package/out/adapters/po-box/adapter.d.ts.map +1 -0
  308. package/out/adapters/{synth-po-box → po-box}/adapter.js +45 -46
  309. package/out/adapters/po-box/adapter.js.map +1 -0
  310. package/out/adapters/registry.d.ts +55 -0
  311. package/out/adapters/registry.d.ts.map +1 -0
  312. package/out/adapters/registry.js +43 -0
  313. package/out/adapters/registry.js.map +1 -0
  314. package/out/adapters/sha256-stream.d.ts +26 -0
  315. package/out/adapters/sha256-stream.d.ts.map +1 -0
  316. package/out/adapters/sha256-stream.js +34 -0
  317. package/out/adapters/sha256-stream.js.map +1 -0
  318. package/out/adapters/source-id.d.ts +33 -0
  319. package/out/adapters/source-id.d.ts.map +1 -0
  320. package/out/adapters/source-id.js +42 -0
  321. package/out/adapters/source-id.js.map +1 -0
  322. package/out/adapters/street-line.d.ts +102 -0
  323. package/out/adapters/street-line.d.ts.map +1 -0
  324. package/out/adapters/street-line.js +117 -0
  325. package/out/adapters/street-line.js.map +1 -0
  326. package/out/adapters/wof/admin/json/adapter.d.ts +27 -18
  327. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -1
  328. package/out/adapters/wof/admin/json/adapter.js +47 -31
  329. package/out/adapters/wof/admin/json/adapter.js.map +1 -1
  330. package/out/adapters/wof/json-rows.d.ts +35 -19
  331. package/out/adapters/wof/json-rows.d.ts.map +1 -1
  332. package/out/adapters/wof/json-rows.js +35 -15
  333. package/out/adapters/wof/json-rows.js.map +1 -1
  334. package/out/adapters/wof/postalcode-json/adapter.d.ts +22 -38
  335. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -1
  336. package/out/adapters/wof/postalcode-json/adapter.js +55 -57
  337. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -1
  338. package/out/adapters.d.ts +75 -0
  339. package/out/adapters.d.ts.map +1 -0
  340. package/out/adapters.js +167 -0
  341. package/out/adapters.js.map +1 -0
  342. package/out/au/adapters/gnaf/adapter.d.ts +15 -27
  343. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -1
  344. package/out/au/adapters/gnaf/adapter.js +34 -42
  345. package/out/au/adapters/gnaf/adapter.js.map +1 -1
  346. package/out/au/adapters/gnaf/assemble.d.ts +15 -26
  347. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -1
  348. package/out/au/adapters/gnaf/assemble.js +26 -46
  349. package/out/au/adapters/gnaf/assemble.js.map +1 -1
  350. package/out/be/adapters/brussels/adapter.d.ts +212 -0
  351. package/out/be/adapters/brussels/adapter.d.ts.map +1 -0
  352. package/out/be/adapters/brussels/adapter.js +435 -0
  353. package/out/be/adapters/brussels/adapter.js.map +1 -0
  354. package/out/be/adapters/vlaanderen/adapter.d.ts +233 -0
  355. package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
  356. package/out/be/adapters/vlaanderen/adapter.js +416 -0
  357. package/out/be/adapters/vlaanderen/adapter.js.map +1 -0
  358. package/out/be/adapters/wallonie/adapter.d.ts +196 -0
  359. package/out/be/adapters/wallonie/adapter.d.ts.map +1 -0
  360. package/out/be/adapters/wallonie/adapter.js +437 -0
  361. package/out/be/adapters/wallonie/adapter.js.map +1 -0
  362. package/out/be/tools/fetch/brussels.d.ts +119 -0
  363. package/out/be/tools/fetch/brussels.d.ts.map +1 -0
  364. package/out/be/tools/fetch/brussels.js +146 -0
  365. package/out/be/tools/fetch/brussels.js.map +1 -0
  366. package/out/be/tools/fetch/wallonie.d.ts +119 -0
  367. package/out/be/tools/fetch/wallonie.d.ts.map +1 -0
  368. package/out/be/tools/fetch/wallonie.js +167 -0
  369. package/out/be/tools/fetch/wallonie.js.map +1 -0
  370. package/out/build/adapters.d.ts +33 -0
  371. package/out/build/adapters.d.ts.map +1 -0
  372. package/out/build/adapters.js +68 -0
  373. package/out/build/adapters.js.map +1 -0
  374. package/out/build/align.d.ts +73 -0
  375. package/out/build/align.d.ts.map +1 -0
  376. package/out/build/align.js +226 -0
  377. package/out/build/align.js.map +1 -0
  378. package/out/build/checkpoint.d.ts +94 -0
  379. package/out/build/checkpoint.d.ts.map +1 -0
  380. package/out/build/checkpoint.js +59 -0
  381. package/out/build/checkpoint.js.map +1 -0
  382. package/out/build/eligibility.d.ts +47 -0
  383. package/out/build/eligibility.d.ts.map +1 -0
  384. package/out/build/eligibility.js +80 -0
  385. package/out/build/eligibility.js.map +1 -0
  386. package/out/build/heap.d.ts +28 -0
  387. package/out/build/heap.d.ts.map +1 -0
  388. package/out/build/heap.js +47 -0
  389. package/out/build/heap.js.map +1 -0
  390. package/out/build/inputs.d.ts +52 -0
  391. package/out/build/inputs.d.ts.map +1 -0
  392. package/out/build/inputs.js +49 -0
  393. package/out/build/inputs.js.map +1 -0
  394. package/out/build/rows.d.ts +16 -0
  395. package/out/build/rows.d.ts.map +1 -0
  396. package/out/build/rows.js +19 -0
  397. package/out/build/rows.js.map +1 -0
  398. package/out/build/types.d.ts +220 -0
  399. package/out/build/types.d.ts.map +1 -0
  400. package/out/build/types.js +34 -0
  401. package/out/build/types.js.map +1 -0
  402. package/out/build.d.ts +6 -121
  403. package/out/build.d.ts.map +1 -1
  404. package/out/build.js +112 -207
  405. package/out/build.js.map +1 -1
  406. package/out/cn/recipes/organizational-units.d.ts +5 -22
  407. package/out/cn/recipes/organizational-units.d.ts.map +1 -1
  408. package/out/cn/recipes/organizational-units.js +20 -41
  409. package/out/cn/recipes/organizational-units.js.map +1 -1
  410. package/out/cz/adapters/cuzk/adapter.d.ts +52 -0
  411. package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -0
  412. package/out/cz/adapters/cuzk/adapter.js +266 -0
  413. package/out/cz/adapters/cuzk/adapter.js.map +1 -0
  414. package/out/cz/recipes/pcfirst-preposition.d.ts +7 -11
  415. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -1
  416. package/out/cz/recipes/pcfirst-preposition.js +36 -27
  417. package/out/cz/recipes/pcfirst-preposition.js.map +1 -1
  418. package/out/cz/tools/fetch/cuzk.d.ts +272 -0
  419. package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
  420. package/out/cz/tools/fetch/cuzk.js +446 -0
  421. package/out/cz/tools/fetch/cuzk.js.map +1 -0
  422. package/out/de/recipes/locale.d.ts +24 -26
  423. package/out/de/recipes/locale.d.ts.map +1 -1
  424. package/out/de/recipes/locale.js +66 -56
  425. package/out/de/recipes/locale.js.map +1 -1
  426. package/out/directory.d.ts +20 -0
  427. package/out/directory.d.ts.map +1 -0
  428. package/out/directory.js +27 -0
  429. package/out/directory.js.map +1 -0
  430. package/out/dk/adapters/inspire/adapter.d.ts +154 -0
  431. package/out/dk/adapters/inspire/adapter.d.ts.map +1 -0
  432. package/out/dk/adapters/inspire/adapter.js +258 -0
  433. package/out/dk/adapters/inspire/adapter.js.map +1 -0
  434. package/out/dk/tools/fetch/inspire.d.ts +100 -0
  435. package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
  436. package/out/dk/tools/fetch/inspire.js +230 -0
  437. package/out/dk/tools/fetch/inspire.js.map +1 -0
  438. package/out/ee/adapters/ads/adapter.d.ts +109 -0
  439. package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
  440. package/out/ee/adapters/ads/adapter.js +191 -0
  441. package/out/ee/adapters/ads/adapter.js.map +1 -0
  442. package/out/ee/tools/fetch/ads.d.ts +123 -0
  443. package/out/ee/tools/fetch/ads.d.ts.map +1 -0
  444. package/out/ee/tools/fetch/ads.js +195 -0
  445. package/out/ee/tools/fetch/ads.js.map +1 -0
  446. package/out/env.d.ts +6 -2
  447. package/out/env.d.ts.map +1 -1
  448. package/out/env.js +6 -2
  449. package/out/env.js.map +1 -1
  450. package/out/es/adapters/bizkaia/adapter.d.ts +143 -0
  451. package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -0
  452. package/out/es/adapters/bizkaia/adapter.js +332 -0
  453. package/out/es/adapters/bizkaia/adapter.js.map +1 -0
  454. package/out/es/adapters/catastro/adapter.d.ts +104 -0
  455. package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
  456. package/out/es/adapters/catastro/adapter.js +288 -0
  457. package/out/es/adapters/catastro/adapter.js.map +1 -0
  458. package/out/es/adapters/gipuzkoa/adapter.d.ts +91 -0
  459. package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
  460. package/out/es/adapters/gipuzkoa/adapter.js +225 -0
  461. package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
  462. package/out/es/adapters/navarra/adapter.d.ts +105 -0
  463. package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
  464. package/out/es/adapters/navarra/adapter.js +241 -0
  465. package/out/es/adapters/navarra/adapter.js.map +1 -0
  466. package/out/es/cadastre.d.ts +109 -0
  467. package/out/es/cadastre.d.ts.map +1 -0
  468. package/out/es/cadastre.js +130 -0
  469. package/out/es/cadastre.js.map +1 -0
  470. package/out/es/tools/fetch/bizkaia.d.ts +278 -0
  471. package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
  472. package/out/es/tools/fetch/bizkaia.js +477 -0
  473. package/out/es/tools/fetch/bizkaia.js.map +1 -0
  474. package/out/es/tools/fetch/catastro.d.ts +272 -0
  475. package/out/es/tools/fetch/catastro.d.ts.map +1 -0
  476. package/out/es/tools/fetch/catastro.js +486 -0
  477. package/out/es/tools/fetch/catastro.js.map +1 -0
  478. package/out/es/tools/fetch/gipuzkoa.d.ts +162 -0
  479. package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
  480. package/out/es/tools/fetch/gipuzkoa.js +209 -0
  481. package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
  482. package/out/es/tools/fetch/navarra.d.ts +189 -0
  483. package/out/es/tools/fetch/navarra.d.ts.map +1 -0
  484. package/out/es/tools/fetch/navarra.js +316 -0
  485. package/out/es/tools/fetch/navarra.js.map +1 -0
  486. package/out/fi/adapters/ryhti/adapter.d.ts +115 -0
  487. package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
  488. package/out/fi/adapters/ryhti/adapter.js +244 -0
  489. package/out/fi/adapters/ryhti/adapter.js.map +1 -0
  490. package/out/fi/tools/fetch/ryhti.d.ts +206 -0
  491. package/out/fi/tools/fetch/ryhti.d.ts.map +1 -0
  492. package/out/fi/tools/fetch/ryhti.js +327 -0
  493. package/out/fi/tools/fetch/ryhti.js.map +1 -0
  494. package/out/fingerprints.d.ts +68 -0
  495. package/out/fingerprints.d.ts.map +1 -0
  496. package/out/fingerprints.js +130 -0
  497. package/out/fingerprints.js.map +1 -0
  498. package/out/fr/adapters/annuaire-education/adapter.d.ts +236 -0
  499. package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -0
  500. package/out/fr/adapters/annuaire-education/adapter.js +475 -0
  501. package/out/fr/adapters/annuaire-education/adapter.js.map +1 -0
  502. package/out/fr/adapters/ban/adapter.d.ts +19 -25
  503. package/out/fr/adapters/ban/adapter.d.ts.map +1 -1
  504. package/out/fr/adapters/ban/adapter.js +65 -54
  505. package/out/fr/adapters/ban/adapter.js.map +1 -1
  506. package/out/fr/adapters/finess/adapter.d.ts +276 -0
  507. package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
  508. package/out/fr/adapters/finess/adapter.js +519 -0
  509. package/out/fr/adapters/finess/adapter.js.map +1 -0
  510. package/out/fr/adapters/finess/postal-lines.d.ts +61 -0
  511. package/out/fr/adapters/finess/postal-lines.d.ts.map +1 -0
  512. package/out/fr/adapters/finess/postal-lines.js +114 -0
  513. package/out/fr/adapters/finess/postal-lines.js.map +1 -0
  514. package/out/fr/adapters/finess/voie-type.d.ts +77 -0
  515. package/out/fr/adapters/finess/voie-type.d.ts.map +1 -0
  516. package/out/fr/adapters/finess/voie-type.js +172 -0
  517. package/out/fr/adapters/finess/voie-type.js.map +1 -0
  518. package/out/fr/insee-country.d.ts +45 -0
  519. package/out/fr/insee-country.d.ts.map +1 -0
  520. package/out/fr/insee-country.js +60 -0
  521. package/out/fr/insee-country.js.map +1 -0
  522. package/out/fr/recipes/admin-split.d.ts +4 -27
  523. package/out/fr/recipes/admin-split.d.ts.map +1 -1
  524. package/out/fr/recipes/admin-split.js +36 -58
  525. package/out/fr/recipes/admin-split.js.map +1 -1
  526. package/out/fr/recipes/bare-street.d.ts +2 -17
  527. package/out/fr/recipes/bare-street.d.ts.map +1 -1
  528. package/out/fr/recipes/bare-street.js +35 -50
  529. package/out/fr/recipes/bare-street.js.map +1 -1
  530. package/out/fr/recipes/fragment.d.ts +6 -65
  531. package/out/fr/recipes/fragment.d.ts.map +1 -1
  532. package/out/fr/recipes/fragment.js +55 -135
  533. package/out/fr/recipes/fragment.js.map +1 -1
  534. package/out/fr/recipes/lieudit.d.ts +17 -19
  535. package/out/fr/recipes/lieudit.d.ts.map +1 -1
  536. package/out/fr/recipes/lieudit.js +88 -68
  537. package/out/fr/recipes/lieudit.js.map +1 -1
  538. package/out/fr/recipes/order.d.ts +4 -27
  539. package/out/fr/recipes/order.d.ts.map +1 -1
  540. package/out/fr/recipes/order.js +31 -58
  541. package/out/fr/recipes/order.js.map +1 -1
  542. package/out/fr/{adapters/ban/street-decompose.d.ts → street-decompose.d.ts} +3 -2
  543. package/out/fr/street-decompose.d.ts.map +1 -0
  544. package/out/fr/{adapters/ban/street-decompose.js → street-decompose.js} +4 -3
  545. package/out/fr/street-decompose.js.map +1 -0
  546. package/out/fr/tools/fetch/annuaire-education.d.ts +130 -0
  547. package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
  548. package/out/fr/tools/fetch/annuaire-education.js +196 -0
  549. package/out/fr/tools/fetch/annuaire-education.js.map +1 -0
  550. package/out/fr/tools/fetch/ban.d.ts +9 -7
  551. package/out/fr/tools/fetch/ban.d.ts.map +1 -1
  552. package/out/fr/tools/fetch/ban.js +27 -18
  553. package/out/fr/tools/fetch/ban.js.map +1 -1
  554. package/out/fr/tools/fetch/finess.d.ts +145 -0
  555. package/out/fr/tools/fetch/finess.d.ts.map +1 -0
  556. package/out/fr/tools/fetch/finess.js +228 -0
  557. package/out/fr/tools/fetch/finess.js.map +1 -0
  558. package/out/gauntlet-inputs.d.ts +42 -0
  559. package/out/gauntlet-inputs.d.ts.map +1 -0
  560. package/out/gauntlet-inputs.js +78 -0
  561. package/out/gauntlet-inputs.js.map +1 -0
  562. package/out/index.d.ts +9 -3
  563. package/out/index.d.ts.map +1 -1
  564. package/out/index.js +9 -3
  565. package/out/index.js.map +1 -1
  566. package/out/inspire/address.d.ts +251 -0
  567. package/out/inspire/address.d.ts.map +1 -0
  568. package/out/inspire/address.js +384 -0
  569. package/out/inspire/address.js.map +1 -0
  570. package/out/inspire/archive.d.ts +36 -0
  571. package/out/inspire/archive.d.ts.map +1 -0
  572. package/out/inspire/archive.js +42 -0
  573. package/out/inspire/archive.js.map +1 -0
  574. package/out/inspire/errors.d.ts +55 -0
  575. package/out/inspire/errors.d.ts.map +1 -0
  576. package/out/inspire/errors.js +64 -0
  577. package/out/inspire/errors.js.map +1 -0
  578. package/out/inspire/stream.d.ts +137 -0
  579. package/out/inspire/stream.d.ts.map +1 -0
  580. package/out/inspire/stream.js +125 -0
  581. package/out/inspire/stream.js.map +1 -0
  582. package/out/international/recipes/locale.d.ts +38 -84
  583. package/out/international/recipes/locale.d.ts.map +1 -1
  584. package/out/international/recipes/locale.js +112 -151
  585. package/out/international/recipes/locale.js.map +1 -1
  586. package/out/it/adapters/anac/adapter.d.ts +267 -0
  587. package/out/it/adapters/anac/adapter.d.ts.map +1 -0
  588. package/out/it/adapters/anac/adapter.js +429 -0
  589. package/out/it/adapters/anac/adapter.js.map +1 -0
  590. package/out/it/tools/fetch/anac.d.ts +174 -0
  591. package/out/it/tools/fetch/anac.d.ts.map +1 -0
  592. package/out/it/tools/fetch/anac.js +272 -0
  593. package/out/it/tools/fetch/anac.js.map +1 -0
  594. package/out/jp/adapters/wof-admin/adapter.d.ts +14 -11
  595. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -1
  596. package/out/jp/adapters/wof-admin/adapter.js +27 -16
  597. package/out/jp/adapters/wof-admin/adapter.js.map +1 -1
  598. package/out/jp/tools/fetch/houjin.d.ts +7 -4
  599. package/out/jp/tools/fetch/houjin.d.ts.map +1 -1
  600. package/out/jp/tools/fetch/houjin.js +15 -11
  601. package/out/jp/tools/fetch/houjin.js.map +1 -1
  602. package/out/kr/adapters/juso/label-rows.d.ts +17 -31
  603. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -1
  604. package/out/kr/adapters/juso/label-rows.js +19 -41
  605. package/out/kr/adapters/juso/label-rows.js.map +1 -1
  606. package/out/kr/adapters/localdata/align.d.ts +4 -16
  607. package/out/kr/adapters/localdata/align.d.ts.map +1 -1
  608. package/out/kr/adapters/localdata/align.js +19 -30
  609. package/out/kr/adapters/localdata/align.js.map +1 -1
  610. package/out/kr/adapters/localdata/key-index.d.ts +13 -22
  611. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
  612. package/out/kr/adapters/localdata/key-index.js +15 -21
  613. package/out/kr/adapters/localdata/key-index.js.map +1 -1
  614. package/out/kr/adapters/localdata/permit-rows.d.ts +21 -14
  615. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -1
  616. package/out/kr/adapters/localdata/permit-rows.js +30 -25
  617. package/out/kr/adapters/localdata/permit-rows.js.map +1 -1
  618. package/out/kr/tools/fetch/juso.d.ts +11 -8
  619. package/out/kr/tools/fetch/juso.d.ts.map +1 -1
  620. package/out/kr/tools/fetch/juso.js +15 -14
  621. package/out/kr/tools/fetch/juso.js.map +1 -1
  622. package/out/kr/tools/fetch/localdata.d.ts +16 -9
  623. package/out/kr/tools/fetch/localdata.d.ts.map +1 -1
  624. package/out/kr/tools/fetch/localdata.js +23 -15
  625. package/out/kr/tools/fetch/localdata.js.map +1 -1
  626. package/out/lu/adapters/bd-adresses/adapter.d.ts +109 -0
  627. package/out/lu/adapters/bd-adresses/adapter.d.ts.map +1 -0
  628. package/out/lu/adapters/bd-adresses/adapter.js +196 -0
  629. package/out/lu/adapters/bd-adresses/adapter.js.map +1 -0
  630. package/out/lu/tools/fetch/bd-adresses.d.ts +163 -0
  631. package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -0
  632. package/out/lu/tools/fetch/bd-adresses.js +223 -0
  633. package/out/lu/tools/fetch/bd-adresses.js.map +1 -0
  634. package/out/lv/adapters/varis/adapter.d.ts +283 -0
  635. package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
  636. package/out/lv/adapters/varis/adapter.js +404 -0
  637. package/out/lv/adapters/varis/adapter.js.map +1 -0
  638. package/out/lv/tools/fetch/varis.d.ts +80 -0
  639. package/out/lv/tools/fetch/varis.d.ts.map +1 -0
  640. package/out/lv/tools/fetch/varis.js +133 -0
  641. package/out/lv/tools/fetch/varis.js.map +1 -0
  642. package/out/nl/adapters/kadaster/adapter.d.ts +125 -0
  643. package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -0
  644. package/out/nl/adapters/kadaster/adapter.js +310 -0
  645. package/out/nl/adapters/kadaster/adapter.js.map +1 -0
  646. package/out/nl/recipes/postcode.d.ts +12 -14
  647. package/out/nl/recipes/postcode.d.ts.map +1 -1
  648. package/out/nl/recipes/postcode.js +42 -24
  649. package/out/nl/recipes/postcode.js.map +1 -1
  650. package/out/nl/tools/fetch/kadaster.d.ts +155 -0
  651. package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
  652. package/out/nl/tools/fetch/kadaster.js +179 -0
  653. package/out/nl/tools/fetch/kadaster.js.map +1 -0
  654. package/out/no/adapters/matrikkelen/adapter.d.ts +44 -0
  655. package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -0
  656. package/out/no/adapters/matrikkelen/adapter.js +143 -0
  657. package/out/no/adapters/matrikkelen/adapter.js.map +1 -0
  658. package/out/no/recipes/fragment.d.ts +1 -33
  659. package/out/no/recipes/fragment.d.ts.map +1 -1
  660. package/out/no/recipes/fragment.js +23 -57
  661. package/out/no/recipes/fragment.js.map +1 -1
  662. package/out/no/recipes/street/led.d.ts +9 -12
  663. package/out/no/recipes/street/led.d.ts.map +1 -1
  664. package/out/no/recipes/street/led.js +34 -24
  665. package/out/no/recipes/street/led.js.map +1 -1
  666. package/out/no/recipes/street.d.ts +19 -0
  667. package/out/no/recipes/street.d.ts.map +1 -0
  668. package/out/no/recipes/{street/index.js → street.js} +28 -12
  669. package/out/no/recipes/street.js.map +1 -0
  670. package/out/no/tools/fetch/matrikkelen.d.ts +251 -0
  671. package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
  672. package/out/no/tools/fetch/matrikkelen.js +345 -0
  673. package/out/no/tools/fetch/matrikkelen.js.map +1 -0
  674. package/out/parquet/duckdb.d.ts +100 -0
  675. package/out/parquet/duckdb.d.ts.map +1 -0
  676. package/out/parquet/duckdb.js +92 -0
  677. package/out/parquet/duckdb.js.map +1 -0
  678. package/out/parquet/readers.d.ts +44 -0
  679. package/out/parquet/readers.d.ts.map +1 -0
  680. package/out/parquet/readers.js +69 -0
  681. package/out/parquet/readers.js.map +1 -0
  682. package/out/parquet/schema.d.ts +95 -0
  683. package/out/parquet/schema.d.ts.map +1 -0
  684. package/out/parquet/schema.js +157 -0
  685. package/out/parquet/schema.js.map +1 -0
  686. package/out/parquet/shuffle.d.ts +25 -0
  687. package/out/parquet/shuffle.d.ts.map +1 -0
  688. package/out/parquet/shuffle.js +44 -0
  689. package/out/parquet/shuffle.js.map +1 -0
  690. package/out/parquet/span-sql.d.ts +49 -0
  691. package/out/parquet/span-sql.d.ts.map +1 -0
  692. package/out/parquet/span-sql.js +53 -0
  693. package/out/parquet/span-sql.js.map +1 -0
  694. package/out/parquet/streams.d.ts +47 -0
  695. package/out/parquet/streams.d.ts.map +1 -0
  696. package/out/parquet/streams.js +78 -0
  697. package/out/parquet/streams.js.map +1 -0
  698. package/out/parquet/writers.d.ts +124 -0
  699. package/out/parquet/writers.d.ts.map +1 -0
  700. package/out/parquet/writers.js +251 -0
  701. package/out/parquet/writers.js.map +1 -0
  702. package/out/pl/adapters/emuia/adapter.d.ts +81 -0
  703. package/out/pl/adapters/emuia/adapter.d.ts.map +1 -0
  704. package/out/pl/adapters/emuia/adapter.js +178 -0
  705. package/out/pl/adapters/emuia/adapter.js.map +1 -0
  706. package/out/pl/tools/fetch/emuia.d.ts +165 -0
  707. package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
  708. package/out/pl/tools/fetch/emuia.js +260 -0
  709. package/out/pl/tools/fetch/emuia.js.map +1 -0
  710. package/out/recipes/anchor-absorption.d.ts +9 -9
  711. package/out/recipes/anchor-absorption.d.ts.map +1 -1
  712. package/out/recipes/anchor-absorption.js +29 -19
  713. package/out/recipes/anchor-absorption.js.map +1 -1
  714. package/out/recipes/bare/country.d.ts +2 -20
  715. package/out/recipes/bare/country.d.ts.map +1 -1
  716. package/out/recipes/bare/country.js +20 -31
  717. package/out/recipes/bare/country.js.map +1 -1
  718. package/out/recipes/bare/postcode/eval.d.ts +1 -1
  719. package/out/recipes/bare/postcode/eval.js +1 -1
  720. package/out/recipes/bare/postcode.d.ts +41 -0
  721. package/out/recipes/bare/postcode.d.ts.map +1 -0
  722. package/out/recipes/bare/{postcode/index.js → postcode.js} +91 -79
  723. package/out/recipes/bare/postcode.js.map +1 -0
  724. package/out/recipes/boundary-stress.d.ts +8 -8
  725. package/out/recipes/boundary-stress.d.ts.map +1 -1
  726. package/out/recipes/boundary-stress.js +36 -19
  727. package/out/recipes/boundary-stress.js.map +1 -1
  728. package/out/recipes/country-balanced.d.ts +3 -21
  729. package/out/recipes/country-balanced.d.ts.map +1 -1
  730. package/out/recipes/country-balanced.js +58 -76
  731. package/out/recipes/country-balanced.js.map +1 -1
  732. package/out/recipes/house-venue.d.ts +8 -6
  733. package/out/recipes/house-venue.d.ts.map +1 -1
  734. package/out/recipes/house-venue.js +29 -13
  735. package/out/recipes/house-venue.js.map +1 -1
  736. package/out/recipes/intersection.d.ts +20 -20
  737. package/out/recipes/intersection.d.ts.map +1 -1
  738. package/out/recipes/intersection.js +65 -53
  739. package/out/recipes/intersection.js.map +1 -1
  740. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -1
  741. package/out/recipes/po/box/cedex/au-nz.js +3 -3
  742. package/out/recipes/po/box/cedex/au-nz.js.map +1 -1
  743. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -1
  744. package/out/recipes/po/box/cedex/ca.js +2 -2
  745. package/out/recipes/po/box/cedex/ca.js.map +1 -1
  746. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -1
  747. package/out/recipes/po/box/cedex/fr.js +3 -3
  748. package/out/recipes/po/box/cedex/fr.js.map +1 -1
  749. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -1
  750. package/out/recipes/po/box/cedex/phrases.js +7 -6
  751. package/out/recipes/po/box/cedex/phrases.js.map +1 -1
  752. package/out/recipes/po/box/cedex/recipe.d.ts +1 -1
  753. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -1
  754. package/out/recipes/po/box/cedex/recipe.js +25 -15
  755. package/out/recipes/po/box/cedex/recipe.js.map +1 -1
  756. package/out/recipes/po/box/cedex/sources.d.ts +12 -12
  757. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
  758. package/out/recipes/po/box/cedex/sources.js +1 -1
  759. package/out/recipes/po/box/cedex/sources.js.map +1 -1
  760. package/out/recipes/po/box/cedex/us.d.ts.map +1 -1
  761. package/out/recipes/po/box/cedex/us.js +5 -2
  762. package/out/recipes/po/box/cedex/us.js.map +1 -1
  763. package/out/recipes/po/box.d.ts +18 -0
  764. package/out/recipes/po/box.d.ts.map +1 -0
  765. package/out/recipes/po/{box/index.js → box.js} +37 -19
  766. package/out/recipes/po/box.js.map +1 -0
  767. package/out/recipes/scaffold.d.ts +211 -138
  768. package/out/recipes/scaffold.d.ts.map +1 -1
  769. package/out/recipes/scaffold.js +72 -63
  770. package/out/recipes/scaffold.js.map +1 -1
  771. package/out/recipes/sources.d.ts +178 -0
  772. package/out/recipes/sources.d.ts.map +1 -0
  773. package/out/recipes/sources.js +348 -0
  774. package/out/recipes/sources.js.map +1 -0
  775. package/out/recipes/street/affix.d.ts +20 -50
  776. package/out/recipes/street/affix.d.ts.map +1 -1
  777. package/out/recipes/street/affix.js +45 -133
  778. package/out/recipes/street/affix.js.map +1 -1
  779. package/out/recipes/street/bare.d.ts +9 -7
  780. package/out/recipes/street/bare.d.ts.map +1 -1
  781. package/out/recipes/street/bare.js +25 -14
  782. package/out/recipes/street/bare.js.map +1 -1
  783. package/out/recipes/street.d.ts +6 -4
  784. package/out/recipes/street.d.ts.map +1 -1
  785. package/out/recipes/street.js +29 -8
  786. package/out/recipes/street.js.map +1 -1
  787. package/out/recipes/sub/venue/context.d.ts +12 -9
  788. package/out/recipes/sub/venue/context.d.ts.map +1 -1
  789. package/out/recipes/sub/venue/context.js +21 -17
  790. package/out/recipes/sub/venue/context.js.map +1 -1
  791. package/out/recipes/sub/venue/render.d.ts +58 -0
  792. package/out/recipes/sub/venue/render.d.ts.map +1 -0
  793. package/out/recipes/sub/venue/render.js +118 -0
  794. package/out/recipes/sub/venue/render.js.map +1 -0
  795. package/out/recipes/sub/venue/sources.d.ts +49 -92
  796. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  797. package/out/recipes/sub/venue/sources.js +43 -179
  798. package/out/recipes/sub/venue/sources.js.map +1 -1
  799. package/out/recipes/sub/venue.d.ts +176 -0
  800. package/out/recipes/sub/venue.d.ts.map +1 -0
  801. package/out/recipes/sub/venue.js +562 -0
  802. package/out/recipes/sub/venue.js.map +1 -0
  803. package/out/recipes/trailing-region.d.ts +9 -61
  804. package/out/recipes/trailing-region.d.ts.map +1 -1
  805. package/out/recipes/trailing-region.js +55 -85
  806. package/out/recipes/trailing-region.js.map +1 -1
  807. package/out/recipes/unit/sources.d.ts +28 -0
  808. package/out/recipes/unit/sources.d.ts.map +1 -0
  809. package/out/recipes/unit/sources.js +30 -0
  810. package/out/recipes/unit/sources.js.map +1 -0
  811. package/out/recipes/unit.d.ts +30 -17
  812. package/out/recipes/unit.d.ts.map +1 -1
  813. package/out/recipes/unit.js +90 -79
  814. package/out/recipes/unit.js.map +1 -1
  815. package/out/recipes.d.ts +26 -0
  816. package/out/recipes.d.ts.map +1 -0
  817. package/out/{recipes/index.js → recipes.js} +14 -12
  818. package/out/recipes.js.map +1 -0
  819. package/out/registers.d.ts +277 -0
  820. package/out/registers.d.ts.map +1 -0
  821. package/out/registers.js +273 -0
  822. package/out/registers.js.map +1 -0
  823. package/out/ro/adapters/retea-scolara/adapter.d.ts +114 -0
  824. package/out/ro/adapters/retea-scolara/adapter.d.ts.map +1 -0
  825. package/out/ro/adapters/retea-scolara/adapter.js +209 -0
  826. package/out/ro/adapters/retea-scolara/adapter.js.map +1 -0
  827. package/out/ro/tools/fetch/retea-scolara.d.ts +69 -0
  828. package/out/ro/tools/fetch/retea-scolara.d.ts.map +1 -0
  829. package/out/ro/tools/fetch/retea-scolara.js +117 -0
  830. package/out/ro/tools/fetch/retea-scolara.js.map +1 -0
  831. package/out/runner.d.ts +120 -60
  832. package/out/runner.d.ts.map +1 -1
  833. package/out/runner.js +130 -56
  834. package/out/runner.js.map +1 -1
  835. package/out/sg/recipes/register.d.ts +18 -32
  836. package/out/sg/recipes/register.d.ts.map +1 -1
  837. package/out/sg/recipes/register.js +44 -49
  838. package/out/sg/recipes/register.js.map +1 -1
  839. package/out/sg/tools/fetch/acra.d.ts +11 -14
  840. package/out/sg/tools/fetch/acra.d.ts.map +1 -1
  841. package/out/sg/tools/fetch/acra.js +16 -19
  842. package/out/sg/tools/fetch/acra.js.map +1 -1
  843. package/out/si/recipes/bare-village.d.ts +12 -13
  844. package/out/si/recipes/bare-village.d.ts.map +1 -1
  845. package/out/si/recipes/bare-village.js +31 -17
  846. package/out/si/recipes/bare-village.js.map +1 -1
  847. package/out/sk/adapters/inspire/adapter.d.ts +119 -0
  848. package/out/sk/adapters/inspire/adapter.d.ts.map +1 -0
  849. package/out/sk/adapters/inspire/adapter.js +318 -0
  850. package/out/sk/adapters/inspire/adapter.js.map +1 -0
  851. package/out/sk/tools/fetch/inspire.d.ts +195 -0
  852. package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
  853. package/out/sk/tools/fetch/inspire.js +280 -0
  854. package/out/sk/tools/fetch/inspire.js.map +1 -0
  855. package/out/source-register/effective-manifest.d.ts +355 -0
  856. package/out/source-register/effective-manifest.d.ts.map +1 -0
  857. package/out/source-register/effective-manifest.js +355 -0
  858. package/out/source-register/effective-manifest.js.map +1 -0
  859. package/out/source-register/register.d.ts +79 -0
  860. package/out/source-register/register.d.ts.map +1 -0
  861. package/out/source-register/register.js +400 -0
  862. package/out/source-register/register.js.map +1 -0
  863. package/out/source-register/training-manifest.d.ts +111 -0
  864. package/out/source-register/training-manifest.d.ts.map +1 -0
  865. package/out/source-register/training-manifest.js +120 -0
  866. package/out/source-register/training-manifest.js.map +1 -0
  867. package/out/source-register/types.d.ts +539 -0
  868. package/out/source-register/types.d.ts.map +1 -0
  869. package/out/source-register/types.js +263 -0
  870. package/out/source-register/types.js.map +1 -0
  871. package/out/source-register.d.ts +19 -0
  872. package/out/source-register.d.ts.map +1 -0
  873. package/out/source-register.js +16 -0
  874. package/out/source-register.js.map +1 -0
  875. package/out/south-asia/recipes/register.d.ts +20 -17
  876. package/out/south-asia/recipes/register.d.ts.map +1 -1
  877. package/out/south-asia/recipes/register.js +44 -24
  878. package/out/south-asia/recipes/register.js.map +1 -1
  879. package/out/subvenue/harvest.d.ts +117 -0
  880. package/out/subvenue/harvest.d.ts.map +1 -0
  881. package/out/subvenue/harvest.js +172 -0
  882. package/out/subvenue/harvest.js.map +1 -0
  883. package/out/subvenue/promotions.d.ts +65 -0
  884. package/out/subvenue/promotions.d.ts.map +1 -0
  885. package/out/{tools/sub/venue → subvenue}/promotions.js +15 -55
  886. package/out/subvenue/promotions.js.map +1 -0
  887. package/out/subvenue/surfaces.d.ts +39 -0
  888. package/out/subvenue/surfaces.d.ts.map +1 -0
  889. package/out/subvenue/surfaces.js +75 -0
  890. package/out/subvenue/surfaces.js.map +1 -0
  891. package/out/subvenue/table.d.ts +212 -0
  892. package/out/subvenue/table.d.ts.map +1 -0
  893. package/out/subvenue/table.js +94 -0
  894. package/out/subvenue/table.js.map +1 -0
  895. package/out/surfaces/locale.d.ts +113 -0
  896. package/out/surfaces/locale.d.ts.map +1 -0
  897. package/out/surfaces/locale.js +136 -0
  898. package/out/surfaces/locale.js.map +1 -0
  899. package/out/synthesizers/anchor-absorption.d.ts +21 -30
  900. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  901. package/out/synthesizers/anchor-absorption.js +30 -85
  902. package/out/synthesizers/anchor-absorption.js.map +1 -1
  903. package/out/synthesizers/boundary-stress.d.ts +17 -48
  904. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  905. package/out/synthesizers/boundary-stress.js +27 -121
  906. package/out/synthesizers/boundary-stress.js.map +1 -1
  907. package/out/synthesizers/house-venue.d.ts +22 -25
  908. package/out/synthesizers/house-venue.d.ts.map +1 -1
  909. package/out/synthesizers/house-venue.js +28 -97
  910. package/out/synthesizers/house-venue.js.map +1 -1
  911. package/out/synthesizers/intersection.d.ts +10 -8
  912. package/out/synthesizers/intersection.d.ts.map +1 -1
  913. package/out/synthesizers/intersection.js +33 -26
  914. package/out/synthesizers/intersection.js.map +1 -1
  915. package/out/synthesizers/no-street.d.ts +7 -37
  916. package/out/synthesizers/no-street.d.ts.map +1 -1
  917. package/out/synthesizers/no-street.js +55 -111
  918. package/out/synthesizers/no-street.js.map +1 -1
  919. package/out/synthesizers/po-box.d.ts +46 -45
  920. package/out/synthesizers/po-box.d.ts.map +1 -1
  921. package/out/synthesizers/po-box.js +57 -97
  922. package/out/synthesizers/po-box.js.map +1 -1
  923. package/out/synthesizers/street.d.ts +18 -12
  924. package/out/synthesizers/street.d.ts.map +1 -1
  925. package/out/synthesizers/street.js +36 -29
  926. package/out/synthesizers/street.js.map +1 -1
  927. package/out/synthesizers/utils.d.ts +32 -129
  928. package/out/synthesizers/utils.d.ts.map +1 -1
  929. package/out/synthesizers/utils.js +54 -166
  930. package/out/synthesizers/utils.js.map +1 -1
  931. package/out/test-kit/corpus-recipe.d.ts +29 -23
  932. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  933. package/out/test-kit/corpus-recipe.js +28 -13
  934. package/out/test-kit/corpus-recipe.js.map +1 -1
  935. package/out/test-kit.d.ts +63 -0
  936. package/out/test-kit.d.ts.map +1 -0
  937. package/out/test-kit.js +88 -0
  938. package/out/test-kit.js.map +1 -0
  939. package/out/tools/align-canonical.d.ts +7 -0
  940. package/out/tools/align-canonical.d.ts.map +1 -0
  941. package/out/tools/align-canonical.js +52 -0
  942. package/out/tools/align-canonical.js.map +1 -0
  943. package/out/tools/audit.d.ts +18 -11
  944. package/out/tools/audit.d.ts.map +1 -1
  945. package/out/tools/audit.js +86 -95
  946. package/out/tools/audit.js.map +1 -1
  947. package/out/tools/corpus-stats.d.ts +24 -15
  948. package/out/tools/corpus-stats.d.ts.map +1 -1
  949. package/out/tools/corpus-stats.js +33 -29
  950. package/out/tools/corpus-stats.js.map +1 -1
  951. package/out/tools/fetch/atom.d.ts +115 -0
  952. package/out/tools/fetch/atom.d.ts.map +1 -0
  953. package/out/tools/fetch/atom.js +84 -0
  954. package/out/tools/fetch/atom.js.map +1 -0
  955. package/out/tools/fetch/cordis.d.ts +123 -0
  956. package/out/tools/fetch/cordis.d.ts.map +1 -0
  957. package/out/tools/fetch/cordis.js +208 -0
  958. package/out/tools/fetch/cordis.js.map +1 -0
  959. package/out/tools/fetch/download/manifest.d.ts +27 -18
  960. package/out/tools/fetch/download/manifest.d.ts.map +1 -1
  961. package/out/tools/fetch/download/manifest.js +20 -13
  962. package/out/tools/fetch/download/manifest.js.map +1 -1
  963. package/out/tools/fetch/download/network.d.ts +48 -27
  964. package/out/tools/fetch/download/network.d.ts.map +1 -1
  965. package/out/tools/fetch/download/network.js +26 -16
  966. package/out/tools/fetch/download/network.js.map +1 -1
  967. package/out/tools/fetch/download/retry.d.ts +16 -15
  968. package/out/tools/fetch/download/retry.d.ts.map +1 -1
  969. package/out/tools/fetch/download/retry.js +24 -24
  970. package/out/tools/fetch/download/retry.js.map +1 -1
  971. package/out/tools/fetch/{download/index.d.ts → download.d.ts} +1 -1
  972. package/out/tools/fetch/download.d.ts.map +1 -0
  973. package/out/tools/fetch/{download/index.js → download.js} +1 -1
  974. package/out/tools/fetch/download.js.map +1 -0
  975. package/out/tools/fetch/geonames/dump.d.ts +50 -32
  976. package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
  977. package/out/tools/fetch/geonames/dump.js +52 -42
  978. package/out/tools/fetch/geonames/dump.js.map +1 -1
  979. package/out/tools/fetch/geonames/postal.d.ts +14 -49
  980. package/out/tools/fetch/geonames/postal.d.ts.map +1 -1
  981. package/out/tools/fetch/geonames/postal.js +17 -56
  982. package/out/tools/fetch/geonames/postal.js.map +1 -1
  983. package/out/tools/fetch/gleif.d.ts +137 -0
  984. package/out/tools/fetch/gleif.d.ts.map +1 -0
  985. package/out/tools/fetch/gleif.js +220 -0
  986. package/out/tools/fetch/gleif.js.map +1 -0
  987. package/out/tools/fetch/header.d.ts +41 -0
  988. package/out/tools/fetch/header.d.ts.map +1 -0
  989. package/out/tools/fetch/header.js +59 -0
  990. package/out/tools/fetch/header.js.map +1 -0
  991. package/out/tools/fetch/inspire-addresses.d.ts +249 -0
  992. package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
  993. package/out/tools/fetch/inspire-addresses.js +276 -0
  994. package/out/tools/fetch/inspire-addresses.js.map +1 -0
  995. package/out/tools/fetch/openaddresses.d.ts +1 -4
  996. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  997. package/out/tools/fetch/openaddresses.js +19 -98
  998. package/out/tools/fetch/openaddresses.js.map +1 -1
  999. package/out/tools/fetch/ourairports.d.ts +6 -33
  1000. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  1001. package/out/tools/fetch/ourairports.js +14 -47
  1002. package/out/tools/fetch/ourairports.js.map +1 -1
  1003. package/out/tools/fetch/ppd.d.ts +4 -3
  1004. package/out/tools/fetch/ppd.d.ts.map +1 -1
  1005. package/out/tools/fetch/ppd.js +10 -7
  1006. package/out/tools/fetch/ppd.js.map +1 -1
  1007. package/out/tools/fetch/vlaanderen-ad.d.ts +131 -0
  1008. package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -0
  1009. package/out/tools/fetch/vlaanderen-ad.js +293 -0
  1010. package/out/tools/fetch/vlaanderen-ad.js.map +1 -0
  1011. package/out/tools/fetch/wfs-harvest.d.ts +410 -0
  1012. package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
  1013. package/out/tools/fetch/wfs-harvest.js +522 -0
  1014. package/out/tools/fetch/wfs-harvest.js.map +1 -0
  1015. package/out/tools/fetch/wikidata-subvenue.d.ts +32 -100
  1016. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  1017. package/out/tools/fetch/wikidata-subvenue.js +27 -122
  1018. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  1019. package/out/tools/fetch/zip-archive.d.ts +54 -0
  1020. package/out/tools/fetch/zip-archive.d.ts.map +1 -0
  1021. package/out/tools/fetch/zip-archive.js +58 -0
  1022. package/out/tools/fetch/zip-archive.js.map +1 -0
  1023. package/out/tools/fetch.d.ts +140 -0
  1024. package/out/tools/fetch.d.ts.map +1 -0
  1025. package/out/tools/fetch.js +136 -0
  1026. package/out/tools/fetch.js.map +1 -0
  1027. package/out/tools/golden/expand.d.ts +28 -13
  1028. package/out/tools/golden/expand.d.ts.map +1 -1
  1029. package/out/tools/golden/expand.js +50 -36
  1030. package/out/tools/golden/expand.js.map +1 -1
  1031. package/out/tools/golden/promote.d.ts +13 -8
  1032. package/out/tools/golden/promote.d.ts.map +1 -1
  1033. package/out/tools/golden/promote.js +33 -28
  1034. package/out/tools/golden/promote.js.map +1 -1
  1035. package/out/tools/golden/relabel-street/directory.d.ts +24 -9
  1036. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
  1037. package/out/tools/golden/relabel-street/directory.js +41 -30
  1038. package/out/tools/golden/relabel-street/directory.js.map +1 -1
  1039. package/out/tools/golden/relabel-street/row.d.ts +17 -69
  1040. package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
  1041. package/out/tools/golden/relabel-street/row.js +16 -74
  1042. package/out/tools/golden/relabel-street/row.js.map +1 -1
  1043. package/out/tools/golden/{relabel-street/index.d.ts → relabel-street.d.ts} +1 -1
  1044. package/out/tools/golden/relabel-street.d.ts.map +1 -0
  1045. package/out/tools/golden/{relabel-street/index.js → relabel-street.js} +1 -1
  1046. package/out/tools/golden/relabel-street.js.map +1 -0
  1047. package/out/tools/ingest-csv.d.ts +19 -15
  1048. package/out/tools/ingest-csv.d.ts.map +1 -1
  1049. package/out/tools/ingest-csv.js +39 -43
  1050. package/out/tools/ingest-csv.js.map +1 -1
  1051. package/out/tools/jsonl-to-parquet.d.ts +15 -28
  1052. package/out/tools/jsonl-to-parquet.d.ts.map +1 -1
  1053. package/out/tools/jsonl-to-parquet.js +49 -91
  1054. package/out/tools/jsonl-to-parquet.js.map +1 -1
  1055. package/out/tools/lint/recipe-output/vocab.d.ts +77 -0
  1056. package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -0
  1057. package/out/tools/lint/{slice → recipe-output}/vocab.js +54 -69
  1058. package/out/tools/lint/recipe-output/vocab.js.map +1 -0
  1059. package/out/tools/lint/recipe-output.d.ts +73 -0
  1060. package/out/tools/lint/recipe-output.d.ts.map +1 -0
  1061. package/out/tools/lint/{slice/index.js → recipe-output.js} +76 -96
  1062. package/out/tools/lint/recipe-output.js.map +1 -0
  1063. package/out/tools/migrate/overlay-parquet.d.ts +30 -0
  1064. package/out/tools/migrate/overlay-parquet.d.ts.map +1 -0
  1065. package/out/tools/migrate/overlay-parquet.js +141 -0
  1066. package/out/tools/migrate/overlay-parquet.js.map +1 -0
  1067. package/out/tools/migrate/recipe-output.d.ts +35 -0
  1068. package/out/tools/migrate/recipe-output.d.ts.map +1 -0
  1069. package/out/tools/migrate/recipe-output.js +124 -0
  1070. package/out/tools/migrate/recipe-output.js.map +1 -0
  1071. package/out/tools/migrate/source-names.d.ts +52 -0
  1072. package/out/tools/migrate/source-names.d.ts.map +1 -0
  1073. package/out/tools/migrate/source-names.js +105 -0
  1074. package/out/tools/migrate/source-names.js.map +1 -0
  1075. package/out/tools/overlay/kryptonite.d.ts +33 -0
  1076. package/out/tools/overlay/kryptonite.d.ts.map +1 -0
  1077. package/out/tools/{slice → overlay}/kryptonite.js +37 -28
  1078. package/out/tools/overlay/kryptonite.js.map +1 -0
  1079. package/out/tools/overlay/manifest.d.ts +142 -0
  1080. package/out/tools/overlay/manifest.d.ts.map +1 -0
  1081. package/out/tools/overlay/manifest.js +260 -0
  1082. package/out/tools/overlay/manifest.js.map +1 -0
  1083. package/out/tools/overlay/merge-source.d.ts +73 -0
  1084. package/out/tools/overlay/merge-source.d.ts.map +1 -0
  1085. package/out/tools/overlay/merge-source.js +63 -0
  1086. package/out/tools/overlay/merge-source.js.map +1 -0
  1087. package/out/tools/overlay/split-slice.d.ts +66 -0
  1088. package/out/tools/overlay/split-slice.d.ts.map +1 -0
  1089. package/out/tools/overlay/split-slice.js +78 -0
  1090. package/out/tools/overlay/split-slice.js.map +1 -0
  1091. package/out/tools/overlay/translit.d.ts +54 -0
  1092. package/out/tools/overlay/translit.d.ts.map +1 -0
  1093. package/out/tools/{slice → overlay}/translit.js +59 -48
  1094. package/out/tools/overlay/translit.js.map +1 -0
  1095. package/out/tools/overture-subvenue.d.ts +16 -75
  1096. package/out/tools/overture-subvenue.d.ts.map +1 -1
  1097. package/out/tools/overture-subvenue.js +7 -74
  1098. package/out/tools/overture-subvenue.js.map +1 -1
  1099. package/out/tools/postcode-triples.d.ts +77 -126
  1100. package/out/tools/postcode-triples.d.ts.map +1 -1
  1101. package/out/tools/postcode-triples.js +198 -192
  1102. package/out/tools/postcode-triples.js.map +1 -1
  1103. package/out/tools/source-register/build.d.ts +145 -0
  1104. package/out/tools/source-register/build.d.ts.map +1 -0
  1105. package/out/tools/source-register/build.js +515 -0
  1106. package/out/tools/source-register/build.js.map +1 -0
  1107. package/out/tools/sub/venue/head-nouns.d.ts +9 -38
  1108. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
  1109. package/out/tools/sub/venue/head-nouns.js +37 -74
  1110. package/out/tools/sub/venue/head-nouns.js.map +1 -1
  1111. package/out/tools/sub/venue/lexicon.d.ts +55 -82
  1112. package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
  1113. package/out/tools/sub/venue/lexicon.js +43 -87
  1114. package/out/tools/sub/venue/lexicon.js.map +1 -1
  1115. package/out/tools/sub/venue/wikidata.d.ts +8 -6
  1116. package/out/tools/sub/venue/wikidata.d.ts.map +1 -1
  1117. package/out/tools/sub/venue/wikidata.js +12 -9
  1118. package/out/tools/sub/venue/wikidata.js.map +1 -1
  1119. package/out/tools.d.ts +31 -0
  1120. package/out/tools.d.ts.map +1 -0
  1121. package/out/tools.js +31 -0
  1122. package/out/tools.js.map +1 -0
  1123. package/out/tw/tools/fetch/gcis.d.ts +9 -3
  1124. package/out/tw/tools/fetch/gcis.d.ts.map +1 -1
  1125. package/out/tw/tools/fetch/gcis.js +16 -10
  1126. package/out/tw/tools/fetch/gcis.js.map +1 -1
  1127. package/out/types.d.ts +270 -101
  1128. package/out/types.d.ts.map +1 -1
  1129. package/out/types.js +133 -9
  1130. package/out/types.js.map +1 -1
  1131. package/out/us/adapters/fcc-bdc/adapter.d.ts +18 -36
  1132. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -1
  1133. package/out/us/adapters/fcc-bdc/adapter.js +25 -38
  1134. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -1
  1135. package/out/us/adapters/state/hi-schools/adapter.d.ts +12 -11
  1136. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -1
  1137. package/out/us/adapters/state/hi-schools/adapter.js +26 -16
  1138. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -1
  1139. package/out/us/adapters/state/hi-schools/workbook.d.ts +7 -2
  1140. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -1
  1141. package/out/us/adapters/state/hi-schools/workbook.js +3 -1
  1142. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -1
  1143. package/out/us/adapters/state/ia-contractors/adapter.d.ts +13 -6
  1144. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -1
  1145. package/out/us/adapters/state/ia-contractors/adapter.js +27 -14
  1146. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -1
  1147. package/out/us/adapters/state/ny-notaries/adapter.d.ts +7 -6
  1148. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -1
  1149. package/out/us/adapters/state/ny-notaries/adapter.js +24 -22
  1150. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -1
  1151. package/out/us/adapters/state/tx-notaries/adapter.d.ts +8 -7
  1152. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -1
  1153. package/out/us/adapters/state/tx-notaries/adapter.js +21 -14
  1154. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -1
  1155. package/out/us/adapters/tiger/adapter.d.ts +10 -34
  1156. package/out/us/adapters/tiger/adapter.d.ts.map +1 -1
  1157. package/out/us/adapters/tiger/adapter.js +18 -42
  1158. package/out/us/adapters/tiger/adapter.js.map +1 -1
  1159. package/out/us/adapters/tiger/street-decompose.d.ts +6 -13
  1160. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -1
  1161. package/out/us/adapters/tiger/street-decompose.js +7 -17
  1162. package/out/us/adapters/tiger/street-decompose.js.map +1 -1
  1163. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts +26 -20
  1164. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -1
  1165. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +41 -29
  1166. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -1
  1167. package/out/us/adapters/usgov/imls-pls/adapter.d.ts +8 -7
  1168. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -1
  1169. package/out/us/adapters/usgov/imls-pls/adapter.js +25 -18
  1170. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -1
  1171. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +11 -10
  1172. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -1
  1173. package/out/us/adapters/usgov/irs-bmf/adapter.js +32 -22
  1174. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -1
  1175. package/out/us/adapters/usgov/nad/adapter.d.ts +11 -31
  1176. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -1
  1177. package/out/us/adapters/usgov/nad/adapter.js +51 -105
  1178. package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
  1179. package/out/us/adapters/usgov/nppes/adapter.d.ts +12 -22
  1180. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -1
  1181. package/out/us/adapters/usgov/nppes/adapter.js +62 -32
  1182. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -1
  1183. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts +16 -15
  1184. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -1
  1185. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +36 -26
  1186. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
  1187. package/out/us/fips-state.d.ts +17 -8
  1188. package/out/us/fips-state.d.ts.map +1 -1
  1189. package/out/us/fips-state.js +17 -8
  1190. package/out/us/fips-state.js.map +1 -1
  1191. package/out/us/tools/fetch/hrsa.d.ts +3 -3
  1192. package/out/us/tools/fetch/hrsa.d.ts.map +1 -1
  1193. package/out/us/tools/fetch/hrsa.js +6 -7
  1194. package/out/us/tools/fetch/hrsa.js.map +1 -1
  1195. package/out/us/tools/fetch/imls-pls.d.ts +5 -16
  1196. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -1
  1197. package/out/us/tools/fetch/imls-pls.js +16 -33
  1198. package/out/us/tools/fetch/imls-pls.js.map +1 -1
  1199. package/out/us/tools/fetch/nad.d.ts +22 -10
  1200. package/out/us/tools/fetch/nad.d.ts.map +1 -1
  1201. package/out/us/tools/fetch/nad.js +29 -24
  1202. package/out/us/tools/fetch/nad.js.map +1 -1
  1203. package/out/us/tools/fetch/nppes.d.ts +6 -16
  1204. package/out/us/tools/fetch/nppes.d.ts.map +1 -1
  1205. package/out/us/tools/fetch/nppes.js +21 -33
  1206. package/out/us/tools/fetch/nppes.js.map +1 -1
  1207. package/out/us/tools/fetch/state/hi-schools.d.ts +8 -5
  1208. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
  1209. package/out/us/tools/fetch/state/hi-schools.js +15 -13
  1210. package/out/us/tools/fetch/state/hi-schools.js.map +1 -1
  1211. package/out/us/tools/fetch/state/sources.d.ts +8 -7
  1212. package/out/us/tools/fetch/state/sources.d.ts.map +1 -1
  1213. package/out/us/tools/fetch/state/sources.js +8 -9
  1214. package/out/us/tools/fetch/state/sources.js.map +1 -1
  1215. package/out/us/tools/fetch/tiger-full.d.ts +1 -14
  1216. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -1
  1217. package/out/us/tools/fetch/tiger-full.js +15 -54
  1218. package/out/us/tools/fetch/tiger-full.js.map +1 -1
  1219. package/out/utils/align.d.ts +24 -19
  1220. package/out/utils/align.d.ts.map +1 -1
  1221. package/out/utils/align.js +27 -42
  1222. package/out/utils/align.js.map +1 -1
  1223. package/out/utils/cooccurrence-stats.d.ts +58 -0
  1224. package/out/utils/cooccurrence-stats.d.ts.map +1 -0
  1225. package/out/utils/cooccurrence-stats.js +62 -0
  1226. package/out/utils/cooccurrence-stats.js.map +1 -0
  1227. package/out/utils/golden.d.ts +21 -31
  1228. package/out/utils/golden.d.ts.map +1 -1
  1229. package/out/utils/golden.js +28 -44
  1230. package/out/utils/golden.js.map +1 -1
  1231. package/out/utils/license.d.ts +158 -21
  1232. package/out/utils/license.d.ts.map +1 -1
  1233. package/out/utils/license.js +156 -26
  1234. package/out/utils/license.js.map +1 -1
  1235. package/out/utils/split.d.ts +66 -70
  1236. package/out/utils/split.d.ts.map +1 -1
  1237. package/out/utils/split.js +158 -69
  1238. package/out/utils/split.js.map +1 -1
  1239. package/out/utils/tokenize.d.ts +16 -28
  1240. package/out/utils/tokenize.d.ts.map +1 -1
  1241. package/out/utils/tokenize.js +18 -31
  1242. package/out/utils/tokenize.js.map +1 -1
  1243. package/out/utils/wof-json.d.ts +88 -62
  1244. package/out/utils/wof-json.d.ts.map +1 -1
  1245. package/out/utils/wof-json.js +76 -55
  1246. package/out/utils/wof-json.js.map +1 -1
  1247. package/out/{utils/index.js → utils.d.ts} +1 -2
  1248. package/out/utils.d.ts.map +1 -0
  1249. package/out/{utils/index.d.ts → utils.js} +1 -2
  1250. package/out/utils.js.map +1 -0
  1251. package/out/ve/recipes/reviewed-postcode-tail.d.ts +25 -7
  1252. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -1
  1253. package/out/ve/recipes/reviewed-postcode-tail.js +33 -12
  1254. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -1
  1255. package/package.json +46 -480
  1256. package/lib/adapters/index.ts +0 -160
  1257. package/lib/adapters/synth-po-box/adapter.ts +0 -204
  1258. package/lib/adapters/utils/index.ts +0 -307
  1259. package/lib/recipes/bare/postcode/index.ts +0 -327
  1260. package/lib/recipes/sub/venue/index.ts +0 -997
  1261. package/lib/synthesizers/locale.ts +0 -261
  1262. package/lib/test-kit/index.ts +0 -100
  1263. package/lib/tools/align-slice.ts +0 -68
  1264. package/lib/tools/fetch/index.ts +0 -174
  1265. package/lib/tools/gb-title-case.ts +0 -69
  1266. package/lib/tools/index.ts +0 -28
  1267. package/lib/tools/lint/slice/vocab.ts +0 -376
  1268. package/lib/tools/overlay-manifest.ts +0 -215
  1269. package/lib/tools/sub/venue/harvest.ts +0 -234
  1270. package/lib/tools/sub/venue/surfaces.ts +0 -95
  1271. package/lib/tools/sub/venue/table.ts +0 -281
  1272. package/lib/utils/parquet.ts +0 -582
  1273. package/out/adapters/index.d.ts +0 -51
  1274. package/out/adapters/index.d.ts.map +0 -1
  1275. package/out/adapters/index.js +0 -97
  1276. package/out/adapters/index.js.map +0 -1
  1277. package/out/adapters/synth-po-box/adapter.d.ts +0 -67
  1278. package/out/adapters/synth-po-box/adapter.d.ts.map +0 -1
  1279. package/out/adapters/synth-po-box/adapter.js.map +0 -1
  1280. package/out/adapters/utils/index.d.ts +0 -191
  1281. package/out/adapters/utils/index.d.ts.map +0 -1
  1282. package/out/adapters/utils/index.js +0 -206
  1283. package/out/adapters/utils/index.js.map +0 -1
  1284. package/out/fr/adapters/ban/street-decompose.d.ts.map +0 -1
  1285. package/out/fr/adapters/ban/street-decompose.js.map +0 -1
  1286. package/out/no/recipes/street/index.d.ts +0 -18
  1287. package/out/no/recipes/street/index.d.ts.map +0 -1
  1288. package/out/no/recipes/street/index.js.map +0 -1
  1289. package/out/recipes/bare/postcode/index.d.ts +0 -62
  1290. package/out/recipes/bare/postcode/index.d.ts.map +0 -1
  1291. package/out/recipes/bare/postcode/index.js.map +0 -1
  1292. package/out/recipes/index.d.ts +0 -24
  1293. package/out/recipes/index.d.ts.map +0 -1
  1294. package/out/recipes/index.js.map +0 -1
  1295. package/out/recipes/po/box/index.d.ts +0 -17
  1296. package/out/recipes/po/box/index.d.ts.map +0 -1
  1297. package/out/recipes/po/box/index.js.map +0 -1
  1298. package/out/recipes/sub/venue/index.d.ts +0 -270
  1299. package/out/recipes/sub/venue/index.d.ts.map +0 -1
  1300. package/out/recipes/sub/venue/index.js +0 -728
  1301. package/out/recipes/sub/venue/index.js.map +0 -1
  1302. package/out/synthesizers/locale.d.ts +0 -116
  1303. package/out/synthesizers/locale.d.ts.map +0 -1
  1304. package/out/synthesizers/locale.js +0 -150
  1305. package/out/synthesizers/locale.js.map +0 -1
  1306. package/out/test-kit/index.d.ts +0 -48
  1307. package/out/test-kit/index.d.ts.map +0 -1
  1308. package/out/test-kit/index.js +0 -78
  1309. package/out/test-kit/index.js.map +0 -1
  1310. package/out/tools/align-slice.d.ts +0 -7
  1311. package/out/tools/align-slice.d.ts.map +0 -1
  1312. package/out/tools/align-slice.js +0 -55
  1313. package/out/tools/align-slice.js.map +0 -1
  1314. package/out/tools/fetch/download/index.d.ts.map +0 -1
  1315. package/out/tools/fetch/download/index.js.map +0 -1
  1316. package/out/tools/fetch/index.d.ts +0 -171
  1317. package/out/tools/fetch/index.d.ts.map +0 -1
  1318. package/out/tools/fetch/index.js +0 -170
  1319. package/out/tools/fetch/index.js.map +0 -1
  1320. package/out/tools/gb-title-case.d.ts +0 -2
  1321. package/out/tools/gb-title-case.d.ts.map +0 -1
  1322. package/out/tools/gb-title-case.js +0 -65
  1323. package/out/tools/gb-title-case.js.map +0 -1
  1324. package/out/tools/golden/relabel-street/index.d.ts.map +0 -1
  1325. package/out/tools/golden/relabel-street/index.js.map +0 -1
  1326. package/out/tools/index.d.ts +0 -28
  1327. package/out/tools/index.d.ts.map +0 -1
  1328. package/out/tools/index.js +0 -28
  1329. package/out/tools/index.js.map +0 -1
  1330. package/out/tools/lint/slice/index.d.ts +0 -93
  1331. package/out/tools/lint/slice/index.d.ts.map +0 -1
  1332. package/out/tools/lint/slice/index.js.map +0 -1
  1333. package/out/tools/lint/slice/vocab.d.ts +0 -90
  1334. package/out/tools/lint/slice/vocab.d.ts.map +0 -1
  1335. package/out/tools/lint/slice/vocab.js.map +0 -1
  1336. package/out/tools/overlay-manifest.d.ts +0 -89
  1337. package/out/tools/overlay-manifest.d.ts.map +0 -1
  1338. package/out/tools/overlay-manifest.js +0 -131
  1339. package/out/tools/overlay-manifest.js.map +0 -1
  1340. package/out/tools/slice/kryptonite.d.ts +0 -32
  1341. package/out/tools/slice/kryptonite.d.ts.map +0 -1
  1342. package/out/tools/slice/kryptonite.js.map +0 -1
  1343. package/out/tools/slice/translit.d.ts +0 -51
  1344. package/out/tools/slice/translit.d.ts.map +0 -1
  1345. package/out/tools/slice/translit.js.map +0 -1
  1346. package/out/tools/sub/venue/harvest.d.ts +0 -100
  1347. package/out/tools/sub/venue/harvest.d.ts.map +0 -1
  1348. package/out/tools/sub/venue/harvest.js +0 -168
  1349. package/out/tools/sub/venue/harvest.js.map +0 -1
  1350. package/out/tools/sub/venue/promotions.d.ts +0 -94
  1351. package/out/tools/sub/venue/promotions.d.ts.map +0 -1
  1352. package/out/tools/sub/venue/promotions.js.map +0 -1
  1353. package/out/tools/sub/venue/surfaces.d.ts +0 -45
  1354. package/out/tools/sub/venue/surfaces.d.ts.map +0 -1
  1355. package/out/tools/sub/venue/surfaces.js +0 -77
  1356. package/out/tools/sub/venue/surfaces.js.map +0 -1
  1357. package/out/tools/sub/venue/table.d.ts +0 -229
  1358. package/out/tools/sub/venue/table.d.ts.map +0 -1
  1359. package/out/tools/sub/venue/table.js +0 -108
  1360. package/out/tools/sub/venue/table.js.map +0 -1
  1361. package/out/utils/index.d.ts.map +0 -1
  1362. package/out/utils/index.js.map +0 -1
  1363. package/out/utils/parquet.d.ts +0 -178
  1364. package/out/utils/parquet.d.ts.map +0 -1
  1365. package/out/utils/parquet.js +0 -371
  1366. package/out/utils/parquet.js.map +0 -1
  1367. package/out/utils/slice-stats.d.ts +0 -52
  1368. package/out/utils/slice-stats.d.ts.map +0 -1
  1369. package/out/utils/slice-stats.js +0 -58
  1370. package/out/utils/slice-stats.js.map +0 -1
  1371. /package/lib/tools/fetch/{download/index.ts → download.ts} +0 -0
  1372. /package/lib/tools/golden/{relabel-street/index.ts → relabel-street.ts} +0 -0
@@ -0,0 +1,251 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Reads the parts of an INSPIRE Addresses feature that every publisher spells the same way.
7
+ *
8
+ * INSPIRE harmonizes the schema and leaves the rest to the publisher. Seven publishers this
9
+ * repository reads all write `ad:Address` with the same element paths, and they disagree on four
10
+ * things that each decide a value:
11
+ *
12
+ * 1. The wrapper. Czechia writes `base:SpatialDataSet` with `base:member`. The Netherlands,
13
+ * Wallonia and Brussels write `gml:FeatureCollection` with `gml:featureMember`.
14
+ * 2. The reference form. Czechia's `ad:component` href is an absolute WFS stored-query URL
15
+ * whose `Id=` parameter is the key. The Netherlands, Wallonia and Brussels write a local `#`
16
+ * fragment. Flanders writes an absolute data URI that a caller rewrites into a `resourceId`.
17
+ * 3. Where the postcode lives. Czechia and Wallonia reference an `ad:PostalDescriptor`; the
18
+ * Netherlands puts it inline as a `LocatorDesignatorTypeValue/postalDeliveryIdentifier` locator and publishes no
19
+ * `ad:PostalDescriptor` at all.
20
+ * 4. The locator vocabulary. Czechia types its number `buildingIdentifier`, the Netherlands
21
+ * `addressNumber`, Wallonia `LocatorDesignatorTypeValue/addressIdentifierGeneral`, Brussels
22
+ * `buildingIdentifier`.
23
+ * 5. The prefix's case. Seven publishers write `ad:` and `gn:`. The Dirección General del Catastro
24
+ * and the Gobierno de Navarra bind the same namespaces to `AD:` and `GN:`. The Catastro also
25
+ * states a designator type and an administrative level as element text, `1` and `4`, where
26
+ * everyone else writes a codelist URI. The readers below therefore match an element name
27
+ * without regard to case, and accept either form of a coded value.
28
+ *
29
+ * So this module exposes the primitives and leaves composition to each adapter. A configuration
30
+ * object describing those four axes would have to be right about publishers whose files nobody has
31
+ * read yet. A handful of small functions carries no such claim.
32
+ *
33
+ * The reference form is the exception, because its shapes are enumerable and measured:
34
+ * {@linkcode componentJoinKey} reads all four.
35
+ */
36
+ import type { MarkupElement } from "@mailwoman/core/html/elements";
37
+ /**
38
+ * Whether an element's name is `wanted`, ignoring the case of both.
39
+ *
40
+ * The prefix a document binds a namespace to is the document's own choice.
41
+ * Seven publishers write `ad:Address` and `gn:text`.
42
+ *
43
+ * The Dirección General del Catastro and the Gobierno de Navarra bind the same
44
+ * two namespaces to `AD:` and `GN:`.
45
+ * A reader comparing the name exactly finds neither a locator nor a street
46
+ * nor a postcode in either Spanish file.
47
+ *
48
+ * That reads as an address carrying none rather than as a prefix this repository had not met.
49
+ *
50
+ * The prefix is still compared, because it carries the namespace and the namespace carries the meaning.
51
+ * The Service public de Wallonie writes three `gml:name` elements inside each
52
+ * `ad:ThoroughfareName`, ahead of the `ad:name` that holds the street.
53
+ *
54
+ * A reader that dropped the prefix and matched on `name` alone read the first of those three
55
+ * and found no street on any of Wallonia's 58,591 thoroughfare features.
56
+ */
57
+ export declare function inspireNameIs(name: string, wanted: string): boolean;
58
+ /**
59
+ * The first child of `element` named `name`, ignoring case.
60
+ *
61
+ * `name` is written with the prefix the INSPIRE guideline uses, which is the
62
+ * prefix eight of the nine publishers write.
63
+ * The case-insensitive sibling of `childElement` from `@mailwoman/core/html/elements`,
64
+ * which compares the name exactly as a general markup reader must.
65
+ */
66
+ export declare function inspireChild(element: MarkupElement, name: string): MarkupElement | undefined;
67
+ /**
68
+ * Every child of `element` named `name`, in document order, ignoring case.
69
+ *
70
+ * The case-insensitive sibling of `childElements` from `@mailwoman/core/html/elements`,
71
+ * for the same reason {@linkcode inspireChild} is.
72
+ */
73
+ export declare function inspireChildren(element: MarkupElement, name: string): readonly MarkupElement[];
74
+ /**
75
+ * The element reached by walking `path` from `element`, taking the first match at each step.
76
+ *
77
+ * The case-insensitive sibling of `elementAtPath` from `@mailwoman/core/html/elements`.
78
+ * An INSPIRE value sits five or six elements down, so the path form reads better than
79
+ * a chain of {@linkcode inspireChild} calls and reports the same absence.
80
+ */
81
+ export declare function inspireElementAt(element: MarkupElement, ...path: readonly string[]): MarkupElement | undefined;
82
+ /**
83
+ * The final segment of an INSPIRE codelist URI, which is the value's name.
84
+ *
85
+ * `http://inspire.ec.europa.eu/codelist/LocatorDesignatorTypeValue/buildingIdentifier`
86
+ * reads `buildingIdentifier`.
87
+ * A `#` fragment is dropped first, because Flanders appends one to a `vocab.belgif.be`
88
+ * reference and Czechia folds it into `base:localId`.
89
+ */
90
+ export declare function codelistValue(uri: string | undefined): string | undefined;
91
+ /**
92
+ * Whether a publisher marked this element void.
93
+ *
94
+ * INSPIRE writes `xsi:nil="true"` and usually a `nilReason`.
95
+ * Brussels writes the nil marker and no reason on all 232,003 of its void `ad:validFrom`
96
+ * elements, and Czechia writes four `gn:pronunciation` elements nil with no reason,
97
+ * so a reader keyed on `nilReason` alone mistakes a void value for a populated one.
98
+ *
99
+ * An absent element answers false, so a caller distinguishes a void value from a missing one.
100
+ */
101
+ export declare function isVoid(element: MarkupElement | undefined): boolean;
102
+ /**
103
+ * The reason a publisher gave for a void element, as a codelist value such as `Unpopulated`.
104
+ *
105
+ * Returns undefined when the element is void and states no reason, which the
106
+ * schema permits and which Brussels does throughout.
107
+ * A caller that needs to separate a void carrying a reason from a void carrying
108
+ * none reads this together with {@linkcode isVoid}.
109
+ */
110
+ export declare function voidReason(element: MarkupElement | undefined): string | undefined;
111
+ /**
112
+ * Every locator designator on an address, keyed by its INSPIRE type name.
113
+ *
114
+ * One `ad:AddressLocator` carries a designator per part of the number, each in its
115
+ * own `ad:LocatorDesignator` beside an `ad:type` naming what it is.
116
+ * Czechia writes two, `č.ev.` typed `buildingIdentifierPrefix` and `502` typed `buildingIdentifier`.
117
+ *
118
+ * The Netherlands writes four, including an empty `LocatorDesignatorTypeValue/addressNumberExtension`
119
+ * and the postcode as `LocatorDesignatorTypeValue/postalDeliveryIdentifier`.
120
+ *
121
+ * A type may repeat, so each key holds a list in document order.
122
+ * A designator the publisher wrote empty contributes an empty string, which is a value the publisher
123
+ * stated rather than one it omitted: the Netherlands writes `<ad:designator/>` 198,118 times
124
+ * over 108,708 features to mean "no extension", and that is a different condition from void.
125
+ *
126
+ * A designator whose `ad:type` is absent or void is skipped, because its value cannot be placed.
127
+ */
128
+ export declare function designatorsByType(address: MarkupElement): ReadonlyMap<string, readonly string[]>;
129
+ /**
130
+ * The first non-empty designator among `types`, in the order given.
131
+ *
132
+ * A caller states its publisher's vocabulary and its own precedence:
133
+ * Czechia asks for `buildingIdentifier`, the Netherlands for `addressNumber`,
134
+ * Wallonia for `LocatorDesignatorTypeValue/addressIdentifierGeneral`.
135
+ */
136
+ /**
137
+ * The locator-designator types this address marks void, by their INSPIRE type name.
138
+ *
139
+ * {@linkcode designatorsByType} leaves a void designator out, so on its own it cannot
140
+ * separate a value the publisher marked unknown from one the publisher never wrote.
141
+ * The repository's partial-read rule needs that separation: an unreadable requested
142
+ * value has to be reported rather than turned into an absence.
143
+ *
144
+ * A caller reads this when the difference changes what it does.
145
+ * An adapter that refuses a row carrying no house number should report a void `buildingIdentifier` as
146
+ * a value it could not read, and an absent one as an address the publisher states has no number.
147
+ */
148
+ export declare function voidDesignatorTypes(address: MarkupElement): ReadonlySet<string>;
149
+ export declare function designator(byType: ReadonlyMap<string, readonly string[]>, ...types: readonly string[]): string | undefined;
150
+ /**
151
+ * Every `ad:component` reference on an address, as written.
152
+ *
153
+ * The href is returned verbatim, and {@linkcode componentJoinKey} turns it into a join key.
154
+ * A component whose href is absent or empty is skipped.
155
+ *
156
+ * Brussels writes `<ad:component xlink:href=""/>` on 9 addresses, and those 9 therefore
157
+ * carry no postal zone, which a caller must report rather than read as a resolved component.
158
+ */
159
+ export declare function componentHrefs(address: MarkupElement): readonly string[];
160
+ /**
161
+ * One `ad:component` reference, with the title the publisher wrote beside it.
162
+ */
163
+ export interface ComponentLink {
164
+ /**
165
+ * The `xlink:href`, trimmed and otherwise as written.
166
+ */
167
+ readonly href: string;
168
+ /**
169
+ * The `xlink:title`, or undefined where the reference carries none.
170
+ */
171
+ readonly title?: string;
172
+ }
173
+ /**
174
+ * Every `ad:component` reference on an address, with its title.
175
+ *
176
+ * Most publishers repeat the referenced feature's own value in `xlink:title`, and their adapters
177
+ * read the resolved feature instead, because a title is a copy and the feature is the record.
178
+ *
179
+ * The Gobierno de Navarra is the case that needs the title.
180
+ * Its references leave the file: a thoroughfare reference is the bare string `ThoroughfareName`
181
+ * and an administrative-unit reference addresses a CartoCiudad stored query.
182
+ *
183
+ * The title is the only statement of the street name, the postcode and the place names
184
+ * that its own file carries, so its adapter reads titles and resolves no reference.
185
+ *
186
+ * A component whose href is absent or empty is skipped, as in {@linkcode componentHrefs}.
187
+ */
188
+ export declare function componentLinks(address: MarkupElement): readonly ComponentLink[];
189
+ /**
190
+ * The key a component reference joins on.
191
+ *
192
+ * Four shapes appear across the publishers measured, and they differ in
193
+ * where the key sits rather than in whether one exists:
194
+ *
195
+ * | publisher | href | key |
196
+ * | --- | --- | --- |
197
+ * | Netherlands, Wallonia, Brussels | `#nl-imbag-ad-thoroughfarename.0003300000117203` | the fragment |
198
+ * | Czechia | `…inspire-ad-wfs.asp?…&Id=TF.48674` | `TF.48674` |
199
+ * | Slovakia | `…ad/ows?…&id=AdminUnitName.15345` | `AdminUnitName.15345` |
200
+ * | Flanders | `https://data.vlaanderen.be/id/straatnaam/6301` | the URI itself |
201
+ *
202
+ * A URI with no id parameter is its own key, which is what Flanders publishes on both sides of the join.
203
+ * Its fragment is dropped, because a reference may carry one where the identifier does not:
204
+ * `http://vocab.belgif.be/auth/refnis1995/1000#id` addresses the same term as that URI without it.
205
+ *
206
+ * Whether a key joins is not a property of its spelling, so this reads a key
207
+ * and the caller decides joinability against the features the publisher actually served.
208
+ * Deciding it here from the URL's shape once reported 15 of Flanders' 20 references as
209
+ * belonging to another register when every one of them addressed a feature of the same service.
210
+ *
211
+ * @returns The key, or undefined when the href is neither a fragment nor a URL.
212
+ */
213
+ export declare function componentJoinKey(href: string): string | undefined;
214
+ /**
215
+ * The spelling a `gn:GeographicalName` carries, reached from a feature that holds one.
216
+ *
217
+ * Every name-bearing INSPIRE feature nests the text at
218
+ * `…/gn:GeographicalName/gn:spelling/gn:SpellingOfName/gn:text`, under a per-feature
219
+ * prefix: an `ad:ThoroughfareName` adds `ad:name/ad:ThoroughfareNameValue/ad:name`,
220
+ * while an `ad:AdminUnitName` and an `ad:AddressAreaName` add only `ad:name`.
221
+ * The caller gives the prefix.
222
+ *
223
+ * @returns The text, or undefined when any step is absent or the name is void.
224
+ */
225
+ export declare function geographicalNameText(feature: MarkupElement, ...prefix: readonly string[]): string | undefined;
226
+ /**
227
+ * The street name an `ad:ThoroughfareName` feature states.
228
+ */
229
+ export declare function thoroughfareName(feature: MarkupElement): string | undefined;
230
+ /**
231
+ * The place name an `ad:AdminUnitName` or `ad:AddressAreaName` feature states.
232
+ */
233
+ export declare function placeName(feature: MarkupElement): string | undefined;
234
+ /**
235
+ * The postcode an `ad:PostalDescriptor` feature states.
236
+ *
237
+ * The Spanish cadastre writes this element as an integer, so `02250` arrives as `2250`.
238
+ * Left-padding belongs to the caller that knows the jurisdiction's width,
239
+ * because this reader returns what the publisher wrote.
240
+ */
241
+ export declare function postalDescriptorCode(feature: MarkupElement): string | undefined;
242
+ /**
243
+ * The administrative level an `ad:AdminUnitName` states, as a codelist value such as `4thOrder`.
244
+ *
245
+ * A publisher references several admin units per address: Czechia references the
246
+ * country at `1stOrder` and the municipality at `4thOrder`, and the Netherlands
247
+ * publishes exactly one `ad:AdminUnitName` feature, the country.
248
+ * A caller picks the finest level it wants by this value rather than by the order the references appear.
249
+ */
250
+ export declare function adminUnitLevel(feature: MarkupElement): string | undefined;
251
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../lib/inspire/address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE5F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAE9F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,GAAG,SAAS,CAU9G;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIjF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAmChG;AAED;;;;;;GAMG;AACH;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAwB/E;AAED,wBAAgB,UAAU,CACzB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,EAC9C,GAAG,KAAK,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAExE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,aAAa,EAAE,CAc/E;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0BjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAe7G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAMzE"}
@@ -0,0 +1,384 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Reads the parts of an INSPIRE Addresses feature that every publisher spells the same way.
7
+ *
8
+ * INSPIRE harmonizes the schema and leaves the rest to the publisher. Seven publishers this
9
+ * repository reads all write `ad:Address` with the same element paths, and they disagree on four
10
+ * things that each decide a value:
11
+ *
12
+ * 1. The wrapper. Czechia writes `base:SpatialDataSet` with `base:member`. The Netherlands,
13
+ * Wallonia and Brussels write `gml:FeatureCollection` with `gml:featureMember`.
14
+ * 2. The reference form. Czechia's `ad:component` href is an absolute WFS stored-query URL
15
+ * whose `Id=` parameter is the key. The Netherlands, Wallonia and Brussels write a local `#`
16
+ * fragment. Flanders writes an absolute data URI that a caller rewrites into a `resourceId`.
17
+ * 3. Where the postcode lives. Czechia and Wallonia reference an `ad:PostalDescriptor`; the
18
+ * Netherlands puts it inline as a `LocatorDesignatorTypeValue/postalDeliveryIdentifier` locator and publishes no
19
+ * `ad:PostalDescriptor` at all.
20
+ * 4. The locator vocabulary. Czechia types its number `buildingIdentifier`, the Netherlands
21
+ * `addressNumber`, Wallonia `LocatorDesignatorTypeValue/addressIdentifierGeneral`, Brussels
22
+ * `buildingIdentifier`.
23
+ * 5. The prefix's case. Seven publishers write `ad:` and `gn:`. The Dirección General del Catastro
24
+ * and the Gobierno de Navarra bind the same namespaces to `AD:` and `GN:`. The Catastro also
25
+ * states a designator type and an administrative level as element text, `1` and `4`, where
26
+ * everyone else writes a codelist URI. The readers below therefore match an element name
27
+ * without regard to case, and accept either form of a coded value.
28
+ *
29
+ * So this module exposes the primitives and leaves composition to each adapter. A configuration
30
+ * object describing those four axes would have to be right about publishers whose files nobody has
31
+ * read yet. A handful of small functions carries no such claim.
32
+ *
33
+ * The reference form is the exception, because its shapes are enumerable and measured:
34
+ * {@linkcode componentJoinKey} reads all four.
35
+ */
36
+ /**
37
+ * Whether an element's name is `wanted`, ignoring the case of both.
38
+ *
39
+ * The prefix a document binds a namespace to is the document's own choice.
40
+ * Seven publishers write `ad:Address` and `gn:text`.
41
+ *
42
+ * The Dirección General del Catastro and the Gobierno de Navarra bind the same
43
+ * two namespaces to `AD:` and `GN:`.
44
+ * A reader comparing the name exactly finds neither a locator nor a street
45
+ * nor a postcode in either Spanish file.
46
+ *
47
+ * That reads as an address carrying none rather than as a prefix this repository had not met.
48
+ *
49
+ * The prefix is still compared, because it carries the namespace and the namespace carries the meaning.
50
+ * The Service public de Wallonie writes three `gml:name` elements inside each
51
+ * `ad:ThoroughfareName`, ahead of the `ad:name` that holds the street.
52
+ *
53
+ * A reader that dropped the prefix and matched on `name` alone read the first of those three
54
+ * and found no street on any of Wallonia's 58,591 thoroughfare features.
55
+ */
56
+ export function inspireNameIs(name, wanted) {
57
+ return name.toLowerCase() === wanted.toLowerCase();
58
+ }
59
+ /**
60
+ * The first child of `element` named `name`, ignoring case.
61
+ *
62
+ * `name` is written with the prefix the INSPIRE guideline uses, which is the
63
+ * prefix eight of the nine publishers write.
64
+ * The case-insensitive sibling of `childElement` from `@mailwoman/core/html/elements`,
65
+ * which compares the name exactly as a general markup reader must.
66
+ */
67
+ export function inspireChild(element, name) {
68
+ return element.children.find((child) => inspireNameIs(child.name, name));
69
+ }
70
+ /**
71
+ * Every child of `element` named `name`, in document order, ignoring case.
72
+ *
73
+ * The case-insensitive sibling of `childElements` from `@mailwoman/core/html/elements`,
74
+ * for the same reason {@linkcode inspireChild} is.
75
+ */
76
+ export function inspireChildren(element, name) {
77
+ return element.children.filter((child) => inspireNameIs(child.name, name));
78
+ }
79
+ /**
80
+ * The element reached by walking `path` from `element`, taking the first match at each step.
81
+ *
82
+ * The case-insensitive sibling of `elementAtPath` from `@mailwoman/core/html/elements`.
83
+ * An INSPIRE value sits five or six elements down, so the path form reads better than
84
+ * a chain of {@linkcode inspireChild} calls and reports the same absence.
85
+ */
86
+ export function inspireElementAt(element, ...path) {
87
+ let current = element;
88
+ for (const step of path) {
89
+ if (!current)
90
+ return undefined;
91
+ current = inspireChild(current, step);
92
+ }
93
+ return current;
94
+ }
95
+ /**
96
+ * The final segment of an INSPIRE codelist URI, which is the value's name.
97
+ *
98
+ * `http://inspire.ec.europa.eu/codelist/LocatorDesignatorTypeValue/buildingIdentifier`
99
+ * reads `buildingIdentifier`.
100
+ * A `#` fragment is dropped first, because Flanders appends one to a `vocab.belgif.be`
101
+ * reference and Czechia folds it into `base:localId`.
102
+ */
103
+ export function codelistValue(uri) {
104
+ if (!uri)
105
+ return undefined;
106
+ const withoutFragment = uri.split("#")[0];
107
+ const segment = withoutFragment.split("/").pop();
108
+ return segment || undefined;
109
+ }
110
+ /**
111
+ * Whether a publisher marked this element void.
112
+ *
113
+ * INSPIRE writes `xsi:nil="true"` and usually a `nilReason`.
114
+ * Brussels writes the nil marker and no reason on all 232,003 of its void `ad:validFrom`
115
+ * elements, and Czechia writes four `gn:pronunciation` elements nil with no reason,
116
+ * so a reader keyed on `nilReason` alone mistakes a void value for a populated one.
117
+ *
118
+ * An absent element answers false, so a caller distinguishes a void value from a missing one.
119
+ */
120
+ export function isVoid(element) {
121
+ return element?.attributes["xsi:nil"] === "true";
122
+ }
123
+ /**
124
+ * The reason a publisher gave for a void element, as a codelist value such as `Unpopulated`.
125
+ *
126
+ * Returns undefined when the element is void and states no reason, which the
127
+ * schema permits and which Brussels does throughout.
128
+ * A caller that needs to separate a void carrying a reason from a void carrying
129
+ * none reads this together with {@linkcode isVoid}.
130
+ */
131
+ export function voidReason(element) {
132
+ if (!isVoid(element))
133
+ return undefined;
134
+ return codelistValue(element?.attributes.nilReason);
135
+ }
136
+ /**
137
+ * Every locator designator on an address, keyed by its INSPIRE type name.
138
+ *
139
+ * One `ad:AddressLocator` carries a designator per part of the number, each in its
140
+ * own `ad:LocatorDesignator` beside an `ad:type` naming what it is.
141
+ * Czechia writes two, `č.ev.` typed `buildingIdentifierPrefix` and `502` typed `buildingIdentifier`.
142
+ *
143
+ * The Netherlands writes four, including an empty `LocatorDesignatorTypeValue/addressNumberExtension`
144
+ * and the postcode as `LocatorDesignatorTypeValue/postalDeliveryIdentifier`.
145
+ *
146
+ * A type may repeat, so each key holds a list in document order.
147
+ * A designator the publisher wrote empty contributes an empty string, which is a value the publisher
148
+ * stated rather than one it omitted: the Netherlands writes `<ad:designator/>` 198,118 times
149
+ * over 108,708 features to mean "no extension", and that is a different condition from void.
150
+ *
151
+ * A designator whose `ad:type` is absent or void is skipped, because its value cannot be placed.
152
+ */
153
+ export function designatorsByType(address) {
154
+ const byType = new Map();
155
+ const locator = inspireElementAt(address, "ad:locator", "ad:AddressLocator");
156
+ if (!locator)
157
+ return byType;
158
+ for (const wrapper of inspireChildren(locator, "ad:designator")) {
159
+ const locatorDesignator = inspireChild(wrapper, "ad:LocatorDesignator");
160
+ if (!locatorDesignator)
161
+ continue;
162
+ const type = inspireChild(locatorDesignator, "ad:type");
163
+ if (!type || isVoid(type))
164
+ continue;
165
+ const name = codelistValue(type.attributes["xlink:href"]) ?? type.text;
166
+ if (!name)
167
+ continue;
168
+ const value = inspireChild(locatorDesignator, "ad:designator");
169
+ // A void designator is reported by `voidDesignatorTypes` rather than here, because a
170
+ // value the publisher marked unknown is not a value and must not reach a component.
171
+ if (!value || isVoid(value))
172
+ continue;
173
+ const existing = byType.get(name);
174
+ if (existing) {
175
+ existing.push(value.text);
176
+ }
177
+ else {
178
+ byType.set(name, [value.text]);
179
+ }
180
+ }
181
+ return byType;
182
+ }
183
+ /**
184
+ * The first non-empty designator among `types`, in the order given.
185
+ *
186
+ * A caller states its publisher's vocabulary and its own precedence:
187
+ * Czechia asks for `buildingIdentifier`, the Netherlands for `addressNumber`,
188
+ * Wallonia for `LocatorDesignatorTypeValue/addressIdentifierGeneral`.
189
+ */
190
+ /**
191
+ * The locator-designator types this address marks void, by their INSPIRE type name.
192
+ *
193
+ * {@linkcode designatorsByType} leaves a void designator out, so on its own it cannot
194
+ * separate a value the publisher marked unknown from one the publisher never wrote.
195
+ * The repository's partial-read rule needs that separation: an unreadable requested
196
+ * value has to be reported rather than turned into an absence.
197
+ *
198
+ * A caller reads this when the difference changes what it does.
199
+ * An adapter that refuses a row carrying no house number should report a void `buildingIdentifier` as
200
+ * a value it could not read, and an absent one as an address the publisher states has no number.
201
+ */
202
+ export function voidDesignatorTypes(address) {
203
+ const voided = new Set();
204
+ const locator = inspireElementAt(address, "ad:locator", "ad:AddressLocator");
205
+ if (!locator)
206
+ return voided;
207
+ for (const wrapper of inspireChildren(locator, "ad:designator")) {
208
+ const locatorDesignator = inspireChild(wrapper, "ad:LocatorDesignator");
209
+ if (!locatorDesignator)
210
+ continue;
211
+ const value = inspireChild(locatorDesignator, "ad:designator");
212
+ if (!value || !isVoid(value))
213
+ continue;
214
+ const type = inspireChild(locatorDesignator, "ad:type");
215
+ const name = type && !isVoid(type) ? (codelistValue(type.attributes["xlink:href"]) ?? type.text) : undefined;
216
+ // A void value whose own type is void or absent cannot be placed, so it is reported under
217
+ // the empty name rather than dropped, which keeps the address's unreadable parts countable.
218
+ voided.add(name || "");
219
+ }
220
+ return voided;
221
+ }
222
+ export function designator(byType, ...types) {
223
+ for (const type of types) {
224
+ for (const value of byType.get(type) ?? []) {
225
+ const trimmed = value.trim();
226
+ if (trimmed)
227
+ return trimmed;
228
+ }
229
+ }
230
+ return undefined;
231
+ }
232
+ /**
233
+ * Every `ad:component` reference on an address, as written.
234
+ *
235
+ * The href is returned verbatim, and {@linkcode componentJoinKey} turns it into a join key.
236
+ * A component whose href is absent or empty is skipped.
237
+ *
238
+ * Brussels writes `<ad:component xlink:href=""/>` on 9 addresses, and those 9 therefore
239
+ * carry no postal zone, which a caller must report rather than read as a resolved component.
240
+ */
241
+ export function componentHrefs(address) {
242
+ return componentLinks(address).map((link) => link.href);
243
+ }
244
+ /**
245
+ * Every `ad:component` reference on an address, with its title.
246
+ *
247
+ * Most publishers repeat the referenced feature's own value in `xlink:title`, and their adapters
248
+ * read the resolved feature instead, because a title is a copy and the feature is the record.
249
+ *
250
+ * The Gobierno de Navarra is the case that needs the title.
251
+ * Its references leave the file: a thoroughfare reference is the bare string `ThoroughfareName`
252
+ * and an administrative-unit reference addresses a CartoCiudad stored query.
253
+ *
254
+ * The title is the only statement of the street name, the postcode and the place names
255
+ * that its own file carries, so its adapter reads titles and resolves no reference.
256
+ *
257
+ * A component whose href is absent or empty is skipped, as in {@linkcode componentHrefs}.
258
+ */
259
+ export function componentLinks(address) {
260
+ const links = [];
261
+ for (const component of inspireChildren(address, "ad:component")) {
262
+ const href = component.attributes["xlink:href"]?.trim();
263
+ if (!href)
264
+ continue;
265
+ const title = component.attributes["xlink:title"]?.trim();
266
+ links.push(title ? { href, title } : { href });
267
+ }
268
+ return links;
269
+ }
270
+ /**
271
+ * The query parameters a WFS stored-query reference carries its feature id in.
272
+ *
273
+ * Each publisher picked a spelling, and the match below ignores case, so Czechia's `Id`
274
+ * and Slovakia's `id` both resolve without naming each casing separately.
275
+ * A reader that knew only `id` returned Czechia's whole URL as the key, and no `gml:id`
276
+ * equals a URL, so all 5,460 of one municipality's references read as unjoinable.
277
+ */
278
+ const REFERENCE_ID_PARAMETERS = new Set(["id", "featureid", "resourceid"]);
279
+ /**
280
+ * The key a component reference joins on.
281
+ *
282
+ * Four shapes appear across the publishers measured, and they differ in
283
+ * where the key sits rather than in whether one exists:
284
+ *
285
+ * | publisher | href | key |
286
+ * | --- | --- | --- |
287
+ * | Netherlands, Wallonia, Brussels | `#nl-imbag-ad-thoroughfarename.0003300000117203` | the fragment |
288
+ * | Czechia | `…inspire-ad-wfs.asp?…&Id=TF.48674` | `TF.48674` |
289
+ * | Slovakia | `…ad/ows?…&id=AdminUnitName.15345` | `AdminUnitName.15345` |
290
+ * | Flanders | `https://data.vlaanderen.be/id/straatnaam/6301` | the URI itself |
291
+ *
292
+ * A URI with no id parameter is its own key, which is what Flanders publishes on both sides of the join.
293
+ * Its fragment is dropped, because a reference may carry one where the identifier does not:
294
+ * `http://vocab.belgif.be/auth/refnis1995/1000#id` addresses the same term as that URI without it.
295
+ *
296
+ * Whether a key joins is not a property of its spelling, so this reads a key
297
+ * and the caller decides joinability against the features the publisher actually served.
298
+ * Deciding it here from the URL's shape once reported 15 of Flanders' 20 references as
299
+ * belonging to another register when every one of them addressed a feature of the same service.
300
+ *
301
+ * @returns The key, or undefined when the href is neither a fragment nor a URL.
302
+ */
303
+ export function componentJoinKey(href) {
304
+ const trimmed = href.trim();
305
+ if (!trimmed)
306
+ return undefined;
307
+ if (trimmed.startsWith("#"))
308
+ return trimmed.slice(1) || undefined;
309
+ let url;
310
+ try {
311
+ url = new URL(trimmed);
312
+ }
313
+ catch {
314
+ return undefined;
315
+ }
316
+ for (const [parameter, value] of url.searchParams) {
317
+ if (!REFERENCE_ID_PARAMETERS.has(parameter.toLowerCase()))
318
+ continue;
319
+ const id = value.trim();
320
+ if (id)
321
+ return id;
322
+ }
323
+ url.hash = "";
324
+ return url.toString();
325
+ }
326
+ /**
327
+ * The spelling a `gn:GeographicalName` carries, reached from a feature that holds one.
328
+ *
329
+ * Every name-bearing INSPIRE feature nests the text at
330
+ * `…/gn:GeographicalName/gn:spelling/gn:SpellingOfName/gn:text`, under a per-feature
331
+ * prefix: an `ad:ThoroughfareName` adds `ad:name/ad:ThoroughfareNameValue/ad:name`,
332
+ * while an `ad:AdminUnitName` and an `ad:AddressAreaName` add only `ad:name`.
333
+ * The caller gives the prefix.
334
+ *
335
+ * @returns The text, or undefined when any step is absent or the name is void.
336
+ */
337
+ export function geographicalNameText(feature, ...prefix) {
338
+ const name = inspireElementAt(feature, ...prefix, "gn:GeographicalName", "gn:spelling", "gn:SpellingOfName", "gn:text");
339
+ if (!name || isVoid(name))
340
+ return undefined;
341
+ const text = name.text.trim();
342
+ return text || undefined;
343
+ }
344
+ /**
345
+ * The street name an `ad:ThoroughfareName` feature states.
346
+ */
347
+ export function thoroughfareName(feature) {
348
+ return geographicalNameText(feature, "ad:name", "ad:ThoroughfareNameValue", "ad:name");
349
+ }
350
+ /**
351
+ * The place name an `ad:AdminUnitName` or `ad:AddressAreaName` feature states.
352
+ */
353
+ export function placeName(feature) {
354
+ return geographicalNameText(feature, "ad:name");
355
+ }
356
+ /**
357
+ * The postcode an `ad:PostalDescriptor` feature states.
358
+ *
359
+ * The Spanish cadastre writes this element as an integer, so `02250` arrives as `2250`.
360
+ * Left-padding belongs to the caller that knows the jurisdiction's width,
361
+ * because this reader returns what the publisher wrote.
362
+ */
363
+ export function postalDescriptorCode(feature) {
364
+ const code = inspireChild(feature, "ad:postCode");
365
+ if (!code || isVoid(code))
366
+ return undefined;
367
+ const text = code.text.trim();
368
+ return text || undefined;
369
+ }
370
+ /**
371
+ * The administrative level an `ad:AdminUnitName` states, as a codelist value such as `4thOrder`.
372
+ *
373
+ * A publisher references several admin units per address: Czechia references the
374
+ * country at `1stOrder` and the municipality at `4thOrder`, and the Netherlands
375
+ * publishes exactly one `ad:AdminUnitName` feature, the country.
376
+ * A caller picks the finest level it wants by this value rather than by the order the references appear.
377
+ */
378
+ export function adminUnitLevel(feature) {
379
+ const level = inspireChild(feature, "ad:level");
380
+ if (!level || isVoid(level))
381
+ return undefined;
382
+ return codelistValue(level.attributes["xlink:href"]) ?? (level.text.trim() || undefined);
383
+ }
384
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../lib/inspire/address.ts"],"names":[],"mappings":"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"}