@mailwoman/corpus 10.3.0 → 10.5.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 (361) hide show
  1. package/README.md +17 -17
  2. package/data/PROVENANCE.md +287 -273
  3. package/data/address-source-register.json +545 -23
  4. package/data/license-decisions.json +120 -0
  5. package/data/licenses/PROVENANCE.md +5 -5
  6. package/data/licenses/cdla-permissive-2.0.md +6 -6
  7. package/data/licenses/geonames-publication.md +5 -5
  8. package/data/licenses/licence-ouverte-2.0.md +3 -3
  9. package/data/licenses/national-address-database.md +12 -12
  10. package/data/licenses/nlod-2.0.md +3 -3
  11. package/data/licenses/sirene-publication.md +13 -6
  12. package/data/licenses/whosonfirst-licenses.md +4 -4
  13. package/data/source-resolutions.json +46 -0
  14. package/data/training-manifests/v0.7.2-address-systems.effective.json +1169 -0
  15. package/data/training-manifests/v0.7.2-address-systems.json +550 -0
  16. package/lib/adapters/cordis/adapter.ts +9 -9
  17. package/lib/adapters/gleif/adapter.ts +7 -8
  18. package/lib/adapters/po-box/adapter.ts +1 -1
  19. package/lib/adapters/source-id.ts +1 -1
  20. package/lib/adapters.ts +4 -2
  21. package/lib/au/adapters/gnaf/adapter.ts +1 -1
  22. package/lib/be/adapters/brussels/adapter.ts +3 -3
  23. package/lib/be/adapters/vlaanderen/adapter.ts +1 -1
  24. package/lib/be/adapters/wallonie/adapter.ts +1 -1
  25. package/lib/build/align.ts +1 -1
  26. package/lib/build.ts +1 -1
  27. package/lib/cz/adapters/cuzk/adapter.ts +2 -2
  28. package/lib/cz/tools/fetch/cuzk.ts +6 -6
  29. package/lib/de/recipes/locale.ts +1 -1
  30. package/lib/dk/adapters/inspire/adapter.ts +1 -1
  31. package/lib/ee/tools/fetch/ads.ts +2 -2
  32. package/lib/es/adapters/bizkaia/adapter.ts +1 -1
  33. package/lib/es/adapters/navarra/adapter.ts +2 -2
  34. package/lib/es/cadastre.ts +2 -2
  35. package/lib/es/tools/fetch/bizkaia.ts +8 -8
  36. package/lib/es/tools/fetch/catastro.ts +6 -6
  37. package/lib/es/tools/fetch/navarra.ts +4 -4
  38. package/lib/fingerprints.ts +3 -3
  39. package/lib/fr/adapters/finess/adapter.ts +6 -5
  40. package/lib/fr/adapters/finess/voie-type.ts +1 -1
  41. package/lib/fr/tools/fetch/annuaire-education.ts +3 -3
  42. package/lib/gb/adapters/os-open/adapter.ts +453 -0
  43. package/lib/gb/constituent-country.ts +52 -0
  44. package/lib/gb/os-open/nearest-link.ts +169 -0
  45. package/lib/gb/os-open/open-names.ts +180 -0
  46. package/lib/gb/os-open/open-roads.ts +145 -0
  47. package/lib/gb/tools/fetch/os-open.ts +251 -0
  48. package/lib/inspire/address.ts +3 -3
  49. package/lib/international/recipes/locale.ts +41 -7
  50. package/lib/it/adapters/anac/adapter.ts +4 -3
  51. package/lib/jp/adapters/wof-admin/adapter.ts +2 -2
  52. package/lib/kr/adapters/juso/label-rows.ts +1 -1
  53. package/lib/kr/adapters/localdata/key-index.ts +2 -1
  54. package/lib/lu/adapters/bd-adresses/adapter.ts +1 -1
  55. package/lib/nl/adapters/kadaster/adapter.ts +2 -2
  56. package/lib/nl/tools/fetch/kadaster.ts +2 -2
  57. package/lib/parquet/shuffle.ts +2 -2
  58. package/lib/parquet/span-sql.ts +8 -6
  59. package/lib/parquet/streams.ts +1 -1
  60. package/lib/parquet/writers.ts +2 -2
  61. package/lib/pl/tools/fetch/emuia.ts +2 -2
  62. package/lib/recipes/scaffold.ts +2 -2
  63. package/lib/recipes/sources.ts +3 -3
  64. package/lib/recipes/sub/venue/render.ts +1 -1
  65. package/lib/recipes/sub/venue/sources.ts +4 -3
  66. package/lib/recipes/sub/venue.ts +4 -3
  67. package/lib/recipes/venue.ts +11 -11
  68. package/lib/registers.ts +7 -0
  69. package/lib/ro/adapters/retea-scolara/adapter.ts +2 -2
  70. package/lib/runner.ts +3 -3
  71. package/lib/sk/tools/fetch/inspire.ts +3 -3
  72. package/lib/source-register/effective-manifest.ts +14 -8
  73. package/lib/source-register/training-manifest.ts +30 -2
  74. package/lib/source-register/types.ts +2 -2
  75. package/lib/source-register.ts +1 -0
  76. package/lib/subvenue/harvest.ts +6 -5
  77. package/lib/subvenue/promotions.ts +3 -3
  78. package/lib/subvenue/surfaces.ts +1 -1
  79. package/lib/subvenue/table.ts +6 -6
  80. package/lib/surfaces/locale.ts +1 -1
  81. package/lib/synthesizers/anchor-absorption.ts +1 -1
  82. package/lib/synthesizers/boundary-stress.ts +3 -2
  83. package/lib/synthesizers/no-street.ts +1 -1
  84. package/lib/synthesizers/po-box.ts +1 -1
  85. package/lib/synthesizers/tail.ts +2 -2
  86. package/lib/test-kit/corpus-recipe.ts +1 -1
  87. package/lib/tools/align-canonical.ts +3 -2
  88. package/lib/tools/audit.ts +1 -1
  89. package/lib/tools/corpus-stats.ts +1 -1
  90. package/lib/tools/fetch/download/network.ts +1 -1
  91. package/lib/tools/fetch/geonames/dump.ts +1 -1
  92. package/lib/tools/fetch/gleif.ts +2 -2
  93. package/lib/tools/fetch/header.ts +1 -1
  94. package/lib/tools/fetch/inspire-addresses.ts +1 -1
  95. package/lib/tools/fetch/vlaanderen-ad.ts +1 -1
  96. package/lib/tools/fetch/wfs-harvest.ts +6 -6
  97. package/lib/tools/fetch/zip-archive.ts +2 -2
  98. package/lib/tools/fetch.ts +2 -0
  99. package/lib/tools/golden/expand.ts +1 -1
  100. package/lib/tools/golden/promote.ts +3 -3
  101. package/lib/tools/golden/relabel-street/directory.ts +2 -1
  102. package/lib/tools/lint/recipe-output/vocab.ts +2 -2
  103. package/lib/tools/lint/recipe-output.ts +1 -1
  104. package/lib/tools/migrate/source-names.ts +1 -1
  105. package/lib/tools/overlay/manifest.ts +62 -10
  106. package/lib/tools/overlay/split-slice.ts +2 -10
  107. package/lib/tools/postcode-triples.ts +2 -2
  108. package/lib/tools/sub/venue/head-nouns.ts +4 -3
  109. package/lib/types.ts +3 -3
  110. package/lib/us/adapters/state/tx-notaries/adapter.ts +1 -1
  111. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +2 -2
  112. package/lib/us/adapters/usgov/nad/adapter.ts +1 -1
  113. package/lib/us/adapters/usgov/nppes/adapter.ts +2 -2
  114. package/lib/us/synthesizers/intersection.ts +4 -4
  115. package/lib/us/synthesizers/street.ts +3 -3
  116. package/lib/us/tools/fetch/nad.ts +2 -2
  117. package/lib/utils/split.ts +59 -6
  118. package/lib/utils/wof-json.ts +1 -1
  119. package/out/adapters/cordis/adapter.d.ts +7 -7
  120. package/out/adapters/cordis/adapter.js +9 -9
  121. package/out/adapters/cordis/adapter.js.map +1 -1
  122. package/out/adapters/gleif/adapter.d.ts +7 -8
  123. package/out/adapters/gleif/adapter.d.ts.map +1 -1
  124. package/out/adapters/gleif/adapter.js +7 -8
  125. package/out/adapters/gleif/adapter.js.map +1 -1
  126. package/out/adapters/po-box/adapter.d.ts +1 -1
  127. package/out/adapters/source-id.d.ts +1 -1
  128. package/out/adapters/source-id.js +1 -1
  129. package/out/adapters.d.ts +2 -2
  130. package/out/adapters.d.ts.map +1 -1
  131. package/out/adapters.js +4 -2
  132. package/out/adapters.js.map +1 -1
  133. package/out/au/adapters/gnaf/adapter.js +1 -1
  134. package/out/be/adapters/brussels/adapter.d.ts +2 -2
  135. package/out/be/adapters/brussels/adapter.js +3 -3
  136. package/out/be/adapters/vlaanderen/adapter.d.ts +1 -1
  137. package/out/be/adapters/wallonie/adapter.d.ts +1 -1
  138. package/out/be/adapters/wallonie/adapter.js +1 -1
  139. package/out/build/align.d.ts +1 -1
  140. package/out/build.js +1 -1
  141. package/out/build.js.map +1 -1
  142. package/out/cz/adapters/cuzk/adapter.d.ts +2 -2
  143. package/out/cz/adapters/cuzk/adapter.js +2 -2
  144. package/out/cz/tools/fetch/cuzk.d.ts +2 -2
  145. package/out/cz/tools/fetch/cuzk.js +4 -4
  146. package/out/cz/tools/fetch/cuzk.js.map +1 -1
  147. package/out/de/recipes/locale.d.ts +1 -1
  148. package/out/de/recipes/locale.js +1 -1
  149. package/out/dk/adapters/inspire/adapter.js +1 -1
  150. package/out/ee/tools/fetch/ads.d.ts +2 -2
  151. package/out/ee/tools/fetch/ads.js +1 -1
  152. package/out/es/adapters/bizkaia/adapter.js +1 -1
  153. package/out/es/adapters/navarra/adapter.d.ts +2 -2
  154. package/out/es/adapters/navarra/adapter.js +2 -2
  155. package/out/es/cadastre.d.ts +2 -2
  156. package/out/es/cadastre.js +2 -2
  157. package/out/es/tools/fetch/bizkaia.d.ts +5 -5
  158. package/out/es/tools/fetch/bizkaia.js +6 -6
  159. package/out/es/tools/fetch/bizkaia.js.map +1 -1
  160. package/out/es/tools/fetch/catastro.d.ts +4 -4
  161. package/out/es/tools/fetch/catastro.js +2 -2
  162. package/out/es/tools/fetch/navarra.d.ts +2 -2
  163. package/out/es/tools/fetch/navarra.js +2 -2
  164. package/out/fingerprints.d.ts +3 -3
  165. package/out/fingerprints.js +3 -3
  166. package/out/fr/adapters/finess/adapter.d.ts +6 -5
  167. package/out/fr/adapters/finess/adapter.d.ts.map +1 -1
  168. package/out/fr/adapters/finess/adapter.js +6 -5
  169. package/out/fr/adapters/finess/adapter.js.map +1 -1
  170. package/out/fr/adapters/finess/voie-type.d.ts +1 -1
  171. package/out/fr/adapters/finess/voie-type.js +1 -1
  172. package/out/fr/tools/fetch/annuaire-education.d.ts +3 -3
  173. package/out/fr/tools/fetch/annuaire-education.js +3 -3
  174. package/out/gb/adapters/os-open/adapter.d.ts +165 -0
  175. package/out/gb/adapters/os-open/adapter.d.ts.map +1 -0
  176. package/out/gb/adapters/os-open/adapter.js +298 -0
  177. package/out/gb/adapters/os-open/adapter.js.map +1 -0
  178. package/out/gb/constituent-country.d.ts +36 -0
  179. package/out/gb/constituent-country.d.ts.map +1 -0
  180. package/out/gb/constituent-country.js +30 -0
  181. package/out/gb/constituent-country.js.map +1 -0
  182. package/out/gb/os-open/nearest-link.d.ts +73 -0
  183. package/out/gb/os-open/nearest-link.d.ts.map +1 -0
  184. package/out/gb/os-open/nearest-link.js +133 -0
  185. package/out/gb/os-open/nearest-link.js.map +1 -0
  186. package/out/gb/os-open/open-names.d.ts +92 -0
  187. package/out/gb/os-open/open-names.d.ts.map +1 -0
  188. package/out/gb/os-open/open-names.js +107 -0
  189. package/out/gb/os-open/open-names.js.map +1 -0
  190. package/out/gb/os-open/open-roads.d.ts +80 -0
  191. package/out/gb/os-open/open-roads.d.ts.map +1 -0
  192. package/out/gb/os-open/open-roads.js +79 -0
  193. package/out/gb/os-open/open-roads.js.map +1 -0
  194. package/out/gb/tools/fetch/os-open.d.ts +91 -0
  195. package/out/gb/tools/fetch/os-open.d.ts.map +1 -0
  196. package/out/gb/tools/fetch/os-open.js +166 -0
  197. package/out/gb/tools/fetch/os-open.js.map +1 -0
  198. package/out/inspire/address.d.ts +3 -3
  199. package/out/inspire/address.js +3 -3
  200. package/out/international/recipes/locale.d.ts +6 -0
  201. package/out/international/recipes/locale.d.ts.map +1 -1
  202. package/out/international/recipes/locale.js +29 -7
  203. package/out/international/recipes/locale.js.map +1 -1
  204. package/out/it/adapters/anac/adapter.d.ts +1 -1
  205. package/out/it/adapters/anac/adapter.d.ts.map +1 -1
  206. package/out/it/adapters/anac/adapter.js +4 -3
  207. package/out/it/adapters/anac/adapter.js.map +1 -1
  208. package/out/jp/adapters/wof-admin/adapter.d.ts +2 -2
  209. package/out/jp/adapters/wof-admin/adapter.js +2 -2
  210. package/out/kr/adapters/juso/label-rows.d.ts +1 -1
  211. package/out/kr/adapters/localdata/key-index.d.ts +2 -1
  212. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
  213. package/out/kr/adapters/localdata/key-index.js +2 -1
  214. package/out/kr/adapters/localdata/key-index.js.map +1 -1
  215. package/out/lu/adapters/bd-adresses/adapter.d.ts +1 -1
  216. package/out/lu/adapters/bd-adresses/adapter.js +1 -1
  217. package/out/nl/adapters/kadaster/adapter.js +2 -2
  218. package/out/nl/tools/fetch/kadaster.d.ts +2 -2
  219. package/out/nl/tools/fetch/kadaster.js +2 -2
  220. package/out/parquet/shuffle.d.ts +2 -2
  221. package/out/parquet/shuffle.js +2 -2
  222. package/out/parquet/span-sql.d.ts +8 -6
  223. package/out/parquet/span-sql.d.ts.map +1 -1
  224. package/out/parquet/span-sql.js +8 -6
  225. package/out/parquet/span-sql.js.map +1 -1
  226. package/out/parquet/streams.d.ts +1 -1
  227. package/out/parquet/writers.d.ts +2 -2
  228. package/out/parquet/writers.js +1 -1
  229. package/out/pl/tools/fetch/emuia.d.ts +2 -2
  230. package/out/recipes/scaffold.d.ts +2 -2
  231. package/out/recipes/sources.d.ts +2 -2
  232. package/out/recipes/sources.js +3 -3
  233. package/out/recipes/sources.js.map +1 -1
  234. package/out/recipes/sub/venue/render.d.ts +1 -1
  235. package/out/recipes/sub/venue/render.js +1 -1
  236. package/out/recipes/sub/venue/sources.d.ts +4 -3
  237. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  238. package/out/recipes/sub/venue/sources.js +4 -3
  239. package/out/recipes/sub/venue/sources.js.map +1 -1
  240. package/out/recipes/sub/venue.d.ts +3 -2
  241. package/out/recipes/sub/venue.d.ts.map +1 -1
  242. package/out/recipes/sub/venue.js +2 -2
  243. package/out/recipes/sub/venue.js.map +1 -1
  244. package/out/recipes/venue.d.ts +7 -6
  245. package/out/recipes/venue.d.ts.map +1 -1
  246. package/out/recipes/venue.js +11 -10
  247. package/out/recipes/venue.js.map +1 -1
  248. package/out/registers.d.ts +7 -0
  249. package/out/registers.d.ts.map +1 -1
  250. package/out/registers.js +7 -0
  251. package/out/registers.js.map +1 -1
  252. package/out/ro/adapters/retea-scolara/adapter.d.ts +2 -2
  253. package/out/ro/adapters/retea-scolara/adapter.js +2 -2
  254. package/out/runner.d.ts +3 -3
  255. package/out/runner.js +2 -2
  256. package/out/sk/tools/fetch/inspire.d.ts +3 -3
  257. package/out/sk/tools/fetch/inspire.js +1 -1
  258. package/out/source-register/effective-manifest.d.ts +11 -5
  259. package/out/source-register/effective-manifest.d.ts.map +1 -1
  260. package/out/source-register/effective-manifest.js +9 -4
  261. package/out/source-register/effective-manifest.js.map +1 -1
  262. package/out/source-register/training-manifest.d.ts +27 -0
  263. package/out/source-register/training-manifest.d.ts.map +1 -1
  264. package/out/source-register/training-manifest.js +13 -1
  265. package/out/source-register/training-manifest.js.map +1 -1
  266. package/out/source-register/types.d.ts +2 -2
  267. package/out/source-register.d.ts +1 -1
  268. package/out/source-register.d.ts.map +1 -1
  269. package/out/source-register.js +1 -1
  270. package/out/source-register.js.map +1 -1
  271. package/out/subvenue/harvest.d.ts +4 -3
  272. package/out/subvenue/harvest.d.ts.map +1 -1
  273. package/out/subvenue/harvest.js +6 -5
  274. package/out/subvenue/harvest.js.map +1 -1
  275. package/out/subvenue/promotions.d.ts +2 -2
  276. package/out/subvenue/promotions.js +3 -3
  277. package/out/subvenue/promotions.js.map +1 -1
  278. package/out/subvenue/surfaces.d.ts +1 -1
  279. package/out/subvenue/table.d.ts +6 -6
  280. package/out/subvenue/table.js +1 -1
  281. package/out/surfaces/locale.d.ts +1 -1
  282. package/out/surfaces/locale.js +1 -1
  283. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  284. package/out/synthesizers/boundary-stress.js +2 -1
  285. package/out/synthesizers/boundary-stress.js.map +1 -1
  286. package/out/synthesizers/tail.d.ts +2 -2
  287. package/out/synthesizers/tail.js +2 -2
  288. package/out/test-kit/corpus-recipe.d.ts +1 -1
  289. package/out/test-kit/corpus-recipe.js +1 -1
  290. package/out/tools/align-canonical.d.ts.map +1 -1
  291. package/out/tools/align-canonical.js +3 -2
  292. package/out/tools/align-canonical.js.map +1 -1
  293. package/out/tools/audit.js +1 -1
  294. package/out/tools/corpus-stats.d.ts +1 -1
  295. package/out/tools/fetch/download/network.d.ts +1 -1
  296. package/out/tools/fetch/download/network.js +1 -1
  297. package/out/tools/fetch/geonames/dump.d.ts +1 -1
  298. package/out/tools/fetch/geonames/dump.js +1 -1
  299. package/out/tools/fetch/gleif.d.ts +2 -2
  300. package/out/tools/fetch/gleif.js +1 -1
  301. package/out/tools/fetch/header.d.ts +1 -1
  302. package/out/tools/fetch/header.js +1 -1
  303. package/out/tools/fetch/inspire-addresses.d.ts +1 -1
  304. package/out/tools/fetch/vlaanderen-ad.d.ts +1 -1
  305. package/out/tools/fetch/wfs-harvest.d.ts +3 -3
  306. package/out/tools/fetch/wfs-harvest.js +4 -4
  307. package/out/tools/fetch/wfs-harvest.js.map +1 -1
  308. package/out/tools/fetch/zip-archive.d.ts +2 -2
  309. package/out/tools/fetch/zip-archive.js +2 -2
  310. package/out/tools/fetch.d.ts +2 -0
  311. package/out/tools/fetch.d.ts.map +1 -1
  312. package/out/tools/fetch.js +2 -0
  313. package/out/tools/fetch.js.map +1 -1
  314. package/out/tools/golden/expand.js +1 -1
  315. package/out/tools/golden/expand.js.map +1 -1
  316. package/out/tools/golden/promote.d.ts +1 -1
  317. package/out/tools/golden/promote.js +3 -3
  318. package/out/tools/golden/promote.js.map +1 -1
  319. package/out/tools/golden/relabel-street/directory.d.ts +2 -1
  320. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
  321. package/out/tools/golden/relabel-street/directory.js.map +1 -1
  322. package/out/tools/lint/recipe-output/vocab.js +2 -2
  323. package/out/tools/lint/recipe-output.d.ts +1 -1
  324. package/out/tools/migrate/source-names.d.ts +1 -1
  325. package/out/tools/overlay/manifest.d.ts +15 -2
  326. package/out/tools/overlay/manifest.d.ts.map +1 -1
  327. package/out/tools/overlay/manifest.js +41 -10
  328. package/out/tools/overlay/manifest.js.map +1 -1
  329. package/out/tools/overlay/split-slice.d.ts.map +1 -1
  330. package/out/tools/overlay/split-slice.js +2 -9
  331. package/out/tools/overlay/split-slice.js.map +1 -1
  332. package/out/tools/postcode-triples.d.ts +1 -1
  333. package/out/tools/postcode-triples.js +2 -2
  334. package/out/tools/postcode-triples.js.map +1 -1
  335. package/out/tools/sub/venue/head-nouns.d.ts +1 -1
  336. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
  337. package/out/tools/sub/venue/head-nouns.js +4 -3
  338. package/out/tools/sub/venue/head-nouns.js.map +1 -1
  339. package/out/types.d.ts +3 -3
  340. package/out/types.js +1 -1
  341. package/out/us/adapters/state/tx-notaries/adapter.d.ts +1 -1
  342. package/out/us/adapters/state/tx-notaries/adapter.js +1 -1
  343. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +1 -1
  344. package/out/us/adapters/usgov/irs-bmf/adapter.js +2 -2
  345. package/out/us/adapters/usgov/nad/adapter.d.ts +1 -1
  346. package/out/us/adapters/usgov/nad/adapter.js +1 -1
  347. package/out/us/adapters/usgov/nppes/adapter.d.ts +1 -1
  348. package/out/us/adapters/usgov/nppes/adapter.js +1 -1
  349. package/out/us/synthesizers/intersection.js +4 -4
  350. package/out/us/synthesizers/intersection.js.map +1 -1
  351. package/out/us/synthesizers/street.js +3 -3
  352. package/out/us/synthesizers/street.js.map +1 -1
  353. package/out/us/tools/fetch/nad.d.ts +2 -2
  354. package/out/us/tools/fetch/nad.js +2 -2
  355. package/out/utils/split.d.ts +21 -0
  356. package/out/utils/split.d.ts.map +1 -1
  357. package/out/utils/split.js +49 -5
  358. package/out/utils/split.js.map +1 -1
  359. package/out/utils/wof-json.d.ts +1 -1
  360. package/out/utils/wof-json.js +1 -1
  361. package/package.json +15 -14
