@mailwoman/corpus 10.0.0 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -34
- package/data/PROVENANCE.md +623 -17
- package/data/address-source-register.json +14249 -0
- package/data/builds/v0.7.0-de-holdout/inputs.json +22 -0
- package/data/builds/v0.8.0-registers/inputs.json +92 -0
- package/data/license-decisions.json +1603 -0
- package/data/licenses/PROVENANCE.md +65 -0
- package/data/licenses/cdla-permissive-2.0.md +43 -0
- package/data/licenses/geonames-publication.md +34 -0
- package/data/licenses/licence-ouverte-2.0.md +36 -0
- package/data/licenses/national-address-database.md +46 -0
- package/data/licenses/nlod-2.0.md +90 -0
- package/data/licenses/sirene-publication.md +38 -0
- package/data/licenses/whosonfirst-licenses.md +65 -0
- package/data/source-resolutions.json +804 -0
- package/data/sub-venue-lexicon.json +1 -1
- package/data/training-manifests/v0.7.0-de-holdout.effective.json +477 -0
- package/data/training-manifests/v0.7.0-de-holdout.json +78 -0
- package/lib/adapters/cordis/adapter.ts +785 -0
- package/lib/adapters/dedup-key.ts +40 -0
- package/lib/adapters/errors.ts +21 -0
- package/lib/adapters/geonames/adapter.ts +42 -52
- package/lib/adapters/geonames/postal/adapter.ts +31 -37
- package/lib/adapters/gleif/adapter.ts +828 -0
- package/lib/adapters/libpostal-dictionary.ts +39 -0
- package/lib/adapters/openaddresses/adapter.ts +51 -55
- package/lib/adapters/osm/adapter.ts +148 -70
- package/lib/adapters/overture/adapter.ts +52 -43
- package/lib/adapters/po-box/adapter.ts +202 -0
- package/lib/adapters/registry.ts +79 -0
- package/lib/adapters/sha256-stream.ts +49 -0
- package/lib/adapters/source-id.ts +49 -0
- package/lib/adapters/street-line.ts +135 -0
- package/lib/adapters/wof/admin/json/adapter.ts +48 -33
- package/lib/adapters/wof/json-rows.ts +56 -26
- package/lib/adapters/wof/postalcode-json/adapter.ts +57 -59
- package/lib/adapters.ts +230 -0
- package/lib/au/adapters/gnaf/adapter.ts +35 -43
- package/lib/au/adapters/gnaf/assemble.ts +31 -51
- package/lib/be/adapters/brussels/adapter.ts +566 -0
- package/lib/be/adapters/vlaanderen/adapter.ts +670 -0
- package/lib/be/adapters/wallonie/adapter.ts +537 -0
- package/lib/be/tools/fetch/brussels.ts +239 -0
- package/lib/be/tools/fetch/wallonie.ts +274 -0
- package/lib/build/adapters.ts +110 -0
- package/lib/build/align.ts +364 -0
- package/lib/build/checkpoint.ts +131 -0
- package/lib/build/eligibility.ts +96 -0
- package/lib/build/heap.ts +53 -0
- package/lib/build/inputs.ts +81 -0
- package/lib/build/rows.ts +21 -0
- package/lib/build/types.ts +232 -0
- package/lib/build.ts +127 -315
- package/lib/cn/recipes/organizational-units.ts +20 -41
- package/lib/cz/adapters/cuzk/adapter.ts +317 -0
- package/lib/cz/recipes/pcfirst-preposition.ts +40 -27
- package/lib/cz/tools/fetch/cuzk.ts +699 -0
- package/lib/de/recipes/locale.ts +68 -58
- package/lib/directory.ts +31 -0
- package/lib/dk/adapters/inspire/adapter.ts +345 -0
- package/lib/dk/tools/fetch/inspire.ts +321 -0
- package/lib/ee/adapters/ads/adapter.ts +246 -0
- package/lib/ee/tools/fetch/ads.ts +270 -0
- package/lib/env.ts +6 -2
- package/lib/es/adapters/bizkaia/adapter.ts +388 -0
- package/lib/es/adapters/catastro/adapter.ts +343 -0
- package/lib/es/adapters/gipuzkoa/adapter.ts +263 -0
- package/lib/es/adapters/navarra/adapter.ts +289 -0
- package/lib/es/cadastre.ts +194 -0
- package/lib/es/tools/fetch/bizkaia.ts +748 -0
- package/lib/es/tools/fetch/catastro.ts +754 -0
- package/lib/es/tools/fetch/gipuzkoa.ts +336 -0
- package/lib/es/tools/fetch/navarra.ts +488 -0
- package/lib/fi/adapters/ryhti/adapter.ts +323 -0
- package/lib/fi/tools/fetch/ryhti.ts +476 -0
- package/lib/fingerprints.ts +154 -0
- package/lib/fr/adapters/annuaire-education/adapter.ts +598 -0
- package/lib/fr/adapters/ban/adapter.ts +87 -59
- package/lib/fr/adapters/finess/adapter.ts +618 -0
- package/lib/fr/adapters/finess/postal-lines.ts +157 -0
- package/lib/fr/adapters/finess/voie-type.ts +200 -0
- package/lib/fr/insee-country.ts +62 -0
- package/lib/fr/recipes/admin-split.ts +38 -60
- package/lib/fr/recipes/bare-street.ts +37 -50
- package/lib/fr/recipes/fragment.ts +59 -142
- package/lib/fr/recipes/lieudit.ts +109 -73
- package/lib/fr/recipes/order.ts +32 -59
- package/lib/fr/{adapters/ban/street-decompose.ts → street-decompose.ts} +4 -3
- package/lib/fr/tools/fetch/annuaire-education.ts +306 -0
- package/lib/fr/tools/fetch/ban.ts +28 -19
- package/lib/fr/tools/fetch/finess.ts +352 -0
- package/lib/gauntlet-inputs.ts +92 -0
- package/lib/index.ts +9 -3
- package/lib/inspire/address.ts +457 -0
- package/lib/inspire/archive.ts +44 -0
- package/lib/inspire/errors.ts +71 -0
- package/lib/inspire/stream.ts +262 -0
- package/lib/international/recipes/locale.ts +134 -176
- package/lib/it/adapters/anac/adapter.ts +522 -0
- package/lib/it/tools/fetch/anac.ts +394 -0
- package/lib/jp/adapters/wof-admin/adapter.ts +27 -17
- package/lib/jp/tools/fetch/houjin.ts +16 -18
- package/lib/kr/adapters/juso/label-rows.ts +24 -44
- package/lib/kr/adapters/localdata/align.ts +20 -31
- package/lib/kr/adapters/localdata/key-index.ts +17 -25
- package/lib/kr/adapters/localdata/permit-rows.ts +33 -26
- package/lib/kr/tools/fetch/juso.ts +19 -21
- package/lib/kr/tools/fetch/localdata.ts +28 -29
- package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
- package/lib/lu/tools/fetch/bd-adresses.ts +351 -0
- package/lib/lv/adapters/varis/adapter.ts +499 -0
- package/lib/lv/tools/fetch/varis.ts +214 -0
- package/lib/nl/adapters/kadaster/adapter.ts +386 -0
- package/lib/nl/recipes/postcode.ts +46 -24
- package/lib/nl/tools/fetch/kadaster.ts +298 -0
- package/lib/no/adapters/matrikkelen/adapter.ts +187 -0
- package/lib/no/recipes/fragment.ts +34 -58
- package/lib/no/recipes/street/led.ts +44 -25
- package/lib/no/recipes/{street/index.ts → street.ts} +29 -11
- package/lib/no/tools/fetch/matrikkelen.ts +519 -0
- package/lib/parquet/duckdb.ts +144 -0
- package/lib/parquet/readers.ts +86 -0
- package/lib/parquet/schema.ts +214 -0
- package/lib/parquet/shuffle.ts +59 -0
- package/lib/parquet/span-sql.ts +54 -0
- package/lib/parquet/streams.ts +113 -0
- package/lib/parquet/writers.ts +451 -0
- package/lib/pl/adapters/emuia/adapter.ts +202 -0
- package/lib/pl/tools/fetch/emuia.ts +360 -0
- package/lib/recipes/anchor-absorption.ts +30 -19
- package/lib/recipes/bare/country.ts +24 -32
- package/lib/recipes/bare/postcode/eval.ts +1 -1
- package/lib/recipes/bare/postcode.ts +346 -0
- package/lib/recipes/boundary-stress.ts +36 -19
- package/lib/recipes/country-balanced.ts +66 -86
- package/lib/recipes/house-venue.ts +31 -13
- package/lib/recipes/intersection.ts +82 -60
- package/lib/recipes/po/box/cedex/au-nz.ts +3 -3
- package/lib/recipes/po/box/cedex/ca.ts +3 -2
- package/lib/recipes/po/box/cedex/fr.ts +4 -3
- package/lib/recipes/po/box/cedex/phrases.ts +7 -6
- package/lib/recipes/po/box/cedex/recipe.ts +28 -16
- package/lib/recipes/po/box/cedex/sources.ts +3 -3
- package/lib/recipes/po/box/cedex/us.ts +7 -2
- package/lib/recipes/po/{box/index.ts → box.ts} +39 -18
- package/lib/recipes/scaffold.ts +252 -153
- package/lib/recipes/sources.ts +399 -0
- package/lib/recipes/street/affix.ts +54 -154
- package/lib/recipes/street/bare.ts +28 -15
- package/lib/recipes/street.ts +32 -8
- package/lib/recipes/sub/venue/context.ts +30 -23
- package/lib/recipes/sub/venue/render.ts +170 -0
- package/lib/recipes/sub/venue/sources.ts +68 -219
- package/lib/recipes/sub/venue.ts +801 -0
- package/lib/recipes/trailing-region.ts +69 -85
- package/lib/recipes/unit/sources.ts +44 -0
- package/lib/recipes/unit.ts +101 -89
- package/lib/{recipes/index.ts → recipes.ts} +13 -11
- package/lib/registers.ts +278 -0
- package/lib/ro/adapters/retea-scolara/adapter.ts +264 -0
- package/lib/ro/tools/fetch/retea-scolara.ts +187 -0
- package/lib/runner.ts +220 -84
- package/lib/sg/recipes/register.ts +46 -52
- package/lib/sg/tools/fetch/acra.ts +20 -25
- package/lib/si/recipes/bare-village.ts +34 -17
- package/lib/sk/adapters/inspire/adapter.ts +395 -0
- package/lib/sk/tools/fetch/inspire.ts +402 -0
- package/lib/source-register/effective-manifest.ts +659 -0
- package/lib/source-register/register.ts +539 -0
- package/lib/source-register/training-manifest.ts +218 -0
- package/lib/source-register/types.ts +590 -0
- package/lib/source-register.ts +71 -0
- package/lib/south-asia/recipes/register.ts +45 -26
- package/lib/subvenue/harvest.ts +251 -0
- package/lib/{tools/sub/venue → subvenue}/promotions.ts +33 -70
- package/lib/subvenue/surfaces.ts +94 -0
- package/lib/subvenue/table.ts +264 -0
- package/lib/surfaces/locale.ts +246 -0
- package/lib/synthesizers/anchor-absorption.ts +55 -91
- package/lib/synthesizers/boundary-stress.ts +49 -131
- package/lib/synthesizers/house-venue.ts +44 -102
- package/lib/synthesizers/intersection.ts +37 -26
- package/lib/synthesizers/no-street.ts +70 -119
- package/lib/synthesizers/po-box.ts +90 -105
- package/lib/synthesizers/street.ts +46 -34
- package/lib/synthesizers/utils.ts +64 -218
- package/lib/test-kit/corpus-recipe.ts +45 -28
- package/lib/test-kit.ts +116 -0
- package/lib/tools/align-canonical.ts +64 -0
- package/lib/tools/audit.ts +113 -118
- package/lib/tools/corpus-stats.ts +44 -30
- package/lib/tools/fetch/atom.ts +164 -0
- package/lib/tools/fetch/cordis.ts +318 -0
- package/lib/tools/fetch/download/manifest.ts +34 -22
- package/lib/tools/fetch/download/network.ts +55 -31
- package/lib/tools/fetch/download/retry.ts +26 -25
- package/lib/tools/fetch/geonames/dump.ts +72 -54
- package/lib/tools/fetch/geonames/postal.ts +27 -62
- package/lib/tools/fetch/gleif.ts +360 -0
- package/lib/tools/fetch/header.ts +69 -0
- package/lib/tools/fetch/inspire-addresses.ts +495 -0
- package/lib/tools/fetch/openaddresses.ts +22 -111
- package/lib/tools/fetch/ourairports.ts +18 -51
- package/lib/tools/fetch/ppd.ts +10 -8
- package/lib/tools/fetch/vlaanderen-ad.ts +435 -0
- package/lib/tools/fetch/wfs-harvest.ts +943 -0
- package/lib/tools/fetch/wikidata-subvenue.ts +45 -145
- package/lib/tools/fetch/zip-archive.ts +100 -0
- package/lib/tools/fetch.ts +143 -0
- package/lib/tools/golden/expand.ts +74 -43
- package/lib/tools/golden/promote.ts +41 -32
- package/lib/tools/golden/relabel-street/directory.ts +63 -36
- package/lib/tools/golden/relabel-street/row.ts +28 -106
- package/lib/tools/ingest-csv.ts +45 -48
- package/lib/tools/jsonl-to-parquet.ts +59 -98
- package/lib/tools/lint/recipe-output/vocab.ts +366 -0
- package/lib/tools/lint/{slice/index.ts → recipe-output.ts} +107 -121
- package/lib/tools/migrate/overlay-parquet.ts +173 -0
- package/lib/tools/migrate/recipe-output.ts +153 -0
- package/lib/tools/migrate/source-names.ts +161 -0
- package/lib/tools/{slice → overlay}/kryptonite.ts +43 -36
- package/lib/tools/overlay/manifest.ts +407 -0
- package/lib/tools/overlay/merge-source.ts +138 -0
- package/lib/tools/overlay/split-slice.ts +144 -0
- package/lib/tools/{slice → overlay}/translit.ts +74 -58
- package/lib/tools/overture-subvenue.ts +17 -90
- package/lib/tools/postcode-triples.ts +281 -210
- package/lib/tools/source-register/build.ts +819 -0
- package/lib/tools/sub/venue/head-nouns.ts +38 -75
- package/lib/tools/sub/venue/lexicon.ts +71 -106
- package/lib/tools/sub/venue/wikidata.ts +13 -10
- package/lib/tools.ts +31 -0
- package/lib/tw/tools/fetch/gcis.ts +17 -16
- package/lib/types.ts +304 -101
- package/lib/us/adapters/fcc-bdc/adapter.ts +26 -41
- package/lib/us/adapters/state/hi-schools/adapter.ts +28 -17
- package/lib/us/adapters/state/hi-schools/workbook.ts +7 -2
- package/lib/us/adapters/state/ia-contractors/adapter.ts +27 -15
- package/lib/us/adapters/state/ny-notaries/adapter.ts +24 -25
- package/lib/us/adapters/state/tx-notaries/adapter.ts +21 -15
- package/lib/us/adapters/tiger/adapter.ts +19 -44
- package/lib/us/adapters/tiger/street-decompose.ts +7 -17
- package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +49 -34
- package/lib/us/adapters/usgov/imls-pls/adapter.ts +25 -19
- package/lib/us/adapters/usgov/irs-bmf/adapter.ts +32 -23
- package/lib/us/adapters/usgov/nad/adapter.ts +51 -112
- package/lib/us/adapters/usgov/nppes/adapter.ts +72 -35
- package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +43 -30
- package/lib/us/fips-state.ts +17 -8
- package/lib/us/tools/fetch/hrsa.ts +7 -8
- package/lib/us/tools/fetch/imls-pls.ts +17 -35
- package/lib/us/tools/fetch/nad.ts +50 -32
- package/lib/us/tools/fetch/nppes.ts +23 -35
- package/lib/us/tools/fetch/state/hi-schools.ts +22 -16
- package/lib/us/tools/fetch/state/sources.ts +12 -12
- package/lib/us/tools/fetch/tiger-full.ts +21 -73
- package/lib/utils/align.ts +42 -52
- package/lib/utils/{slice-stats.ts → cooccurrence-stats.ts} +22 -16
- package/lib/utils/golden.ts +34 -49
- package/lib/utils/license.ts +238 -26
- package/lib/utils/split.ts +205 -88
- package/lib/utils/tokenize.ts +22 -34
- package/lib/utils/wof-json.ts +129 -76
- package/lib/{utils/index.ts → utils.ts} +0 -1
- package/lib/ve/recipes/reviewed-postcode-tail.ts +40 -13
- package/out/adapters/cordis/adapter.d.ts +324 -0
- package/out/adapters/cordis/adapter.d.ts.map +1 -0
- package/out/adapters/cordis/adapter.js +616 -0
- package/out/adapters/cordis/adapter.js.map +1 -0
- package/out/adapters/dedup-key.d.ts +30 -0
- package/out/adapters/dedup-key.d.ts.map +1 -0
- package/out/adapters/dedup-key.js +35 -0
- package/out/adapters/dedup-key.js.map +1 -0
- package/out/adapters/errors.d.ts +17 -0
- package/out/adapters/errors.d.ts.map +1 -0
- package/out/adapters/errors.js +20 -0
- package/out/adapters/errors.js.map +1 -0
- package/out/adapters/geonames/adapter.d.ts +26 -28
- package/out/adapters/geonames/adapter.d.ts.map +1 -1
- package/out/adapters/geonames/adapter.js +39 -49
- package/out/adapters/geonames/adapter.js.map +1 -1
- package/out/adapters/geonames/postal/adapter.d.ts +14 -27
- package/out/adapters/geonames/postal/adapter.d.ts.map +1 -1
- package/out/adapters/geonames/postal/adapter.js +30 -35
- package/out/adapters/geonames/postal/adapter.js.map +1 -1
- package/out/adapters/gleif/adapter.d.ts +293 -0
- package/out/adapters/gleif/adapter.d.ts.map +1 -0
- package/out/adapters/gleif/adapter.js +684 -0
- package/out/adapters/gleif/adapter.js.map +1 -0
- package/out/adapters/libpostal-dictionary.d.ts +22 -0
- package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
- package/out/adapters/libpostal-dictionary.js +36 -0
- package/out/adapters/libpostal-dictionary.js.map +1 -0
- package/out/adapters/openaddresses/adapter.d.ts +28 -43
- package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/adapters/openaddresses/adapter.js +34 -46
- package/out/adapters/openaddresses/adapter.js.map +1 -1
- package/out/adapters/osm/adapter.d.ts +48 -42
- package/out/adapters/osm/adapter.d.ts.map +1 -1
- package/out/adapters/osm/adapter.js +116 -67
- package/out/adapters/osm/adapter.js.map +1 -1
- package/out/adapters/overture/adapter.d.ts +11 -37
- package/out/adapters/overture/adapter.d.ts.map +1 -1
- package/out/adapters/overture/adapter.js +45 -42
- package/out/adapters/overture/adapter.js.map +1 -1
- package/out/adapters/po-box/adapter.d.ts +63 -0
- package/out/adapters/po-box/adapter.d.ts.map +1 -0
- package/out/adapters/{synth-po-box → po-box}/adapter.js +45 -46
- package/out/adapters/po-box/adapter.js.map +1 -0
- package/out/adapters/registry.d.ts +55 -0
- package/out/adapters/registry.d.ts.map +1 -0
- package/out/adapters/registry.js +43 -0
- package/out/adapters/registry.js.map +1 -0
- package/out/adapters/sha256-stream.d.ts +26 -0
- package/out/adapters/sha256-stream.d.ts.map +1 -0
- package/out/adapters/sha256-stream.js +34 -0
- package/out/adapters/sha256-stream.js.map +1 -0
- package/out/adapters/source-id.d.ts +33 -0
- package/out/adapters/source-id.d.ts.map +1 -0
- package/out/adapters/source-id.js +42 -0
- package/out/adapters/source-id.js.map +1 -0
- package/out/adapters/street-line.d.ts +102 -0
- package/out/adapters/street-line.d.ts.map +1 -0
- package/out/adapters/street-line.js +117 -0
- package/out/adapters/street-line.js.map +1 -0
- package/out/adapters/wof/admin/json/adapter.d.ts +27 -18
- package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -1
- package/out/adapters/wof/admin/json/adapter.js +47 -31
- package/out/adapters/wof/admin/json/adapter.js.map +1 -1
- package/out/adapters/wof/json-rows.d.ts +35 -19
- package/out/adapters/wof/json-rows.d.ts.map +1 -1
- package/out/adapters/wof/json-rows.js +35 -15
- package/out/adapters/wof/json-rows.js.map +1 -1
- package/out/adapters/wof/postalcode-json/adapter.d.ts +22 -38
- package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -1
- package/out/adapters/wof/postalcode-json/adapter.js +55 -57
- package/out/adapters/wof/postalcode-json/adapter.js.map +1 -1
- package/out/adapters.d.ts +75 -0
- package/out/adapters.d.ts.map +1 -0
- package/out/adapters.js +167 -0
- package/out/adapters.js.map +1 -0
- package/out/au/adapters/gnaf/adapter.d.ts +15 -27
- package/out/au/adapters/gnaf/adapter.d.ts.map +1 -1
- package/out/au/adapters/gnaf/adapter.js +34 -42
- package/out/au/adapters/gnaf/adapter.js.map +1 -1
- package/out/au/adapters/gnaf/assemble.d.ts +15 -26
- package/out/au/adapters/gnaf/assemble.d.ts.map +1 -1
- package/out/au/adapters/gnaf/assemble.js +26 -46
- package/out/au/adapters/gnaf/assemble.js.map +1 -1
- package/out/be/adapters/brussels/adapter.d.ts +212 -0
- package/out/be/adapters/brussels/adapter.d.ts.map +1 -0
- package/out/be/adapters/brussels/adapter.js +435 -0
- package/out/be/adapters/brussels/adapter.js.map +1 -0
- package/out/be/adapters/vlaanderen/adapter.d.ts +233 -0
- package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
- package/out/be/adapters/vlaanderen/adapter.js +416 -0
- package/out/be/adapters/vlaanderen/adapter.js.map +1 -0
- package/out/be/adapters/wallonie/adapter.d.ts +196 -0
- package/out/be/adapters/wallonie/adapter.d.ts.map +1 -0
- package/out/be/adapters/wallonie/adapter.js +437 -0
- package/out/be/adapters/wallonie/adapter.js.map +1 -0
- package/out/be/tools/fetch/brussels.d.ts +119 -0
- package/out/be/tools/fetch/brussels.d.ts.map +1 -0
- package/out/be/tools/fetch/brussels.js +146 -0
- package/out/be/tools/fetch/brussels.js.map +1 -0
- package/out/be/tools/fetch/wallonie.d.ts +119 -0
- package/out/be/tools/fetch/wallonie.d.ts.map +1 -0
- package/out/be/tools/fetch/wallonie.js +167 -0
- package/out/be/tools/fetch/wallonie.js.map +1 -0
- package/out/build/adapters.d.ts +33 -0
- package/out/build/adapters.d.ts.map +1 -0
- package/out/build/adapters.js +68 -0
- package/out/build/adapters.js.map +1 -0
- package/out/build/align.d.ts +73 -0
- package/out/build/align.d.ts.map +1 -0
- package/out/build/align.js +226 -0
- package/out/build/align.js.map +1 -0
- package/out/build/checkpoint.d.ts +94 -0
- package/out/build/checkpoint.d.ts.map +1 -0
- package/out/build/checkpoint.js +59 -0
- package/out/build/checkpoint.js.map +1 -0
- package/out/build/eligibility.d.ts +47 -0
- package/out/build/eligibility.d.ts.map +1 -0
- package/out/build/eligibility.js +80 -0
- package/out/build/eligibility.js.map +1 -0
- package/out/build/heap.d.ts +28 -0
- package/out/build/heap.d.ts.map +1 -0
- package/out/build/heap.js +47 -0
- package/out/build/heap.js.map +1 -0
- package/out/build/inputs.d.ts +52 -0
- package/out/build/inputs.d.ts.map +1 -0
- package/out/build/inputs.js +49 -0
- package/out/build/inputs.js.map +1 -0
- package/out/build/rows.d.ts +16 -0
- package/out/build/rows.d.ts.map +1 -0
- package/out/build/rows.js +19 -0
- package/out/build/rows.js.map +1 -0
- package/out/build/types.d.ts +220 -0
- package/out/build/types.d.ts.map +1 -0
- package/out/build/types.js +34 -0
- package/out/build/types.js.map +1 -0
- package/out/build.d.ts +6 -121
- package/out/build.d.ts.map +1 -1
- package/out/build.js +112 -207
- package/out/build.js.map +1 -1
- package/out/cn/recipes/organizational-units.d.ts +5 -22
- package/out/cn/recipes/organizational-units.d.ts.map +1 -1
- package/out/cn/recipes/organizational-units.js +20 -41
- package/out/cn/recipes/organizational-units.js.map +1 -1
- package/out/cz/adapters/cuzk/adapter.d.ts +52 -0
- package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -0
- package/out/cz/adapters/cuzk/adapter.js +266 -0
- package/out/cz/adapters/cuzk/adapter.js.map +1 -0
- package/out/cz/recipes/pcfirst-preposition.d.ts +7 -11
- package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -1
- package/out/cz/recipes/pcfirst-preposition.js +36 -27
- package/out/cz/recipes/pcfirst-preposition.js.map +1 -1
- package/out/cz/tools/fetch/cuzk.d.ts +272 -0
- package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
- package/out/cz/tools/fetch/cuzk.js +446 -0
- package/out/cz/tools/fetch/cuzk.js.map +1 -0
- package/out/de/recipes/locale.d.ts +24 -26
- package/out/de/recipes/locale.d.ts.map +1 -1
- package/out/de/recipes/locale.js +66 -56
- package/out/de/recipes/locale.js.map +1 -1
- package/out/directory.d.ts +20 -0
- package/out/directory.d.ts.map +1 -0
- package/out/directory.js +27 -0
- package/out/directory.js.map +1 -0
- package/out/dk/adapters/inspire/adapter.d.ts +154 -0
- package/out/dk/adapters/inspire/adapter.d.ts.map +1 -0
- package/out/dk/adapters/inspire/adapter.js +258 -0
- package/out/dk/adapters/inspire/adapter.js.map +1 -0
- package/out/dk/tools/fetch/inspire.d.ts +100 -0
- package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/dk/tools/fetch/inspire.js +230 -0
- package/out/dk/tools/fetch/inspire.js.map +1 -0
- package/out/ee/adapters/ads/adapter.d.ts +109 -0
- package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
- package/out/ee/adapters/ads/adapter.js +191 -0
- package/out/ee/adapters/ads/adapter.js.map +1 -0
- package/out/ee/tools/fetch/ads.d.ts +123 -0
- package/out/ee/tools/fetch/ads.d.ts.map +1 -0
- package/out/ee/tools/fetch/ads.js +195 -0
- package/out/ee/tools/fetch/ads.js.map +1 -0
- package/out/env.d.ts +6 -2
- package/out/env.d.ts.map +1 -1
- package/out/env.js +6 -2
- package/out/env.js.map +1 -1
- package/out/es/adapters/bizkaia/adapter.d.ts +143 -0
- package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -0
- package/out/es/adapters/bizkaia/adapter.js +332 -0
- package/out/es/adapters/bizkaia/adapter.js.map +1 -0
- package/out/es/adapters/catastro/adapter.d.ts +104 -0
- package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
- package/out/es/adapters/catastro/adapter.js +288 -0
- package/out/es/adapters/catastro/adapter.js.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts +91 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.js +225 -0
- package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
- package/out/es/adapters/navarra/adapter.d.ts +105 -0
- package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
- package/out/es/adapters/navarra/adapter.js +241 -0
- package/out/es/adapters/navarra/adapter.js.map +1 -0
- package/out/es/cadastre.d.ts +109 -0
- package/out/es/cadastre.d.ts.map +1 -0
- package/out/es/cadastre.js +130 -0
- package/out/es/cadastre.js.map +1 -0
- package/out/es/tools/fetch/bizkaia.d.ts +278 -0
- package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
- package/out/es/tools/fetch/bizkaia.js +477 -0
- package/out/es/tools/fetch/bizkaia.js.map +1 -0
- package/out/es/tools/fetch/catastro.d.ts +272 -0
- package/out/es/tools/fetch/catastro.d.ts.map +1 -0
- package/out/es/tools/fetch/catastro.js +486 -0
- package/out/es/tools/fetch/catastro.js.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts +162 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.js +209 -0
- package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
- package/out/es/tools/fetch/navarra.d.ts +189 -0
- package/out/es/tools/fetch/navarra.d.ts.map +1 -0
- package/out/es/tools/fetch/navarra.js +316 -0
- package/out/es/tools/fetch/navarra.js.map +1 -0
- package/out/fi/adapters/ryhti/adapter.d.ts +115 -0
- package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
- package/out/fi/adapters/ryhti/adapter.js +244 -0
- package/out/fi/adapters/ryhti/adapter.js.map +1 -0
- package/out/fi/tools/fetch/ryhti.d.ts +206 -0
- package/out/fi/tools/fetch/ryhti.d.ts.map +1 -0
- package/out/fi/tools/fetch/ryhti.js +327 -0
- package/out/fi/tools/fetch/ryhti.js.map +1 -0
- package/out/fingerprints.d.ts +68 -0
- package/out/fingerprints.d.ts.map +1 -0
- package/out/fingerprints.js +130 -0
- package/out/fingerprints.js.map +1 -0
- package/out/fr/adapters/annuaire-education/adapter.d.ts +236 -0
- package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -0
- package/out/fr/adapters/annuaire-education/adapter.js +475 -0
- package/out/fr/adapters/annuaire-education/adapter.js.map +1 -0
- package/out/fr/adapters/ban/adapter.d.ts +19 -25
- package/out/fr/adapters/ban/adapter.d.ts.map +1 -1
- package/out/fr/adapters/ban/adapter.js +65 -54
- package/out/fr/adapters/ban/adapter.js.map +1 -1
- package/out/fr/adapters/finess/adapter.d.ts +276 -0
- package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
- package/out/fr/adapters/finess/adapter.js +519 -0
- package/out/fr/adapters/finess/adapter.js.map +1 -0
- package/out/fr/adapters/finess/postal-lines.d.ts +61 -0
- package/out/fr/adapters/finess/postal-lines.d.ts.map +1 -0
- package/out/fr/adapters/finess/postal-lines.js +114 -0
- package/out/fr/adapters/finess/postal-lines.js.map +1 -0
- package/out/fr/adapters/finess/voie-type.d.ts +77 -0
- package/out/fr/adapters/finess/voie-type.d.ts.map +1 -0
- package/out/fr/adapters/finess/voie-type.js +172 -0
- package/out/fr/adapters/finess/voie-type.js.map +1 -0
- package/out/fr/insee-country.d.ts +45 -0
- package/out/fr/insee-country.d.ts.map +1 -0
- package/out/fr/insee-country.js +60 -0
- package/out/fr/insee-country.js.map +1 -0
- package/out/fr/recipes/admin-split.d.ts +4 -27
- package/out/fr/recipes/admin-split.d.ts.map +1 -1
- package/out/fr/recipes/admin-split.js +36 -58
- package/out/fr/recipes/admin-split.js.map +1 -1
- package/out/fr/recipes/bare-street.d.ts +2 -17
- package/out/fr/recipes/bare-street.d.ts.map +1 -1
- package/out/fr/recipes/bare-street.js +35 -50
- package/out/fr/recipes/bare-street.js.map +1 -1
- package/out/fr/recipes/fragment.d.ts +6 -65
- package/out/fr/recipes/fragment.d.ts.map +1 -1
- package/out/fr/recipes/fragment.js +55 -135
- package/out/fr/recipes/fragment.js.map +1 -1
- package/out/fr/recipes/lieudit.d.ts +17 -19
- package/out/fr/recipes/lieudit.d.ts.map +1 -1
- package/out/fr/recipes/lieudit.js +88 -68
- package/out/fr/recipes/lieudit.js.map +1 -1
- package/out/fr/recipes/order.d.ts +4 -27
- package/out/fr/recipes/order.d.ts.map +1 -1
- package/out/fr/recipes/order.js +31 -58
- package/out/fr/recipes/order.js.map +1 -1
- package/out/fr/{adapters/ban/street-decompose.d.ts → street-decompose.d.ts} +3 -2
- package/out/fr/street-decompose.d.ts.map +1 -0
- package/out/fr/{adapters/ban/street-decompose.js → street-decompose.js} +4 -3
- package/out/fr/street-decompose.js.map +1 -0
- package/out/fr/tools/fetch/annuaire-education.d.ts +130 -0
- package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
- package/out/fr/tools/fetch/annuaire-education.js +196 -0
- package/out/fr/tools/fetch/annuaire-education.js.map +1 -0
- package/out/fr/tools/fetch/ban.d.ts +9 -7
- package/out/fr/tools/fetch/ban.d.ts.map +1 -1
- package/out/fr/tools/fetch/ban.js +27 -18
- package/out/fr/tools/fetch/ban.js.map +1 -1
- package/out/fr/tools/fetch/finess.d.ts +145 -0
- package/out/fr/tools/fetch/finess.d.ts.map +1 -0
- package/out/fr/tools/fetch/finess.js +228 -0
- package/out/fr/tools/fetch/finess.js.map +1 -0
- package/out/gauntlet-inputs.d.ts +42 -0
- package/out/gauntlet-inputs.d.ts.map +1 -0
- package/out/gauntlet-inputs.js +78 -0
- package/out/gauntlet-inputs.js.map +1 -0
- package/out/index.d.ts +9 -3
- package/out/index.d.ts.map +1 -1
- package/out/index.js +9 -3
- package/out/index.js.map +1 -1
- package/out/inspire/address.d.ts +251 -0
- package/out/inspire/address.d.ts.map +1 -0
- package/out/inspire/address.js +384 -0
- package/out/inspire/address.js.map +1 -0
- package/out/inspire/archive.d.ts +36 -0
- package/out/inspire/archive.d.ts.map +1 -0
- package/out/inspire/archive.js +42 -0
- package/out/inspire/archive.js.map +1 -0
- package/out/inspire/errors.d.ts +55 -0
- package/out/inspire/errors.d.ts.map +1 -0
- package/out/inspire/errors.js +64 -0
- package/out/inspire/errors.js.map +1 -0
- package/out/inspire/stream.d.ts +137 -0
- package/out/inspire/stream.d.ts.map +1 -0
- package/out/inspire/stream.js +125 -0
- package/out/inspire/stream.js.map +1 -0
- package/out/international/recipes/locale.d.ts +38 -84
- package/out/international/recipes/locale.d.ts.map +1 -1
- package/out/international/recipes/locale.js +112 -151
- package/out/international/recipes/locale.js.map +1 -1
- package/out/it/adapters/anac/adapter.d.ts +267 -0
- package/out/it/adapters/anac/adapter.d.ts.map +1 -0
- package/out/it/adapters/anac/adapter.js +429 -0
- package/out/it/adapters/anac/adapter.js.map +1 -0
- package/out/it/tools/fetch/anac.d.ts +174 -0
- package/out/it/tools/fetch/anac.d.ts.map +1 -0
- package/out/it/tools/fetch/anac.js +272 -0
- package/out/it/tools/fetch/anac.js.map +1 -0
- package/out/jp/adapters/wof-admin/adapter.d.ts +14 -11
- package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -1
- package/out/jp/adapters/wof-admin/adapter.js +27 -16
- package/out/jp/adapters/wof-admin/adapter.js.map +1 -1
- package/out/jp/tools/fetch/houjin.d.ts +7 -4
- package/out/jp/tools/fetch/houjin.d.ts.map +1 -1
- package/out/jp/tools/fetch/houjin.js +15 -11
- package/out/jp/tools/fetch/houjin.js.map +1 -1
- package/out/kr/adapters/juso/label-rows.d.ts +17 -31
- package/out/kr/adapters/juso/label-rows.d.ts.map +1 -1
- package/out/kr/adapters/juso/label-rows.js +19 -41
- package/out/kr/adapters/juso/label-rows.js.map +1 -1
- package/out/kr/adapters/localdata/align.d.ts +4 -16
- package/out/kr/adapters/localdata/align.d.ts.map +1 -1
- package/out/kr/adapters/localdata/align.js +19 -30
- package/out/kr/adapters/localdata/align.js.map +1 -1
- package/out/kr/adapters/localdata/key-index.d.ts +13 -22
- package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
- package/out/kr/adapters/localdata/key-index.js +15 -21
- package/out/kr/adapters/localdata/key-index.js.map +1 -1
- package/out/kr/adapters/localdata/permit-rows.d.ts +21 -14
- package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -1
- package/out/kr/adapters/localdata/permit-rows.js +30 -25
- package/out/kr/adapters/localdata/permit-rows.js.map +1 -1
- package/out/kr/tools/fetch/juso.d.ts +11 -8
- package/out/kr/tools/fetch/juso.d.ts.map +1 -1
- package/out/kr/tools/fetch/juso.js +15 -14
- package/out/kr/tools/fetch/juso.js.map +1 -1
- package/out/kr/tools/fetch/localdata.d.ts +16 -9
- package/out/kr/tools/fetch/localdata.d.ts.map +1 -1
- package/out/kr/tools/fetch/localdata.js +23 -15
- package/out/kr/tools/fetch/localdata.js.map +1 -1
- package/out/lu/adapters/bd-adresses/adapter.d.ts +109 -0
- package/out/lu/adapters/bd-adresses/adapter.d.ts.map +1 -0
- package/out/lu/adapters/bd-adresses/adapter.js +196 -0
- package/out/lu/adapters/bd-adresses/adapter.js.map +1 -0
- package/out/lu/tools/fetch/bd-adresses.d.ts +163 -0
- package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -0
- package/out/lu/tools/fetch/bd-adresses.js +223 -0
- package/out/lu/tools/fetch/bd-adresses.js.map +1 -0
- package/out/lv/adapters/varis/adapter.d.ts +283 -0
- package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
- package/out/lv/adapters/varis/adapter.js +404 -0
- package/out/lv/adapters/varis/adapter.js.map +1 -0
- package/out/lv/tools/fetch/varis.d.ts +80 -0
- package/out/lv/tools/fetch/varis.d.ts.map +1 -0
- package/out/lv/tools/fetch/varis.js +133 -0
- package/out/lv/tools/fetch/varis.js.map +1 -0
- package/out/nl/adapters/kadaster/adapter.d.ts +125 -0
- package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -0
- package/out/nl/adapters/kadaster/adapter.js +310 -0
- package/out/nl/adapters/kadaster/adapter.js.map +1 -0
- package/out/nl/recipes/postcode.d.ts +12 -14
- package/out/nl/recipes/postcode.d.ts.map +1 -1
- package/out/nl/recipes/postcode.js +42 -24
- package/out/nl/recipes/postcode.js.map +1 -1
- package/out/nl/tools/fetch/kadaster.d.ts +155 -0
- package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
- package/out/nl/tools/fetch/kadaster.js +179 -0
- package/out/nl/tools/fetch/kadaster.js.map +1 -0
- package/out/no/adapters/matrikkelen/adapter.d.ts +44 -0
- package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -0
- package/out/no/adapters/matrikkelen/adapter.js +143 -0
- package/out/no/adapters/matrikkelen/adapter.js.map +1 -0
- package/out/no/recipes/fragment.d.ts +1 -33
- package/out/no/recipes/fragment.d.ts.map +1 -1
- package/out/no/recipes/fragment.js +23 -57
- package/out/no/recipes/fragment.js.map +1 -1
- package/out/no/recipes/street/led.d.ts +9 -12
- package/out/no/recipes/street/led.d.ts.map +1 -1
- package/out/no/recipes/street/led.js +34 -24
- package/out/no/recipes/street/led.js.map +1 -1
- package/out/no/recipes/street.d.ts +19 -0
- package/out/no/recipes/street.d.ts.map +1 -0
- package/out/no/recipes/{street/index.js → street.js} +28 -12
- package/out/no/recipes/street.js.map +1 -0
- package/out/no/tools/fetch/matrikkelen.d.ts +251 -0
- package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
- package/out/no/tools/fetch/matrikkelen.js +345 -0
- package/out/no/tools/fetch/matrikkelen.js.map +1 -0
- package/out/parquet/duckdb.d.ts +100 -0
- package/out/parquet/duckdb.d.ts.map +1 -0
- package/out/parquet/duckdb.js +92 -0
- package/out/parquet/duckdb.js.map +1 -0
- package/out/parquet/readers.d.ts +44 -0
- package/out/parquet/readers.d.ts.map +1 -0
- package/out/parquet/readers.js +69 -0
- package/out/parquet/readers.js.map +1 -0
- package/out/parquet/schema.d.ts +95 -0
- package/out/parquet/schema.d.ts.map +1 -0
- package/out/parquet/schema.js +157 -0
- package/out/parquet/schema.js.map +1 -0
- package/out/parquet/shuffle.d.ts +25 -0
- package/out/parquet/shuffle.d.ts.map +1 -0
- package/out/parquet/shuffle.js +44 -0
- package/out/parquet/shuffle.js.map +1 -0
- package/out/parquet/span-sql.d.ts +49 -0
- package/out/parquet/span-sql.d.ts.map +1 -0
- package/out/parquet/span-sql.js +53 -0
- package/out/parquet/span-sql.js.map +1 -0
- package/out/parquet/streams.d.ts +47 -0
- package/out/parquet/streams.d.ts.map +1 -0
- package/out/parquet/streams.js +78 -0
- package/out/parquet/streams.js.map +1 -0
- package/out/parquet/writers.d.ts +124 -0
- package/out/parquet/writers.d.ts.map +1 -0
- package/out/parquet/writers.js +251 -0
- package/out/parquet/writers.js.map +1 -0
- package/out/pl/adapters/emuia/adapter.d.ts +81 -0
- package/out/pl/adapters/emuia/adapter.d.ts.map +1 -0
- package/out/pl/adapters/emuia/adapter.js +178 -0
- package/out/pl/adapters/emuia/adapter.js.map +1 -0
- package/out/pl/tools/fetch/emuia.d.ts +165 -0
- package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
- package/out/pl/tools/fetch/emuia.js +260 -0
- package/out/pl/tools/fetch/emuia.js.map +1 -0
- package/out/recipes/anchor-absorption.d.ts +9 -9
- package/out/recipes/anchor-absorption.d.ts.map +1 -1
- package/out/recipes/anchor-absorption.js +29 -19
- package/out/recipes/anchor-absorption.js.map +1 -1
- package/out/recipes/bare/country.d.ts +2 -20
- package/out/recipes/bare/country.d.ts.map +1 -1
- package/out/recipes/bare/country.js +20 -31
- package/out/recipes/bare/country.js.map +1 -1
- package/out/recipes/bare/postcode/eval.d.ts +1 -1
- package/out/recipes/bare/postcode/eval.js +1 -1
- package/out/recipes/bare/postcode.d.ts +41 -0
- package/out/recipes/bare/postcode.d.ts.map +1 -0
- package/out/recipes/bare/{postcode/index.js → postcode.js} +91 -79
- package/out/recipes/bare/postcode.js.map +1 -0
- package/out/recipes/boundary-stress.d.ts +8 -8
- package/out/recipes/boundary-stress.d.ts.map +1 -1
- package/out/recipes/boundary-stress.js +36 -19
- package/out/recipes/boundary-stress.js.map +1 -1
- package/out/recipes/country-balanced.d.ts +3 -21
- package/out/recipes/country-balanced.d.ts.map +1 -1
- package/out/recipes/country-balanced.js +58 -76
- package/out/recipes/country-balanced.js.map +1 -1
- package/out/recipes/house-venue.d.ts +8 -6
- package/out/recipes/house-venue.d.ts.map +1 -1
- package/out/recipes/house-venue.js +29 -13
- package/out/recipes/house-venue.js.map +1 -1
- package/out/recipes/intersection.d.ts +20 -20
- package/out/recipes/intersection.d.ts.map +1 -1
- package/out/recipes/intersection.js +65 -53
- package/out/recipes/intersection.js.map +1 -1
- package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/au-nz.js +3 -3
- package/out/recipes/po/box/cedex/au-nz.js.map +1 -1
- package/out/recipes/po/box/cedex/ca.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/ca.js +2 -2
- package/out/recipes/po/box/cedex/ca.js.map +1 -1
- package/out/recipes/po/box/cedex/fr.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/fr.js +3 -3
- package/out/recipes/po/box/cedex/fr.js.map +1 -1
- package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/phrases.js +7 -6
- package/out/recipes/po/box/cedex/phrases.js.map +1 -1
- package/out/recipes/po/box/cedex/recipe.d.ts +1 -1
- package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/recipe.js +25 -15
- package/out/recipes/po/box/cedex/recipe.js.map +1 -1
- package/out/recipes/po/box/cedex/sources.d.ts +12 -12
- 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/po/box/cedex/us.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/us.js +5 -2
- package/out/recipes/po/box/cedex/us.js.map +1 -1
- package/out/recipes/po/box.d.ts +18 -0
- package/out/recipes/po/box.d.ts.map +1 -0
- package/out/recipes/po/{box/index.js → box.js} +37 -19
- package/out/recipes/po/box.js.map +1 -0
- package/out/recipes/scaffold.d.ts +211 -138
- package/out/recipes/scaffold.d.ts.map +1 -1
- package/out/recipes/scaffold.js +72 -63
- package/out/recipes/scaffold.js.map +1 -1
- package/out/recipes/sources.d.ts +178 -0
- package/out/recipes/sources.d.ts.map +1 -0
- package/out/recipes/sources.js +348 -0
- package/out/recipes/sources.js.map +1 -0
- package/out/recipes/street/affix.d.ts +20 -50
- package/out/recipes/street/affix.d.ts.map +1 -1
- package/out/recipes/street/affix.js +45 -133
- package/out/recipes/street/affix.js.map +1 -1
- package/out/recipes/street/bare.d.ts +9 -7
- package/out/recipes/street/bare.d.ts.map +1 -1
- package/out/recipes/street/bare.js +25 -14
- package/out/recipes/street/bare.js.map +1 -1
- package/out/recipes/street.d.ts +6 -4
- package/out/recipes/street.d.ts.map +1 -1
- package/out/recipes/street.js +29 -8
- package/out/recipes/street.js.map +1 -1
- package/out/recipes/sub/venue/context.d.ts +12 -9
- package/out/recipes/sub/venue/context.d.ts.map +1 -1
- package/out/recipes/sub/venue/context.js +21 -17
- package/out/recipes/sub/venue/context.js.map +1 -1
- package/out/recipes/sub/venue/render.d.ts +58 -0
- package/out/recipes/sub/venue/render.d.ts.map +1 -0
- package/out/recipes/sub/venue/render.js +118 -0
- package/out/recipes/sub/venue/render.js.map +1 -0
- package/out/recipes/sub/venue/sources.d.ts +49 -92
- package/out/recipes/sub/venue/sources.d.ts.map +1 -1
- package/out/recipes/sub/venue/sources.js +43 -179
- package/out/recipes/sub/venue/sources.js.map +1 -1
- package/out/recipes/sub/venue.d.ts +176 -0
- package/out/recipes/sub/venue.d.ts.map +1 -0
- package/out/recipes/sub/venue.js +562 -0
- package/out/recipes/sub/venue.js.map +1 -0
- package/out/recipes/trailing-region.d.ts +9 -61
- package/out/recipes/trailing-region.d.ts.map +1 -1
- package/out/recipes/trailing-region.js +55 -85
- package/out/recipes/trailing-region.js.map +1 -1
- package/out/recipes/unit/sources.d.ts +28 -0
- package/out/recipes/unit/sources.d.ts.map +1 -0
- package/out/recipes/unit/sources.js +30 -0
- package/out/recipes/unit/sources.js.map +1 -0
- package/out/recipes/unit.d.ts +30 -17
- package/out/recipes/unit.d.ts.map +1 -1
- package/out/recipes/unit.js +90 -79
- package/out/recipes/unit.js.map +1 -1
- package/out/recipes.d.ts +26 -0
- package/out/recipes.d.ts.map +1 -0
- package/out/{recipes/index.js → recipes.js} +14 -12
- package/out/recipes.js.map +1 -0
- package/out/registers.d.ts +277 -0
- package/out/registers.d.ts.map +1 -0
- package/out/registers.js +273 -0
- package/out/registers.js.map +1 -0
- package/out/ro/adapters/retea-scolara/adapter.d.ts +114 -0
- package/out/ro/adapters/retea-scolara/adapter.d.ts.map +1 -0
- package/out/ro/adapters/retea-scolara/adapter.js +209 -0
- package/out/ro/adapters/retea-scolara/adapter.js.map +1 -0
- package/out/ro/tools/fetch/retea-scolara.d.ts +69 -0
- package/out/ro/tools/fetch/retea-scolara.d.ts.map +1 -0
- package/out/ro/tools/fetch/retea-scolara.js +117 -0
- package/out/ro/tools/fetch/retea-scolara.js.map +1 -0
- package/out/runner.d.ts +120 -60
- package/out/runner.d.ts.map +1 -1
- package/out/runner.js +130 -56
- package/out/runner.js.map +1 -1
- package/out/sg/recipes/register.d.ts +18 -32
- package/out/sg/recipes/register.d.ts.map +1 -1
- package/out/sg/recipes/register.js +44 -49
- package/out/sg/recipes/register.js.map +1 -1
- package/out/sg/tools/fetch/acra.d.ts +11 -14
- package/out/sg/tools/fetch/acra.d.ts.map +1 -1
- package/out/sg/tools/fetch/acra.js +16 -19
- package/out/sg/tools/fetch/acra.js.map +1 -1
- package/out/si/recipes/bare-village.d.ts +12 -13
- package/out/si/recipes/bare-village.d.ts.map +1 -1
- package/out/si/recipes/bare-village.js +31 -17
- package/out/si/recipes/bare-village.js.map +1 -1
- package/out/sk/adapters/inspire/adapter.d.ts +119 -0
- package/out/sk/adapters/inspire/adapter.d.ts.map +1 -0
- package/out/sk/adapters/inspire/adapter.js +318 -0
- package/out/sk/adapters/inspire/adapter.js.map +1 -0
- package/out/sk/tools/fetch/inspire.d.ts +195 -0
- package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/sk/tools/fetch/inspire.js +280 -0
- package/out/sk/tools/fetch/inspire.js.map +1 -0
- package/out/source-register/effective-manifest.d.ts +355 -0
- package/out/source-register/effective-manifest.d.ts.map +1 -0
- package/out/source-register/effective-manifest.js +355 -0
- package/out/source-register/effective-manifest.js.map +1 -0
- package/out/source-register/register.d.ts +79 -0
- package/out/source-register/register.d.ts.map +1 -0
- package/out/source-register/register.js +400 -0
- package/out/source-register/register.js.map +1 -0
- package/out/source-register/training-manifest.d.ts +111 -0
- package/out/source-register/training-manifest.d.ts.map +1 -0
- package/out/source-register/training-manifest.js +120 -0
- package/out/source-register/training-manifest.js.map +1 -0
- package/out/source-register/types.d.ts +539 -0
- package/out/source-register/types.d.ts.map +1 -0
- package/out/source-register/types.js +263 -0
- package/out/source-register/types.js.map +1 -0
- package/out/source-register.d.ts +19 -0
- package/out/source-register.d.ts.map +1 -0
- package/out/source-register.js +16 -0
- package/out/source-register.js.map +1 -0
- package/out/south-asia/recipes/register.d.ts +20 -17
- package/out/south-asia/recipes/register.d.ts.map +1 -1
- package/out/south-asia/recipes/register.js +44 -24
- package/out/south-asia/recipes/register.js.map +1 -1
- package/out/subvenue/harvest.d.ts +117 -0
- package/out/subvenue/harvest.d.ts.map +1 -0
- package/out/subvenue/harvest.js +172 -0
- package/out/subvenue/harvest.js.map +1 -0
- package/out/subvenue/promotions.d.ts +65 -0
- package/out/subvenue/promotions.d.ts.map +1 -0
- package/out/{tools/sub/venue → subvenue}/promotions.js +15 -55
- package/out/subvenue/promotions.js.map +1 -0
- package/out/subvenue/surfaces.d.ts +39 -0
- package/out/subvenue/surfaces.d.ts.map +1 -0
- package/out/subvenue/surfaces.js +75 -0
- package/out/subvenue/surfaces.js.map +1 -0
- package/out/subvenue/table.d.ts +212 -0
- package/out/subvenue/table.d.ts.map +1 -0
- package/out/subvenue/table.js +94 -0
- package/out/subvenue/table.js.map +1 -0
- package/out/surfaces/locale.d.ts +113 -0
- package/out/surfaces/locale.d.ts.map +1 -0
- package/out/surfaces/locale.js +136 -0
- package/out/surfaces/locale.js.map +1 -0
- package/out/synthesizers/anchor-absorption.d.ts +21 -30
- package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
- package/out/synthesizers/anchor-absorption.js +30 -85
- package/out/synthesizers/anchor-absorption.js.map +1 -1
- package/out/synthesizers/boundary-stress.d.ts +17 -48
- package/out/synthesizers/boundary-stress.d.ts.map +1 -1
- package/out/synthesizers/boundary-stress.js +27 -121
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/house-venue.d.ts +22 -25
- package/out/synthesizers/house-venue.d.ts.map +1 -1
- package/out/synthesizers/house-venue.js +28 -97
- package/out/synthesizers/house-venue.js.map +1 -1
- package/out/synthesizers/intersection.d.ts +10 -8
- package/out/synthesizers/intersection.d.ts.map +1 -1
- package/out/synthesizers/intersection.js +33 -26
- package/out/synthesizers/intersection.js.map +1 -1
- package/out/synthesizers/no-street.d.ts +7 -37
- package/out/synthesizers/no-street.d.ts.map +1 -1
- package/out/synthesizers/no-street.js +55 -111
- package/out/synthesizers/no-street.js.map +1 -1
- package/out/synthesizers/po-box.d.ts +46 -45
- package/out/synthesizers/po-box.d.ts.map +1 -1
- package/out/synthesizers/po-box.js +57 -97
- package/out/synthesizers/po-box.js.map +1 -1
- package/out/synthesizers/street.d.ts +18 -12
- package/out/synthesizers/street.d.ts.map +1 -1
- package/out/synthesizers/street.js +36 -29
- package/out/synthesizers/street.js.map +1 -1
- package/out/synthesizers/utils.d.ts +32 -129
- package/out/synthesizers/utils.d.ts.map +1 -1
- package/out/synthesizers/utils.js +54 -166
- package/out/synthesizers/utils.js.map +1 -1
- package/out/test-kit/corpus-recipe.d.ts +29 -23
- package/out/test-kit/corpus-recipe.d.ts.map +1 -1
- package/out/test-kit/corpus-recipe.js +28 -13
- package/out/test-kit/corpus-recipe.js.map +1 -1
- package/out/test-kit.d.ts +63 -0
- package/out/test-kit.d.ts.map +1 -0
- package/out/test-kit.js +88 -0
- package/out/test-kit.js.map +1 -0
- package/out/tools/align-canonical.d.ts +7 -0
- package/out/tools/align-canonical.d.ts.map +1 -0
- package/out/tools/align-canonical.js +52 -0
- package/out/tools/align-canonical.js.map +1 -0
- package/out/tools/audit.d.ts +18 -11
- package/out/tools/audit.d.ts.map +1 -1
- package/out/tools/audit.js +86 -95
- package/out/tools/audit.js.map +1 -1
- package/out/tools/corpus-stats.d.ts +24 -15
- package/out/tools/corpus-stats.d.ts.map +1 -1
- package/out/tools/corpus-stats.js +33 -29
- package/out/tools/corpus-stats.js.map +1 -1
- package/out/tools/fetch/atom.d.ts +115 -0
- package/out/tools/fetch/atom.d.ts.map +1 -0
- package/out/tools/fetch/atom.js +84 -0
- package/out/tools/fetch/atom.js.map +1 -0
- package/out/tools/fetch/cordis.d.ts +123 -0
- package/out/tools/fetch/cordis.d.ts.map +1 -0
- package/out/tools/fetch/cordis.js +208 -0
- package/out/tools/fetch/cordis.js.map +1 -0
- package/out/tools/fetch/download/manifest.d.ts +27 -18
- package/out/tools/fetch/download/manifest.d.ts.map +1 -1
- package/out/tools/fetch/download/manifest.js +20 -13
- package/out/tools/fetch/download/manifest.js.map +1 -1
- package/out/tools/fetch/download/network.d.ts +48 -27
- package/out/tools/fetch/download/network.d.ts.map +1 -1
- package/out/tools/fetch/download/network.js +26 -16
- package/out/tools/fetch/download/network.js.map +1 -1
- package/out/tools/fetch/download/retry.d.ts +16 -15
- package/out/tools/fetch/download/retry.d.ts.map +1 -1
- package/out/tools/fetch/download/retry.js +24 -24
- package/out/tools/fetch/download/retry.js.map +1 -1
- package/out/tools/fetch/{download/index.d.ts → download.d.ts} +1 -1
- package/out/tools/fetch/download.d.ts.map +1 -0
- package/out/tools/fetch/{download/index.js → download.js} +1 -1
- package/out/tools/fetch/download.js.map +1 -0
- package/out/tools/fetch/geonames/dump.d.ts +50 -32
- package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
- package/out/tools/fetch/geonames/dump.js +52 -42
- package/out/tools/fetch/geonames/dump.js.map +1 -1
- package/out/tools/fetch/geonames/postal.d.ts +14 -49
- package/out/tools/fetch/geonames/postal.d.ts.map +1 -1
- package/out/tools/fetch/geonames/postal.js +17 -56
- package/out/tools/fetch/geonames/postal.js.map +1 -1
- package/out/tools/fetch/gleif.d.ts +137 -0
- package/out/tools/fetch/gleif.d.ts.map +1 -0
- package/out/tools/fetch/gleif.js +220 -0
- package/out/tools/fetch/gleif.js.map +1 -0
- package/out/tools/fetch/header.d.ts +41 -0
- package/out/tools/fetch/header.d.ts.map +1 -0
- package/out/tools/fetch/header.js +59 -0
- package/out/tools/fetch/header.js.map +1 -0
- package/out/tools/fetch/inspire-addresses.d.ts +249 -0
- package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
- package/out/tools/fetch/inspire-addresses.js +276 -0
- package/out/tools/fetch/inspire-addresses.js.map +1 -0
- package/out/tools/fetch/openaddresses.d.ts +1 -4
- package/out/tools/fetch/openaddresses.d.ts.map +1 -1
- package/out/tools/fetch/openaddresses.js +19 -98
- package/out/tools/fetch/openaddresses.js.map +1 -1
- package/out/tools/fetch/ourairports.d.ts +6 -33
- package/out/tools/fetch/ourairports.d.ts.map +1 -1
- package/out/tools/fetch/ourairports.js +14 -47
- package/out/tools/fetch/ourairports.js.map +1 -1
- package/out/tools/fetch/ppd.d.ts +4 -3
- package/out/tools/fetch/ppd.d.ts.map +1 -1
- package/out/tools/fetch/ppd.js +10 -7
- package/out/tools/fetch/ppd.js.map +1 -1
- package/out/tools/fetch/vlaanderen-ad.d.ts +131 -0
- package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -0
- package/out/tools/fetch/vlaanderen-ad.js +293 -0
- package/out/tools/fetch/vlaanderen-ad.js.map +1 -0
- package/out/tools/fetch/wfs-harvest.d.ts +410 -0
- package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
- package/out/tools/fetch/wfs-harvest.js +522 -0
- package/out/tools/fetch/wfs-harvest.js.map +1 -0
- package/out/tools/fetch/wikidata-subvenue.d.ts +32 -100
- package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
- package/out/tools/fetch/wikidata-subvenue.js +27 -122
- package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
- package/out/tools/fetch/zip-archive.d.ts +54 -0
- package/out/tools/fetch/zip-archive.d.ts.map +1 -0
- package/out/tools/fetch/zip-archive.js +58 -0
- package/out/tools/fetch/zip-archive.js.map +1 -0
- package/out/tools/fetch.d.ts +140 -0
- package/out/tools/fetch.d.ts.map +1 -0
- package/out/tools/fetch.js +136 -0
- package/out/tools/fetch.js.map +1 -0
- package/out/tools/golden/expand.d.ts +28 -13
- package/out/tools/golden/expand.d.ts.map +1 -1
- package/out/tools/golden/expand.js +50 -36
- package/out/tools/golden/expand.js.map +1 -1
- package/out/tools/golden/promote.d.ts +13 -8
- package/out/tools/golden/promote.d.ts.map +1 -1
- package/out/tools/golden/promote.js +33 -28
- package/out/tools/golden/promote.js.map +1 -1
- package/out/tools/golden/relabel-street/directory.d.ts +24 -9
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/directory.js +41 -30
- package/out/tools/golden/relabel-street/directory.js.map +1 -1
- package/out/tools/golden/relabel-street/row.d.ts +17 -69
- package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/row.js +16 -74
- package/out/tools/golden/relabel-street/row.js.map +1 -1
- package/out/tools/golden/{relabel-street/index.d.ts → relabel-street.d.ts} +1 -1
- package/out/tools/golden/relabel-street.d.ts.map +1 -0
- package/out/tools/golden/{relabel-street/index.js → relabel-street.js} +1 -1
- package/out/tools/golden/relabel-street.js.map +1 -0
- package/out/tools/ingest-csv.d.ts +19 -15
- package/out/tools/ingest-csv.d.ts.map +1 -1
- package/out/tools/ingest-csv.js +39 -43
- package/out/tools/ingest-csv.js.map +1 -1
- package/out/tools/jsonl-to-parquet.d.ts +15 -28
- package/out/tools/jsonl-to-parquet.d.ts.map +1 -1
- package/out/tools/jsonl-to-parquet.js +49 -91
- package/out/tools/jsonl-to-parquet.js.map +1 -1
- package/out/tools/lint/recipe-output/vocab.d.ts +77 -0
- package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -0
- package/out/tools/lint/{slice → recipe-output}/vocab.js +54 -69
- package/out/tools/lint/recipe-output/vocab.js.map +1 -0
- package/out/tools/lint/recipe-output.d.ts +73 -0
- package/out/tools/lint/recipe-output.d.ts.map +1 -0
- package/out/tools/lint/{slice/index.js → recipe-output.js} +76 -96
- package/out/tools/lint/recipe-output.js.map +1 -0
- package/out/tools/migrate/overlay-parquet.d.ts +30 -0
- package/out/tools/migrate/overlay-parquet.d.ts.map +1 -0
- package/out/tools/migrate/overlay-parquet.js +141 -0
- package/out/tools/migrate/overlay-parquet.js.map +1 -0
- package/out/tools/migrate/recipe-output.d.ts +35 -0
- package/out/tools/migrate/recipe-output.d.ts.map +1 -0
- package/out/tools/migrate/recipe-output.js +124 -0
- package/out/tools/migrate/recipe-output.js.map +1 -0
- package/out/tools/migrate/source-names.d.ts +52 -0
- package/out/tools/migrate/source-names.d.ts.map +1 -0
- package/out/tools/migrate/source-names.js +105 -0
- package/out/tools/migrate/source-names.js.map +1 -0
- package/out/tools/overlay/kryptonite.d.ts +33 -0
- package/out/tools/overlay/kryptonite.d.ts.map +1 -0
- package/out/tools/{slice → overlay}/kryptonite.js +37 -28
- package/out/tools/overlay/kryptonite.js.map +1 -0
- package/out/tools/overlay/manifest.d.ts +142 -0
- package/out/tools/overlay/manifest.d.ts.map +1 -0
- package/out/tools/overlay/manifest.js +260 -0
- package/out/tools/overlay/manifest.js.map +1 -0
- package/out/tools/overlay/merge-source.d.ts +73 -0
- package/out/tools/overlay/merge-source.d.ts.map +1 -0
- package/out/tools/overlay/merge-source.js +63 -0
- package/out/tools/overlay/merge-source.js.map +1 -0
- package/out/tools/overlay/split-slice.d.ts +66 -0
- package/out/tools/overlay/split-slice.d.ts.map +1 -0
- package/out/tools/overlay/split-slice.js +78 -0
- package/out/tools/overlay/split-slice.js.map +1 -0
- package/out/tools/overlay/translit.d.ts +54 -0
- package/out/tools/overlay/translit.d.ts.map +1 -0
- package/out/tools/{slice → overlay}/translit.js +59 -48
- package/out/tools/overlay/translit.js.map +1 -0
- package/out/tools/overture-subvenue.d.ts +16 -75
- package/out/tools/overture-subvenue.d.ts.map +1 -1
- package/out/tools/overture-subvenue.js +7 -74
- package/out/tools/overture-subvenue.js.map +1 -1
- package/out/tools/postcode-triples.d.ts +77 -126
- package/out/tools/postcode-triples.d.ts.map +1 -1
- package/out/tools/postcode-triples.js +198 -192
- package/out/tools/postcode-triples.js.map +1 -1
- package/out/tools/source-register/build.d.ts +145 -0
- package/out/tools/source-register/build.d.ts.map +1 -0
- package/out/tools/source-register/build.js +515 -0
- package/out/tools/source-register/build.js.map +1 -0
- package/out/tools/sub/venue/head-nouns.d.ts +9 -38
- package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
- package/out/tools/sub/venue/head-nouns.js +37 -74
- package/out/tools/sub/venue/head-nouns.js.map +1 -1
- package/out/tools/sub/venue/lexicon.d.ts +55 -82
- package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
- package/out/tools/sub/venue/lexicon.js +43 -87
- package/out/tools/sub/venue/lexicon.js.map +1 -1
- package/out/tools/sub/venue/wikidata.d.ts +8 -6
- package/out/tools/sub/venue/wikidata.d.ts.map +1 -1
- package/out/tools/sub/venue/wikidata.js +12 -9
- package/out/tools/sub/venue/wikidata.js.map +1 -1
- package/out/tools.d.ts +31 -0
- package/out/tools.d.ts.map +1 -0
- package/out/tools.js +31 -0
- package/out/tools.js.map +1 -0
- package/out/tw/tools/fetch/gcis.d.ts +9 -3
- package/out/tw/tools/fetch/gcis.d.ts.map +1 -1
- package/out/tw/tools/fetch/gcis.js +16 -10
- package/out/tw/tools/fetch/gcis.js.map +1 -1
- package/out/types.d.ts +270 -101
- package/out/types.d.ts.map +1 -1
- package/out/types.js +133 -9
- package/out/types.js.map +1 -1
- package/out/us/adapters/fcc-bdc/adapter.d.ts +18 -36
- package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -1
- package/out/us/adapters/fcc-bdc/adapter.js +25 -38
- package/out/us/adapters/fcc-bdc/adapter.js.map +1 -1
- package/out/us/adapters/state/hi-schools/adapter.d.ts +12 -11
- package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -1
- package/out/us/adapters/state/hi-schools/adapter.js +26 -16
- package/out/us/adapters/state/hi-schools/adapter.js.map +1 -1
- package/out/us/adapters/state/hi-schools/workbook.d.ts +7 -2
- package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -1
- package/out/us/adapters/state/hi-schools/workbook.js +3 -1
- package/out/us/adapters/state/hi-schools/workbook.js.map +1 -1
- package/out/us/adapters/state/ia-contractors/adapter.d.ts +13 -6
- package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -1
- package/out/us/adapters/state/ia-contractors/adapter.js +27 -14
- package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -1
- package/out/us/adapters/state/ny-notaries/adapter.d.ts +7 -6
- package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -1
- package/out/us/adapters/state/ny-notaries/adapter.js +24 -22
- package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -1
- package/out/us/adapters/state/tx-notaries/adapter.d.ts +8 -7
- package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -1
- package/out/us/adapters/state/tx-notaries/adapter.js +21 -14
- package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -1
- package/out/us/adapters/tiger/adapter.d.ts +10 -34
- package/out/us/adapters/tiger/adapter.d.ts.map +1 -1
- package/out/us/adapters/tiger/adapter.js +18 -42
- package/out/us/adapters/tiger/adapter.js.map +1 -1
- package/out/us/adapters/tiger/street-decompose.d.ts +6 -13
- package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -1
- package/out/us/adapters/tiger/street-decompose.js +7 -17
- package/out/us/adapters/tiger/street-decompose.js.map +1 -1
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts +26 -20
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +41 -29
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -1
- package/out/us/adapters/usgov/imls-pls/adapter.d.ts +8 -7
- package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/imls-pls/adapter.js +25 -18
- package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -1
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +11 -10
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/irs-bmf/adapter.js +32 -22
- package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -1
- package/out/us/adapters/usgov/nad/adapter.d.ts +11 -31
- package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/nad/adapter.js +51 -105
- package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
- package/out/us/adapters/usgov/nppes/adapter.d.ts +12 -22
- package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/nppes/adapter.js +62 -32
- package/out/us/adapters/usgov/nppes/adapter.js.map +1 -1
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts +16 -15
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -1
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +36 -26
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
- package/out/us/fips-state.d.ts +17 -8
- package/out/us/fips-state.d.ts.map +1 -1
- package/out/us/fips-state.js +17 -8
- package/out/us/fips-state.js.map +1 -1
- package/out/us/tools/fetch/hrsa.d.ts +3 -3
- package/out/us/tools/fetch/hrsa.d.ts.map +1 -1
- package/out/us/tools/fetch/hrsa.js +6 -7
- package/out/us/tools/fetch/hrsa.js.map +1 -1
- package/out/us/tools/fetch/imls-pls.d.ts +5 -16
- package/out/us/tools/fetch/imls-pls.d.ts.map +1 -1
- package/out/us/tools/fetch/imls-pls.js +16 -33
- package/out/us/tools/fetch/imls-pls.js.map +1 -1
- package/out/us/tools/fetch/nad.d.ts +22 -10
- package/out/us/tools/fetch/nad.d.ts.map +1 -1
- package/out/us/tools/fetch/nad.js +29 -24
- package/out/us/tools/fetch/nad.js.map +1 -1
- package/out/us/tools/fetch/nppes.d.ts +6 -16
- package/out/us/tools/fetch/nppes.d.ts.map +1 -1
- package/out/us/tools/fetch/nppes.js +21 -33
- package/out/us/tools/fetch/nppes.js.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.d.ts +8 -5
- package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.js +15 -13
- package/out/us/tools/fetch/state/hi-schools.js.map +1 -1
- package/out/us/tools/fetch/state/sources.d.ts +8 -7
- package/out/us/tools/fetch/state/sources.d.ts.map +1 -1
- package/out/us/tools/fetch/state/sources.js +8 -9
- package/out/us/tools/fetch/state/sources.js.map +1 -1
- package/out/us/tools/fetch/tiger-full.d.ts +1 -14
- package/out/us/tools/fetch/tiger-full.d.ts.map +1 -1
- package/out/us/tools/fetch/tiger-full.js +15 -54
- package/out/us/tools/fetch/tiger-full.js.map +1 -1
- package/out/utils/align.d.ts +24 -19
- package/out/utils/align.d.ts.map +1 -1
- package/out/utils/align.js +27 -42
- package/out/utils/align.js.map +1 -1
- package/out/utils/cooccurrence-stats.d.ts +58 -0
- package/out/utils/cooccurrence-stats.d.ts.map +1 -0
- package/out/utils/cooccurrence-stats.js +62 -0
- package/out/utils/cooccurrence-stats.js.map +1 -0
- package/out/utils/golden.d.ts +21 -31
- package/out/utils/golden.d.ts.map +1 -1
- package/out/utils/golden.js +28 -44
- package/out/utils/golden.js.map +1 -1
- package/out/utils/license.d.ts +158 -21
- package/out/utils/license.d.ts.map +1 -1
- package/out/utils/license.js +156 -26
- package/out/utils/license.js.map +1 -1
- package/out/utils/split.d.ts +66 -70
- package/out/utils/split.d.ts.map +1 -1
- package/out/utils/split.js +158 -69
- package/out/utils/split.js.map +1 -1
- package/out/utils/tokenize.d.ts +16 -28
- package/out/utils/tokenize.d.ts.map +1 -1
- package/out/utils/tokenize.js +18 -31
- package/out/utils/tokenize.js.map +1 -1
- package/out/utils/wof-json.d.ts +88 -62
- package/out/utils/wof-json.d.ts.map +1 -1
- package/out/utils/wof-json.js +76 -55
- package/out/utils/wof-json.js.map +1 -1
- package/out/{utils/index.js → utils.d.ts} +1 -2
- package/out/utils.d.ts.map +1 -0
- package/out/{utils/index.d.ts → utils.js} +1 -2
- package/out/utils.js.map +1 -0
- package/out/ve/recipes/reviewed-postcode-tail.d.ts +25 -7
- package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -1
- package/out/ve/recipes/reviewed-postcode-tail.js +33 -12
- package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -1
- package/package.json +46 -480
- package/lib/adapters/index.ts +0 -160
- package/lib/adapters/synth-po-box/adapter.ts +0 -204
- package/lib/adapters/utils/index.ts +0 -307
- package/lib/recipes/bare/postcode/index.ts +0 -327
- package/lib/recipes/sub/venue/index.ts +0 -997
- package/lib/synthesizers/locale.ts +0 -261
- package/lib/test-kit/index.ts +0 -100
- package/lib/tools/align-slice.ts +0 -68
- package/lib/tools/fetch/index.ts +0 -174
- package/lib/tools/gb-title-case.ts +0 -69
- package/lib/tools/index.ts +0 -28
- package/lib/tools/lint/slice/vocab.ts +0 -376
- package/lib/tools/overlay-manifest.ts +0 -215
- package/lib/tools/sub/venue/harvest.ts +0 -234
- package/lib/tools/sub/venue/surfaces.ts +0 -95
- package/lib/tools/sub/venue/table.ts +0 -281
- package/lib/utils/parquet.ts +0 -582
- package/out/adapters/index.d.ts +0 -51
- package/out/adapters/index.d.ts.map +0 -1
- package/out/adapters/index.js +0 -97
- package/out/adapters/index.js.map +0 -1
- package/out/adapters/synth-po-box/adapter.d.ts +0 -67
- package/out/adapters/synth-po-box/adapter.d.ts.map +0 -1
- package/out/adapters/synth-po-box/adapter.js.map +0 -1
- package/out/adapters/utils/index.d.ts +0 -191
- package/out/adapters/utils/index.d.ts.map +0 -1
- package/out/adapters/utils/index.js +0 -206
- package/out/adapters/utils/index.js.map +0 -1
- package/out/fr/adapters/ban/street-decompose.d.ts.map +0 -1
- package/out/fr/adapters/ban/street-decompose.js.map +0 -1
- package/out/no/recipes/street/index.d.ts +0 -18
- package/out/no/recipes/street/index.d.ts.map +0 -1
- package/out/no/recipes/street/index.js.map +0 -1
- package/out/recipes/bare/postcode/index.d.ts +0 -62
- package/out/recipes/bare/postcode/index.d.ts.map +0 -1
- package/out/recipes/bare/postcode/index.js.map +0 -1
- package/out/recipes/index.d.ts +0 -24
- package/out/recipes/index.d.ts.map +0 -1
- package/out/recipes/index.js.map +0 -1
- package/out/recipes/po/box/index.d.ts +0 -17
- package/out/recipes/po/box/index.d.ts.map +0 -1
- package/out/recipes/po/box/index.js.map +0 -1
- package/out/recipes/sub/venue/index.d.ts +0 -270
- package/out/recipes/sub/venue/index.d.ts.map +0 -1
- package/out/recipes/sub/venue/index.js +0 -728
- package/out/recipes/sub/venue/index.js.map +0 -1
- package/out/synthesizers/locale.d.ts +0 -116
- package/out/synthesizers/locale.d.ts.map +0 -1
- package/out/synthesizers/locale.js +0 -150
- package/out/synthesizers/locale.js.map +0 -1
- package/out/test-kit/index.d.ts +0 -48
- package/out/test-kit/index.d.ts.map +0 -1
- package/out/test-kit/index.js +0 -78
- package/out/test-kit/index.js.map +0 -1
- package/out/tools/align-slice.d.ts +0 -7
- package/out/tools/align-slice.d.ts.map +0 -1
- package/out/tools/align-slice.js +0 -55
- package/out/tools/align-slice.js.map +0 -1
- package/out/tools/fetch/download/index.d.ts.map +0 -1
- package/out/tools/fetch/download/index.js.map +0 -1
- package/out/tools/fetch/index.d.ts +0 -171
- package/out/tools/fetch/index.d.ts.map +0 -1
- package/out/tools/fetch/index.js +0 -170
- package/out/tools/fetch/index.js.map +0 -1
- package/out/tools/gb-title-case.d.ts +0 -2
- package/out/tools/gb-title-case.d.ts.map +0 -1
- package/out/tools/gb-title-case.js +0 -65
- package/out/tools/gb-title-case.js.map +0 -1
- package/out/tools/golden/relabel-street/index.d.ts.map +0 -1
- package/out/tools/golden/relabel-street/index.js.map +0 -1
- package/out/tools/index.d.ts +0 -28
- package/out/tools/index.d.ts.map +0 -1
- package/out/tools/index.js +0 -28
- package/out/tools/index.js.map +0 -1
- package/out/tools/lint/slice/index.d.ts +0 -93
- package/out/tools/lint/slice/index.d.ts.map +0 -1
- package/out/tools/lint/slice/index.js.map +0 -1
- package/out/tools/lint/slice/vocab.d.ts +0 -90
- package/out/tools/lint/slice/vocab.d.ts.map +0 -1
- package/out/tools/lint/slice/vocab.js.map +0 -1
- package/out/tools/overlay-manifest.d.ts +0 -89
- package/out/tools/overlay-manifest.d.ts.map +0 -1
- package/out/tools/overlay-manifest.js +0 -131
- package/out/tools/overlay-manifest.js.map +0 -1
- package/out/tools/slice/kryptonite.d.ts +0 -32
- package/out/tools/slice/kryptonite.d.ts.map +0 -1
- package/out/tools/slice/kryptonite.js.map +0 -1
- package/out/tools/slice/translit.d.ts +0 -51
- package/out/tools/slice/translit.d.ts.map +0 -1
- package/out/tools/slice/translit.js.map +0 -1
- package/out/tools/sub/venue/harvest.d.ts +0 -100
- package/out/tools/sub/venue/harvest.d.ts.map +0 -1
- package/out/tools/sub/venue/harvest.js +0 -168
- package/out/tools/sub/venue/harvest.js.map +0 -1
- package/out/tools/sub/venue/promotions.d.ts +0 -94
- package/out/tools/sub/venue/promotions.d.ts.map +0 -1
- package/out/tools/sub/venue/promotions.js.map +0 -1
- package/out/tools/sub/venue/surfaces.d.ts +0 -45
- package/out/tools/sub/venue/surfaces.d.ts.map +0 -1
- package/out/tools/sub/venue/surfaces.js +0 -77
- package/out/tools/sub/venue/surfaces.js.map +0 -1
- package/out/tools/sub/venue/table.d.ts +0 -229
- package/out/tools/sub/venue/table.d.ts.map +0 -1
- package/out/tools/sub/venue/table.js +0 -108
- package/out/tools/sub/venue/table.js.map +0 -1
- package/out/utils/index.d.ts.map +0 -1
- package/out/utils/index.js.map +0 -1
- package/out/utils/parquet.d.ts +0 -178
- package/out/utils/parquet.d.ts.map +0 -1
- package/out/utils/parquet.js +0 -371
- package/out/utils/parquet.js.map +0 -1
- package/out/utils/slice-stats.d.ts +0 -52
- package/out/utils/slice-stats.d.ts.map +0 -1
- package/out/utils/slice-stats.js +0 -58
- package/out/utils/slice-stats.js.map +0 -1
- /package/lib/tools/fetch/{download/index.ts → download.ts} +0 -0
- /package/lib/tools/golden/{relabel-street/index.ts → relabel-street.ts} +0 -0
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `lv-varis`: Latvia's State Address Register (`Valsts adrešu reģistrs`), read from the open data
|
|
7
|
+
* Valsts zemes dienests publishes as the data.gov.lv dataset `varis-atvertie-dati`.
|
|
8
|
+
*
|
|
9
|
+
* Input is the directory `fetchVaris` writes: six of the dataset's CSV tables, each under the file
|
|
10
|
+
* name the portal serves it as, `aw_eka.csv` and the five tables its parent codes point into. Every table is
|
|
11
|
+
* UTF-8 with a byte-order mark, comma-separated, and quotes every field, doubling a quote inside a
|
|
12
|
+
* value. The column metadata the publisher posts beside each table declares `ISO-8859-1`; the bytes
|
|
13
|
+
* are UTF-8, and the reader decodes them as UTF-8. Over the 2026-09-30 edition no value in
|
|
14
|
+
* `aw_eka.csv` holds a line break, 0 of 610,876 records.
|
|
15
|
+
*
|
|
16
|
+
* ## One row per building or land-unit address
|
|
17
|
+
*
|
|
18
|
+
* `aw_eka.csv` holds the addresses of buildings and of land units intended for building, one record
|
|
19
|
+
* per address. Of its 610,876 records, `STATUSS` is `EKS` (existing) on 550,652, `DEL` (removed) on
|
|
20
|
+
* 32,448 and `ERR` (erroneous) on 27,776. Only `EKS` records become rows. The two other states are
|
|
21
|
+
* counted under {@linkcode VarisRefusal}.
|
|
22
|
+
*
|
|
23
|
+
* Each record names its immediate parent by `VKUR_CD` and `VKUR_TIPS`, and the parent names its own
|
|
24
|
+
* the same way, up to the country. The type codes are the register's: `104` city (`pilsēta`), `105`
|
|
25
|
+
* parish (`pagasts`), `106` village (`ciems`), `107` street (`iela`), `113` municipality (`novads`)
|
|
26
|
+
* and `101` Latvia, whose code `100000000` no table holds as a row. Over the 550,652 active records the
|
|
27
|
+
* chains take seven shapes, written from the parent upward. The rows column counts what the adapter
|
|
28
|
+
* emits after the refusals below:
|
|
29
|
+
*
|
|
30
|
+
* | Chain | Records | Rows | {@linkcode VarisAddressType} |
|
|
31
|
+
* | ----------------------------- | ------: | ------: | ----------------------------- |
|
|
32
|
+
* | parish, municipality | 116,225 | 116,225 | `parish-named-house` |
|
|
33
|
+
* | street, city, municipality | 113,906 | 113,905 | `town-street` |
|
|
34
|
+
* | street, city | 111,218 | 111,217 | `state-city-street` |
|
|
35
|
+
* | village, parish, municipality | 108,164 | 108,164 | `village-named-house` |
|
|
36
|
+
* | street, village, parish, mun. | 98,192 | 98,179 | `village-street` |
|
|
37
|
+
* | city, municipality | 2,814 | 2,814 | `city-named-house` |
|
|
38
|
+
* | city | 133 | 133 | `city-named-house` |
|
|
39
|
+
*
|
|
40
|
+
* No active record has an unresolved or inactive ancestor, 0 of 550,652.
|
|
41
|
+
*
|
|
42
|
+
* ## The written form is the publisher's
|
|
43
|
+
*
|
|
44
|
+
* `STD` holds the register's own full address string: `Krišjāņa Barona iela 1, Rīga, LV-1050` or
|
|
45
|
+
* `"Riņņi", Vecates pag., Valmieras nov., LV-4211`. Each
|
|
46
|
+
* part is the `NOSAUKUMS` of one object in the chain, in chain order, joined by a comma and a space,
|
|
47
|
+
* with the postcode `ATRIB` last. A building on a street writes the street name and the house number
|
|
48
|
+
* as one part, and a named building writes its name inside ASCII double quotes. The adapter composes
|
|
49
|
+
* that string from the chain and compares it with `STD`. Over the 550,637 active records the adapter
|
|
50
|
+
* does not refuse first, the two are equal on 550,637. A record where they differ is refused, so every
|
|
51
|
+
* row's `raw` is `STD` unchanged and every component's position in it is known. The row's surface is
|
|
52
|
+
* `attested`. Aligning the 550,637 rows with `alignRow` at edit distance 0 quarantines none and places
|
|
53
|
+
* every component in the order above.
|
|
54
|
+
*
|
|
55
|
+
* The comparison reads values as stored. 25 building names end in a space, and `STD` keeps it inside the
|
|
56
|
+
* quotes, `"Vilidža "`, so the reader turns off the CSV reader's trimming, composes from the stored
|
|
57
|
+
* values and trims only the labels.
|
|
58
|
+
*
|
|
59
|
+
* The codex renderer cannot produce this order. libaddressinput's Latvian layout prints the region
|
|
60
|
+
* line before the locality, `Siguldas nov., Sigulda, LV-2150`, where the register writes `Sigulda,
|
|
61
|
+
* Siguldas nov., LV-2150`, so `formatAddressRow` is not called.
|
|
62
|
+
*
|
|
63
|
+
* ## Which tag each part takes
|
|
64
|
+
*
|
|
65
|
+
* - The street's `NOSAUKUMS` is `street`, type word included: `Brīvības iela`, `Vidusceļš`. No Latvian
|
|
66
|
+
* street-type split exists in this repository, and the register stores the name whole.
|
|
67
|
+
* - The house number is `house_number`, its building-block suffix included: `195 k-1` is house 195,
|
|
68
|
+
* block (`korpuss`) 1, one address in the register. Over the 323,316 street addresses, 249,783 are
|
|
69
|
+
* bare digits and 56,374 digits and a letter. 15 hold no digit, such as `Bauskas iela Ozoli`, where
|
|
70
|
+
* a house name stands in the number's place. Those are refused, because the name is not a number
|
|
71
|
+
* and labeling it a venue would place a venue after a street, which no other Latvian row does.
|
|
72
|
+
* - A building's name is `venue`. SCHEMA.mdx defines `venue` as a named place and keeps
|
|
73
|
+
* `building_name` for Japan, and the Estonian register adapter labels a farm name `venue` for the same
|
|
74
|
+
* reason. The quotes are punctuation and lie outside the span. 236 names hold a quote of their own,
|
|
75
|
+
* such as `Stacija "Biksti"`, which the register writes `"Stacija "Biksti""`.
|
|
76
|
+
* - A city and a parish are `locality`. Both are direct parts of a municipality, so they are the same
|
|
77
|
+
* tier, and a rural address without a village still writes the parish it lies in. The
|
|
78
|
+
* parish is written with the register's abbreviation, `Vecates pag.`, and the span includes it, as a
|
|
79
|
+
* `subregion` of `Multnomah County` includes `County`.
|
|
80
|
+
* - A village is `dependent_locality`. It lies inside a parish, and the Estonian adapter labels a
|
|
81
|
+
* village inside a rural municipality the same way.
|
|
82
|
+
* - A municipality is `region`, abbreviation included: `Valmieras nov.`. The register holds no tier
|
|
83
|
+
* above it: the parent of all 35 active municipalities is Latvia. The 7 active cities whose parent is
|
|
84
|
+
* Latvia, the state cities such as Rīga and Daugavpils, write no municipality, so their rows carry no
|
|
85
|
+
* region.
|
|
86
|
+
* - `ATRIB` is `postcode`, prefix included: `LV-4211`.
|
|
87
|
+
*
|
|
88
|
+
* ## Premises and apartments
|
|
89
|
+
*
|
|
90
|
+
* The register's premises table, `aw_dziv.csv`, holds 868,669 active apartment and premises addresses
|
|
91
|
+
* in 57,285 buildings, more than the 550,652 building addresses. A tenth of those buildings hold 50.1%
|
|
92
|
+
* of the apartments, and one building holds 681. Rows for every apartment would make a few large blocks
|
|
93
|
+
* the commonest Latvian address, so the adapter reads no premises.
|
|
94
|
+
*
|
|
95
|
+
* ## Personal data, identity and license
|
|
96
|
+
*
|
|
97
|
+
* The register records places and names no owner or occupant, so no row carries a natural person's
|
|
98
|
+
* name. A building name is the name of the property, as on a map.
|
|
99
|
+
*
|
|
100
|
+
* The row id is the register's own object code, `lv-varis-<KODS>`. Five `STD` strings are each written
|
|
101
|
+
* by two codes, so two rows can share a `raw` while their ids differ.
|
|
102
|
+
*
|
|
103
|
+
* data.gov.lv publishes the dataset under `CC-BY-4.0`, the `license_id` its CKAN record names for the
|
|
104
|
+
* publisher Valsts zemes dienests, and the column metadata posted beside `aw_dziv.csv` names
|
|
105
|
+
* `https://creativecommons.org/licenses/by/4.0/` as `dc:license`. CC BY 4.0 requires credit, a link to the license and
|
|
106
|
+
* a statement that changes were made, so every row records the license and
|
|
107
|
+
* {@linkcode LV_VARIS_ATTRIBUTION} is the credit the model card carries.
|
|
108
|
+
*
|
|
109
|
+
* The adapter honors `opts.limit` and `opts.signal`. `opts.country` is optional and accepts only `LV`.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
import type { ComponentTag } from "@mailwoman/codex/component"
|
|
113
|
+
import type { PathBuilderLike } from "path-ts"
|
|
114
|
+
import { PathBuilder } from "path-ts"
|
|
115
|
+
import { CSVSpliterator } from "spliterator"
|
|
116
|
+
|
|
117
|
+
import { UnsupportedCountryError } from "#adapters/errors"
|
|
118
|
+
import { SourceRegister } from "#registers"
|
|
119
|
+
import {
|
|
120
|
+
AddressRole,
|
|
121
|
+
type AdapterOptions,
|
|
122
|
+
type CanonicalRow,
|
|
123
|
+
type CorpusAdapter,
|
|
124
|
+
countDropped,
|
|
125
|
+
SurfaceOrigin,
|
|
126
|
+
} from "#types"
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Registry id for this adapter, stamped into every row it emits.
|
|
130
|
+
*/
|
|
131
|
+
export const LV_VARIS_ADAPTER_ID = "lv-varis"
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The one jurisdiction this adapter emits.
|
|
135
|
+
*/
|
|
136
|
+
export const LV_VARIS_COUNTRIES: readonly string[] = ["LV"]
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The license data.gov.lv names for the dataset.
|
|
140
|
+
*/
|
|
141
|
+
export const LV_VARIS_LICENSE = "CC-BY-4.0"
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The credit CC BY 4.0 obliges.
|
|
145
|
+
*/
|
|
146
|
+
export const LV_VARIS_ATTRIBUTION = "Valsts zemes dienests, Valsts adrešu reģistra atvērtie dati, via data.gov.lv"
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* The register tables the adapter reads, by the file name the portal serves each under.
|
|
150
|
+
*/
|
|
151
|
+
export const VARIS_TABLES = {
|
|
152
|
+
Building: "aw_eka.csv",
|
|
153
|
+
Street: "aw_iela.csv",
|
|
154
|
+
Village: "aw_ciems.csv",
|
|
155
|
+
Parish: "aw_pagasts.csv",
|
|
156
|
+
Municipality: "aw_novads.csv",
|
|
157
|
+
City: "aw_pilseta.csv",
|
|
158
|
+
} as const
|
|
159
|
+
|
|
160
|
+
export type VarisTable = (typeof VARIS_TABLES)[keyof typeof VARIS_TABLES]
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The register's addressing-object type codes, `TIPS_CD` and `VKUR_TIPS`.
|
|
164
|
+
*/
|
|
165
|
+
export const VarisObjectType = {
|
|
166
|
+
Country: "101",
|
|
167
|
+
City: "104",
|
|
168
|
+
Parish: "105",
|
|
169
|
+
Village: "106",
|
|
170
|
+
Street: "107",
|
|
171
|
+
Building: "108",
|
|
172
|
+
Municipality: "113",
|
|
173
|
+
} as const
|
|
174
|
+
|
|
175
|
+
export type VarisObjectType = (typeof VarisObjectType)[keyof typeof VarisObjectType]
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The status the register writes on an existing address.
|
|
179
|
+
*/
|
|
180
|
+
const ACTIVE = "EKS"
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Why a building record did not become a row.
|
|
184
|
+
*/
|
|
185
|
+
export const VarisRefusal = {
|
|
186
|
+
/**
|
|
187
|
+
* `STATUSS` is `DEL`: the address was removed.
|
|
188
|
+
*/
|
|
189
|
+
Removed: "row:status-removed",
|
|
190
|
+
/**
|
|
191
|
+
* `STATUSS` is `ERR`: the register marks the address erroneous.
|
|
192
|
+
*/
|
|
193
|
+
Erroneous: "row:status-erroneous",
|
|
194
|
+
/**
|
|
195
|
+
* `STATUSS` holds a value the register's documentation does not list.
|
|
196
|
+
*/
|
|
197
|
+
UnknownStatus: "row:status-unknown",
|
|
198
|
+
/**
|
|
199
|
+
* A code in the parent chain names no object in the tables read.
|
|
200
|
+
*/
|
|
201
|
+
ParentUnresolved: "row:parent-unresolved",
|
|
202
|
+
/**
|
|
203
|
+
* An object in the parent chain is not active.
|
|
204
|
+
*/
|
|
205
|
+
AncestorInactive: "row:ancestor-inactive",
|
|
206
|
+
/**
|
|
207
|
+
* The chain holds an object type in a place no address shape allows.
|
|
208
|
+
*/
|
|
209
|
+
UnexpectedHierarchy: "row:unexpected-hierarchy",
|
|
210
|
+
/**
|
|
211
|
+
* The record carries no `LV-` postcode.
|
|
212
|
+
*/
|
|
213
|
+
PostcodeAbsent: "row:postcode-absent",
|
|
214
|
+
/**
|
|
215
|
+
* A building on a street carries a name with no digit where its number belongs.
|
|
216
|
+
*/
|
|
217
|
+
NamedHouseOnStreet: "row:named-house-on-street",
|
|
218
|
+
/**
|
|
219
|
+
* The string composed from the chain differs from the register's `STD`.
|
|
220
|
+
*/
|
|
221
|
+
StandardFormMismatch: "row:standard-form-mismatch",
|
|
222
|
+
} as const
|
|
223
|
+
|
|
224
|
+
export type VarisRefusal = (typeof VarisRefusal)[keyof typeof VarisRefusal]
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* The shape of an address, read from its parent chain.
|
|
228
|
+
*/
|
|
229
|
+
export const VarisAddressType = {
|
|
230
|
+
/**
|
|
231
|
+
* A street address in one of the state cities, which lie under no municipality.
|
|
232
|
+
*/
|
|
233
|
+
StateCityStreet: "state-city-street",
|
|
234
|
+
/**
|
|
235
|
+
* A street address in a town of a municipality.
|
|
236
|
+
*/
|
|
237
|
+
TownStreet: "town-street",
|
|
238
|
+
/**
|
|
239
|
+
* A street address in a village.
|
|
240
|
+
*/
|
|
241
|
+
VillageStreet: "village-street",
|
|
242
|
+
/**
|
|
243
|
+
* A named house in a city, on no street.
|
|
244
|
+
*/
|
|
245
|
+
CityNamedHouse: "city-named-house",
|
|
246
|
+
/**
|
|
247
|
+
* A named house in a village.
|
|
248
|
+
*/
|
|
249
|
+
VillageNamedHouse: "village-named-house",
|
|
250
|
+
/**
|
|
251
|
+
* A named house in a parish, in no village.
|
|
252
|
+
*/
|
|
253
|
+
ParishNamedHouse: "parish-named-house",
|
|
254
|
+
} as const
|
|
255
|
+
|
|
256
|
+
export type VarisAddressType = (typeof VarisAddressType)[keyof typeof VarisAddressType]
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* The columns read from every table.
|
|
260
|
+
*/
|
|
261
|
+
export interface VarisRecord {
|
|
262
|
+
KODS: string
|
|
263
|
+
TIPS_CD: string
|
|
264
|
+
STATUSS: string
|
|
265
|
+
VKUR_CD: string
|
|
266
|
+
VKUR_TIPS: string
|
|
267
|
+
NOSAUKUMS: string
|
|
268
|
+
ATRIB: string
|
|
269
|
+
STD: string
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* One object a building's parent chain passes through.
|
|
274
|
+
*/
|
|
275
|
+
export interface VarisPlace {
|
|
276
|
+
type: string
|
|
277
|
+
name: string
|
|
278
|
+
parentCode: string
|
|
279
|
+
active: boolean
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* The places of the five parent tables, keyed by object code.
|
|
284
|
+
*/
|
|
285
|
+
export type VarisPlaces = ReadonlyMap<string, VarisPlace>
|
|
286
|
+
|
|
287
|
+
export type VarisReading =
|
|
288
|
+
| { readonly admitted: CanonicalRow; readonly addressType: VarisAddressType }
|
|
289
|
+
| { readonly refused: VarisRefusal }
|
|
290
|
+
|
|
291
|
+
const TAG_OF_PLACE: Readonly<Record<string, ComponentTag>> = {
|
|
292
|
+
[VarisObjectType.City]: "locality",
|
|
293
|
+
[VarisObjectType.Parish]: "locality",
|
|
294
|
+
[VarisObjectType.Village]: "dependent_locality",
|
|
295
|
+
[VarisObjectType.Municipality]: "region",
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* The object code the register gives Latvia, the parent of every municipality and state city.
|
|
300
|
+
* No table read holds it as a row.
|
|
301
|
+
*/
|
|
302
|
+
export const VARIS_COUNTRY_CODE = "100000000"
|
|
303
|
+
|
|
304
|
+
const MAX_CHAIN = 4
|
|
305
|
+
|
|
306
|
+
const POSTCODE = /^LV-\d{4}$/u
|
|
307
|
+
|
|
308
|
+
const DIGIT = /\d/u
|
|
309
|
+
|
|
310
|
+
function refusalOfStatus(status: string): VarisRefusal {
|
|
311
|
+
if (status === "DEL") return VarisRefusal.Removed
|
|
312
|
+
|
|
313
|
+
if (status === "ERR") return VarisRefusal.Erroneous
|
|
314
|
+
|
|
315
|
+
return VarisRefusal.UnknownStatus
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function addressTypeOf(parentType: string, chain: readonly VarisPlace[]): VarisAddressType {
|
|
319
|
+
const settlement = parentType === VarisObjectType.Street ? chain[1] : chain[0]
|
|
320
|
+
const underMunicipality = chain.some((place) => place.type === VarisObjectType.Municipality)
|
|
321
|
+
|
|
322
|
+
if (parentType === VarisObjectType.Street) {
|
|
323
|
+
if (settlement?.type === VarisObjectType.Village) return VarisAddressType.VillageStreet
|
|
324
|
+
|
|
325
|
+
return underMunicipality ? VarisAddressType.TownStreet : VarisAddressType.StateCityStreet
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (settlement?.type === VarisObjectType.Village) return VarisAddressType.VillageNamedHouse
|
|
329
|
+
|
|
330
|
+
if (settlement?.type === VarisObjectType.Parish) return VarisAddressType.ParishNamedHouse
|
|
331
|
+
|
|
332
|
+
return VarisAddressType.CityNamedHouse
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Reads one building record into a row or the reason it is refused.
|
|
337
|
+
*/
|
|
338
|
+
export function readVarisBuilding(record: VarisRecord, places: VarisPlaces): VarisReading {
|
|
339
|
+
if (record.STATUSS !== ACTIVE) return { refused: refusalOfStatus(record.STATUSS) }
|
|
340
|
+
|
|
341
|
+
const chain: VarisPlace[] = []
|
|
342
|
+
|
|
343
|
+
for (let code = record.VKUR_CD; code !== VARIS_COUNTRY_CODE;) {
|
|
344
|
+
const place = places.get(code)
|
|
345
|
+
|
|
346
|
+
if (!place) return { refused: VarisRefusal.ParentUnresolved }
|
|
347
|
+
|
|
348
|
+
if (!place.active) return { refused: VarisRefusal.AncestorInactive }
|
|
349
|
+
|
|
350
|
+
chain.push(place)
|
|
351
|
+
|
|
352
|
+
// The deepest chain is street, village, parish, municipality.
|
|
353
|
+
// A longer one is a cycle.
|
|
354
|
+
if (chain.length > MAX_CHAIN) return { refused: VarisRefusal.UnexpectedHierarchy }
|
|
355
|
+
|
|
356
|
+
code = place.parentCode
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
if (!chain.length) return { refused: VarisRefusal.ParentUnresolved }
|
|
360
|
+
|
|
361
|
+
const postcode = record.ATRIB
|
|
362
|
+
|
|
363
|
+
if (!POSTCODE.test(postcode)) return { refused: VarisRefusal.PostcodeAbsent }
|
|
364
|
+
|
|
365
|
+
// The parts are composed from the values as stored, because `STD` repeats a stored trailing space.
|
|
366
|
+
// The labels are trimmed.
|
|
367
|
+
const name = record.NOSAUKUMS
|
|
368
|
+
const components: CanonicalRow["components"] = {}
|
|
369
|
+
const parts: string[] = []
|
|
370
|
+
let administrative: readonly VarisPlace[] = chain
|
|
371
|
+
|
|
372
|
+
if (chain[0]!.type === VarisObjectType.Street) {
|
|
373
|
+
if (!DIGIT.test(name)) return { refused: VarisRefusal.NamedHouseOnStreet }
|
|
374
|
+
|
|
375
|
+
components.street = chain[0]!.name
|
|
376
|
+
components.house_number = name
|
|
377
|
+
parts.push(`${chain[0]!.name} ${name}`)
|
|
378
|
+
administrative = chain.slice(1)
|
|
379
|
+
} else {
|
|
380
|
+
components.venue = name
|
|
381
|
+
parts.push(`"${name}"`)
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
for (const place of administrative) {
|
|
385
|
+
const tag = TAG_OF_PLACE[place.type]
|
|
386
|
+
|
|
387
|
+
if (!tag || components[tag]) return { refused: VarisRefusal.UnexpectedHierarchy }
|
|
388
|
+
|
|
389
|
+
components[tag] = place.name
|
|
390
|
+
parts.push(place.name)
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
components.postcode = postcode
|
|
394
|
+
parts.push(postcode)
|
|
395
|
+
|
|
396
|
+
const raw = record.STD.normalize("NFC")
|
|
397
|
+
|
|
398
|
+
if (parts.join(", ").normalize("NFC") !== raw) return { refused: VarisRefusal.StandardFormMismatch }
|
|
399
|
+
|
|
400
|
+
for (const [tag, value] of Object.entries(components)) {
|
|
401
|
+
components[tag as ComponentTag] = value.trim().normalize("NFC")
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
return {
|
|
405
|
+
addressType: addressTypeOf(chain[0]!.type, chain),
|
|
406
|
+
admitted: {
|
|
407
|
+
raw,
|
|
408
|
+
components,
|
|
409
|
+
country: "LV",
|
|
410
|
+
locale: "lv-LV",
|
|
411
|
+
source: LV_VARIS_ADAPTER_ID,
|
|
412
|
+
source_id: `${LV_VARIS_ADAPTER_ID}-${record.KODS}`,
|
|
413
|
+
corpus_version: "",
|
|
414
|
+
license: LV_VARIS_LICENSE,
|
|
415
|
+
},
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Streams one table's records, each value as stored.
|
|
421
|
+
*
|
|
422
|
+
* Trimming is off because `STD` keeps a stored trailing space inside a building
|
|
423
|
+
* name's quotes, and the composition check compares the two.
|
|
424
|
+
*/
|
|
425
|
+
export function readVarisTable(path: PathBuilderLike): AsyncIterable<VarisRecord> {
|
|
426
|
+
return CSVSpliterator.fromAsync(path, { normalizeKeys: false, trim: false }) as AsyncIterable<VarisRecord>
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Reads the five parent tables into one map keyed by object code.
|
|
431
|
+
*/
|
|
432
|
+
export async function readVarisPlaces(directory: PathBuilderLike): Promise<Map<string, VarisPlace>> {
|
|
433
|
+
const dir = PathBuilder.from(directory)
|
|
434
|
+
const places = new Map<string, VarisPlace>()
|
|
435
|
+
|
|
436
|
+
for (const table of [
|
|
437
|
+
VARIS_TABLES.Street,
|
|
438
|
+
VARIS_TABLES.Village,
|
|
439
|
+
VARIS_TABLES.Parish,
|
|
440
|
+
VARIS_TABLES.Municipality,
|
|
441
|
+
VARIS_TABLES.City,
|
|
442
|
+
]) {
|
|
443
|
+
for await (const record of readVarisTable(dir(table))) {
|
|
444
|
+
places.set(record.KODS, {
|
|
445
|
+
type: record.TIPS_CD,
|
|
446
|
+
name: record.NOSAUKUMS,
|
|
447
|
+
parentCode: record.VKUR_CD,
|
|
448
|
+
active: record.STATUSS === ACTIVE,
|
|
449
|
+
})
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
return places
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export function createVarisAdapter(): CorpusAdapter {
|
|
457
|
+
return {
|
|
458
|
+
id: LV_VARIS_ADAPTER_ID,
|
|
459
|
+
defaultLicense: LV_VARIS_LICENSE,
|
|
460
|
+
addressRole: AddressRole.Premise,
|
|
461
|
+
register: SourceRegister.VARIS,
|
|
462
|
+
surface: SurfaceOrigin.Attested,
|
|
463
|
+
description:
|
|
464
|
+
"Latvia's State Address Register: every active building and land-unit address, as the register writes it.",
|
|
465
|
+
|
|
466
|
+
async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
|
|
467
|
+
if (opts.country && !LV_VARIS_COUNTRIES.includes(opts.country)) {
|
|
468
|
+
throw new UnsupportedCountryError(LV_VARIS_ADAPTER_ID, LV_VARIS_COUNTRIES, opts.country)
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
const dir = PathBuilder.from(opts.inputPath)
|
|
472
|
+
const places = await readVarisPlaces(dir)
|
|
473
|
+
let emitted = 0
|
|
474
|
+
|
|
475
|
+
for await (const record of readVarisTable(dir(VARIS_TABLES.Building))) {
|
|
476
|
+
if (opts.signal?.aborted) break
|
|
477
|
+
|
|
478
|
+
if (opts.limit !== undefined && emitted >= opts.limit) break
|
|
479
|
+
|
|
480
|
+
const reading = readVarisBuilding(record, places)
|
|
481
|
+
|
|
482
|
+
if ("refused" in reading) {
|
|
483
|
+
countDropped(opts, reading.refused)
|
|
484
|
+
|
|
485
|
+
continue
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
yield reading.admitted
|
|
489
|
+
|
|
490
|
+
emitted++
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* The configured adapter instance registered with the corpus builder.
|
|
498
|
+
*/
|
|
499
|
+
export const varisAdapter = createVarisAdapter()
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Downloads the State Address Register's open data (`Valsts adrešu reģistra atvērtie dati`) for the
|
|
7
|
+
* `lv-varis` adapter.
|
|
8
|
+
*
|
|
9
|
+
* Valsts zemes dienests republishes every table of the dataset `varis-atvertie-dati` on data.gov.lv,
|
|
10
|
+
* and a republish can move a resource's URL. The fetcher therefore asks the portal's CKAN API for the
|
|
11
|
+
* dataset's resources and picks each table by the file name its URL ends in, rather than holding URLs
|
|
12
|
+
* that the next republish may retire. The manifest records, per file, the resource URL, the CKAN
|
|
13
|
+
* `last_modified`, the byte count and the SHA-256, and once for the dataset the license id the portal
|
|
14
|
+
* states, so a corpus row traces to one publication.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { APIClient } from "@mailwoman/core/api"
|
|
18
|
+
import { ByteFormatter } from "@mailwoman/core/fs/formatters"
|
|
19
|
+
import { tryStat } from "@mailwoman/core/fs/readers"
|
|
20
|
+
import { makeDirectories } from "@mailwoman/core/fs/writers"
|
|
21
|
+
import { sha256File } from "@mailwoman/core/hash"
|
|
22
|
+
import { PathBuilder, type PathBuilderLike } from "path-ts"
|
|
23
|
+
|
|
24
|
+
import { LV_VARIS_ADAPTER_ID, LV_VARIS_LICENSE, VARIS_TABLES, type VarisTable } from "#lv/adapters/varis/adapter"
|
|
25
|
+
import type { CKANResource } from "#ro/tools/fetch/retea-scolara"
|
|
26
|
+
import type { BaseFetchOptions, FetchSummary, SourceManifest } from "#tools/fetch/download"
|
|
27
|
+
import { downloadToFile, readManifest, writeManifest } from "#tools/fetch/download"
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The data.gov.lv dataset that holds the register's tables.
|
|
31
|
+
*/
|
|
32
|
+
export const LV_VARIS_DATASET_ID = "varis-atvertie-dati"
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The CKAN call that lists the dataset's resources and its license.
|
|
36
|
+
*/
|
|
37
|
+
export const LV_VARIS_PACKAGE_URL = `https://data.gov.lv/dati/api/3/action/package_show?id=${LV_VARIS_DATASET_ID}`
|
|
38
|
+
|
|
39
|
+
const SLUG = LV_VARIS_ADAPTER_ID
|
|
40
|
+
|
|
41
|
+
interface CKANPackage {
|
|
42
|
+
license_id?: string | null
|
|
43
|
+
license_title?: string | null
|
|
44
|
+
organization?: { title?: string | null } | null
|
|
45
|
+
resources?: CKANResource[]
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* One downloaded table, as the manifest records it.
|
|
50
|
+
*/
|
|
51
|
+
export interface VarisFileManifest extends SourceManifest {
|
|
52
|
+
resource_name: string | null
|
|
53
|
+
last_modified: string | null
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The manifest written beside the tables.
|
|
58
|
+
*/
|
|
59
|
+
export interface VarisManifest {
|
|
60
|
+
source: string
|
|
61
|
+
dataset_url: string
|
|
62
|
+
publisher: string | null
|
|
63
|
+
license_id: string | null
|
|
64
|
+
license_title: string | null
|
|
65
|
+
files: VarisFileManifest[]
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The resource whose URL path ends in `/<filename>`.
|
|
70
|
+
*
|
|
71
|
+
* The dataset also lists each table's `_his` history file and a `_metadata.json` beside it,
|
|
72
|
+
* so the match is on the whole final path segment rather than on a prefix.
|
|
73
|
+
*
|
|
74
|
+
* @throws When the dataset lists no resource for `filename`.
|
|
75
|
+
*/
|
|
76
|
+
export function resourceForFile(resources: readonly CKANResource[], filename: string): CKANResource {
|
|
77
|
+
const found = resources.find((resource) => {
|
|
78
|
+
const path = URL.canParse(resource.url) ? new URL(resource.url).pathname : resource.url
|
|
79
|
+
|
|
80
|
+
return path.split("/").at(-1) === filename
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
if (!found) throw new Error(`${SLUG}: dataset ${LV_VARIS_DATASET_ID} lists no resource named ${filename}`)
|
|
84
|
+
|
|
85
|
+
return found
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface DownloadVarisOptions {
|
|
89
|
+
outputDir: PathBuilderLike
|
|
90
|
+
/**
|
|
91
|
+
* The tables to download.
|
|
92
|
+
* Defaults to every table the adapter reads.
|
|
93
|
+
*/
|
|
94
|
+
tables?: readonly VarisTable[]
|
|
95
|
+
force?: boolean
|
|
96
|
+
retries?: number
|
|
97
|
+
retryDelayMs?: number
|
|
98
|
+
signal?: AbortSignal
|
|
99
|
+
report?: (line: string) => void
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export async function downloadVaris(
|
|
103
|
+
client: Pick<APIClient, "fetch">,
|
|
104
|
+
options: DownloadVarisOptions
|
|
105
|
+
): Promise<FetchSummary> {
|
|
106
|
+
const { report } = options
|
|
107
|
+
const destDir = PathBuilder.from(options.outputDir)
|
|
108
|
+
const manifestPath = destDir("MANIFEST.json")
|
|
109
|
+
|
|
110
|
+
await makeDirectories(destDir)
|
|
111
|
+
report?.(`=== ${SLUG}`)
|
|
112
|
+
|
|
113
|
+
const response = await client.fetch<{ result: CKANPackage }>({ url: LV_VARIS_PACKAGE_URL, signal: options.signal })
|
|
114
|
+
const pkg = response.data.result
|
|
115
|
+
|
|
116
|
+
if (pkg.license_id !== LV_VARIS_LICENSE) {
|
|
117
|
+
report?.(` the portal now states license ${pkg.license_id ?? "none"}, not ${LV_VARIS_LICENSE}`)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const recorded = await readManifest<VarisManifest>(manifestPath)
|
|
121
|
+
const recordedFiles = new Map((recorded?.files ?? []).map((entry) => [entry.filename, entry]))
|
|
122
|
+
const files: VarisFileManifest[] = []
|
|
123
|
+
const summary: FetchSummary = { fetched: 0, skipped: 0, failed: 0, failedCodes: [] }
|
|
124
|
+
|
|
125
|
+
for (const table of options.tables ?? Object.values(VARIS_TABLES)) {
|
|
126
|
+
if (options.signal?.aborted) break
|
|
127
|
+
|
|
128
|
+
const resource = resourceForFile(pkg.resources ?? [], table)
|
|
129
|
+
const lastModified = resource.last_modified ?? resource.created ?? null
|
|
130
|
+
const dest = destDir(table)
|
|
131
|
+
const previous = recordedFiles.get(table)
|
|
132
|
+
const stat = await tryStat(dest)
|
|
133
|
+
|
|
134
|
+
if (
|
|
135
|
+
!options.force &&
|
|
136
|
+
previous &&
|
|
137
|
+
stat &&
|
|
138
|
+
previous.source_url === resource.url &&
|
|
139
|
+
previous.last_modified === lastModified &&
|
|
140
|
+
previous.bytes === stat.size
|
|
141
|
+
) {
|
|
142
|
+
report?.(` ${table} present, and the portal lists the same upload`)
|
|
143
|
+
files.push(previous)
|
|
144
|
+
|
|
145
|
+
summary.skipped++
|
|
146
|
+
|
|
147
|
+
continue
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const { bytes } = await downloadToFile({
|
|
151
|
+
url: resource.url,
|
|
152
|
+
dest,
|
|
153
|
+
retries: options.retries,
|
|
154
|
+
retryDelayMs: options.retryDelayMs,
|
|
155
|
+
report,
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
const sha256 = await sha256File(dest)
|
|
159
|
+
|
|
160
|
+
report?.(` ✓ ${table} ${ByteFormatter.formatIEC(bytes)} sha256=${sha256}`)
|
|
161
|
+
|
|
162
|
+
files.push({
|
|
163
|
+
source_url: resource.url,
|
|
164
|
+
filename: table,
|
|
165
|
+
bytes,
|
|
166
|
+
sha256,
|
|
167
|
+
downloaded_at: new Date().toISOString(),
|
|
168
|
+
resource_name: resource.name?.trim() ?? null,
|
|
169
|
+
last_modified: lastModified,
|
|
170
|
+
})
|
|
171
|
+
|
|
172
|
+
summary.fetched++
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const manifest: VarisManifest = {
|
|
176
|
+
source: SLUG,
|
|
177
|
+
dataset_url: LV_VARIS_PACKAGE_URL,
|
|
178
|
+
publisher: pkg.organization?.title ?? null,
|
|
179
|
+
license_id: pkg.license_id ?? null,
|
|
180
|
+
license_title: pkg.license_title ?? null,
|
|
181
|
+
files,
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
await writeManifest(manifestPath, manifest)
|
|
185
|
+
|
|
186
|
+
return summary
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* The directory the adapter reads under a fetch root.
|
|
191
|
+
*/
|
|
192
|
+
export function varisInputPath(outRoot: BaseFetchOptions["outRoot"]): PathBuilderLike {
|
|
193
|
+
return outRoot(SLUG)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface FetchVarisOptions extends BaseFetchOptions {
|
|
197
|
+
force?: boolean
|
|
198
|
+
retries?: number
|
|
199
|
+
signal?: AbortSignal
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export async function fetchVaris(options: FetchVarisOptions, report?: (line: string) => void): Promise<FetchSummary> {
|
|
203
|
+
await using client = new APIClient({ displayName: SLUG, retry: true })
|
|
204
|
+
|
|
205
|
+
// Awaited rather than returned, so the client is disposed after the downloads finish.
|
|
206
|
+
return await downloadVaris(client, {
|
|
207
|
+
outputDir: options.outRoot(SLUG),
|
|
208
|
+
force: options.force,
|
|
209
|
+
retries: options.retries,
|
|
210
|
+
retryDelayMs: options.retryDelayMs,
|
|
211
|
+
signal: options.signal,
|
|
212
|
+
report,
|
|
213
|
+
})
|
|
214
|
+
}
|