@mailwoman/corpus 10.1.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/data/licenses/cdla-permissive-2.0.md +1 -1
  2. package/lib/adapters/cordis/adapter.ts +13 -7
  3. package/lib/adapters/dedup-key.ts +1 -1
  4. package/lib/adapters/geonames/adapter.ts +1 -1
  5. package/lib/adapters/gleif/adapter.ts +17 -16
  6. package/lib/adapters/libpostal-dictionary.ts +0 -2
  7. package/lib/adapters/openaddresses/adapter.ts +4 -3
  8. package/lib/adapters/osm/adapter.ts +22 -21
  9. package/lib/adapters/po-box/adapter.ts +10 -5
  10. package/lib/adapters/registry.ts +4 -4
  11. package/lib/adapters/source-id.ts +2 -2
  12. package/lib/adapters/street-line.ts +7 -6
  13. package/lib/adapters/wof/admin/json/adapter.ts +2 -2
  14. package/lib/adapters/wof/json-rows.ts +2 -1
  15. package/lib/adapters/wof/postalcode-json/adapter.ts +6 -2
  16. package/lib/adapters.ts +5 -5
  17. package/lib/au/adapters/gnaf/adapter.ts +1 -1
  18. package/lib/be/adapters/brussels/adapter.ts +22 -22
  19. package/lib/be/adapters/vlaanderen/adapter.ts +54 -57
  20. package/lib/be/adapters/wallonie/adapter.ts +17 -17
  21. package/lib/be/tools/fetch/brussels.ts +13 -10
  22. package/lib/be/tools/fetch/wallonie.ts +8 -7
  23. package/lib/build/adapters.ts +2 -1
  24. package/lib/build/align.ts +5 -4
  25. package/lib/build/checkpoint.ts +5 -3
  26. package/lib/build/eligibility.ts +3 -3
  27. package/lib/build/types.ts +8 -6
  28. package/lib/cz/adapters/cuzk/adapter.ts +41 -38
  29. package/lib/cz/tools/fetch/cuzk.ts +42 -31
  30. package/lib/de/recipes/locale.ts +1 -1
  31. package/lib/dk/adapters/inspire/adapter.ts +38 -38
  32. package/lib/dk/tools/fetch/inspire.ts +16 -14
  33. package/lib/ee/adapters/ads/adapter.ts +26 -32
  34. package/lib/ee/tools/fetch/ads.ts +10 -8
  35. package/lib/es/adapters/bizkaia/adapter.ts +47 -47
  36. package/lib/es/adapters/catastro/adapter.ts +36 -34
  37. package/lib/es/adapters/gipuzkoa/adapter.ts +38 -45
  38. package/lib/es/adapters/navarra/adapter.ts +28 -27
  39. package/lib/es/cadastre.ts +31 -31
  40. package/lib/es/tools/fetch/bizkaia.ts +40 -36
  41. package/lib/es/tools/fetch/catastro.ts +51 -40
  42. package/lib/es/tools/fetch/gipuzkoa.ts +13 -11
  43. package/lib/es/tools/fetch/navarra.ts +33 -25
  44. package/lib/fi/adapters/ryhti/adapter.ts +22 -26
  45. package/lib/fi/tools/fetch/ryhti.ts +31 -31
  46. package/lib/fr/adapters/annuaire-education/adapter.ts +13 -11
  47. package/lib/fr/adapters/ban/adapter.ts +6 -6
  48. package/lib/fr/adapters/finess/adapter.ts +16 -15
  49. package/lib/fr/adapters/finess/voie-type.ts +4 -3
  50. package/lib/fr/insee-country.ts +2 -2
  51. package/lib/fr/recipes/lieudit.ts +8 -6
  52. package/lib/fr/tools/fetch/annuaire-education.ts +11 -8
  53. package/lib/fr/tools/fetch/ban.ts +3 -2
  54. package/lib/fr/tools/fetch/finess.ts +14 -13
  55. package/lib/inspire/address.ts +86 -78
  56. package/lib/inspire/errors.ts +9 -8
  57. package/lib/inspire/stream.ts +29 -26
  58. package/lib/international/recipes/locale.ts +13 -9
  59. package/lib/it/adapters/anac/adapter.ts +51 -46
  60. package/lib/it/tools/fetch/anac.ts +22 -25
  61. package/lib/jp/adapters/wof-admin/adapter.ts +2 -6
  62. package/lib/jp/tools/fetch/houjin.ts +3 -3
  63. package/lib/kr/adapters/localdata/permit-rows.ts +1 -1
  64. package/lib/kr/tools/fetch/juso.ts +1 -1
  65. package/lib/kr/tools/fetch/localdata.ts +2 -2
  66. package/lib/lu/adapters/bd-adresses/adapter.ts +10 -10
  67. package/lib/lu/tools/fetch/bd-adresses.ts +15 -13
  68. package/lib/lv/adapters/varis/adapter.ts +24 -23
  69. package/lib/lv/tools/fetch/varis.ts +3 -2
  70. package/lib/nl/adapters/kadaster/adapter.ts +29 -29
  71. package/lib/nl/tools/fetch/kadaster.ts +16 -12
  72. package/lib/no/adapters/matrikkelen/adapter.ts +6 -5
  73. package/lib/no/tools/fetch/matrikkelen.ts +59 -47
  74. package/lib/parquet/duckdb.ts +7 -4
  75. package/lib/parquet/readers.ts +3 -3
  76. package/lib/parquet/schema.ts +1 -1
  77. package/lib/parquet/writers.ts +3 -2
  78. package/lib/pl/adapters/emuia/adapter.ts +12 -12
  79. package/lib/pl/tools/fetch/emuia.ts +10 -9
  80. package/lib/recipes/bare/postcode.ts +1 -1
  81. package/lib/recipes/boundary-stress.ts +1 -1
  82. package/lib/recipes/house-venue.ts +7 -3
  83. package/lib/recipes/intersection.ts +2 -2
  84. package/lib/recipes/po/box/cedex/recipe.ts +3 -3
  85. package/lib/recipes/po/box/cedex/sources.ts +13 -1
  86. package/lib/recipes/scaffold.ts +31 -21
  87. package/lib/recipes/sources.ts +16 -3
  88. package/lib/recipes/street/bare.ts +2 -2
  89. package/lib/recipes/street.ts +3 -1
  90. package/lib/recipes/sub/venue/context.ts +2 -0
  91. package/lib/recipes/sub/venue/render.ts +1 -1
  92. package/lib/recipes/sub/venue/sources.ts +24 -29
  93. package/lib/recipes/sub/venue.ts +12 -18
  94. package/lib/recipes/trailing-region.ts +6 -2
  95. package/lib/recipes/unit.ts +3 -3
  96. package/lib/recipes/venue.ts +347 -0
  97. package/lib/recipes.ts +4 -2
  98. package/lib/registers.ts +8 -6
  99. package/lib/ro/adapters/retea-scolara/adapter.ts +5 -5
  100. package/lib/ro/tools/fetch/retea-scolara.ts +1 -1
  101. package/lib/runner.ts +4 -3
  102. package/lib/sg/recipes/register.ts +1 -1
  103. package/lib/sg/tools/fetch/acra.ts +3 -3
  104. package/lib/sk/adapters/inspire/adapter.ts +25 -27
  105. package/lib/sk/tools/fetch/inspire.ts +15 -14
  106. package/lib/source-register/effective-manifest.ts +3 -3
  107. package/lib/source-register/register.ts +3 -3
  108. package/lib/source-register/training-manifest.ts +1 -1
  109. package/lib/source-register/types.ts +12 -13
  110. package/lib/subvenue/promotions.ts +1 -1
  111. package/lib/subvenue/table.ts +4 -4
  112. package/lib/surfaces/locale.ts +2 -0
  113. package/lib/synthesizers/anchor-absorption.ts +2 -1
  114. package/lib/synthesizers/boundary-stress.ts +20 -26
  115. package/lib/synthesizers/house-venue.ts +26 -30
  116. package/lib/synthesizers/no-street.ts +2 -1
  117. package/lib/synthesizers/po-box.ts +6 -3
  118. package/lib/synthesizers/tail.ts +55 -0
  119. package/lib/synthesizers/utils.ts +19 -2
  120. package/lib/test-kit.ts +2 -2
  121. package/lib/tools/audit.ts +7 -5
  122. package/lib/tools/corpus-stats.ts +1 -1
  123. package/lib/tools/fetch/atom.ts +10 -10
  124. package/lib/tools/fetch/cordis.ts +11 -9
  125. package/lib/tools/fetch/download/manifest.ts +2 -1
  126. package/lib/tools/fetch/download/network.ts +4 -4
  127. package/lib/tools/fetch/download/retry.ts +4 -4
  128. package/lib/tools/fetch/geonames/dump.ts +5 -3
  129. package/lib/tools/fetch/geonames/postal.ts +2 -2
  130. package/lib/tools/fetch/gleif.ts +6 -4
  131. package/lib/tools/fetch/header.ts +8 -6
  132. package/lib/tools/fetch/inspire-addresses.ts +41 -36
  133. package/lib/tools/fetch/openaddresses.ts +1 -1
  134. package/lib/tools/fetch/vlaanderen-ad.ts +17 -17
  135. package/lib/tools/fetch/wfs-harvest.ts +39 -28
  136. package/lib/tools/fetch.ts +0 -42
  137. package/lib/tools/golden/expand.ts +8 -8
  138. package/lib/tools/golden/promote.ts +12 -8
  139. package/lib/tools/golden/relabel-street/directory.ts +7 -6
  140. package/lib/tools/golden/relabel-street/row.ts +7 -6
  141. package/lib/tools/ingest-csv.ts +3 -3
  142. package/lib/tools/jsonl-to-parquet.ts +1 -1
  143. package/lib/tools/lint/recipe-output/vocab.ts +10 -5
  144. package/lib/tools/lint/recipe-output.ts +26 -8
  145. package/lib/tools/overlay/kryptonite.ts +4 -3
  146. package/lib/tools/overlay/manifest.ts +4 -2
  147. package/lib/tools/overlay/merge-source.ts +2 -1
  148. package/lib/tools/overlay/split-slice.ts +2 -2
  149. package/lib/tools/overlay/translit.ts +6 -4
  150. package/lib/tools/overture-subvenue.ts +1 -1
  151. package/lib/tools/postcode-triples.ts +5 -4
  152. package/lib/tools/source-register/build.ts +17 -14
  153. package/lib/tools/sub/venue/lexicon.ts +4 -8
  154. package/lib/tw/tools/fetch/gcis.ts +4 -4
  155. package/lib/types.ts +4 -3
  156. package/lib/us/adapters/state/hi-schools/workbook.ts +1 -1
  157. package/lib/us/adapters/usgov/nad/adapter.ts +11 -11
  158. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +4 -4
  159. package/lib/us/fips-state.ts +2 -2
  160. package/lib/{synthesizers → us/synthesizers}/intersection.ts +12 -13
  161. package/lib/{synthesizers → us/synthesizers}/street.ts +16 -15
  162. package/lib/us/tools/fetch/imls-pls.ts +1 -1
  163. package/lib/us/tools/fetch/nad.ts +7 -7
  164. package/lib/us/tools/fetch/nppes.ts +5 -5
  165. package/lib/us/tools/fetch/state/hi-schools.ts +3 -2
  166. package/lib/us/tools/fetch/tiger-full.ts +1 -1
  167. package/lib/utils/align.ts +13 -10
  168. package/lib/utils/golden.ts +2 -2
  169. package/lib/utils/license.ts +3 -3
  170. package/lib/utils/split.ts +19 -15
  171. package/lib/utils/tokenize.ts +7 -26
  172. package/lib/utils/wof-json.ts +4 -4
  173. package/out/adapters/cordis/adapter.d.ts +5 -3
  174. package/out/adapters/cordis/adapter.d.ts.map +1 -1
  175. package/out/adapters/cordis/adapter.js +13 -7
  176. package/out/adapters/cordis/adapter.js.map +1 -1
  177. package/out/adapters/dedup-key.d.ts +1 -1
  178. package/out/adapters/dedup-key.js +1 -1
  179. package/out/adapters/geonames/adapter.js +1 -1
  180. package/out/adapters/geonames/adapter.js.map +1 -1
  181. package/out/adapters/gleif/adapter.d.ts +9 -9
  182. package/out/adapters/gleif/adapter.d.ts.map +1 -1
  183. package/out/adapters/gleif/adapter.js +15 -14
  184. package/out/adapters/gleif/adapter.js.map +1 -1
  185. package/out/adapters/libpostal-dictionary.d.ts +0 -2
  186. package/out/adapters/libpostal-dictionary.d.ts.map +1 -1
  187. package/out/adapters/libpostal-dictionary.js +0 -2
  188. package/out/adapters/libpostal-dictionary.js.map +1 -1
  189. package/out/adapters/openaddresses/adapter.d.ts +3 -2
  190. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  191. package/out/adapters/openaddresses/adapter.js +1 -1
  192. package/out/adapters/openaddresses/adapter.js.map +1 -1
  193. package/out/adapters/osm/adapter.d.ts +17 -16
  194. package/out/adapters/osm/adapter.d.ts.map +1 -1
  195. package/out/adapters/osm/adapter.js +10 -9
  196. package/out/adapters/osm/adapter.js.map +1 -1
  197. package/out/adapters/po-box/adapter.d.ts +6 -3
  198. package/out/adapters/po-box/adapter.d.ts.map +1 -1
  199. package/out/adapters/po-box/adapter.js +4 -2
  200. package/out/adapters/po-box/adapter.js.map +1 -1
  201. package/out/adapters/registry.d.ts +3 -3
  202. package/out/adapters/registry.d.ts.map +1 -1
  203. package/out/adapters/registry.js +1 -1
  204. package/out/adapters/registry.js.map +1 -1
  205. package/out/adapters/source-id.d.ts +2 -2
  206. package/out/adapters/source-id.js +2 -2
  207. package/out/adapters/street-line.d.ts +7 -6
  208. package/out/adapters/street-line.d.ts.map +1 -1
  209. package/out/adapters/street-line.js +7 -6
  210. package/out/adapters/street-line.js.map +1 -1
  211. package/out/adapters/wof/admin/json/adapter.js +1 -1
  212. package/out/adapters/wof/admin/json/adapter.js.map +1 -1
  213. package/out/adapters/wof/json-rows.d.ts +2 -1
  214. package/out/adapters/wof/json-rows.d.ts.map +1 -1
  215. package/out/adapters/wof/json-rows.js.map +1 -1
  216. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -1
  217. package/out/adapters/wof/postalcode-json/adapter.js +5 -1
  218. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -1
  219. package/out/adapters.d.ts +5 -5
  220. package/out/adapters.js +5 -5
  221. package/out/au/adapters/gnaf/adapter.js +1 -1
  222. package/out/au/adapters/gnaf/adapter.js.map +1 -1
  223. package/out/be/adapters/brussels/adapter.d.ts +9 -9
  224. package/out/be/adapters/brussels/adapter.d.ts.map +1 -1
  225. package/out/be/adapters/brussels/adapter.js +21 -21
  226. package/out/be/adapters/brussels/adapter.js.map +1 -1
  227. package/out/be/adapters/vlaanderen/adapter.d.ts +34 -37
  228. package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -1
  229. package/out/be/adapters/vlaanderen/adapter.js +40 -38
  230. package/out/be/adapters/vlaanderen/adapter.js.map +1 -1
  231. package/out/be/adapters/wallonie/adapter.d.ts +2 -2
  232. package/out/be/adapters/wallonie/adapter.js +17 -17
  233. package/out/be/adapters/wallonie/adapter.js.map +1 -1
  234. package/out/be/tools/fetch/brussels.d.ts +11 -8
  235. package/out/be/tools/fetch/brussels.d.ts.map +1 -1
  236. package/out/be/tools/fetch/brussels.js +10 -8
  237. package/out/be/tools/fetch/brussels.js.map +1 -1
  238. package/out/be/tools/fetch/wallonie.d.ts +6 -5
  239. package/out/be/tools/fetch/wallonie.d.ts.map +1 -1
  240. package/out/be/tools/fetch/wallonie.js +4 -4
  241. package/out/be/tools/fetch/wallonie.js.map +1 -1
  242. package/out/build/adapters.d.ts.map +1 -1
  243. package/out/build/adapters.js +2 -1
  244. package/out/build/adapters.js.map +1 -1
  245. package/out/build/align.d.ts +3 -2
  246. package/out/build/align.d.ts.map +1 -1
  247. package/out/build/align.js +2 -2
  248. package/out/build/align.js.map +1 -1
  249. package/out/build/checkpoint.d.ts +1 -1
  250. package/out/build/checkpoint.d.ts.map +1 -1
  251. package/out/build/checkpoint.js +4 -2
  252. package/out/build/checkpoint.js.map +1 -1
  253. package/out/build/eligibility.d.ts +2 -2
  254. package/out/build/eligibility.js +3 -3
  255. package/out/build/eligibility.js.map +1 -1
  256. package/out/build/types.d.ts +8 -6
  257. package/out/build/types.d.ts.map +1 -1
  258. package/out/cz/adapters/cuzk/adapter.d.ts +14 -14
  259. package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -1
  260. package/out/cz/adapters/cuzk/adapter.js +38 -35
  261. package/out/cz/adapters/cuzk/adapter.js.map +1 -1
  262. package/out/cz/tools/fetch/cuzk.d.ts +31 -22
  263. package/out/cz/tools/fetch/cuzk.d.ts.map +1 -1
  264. package/out/cz/tools/fetch/cuzk.js +21 -19
  265. package/out/cz/tools/fetch/cuzk.js.map +1 -1
  266. package/out/de/recipes/locale.js +1 -1
  267. package/out/de/recipes/locale.js.map +1 -1
  268. package/out/dk/adapters/inspire/adapter.d.ts +32 -33
  269. package/out/dk/adapters/inspire/adapter.d.ts.map +1 -1
  270. package/out/dk/adapters/inspire/adapter.js +38 -38
  271. package/out/dk/adapters/inspire/adapter.js.map +1 -1
  272. package/out/dk/tools/fetch/inspire.d.ts +6 -5
  273. package/out/dk/tools/fetch/inspire.d.ts.map +1 -1
  274. package/out/dk/tools/fetch/inspire.js +15 -13
  275. package/out/dk/tools/fetch/inspire.js.map +1 -1
  276. package/out/ee/adapters/ads/adapter.d.ts +19 -26
  277. package/out/ee/adapters/ads/adapter.d.ts.map +1 -1
  278. package/out/ee/adapters/ads/adapter.js +22 -28
  279. package/out/ee/adapters/ads/adapter.js.map +1 -1
  280. package/out/ee/tools/fetch/ads.d.ts +3 -3
  281. package/out/ee/tools/fetch/ads.d.ts.map +1 -1
  282. package/out/ee/tools/fetch/ads.js +10 -8
  283. package/out/ee/tools/fetch/ads.js.map +1 -1
  284. package/out/es/adapters/bizkaia/adapter.d.ts +28 -28
  285. package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -1
  286. package/out/es/adapters/bizkaia/adapter.js +43 -43
  287. package/out/es/adapters/bizkaia/adapter.js.map +1 -1
  288. package/out/es/adapters/catastro/adapter.d.ts +22 -23
  289. package/out/es/adapters/catastro/adapter.d.ts.map +1 -1
  290. package/out/es/adapters/catastro/adapter.js +35 -33
  291. package/out/es/adapters/catastro/adapter.js.map +1 -1
  292. package/out/es/adapters/gipuzkoa/adapter.d.ts +31 -38
  293. package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -1
  294. package/out/es/adapters/gipuzkoa/adapter.js +40 -47
  295. package/out/es/adapters/gipuzkoa/adapter.js.map +1 -1
  296. package/out/es/adapters/navarra/adapter.d.ts +20 -19
  297. package/out/es/adapters/navarra/adapter.d.ts.map +1 -1
  298. package/out/es/adapters/navarra/adapter.js +23 -22
  299. package/out/es/adapters/navarra/adapter.js.map +1 -1
  300. package/out/es/cadastre.d.ts +21 -20
  301. package/out/es/cadastre.d.ts.map +1 -1
  302. package/out/es/cadastre.js +19 -21
  303. package/out/es/cadastre.js.map +1 -1
  304. package/out/es/tools/fetch/bizkaia.d.ts +28 -25
  305. package/out/es/tools/fetch/bizkaia.d.ts.map +1 -1
  306. package/out/es/tools/fetch/bizkaia.js +25 -24
  307. package/out/es/tools/fetch/bizkaia.js.map +1 -1
  308. package/out/es/tools/fetch/catastro.d.ts +28 -20
  309. package/out/es/tools/fetch/catastro.d.ts.map +1 -1
  310. package/out/es/tools/fetch/catastro.js +36 -31
  311. package/out/es/tools/fetch/catastro.js.map +1 -1
  312. package/out/es/tools/fetch/gipuzkoa.d.ts +11 -9
  313. package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -1
  314. package/out/es/tools/fetch/gipuzkoa.js +9 -8
  315. package/out/es/tools/fetch/gipuzkoa.js.map +1 -1
  316. package/out/es/tools/fetch/navarra.d.ts +20 -15
  317. package/out/es/tools/fetch/navarra.d.ts.map +1 -1
  318. package/out/es/tools/fetch/navarra.js +21 -16
  319. package/out/es/tools/fetch/navarra.js.map +1 -1
  320. package/out/fi/adapters/ryhti/adapter.d.ts +16 -20
  321. package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -1
  322. package/out/fi/adapters/ryhti/adapter.js +21 -25
  323. package/out/fi/adapters/ryhti/adapter.js.map +1 -1
  324. package/out/fi/tools/fetch/ryhti.d.ts +24 -24
  325. package/out/fi/tools/fetch/ryhti.d.ts.map +1 -1
  326. package/out/fi/tools/fetch/ryhti.js +21 -24
  327. package/out/fi/tools/fetch/ryhti.js.map +1 -1
  328. package/out/fr/adapters/annuaire-education/adapter.d.ts +8 -8
  329. package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -1
  330. package/out/fr/adapters/annuaire-education/adapter.js +13 -11
  331. package/out/fr/adapters/annuaire-education/adapter.js.map +1 -1
  332. package/out/fr/adapters/ban/adapter.d.ts +4 -4
  333. package/out/fr/adapters/ban/adapter.js +6 -6
  334. package/out/fr/adapters/ban/adapter.js.map +1 -1
  335. package/out/fr/adapters/finess/adapter.d.ts +12 -11
  336. package/out/fr/adapters/finess/adapter.d.ts.map +1 -1
  337. package/out/fr/adapters/finess/adapter.js +16 -15
  338. package/out/fr/adapters/finess/adapter.js.map +1 -1
  339. package/out/fr/adapters/finess/voie-type.d.ts +2 -2
  340. package/out/fr/adapters/finess/voie-type.d.ts.map +1 -1
  341. package/out/fr/adapters/finess/voie-type.js +4 -3
  342. package/out/fr/adapters/finess/voie-type.js.map +1 -1
  343. package/out/fr/insee-country.d.ts +2 -2
  344. package/out/fr/insee-country.js +2 -2
  345. package/out/fr/recipes/lieudit.d.ts.map +1 -1
  346. package/out/fr/recipes/lieudit.js +5 -4
  347. package/out/fr/recipes/lieudit.js.map +1 -1
  348. package/out/fr/tools/fetch/annuaire-education.d.ts +7 -4
  349. package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -1
  350. package/out/fr/tools/fetch/annuaire-education.js +9 -7
  351. package/out/fr/tools/fetch/annuaire-education.js.map +1 -1
  352. package/out/fr/tools/fetch/ban.d.ts +1 -1
  353. package/out/fr/tools/fetch/ban.d.ts.map +1 -1
  354. package/out/fr/tools/fetch/ban.js +3 -2
  355. package/out/fr/tools/fetch/ban.js.map +1 -1
  356. package/out/fr/tools/fetch/finess.d.ts +5 -5
  357. package/out/fr/tools/fetch/finess.d.ts.map +1 -1
  358. package/out/fr/tools/fetch/finess.js +13 -12
  359. package/out/fr/tools/fetch/finess.js.map +1 -1
  360. package/out/inspire/address.d.ts +62 -52
  361. package/out/inspire/address.d.ts.map +1 -1
  362. package/out/inspire/address.js +71 -60
  363. package/out/inspire/address.js.map +1 -1
  364. package/out/inspire/errors.d.ts +9 -8
  365. package/out/inspire/errors.d.ts.map +1 -1
  366. package/out/inspire/errors.js +7 -6
  367. package/out/inspire/errors.js.map +1 -1
  368. package/out/inspire/stream.d.ts +25 -22
  369. package/out/inspire/stream.d.ts.map +1 -1
  370. package/out/inspire/stream.js +10 -12
  371. package/out/inspire/stream.js.map +1 -1
  372. package/out/international/recipes/locale.d.ts +2 -2
  373. package/out/international/recipes/locale.d.ts.map +1 -1
  374. package/out/international/recipes/locale.js +11 -7
  375. package/out/international/recipes/locale.js.map +1 -1
  376. package/out/it/adapters/anac/adapter.d.ts +45 -43
  377. package/out/it/adapters/anac/adapter.d.ts.map +1 -1
  378. package/out/it/adapters/anac/adapter.js +48 -43
  379. package/out/it/adapters/anac/adapter.js.map +1 -1
  380. package/out/it/tools/fetch/anac.d.ts +16 -19
  381. package/out/it/tools/fetch/anac.d.ts.map +1 -1
  382. package/out/it/tools/fetch/anac.js +20 -23
  383. package/out/it/tools/fetch/anac.js.map +1 -1
  384. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -1
  385. package/out/jp/adapters/wof-admin/adapter.js.map +1 -1
  386. package/out/jp/tools/fetch/houjin.js +2 -2
  387. package/out/jp/tools/fetch/houjin.js.map +1 -1
  388. package/out/kr/adapters/localdata/permit-rows.js +1 -1
  389. package/out/kr/adapters/localdata/permit-rows.js.map +1 -1
  390. package/out/kr/tools/fetch/juso.d.ts +1 -1
  391. package/out/kr/tools/fetch/localdata.d.ts +1 -1
  392. package/out/kr/tools/fetch/localdata.js +1 -1
  393. package/out/kr/tools/fetch/localdata.js.map +1 -1
  394. package/out/lu/adapters/bd-adresses/adapter.d.ts +9 -9
  395. package/out/lu/adapters/bd-adresses/adapter.js +10 -10
  396. package/out/lu/tools/fetch/bd-adresses.d.ts +11 -9
  397. package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -1
  398. package/out/lu/tools/fetch/bd-adresses.js +11 -11
  399. package/out/lu/tools/fetch/bd-adresses.js.map +1 -1
  400. package/out/lv/adapters/varis/adapter.d.ts +24 -23
  401. package/out/lv/adapters/varis/adapter.d.ts.map +1 -1
  402. package/out/lv/adapters/varis/adapter.js +24 -23
  403. package/out/lv/adapters/varis/adapter.js.map +1 -1
  404. package/out/lv/tools/fetch/varis.d.ts +2 -1
  405. package/out/lv/tools/fetch/varis.d.ts.map +1 -1
  406. package/out/lv/tools/fetch/varis.js +1 -1
  407. package/out/lv/tools/fetch/varis.js.map +1 -1
  408. package/out/nl/adapters/kadaster/adapter.d.ts +12 -12
  409. package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -1
  410. package/out/nl/adapters/kadaster/adapter.js +22 -23
  411. package/out/nl/adapters/kadaster/adapter.js.map +1 -1
  412. package/out/nl/tools/fetch/kadaster.d.ts +14 -10
  413. package/out/nl/tools/fetch/kadaster.d.ts.map +1 -1
  414. package/out/nl/tools/fetch/kadaster.js +12 -9
  415. package/out/nl/tools/fetch/kadaster.js.map +1 -1
  416. package/out/no/adapters/matrikkelen/adapter.d.ts +1 -1
  417. package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -1
  418. package/out/no/adapters/matrikkelen/adapter.js +3 -3
  419. package/out/no/adapters/matrikkelen/adapter.js.map +1 -1
  420. package/out/no/tools/fetch/matrikkelen.d.ts +50 -38
  421. package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -1
  422. package/out/no/tools/fetch/matrikkelen.js +44 -36
  423. package/out/no/tools/fetch/matrikkelen.js.map +1 -1
  424. package/out/parquet/duckdb.d.ts +7 -4
  425. package/out/parquet/duckdb.d.ts.map +1 -1
  426. package/out/parquet/duckdb.js +2 -1
  427. package/out/parquet/duckdb.js.map +1 -1
  428. package/out/parquet/readers.js +3 -3
  429. package/out/parquet/readers.js.map +1 -1
  430. package/out/parquet/schema.js +1 -1
  431. package/out/parquet/schema.js.map +1 -1
  432. package/out/parquet/writers.d.ts +1 -1
  433. package/out/parquet/writers.d.ts.map +1 -1
  434. package/out/parquet/writers.js +2 -1
  435. package/out/parquet/writers.js.map +1 -1
  436. package/out/pl/adapters/emuia/adapter.d.ts +8 -8
  437. package/out/pl/adapters/emuia/adapter.js +12 -12
  438. package/out/pl/adapters/emuia/adapter.js.map +1 -1
  439. package/out/pl/tools/fetch/emuia.d.ts +5 -4
  440. package/out/pl/tools/fetch/emuia.d.ts.map +1 -1
  441. package/out/pl/tools/fetch/emuia.js +10 -9
  442. package/out/pl/tools/fetch/emuia.js.map +1 -1
  443. package/out/recipes/bare/postcode.js +1 -1
  444. package/out/recipes/bare/postcode.js.map +1 -1
  445. package/out/recipes/boundary-stress.js +1 -1
  446. package/out/recipes/boundary-stress.js.map +1 -1
  447. package/out/recipes/house-venue.d.ts.map +1 -1
  448. package/out/recipes/house-venue.js +6 -3
  449. package/out/recipes/house-venue.js.map +1 -1
  450. package/out/recipes/intersection.js +2 -2
  451. package/out/recipes/intersection.js.map +1 -1
  452. package/out/recipes/po/box/cedex/recipe.js +2 -1
  453. package/out/recipes/po/box/cedex/recipe.js.map +1 -1
  454. package/out/recipes/po/box/cedex/sources.d.ts +8 -2
  455. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
  456. package/out/recipes/po/box/cedex/sources.js +1 -1
  457. package/out/recipes/po/box/cedex/sources.js.map +1 -1
  458. package/out/recipes/scaffold.d.ts +28 -19
  459. package/out/recipes/scaffold.d.ts.map +1 -1
  460. package/out/recipes/scaffold.js +3 -2
  461. package/out/recipes/scaffold.js.map +1 -1
  462. package/out/recipes/sources.d.ts +1 -1
  463. package/out/recipes/sources.d.ts.map +1 -1
  464. package/out/recipes/sources.js +15 -2
  465. package/out/recipes/sources.js.map +1 -1
  466. package/out/recipes/street/bare.js +2 -2
  467. package/out/recipes/street/bare.js.map +1 -1
  468. package/out/recipes/street.d.ts.map +1 -1
  469. package/out/recipes/street.js +3 -1
  470. package/out/recipes/street.js.map +1 -1
  471. package/out/recipes/sub/venue/context.d.ts.map +1 -1
  472. package/out/recipes/sub/venue/context.js +2 -0
  473. package/out/recipes/sub/venue/context.js.map +1 -1
  474. package/out/recipes/sub/venue/render.js +1 -1
  475. package/out/recipes/sub/venue/render.js.map +1 -1
  476. package/out/recipes/sub/venue/sources.d.ts +6 -3
  477. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  478. package/out/recipes/sub/venue/sources.js +16 -20
  479. package/out/recipes/sub/venue/sources.js.map +1 -1
  480. package/out/recipes/sub/venue.d.ts +2 -5
  481. package/out/recipes/sub/venue.d.ts.map +1 -1
  482. package/out/recipes/sub/venue.js +10 -14
  483. package/out/recipes/sub/venue.js.map +1 -1
  484. package/out/recipes/trailing-region.d.ts.map +1 -1
  485. package/out/recipes/trailing-region.js +6 -1
  486. package/out/recipes/trailing-region.js.map +1 -1
  487. package/out/recipes/unit.js +2 -2
  488. package/out/recipes/unit.js.map +1 -1
  489. package/out/recipes/venue.d.ts +119 -0
  490. package/out/recipes/venue.d.ts.map +1 -0
  491. package/out/recipes/venue.js +245 -0
  492. package/out/recipes/venue.js.map +1 -0
  493. package/out/recipes.d.ts +1 -1
  494. package/out/recipes.d.ts.map +1 -1
  495. package/out/recipes.js +3 -1
  496. package/out/recipes.js.map +1 -1
  497. package/out/registers.d.ts +8 -6
  498. package/out/registers.d.ts.map +1 -1
  499. package/out/registers.js +8 -6
  500. package/out/registers.js.map +1 -1
  501. package/out/ro/adapters/retea-scolara/adapter.d.ts +5 -5
  502. package/out/ro/adapters/retea-scolara/adapter.js +5 -5
  503. package/out/ro/tools/fetch/retea-scolara.js +1 -1
  504. package/out/ro/tools/fetch/retea-scolara.js.map +1 -1
  505. package/out/runner.d.ts +3 -2
  506. package/out/runner.d.ts.map +1 -1
  507. package/out/runner.js +1 -1
  508. package/out/runner.js.map +1 -1
  509. package/out/sg/recipes/register.js +1 -1
  510. package/out/sg/recipes/register.js.map +1 -1
  511. package/out/sg/tools/fetch/acra.js +2 -2
  512. package/out/sg/tools/fetch/acra.js.map +1 -1
  513. package/out/sk/adapters/inspire/adapter.d.ts +5 -5
  514. package/out/sk/adapters/inspire/adapter.d.ts.map +1 -1
  515. package/out/sk/adapters/inspire/adapter.js +18 -18
  516. package/out/sk/adapters/inspire/adapter.js.map +1 -1
  517. package/out/sk/tools/fetch/inspire.d.ts +11 -10
  518. package/out/sk/tools/fetch/inspire.d.ts.map +1 -1
  519. package/out/sk/tools/fetch/inspire.js +15 -14
  520. package/out/sk/tools/fetch/inspire.js.map +1 -1
  521. package/out/source-register/effective-manifest.js +3 -3
  522. package/out/source-register/effective-manifest.js.map +1 -1
  523. package/out/source-register/register.d.ts +2 -2
  524. package/out/source-register/register.d.ts.map +1 -1
  525. package/out/source-register/register.js +2 -2
  526. package/out/source-register/register.js.map +1 -1
  527. package/out/source-register/training-manifest.d.ts +1 -1
  528. package/out/source-register/types.d.ts +12 -13
  529. package/out/source-register/types.d.ts.map +1 -1
  530. package/out/source-register/types.js +2 -2
  531. package/out/source-register/types.js.map +1 -1
  532. package/out/subvenue/promotions.d.ts +1 -1
  533. package/out/subvenue/promotions.js +1 -1
  534. package/out/subvenue/table.d.ts +4 -4
  535. package/out/subvenue/table.js +3 -3
  536. package/out/surfaces/locale.d.ts.map +1 -1
  537. package/out/surfaces/locale.js +2 -0
  538. package/out/surfaces/locale.js.map +1 -1
  539. package/out/synthesizers/anchor-absorption.d.ts +2 -1
  540. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  541. package/out/synthesizers/anchor-absorption.js.map +1 -1
  542. package/out/synthesizers/boundary-stress.d.ts +1 -1
  543. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  544. package/out/synthesizers/boundary-stress.js +20 -23
  545. package/out/synthesizers/boundary-stress.js.map +1 -1
  546. package/out/synthesizers/house-venue.d.ts +3 -2
  547. package/out/synthesizers/house-venue.d.ts.map +1 -1
  548. package/out/synthesizers/house-venue.js +24 -26
  549. package/out/synthesizers/house-venue.js.map +1 -1
  550. package/out/synthesizers/no-street.d.ts.map +1 -1
  551. package/out/synthesizers/no-street.js.map +1 -1
  552. package/out/synthesizers/po-box.d.ts +4 -2
  553. package/out/synthesizers/po-box.d.ts.map +1 -1
  554. package/out/synthesizers/po-box.js.map +1 -1
  555. package/out/synthesizers/tail.d.ts +36 -0
  556. package/out/synthesizers/tail.d.ts.map +1 -0
  557. package/out/synthesizers/tail.js +32 -0
  558. package/out/synthesizers/tail.js.map +1 -0
  559. package/out/synthesizers/utils.d.ts +2 -1
  560. package/out/synthesizers/utils.d.ts.map +1 -1
  561. package/out/synthesizers/utils.js +17 -1
  562. package/out/synthesizers/utils.js.map +1 -1
  563. package/out/test-kit.js +2 -2
  564. package/out/test-kit.js.map +1 -1
  565. package/out/tools/audit.d.ts +2 -1
  566. package/out/tools/audit.d.ts.map +1 -1
  567. package/out/tools/audit.js +4 -3
  568. package/out/tools/audit.js.map +1 -1
  569. package/out/tools/corpus-stats.js +1 -1
  570. package/out/tools/corpus-stats.js.map +1 -1
  571. package/out/tools/fetch/atom.d.ts +8 -8
  572. package/out/tools/fetch/atom.d.ts.map +1 -1
  573. package/out/tools/fetch/atom.js +7 -8
  574. package/out/tools/fetch/atom.js.map +1 -1
  575. package/out/tools/fetch/cordis.d.ts +4 -3
  576. package/out/tools/fetch/cordis.d.ts.map +1 -1
  577. package/out/tools/fetch/cordis.js +9 -7
  578. package/out/tools/fetch/cordis.js.map +1 -1
  579. package/out/tools/fetch/download/manifest.d.ts.map +1 -1
  580. package/out/tools/fetch/download/manifest.js +2 -1
  581. package/out/tools/fetch/download/manifest.js.map +1 -1
  582. package/out/tools/fetch/download/network.d.ts +4 -4
  583. package/out/tools/fetch/download/retry.js +4 -4
  584. package/out/tools/fetch/download/retry.js.map +1 -1
  585. package/out/tools/fetch/geonames/dump.d.ts +3 -2
  586. package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
  587. package/out/tools/fetch/geonames/dump.js +2 -1
  588. package/out/tools/fetch/geonames/dump.js.map +1 -1
  589. package/out/tools/fetch/geonames/postal.d.ts +2 -2
  590. package/out/tools/fetch/gleif.d.ts +3 -2
  591. package/out/tools/fetch/gleif.d.ts.map +1 -1
  592. package/out/tools/fetch/gleif.js +6 -4
  593. package/out/tools/fetch/gleif.js.map +1 -1
  594. package/out/tools/fetch/header.d.ts +7 -5
  595. package/out/tools/fetch/header.d.ts.map +1 -1
  596. package/out/tools/fetch/header.js +8 -6
  597. package/out/tools/fetch/header.js.map +1 -1
  598. package/out/tools/fetch/inspire-addresses.d.ts +32 -27
  599. package/out/tools/fetch/inspire-addresses.d.ts.map +1 -1
  600. package/out/tools/fetch/inspire-addresses.js +25 -24
  601. package/out/tools/fetch/inspire-addresses.js.map +1 -1
  602. package/out/tools/fetch/openaddresses.js +1 -1
  603. package/out/tools/fetch/openaddresses.js.map +1 -1
  604. package/out/tools/fetch/vlaanderen-ad.d.ts +5 -5
  605. package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -1
  606. package/out/tools/fetch/vlaanderen-ad.js +16 -16
  607. package/out/tools/fetch/vlaanderen-ad.js.map +1 -1
  608. package/out/tools/fetch/wfs-harvest.d.ts +26 -16
  609. package/out/tools/fetch/wfs-harvest.d.ts.map +1 -1
  610. package/out/tools/fetch/wfs-harvest.js +21 -18
  611. package/out/tools/fetch/wfs-harvest.js.map +1 -1
  612. package/out/tools/fetch.d.ts +0 -41
  613. package/out/tools/fetch.d.ts.map +1 -1
  614. package/out/tools/fetch.js +0 -41
  615. package/out/tools/fetch.js.map +1 -1
  616. package/out/tools/golden/expand.d.ts +7 -7
  617. package/out/tools/golden/expand.js +1 -1
  618. package/out/tools/golden/expand.js.map +1 -1
  619. package/out/tools/golden/promote.d.ts +2 -2
  620. package/out/tools/golden/promote.d.ts.map +1 -1
  621. package/out/tools/golden/promote.js +9 -6
  622. package/out/tools/golden/promote.js.map +1 -1
  623. package/out/tools/golden/relabel-street/directory.d.ts +4 -4
  624. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
  625. package/out/tools/golden/relabel-street/directory.js +3 -2
  626. package/out/tools/golden/relabel-street/directory.js.map +1 -1
  627. package/out/tools/golden/relabel-street/row.d.ts +4 -3
  628. package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
  629. package/out/tools/golden/relabel-street/row.js +3 -3
  630. package/out/tools/golden/relabel-street/row.js.map +1 -1
  631. package/out/tools/ingest-csv.js +3 -3
  632. package/out/tools/ingest-csv.js.map +1 -1
  633. package/out/tools/jsonl-to-parquet.d.ts +1 -1
  634. package/out/tools/lint/recipe-output/vocab.d.ts +10 -5
  635. package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -1
  636. package/out/tools/lint/recipe-output/vocab.js.map +1 -1
  637. package/out/tools/lint/recipe-output.d.ts +8 -8
  638. package/out/tools/lint/recipe-output.d.ts.map +1 -1
  639. package/out/tools/lint/recipe-output.js +17 -0
  640. package/out/tools/lint/recipe-output.js.map +1 -1
  641. package/out/tools/overlay/kryptonite.d.ts +2 -2
  642. package/out/tools/overlay/kryptonite.d.ts.map +1 -1
  643. package/out/tools/overlay/kryptonite.js +2 -1
  644. package/out/tools/overlay/kryptonite.js.map +1 -1
  645. package/out/tools/overlay/manifest.d.ts +2 -1
  646. package/out/tools/overlay/manifest.d.ts.map +1 -1
  647. package/out/tools/overlay/manifest.js +2 -1
  648. package/out/tools/overlay/manifest.js.map +1 -1
  649. package/out/tools/overlay/merge-source.d.ts +2 -1
  650. package/out/tools/overlay/merge-source.d.ts.map +1 -1
  651. package/out/tools/overlay/merge-source.js.map +1 -1
  652. package/out/tools/overlay/split-slice.d.ts +1 -1
  653. package/out/tools/overlay/split-slice.js +1 -1
  654. package/out/tools/overlay/split-slice.js.map +1 -1
  655. package/out/tools/overlay/translit.d.ts +4 -3
  656. package/out/tools/overlay/translit.d.ts.map +1 -1
  657. package/out/tools/overlay/translit.js +2 -1
  658. package/out/tools/overlay/translit.js.map +1 -1
  659. package/out/tools/overture-subvenue.d.ts +1 -1
  660. package/out/tools/overture-subvenue.d.ts.map +1 -1
  661. package/out/tools/postcode-triples.d.ts +1 -1
  662. package/out/tools/postcode-triples.d.ts.map +1 -1
  663. package/out/tools/postcode-triples.js +4 -3
  664. package/out/tools/postcode-triples.js.map +1 -1
  665. package/out/tools/source-register/build.d.ts +10 -8
  666. package/out/tools/source-register/build.d.ts.map +1 -1
  667. package/out/tools/source-register/build.js +10 -8
  668. package/out/tools/source-register/build.js.map +1 -1
  669. package/out/tools/sub/venue/lexicon.d.ts +2 -6
  670. package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
  671. package/out/tools/sub/venue/lexicon.js +2 -6
  672. package/out/tools/sub/venue/lexicon.js.map +1 -1
  673. package/out/tw/tools/fetch/gcis.js +3 -3
  674. package/out/tw/tools/fetch/gcis.js.map +1 -1
  675. package/out/types.d.ts +4 -3
  676. package/out/types.d.ts.map +1 -1
  677. package/out/types.js.map +1 -1
  678. package/out/us/adapters/state/hi-schools/workbook.d.ts +1 -1
  679. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -1
  680. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -1
  681. package/out/us/adapters/usgov/nad/adapter.js +6 -6
  682. package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
  683. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +2 -2
  684. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
  685. package/out/us/fips-state.d.ts +2 -2
  686. package/out/us/fips-state.d.ts.map +1 -1
  687. package/out/us/fips-state.js.map +1 -1
  688. package/out/us/synthesizers/intersection.d.ts.map +1 -0
  689. package/out/{synthesizers → us/synthesizers}/intersection.js +13 -9
  690. package/out/us/synthesizers/intersection.js.map +1 -0
  691. package/out/{synthesizers → us/synthesizers}/street.d.ts +3 -2
  692. package/out/us/synthesizers/street.d.ts.map +1 -0
  693. package/out/{synthesizers → us/synthesizers}/street.js +12 -12
  694. package/out/us/synthesizers/street.js.map +1 -0
  695. package/out/us/tools/fetch/imls-pls.js +1 -1
  696. package/out/us/tools/fetch/imls-pls.js.map +1 -1
  697. package/out/us/tools/fetch/nad.d.ts +6 -6
  698. package/out/us/tools/fetch/nad.js +1 -1
  699. package/out/us/tools/fetch/nad.js.map +1 -1
  700. package/out/us/tools/fetch/nppes.js +3 -3
  701. package/out/us/tools/fetch/nppes.js.map +1 -1
  702. package/out/us/tools/fetch/state/hi-schools.d.ts +2 -1
  703. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
  704. package/out/us/tools/fetch/state/hi-schools.js +1 -1
  705. package/out/us/tools/fetch/state/hi-schools.js.map +1 -1
  706. package/out/us/tools/fetch/tiger-full.js +1 -1
  707. package/out/us/tools/fetch/tiger-full.js.map +1 -1
  708. package/out/utils/align.d.ts +5 -3
  709. package/out/utils/align.d.ts.map +1 -1
  710. package/out/utils/align.js +5 -5
  711. package/out/utils/align.js.map +1 -1
  712. package/out/utils/golden.js +2 -2
  713. package/out/utils/golden.js.map +1 -1
  714. package/out/utils/license.d.ts +3 -3
  715. package/out/utils/license.d.ts.map +1 -1
  716. package/out/utils/license.js.map +1 -1
  717. package/out/utils/split.d.ts +1 -1
  718. package/out/utils/split.d.ts.map +1 -1
  719. package/out/utils/split.js +18 -14
  720. package/out/utils/split.js.map +1 -1
  721. package/out/utils/tokenize.d.ts +3 -20
  722. package/out/utils/tokenize.d.ts.map +1 -1
  723. package/out/utils/tokenize.js.map +1 -1
  724. package/out/utils/wof-json.js +3 -3
  725. package/out/utils/wof-json.js.map +1 -1
  726. package/package.json +18 -27
  727. package/lib/tools.ts +0 -31
  728. package/out/synthesizers/intersection.d.ts.map +0 -1
  729. package/out/synthesizers/intersection.js.map +0 -1
  730. package/out/synthesizers/street.d.ts.map +0 -1
  731. package/out/synthesizers/street.js.map +0 -1
  732. package/out/tools.d.ts +0 -31
  733. package/out/tools.d.ts.map +0 -1
  734. package/out/tools.js +0 -31
  735. package/out/tools.js.map +0 -1
  736. /package/out/{synthesizers → us/synthesizers}/intersection.d.ts +0 -0
