@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
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license AGPL-3.0
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* Locale address synthesizer — first introduced for German coverage (night-shift 2026-06-02,
|
|
7
|
-
* DE-1), now shared by country-oriented recipes.
|
|
8
|
-
*
|
|
9
|
-
* The neural model is out-of-distribution on German: it truncates `Straußstraße`→`Strau` (exits at
|
|
10
|
-
* the ß-piece boundary), absorbs the house number into the street (`Hauptstraße 5` → one span),
|
|
11
|
-
* and mis-tags the native-order house number as a postcode (`Prenzlauer Allee 36, 10405 Berlin` →
|
|
12
|
-
* postcode `36`). The cause is ORDER: the model was trained US+FR (house-number-FIRST,
|
|
13
|
-
* postcode-AFTER-city), and never saw the German convention (house-number-AFTER-street,
|
|
14
|
-
* postcode-BEFORE-city). DE-0 confirmed the tokenizer round-trips German orthography cleanly, so
|
|
15
|
-
* this is a coverage gap, not a tokenizer ceiling.
|
|
16
|
-
*
|
|
17
|
-
* The original German generator produced the missing signal as a small targeted supplement slice
|
|
18
|
-
* (synthesis-as-supplement discipline: weight < 0.25, one-and-done). It does NOT synthesize
|
|
19
|
-
* German street names (German morphology is hard to fake) — it takes REAL German component tuples
|
|
20
|
-
* (from OpenAddresses Berlin/Saxony) and renders them in idiomatic German order via the OpenCage
|
|
21
|
-
* `DE` template (`formatAddress(..., "DE")` → `"Straußstraße 27, 12623 Berlin"`). The corpus
|
|
22
|
-
* aligner turns the row into BIO labels; every emitted component surface form occurs verbatim in
|
|
23
|
-
* `raw` so alignment lands. Its locale-neutral API now also serves the international recipe.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import { formatAddress } from "@mailwoman/codex/address-format"
|
|
27
|
-
|
|
28
|
-
import type { CanonicalRow } from "#types"
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* A real address tuple (e.g. one OpenAddresses row): street + locality required, rest optional.
|
|
32
|
-
*/
|
|
33
|
-
/* oxlint-disable sister-software/no-unnamed-threshold -- the bare decimals below are weighted-sampler
|
|
34
|
-
cutoffs, not thresholds: `const r = random()` followed by a cascade of `r < 0.4` branches IS the
|
|
35
|
-
output distribution, and reading the cascade top-to-bottom is how you see it. Naming each cutoff
|
|
36
|
-
would hide the distribution behind a wall of identifiers. Genuine thresholds in these files are
|
|
37
|
-
extracted as named constants above. */
|
|
38
|
-
|
|
39
|
-
export interface LocaleBaseTuple {
|
|
40
|
-
house_number?: string
|
|
41
|
-
street: string
|
|
42
|
-
locality: string
|
|
43
|
-
/**
|
|
44
|
-
* A sub-locality that sits BELOW the locality (a suburb / district). NZ is the case that needs it: the OA DISTRICT
|
|
45
|
-
* column holds the city (`Auckland`) and CITY holds the suburb (`Birkenhead`), so the real envelope carries both (`31
|
|
46
|
-
* Rawene Road, Birkenhead, Auckland`). Rendered between street and locality in both orders when present.
|
|
47
|
-
*/
|
|
48
|
-
dependent_locality?: string
|
|
49
|
-
region?: string
|
|
50
|
-
postcode?: string
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @deprecated Alias — use LocaleBaseTuple.
|
|
55
|
-
*/
|
|
56
|
-
export type GermanBaseTuple = LocaleBaseTuple
|
|
57
|
-
|
|
58
|
-
export interface SynthesizedLocaleRow {
|
|
59
|
-
raw: string
|
|
60
|
-
components: CanonicalRow["components"]
|
|
61
|
-
locale: string
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @deprecated Alias — use SynthesizedLocaleRow.
|
|
66
|
-
*/
|
|
67
|
-
export type SynthesizedGermanRow = SynthesizedLocaleRow
|
|
68
|
-
|
|
69
|
-
export interface LocaleSynthesisOpts {
|
|
70
|
-
random?: () => number
|
|
71
|
-
/**
|
|
72
|
-
* Rendering order for the SAME components. `"native"` (default) uses the country's own template (DE →
|
|
73
|
-
* house-AFTER-street, postcode-BEFORE-city). `"international"` renders house-FIRST, postcode-AFTER-city — the US/GB
|
|
74
|
-
* layout that international feeds, US-centric systems, and our own OpenAddresses de-sample impose on non-US
|
|
75
|
-
* addresses. Training both teaches the model that a German address can arrive either way, so the eval's US-order
|
|
76
|
-
* rendering stops reading as a collapse. See `docs/articles/evals/resolver-geo/2026-06-06-anchor-pilot.md` (the
|
|
77
|
-
* order-artifact correction).
|
|
78
|
-
*/
|
|
79
|
-
order?: "native" | "international"
|
|
80
|
-
/**
|
|
81
|
-
* Postcode surface shape. `"conventional"` (default) canonicalizes to the country's rendered form (NL: OA's glued
|
|
82
|
-
* `1011AB` → the spaced `1011 AB`); `"as-source"` keeps the source's own surface — the form OA (and the OA-derived
|
|
83
|
-
* evals) feed, which for NL is 100% glued. Only NL differs today; every other country passes through identically
|
|
84
|
-
* either way. Mixing both teaches the two-letter-suffix `1012 LM` shape AND the glued feed shape (#241 — the model
|
|
85
|
-
* currently glues the suffix onto the city).
|
|
86
|
-
*/
|
|
87
|
-
postcodeShape?: "conventional" | "as-source"
|
|
88
|
-
/**
|
|
89
|
-
* How the NATIVE-order render joins street and house number. The OpenCage ES template comma-joins (`Calle Mayor, 12`
|
|
90
|
-
* — the official Spanish convention); OA-derived feeds and our ES eval space-join (`CALLE MAYOR 12`, the observed
|
|
91
|
-
* form on all 3,000 eval rows). `"template"` (default) keeps the template's own join; `"space"` collapses `<street>,
|
|
92
|
-
* <house_number>` → `<street> <house_number>` after rendering. Countries whose template already space-joins
|
|
93
|
-
* (DE/IT/NL) render identically under both. Mixing both stops an ES slice from teaching the comma as THE street→house
|
|
94
|
-
* boundary signal (#241 format-diversity audit). International order ignores this (the US template is already
|
|
95
|
-
* house-first space-joined).
|
|
96
|
-
*/
|
|
97
|
-
nativeHouseJoin?: "template" | "space"
|
|
98
|
-
/**
|
|
99
|
-
* The string between rendered address lines. `", "` (default) is the template's own join. `" "` renders the
|
|
100
|
-
* comma-free single-line register — dictation, a copy out of a one-field form — `Neusser Str. 12 Nippes 50733 Köln`
|
|
101
|
-
* for the same components. Stage 2 segments the comma form into three and the comma-free form into ONE, and a single
|
|
102
|
-
* segment starves the placetype-pair prior, which is how the comma-free form loses `Nippes` (#1946). Only the native
|
|
103
|
-
* order reads it; the international layout keeps its own separator.
|
|
104
|
-
*/
|
|
105
|
-
separator?: ", " | " "
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* @deprecated Alias — use LocaleSynthesisOpts.
|
|
110
|
-
*/
|
|
111
|
-
export type GermanSynthesisOpts = LocaleSynthesisOpts
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* ISO-3166 alpha-2 → BCP-47 tag for the emitted rows (primary language per country).
|
|
115
|
-
*/
|
|
116
|
-
const LOCALE_TAG: Record<string, string> = {
|
|
117
|
-
DE: "de-DE",
|
|
118
|
-
ES: "es-ES",
|
|
119
|
-
IT: "it-IT",
|
|
120
|
-
NL: "nl-NL",
|
|
121
|
-
GB: "en-GB",
|
|
122
|
-
FR: "fr-FR",
|
|
123
|
-
US: "en-US",
|
|
124
|
-
NZ: "en-NZ",
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Canonicalize a postcode to the form the country's template renders, so the stored component aligns verbatim against
|
|
129
|
-
* `raw`. NL is the case that needs it: OA stores `1011AB` but the OpenCage NL template emits the conventional spaced
|
|
130
|
-
* `1011 AB` (4 digits + space + 2 letters), which otherwise fails verbatim alignment and drops the row. Other countries
|
|
131
|
-
* pass through unchanged.
|
|
132
|
-
*/
|
|
133
|
-
function normalizePostcode(postcode: string, country: string): string {
|
|
134
|
-
if (country === "NL") {
|
|
135
|
-
const m = /^(\d{4})\s*([A-Za-z]{2})$/.exec(postcode)
|
|
136
|
-
|
|
137
|
-
if (m) return `${m[1]} ${m[2]!.toUpperCase()}`
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return postcode
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* True when `value` appears verbatim AND as a standalone token (so BIO alignment lands cleanly).
|
|
145
|
-
*/
|
|
146
|
-
function tokenPresent(raw: string, value: string): boolean {
|
|
147
|
-
if (!raw.includes(value)) return false
|
|
148
|
-
// Reject substring-of-a-larger-number collisions (e.g. house "2" inside postcode "12623").
|
|
149
|
-
const i = raw.indexOf(value)
|
|
150
|
-
const before = raw[i - 1]
|
|
151
|
-
const after = raw[i + value.length]
|
|
152
|
-
const isDigit = (c: string | undefined) => c !== undefined && c >= "0" && c <= "9"
|
|
153
|
-
|
|
154
|
-
if (/^\d+$/.test(value) && (isDigit(before) || isDigit(after))) return false
|
|
155
|
-
|
|
156
|
-
return true
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Render one real tuple into an idiomatic, locale-ordered `{raw, components}` row via the OpenCage `country` template
|
|
161
|
-
* (DE → house-after-street + postcode-before-city; ES/IT the same; GB house-first; NL carries the `1012 LM` postcode),
|
|
162
|
-
* with light variation (drop house number / postcode some of the time). Returns `null` when the tuple is too thin or a
|
|
163
|
-
* component wouldn't align cleanly.
|
|
164
|
-
*
|
|
165
|
-
* Region handling is order-dependent: NATIVE order omits it (the native template absorbs the admin region into the
|
|
166
|
-
* postcode/city line, so it rarely renders verbatim and would break BIO alignment), while INTERNATIONAL order includes
|
|
167
|
-
* it in the tail ("City, Region Postcode" — the US/feed layout the eval uses; v0.9.3 / #327).
|
|
168
|
-
*
|
|
169
|
-
* Pass `opts.order: "international"` to render the same components house-first / postcode-after-city instead (see
|
|
170
|
-
* {@link LocaleSynthesisOpts.order}) — the layout international feeds impose on foreign addresses, and the one a
|
|
171
|
-
* native-order-trained model treats as a "collapse."
|
|
172
|
-
*/
|
|
173
|
-
export function synthesizeLocaleRow(
|
|
174
|
-
base: LocaleBaseTuple,
|
|
175
|
-
country: string,
|
|
176
|
-
opts: LocaleSynthesisOpts = {}
|
|
177
|
-
): SynthesizedLocaleRow | null {
|
|
178
|
-
const random = opts.random ?? Math.random
|
|
179
|
-
const order = opts.order ?? "native"
|
|
180
|
-
|
|
181
|
-
if (!base.street || !base.locality) return null
|
|
182
|
-
|
|
183
|
-
const components: CanonicalRow["components"] = { street: base.street, locality: base.locality }
|
|
184
|
-
|
|
185
|
-
// Sub-locality (suburb / district) sits between street and locality and renders in BOTH orders — it's part
|
|
186
|
-
// of the address body, not the admin-region tail that native order drops. NZ needs it (suburb + city both on
|
|
187
|
-
// the envelope). The tokenPresent check below drops the row if the template didn't surface it verbatim.
|
|
188
|
-
if (base.dependent_locality) {
|
|
189
|
-
components.dependent_locality = base.dependent_locality
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// ~80% keep the house number (the rest are street-only forms, also idiomatic).
|
|
193
|
-
if (base.house_number && random() < 0.8) {
|
|
194
|
-
components.house_number = base.house_number
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// ~85% keep the postcode (canonicalized to the country's rendered form — NL spaces it). The
|
|
198
|
-
// `postcodeShape: "as-source"` rewrite happens AFTER the render: the OpenCage NL template
|
|
199
|
-
// normalizes the postcode itself, so a glued input can't survive rendering directly.
|
|
200
|
-
if (base.postcode && random() < 0.85) {
|
|
201
|
-
components.postcode = normalizePostcode(base.postcode, country)
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// International order carries the REGION in the tail ("City, Region Postcode") — the layout real
|
|
205
|
-
// US/feed renderings (and our OA eval) use. v0.9.2 rendered international order WITHOUT the region,
|
|
206
|
-
// so the model never learned to segment the tail and mangled it at eval (region absorbed into the
|
|
207
|
-
// locality / locality dropped); v0.9.3 closes that gap (#327). Native order still drops the region
|
|
208
|
-
// (the native template absorbs it into the city line, which would break verbatim alignment).
|
|
209
|
-
if (order === "international" && base.region) {
|
|
210
|
-
components.region = base.region
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// Native order uses the address's own country template; international order uses the US template —
|
|
214
|
-
// house-first, postcode-after-city, with a region slot for the tail. Neither branch consumes a
|
|
215
|
-
// `random()` draw for the template, so the RNG sequence existing callers/tests depend on is stable.
|
|
216
|
-
const renderCountry = order === "international" ? "US" : country
|
|
217
|
-
const separator = order === "native" ? (opts.separator ?? ", ") : ", "
|
|
218
|
-
let raw = formatAddress(components, renderCountry, { separator })
|
|
219
|
-
|
|
220
|
-
if (!raw) return null
|
|
221
|
-
|
|
222
|
-
// Native-order space-join (see {@link LocaleSynthesisOpts.nativeHouseJoin}): collapse the template's
|
|
223
|
-
// `<street>, <hn>` comma to a space — the OA/feed layout. A no-op for templates that already
|
|
224
|
-
// space-join (the substring isn't present), and skipped when the house number was dropped above.
|
|
225
|
-
if (order === "native" && separator === ", " && opts.nativeHouseJoin === "space" && components.house_number) {
|
|
226
|
-
raw = raw.replace(
|
|
227
|
-
`${components.street}, ${components.house_number}`,
|
|
228
|
-
`${components.street} ${components.house_number}`
|
|
229
|
-
)
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// `postcodeShape: "as-source"` (see {@link LocaleSynthesisOpts.postcodeShape}): rewrite BOTH raw and
|
|
233
|
-
// the component back to the source's own surface (NL glued `1011AB`). Post-render because the
|
|
234
|
-
// OpenCage NL template normalizes the postcode to the spaced form no matter what it's given.
|
|
235
|
-
if (opts.postcodeShape === "as-source" && components.postcode && base.postcode) {
|
|
236
|
-
const sourceForm = base.postcode.trim()
|
|
237
|
-
|
|
238
|
-
if (sourceForm && sourceForm !== components.postcode && raw.includes(components.postcode)) {
|
|
239
|
-
raw = raw.replace(components.postcode, sourceForm)
|
|
240
|
-
components.postcode = sourceForm
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Every component must align — drop the row if the template didn't surface one verbatim, or a
|
|
245
|
-
// numeric component collides with a neighbouring digit run.
|
|
246
|
-
for (const value of Object.values(components)) {
|
|
247
|
-
if (!value || !tokenPresent(raw, value)) return null
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
return { raw, components, locale: LOCALE_TAG[country] ?? country.toLowerCase() }
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* German wrapper over {@link synthesizeLocaleRow}. Kept for the build-german-slice caller + tests.
|
|
255
|
-
*/
|
|
256
|
-
export function synthesizeGermanRow(
|
|
257
|
-
base: LocaleBaseTuple,
|
|
258
|
-
opts: LocaleSynthesisOpts = {}
|
|
259
|
-
): SynthesizedLocaleRow | null {
|
|
260
|
-
return synthesizeLocaleRow(base, "DE", opts)
|
|
261
|
-
}
|
package/lib/test-kit/index.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license AGPL-3.0
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* The corpus adapter-test harness — the sibling of `mailwoman/test-kit/`, and the shape every
|
|
7
|
-
* `corpus/src/adapters/*\/adapter.test.ts` had grown for itself.
|
|
8
|
-
*
|
|
9
|
-
* Nine of them opened with the same twenty lines: the `mkdtemp`/`rm`/`tmpdir`/`join` +
|
|
10
|
-
* `JSONSpliterator` import header, a `let scratch`, a `beforeEach` that mkdtemps
|
|
11
|
-
* `mailwoman-<something>-`, an `afterEach` that force-removes it swallowing errors, and a
|
|
12
|
-
* `loadRows()` that reads the run's `canonical.jsonl` back through `JSONSpliterator`. Nothing about
|
|
13
|
-
* any of that is adapter-specific; only the tmpdir prefix and the adapter id ever differed.
|
|
14
|
-
*
|
|
15
|
-
* This directory is excluded from the published tarball by `corpus/package.json`'s `files` (the
|
|
16
|
-
* `!test-kit/**\/*` entry, which predates this file), which is why importing `vitest` here is safe
|
|
17
|
-
* — `mailwoman/test-kit/index.ts` imports it on the same grounds.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import { temporaryDirectory, type TemporaryDirectory } from "@mailwoman/core/fs/temporary"
|
|
21
|
-
import { join, resolvePath } from "path-ts"
|
|
22
|
-
import { createNewlineWriter, JSONSpliterator } from "spliterator"
|
|
23
|
-
import { afterEach, beforeEach } from "vitest"
|
|
24
|
-
|
|
25
|
-
import type { CanonicalRow } from "#types"
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* A per-test scratch directory. `path` is only meaningful inside a test body — it is `""` until the `beforeEach` runs.
|
|
29
|
-
*/
|
|
30
|
-
export interface ScratchDir {
|
|
31
|
-
readonly path: string
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Register a fresh scratch directory for each test in the current suite, removed afterwards.
|
|
36
|
-
*
|
|
37
|
-
* `slug` names the directory (`mailwoman-<slug>-XXXXXX` under the OS temp dir) and exists only to make a stray leftover
|
|
38
|
-
* traceable to the suite that made it. Teardown swallows its own errors: a test that already removed the directory, or
|
|
39
|
-
* a platform that holds a handle open, must not turn a passing assertion into a failing suite.
|
|
40
|
-
*/
|
|
41
|
-
export function useScratchDir(slug: string): ScratchDir {
|
|
42
|
-
const dir = { path: "" }
|
|
43
|
-
let owned: TemporaryDirectory | undefined
|
|
44
|
-
|
|
45
|
-
beforeEach(async () => {
|
|
46
|
-
owned = await temporaryDirectory(`mailwoman-${slug}-`)
|
|
47
|
-
dir.path = resolvePath(owned.path)
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
// The directory is owned by the TEST, never by a module-scoped stack. Under `isolate: false` this module is shared
|
|
51
|
-
// across every corpus adapter suite in a fork, so a stack disposed by the first file's `afterAll` left every later
|
|
52
|
-
// file calling `use()` on a disposed stack — which is what "Cannot call AsyncDisposableStack.prototype.use on an
|
|
53
|
-
// already-disposed DisposableStack" was, across a different set of adapter suites on each run.
|
|
54
|
-
//
|
|
55
|
-
// Teardown swallows its own errors: a test that already removed the directory, or a platform that holds a handle
|
|
56
|
-
// open, must not turn a passing assertion into a failing suite.
|
|
57
|
-
afterEach(async () => {
|
|
58
|
-
try {
|
|
59
|
-
await owned?.[Symbol.asyncDispose]()
|
|
60
|
-
} catch {
|
|
61
|
-
// See above.
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
owned = undefined
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
return dir
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Read back the canonical rows a `runAdapter` call wrote — `<outputDir>/<adapterID>/canonical.jsonl`, streamed through
|
|
72
|
-
* `JSONSpliterator` and collected.
|
|
73
|
-
*/
|
|
74
|
-
export function readCanonicalRows(outputDir: string, adapterID: string): Promise<CanonicalRow[]> {
|
|
75
|
-
return Array.fromAsync(JSONSpliterator.fromAsync<CanonicalRow>(join(outputDir, adapterID, "canonical.jsonl")))
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Write a delimited fixture — a header line plus the given rows — and answer its path.
|
|
80
|
-
*
|
|
81
|
-
* Three adapter suites carried a hand-rolled copy of this, and the copies disagreed about the one thing a reader cannot
|
|
82
|
-
* see: two joined the rows without a trailing newline and the third appended one. `createNewlineWriter` terminates
|
|
83
|
-
* every line it writes, so the file round-trips through `CSVSpliterator` the same way whichever suite produced it, and
|
|
84
|
-
* a caller passes content without a delimiter.
|
|
85
|
-
*/
|
|
86
|
-
export async function writeDelimitedFixture(
|
|
87
|
-
filePath: string,
|
|
88
|
-
header: string,
|
|
89
|
-
rows: readonly string[]
|
|
90
|
-
): Promise<string> {
|
|
91
|
-
await using out = createNewlineWriter(filePath)
|
|
92
|
-
|
|
93
|
-
await out.write(header)
|
|
94
|
-
|
|
95
|
-
for (const row of rows) {
|
|
96
|
-
await out.write(row)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return filePath
|
|
100
|
-
}
|
package/lib/tools/align-slice.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { openWriteStream } from "@mailwoman/core/fs/streams"
|
|
2
|
-
import { JSONSpliterator } from "spliterator"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Re-emit a CANONICAL jsonl ({raw, components, country, source, ...}) as a LABELED jsonl in the CURRENT align format,
|
|
6
|
-
* by running every row through `alignRow` (corpus/src/align.ts).
|
|
7
|
-
*
|
|
8
|
-
* ## Why this exists
|
|
9
|
-
*
|
|
10
|
-
* Most synthetic slices are GENERATED on demand by a `build-*-slice` recipe (parametrized by --count), so re-emitting
|
|
11
|
-
* them in a new label format is just a re-run. A few slices are FIXED corpora with a hand/DeepSeek-authored canonical
|
|
12
|
-
* source that is never regenerated — notably `deepseek-kryptonite` (the adversarial hard-case set) and the
|
|
13
|
-
* `deepseek-translit-*` variants. Their committed parquets carry whatever label format was current when they were first
|
|
14
|
-
* built.
|
|
15
|
-
*
|
|
16
|
-
* When the corpus label format changes (the v0.5.0 char-offset triple, #519), those fixed slices must be RE-ALIGNED,
|
|
17
|
-
* not regenerated — feed the canonical source back through the same `alignRow` the from-source build uses, so the spans
|
|
18
|
-
* land in the new format with zero drift. That is exactly what this does: canonical jsonl in → labeled jsonl out, one
|
|
19
|
-
* `alignRow` per row, quarantine on miss.
|
|
20
|
-
*
|
|
21
|
-
* It is the uniform counterpart to corpus/src/tools/slice-kryptonite.ts (which couples to a base manifest and writes
|
|
22
|
-
* parquet directly). Output goes to jsonl so it joins the SAME jsonl-to-parquet path every other overlay slice uses.
|
|
23
|
-
*
|
|
24
|
-
* Usage: node scripts/align-canonical-slice.ts\
|
|
25
|
-
* --input /path/canonical-kryptonite.jsonl\
|
|
26
|
-
* --output /tmp/kryptonite-labeled.jsonl\
|
|
27
|
-
* --corpus-version 0.5.0
|
|
28
|
-
*/
|
|
29
|
-
import { alignRow } from "#utils"
|
|
30
|
-
|
|
31
|
-
export interface AlignSliceOptions {
|
|
32
|
-
input: string
|
|
33
|
-
output: string
|
|
34
|
-
corpusVersion: string
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export async function alignCanonicalSlice(args: AlignSliceOptions): Promise<void> {
|
|
38
|
-
// Read phase only — the write path stays on createWriteStream.
|
|
39
|
-
const outStream = openWriteStream(args.output, { encoding: "utf8" })
|
|
40
|
-
let labeled = 0
|
|
41
|
-
let quarantined = 0
|
|
42
|
-
const quarantineReasons: Record<string, number> = {}
|
|
43
|
-
|
|
44
|
-
for await (const canonical of JSONSpliterator.fromAsync<Parameters<typeof alignRow>[0]>(args.input)) {
|
|
45
|
-
// Stamp the target corpus version so the emitted row's provenance matches the run it joins.
|
|
46
|
-
canonical.corpus_version = args.corpusVersion
|
|
47
|
-
const result = alignRow(canonical)
|
|
48
|
-
|
|
49
|
-
if (result.kind === "labeled") {
|
|
50
|
-
outStream.write(JSON.stringify(result.row) + "\n")
|
|
51
|
-
|
|
52
|
-
labeled++
|
|
53
|
-
} else {
|
|
54
|
-
quarantined++
|
|
55
|
-
const r = result.row.reason ?? "unknown"
|
|
56
|
-
quarantineReasons[r] = (quarantineReasons[r] ?? 0) + 1
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
await new Promise<void>((res) => {
|
|
61
|
-
outStream.end(res)
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
console.error(
|
|
65
|
-
`align-canonical-slice: ${labeled} labeled, ${quarantined} quarantined → ${args.output}\n` +
|
|
66
|
-
` quarantine reasons: ${JSON.stringify(quarantineReasons)}`
|
|
67
|
-
)
|
|
68
|
-
}
|
package/lib/tools/fetch/index.ts
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license AGPL-3.0
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* The `mailwoman corpus fetch <source>` family — reproducible bulk-download recovery modules for
|
|
7
|
-
* the open-data sources the corpus build pipeline consumes. Each module writes the raw download
|
|
8
|
-
* files **plus** a sibling `MANIFEST.json` capturing the origin URL, fetch timestamp, byte count,
|
|
9
|
-
* and sha256 so downstream adapters can verify provenance.
|
|
10
|
-
*
|
|
11
|
-
* The corpus build pipeline itself does NOT call these modules — the existing convention is for
|
|
12
|
-
* operators to pre-download into an out-root and point adapters at the resulting files. These
|
|
13
|
-
* modules exist for **reproducibility** (disk-loss recovery, weekly refresh, fresh-environment
|
|
14
|
-
* bootstrap).
|
|
15
|
-
*
|
|
16
|
-
* ## Usage
|
|
17
|
-
*
|
|
18
|
-
* ```sh
|
|
19
|
-
* # Default: writes under ./data/corpus/sources/ relative to the working directory
|
|
20
|
-
* mailwoman corpus fetch state-sources
|
|
21
|
-
* mailwoman corpus fetch hrsa
|
|
22
|
-
*
|
|
23
|
-
* # Or point at the standard mailwoman data root
|
|
24
|
-
* mailwoman corpus fetch state-sources --out-root /data/corpus/sources
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* Each adapter under `corpus/src/adapters/<adapter>/README.md` documents the specific URL its
|
|
28
|
-
* input was pulled from; these modules mirror those URLs in a single executable place.
|
|
29
|
-
*
|
|
30
|
-
* ## Coverage
|
|
31
|
-
*
|
|
32
|
-
* - `ban` — French BAN (Base Adresse Nationale), all départements incl. DOM/TOM. Tier B (Licence
|
|
33
|
-
* Ouverte 2.0).
|
|
34
|
-
* - `nad` — US DOT National Address Database (~97M address points, ArcGIS FeatureServer). Tier A
|
|
35
|
-
* (US PD).
|
|
36
|
-
* - `geonames-postal` — GeoNames per-country postal exports (~80 countries). Tier B (CC-BY-4.0,
|
|
37
|
-
* attribute "GeoNames"). The only source in this family carrying `(postcode, locality, region)`
|
|
38
|
-
* with the names INLINE, which is why it exists: the `parent_id` join route covers exactly five
|
|
39
|
-
* countries and the nearest-centroid fallback measured under 50% agreement on four of those five.
|
|
40
|
-
* GeoNames does not publish every country — Venezuela 404s.
|
|
41
|
-
* - `hrsa` — HRSA Health Center Service Delivery Sites (federal). Tier A (US PD).
|
|
42
|
-
* - `imls-pls` — IMLS Public Libraries Survey, outlet-level (~17K library branches, FY 2023).
|
|
43
|
-
* Tier A (US PD).
|
|
44
|
-
* - `nppes` — NPPES NPI registry, full monthly dissemination (~7M provider venue+address rows).
|
|
45
|
-
* Tier A (US PD).
|
|
46
|
-
* - `openaddresses` — OpenAddresses country collections (default: Canada / `ca`). Tier B/C mixed
|
|
47
|
-
* — per-row filter.
|
|
48
|
-
* - `ourairports` — OurAirports global airport CSVs (~83K airports + the country/region/runway
|
|
49
|
-
* joins). Tier A (public domain). The VENUE half of the sub-venue arc (#35); it carries no
|
|
50
|
-
* interior structure, which comes from `@mailwoman/osm/sdk`'s `extractOSMSubVenues`.
|
|
51
|
-
* - `wikidata-subvenue` — the multilingual sub-venue DESIGNATOR vocabulary, pulled as the labels
|
|
52
|
-
* and aliases of eight Wikidata concepts (terminal, gate, concourse, campus, …) plus the
|
|
53
|
-
* airport-terminal instance labels as attested usage. Tier A (CC0). The only module in this
|
|
54
|
-
* family built on `APIClient` — see its docstring for why.
|
|
55
|
-
* - `state-sources` — NY/TX/DE/OR notaries, IA contractors, WA health providers, HI lobbyists.
|
|
56
|
-
* Tier A (state PD-equivalent).
|
|
57
|
-
* - `state-hi-schools` — Hawaii DOE school directory (original XLSX; HIDOE + PCS sheets). Tier A
|
|
58
|
-
* (state PD-equivalent).
|
|
59
|
-
* - `tiger-full` — US Census TIGER 2024 ADDRFEAT, all US counties. Tier A (US PD).
|
|
60
|
-
* - `juso-kr` — the Korean road-name address register (주소DB, plus the English road-name DB) from
|
|
61
|
-
* business.juso.go.kr, the LABEL source for Korean. Tier B ("이용허락범위 제한 없음", attribution).
|
|
62
|
-
* - `localdata-kr` — Korea's local-government permit registry, one CSV per category, each row carrying
|
|
63
|
-
* the lot-number AND road-name address of one premises plus a coordinate. The NOISY source for
|
|
64
|
-
* Korean. Tier B (same label as `juso-kr`).
|
|
65
|
-
* - `gcis-tw` — Taiwan's company and business registers from the economic ministry's open-data
|
|
66
|
-
* platform, 148 files by region and industry. The NOISY source for Taiwanese. Tier B (Open
|
|
67
|
-
* Government Data License v1.0 — the prescribed attribution is a condition of the grant).
|
|
68
|
-
* - `acra-sg` — Singapore's ACRA corporate-entity register, 27 CSVs with the address FIELDED. The
|
|
69
|
-
* NOISY source for Singapore. Tier B (Singapore Open Data Licence 1.0).
|
|
70
|
-
* - `houjin-jp` — the National Tax Agency's corporate-number register, the nationwide Unicode CSV.
|
|
71
|
-
* The NOISY source for Japanese. Tier A-equivalent (free use, no attribution condition stated).
|
|
72
|
-
*
|
|
73
|
-
* License tiers per `docs/licensing-strategy.md` (or the playpen knowledge base mirror at
|
|
74
|
-
* `docs/docs/projects/mailwoman/licensing-strategy.md`). `openaddresses` is a **Tier-mixed**
|
|
75
|
-
* source: the downloaded collection includes CC0, CC-BY, OGL, and ODbL/CC-BY-SA rows. The per-row
|
|
76
|
-
* `LICENSE` filter in the `openaddresses` adapter is essential — Tier-C (ODbL, CC-BY-SA) rows are
|
|
77
|
-
* dropped at ingest by default to protect proprietary-weights training.
|
|
78
|
-
*
|
|
79
|
-
* ### OpenAddresses authentication (as of 2026-05-18)
|
|
80
|
-
*
|
|
81
|
-
* `batch.openaddresses.io` now requires a free registered account for bulk downloads (auth check
|
|
82
|
-
* prevents CDN abuse; data remains openly licensed). `fetchOpenAddresses` reads `OA_BATCH_TOKEN`
|
|
83
|
-
* from the environment:
|
|
84
|
-
*
|
|
85
|
-
* ```sh
|
|
86
|
-
* # One-time: register at https://batch.openaddresses.io/register
|
|
87
|
-
* # Log in → Profile → "Create Token" → copy token
|
|
88
|
-
* export OA_BATCH_TOKEN=<your-token>
|
|
89
|
-
*
|
|
90
|
-
* # Download Canada (~2 GiB compressed, ~7 GiB uncompressed)
|
|
91
|
-
* mailwoman corpus fetch openaddresses --country ca \
|
|
92
|
-
* --out-root $MAILWOMAN_DATA_ROOT/corpus/sources
|
|
93
|
-
*
|
|
94
|
-
* # Or any other OA country code
|
|
95
|
-
* mailwoman corpus fetch openaddresses --country fr
|
|
96
|
-
* ```
|
|
97
|
-
*
|
|
98
|
-
* Without a token the command prints setup instructions and reports the failure.
|
|
99
|
-
*
|
|
100
|
-
* ## Adding a new source
|
|
101
|
-
*
|
|
102
|
-
* 1. Pick the right module (or create a sibling one if the source is from a meaningfully
|
|
103
|
-
* different family).
|
|
104
|
-
* 2. Append to the `SOURCES` array: `{ slug, filename, url }`.
|
|
105
|
-
* 3. Confirm the destination URL via `curl -sI -L <url> | head` before committing — state
|
|
106
|
-
* open-data portals occasionally rotate Socrata view IDs.
|
|
107
|
-
* 4. Run the command against a scratch `--out-root` to verify the download succeeds + the
|
|
108
|
-
* MANIFEST is well-formed.
|
|
109
|
-
* 5. Add the source's adapter (or extend an existing one) under `corpus/src/adapters/`.
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
import { fetchBan } from "#fr/tools/fetch/ban"
|
|
113
|
-
import { fetchHoujinJP } from "#jp/tools/fetch/houjin"
|
|
114
|
-
import { fetchJusoKR } from "#kr/tools/fetch/juso"
|
|
115
|
-
import { fetchLocaldataKR } from "#kr/tools/fetch/localdata"
|
|
116
|
-
import { fetchACRASG } from "#sg/tools/fetch/acra"
|
|
117
|
-
import { fetchGeonamesDumps } from "#tools/fetch/geonames/dump"
|
|
118
|
-
import { fetchGeonamesPostal } from "#tools/fetch/geonames/postal"
|
|
119
|
-
import { fetchOpenAddresses } from "#tools/fetch/openaddresses"
|
|
120
|
-
import { fetchOurAirports } from "#tools/fetch/ourairports"
|
|
121
|
-
import { fetchWikidataSubVenue } from "#tools/fetch/wikidata-subvenue"
|
|
122
|
-
import { fetchGCISTW } from "#tw/tools/fetch/gcis"
|
|
123
|
-
import { fetchHRSA } from "#us/tools/fetch/hrsa"
|
|
124
|
-
import { fetchIMLSPLS } from "#us/tools/fetch/imls-pls"
|
|
125
|
-
import { fetchNAD } from "#us/tools/fetch/nad"
|
|
126
|
-
import { fetchNPPES } from "#us/tools/fetch/nppes"
|
|
127
|
-
import { fetchStateHISchools } from "#us/tools/fetch/state/hi-schools"
|
|
128
|
-
import { fetchStateSources } from "#us/tools/fetch/state/sources"
|
|
129
|
-
import { fetchTigerFull } from "#us/tools/fetch/tiger-full"
|
|
130
|
-
|
|
131
|
-
export * from "#sg/tools/fetch/acra"
|
|
132
|
-
export * from "#fr/tools/fetch/ban"
|
|
133
|
-
export * from "#tw/tools/fetch/gcis"
|
|
134
|
-
export * from "#tools/fetch/geonames/dump"
|
|
135
|
-
export * from "#tools/fetch/geonames/postal"
|
|
136
|
-
export * from "#jp/tools/fetch/houjin"
|
|
137
|
-
export * from "#us/tools/fetch/hrsa"
|
|
138
|
-
export * from "#us/tools/fetch/imls-pls"
|
|
139
|
-
export * from "#kr/tools/fetch/juso"
|
|
140
|
-
export * from "#kr/tools/fetch/localdata"
|
|
141
|
-
export * from "#us/tools/fetch/nad"
|
|
142
|
-
export * from "#us/tools/fetch/nppes"
|
|
143
|
-
export * from "#tools/fetch/openaddresses"
|
|
144
|
-
export * from "#tools/fetch/ourairports"
|
|
145
|
-
export * from "#us/tools/fetch/state/hi-schools"
|
|
146
|
-
export * from "#us/tools/fetch/state/sources"
|
|
147
|
-
export * from "#us/tools/fetch/tiger-full"
|
|
148
|
-
export * from "#tools/fetch/wikidata-subvenue"
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* The fetch-source registry: id → module entry point. Each entry point takes its own options interface.
|
|
152
|
-
*/
|
|
153
|
-
export const FETCH_SOURCES = {
|
|
154
|
-
"acra-sg": fetchACRASG,
|
|
155
|
-
ban: fetchBan,
|
|
156
|
-
"gcis-tw": fetchGCISTW,
|
|
157
|
-
"houjin-jp": fetchHoujinJP,
|
|
158
|
-
"juso-kr": fetchJusoKR,
|
|
159
|
-
"localdata-kr": fetchLocaldataKR,
|
|
160
|
-
nad: fetchNAD,
|
|
161
|
-
"geonames-dump": fetchGeonamesDumps,
|
|
162
|
-
"geonames-postal": fetchGeonamesPostal,
|
|
163
|
-
hrsa: fetchHRSA,
|
|
164
|
-
"imls-pls": fetchIMLSPLS,
|
|
165
|
-
nppes: fetchNPPES,
|
|
166
|
-
openaddresses: fetchOpenAddresses,
|
|
167
|
-
ourairports: fetchOurAirports,
|
|
168
|
-
"state-sources": fetchStateSources,
|
|
169
|
-
"state-hi-schools": fetchStateHISchools,
|
|
170
|
-
"tiger-full": fetchTigerFull,
|
|
171
|
-
"wikidata-subvenue": fetchWikidataSubVenue,
|
|
172
|
-
} as const
|
|
173
|
-
|
|
174
|
-
export type FetchSourceID = keyof typeof FETCH_SOURCES
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Title-case an ALL-CAPS GB place/street string (#690 — all-caps is OOD for the model). PPD ships every field
|
|
3
|
-
* upper-case; the model trains on natural casing. Particles (upon, super, next, …) stay lowercase mid-name, both
|
|
4
|
-
* between words and between hyphen segments. Each apostrophe-separated segment is capitalized on its own (D'Arcy,
|
|
5
|
-
* James'), except a bare trailing possessive 's, which stays lowercase (BISHOP'S → Bishop's).
|
|
6
|
-
*/
|
|
7
|
-
const GB_PARTICLES = new Set([
|
|
8
|
-
"upon",
|
|
9
|
-
"on",
|
|
10
|
-
"under",
|
|
11
|
-
"in",
|
|
12
|
-
"by",
|
|
13
|
-
"the",
|
|
14
|
-
"le",
|
|
15
|
-
"la",
|
|
16
|
-
"de",
|
|
17
|
-
"cum",
|
|
18
|
-
"next",
|
|
19
|
-
"with",
|
|
20
|
-
"over",
|
|
21
|
-
"at",
|
|
22
|
-
"super",
|
|
23
|
-
"sub",
|
|
24
|
-
"and",
|
|
25
|
-
"of",
|
|
26
|
-
"y",
|
|
27
|
-
"en",
|
|
28
|
-
])
|
|
29
|
-
|
|
30
|
-
function caseWord(word: string, isFirst: boolean): string {
|
|
31
|
-
if (!word) return word
|
|
32
|
-
const lower = word.toLowerCase()
|
|
33
|
-
|
|
34
|
-
if (!isFirst && GB_PARTICLES.has(lower)) return lower
|
|
35
|
-
|
|
36
|
-
// Capitalize the first letter of each apostrophe-separated segment, except possessive 's.
|
|
37
|
-
return lower
|
|
38
|
-
.split("'")
|
|
39
|
-
.map((segment, idx) => {
|
|
40
|
-
if (!segment) return segment
|
|
41
|
-
|
|
42
|
-
// Don't capitalize a trailing bare possessive 's
|
|
43
|
-
if (idx > 0 && segment === "s") return segment
|
|
44
|
-
|
|
45
|
-
// Capitalize the first letter of this segment
|
|
46
|
-
return segment[0]!.toUpperCase() + segment.slice(1)
|
|
47
|
-
})
|
|
48
|
-
.join("'")
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function titleCaseGB(value: string): string {
|
|
52
|
-
value = value.trim()
|
|
53
|
-
let wordIndex = 0
|
|
54
|
-
|
|
55
|
-
return value
|
|
56
|
-
.split(/\s+/)
|
|
57
|
-
.map((token) => {
|
|
58
|
-
const cased = token
|
|
59
|
-
.split("-")
|
|
60
|
-
.map((seg, segIndex) => caseWord(seg, wordIndex === 0 && segIndex === 0))
|
|
61
|
-
.join("-")
|
|
62
|
-
|
|
63
|
-
wordIndex += 1
|
|
64
|
-
|
|
65
|
-
return cased
|
|
66
|
-
})
|
|
67
|
-
.join(" ")
|
|
68
|
-
.trim()
|
|
69
|
-
}
|