@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
|
@@ -3,56 +3,35 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* An `Augmentation` is a pure function that takes a `CanonicalRow` and either returns a new
|
|
9
|
-
* `CanonicalRow` (with `raw` AND `components` transformed in lockstep so alignment still
|
|
10
|
-
* succeeds) or `null` when the augmentation doesn't apply to the row's shape.
|
|
11
|
-
*
|
|
12
|
-
* Synthesis runs **before** alignment: augmentations transform raw + components together, and the
|
|
13
|
-
* runner reruns alignment on each augmented row to produce its labels. This keeps the synthesis
|
|
14
|
-
* surface small (no token/label arithmetic) at the cost of a re-run.
|
|
15
|
-
*
|
|
16
|
-
* Every augmented row carries the `synth` marker:
|
|
17
|
-
*
|
|
18
|
-
* - `method`: the augmentation's stable id (e.g. `"case-upper"`, `"accent-strip"`).
|
|
19
|
-
* - `base_source_id`: the source_id of the un-augmented (or upstream-augmented) row, so ancestry is
|
|
20
|
-
* traceable.
|
|
21
|
-
*
|
|
22
|
-
* Phase 1 implements the locale-agnostic + most useful US/FR augmentations. Typo injection (#530)
|
|
23
|
-
* is now implemented ({@link typoInject}) — the "seed-aware API" the deferral asked for is
|
|
24
|
-
* resolved by seeding the PRNG from each row's `source_id`. It ships in {@link AUGMENTATIONS} but
|
|
25
|
-
* is kept OUT of the default set ({@link defaultAugmentationsForCountry}) until its on-model
|
|
26
|
-
* effect is measured; see the note there.
|
|
6
|
+
* Synthesis and augmentation utilities.
|
|
27
7
|
*/
|
|
28
8
|
|
|
29
9
|
import type { BIOLabel, ComponentTag } from "@mailwoman/codex/component"
|
|
30
10
|
import {
|
|
31
11
|
US_STREET_SUFFIX_PREFERRED_ABBR,
|
|
32
12
|
US_UNIT_DESIGNATOR_PREFERRED_ABBR,
|
|
33
|
-
matchCase,
|
|
34
13
|
matchLeadingDesignator,
|
|
35
14
|
matchTrailingSuffix,
|
|
36
15
|
} from "@mailwoman/codex/us"
|
|
37
16
|
import { isPresent } from "@mailwoman/core/objects"
|
|
38
|
-
import { mulberry32 } from "@mailwoman/core/random"
|
|
17
|
+
import { mulberry32, sample } from "@mailwoman/core/random"
|
|
39
18
|
import { escapeRegExp } from "@mailwoman/core/strings/regexp"
|
|
40
19
|
import { stripCombiningMarks } from "@mailwoman/normalize/fold"
|
|
20
|
+
import { matchCase } from "spliterator"
|
|
41
21
|
|
|
42
22
|
import type { CanonicalRow, LabeledRow, QuarantinedRow } from "#types"
|
|
43
23
|
import { alignRow, assertSpanInvariants, type ComponentSpan } from "#utils/align"
|
|
44
24
|
import { whitespaceTokenizer, type Tokenizer } from "#utils/tokenize"
|
|
45
25
|
|
|
46
26
|
/**
|
|
47
|
-
*
|
|
48
|
-
* that has no accents; particle-strip on a US row).
|
|
27
|
+
* A row augmentation.
|
|
49
28
|
*/
|
|
50
29
|
export type Augmentation = (row: CanonicalRow) => CanonicalRow | null
|
|
51
30
|
|
|
52
31
|
type ComponentDict = Partial<Record<ComponentTag, string>>
|
|
53
32
|
|
|
54
33
|
/**
|
|
55
|
-
*
|
|
34
|
+
* Build an augmented row with its `RecipeMarker`.
|
|
56
35
|
*/
|
|
57
36
|
function withAugmentation(
|
|
58
37
|
source: CanonicalRow,
|
|
@@ -60,23 +39,21 @@ function withAugmentation(
|
|
|
60
39
|
newRaw: string,
|
|
61
40
|
newComponents: ComponentDict
|
|
62
41
|
): CanonicalRow {
|
|
63
|
-
const baseID = source.
|
|
42
|
+
const baseID = source.recipe?.base_source_id ?? source.source_id
|
|
64
43
|
|
|
65
44
|
return {
|
|
66
45
|
...source,
|
|
67
46
|
raw: newRaw,
|
|
68
47
|
components: newComponents,
|
|
69
48
|
source_id: `${source.source_id}+${method}`,
|
|
70
|
-
|
|
49
|
+
recipe: { recipe: method, base_source_id: baseID },
|
|
71
50
|
}
|
|
72
51
|
}
|
|
73
52
|
|
|
74
|
-
//
|
|
75
|
-
// Locale-agnostic augmentations
|
|
76
|
-
// ===========================================================================
|
|
53
|
+
// Locale-agnostic augmentations.
|
|
77
54
|
|
|
78
55
|
/**
|
|
79
|
-
* Upper-case raw
|
|
56
|
+
* Upper-case raw and components.
|
|
80
57
|
*/
|
|
81
58
|
export const caseUpper: Augmentation = (row) => {
|
|
82
59
|
if (row.raw === row.raw.toUpperCase()) return null
|
|
@@ -93,7 +70,7 @@ export const caseUpper: Augmentation = (row) => {
|
|
|
93
70
|
}
|
|
94
71
|
|
|
95
72
|
/**
|
|
96
|
-
* Lower-case raw
|
|
73
|
+
* Lower-case raw and components.
|
|
97
74
|
*/
|
|
98
75
|
export const caseLower: Augmentation = (row) => {
|
|
99
76
|
if (row.raw === row.raw.toLowerCase()) return null
|
|
@@ -110,7 +87,7 @@ export const caseLower: Augmentation = (row) => {
|
|
|
110
87
|
}
|
|
111
88
|
|
|
112
89
|
/**
|
|
113
|
-
* Drop commas from
|
|
90
|
+
* Drop commas from raw.
|
|
114
91
|
*/
|
|
115
92
|
export const dropCommas: Augmentation = (row) => {
|
|
116
93
|
if (!row.raw.includes(",")) return null
|
|
@@ -120,10 +97,7 @@ export const dropCommas: Augmentation = (row) => {
|
|
|
120
97
|
}
|
|
121
98
|
|
|
122
99
|
/**
|
|
123
|
-
*
|
|
124
|
-
* alignment: `alignRow` substring-searches each component's surface form inside `raw`, so doubling the spaces in `raw`
|
|
125
|
-
* only would leave single-spaced components unfindable (this was the bug behind v0.1.1's first build attempt — 99.9% of
|
|
126
|
-
* quarantined rows traced back to this augmentation). Doubling both keeps the substring contract intact.
|
|
100
|
+
* Double spaces in raw and components.
|
|
127
101
|
*/
|
|
128
102
|
export const doubleSpace: Augmentation = (row) => {
|
|
129
103
|
if (!/ /.test(row.raw)) return null
|
|
@@ -140,8 +114,7 @@ export const doubleSpace: Augmentation = (row) => {
|
|
|
140
114
|
}
|
|
141
115
|
|
|
142
116
|
/**
|
|
143
|
-
* Strip
|
|
144
|
-
* "Ile-de-France". Returns null if the row has no accents.
|
|
117
|
+
* Strip accents/diacritics from raw and components.
|
|
145
118
|
*/
|
|
146
119
|
export const accentStrip: Augmentation = (row) => {
|
|
147
120
|
const stripped = stripCombiningMarks(row.raw)
|
|
@@ -158,13 +131,10 @@ export const accentStrip: Augmentation = (row) => {
|
|
|
158
131
|
return withAugmentation(row, "accent-strip", stripped, newComponents)
|
|
159
132
|
}
|
|
160
133
|
|
|
161
|
-
//
|
|
162
|
-
// The Phase-1 deferral asked for a "seed-aware API" so the corpus stays reproducible. Resolution:
|
|
163
|
-
// seed the PRNG from the row's own `source_id` — deterministic per row, no global state, fits the
|
|
164
|
-
// existing `(row) => CanonicalRow | null` signature unchanged.
|
|
134
|
+
// Typo helpers are deterministic per row.
|
|
165
135
|
|
|
166
136
|
/**
|
|
167
|
-
* QWERTY adjacency for
|
|
137
|
+
* QWERTY adjacency for key-neighbor substitutions.
|
|
168
138
|
*/
|
|
169
139
|
const QWERTY_ADJACENCY: Record<string, string> = {
|
|
170
140
|
a: "qwsz",
|
|
@@ -196,12 +166,12 @@ const QWERTY_ADJACENCY: Record<string, string> = {
|
|
|
196
166
|
}
|
|
197
167
|
|
|
198
168
|
/**
|
|
199
|
-
*
|
|
169
|
+
* Eligible typo target: letter-like name with length >= 4.
|
|
200
170
|
*/
|
|
201
171
|
const ALPHA_NAME = /^[\p{L}][\p{L} '.-]{3,}$/u
|
|
202
172
|
|
|
203
173
|
/**
|
|
204
|
-
*
|
|
174
|
+
* Deterministic djb2 hash to uint32.
|
|
205
175
|
*/
|
|
206
176
|
function hashString(s: string): number {
|
|
207
177
|
let h = 5381
|
|
@@ -214,19 +184,12 @@ function hashString(s: string): number {
|
|
|
214
184
|
}
|
|
215
185
|
|
|
216
186
|
/**
|
|
217
|
-
* Inject
|
|
218
|
-
* single alpha name component (street/locality/region…), teaching the model to recover from real-world misspellings
|
|
219
|
-
* ("Cupertino" → "Cupertimo"). The edit is applied to BOTH `raw` and the component so the substring contract `alignRow`
|
|
220
|
-
* depends on holds. Number / postcode / unit components are never touched (they fail {@link ALPHA_NAME}). Deterministic
|
|
221
|
-
* per row (seeded from `source_id`). Returns `null` when no eligible component exists or the edit is a no-op.
|
|
187
|
+
* Inject one deterministic typo into an eligible component.
|
|
222
188
|
*/
|
|
223
189
|
export const typoInject: Augmentation = (row) => {
|
|
224
190
|
const rng = mulberry32(hashString(`${row.source_id}:typo`))
|
|
225
191
|
|
|
226
|
-
//
|
|
227
|
-
// raw and isn't a substring of another component. (e.g. "Cupertino" the locality is a substring of
|
|
228
|
-
// "Cupertino Avenue" the street; editing it would `replace` the street's occurrence and break the
|
|
229
|
-
// span. The substring contract `alignRow` enforces is why we filter rather than guess the position.)
|
|
192
|
+
// Only edit an unambiguous component value.
|
|
230
193
|
const occurs = (needle: string): number => {
|
|
231
194
|
let n = 0
|
|
232
195
|
|
|
@@ -244,8 +207,8 @@ export const typoInject: Augmentation = (row) => {
|
|
|
244
207
|
)
|
|
245
208
|
|
|
246
209
|
if (!eligible.length) return null
|
|
247
|
-
const [tag, value] =
|
|
248
|
-
// Interior
|
|
210
|
+
const [tag, value] = sample(eligible, rng)
|
|
211
|
+
// Interior letter positions only.
|
|
249
212
|
const positions: number[] = []
|
|
250
213
|
|
|
251
214
|
for (let i = 1; i < value.length - 1; i++)
|
|
@@ -254,14 +217,14 @@ export const typoInject: Augmentation = (row) => {
|
|
|
254
217
|
}
|
|
255
218
|
|
|
256
219
|
if (!positions.length) return null
|
|
257
|
-
const i =
|
|
220
|
+
const i = sample(positions, rng)
|
|
258
221
|
const ch = value[i]!
|
|
259
222
|
let typed: string
|
|
260
223
|
|
|
261
224
|
if (rng() < 0.5) {
|
|
262
225
|
const next = value[i + 1]!
|
|
263
226
|
|
|
264
|
-
if (ch === next) return null
|
|
227
|
+
if (ch === next) return null
|
|
265
228
|
typed = value.slice(0, i) + next + ch + value.slice(i + 2)
|
|
266
229
|
} else {
|
|
267
230
|
const lower = ch.toLowerCase()
|
|
@@ -275,16 +238,14 @@ export const typoInject: Augmentation = (row) => {
|
|
|
275
238
|
if (typed === value) return null
|
|
276
239
|
const newRaw = row.raw.replace(value, typed)
|
|
277
240
|
|
|
278
|
-
//
|
|
241
|
+
// `replace(string, …)` updates the first literal match.
|
|
279
242
|
return withAugmentation(row, "typo-inject", newRaw, { ...row.components, [tag]: typed })
|
|
280
243
|
}
|
|
281
244
|
|
|
282
|
-
//
|
|
283
|
-
// US-specific augmentations
|
|
284
|
-
// ===========================================================================
|
|
245
|
+
// US-specific augmentations.
|
|
285
246
|
|
|
286
247
|
/**
|
|
287
|
-
* US state full
|
|
248
|
+
* US state full name -> alpha-2.
|
|
288
249
|
*/
|
|
289
250
|
const STATE_NAME_TO_ABBR: Record<string, string> = {
|
|
290
251
|
Alabama: "AL",
|
|
@@ -345,9 +306,13 @@ const STATE_ABBR_TO_NAME: Record<string, string> = Object.fromEntries(
|
|
|
345
306
|
)
|
|
346
307
|
|
|
347
308
|
/**
|
|
348
|
-
*
|
|
309
|
+
* Expand state abbreviation to full name.
|
|
349
310
|
*/
|
|
350
311
|
export const stateExpand: Augmentation = (row) => {
|
|
312
|
+
// country-branch: the state, directional, street-suffix, unit and ZIP+4
|
|
313
|
+
// augmentations below read US vocabulary tables.
|
|
314
|
+
// Per-country abbreviation tables in the codex would let
|
|
315
|
+
// `defaultAugmentationsForCountry` serve every country.
|
|
351
316
|
if (row.country !== "US") return null
|
|
352
317
|
const region = row.components.region
|
|
353
318
|
|
|
@@ -355,8 +320,7 @@ export const stateExpand: Augmentation = (row) => {
|
|
|
355
320
|
const full = STATE_ABBR_TO_NAME[region]
|
|
356
321
|
|
|
357
322
|
if (!full) return null
|
|
358
|
-
// Replace
|
|
359
|
-
// don't match inside "Stop" or similar.
|
|
323
|
+
// Replace exact word matches only.
|
|
360
324
|
const re = new RegExp(`\\b${region}\\b`, "g")
|
|
361
325
|
|
|
362
326
|
if (!re.test(row.raw)) return null
|
|
@@ -367,9 +331,10 @@ export const stateExpand: Augmentation = (row) => {
|
|
|
367
331
|
}
|
|
368
332
|
|
|
369
333
|
/**
|
|
370
|
-
*
|
|
334
|
+
* Abbreviate full state name to alpha-2.
|
|
371
335
|
*/
|
|
372
336
|
export const stateAbbreviate: Augmentation = (row) => {
|
|
337
|
+
// country-branch: see `stateExpand`.
|
|
373
338
|
if (row.country !== "US") return null
|
|
374
339
|
const region = row.components.region
|
|
375
340
|
|
|
@@ -402,9 +367,10 @@ const DIRECTIONAL_ABBR_TO_FULL: Record<string, string> = Object.fromEntries(
|
|
|
402
367
|
)
|
|
403
368
|
|
|
404
369
|
/**
|
|
405
|
-
*
|
|
370
|
+
* Expand directional abbreviations.
|
|
406
371
|
*/
|
|
407
372
|
export const directionalExpand: Augmentation = (row) => {
|
|
373
|
+
// country-branch: see `stateExpand`.
|
|
408
374
|
if (row.country !== "US") return null
|
|
409
375
|
const tagsToCheck: ComponentTag[] = ["street", "street_suffix", "street_prefix"]
|
|
410
376
|
let changed = false
|
|
@@ -430,9 +396,10 @@ export const directionalExpand: Augmentation = (row) => {
|
|
|
430
396
|
}
|
|
431
397
|
|
|
432
398
|
/**
|
|
433
|
-
*
|
|
399
|
+
* Abbreviate directional words.
|
|
434
400
|
*/
|
|
435
401
|
export const directionalAbbreviate: Augmentation = (row) => {
|
|
402
|
+
// country-branch: see `stateExpand`.
|
|
436
403
|
if (row.country !== "US") return null
|
|
437
404
|
const tagsToCheck: ComponentTag[] = ["street", "street_suffix", "street_prefix"]
|
|
438
405
|
let changed = false
|
|
@@ -462,15 +429,10 @@ export const directionalAbbreviate: Augmentation = (row) => {
|
|
|
462
429
|
}
|
|
463
430
|
|
|
464
431
|
/**
|
|
465
|
-
*
|
|
466
|
-
* `"5th Avenue"` → `"5th Ave"`; `"5TH AVENUE"` → `"5TH AVE"`; `"main street"` → `"main st"`. Returns null when no
|
|
467
|
-
* trailing suffix is recognized, when the trailing word is already the preferred abbreviation, or when the swap would
|
|
468
|
-
* leave `raw` un- touched (alignment requires both raw and components to move in lockstep).
|
|
469
|
-
*
|
|
470
|
-
* Targets the trailing word only to avoid mangling streets like "Avenue of the Americas" where the suffix-shaped word
|
|
471
|
-
* is part of the proper name rather than a USPS suffix.
|
|
432
|
+
* Abbreviate trailing US street suffix.
|
|
472
433
|
*/
|
|
473
434
|
export const streetSuffixAbbreviate: Augmentation = (row) => {
|
|
435
|
+
// country-branch: see `stateExpand`.
|
|
474
436
|
if (row.country !== "US") return null
|
|
475
437
|
const street = row.components.street
|
|
476
438
|
|
|
@@ -497,14 +459,10 @@ export const streetSuffixAbbreviate: Augmentation = (row) => {
|
|
|
497
459
|
}
|
|
498
460
|
|
|
499
461
|
/**
|
|
500
|
-
*
|
|
501
|
-
* Ave"` → `"5th Avenue"`; `"5TH AVE"` → `"5TH AVENUE"`; `"main st"` → `"main street"`. Returns null when no trailing
|
|
502
|
-
* suffix is recognized, when the trailing word is already the canonical full form, or when the swap would leave `raw`
|
|
503
|
-
* untouched.
|
|
504
|
-
*
|
|
505
|
-
* Same trailing-word-only rule as `streetSuffixAbbreviate`.
|
|
462
|
+
* Expand trailing US street suffix.
|
|
506
463
|
*/
|
|
507
464
|
export const streetSuffixExpand: Augmentation = (row) => {
|
|
465
|
+
// country-branch: see `stateExpand`.
|
|
508
466
|
if (row.country !== "US") return null
|
|
509
467
|
const street = row.components.street
|
|
510
468
|
|
|
@@ -530,15 +488,10 @@ export const streetSuffixExpand: Augmentation = (row) => {
|
|
|
530
488
|
}
|
|
531
489
|
|
|
532
490
|
/**
|
|
533
|
-
*
|
|
534
|
-
* case + the identifier. `"Apartment 4B"` → `"Apt 4B"`; `"SUITE 200"` → `"STE 200"`; `"floor 3"` → `"fl 3"`. Returns
|
|
535
|
-
* null when the unit has no recognized leading designator (a bare `"4B"` / `"#210"`), the designator is already the
|
|
536
|
-
* approved abbreviation, or the swap would leave `raw` untouched.
|
|
537
|
-
*
|
|
538
|
-
* Mirrors `streetSuffixAbbreviate`, but designators LEAD the unit (vs suffixes that trail the street). Sourced from the
|
|
539
|
-
* USPS Pub-28 C2 codex — the data-generation counterpart to the runtime `UnitDesignatorClassifier`.
|
|
491
|
+
* Abbreviate leading US unit designator.
|
|
540
492
|
*/
|
|
541
493
|
export const unitDesignatorAbbreviate: Augmentation = (row) => {
|
|
494
|
+
// country-branch: see `stateExpand`.
|
|
542
495
|
if (row.country !== "US") return null
|
|
543
496
|
const unit = row.components.unit
|
|
544
497
|
|
|
@@ -565,12 +518,10 @@ export const unitDesignatorAbbreviate: Augmentation = (row) => {
|
|
|
565
518
|
}
|
|
566
519
|
|
|
567
520
|
/**
|
|
568
|
-
*
|
|
569
|
-
* identifier. `"Apt 4B"` → `"Apartment 4B"`; `"STE 200"` → `"SUITE 200"`. Returns null when there's no recognized
|
|
570
|
-
* leading designator, it's already the canonical word, or the swap would leave `raw` untouched. Same leading-word-only
|
|
571
|
-
* rule as `unitDesignatorAbbreviate`.
|
|
521
|
+
* Expand leading US unit designator.
|
|
572
522
|
*/
|
|
573
523
|
export const unitDesignatorExpand: Augmentation = (row) => {
|
|
524
|
+
// country-branch: see `stateExpand`.
|
|
574
525
|
if (row.country !== "US") return null
|
|
575
526
|
const unit = row.components.unit
|
|
576
527
|
|
|
@@ -596,9 +547,10 @@ export const unitDesignatorExpand: Augmentation = (row) => {
|
|
|
596
547
|
}
|
|
597
548
|
|
|
598
549
|
/**
|
|
599
|
-
*
|
|
550
|
+
* Drop dash from ZIP+4.
|
|
600
551
|
*/
|
|
601
552
|
export const zipPlus4DashDrop: Augmentation = (row) => {
|
|
553
|
+
// country-branch: see `stateExpand`.
|
|
602
554
|
if (row.country !== "US") return null
|
|
603
555
|
const postcode = row.components.postcode
|
|
604
556
|
|
|
@@ -611,21 +563,21 @@ export const zipPlus4DashDrop: Augmentation = (row) => {
|
|
|
611
563
|
return withAugmentation(row, "zip-plus4-dash-drop", newRaw, { ...row.components, postcode: noDash })
|
|
612
564
|
}
|
|
613
565
|
|
|
614
|
-
//
|
|
615
|
-
// FR-specific augmentations
|
|
616
|
-
// ===========================================================================
|
|
566
|
+
// French-specific augmentations.
|
|
617
567
|
|
|
618
568
|
/**
|
|
619
|
-
*
|
|
569
|
+
* Drop French street particle.
|
|
620
570
|
*/
|
|
621
571
|
export const particleStrip: Augmentation = (row) => {
|
|
572
|
+
// country-branch: the particle list is French.
|
|
573
|
+
// A per-language particle table in the codex would replace this.
|
|
622
574
|
if (row.country !== "FR") return null
|
|
623
575
|
const particle = row.components.street_prefix_particle
|
|
624
576
|
|
|
625
577
|
if (!particle) return null
|
|
626
578
|
const newComponents: ComponentDict = { ...row.components }
|
|
627
579
|
delete newComponents.street_prefix_particle
|
|
628
|
-
//
|
|
580
|
+
// Remove particle and normalize spaces.
|
|
629
581
|
const re = new RegExp(`\\s+${escapeRegExp(particle)}\\s+`, "g")
|
|
630
582
|
|
|
631
583
|
if (!re.test(row.raw)) return null
|
|
@@ -634,12 +586,10 @@ export const particleStrip: Augmentation = (row) => {
|
|
|
634
586
|
return withAugmentation(row, "particle-strip", newRaw, newComponents)
|
|
635
587
|
}
|
|
636
588
|
|
|
637
|
-
//
|
|
638
|
-
// Registry + default policies
|
|
639
|
-
// ===========================================================================
|
|
589
|
+
// Stable augmentation registry.
|
|
640
590
|
|
|
641
591
|
/**
|
|
642
|
-
* Stable id
|
|
592
|
+
* Stable id -> augmentation function.
|
|
643
593
|
*/
|
|
644
594
|
export const AUGMENTATIONS: Record<string, Augmentation> = {
|
|
645
595
|
"case-upper": caseUpper,
|
|
@@ -661,17 +611,14 @@ export const AUGMENTATIONS: Record<string, Augmentation> = {
|
|
|
661
611
|
}
|
|
662
612
|
|
|
663
613
|
/**
|
|
664
|
-
* Default
|
|
614
|
+
* Default augmentations by country.
|
|
665
615
|
*/
|
|
666
616
|
export function defaultAugmentationsForCountry(country: string): readonly Augmentation[] {
|
|
667
|
-
// `typoInject`
|
|
668
|
-
// registered in {@link AUGMENTATIONS} so callers can opt in (add it here or compose it directly),
|
|
669
|
-
// but it changes the synthesized corpus distribution and its effect on the trained model is not
|
|
670
|
-
// yet measured. Per the project's default-OFF discipline, promotion into the default build is an
|
|
671
|
-
// operator call once an A/B vs the current corpus exists — keeping the default byte-stable.
|
|
617
|
+
// `typoInject` is opt-in only.
|
|
672
618
|
const universal = [caseUpper, caseLower, dropCommas, doubleSpace]
|
|
673
619
|
|
|
674
620
|
switch (country) {
|
|
621
|
+
// country-branch: the US and FR augmentation lists exist because the two tier-1 locales have vocabulary tables. See `stateExpand`.
|
|
675
622
|
case "US":
|
|
676
623
|
return [
|
|
677
624
|
...universal,
|
|
@@ -685,6 +632,7 @@ export function defaultAugmentationsForCountry(country: string): readonly Augmen
|
|
|
685
632
|
unitDesignatorExpand,
|
|
686
633
|
zipPlus4DashDrop,
|
|
687
634
|
]
|
|
635
|
+
// country-branch: see the US case above.
|
|
688
636
|
case "FR":
|
|
689
637
|
return [...universal, accentStrip, particleStrip]
|
|
690
638
|
default:
|
|
@@ -693,8 +641,7 @@ export function defaultAugmentationsForCountry(country: string): readonly Augmen
|
|
|
693
641
|
}
|
|
694
642
|
|
|
695
643
|
/**
|
|
696
|
-
*
|
|
697
|
-
* compose them off this generator (e.g. nesting accent-strip ∘ state-abbreviate).
|
|
644
|
+
* Yield all non-null augmentation outputs.
|
|
698
645
|
*/
|
|
699
646
|
export function* synthesizeRow(
|
|
700
647
|
row: CanonicalRow,
|
|
@@ -710,18 +657,7 @@ export function* synthesizeRow(
|
|
|
710
657
|
}
|
|
711
658
|
|
|
712
659
|
/**
|
|
713
|
-
*
|
|
714
|
-
*/
|
|
715
|
-
export function pick<T>(arr: ReadonlyArray<T>, random: () => number): T {
|
|
716
|
-
return arr[Math.floor(random() * arr.length)]!
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
/**
|
|
720
|
-
* One element of `items`, drawn with probability proportional to `weightOf(item)`.
|
|
721
|
-
*
|
|
722
|
-
* One `random()` draw per call. `inclusive` (the default) keeps an item whose cumulative weight lands exactly on the
|
|
723
|
-
* draw (`r <= 0` after subtraction); pass `inclusive: false` for the strict `r < 0` boundary — the two callers this
|
|
724
|
-
* consolidates disagreed on that float-exact edge, and each keeps its own reading so its draw stream is unchanged.
|
|
660
|
+
* Weighted random pick from items.
|
|
725
661
|
*/
|
|
726
662
|
export function weightedPick<T>(
|
|
727
663
|
items: readonly T[],
|
|
@@ -743,8 +679,7 @@ export function weightedPick<T>(
|
|
|
743
679
|
}
|
|
744
680
|
|
|
745
681
|
/**
|
|
746
|
-
* One band
|
|
747
|
-
* floor(random() * span)`.
|
|
682
|
+
* One band in a tiered number distribution.
|
|
748
683
|
*/
|
|
749
684
|
export interface TieredNumberBand {
|
|
750
685
|
cutoff?: number
|
|
@@ -753,10 +688,7 @@ export interface TieredNumberBand {
|
|
|
753
688
|
}
|
|
754
689
|
|
|
755
690
|
/**
|
|
756
|
-
*
|
|
757
|
-
*
|
|
758
|
-
* Exactly two `random()` draws per call, in the order every caller established: one tier draw, then one value draw
|
|
759
|
-
* inside the chosen band.
|
|
691
|
+
* Draw a number from tiered bands.
|
|
760
692
|
*/
|
|
761
693
|
export function tieredNumber(random: () => number, bands: readonly TieredNumberBand[]): string {
|
|
762
694
|
const r = random()
|
|
@@ -774,11 +706,7 @@ export function tieredNumber(random: () => number, bands: readonly TieredNumberB
|
|
|
774
706
|
}
|
|
775
707
|
|
|
776
708
|
/**
|
|
777
|
-
*
|
|
778
|
-
* case- and whitespace-tolerant. Unknown countries render as `en-US`.
|
|
779
|
-
*
|
|
780
|
-
* The PO-box synthesizer keeps its own template-scoped `countryToLocale` on top of this one: it maps any locale WITHOUT
|
|
781
|
-
* a PO-box template back to `en-US` (so `DE` still renders the en-US box vocabulary there).
|
|
709
|
+
* Map country names/codes to default locale.
|
|
782
710
|
*/
|
|
783
711
|
export function countryToLocale(country: string): string {
|
|
784
712
|
const c = country.trim().toUpperCase()
|
|
@@ -806,96 +734,37 @@ export function countryToLocale(country: string): string {
|
|
|
806
734
|
return "en-US"
|
|
807
735
|
}
|
|
808
736
|
|
|
809
|
-
//
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
// The single-row augmentations above transform one `CanonicalRow` into another with `raw` and
|
|
814
|
-
// `components` moved in lockstep, leaving alignment to derive labels downstream. Composition is
|
|
815
|
-
// fundamentally different: it takes a **venue string** and an **address row** from a different
|
|
816
|
-
// source and renders them together as a single `raw`, producing adversarial training examples
|
|
817
|
-
// where embedded place-shaped tokens collide with real address components.
|
|
818
|
-
//
|
|
819
|
-
// Naive post-hoc alignment of the composed string would mis-label the embedded tokens: a venue
|
|
820
|
-
// like `"Buffalo Health Clinic"` shares the token `"Buffalo"` with an address locality
|
|
821
|
-
// `"Buffalo, NY"`, and alignment's leftmost-substring search would claim the venue's `"Buffalo"`
|
|
822
|
-
// as the locality (or vice versa, depending on order). Composition therefore **emits labels
|
|
823
|
-
// directly** — venue tokens are unconditionally labeled `B-venue` / `I-venue`, and the address
|
|
824
|
-
// half re-uses the labels produced by aligning the un-composed address row in isolation. No
|
|
825
|
-
// re-search across the composed boundary.
|
|
826
|
-
//
|
|
827
|
-
// Why a separate primitive (not an `Augmentation`):
|
|
828
|
-
//
|
|
829
|
-
// - Augmentations are unary `(CanonicalRow) -> CanonicalRow | null` and run through
|
|
830
|
-
// `synthesizeRow`. Composition is binary `(string, CanonicalRow) -> LabeledRow` and emits
|
|
831
|
-
// `LabeledRow` directly (it cannot defer labels to alignment without the embedded-token bug).
|
|
832
|
-
// - Augmentations preserve provenance to a single source; compositions cite the address source
|
|
833
|
-
// in `synth.base_source_id` and carry the venue surface form on the `venue` component.
|
|
834
|
-
// - Throttling (the issue calls for ~5-15% of training set) is a build-time policy, not an
|
|
835
|
-
// adapter-level concern — the build pipeline applies it; the primitive stays pure.
|
|
836
|
-
//
|
|
837
|
-
// See `DECISIONS.md` for the rationale on why composition lives alongside augmentation but is
|
|
838
|
-
// not part of the `AUGMENTATIONS` registry.
|
|
839
|
-
|
|
840
|
-
/**
|
|
841
|
-
* Options accepted by `composeAdversarialRow`.
|
|
737
|
+
// Compositional synthesis combines a venue string and an address row.
|
|
738
|
+
|
|
739
|
+
/**
|
|
740
|
+
* Options for `composeAdversarialRow`.
|
|
842
741
|
*/
|
|
843
742
|
export interface ComposeAdversarialOptions {
|
|
844
743
|
/**
|
|
845
|
-
*
|
|
846
|
-
* should be one of a small set of canonical pattern names so downstream filtering / stratification can target
|
|
847
|
-
* individual patterns.
|
|
848
|
-
*
|
|
849
|
-
* Recommended values (Phase 1.6 §2.1):
|
|
850
|
-
*
|
|
851
|
-
* - `"place-name-venue"` — venue token shared with locality (`Buffalo Health Clinic, Buffalo NY`).
|
|
852
|
-
* - `"place-shaped-venue"` — venue contains a place-shaped substring (`New York, New York Steakhouse, Las Vegas NV`).
|
|
853
|
-
* - `"particle-honorific"` — apostrophe + St./Saint ambiguity (`P'tit St. Denis Street Café`).
|
|
744
|
+
* Pattern name written to the row's `recipe.recipe` as `compose:<pattern>`.
|
|
854
745
|
*/
|
|
855
746
|
pattern: string
|
|
856
747
|
|
|
857
748
|
/**
|
|
858
|
-
* Separator
|
|
859
|
-
*
|
|
749
|
+
* Separator between venue and address raw.
|
|
750
|
+
*
|
|
751
|
+
* @defaultValue `", "`
|
|
860
752
|
*/
|
|
861
753
|
separator?: string
|
|
862
754
|
|
|
863
755
|
/**
|
|
864
|
-
* Tokenizer
|
|
865
|
-
* when re-aligned — pass a consistent one if customizing.
|
|
756
|
+
* Tokenizer for venue and address alignment.
|
|
866
757
|
*/
|
|
867
758
|
tokenizer?: Tokenizer
|
|
868
759
|
}
|
|
869
760
|
|
|
870
761
|
/**
|
|
871
|
-
*
|
|
762
|
+
* Successful composition or quarantine result.
|
|
872
763
|
*/
|
|
873
764
|
export type ComposeResult = { kind: "labeled"; row: LabeledRow } | { kind: "quarantined"; row: QuarantinedRow }
|
|
874
765
|
|
|
875
766
|
/**
|
|
876
|
-
* Compose
|
|
877
|
-
*
|
|
878
|
-
* The emitted row's `raw` is `${venue}${separator}${address.raw}`. Tokens are produced by tokenizing the two halves
|
|
879
|
-
* independently and concatenating; labels are venue tokens → `B-venue` / `I-venue` followed by the address's labels
|
|
880
|
-
* (obtained by aligning the input address in isolation). This deterministic boundary is the entire point of the
|
|
881
|
-
* primitive: the embedded place-shaped tokens in the venue stay labeled as `venue`, never as the address's locality /
|
|
882
|
-
* region / etc., even when they share surface forms.
|
|
883
|
-
*
|
|
884
|
-
* The char-offset span triple (#519) is re-targeted to the composed surface by the same deterministic boundary: one
|
|
885
|
-
* `venue` span over `[0, venue.length)` (no re-search), then the address's own spans shifted by `venue.length +
|
|
886
|
-
* separator.length` — plain offset arithmetic, no token indirection. The separator chars sit outside every span
|
|
887
|
-
* (deliberately unlabeled — now expressible). The composed triple is passed through `assertSpanInvariants` so a
|
|
888
|
-
* composition bug can't ride into a corpus.
|
|
889
|
-
*
|
|
890
|
-
* The address's components are forwarded as-is (alignment ran on them and they survived); `venue` is added on top with
|
|
891
|
-
* the trimmed venue string as its surface form.
|
|
892
|
-
*
|
|
893
|
-
* Returns `{ kind: "quarantined" }` when:
|
|
894
|
-
*
|
|
895
|
-
* - The venue is empty or whitespace-only.
|
|
896
|
-
* - The venue is not NFC-normalized (char offsets over a non-NFC raw are ambiguous — the same discipline `alignRow`
|
|
897
|
-
* enforces on adapter rows, surfaced as quarantine here because the venue is caller-supplied data).
|
|
898
|
-
* - The address row fails alignment in isolation (the underlying failure reason is propagated).
|
|
767
|
+
* Compose venue + address into a labeled adversarial row.
|
|
899
768
|
*/
|
|
900
769
|
export function composeAdversarialRow(
|
|
901
770
|
venue: string,
|
|
@@ -911,8 +780,7 @@ export function composeAdversarialRow(
|
|
|
911
780
|
return { kind: "quarantined", row: { row: address, reason: "venue-empty" } }
|
|
912
781
|
}
|
|
913
782
|
|
|
914
|
-
//
|
|
915
|
-
// half is enforced by alignRow; the venue is caller-supplied and checked here.
|
|
783
|
+
// Venue must be NFC for stable char offsets.
|
|
916
784
|
if (venueTrimmed.normalize("NFC") !== venueTrimmed) {
|
|
917
785
|
return { kind: "quarantined", row: { row: address, reason: "venue-not-nfc" } }
|
|
918
786
|
}
|
|
@@ -920,9 +788,7 @@ export function composeAdversarialRow(
|
|
|
920
788
|
const addressAligned = alignRow(address, { tokenizer })
|
|
921
789
|
|
|
922
790
|
if (addressAligned.kind !== "labeled") {
|
|
923
|
-
//
|
|
924
|
-
// debugging. The original CanonicalRow stays on the QuarantinedRow so callers can
|
|
925
|
-
// inspect the address payload.
|
|
791
|
+
// Propagate address alignment failure with compose prefix.
|
|
926
792
|
return {
|
|
927
793
|
kind: "quarantined",
|
|
928
794
|
row: { row: address, reason: `compose-address-${addressAligned.row.reason}` },
|
|
@@ -947,16 +813,13 @@ export function composeAdversarialRow(
|
|
|
947
813
|
...address.components,
|
|
948
814
|
}
|
|
949
815
|
|
|
950
|
-
//
|
|
951
|
-
// whole trimmed venue (internal punctuation included — the token path cannot say that), and the
|
|
952
|
-
// address's spans shift right by the venue + separator length. alignRow emits the triple on
|
|
953
|
-
// every labeled row, so absence here is an alignment-contract bug, not data — fail loudly.
|
|
816
|
+
// Shift address spans by venue + separator and prepend one venue span.
|
|
954
817
|
const { span_starts: addrStarts, span_ends: addrEnds, span_tags: addrTags } = addressAligned.row
|
|
955
818
|
|
|
956
|
-
if (addrStarts
|
|
819
|
+
if (!addrStarts || !addrEnds || !addrTags) {
|
|
957
820
|
throw new Error(
|
|
958
821
|
`composeAdversarialRow: alignRow returned a labeled row without the span triple ` +
|
|
959
|
-
`(source=${address.source}, source_id=${address.source_id}) — alignment
|
|
822
|
+
`(source=${address.source}, source_id=${address.source_id}) — alignment interface violation`
|
|
960
823
|
)
|
|
961
824
|
}
|
|
962
825
|
|
|
@@ -967,7 +830,7 @@ export function composeAdversarialRow(
|
|
|
967
830
|
...addrTags.map((tag, i) => ({ tag, start: addrStarts[i]! + offset, end: addrEnds[i]! + offset })),
|
|
968
831
|
]
|
|
969
832
|
|
|
970
|
-
const baseSourceID = address.
|
|
833
|
+
const baseSourceID = address.recipe?.base_source_id ?? address.source_id
|
|
971
834
|
const method = `compose:${options.pattern}`
|
|
972
835
|
|
|
973
836
|
const composed: LabeledRow = {
|
|
@@ -979,7 +842,7 @@ export function composeAdversarialRow(
|
|
|
979
842
|
source_id: `${address.source_id}+${method}`,
|
|
980
843
|
corpus_version: address.corpus_version,
|
|
981
844
|
license: address.license,
|
|
982
|
-
|
|
845
|
+
recipe: { recipe: method, base_source_id: baseSourceID },
|
|
983
846
|
tokens,
|
|
984
847
|
labels,
|
|
985
848
|
span_starts: spans.map((s) => s.start),
|