@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.
- package/data/licenses/cdla-permissive-2.0.md +1 -1
- package/lib/adapters/cordis/adapter.ts +13 -7
- package/lib/adapters/dedup-key.ts +1 -1
- package/lib/adapters/geonames/adapter.ts +1 -1
- package/lib/adapters/gleif/adapter.ts +17 -16
- package/lib/adapters/libpostal-dictionary.ts +0 -2
- package/lib/adapters/openaddresses/adapter.ts +4 -3
- package/lib/adapters/osm/adapter.ts +22 -21
- package/lib/adapters/po-box/adapter.ts +10 -5
- package/lib/adapters/registry.ts +4 -4
- package/lib/adapters/source-id.ts +2 -2
- package/lib/adapters/street-line.ts +7 -6
- package/lib/adapters/wof/admin/json/adapter.ts +2 -2
- package/lib/adapters/wof/json-rows.ts +2 -1
- package/lib/adapters/wof/postalcode-json/adapter.ts +6 -2
- package/lib/adapters.ts +5 -5
- package/lib/au/adapters/gnaf/adapter.ts +1 -1
- package/lib/be/adapters/brussels/adapter.ts +22 -22
- package/lib/be/adapters/vlaanderen/adapter.ts +54 -57
- package/lib/be/adapters/wallonie/adapter.ts +17 -17
- package/lib/be/tools/fetch/brussels.ts +13 -10
- package/lib/be/tools/fetch/wallonie.ts +8 -7
- package/lib/build/adapters.ts +2 -1
- package/lib/build/align.ts +5 -4
- package/lib/build/checkpoint.ts +5 -3
- package/lib/build/eligibility.ts +3 -3
- package/lib/build/types.ts +8 -6
- package/lib/cz/adapters/cuzk/adapter.ts +41 -38
- package/lib/cz/tools/fetch/cuzk.ts +42 -31
- package/lib/de/recipes/locale.ts +1 -1
- package/lib/dk/adapters/inspire/adapter.ts +38 -38
- package/lib/dk/tools/fetch/inspire.ts +16 -14
- package/lib/ee/adapters/ads/adapter.ts +26 -32
- package/lib/ee/tools/fetch/ads.ts +10 -8
- package/lib/es/adapters/bizkaia/adapter.ts +47 -47
- package/lib/es/adapters/catastro/adapter.ts +36 -34
- package/lib/es/adapters/gipuzkoa/adapter.ts +38 -45
- package/lib/es/adapters/navarra/adapter.ts +28 -27
- package/lib/es/cadastre.ts +31 -31
- package/lib/es/tools/fetch/bizkaia.ts +40 -36
- package/lib/es/tools/fetch/catastro.ts +51 -40
- package/lib/es/tools/fetch/gipuzkoa.ts +13 -11
- package/lib/es/tools/fetch/navarra.ts +33 -25
- package/lib/fi/adapters/ryhti/adapter.ts +22 -26
- package/lib/fi/tools/fetch/ryhti.ts +31 -31
- package/lib/fr/adapters/annuaire-education/adapter.ts +13 -11
- package/lib/fr/adapters/ban/adapter.ts +6 -6
- package/lib/fr/adapters/finess/adapter.ts +16 -15
- package/lib/fr/adapters/finess/voie-type.ts +4 -3
- package/lib/fr/insee-country.ts +2 -2
- package/lib/fr/recipes/lieudit.ts +8 -6
- package/lib/fr/tools/fetch/annuaire-education.ts +11 -8
- package/lib/fr/tools/fetch/ban.ts +3 -2
- package/lib/fr/tools/fetch/finess.ts +14 -13
- package/lib/inspire/address.ts +86 -78
- package/lib/inspire/errors.ts +9 -8
- package/lib/inspire/stream.ts +29 -26
- package/lib/international/recipes/locale.ts +13 -9
- package/lib/it/adapters/anac/adapter.ts +51 -46
- package/lib/it/tools/fetch/anac.ts +22 -25
- package/lib/jp/adapters/wof-admin/adapter.ts +2 -6
- package/lib/jp/tools/fetch/houjin.ts +3 -3
- package/lib/kr/adapters/localdata/permit-rows.ts +1 -1
- package/lib/kr/tools/fetch/juso.ts +1 -1
- package/lib/kr/tools/fetch/localdata.ts +2 -2
- package/lib/lu/adapters/bd-adresses/adapter.ts +10 -10
- package/lib/lu/tools/fetch/bd-adresses.ts +15 -13
- package/lib/lv/adapters/varis/adapter.ts +24 -23
- package/lib/lv/tools/fetch/varis.ts +3 -2
- package/lib/nl/adapters/kadaster/adapter.ts +29 -29
- package/lib/nl/tools/fetch/kadaster.ts +16 -12
- package/lib/no/adapters/matrikkelen/adapter.ts +6 -5
- package/lib/no/tools/fetch/matrikkelen.ts +59 -47
- package/lib/parquet/duckdb.ts +7 -4
- package/lib/parquet/readers.ts +3 -3
- package/lib/parquet/schema.ts +1 -1
- package/lib/parquet/writers.ts +3 -2
- package/lib/pl/adapters/emuia/adapter.ts +12 -12
- package/lib/pl/tools/fetch/emuia.ts +10 -9
- package/lib/recipes/bare/postcode.ts +1 -1
- package/lib/recipes/boundary-stress.ts +1 -1
- package/lib/recipes/house-venue.ts +7 -3
- package/lib/recipes/intersection.ts +2 -2
- package/lib/recipes/po/box/cedex/recipe.ts +3 -3
- package/lib/recipes/po/box/cedex/sources.ts +13 -1
- package/lib/recipes/scaffold.ts +31 -21
- package/lib/recipes/sources.ts +16 -3
- package/lib/recipes/street/bare.ts +2 -2
- package/lib/recipes/street.ts +3 -1
- package/lib/recipes/sub/venue/context.ts +2 -0
- package/lib/recipes/sub/venue/render.ts +1 -1
- package/lib/recipes/sub/venue/sources.ts +24 -29
- package/lib/recipes/sub/venue.ts +12 -18
- package/lib/recipes/trailing-region.ts +6 -2
- package/lib/recipes/unit.ts +3 -3
- package/lib/recipes/venue.ts +347 -0
- package/lib/recipes.ts +4 -2
- package/lib/registers.ts +8 -6
- package/lib/ro/adapters/retea-scolara/adapter.ts +5 -5
- package/lib/ro/tools/fetch/retea-scolara.ts +1 -1
- package/lib/runner.ts +4 -3
- package/lib/sg/recipes/register.ts +1 -1
- package/lib/sg/tools/fetch/acra.ts +3 -3
- package/lib/sk/adapters/inspire/adapter.ts +25 -27
- package/lib/sk/tools/fetch/inspire.ts +15 -14
- package/lib/source-register/effective-manifest.ts +3 -3
- package/lib/source-register/register.ts +3 -3
- package/lib/source-register/training-manifest.ts +1 -1
- package/lib/source-register/types.ts +12 -13
- package/lib/subvenue/promotions.ts +1 -1
- package/lib/subvenue/table.ts +4 -4
- package/lib/surfaces/locale.ts +2 -0
- package/lib/synthesizers/anchor-absorption.ts +2 -1
- package/lib/synthesizers/boundary-stress.ts +20 -26
- package/lib/synthesizers/house-venue.ts +26 -30
- package/lib/synthesizers/no-street.ts +2 -1
- package/lib/synthesizers/po-box.ts +6 -3
- package/lib/synthesizers/tail.ts +55 -0
- package/lib/synthesizers/utils.ts +19 -2
- package/lib/test-kit.ts +2 -2
- package/lib/tools/audit.ts +7 -5
- package/lib/tools/corpus-stats.ts +1 -1
- package/lib/tools/fetch/atom.ts +10 -10
- package/lib/tools/fetch/cordis.ts +11 -9
- package/lib/tools/fetch/download/manifest.ts +2 -1
- package/lib/tools/fetch/download/network.ts +4 -4
- package/lib/tools/fetch/download/retry.ts +4 -4
- package/lib/tools/fetch/geonames/dump.ts +5 -3
- package/lib/tools/fetch/geonames/postal.ts +2 -2
- package/lib/tools/fetch/gleif.ts +6 -4
- package/lib/tools/fetch/header.ts +8 -6
- package/lib/tools/fetch/inspire-addresses.ts +41 -36
- package/lib/tools/fetch/openaddresses.ts +1 -1
- package/lib/tools/fetch/vlaanderen-ad.ts +17 -17
- package/lib/tools/fetch/wfs-harvest.ts +39 -28
- package/lib/tools/fetch.ts +0 -42
- package/lib/tools/golden/expand.ts +8 -8
- package/lib/tools/golden/promote.ts +12 -8
- package/lib/tools/golden/relabel-street/directory.ts +7 -6
- package/lib/tools/golden/relabel-street/row.ts +7 -6
- package/lib/tools/ingest-csv.ts +3 -3
- package/lib/tools/jsonl-to-parquet.ts +1 -1
- package/lib/tools/lint/recipe-output/vocab.ts +10 -5
- package/lib/tools/lint/recipe-output.ts +26 -8
- package/lib/tools/overlay/kryptonite.ts +4 -3
- package/lib/tools/overlay/manifest.ts +4 -2
- package/lib/tools/overlay/merge-source.ts +2 -1
- package/lib/tools/overlay/split-slice.ts +2 -2
- package/lib/tools/overlay/translit.ts +6 -4
- package/lib/tools/overture-subvenue.ts +1 -1
- package/lib/tools/postcode-triples.ts +5 -4
- package/lib/tools/source-register/build.ts +17 -14
- package/lib/tools/sub/venue/lexicon.ts +4 -8
- package/lib/tw/tools/fetch/gcis.ts +4 -4
- package/lib/types.ts +4 -3
- package/lib/us/adapters/state/hi-schools/workbook.ts +1 -1
- package/lib/us/adapters/usgov/nad/adapter.ts +11 -11
- package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +4 -4
- package/lib/us/fips-state.ts +2 -2
- package/lib/{synthesizers → us/synthesizers}/intersection.ts +12 -13
- package/lib/{synthesizers → us/synthesizers}/street.ts +16 -15
- package/lib/us/tools/fetch/imls-pls.ts +1 -1
- package/lib/us/tools/fetch/nad.ts +7 -7
- package/lib/us/tools/fetch/nppes.ts +5 -5
- package/lib/us/tools/fetch/state/hi-schools.ts +3 -2
- package/lib/us/tools/fetch/tiger-full.ts +1 -1
- package/lib/utils/align.ts +13 -10
- package/lib/utils/golden.ts +2 -2
- package/lib/utils/license.ts +3 -3
- package/lib/utils/split.ts +19 -15
- package/lib/utils/tokenize.ts +7 -26
- package/lib/utils/wof-json.ts +4 -4
- package/out/adapters/cordis/adapter.d.ts +5 -3
- package/out/adapters/cordis/adapter.d.ts.map +1 -1
- package/out/adapters/cordis/adapter.js +13 -7
- package/out/adapters/cordis/adapter.js.map +1 -1
- package/out/adapters/dedup-key.d.ts +1 -1
- package/out/adapters/dedup-key.js +1 -1
- package/out/adapters/geonames/adapter.js +1 -1
- package/out/adapters/geonames/adapter.js.map +1 -1
- package/out/adapters/gleif/adapter.d.ts +9 -9
- package/out/adapters/gleif/adapter.d.ts.map +1 -1
- package/out/adapters/gleif/adapter.js +15 -14
- package/out/adapters/gleif/adapter.js.map +1 -1
- package/out/adapters/libpostal-dictionary.d.ts +0 -2
- package/out/adapters/libpostal-dictionary.d.ts.map +1 -1
- package/out/adapters/libpostal-dictionary.js +0 -2
- package/out/adapters/libpostal-dictionary.js.map +1 -1
- package/out/adapters/openaddresses/adapter.d.ts +3 -2
- package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/adapters/openaddresses/adapter.js +1 -1
- package/out/adapters/openaddresses/adapter.js.map +1 -1
- package/out/adapters/osm/adapter.d.ts +17 -16
- package/out/adapters/osm/adapter.d.ts.map +1 -1
- package/out/adapters/osm/adapter.js +10 -9
- package/out/adapters/osm/adapter.js.map +1 -1
- package/out/adapters/po-box/adapter.d.ts +6 -3
- package/out/adapters/po-box/adapter.d.ts.map +1 -1
- package/out/adapters/po-box/adapter.js +4 -2
- package/out/adapters/po-box/adapter.js.map +1 -1
- package/out/adapters/registry.d.ts +3 -3
- package/out/adapters/registry.d.ts.map +1 -1
- package/out/adapters/registry.js +1 -1
- package/out/adapters/registry.js.map +1 -1
- package/out/adapters/source-id.d.ts +2 -2
- package/out/adapters/source-id.js +2 -2
- package/out/adapters/street-line.d.ts +7 -6
- package/out/adapters/street-line.d.ts.map +1 -1
- package/out/adapters/street-line.js +7 -6
- package/out/adapters/street-line.js.map +1 -1
- package/out/adapters/wof/admin/json/adapter.js +1 -1
- package/out/adapters/wof/admin/json/adapter.js.map +1 -1
- package/out/adapters/wof/json-rows.d.ts +2 -1
- package/out/adapters/wof/json-rows.d.ts.map +1 -1
- package/out/adapters/wof/json-rows.js.map +1 -1
- package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -1
- package/out/adapters/wof/postalcode-json/adapter.js +5 -1
- package/out/adapters/wof/postalcode-json/adapter.js.map +1 -1
- package/out/adapters.d.ts +5 -5
- package/out/adapters.js +5 -5
- package/out/au/adapters/gnaf/adapter.js +1 -1
- package/out/au/adapters/gnaf/adapter.js.map +1 -1
- package/out/be/adapters/brussels/adapter.d.ts +9 -9
- package/out/be/adapters/brussels/adapter.d.ts.map +1 -1
- package/out/be/adapters/brussels/adapter.js +21 -21
- package/out/be/adapters/brussels/adapter.js.map +1 -1
- package/out/be/adapters/vlaanderen/adapter.d.ts +34 -37
- package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -1
- package/out/be/adapters/vlaanderen/adapter.js +40 -38
- package/out/be/adapters/vlaanderen/adapter.js.map +1 -1
- package/out/be/adapters/wallonie/adapter.d.ts +2 -2
- package/out/be/adapters/wallonie/adapter.js +17 -17
- package/out/be/adapters/wallonie/adapter.js.map +1 -1
- package/out/be/tools/fetch/brussels.d.ts +11 -8
- package/out/be/tools/fetch/brussels.d.ts.map +1 -1
- package/out/be/tools/fetch/brussels.js +10 -8
- package/out/be/tools/fetch/brussels.js.map +1 -1
- package/out/be/tools/fetch/wallonie.d.ts +6 -5
- package/out/be/tools/fetch/wallonie.d.ts.map +1 -1
- package/out/be/tools/fetch/wallonie.js +4 -4
- package/out/be/tools/fetch/wallonie.js.map +1 -1
- package/out/build/adapters.d.ts.map +1 -1
- package/out/build/adapters.js +2 -1
- package/out/build/adapters.js.map +1 -1
- package/out/build/align.d.ts +3 -2
- package/out/build/align.d.ts.map +1 -1
- package/out/build/align.js +2 -2
- package/out/build/align.js.map +1 -1
- package/out/build/checkpoint.d.ts +1 -1
- package/out/build/checkpoint.d.ts.map +1 -1
- package/out/build/checkpoint.js +4 -2
- package/out/build/checkpoint.js.map +1 -1
- package/out/build/eligibility.d.ts +2 -2
- package/out/build/eligibility.js +3 -3
- package/out/build/eligibility.js.map +1 -1
- package/out/build/types.d.ts +8 -6
- package/out/build/types.d.ts.map +1 -1
- package/out/cz/adapters/cuzk/adapter.d.ts +14 -14
- package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -1
- package/out/cz/adapters/cuzk/adapter.js +38 -35
- package/out/cz/adapters/cuzk/adapter.js.map +1 -1
- package/out/cz/tools/fetch/cuzk.d.ts +31 -22
- package/out/cz/tools/fetch/cuzk.d.ts.map +1 -1
- package/out/cz/tools/fetch/cuzk.js +21 -19
- package/out/cz/tools/fetch/cuzk.js.map +1 -1
- package/out/de/recipes/locale.js +1 -1
- package/out/de/recipes/locale.js.map +1 -1
- package/out/dk/adapters/inspire/adapter.d.ts +32 -33
- package/out/dk/adapters/inspire/adapter.d.ts.map +1 -1
- package/out/dk/adapters/inspire/adapter.js +38 -38
- package/out/dk/adapters/inspire/adapter.js.map +1 -1
- package/out/dk/tools/fetch/inspire.d.ts +6 -5
- package/out/dk/tools/fetch/inspire.d.ts.map +1 -1
- package/out/dk/tools/fetch/inspire.js +15 -13
- package/out/dk/tools/fetch/inspire.js.map +1 -1
- package/out/ee/adapters/ads/adapter.d.ts +19 -26
- package/out/ee/adapters/ads/adapter.d.ts.map +1 -1
- package/out/ee/adapters/ads/adapter.js +22 -28
- package/out/ee/adapters/ads/adapter.js.map +1 -1
- package/out/ee/tools/fetch/ads.d.ts +3 -3
- package/out/ee/tools/fetch/ads.d.ts.map +1 -1
- package/out/ee/tools/fetch/ads.js +10 -8
- package/out/ee/tools/fetch/ads.js.map +1 -1
- package/out/es/adapters/bizkaia/adapter.d.ts +28 -28
- package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -1
- package/out/es/adapters/bizkaia/adapter.js +43 -43
- package/out/es/adapters/bizkaia/adapter.js.map +1 -1
- package/out/es/adapters/catastro/adapter.d.ts +22 -23
- package/out/es/adapters/catastro/adapter.d.ts.map +1 -1
- package/out/es/adapters/catastro/adapter.js +35 -33
- package/out/es/adapters/catastro/adapter.js.map +1 -1
- package/out/es/adapters/gipuzkoa/adapter.d.ts +31 -38
- package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -1
- package/out/es/adapters/gipuzkoa/adapter.js +40 -47
- package/out/es/adapters/gipuzkoa/adapter.js.map +1 -1
- package/out/es/adapters/navarra/adapter.d.ts +20 -19
- package/out/es/adapters/navarra/adapter.d.ts.map +1 -1
- package/out/es/adapters/navarra/adapter.js +23 -22
- package/out/es/adapters/navarra/adapter.js.map +1 -1
- package/out/es/cadastre.d.ts +21 -20
- package/out/es/cadastre.d.ts.map +1 -1
- package/out/es/cadastre.js +19 -21
- package/out/es/cadastre.js.map +1 -1
- package/out/es/tools/fetch/bizkaia.d.ts +28 -25
- package/out/es/tools/fetch/bizkaia.d.ts.map +1 -1
- package/out/es/tools/fetch/bizkaia.js +25 -24
- package/out/es/tools/fetch/bizkaia.js.map +1 -1
- package/out/es/tools/fetch/catastro.d.ts +28 -20
- package/out/es/tools/fetch/catastro.d.ts.map +1 -1
- package/out/es/tools/fetch/catastro.js +36 -31
- package/out/es/tools/fetch/catastro.js.map +1 -1
- package/out/es/tools/fetch/gipuzkoa.d.ts +11 -9
- package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -1
- package/out/es/tools/fetch/gipuzkoa.js +9 -8
- package/out/es/tools/fetch/gipuzkoa.js.map +1 -1
- package/out/es/tools/fetch/navarra.d.ts +20 -15
- package/out/es/tools/fetch/navarra.d.ts.map +1 -1
- package/out/es/tools/fetch/navarra.js +21 -16
- package/out/es/tools/fetch/navarra.js.map +1 -1
- package/out/fi/adapters/ryhti/adapter.d.ts +16 -20
- package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -1
- package/out/fi/adapters/ryhti/adapter.js +21 -25
- package/out/fi/adapters/ryhti/adapter.js.map +1 -1
- package/out/fi/tools/fetch/ryhti.d.ts +24 -24
- package/out/fi/tools/fetch/ryhti.d.ts.map +1 -1
- package/out/fi/tools/fetch/ryhti.js +21 -24
- package/out/fi/tools/fetch/ryhti.js.map +1 -1
- package/out/fr/adapters/annuaire-education/adapter.d.ts +8 -8
- package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -1
- package/out/fr/adapters/annuaire-education/adapter.js +13 -11
- package/out/fr/adapters/annuaire-education/adapter.js.map +1 -1
- package/out/fr/adapters/ban/adapter.d.ts +4 -4
- package/out/fr/adapters/ban/adapter.js +6 -6
- package/out/fr/adapters/ban/adapter.js.map +1 -1
- package/out/fr/adapters/finess/adapter.d.ts +12 -11
- package/out/fr/adapters/finess/adapter.d.ts.map +1 -1
- package/out/fr/adapters/finess/adapter.js +16 -15
- package/out/fr/adapters/finess/adapter.js.map +1 -1
- package/out/fr/adapters/finess/voie-type.d.ts +2 -2
- package/out/fr/adapters/finess/voie-type.d.ts.map +1 -1
- package/out/fr/adapters/finess/voie-type.js +4 -3
- package/out/fr/adapters/finess/voie-type.js.map +1 -1
- package/out/fr/insee-country.d.ts +2 -2
- package/out/fr/insee-country.js +2 -2
- package/out/fr/recipes/lieudit.d.ts.map +1 -1
- package/out/fr/recipes/lieudit.js +5 -4
- package/out/fr/recipes/lieudit.js.map +1 -1
- package/out/fr/tools/fetch/annuaire-education.d.ts +7 -4
- package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -1
- package/out/fr/tools/fetch/annuaire-education.js +9 -7
- package/out/fr/tools/fetch/annuaire-education.js.map +1 -1
- package/out/fr/tools/fetch/ban.d.ts +1 -1
- package/out/fr/tools/fetch/ban.d.ts.map +1 -1
- package/out/fr/tools/fetch/ban.js +3 -2
- package/out/fr/tools/fetch/ban.js.map +1 -1
- package/out/fr/tools/fetch/finess.d.ts +5 -5
- package/out/fr/tools/fetch/finess.d.ts.map +1 -1
- package/out/fr/tools/fetch/finess.js +13 -12
- package/out/fr/tools/fetch/finess.js.map +1 -1
- package/out/inspire/address.d.ts +62 -52
- package/out/inspire/address.d.ts.map +1 -1
- package/out/inspire/address.js +71 -60
- package/out/inspire/address.js.map +1 -1
- package/out/inspire/errors.d.ts +9 -8
- package/out/inspire/errors.d.ts.map +1 -1
- package/out/inspire/errors.js +7 -6
- package/out/inspire/errors.js.map +1 -1
- package/out/inspire/stream.d.ts +25 -22
- package/out/inspire/stream.d.ts.map +1 -1
- package/out/inspire/stream.js +10 -12
- package/out/inspire/stream.js.map +1 -1
- package/out/international/recipes/locale.d.ts +2 -2
- package/out/international/recipes/locale.d.ts.map +1 -1
- package/out/international/recipes/locale.js +11 -7
- package/out/international/recipes/locale.js.map +1 -1
- package/out/it/adapters/anac/adapter.d.ts +45 -43
- package/out/it/adapters/anac/adapter.d.ts.map +1 -1
- package/out/it/adapters/anac/adapter.js +48 -43
- package/out/it/adapters/anac/adapter.js.map +1 -1
- package/out/it/tools/fetch/anac.d.ts +16 -19
- package/out/it/tools/fetch/anac.d.ts.map +1 -1
- package/out/it/tools/fetch/anac.js +20 -23
- package/out/it/tools/fetch/anac.js.map +1 -1
- package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -1
- package/out/jp/adapters/wof-admin/adapter.js.map +1 -1
- package/out/jp/tools/fetch/houjin.js +2 -2
- package/out/jp/tools/fetch/houjin.js.map +1 -1
- package/out/kr/adapters/localdata/permit-rows.js +1 -1
- package/out/kr/adapters/localdata/permit-rows.js.map +1 -1
- package/out/kr/tools/fetch/juso.d.ts +1 -1
- package/out/kr/tools/fetch/localdata.d.ts +1 -1
- package/out/kr/tools/fetch/localdata.js +1 -1
- package/out/kr/tools/fetch/localdata.js.map +1 -1
- package/out/lu/adapters/bd-adresses/adapter.d.ts +9 -9
- package/out/lu/adapters/bd-adresses/adapter.js +10 -10
- package/out/lu/tools/fetch/bd-adresses.d.ts +11 -9
- package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -1
- package/out/lu/tools/fetch/bd-adresses.js +11 -11
- package/out/lu/tools/fetch/bd-adresses.js.map +1 -1
- package/out/lv/adapters/varis/adapter.d.ts +24 -23
- package/out/lv/adapters/varis/adapter.d.ts.map +1 -1
- package/out/lv/adapters/varis/adapter.js +24 -23
- package/out/lv/adapters/varis/adapter.js.map +1 -1
- package/out/lv/tools/fetch/varis.d.ts +2 -1
- package/out/lv/tools/fetch/varis.d.ts.map +1 -1
- package/out/lv/tools/fetch/varis.js +1 -1
- package/out/lv/tools/fetch/varis.js.map +1 -1
- package/out/nl/adapters/kadaster/adapter.d.ts +12 -12
- package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -1
- package/out/nl/adapters/kadaster/adapter.js +22 -23
- package/out/nl/adapters/kadaster/adapter.js.map +1 -1
- package/out/nl/tools/fetch/kadaster.d.ts +14 -10
- package/out/nl/tools/fetch/kadaster.d.ts.map +1 -1
- package/out/nl/tools/fetch/kadaster.js +12 -9
- package/out/nl/tools/fetch/kadaster.js.map +1 -1
- package/out/no/adapters/matrikkelen/adapter.d.ts +1 -1
- package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -1
- package/out/no/adapters/matrikkelen/adapter.js +3 -3
- package/out/no/adapters/matrikkelen/adapter.js.map +1 -1
- package/out/no/tools/fetch/matrikkelen.d.ts +50 -38
- package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -1
- package/out/no/tools/fetch/matrikkelen.js +44 -36
- package/out/no/tools/fetch/matrikkelen.js.map +1 -1
- package/out/parquet/duckdb.d.ts +7 -4
- package/out/parquet/duckdb.d.ts.map +1 -1
- package/out/parquet/duckdb.js +2 -1
- package/out/parquet/duckdb.js.map +1 -1
- package/out/parquet/readers.js +3 -3
- package/out/parquet/readers.js.map +1 -1
- package/out/parquet/schema.js +1 -1
- package/out/parquet/schema.js.map +1 -1
- package/out/parquet/writers.d.ts +1 -1
- package/out/parquet/writers.d.ts.map +1 -1
- package/out/parquet/writers.js +2 -1
- package/out/parquet/writers.js.map +1 -1
- package/out/pl/adapters/emuia/adapter.d.ts +8 -8
- package/out/pl/adapters/emuia/adapter.js +12 -12
- package/out/pl/adapters/emuia/adapter.js.map +1 -1
- package/out/pl/tools/fetch/emuia.d.ts +5 -4
- package/out/pl/tools/fetch/emuia.d.ts.map +1 -1
- package/out/pl/tools/fetch/emuia.js +10 -9
- package/out/pl/tools/fetch/emuia.js.map +1 -1
- package/out/recipes/bare/postcode.js +1 -1
- package/out/recipes/bare/postcode.js.map +1 -1
- package/out/recipes/boundary-stress.js +1 -1
- package/out/recipes/boundary-stress.js.map +1 -1
- package/out/recipes/house-venue.d.ts.map +1 -1
- package/out/recipes/house-venue.js +6 -3
- package/out/recipes/house-venue.js.map +1 -1
- package/out/recipes/intersection.js +2 -2
- package/out/recipes/intersection.js.map +1 -1
- package/out/recipes/po/box/cedex/recipe.js +2 -1
- package/out/recipes/po/box/cedex/recipe.js.map +1 -1
- package/out/recipes/po/box/cedex/sources.d.ts +8 -2
- package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/sources.js +1 -1
- package/out/recipes/po/box/cedex/sources.js.map +1 -1
- package/out/recipes/scaffold.d.ts +28 -19
- package/out/recipes/scaffold.d.ts.map +1 -1
- package/out/recipes/scaffold.js +3 -2
- package/out/recipes/scaffold.js.map +1 -1
- package/out/recipes/sources.d.ts +1 -1
- package/out/recipes/sources.d.ts.map +1 -1
- package/out/recipes/sources.js +15 -2
- package/out/recipes/sources.js.map +1 -1
- package/out/recipes/street/bare.js +2 -2
- package/out/recipes/street/bare.js.map +1 -1
- package/out/recipes/street.d.ts.map +1 -1
- package/out/recipes/street.js +3 -1
- package/out/recipes/street.js.map +1 -1
- package/out/recipes/sub/venue/context.d.ts.map +1 -1
- package/out/recipes/sub/venue/context.js +2 -0
- package/out/recipes/sub/venue/context.js.map +1 -1
- package/out/recipes/sub/venue/render.js +1 -1
- package/out/recipes/sub/venue/render.js.map +1 -1
- package/out/recipes/sub/venue/sources.d.ts +6 -3
- package/out/recipes/sub/venue/sources.d.ts.map +1 -1
- package/out/recipes/sub/venue/sources.js +16 -20
- package/out/recipes/sub/venue/sources.js.map +1 -1
- package/out/recipes/sub/venue.d.ts +2 -5
- package/out/recipes/sub/venue.d.ts.map +1 -1
- package/out/recipes/sub/venue.js +10 -14
- package/out/recipes/sub/venue.js.map +1 -1
- package/out/recipes/trailing-region.d.ts.map +1 -1
- package/out/recipes/trailing-region.js +6 -1
- package/out/recipes/trailing-region.js.map +1 -1
- package/out/recipes/unit.js +2 -2
- package/out/recipes/unit.js.map +1 -1
- package/out/recipes/venue.d.ts +119 -0
- package/out/recipes/venue.d.ts.map +1 -0
- package/out/recipes/venue.js +245 -0
- package/out/recipes/venue.js.map +1 -0
- package/out/recipes.d.ts +1 -1
- package/out/recipes.d.ts.map +1 -1
- package/out/recipes.js +3 -1
- package/out/recipes.js.map +1 -1
- package/out/registers.d.ts +8 -6
- package/out/registers.d.ts.map +1 -1
- package/out/registers.js +8 -6
- package/out/registers.js.map +1 -1
- package/out/ro/adapters/retea-scolara/adapter.d.ts +5 -5
- package/out/ro/adapters/retea-scolara/adapter.js +5 -5
- package/out/ro/tools/fetch/retea-scolara.js +1 -1
- package/out/ro/tools/fetch/retea-scolara.js.map +1 -1
- package/out/runner.d.ts +3 -2
- package/out/runner.d.ts.map +1 -1
- package/out/runner.js +1 -1
- package/out/runner.js.map +1 -1
- package/out/sg/recipes/register.js +1 -1
- package/out/sg/recipes/register.js.map +1 -1
- package/out/sg/tools/fetch/acra.js +2 -2
- package/out/sg/tools/fetch/acra.js.map +1 -1
- package/out/sk/adapters/inspire/adapter.d.ts +5 -5
- package/out/sk/adapters/inspire/adapter.d.ts.map +1 -1
- package/out/sk/adapters/inspire/adapter.js +18 -18
- package/out/sk/adapters/inspire/adapter.js.map +1 -1
- package/out/sk/tools/fetch/inspire.d.ts +11 -10
- package/out/sk/tools/fetch/inspire.d.ts.map +1 -1
- package/out/sk/tools/fetch/inspire.js +15 -14
- package/out/sk/tools/fetch/inspire.js.map +1 -1
- package/out/source-register/effective-manifest.js +3 -3
- package/out/source-register/effective-manifest.js.map +1 -1
- package/out/source-register/register.d.ts +2 -2
- package/out/source-register/register.d.ts.map +1 -1
- package/out/source-register/register.js +2 -2
- package/out/source-register/register.js.map +1 -1
- package/out/source-register/training-manifest.d.ts +1 -1
- package/out/source-register/types.d.ts +12 -13
- package/out/source-register/types.d.ts.map +1 -1
- package/out/source-register/types.js +2 -2
- package/out/source-register/types.js.map +1 -1
- package/out/subvenue/promotions.d.ts +1 -1
- package/out/subvenue/promotions.js +1 -1
- package/out/subvenue/table.d.ts +4 -4
- package/out/subvenue/table.js +3 -3
- package/out/surfaces/locale.d.ts.map +1 -1
- package/out/surfaces/locale.js +2 -0
- package/out/surfaces/locale.js.map +1 -1
- package/out/synthesizers/anchor-absorption.d.ts +2 -1
- package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
- package/out/synthesizers/anchor-absorption.js.map +1 -1
- package/out/synthesizers/boundary-stress.d.ts +1 -1
- package/out/synthesizers/boundary-stress.d.ts.map +1 -1
- package/out/synthesizers/boundary-stress.js +20 -23
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/house-venue.d.ts +3 -2
- package/out/synthesizers/house-venue.d.ts.map +1 -1
- package/out/synthesizers/house-venue.js +24 -26
- package/out/synthesizers/house-venue.js.map +1 -1
- package/out/synthesizers/no-street.d.ts.map +1 -1
- package/out/synthesizers/no-street.js.map +1 -1
- package/out/synthesizers/po-box.d.ts +4 -2
- package/out/synthesizers/po-box.d.ts.map +1 -1
- package/out/synthesizers/po-box.js.map +1 -1
- package/out/synthesizers/tail.d.ts +36 -0
- package/out/synthesizers/tail.d.ts.map +1 -0
- package/out/synthesizers/tail.js +32 -0
- package/out/synthesizers/tail.js.map +1 -0
- package/out/synthesizers/utils.d.ts +2 -1
- package/out/synthesizers/utils.d.ts.map +1 -1
- package/out/synthesizers/utils.js +17 -1
- package/out/synthesizers/utils.js.map +1 -1
- package/out/test-kit.js +2 -2
- package/out/test-kit.js.map +1 -1
- package/out/tools/audit.d.ts +2 -1
- package/out/tools/audit.d.ts.map +1 -1
- package/out/tools/audit.js +4 -3
- package/out/tools/audit.js.map +1 -1
- package/out/tools/corpus-stats.js +1 -1
- package/out/tools/corpus-stats.js.map +1 -1
- package/out/tools/fetch/atom.d.ts +8 -8
- package/out/tools/fetch/atom.d.ts.map +1 -1
- package/out/tools/fetch/atom.js +7 -8
- package/out/tools/fetch/atom.js.map +1 -1
- package/out/tools/fetch/cordis.d.ts +4 -3
- package/out/tools/fetch/cordis.d.ts.map +1 -1
- package/out/tools/fetch/cordis.js +9 -7
- package/out/tools/fetch/cordis.js.map +1 -1
- package/out/tools/fetch/download/manifest.d.ts.map +1 -1
- package/out/tools/fetch/download/manifest.js +2 -1
- package/out/tools/fetch/download/manifest.js.map +1 -1
- package/out/tools/fetch/download/network.d.ts +4 -4
- package/out/tools/fetch/download/retry.js +4 -4
- package/out/tools/fetch/download/retry.js.map +1 -1
- package/out/tools/fetch/geonames/dump.d.ts +3 -2
- package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
- package/out/tools/fetch/geonames/dump.js +2 -1
- package/out/tools/fetch/geonames/dump.js.map +1 -1
- package/out/tools/fetch/geonames/postal.d.ts +2 -2
- package/out/tools/fetch/gleif.d.ts +3 -2
- package/out/tools/fetch/gleif.d.ts.map +1 -1
- package/out/tools/fetch/gleif.js +6 -4
- package/out/tools/fetch/gleif.js.map +1 -1
- package/out/tools/fetch/header.d.ts +7 -5
- package/out/tools/fetch/header.d.ts.map +1 -1
- package/out/tools/fetch/header.js +8 -6
- package/out/tools/fetch/header.js.map +1 -1
- package/out/tools/fetch/inspire-addresses.d.ts +32 -27
- package/out/tools/fetch/inspire-addresses.d.ts.map +1 -1
- package/out/tools/fetch/inspire-addresses.js +25 -24
- package/out/tools/fetch/inspire-addresses.js.map +1 -1
- package/out/tools/fetch/openaddresses.js +1 -1
- package/out/tools/fetch/openaddresses.js.map +1 -1
- package/out/tools/fetch/vlaanderen-ad.d.ts +5 -5
- package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -1
- package/out/tools/fetch/vlaanderen-ad.js +16 -16
- package/out/tools/fetch/vlaanderen-ad.js.map +1 -1
- package/out/tools/fetch/wfs-harvest.d.ts +26 -16
- package/out/tools/fetch/wfs-harvest.d.ts.map +1 -1
- package/out/tools/fetch/wfs-harvest.js +21 -18
- package/out/tools/fetch/wfs-harvest.js.map +1 -1
- package/out/tools/fetch.d.ts +0 -41
- package/out/tools/fetch.d.ts.map +1 -1
- package/out/tools/fetch.js +0 -41
- package/out/tools/fetch.js.map +1 -1
- package/out/tools/golden/expand.d.ts +7 -7
- package/out/tools/golden/expand.js +1 -1
- package/out/tools/golden/expand.js.map +1 -1
- package/out/tools/golden/promote.d.ts +2 -2
- package/out/tools/golden/promote.d.ts.map +1 -1
- package/out/tools/golden/promote.js +9 -6
- package/out/tools/golden/promote.js.map +1 -1
- package/out/tools/golden/relabel-street/directory.d.ts +4 -4
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/directory.js +3 -2
- package/out/tools/golden/relabel-street/directory.js.map +1 -1
- package/out/tools/golden/relabel-street/row.d.ts +4 -3
- package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/row.js +3 -3
- package/out/tools/golden/relabel-street/row.js.map +1 -1
- package/out/tools/ingest-csv.js +3 -3
- package/out/tools/ingest-csv.js.map +1 -1
- package/out/tools/jsonl-to-parquet.d.ts +1 -1
- package/out/tools/lint/recipe-output/vocab.d.ts +10 -5
- package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -1
- package/out/tools/lint/recipe-output/vocab.js.map +1 -1
- package/out/tools/lint/recipe-output.d.ts +8 -8
- package/out/tools/lint/recipe-output.d.ts.map +1 -1
- package/out/tools/lint/recipe-output.js +17 -0
- package/out/tools/lint/recipe-output.js.map +1 -1
- package/out/tools/overlay/kryptonite.d.ts +2 -2
- package/out/tools/overlay/kryptonite.d.ts.map +1 -1
- package/out/tools/overlay/kryptonite.js +2 -1
- package/out/tools/overlay/kryptonite.js.map +1 -1
- package/out/tools/overlay/manifest.d.ts +2 -1
- package/out/tools/overlay/manifest.d.ts.map +1 -1
- package/out/tools/overlay/manifest.js +2 -1
- package/out/tools/overlay/manifest.js.map +1 -1
- package/out/tools/overlay/merge-source.d.ts +2 -1
- package/out/tools/overlay/merge-source.d.ts.map +1 -1
- package/out/tools/overlay/merge-source.js.map +1 -1
- package/out/tools/overlay/split-slice.d.ts +1 -1
- package/out/tools/overlay/split-slice.js +1 -1
- package/out/tools/overlay/split-slice.js.map +1 -1
- package/out/tools/overlay/translit.d.ts +4 -3
- package/out/tools/overlay/translit.d.ts.map +1 -1
- package/out/tools/overlay/translit.js +2 -1
- package/out/tools/overlay/translit.js.map +1 -1
- package/out/tools/overture-subvenue.d.ts +1 -1
- package/out/tools/overture-subvenue.d.ts.map +1 -1
- package/out/tools/postcode-triples.d.ts +1 -1
- package/out/tools/postcode-triples.d.ts.map +1 -1
- package/out/tools/postcode-triples.js +4 -3
- package/out/tools/postcode-triples.js.map +1 -1
- package/out/tools/source-register/build.d.ts +10 -8
- package/out/tools/source-register/build.d.ts.map +1 -1
- package/out/tools/source-register/build.js +10 -8
- package/out/tools/source-register/build.js.map +1 -1
- package/out/tools/sub/venue/lexicon.d.ts +2 -6
- package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
- package/out/tools/sub/venue/lexicon.js +2 -6
- package/out/tools/sub/venue/lexicon.js.map +1 -1
- package/out/tw/tools/fetch/gcis.js +3 -3
- package/out/tw/tools/fetch/gcis.js.map +1 -1
- package/out/types.d.ts +4 -3
- package/out/types.d.ts.map +1 -1
- package/out/types.js.map +1 -1
- package/out/us/adapters/state/hi-schools/workbook.d.ts +1 -1
- package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -1
- package/out/us/adapters/state/hi-schools/workbook.js.map +1 -1
- package/out/us/adapters/usgov/nad/adapter.js +6 -6
- package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +2 -2
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
- package/out/us/fips-state.d.ts +2 -2
- package/out/us/fips-state.d.ts.map +1 -1
- package/out/us/fips-state.js.map +1 -1
- package/out/us/synthesizers/intersection.d.ts.map +1 -0
- package/out/{synthesizers → us/synthesizers}/intersection.js +13 -9
- package/out/us/synthesizers/intersection.js.map +1 -0
- package/out/{synthesizers → us/synthesizers}/street.d.ts +3 -2
- package/out/us/synthesizers/street.d.ts.map +1 -0
- package/out/{synthesizers → us/synthesizers}/street.js +12 -12
- package/out/us/synthesizers/street.js.map +1 -0
- package/out/us/tools/fetch/imls-pls.js +1 -1
- package/out/us/tools/fetch/imls-pls.js.map +1 -1
- package/out/us/tools/fetch/nad.d.ts +6 -6
- package/out/us/tools/fetch/nad.js +1 -1
- package/out/us/tools/fetch/nad.js.map +1 -1
- package/out/us/tools/fetch/nppes.js +3 -3
- package/out/us/tools/fetch/nppes.js.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.d.ts +2 -1
- package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.js +1 -1
- package/out/us/tools/fetch/state/hi-schools.js.map +1 -1
- package/out/us/tools/fetch/tiger-full.js +1 -1
- package/out/us/tools/fetch/tiger-full.js.map +1 -1
- package/out/utils/align.d.ts +5 -3
- package/out/utils/align.d.ts.map +1 -1
- package/out/utils/align.js +5 -5
- package/out/utils/align.js.map +1 -1
- package/out/utils/golden.js +2 -2
- package/out/utils/golden.js.map +1 -1
- package/out/utils/license.d.ts +3 -3
- package/out/utils/license.d.ts.map +1 -1
- package/out/utils/license.js.map +1 -1
- package/out/utils/split.d.ts +1 -1
- package/out/utils/split.d.ts.map +1 -1
- package/out/utils/split.js +18 -14
- package/out/utils/split.js.map +1 -1
- package/out/utils/tokenize.d.ts +3 -20
- package/out/utils/tokenize.d.ts.map +1 -1
- package/out/utils/tokenize.js.map +1 -1
- package/out/utils/wof-json.js +3 -3
- package/out/utils/wof-json.js.map +1 -1
- package/package.json +18 -27
- package/lib/tools.ts +0 -31
- package/out/synthesizers/intersection.d.ts.map +0 -1
- package/out/synthesizers/intersection.js.map +0 -1
- package/out/synthesizers/street.d.ts.map +0 -1
- package/out/synthesizers/street.js.map +0 -1
- package/out/tools.d.ts +0 -31
- package/out/tools.d.ts.map +0 -1
- package/out/tools.js +0 -31
- package/out/tools.js.map +0 -1
- /package/out/{synthesizers → us/synthesizers}/intersection.d.ts +0 -0
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
*
|
|
21
21
|
* Five properties of this host were measured, and each one breaks a reader that assumes otherwise:
|
|
22
22
|
*
|
|
23
|
-
* 1. `content-length` on the feed is the gzip-compressed length. The header
|
|
23
|
+
* 1. `content-length` on the feed is the gzip-compressed length. The header reports 1,455 while 3,130
|
|
24
24
|
* bytes are delivered, so a reader that trusts it truncates the feed. Every byte count here is
|
|
25
25
|
* counted off the delivered body.
|
|
26
26
|
* 2. The entry's `rel="alternate"` href is a Wing FTP weblink landing page, HTTP 200 `text/html`,
|
|
27
|
-
* 3,811 bytes. The file needs `&realfilename=DK_INSPIRE_Addresses.zip` appended
|
|
27
|
+
* 3,811 bytes. The file needs `&realfilename=DK_INSPIRE_Addresses.zip` appended. That query answers
|
|
28
28
|
* HTTP 200 `application/zip`.
|
|
29
29
|
* 3. The host ignores `Range`. `bytes=0-4095` answers HTTP 200 with no `content-range` and the whole
|
|
30
30
|
* 101 MB body, so the one-byte range GET that sizes an OpenAddresses source cannot be used here.
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
/* oxlint-disable sister-software/prefer-region-over-marks -- these markers label steps inside one
|
|
42
42
|
procedure rather than sections of declarations. A region there folds no element a reader wants folded. */
|
|
43
43
|
import { ByteFormatter } from "@mailwoman/core/fs/formatters";
|
|
44
|
-
import { pathExists, statPath } from "@mailwoman/core/fs/readers";
|
|
44
|
+
import { pathExists, statPath } from "@mailwoman/core/fs/readers/stat";
|
|
45
45
|
import { makeDirectories, removePathIfPresent } from "@mailwoman/core/fs/writers";
|
|
46
46
|
import { extractZipEntry, listZipEntries } from "@mailwoman/core/fs/zip";
|
|
47
47
|
import { sha256File } from "@mailwoman/core/hash";
|
|
@@ -62,7 +62,7 @@ export const DK_ADDRESSES_GEOPACKAGE_MEMBER = "ad_inspire.gpkg";
|
|
|
62
62
|
/**
|
|
63
63
|
* The query parameter that turns the entry's weblink landing page into the file itself.
|
|
64
64
|
*
|
|
65
|
-
* Wing FTP serves
|
|
65
|
+
* Wing FTP serves the file only when the request asks for the member.
|
|
66
66
|
*/
|
|
67
67
|
const REAL_FILENAME_PARAMETER = "realfilename";
|
|
68
68
|
/**
|
|
@@ -78,7 +78,7 @@ const MINIMUM_DATASET_BYTES = 1_000_000;
|
|
|
78
78
|
* Parsed with `@mailwoman/core/html/elements` rather than matched with a pattern.
|
|
79
79
|
*
|
|
80
80
|
* The feed needs both of the things a pattern handles badly.
|
|
81
|
-
* Its entry tag
|
|
81
|
+
* Its entry tag has an `xml:lang` attribute, so a reader has to keep attributes.
|
|
82
82
|
*
|
|
83
83
|
* Its hrefs escape the ampersand between query parameters, so a reader has to decode entities.
|
|
84
84
|
*
|
|
@@ -87,14 +87,15 @@ const MINIMUM_DATASET_BYTES = 1_000_000;
|
|
|
87
87
|
*
|
|
88
88
|
* @param xml The whole feed, 3,130 bytes, taken as one string rather than as a stream.
|
|
89
89
|
* @throws When the feed holds no entry, or its entry no usable link.
|
|
90
|
-
* A feed holding neither reads as a change at the publisher
|
|
90
|
+
* A feed holding neither reads as a change at the publisher.
|
|
91
|
+
* A caller has to see that.
|
|
91
92
|
*/
|
|
92
93
|
export async function readAddressesFeed(xml, feedURL) {
|
|
93
94
|
async function* oneChunk() {
|
|
94
95
|
yield xml;
|
|
95
96
|
}
|
|
96
97
|
// The feed holds one entry covering the whole country, so the first is the dataset.
|
|
97
|
-
let entry;
|
|
98
|
+
let entry = null;
|
|
98
99
|
for await (const found of streamMarkupElements(oneChunk(), "entry", { xml: true })) {
|
|
99
100
|
entry ??= found;
|
|
100
101
|
}
|
|
@@ -103,8 +104,8 @@ export async function readAddressesFeed(xml, feedURL) {
|
|
|
103
104
|
}
|
|
104
105
|
const title = childElement(entry, "title")?.text ?? "";
|
|
105
106
|
// The alternate link is the dataset.
|
|
106
|
-
// The same entry
|
|
107
|
-
//
|
|
107
|
+
// The same entry also has a `describedby` link to the ISO 19139 record.
|
|
108
|
+
// Either would download as a dataset without this check.
|
|
108
109
|
const alternate = childElements(entry, "link").find((link) => (link.attributes.rel ?? "").toLowerCase() === "alternate");
|
|
109
110
|
if (!alternate) {
|
|
110
111
|
throw new Error(`${feedURL}: the entry titled "${title}" carries no rel="alternate" link, so its dataset URL could not be read.`);
|
|
@@ -177,16 +178,17 @@ export async function fetchDKAddresses(options, report) {
|
|
|
177
178
|
report?.(` Dataset: ${entry.downloadURL}`);
|
|
178
179
|
// MARK: Download the dataset
|
|
179
180
|
//
|
|
180
|
-
// Streamed rather than buffered, and the byte count comes from the body
|
|
181
|
-
// from the entry's `length` attribute
|
|
181
|
+
// Streamed rather than buffered, and the byte count comes from the body
|
|
182
|
+
// rather than from the entry's `length` attribute.
|
|
183
|
+
// That attribute understates the file by 23 times.
|
|
182
184
|
const datasetResponse = await fetch(entry.downloadURL, { redirect: "follow" });
|
|
183
185
|
if (!datasetResponse.ok) {
|
|
184
186
|
report?.(` ✗ HTTP ${datasetResponse.status} downloading the dataset`);
|
|
185
187
|
return { fetched: 0, skipped: 0, failed: 1, failedCodes: [SLUG] };
|
|
186
188
|
}
|
|
187
189
|
const contentType = datasetResponse.headers.get("content-type") ?? "";
|
|
188
|
-
// The bare weblink href answers HTTP 200 `text/html` with a landing page
|
|
189
|
-
//
|
|
190
|
+
// The bare weblink href answers HTTP 200 `text/html` with a landing page.
|
|
191
|
+
// A write to disk would fail later as a corrupt zip.
|
|
190
192
|
if (contentType.includes("text/html")) {
|
|
191
193
|
report?.(` ✗ The dataset URL answered ${contentType}, which is the weblink's landing page rather than the file`);
|
|
192
194
|
return { fetched: 0, skipped: 0, failed: 1, failedCodes: [SLUG] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspire.js","sourceRoot":"","sources":["../../../../lib/dk/tools/fetch/inspire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;4GAC4G;AAE5G,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"inspire.js","sourceRoot":"","sources":["../../../../lib/dk/tools/fetch/inspire.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,39 +14,32 @@
|
|
|
14
14
|
* GeoServer flattens the INSPIRE application schema here, so every component value arrives inline on
|
|
15
15
|
* the feature's `properties` and the adapter resolves no reference. The county, the municipality, the
|
|
16
16
|
* settlement unit, the address area, the thoroughfare and the postal descriptor each occupy one of six
|
|
17
|
-
* fixed `component<n>_xlink_title` slots
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* `AD.Address_PostalDescriptor` on all 1,003, whose title is five digits on all 1,003. Slots 3, 4 and
|
|
22
|
-
* 5 hold the settlement unit (926), the address area (4) and the thoroughfare (314) or `unpopulated`.
|
|
17
|
+
* fixed `component<n>_xlink_title` slots. An unused slot holds the string `unpopulated` rather than a
|
|
18
|
+
* void object. The slot a value lands in is fixed: slot 1 holds the county, slot 2 the municipality,
|
|
19
|
+
* slot 3 the settlement unit, slot 4 the address area, slot 5 the thoroughfare and slot 6 the postal
|
|
20
|
+
* descriptor.
|
|
23
21
|
*
|
|
24
|
-
* The field
|
|
25
|
-
* sits in the locator's name-spelling element. Estonia writes that ADS code in
|
|
26
|
-
* `locator_addresslocator_designator_locatordesignator_designator`
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* would stamp `7_1DOW` as the house number on all 729,973 rows.
|
|
22
|
+
* The field whose name matches the INSPIRE designator holds an internal ADS code, and the house
|
|
23
|
+
* number sits in the locator's name-spelling element. Estonia writes that ADS code in
|
|
24
|
+
* `locator_addresslocator_designator_locatordesignator_designator` (`7_1DOW`, `7_3P4Y`, `6_0MU3`).
|
|
25
|
+
* The human-readable number is in `locator_addresslocator_name_locatorname_name_spelling_text`. The
|
|
26
|
+
* designator's own type states `addressNumber` on the street rows, so that field is tempting to
|
|
27
|
+
* read. A reader that takes it would stamp `7_1DOW` as the house number on every row.
|
|
31
28
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* name
|
|
37
|
-
* never co-occur. The adapter therefore reads `house_number` where a thoroughfare element exists and
|
|
38
|
-
* `venue` where none does, so a farm name never arrives labeled as a number.
|
|
29
|
+
* The locator name takes one of two roles, and the feature's structure decides which. A feature that
|
|
30
|
+
* holds a thoroughfare or an address area writes its number there, and one that holds neither writes
|
|
31
|
+
* the farm or building name that designates the addressable unit. The two never co-occur. The adapter
|
|
32
|
+
* therefore reads `house_number` where a thoroughfare element exists and `venue` where none does, so a
|
|
33
|
+
* farm name never arrives labeled as a number.
|
|
39
34
|
*
|
|
40
|
-
* Slots 4 and 5
|
|
35
|
+
* Slots 4 and 5 hold a malformed `href`: it addresses the `AU_haldusyksused` workspace with an
|
|
41
36
|
* `AD_Address` type and answers HTTP 400 `Unknown namespace [AD_Address]`. The adapter reads the slot's
|
|
42
37
|
* `title` and never follows an `href`.
|
|
43
38
|
*
|
|
44
|
-
* A row with no thoroughfare element is the ordinary rural case rather than a defect
|
|
45
|
-
* 1,003 features, against the whole-service share of 288,009 thoroughfare-bearing rows in 729,973,
|
|
46
|
-
* which is 39.5%.
|
|
39
|
+
* A row with no thoroughfare element is the ordinary rural case rather than a defect.
|
|
47
40
|
*
|
|
48
|
-
* Maa- ja Ruumiamet's dataset record states Creative Commons CC0 1.0 in `otherConstraints
|
|
49
|
-
* address-source register elected and records under `spdx` as `CC0-1.0`. CC0 reserves no act, so the
|
|
41
|
+
* Maa- ja Ruumiamet's dataset record states Creative Commons CC0 1.0 in `otherConstraints`. The
|
|
42
|
+
* address-source register elected that license and records it under `spdx` as `CC0-1.0`. CC0 reserves no act, so the
|
|
50
43
|
* adapter stamps that label on every row and the model card needs no attribution clause, although
|
|
51
44
|
* crediting the publisher stays good practice.
|
|
52
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/ee/adapters/ads/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/ee/adapters/ads/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAQH,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAA;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAW,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAW5C;;;;;;GAMG;AACH,UAAU,aAAa;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9C,0DAA0D,CAAC,EAAE,MAAM,CAAA;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAsBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAEhE;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CA+FhD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,eAAqB,CAAA"}
|
|
@@ -14,39 +14,32 @@
|
|
|
14
14
|
* GeoServer flattens the INSPIRE application schema here, so every component value arrives inline on
|
|
15
15
|
* the feature's `properties` and the adapter resolves no reference. The county, the municipality, the
|
|
16
16
|
* settlement unit, the address area, the thoroughfare and the postal descriptor each occupy one of six
|
|
17
|
-
* fixed `component<n>_xlink_title` slots
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* `AD.Address_PostalDescriptor` on all 1,003, whose title is five digits on all 1,003. Slots 3, 4 and
|
|
22
|
-
* 5 hold the settlement unit (926), the address area (4) and the thoroughfare (314) or `unpopulated`.
|
|
17
|
+
* fixed `component<n>_xlink_title` slots. An unused slot holds the string `unpopulated` rather than a
|
|
18
|
+
* void object. The slot a value lands in is fixed: slot 1 holds the county, slot 2 the municipality,
|
|
19
|
+
* slot 3 the settlement unit, slot 4 the address area, slot 5 the thoroughfare and slot 6 the postal
|
|
20
|
+
* descriptor.
|
|
23
21
|
*
|
|
24
|
-
* The field
|
|
25
|
-
* sits in the locator's name-spelling element. Estonia writes that ADS code in
|
|
26
|
-
* `locator_addresslocator_designator_locatordesignator_designator`
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* would stamp `7_1DOW` as the house number on all 729,973 rows.
|
|
22
|
+
* The field whose name matches the INSPIRE designator holds an internal ADS code, and the house
|
|
23
|
+
* number sits in the locator's name-spelling element. Estonia writes that ADS code in
|
|
24
|
+
* `locator_addresslocator_designator_locatordesignator_designator` (`7_1DOW`, `7_3P4Y`, `6_0MU3`).
|
|
25
|
+
* The human-readable number is in `locator_addresslocator_name_locatorname_name_spelling_text`. The
|
|
26
|
+
* designator's own type states `addressNumber` on the street rows, so that field is tempting to
|
|
27
|
+
* read. A reader that takes it would stamp `7_1DOW` as the house number on every row.
|
|
31
28
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* name
|
|
37
|
-
* never co-occur. The adapter therefore reads `house_number` where a thoroughfare element exists and
|
|
38
|
-
* `venue` where none does, so a farm name never arrives labeled as a number.
|
|
29
|
+
* The locator name takes one of two roles, and the feature's structure decides which. A feature that
|
|
30
|
+
* holds a thoroughfare or an address area writes its number there, and one that holds neither writes
|
|
31
|
+
* the farm or building name that designates the addressable unit. The two never co-occur. The adapter
|
|
32
|
+
* therefore reads `house_number` where a thoroughfare element exists and `venue` where none does, so a
|
|
33
|
+
* farm name never arrives labeled as a number.
|
|
39
34
|
*
|
|
40
|
-
* Slots 4 and 5
|
|
35
|
+
* Slots 4 and 5 hold a malformed `href`: it addresses the `AU_haldusyksused` workspace with an
|
|
41
36
|
* `AD_Address` type and answers HTTP 400 `Unknown namespace [AD_Address]`. The adapter reads the slot's
|
|
42
37
|
* `title` and never follows an `href`.
|
|
43
38
|
*
|
|
44
|
-
* A row with no thoroughfare element is the ordinary rural case rather than a defect
|
|
45
|
-
* 1,003 features, against the whole-service share of 288,009 thoroughfare-bearing rows in 729,973,
|
|
46
|
-
* which is 39.5%.
|
|
39
|
+
* A row with no thoroughfare element is the ordinary rural case rather than a defect.
|
|
47
40
|
*
|
|
48
|
-
* Maa- ja Ruumiamet's dataset record states Creative Commons CC0 1.0 in `otherConstraints
|
|
49
|
-
* address-source register elected and records under `spdx` as `CC0-1.0`. CC0 reserves no act, so the
|
|
41
|
+
* Maa- ja Ruumiamet's dataset record states Creative Commons CC0 1.0 in `otherConstraints`. The
|
|
42
|
+
* address-source register elected that license and records it under `spdx` as `CC0-1.0`. CC0 reserves no act, so the
|
|
50
43
|
* adapter stamps that label on every row and the model card needs no attribution clause, although
|
|
51
44
|
* crediting the publisher stays good practice.
|
|
52
45
|
*
|
|
@@ -147,8 +140,9 @@ export function createADSAdapter() {
|
|
|
147
140
|
components.street = street;
|
|
148
141
|
}
|
|
149
142
|
else if (locatorName) {
|
|
150
|
-
// With no thoroughfare the locator name is the site or building name
|
|
151
|
-
// designates the addressable unit
|
|
143
|
+
// With no thoroughfare the locator name is the site or building name
|
|
144
|
+
// that designates the addressable unit.
|
|
145
|
+
// That is how a rural Estonian address works.
|
|
152
146
|
components.venue = locatorName;
|
|
153
147
|
}
|
|
154
148
|
// The settlement unit sits inside the municipality, and Estonia writes it between
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/ee/adapters/ads/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/ee/adapters/ads/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* `#tools/fetch/inspire-addresses` owns the capabilities read and the GeoJSON page read, and
|
|
16
16
|
* `#tools/fetch/wfs-harvest` owns the appending, the manifest and the resumption. This module states
|
|
17
|
-
* what is particular to Estonia
|
|
17
|
+
* what is particular to Estonia: four measurements taken on 2026-10-02:
|
|
18
18
|
*
|
|
19
19
|
* 1. The payload needs no component resolution. GeoServer flattens the application schema here, so
|
|
20
20
|
* each `component<n>_xlink_href` has a sibling `component<n>_xlink_title` carrying the referenced
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
* `readCheckedWFSFeatureCount`, which proves the number against a page before a caller uses it,
|
|
26
26
|
* and no count is written into this file.
|
|
27
27
|
* 3. The service honors a sort. `ImplementsSorting` is `TRUE`, `sortBy=gml_id` answers HTTP 200 and
|
|
28
|
-
* `sortBy=gml_id D` returns the type's last features first
|
|
28
|
+
* `sortBy=gml_id D` returns the type's last features first. That proves the parameter is
|
|
29
29
|
* applied rather than accepted and dropped. `sortBy=gml:identifier` and `sortBy=inspireId` answer
|
|
30
30
|
* HTTP 400 `Illegal property name`, so the sort property is one of the flattened names.
|
|
31
31
|
* 4. A `count=10000` page of `application/json` is 31,198,909 bytes and takes about 6 seconds. At
|
|
32
32
|
* 729,973 features that is 73 pages and about 2.3 GB, plus three requests for the capabilities and
|
|
33
33
|
* the checked count.
|
|
34
34
|
*
|
|
35
|
-
* The harvest writes one feature per line
|
|
35
|
+
* The harvest writes one feature per line. The adapter can then stream the whole extract
|
|
36
36
|
* without holding a page. The `FeatureCollection` envelope is dropped: its counts describe one page
|
|
37
37
|
* and the manifest records them per page instead.
|
|
38
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads.d.ts","sourceRoot":"","sources":["../../../../lib/ee/tools/fetch/ads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAA8B,KAAK,SAAS,EAAmC,MAAM,qBAAqB,CAAA;AAEjH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE3E,OAAO,EAKN,KAAK,kBAAkB,EACvB,MAAM,0BAA0B,CAAA;AAEjC;;GAEG;AACH,eAAO,MAAM,UAAU,2DAA2D,CAAA;AAElF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,0BAA0B,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"ads.d.ts","sourceRoot":"","sources":["../../../../lib/ee/tools/fetch/ads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAA8B,KAAK,SAAS,EAAmC,MAAM,qBAAqB,CAAA;AAEjH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE3E,OAAO,EAKN,KAAK,kBAAkB,EACvB,MAAM,0BAA0B,CAAA;AAEjC;;GAEG;AACH,eAAO,MAAM,UAAU,2DAA2D,CAAA;AAElF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,0BAA0B,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AA4BlD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAIpE;AAED,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,SAAS,EAAE,eAAe,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAwE7B;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAC/C,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,GAAG;IAC7D;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;CACjC,CAAA;AAEF;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAwBnH"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* `#tools/fetch/inspire-addresses` owns the capabilities read and the GeoJSON page read, and
|
|
16
16
|
* `#tools/fetch/wfs-harvest` owns the appending, the manifest and the resumption. This module states
|
|
17
|
-
* what is particular to Estonia
|
|
17
|
+
* what is particular to Estonia: four measurements taken on 2026-10-02:
|
|
18
18
|
*
|
|
19
19
|
* 1. The payload needs no component resolution. GeoServer flattens the application schema here, so
|
|
20
20
|
* each `component<n>_xlink_href` has a sibling `component<n>_xlink_title` carrying the referenced
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
* `readCheckedWFSFeatureCount`, which proves the number against a page before a caller uses it,
|
|
26
26
|
* and no count is written into this file.
|
|
27
27
|
* 3. The service honors a sort. `ImplementsSorting` is `TRUE`, `sortBy=gml_id` answers HTTP 200 and
|
|
28
|
-
* `sortBy=gml_id D` returns the type's last features first
|
|
28
|
+
* `sortBy=gml_id D` returns the type's last features first. That proves the parameter is
|
|
29
29
|
* applied rather than accepted and dropped. `sortBy=gml:identifier` and `sortBy=inspireId` answer
|
|
30
30
|
* HTTP 400 `Illegal property name`, so the sort property is one of the flattened names.
|
|
31
31
|
* 4. A `count=10000` page of `application/json` is 31,198,909 bytes and takes about 6 seconds. At
|
|
32
32
|
* 729,973 features that is 73 pages and about 2.3 GB, plus three requests for the capabilities and
|
|
33
33
|
* the checked count.
|
|
34
34
|
*
|
|
35
|
-
* The harvest writes one feature per line
|
|
35
|
+
* The harvest writes one feature per line. The adapter can then stream the whole extract
|
|
36
36
|
* without holding a page. The `FeatureCollection` envelope is dropped: its counts describe one page
|
|
37
37
|
* and the manifest records them per page instead.
|
|
38
38
|
*/
|
|
@@ -86,8 +86,10 @@ const LICENSE = "CC0-1.0";
|
|
|
86
86
|
* The spacing between requests.
|
|
87
87
|
*
|
|
88
88
|
* The service answers a 10,000-feature page in about 6 seconds, so this is not what limits the harvest.
|
|
89
|
-
* It bounds the harvest to one request per second against a government host
|
|
90
|
-
* state no rate
|
|
89
|
+
* It bounds the harvest to one request per second against a government host
|
|
90
|
+
* whose published terms state no rate.
|
|
91
|
+
*
|
|
92
|
+
* The shorter requests (the capabilities and the count) would otherwise exceed that rate.
|
|
91
93
|
*/
|
|
92
94
|
const MIN_REQUEST_INTERVAL_MS = 1000;
|
|
93
95
|
/**
|
|
@@ -127,7 +129,7 @@ export async function harvestADSEE(client, options) {
|
|
|
127
129
|
// to it cannot be told apart from the largest page the service will serve.
|
|
128
130
|
const featureCount = statedFeatureCount(await readCheckedWFSFeatureCount(client, countOptions), capabilities.countDefault);
|
|
129
131
|
options.report?.(` Feature count: ${featureCount.count ?? "not stated"} — ${featureCount.because}`);
|
|
130
|
-
return
|
|
132
|
+
return harvestPagedWFS({
|
|
131
133
|
context: CONTEXT,
|
|
132
134
|
source: SLUG,
|
|
133
135
|
outputDir: options.outputDir,
|
|
@@ -174,7 +176,7 @@ export async function harvestADSEE(client, options) {
|
|
|
174
176
|
*/
|
|
175
177
|
export async function fetchADSEE(options, report) {
|
|
176
178
|
const pageSize = options.pageSize ?? EE_ADS_PAGE_SIZE;
|
|
177
|
-
return
|
|
179
|
+
return runWFSHarvest({
|
|
178
180
|
slug: SLUG,
|
|
179
181
|
outRoot: options.outRoot,
|
|
180
182
|
filename: EE_ADS_HARVEST_FILE,
|
|
@@ -183,7 +185,7 @@ export async function fetchADSEE(options, report) {
|
|
|
183
185
|
minRequestIntervalMs: MIN_REQUEST_INTERVAL_MS,
|
|
184
186
|
client: options.client,
|
|
185
187
|
maxPages: options.maxPages,
|
|
186
|
-
harvest: async (client) =>
|
|
188
|
+
harvest: async (client) => harvestADSEE(client, {
|
|
187
189
|
outputDir: options.outRoot(SLUG),
|
|
188
190
|
pageSize,
|
|
189
191
|
maxPages: options.maxPages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../../../lib/ee/tools/fetch/ads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,0BAA0B,EAAmD,MAAM,qBAAqB,CAAA;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIpD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EACN,eAAe,EACf,aAAa,EACb,kBAAkB,GAGlB,MAAM,0BAA0B,CAAA;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,wDAAwD,CAAA;AAElF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD;;GAEG;AACH,MAAM,IAAI,GAAG,KAAK,CAAA;AAElB;;GAEG;AACH,MAAM,OAAO,GAAG,YAAY,CAAA;AAE5B;;GAEG;AACH,MAAM,OAAO,GAAG,SAAS,CAAA;AAEzB
|
|
1
|
+
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../../../lib/ee/tools/fetch/ads.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
*
|
|
9
9
|
* The ATOM service at `https://apli.bizkaia.eus/apps/Danok/INSPIRE/addresses.xml` lists 112
|
|
10
10
|
* municipality entries, one zipped GML each. Catastro's national feed links this service rather than
|
|
11
|
-
* serving its data
|
|
11
|
+
* serving its data. The publisher is therefore a register of its own.
|
|
12
12
|
*
|
|
13
|
-
* The archives
|
|
13
|
+
* The archives hold only addresses. That shapes this reader. Abadiño's
|
|
14
14
|
* `ES.BFA.AD.001.zip` holds one member, `ES.BFA.AD.gml`, whose 1,360 `ad:Address` features write
|
|
15
15
|
* 4,080 `ad:component` references and not one `ad:ThoroughfareName`, `ad:PostalDescriptor` or
|
|
16
16
|
* `ad:AdminUnitName` feature. Every reference is a stored-query URL on
|
|
17
17
|
* `https://geo.bizkaia.eus/arcgisserverinspire/…` addressing an `adComponent.<n>` the ATOM feed never
|
|
18
|
-
* publishes. A reader
|
|
18
|
+
* publishes. A reader given only those archives therefore writes every address in the province without
|
|
19
19
|
* its street, its postcode or its municipality.
|
|
20
20
|
*
|
|
21
|
-
* Those features are on the publisher's WFS
|
|
21
|
+
* Those features are on the publisher's WFS. It serves the whole province in one request per type. The
|
|
22
22
|
* service answers `ad:ThoroughfareName` with `numberMatched="6921"`, `ad:PostalDescriptor` with
|
|
23
23
|
* `96` and `ad:AdminUnitName` with `113`, and a `GetFeature` with `COUNT=10000` returns each type
|
|
24
24
|
* whole: 6,921 thoroughfare names arrive in one 13,916,056-byte document. One request per type is
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
* addresses. An unresolved reference is a value the reader asked for and could not read, and it
|
|
33
33
|
* raises.
|
|
34
34
|
*
|
|
35
|
-
* Two of the publisher's own spellings decide what a row
|
|
35
|
+
* Two of the publisher's own spellings decide what a row records.
|
|
36
36
|
*
|
|
37
37
|
* A thoroughfare name is a cadastral field rather than a street name:
|
|
38
38
|
* `BO\TRAÑA-MATIENA(1)` is the street-type abbreviation `BO`, a backslash, the name, and the
|
|
39
39
|
* street's own sequence code in parentheses. All 6,921 take that form. The row keeps the
|
|
40
40
|
* abbreviation, as the Dirección General del Catastro's own rendered line does with `CL SANTIAGO
|
|
41
|
-
* APOSTOL`, writes a space where the cadastre writes its separator, and drops the sequence code
|
|
42
|
-
*
|
|
41
|
+
* APOSTOL`, writes a space where the cadastre writes its separator, and drops the sequence code
|
|
42
|
+
* because it is an identifier rather than part of the name.
|
|
43
43
|
*
|
|
44
44
|
* The house number is the last of the four dot-separated fields of the designator, and the
|
|
45
45
|
* designator is a cadastral code: `48.001.00026.003` is municipality 48001, street 00026 and number
|
|
@@ -57,10 +57,9 @@
|
|
|
57
57
|
* The first three are an ordinary Spanish number, a number with a letter, and a number with a
|
|
58
58
|
* *bis*, *izquierda* or *derecha* qualifier. The fourth is two fields concatenated and what its
|
|
59
59
|
* second field designates is not established: it is three digits wide like the number itself, and
|
|
60
|
-
* no document the publisher publishes
|
|
61
|
-
* publisher's own concatenation with its padding removed
|
|
62
|
-
*
|
|
63
|
-
* not hold.
|
|
60
|
+
* no document the publisher publishes states what it counts. The row therefore writes the
|
|
61
|
+
* publisher's own concatenation with its padding removed. A split on a guessed separator would
|
|
62
|
+
* state a number the cadastre does not hold.
|
|
64
63
|
*
|
|
65
64
|
* The municipality is `ad:AdminUnitName` at `3rdOrder`, which is the only level the service
|
|
66
65
|
* publishes: 113 of 113 of its administrative-unit features state it, and their names are padded
|
|
@@ -71,14 +70,14 @@
|
|
|
71
70
|
* `48 001 CL\TRAÑAETXOSTE(00066) 002` for the address whose designator is `48.001.00066.002`. It
|
|
72
71
|
* restates the municipality code, the street type and name, the street code zero-padded to five, and
|
|
73
72
|
* the number field, and it is written inside the archive while the street itself comes from a
|
|
74
|
-
* separate WFS document.
|
|
75
|
-
*
|
|
73
|
+
* separate WFS document. The adapter's test compares the resolved street and the composed number
|
|
74
|
+
* against it to check that the right feature was joined. The register's
|
|
76
75
|
* personal-data review reads these values as internal cadastral references rather than names, and
|
|
77
76
|
* the adapter writes none of them into a row.
|
|
78
77
|
*
|
|
79
78
|
* No service either publisher runs was found to render a postal address for this province: the
|
|
80
|
-
* ArcGIS layer behind the WFS exposes INSPIRE fields
|
|
81
|
-
* stays
|
|
79
|
+
* ArcGIS layer behind the WFS exposes only INSPIRE fields. The number's unexplained second field
|
|
80
|
+
* therefore stays open.
|
|
82
81
|
*/
|
|
83
82
|
import { type MarkupElement } from "@mailwoman/core/html/elements";
|
|
84
83
|
import { type CorpusAdapter } from "#types";
|
|
@@ -95,13 +94,13 @@ export declare const ES_BIZKAIA_COUNTRIES: readonly string[];
|
|
|
95
94
|
/**
|
|
96
95
|
* The license the address-source register elected for this publisher.
|
|
97
96
|
*
|
|
98
|
-
* Bizkaia
|
|
99
|
-
* publisher's own words. Its INSPIRE metadata
|
|
97
|
+
* Bizkaia states no license instrument, so no SPDX identifier is written and this records the
|
|
98
|
+
* publisher's own words. Its INSPIRE metadata states the controlled values `No limitations to
|
|
100
99
|
* public access` and `No conditions to access and use`, and its feed-level `rights` adds the
|
|
101
100
|
* condition that authorship and ownership of the BFA be stated as «©Bizkaiko Foru Aldundia». The
|
|
102
101
|
* register records two contradictions it did not resolve: all 112 municipality entries also read
|
|
103
102
|
* `Copyright (c) 2017", ES.BFA; all rights reserved`, and Catastro's national feed labels this
|
|
104
|
-
* publisher `CC BY 3.0 ES
|
|
103
|
+
* publisher `CC BY 3.0 ES`. No document Bizkaia publishes states that label.
|
|
105
104
|
*/
|
|
106
105
|
export declare const ES_BIZKAIA_LICENSE = "No conditions to access and use, with attribution to \u00AB\u00A9Bizkaiko Foru Aldundia\u00BB";
|
|
107
106
|
/**
|
|
@@ -109,21 +108,22 @@ export declare const ES_BIZKAIA_LICENSE = "No conditions to access and use, with
|
|
|
109
108
|
*
|
|
110
109
|
* `BO\TRAÑA-MATIENA(1)` answers `BO TRAÑA-MATIENA`.
|
|
111
110
|
* The backslash is the cadastre's separator between the street-type abbreviation
|
|
112
|
-
* and the name, and the trailing parenthesis holds the street's sequence code
|
|
113
|
-
* which the address's own designator repeats as its third field.
|
|
111
|
+
* and the name, and the trailing parenthesis holds the street's sequence code.
|
|
114
112
|
*
|
|
115
|
-
*
|
|
113
|
+
* The address's own designator repeats that code as its third field.
|
|
114
|
+
*
|
|
115
|
+
* @returns The street, or null where the feature states no name.
|
|
116
116
|
*/
|
|
117
|
-
export declare function bizkaiaStreet(feature: MarkupElement): string |
|
|
117
|
+
export declare function bizkaiaStreet(feature: MarkupElement): string | null;
|
|
118
118
|
/**
|
|
119
119
|
* The street's sequence code a thoroughfare feature states, as the feature writes it.
|
|
120
120
|
*
|
|
121
|
-
* The code the address's designator joins on
|
|
122
|
-
* `ad:LocatorName`
|
|
121
|
+
* The code the address's designator joins on.
|
|
122
|
+
* The publisher's own `ad:LocatorName` therefore checks the join rather than copying it.
|
|
123
123
|
*
|
|
124
|
-
* @returns The digits inside the trailing parentheses, or
|
|
124
|
+
* @returns The digits inside the trailing parentheses, or null where there are none.
|
|
125
125
|
*/
|
|
126
|
-
export declare function bizkaiaStreetCode(feature: MarkupElement): string |
|
|
126
|
+
export declare function bizkaiaStreetCode(feature: MarkupElement): string | null;
|
|
127
127
|
/**
|
|
128
128
|
* The house number the designator's fourth field states.
|
|
129
129
|
*
|
|
@@ -132,9 +132,9 @@ export declare function bizkaiaStreetCode(feature: MarkupElement): string | unde
|
|
|
132
132
|
*
|
|
133
133
|
* This module's header tabulates the four shapes it takes, with their counts.
|
|
134
134
|
*
|
|
135
|
-
* @returns The number, or
|
|
135
|
+
* @returns The number, or null where the designator is absent or does not have four fields.
|
|
136
136
|
*/
|
|
137
|
-
export declare function bizkaiaHouseNumber(byType: ReadonlyMap<string, readonly string[]>): string |
|
|
137
|
+
export declare function bizkaiaHouseNumber(byType: ReadonlyMap<string, readonly string[]>): string | null;
|
|
138
138
|
export declare function createESBizkaiaAdapter(): CorpusAdapter;
|
|
139
139
|
/**
|
|
140
140
|
* The configured adapter instance registered with the corpus builder.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/es/adapters/bizkaia/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/es/adapters/bizkaia/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAGH,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,+BAA+B,CAAA;AAqBxF,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAW,CAAA;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,kGAAmF,CAAA;AA2ClH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAEvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAYhG;AAED,wBAAgB,sBAAsB,IAAI,aAAa,CA8DtD;AAyFD;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAA2B,CAAA"}
|