@@ -23,19 +23,19 @@
23
23
  * Each record names its immediate parent by `VKUR_CD` and `VKUR_TIPS`, and the parent names its own
24
24
  * the same way, up to the country. The type codes are the register's: `104` city (`pilsēta`), `105`
25
25
  * parish (`pagasts`), `106` village (`ciems`), `107` street (`iela`), `113` municipality (`novads`)
26
- * and `101` Latvia, whose code `100000000` no table holds as a row. Over the 550,652 active records the
26
+ * and `101` Latvia. No table read lists its code `100000000` as a row. Over the 550,652 active records the
27
27
  * chains take seven shapes, written from the parent upward. The rows column counts what the adapter
28
28
  * emits after the refusals below:
29
29
  *
30
30
  * | Chain | Records | Rows | {@linkcode VarisAddressType} |
31
31
  * | ----------------------------- | ------: | ------: | ----------------------------- |
32
- * | parish, municipality | 116,225 | 116,225 | `parish-named-house` |
33
- * | street, city, municipality | 113,906 | 113,905 | `town-street` |
34
- * | street, city | 111,218 | 111,217 | `state-city-street` |
35
- * | village, parish, municipality | 108,164 | 108,164 | `village-named-house` |
36
- * | street, village, parish, mun. | 98,192 | 98,179 | `village-street` |
37
- * | city, municipality | 2,814 | 2,814 | `city-named-house` |
38
- * | city | 133 | 133 | `city-named-house` |
32
+ * | parish, municipality | 116,225 | 116,225 | `ParishNamedHouse` |
33
+ * | street, city, municipality | 113,906 | 113,905 | `TownStreet` |
34
+ * | street, city | 111,218 | 111,217 | `StateCityStreet` |
35
+ * | village, parish, municipality | 108,164 | 108,164 | `VillageNamedHouse` |
36
+ * | street, village, parish, mun. | 98,192 | 98,179 | `VillageStreet` |
37
+ * | city, municipality | 2,814 | 2,814 | `CityNamedHouse` |
38
+ * | city | 133 | 133 | `CityNamedHouse` |
39
39
  *