package/lib/adapters.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  * what the adapter reads: BAN covers France and ten overseas jurisdictions, Matrikkelen covers
20
20
  * Norway and Svalbard, and Ryhti's one national file covers Åland beside the Finnish mainland.
21
21
  *
22
- * Flanders is the counter-case worth stating. Its adapter sits under `be` and covers the Flemish
22
+ * Flanders is the counter-case. Its adapter sits under `be` and covers the Flemish
23
23
  * Region only, because Brussels and Wallonia publish the INSPIRE theme through their own
24
24
  * services, so Belgium needs three adapters rather than one.
25
25
  *
@@ -64,6 +64,7 @@ import { ryhtiAdapter } from "#fi/adapters/ryhti/adapter"
64
64
  import { annuaireEducationAdapter } from "#fr/adapters/annuaire-education/adapter"
65
65
  import { banAdapter } from "#fr/adapters/ban/adapter"
66
66
  import { finessAdapter } from "#fr/adapters/finess/adapter"
67
+ import { gbOSOpenAdapter } from "#gb/adapters/os-open/adapter"
67
68
  import { itANACAdapter } from "#it/adapters/anac/adapter"
68
69
  import { bdAdressesAdapter } from "#lu/adapters/bd-adresses/adapter"
69
70
  import { varisAdapter } from "#lv/adapters/varis/adapter"
