@mailwoman/corpus 10.1.0 → 10.2.1
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
|
@@ -7,32 +7,32 @@
|
|
|
7
7
|
* from its per-municipality zipped GML.
|
|
8
8
|
*
|
|
9
9
|
* The ATOM service at `https://www.catastro.hacienda.gob.es/INSPIRE/Addresses/ES.SDGC.AD.atom.xml`
|
|
10
|
-
* lists 55 entries
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* or a directory of them.
|
|
10
|
+
* lists 55 entries. 52 are the Dirección General del Catastro's own provinces. Three link the foral
|
|
11
|
+
* cadastres of Bizkaia, Gipuzkoa and Navarra. Those three state their own terms and have an adapter
|
|
12
|
+
* each. Every DGC entry links a province feed listing one zipped GML per municipality, so a caller
|
|
13
|
+
* harvests municipality by municipality and this adapter reads one archive or a directory of them.
|
|
15
14
|
*
|
|
16
15
|
* Three properties of the file decide the reader, and each of the three would silently empty a row
|
|
17
16
|
* if it were read the way the other INSPIRE publishers are read.
|
|
18
17
|
*
|
|
19
|
-
* The archive
|
|
18
|
+
* The archive holds two members. `A.ES.SDGC.AD.<code>.gml` is the data and
|
|
20
19
|
* `A.ES.SDGC.AD.MD.<code>.xml` is its ISO 19139 metadata record. A member selector matching `.xml`
|
|
21
|
-
* therefore selects the metadata record. That record
|
|
20
|
+
* therefore selects the metadata record. That record holds no `AD:Address` at all, so
|
|
22
21
|
* {@linkcode GML_MEMBER} matches the extension that holds the features.
|
|
23
22
|
*
|
|
24
|
-
* The GML declares `<?xml version="1.0" encoding="ISO-8859-1"?>` and is not valid UTF-8
|
|
25
|
-
* 11,861,975-byte member
|
|
26
|
-
* `streamMarkupElements` decodes with a UTF-8 `TextDecoder
|
|
27
|
-
*
|
|
28
|
-
* declaration rather than trusting this note, because a publisher that re-encodes its
|
|
29
|
-
* otherwise have every accented name mojibaked under a reader that still claimed to be
|
|
23
|
+
* The GML declares `<?xml version="1.0" encoding="ISO-8859-1"?>` and is not valid UTF-8. Ceuta's
|
|
24
|
+
* 11,861,975-byte member holds 26 bytes above 0x7F, one of which is the `Ñ` of a street name.
|
|
25
|
+
* `streamMarkupElements` decodes with a UTF-8 `TextDecoder`. That decoder answers those bytes with
|
|
26
|
+
* U+FFFD. The bytes therefore pass through `decodeByteStream` first. {@linkcode assertLatin1Declaration}
|
|
27
|
+
* reads the declaration rather than trusting this note, because a publisher that re-encodes its
|
|
28
|
+
* output would otherwise have every accented name mojibaked under a reader that still claimed to be
|
|
29
|
+
* right.
|
|
30
30
|
*
|
|
31
31
|
* The file binds the INSPIRE namespaces to upper-case prefixes, `AD:Address` and `GN:text`, and
|
|
32
32
|
* states a designator type and an administrative level as element text rather than as a codelist
|
|
33
33
|
* URI. `#inspire/address` matches an element by its local name and accepts either form of a coded
|
|
34
34
|
* value, so the readers there serve this publisher. Only the element names this module passes to the
|
|
35
|
-
* markup stream
|
|
35
|
+
* markup stream hold the upper-case prefix.
|
|
36
36
|
*
|
|
37
37
|
* Each address references exactly three features by local `#` fragment, measured as 8,126 of 8,126
|
|
38
38
|
* addresses in Ceuta carrying one `ES.SDGC.PD`, one `ES.SDGC.TN` and one `ES.SDGC.AU` reference.
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
* | `9744803TE8794S` | `13` | `CL SANTIAGO APOSTOL 13 51002 CEUTA (CEUTA)` |
|
|
53
53
|
* | `9745701TE8794S` | `13D` | `CL SANTIAGO APOSTOL 13(D) 51002 CEUTA (CEUTA)` |
|
|
54
54
|
*
|
|
55
|
-
* So the designator is `pnp` with `plp` appended, and the street is `tv` followed by `nv
|
|
56
|
-
* the `AD:ThoroughfareName` text verbatim once its leading space is trimmed. The
|
|
57
|
-
* in the street component because the publisher writes it in its own rendered
|
|
58
|
-
*
|
|
55
|
+
* So the designator is `pnp` with `plp` appended, and the street is `tv` followed by `nv`. That
|
|
56
|
+
* street matches the `AD:ThoroughfareName` text verbatim once its leading space is trimmed. The
|
|
57
|
+
* abbreviation stays in the street component because the publisher writes it in its own rendered
|
|
58
|
+
* line. `Calle` would state something the Cadastre did not.
|
|
59
59
|
*
|
|
60
60
|
* `S-N` is *sin número*, the publisher stating that the address has no number, and it is 856 of
|
|
61
61
|
* Ceuta's 8,126 designators. A row carrying it writes no `house_number`, because the string is a
|
|
@@ -114,13 +114,12 @@ export const ES_CATASTRO_COUNTRIES: readonly string[] = ["ES"]
|
|
|
114
114
|
*
|
|
115
115
|
* The register elects the titled instrument, `Licencia de acceso y uso de los servicios y conjuntos
|
|
116
116
|
* de datos INSPIRE de la Dirección General del Catastro` at version 1.0, rather than the older
|
|
117
|
-
* `all rights reserved` template the feed still
|
|
118
|
-
*
|
|
119
|
-
* own title.
|
|
117
|
+
* `all rights reserved` template the feed still shows. No Creative Commons label or SPDX identifier
|
|
118
|
+
* covers that instrument, so the row records the instrument's own title.
|
|
120
119
|
*
|
|
121
|
-
*
|
|
120
|
+
* The register reads `refused` for `redistribute-data`: clause 1 withholds distribution
|
|
122
121
|
* of the information as supplied, and requires transformation before any public use.
|
|
123
|
-
* Ingest, transformation and training are permitted,
|
|
122
|
+
* Ingest, transformation and training are permitted, and this adapter performs those.
|
|
124
123
|
*/
|
|
125
124
|
export const ES_CATASTRO_LICENSE =
|
|
126
125
|
"Licencia de acceso y uso de los servicios y conjuntos de datos INSPIRE de la Dirección General del Catastro"
|
|
@@ -130,7 +129,8 @@ export const ES_CATASTRO_LICENSE =
|
|
|
130
129
|
*
|
|
131
130
|
* The archive ships two members and the other is `A.ES.SDGC.AD.MD.<code>.xml`,
|
|
132
131
|
* the ISO 19139 metadata record.
|
|
133
|
-
* A selector matching `.xml` reads that record
|
|
132
|
+
* A selector matching `.xml` reads that record.
|
|
133
|
+
* That record holds no `AD:Address`.
|
|
134
134
|
*/
|
|
135
135
|
const GML_MEMBER = /\.gml$/iu
|
|
136
136
|
|
|
@@ -169,10 +169,12 @@ const MUNICIPALITY_LEVELS = new Set(["4", "4thOrder"])
|
|
|
169
169
|
/**
|
|
170
170
|
* The designator type the publisher writes on every address.
|
|
171
171
|
*
|
|
172
|
-
* Measured over Ceuta: 8,126 of 8,126 addresses
|
|
172
|
+
* Measured over Ceuta: 8,126 of 8,126 addresses hold exactly one designator,
|
|
173
173
|
* and its `AD:type` is the text `1`.
|
|
174
|
-
* The value is the house number
|
|
175
|
-
*
|
|
174
|
+
* The value is the house number.
|
|
175
|
+
*
|
|
176
|
+
* `Consulta_DNPRC`'s `pnp` and `plp` fields confirm that for the two addresses
|
|
177
|
+
* tabulated in this module's header.
|
|
176
178
|
*/
|
|
177
179
|
const HOUSE_NUMBER_TYPE = "1"
|
|
178
180
|
|
|
@@ -263,22 +265,22 @@ export function createESCatastroAdapter(): CorpusAdapter {
|
|
|
263
265
|
}
|
|
264
266
|
|
|
265
267
|
/**
|
|
266
|
-
* One address's row, or
|
|
268
|
+
* One address's row, or null when it holds too little to render.
|
|
267
269
|
*
|
|
268
270
|
* The reference index is complete before this is called, so a reference resolving to no
|
|
269
271
|
* feature is a value the reader asked for and could not read, and it raises.
|
|
270
272
|
*/
|
|
271
|
-
function composeRow(address: MarkupElement, referenced: ReadonlyMap<string, MarkupElement>): CanonicalRow |
|
|
272
|
-
const addressID = address.attributes["gml:id"]?.trim()
|
|
273
|
+
function composeRow(address: MarkupElement, referenced: ReadonlyMap<string, MarkupElement>): CanonicalRow | null {
|
|
274
|
+
const addressID = address.attributes["gml:id"]?.trim() ?? null
|
|
273
275
|
|
|
274
276
|
if (voidDesignatorTypes(address).has(HOUSE_NUMBER_TYPE)) {
|
|
275
277
|
throw new VoidDesignatorError(ES_CATASTRO_ADAPTER_ID, addressID, HOUSE_NUMBER_TYPE)
|
|
276
278
|
}
|
|
277
279
|
|
|
278
|
-
let street: string |
|
|
279
|
-
let postcode: string |
|
|
280
|
-
let locality: string |
|
|
281
|
-
let settlement: string |
|
|
280
|
+
let street: string | null = null
|
|
281
|
+
let postcode: string | null = null
|
|
282
|
+
let locality: string | null = null
|
|
283
|
+
let settlement: string | null = null
|
|
282
284
|
|
|
283
285
|
for (const href of componentHrefs(address)) {
|
|
284
286
|
const key = componentJoinKey(href)
|
|
@@ -4,21 +4,18 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
6
|
* `es-gipuzkoa`: the INSPIRE Addresses theme the Diputación Foral de Gipuzkoa publishes, read from
|
|
7
|
-
* the one zipped GML that
|
|
7
|
+
* the one zipped GML that holds the whole province.
|
|
8
8
|
*
|
|
9
|
-
* The ATOM service at `https://b5m.gipuzkoa.eus/inspire/download/addresses.xml`
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* 313,162,472 bytes, a ratio of 39, so the member is read as a chunk sequence and never buffered.
|
|
9
|
+
* The ATOM service at `https://b5m.gipuzkoa.eus/inspire/download/addresses.xml` holds a single entry
|
|
10
|
+
* for the province and links its dataset through `rel="alternate"` rather than `rel="enclosure"`, so
|
|
11
|
+
* a fetcher that looks only for an enclosure finds no dataset here. The adapter is handed the
|
|
12
|
+
* archive and the feed is acquisition's concern. The archive holds one 313 MB GML member. The
|
|
13
|
+
* adapter reads that member as a chunk sequence and never buffers it.
|
|
15
14
|
*
|
|
16
|
-
* The member is self-contained and its order decides the reader.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* document ends would therefore hold all 68,744, so the adapter reads the member twice through
|
|
21
|
-
* {@linkcode streamIndexedInspireRows} and indexes 4,516 features instead.
|
|
15
|
+
* The member is self-contained and its order decides the reader. Addresses number 68,744, and the
|
|
16
|
+
* 4,516 reference features they point at are written last. An address held until the document ends
|
|
17
|
+
* would keep all 68,744 pending, so the adapter reads the member twice through
|
|
18
|
+
* {@linkcode streamIndexedInspireRows} and indexes the 4,516 references instead.
|
|
22
19
|
*
|
|
23
20
|
* A reference is a WFS stored-query URL whose `ID` parameter equals the target's `gml:id`, written
|
|
24
21
|
* against the internal host `http://b5mdev/` and with the id repeated as the URL's fragment:
|
|
@@ -28,31 +25,26 @@
|
|
|
28
25
|
*
|
|
29
26
|
* A postal-descriptor reference whose final segment is empty, `…&ID=ES.GFA.PD.059. #…`, states that
|
|
30
27
|
* the publisher holds no postcode, and `referenceStatesNoValue` separates it from a broken join.
|
|
31
|
-
* The Cadastre writes the same form
|
|
28
|
+
* The Cadastre writes the same form. The predicate therefore has one home.
|
|
32
29
|
*
|
|
33
|
-
* The locator vocabulary is one type
|
|
34
|
-
* `LocatorDesignatorTypeValue/addressIdentifierGeneral
|
|
35
|
-
*
|
|
36
|
-
* its 88 municipalities.
|
|
30
|
+
* The locator vocabulary is one type,
|
|
31
|
+
* `LocatorDesignatorTypeValue/addressIdentifierGeneral`. The municipality is the only
|
|
32
|
+
* `ad:AdminUnitName` level published, `4thOrder`.
|
|
37
33
|
*
|
|
38
34
|
* The publisher writes its street names in Basque, with the street type as a trailing word rather
|
|
39
35
|
* than a leading abbreviation: `Samikolla ibilbidea`. The name is taken as written.
|
|
40
36
|
*
|
|
41
|
-
* `ad:LocatorName`
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* resting on the stronger claim that the name is safe to publish as address text.
|
|
37
|
+
* `ad:LocatorName` holds a building name as a Basque and Spanish pair, `Gasolinera` with
|
|
38
|
+
* `Gasolindegia` and `Agirre, baserria` with `Agirre, caserío`. The adapter writes none of them: the
|
|
39
|
+
* address-source register's personal-data review reads `absent` because these identify the building
|
|
40
|
+
* rather than its occupant, and a Basque *baserri* name is commonly also a surname. The review
|
|
41
|
+
* therefore does not rest on the stronger claim that the name is safe to publish as address text.
|
|
47
42
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* `ES.GFA.TN.056.1110` and `ES.GFA.PD.056.20830`. The adapter's test checks the composed street and
|
|
54
|
-
* number against that identifier, which is a check that the right features were joined rather than a
|
|
55
|
-
* check of the address the publisher would print.
|
|
43
|
+
* The address `gml:id` `ES.GFA.AD.056_1110_003` concatenates the municipality code `056`, the
|
|
44
|
+
* thoroughfare code `1110` and the number `003`, and holds references
|
|
45
|
+
* `AU_ADMINISTRATIVEUNIT_34162020056`, `ES.GFA.TN.056.1110` and `ES.GFA.PD.056.20830`. The
|
|
46
|
+
* adapter's test checks the composed street and number against that identifier. That check confirms
|
|
47
|
+
* the right features were joined. It does not check the address the publisher would print.
|
|
56
48
|
*/
|
|
57
49
|
|
|
58
50
|
import type { MarkupElement } from "@mailwoman/core/html/elements"
|
|
@@ -88,7 +80,8 @@ export const ES_GIPUZKOA_ADAPTER_ID = "es-gipuzkoa"
|
|
|
88
80
|
/**
|
|
89
81
|
* The jurisdiction this adapter emits.
|
|
90
82
|
*
|
|
91
|
-
* Coverage is the province of Gipuzkoa
|
|
83
|
+
* Coverage is the province of Gipuzkoa.
|
|
84
|
+
* The feed states that as the dataset's whole extent.
|
|
92
85
|
*/
|
|
93
86
|
export const ES_GIPUZKOA_COUNTRIES: readonly string[] = ["ES"]
|
|
94
87
|
|
|
@@ -97,15 +90,15 @@ export const ES_GIPUZKOA_COUNTRIES: readonly string[] = ["ES"]
|
|
|
97
90
|
*
|
|
98
91
|
* Gipuzkoa states four things, and the register elects the one addressing this dataset:
|
|
99
92
|
* the `otherConstraints` of its ISO 19139 dataset record, `CC BY-SA 4.0`.
|
|
100
|
-
* Its feed states attribution
|
|
101
|
-
*
|
|
102
|
-
*
|
|
93
|
+
* Its feed states attribution only and its website states CC BY 4.0, and the register records
|
|
94
|
+
* why the stricter reading is the one to err towards: the share-alike filter reads this label,
|
|
95
|
+
* so recording CC BY 4.0 would hide an obligation the publisher may hold.
|
|
103
96
|
*
|
|
104
97
|
* The value is the SPDX identifier the register elected rather than the license's title,
|
|
105
98
|
* because `licenseVerdict` resolves an identifier and reads a title as unrecognized.
|
|
106
99
|
* Under `LicensePolicy.ShareAlikeFree` the title returns `{refusal: null, mentionsShareAlike: false}`
|
|
107
|
-
* and `CC-BY-SA-4.0` returns
|
|
108
|
-
*
|
|
100
|
+
* and `CC-BY-SA-4.0` returns a share-alike refusal, so the title admits these rows
|
|
101
|
+
* to a corpus assembled to hold no share-alike source.
|
|
109
102
|
*/
|
|
110
103
|
export const ES_GIPUZKOA_LICENSE = "CC-BY-SA-4.0"
|
|
111
104
|
|
|
@@ -181,22 +174,22 @@ export function createESGipuzkoaAdapter(): CorpusAdapter {
|
|
|
181
174
|
}
|
|
182
175
|
|
|
183
176
|
/**
|
|
184
|
-
* One address's row, or
|
|
177
|
+
* One address's row, or null when it holds too little to render.
|
|
185
178
|
*
|
|
186
179
|
* The reference index is complete before this is called, so a reference resolving to no
|
|
187
180
|
* feature is a value the reader asked for and could not read, and it raises.
|
|
188
181
|
*/
|
|
189
|
-
function composeRow(address: MarkupElement, referenced: ReadonlyMap<string, MarkupElement>): CanonicalRow |
|
|
190
|
-
const addressID = address.attributes["gml:id"]?.trim()
|
|
182
|
+
function composeRow(address: MarkupElement, referenced: ReadonlyMap<string, MarkupElement>): CanonicalRow | null {
|
|
183
|
+
const addressID = address.attributes["gml:id"]?.trim() ?? null
|
|
191
184
|
|
|
192
185
|
if (voidDesignatorTypes(address).has(HOUSE_NUMBER_TYPE)) {
|
|
193
186
|
throw new VoidDesignatorError(ES_GIPUZKOA_ADAPTER_ID, addressID, HOUSE_NUMBER_TYPE)
|
|
194
187
|
}
|
|
195
188
|
|
|
196
|
-
let street: string |
|
|
197
|
-
let postcode: string |
|
|
198
|
-
let locality: string |
|
|
199
|
-
let settlement: string |
|
|
189
|
+
let street: string | null = null
|
|
190
|
+
let postcode: string | null = null
|
|
191
|
+
let locality: string | null = null
|
|
192
|
+
let settlement: string | null = null
|
|
200
193
|
|
|
201
194
|
for (const href of componentHrefs(address)) {
|
|
202
195
|
const key = componentJoinKey(href)
|
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
* The ATOM service at
|
|
10
10
|
* `https://filescartografia.navarra.es/2_CARTOGRAFIA_TEMATICA/2_7_CATASTRO/2_7_3_INSPIRE_ATOM/2_7_3_3_AD/Addresses_ServiceATOM_Navarra.xml`
|
|
11
11
|
* is 671,131 bytes and splits the province across 272 entries. Every entry is titled `Address
|
|
12
|
-
* Navarra`,
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* Navarra`, and the feed states no place for a partition. The three measured each held one
|
|
13
|
+
* municipality: partition 1 Abáigar, partition 100 Eulate and partition 250 Bera. The feed states
|
|
14
|
+
* no such mapping and this adapter claims none. It reads one archive or a directory of them. A
|
|
15
|
+
* caller harvests all 272 by pointing it at the directory.
|
|
16
16
|
*
|
|
17
17
|
* This publisher is read entirely from its references' titles, and that is what separates it from
|
|
18
18
|
* every other INSPIRE reader here. Its own file publishes no `AD:ThoroughfareName`,
|
|
19
19
|
* `AD:PostalDescriptor` or `AD:AdminUnitName` feature at all: partition 1 holds 29 distinct element
|
|
20
|
-
* names across 115 addresses and none of them is a component feature. Each address instead
|
|
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:
|
|
22
22
|
*
|
|
23
23
|
* | `xlink:href` | `xlink:title` | read as |
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* | `PostalDescriptor` | `31280` | the postcode |
|
|
31
31
|
*
|
|
32
32
|
* The counts are exact and regular: 690 references over 115 addresses in partition 1, 1,728 over 288
|
|
33
|
-
* in partition 100 and 6,324 over 1,054 in partition 250
|
|
33
|
+
* in partition 100 and 6,324 over 1,054 in partition 250. Each address holds six references, one of
|
|
34
34
|
* each shape above.
|
|
35
35
|
*
|
|
36
36
|
* The two place titles are not the same value. In Abáigar and Eulate the `5thOrder` title repeats the
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* dependent locality where it differs from the municipality and left out where it repeats it.
|
|
40
40
|
*
|
|
41
41
|
* `Comunidad Foral de Navarra` is the autonomous community's own name rather than the province name a
|
|
42
|
-
* Spanish address writes, and the publisher's own address layer
|
|
42
|
+
* Spanish address writes, and the publisher's own address layer has no region column, so no
|
|
43
43
|
* `region` is written.
|
|
44
44
|
*
|
|
45
45
|
* The publisher's own rendering is in a different service, and it agrees. `IDENA` publishes
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
* `VIA` and `PORTAL`. Partition 1's `AD.Address.1` composes `CALLE CALLEJA, 4, 31280 Abáigar`, and
|
|
48
48
|
* that layer's `DIRECC_Txt_Direcciones.1` reads `MUNICIPIO` `Abáigar`, `ENTIDAD` `Abáigar`,
|
|
49
49
|
* `CODPOSTAL` `31280`, `VIA` `CALLE CALLEJA`, `PORTAL` `4`. The adapter's integration test checks a
|
|
50
|
-
* sample of rows against that layer,
|
|
50
|
+
* sample of rows against that layer, the publisher-side oracle for this source.
|
|
51
51
|
*
|
|
52
52
|
* Two values state an absence rather than a value. A `PostalDescriptor` title of `0` is the publisher
|
|
53
|
-
* holding no postcode, measured in Bera
|
|
54
|
-
*
|
|
55
|
-
*
|
|
53
|
+
* holding no postcode, measured in Bera. A designator of `S/N` is *sin número*, and `#es/cadastre`
|
|
54
|
+
* reads it for all four Spanish cadastres. A designator may also hold a space-separated letter,
|
|
55
|
+
* `18 A` and `34 A` in Eulate. The adapter keeps that letter as the publisher wrote it.
|
|
56
56
|
*/
|
|
57
57
|
|
|
58
58
|
import { type MarkupElement, streamMarkupElements } from "@mailwoman/core/html/elements"
|
|
@@ -93,10 +93,11 @@ export const ES_NAVARRA_COUNTRIES: readonly string[] = ["ES"]
|
|
|
93
93
|
* Creative Commons Attribution 4.0 International (CC BY 4.0)`, and all 272 of its entries repeat it.
|
|
94
94
|
* The version is stated, so the register records `CC-BY-4.0` as the SPDX identifier.
|
|
95
95
|
*
|
|
96
|
-
* The row
|
|
97
|
-
* `licenseVerdict` resolves an identifier and reads a title as unrecognized
|
|
98
|
-
*
|
|
99
|
-
*
|
|
96
|
+
* The row states that identifier rather than the license's title.
|
|
97
|
+
* `licenseVerdict` resolves an identifier and reads a title as unrecognized.
|
|
98
|
+
*
|
|
99
|
+
* A row whose license resolves to no expression has unknown obligations rather than none.
|
|
100
|
+
* The build reports that separately from a refusal.
|
|
100
101
|
*/
|
|
101
102
|
export const ES_NAVARRA_LICENSE = "CC-BY-4.0"
|
|
102
103
|
|
|
@@ -146,7 +147,7 @@ const SETTLEMENT_LEVEL = "5thOrder"
|
|
|
146
147
|
/**
|
|
147
148
|
* The postcode title that states that the publisher holds none.
|
|
148
149
|
*
|
|
149
|
-
*
|
|
150
|
+
* Bera writes `0` beside its `31780`.
|
|
150
151
|
*/
|
|
151
152
|
const NO_POSTCODE_TITLE = "0"
|
|
152
153
|
|
|
@@ -154,10 +155,10 @@ const NO_POSTCODE_TITLE = "0"
|
|
|
154
155
|
* What one address's references state, read from their titles.
|
|
155
156
|
*/
|
|
156
157
|
interface ReferencedTitles {
|
|
157
|
-
street
|
|
158
|
-
postcode
|
|
159
|
-
locality
|
|
160
|
-
settlement
|
|
158
|
+
street: string | null
|
|
159
|
+
postcode: string | null
|
|
160
|
+
locality: string | null
|
|
161
|
+
settlement: string | null
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
/**
|
|
@@ -167,7 +168,7 @@ interface ReferencedTitles {
|
|
|
167
168
|
* order in the three partitions measured and that order is the publisher's rather than the schema's.
|
|
168
169
|
*/
|
|
169
170
|
export function navarraReferencedTitles(address: MarkupElement): ReferencedTitles {
|
|
170
|
-
const titles: ReferencedTitles = {}
|
|
171
|
+
const titles: ReferencedTitles = { street: null, postcode: null, locality: null, settlement: null }
|
|
171
172
|
|
|
172
173
|
for (const { href, title } of componentLinks(address)) {
|
|
173
174
|
if (!title) continue
|
|
@@ -177,7 +178,7 @@ export function navarraReferencedTitles(address: MarkupElement): ReferencedTitle
|
|
|
177
178
|
if (lowered === THOROUGHFARE_HREF) {
|
|
178
179
|
titles.street = title
|
|
179
180
|
} else if (lowered === POSTAL_DESCRIPTOR_HREF) {
|
|
180
|
-
titles.postcode = title === NO_POSTCODE_TITLE ?
|
|
181
|
+
titles.postcode = title === NO_POSTCODE_TITLE ? null : title
|
|
181
182
|
} else if (codelistValue(href) === SETTLEMENT_LEVEL) {
|
|
182
183
|
titles.settlement = title
|
|
183
184
|
} else if (componentJoinKey(href)?.startsWith(MUNICIPALITY_ID_PREFIX)) {
|
|
@@ -234,10 +235,10 @@ export function createESNavarraAdapter(): CorpusAdapter {
|
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
/**
|
|
237
|
-
* One address's row, or
|
|
238
|
+
* One address's row, or null when it holds too little to render.
|
|
238
239
|
*/
|
|
239
|
-
function composeRow(address: MarkupElement): CanonicalRow |
|
|
240
|
-
const addressID = address.attributes["gml:id"]?.trim()
|
|
240
|
+
function composeRow(address: MarkupElement): CanonicalRow | null {
|
|
241
|
+
const addressID = address.attributes["gml:id"]?.trim() ?? null
|
|
241
242
|
|
|
242
243
|
if (voidDesignatorTypes(address).has(HOUSE_NUMBER_TYPE)) {
|
|
243
244
|
throw new VoidDesignatorError(ES_NAVARRA_ADAPTER_ID, addressID, HOUSE_NUMBER_TYPE)
|
|
@@ -245,8 +246,8 @@ function composeRow(address: MarkupElement): CanonicalRow | undefined {
|
|
|
245
246
|
|
|
246
247
|
const { street, postcode, locality, settlement } = navarraReferencedTitles(address)
|
|
247
248
|
|
|
248
|
-
// Navarra's settlement is a fifth-order title, a *concejo* within the municipality
|
|
249
|
-
// `cadastralRow` writes as a dependent locality only where it differs from the municipality.
|
|
249
|
+
// Navarra's settlement is a fifth-order title, a *concejo* within the municipality.
|
|
250
|
+
// `cadastralRow` writes it as a dependent locality only where it differs from the municipality.
|
|
250
251
|
return cadastralRow(
|
|
251
252
|
{
|
|
252
253
|
street,
|
package/lib/es/cadastre.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
* The two ways a Spanish cadastre states that it holds no value
|
|
6
|
+
* The two ways a Spanish cadastre states that it holds no value. All four cadastres share them.
|
|
7
7
|
*
|
|
8
8
|
* Spain publishes the INSPIRE Addresses theme through four cadastres: the Dirección General del
|
|
9
9
|
* Catastro for 52 provinces, and the Diputación Foral de Bizkaia, the Diputación Foral de Gipuzkoa
|
|
@@ -25,10 +25,9 @@ import type { CanonicalRow } from "#types"
|
|
|
25
25
|
* `S-N` is the Dirección General del Catastro's spelling, on 856 of Ceuta's 8,126 addresses.
|
|
26
26
|
* `S/N` is the Gobierno de Navarra's and the Diputación Foral de Gipuzkoa's.
|
|
27
27
|
*
|
|
28
|
-
*
|
|
29
|
-
* Neither is a number under any jurisdiction's rules, and
|
|
30
|
-
*
|
|
31
|
-
* so a reader scoped to the one spelling its own sample carried would write the other into a row.
|
|
28
|
+
* All four readers accept both.
|
|
29
|
+
* Neither is a number under any jurisdiction's rules, and a reader scoped to one
|
|
30
|
+
* spelling would write the other spelling into a row.
|
|
32
31
|
*/
|
|
33
32
|
const SIN_NUMERO = new Set(["s-n", "s/n"])
|
|
34
33
|
|
|
@@ -36,7 +35,7 @@ const SIN_NUMERO = new Set(["s-n", "s/n"])
|
|
|
36
35
|
* Whether a designator value states that the address has no number.
|
|
37
36
|
*
|
|
38
37
|
* The whole value has to be the token.
|
|
39
|
-
* A value that
|
|
38
|
+
* A value that holds more, such as Gipuzkoa's `S/N-A`, `S/N-C` and `S/N-5`,
|
|
40
39
|
* states something further and is kept as the publisher wrote it: what the trailing part
|
|
41
40
|
* designates is not established, dropping it would merge several addresses of one building,
|
|
42
41
|
* and rewriting it would state a number the publisher did not.
|
|
@@ -46,7 +45,7 @@ export function isSinNumero(value: string): boolean {
|
|
|
46
45
|
}
|
|
47
46
|
|
|
48
47
|
/**
|
|
49
|
-
* The house number a Spanish cadastre states, or
|
|
48
|
+
* The house number a Spanish cadastre states, or null where it states that there is none.
|
|
50
49
|
*
|
|
51
50
|
* @param types The publisher's own designator types, in the caller's order of precedence.
|
|
52
51
|
* The Dirección General del Catastro writes the type as the element text `1`, while Navarra
|
|
@@ -55,10 +54,10 @@ export function isSinNumero(value: string): boolean {
|
|
|
55
54
|
export function spanishHouseNumber(
|
|
56
55
|
byType: ReadonlyMap<string, readonly string[]>,
|
|
57
56
|
...types: readonly string[]
|
|
58
|
-
): string |
|
|
57
|
+
): string | null {
|
|
59
58
|
const value = designator(byType, ...types)
|
|
60
59
|
|
|
61
|
-
if (!value || isSinNumero(value)) return
|
|
60
|
+
if (!value || isSinNumero(value)) return null
|
|
62
61
|
|
|
63
62
|
return value
|
|
64
63
|
}
|
|
@@ -72,9 +71,7 @@ export function spanishHouseNumber(
|
|
|
72
71
|
* Where the cadastre holds no postcode it writes the same identifier with that segment empty,
|
|
73
72
|
* `ES.SDGC.PD.55.101.` and `ES.GFA.PD.059.`, against no feature of that id.
|
|
74
73
|
*
|
|
75
|
-
* Those truncated references are the only unresolvable ones measured in either
|
|
76
|
-
* file: 70 of Ceuta's 8,126 addresses carry one, while its thoroughfare
|
|
77
|
-
* and administrative-unit references resolve 8,126 of 8,126 each.
|
|
74
|
+
* Those truncated references are the only unresolvable ones measured in either file.
|
|
78
75
|
* A reader taking every unresolved reference as an absence would also swallow a genuinely
|
|
79
76
|
* broken join, so the two are separated here and every other unresolved reference raises.
|
|
80
77
|
*/
|
|
@@ -92,27 +89,29 @@ export interface CadastralAddress {
|
|
|
92
89
|
/**
|
|
93
90
|
* The thoroughfare name the address references, absent where the publisher writes none.
|
|
94
91
|
*/
|
|
95
|
-
street: string |
|
|
92
|
+
street: string | null
|
|
96
93
|
/**
|
|
97
94
|
* The house number this cadastre's own designator type states.
|
|
98
95
|
*/
|
|
99
|
-
house: string |
|
|
96
|
+
house: string | null
|
|
100
97
|
/**
|
|
101
98
|
* The postal descriptor's code.
|
|
102
99
|
*/
|
|
103
|
-
postcode: string |
|
|
100
|
+
postcode: string | null
|
|
104
101
|
/**
|
|
105
102
|
* The municipality-level administrative unit's name.
|
|
106
103
|
*/
|
|
107
|
-
locality: string |
|
|
104
|
+
locality: string | null
|
|
108
105
|
/**
|
|
109
|
-
* The address-area name
|
|
106
|
+
* The address-area name.
|
|
107
|
+
* It is a settlement within the municipality.
|
|
110
108
|
*/
|
|
111
|
-
settlement: string |
|
|
109
|
+
settlement: string | null
|
|
112
110
|
/**
|
|
113
|
-
* The publisher's own identifier for the address
|
|
111
|
+
* The publisher's own identifier for the address.
|
|
112
|
+
* It keys `source_id` where it exists.
|
|
114
113
|
*/
|
|
115
|
-
addressID: string |
|
|
114
|
+
addressID: string | null
|
|
116
115
|
}
|
|
117
116
|
|
|
118
117
|
/**
|
|
@@ -136,16 +135,17 @@ export interface CadastralSource {
|
|
|
136
135
|
* The address area supplies a dependent locality only where the two differ.
|
|
137
136
|
* The line renders in Spain's order.
|
|
138
137
|
*
|
|
139
|
-
*
|
|
138
|
+
* Each adapter would otherwise repeat those 42 lines four times.
|
|
140
139
|
*
|
|
141
|
-
* Returns `
|
|
142
|
-
* nor an address area,
|
|
143
|
-
*
|
|
140
|
+
* Returns `null` in two cases.
|
|
141
|
+
* The address holds neither a municipality nor an address area, so the row would have no locality.
|
|
142
|
+
*
|
|
143
|
+
* Otherwise `formatAddressRow` returns `null` for the components it was given.
|
|
144
144
|
*/
|
|
145
|
-
export function cadastralRow(address: CadastralAddress, source: CadastralSource): CanonicalRow |
|
|
145
|
+
export function cadastralRow(address: CadastralAddress, source: CadastralSource): CanonicalRow | null {
|
|
146
146
|
const place = address.locality ?? address.settlement
|
|
147
147
|
|
|
148
|
-
if (!place) return
|
|
148
|
+
if (!place) return null
|
|
149
149
|
|
|
150
150
|
const components: CanonicalRow["components"] = {}
|
|
151
151
|
|
|
@@ -165,14 +165,14 @@ export function cadastralRow(address: CadastralAddress, source: CadastralSource)
|
|
|
165
165
|
|
|
166
166
|
// The address area is a settlement within the municipality where the two names differ,
|
|
167
167
|
// and repeats the municipality where they do not.
|
|
168
|
-
//
|
|
168
|
+
// The repetition would state a dependent locality the publisher does not hold.
|
|
169
169
|
if (address.settlement && address.locality && address.settlement !== address.locality) {
|
|
170
170
|
components.dependent_locality = address.settlement
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
const rendered = formatAddressRow(components, "ES", { singleLine: true })
|
|
174
174
|
|
|
175
|
-
if (!rendered) return
|
|
175
|
+
if (!rendered) return null
|
|
176
176
|
|
|
177
177
|
const { raw, components: aligned } = rendered
|
|
178
178
|
|
|
@@ -181,9 +181,9 @@ export function cadastralRow(address: CadastralAddress, source: CadastralSource)
|
|
|
181
181
|
components: aligned,
|
|
182
182
|
country: "ES",
|
|
183
183
|
locale: "es-ES",
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
//
|
|
184
|
+
// The row omits `register`.
|
|
185
|
+
// `runAdapter` stamps the adapter's own declaration onto it.
|
|
186
|
+
// A per-row `register` would repeat what the adapter already states once.
|
|
187
187
|
source: source.adapterID,
|
|
188
188
|
source_id: address.addressID
|
|
189
189
|
? `${source.adapterID}-${address.addressID}`
|