40
40
  * No active record has an unresolved or inactive ancestor, 0 of 550,652.
41
41
  *
@@ -45,11 +45,11 @@
45
45
  * `"Riņņi", Vecates pag., Valmieras nov., LV-4211`. Each
46
46
  * part is the `NOSAUKUMS` of one object in the chain, in chain order, joined by a comma and a space,
47
47
  * with the postcode `ATRIB` last. A building on a street writes the street name and the house number
48
- * as one part, and a named building writes its name inside ASCII double quotes. The adapter composes
48
+ * as one part, and a building with its own name writes it inside ASCII double quotes. The adapter composes
49
49
  * that string from the chain and compares it with `STD`. Over the 550,637 active records the adapter
50
50
  * does not refuse first, the two are equal on 550,637. A record where they differ is refused, so every
51
51
  * row's `raw` is `STD` unchanged and every component's position in it is known. The row's surface is
52
- * `attested`. Aligning the 550,637 rows with `alignRow` at edit distance 0 quarantines none and places
52
+ * `attested`. `alignRow` aligns the 550,637 rows at edit distance 0, quarantines none, and places
53
53
  * every component in the order above.
54
54
  *
55
55
  * The comparison reads values as stored. 25 building names end in a space, and `STD` keeps it inside the
@@ -68,8 +68,8 @@
68
68
  * block (`korpuss`) 1, one address in the register. Over the 323,316 street addresses, 249,783 are
