@mailwoman/corpus 10.0.0 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +791 -0
- package/lib/adapters/dedup-key.ts +40 -0
- package/lib/adapters/errors.ts +21 -0
- package/lib/adapters/geonames/adapter.ts +43 -53
- package/lib/adapters/geonames/postal/adapter.ts +31 -37
- package/lib/adapters/gleif/adapter.ts +829 -0
- package/lib/adapters/libpostal-dictionary.ts +37 -0
- package/lib/adapters/openaddresses/adapter.ts +52 -55
- package/lib/adapters/osm/adapter.ts +162 -83
- package/lib/adapters/overture/adapter.ts +52 -43
- package/lib/adapters/po-box/adapter.ts +207 -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 +136 -0
- package/lib/adapters/wof/admin/json/adapter.ts +50 -35
- package/lib/adapters/wof/json-rows.ts +57 -26
- package/lib/adapters/wof/postalcode-json/adapter.ts +63 -61
- package/lib/adapters.ts +230 -0
- package/lib/au/adapters/gnaf/adapter.ts +36 -44
- 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 +667 -0
- package/lib/be/adapters/wallonie/adapter.ts +537 -0
- package/lib/be/tools/fetch/brussels.ts +242 -0
- package/lib/be/tools/fetch/wallonie.ts +275 -0
- package/lib/build/adapters.ts +111 -0
- package/lib/build/align.ts +365 -0
- package/lib/build/checkpoint.ts +133 -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 +234 -0
- package/lib/build.ts +127 -315
- package/lib/cn/recipes/organizational-units.ts +20 -41
- package/lib/cz/adapters/cuzk/adapter.ts +320 -0
- package/lib/cz/recipes/pcfirst-preposition.ts +40 -27
- package/lib/cz/tools/fetch/cuzk.ts +710 -0
- package/lib/de/recipes/locale.ts +69 -59
- package/lib/directory.ts +31 -0
- package/lib/dk/adapters/inspire/adapter.ts +345 -0
- package/lib/dk/tools/fetch/inspire.ts +323 -0
- package/lib/ee/adapters/ads/adapter.ts +240 -0
- package/lib/ee/tools/fetch/ads.ts +272 -0
- package/lib/env.ts +6 -2
- package/lib/es/adapters/bizkaia/adapter.ts +388 -0
- package/lib/es/adapters/catastro/adapter.ts +345 -0
- package/lib/es/adapters/gipuzkoa/adapter.ts +256 -0
- package/lib/es/adapters/navarra/adapter.ts +290 -0
- package/lib/es/cadastre.ts +194 -0
- package/lib/es/tools/fetch/bizkaia.ts +752 -0
- package/lib/es/tools/fetch/catastro.ts +765 -0
- package/lib/es/tools/fetch/gipuzkoa.ts +338 -0
- package/lib/es/tools/fetch/navarra.ts +496 -0
- package/lib/fi/adapters/ryhti/adapter.ts +319 -0
- package/lib/fi/tools/fetch/ryhti.ts +476 -0
- package/lib/fingerprints.ts +154 -0
- package/lib/fr/adapters/annuaire-education/adapter.ts +600 -0
- package/lib/fr/adapters/ban/adapter.ts +87 -59
- package/lib/fr/adapters/finess/adapter.ts +619 -0
- package/lib/fr/adapters/finess/postal-lines.ts +157 -0
- package/lib/fr/adapters/finess/voie-type.ts +201 -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 +111 -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 +309 -0
- package/lib/fr/tools/fetch/ban.ts +30 -20
- package/lib/fr/tools/fetch/finess.ts +353 -0
- package/lib/gauntlet-inputs.ts +92 -0
- package/lib/index.ts +9 -3
- package/lib/inspire/address.ts +465 -0
- package/lib/inspire/archive.ts +44 -0
- package/lib/inspire/errors.ts +72 -0
- package/lib/inspire/stream.ts +265 -0
- package/lib/international/recipes/locale.ts +146 -184
- package/lib/it/adapters/anac/adapter.ts +527 -0
- package/lib/it/tools/fetch/anac.ts +391 -0
- package/lib/jp/adapters/wof-admin/adapter.ts +29 -23
- package/lib/jp/tools/fetch/houjin.ts +19 -21
- 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 +34 -27
- package/lib/kr/tools/fetch/juso.ts +19 -21
- package/lib/kr/tools/fetch/localdata.ts +29 -30
- package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
- package/lib/lu/tools/fetch/bd-adresses.ts +353 -0
- package/lib/lv/adapters/varis/adapter.ts +500 -0
- package/lib/lv/tools/fetch/varis.ts +215 -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 +302 -0
- package/lib/no/adapters/matrikkelen/adapter.ts +188 -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 +531 -0
- package/lib/parquet/duckdb.ts +147 -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 +452 -0
- package/lib/pl/adapters/emuia/adapter.ts +202 -0
- package/lib/pl/tools/fetch/emuia.ts +361 -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 +37 -20
- package/lib/recipes/country-balanced.ts +66 -86
- package/lib/recipes/house-venue.ts +36 -14
- package/lib/recipes/intersection.ts +84 -62
- 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 +31 -19
- package/lib/recipes/po/box/cedex/sources.ts +16 -4
- 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 +267 -158
- package/lib/recipes/sources.ts +412 -0
- package/lib/recipes/street/affix.ts +54 -154
- package/lib/recipes/street/bare.ts +30 -17
- package/lib/recipes/street.ts +35 -9
- package/lib/recipes/sub/venue/context.ts +32 -23
- package/lib/recipes/sub/venue/render.ts +170 -0
- package/lib/recipes/sub/venue/sources.ts +92 -248
- package/lib/recipes/sub/venue.ts +795 -0
- package/lib/recipes/trailing-region.ts +75 -87
- package/lib/recipes/unit/sources.ts +44 -0
- package/lib/recipes/unit.ts +101 -89
- package/lib/recipes/venue.ts +347 -0
- package/lib/{recipes/index.ts → recipes.ts} +15 -11
- package/lib/registers.ts +280 -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 +221 -84
- package/lib/sg/recipes/register.ts +47 -53
- package/lib/sg/tools/fetch/acra.ts +23 -28
- package/lib/si/recipes/bare-village.ts +34 -17
- package/lib/sk/adapters/inspire/adapter.ts +393 -0
- package/lib/sk/tools/fetch/inspire.ts +403 -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 +589 -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 +248 -0
- package/lib/synthesizers/anchor-absorption.ts +56 -91
- package/lib/synthesizers/boundary-stress.ts +67 -155
- package/lib/synthesizers/house-venue.ts +65 -127
- package/lib/synthesizers/no-street.ts +71 -119
- package/lib/synthesizers/po-box.ts +93 -105
- package/lib/synthesizers/tail.ts +55 -0
- package/lib/synthesizers/utils.ts +82 -219
- 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 +117 -120
- package/lib/tools/corpus-stats.ts +45 -31
- package/lib/tools/fetch/atom.ts +164 -0
- package/lib/tools/fetch/cordis.ts +320 -0
- package/lib/tools/fetch/download/manifest.ts +36 -23
- package/lib/tools/fetch/download/network.ts +55 -31
- package/lib/tools/fetch/download/retry.ts +30 -29
- package/lib/tools/fetch/geonames/dump.ts +75 -55
- package/lib/tools/fetch/geonames/postal.ts +27 -62
- package/lib/tools/fetch/gleif.ts +362 -0
- package/lib/tools/fetch/header.ts +71 -0
- package/lib/tools/fetch/inspire-addresses.ts +500 -0
- package/lib/tools/fetch/openaddresses.ts +23 -112
- 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 +954 -0
- package/lib/tools/fetch/wikidata-subvenue.ts +45 -145
- package/lib/tools/fetch/zip-archive.ts +100 -0
- package/lib/tools/fetch.ts +101 -0
- package/lib/tools/golden/expand.ts +75 -44
- package/lib/tools/golden/promote.ts +47 -34
- package/lib/tools/golden/relabel-street/directory.ts +67 -39
- package/lib/tools/golden/relabel-street/row.ts +32 -109
- package/lib/tools/ingest-csv.ts +48 -51
- package/lib/tools/jsonl-to-parquet.ts +59 -98
- package/lib/tools/lint/recipe-output/vocab.ts +371 -0
- package/lib/tools/lint/{slice/index.ts → recipe-output.ts} +130 -126
- 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 +47 -39
- package/lib/tools/overlay/manifest.ts +409 -0
- package/lib/tools/overlay/merge-source.ts +139 -0
- package/lib/tools/overlay/split-slice.ts +144 -0
- package/lib/tools/overlay/translit.ts +236 -0
- package/lib/tools/overture-subvenue.ts +18 -91
- package/lib/tools/postcode-triples.ts +284 -212
- package/lib/tools/source-register/build.ts +822 -0
- package/lib/tools/sub/venue/head-nouns.ts +38 -75
- package/lib/tools/sub/venue/lexicon.ts +71 -110
- package/lib/tools/sub/venue/wikidata.ts +13 -10
- package/lib/tw/tools/fetch/gcis.ts +21 -20
- package/lib/types.ts +305 -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 +8 -3
- 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 +61 -122
- package/lib/us/adapters/usgov/nppes/adapter.ts +72 -35
- package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +47 -34
- package/lib/us/fips-state.ts +19 -10
- package/lib/{synthesizers → us/synthesizers}/intersection.ts +45 -35
- package/lib/{synthesizers → us/synthesizers}/street.ts +56 -43
- package/lib/us/tools/fetch/hrsa.ts +7 -8
- package/lib/us/tools/fetch/imls-pls.ts +18 -36
- package/lib/us/tools/fetch/nad.ts +51 -33
- package/lib/us/tools/fetch/nppes.ts +27 -39
- package/lib/us/tools/fetch/state/hi-schools.ts +24 -17
- package/lib/us/tools/fetch/state/sources.ts +12 -12
- package/lib/us/tools/fetch/tiger-full.ts +22 -74
- package/lib/utils/align.ts +52 -59
- package/lib/utils/{slice-stats.ts → cooccurrence-stats.ts} +22 -16
- package/lib/utils/golden.ts +36 -51
- package/lib/utils/license.ts +239 -27
- package/lib/utils/split.ts +209 -88
- package/lib/utils/tokenize.ts +25 -56
- package/lib/utils/wof-json.ts +130 -77
- 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 +326 -0
- package/out/adapters/cordis/adapter.d.ts.map +1 -0
- package/out/adapters/cordis/adapter.js +622 -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 +40 -50
- 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 +685 -0
- package/out/adapters/gleif/adapter.js.map +1 -0
- package/out/adapters/libpostal-dictionary.d.ts +20 -0
- package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
- package/out/adapters/libpostal-dictionary.js +34 -0
- package/out/adapters/libpostal-dictionary.js.map +1 -0
- package/out/adapters/openaddresses/adapter.d.ts +29 -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 +59 -52
- package/out/adapters/osm/adapter.d.ts.map +1 -1
- package/out/adapters/osm/adapter.js +119 -69
- 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 +66 -0
- package/out/adapters/po-box/adapter.d.ts.map +1 -0
- package/out/adapters/{synth-po-box → po-box}/adapter.js +48 -47
- 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 +103 -0
- package/out/adapters/street-line.d.ts.map +1 -0
- package/out/adapters/street-line.js +118 -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 +48 -32
- package/out/adapters/wof/admin/json/adapter.js.map +1 -1
- package/out/adapters/wof/json-rows.d.ts +36 -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 +60 -58
- 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 +35 -43
- 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 +230 -0
- package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
- package/out/be/adapters/vlaanderen/adapter.js +418 -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 +122 -0
- package/out/be/tools/fetch/brussels.d.ts.map +1 -0
- package/out/be/tools/fetch/brussels.js +148 -0
- package/out/be/tools/fetch/brussels.js.map +1 -0
- package/out/be/tools/fetch/wallonie.d.ts +120 -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 +69 -0
- package/out/build/adapters.js.map +1 -0
- package/out/build/align.d.ts +74 -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 +61 -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 +222 -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 +269 -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 +281 -0
- package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
- package/out/cz/tools/fetch/cuzk.js +448 -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 +67 -57
- 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 +153 -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 +101 -0
- package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/dk/tools/fetch/inspire.js +232 -0
- package/out/dk/tools/fetch/inspire.js.map +1 -0
- package/out/ee/adapters/ads/adapter.d.ts +102 -0
- package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
- package/out/ee/adapters/ads/adapter.js +185 -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 +197 -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 +103 -0
- package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
- package/out/es/adapters/catastro/adapter.js +290 -0
- package/out/es/adapters/catastro/adapter.js.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts +84 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.js +218 -0
- package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
- package/out/es/adapters/navarra/adapter.d.ts +106 -0
- package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
- package/out/es/adapters/navarra/adapter.js +242 -0
- package/out/es/adapters/navarra/adapter.js.map +1 -0
- package/out/es/cadastre.d.ts +110 -0
- package/out/es/cadastre.d.ts.map +1 -0
- package/out/es/cadastre.js +128 -0
- package/out/es/cadastre.js.map +1 -0
- package/out/es/tools/fetch/bizkaia.d.ts +281 -0
- package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
- package/out/es/tools/fetch/bizkaia.js +478 -0
- package/out/es/tools/fetch/bizkaia.js.map +1 -0
- package/out/es/tools/fetch/catastro.d.ts +280 -0
- package/out/es/tools/fetch/catastro.d.ts.map +1 -0
- package/out/es/tools/fetch/catastro.js +491 -0
- package/out/es/tools/fetch/catastro.js.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts +164 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.js +210 -0
- package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
- package/out/es/tools/fetch/navarra.d.ts +194 -0
- package/out/es/tools/fetch/navarra.d.ts.map +1 -0
- package/out/es/tools/fetch/navarra.js +321 -0
- package/out/es/tools/fetch/navarra.js.map +1 -0
- package/out/fi/adapters/ryhti/adapter.d.ts +111 -0
- package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
- package/out/fi/adapters/ryhti/adapter.js +240 -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 +324 -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 +477 -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 +277 -0
- package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
- package/out/fr/adapters/finess/adapter.js +520 -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 +173 -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 +89 -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 +133 -0
- package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
- package/out/fr/tools/fetch/annuaire-education.js +198 -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 +29 -19
- 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 +229 -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 +261 -0
- package/out/inspire/address.d.ts.map +1 -0
- package/out/inspire/address.js +395 -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 +56 -0
- package/out/inspire/errors.d.ts.map +1 -0
- package/out/inspire/errors.js +65 -0
- package/out/inspire/errors.js.map +1 -0
- package/out/inspire/stream.d.ts +140 -0
- package/out/inspire/stream.d.ts.map +1 -0
- package/out/inspire/stream.js +123 -0
- package/out/inspire/stream.js.map +1 -0
- package/out/international/recipes/locale.d.ts +40 -86
- package/out/international/recipes/locale.d.ts.map +1 -1
- package/out/international/recipes/locale.js +122 -157
- package/out/international/recipes/locale.js.map +1 -1
- package/out/it/adapters/anac/adapter.d.ts +269 -0
- package/out/it/adapters/anac/adapter.d.ts.map +1 -0
- package/out/it/adapters/anac/adapter.js +434 -0
- package/out/it/adapters/anac/adapter.js.map +1 -0
- package/out/it/tools/fetch/anac.d.ts +171 -0
- package/out/it/tools/fetch/anac.d.ts.map +1 -0
- package/out/it/tools/fetch/anac.js +269 -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 +17 -13
- 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 +31 -26
- 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 +24 -16
- 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 +165 -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 +284 -0
- package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
- package/out/lv/adapters/varis/adapter.js +405 -0
- package/out/lv/adapters/varis/adapter.js.map +1 -0
- package/out/lv/tools/fetch/varis.d.ts +81 -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 +309 -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 +159 -0
- package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
- package/out/nl/tools/fetch/kadaster.js +182 -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 +263 -0
- package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
- package/out/no/tools/fetch/matrikkelen.js +353 -0
- package/out/no/tools/fetch/matrikkelen.js.map +1 -0
- package/out/parquet/duckdb.d.ts +103 -0
- package/out/parquet/duckdb.d.ts.map +1 -0
- package/out/parquet/duckdb.js +93 -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 +252 -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 +166 -0
- package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
- package/out/pl/tools/fetch/emuia.js +261 -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} +92 -80
- 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 +37 -20
- 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 +33 -14
- 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 +67 -55
- 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 +27 -16
- package/out/recipes/po/box/cedex/recipe.js.map +1 -1
- package/out/recipes/po/box/cedex/sources.d.ts +20 -14
- package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
- package/out/recipes/po/box/cedex/sources.js +2 -2
- 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 +223 -141
- package/out/recipes/scaffold.d.ts.map +1 -1
- package/out/recipes/scaffold.js +75 -65
- 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 +361 -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 +27 -16
- 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 +32 -9
- 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 +23 -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 +53 -93
- package/out/recipes/sub/venue/sources.d.ts.map +1 -1
- package/out/recipes/sub/venue/sources.js +57 -197
- package/out/recipes/sub/venue/sources.js.map +1 -1
- package/out/recipes/sub/venue.d.ts +173 -0
- package/out/recipes/sub/venue.d.ts.map +1 -0
- package/out/recipes/sub/venue.js +558 -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 +61 -86
- 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/venue.d.ts +119 -0
- package/out/recipes/venue.d.ts.map +1 -0
- package/out/recipes/venue.js +245 -0
- package/out/recipes/venue.js.map +1 -0
- package/out/recipes.d.ts +26 -0
- package/out/recipes.d.ts.map +1 -0
- package/out/{recipes/index.js → recipes.js} +16 -12
- package/out/recipes.js.map +1 -0
- package/out/registers.d.ts +279 -0
- package/out/registers.d.ts.map +1 -0
- package/out/registers.js +275 -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 +121 -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 +45 -50
- 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 +18 -21
- 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 +196 -0
- package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/sk/tools/fetch/inspire.js +281 -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 +538 -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 +138 -0
- package/out/surfaces/locale.js.map +1 -0
- package/out/synthesizers/anchor-absorption.d.ts +22 -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 +18 -49
- package/out/synthesizers/boundary-stress.d.ts.map +1 -1
- package/out/synthesizers/boundary-stress.js +45 -142
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/house-venue.d.ts +23 -25
- package/out/synthesizers/house-venue.d.ts.map +1 -1
- package/out/synthesizers/house-venue.js +47 -118
- package/out/synthesizers/house-venue.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 +48 -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/tail.d.ts +36 -0
- package/out/synthesizers/tail.d.ts.map +1 -0
- package/out/synthesizers/tail.js +32 -0
- package/out/synthesizers/tail.js.map +1 -0
- package/out/synthesizers/utils.d.ts +33 -129
- package/out/synthesizers/utils.d.ts.map +1 -1
- package/out/synthesizers/utils.js +71 -167
- 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 +19 -11
- package/out/tools/audit.d.ts.map +1 -1
- package/out/tools/audit.js +89 -97
- 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 +34 -30
- 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 +83 -0
- package/out/tools/fetch/atom.js.map +1 -0
- package/out/tools/fetch/cordis.d.ts +124 -0
- package/out/tools/fetch/cordis.d.ts.map +1 -0
- package/out/tools/fetch/cordis.js +210 -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 +22 -14
- 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 +28 -28
- 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 +51 -32
- package/out/tools/fetch/geonames/dump.d.ts.map +1 -1
- package/out/tools/fetch/geonames/dump.js +54 -43
- 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 +138 -0
- package/out/tools/fetch/gleif.d.ts.map +1 -0
- package/out/tools/fetch/gleif.js +222 -0
- package/out/tools/fetch/gleif.js.map +1 -0
- package/out/tools/fetch/header.d.ts +43 -0
- package/out/tools/fetch/header.d.ts.map +1 -0
- package/out/tools/fetch/header.js +61 -0
- package/out/tools/fetch/header.js.map +1 -0
- package/out/tools/fetch/inspire-addresses.d.ts +254 -0
- package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
- package/out/tools/fetch/inspire-addresses.js +277 -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 +20 -99
- 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 +420 -0
- package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
- package/out/tools/fetch/wfs-harvest.js +525 -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 +99 -0
- package/out/tools/fetch.d.ts.map +1 -0
- package/out/tools/fetch.js +95 -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 +51 -37
- 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 +38 -30
- package/out/tools/golden/promote.js.map +1 -1
- package/out/tools/golden/relabel-street/directory.d.ts +25 -10
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/directory.js +44 -32
- package/out/tools/golden/relabel-street/directory.js.map +1 -1
- package/out/tools/golden/relabel-street/row.d.ts +18 -69
- package/out/tools/golden/relabel-street/row.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/row.js +19 -77
- 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 +42 -46
- 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 +82 -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} +93 -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 +39 -29
- package/out/tools/overlay/kryptonite.js.map +1 -0
- package/out/tools/overlay/manifest.d.ts +143 -0
- package/out/tools/overlay/manifest.d.ts.map +1 -0
- package/out/tools/overlay/manifest.js +261 -0
- package/out/tools/overlay/manifest.js.map +1 -0
- package/out/tools/overlay/merge-source.d.ts +74 -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 +55 -0
- package/out/tools/overlay/translit.d.ts.map +1 -0
- package/out/tools/{slice → overlay}/translit.js +61 -49
- package/out/tools/overlay/translit.js.map +1 -0
- package/out/tools/overture-subvenue.d.ts +17 -76
- 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 +78 -127
- package/out/tools/postcode-triples.d.ts.map +1 -1
- package/out/tools/postcode-triples.js +200 -193
- package/out/tools/postcode-triples.js.map +1 -1
- package/out/tools/source-register/build.d.ts +147 -0
- package/out/tools/source-register/build.d.ts.map +1 -0
- package/out/tools/source-register/build.js +517 -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 +53 -84
- package/out/tools/sub/venue/lexicon.d.ts.map +1 -1
- package/out/tools/sub/venue/lexicon.js +42 -90
- 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/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 +19 -13
- package/out/tw/tools/fetch/gcis.js.map +1 -1
- package/out/types.d.ts +271 -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 +8 -3
- 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 +57 -111
- 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 +38 -28
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -1
- package/out/us/fips-state.d.ts +19 -10
- 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/{synthesizers → us/synthesizers}/intersection.d.ts +10 -8
- package/out/us/synthesizers/intersection.d.ts.map +1 -0
- package/out/{synthesizers → us/synthesizers}/intersection.js +46 -35
- package/out/us/synthesizers/intersection.js.map +1 -0
- package/out/{synthesizers → us/synthesizers}/street.d.ts +19 -12
- package/out/us/synthesizers/street.d.ts.map +1 -0
- package/out/{synthesizers → us/synthesizers}/street.js +45 -38
- package/out/us/synthesizers/street.js.map +1 -0
- 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 +17 -34
- 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 +30 -25
- 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 +24 -36
- package/out/us/tools/fetch/nppes.js.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.d.ts +9 -5
- package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -1
- package/out/us/tools/fetch/state/hi-schools.js +16 -14
- 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 +16 -55
- package/out/us/tools/fetch/tiger-full.js.map +1 -1
- package/out/utils/align.d.ts +26 -19
- package/out/utils/align.d.ts.map +1 -1
- package/out/utils/align.js +32 -47
- 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 +30 -46
- package/out/utils/golden.js.map +1 -1
- package/out/utils/license.d.ts +159 -22
- 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 +162 -69
- package/out/utils/split.js.map +1 -1
- package/out/utils/tokenize.d.ts +15 -44
- 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 +77 -56
- 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 +45 -488
- 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/slice/translit.ts +0 -218
- 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/intersection.d.ts.map +0 -1
- package/out/synthesizers/intersection.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/synthesizers/street.d.ts.map +0 -1
- package/out/synthesizers/street.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
|
@@ -2,36 +2,12 @@
|
|
|
2
2
|
* @copyright Sister Software
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* `street-affix` slice recipe — the US street-affix coverage slice (the v0-parity `street_prefix` /
|
|
7
|
-
* `street_suffix` gap — both ~0% F1 in the #15 assessment, collapsed into `street`). Raises
|
|
8
|
-
* PREVALENCE of affix-split streets with format diversity so the model learns to split "N Main
|
|
9
|
-
* St" → street_prefix="N" + street="Main" + street_suffix="St", and (negative space) sharpens
|
|
10
|
-
* `street` itself. Ported from scripts/build-street-affix-slice.mjs.
|
|
11
|
-
*
|
|
12
|
-
* Reads REAL US OpenAddresses tuples and SPLITS the OA `street` field via the codex:
|
|
13
|
-
* `matchLeadingDirectional` (USPS Pub-28 C1) for the prefix, `matchTrailingSuffix` (Pub-28 C2
|
|
14
|
-
* street suffixes) for the suffix. OA streets nearly all carry a suffix; only ~10-20% carry a
|
|
15
|
-
* directional, so we INJECT a directional prefix onto a fraction of prefix-less streets to give
|
|
16
|
-
* `street_prefix` real signal. Each row varies surface form per affix — abbreviated ("N", "St")
|
|
17
|
-
* vs expanded ("North", "Street") — and varies the layout (full address / bare / street-only /
|
|
18
|
-
* venue-prefixed).
|
|
19
|
-
*
|
|
20
|
-
* LEAKAGE-SAFE EVAL (`--golden`): held-out eval uses the VERMONT source only (the corpus
|
|
21
|
-
* defaultHoldout), a different seed, and emits {raw, components} for per-locale-f1. Train uses
|
|
22
|
-
* every NON-Vermont US source.
|
|
23
|
-
*
|
|
24
|
-
* Multi-locale BALANCE (`--multilocale-count`, opts.multilocaleCount > 0): appends NO-affix
|
|
25
|
-
* native-order rows (FR/DE/IT/NL) AFTER the US affix rows, riding the same source weight, purely
|
|
26
|
-
* to keep the postcode-ORDER distribution multi-locale so a US-heavy affix slice doesn't dilute
|
|
27
|
-
* FR/DE postcode (the v0.9.8 blemish).
|
|
28
5
|
*/
|
|
29
6
|
|
|
30
7
|
import type { ComponentTag } from "@mailwoman/codex/component"
|
|
31
8
|
import {
|
|
32
9
|
DirectionalAbbreviation,
|
|
33
10
|
lookupDirectional,
|
|
34
|
-
matchCase,
|
|
35
11
|
matchLeadingDirectional,
|
|
36
12
|
matchTrailingSuffix,
|
|
37
13
|
renderDirectional,
|
|
@@ -39,17 +15,19 @@ import {
|
|
|
39
15
|
NAME_PRONE_US_SUFFIXES,
|
|
40
16
|
} from "@mailwoman/codex/us"
|
|
41
17
|
import { dataRootPath } from "@mailwoman/core/data-root"
|
|
18
|
+
import { stringifyJSON } from "@mailwoman/core/json"
|
|
19
|
+
import { sample } from "@mailwoman/core/random"
|
|
20
|
+
import { normalizeWhitespace } from "@mailwoman/core/strings/format"
|
|
42
21
|
import { mulberry32 as makeMulberry32 } from "@mailwoman/core/utils"
|
|
43
22
|
import type { PathBuilderLike } from "path-ts"
|
|
23
|
+
import { matchCase } from "spliterator"
|
|
44
24
|
|
|
45
|
-
import { stableSourceID } from "#adapters/
|
|
46
|
-
import { readCSVRecords, readOATuples,
|
|
47
|
-
import {
|
|
25
|
+
import { stableSourceID } from "#adapters/source-id"
|
|
26
|
+
import { readCSVRecords, readOATuples, recipeSourceID, type CorpusRecipe } from "#recipes/scaffold"
|
|
27
|
+
import { defaultRecipeSource } from "#recipes/sources"
|
|
48
28
|
import type { CanonicalRow } from "#types"
|
|
49
29
|
import { alignRow } from "#utils"
|
|
50
30
|
|
|
51
|
-
// Same OA cache as the unit slice. Train = every NON-Vermont state; eval = Vermont (the holdout).
|
|
52
|
-
|
|
53
31
|
interface USSource {
|
|
54
32
|
zip: PathBuilderLike
|
|
55
33
|
csv: string
|
|
@@ -72,10 +50,6 @@ const EVAL_SOURCE: USSource = {
|
|
|
72
50
|
region: "VT",
|
|
73
51
|
}
|
|
74
52
|
|
|
75
|
-
// Multi-locale BALANCE sources (--multilocale-count > 0). These rows carry NO affix split — they exist
|
|
76
|
-
// only to keep the postcode-ORDER distribution multi-locale. Native-order rendering mirrors
|
|
77
|
-
// build-country-slice-balanced.mjs: FR = number-street, postcode-city; DE/IT/NL = street-number,
|
|
78
|
-
// postcode-city. `order` drives the body.
|
|
79
53
|
interface BalanceSource {
|
|
80
54
|
zip: PathBuilderLike
|
|
81
55
|
csv: string
|
|
@@ -119,18 +93,10 @@ const MULTILOCALE_EVAL_SOURCES: readonly BalanceSource[] = [
|
|
|
119
93
|
{ zip: dataRootPath("oa-cache", "de__berlin.zip"), csv: "de/berlin.csv", iso2: "DE", region: "", order: "eu" },
|
|
120
94
|
]
|
|
121
95
|
|
|
122
|
-
/**
|
|
123
|
-
* ["N","E","S","W","NE","NW","SE","SW"].
|
|
124
|
-
*/
|
|
125
96
|
const DIRECTIONAL_ABBRS = Object.values(DirectionalAbbreviation)
|
|
126
|
-
|
|
127
|
-
* Fraction of prefix-less streets that get a synthetic directional.
|
|
128
|
-
*/
|
|
97
|
+
|
|
129
98
|
const INJECT_PREFIX_PROB = 0.3
|
|
130
99
|
|
|
131
|
-
/**
|
|
132
|
-
* A real US skeleton tuple read from a cached OA zip.
|
|
133
|
-
*/
|
|
134
100
|
interface USTuple {
|
|
135
101
|
house_number: string
|
|
136
102
|
street: string
|
|
@@ -140,9 +106,6 @@ interface USTuple {
|
|
|
140
106
|
base_source_id: string
|
|
141
107
|
}
|
|
142
108
|
|
|
143
|
-
/**
|
|
144
|
-
* A non-US BALANCE tuple (carries a postcode + native order).
|
|
145
|
-
*/
|
|
146
109
|
interface BalanceTuple {
|
|
147
110
|
house_number: string
|
|
148
111
|
street: string
|
|
@@ -153,14 +116,8 @@ interface BalanceTuple {
|
|
|
153
116
|
order: string
|
|
154
117
|
}
|
|
155
118
|
|
|
156
|
-
/**
|
|
157
|
-
* Prefix carried through render — the (canonical, abbreviation) pair `renderDirectional` consumes.
|
|
158
|
-
*/
|
|
159
119
|
type Prefix = Pick<NonNullable<ReturnType<typeof matchLeadingDirectional>>, "canonical" | "abbreviation">
|
|
160
120
|
|
|
161
|
-
/**
|
|
162
|
-
* Stream real US tuples (number/street/city/postcode) out of a cached OA zip.
|
|
163
|
-
*/
|
|
164
121
|
async function readTuples(source: USSource): Promise<USTuple[]> {
|
|
165
122
|
return readOATuples(source, {
|
|
166
123
|
extra: (fields, _row, key) => ({
|
|
@@ -181,10 +138,6 @@ const title = (s: string): string =>
|
|
|
181
138
|
const isSuffixOrDirectional = (word: string): boolean =>
|
|
182
139
|
matchTrailingSuffix(word) !== null || matchLeadingDirectional(word) !== null
|
|
183
140
|
|
|
184
|
-
/**
|
|
185
|
-
* Split an OA street into { prefix?, name, suffix } using the codex. Requires a trailing suffix and a non-empty name
|
|
186
|
-
* that isn't itself an affix token. Returns null when the street has no usable suffix.
|
|
187
|
-
*/
|
|
188
141
|
function parseStreet(
|
|
189
142
|
street: string,
|
|
190
143
|
opts: { allowNameProneTail?: boolean } = {}
|
|
@@ -193,7 +146,7 @@ function parseStreet(
|
|
|
193
146
|
|
|
194
147
|
if (words.length < 2) return null
|
|
195
148
|
let prefix: Prefix | null = null
|
|
196
|
-
|
|
149
|
+
|
|
197
150
|
const lead = matchLeadingDirectional(street)
|
|
198
151
|
|
|
199
152
|
if (lead && words.length > 2) {
|
|
@@ -201,7 +154,6 @@ function parseStreet(
|
|
|
201
154
|
words = words.slice(1)
|
|
202
155
|
}
|
|
203
156
|
|
|
204
|
-
// Trailing USPS suffix — only if it leaves ≥1 word for the name.
|
|
205
157
|
const trail = matchTrailingSuffix(words.join(" "))
|
|
206
158
|
|
|
207
159
|
if (!trail || words.length < 2) return null
|
|
@@ -219,16 +171,21 @@ function parseStreet(
|
|
|
219
171
|
return { prefix, name, suffix }
|
|
220
172
|
}
|
|
221
173
|
|
|
174
|
+
/**
|
|
175
|
+
* The two street shapes that the suffix-boundary recipe balances.
|
|
176
|
+
*
|
|
177
|
+
* In a `terminal-only` street, a name-prone suffix word precedes the real suffix and belongs to the name.
|
|
178
|
+
* In a `terminal-contrast` street, the name-prone word is itself the final suffix.
|
|
179
|
+
*/
|
|
222
180
|
export type SuffixBoundaryClass = "terminal-only" | "terminal-contrast"
|
|
223
181
|
|
|
224
|
-
// A terminal-only surface needs a name word before the penultimate suffix (`Blue Hill Rd`): three words at least.
|
|
225
182
|
const TERMINAL_ONLY_MIN_WORDS = 3
|
|
226
183
|
|
|
227
184
|
/**
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
185
|
+
* Classifies a street as `terminal-only` or `terminal-contrast`, or returns `null` when it is neither.
|
|
186
|
+
*
|
|
187
|
+
* A street whose final word is name-prone is `terminal-contrast` even when the word
|
|
188
|
+
* before it is also name-prone, because only the final token is the suffix.
|
|
232
189
|
*/
|
|
233
190
|
export function classifySuffixBoundaryStreet(street: string): SuffixBoundaryClass | null {
|
|
234
191
|
const words = street.trim().split(/\s+/)
|
|
@@ -247,9 +204,6 @@ export function classifySuffixBoundaryStreet(street: string): SuffixBoundaryClas
|
|
|
247
204
|
return penultimate && NAME_PRONE_US_SUFFIXES.has(penultimate.canonical) ? "terminal-only" : null
|
|
248
205
|
}
|
|
249
206
|
|
|
250
|
-
/**
|
|
251
|
-
* Render the affix-split street in random surface forms (abbrev vs expanded per affix), Title-cased.
|
|
252
|
-
*/
|
|
253
207
|
function renderStreet(
|
|
254
208
|
random: () => number,
|
|
255
209
|
parsed: { prefix: Prefix | null; name: string; suffix: string }
|
|
@@ -258,32 +212,28 @@ function renderStreet(
|
|
|
258
212
|
const parts: string[] = []
|
|
259
213
|
const components: Partial<Record<ComponentTag, string>> = { street: name }
|
|
260
214
|
|
|
261
|
-
// Prefix: natural (from parse) or injected onto a prefix-less street to boost street_prefix signal.
|
|
262
215
|
let prefix = parsed.prefix
|
|
263
216
|
|
|
264
217
|
if (!prefix && random() < INJECT_PREFIX_PROB) {
|
|
265
|
-
const m = lookupDirectional(
|
|
218
|
+
const m = lookupDirectional(sample(DIRECTIONAL_ABBRS, random))!
|
|
266
219
|
prefix = { canonical: m.directional, abbreviation: m.abbreviation }
|
|
267
220
|
}
|
|
268
221
|
|
|
269
222
|
if (prefix) {
|
|
270
|
-
const rendered = renderDirectional(prefix, random() < 0.5 ? "abbr" : "full", "Aa")
|
|
223
|
+
const rendered = renderDirectional(prefix, random() < 0.5 ? "abbr" : "full", "Aa")
|
|
271
224
|
components.street_prefix = rendered
|
|
272
225
|
parts.push(rendered)
|
|
273
226
|
}
|
|
274
227
|
|
|
275
228
|
parts.push(name)
|
|
276
229
|
|
|
277
|
-
// Suffix: abbreviated ("St") vs expanded ("Street"), Title-cased to match the name.
|
|
278
230
|
const full = title(parsed.suffix)
|
|
279
231
|
|
|
280
|
-
// canonical is uppercase word → "Street"
|
|
281
232
|
const abbr = matchCase(
|
|
282
233
|
US_STREET_SUFFIX_PREFERRED_ABBR[parsed.suffix as keyof typeof US_STREET_SUFFIX_PREFERRED_ABBR],
|
|
283
234
|
"Aa"
|
|
284
235
|
)
|
|
285
236
|
|
|
286
|
-
// "AVE" → "Ave"
|
|
287
237
|
const renderedSuffix = random() < 0.5 ? abbr : full
|
|
288
238
|
components.street_suffix = renderedSuffix
|
|
289
239
|
parts.push(renderedSuffix)
|
|
@@ -291,19 +241,8 @@ function renderStreet(
|
|
|
291
241
|
return { street: parts.join(" "), components }
|
|
292
242
|
}
|
|
293
243
|
|
|
294
|
-
/**
|
|
295
|
-
* Synthetic recipient/venue prefixes — the arena's "JOHN DOE, ACME INC, …" pattern.
|
|
296
|
-
*/
|
|
297
244
|
const VENUES = ["John Doe", "Jane Smith", "Acme Inc", "Wayne Enterprises", "Maria Garcia", "Riverside Clinic"]
|
|
298
245
|
|
|
299
|
-
/**
|
|
300
|
-
* Real-venue pool for the suffix-boundary v2 venue shell (corpus 0.19.0). The 2026-08-10 recipe review found the
|
|
301
|
-
* v0.18.x slice's venue-led rows detectable as templates (six fixed venue strings), and the frozen B1 board's failures
|
|
302
|
-
* concentrate in exactly that shell (rich rows 5/43 vs bare 53/65 at v4.3.3 step-40k). HRSA's health-center site file
|
|
303
|
-
* supplies thousands of REAL US facility names ('Alburg Health Center'-register), US-government public domain, already
|
|
304
|
-
* a corpus source (`usgov-hrsa-fqhc`). Kept verbatim (including the ~11% all-caps names — real register diversity);
|
|
305
|
-
* comma-carrying names are dropped because the venue layout uses commas as its field delimiter.
|
|
306
|
-
*/
|
|
307
246
|
const VENUE_POOL_CSV = dataRootPath(
|
|
308
247
|
"corpus",
|
|
309
248
|
"sources",
|
|
@@ -311,7 +250,6 @@ const VENUE_POOL_CSV = dataRootPath(
|
|
|
311
250
|
"Health_Center_Service_Delivery_and_LookAlike_Sites.csv"
|
|
312
251
|
)
|
|
313
252
|
|
|
314
|
-
// Facility-name length window: shorter reads as an initialism, longer as a sentence.
|
|
315
253
|
const VENUE_NAME_MIN_LENGTH = 3
|
|
316
254
|
const VENUE_NAME_MAX_LENGTH = 60
|
|
317
255
|
|
|
@@ -320,9 +258,7 @@ async function readVenuePool(csvPath: PathBuilderLike): Promise<string[]> {
|
|
|
320
258
|
const pool: string[] = []
|
|
321
259
|
|
|
322
260
|
for await (const record of readCSVRecords(csvPath)) {
|
|
323
|
-
|
|
324
|
-
// lower-cases a header, so either spelling arrives here as `site_name`.
|
|
325
|
-
const name = (record.site_name ?? "").trim().replaceAll(/\s+/gu, " ")
|
|
261
|
+
const name = normalizeWhitespace(record.site_name ?? "")
|
|
326
262
|
|
|
327
263
|
if (
|
|
328
264
|
name.length < VENUE_NAME_MIN_LENGTH ||
|
|
@@ -344,19 +280,16 @@ async function readVenuePool(csvPath: PathBuilderLike): Promise<string[]> {
|
|
|
344
280
|
|
|
345
281
|
const tail = (loc: string, reg: string, pc: string): string => (pc ? `${loc}, ${reg} ${pc}` : `${loc}, ${reg}`)
|
|
346
282
|
|
|
347
|
-
/**
|
|
348
|
-
* Layout-shell options for {@link renderRow}. `cutoffs` are the cumulative random() boundaries for [full, bare,
|
|
349
|
-
* street-only] — the remainder is the venue shell. Defaults reproduce the original street-affix distribution
|
|
350
|
-
* (40/25/20/15) with the six template venues.
|
|
351
|
-
*/
|
|
352
283
|
interface RenderRowOpts {
|
|
353
284
|
venues?: readonly string[]
|
|
354
285
|
cutoffs?: readonly [number, number, number]
|
|
355
286
|
}
|
|
356
287
|
|
|
357
288
|
/**
|
|
358
|
-
*
|
|
359
|
-
*
|
|
289
|
+
* Places a rendered street in a full, bare, street-only, or venue-prefixed address.
|
|
290
|
+
*
|
|
291
|
+
* The `cutoffs` option sets the cumulative probabilities of the first three formats.
|
|
292
|
+
* The remainder produces venue-prefixed rows.
|
|
360
293
|
*/
|
|
361
294
|
export function renderRow(
|
|
362
295
|
random: () => number,
|
|
@@ -387,7 +320,7 @@ export function renderRow(
|
|
|
387
320
|
if (r < bareCutoff) return { fmt: "bare", raw: road, components: withRoad }
|
|
388
321
|
|
|
389
322
|
if (r < streetOnlyCutoff) return { fmt: "street-only", raw: street, components: { ...streetComponents } }
|
|
390
|
-
const v =
|
|
323
|
+
const v = sample(venues, random)
|
|
391
324
|
|
|
392
325
|
return {
|
|
393
326
|
fmt: "venue",
|
|
@@ -396,11 +329,6 @@ export function renderRow(
|
|
|
396
329
|
}
|
|
397
330
|
}
|
|
398
331
|
|
|
399
|
-
/**
|
|
400
|
-
* Capped reader for the multi-locale BALANCE sources. The FR/IT/NL countrywide extracts are GB-scale, so this reads
|
|
401
|
-
* only as far as `limit` distinct tuples — the `break` closes the reader and releases the archive. Only keeps tuples
|
|
402
|
-
* that carry a POSTCODE.
|
|
403
|
-
*/
|
|
404
332
|
async function readBalanceTuples(source: BalanceSource, limit: number): Promise<BalanceTuple[]> {
|
|
405
333
|
return readOATuples(source, {
|
|
406
334
|
limit,
|
|
@@ -414,27 +342,20 @@ async function readBalanceTuples(source: BalanceSource, limit: number): Promise<
|
|
|
414
342
|
})
|
|
415
343
|
}
|
|
416
344
|
|
|
417
|
-
/**
|
|
418
|
-
* Render a non-US BALANCE row in native order — NO affix split, NO country token. `street` is the OA value verbatim.
|
|
419
|
-
* The sole job is to put a postcode in its native position so the slice doesn't pull the model US-ward.
|
|
420
|
-
*/
|
|
421
345
|
function renderBalanceRow(t: BalanceTuple): { raw: string; components: Partial<Record<ComponentTag, string>> } {
|
|
422
346
|
const { house_number: hn, street, locality: loc, postcode: pc, order } = t
|
|
423
|
-
|
|
347
|
+
|
|
424
348
|
const components: Partial<Record<ComponentTag, string>> = { house_number: hn, street, locality: loc, postcode: pc }
|
|
425
349
|
|
|
426
|
-
const raw =
|
|
427
|
-
order === "fr"
|
|
428
|
-
? `${hn} ${street}, ${pc} ${loc}` // French: number-street, postcode-city
|
|
429
|
-
: `${street} ${hn}, ${pc} ${loc}`
|
|
350
|
+
const raw = order === "fr" ? `${hn} ${street}, ${pc} ${loc}` : `${street} ${hn}, ${pc} ${loc}`
|
|
430
351
|
|
|
431
|
-
// DE/IT/NL: street-number, postcode-city
|
|
432
352
|
return { raw, components }
|
|
433
353
|
}
|
|
434
354
|
|
|
435
355
|
/**
|
|
436
|
-
*
|
|
437
|
-
*
|
|
356
|
+
* Generates US rows that split OpenAddresses streets into `street_prefix`, `street` and `street_suffix`.
|
|
357
|
+
*
|
|
358
|
+
* The `--multilocale-count` option appends FR, DE, IT and NL rows in native order without affix labels.
|
|
438
359
|
*/
|
|
439
360
|
export const streetAffixRecipe: CorpusRecipe = {
|
|
440
361
|
name: "street-affix",
|
|
@@ -447,10 +368,9 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
447
368
|
},
|
|
448
369
|
],
|
|
449
370
|
async run(opts, write) {
|
|
450
|
-
// Legacy build-street-affix-slice.mjs seeded `mulberry32(opts.seed)`.
|
|
451
371
|
const random = makeMulberry32(opts.seed)
|
|
452
372
|
const count = opts.count ?? 50_000
|
|
453
|
-
const source = opts.sourceName ?? "synth-affix"
|
|
373
|
+
const source = opts.sourceName ?? defaultRecipeSource("synth-affix")
|
|
454
374
|
const multilocaleCount = opts.multilocaleCount ?? 0
|
|
455
375
|
const sources = opts.golden ? [EVAL_SOURCE] : TRAIN_SOURCES
|
|
456
376
|
|
|
@@ -491,7 +411,6 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
491
411
|
const { street, components: streetComponents } = renderStreet(random, parsed)
|
|
492
412
|
const { fmt, raw, components } = renderRow(random, base, street, streetComponents)
|
|
493
413
|
|
|
494
|
-
// Every affix surface form must survive verbatim in raw, else alignment can't label it.
|
|
495
414
|
const surfaces = [streetComponents.street_prefix, streetComponents.street, streetComponents.street_suffix].filter(
|
|
496
415
|
(s): s is string => Boolean(s)
|
|
497
416
|
)
|
|
@@ -514,7 +433,7 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
514
433
|
}
|
|
515
434
|
|
|
516
435
|
if (opts.golden) {
|
|
517
|
-
write(
|
|
436
|
+
write(stringifyJSON({ raw, components, country: "US" }))
|
|
518
437
|
|
|
519
438
|
emitted++
|
|
520
439
|
|
|
@@ -540,21 +459,18 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
540
459
|
continue
|
|
541
460
|
}
|
|
542
461
|
|
|
543
|
-
write(
|
|
462
|
+
write(stringifyJSON({ ...aligned.row, synth_method: "affix", synth_base_id: null }))
|
|
544
463
|
|
|
545
464
|
emitted++
|
|
546
465
|
}
|
|
547
466
|
|
|
548
|
-
// ── Multi-locale balance rows (--multilocale-count) ─────────────────────────────────────────────
|
|
549
|
-
// Appended AFTER the US affix rows so the US affix signal is unchanged (same `--count`), and the
|
|
550
|
-
// non-US rows ride the SAME source weight. Native-order postcodes, no affix labels.
|
|
551
467
|
let balanceEmitted = 0
|
|
552
468
|
let balanceSkipped = 0
|
|
553
469
|
const balanceISO: Record<string, number> = {}
|
|
554
470
|
|
|
555
471
|
if (multilocaleCount > 0) {
|
|
556
472
|
const mlSources = opts.golden ? MULTILOCALE_EVAL_SOURCES : MULTILOCALE_SOURCES
|
|
557
|
-
const perSource = Math.ceil((multilocaleCount * 3) / mlSources.length)
|
|
473
|
+
const perSource = Math.ceil((multilocaleCount * 3) / mlSources.length)
|
|
558
474
|
const mlPool: BalanceTuple[] = []
|
|
559
475
|
|
|
560
476
|
for (const s of mlSources) {
|
|
@@ -570,12 +486,11 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
570
486
|
const M = mlPool.length
|
|
571
487
|
let mlGuard = 0
|
|
572
488
|
|
|
573
|
-
// oxlint-disable-next-line eslint/no-unmodified-loop-condition -- `M > 0` is an invariant guard against an empty pool
|
|
489
|
+
// oxlint-disable-next-line eslint/no-unmodified-loop-condition -- `M > 0` is an invariant guard against an empty pool rather than a progress condition
|
|
574
490
|
while (M > 0 && balanceEmitted < multilocaleCount && mlGuard++ < multilocaleCount * 10) {
|
|
575
491
|
const t = mlPool[Math.floor(random() * M)]!
|
|
576
492
|
const { raw, components } = renderBalanceRow(t)
|
|
577
493
|
|
|
578
|
-
// Every component surface must survive in raw, else alignment can't label it.
|
|
579
494
|
if (![components.street, components.locality, components.postcode].every((s) => !!s && raw.includes(s))) {
|
|
580
495
|
balanceSkipped++
|
|
581
496
|
|
|
@@ -586,7 +501,7 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
586
501
|
const locale = `${t.iso2.toLowerCase()}-${t.iso2}`
|
|
587
502
|
|
|
588
503
|
if (opts.golden) {
|
|
589
|
-
write(
|
|
504
|
+
write(stringifyJSON({ raw, components, country: t.iso2 }))
|
|
590
505
|
|
|
591
506
|
balanceEmitted++
|
|
592
507
|
|
|
@@ -601,7 +516,7 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
601
516
|
source,
|
|
602
517
|
source_id: stableSourceID(source, components),
|
|
603
518
|
corpus_version: "0.4.0",
|
|
604
|
-
license: "OpenAddresses non-US skeletons (native-order postcode balance for the affix
|
|
519
|
+
license: "OpenAddresses non-US skeletons (native-order postcode balance for the affix recipe)",
|
|
605
520
|
}
|
|
606
521
|
|
|
607
522
|
const aligned = alignRow(canonical)
|
|
@@ -612,7 +527,7 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
612
527
|
continue
|
|
613
528
|
}
|
|
614
529
|
|
|
615
|
-
write(
|
|
530
|
+
write(stringifyJSON({ ...aligned.row, synth_method: "affix-balance", synth_base_id: null }))
|
|
616
531
|
|
|
617
532
|
balanceEmitted++
|
|
618
533
|
}
|
|
@@ -620,10 +535,10 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
620
535
|
|
|
621
536
|
console.error(
|
|
622
537
|
`Done: emitted ${emitted} affix rows, skipped ${skipped}, no-affix ${noAffix} (pool ${pool.length}).\n` +
|
|
623
|
-
` formats: ${
|
|
624
|
-
` affix mix: ${
|
|
538
|
+
` formats: ${stringifyJSON(formatCounts)}\n` +
|
|
539
|
+
` affix mix: ${stringifyJSON(affixCounts)}` +
|
|
625
540
|
(multilocaleCount > 0
|
|
626
|
-
? `\n balance: emitted ${balanceEmitted}, skipped ${balanceSkipped}, iso ${
|
|
541
|
+
? `\n balance: emitted ${balanceEmitted}, skipped ${balanceSkipped}, iso ${stringifyJSON(balanceISO)}`
|
|
627
542
|
: "")
|
|
628
543
|
)
|
|
629
544
|
|
|
@@ -631,24 +546,15 @@ export const streetAffixRecipe: CorpusRecipe = {
|
|
|
631
546
|
},
|
|
632
547
|
}
|
|
633
548
|
|
|
634
|
-
// The venue shell needs a real register: fewer names than this and the rows read as templates again.
|
|
635
549
|
const VENUE_POOL_MIN_SIZE = 500
|
|
636
|
-
|
|
550
|
+
|
|
637
551
|
const TERMINAL_ONLY_SHARE = 0.8
|
|
638
552
|
|
|
639
553
|
/**
|
|
640
|
-
*
|
|
641
|
-
* diversity. v4.3.1 makes terminal-only 80% of the mix: the first 40/60 run moved a 100-row TRAIN sample only 4→11
|
|
642
|
-
* while contrast was already 95/100 before training (93/100 after). Post-run audit found that the global affix relabel
|
|
643
|
-
* pass corrupts many already-decomposed target rows into double suffixes; do not retrain this recipe until relabel is
|
|
644
|
-
* idempotent over a decomposed street family. The 20% contrast leg remains explicit, additive to the already-strong
|
|
645
|
-
* base distribution, and B2 still checks it unchanged.
|
|
554
|
+
* Generates US rows that teach where a street name ends and its suffix begins.
|
|
646
555
|
*
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
* draws the venue shell from thousands of REAL HRSA facility names and raises its share (venue 30%, full 35%, bare 20%,
|
|
650
|
-
* street-only 15%). Dose policy moved to the recipe's config side: weight ≤4 effective passes per run (Muennighoff
|
|
651
|
-
* 2023's repetition knee) and the source is excluded from the augmentation pool — see the v4.4.0 config.
|
|
556
|
+
* The recipe targets 80% `terminal-only` and 20% `terminal-contrast` streets.
|
|
557
|
+
* It draws training rows from non-Vermont OpenAddresses streets and reserves Vermont for the golden set.
|
|
652
558
|
*/
|
|
653
559
|
export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
654
560
|
name: "suffix-boundary",
|
|
@@ -657,10 +563,9 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
657
563
|
async run(opts, write) {
|
|
658
564
|
const random = makeMulberry32(opts.seed)
|
|
659
565
|
const count = opts.count ?? 30_000
|
|
660
|
-
const source = opts.sourceName ?? "synth-suffix-boundary"
|
|
566
|
+
const source = opts.sourceName ?? defaultRecipeSource("synth-suffix-boundary")
|
|
661
567
|
const sources = opts.golden ? [EVAL_SOURCE] : TRAIN_SOURCES
|
|
662
568
|
|
|
663
|
-
// v2 venue shell: real facility names, loud when the source file is missing or thin.
|
|
664
569
|
const venuePool = await readVenuePool(VENUE_POOL_CSV)
|
|
665
570
|
|
|
666
571
|
if (venuePool.length < VENUE_POOL_MIN_SIZE) {
|
|
@@ -722,7 +627,7 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
722
627
|
country: "US",
|
|
723
628
|
locale: "en-US",
|
|
724
629
|
source,
|
|
725
|
-
source_id:
|
|
630
|
+
source_id: recipeSourceID(source, { ...components, class: rowClass, n: String(emitted) }),
|
|
726
631
|
corpus_version: "0.19.0",
|
|
727
632
|
license:
|
|
728
633
|
"OpenAddresses US (non-VT) skeletons; terminal suffix labels via USPS Pub-28 codex; venue shell from HRSA site names (US public domain)",
|
|
@@ -736,7 +641,7 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
736
641
|
return false
|
|
737
642
|
}
|
|
738
643
|
|
|
739
|
-
write(
|
|
644
|
+
write(stringifyJSON({ ...aligned.row, synth_method: method, synth_base_id: base.base_source_id }))
|
|
740
645
|
|
|
741
646
|
classCounts[rowClass]++
|
|
742
647
|
formatCounts[fmt] = (formatCounts[fmt] ?? 0) + 1
|
|
@@ -761,7 +666,7 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
761
666
|
: "terminal-only"
|
|
762
667
|
|
|
763
668
|
const classPool = pool[rowClass]
|
|
764
|
-
const base =
|
|
669
|
+
const base = sample(classPool, random)
|
|
765
670
|
const parsed = parseStreet(base.street, { allowNameProneTail: rowClass === "terminal-only" })
|
|
766
671
|
|
|
767
672
|
if (!parsed) {
|
|
@@ -772,11 +677,6 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
772
677
|
|
|
773
678
|
if (!emitOne(rowClass, base, parsed, `suffix-boundary:${rowClass}`)) continue
|
|
774
679
|
|
|
775
|
-
// Stem-pair hard negative (v2, 2026-08-10 recipe review): after a terminal-only row
|
|
776
|
-
// ('Menlo Park' + 'Road'), also emit the SAME stem without its true suffix as a
|
|
777
|
-
// contrast row ('Menlo' + 'Park' under the canonical last-token rule). Sharing the stem
|
|
778
|
-
// forces the model to key on the licensing evidence — the trailing true suffix — rather
|
|
779
|
-
// than on name identity. Dose-neutral: these fill the existing 20% contrast target.
|
|
780
680
|
if (
|
|
781
681
|
rowClass === "terminal-only" &&
|
|
782
682
|
classCounts["terminal-contrast"] < classTargets["terminal-contrast"] &&
|
|
@@ -795,11 +695,11 @@ export const suffixBoundaryRecipe: CorpusRecipe = {
|
|
|
795
695
|
}
|
|
796
696
|
|
|
797
697
|
console.error(
|
|
798
|
-
`Done: emitted ${emitted}, skipped ${skipped}; source pools ${
|
|
698
|
+
`Done: emitted ${emitted}, skipped ${skipped}; source pools ${stringifyJSON({
|
|
799
699
|
terminalOnly: pool["terminal-only"].length,
|
|
800
700
|
terminalContrast: pool["terminal-contrast"].length,
|
|
801
|
-
})}; classes ${
|
|
802
|
-
`venue pool ${venuePool.length}; formats ${
|
|
701
|
+
})}; classes ${stringifyJSON(classCounts)}; stem pairs ${stemPairs}; ` +
|
|
702
|
+
`venue pool ${venuePool.length}; formats ${stringifyJSON(formatCounts)}`
|
|
803
703
|
)
|
|
804
704
|
|
|
805
705
|
return { emitted, skipped }
|
|
@@ -3,30 +3,35 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
* `street-bare`
|
|
6
|
+
* `street-bare` recipe — bare-street rows (the v0.8.0 harness change, 2026-06-05). The
|
|
7
7
|
* `functional.test.ts` cluster (bare street names — "10th Ave", "Main St", "1 Main Pl") was
|
|
8
|
-
* mislabeled `locality` because {@link synthesizeStreetRow} only ever emitted streets
|
|
9
|
-
* City, ST ZIP" tail. This recipe emits streets
|
|
8
|
+
* mislabeled `locality` because {@link synthesizeStreetRow} only ever emitted streets with a ",
|
|
9
|
+
* City, ST ZIP" tail. This recipe emits streets bare (`--bare-prob`, default 0.6) — no tail, only
|
|
10
10
|
* `street_prefix`/`street`/`street_suffix` (+ optional `house_number` at `--hn-prob`, default
|
|
11
11
|
* 0.85) — over the built-in {@link DEFAULT_US_BASES} pool (round-robin). Generate-mode, US-only,
|
|
12
|
-
* in-distribution (no German-collapse risk). Ported from
|
|
12
|
+
* in-distribution (no German-collapse risk). Ported from the root build script it replaced.
|
|
13
13
|
*
|
|
14
14
|
* Byte-fidelity: the legacy script seeded its own mulberry32 from `--seed`
|
|
15
|
-
* (`mulberry32(opts.seed)`); this recipe re-creates the
|
|
15
|
+
* (`mulberry32(opts.seed)`); this recipe re-creates the same generator
|
|
16
16
|
* (`makeMulberry32(opts.seed)`) and preserves the synthesis call order exactly, so `--seed N`
|
|
17
17
|
* reproduces the legacy run byte-for-byte.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
+
import { stringifyJSON } from "@mailwoman/core/json"
|
|
20
21
|
import { mulberry32 as makeMulberry32 } from "@mailwoman/core/utils"
|
|
21
22
|
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
23
|
+
import { recipeSourceID, requireRegister, type CanonicalRecipeRow, type CorpusRecipe } from "#recipes/scaffold"
|
|
24
|
+
import { defaultRecipeSource } from "#recipes/sources"
|
|
25
|
+
import { SurfaceOrigin } from "#types"
|
|
26
|
+
import { DEFAULT_US_BASES } from "#us/synthesizers/intersection"
|
|
27
|
+
import { synthesizeStreetRow, type StreetBaseTuple } from "#us/synthesizers/street"
|
|
25
28
|
import { alignRow } from "#utils"
|
|
26
29
|
|
|
27
30
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
31
|
+
* Recipe registered with the corpus builder.
|
|
32
|
+
*
|
|
33
|
+
* See the file header for the parse behavior it exercises.
|
|
34
|
+
* See `description` below for the generated surface form.
|
|
30
35
|
*/
|
|
31
36
|
export const streetBareRecipe: CorpusRecipe = {
|
|
32
37
|
name: "street-bare",
|
|
@@ -41,7 +46,7 @@ export const streetBareRecipe: CorpusRecipe = {
|
|
|
41
46
|
const count = opts.count ?? 3000
|
|
42
47
|
const bareProb = opts.bareProb ?? 0.6
|
|
43
48
|
const hnProb = opts.hnProb ?? 0.85
|
|
44
|
-
const source = opts.sourceName ?? "synth-street-bare"
|
|
49
|
+
const source = opts.sourceName ?? defaultRecipeSource("synth-street-bare")
|
|
45
50
|
|
|
46
51
|
let emitted = 0
|
|
47
52
|
let skipped = 0
|
|
@@ -64,13 +69,13 @@ export const streetBareRecipe: CorpusRecipe = {
|
|
|
64
69
|
|
|
65
70
|
const isBare = synth.components.region === undefined
|
|
66
71
|
|
|
67
|
-
const canonical:
|
|
72
|
+
const canonical: CanonicalRecipeRow = {
|
|
68
73
|
raw: synth.raw,
|
|
69
74
|
components: synth.components,
|
|
70
75
|
country: base.country,
|
|
71
76
|
locale: synth.locale,
|
|
72
77
|
source,
|
|
73
|
-
source_id:
|
|
78
|
+
source_id: recipeSourceID(source, {
|
|
74
79
|
street: synth.components.street,
|
|
75
80
|
street_suffix: synth.components.street_suffix,
|
|
76
81
|
house_number: synth.components.house_number,
|
|
@@ -81,9 +86,9 @@ export const streetBareRecipe: CorpusRecipe = {
|
|
|
81
86
|
license: "Synthetic — US street templates, public-domain street/city pools",
|
|
82
87
|
}
|
|
83
88
|
|
|
84
|
-
// Strict labeled-only check (matches the legacy builder): alignRow always returns
|
|
85
|
-
// (labeled
|
|
86
|
-
// too — call alignRow directly and skip anything not "labeled".
|
|
89
|
+
// Strict labeled-only check (matches the legacy builder): alignRow always returns
|
|
90
|
+
// a `row` (labeled or quarantined), so the scaffold's `alignAndWrite` would write
|
|
91
|
+
// quarantined rows too — call alignRow directly and skip anything not "labeled".
|
|
87
92
|
const aligned = alignRow(canonical as Parameters<typeof alignRow>[0])
|
|
88
93
|
|
|
89
94
|
if (aligned.kind !== "labeled" || !aligned.row) {
|
|
@@ -92,7 +97,15 @@ export const streetBareRecipe: CorpusRecipe = {
|
|
|
92
97
|
continue
|
|
93
98
|
}
|
|
94
99
|
|
|
95
|
-
write(
|
|
100
|
+
write(
|
|
101
|
+
stringifyJSON({
|
|
102
|
+
...aligned.row,
|
|
103
|
+
recipe: "street-bare",
|
|
104
|
+
base_source_id: null,
|
|
105
|
+
register: requireRegister(opts, "street-bare"),
|
|
106
|
+
surface: SurfaceOrigin.Composed,
|
|
107
|
+
})
|
|
108
|
+
)
|
|
96
109
|
|
|
97
110
|
emitted++
|
|
98
111
|
}
|