@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 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/es/adapters/catastro/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAyBH,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAW,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,qHAC8E,CAAA;AAgG9G,wBAAgB,uBAAuB,IAAI,aAAa,CAyCvD;AA6ED;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA4B,CAAA"}
@@ -0,0 +1,288 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `es-catastro`: the INSPIRE Addresses theme the Dirección General del Catastro publishes, read
7
+ * from its per-municipality zipped GML.
8
+ *
9
+ * The ATOM service at `https://www.catastro.hacienda.gob.es/INSPIRE/Addresses/ES.SDGC.AD.atom.xml`
10
+ * lists 55 entries, and 52 of them are the Dirección General del Catastro's own provinces. The other
11
+ * three link the foral cadastres of Bizkaia, Gipuzkoa and Navarra, which state their own terms and
12
+ * have an adapter each. Every DGC entry links a province feed listing one zipped GML per
13
+ * municipality, so a caller harvests municipality by municipality and this adapter reads one archive
14
+ * or a directory of them.
15
+ *
16
+ * Three properties of the file decide the reader, and each of the three would silently empty a row
17
+ * if it were read the way the other INSPIRE publishers are read.
18
+ *
19
+ * The archive carries two members. `A.ES.SDGC.AD.<code>.gml` is the data and
20
+ * `A.ES.SDGC.AD.MD.<code>.xml` is its ISO 19139 metadata record. A member selector matching `.xml`
21
+ * therefore selects the metadata record. That record carries no `AD:Address` at all, so
22
+ * {@linkcode GML_MEMBER} matches the extension that holds the features.
23
+ *
24
+ * The GML declares `<?xml version="1.0" encoding="ISO-8859-1"?>` and is not valid UTF-8: Ceuta's
25
+ * 11,861,975-byte member carries 26 bytes above 0x7F, one of which is the `Ñ` of a street name.
26
+ * `streamMarkupElements` decodes with a UTF-8 `TextDecoder`, which answers those bytes with U+FFFD,
27
+ * so the bytes pass through `decodeByteStream` first. {@linkcode assertLatin1Declaration} reads the
28
+ * declaration rather than trusting this note, because a publisher that re-encodes its output would
29
+ * otherwise have every accented name mojibaked under a reader that still claimed to be right.
30
+ *
31
+ * The file binds the INSPIRE namespaces to upper-case prefixes, `AD:Address` and `GN:text`, and
32
+ * states a designator type and an administrative level as element text rather than as a codelist
33
+ * URI. `#inspire/address` matches an element by its local name and accepts either form of a coded
34
+ * value, so the readers there serve this publisher. Only the element names this module passes to the
35
+ * markup stream carry the upper-case prefix.
36
+ *
37
+ * Each address references exactly three features by local `#` fragment, measured as 8,126 of 8,126
38
+ * addresses in Ceuta carrying one `ES.SDGC.PD`, one `ES.SDGC.TN` and one `ES.SDGC.AU` reference.
39
+ * Those features are written after the addresses — Ceuta's 511 of them sit in the last 530,000 bytes
40
+ * of the member — so the adapter reads the member twice through
41
+ * {@linkcode streamIndexedInspireRows} rather than holding every address until the document ends.
42
+ *
43
+ * The number is one designator, typed `1`. The publisher's own rendering fixes what that type means
44
+ * and what the value `S-N` means. `Consulta_DNPRC` on the OVC web service answers a cadastral
45
+ * reference with the address the Cadastre holds for it, as `<ldt>`, plus the fields it is built
46
+ * from: `tv` the street-type abbreviation, `nv` the street name, `pnp` the number, `plp` its letter,
47
+ * `dp` the postcode and `nm` the municipality. The cadastral reference is the tail of the address's
48
+ * own `gml:id`, so every row this adapter writes can be put beside the publisher's own line:
49
+ *
50
+ * | `gml:id` tail | designator | `<ldt>` |
51
+ * | --- | --- | --- |
52
+ * | `9744803TE8794S` | `13` | `CL SANTIAGO APOSTOL 13 51002 CEUTA (CEUTA)` |
53
+ * | `9745701TE8794S` | `13D` | `CL SANTIAGO APOSTOL 13(D) 51002 CEUTA (CEUTA)` |
54
+ *
55
+ * So the designator is `pnp` with `plp` appended, and the street is `tv` followed by `nv`, which is
56
+ * the `AD:ThoroughfareName` text verbatim once its leading space is trimmed. The abbreviation stays
57
+ * in the street component because the publisher writes it in its own rendered line. Expanding `CL`
58
+ * to `Calle` would state something the Cadastre did not.
59
+ *
60
+ * `S-N` is *sin número*, the publisher stating that the address has no number, and it is 856 of
61
+ * Ceuta's 8,126 designators. A row carrying it writes no `house_number`, because the string is a
62
+ * statement about the number rather than a number.
63
+ *
64
+ * One reference form states an absence the same way. The postal-descriptor reference's final segment
65
+ * is the postcode, and 70 of Ceuta's 8,126 addresses write `#ES.SDGC.PD.55.101.` with that segment
66
+ * empty, against five `AD:PostalDescriptor` features the file does publish. Those 70 are the only
67
+ * unresolvable references in the member: the thoroughfare and administrative-unit references resolve
68
+ * 8,126 of 8,126 each. A reference whose final segment is empty is therefore read as the publisher
69
+ * holding no value for that component, and every other unresolved reference raises.
70
+ */
71
+ import { decodeByteStream } from "@mailwoman/core/fs/streams";
72
+ import { stringifyJSON } from "@mailwoman/core/json";
73
+ import { PathBuilder } from "path-ts";
74
+ import { Globerator } from "spliterator/node/fs";
75
+ import { UnsupportedCountryError } from "#adapters/errors";
76
+ import { cadastralRow, referenceStatesNoValue, spanishHouseNumber } from "#es/cadastre";
77
+ import { adminUnitLevel, componentHrefs, componentJoinKey, designatorsByType, inspireNameIs, placeName, postalDescriptorCode, thoroughfareName, voidDesignatorTypes, } from "#inspire/address";
78
+ import { inspireGMLChunks } from "#inspire/archive";
79
+ import { UnresolvedComponentReferenceError, VoidDesignatorError } from "#inspire/errors";
80
+ import { streamIndexedInspireRows } from "#inspire/stream";
81
+ import { SourceRegister } from "#registers";
82
+ import { AddressRole, SurfaceOrigin } from "#types";
83
+ /**
84
+ * Registry id for this adapter.
85
+ *
86
+ * Stamped into every row it emits, so a corpus record can be traced back to the dataset it came from.
87
+ */
88
+ export const ES_CATASTRO_ADAPTER_ID = "es-catastro";
89
+ /**
90
+ * The jurisdiction this adapter emits.
91
+ *
92
+ * The 52 province feeds cover peninsular Spain, the Balearics, the Canaries, Ceuta and Melilla.
93
+ * The three Basque provinces and Navarra keep their own cadastres and their own adapters.
94
+ */
95
+ export const ES_CATASTRO_COUNTRIES = ["ES"];
96
+ /**
97
+ * The license the address-source register elected for this publisher.
98
+ *
99
+ * The register elects the titled instrument, `Licencia de acceso y uso de los servicios y conjuntos
100
+ * de datos INSPIRE de la Dirección General del Catastro` at version 1.0, rather than the older
101
+ * `all rights reserved` template the feed still carries. It names no license instrument a
102
+ * Creative Commons label or an SPDX identifier would cover, so the row records the instrument's
103
+ * own title.
104
+ *
105
+ * That decision reads `refused` for `redistribute-data`: clause 1 withholds distribution
106
+ * of the information as supplied, and requires transformation before any public use.
107
+ * Ingest, transformation and training are permitted, which is what this adapter performs.
108
+ */
109
+ export const ES_CATASTRO_LICENSE = "Licencia de acceso y uso de los servicios y conjuntos de datos INSPIRE de la Dirección General del Catastro";
110
+ /**
111
+ * The member of a municipality's archive that holds the GML.
112
+ *
113
+ * The archive ships two members and the other is `A.ES.SDGC.AD.MD.<code>.xml`,
114
+ * the ISO 19139 metadata record.
115
+ * A selector matching `.xml` reads that record, which carries no `AD:Address`.
116
+ */
117
+ const GML_MEMBER = /\.gml$/iu;
118
+ /**
119
+ * The encoding the publisher declares and writes.
120
+ */
121
+ const DECLARED_ENCODING = "iso-8859-1";
122
+ /**
123
+ * The feature types an address references, indexed in the first pass over the member.
124
+ *
125
+ * `AD:AddressAreaName` is listed although Ceuta publishes none, because the schema admits one and a
126
+ * municipality that writes one would otherwise have its settlement part read as an unresolved reference.
127
+ */
128
+ const COMPONENT_ELEMENTS = [
129
+ "AD:ThoroughfareName",
130
+ "AD:PostalDescriptor",
131
+ "AD:AdminUnitName",
132
+ "AD:AddressAreaName",
133
+ ];
134
+ /**
135
+ * The element each address is written as.
136
+ */
137
+ const ADDRESS_ELEMENT = "AD:Address";
138
+ /**
139
+ * The administrative level that is the municipality.
140
+ *
141
+ * The publisher writes `<AD:level>4</AD:level>` as text where the other INSPIRE publishers
142
+ * write the `AdministrativeHierarchyLevel/4thOrder` codelist URI, so both spellings
143
+ * are accepted and a reference to a coarser unit is left out of the row.
144
+ */
145
+ const MUNICIPALITY_LEVELS = new Set(["4", "4thOrder"]);
146
+ /**
147
+ * The designator type the publisher writes on every address.
148
+ *
149
+ * Measured over Ceuta: 8,126 of 8,126 addresses carry exactly one designator
150
+ * and its `AD:type` is the text `1`.
151
+ * The value is the house number, which `Consulta_DNPRC`'s `pnp` and `plp` fields
152
+ * confirm for the two addresses tabulated in this module's header.
153
+ */
154
+ const HOUSE_NUMBER_TYPE = "1";
155
+ /**
156
+ * Raises unless the member declares the encoding this reader decodes it from.
157
+ *
158
+ * The declaration is the publisher's statement about its own bytes, and a reader that assumed ISO-8859-1
159
+ * through a change to UTF-8 would mojibake every accented street name while reporting success.
160
+ * A member that states no encoding is accepted, because XML's default is UTF-8
161
+ * and ISO-8859-1 decoding of ASCII bytes is the same text.
162
+ */
163
+ async function* assertLatin1Declaration(chunks, archivePath) {
164
+ let first = true;
165
+ for await (const chunk of chunks) {
166
+ if (first) {
167
+ first = false;
168
+ const declaration = /<\?xml[^>]*encoding="([^"]+)"/iu.exec(Buffer.from(chunk.subarray(0, 512)).toString("latin1"));
169
+ const declared = declaration?.[1]?.toLowerCase();
170
+ if (declared && declared !== DECLARED_ENCODING) {
171
+ throw new TypeError(`${ES_CATASTRO_ADAPTER_ID} adapter: ${archivePath.toString()} declares encoding ` +
172
+ `${stringifyJSON(declaration?.[1])}, and this reader decodes ${stringifyJSON(DECLARED_ENCODING)}`);
173
+ }
174
+ }
175
+ yield chunk;
176
+ }
177
+ }
178
+ /**
179
+ * One archive member's bytes, re-encoded into the UTF-8 the markup reader decodes.
180
+ */
181
+ function memberChunks(archivePath) {
182
+ return decodeByteStream(assertLatin1Declaration(inspireGMLChunks(archivePath, GML_MEMBER), archivePath), DECLARED_ENCODING);
183
+ }
184
+ export function createESCatastroAdapter() {
185
+ return {
186
+ id: ES_CATASTRO_ADAPTER_ID,
187
+ defaultLicense: ES_CATASTRO_LICENSE,
188
+ addressRole: AddressRole.Premise,
189
+ register: SourceRegister.CatastroInspireAddresses,
190
+ surface: SurfaceOrigin.Rendered,
191
+ description: "INSPIRE Addresses (Dirección General del Catastro): house-number-level addresses for Spain outside the foral cadastres, one zipped GML per municipality.",
192
+ async *rows(opts) {
193
+ if (opts.country && !ES_CATASTRO_COUNTRIES.includes(opts.country)) {
194
+ throw new UnsupportedCountryError(ES_CATASTRO_ADAPTER_ID, ES_CATASTRO_COUNTRIES, opts.country);
195
+ }
196
+ let emitted = 0;
197
+ // One archive per municipality, each a document whose references resolve inside it.
198
+ for (const archivePath of await archivePaths(opts.inputPath)) {
199
+ if (opts.signal?.aborted)
200
+ break;
201
+ if (opts.limit !== undefined && emitted >= opts.limit)
202
+ break;
203
+ for await (const row of streamIndexedInspireRows({
204
+ chunks: () => memberChunks(archivePath),
205
+ addressElement: ADDRESS_ELEMENT,
206
+ componentElements: COMPONENT_ELEMENTS,
207
+ // The subtree is kept, because one feature answers a street, a postcode
208
+ // or a place name depending on which type it is.
209
+ index: (feature) => feature,
210
+ compose: composeRow,
211
+ limit: opts.limit === undefined ? undefined : opts.limit - emitted,
212
+ signal: opts.signal,
213
+ })) {
214
+ yield row;
215
+ emitted++;
216
+ }
217
+ }
218
+ },
219
+ };
220
+ }
221
+ /**
222
+ * One address's row, or undefined when it carries too little to render.
223
+ *
224
+ * The reference index is complete before this is called, so a reference resolving to no
225
+ * feature is a value the reader asked for and could not read, and it raises.
226
+ */
227
+ function composeRow(address, referenced) {
228
+ const addressID = address.attributes["gml:id"]?.trim();
229
+ if (voidDesignatorTypes(address).has(HOUSE_NUMBER_TYPE)) {
230
+ throw new VoidDesignatorError(ES_CATASTRO_ADAPTER_ID, addressID, HOUSE_NUMBER_TYPE);
231
+ }
232
+ let street;
233
+ let postcode;
234
+ let locality;
235
+ let settlement;
236
+ for (const href of componentHrefs(address)) {
237
+ const key = componentJoinKey(href);
238
+ if (key && referenceStatesNoValue(key))
239
+ continue;
240
+ const feature = key ? referenced.get(key) : undefined;
241
+ if (!feature)
242
+ throw new UnresolvedComponentReferenceError(ES_CATASTRO_ADAPTER_ID, addressID, href);
243
+ const name = feature.name;
244
+ if (inspireNameIs(name, "ad:ThoroughfareName")) {
245
+ street = thoroughfareName(feature);
246
+ }
247
+ else if (inspireNameIs(name, "ad:PostalDescriptor")) {
248
+ postcode = postalDescriptorCode(feature);
249
+ }
250
+ else if (inspireNameIs(name, "ad:AddressAreaName")) {
251
+ settlement = placeName(feature);
252
+ }
253
+ else if (inspireNameIs(name, "ad:AdminUnitName") && MUNICIPALITY_LEVELS.has(adminUnitLevel(feature) ?? "")) {
254
+ locality = placeName(feature);
255
+ }
256
+ }
257
+ return cadastralRow({
258
+ street,
259
+ house: spanishHouseNumber(designatorsByType(address), HOUSE_NUMBER_TYPE),
260
+ postcode,
261
+ locality,
262
+ settlement,
263
+ addressID,
264
+ }, { adapterID: ES_CATASTRO_ADAPTER_ID, license: ES_CATASTRO_LICENSE });
265
+ }
266
+ /**
267
+ * Every archive under `inputPath`, which is one `.zip` or a directory holding them.
268
+ *
269
+ * A directory holding no archive raises rather than yielding zero rows, so a wrong
270
+ * path reports itself instead of reading as an empty publisher.
271
+ */
272
+ async function archivePaths(inputPath) {
273
+ const path = PathBuilder.from(inputPath);
274
+ if (path.basename().toLowerCase().endsWith(".zip"))
275
+ return [path];
276
+ if (path.basename().toLowerCase().endsWith(".gml"))
277
+ return [path];
278
+ const names = await Globerator.from("*.{zip,gml}", { cwd: path.toString(), absolute: false }).toSorted();
279
+ if (!names.length) {
280
+ throw new Error(`${ES_CATASTRO_ADAPTER_ID} adapter: ${path.toString()} holds no .zip archive`);
281
+ }
282
+ return names.map((name) => path(name));
283
+ }
284
+ /**
285
+ * The configured adapter instance registered with the corpus builder.
286
+ */
287
+ export const esCatastroAdapter = createESCatastroAdapter();
288
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/es/adapters/catastro/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `es-gipuzkoa`: the INSPIRE Addresses theme the Diputación Foral de Gipuzkoa publishes, read from
7
+ * the one zipped GML that carries the whole province.
8
+ *
9
+ * The ATOM service at `https://b5m.gipuzkoa.eus/inspire/download/addresses.xml` is 4,469 bytes and
10
+ * holds a single entry for the province rather than one per municipality. That entry links its
11
+ * dataset through `rel="alternate"` and not `rel="enclosure"`, so a fetcher that looks only for an
12
+ * enclosure finds no dataset here. The adapter is handed the archive and the feed is acquisition's
13
+ * concern. The archive `ES.GFA.AD.zip` is 7,959,103 bytes and its one member `ES.GFA.AD.gml` is
14
+ * 313,162,472 bytes, a ratio of 39, so the member is read as a chunk sequence and never buffered.
15
+ *
16
+ * The member is self-contained and its order decides the reader. Counted over all 313,162,472 bytes:
17
+ * 68,744 `ad:Address`, 4,250 `ad:ThoroughfareName`, 178 `ad:PostalDescriptor` and 88
18
+ * `ad:AdminUnitName`, which is every one of the 73,260 `gml:featureMember` elements. The 4,516
19
+ * reference features are written last, beginning at byte 306,440,816. Holding an address until the
20
+ * document ends would therefore hold all 68,744, so the adapter reads the member twice through
21
+ * {@linkcode streamIndexedInspireRows} and indexes 4,516 features instead.
22
+ *
23
+ * A reference is a WFS stored-query URL whose `ID` parameter equals the target's `gml:id`, written
24
+ * against the internal host `http://b5mdev/` and with the id repeated as the URL's fragment:
25
+ * `…?…&ID=ES.GFA.TN.056.1110#ES.GFA.TN.056.1110`. `componentJoinKey` reads the parameter and the
26
+ * fragment belongs to the URL rather than to the id, so the key is `ES.GFA.TN.056.1110`. The
27
+ * unreachable host is not this reader's problem, because every reference resolves inside the member.
28
+ *
29
+ * A postal-descriptor reference whose final segment is empty, `…&ID=ES.GFA.PD.059. #…`, states that
30
+ * the publisher holds no postcode, and `referenceStatesNoValue` separates it from a broken join.
31
+ * The Cadastre writes the same form, which is why the predicate has one home.
32
+ *
33
+ * The locator vocabulary is one type. 68,743 of 68,744 addresses write exactly one designator, typed
34
+ * `LocatorDesignatorTypeValue/addressIdentifierGeneral`; one address writes none. The municipality is
35
+ * the only `ad:AdminUnitName` level published, `4thOrder`, and the province publishes 88 of them for
36
+ * its 88 municipalities.
37
+ *
38
+ * The publisher writes its street names in Basque, with the street type as a trailing word rather
39
+ * than a leading abbreviation: `Samikolla ibilbidea`. The name is taken as written.
40
+ *
41
+ * `ad:LocatorName` is populated on 46,365 of 68,744 addresses and holds a building name as a Basque
42
+ * and Spanish pair, `Gasolinera` with `Gasolindegia` and `Agirre, baserria` with `Agirre, caserío`.
43
+ * The adapter writes none of them. The address-source register's personal-data review reads `absent`
44
+ * on the ground that these name the building rather than its occupant, and it records that a Basque
45
+ * *baserri* name is commonly also a surname. Keeping them out of the corpus keeps that reading from
46
+ * resting on the stronger claim that the name is safe to publish as address text.
47
+ *
48
+ * No publisher-side rendering of a whole address was found for this source. `ad:alternativeIdentifier`
49
+ * is populated on all 68,744 addresses and holds a serial number such as `36798` rather than an
50
+ * address. What the file does state twice is the join: the address `gml:id`
51
+ * `ES.GFA.AD.056_1110_003` concatenates the municipality code `056`, the thoroughfare code `1110`
52
+ * and the number `003`, and the references it carries are `AU_ADMINISTRATIVEUNIT_34162020056`,
53
+ * `ES.GFA.TN.056.1110` and `ES.GFA.PD.056.20830`. The adapter's test checks the composed street and
54
+ * number against that identifier, which is a check that the right features were joined rather than a
55
+ * check of the address the publisher would print.
56
+ */
57
+ import { type CorpusAdapter } from "#types";
58
+ /**
59
+ * Registry id for this adapter.
60
+ *
61
+ * Stamped into every row it emits, so a corpus record can be traced back to the dataset it came from.
62
+ */
63
+ export declare const ES_GIPUZKOA_ADAPTER_ID = "es-gipuzkoa";
64
+ /**
65
+ * The jurisdiction this adapter emits.
66
+ *
67
+ * Coverage is the province of Gipuzkoa, which the feed states as the dataset's whole extent.
68
+ */
69
+ export declare const ES_GIPUZKOA_COUNTRIES: readonly string[];
70
+ /**
71
+ * The license the address-source register elected for this publisher.
72
+ *
73
+ * Gipuzkoa states four things, and the register elects the one addressing this dataset:
74
+ * the `otherConstraints` of its ISO 19139 dataset record, `CC BY-SA 4.0`.
75
+ * Its feed states attribution alone and its website states CC BY 4.0, and the register
76
+ * records why the stricter reading is the one to err towards: the share-alike filter reads
77
+ * this label, so recording CC BY 4.0 would hide an obligation the publisher may hold.
78
+ *
79
+ * The value is the SPDX identifier the register elected rather than the license's title,
80
+ * because `licenseVerdict` resolves an identifier and reads a title as unrecognized.
81
+ * Under `LicensePolicy.ShareAlikeFree` the title returns `{refusal: null, mentionsShareAlike: false}`
82
+ * and `CC-BY-SA-4.0` returns `{refusal: "share-alike-carried"}`, so the title admits
83
+ * these rows to a corpus assembled to hold no share-alike source.
84
+ */
85
+ export declare const ES_GIPUZKOA_LICENSE = "CC-BY-SA-4.0";
86
+ export declare function createESGipuzkoaAdapter(): CorpusAdapter;
87
+ /**
88
+ * The configured adapter instance registered with the corpus builder.
89
+ */
90
+ export declare const esGipuzkoaAdapter: CorpusAdapter;
91
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/es/adapters/gipuzkoa/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAuBH,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAW,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AAkCjD,wBAAgB,uBAAuB,IAAI,aAAa,CAqCvD;AA+ED;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA4B,CAAA"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `es-gipuzkoa`: the INSPIRE Addresses theme the Diputación Foral de Gipuzkoa publishes, read from
7
+ * the one zipped GML that carries the whole province.
8
+ *
9
+ * The ATOM service at `https://b5m.gipuzkoa.eus/inspire/download/addresses.xml` is 4,469 bytes and
10
+ * holds a single entry for the province rather than one per municipality. That entry links its
11
+ * dataset through `rel="alternate"` and not `rel="enclosure"`, so a fetcher that looks only for an
12
+ * enclosure finds no dataset here. The adapter is handed the archive and the feed is acquisition's
13
+ * concern. The archive `ES.GFA.AD.zip` is 7,959,103 bytes and its one member `ES.GFA.AD.gml` is
14
+ * 313,162,472 bytes, a ratio of 39, so the member is read as a chunk sequence and never buffered.
15
+ *
16
+ * The member is self-contained and its order decides the reader. Counted over all 313,162,472 bytes:
17
+ * 68,744 `ad:Address`, 4,250 `ad:ThoroughfareName`, 178 `ad:PostalDescriptor` and 88
18
+ * `ad:AdminUnitName`, which is every one of the 73,260 `gml:featureMember` elements. The 4,516
19
+ * reference features are written last, beginning at byte 306,440,816. Holding an address until the
20
+ * document ends would therefore hold all 68,744, so the adapter reads the member twice through
21
+ * {@linkcode streamIndexedInspireRows} and indexes 4,516 features instead.
22
+ *
23
+ * A reference is a WFS stored-query URL whose `ID` parameter equals the target's `gml:id`, written
24
+ * against the internal host `http://b5mdev/` and with the id repeated as the URL's fragment:
25
+ * `…?…&ID=ES.GFA.TN.056.1110#ES.GFA.TN.056.1110`. `componentJoinKey` reads the parameter and the
26
+ * fragment belongs to the URL rather than to the id, so the key is `ES.GFA.TN.056.1110`. The
27
+ * unreachable host is not this reader's problem, because every reference resolves inside the member.
28
+ *
29
+ * A postal-descriptor reference whose final segment is empty, `…&ID=ES.GFA.PD.059. #…`, states that
30
+ * the publisher holds no postcode, and `referenceStatesNoValue` separates it from a broken join.
31
+ * The Cadastre writes the same form, which is why the predicate has one home.
32
+ *
33
+ * The locator vocabulary is one type. 68,743 of 68,744 addresses write exactly one designator, typed
34
+ * `LocatorDesignatorTypeValue/addressIdentifierGeneral`; one address writes none. The municipality is
35
+ * the only `ad:AdminUnitName` level published, `4thOrder`, and the province publishes 88 of them for
36
+ * its 88 municipalities.
37
+ *
38
+ * The publisher writes its street names in Basque, with the street type as a trailing word rather
39
+ * than a leading abbreviation: `Samikolla ibilbidea`. The name is taken as written.
40
+ *
41
+ * `ad:LocatorName` is populated on 46,365 of 68,744 addresses and holds a building name as a Basque
42
+ * and Spanish pair, `Gasolinera` with `Gasolindegia` and `Agirre, baserria` with `Agirre, caserío`.
43
+ * The adapter writes none of them. The address-source register's personal-data review reads `absent`
44
+ * on the ground that these name the building rather than its occupant, and it records that a Basque
45
+ * *baserri* name is commonly also a surname. Keeping them out of the corpus keeps that reading from
46
+ * resting on the stronger claim that the name is safe to publish as address text.
47
+ *
48
+ * No publisher-side rendering of a whole address was found for this source. `ad:alternativeIdentifier`
49
+ * is populated on all 68,744 addresses and holds a serial number such as `36798` rather than an
50
+ * address. What the file does state twice is the join: the address `gml:id`
51
+ * `ES.GFA.AD.056_1110_003` concatenates the municipality code `056`, the thoroughfare code `1110`
52
+ * and the number `003`, and the references it carries are `AU_ADMINISTRATIVEUNIT_34162020056`,
53
+ * `ES.GFA.TN.056.1110` and `ES.GFA.PD.056.20830`. The adapter's test checks the composed street and
54
+ * number against that identifier, which is a check that the right features were joined rather than a
55
+ * check of the address the publisher would print.
56
+ */
57
+ import { PathBuilder } from "path-ts";
58
+ import { Globerator } from "spliterator/node/fs";
59
+ import { UnsupportedCountryError } from "#adapters/errors";
60
+ import { cadastralRow, referenceStatesNoValue, spanishHouseNumber } from "#es/cadastre";
61
+ import { adminUnitLevel, componentHrefs, componentJoinKey, designatorsByType, inspireNameIs, placeName, postalDescriptorCode, thoroughfareName, voidDesignatorTypes, } from "#inspire/address";
62
+ import { inspireGMLChunks } from "#inspire/archive";
63
+ import { UnresolvedComponentReferenceError, VoidDesignatorError } from "#inspire/errors";
64
+ import { streamIndexedInspireRows } from "#inspire/stream";
65
+ import { SourceRegister } from "#registers";
66
+ import { AddressRole, SurfaceOrigin } from "#types";
67
+ /**
68
+ * Registry id for this adapter.
69
+ *
70
+ * Stamped into every row it emits, so a corpus record can be traced back to the dataset it came from.
71
+ */
72
+ export const ES_GIPUZKOA_ADAPTER_ID = "es-gipuzkoa";
73
+ /**
74
+ * The jurisdiction this adapter emits.
75
+ *
76
+ * Coverage is the province of Gipuzkoa, which the feed states as the dataset's whole extent.
77
+ */
78
+ export const ES_GIPUZKOA_COUNTRIES = ["ES"];
79
+ /**
80
+ * The license the address-source register elected for this publisher.
81
+ *
82
+ * Gipuzkoa states four things, and the register elects the one addressing this dataset:
83
+ * the `otherConstraints` of its ISO 19139 dataset record, `CC BY-SA 4.0`.
84
+ * Its feed states attribution alone and its website states CC BY 4.0, and the register
85
+ * records why the stricter reading is the one to err towards: the share-alike filter reads
86
+ * this label, so recording CC BY 4.0 would hide an obligation the publisher may hold.
87
+ *
88
+ * The value is the SPDX identifier the register elected rather than the license's title,
89
+ * because `licenseVerdict` resolves an identifier and reads a title as unrecognized.
90
+ * Under `LicensePolicy.ShareAlikeFree` the title returns `{refusal: null, mentionsShareAlike: false}`
91
+ * and `CC-BY-SA-4.0` returns `{refusal: "share-alike-carried"}`, so the title admits
92
+ * these rows to a corpus assembled to hold no share-alike source.
93
+ */
94
+ export const ES_GIPUZKOA_LICENSE = "CC-BY-SA-4.0";
95
+ /**
96
+ * The member of the archive that holds the GML.
97
+ *
98
+ * The archive ships one member, so the extension selects it without the adapter naming it.
99
+ */
100
+ const GML_MEMBER = /\.gml$/iu;
101
+ /**
102
+ * The feature types an address references, indexed in the first pass over the member.
103
+ *
104
+ * `ad:AddressAreaName` is listed although the province publishes none, because the schema admits one
105
+ * and a future edition that wrote one would otherwise read as an unresolved reference.
106
+ */
107
+ const COMPONENT_ELEMENTS = [
108
+ "ad:ThoroughfareName",
109
+ "ad:PostalDescriptor",
110
+ "ad:AdminUnitName",
111
+ "ad:AddressAreaName",
112
+ ];
113
+ /**
114
+ * The administrative level that is the municipality.
115
+ *
116
+ * The only level the province publishes, on 88 of 88 `ad:AdminUnitName` features.
117
+ */
118
+ const MUNICIPALITY_LEVEL = "4thOrder";
119
+ /**
120
+ * The designator type the publisher writes.
121
+ */
122
+ const HOUSE_NUMBER_TYPE = "addressIdentifierGeneral";
123
+ export function createESGipuzkoaAdapter() {
124
+ return {
125
+ id: ES_GIPUZKOA_ADAPTER_ID,
126
+ defaultLicense: ES_GIPUZKOA_LICENSE,
127
+ addressRole: AddressRole.Premise,
128
+ register: SourceRegister.GipuzkoaInspireAddresses,
129
+ surface: SurfaceOrigin.Rendered,
130
+ description: "INSPIRE Addresses (Diputación Foral de Gipuzkoa): house-number-level addresses for the province, as one zipped GML.",
131
+ async *rows(opts) {
132
+ if (opts.country && !ES_GIPUZKOA_COUNTRIES.includes(opts.country)) {
133
+ throw new UnsupportedCountryError(ES_GIPUZKOA_ADAPTER_ID, ES_GIPUZKOA_COUNTRIES, opts.country);
134
+ }
135
+ let emitted = 0;
136
+ for (const archivePath of await archivePaths(opts.inputPath)) {
137
+ if (opts.signal?.aborted)
138
+ break;
139
+ if (opts.limit !== undefined && emitted >= opts.limit)
140
+ break;
141
+ for await (const row of streamIndexedInspireRows({
142
+ chunks: () => inspireGMLChunks(archivePath, GML_MEMBER),
143
+ componentElements: COMPONENT_ELEMENTS,
144
+ index: (feature) => feature,
145
+ compose: composeRow,
146
+ limit: opts.limit === undefined ? undefined : opts.limit - emitted,
147
+ signal: opts.signal,
148
+ })) {
149
+ yield row;
150
+ emitted++;
151
+ }
152
+ }
153
+ },
154
+ };
155
+ }
156
+ /**
157
+ * One address's row, or undefined when it carries too little to render.
158
+ *
159
+ * The reference index is complete before this is called, so a reference resolving to no
160
+ * feature is a value the reader asked for and could not read, and it raises.
161
+ */
162
+ function composeRow(address, referenced) {
163
+ const addressID = address.attributes["gml:id"]?.trim();
164
+ if (voidDesignatorTypes(address).has(HOUSE_NUMBER_TYPE)) {
165
+ throw new VoidDesignatorError(ES_GIPUZKOA_ADAPTER_ID, addressID, HOUSE_NUMBER_TYPE);
166
+ }
167
+ let street;
168
+ let postcode;
169
+ let locality;
170
+ let settlement;
171
+ for (const href of componentHrefs(address)) {
172
+ const key = componentJoinKey(href);
173
+ if (key && referenceStatesNoValue(key))
174
+ continue;
175
+ const feature = key ? referenced.get(key) : undefined;
176
+ if (!feature)
177
+ throw new UnresolvedComponentReferenceError(ES_GIPUZKOA_ADAPTER_ID, addressID, href);
178
+ const name = feature.name;
179
+ if (inspireNameIs(name, "ad:ThoroughfareName")) {
180
+ street = thoroughfareName(feature);
181
+ }
182
+ else if (inspireNameIs(name, "ad:PostalDescriptor")) {
183
+ postcode = postalDescriptorCode(feature);
184
+ }
185
+ else if (inspireNameIs(name, "ad:AddressAreaName")) {
186
+ settlement = placeName(feature);
187
+ }
188
+ else if (inspireNameIs(name, "ad:AdminUnitName") && adminUnitLevel(feature) === MUNICIPALITY_LEVEL) {
189
+ locality = placeName(feature);
190
+ }
191
+ }
192
+ return cadastralRow({
193
+ street,
194
+ house: spanishHouseNumber(designatorsByType(address), HOUSE_NUMBER_TYPE),
195
+ postcode,
196
+ locality,
197
+ settlement,
198
+ addressID,
199
+ }, { adapterID: ES_GIPUZKOA_ADAPTER_ID, license: ES_GIPUZKOA_LICENSE });
200
+ }
201
+ /**
202
+ * Every archive under `inputPath`, which is one `.zip`, one unpacked `.gml`, or a directory holding either.
203
+ *
204
+ * The publisher ships one archive, and the unpacked member is accepted because an
205
+ * operator who inflated 313,162,472 bytes once should not have to inflate them again,
206
+ * and because a committed fixture is reviewable only as text.
207
+ * A directory holding neither raises rather than yielding zero rows, so a wrong path
208
+ * reports itself instead of reading as an empty publisher.
209
+ */
210
+ async function archivePaths(inputPath) {
211
+ const path = PathBuilder.from(inputPath);
212
+ const basename = path.basename().toLowerCase();
213
+ if (basename.endsWith(".zip") || basename.endsWith(".gml"))
214
+ return [path];
215
+ const names = await Globerator.from("*.{zip,gml}", { cwd: path.toString(), absolute: false }).toSorted();
216
+ if (!names.length) {
217
+ throw new Error(`${ES_GIPUZKOA_ADAPTER_ID} adapter: ${path.toString()} holds no .zip archive or .gml member`);
218
+ }
219
+ return names.map((name) => path(name));
220
+ }
221
+ /**
222
+ * The configured adapter instance registered with the corpus builder.
223
+ */
224
+ export const esGipuzkoaAdapter = createESGipuzkoaAdapter();
225
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/es/adapters/gipuzkoa/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAGH,OAAO,EAAE,WAAW,EAAwB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,EACN,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,WAAW,EAA8D,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAA;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,IAAI,CAAC,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEjD;;;;GAIG;AACH,MAAM,UAAU,GAAG,UAAU,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG;IAC1B,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;CACX,CAAA;AAEV;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAErC;;GAEG;AACH,MAAM,iBAAiB,GAAG,0BAA0B,CAAA;AAEpD,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,EAAE,EAAE,sBAAsB;QAC1B,cAAc,EAAE,mBAAmB;QACnC,WAAW,EAAE,WAAW,CAAC,OAAO;QAChC,QAAQ,EAAE,cAAc,CAAC,wBAAwB;QACjD,OAAO,EAAE,aAAa,CAAC,QAAQ;QAC/B,WAAW,EACV,qHAAqH;QAEtH,KAAK,CAAC,CAAC,IAAI,CAAC,IAAoB;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,uBAAuB,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/F,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,CAAA;YAEf,KAAK,MAAM,WAAW,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAK;gBAE/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAK;gBAE5D,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,wBAAwB,CAAgB;oBAC/D,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC;oBACvD,iBAAiB,EAAE,kBAAkB;oBACrC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;oBAC3B,OAAO,EAAE,UAAU;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO;oBAClE,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC,EAAE,CAAC;oBACJ,MAAM,GAAG,CAAA;oBAET,OAAO,EAAE,CAAA;gBACV,CAAC;YACF,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,OAAsB,EAAE,UAA8C;IACzF,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAA;IAEtD,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,MAA0B,CAAA;IAC9B,IAAI,QAA4B,CAAA;IAChC,IAAI,QAA4B,CAAA;IAChC,IAAI,UAA8B,CAAA;IAElC,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC;YAAE,SAAQ;QAEhD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAErD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,iCAAiC,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAElG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAEzB,IAAI,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;aAAM,IAAI,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACvD,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC;aAAM,IAAI,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACtD,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,kBAAkB,EAAE,CAAC;YACtG,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;IACF,CAAC;IAED,OAAO,YAAY,CAClB;QACC,MAAM;QACN,KAAK,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;QACxE,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,SAAS;KACT,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CACnE,CAAA;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,YAAY,CAAC,SAA0B;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAA;IAE9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAExG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,sBAAsB,aAAa,IAAI,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAA;IAC9G,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAA"}