69
69
  * bare digits and 56,374 digits and a letter. 15 hold no digit, such as `Bauskas iela Ozoli`, where
70
70
  * a house name stands in the number's place. Those are refused, because the name is not a number
71
- * and labeling it a venue would place a venue after a street, which no other Latvian row does.
72
- * - A building's name is `venue`. SCHEMA.mdx defines `venue` as a named place and keeps
71
+ * and labeling it a venue would place a venue after a street. No other Latvian row does that.
72
+ * - A building's name is `venue`. SCHEMA.mdx defines `venue` as a place with a name and keeps
73
73
  * `building_name` for Japan, and the Estonian register adapter labels a farm name `venue` for the same
74
74
  * reason. The quotes are punctuation and lie outside the span. 236 names hold a quote of their own,
75
75
  * such as `Stacija "Biksti"`, which the register writes `"Stacija "Biksti""`.
@@ -81,7 +81,7 @@
81
81
  * village inside a rural municipality the same way.
82
82
  * - A municipality is `region`, abbreviation included: `Valmieras nov.`. The register holds no tier
83
83
  * above it: the parent of all 35 active municipalities is Latvia. The 7 active cities whose parent is
84
- * Latvia, the state cities such as Rīga and Daugavpils, write no municipality, so their rows carry no
84
+ * Latvia, the state cities such as Rīga and Daugavpils, write no municipality, so their rows have no
85
85
  * region.