@@ -88,7 +89,7 @@ import { usgovNPPESAdapter } from "#us/adapters/usgov/nppes/adapter"
88
89
  /**
89
90
  * Built-in adapters.
90
91
  *
91
- * Order is significant, because `corpus build` iterates this list to drive every adapter in turn.
92
+ * Order matters, because `corpus build` iterates this list to drive every adapter in turn.
92
93
  * The order runs coarse-first (admin, then postcode), then street-level
93
94
  * (BAN FR, tiger US, OpenAddresses global), then adversarial-source (FCC BDC US, HRSA fqhc US).
94
95
  *
@@ -120,6 +121,7 @@ export const BUILTIN_ADAPTERS: readonly CorpusAdapter[] = [
120
121
  esBizkaiaAdapter,
121
122
  esGipuzkoaAdapter,
122
123
  esNavarraAdapter,
124
+ gbOSOpenAdapter,
123
125
  tigerAdapter,
124
126
  openaddressesAdapter,
125
127
  overtureAdapter,
@@ -45,7 +45,7 @@ interface GNAFTuple {
45
45
  }
46
46
 
47
47
  /**
48
- * The address layouts an AU address actually arrives in.
48
+ * The address layouts an AU address arrives in.
49
49
  *
50
50
  * The model already handles postcode-trailing (canonical); the two postcode-leading
51
51
  * forms are the ones it fails, so they show the change.
@@ -51,7 +51,7 @@
51
51
  * Nine addresses write `<ad:component xlink:href=""/>` in the postal-zone slot, so those nine state
52
52
  * no postcode: `BE.BRUSSELS.BRIC.ADM.ADPT.220623`, `.220631`, `.220635`, `.256972`, `.257005` and
53
53
  * four more, in Bruxelles and Schaerbeek. `componentHrefs` skips an empty href, so an unwary reader
54
- * yields those rows with the postcode simply missing. This adapter refuses them and
54
+ * yields those rows with no postcode and no error. This adapter refuses them and
55
55
  * counts them under {@link Refusals.noPostcode}, because a postcode the publisher left unstated is
56
56
  * not a postcode this repository may read as absent from the address.
57
57
  *
@@ -163,7 +163,7 @@ export const BRUSSELS_SOURCE_REGISTER = SourceRegister.BrusselsInspireAddresses
163
163
  export const BRUSSELS_COUNTRIES: readonly string[] = ["BE"]
164
164
 
165
165
  /**
166
- * The license label recorded on every row.
166
+ * Every emitted row records this license label.
167
167
  *
168
168
  * The register's source `be-property-building-3` elects `CC-BY-4.0` for Paradigm, read from
169
169
  * the `gmd:useConstraints` of ISO 19139 record `260abd6f-c5b4-4a79-aa80-d6c265002d65`.
@@ -224,7 +224,7 @@ const COMPONENT_TYPES = ["ad:ThoroughfareName", "ad:PostalDescriptor", "ad:Admin
224
224
  * An address reaching the reader with fewer readable references has written one of them empty.
225
225
  *
226
226
  * That count is how the nine postcode-less addresses are told apart from an
227
- * address whose reference simply does not resolve.
227
+ * address whose reference does not resolve.
228
228
  */
