@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
|
@@ -3,25 +3,29 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* The Korean permit registry (지방행정인허가데이터) as an `observation` source. It reads the delivered
|
|
7
|
+
* CSVs and turns an aligned string into a corpus row.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The publisher delivers CP949, one file per business category, with both address systems typed by
|
|
10
|
+
* a clerk plus a planar coordinate in epsg:5174 and both postcodes. The adapter separates reading from
|
|
11
|
+
* aligning so the alignment rate per file can be measured before any row enters a corpus.
|
|
12
12
|
*/
|
|
13
13
|
import { type PathBuilderLike } from "path-ts";
|
|
14
14
|
import type { Aligned } from "#kr/adapters/localdata/align";
|
|
15
15
|
/**
|
|
16
|
-
* The source label every row
|
|
16
|
+
* The source label stored on every row from this adapter.
|
|
17
|
+
* Configs use this label as the `source_weights` key.
|
|
17
18
|
*/
|
|
18
19
|
export declare const SOURCE = "localdata-kr";
|
|
19
20
|
/**
|
|
20
|
-
* Every permit in this registry is Korean
|
|
21
|
+
* Every permit in this registry is Korean.
|
|
22
|
+
* The publisher issues no others.
|
|
21
23
|
*/
|
|
22
24
|
export declare const COUNTRY = "KR";
|
|
23
25
|
/**
|
|
24
|
-
* The 영업상태명 of a business still trading.
|
|
26
|
+
* The 영업상태명 of a business still trading.
|
|
27
|
+
*
|
|
28
|
+
* A closed one's address records somewhere that was.
|
|
25
29
|
*/
|
|
26
30
|
export declare const OPEN_STATUS = "\uC601\uC5C5/\uC815\uC0C1";
|
|
27
31
|
/**
|
|
@@ -43,7 +47,9 @@ export interface PermitRow {
|
|
|
43
47
|
}
|
|
44
48
|
export interface ReadPermitOptions {
|
|
45
49
|
/**
|
|
46
|
-
* Keep only these 영업상태명 values.
|
|
50
|
+
* Keep only these 영업상태명 values.
|
|
51
|
+
*
|
|
52
|
+
* Empty admits every status.
|
|
47
53
|
*/
|
|
48
54
|
statuses?: readonly string[];
|
|
49
55
|
}
|
|
@@ -56,11 +62,12 @@ export declare function readPermitFile(path: PathBuilderLike, options?: ReadPerm
|
|
|
56
62
|
*/
|
|
57
63
|
export declare function readPermitDirectory(directory: PathBuilderLike, options?: ReadPermitOptions): AsyncGenerator<PermitRow>;
|
|
58
64
|
/**
|
|
59
|
-
* One aligned string as a row in the CJK
|
|
65
|
+
* One aligned string as a row in the CJK corpus schema.
|
|
60
66
|
*
|
|
61
|
-
* The token labels are derived from the spans rather than
|
|
62
|
-
* character falls inside a span, `O` otherwise.
|
|
63
|
-
*
|
|
67
|
+
* The token labels are derived from the spans rather than stored beside them:
|
|
68
|
+
* a token is `B-<tag>` when its first character falls inside a span, `O` otherwise.
|
|
69
|
+
* A span covering several tokens labels only the token where it starts.
|
|
70
|
+
* The char-path trainer reads this label from each span.
|
|
64
71
|
*/
|
|
65
|
-
export declare function
|
|
72
|
+
export declare function alignedToCJKRow(aligned: Aligned): Record<string, unknown>;
|
|
66
73
|
//# sourceMappingURL=permit-rows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit-rows.d.ts","sourceRoot":"","sources":["../../../../lib/kr/adapters/localdata/permit-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"permit-rows.d.ts","sourceRoot":"","sources":["../../../../lib/kr/adapters/localdata/permit-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAqB,KAAK,eAAe,EAAsB,MAAM,SAAS,CAAA;AAIrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,MAAM,iBAAiB,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,OAAO,OAAO,CAAA;AAE3B;;;;GAIG;AACH,eAAO,MAAM,WAAW,8BAAU,CAAA;AASlC;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChB;AA2BD,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAuB,cAAc,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,iBAAsB,GAC7B,cAAc,CAAC,SAAS,CAAC,CA4B3B;AAED;;GAEG;AACH,wBAAuB,mBAAmB,CACzC,SAAS,EAAE,eAAe,EAC1B,OAAO,GAAE,iBAAsB,GAC7B,cAAc,CAAC,SAAS,CAAC,CAM3B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzE"}
|
|
@@ -3,39 +3,45 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* The Korean permit registry (지방행정인허가데이터) as an `observation` source. It reads the delivered
|
|
7
|
+
* CSVs and turns an aligned string into a corpus row.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The publisher delivers CP949, one file per business category, with both address systems typed by
|
|
10
|
+
* a clerk plus a planar coordinate in epsg:5174 and both postcodes. The adapter separates reading from
|
|
11
|
+
* aligning so the alignment rate per file can be measured before any row enters a corpus.
|
|
12
12
|
*/
|
|
13
13
|
import { decodeByteStream, openReadStream } from "@mailwoman/core/fs/streams";
|
|
14
|
-
import { basename, extname,
|
|
14
|
+
import { basename, extname, resolvePathBuilder } from "path-ts";
|
|
15
15
|
import { CSVSpliterator } from "spliterator";
|
|
16
16
|
import { Globerator } from "spliterator/node/fs";
|
|
17
17
|
/**
|
|
18
|
-
* The source label every row
|
|
18
|
+
* The source label stored on every row from this adapter.
|
|
19
|
+
* Configs use this label as the `source_weights` key.
|
|
19
20
|
*/
|
|
20
21
|
export const SOURCE = "localdata-kr";
|
|
21
22
|
/**
|
|
22
|
-
* Every permit in this registry is Korean
|
|
23
|
+
* Every permit in this registry is Korean.
|
|
24
|
+
* The publisher issues no others.
|
|
23
25
|
*/
|
|
24
26
|
export const COUNTRY = "KR";
|
|
25
27
|
/**
|
|
26
|
-
* The 영업상태명 of a business still trading.
|
|
28
|
+
* The 영업상태명 of a business still trading.
|
|
29
|
+
*
|
|
30
|
+
* A closed one's address records somewhere that was.
|
|
27
31
|
*/
|
|
28
32
|
export const OPEN_STATUS = "영업/정상";
|
|
29
33
|
/**
|
|
30
|
-
* The publisher's encoding.
|
|
34
|
+
* The publisher's encoding.
|
|
35
|
+
*
|
|
36
|
+
* `cp949` rather than `euc-kr` for the reason `decodeByteStream` states.
|
|
31
37
|
*/
|
|
32
38
|
const ENCODING = "cp949";
|
|
33
39
|
/**
|
|
34
|
-
* The first of these column spellings the row
|
|
40
|
+
* The first of these column spellings present in the row, trimmed, or the empty string.
|
|
35
41
|
*
|
|
36
|
-
* The publisher's older and newer exports name the same field differently — `도로명주소`
|
|
37
|
-
* against `좌표정보(x)` — and a directory holds both vintages,
|
|
38
|
-
* under.
|
|
42
|
+
* The publisher's older and newer exports name the same field differently — `도로명주소`
|
|
43
|
+
* against `도로명전체주소`, `좌표정보(X)` against `좌표정보(x)` — and a directory holds both vintages,
|
|
44
|
+
* so each field names every spelling it has been delivered under.
|
|
39
45
|
*/
|
|
40
46
|
function firstColumn(row, ...names) {
|
|
41
47
|
for (const name of names) {
|
|
@@ -56,7 +62,8 @@ function toNumber(value) {
|
|
|
56
62
|
*/
|
|
57
63
|
export async function* readPermitFile(path, options = {}) {
|
|
58
64
|
const wanted = new Set(options.statuses ?? [OPEN_STATUS]);
|
|
59
|
-
const
|
|
65
|
+
const file = path.toString();
|
|
66
|
+
const category = basename(file, extname(file));
|
|
60
67
|
const bytes = openReadStream(path);
|
|
61
68
|
for await (const row of CSVSpliterator.fromAsync(decodeByteStream(bytes, ENCODING))) {
|
|
62
69
|
const status = firstColumn(row, "영업상태명");
|
|
@@ -83,22 +90,20 @@ export async function* readPermitFile(path, options = {}) {
|
|
|
83
90
|
* Stream every permit of every CSV in a directory, in filename order.
|
|
84
91
|
*/
|
|
85
92
|
export async function* readPermitDirectory(directory, options = {}) {
|
|
86
|
-
const files = await Globerator.
|
|
87
|
-
.filter((entry) => entry.isFile() && entry.name.endsWith(".csv"))
|
|
88
|
-
.map((entry) => entry.name)
|
|
89
|
-
.toSorted();
|
|
93
|
+
const files = await Globerator.files("csv", { cwd: directory, absolute: false, recursive: false }).toSorted();
|
|
90
94
|
for (const name of files) {
|
|
91
|
-
yield* readPermitFile(
|
|
95
|
+
yield* readPermitFile(resolvePathBuilder(directory, name), options);
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
/**
|
|
95
|
-
* One aligned string as a row in the CJK
|
|
99
|
+
* One aligned string as a row in the CJK corpus schema.
|
|
96
100
|
*
|
|
97
|
-
* The token labels are derived from the spans rather than
|
|
98
|
-
* character falls inside a span, `O` otherwise.
|
|
99
|
-
*
|
|
101
|
+
* The token labels are derived from the spans rather than stored beside them:
|
|
102
|
+
* a token is `B-<tag>` when its first character falls inside a span, `O` otherwise.
|
|
103
|
+
* A span covering several tokens labels only the token where it starts.
|
|
104
|
+
* The char-path trainer reads this label from each span.
|
|
100
105
|
*/
|
|
101
|
-
export function
|
|
106
|
+
export function alignedToCJKRow(aligned) {
|
|
102
107
|
const raw = aligned.raw;
|
|
103
108
|
const tokens = [];
|
|
104
109
|
const labels = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit-rows.js","sourceRoot":"","sources":["../../../../lib/kr/adapters/localdata/permit-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"permit-rows.js","sourceRoot":"","sources":["../../../../lib/kr/adapters/localdata/permit-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,25 +4,28 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
6
|
* Fetch the Korean road-name address register (도로명주소 주소DB) from the ministry's address-industry
|
|
7
|
-
* portal, business.juso.go.kr.
|
|
7
|
+
* portal, business.juso.go.kr. The ministry assigns the road names and building numbers it publishes, so
|
|
8
|
+
* this source asserts `address` on `premise` rows: about 6,000,000
|
|
8
9
|
* road-name addresses and 8,000,000 lot-number (지번) records, split by the publisher into four
|
|
9
10
|
* pipe-delimited CP949 text files per region (도로명코드 / 주소 / 지번 / 부가정보), with the postcode in
|
|
10
11
|
* the supplementary file. No coordinates. The public-data portal labels it "이용허락범위 제한 없음"
|
|
11
|
-
* (no restriction on the scope of use)
|
|
12
|
-
* distinction that matters against the ministry's entrance-coordinate products
|
|
12
|
+
* (no restriction on the scope of use). It is a direct download with no application step — the
|
|
13
|
+
* distinction that matters against the ministry's entrance-coordinate products. Those products are provided
|
|
13
14
|
* only after a purpose-of-use review (`docs/superpowers/plans/counsel-dossier.md` §4).
|
|
14
15
|
*
|
|
15
|
-
* The portal is a single-page app
|
|
16
|
+
* The portal is a single-page app. the file behind it is reached in two calls. `selectAttrbDBDwldList`
|
|
16
17
|
* lists the monthly full files for one product (`rtlDtaDtlSn` 8 is the 주소DB, 2 the English
|
|
17
|
-
* road-name DB), and `/api/jst/download` streams one by the parameters the listing
|
|
18
|
-
* English DB
|
|
18
|
+
* road-name DB), and `/api/jst/download` streams one by the parameters in the listing. The
|
|
19
|
+
* English DB accompanies it as the Latin-script half of the same register.
|
|
19
20
|
*
|
|
20
21
|
* Invoke via `mailwoman corpus fetch juso-kr --out-root <path>`.
|
|
21
22
|
*/
|
|
22
|
-
import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download
|
|
23
|
+
import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download";
|
|
23
24
|
export interface FetchJusoKROptions extends BaseFetchOptions {
|
|
24
25
|
/**
|
|
25
|
-
* The month to fetch as `
|
|
26
|
+
* The month to fetch as `yyyymm`.
|
|
27
|
+
*
|
|
28
|
+
* Defaults to the latest month the portal lists as present.
|
|
26
29
|
*/
|
|
27
30
|
month?: string;
|
|
28
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"juso.d.ts","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/juso.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"juso.d.ts","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/juso.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAA4C,MAAM,uBAAuB,CAAA;AAqCrH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC3D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAsCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CA4DrH"}
|
|
@@ -4,25 +4,26 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
6
|
* Fetch the Korean road-name address register (도로명주소 주소DB) from the ministry's address-industry
|
|
7
|
-
* portal, business.juso.go.kr.
|
|
7
|
+
* portal, business.juso.go.kr. The ministry assigns the road names and building numbers it publishes, so
|
|
8
|
+
* this source asserts `address` on `premise` rows: about 6,000,000
|
|
8
9
|
* road-name addresses and 8,000,000 lot-number (지번) records, split by the publisher into four
|
|
9
10
|
* pipe-delimited CP949 text files per region (도로명코드 / 주소 / 지번 / 부가정보), with the postcode in
|
|
10
11
|
* the supplementary file. No coordinates. The public-data portal labels it "이용허락범위 제한 없음"
|
|
11
|
-
* (no restriction on the scope of use)
|
|
12
|
-
* distinction that matters against the ministry's entrance-coordinate products
|
|
12
|
+
* (no restriction on the scope of use). It is a direct download with no application step — the
|
|
13
|
+
* distinction that matters against the ministry's entrance-coordinate products. Those products are provided
|
|
13
14
|
* only after a purpose-of-use review (`docs/superpowers/plans/counsel-dossier.md` §4).
|
|
14
15
|
*
|
|
15
|
-
* The portal is a single-page app
|
|
16
|
+
* The portal is a single-page app. the file behind it is reached in two calls. `selectAttrbDBDwldList`
|
|
16
17
|
* lists the monthly full files for one product (`rtlDtaDtlSn` 8 is the 주소DB, 2 the English
|
|
17
|
-
* road-name DB), and `/api/jst/download` streams one by the parameters the listing
|
|
18
|
-
* English DB
|
|
18
|
+
* road-name DB), and `/api/jst/download` streams one by the parameters in the listing. The
|
|
19
|
+
* English DB accompanies it as the Latin-script half of the same register.
|
|
19
20
|
*
|
|
20
21
|
* Invoke via `mailwoman corpus fetch juso-kr --out-root <path>`.
|
|
21
22
|
*/
|
|
22
23
|
import { makeDirectories } from "@mailwoman/core/fs/writers";
|
|
23
24
|
import { sha256File } from "@mailwoman/core/hash";
|
|
24
|
-
import {
|
|
25
|
-
import { resumableDownload, writeManifest } from "#tools/fetch/download
|
|
25
|
+
import { stringifyJSON } from "@mailwoman/core/json";
|
|
26
|
+
import { resumableDownload, writeManifest } from "#tools/fetch/download";
|
|
26
27
|
const SLUG = "juso-kr";
|
|
27
28
|
const PORTAL = "https://business.juso.go.kr";
|
|
28
29
|
const LIST_URL = `${PORTAL}/api/jst/selectAttrbDBDwldList`;
|
|
@@ -48,7 +49,7 @@ async function listMonthlyFiles(sn, year, month) {
|
|
|
48
49
|
const res = await fetch(LIST_URL, {
|
|
49
50
|
method: "POST",
|
|
50
51
|
headers: { ...BROWSER_HEADERS, accept: "application/json", "content-type": "application/json;charset=UTF-8" },
|
|
51
|
-
body:
|
|
52
|
+
body: stringifyJSON({ rtlDtaDtlSn: sn, year, month, expand: "Y" }),
|
|
52
53
|
});
|
|
53
54
|
if (!res.ok)
|
|
54
55
|
throw new Error(`juso-kr: listing product ${sn} answered HTTP ${res.status}`);
|
|
@@ -69,7 +70,7 @@ function downloadURL(file, regYmd) {
|
|
|
69
70
|
return `${DOWNLOAD_URL}?${query.toString()}`;
|
|
70
71
|
}
|
|
71
72
|
export async function fetchJusoKR(options, report) {
|
|
72
|
-
const destDir =
|
|
73
|
+
const destDir = options.outRoot(SLUG);
|
|
73
74
|
await makeDirectories(destDir);
|
|
74
75
|
const now = new Date();
|
|
75
76
|
const files = [];
|
|
@@ -83,12 +84,12 @@ export async function fetchJusoKR(options, report) {
|
|
|
83
84
|
continue;
|
|
84
85
|
}
|
|
85
86
|
const url = downloadURL(file, String(now.getFullYear()));
|
|
86
|
-
const dest =
|
|
87
|
+
const dest = destDir(file.tmprFileNm);
|
|
87
88
|
report?.(`=== ${SLUG} / ${product.name} ${file.crtrYm} → ${file.tmprFileNm}`);
|
|
88
89
|
let bytes;
|
|
89
90
|
try {
|
|
90
|
-
// The portal drops a connection every few megabytes and answers Range with 206,
|
|
91
|
-
// from what landed rather than starting the 181 MB over.
|
|
91
|
+
// The portal drops a connection every few megabytes and answers Range with 206,
|
|
92
|
+
// so the transfer resumes from what landed rather than starting the 181 MB over.
|
|
92
93
|
bytes = await resumableDownload({ url, dest, headers: BROWSER_HEADERS, report });
|
|
93
94
|
}
|
|
94
95
|
catch (error) {
|
|
@@ -114,7 +115,7 @@ export async function fetchJusoKR(options, report) {
|
|
|
114
115
|
downloaded_at: new Date().toISOString(),
|
|
115
116
|
files,
|
|
116
117
|
};
|
|
117
|
-
await writeManifest(
|
|
118
|
+
await writeManifest(destDir("MANIFEST.json"), manifest);
|
|
118
119
|
return { fetched: files.length, skipped: 0, failed: failedCodes.length, failedCodes };
|
|
119
120
|
}
|
|
120
121
|
//# sourceMappingURL=juso.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"juso.js","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/juso.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"juso.js","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/juso.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,25 +4,32 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
6
|
* Fetch Korea's local-government permit registry (지방행정인허가데이터): one CSV per permit category,
|
|
7
|
-
* every business a local authority has licensed, about 195 categories. Each row
|
|
7
|
+
* every business a local authority has licensed, about 195 categories. Each row includes both address
|
|
8
8
|
* forms of the same premises — `소재지전체주소` (the lot-number form, 지번) and `도로명전체주소` (the
|
|
9
|
-
* road-name form) — plus both postcodes and a planar coordinate (`좌표정보(x/y)`,
|
|
10
|
-
*
|
|
11
|
-
* board's coordinate half
|
|
9
|
+
* road-name form) — plus both postcodes and a planar coordinate (`좌표정보(x/y)`, epsg:5174). That
|
|
10
|
+
* The two formats together provide the cheapest dual-format signal in Korean addresses.
|
|
11
|
+
* The coordinate supplies the board's coordinate half. That role gives this source its weight.
|
|
12
|
+
*
|
|
13
|
+
* What it asserts differs by field. The local authority grants the permit, so the permit identifier is an
|
|
14
|
+
* `identity` assertion. The address is an `observation`: a clerk typed it, in both address systems, with
|
|
15
|
+
* no validation. The registry attests only that it received the string. Both sit on `premise` rows —
|
|
16
|
+
* the address of the licensed premises. One verdict over the source would discard the permit identity.
|
|
12
17
|
*
|
|
13
18
|
* The public-data portal labels the category files "이용허락범위 제한 없음" and links them to
|
|
14
|
-
* `file.localdata.go.kr`, which serves them behind a session: the category page sets the
|
|
19
|
+
* `file.localdata.go.kr`, which serves them behind a session: the category page sets the xsrf cookie,
|
|
15
20
|
* `/file/validate/download-count` is the portal's own rate check (429 when it wants a pause), and
|
|
16
|
-
* `/file/download/<slug>/info` streams the CSV. The files are CP949 as delivered
|
|
17
|
-
* decodes. The restaurant category
|
|
21
|
+
* `/file/download/<slug>/info` streams the CSV. The files are CP949 as delivered. the adapter
|
|
22
|
+
* decodes. The restaurant category by itself is about 700 MB.
|
|
18
23
|
*
|
|
19
24
|
* Invoke via `mailwoman corpus fetch localdata-kr --out-root <path>`, optionally with
|
|
20
25
|
* `--categories general_restaurants,rest_cafes`.
|
|
21
26
|
*/
|
|
22
|
-
import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download
|
|
27
|
+
import type { BaseFetchOptions, FetchSummary } from "#tools/fetch/download";
|
|
23
28
|
export interface FetchLocaldataKROptions extends BaseFetchOptions {
|
|
24
29
|
/**
|
|
25
|
-
* Category slugs to fetch (the path segment of `/file/<slug>/info`).
|
|
30
|
+
* Category slugs to fetch (the path segment of `/file/<slug>/info`).
|
|
31
|
+
*
|
|
32
|
+
* Defaults to every category the portal lists.
|
|
26
33
|
*/
|
|
27
34
|
categories?: string[];
|
|
28
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localdata.d.ts","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/localdata.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"localdata.d.ts","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/localdata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAA4C,MAAM,uBAAuB,CAAA;AAWrH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAChE;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAyDD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,YAAY,CAAC,CA6FvB"}
|
|
@@ -4,17 +4,22 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
6
|
* Fetch Korea's local-government permit registry (지방행정인허가데이터): one CSV per permit category,
|
|
7
|
-
* every business a local authority has licensed, about 195 categories. Each row
|
|
7
|
+
* every business a local authority has licensed, about 195 categories. Each row includes both address
|
|
8
8
|
* forms of the same premises — `소재지전체주소` (the lot-number form, 지번) and `도로명전체주소` (the
|
|
9
|
-
* road-name form) — plus both postcodes and a planar coordinate (`좌표정보(x/y)`,
|
|
10
|
-
*
|
|
11
|
-
* board's coordinate half
|
|
9
|
+
* road-name form) — plus both postcodes and a planar coordinate (`좌표정보(x/y)`, epsg:5174). That
|
|
10
|
+
* The two formats together provide the cheapest dual-format signal in Korean addresses.
|
|
11
|
+
* The coordinate supplies the board's coordinate half. That role gives this source its weight.
|
|
12
|
+
*
|
|
13
|
+
* What it asserts differs by field. The local authority grants the permit, so the permit identifier is an
|
|
14
|
+
* `identity` assertion. The address is an `observation`: a clerk typed it, in both address systems, with
|
|
15
|
+
* no validation. The registry attests only that it received the string. Both sit on `premise` rows —
|
|
16
|
+
* the address of the licensed premises. One verdict over the source would discard the permit identity.
|
|
12
17
|
*
|
|
13
18
|
* The public-data portal labels the category files "이용허락범위 제한 없음" and links them to
|
|
14
|
-
* `file.localdata.go.kr`, which serves them behind a session: the category page sets the
|
|
19
|
+
* `file.localdata.go.kr`, which serves them behind a session: the category page sets the xsrf cookie,
|
|
15
20
|
* `/file/validate/download-count` is the portal's own rate check (429 when it wants a pause), and
|
|
16
|
-
* `/file/download/<slug>/info` streams the CSV. The files are CP949 as delivered
|
|
17
|
-
* decodes. The restaurant category
|
|
21
|
+
* `/file/download/<slug>/info` streams the CSV. The files are CP949 as delivered. the adapter
|
|
22
|
+
* decodes. The restaurant category by itself is about 700 MB.
|
|
18
23
|
*
|
|
19
24
|
* Invoke via `mailwoman corpus fetch localdata-kr --out-root <path>`, optionally with
|
|
20
25
|
* `--categories general_restaurants,rest_cafes`.
|
|
@@ -24,8 +29,7 @@ import { pathExists } from "@mailwoman/core/fs/readers";
|
|
|
24
29
|
import { makeDirectories } from "@mailwoman/core/fs/writers";
|
|
25
30
|
import { sha256File } from "@mailwoman/core/hash";
|
|
26
31
|
import { sleep } from "@mailwoman/core/utils/sleep";
|
|
27
|
-
import {
|
|
28
|
-
import { cookieHeader, loadCollectionFiles, streamBodyToFile, withRetries, writeManifest, } from "#tools/fetch/download/index";
|
|
32
|
+
import { cookieHeader, loadCollectionFiles, streamBodyToFile, withRetries, writeManifest } from "#tools/fetch/download";
|
|
29
33
|
const SLUG = "localdata-kr";
|
|
30
34
|
const PORTAL = "https://file.localdata.go.kr";
|
|
31
35
|
const INDEX_URL = `${PORTAL}/file/general_restaurants/info`;
|
|
@@ -35,7 +39,8 @@ const HTTP_TOO_MANY_REQUESTS = 429;
|
|
|
35
39
|
const RATE_PAUSE_MS = 30_000;
|
|
36
40
|
const USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) mailwoman-corpus-fetch";
|
|
37
41
|
/**
|
|
38
|
-
* Open a session on the portal: the category page answers the
|
|
42
|
+
* Open a session on the portal: the category page answers the xsrf cookie
|
|
43
|
+
* and the navigation that names every category.
|
|
39
44
|
*/
|
|
40
45
|
async function openSession() {
|
|
41
46
|
const res = await fetch(INDEX_URL, {
|
|
@@ -57,7 +62,9 @@ async function openSession() {
|
|
|
57
62
|
return { cookie, xsrf, categories };
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
|
-
* The portal's own rate check
|
|
65
|
+
* The portal's own rate check.
|
|
66
|
+
*
|
|
67
|
+
* A 429 response states the requested pause in prose, so the caller sleeps and retries.
|
|
61
68
|
*/
|
|
62
69
|
async function validateDownloadCount(session) {
|
|
63
70
|
const headers = { "user-agent": USER_AGENT, cookie: session.cookie, referer: INDEX_URL };
|
|
@@ -68,15 +75,16 @@ async function validateDownloadCount(session) {
|
|
|
68
75
|
return res.status !== HTTP_TOO_MANY_REQUESTS;
|
|
69
76
|
}
|
|
70
77
|
export async function fetchLocaldataKR(options, report) {
|
|
71
|
-
const destDir =
|
|
78
|
+
const destDir = options.outRoot(SLUG);
|
|
72
79
|
await makeDirectories(destDir);
|
|
73
|
-
const manifestPath =
|
|
80
|
+
const manifestPath = destDir("MANIFEST.json");
|
|
74
81
|
const session = await openSession();
|
|
75
82
|
const wanted = options.categories?.length
|
|
76
83
|
? session.categories.filter((category) => options.categories.includes(category.slug))
|
|
77
84
|
: session.categories;
|
|
78
85
|
report?.(`=== ${SLUG}: ${wanted.length} of ${session.categories.length} categories`);
|
|
79
|
-
// A previous run's entries survive, keyed by file name, so a re-run
|
|
86
|
+
// A previous run's entries survive, keyed by file name, so a re-run
|
|
87
|
+
// after an interruption fetches only what is missing.
|
|
80
88
|
const previous = await loadCollectionFiles(manifestPath);
|
|
81
89
|
const files = new Map();
|
|
82
90
|
let fetched = 0;
|
|
@@ -84,7 +92,7 @@ export async function fetchLocaldataKR(options, report) {
|
|
|
84
92
|
const failedCodes = [];
|
|
85
93
|
for (const category of wanted) {
|
|
86
94
|
const filename = `${category.slug}.csv`;
|
|
87
|
-
const dest =
|
|
95
|
+
const dest = destDir(filename);
|
|
88
96
|
const url = `${PORTAL}/file/download/${category.slug}/info`;
|
|
89
97
|
const before = previous.get(filename);
|
|
90
98
|
if (before && (await pathExists(dest))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localdata.js","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/localdata.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"localdata.js","sourceRoot":"","sources":["../../../../lib/kr/tools/fetch/localdata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `bd-adresses`: the Administration du cadastre et de la topographie's BD-Adresses CSV adapter,
|
|
7
|
+
* covering Luxembourg.
|
|
8
|
+
*
|
|
9
|
+
* Input is the semicolon-separated `addresses.csv` the ACT publishes for the whole country through
|
|
10
|
+
* `data.public.lu`, beside a GeoJSON and a shapefile carrying the same records. The adapter reads
|
|
11
|
+
* `rue` as the street, `numero` as the house number, and `code_postal` with `localite` as the
|
|
12
|
+
* postcode and its postal locality.
|
|
13
|
+
*
|
|
14
|
+
* The publisher describes BD-Adresses as `un sous-ensemble des adresses figurant dans le registre
|
|
15
|
+
* national des localités et des rues`, enriched with coordinates. The row count is therefore the
|
|
16
|
+
* published subset rather than Luxembourg's address count.
|
|
17
|
+
*
|
|
18
|
+
* `data.public.lu` states `cc-zero` for the dataset, and the address-source register elects
|
|
19
|
+
* `CC0-1.0` for `lu-property-building-1` on that statement, so the adapter records that license on
|
|
20
|
+
* every row.
|
|
21
|
+
*
|
|
22
|
+
* Luxembourg writes the house number before the street, which `STREET_ORDERS` records as
|
|
23
|
+
* `number-first`, and `COMMA_JOINED_STREET_COUNTRIES` does not list it. `formatAddressRow` therefore
|
|
24
|
+
* renders `20 Kaesfurterstrooss, L-9755 Hupperdange`.
|
|
25
|
+
*
|
|
26
|
+
* ## The file carries one street name, in no single language
|
|
27
|
+
*
|
|
28
|
+
* Luxembourg is trilingual, and the CSV declares one street column.
|
|
29
|
+
* There is no `rue_fr`, `rue_de` or `rue_lb` to choose between, so the adapter emits `rue` as the
|
|
30
|
+
* publisher wrote it.
|
|
31
|
+
*
|
|
32
|
+
* What that column holds is mixed.
|
|
33
|
+
* Measured over the 179,622 rows of the 2026-09-28 edition with a generic-word probe rather than a
|
|
34
|
+
* language classifier: 133,449 values open with a French street generic such as `Rue`, `Avenue` or
|
|
35
|
+
* `Montée`, 18,629 close with a Luxembourgish one such as `-strooss`, `-wee` or `-gaass`, and the
|
|
36
|
+
* remaining 27,544 match neither probe and include plainly Luxembourgish forms such as
|
|
37
|
+
* `Am Stengber`, `An Hiesel` and `Um Reebou`.
|
|
38
|
+
* No column marks a row's language, so `locale` reads `und-LU`.
|
|
39
|
+
* `und` is BCP-47's undetermined language subtag, and the repository already stores it in
|
|
40
|
+
* `#recipes/bare/country` and `#tools/postcode-triples`.
|
|
41
|
+
* Labeling every row `fr-LU` or `lb-LU` would assert a language for a name the publisher did not
|
|
42
|
+
* tag.
|
|
43
|
+
*
|
|
44
|
+
* ## The number comes from `numero`, and never from the street line
|
|
45
|
+
*
|
|
46
|
+
* `rue` and `numero` are separate columns and the publisher never composes them, so neither
|
|
47
|
+
* `splitStreetLine` nor `composeHouseNumber` applies here: there is no line to split and no second
|
|
48
|
+
* column to join.
|
|
49
|
+
* Splitting the street would also be wrong in both directions.
|
|
50
|
+
* 175 `rue` values end in a digit, among them `Route Nationale 1`, `Rue du 9 août 2019` and
|
|
51
|
+
* `Cité des Sacrifiés 1940-1945`.
|
|
52
|
+
* `numero` already carries its own suffix as one token: 162,273 rows hold bare digits, 17,087 a
|
|
53
|
+
* trailing letter such as `12A`, 239 a hyphenated range such as `22-26`, eight the word `BIS` or
|
|
54
|
+
* `bis`, and 15 are empty.
|
|
55
|
+
*
|
|
56
|
+
* `id_geoportail` is the publisher's own composition of the same two values.
|
|
57
|
+
* It ends in `_<id_caclr_rue>_<numero>` on 179,607 of the 179,607 numbered rows, so the number this
|
|
58
|
+
* adapter emits agrees with the publisher's where the publisher states one.
|
|
59
|
+
* The file publishes no preformatted address line, so a rendered single line has no publisher-side
|
|
60
|
+
* counterpart to be asserted against.
|
|
61
|
+
*
|
|
62
|
+
* ## Reading the file needs a quote-aware parser
|
|
63
|
+
*
|
|
64
|
+
* 22 rows RFC 4180-quote `rue` and double its interior quotes:
|
|
65
|
+
* `"Cité ""Pënscherbierg""";3;Wilwerwiltz;…`.
|
|
66
|
+
* Those rows carry no semicolon inside the quotes, so a naive split on `;` still yields 13 fields
|
|
67
|
+
* and passes a field-count check while handing the street to the corpus as
|
|
68
|
+
* `"Cité ""Pënscherbierg"""`.
|
|
69
|
+
* `CSVSpliterator` unescapes it to `Cité "Pënscherbierg"`.
|
|
70
|
+
* The same edition carries 0 fields with an embedded newline and 0 carriage returns in the whole
|
|
71
|
+
* file.
|
|
72
|
+
*
|
|
73
|
+
* The file opens with a UTF-8 byte-order mark, the three bytes `EF BB BF`, which the reader strips.
|
|
74
|
+
* The first record's own first key therefore reads `rue` rather than the mark followed by `rue`.
|
|
75
|
+
* That mark is why the portal's byte count exceeds by three what a reader that discards it reports.
|
|
76
|
+
*
|
|
77
|
+
* The adapter streams with `CSVSpliterator.fromAsync`.
|
|
78
|
+
* It honors `opts.limit`, `opts.signal` and `opts.country`.
|
|
79
|
+
*/
|
|
80
|
+
import { type CorpusAdapter } from "#types";
|
|
81
|
+
/**
|
|
82
|
+
* Registry id for this adapter.
|
|
83
|
+
*
|
|
84
|
+
* Stamped into every row it emits, so a corpus record can be traced back to the dataset it came from.
|
|
85
|
+
*/
|
|
86
|
+
export declare const BD_ADRESSES_ADAPTER_ID = "bd-adresses";
|
|
87
|
+
/**
|
|
88
|
+
* The license the address-source register elects for this publication.
|
|
89
|
+
*/
|
|
90
|
+
export declare const BD_ADRESSES_DEFAULT_LICENSE = "CC0-1.0";
|
|
91
|
+
/**
|
|
92
|
+
* Every jurisdiction this adapter emits, checked against a caller's `--country`.
|
|
93
|
+
*
|
|
94
|
+
* BD-Adresses is one national file and Luxembourg has no dependency, so this is a single entry
|
|
95
|
+
* where `ban`, `matrikkelen` and `ryhti` each carry more than one.
|
|
96
|
+
*/
|
|
97
|
+
export declare const BD_ADRESSES_COUNTRIES: readonly string[];
|
|
98
|
+
/**
|
|
99
|
+
* The columns `rows` indexes by name, in the order the published header declares them.
|
|
100
|
+
*
|
|
101
|
+
* A caller that downloads the file checks its header against this list.
|
|
102
|
+
*/
|
|
103
|
+
export declare const BD_ADRESSES_REQUIRED_COLUMNS: readonly string[];
|
|
104
|
+
export declare function createBDAdressesAdapter(): CorpusAdapter;
|
|
105
|
+
/**
|
|
106
|
+
* The configured adapter instance registered with the corpus builder.
|
|
107
|
+
*/
|
|
108
|
+
export declare const bdAdressesAdapter: CorpusAdapter;
|
|
109
|
+
//# sourceMappingURL=adapter.d.ts.map
|