86
86
  * - `ATRIB` is `postcode`, prefix included: `LV-4211`.
87
87
  *
@@ -94,7 +94,7 @@
94
94
  *
95
95
  * ## Personal data, identity and license
96
96
  *
97
- * The register records places and names no owner or occupant, so no row carries a natural person's
97
+ * The register records places and names no owner or occupant, so no row has a natural person's
98
98
  * name. A building name is the name of the property, as on a map.
99
99
  *
100
100
  * The row id is the register's own object code, `lv-varis-<KODS>`. Five `STD` strings are each written
@@ -104,7 +104,7 @@
104
104
  * publisher Valsts zemes dienests, and the column metadata posted beside `aw_dziv.csv` names
105
105
  * `https://creativecommons.org/licenses/by/4.0/` as `dc:license`. CC BY 4.0 requires credit, a link to the license and
106
106
  * a statement that changes were made, so every row records the license and
107
- * {@linkcode LV_VARIS_ATTRIBUTION} is the credit the model card carries.
107
+ * {@linkcode LV_VARIS_ATTRIBUTION} is the credit the model card states.
108
108
  *
109
109
  * The adapter honors `opts.limit` and `opts.signal`. `opts.country` is optional and accepts only `LV`.
110
110
  */
@@ -208,11 +208,11 @@ export const VarisRefusal = {
208
208
  */
209
209
  UnexpectedHierarchy: "row:unexpected-hierarchy",
210
210
  /**
211
- * The record carries no `LV-` postcode.
211
+ * The record has no `LV-` postcode.
212
212
  */
213
213
  PostcodeAbsent: "row:postcode-absent",
214
214
  /**
215
- * A building on a street carries a name with no digit where its number belongs.
215
+ * A building on a street has a name with no digit where its number belongs.
216
216
  */
217
217
  NamedHouseOnStreet: "row:named-house-on-street",
218
218
  /**
@@ -228,7 +228,8 @@ export type VarisRefusal = (typeof VarisRefusal)[keyof typeof VarisRefusal]
228
228
  */
229
229
  export const VarisAddressType = {
230
230
  /**
231
- * A street address in one of the state cities, which lie under no municipality.
231
+ * A street address in one of the state cities.
232
+ * Those cities lie under no municipality.
232
233
  */
233
234
  StateCityStreet: "state-city-street",
234
235
  /**
@@ -240,15 +241,15 @@ export const VarisAddressType = {
240
241
  */
241
242
  VillageStreet: "village-street",
242
243
  /**
243
- * A named house in a city, on no street.
244
+ * A house with its own name in a city, on no street.
244
245
  */
245
246
  CityNamedHouse: "city-named-house",
246
247
  /**
247
- * A named house in a village.
248
+ * A house with its own name in a village.
248
249
  */
249
250
  VillageNamedHouse: "village-named-house",
250
251
  /**
251
- * A named house in a parish, in no village.
252
+ * A house with its own name in a parish, in no village.
252
253
  */
253
254
  ParishNamedHouse: "parish-named-house",
254
255
  } as const
@@ -419,8 +420,8 @@ export function readVarisBuilding(record: VarisRecord, places: VarisPlaces): Var
419
420
  /**
420
421
  * Streams one table's records, each value as stored.
421
422
  *
422
- * Trimming is off because `STD` keeps a stored trailing space inside a building
423
- * name's quotes, and the composition check compares the two.
423
+ * The reader turns trimming off because `STD` keeps a stored trailing space inside a building name's quotes.
424
+ * The composition check compares the two.
424
425
  */
425
426
  export function readVarisTable(path: PathBuilderLike): AsyncIterable<VarisRecord> {
426
427
  return CSVSpliterator.fromAsync(path, { normalizeKeys: false, trim: false }) as AsyncIterable<VarisRecord>
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { APIClient } from "@mailwoman/core/api"
18
18
  import { ByteFormatter } from "@mailwoman/core/fs/formatters"
19
- import { tryStat } from "@mailwoman/core/fs/readers"
19
+ import { tryStat } from "@mailwoman/core/fs/readers/stat"
20
20
  import { makeDirectories } from "@mailwoman/core/fs/writers"
21
21
  import { sha256File } from "@mailwoman/core/hash"
22
22
  import { PathBuilder, type PathBuilderLike } from "path-ts"
@@ -89,7 +89,8 @@ export interface DownloadVarisOptions {
89
89
  outputDir: PathBuilderLike
90
90
  /**
91
91
  * The tables to download.
92
- * Defaults to every table the adapter reads.
92
+ *
93
+ * @defaultValue every table the adapter reads.
93
94
  */
94
95
  tables?: readonly VarisTable[]
95
96
  force?: boolean
@@ -8,13 +8,13 @@
8
8
  * Kadaster serves the whole country in one file. The ATOM service document at
9
9
  * `https://service.pdok.nl/kadaster/ad/atom/adressen_inspire_geharmoniseerd.xml`, 2,247 bytes, holds
10
10
  * one entry, and its `rel="alternate"` link is
11
- * `https://service.pdok.nl/kadaster/ad/atom/downloads/addresses.gml.gz`, 819,465,603 bytes, which
11
+ * `https://service.pdok.nl/kadaster/ad/atom/downloads/addresses.gml.gz`, 819,465,603 bytes. It
12
12
  * inflates to 29,677,448,685 bytes of GML holding 10,066,060 address features. The sibling feed URL
13
13
  * the entry's own `<id>` names answers HTTP 404, so the download link is the only live one.
14
14
  *
15
15
  * The size decides the shape of the reader. The document is never buffered: the adapter opens the
16
- * local `.gml.gz`, inflates it as a byte stream and takes one feature subtree at a time, and it keeps
17
- * a value rather than a subtree for each feature an address references, so the index it holds is
16
+ * local `.gml.gz`, inflates it as a byte stream and takes one feature subtree at a time. Each feature
17
+ * an address references contributes a value rather than its subtree, so the index is
18
18
  * bounded by a string per street and per place name rather than by the document.
19
19
  *
20
20
  * Four things separate this publisher from the Czech one the shared primitives were first written
@@ -45,8 +45,8 @@
45
45
  *
46
46
  * So the extension joins the number with no separator and the second extension follows a hyphen.
47
47
  * 305,542 of 345,309 addresses in the prefix write an `addressNumberExtension` that is present and
48
- * empty, spelled `<ad:designator/>`. That states an address with no extension, which is a different
49
- * condition from void.
48
+ * empty, spelled `<ad:designator/>`. That states an address with no extension. That condition differs
49
+ * from void.
50
50
  *
51
51
  * The place name comes from `ad:AddressAreaName`, the BAG *woonplaats*. The prefix holds exactly one
52
52
  * `ad:AdminUnitName` feature and it is the country, `Nederland` at `1stOrder`, so this feed publishes
@@ -60,8 +60,8 @@
60
60
  * against 2,622 dot-form ids and 0 hyphen-form ids. The same element on an `ad:AddressAreaName` uses
61
61
  * the dot form and resolves. A reader walking `ThoroughfareName → situatedWithin → AddressAreaName`
62
62
  * would therefore read an empty locality for every street and report no failure. So the adapter reads
63
- * the street and the place from the address's own `ad:component` references, which use the dot form,
64
- * and never follows `ad:situatedWithin`. Every reference it does follow raises when it resolves to no
63
+ * the street and the place from the address's own `ad:component` references, and those use the dot
64
+ * form. It never follows `ad:situatedWithin`. Every reference it does follow raises when it resolves to no
65
65
  * feature, so the hyphen form reaching an `ad:component` would be reported rather than dropped.
66
66
  *
67
67
  * Unlike Czechia, this publisher offers no string to check a whole rendered line against.
@@ -70,7 +70,7 @@
70
70
  *
71
71
  * Kadaster states one license and states it as a URL. Both `rights` elements of the ATOM service
72
72
  * document read `https://creativecommons.org/publicdomain/zero/1.0/deed.nl`, the Dutch deed page for
73
- * CC0 1.0 Universal, which the address-source register elected with `spdx` `CC0-1.0`. CC0 reserves no
73
+ * CC0 1.0 Universal. The address-source register elected it with `spdx` `CC0-1.0`. CC0 reserves no
74
74
  * act, so every row records that identifier and no attribution clause is owed, although crediting
75
75
  * Kadaster stays good practice.
76
76
  *
@@ -161,19 +161,20 @@ const COMPONENT_TYPES = ["ad:ThoroughfareName", "ad:AddressAreaName", "ad:AdminU
161
161
  */
162
162
  interface ReferencedValue {
163
163
  /**
164
- * The feature's element name, which decides where its value goes.
164
+ * The feature's element name.
165
+ * That decides where its value goes.
165
166
  */
166
167
  readonly type: string
167
168
 
168
169
  /**
169
- * The street name or place name the feature states, absent when the feature states none.
170
+ * The street name or place name the feature states, null when the feature states none.
170
171
  */
171
- readonly name?: string
172
+ readonly name: string | null
172
173
 
173
174
  /**
174
175
  * The administrative level an `ad:AdminUnitName` states, such as `1stOrder`.
175
176
  */
176
- readonly level?: string
177
+ readonly level: string | null
177
178
  }
178
179
 
179
180
  /**
@@ -181,29 +182,29 @@ interface ReferencedValue {
181
182
  */
182
183
  function referencedValue(feature: MarkupElement): ReferencedValue {
183
184
  if (feature.name === "ad:ThoroughfareName") {
184
- return { type: feature.name, name: thoroughfareName(feature) }
185
+ return { type: feature.name, name: thoroughfareName(feature), level: null }
185
186
  }
186
187
 
187
188
  if (feature.name === "ad:AdminUnitName") {
188
189
  return { type: feature.name, name: placeName(feature), level: adminUnitLevel(feature) }
189
190
  }
190
191
 
191
- return { type: feature.name, name: placeName(feature) }
192
+ return { type: feature.name, name: placeName(feature), level: null }
192
193
  }
193
194
 
194
195
  /**
195
196
  * The house number as Kadaster writes it in BAG's `huis_nlt`.
196
197
  *
197
- * The letter joins the number directly and the addition follows a hyphen,
198
- * which the table in this module's header reads off three records matched against
198
+ * The letter joins the number directly and the addition follows a hyphen.
199
+ * The table in this module's header reads that off three records matched against
199
200
  * the Locatieserver by their `nummeraanduiding` id.
200
201
  *
201
- * @returns The joined number, or undefined when the publisher states no `addressNumber`.
202
+ * @returns The joined number, or null when the publisher states no `addressNumber`.
202
203
  */
203
- export function dutchHouseNumber(byType: ReadonlyMap<string, readonly string[]>): string | undefined {
204
+ export function dutchHouseNumber(byType: ReadonlyMap<string, readonly string[]>): string | null {
204
205
  const number = designator(byType, "addressNumber")
205
206
 
206
- if (!number) return undefined
207
+ if (!number) return null
207
208
 
208
209
  const letter = designator(byType, "addressNumberExtension") ?? ""
209
210
  const addition = designator(byType, "addressNumber2ndExtension") ?? ""
@@ -240,8 +241,7 @@ export function createNLKadasterAdapter(): CorpusAdapter {
240
241
  for await (const row of streamInspireRows<ReferencedValue>({
241
242
  chunks: documentChunks(documentPath),
242
243
  componentElements: COMPONENT_TYPES,
243
- // One string per feature rather than its subtree, which holds 300,318 strings
244
- // instead of 300,318 trees.
244
+ // One string per feature rather than its subtree.
245
245
  index: referencedValue,
246
246
  compose: (address, referenced, final) => composeRow(address, referenced, { final }),
247
247
  limit: opts.limit === undefined ? undefined : opts.limit - emitted,
@@ -257,7 +257,7 @@ export function createNLKadasterAdapter(): CorpusAdapter {
257
257
  }
258
258
 
259
259
  /**
260
- * One address's row, `undefined` when it holds too little to render, or `"deferred"`
260
+ * One address's row, `null` when it holds too little to render, or `"deferred"`
261
261
  * when a reference it states is not indexed yet.
262
262
  *
263
263
  * With `final` set the document has ended, so an unresolved reference is a value the reader
@@ -267,16 +267,16 @@ function composeRow(
267
267
  address: MarkupElement,
268
268
  referenced: ReadonlyMap<string, ReferencedValue>,
269
269
  options: { final?: boolean } = {}
270
- ): CanonicalRow | undefined | "deferred" {
271
- const addressID = address.attributes["gml:id"]?.trim()
270
+ ): CanonicalRow | null | "deferred" {
271
+ const addressID = address.attributes["gml:id"]?.trim() ?? null
272
272
  const voided = voidDesignatorTypes(address)
273
273
 
274
274
  for (const type of ["addressNumber", "postalDeliveryIdentifier"]) {
275
275
  if (voided.has(type)) throw new VoidDesignatorError(NL_KADASTER_ADAPTER_ID, addressID, type)
276
276
  }
277
277
 
278
- let street: string | undefined
279
- let locality: string | undefined
278
+ let street: string | null = null
279
+ let locality: string | null = null
280
280
 
281
281
  for (const href of componentHrefs(address)) {
282
282
  const key = componentJoinKey(href)
@@ -299,13 +299,13 @@ function composeRow(
299
299
  // reads `1stOrder` while the reference's position states no level at all.
300
300
  }
301
301
 
302
- if (!locality) return undefined
302
+ if (!locality) return null
303
303
 
304
304
  const byType = designatorsByType(address)
305
305
  const house = dutchHouseNumber(byType)
306
306
  const postcode = designator(byType, "postalDeliveryIdentifier")
307
307
 
308
- if (!street && !postcode) return undefined
308
+ if (!street && !postcode) return null
309
309
 
310
310
  const components: CanonicalRow["components"] = {}
311
311
 
@@ -325,7 +325,7 @@ function composeRow(
325
325
 
326
326
  const rendered = formatAddressRow(components, "NL", { singleLine: true })
327
327
 
328
- if (!rendered) return undefined
328
+ if (!rendered) return null
329
329
 
330
330
  const { raw, components: aligned } = rendered
331
331
 
@@ -33,7 +33,7 @@
33
33
 
34
34
  import { APIClient, assertNoOGCServiceException } from "@mailwoman/core/api"
35
35
  import { ByteFormatter } from "@mailwoman/core/fs/formatters"
36
- import { tryStat } from "@mailwoman/core/fs/readers"
36
+ import { tryStat } from "@mailwoman/core/fs/readers/stat"
37
37
  import { makeDirectories } from "@mailwoman/core/fs/writers"
38
38
  import { sha256File } from "@mailwoman/core/hash"
39
39
  import { PathBuilder, type PathBuilderLike } from "path-ts"
@@ -44,12 +44,14 @@ import type { BaseFetchOptions, FetchSummary, SourceManifest } from "#tools/fetc
44
44
  import { downloadToFile, readManifest, writeManifest } from "#tools/fetch/download"
45
45
 
46
46
  /**
47
- * The ATOM download service for the theme, which holds the country's one entry.
47
+ * The ATOM download service for the theme.
48
+ * It holds the country's one entry.
48
49
  */
49
50
  export const NL_KADASTER_FEED_URL = "https://service.pdok.nl/kadaster/ad/atom/adressen_inspire_geharmoniseerd.xml"
50
51
 
51
52
  /**
52
- * The name the download is written under, which is what the adapter's `inputPath` states.
53
+ * The name the download is written under.
54
+ * The adapter's `inputPath` states this name.
53
55
  *
54
56
  * The publisher's own name for the file.
55
57
  * The adapter reads a `.gml.gz` by inflating it, so the suffix is load-bearing.
@@ -59,8 +61,8 @@ export const NL_KADASTER_DOWNLOAD_FILENAME = "addresses.gml.gz"
59
61
  /**
60
62
  * The attribution recorded in the manifest.
61
63
  *
62
- * CC0 1.0 reserves no act and owes no attribution clause, so this is the credit the
63
- * repository chooses to carry rather than a condition of the grant.
64
+ * CC0 1.0 reserves no act and owes no attribution clause.
65
+ * This attribution is a credit the repository chooses, rather than a condition of the grant.
64
66
  */
65
67
  export const NL_KADASTER_ATTRIBUTION = "Kadaster"
66
68
 
@@ -70,8 +72,9 @@ const SLUG = NL_KADASTER_ADAPTER_ID
70
72
  * What one run recorded.
71
73
  *
72
74
  * `feed_updated` is the entry's own `<updated>`.
73
- * A later run downloads again when that value changes, which is what the ATOM
74
- * pattern offers in place of an HTTP validator.
75
+ * A later run downloads again when that value changes.
76
+ *
77
+ * That is the freshness signal the ATOM feed offers in place of an HTTP validator.
75
78
  *
76
79
  * `rights` is the license URL the feed states, recorded so a change of terms is
77
80
  * visible in the artifact rather than only in the register.
@@ -108,7 +111,7 @@ export interface NLKadasterPublication {
108
111
  * The entry's own `<updated>`, or `null` where the feed states none.
109
112
  *
110
113
  * `updated` sits on the Atom entry as well as on the feed, and this reads
111
- * the entry that carried the data link.
114
+ * the entry that held the data link.
112
115
  * The feed reported `2026-09-02T11:45:47Z` when this reader was written.
113
116
  */
114
117
  feedUpdated: string | null
@@ -178,17 +181,18 @@ export async function readNLKadasterPublication(
178
181
  * Whether the file on disk is the one the feed currently offers.
179
182
  *
180
183
  * A skip requires the feed to state an `<updated>` value.
181
- * Where it states none, both sides read `null` and an equality test would hold,
182
- * which would keep a download of unknown age for as long as the feed stayed silent.
184
+ * Where it states none, both sides read `null` and an equality test would hold.
185
+ *
186
+ * A skip there would keep a download of unknown age for as long as the feed stayed silent.
183
187
  *
184
- * Downloading 782 MiB again is the slower error and the recoverable one.
188
+ * A second 782 MiB download is the slower error and the recoverable one.
185
189
  */
186
190
  export function nlKadasterPublicationIsRecorded(
187
191
  recorded: NLKadasterManifest,
188
192
  bytesOnDisk: number,
189
193
  publication: NLKadasterPublication
190
194
  ): boolean {
191
- if (publication.feedUpdated === null) return false
195
+ if (!publication.feedUpdated) return false
192
196
 
193
197
  return recorded.feed_updated === publication.feedUpdated && recorded.bytes === bytesOnDisk
194
198
  }
@@ -6,7 +6,7 @@
6
6
  * `matrikkelen`: Kartverket's `Matrikkelen - Adresse` CSV adapter, covering Norway and Svalbard.
7
7
  *
8
8
  * Input is a semicolon-separated CSV from Geonorge, published per area beside a whole-country
9
- * extract. Both carry the same 46 columns, so one reader serves either. The adapter reads
9
+ * extract. Both have the same 46 columns, so one reader serves either. The adapter reads
10
10
  * `adressenavn` as the street, `nummer` and `bokstav` as the house number, and `postnummer` with
11
11
  * `poststed` as the postcode and its postal place.
12
12
  *
@@ -55,8 +55,9 @@ export const MATRIKKELEN_COUNTRIES: readonly string[] = ["NO", "SJ"]
55
55
  * The subset of the 46 columns the adapter consults.
56
56
  *
57
57
  * The explicit shape catches a column rename early.
58
- * The first column's name carries a byte-order mark in the published file, and the
59
- * adapter reads `adresseId` instead, so no field here depends on that spelling.
58
+ * The first column's name has a byte-order mark in the published file.
59
+ *
60
+ * The adapter reads `adresseId` instead, so no field here depends on that spelling.
60
61
  */
61
62
  interface MatrikkelenRow {
62
63
  kommunenummer: string
@@ -111,8 +112,8 @@ export function createMatrikkelenAdapter(): CorpusAdapter {
111
112
 
112
113
  // A `matrikkeladresse` addresses a cadastral unit rather than a street, so its
113
114
  // `adresseTekst` reads as a farm name and a holding number, such as `Øvrabø, 124/1`.
114
- // It carries no street to align, and the mainland file holds 34,522 of
115
- // them against 2,568,832 `vegadresse` rows.
115
+ // It has no street to align, and the mainland file holds 34,522 of them
116
+ // against 2,568,832 `vegadresse` rows.
116
117
  if ((record.adressetype ?? "").trim() !== "vegadresse") {
117
118
  cadastral += 1
118
119