229
229
  const COMPONENTS_PER_ADDRESS = 7
230
230
 
@@ -282,7 +282,7 @@ export function componentResourceID(href: string): string | null {
282
282
  * A Flemish street name read apart from the homonym discriminator that follows it.
283
283
  *
284
284
  * `gn:text` on an `ad:ThoroughfareName` states more than the street name: the name,
285
- * an underscore, and a discriminator that is usually empty.
285
+ * an underscore, and a discriminator that is empty in most identifiers.
286
286
  * Over 20,000 values at twenty offsets, 19,979 end with `_` and the remaining
287
287
  * 21 have a discriminator after it.
288
288
  *
@@ -183,7 +183,7 @@ export const WALLONIE_SOURCE_REGISTER = SourceRegister.WallonieInspireAddresses
183
183
  export const WALLONIE_COUNTRIES: readonly string[] = ["BE"]
184
184
 
185
185
  /**
186
- * The license recorded on every row.
186
+ * Every emitted row records this license.
187
187
  *
188
188
  * The register's elected decision for `unchecked-access-free-be-service-public-de-wallonie-spw`
189
189
  * records `spdx: "CC-BY-4.0"`, and `electedLicenseLabel` answers the SPDX id when one is recorded.
@@ -90,7 +90,7 @@ export interface AlignPhaseResult {
90
90
  ineligibleSources: Map<string, readonly string[]>
91
91
 
92
92
  /**
93
- * The license cache used by this phase.
93
+ * The license cache this phase uses.
94
94
  *
95
95
  * Its `refusedValues()` method returns every value it refused.
96
96
  */
package/lib/build.ts CHANGED
@@ -104,7 +104,7 @@ export async function buildCorpus(opts: BuildCorpusOptions): Promise<BuildCorpus
104
104
  opts.onProgress?.("parquet", "writing parquet files")
105
105
 
106
106
  // Each split gets its own generator seeded from one base, so a split's row order does
107
- // not depend on how many rows the earlier splits happened to contain.
107
+ // not depend on the number of rows the earlier splits happened to contain.
108
108
  const shuffled = (path: PathBuilderLike, salt: number) =>
109
109
  shuffleWithinWindow(streamJSONL<LabeledRow>(path), makeMulberry32(shuffleSeed + salt), shuffleWindow)
110
110
 
@@ -15,7 +15,7 @@
15
15
  * to read. The `ad:component` hrefs look external, because ČÚZK writes an absolute WFS stored-query
16
16
  * URL on `services.cuzk.cz`. The `Id=` parameter of each one matches a `gml:id` in the file at hand.
17
17
  * Measured over `584282.xml`: 5,460 component references across 1,365 addresses, 0 of them reaching
18
- * outside the archive. Only `ad:parcel` and `ad:building` point at genuinely separate themes, and
18
+ * outside the archive. Only `ad:parcel` and `ad:building` point at separate themes, and
19
19
  * the adapter reads neither.
20
20
  *
21
21
  * ČÚZK states one condition of use and states it uniformly. Every one of the 6,259 `rights` elements
@@ -62,7 +62,7 @@ export const CZ_CUZK_ADAPTER_ID = "cz-cuzk"
62
62
  export const CZ_CUZK_COUNTRIES: readonly string[] = ["CZ"]
63
63
 
64
64
  /**
65
- * The license recorded on every row.
65
+ * Every emitted row records this license.
66
66
  *
67
67
  * INSPIRE's controlled value, in the English the register renders it to, because ČÚZK
68
68
  * names no license instrument and the register therefore writes no SPDX identifier.
@@ -123,11 +123,11 @@ export const CZ_CUZK_REQUEST_INTERVAL_MS = 250
123
123
  const ZIP_SIGNATURE = "PK"
124
124
 
125
125
  /**
126
- * How many archives are written between two manifest writes.
126
+ * The number of archives written between two manifest writes.
127
127
  *
128
128
  * The manifest is what makes an interrupted harvest resumable, and writing it
129
129
  * after every archive would rewrite a 6,258-entry document 6,258 times.
130
- * At this interval an interruption re-fetches at most this many archives that are already on disk.
130
+ * At this interval an interruption re-fetches at most this number of archives that are already on disk.
131
131
  */
132
132
  const MANIFEST_INTERVAL = 25
133
133
 
@@ -352,7 +352,7 @@ export interface CzCuzkHarvestManifest extends SourceCollectionManifest {
352
352
  */
353
353
  projection: CzCuzkProjection
354
354
  /**
355
- * How many municipalities the service document listed when this manifest was written.
355
+ * The number of municipalities the service document listed when this manifest was written.
356
356
  *
357
357
  * The denominator for `files`, read from the feed on each run rather than fixed here.
358
358
  */
@@ -379,7 +379,7 @@ export interface HarvestCzCuzkOptions {
379
379
  */
380
380
  municipalities?: readonly string[]
381
381
  /**
382
- * Stop after this many municipalities, counting the ones already on disk.
382
+ * Stop after this number of municipalities, counting the ones already on disk.
383
383
  *
384
384
  * A bounded run rather than all 6,258.
385
385
  */
@@ -407,7 +407,7 @@ export interface HarvestCzCuzkOptions {
407
407
  /**
408
408
  * Whether the archive recorded for one municipality is still the one the feed now describes.
409
409
  *
410
- * Three conditions, and the first is what saves 6,258 requests: the service
410
+ * Three conditions must hold, and the first is what saves 6,258 requests: the service
411
411
  * document states the same modification time it stated when the file was fetched,
412
412
  * the file is still there, and it is still the length that was recorded for it.
413
413
  */
@@ -451,7 +451,7 @@ export async function harvestCzCuzk(
451
451
 
452
452
  // MARK: Read the service document
453
453
  //
454
- // One request, and it states the modification time of every archive the service offers.
454
+ // One request states the modification time of every archive the service offers.
455
455
 
456
456
  report?.(`=== ${SLUG}: reading ${CZ_CUZK_SERVICE_FEED_URL}`)
457
457
 
@@ -15,7 +15,7 @@
15
15
  * Two registers are absent from the OA tuples. A comma-free single line (`Neusser Str. 12 Nippes 50733
16
16
  * Köln`) segments as one unit at stage 2. With one segment, the placetype-pair prior never fires.
17
17
  * The model then reads `Nippes` as a second street. The one-value-per-tag projection deletes it.
18
- * `--comma-free-fraction` renders that many native-order rows with `" "` as the line separator. OA
18
+ * `--comma-free-fraction` renders that share of native-order rows with `" "` as the line separator. OA
19
19
  * rows also lack a district, so `--ortsteil-fraction` rows borrow a WOF Ortsteil of the tuple's
20
20
  * own locality as `dependent_locality`. The German spelling is recovered from the `names` table
21
21
  * ({@link ortsteilSurface}) because WOF's `spr.name` for DE neighborhoods is the ascii-folded label.
@@ -93,7 +93,7 @@ export const DK_INSPIRE_COUNTRIES: readonly string[] = ["DK"]
93
93
  export const DK_INSPIRE_REQUIRED_TABLES: readonly string[] = ["address", "postaldescriptor", "thoroughfarename"]
94
94
 
95
95
  /**
96
- * How many rows Kysely buffers per chunk while streaming the join.
96
+ * The number of rows Kysely buffers per chunk while streaming the join.
97
97
  */
98
98
  const STREAM_CHUNK_ROWS = 2000
99
99
 
@@ -76,7 +76,7 @@ export const EE_ADS_SORT_BY = "gml_id"
76
76
  * Features per page.
77
77
  *
78
78
  * The service's `CountDefault` is 1,000,000 and it honors `count=10000`, which is where the page
79
- * size is set: a 10,000-feature page is 31,198,909 bytes, and a larger page buys fewer requests
79
+ * size is set: a 10,000-feature page is 31,198,909 bytes, and a larger page needs fewer requests
80
80
  * at the cost of holding a larger body in memory and losing more work when one request fails.
81
81
  */
82
82
  export const EE_ADS_PAGE_SIZE = 10_000
@@ -135,7 +135,7 @@ export interface HarvestADSOptions {
135
135
  */
136
136
  pageSize?: number
137
137
  /**
138
- * Stop once the manifest holds this many pages, for a probe rather than a full harvest.
138
+ * Stop once the manifest holds this number of pages, for a probe rather than a full harvest.
139
139
  */
140
140
  maxPages?: number
141
141
  signal?: AbortSignal
@@ -164,7 +164,7 @@ const MUNICIPALITY_LEVEL = "3rdOrder"
164
164
  const HOUSE_NUMBER_TYPE = "buildingIdentifier"
165
165
 
166
166
  /**
167
- * How many dot-separated fields a designator has.
167
+ * The number of dot-separated fields a designator has.
168
168
  *
169
169
  * Municipality, street, number: `48.001.00026.003` splits the municipality code across two.
170
170
  */
@@ -14,8 +14,8 @@
14
14
  * no such mapping and this adapter claims none. It reads one archive or a directory of them. A
15
15
  * caller harvests all 272 by pointing it at the directory.
16
16
  *
17
- * This publisher is read entirely from its references' titles, and that is what separates it from
18
- * every other INSPIRE reader here. Its own file publishes no `AD:ThoroughfareName`,
17
+ * This publisher is read entirely from its references' titles. No other INSPIRE reader
18
+ * here reads its addresses that way. Its own file publishes no `AD:ThoroughfareName`,
19
19
  * `AD:PostalDescriptor` or `AD:AdminUnitName` feature at all: partition 1 holds 29 distinct element
20
20
  * names across 115 addresses and none of them is a component feature. Each address instead holds
21
21
  * six `AD:component` references whose `xlink:title` states the value:
@@ -72,8 +72,8 @@ export function spanishHouseNumber(
72
72
  * `ES.SDGC.PD.55.101.` and `ES.GFA.PD.059.`, against no feature of that id.
73
73
  *
74
74
  * Those truncated references are the only unresolvable ones measured in either file.
75
- * A reader taking every unresolved reference as an absence would also swallow a genuinely
76
- * broken join, so the two are separated here and every other unresolved reference raises.
75
+ * A reader taking every unresolved reference as an absence would also swallow a broken join,
76
+ * so the two are separated here and every other unresolved reference raises.
77
77
  */
78
78
  export function referenceStatesNoValue(key: string): boolean {
79
79
  return key.trim().endsWith(".")
@@ -16,10 +16,10 @@
16
16
  * archives therefore reads every address in the province without its street, its postcode or
17
17
  * its municipality. This harvest acquires both services into one directory for that reason.
18
18
  *
19
- * Each component type is read in one request, and that is the only way this service serves it. Its
19
+ * Each component type is read in one request. This service serves a type no other way. Its
20
20
  * capabilities document states `ImplementsResultPaging` as `FALSE` and `CountDefault` as `1000`, so
21
21
  * a reader that paged a type would receive the first page again. The harvest therefore asks
22
- * `RESULTTYPE=hits` for the type's count and then asks for that many features in one `GetFeature`,
22
+ * `RESULTTYPE=hits` for the type's count and then asks for that number of features in one `GetFeature`,
23
23
  * and {@linkcode fetchBizkaiaComponentDocument} raises where the document returns fewer than the
24
24
  * count. A truncated component document is the failure that would otherwise reach the adapter as
25
25
  * an unresolved reference per address.
@@ -121,11 +121,11 @@ export const ES_BIZKAIA_REQUEST_INTERVAL_MS = 250
121
121
  const BODY_TIMEOUT_MS = 600_000
122
122
 
123
123
  /**
124
- * How many archives are written between two manifest writes.
124
+ * The number of archives written between two manifest writes.
125
125
  *
126
126
  * The manifest is what makes an interrupted harvest resumable, and writing it
127
127
  * after every archive would rewrite the whole document once per municipality.
128
- * At this interval an interruption re-fetches at most this many archives already on disk.
128
+ * At this interval an interruption re-fetches at most this number of archives already on disk.
129
129
  */
130
130
  const MANIFEST_INTERVAL = 25
131
131
 
@@ -306,7 +306,7 @@ export interface ESBizkaiaHarvestManifest extends SourceCollectionManifest {
306
306
  */
307
307
  feed_updated: string | null
308
308
  /**
309
- * How many municipalities the service document listed when this manifest was written.
309
+ * The number of municipalities the service document listed when this manifest was written.
310
310
  *
311
311
  * The denominator for `files`, read from the feed on each run rather than fixed here.
312
312
  */
@@ -332,7 +332,7 @@ export interface HarvestESBizkaiaOptions {
332
332
  */
333
333
  municipalities?: readonly string[]
334
334
  /**
335
- * Stop after this many municipalities, counting the ones already on disk.
335
+ * Stop after this number of municipalities, counting the ones already on disk.
336
336
  */
337
337
  limit?: number
338
338
  /**
@@ -390,7 +390,7 @@ async function archiveIsCurrent(
390
390
  /**
391
391
  * Reads one component feature type whole and writes it beside the archives.
392
392
  *
393
- * Two requests per type: `RESULTTYPE=hits` for the count, then one `GetFeature` for that many features.
393
+ * Two requests per type: `RESULTTYPE=hits` for the count, then one `GetFeature` for that number of features.
394
394
  * `COUNT` is asked one above the stated count, so a service whose hits response
395
395
  * undercounts its own matches answers with more features than it claimed
396
396
  * rather than with exactly the number the harvest asked for.
@@ -487,7 +487,7 @@ export async function harvestESBizkaia(
487
487
 
488
488
  // MARK: Read the service document
489
489
  //
490
- // One request, and it states the version of every archive the service offers.
490
+ // One request states the version of every archive the service offers.
491
491
 
492
492
  report?.(`=== ${ES_BIZKAIA_ADAPTER_ID}: reading ${ES_BIZKAIA_SERVICE_URL}`)
493
493
 
@@ -105,11 +105,11 @@ export const ES_CATASTRO_REQUEST_INTERVAL_MS = 250
105
105
  const SLUG = ES_CATASTRO_ADAPTER_ID
106
106
 
107
107
  /**
108
- * How many archives are written between two manifest writes.
108
+ * The number of archives written between two manifest writes.
109
109
  *
110
110
  * The manifest is what makes an interrupted harvest resumable, and writing it after every
111
111
  * archive would rewrite a document with one entry per municipality once per municipality.
112
- * At this interval an interruption re-fetches at most this many archives that are already on disk.
112
+ * At this interval an interruption re-fetches at most this number of archives that are already on disk.
113
113
  */
114
114
  const MANIFEST_INTERVAL = 25
115
115
 
@@ -416,18 +416,18 @@ export interface ESCatastroArchiveEntry extends SourceManifest {
416
416
  */
417
417
  export interface ESCatastroHarvestManifest extends SourceCollectionManifest {
418
418
  /**
419
- * How many territorial offices the service document listed, read from the feed on each run.
419
+ * The number of territorial offices the service document listed, read from the feed on each run.
420
420
  */
421
421
  provinces_listed: number
422
422
  /**
423
- * How many of those offices this run read a province feed for.
423
+ * The number of those offices this run read a province feed for.
424
424
  *
425
425
  * A bounded run reads fewer, so this is the denominator for `municipalities_listed`
426
426
  * rather than a count of the country.
427
427
  */
428
428
  provinces_harvested: number
429
429
  /**
430
- * How many municipalities the province feeds this run read listed between them.
430
+ * The number of municipalities the province feeds this run read listed between them.
431
431
  */
432
432
  municipalities_listed: number
433
433
  files: ESCatastroArchiveEntry[]
@@ -453,7 +453,7 @@ export interface HarvestESCatastroOptions {
453
453
  */
454
454
  municipalities?: readonly string[]
455
455
  /**
456
- * Stop after this many municipalities, counting the ones already on disk.
456
+ * Stop after this number of municipalities, counting the ones already on disk.
457
457
  */
458
458
  limit?: number
459
459
  /**
@@ -91,10 +91,10 @@ export const ES_NAVARRA_REQUEST_INTERVAL_MS = 250
91
91
  const SLUG = ES_NAVARRA_ADAPTER_ID
92
92
 
93
93
  /**
94
- * How many archives are written between two manifest writes.
94
+ * The number of archives written between two manifest writes.
95
95
  *
96
96
  * The manifest is what makes an interrupted harvest resumable.
97
- * At this interval an interruption re-fetches at most this many archives that are already on disk.
97
+ * At this interval an interruption re-fetches at most this number of archives that are already on disk.
98
98
  */
99
99
  const MANIFEST_INTERVAL = 25
100
100
 
@@ -217,7 +217,7 @@ export interface ESNavarraArchiveEntry extends SourceManifest {
217
217
  */
218
218
  export interface ESNavarraHarvestManifest extends SourceCollectionManifest {
219
219
  /**
220
- * How many partitions the service document listed when this manifest was written.
220
+ * The number of partitions the service document listed when this manifest was written.
221
221
  *
222
222
  * The denominator for `files`, read from the feed on each run rather than fixed here.
223
223
  */
@@ -238,7 +238,7 @@ export interface HarvestESNavarraOptions {
238
238
  */
239
239
  partitions?: readonly string[]
240
240
  /**
241
- * Stop after this many partitions, counting the ones already on disk.
241
+ * Stop after this number of partitions, counting the ones already on disk.
242
242
  */
243
243
  limit?: number
244
244
  /**
@@ -4,8 +4,8 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  * @file A fixed-capacity set of 128-bit fingerprints in one flat `Uint32Array`.
6
6
  *
7
- * The adapter runner deduplicates by holding every key it has seen. A V8 `Set` refuses its 16,777,217th
8
- * entry outright, so the runner capped itself at 10,000,000 keys. Three adapters passed that cap in
7
+ * The adapter runner deduplicates by holding every key it has seen. A V8 `Set` throws on its 16,777,217th
8
+ * entry, so the runner capped itself at 10,000,000 keys. Three adapters passed that cap in
9
9
  * `v0.7.0-de-holdout`. The duplicate census over that build measured what the cap costs: of the
10
10
  * 2,491,399 duplicate rows the three adapters wrote, 1,490,992 duplicate a key first seen after the cap.
11
11
  * A membership test on a capped set cannot refuse those rows.
@@ -77,7 +77,7 @@ export class FingerprintSet {
77
77
  }
78
78
 
79
79
  /**
80
- * How many keys this table accepts before {@linkcode add} throws.
80
+ * The number of keys this table accepts before {@linkcode add} throws.
81
81
  */
82
82
  get limit(): number {
83
83
  return this.#limit
@@ -32,8 +32,8 @@
32
32
  *
33
33
  * Every FINESS establishment is an organization's site: a hospital, a pharmacy, a laboratory, a
34
34
  * service office. Three categories house the people they serve in a private dwelling. In `462`
35
- * Lieux de vie et d'accueil the staff live with the people they receive. A `238` Centre d'accueil
36
- * familial spécialisé places patients with host families, as a `236` Service de placement familial
35
+ * Lieux de vie et d'accueil the staff live with the people they receive. A FINESS category `238`
36
+ * establishment, specialized family reception, places patients with host families, as a `236` Service de placement familial
37
37
  * does. An address in those three can be a family's home, so they are refused under
38
38
  * {@linkcode FinessRefusal.FamilyPlacement}, as is an establishment whose name states family
39
39
  * placement or a lieu de vie under another category. A row whose street type is TRE-R35's `CHEZ`,
@@ -56,7 +56,7 @@
56
56
  *
57
57
  * A digit in `voie` is refused under {@linkcode FinessRefusal.StreetDigitUnplaced} unless the digits
58
58
  * name the street, as a numbered route (`NATIONALE 2`) or a date (`DU 22 MAI`) does. The number has
59
- * its own field, so a digit left in the name is a box, a building or a door: `VALLÉE 3 BP 208`,
59
+ * its own field, so a digit left in the street name is a box, a building or a door: `VALLÉE 3 BP 208`,
60
60
  * `DIAKA BAT A4 PORTE 2`.
61
61
  *
62
62
  * ## The lieu-dit and box line, and the routing line
@@ -166,8 +166,9 @@ export const FR_FINESS_COUNTRIES: readonly string[] = [
166
166
  ]
167
167
 
168
168
  /**
169
- * The establishment categories whose address can be a private dwelling: lieux de vie et
170
- * d'accueil, centres d'accueil familial spécialisés and services de placement familial.
169
+ * The establishment categories whose address can be a private dwelling: FINESS
170
+ * categories `462` (lieux de vie et d'accueil), `238` (specialized family reception)
171
+ * and `236` (services de placement familial).
171
172
  */
172
173
  export const FINESS_FAMILY_PLACEMENT_CATEGORIES: ReadonlySet<string> = new Set(["236", "238", "462"])
173
174
 
@@ -41,7 +41,7 @@ import { decomposeFrStreet } from "#fr/street-decompose"
41
41
  *
42
42
  * `VAL` keeps the code as its word.
43
43
  * TRE-R35 displays it as `Vallée, vallon`, two words the code does not choose between,
44
- * and `Val` is itself the written word of many French place names.
44
+ * and `Val` is itself the written word in French place names such as `Val-d'Isère`.
45
45
  */
46
46
  export const TRE_R35_VOIE_TYPES: Readonly<Record<string, string | null>> = {
47
47
  ANSE: "anse",
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * Two checks keep a short transfer from reading as a small directory. The records endpoint is asked
17
17
  * for the `total_count` of the same filter before the export, and the written file must hold exactly
18
- * that many lines. A mismatch removes the file and fails the fetch. A re-run compares the catalog
18
+ * that number of lines. A mismatch removes the file and fails the fetch. A re-run compares the catalog
19
19
  * record's `modified` against the manifest and makes no transfer when they agree and the file is on
20
20
  * disk at the recorded length.
21
21
  */
@@ -75,7 +75,7 @@ export function annuaireExportURL(): string {
75
75
  }
76
76
 
77
77
  /**
78
- * The records URL that answers how many records the overseas filter selects.
78
+ * The records URL that answers with the count of records the overseas filter selects.
79
79
  */
80
80
  export function annuaireCountURL(): string {
81
81
  return `${ANNUAIRE_EDUCATION_API_URL}/records?where=${encodeURIComponent(annuaireOverseasFilter())}&limit=0`
@@ -135,7 +135,7 @@ export async function readAnnuaireCatalog(
135
135
  }
136
136
 
137
137
  /**
138
- * Read how many records the overseas filter selects.
138
+ * Read the count of records the overseas filter selects.
139
139
  *
140
140
  * @throws When the endpoint answers no `total_count`.
141
141
  */