@mailwoman/corpus 9.2.0 → 9.3.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 +22 -22
- package/data/PROVENANCE.md +7 -7
- package/lib/adapters/ban/adapter.ts +190 -0
- package/lib/adapters/ban/street-decompose.ts +66 -0
- package/lib/adapters/fcc-bdc/adapter.ts +174 -0
- package/lib/adapters/geonames/adapter.ts +199 -0
- package/lib/adapters/geonames-postal/adapter.ts +122 -0
- package/lib/adapters/gnaf/adapter.ts +149 -0
- package/lib/adapters/gnaf/assemble.ts +225 -0
- package/lib/adapters/index.ts +153 -0
- package/lib/adapters/openaddresses/adapter.ts +251 -0
- package/lib/adapters/overture/adapter.ts +162 -0
- package/lib/adapters/state-hi-schools/adapter.ts +170 -0
- package/lib/adapters/state-hi-schools/workbook.ts +35 -0
- package/lib/adapters/synth-po-box/adapter.ts +204 -0
- package/lib/adapters/tiger/adapter.ts +252 -0
- package/lib/adapters/tiger/street-decompose.ts +83 -0
- package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +167 -0
- package/lib/adapters/usgov-imls-pls/adapter.ts +143 -0
- package/lib/adapters/usgov-irs-bmf/adapter.ts +151 -0
- package/lib/adapters/usgov-nad/adapter.ts +334 -0
- package/lib/adapters/usgov-nppes/adapter.ts +151 -0
- package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +193 -0
- package/lib/adapters/utils/index.ts +307 -0
- package/lib/adapters/wof-admin-jp/adapter.ts +214 -0
- package/lib/adapters/wof-admin-json/adapter.ts +231 -0
- package/lib/adapters/wof-json-rows.ts +129 -0
- package/lib/adapters/wof-postalcode-json/adapter.ts +176 -0
- package/lib/build.ts +378 -0
- package/lib/env.ts +50 -0
- package/lib/index.ts +13 -0
- package/lib/name-prone-us-suffixes.ts +12 -0
- package/lib/recipes/anchor-absorption.ts +101 -0
- package/lib/recipes/bare-country.ts +95 -0
- package/lib/recipes/boundary-stress.ts +100 -0
- package/lib/recipes/cn-organizational-units.ts +199 -0
- package/lib/recipes/country-balanced.ts +509 -0
- package/lib/recipes/cz-pcfirst-preposition.ts +111 -0
- package/lib/recipes/fr-admin-split.ts +242 -0
- package/lib/recipes/fr-bare-street.ts +170 -0
- package/lib/recipes/fr-fragment.ts +333 -0
- package/lib/recipes/fr-lieudit.ts +301 -0
- package/lib/recipes/fr-order.ts +245 -0
- package/lib/recipes/german.ts +359 -0
- package/lib/recipes/house-venue.ts +92 -0
- package/lib/recipes/index.ts +97 -0
- package/lib/recipes/intersection.ts +618 -0
- package/lib/recipes/locale.ts +599 -0
- package/lib/recipes/nl-postcode.ts +115 -0
- package/lib/recipes/no-fragment.ts +219 -0
- package/lib/recipes/no-street-led.ts +141 -0
- package/lib/recipes/no-street.ts +90 -0
- package/lib/recipes/po-box-cedex.ts +976 -0
- package/lib/recipes/po-box.ts +123 -0
- package/lib/recipes/reviewed-postcode-tail.ts +190 -0
- package/lib/recipes/scaffold.ts +469 -0
- package/lib/recipes/si-bare-village.ts +97 -0
- package/lib/recipes/street-affix.ts +804 -0
- package/lib/recipes/street-bare.ts +100 -0
- package/lib/recipes/street.ts +81 -0
- package/lib/recipes/sub-venue-sources.ts +877 -0
- package/lib/recipes/sub-venue.ts +997 -0
- package/lib/recipes/trailing-region.ts +183 -0
- package/lib/recipes/unit.ts +304 -0
- package/lib/runner.ts +312 -0
- package/lib/synthesizers/anchor-absorption.ts +288 -0
- package/lib/synthesizers/boundary-stress.ts +532 -0
- package/lib/synthesizers/german.ts +260 -0
- package/lib/synthesizers/house-venue.ts +308 -0
- package/lib/synthesizers/intersection.ts +233 -0
- package/lib/synthesizers/no-street.ts +327 -0
- package/lib/synthesizers/po-box.ts +323 -0
- package/lib/synthesizers/street.ts +269 -0
- package/lib/synthesizers/utils.ts +993 -0
- package/lib/test-kit/corpus-recipe.ts +86 -0
- package/lib/test-kit/index.ts +100 -0
- package/lib/tools/align-slice.ts +68 -0
- package/lib/tools/audit.ts +403 -0
- package/lib/tools/corpus-stats.ts +136 -0
- package/lib/tools/fetch/ban.ts +289 -0
- package/lib/tools/fetch/download.ts +262 -0
- package/lib/tools/fetch/geonames-dump.ts +257 -0
- package/lib/tools/fetch/geonames-postal.ts +180 -0
- package/lib/tools/fetch/hrsa.ts +59 -0
- package/lib/tools/fetch/imls-pls.ts +149 -0
- package/lib/tools/fetch/index.ts +147 -0
- package/lib/tools/fetch/nad.ts +341 -0
- package/lib/tools/fetch/nppes.ts +165 -0
- package/lib/tools/fetch/openaddresses.ts +347 -0
- package/lib/tools/fetch/ourairports.ts +170 -0
- package/lib/tools/fetch/ppd.ts +121 -0
- package/lib/tools/fetch/state-hi-schools.ts +161 -0
- package/lib/tools/fetch/state-sources.ts +146 -0
- package/lib/tools/fetch/tiger-full.ts +308 -0
- package/lib/tools/fetch/wikidata-subvenue.ts +384 -0
- package/lib/tools/golden-expand.ts +574 -0
- package/lib/tools/golden-promote.ts +337 -0
- package/lib/tools/golden-relabel-street.ts +683 -0
- package/lib/tools/index.ts +28 -0
- package/lib/tools/ingest-csv.ts +378 -0
- package/lib/tools/jsonl-to-parquet.ts +207 -0
- package/lib/tools/lint-slice-vocab.ts +388 -0
- package/lib/tools/lint-slice.ts +496 -0
- package/lib/tools/overlay-manifest.ts +148 -0
- package/lib/tools/overture-subvenue.ts +209 -0
- package/lib/tools/postcode-triples.ts +363 -0
- package/lib/tools/slice-kryptonite.ts +137 -0
- package/lib/tools/slice-translit.ts +218 -0
- package/lib/tools/sub-venue/harvest.ts +234 -0
- package/lib/tools/sub-venue/head-nouns.ts +245 -0
- package/lib/tools/sub-venue/surfaces.ts +95 -0
- package/lib/tools/sub-venue/table.ts +281 -0
- package/lib/tools/sub-venue/wikidata.ts +85 -0
- package/lib/tools/sub-venue-lexicon.ts +429 -0
- package/lib/tools/sub-venue-promotions.ts +330 -0
- package/lib/types.ts +247 -0
- package/lib/utils/align.ts +330 -0
- package/lib/utils/golden.ts +189 -0
- package/lib/utils/index.ts +14 -0
- package/lib/utils/parquet.ts +582 -0
- package/lib/utils/slice-stats.ts +95 -0
- package/lib/utils/split.ts +279 -0
- package/lib/utils/tokenize.ts +120 -0
- package/lib/utils/wof-json.ts +247 -0
- package/out/adapters/ban/adapter.d.ts.map +1 -0
- package/out/adapters/ban/adapter.js +149 -0
- package/out/adapters/ban/adapter.js.map +1 -0
- package/out/adapters/ban/street-decompose.d.ts.map +1 -0
- package/out/adapters/ban/street-decompose.js +51 -0
- package/out/adapters/ban/street-decompose.js.map +1 -0
- package/out/adapters/fcc-bdc/adapter.d.ts.map +1 -0
- package/out/adapters/fcc-bdc/adapter.js +144 -0
- package/out/adapters/fcc-bdc/adapter.js.map +1 -0
- package/out/adapters/geonames/adapter.d.ts.map +1 -0
- package/out/adapters/geonames/adapter.js +176 -0
- package/out/adapters/geonames/adapter.js.map +1 -0
- package/out/adapters/geonames-postal/adapter.d.ts +54 -0
- package/out/adapters/geonames-postal/adapter.d.ts.map +1 -0
- package/out/adapters/geonames-postal/adapter.js +107 -0
- package/out/adapters/geonames-postal/adapter.js.map +1 -0
- package/out/adapters/gnaf/adapter.d.ts +49 -0
- package/out/adapters/gnaf/adapter.d.ts.map +1 -0
- package/out/adapters/gnaf/adapter.js +124 -0
- package/out/adapters/gnaf/adapter.js.map +1 -0
- package/out/adapters/gnaf/assemble.d.ts +65 -0
- package/out/adapters/gnaf/assemble.d.ts.map +1 -0
- package/out/adapters/gnaf/assemble.js +154 -0
- package/out/adapters/gnaf/assemble.js.map +1 -0
- package/out/adapters/index.d.ts +51 -0
- package/out/adapters/index.d.ts.map +1 -0
- package/out/adapters/index.js +95 -0
- package/out/adapters/index.js.map +1 -0
- package/out/adapters/openaddresses/adapter.d.ts.map +1 -0
- package/out/adapters/openaddresses/adapter.js +186 -0
- package/out/adapters/openaddresses/adapter.js.map +1 -0
- package/out/adapters/overture/adapter.d.ts +48 -0
- package/out/adapters/overture/adapter.d.ts.map +1 -0
- package/out/adapters/overture/adapter.js +125 -0
- package/out/adapters/overture/adapter.js.map +1 -0
- package/out/adapters/state-hi-schools/adapter.d.ts +46 -0
- package/out/adapters/state-hi-schools/adapter.d.ts.map +1 -0
- package/out/adapters/state-hi-schools/adapter.js +145 -0
- package/out/adapters/state-hi-schools/adapter.js.map +1 -0
- package/out/adapters/state-hi-schools/workbook.d.ts +29 -0
- package/out/adapters/state-hi-schools/workbook.d.ts.map +1 -0
- package/out/adapters/state-hi-schools/workbook.js +20 -0
- package/out/adapters/state-hi-schools/workbook.js.map +1 -0
- package/out/adapters/state-ia-contractors/adapter.d.ts.map +1 -0
- package/out/adapters/state-ia-contractors/adapter.js.map +1 -0
- package/out/adapters/state-ny-notaries/adapter.d.ts.map +1 -0
- package/out/adapters/state-ny-notaries/adapter.js.map +1 -0
- package/out/adapters/state-tx-notaries/adapter.d.ts.map +1 -0
- package/out/adapters/state-tx-notaries/adapter.js.map +1 -0
- package/out/adapters/synth-po-box/adapter.d.ts.map +1 -0
- package/out/adapters/synth-po-box/adapter.js +140 -0
- package/out/adapters/synth-po-box/adapter.js.map +1 -0
- package/out/adapters/tiger/adapter.d.ts +55 -0
- package/out/adapters/tiger/adapter.d.ts.map +1 -0
- package/out/adapters/tiger/adapter.js +201 -0
- package/out/adapters/tiger/adapter.js.map +1 -0
- package/out/adapters/tiger/street-decompose.d.ts.map +1 -0
- package/out/adapters/tiger/street-decompose.js +68 -0
- package/out/adapters/tiger/street-decompose.js.map +1 -0
- package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +56 -0
- package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-hrsa-fqhc/adapter.js +132 -0
- package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -0
- package/out/adapters/usgov-imls-pls/adapter.d.ts +36 -0
- package/out/adapters/usgov-imls-pls/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-imls-pls/adapter.js +114 -0
- package/out/adapters/usgov-imls-pls/adapter.js.map +1 -0
- package/out/adapters/usgov-irs-bmf/adapter.d.ts +37 -0
- package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-irs-bmf/adapter.js +120 -0
- package/out/adapters/usgov-irs-bmf/adapter.js.map +1 -0
- package/out/adapters/usgov-nad/adapter.d.ts +48 -0
- package/out/adapters/usgov-nad/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-nad/adapter.js +249 -0
- package/out/adapters/usgov-nad/adapter.js.map +1 -0
- package/out/adapters/usgov-nppes/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-nppes/adapter.js +118 -0
- package/out/adapters/usgov-nppes/adapter.js.map +1 -0
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -0
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +154 -0
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -0
- package/out/adapters/utils/index.d.ts +191 -0
- package/out/adapters/utils/index.d.ts.map +1 -0
- package/out/adapters/utils/index.js +206 -0
- package/out/adapters/utils/index.js.map +1 -0
- package/out/adapters/wof-admin-jp/adapter.d.ts.map +1 -0
- package/out/adapters/wof-admin-jp/adapter.js +161 -0
- package/out/adapters/wof-admin-jp/adapter.js.map +1 -0
- package/out/adapters/wof-admin-json/adapter.d.ts +79 -0
- package/out/adapters/wof-admin-json/adapter.d.ts.map +1 -0
- package/out/adapters/wof-admin-json/adapter.js +197 -0
- package/out/adapters/wof-admin-json/adapter.js.map +1 -0
- package/out/adapters/wof-json-rows.d.ts +62 -0
- package/out/adapters/wof-json-rows.d.ts.map +1 -0
- package/out/adapters/wof-json-rows.js +83 -0
- package/out/adapters/wof-json-rows.js.map +1 -0
- package/out/adapters/wof-postalcode-json/adapter.d.ts +65 -0
- package/out/adapters/wof-postalcode-json/adapter.d.ts.map +1 -0
- package/out/adapters/wof-postalcode-json/adapter.js +151 -0
- package/out/adapters/wof-postalcode-json/adapter.js.map +1 -0
- package/out/build.d.ts +132 -0
- package/out/build.d.ts.map +1 -0
- package/out/build.js +245 -0
- package/out/build.js.map +1 -0
- package/out/codex/us-fips-state.d.ts.map +1 -0
- package/out/codex/us-fips-state.js.map +1 -0
- package/out/env.d.ts +46 -0
- package/out/env.d.ts.map +1 -0
- package/out/env.js +46 -0
- package/out/env.js.map +1 -0
- package/out/index.d.ts +13 -0
- package/out/index.d.ts.map +1 -0
- package/out/index.js +13 -0
- package/out/index.js.map +1 -0
- package/out/name-prone-us-suffixes.d.ts +12 -0
- package/out/name-prone-us-suffixes.d.ts.map +1 -0
- package/out/name-prone-us-suffixes.js +12 -0
- package/out/name-prone-us-suffixes.js.map +1 -0
- package/out/recipes/anchor-absorption.d.ts +20 -0
- package/out/recipes/anchor-absorption.d.ts.map +1 -0
- package/out/recipes/anchor-absorption.js +81 -0
- package/out/recipes/anchor-absorption.js.map +1 -0
- package/out/recipes/bare-country.d.ts +25 -0
- package/out/recipes/bare-country.d.ts.map +1 -0
- package/out/recipes/bare-country.js +87 -0
- package/out/recipes/bare-country.js.map +1 -0
- package/out/recipes/boundary-stress.d.ts +20 -0
- package/out/recipes/boundary-stress.d.ts.map +1 -0
- package/out/recipes/boundary-stress.js +83 -0
- package/out/recipes/boundary-stress.js.map +1 -0
- package/out/recipes/cn-organizational-units.d.ts +36 -0
- package/out/recipes/cn-organizational-units.d.ts.map +1 -0
- package/out/recipes/cn-organizational-units.js +159 -0
- package/out/recipes/cn-organizational-units.js.map +1 -0
- package/out/recipes/country-balanced.d.ts +32 -0
- package/out/recipes/country-balanced.d.ts.map +1 -0
- package/out/recipes/country-balanced.js +393 -0
- package/out/recipes/country-balanced.js.map +1 -0
- package/out/recipes/cz-pcfirst-preposition.d.ts +22 -0
- package/out/recipes/cz-pcfirst-preposition.d.ts.map +1 -0
- package/out/recipes/cz-pcfirst-preposition.js +100 -0
- package/out/recipes/cz-pcfirst-preposition.js.map +1 -0
- package/out/recipes/fr-admin-split.d.ts +38 -0
- package/out/recipes/fr-admin-split.d.ts.map +1 -0
- package/out/recipes/fr-admin-split.js +192 -0
- package/out/recipes/fr-admin-split.js.map +1 -0
- package/out/recipes/fr-bare-street.d.ts +28 -0
- package/out/recipes/fr-bare-street.d.ts.map +1 -0
- package/out/recipes/fr-bare-street.js +143 -0
- package/out/recipes/fr-bare-street.js.map +1 -0
- package/out/recipes/fr-fragment.d.ts +77 -0
- package/out/recipes/fr-fragment.d.ts.map +1 -0
- package/out/recipes/fr-fragment.js +276 -0
- package/out/recipes/fr-fragment.js.map +1 -0
- package/out/recipes/fr-lieudit.d.ts +32 -0
- package/out/recipes/fr-lieudit.d.ts.map +1 -0
- package/out/recipes/fr-lieudit.js +227 -0
- package/out/recipes/fr-lieudit.js.map +1 -0
- package/out/recipes/fr-order.d.ts +38 -0
- package/out/recipes/fr-order.d.ts.map +1 -0
- package/out/recipes/fr-order.js +197 -0
- package/out/recipes/fr-order.js.map +1 -0
- package/out/recipes/german.d.ts +44 -0
- package/out/recipes/german.d.ts.map +1 -0
- package/out/recipes/german.js +288 -0
- package/out/recipes/german.js.map +1 -0
- package/out/recipes/house-venue.d.ts +18 -0
- package/out/recipes/house-venue.d.ts.map +1 -0
- package/out/recipes/house-venue.js +73 -0
- package/out/recipes/house-venue.js.map +1 -0
- package/out/recipes/index.d.ts +24 -0
- package/out/recipes/index.d.ts.map +1 -0
- package/out/recipes/index.js +91 -0
- package/out/recipes/index.js.map +1 -0
- package/out/recipes/intersection.d.ts +42 -0
- package/out/recipes/intersection.d.ts.map +1 -0
- package/out/recipes/intersection.js +452 -0
- package/out/recipes/intersection.js.map +1 -0
- package/out/recipes/locale.d.ts +136 -0
- package/out/recipes/locale.d.ts.map +1 -0
- package/out/recipes/locale.js +460 -0
- package/out/recipes/locale.js.map +1 -0
- package/out/recipes/nl-postcode.d.ts +26 -0
- package/out/recipes/nl-postcode.d.ts.map +1 -0
- package/out/recipes/nl-postcode.js +102 -0
- package/out/recipes/nl-postcode.js.map +1 -0
- package/out/recipes/no-fragment.d.ts +43 -0
- package/out/recipes/no-fragment.d.ts.map +1 -0
- package/out/recipes/no-fragment.js +182 -0
- package/out/recipes/no-fragment.js.map +1 -0
- package/out/recipes/no-street-led.d.ts +24 -0
- package/out/recipes/no-street-led.d.ts.map +1 -0
- package/out/recipes/no-street-led.js +113 -0
- package/out/recipes/no-street-led.js.map +1 -0
- package/out/recipes/no-street.d.ts +18 -0
- package/out/recipes/no-street.d.ts.map +1 -0
- package/out/recipes/no-street.js +71 -0
- package/out/recipes/no-street.js.map +1 -0
- package/out/recipes/po-box-cedex.d.ts +38 -0
- package/out/recipes/po-box-cedex.d.ts.map +1 -0
- package/out/recipes/po-box-cedex.js +767 -0
- package/out/recipes/po-box-cedex.js.map +1 -0
- package/out/recipes/po-box.d.ts +17 -0
- package/out/recipes/po-box.d.ts.map +1 -0
- package/out/recipes/po-box.js +100 -0
- package/out/recipes/po-box.js.map +1 -0
- package/out/recipes/reviewed-postcode-tail.d.ts +47 -0
- package/out/recipes/reviewed-postcode-tail.d.ts.map +1 -0
- package/out/recipes/reviewed-postcode-tail.js +125 -0
- package/out/recipes/reviewed-postcode-tail.js.map +1 -0
- package/out/recipes/scaffold.d.ts +324 -0
- package/out/recipes/scaffold.d.ts.map +1 -0
- package/out/recipes/scaffold.js +186 -0
- package/out/recipes/scaffold.js.map +1 -0
- package/out/recipes/si-bare-village.d.ts +32 -0
- package/out/recipes/si-bare-village.d.ts.map +1 -0
- package/out/recipes/si-bare-village.js +88 -0
- package/out/recipes/si-bare-village.js.map +1 -0
- package/out/recipes/street-affix.d.ts +89 -0
- package/out/recipes/street-affix.d.ts.map +1 -0
- package/out/recipes/street-affix.js +563 -0
- package/out/recipes/street-affix.js.map +1 -0
- package/out/recipes/street-bare.d.ts +25 -0
- package/out/recipes/street-bare.d.ts.map +1 -0
- package/out/recipes/street-bare.js +86 -0
- package/out/recipes/street-bare.js.map +1 -0
- package/out/recipes/street.d.ts +15 -0
- package/out/recipes/street.d.ts.map +1 -0
- package/out/recipes/street.js +69 -0
- package/out/recipes/street.js.map +1 -0
- package/out/recipes/sub-venue-sources.d.ts +229 -0
- package/out/recipes/sub-venue-sources.d.ts.map +1 -0
- package/out/recipes/sub-venue-sources.js +653 -0
- package/out/recipes/sub-venue-sources.js.map +1 -0
- package/out/recipes/sub-venue.d.ts +269 -0
- package/out/recipes/sub-venue.d.ts.map +1 -0
- package/out/recipes/sub-venue.js +725 -0
- package/out/recipes/sub-venue.js.map +1 -0
- package/out/recipes/trailing-region.d.ts +74 -0
- package/out/recipes/trailing-region.d.ts.map +1 -0
- package/out/recipes/trailing-region.js +157 -0
- package/out/recipes/trailing-region.js.map +1 -0
- package/out/recipes/unit.d.ts +29 -0
- package/out/recipes/unit.d.ts.map +1 -0
- package/out/recipes/unit.js +230 -0
- package/out/recipes/unit.js.map +1 -0
- package/out/runner.d.ts +130 -0
- package/out/runner.d.ts.map +1 -0
- package/out/runner.js +185 -0
- package/out/runner.js.map +1 -0
- package/out/synthesizers/anchor-absorption.d.ts +63 -0
- package/out/synthesizers/anchor-absorption.d.ts.map +1 -0
- package/out/synthesizers/anchor-absorption.js +221 -0
- package/out/synthesizers/anchor-absorption.js.map +1 -0
- package/out/synthesizers/boundary-stress.d.ts +78 -0
- package/out/synthesizers/boundary-stress.d.ts.map +1 -0
- package/out/synthesizers/boundary-stress.js +455 -0
- package/out/synthesizers/boundary-stress.js.map +1 -0
- package/out/synthesizers/german.d.ts +115 -0
- package/out/synthesizers/german.d.ts.map +1 -0
- package/out/synthesizers/german.js +149 -0
- package/out/synthesizers/german.js.map +1 -0
- package/out/synthesizers/house-venue.d.ts +56 -0
- package/out/synthesizers/house-venue.d.ts.map +1 -0
- package/out/synthesizers/house-venue.js +247 -0
- package/out/synthesizers/house-venue.js.map +1 -0
- package/out/synthesizers/intersection.d.ts +52 -0
- package/out/synthesizers/intersection.d.ts.map +1 -0
- package/out/synthesizers/intersection.js +175 -0
- package/out/synthesizers/intersection.js.map +1 -0
- package/out/synthesizers/no-street.d.ts +72 -0
- package/out/synthesizers/no-street.d.ts.map +1 -0
- package/out/synthesizers/no-street.js +262 -0
- package/out/synthesizers/no-street.js.map +1 -0
- package/out/synthesizers/po-box.d.ts +108 -0
- package/out/synthesizers/po-box.d.ts.map +1 -0
- package/out/synthesizers/po-box.js +250 -0
- package/out/synthesizers/po-box.js.map +1 -0
- package/out/synthesizers/street.d.ts +54 -0
- package/out/synthesizers/street.d.ts.map +1 -0
- package/out/synthesizers/street.js +218 -0
- package/out/synthesizers/street.js.map +1 -0
- package/out/synthesizers/utils.d.ts +241 -0
- package/out/synthesizers/utils.d.ts.map +1 -0
- package/out/synthesizers/utils.js +776 -0
- package/out/synthesizers/utils.js.map +1 -0
- package/out/test-kit/corpus-recipe.d.ts +59 -0
- package/out/test-kit/corpus-recipe.d.ts.map +1 -0
- package/out/test-kit/corpus-recipe.js +39 -0
- package/out/test-kit/corpus-recipe.js.map +1 -0
- package/out/test-kit/index.d.ts +48 -0
- package/out/test-kit/index.d.ts.map +1 -0
- package/out/test-kit/index.js +78 -0
- package/out/test-kit/index.js.map +1 -0
- package/out/tools/align-slice.d.ts +7 -0
- package/out/tools/align-slice.d.ts.map +1 -0
- package/out/tools/align-slice.js +55 -0
- package/out/tools/align-slice.js.map +1 -0
- package/out/tools/audit.d.ts +29 -0
- package/out/tools/audit.d.ts.map +1 -0
- package/out/tools/audit.js +282 -0
- package/out/tools/audit.js.map +1 -0
- package/out/tools/corpus-stats.d.ts +44 -0
- package/out/tools/corpus-stats.d.ts.map +1 -0
- package/out/tools/corpus-stats.js +102 -0
- package/out/tools/corpus-stats.js.map +1 -0
- package/out/tools/fetch/ban.d.ts +31 -0
- package/out/tools/fetch/ban.d.ts.map +1 -0
- package/out/tools/fetch/ban.js +239 -0
- package/out/tools/fetch/ban.js.map +1 -0
- package/out/tools/fetch/download.d.ts +117 -0
- package/out/tools/fetch/download.d.ts.map +1 -0
- package/out/tools/fetch/download.js +160 -0
- package/out/tools/fetch/download.js.map +1 -0
- package/out/tools/fetch/geonames-dump.d.ts +91 -0
- package/out/tools/fetch/geonames-dump.d.ts.map +1 -0
- package/out/tools/fetch/geonames-dump.js +171 -0
- package/out/tools/fetch/geonames-dump.js.map +1 -0
- package/out/tools/fetch/geonames-postal.d.ts +76 -0
- package/out/tools/fetch/geonames-postal.d.ts.map +1 -0
- package/out/tools/fetch/geonames-postal.js +126 -0
- package/out/tools/fetch/geonames-postal.js.map +1 -0
- package/out/tools/fetch/hrsa.d.ts +18 -0
- package/out/tools/fetch/hrsa.d.ts.map +1 -0
- package/out/tools/fetch/hrsa.js +46 -0
- package/out/tools/fetch/hrsa.js.map +1 -0
- package/out/tools/fetch/imls-pls.d.ts +25 -0
- package/out/tools/fetch/imls-pls.d.ts.map +1 -0
- package/out/tools/fetch/imls-pls.js +108 -0
- package/out/tools/fetch/imls-pls.js.map +1 -0
- package/out/tools/fetch/index.d.ts +144 -0
- package/out/tools/fetch/index.d.ts.map +1 -0
- package/out/tools/fetch/index.js +143 -0
- package/out/tools/fetch/index.js.map +1 -0
- package/out/tools/fetch/nad.d.ts +70 -0
- package/out/tools/fetch/nad.d.ts.map +1 -0
- package/out/tools/fetch/nad.js +234 -0
- package/out/tools/fetch/nad.js.map +1 -0
- package/out/tools/fetch/nppes.d.ts +26 -0
- package/out/tools/fetch/nppes.d.ts.map +1 -0
- package/out/tools/fetch/nppes.js +126 -0
- package/out/tools/fetch/nppes.js.map +1 -0
- package/out/tools/fetch/openaddresses.d.ts +9 -0
- package/out/tools/fetch/openaddresses.d.ts.map +1 -0
- package/out/tools/fetch/openaddresses.js +279 -0
- package/out/tools/fetch/openaddresses.js.map +1 -0
- package/out/tools/fetch/ourairports.d.ts +45 -0
- package/out/tools/fetch/ourairports.d.ts.map +1 -0
- package/out/tools/fetch/ourairports.js +128 -0
- package/out/tools/fetch/ourairports.js.map +1 -0
- package/out/tools/fetch/ppd.d.ts.map +1 -0
- package/out/tools/fetch/ppd.js +85 -0
- package/out/tools/fetch/ppd.js.map +1 -0
- package/out/tools/fetch/state-hi-schools.d.ts +26 -0
- package/out/tools/fetch/state-hi-schools.d.ts.map +1 -0
- package/out/tools/fetch/state-hi-schools.js +112 -0
- package/out/tools/fetch/state-hi-schools.js.map +1 -0
- package/out/tools/fetch/state-sources.d.ts +26 -0
- package/out/tools/fetch/state-sources.d.ts.map +1 -0
- package/out/tools/fetch/state-sources.js +111 -0
- package/out/tools/fetch/state-sources.js.map +1 -0
- package/out/tools/fetch/tiger-full.d.ts +22 -0
- package/out/tools/fetch/tiger-full.d.ts.map +1 -0
- package/out/tools/fetch/tiger-full.js +217 -0
- package/out/tools/fetch/tiger-full.js.map +1 -0
- package/out/tools/fetch/wikidata-subvenue.d.ts +171 -0
- package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -0
- package/out/tools/fetch/wikidata-subvenue.js +274 -0
- package/out/tools/fetch/wikidata-subvenue.js.map +1 -0
- package/out/tools/gb-title-case.d.ts.map +1 -0
- package/out/tools/gb-title-case.js.map +1 -0
- package/out/tools/golden-expand.d.ts +90 -0
- package/out/tools/golden-expand.d.ts.map +1 -0
- package/out/tools/golden-expand.js +406 -0
- package/out/tools/golden-expand.js.map +1 -0
- package/out/tools/golden-promote.d.ts.map +1 -0
- package/out/tools/golden-promote.js +240 -0
- package/out/tools/golden-promote.js.map +1 -0
- package/out/tools/golden-relabel-street.d.ts +196 -0
- package/out/tools/golden-relabel-street.d.ts.map +1 -0
- package/out/tools/golden-relabel-street.js +440 -0
- package/out/tools/golden-relabel-street.js.map +1 -0
- package/out/tools/index.d.ts +28 -0
- package/out/tools/index.d.ts.map +1 -0
- package/out/tools/index.js +28 -0
- package/out/tools/index.js.map +1 -0
- package/out/tools/ingest-csv.d.ts.map +1 -0
- package/out/tools/ingest-csv.js +265 -0
- package/out/tools/ingest-csv.js.map +1 -0
- package/out/tools/jsonl-to-parquet.d.ts +61 -0
- package/out/tools/jsonl-to-parquet.d.ts.map +1 -0
- package/out/tools/jsonl-to-parquet.js +150 -0
- package/out/tools/jsonl-to-parquet.js.map +1 -0
- package/out/tools/lint-slice-vocab.d.ts +90 -0
- package/out/tools/lint-slice-vocab.d.ts.map +1 -0
- package/out/tools/lint-slice-vocab.js +267 -0
- package/out/tools/lint-slice-vocab.js.map +1 -0
- package/out/tools/lint-slice.d.ts +93 -0
- package/out/tools/lint-slice.d.ts.map +1 -0
- package/out/tools/lint-slice.js +322 -0
- package/out/tools/lint-slice.js.map +1 -0
- package/out/tools/overlay-manifest.d.ts +39 -0
- package/out/tools/overlay-manifest.d.ts.map +1 -0
- package/out/tools/overlay-manifest.js +90 -0
- package/out/tools/overlay-manifest.js.map +1 -0
- package/out/tools/overture-subvenue.d.ts +112 -0
- package/out/tools/overture-subvenue.d.ts.map +1 -0
- package/out/tools/overture-subvenue.js +139 -0
- package/out/tools/overture-subvenue.js.map +1 -0
- package/out/tools/postcode-triples.d.ts +174 -0
- package/out/tools/postcode-triples.d.ts.map +1 -0
- package/out/tools/postcode-triples.js +292 -0
- package/out/tools/postcode-triples.js.map +1 -0
- package/out/tools/slice-kryptonite.d.ts +32 -0
- package/out/tools/slice-kryptonite.d.ts.map +1 -0
- package/out/tools/slice-kryptonite.js +99 -0
- package/out/tools/slice-kryptonite.js.map +1 -0
- package/out/tools/slice-translit.d.ts +51 -0
- package/out/tools/slice-translit.d.ts.map +1 -0
- package/out/tools/slice-translit.js +166 -0
- package/out/tools/slice-translit.js.map +1 -0
- package/out/tools/sub-venue/harvest.d.ts +100 -0
- package/out/tools/sub-venue/harvest.d.ts.map +1 -0
- package/out/tools/sub-venue/harvest.js +168 -0
- package/out/tools/sub-venue/harvest.js.map +1 -0
- package/out/tools/sub-venue/head-nouns.d.ts +50 -0
- package/out/tools/sub-venue/head-nouns.d.ts.map +1 -0
- package/out/tools/sub-venue/head-nouns.js +213 -0
- package/out/tools/sub-venue/head-nouns.js.map +1 -0
- package/out/tools/sub-venue/surfaces.d.ts +45 -0
- package/out/tools/sub-venue/surfaces.d.ts.map +1 -0
- package/out/tools/sub-venue/surfaces.js +77 -0
- package/out/tools/sub-venue/surfaces.js.map +1 -0
- package/out/tools/sub-venue/table.d.ts +229 -0
- package/out/tools/sub-venue/table.d.ts.map +1 -0
- package/out/tools/sub-venue/table.js +108 -0
- package/out/tools/sub-venue/table.js.map +1 -0
- package/out/tools/sub-venue/wikidata.d.ts +26 -0
- package/out/tools/sub-venue/wikidata.d.ts.map +1 -0
- package/out/tools/sub-venue/wikidata.js +62 -0
- package/out/tools/sub-venue/wikidata.js.map +1 -0
- package/out/tools/sub-venue-lexicon.d.ts +156 -0
- package/out/tools/sub-venue-lexicon.d.ts.map +1 -0
- package/out/tools/sub-venue-lexicon.js +283 -0
- package/out/tools/sub-venue-lexicon.js.map +1 -0
- package/out/tools/sub-venue-promotions.d.ts +94 -0
- package/out/tools/sub-venue-promotions.d.ts.map +1 -0
- package/out/tools/sub-venue-promotions.js +266 -0
- package/out/tools/sub-venue-promotions.js.map +1 -0
- package/out/types.d.ts +221 -0
- package/out/types.d.ts.map +1 -0
- package/out/types.js.map +1 -0
- package/out/utils/align.d.ts +93 -0
- package/out/utils/align.d.ts.map +1 -0
- package/out/utils/align.js +234 -0
- package/out/utils/align.js.map +1 -0
- package/out/utils/golden.d.ts +85 -0
- package/out/utils/golden.d.ts.map +1 -0
- package/out/utils/golden.js +127 -0
- package/out/utils/golden.js.map +1 -0
- package/out/utils/index.d.ts +14 -0
- package/out/utils/index.d.ts.map +1 -0
- package/out/utils/index.js +14 -0
- package/out/utils/index.js.map +1 -0
- package/out/utils/license.d.ts.map +1 -0
- package/out/utils/license.js.map +1 -0
- package/out/utils/parquet.d.ts +178 -0
- package/out/utils/parquet.d.ts.map +1 -0
- package/out/utils/parquet.js +371 -0
- package/out/utils/parquet.js.map +1 -0
- package/out/utils/slice-stats.d.ts +52 -0
- package/out/utils/slice-stats.d.ts.map +1 -0
- package/out/utils/slice-stats.js +58 -0
- package/out/utils/slice-stats.js.map +1 -0
- package/out/utils/split.d.ts +128 -0
- package/out/utils/split.d.ts.map +1 -0
- package/out/utils/split.js +204 -0
- package/out/utils/split.js.map +1 -0
- package/out/utils/tokenize.d.ts +64 -0
- package/out/utils/tokenize.d.ts.map +1 -0
- package/out/utils/tokenize.js +82 -0
- package/out/utils/tokenize.js.map +1 -0
- package/out/utils/wof-json.d.ts +113 -0
- package/out/utils/wof-json.d.ts.map +1 -0
- package/out/utils/wof-json.js +173 -0
- package/out/utils/wof-json.js.map +1 -0
- package/package.json +259 -194
- package/out/src/adapters/ban/adapter.d.ts.map +0 -1
- package/out/src/adapters/ban/adapter.js +0 -149
- package/out/src/adapters/ban/adapter.js.map +0 -1
- package/out/src/adapters/ban/street-decompose.d.ts.map +0 -1
- package/out/src/adapters/ban/street-decompose.js +0 -75
- package/out/src/adapters/ban/street-decompose.js.map +0 -1
- package/out/src/adapters/fcc-bdc/adapter.d.ts.map +0 -1
- package/out/src/adapters/fcc-bdc/adapter.js +0 -144
- package/out/src/adapters/fcc-bdc/adapter.js.map +0 -1
- package/out/src/adapters/geonames/adapter.d.ts.map +0 -1
- package/out/src/adapters/geonames/adapter.js +0 -176
- package/out/src/adapters/geonames/adapter.js.map +0 -1
- package/out/src/adapters/geonames-postal/adapter.d.ts +0 -41
- package/out/src/adapters/geonames-postal/adapter.d.ts.map +0 -1
- package/out/src/adapters/geonames-postal/adapter.js +0 -104
- package/out/src/adapters/geonames-postal/adapter.js.map +0 -1
- package/out/src/adapters/gnaf/adapter.d.ts +0 -49
- package/out/src/adapters/gnaf/adapter.d.ts.map +0 -1
- package/out/src/adapters/gnaf/adapter.js +0 -124
- package/out/src/adapters/gnaf/adapter.js.map +0 -1
- package/out/src/adapters/gnaf/assemble.d.ts +0 -65
- package/out/src/adapters/gnaf/assemble.d.ts.map +0 -1
- package/out/src/adapters/gnaf/assemble.js +0 -154
- package/out/src/adapters/gnaf/assemble.js.map +0 -1
- package/out/src/adapters/index.d.ts +0 -51
- package/out/src/adapters/index.d.ts.map +0 -1
- package/out/src/adapters/index.js +0 -95
- package/out/src/adapters/index.js.map +0 -1
- package/out/src/adapters/openaddresses/adapter.d.ts.map +0 -1
- package/out/src/adapters/openaddresses/adapter.js +0 -186
- package/out/src/adapters/openaddresses/adapter.js.map +0 -1
- package/out/src/adapters/overture/adapter.d.ts +0 -48
- package/out/src/adapters/overture/adapter.d.ts.map +0 -1
- package/out/src/adapters/overture/adapter.js +0 -125
- package/out/src/adapters/overture/adapter.js.map +0 -1
- package/out/src/adapters/state-hi-schools/adapter.d.ts +0 -47
- package/out/src/adapters/state-hi-schools/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-hi-schools/adapter.js +0 -133
- package/out/src/adapters/state-hi-schools/adapter.js.map +0 -1
- package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-ia-contractors/adapter.js.map +0 -1
- package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-ny-notaries/adapter.js.map +0 -1
- package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-tx-notaries/adapter.js.map +0 -1
- package/out/src/adapters/synth-po-box/adapter.d.ts.map +0 -1
- package/out/src/adapters/synth-po-box/adapter.js +0 -140
- package/out/src/adapters/synth-po-box/adapter.js.map +0 -1
- package/out/src/adapters/tiger/adapter.d.ts +0 -55
- package/out/src/adapters/tiger/adapter.d.ts.map +0 -1
- package/out/src/adapters/tiger/adapter.js +0 -201
- package/out/src/adapters/tiger/adapter.js.map +0 -1
- package/out/src/adapters/tiger/street-decompose.d.ts.map +0 -1
- package/out/src/adapters/tiger/street-decompose.js +0 -90
- package/out/src/adapters/tiger/street-decompose.js.map +0 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -47
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +0 -139
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
- package/out/src/adapters/usgov-imls-pls/adapter.d.ts +0 -36
- package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-imls-pls/adapter.js +0 -114
- package/out/src/adapters/usgov-imls-pls/adapter.js.map +0 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.d.ts +0 -37
- package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.js +0 -124
- package/out/src/adapters/usgov-irs-bmf/adapter.js.map +0 -1
- package/out/src/adapters/usgov-nad/adapter.d.ts +0 -48
- package/out/src/adapters/usgov-nad/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-nad/adapter.js +0 -252
- package/out/src/adapters/usgov-nad/adapter.js.map +0 -1
- package/out/src/adapters/usgov-nppes/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-nppes/adapter.js +0 -116
- package/out/src/adapters/usgov-nppes/adapter.js.map +0 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -156
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
- package/out/src/adapters/utils/index.d.ts +0 -150
- package/out/src/adapters/utils/index.d.ts.map +0 -1
- package/out/src/adapters/utils/index.js +0 -159
- package/out/src/adapters/utils/index.js.map +0 -1
- package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
- package/out/src/adapters/wof-admin-jp/adapter.js +0 -164
- package/out/src/adapters/wof-admin-jp/adapter.js.map +0 -1
- package/out/src/adapters/wof-admin-json/adapter.d.ts +0 -82
- package/out/src/adapters/wof-admin-json/adapter.d.ts.map +0 -1
- package/out/src/adapters/wof-admin-json/adapter.js +0 -224
- package/out/src/adapters/wof-admin-json/adapter.js.map +0 -1
- package/out/src/adapters/wof-json-rows.d.ts +0 -32
- package/out/src/adapters/wof-json-rows.d.ts.map +0 -1
- package/out/src/adapters/wof-json-rows.js +0 -45
- package/out/src/adapters/wof-json-rows.js.map +0 -1
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts +0 -65
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
- package/out/src/adapters/wof-postalcode-json/adapter.js +0 -160
- package/out/src/adapters/wof-postalcode-json/adapter.js.map +0 -1
- package/out/src/build.d.ts +0 -132
- package/out/src/build.d.ts.map +0 -1
- package/out/src/build.js +0 -251
- package/out/src/build.js.map +0 -1
- package/out/src/codex/us-fips-state.d.ts.map +0 -1
- package/out/src/codex/us-fips-state.js.map +0 -1
- package/out/src/index.d.ts +0 -14
- package/out/src/index.d.ts.map +0 -1
- package/out/src/index.js +0 -14
- package/out/src/index.js.map +0 -1
- package/out/src/name-prone-us-suffixes.d.ts +0 -12
- package/out/src/name-prone-us-suffixes.d.ts.map +0 -1
- package/out/src/name-prone-us-suffixes.js +0 -12
- package/out/src/name-prone-us-suffixes.js.map +0 -1
- package/out/src/parquet-wrapper/index.d.ts +0 -9
- package/out/src/parquet-wrapper/index.d.ts.map +0 -1
- package/out/src/parquet-wrapper/index.js +0 -9
- package/out/src/parquet-wrapper/index.js.map +0 -1
- package/out/src/parquet-wrapper/reader.d.ts +0 -34
- package/out/src/parquet-wrapper/reader.d.ts.map +0 -1
- package/out/src/parquet-wrapper/reader.js +0 -69
- package/out/src/parquet-wrapper/reader.js.map +0 -1
- package/out/src/parquet-wrapper/schema.d.ts +0 -49
- package/out/src/parquet-wrapper/schema.d.ts.map +0 -1
- package/out/src/parquet-wrapper/schema.js +0 -55
- package/out/src/parquet-wrapper/schema.js.map +0 -1
- package/out/src/parquet-wrapper/writer.d.ts +0 -46
- package/out/src/parquet-wrapper/writer.d.ts.map +0 -1
- package/out/src/parquet-wrapper/writer.js +0 -76
- package/out/src/parquet-wrapper/writer.js.map +0 -1
- package/out/src/runner.d.ts +0 -126
- package/out/src/runner.d.ts.map +0 -1
- package/out/src/runner.js +0 -189
- package/out/src/runner.js.map +0 -1
- package/out/src/shard-recipes/anchor-absorption.d.ts +0 -20
- package/out/src/shard-recipes/anchor-absorption.d.ts.map +0 -1
- package/out/src/shard-recipes/anchor-absorption.js +0 -82
- package/out/src/shard-recipes/anchor-absorption.js.map +0 -1
- package/out/src/shard-recipes/bare-country.d.ts +0 -25
- package/out/src/shard-recipes/bare-country.d.ts.map +0 -1
- package/out/src/shard-recipes/bare-country.js +0 -87
- package/out/src/shard-recipes/bare-country.js.map +0 -1
- package/out/src/shard-recipes/boundary-stress.d.ts +0 -20
- package/out/src/shard-recipes/boundary-stress.d.ts.map +0 -1
- package/out/src/shard-recipes/boundary-stress.js +0 -83
- package/out/src/shard-recipes/boundary-stress.js.map +0 -1
- package/out/src/shard-recipes/country-balanced.d.ts +0 -32
- package/out/src/shard-recipes/country-balanced.d.ts.map +0 -1
- package/out/src/shard-recipes/country-balanced.js +0 -406
- package/out/src/shard-recipes/country-balanced.js.map +0 -1
- package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts +0 -22
- package/out/src/shard-recipes/cz-pcfirst-preposition.d.ts.map +0 -1
- package/out/src/shard-recipes/cz-pcfirst-preposition.js +0 -100
- package/out/src/shard-recipes/cz-pcfirst-preposition.js.map +0 -1
- package/out/src/shard-recipes/fr-admin-split.d.ts +0 -38
- package/out/src/shard-recipes/fr-admin-split.d.ts.map +0 -1
- package/out/src/shard-recipes/fr-admin-split.js +0 -188
- package/out/src/shard-recipes/fr-admin-split.js.map +0 -1
- package/out/src/shard-recipes/fr-bare-street.d.ts +0 -28
- package/out/src/shard-recipes/fr-bare-street.d.ts.map +0 -1
- package/out/src/shard-recipes/fr-bare-street.js +0 -143
- package/out/src/shard-recipes/fr-bare-street.js.map +0 -1
- package/out/src/shard-recipes/fr-fragment.d.ts +0 -77
- package/out/src/shard-recipes/fr-fragment.d.ts.map +0 -1
- package/out/src/shard-recipes/fr-fragment.js +0 -276
- package/out/src/shard-recipes/fr-fragment.js.map +0 -1
- package/out/src/shard-recipes/fr-lieudit.d.ts +0 -32
- package/out/src/shard-recipes/fr-lieudit.d.ts.map +0 -1
- package/out/src/shard-recipes/fr-lieudit.js +0 -226
- package/out/src/shard-recipes/fr-lieudit.js.map +0 -1
- package/out/src/shard-recipes/fr-order.d.ts +0 -38
- package/out/src/shard-recipes/fr-order.d.ts.map +0 -1
- package/out/src/shard-recipes/fr-order.js +0 -208
- package/out/src/shard-recipes/fr-order.js.map +0 -1
- package/out/src/shard-recipes/german.d.ts +0 -23
- package/out/src/shard-recipes/german.d.ts.map +0 -1
- package/out/src/shard-recipes/german.js +0 -132
- package/out/src/shard-recipes/german.js.map +0 -1
- package/out/src/shard-recipes/house-venue.d.ts +0 -18
- package/out/src/shard-recipes/house-venue.d.ts.map +0 -1
- package/out/src/shard-recipes/house-venue.js +0 -74
- package/out/src/shard-recipes/house-venue.js.map +0 -1
- package/out/src/shard-recipes/index.d.ts +0 -24
- package/out/src/shard-recipes/index.d.ts.map +0 -1
- package/out/src/shard-recipes/index.js +0 -89
- package/out/src/shard-recipes/index.js.map +0 -1
- package/out/src/shard-recipes/intersection.d.ts +0 -42
- package/out/src/shard-recipes/intersection.d.ts.map +0 -1
- package/out/src/shard-recipes/intersection.js +0 -460
- package/out/src/shard-recipes/intersection.js.map +0 -1
- package/out/src/shard-recipes/locale.d.ts +0 -135
- package/out/src/shard-recipes/locale.d.ts.map +0 -1
- package/out/src/shard-recipes/locale.js +0 -459
- package/out/src/shard-recipes/locale.js.map +0 -1
- package/out/src/shard-recipes/nl-postcode.d.ts +0 -26
- package/out/src/shard-recipes/nl-postcode.d.ts.map +0 -1
- package/out/src/shard-recipes/nl-postcode.js +0 -102
- package/out/src/shard-recipes/nl-postcode.js.map +0 -1
- package/out/src/shard-recipes/no-fragment.d.ts +0 -43
- package/out/src/shard-recipes/no-fragment.d.ts.map +0 -1
- package/out/src/shard-recipes/no-fragment.js +0 -188
- package/out/src/shard-recipes/no-fragment.js.map +0 -1
- package/out/src/shard-recipes/no-street-led.d.ts +0 -24
- package/out/src/shard-recipes/no-street-led.d.ts.map +0 -1
- package/out/src/shard-recipes/no-street-led.js +0 -121
- package/out/src/shard-recipes/no-street-led.js.map +0 -1
- package/out/src/shard-recipes/no-street.d.ts +0 -18
- package/out/src/shard-recipes/no-street.d.ts.map +0 -1
- package/out/src/shard-recipes/no-street.js +0 -72
- package/out/src/shard-recipes/no-street.js.map +0 -1
- package/out/src/shard-recipes/po-box-cedex.d.ts +0 -38
- package/out/src/shard-recipes/po-box-cedex.d.ts.map +0 -1
- package/out/src/shard-recipes/po-box-cedex.js +0 -726
- package/out/src/shard-recipes/po-box-cedex.js.map +0 -1
- package/out/src/shard-recipes/po-box.d.ts +0 -17
- package/out/src/shard-recipes/po-box.d.ts.map +0 -1
- package/out/src/shard-recipes/po-box.js +0 -101
- package/out/src/shard-recipes/po-box.js.map +0 -1
- package/out/src/shard-recipes/reviewed-postcode-tail.d.ts +0 -47
- package/out/src/shard-recipes/reviewed-postcode-tail.d.ts.map +0 -1
- package/out/src/shard-recipes/reviewed-postcode-tail.js +0 -125
- package/out/src/shard-recipes/reviewed-postcode-tail.js.map +0 -1
- package/out/src/shard-recipes/scaffold.d.ts +0 -246
- package/out/src/shard-recipes/scaffold.d.ts.map +0 -1
- package/out/src/shard-recipes/scaffold.js +0 -137
- package/out/src/shard-recipes/scaffold.js.map +0 -1
- package/out/src/shard-recipes/si-bare-village.d.ts +0 -32
- package/out/src/shard-recipes/si-bare-village.d.ts.map +0 -1
- package/out/src/shard-recipes/si-bare-village.js +0 -88
- package/out/src/shard-recipes/si-bare-village.js.map +0 -1
- package/out/src/shard-recipes/street-affix.d.ts +0 -89
- package/out/src/shard-recipes/street-affix.d.ts.map +0 -1
- package/out/src/shard-recipes/street-affix.js +0 -578
- package/out/src/shard-recipes/street-affix.js.map +0 -1
- package/out/src/shard-recipes/street-bare.d.ts +0 -25
- package/out/src/shard-recipes/street-bare.d.ts.map +0 -1
- package/out/src/shard-recipes/street-bare.js +0 -86
- package/out/src/shard-recipes/street-bare.js.map +0 -1
- package/out/src/shard-recipes/street.d.ts +0 -15
- package/out/src/shard-recipes/street.d.ts.map +0 -1
- package/out/src/shard-recipes/street.js +0 -69
- package/out/src/shard-recipes/street.js.map +0 -1
- package/out/src/shard-recipes/sub-venue-sources.d.ts +0 -228
- package/out/src/shard-recipes/sub-venue-sources.d.ts.map +0 -1
- package/out/src/shard-recipes/sub-venue-sources.js +0 -664
- package/out/src/shard-recipes/sub-venue-sources.js.map +0 -1
- package/out/src/shard-recipes/sub-venue.d.ts +0 -269
- package/out/src/shard-recipes/sub-venue.d.ts.map +0 -1
- package/out/src/shard-recipes/sub-venue.js +0 -710
- package/out/src/shard-recipes/sub-venue.js.map +0 -1
- package/out/src/shard-recipes/trailing-region.d.ts +0 -74
- package/out/src/shard-recipes/trailing-region.d.ts.map +0 -1
- package/out/src/shard-recipes/trailing-region.js +0 -157
- package/out/src/shard-recipes/trailing-region.js.map +0 -1
- package/out/src/shard-recipes/unit.d.ts +0 -29
- package/out/src/shard-recipes/unit.d.ts.map +0 -1
- package/out/src/shard-recipes/unit.js +0 -243
- package/out/src/shard-recipes/unit.js.map +0 -1
- package/out/src/synthesizers/anchor-absorption.d.ts +0 -63
- package/out/src/synthesizers/anchor-absorption.d.ts.map +0 -1
- package/out/src/synthesizers/anchor-absorption.js +0 -223
- package/out/src/synthesizers/anchor-absorption.js.map +0 -1
- package/out/src/synthesizers/boundary-stress.d.ts +0 -78
- package/out/src/synthesizers/boundary-stress.d.ts.map +0 -1
- package/out/src/synthesizers/boundary-stress.js +0 -455
- package/out/src/synthesizers/boundary-stress.js.map +0 -1
- package/out/src/synthesizers/german.d.ts +0 -107
- package/out/src/synthesizers/german.d.ts.map +0 -1
- package/out/src/synthesizers/german.js +0 -148
- package/out/src/synthesizers/german.js.map +0 -1
- package/out/src/synthesizers/house-venue.d.ts +0 -56
- package/out/src/synthesizers/house-venue.d.ts.map +0 -1
- package/out/src/synthesizers/house-venue.js +0 -267
- package/out/src/synthesizers/house-venue.js.map +0 -1
- package/out/src/synthesizers/intersection.d.ts +0 -52
- package/out/src/synthesizers/intersection.d.ts.map +0 -1
- package/out/src/synthesizers/intersection.js +0 -175
- package/out/src/synthesizers/intersection.js.map +0 -1
- package/out/src/synthesizers/no-street.d.ts +0 -72
- package/out/src/synthesizers/no-street.d.ts.map +0 -1
- package/out/src/synthesizers/no-street.js +0 -282
- package/out/src/synthesizers/no-street.js.map +0 -1
- package/out/src/synthesizers/po-box.d.ts +0 -104
- package/out/src/synthesizers/po-box.d.ts.map +0 -1
- package/out/src/synthesizers/po-box.js +0 -266
- package/out/src/synthesizers/po-box.js.map +0 -1
- package/out/src/synthesizers/street.d.ts +0 -54
- package/out/src/synthesizers/street.d.ts.map +0 -1
- package/out/src/synthesizers/street.js +0 -221
- package/out/src/synthesizers/street.js.map +0 -1
- package/out/src/synthesizers/utils.d.ts +0 -203
- package/out/src/synthesizers/utils.d.ts.map +0 -1
- package/out/src/synthesizers/utils.js +0 -708
- package/out/src/synthesizers/utils.js.map +0 -1
- package/out/src/tools/align-shard.d.ts +0 -8
- package/out/src/tools/align-shard.d.ts.map +0 -1
- package/out/src/tools/align-shard.js +0 -56
- package/out/src/tools/align-shard.js.map +0 -1
- package/out/src/tools/audit.d.ts +0 -28
- package/out/src/tools/audit.d.ts.map +0 -1
- package/out/src/tools/audit.js +0 -285
- package/out/src/tools/audit.js.map +0 -1
- package/out/src/tools/corpus-stats.d.ts +0 -44
- package/out/src/tools/corpus-stats.d.ts.map +0 -1
- package/out/src/tools/corpus-stats.js +0 -138
- package/out/src/tools/corpus-stats.js.map +0 -1
- package/out/src/tools/fetch/ban.d.ts +0 -31
- package/out/src/tools/fetch/ban.d.ts.map +0 -1
- package/out/src/tools/fetch/ban.js +0 -239
- package/out/src/tools/fetch/ban.js.map +0 -1
- package/out/src/tools/fetch/download.d.ts +0 -78
- package/out/src/tools/fetch/download.d.ts.map +0 -1
- package/out/src/tools/fetch/download.js +0 -116
- package/out/src/tools/fetch/download.js.map +0 -1
- package/out/src/tools/fetch/geonames-dump.d.ts +0 -87
- package/out/src/tools/fetch/geonames-dump.d.ts.map +0 -1
- package/out/src/tools/fetch/geonames-dump.js +0 -178
- package/out/src/tools/fetch/geonames-dump.js.map +0 -1
- package/out/src/tools/fetch/geonames-postal.d.ts +0 -76
- package/out/src/tools/fetch/geonames-postal.d.ts.map +0 -1
- package/out/src/tools/fetch/geonames-postal.js +0 -125
- package/out/src/tools/fetch/geonames-postal.js.map +0 -1
- package/out/src/tools/fetch/hrsa.d.ts +0 -18
- package/out/src/tools/fetch/hrsa.d.ts.map +0 -1
- package/out/src/tools/fetch/hrsa.js +0 -46
- package/out/src/tools/fetch/hrsa.js.map +0 -1
- package/out/src/tools/fetch/imls-pls.d.ts +0 -25
- package/out/src/tools/fetch/imls-pls.d.ts.map +0 -1
- package/out/src/tools/fetch/imls-pls.js +0 -108
- package/out/src/tools/fetch/imls-pls.js.map +0 -1
- package/out/src/tools/fetch/index.d.ts +0 -144
- package/out/src/tools/fetch/index.d.ts.map +0 -1
- package/out/src/tools/fetch/index.js +0 -143
- package/out/src/tools/fetch/index.js.map +0 -1
- package/out/src/tools/fetch/nad.d.ts +0 -70
- package/out/src/tools/fetch/nad.d.ts.map +0 -1
- package/out/src/tools/fetch/nad.js +0 -234
- package/out/src/tools/fetch/nad.js.map +0 -1
- package/out/src/tools/fetch/nppes.d.ts +0 -26
- package/out/src/tools/fetch/nppes.d.ts.map +0 -1
- package/out/src/tools/fetch/nppes.js +0 -126
- package/out/src/tools/fetch/nppes.js.map +0 -1
- package/out/src/tools/fetch/openaddresses.d.ts +0 -61
- package/out/src/tools/fetch/openaddresses.d.ts.map +0 -1
- package/out/src/tools/fetch/openaddresses.js +0 -317
- package/out/src/tools/fetch/openaddresses.js.map +0 -1
- package/out/src/tools/fetch/ourairports.d.ts +0 -45
- package/out/src/tools/fetch/ourairports.d.ts.map +0 -1
- package/out/src/tools/fetch/ourairports.js +0 -128
- package/out/src/tools/fetch/ourairports.js.map +0 -1
- package/out/src/tools/fetch/ppd.d.ts.map +0 -1
- package/out/src/tools/fetch/ppd.js +0 -100
- package/out/src/tools/fetch/ppd.js.map +0 -1
- package/out/src/tools/fetch/state-hi-schools.d.ts +0 -25
- package/out/src/tools/fetch/state-hi-schools.d.ts.map +0 -1
- package/out/src/tools/fetch/state-hi-schools.js +0 -162
- package/out/src/tools/fetch/state-hi-schools.js.map +0 -1
- package/out/src/tools/fetch/state-sources.d.ts +0 -26
- package/out/src/tools/fetch/state-sources.d.ts.map +0 -1
- package/out/src/tools/fetch/state-sources.js +0 -111
- package/out/src/tools/fetch/state-sources.js.map +0 -1
- package/out/src/tools/fetch/tiger-full.d.ts +0 -42
- package/out/src/tools/fetch/tiger-full.d.ts.map +0 -1
- package/out/src/tools/fetch/tiger-full.js +0 -248
- package/out/src/tools/fetch/tiger-full.js.map +0 -1
- package/out/src/tools/fetch/wikidata-subvenue.d.ts +0 -171
- package/out/src/tools/fetch/wikidata-subvenue.d.ts.map +0 -1
- package/out/src/tools/fetch/wikidata-subvenue.js +0 -275
- package/out/src/tools/fetch/wikidata-subvenue.js.map +0 -1
- package/out/src/tools/gb-title-case.d.ts.map +0 -1
- package/out/src/tools/gb-title-case.js.map +0 -1
- package/out/src/tools/golden-expand.d.ts +0 -90
- package/out/src/tools/golden-expand.d.ts.map +0 -1
- package/out/src/tools/golden-expand.js +0 -413
- package/out/src/tools/golden-expand.js.map +0 -1
- package/out/src/tools/golden-promote.d.ts.map +0 -1
- package/out/src/tools/golden-promote.js +0 -244
- package/out/src/tools/golden-promote.js.map +0 -1
- package/out/src/tools/golden-relabel-street.d.ts +0 -196
- package/out/src/tools/golden-relabel-street.d.ts.map +0 -1
- package/out/src/tools/golden-relabel-street.js +0 -440
- package/out/src/tools/golden-relabel-street.js.map +0 -1
- package/out/src/tools/index.d.ts +0 -28
- package/out/src/tools/index.d.ts.map +0 -1
- package/out/src/tools/index.js +0 -28
- package/out/src/tools/index.js.map +0 -1
- package/out/src/tools/ingest-csv.d.ts.map +0 -1
- package/out/src/tools/ingest-csv.js +0 -296
- package/out/src/tools/ingest-csv.js.map +0 -1
- package/out/src/tools/jsonl-to-parquet.d.ts +0 -61
- package/out/src/tools/jsonl-to-parquet.d.ts.map +0 -1
- package/out/src/tools/jsonl-to-parquet.js +0 -164
- package/out/src/tools/jsonl-to-parquet.js.map +0 -1
- package/out/src/tools/lint-shard-vocab.d.ts +0 -90
- package/out/src/tools/lint-shard-vocab.d.ts.map +0 -1
- package/out/src/tools/lint-shard-vocab.js +0 -281
- package/out/src/tools/lint-shard-vocab.js.map +0 -1
- package/out/src/tools/lint-shard.d.ts +0 -93
- package/out/src/tools/lint-shard.d.ts.map +0 -1
- package/out/src/tools/lint-shard.js +0 -354
- package/out/src/tools/lint-shard.js.map +0 -1
- package/out/src/tools/overlay-manifest.d.ts +0 -39
- package/out/src/tools/overlay-manifest.d.ts.map +0 -1
- package/out/src/tools/overlay-manifest.js +0 -98
- package/out/src/tools/overlay-manifest.js.map +0 -1
- package/out/src/tools/overture-subvenue.d.ts +0 -112
- package/out/src/tools/overture-subvenue.d.ts.map +0 -1
- package/out/src/tools/overture-subvenue.js +0 -144
- package/out/src/tools/overture-subvenue.js.map +0 -1
- package/out/src/tools/postcode-triples.d.ts +0 -175
- package/out/src/tools/postcode-triples.d.ts.map +0 -1
- package/out/src/tools/postcode-triples.js +0 -304
- package/out/src/tools/postcode-triples.js.map +0 -1
- package/out/src/tools/shard-kryptonite.d.ts +0 -32
- package/out/src/tools/shard-kryptonite.d.ts.map +0 -1
- package/out/src/tools/shard-kryptonite.js +0 -100
- package/out/src/tools/shard-kryptonite.js.map +0 -1
- package/out/src/tools/shard-translit.d.ts +0 -51
- package/out/src/tools/shard-translit.d.ts.map +0 -1
- package/out/src/tools/shard-translit.js +0 -175
- package/out/src/tools/shard-translit.js.map +0 -1
- package/out/src/tools/sub-venue/harvest.d.ts +0 -100
- package/out/src/tools/sub-venue/harvest.d.ts.map +0 -1
- package/out/src/tools/sub-venue/harvest.js +0 -168
- package/out/src/tools/sub-venue/harvest.js.map +0 -1
- package/out/src/tools/sub-venue/head-nouns.d.ts +0 -50
- package/out/src/tools/sub-venue/head-nouns.d.ts.map +0 -1
- package/out/src/tools/sub-venue/head-nouns.js +0 -210
- package/out/src/tools/sub-venue/head-nouns.js.map +0 -1
- package/out/src/tools/sub-venue/surfaces.d.ts +0 -45
- package/out/src/tools/sub-venue/surfaces.d.ts.map +0 -1
- package/out/src/tools/sub-venue/surfaces.js +0 -77
- package/out/src/tools/sub-venue/surfaces.js.map +0 -1
- package/out/src/tools/sub-venue/table.d.ts +0 -229
- package/out/src/tools/sub-venue/table.d.ts.map +0 -1
- package/out/src/tools/sub-venue/table.js +0 -108
- package/out/src/tools/sub-venue/table.js.map +0 -1
- package/out/src/tools/sub-venue/wikidata.d.ts +0 -26
- package/out/src/tools/sub-venue/wikidata.d.ts.map +0 -1
- package/out/src/tools/sub-venue/wikidata.js +0 -62
- package/out/src/tools/sub-venue/wikidata.js.map +0 -1
- package/out/src/tools/sub-venue-lexicon.d.ts +0 -156
- package/out/src/tools/sub-venue-lexicon.d.ts.map +0 -1
- package/out/src/tools/sub-venue-lexicon.js +0 -282
- package/out/src/tools/sub-venue-lexicon.js.map +0 -1
- package/out/src/tools/sub-venue-promotions.d.ts +0 -94
- package/out/src/tools/sub-venue-promotions.d.ts.map +0 -1
- package/out/src/tools/sub-venue-promotions.js +0 -266
- package/out/src/tools/sub-venue-promotions.js.map +0 -1
- package/out/src/types.d.ts +0 -221
- package/out/src/types.d.ts.map +0 -1
- package/out/src/types.js.map +0 -1
- package/out/src/utils/align.d.ts +0 -93
- package/out/src/utils/align.d.ts.map +0 -1
- package/out/src/utils/align.js +0 -234
- package/out/src/utils/align.js.map +0 -1
- package/out/src/utils/golden.d.ts +0 -69
- package/out/src/utils/golden.d.ts.map +0 -1
- package/out/src/utils/golden.js +0 -127
- package/out/src/utils/golden.js.map +0 -1
- package/out/src/utils/index.d.ts +0 -14
- package/out/src/utils/index.d.ts.map +0 -1
- package/out/src/utils/index.js +0 -14
- package/out/src/utils/index.js.map +0 -1
- package/out/src/utils/license.d.ts.map +0 -1
- package/out/src/utils/license.js.map +0 -1
- package/out/src/utils/parquet.d.ts +0 -162
- package/out/src/utils/parquet.d.ts.map +0 -1
- package/out/src/utils/parquet.js +0 -262
- package/out/src/utils/parquet.js.map +0 -1
- package/out/src/utils/split.d.ts +0 -127
- package/out/src/utils/split.d.ts.map +0 -1
- package/out/src/utils/split.js +0 -204
- package/out/src/utils/split.js.map +0 -1
- package/out/src/utils/tokenize.d.ts +0 -56
- package/out/src/utils/tokenize.d.ts.map +0 -1
- package/out/src/utils/tokenize.js +0 -48
- package/out/src/utils/tokenize.js.map +0 -1
- package/out/src/utils/wof-json.d.ts +0 -109
- package/out/src/utils/wof-json.d.ts.map +0 -1
- package/out/src/utils/wof-json.js +0 -173
- package/out/src/utils/wof-json.js.map +0 -1
- package/src/adapters/ban/adapter.ts +0 -191
- package/src/adapters/ban/street-decompose.ts +0 -96
- package/src/adapters/fcc-bdc/adapter.ts +0 -174
- package/src/adapters/geonames/adapter.ts +0 -200
- package/src/adapters/geonames-postal/adapter.ts +0 -119
- package/src/adapters/gnaf/adapter.ts +0 -149
- package/src/adapters/gnaf/assemble.ts +0 -226
- package/src/adapters/index.ts +0 -149
- package/src/adapters/openaddresses/adapter.ts +0 -251
- package/src/adapters/overture/adapter.ts +0 -162
- package/src/adapters/state-hi-schools/adapter.ts +0 -164
- package/src/adapters/synth-po-box/adapter.ts +0 -204
- package/src/adapters/tiger/adapter.ts +0 -253
- package/src/adapters/tiger/street-decompose.ts +0 -111
- package/src/adapters/usgov-hrsa-fqhc/adapter.ts +0 -183
- package/src/adapters/usgov-imls-pls/adapter.ts +0 -143
- package/src/adapters/usgov-irs-bmf/adapter.ts +0 -163
- package/src/adapters/usgov-nad/adapter.ts +0 -348
- package/src/adapters/usgov-nppes/adapter.ts +0 -159
- package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -204
- package/src/adapters/utils/index.ts +0 -233
- package/src/adapters/wof-admin-jp/adapter.ts +0 -216
- package/src/adapters/wof-admin-json/adapter.ts +0 -256
- package/src/adapters/wof-json-rows.ts +0 -79
- package/src/adapters/wof-postalcode-json/adapter.ts +0 -183
- package/src/build.ts +0 -386
- package/src/index.ts +0 -14
- package/src/name-prone-us-suffixes.ts +0 -12
- package/src/parquet-wrapper/index.ts +0 -9
- package/src/parquet-wrapper/reader.ts +0 -97
- package/src/parquet-wrapper/schema.ts +0 -88
- package/src/parquet-wrapper/writer.ts +0 -110
- package/src/runner.ts +0 -317
- package/src/shard-recipes/anchor-absorption.ts +0 -103
- package/src/shard-recipes/bare-country.ts +0 -95
- package/src/shard-recipes/boundary-stress.ts +0 -101
- package/src/shard-recipes/country-balanced.ts +0 -524
- package/src/shard-recipes/cz-pcfirst-preposition.ts +0 -111
- package/src/shard-recipes/fr-admin-split.ts +0 -239
- package/src/shard-recipes/fr-bare-street.ts +0 -170
- package/src/shard-recipes/fr-fragment.ts +0 -332
- package/src/shard-recipes/fr-lieudit.ts +0 -302
- package/src/shard-recipes/fr-order.ts +0 -258
- package/src/shard-recipes/german.ts +0 -170
- package/src/shard-recipes/house-venue.ts +0 -88
- package/src/shard-recipes/index.ts +0 -95
- package/src/shard-recipes/intersection.ts +0 -630
- package/src/shard-recipes/locale.ts +0 -599
- package/src/shard-recipes/nl-postcode.ts +0 -115
- package/src/shard-recipes/no-fragment.ts +0 -219
- package/src/shard-recipes/no-street-led.ts +0 -143
- package/src/shard-recipes/no-street.ts +0 -86
- package/src/shard-recipes/po-box-cedex.ts +0 -920
- package/src/shard-recipes/po-box.ts +0 -119
- package/src/shard-recipes/reviewed-postcode-tail.ts +0 -189
- package/src/shard-recipes/scaffold.ts +0 -360
- package/src/shard-recipes/si-bare-village.ts +0 -97
- package/src/shard-recipes/street-affix.ts +0 -826
- package/src/shard-recipes/street-bare.ts +0 -101
- package/src/shard-recipes/street.ts +0 -82
- package/src/shard-recipes/sub-venue-sources.ts +0 -885
- package/src/shard-recipes/sub-venue.ts +0 -984
- package/src/shard-recipes/trailing-region.ts +0 -183
- package/src/shard-recipes/unit.ts +0 -321
- package/src/synthesizers/anchor-absorption.ts +0 -290
- package/src/synthesizers/boundary-stress.ts +0 -531
- package/src/synthesizers/german.ts +0 -251
- package/src/synthesizers/house-venue.ts +0 -330
- package/src/synthesizers/intersection.ts +0 -232
- package/src/synthesizers/no-street.ts +0 -349
- package/src/synthesizers/po-box.ts +0 -339
- package/src/synthesizers/street.ts +0 -274
- package/src/synthesizers/utils.ts +0 -903
- package/src/tools/align-shard.ts +0 -70
- package/src/tools/audit.ts +0 -399
- package/src/tools/corpus-stats.ts +0 -184
- package/src/tools/fetch/ban.ts +0 -290
- package/src/tools/fetch/download.ts +0 -176
- package/src/tools/fetch/geonames-dump.ts +0 -267
- package/src/tools/fetch/geonames-postal.ts +0 -180
- package/src/tools/fetch/hrsa.ts +0 -68
- package/src/tools/fetch/imls-pls.ts +0 -158
- package/src/tools/fetch/index.ts +0 -147
- package/src/tools/fetch/nad.ts +0 -342
- package/src/tools/fetch/nppes.ts +0 -174
- package/src/tools/fetch/openaddresses.ts +0 -404
- package/src/tools/fetch/ourairports.ts +0 -171
- package/src/tools/fetch/ppd.ts +0 -137
- package/src/tools/fetch/state-hi-schools.ts +0 -208
- package/src/tools/fetch/state-sources.ts +0 -155
- package/src/tools/fetch/tiger-full.ts +0 -354
- package/src/tools/fetch/wikidata-subvenue.ts +0 -386
- package/src/tools/golden-expand.ts +0 -584
- package/src/tools/golden-promote.ts +0 -353
- package/src/tools/golden-relabel-street.ts +0 -685
- package/src/tools/index.ts +0 -28
- package/src/tools/ingest-csv.ts +0 -422
- package/src/tools/jsonl-to-parquet.ts +0 -221
- package/src/tools/lint-shard-vocab.ts +0 -409
- package/src/tools/lint-shard.ts +0 -543
- package/src/tools/overlay-manifest.ts +0 -157
- package/src/tools/overture-subvenue.ts +0 -215
- package/src/tools/postcode-triples.ts +0 -375
- package/src/tools/shard-kryptonite.ts +0 -139
- package/src/tools/shard-translit.ts +0 -245
- package/src/tools/sub-venue/harvest.ts +0 -235
- package/src/tools/sub-venue/head-nouns.ts +0 -242
- package/src/tools/sub-venue/surfaces.ts +0 -95
- package/src/tools/sub-venue/table.ts +0 -281
- package/src/tools/sub-venue/wikidata.ts +0 -85
- package/src/tools/sub-venue-lexicon.ts +0 -431
- package/src/tools/sub-venue-promotions.ts +0 -330
- package/src/types.ts +0 -247
- package/src/utils/align.ts +0 -331
- package/src/utils/golden.ts +0 -176
- package/src/utils/index.ts +0 -14
- package/src/utils/parquet.ts +0 -391
- package/src/utils/split.ts +0 -279
- package/src/utils/tokenize.ts +0 -78
- package/src/utils/wof-json.ts +0 -244
- /package/{src → lib}/adapters/state-ia-contractors/adapter.ts +0 -0
- /package/{src → lib}/adapters/state-ny-notaries/adapter.ts +0 -0
- /package/{src → lib}/adapters/state-tx-notaries/adapter.ts +0 -0
- /package/{src → lib}/codex/us-fips-state.ts +0 -0
- /package/{src → lib}/tools/gb-title-case.ts +0 -0
- /package/{src → lib}/utils/license.ts +0 -0
- /package/out/{src/adapters → adapters}/ban/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/ban/street-decompose.d.ts +0 -0
- /package/out/{src/adapters → adapters}/fcc-bdc/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/geonames/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/openaddresses/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/state-ia-contractors/adapter.js +0 -0
- /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/state-ny-notaries/adapter.js +0 -0
- /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/state-tx-notaries/adapter.js +0 -0
- /package/out/{src/adapters → adapters}/synth-po-box/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/tiger/street-decompose.d.ts +0 -0
- /package/out/{src/adapters → adapters}/usgov-nppes/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/usgov-samhsa-treatment-locator/adapter.d.ts +0 -0
- /package/out/{src/adapters → adapters}/wof-admin-jp/adapter.d.ts +0 -0
- /package/out/{src/codex → codex}/us-fips-state.d.ts +0 -0
- /package/out/{src/codex → codex}/us-fips-state.js +0 -0
- /package/out/{src/tools → tools}/fetch/ppd.d.ts +0 -0
- /package/out/{src/tools → tools}/gb-title-case.d.ts +0 -0
- /package/out/{src/tools → tools}/gb-title-case.js +0 -0
- /package/out/{src/tools → tools}/golden-promote.d.ts +0 -0
- /package/out/{src/tools → tools}/ingest-csv.d.ts +0 -0
- /package/out/{src/types.js → types.js} +0 -0
- /package/out/{src/utils → utils}/license.d.ts +0 -0
- /package/out/{src/utils → utils}/license.js +0 -0
|
@@ -1,664 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license AGPL-3.0
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* The READ half of the `sub-venue` shard recipe (#35 step 4): which surfaces a locale may emit,
|
|
7
|
-
* what identifier follows them in that region, and which real names become the confound negatives.
|
|
8
|
-
* `sub-venue.ts` owns the WRITE half (line rendering + the emit loop) and the recipe registration;
|
|
9
|
-
* split because the two halves together run past the 750-line file cap, and this is the seam — one
|
|
10
|
-
* side reads disk and the ledger, the other side never touches either.
|
|
11
|
-
*
|
|
12
|
-
* Every rule in this file is a rule about EVIDENCE, and each one has a measurement behind it:
|
|
13
|
-
*
|
|
14
|
-
* - {@link promotedSurfacesFor} — a promotion names a designator, a phrase AND a locale, because the
|
|
15
|
-
* same token is a designator in one language and a disaster in another (`hall` is 0-of-3,273 in
|
|
16
|
-
* Great Britain and 35-of-40 in France).
|
|
17
|
-
* - {@link hasPromotedShape} — an `identifier-required` promotion is exercised only as
|
|
18
|
-
* `<phrase> <identifier>`. The de-DE `halle` board is the founding case: its 168-hit confound
|
|
19
|
-
* includes the CITY Halle (Saale), and only the identifier-bearing shape separates them.
|
|
20
|
-
* - {@link buildIdentifierModel} — the identifier distribution is measured per REGION, because it
|
|
21
|
-
* differs by country far more than the shared vocabulary suggests (GB gates 71% bare digit, ES
|
|
22
|
-
* 35% ranges).
|
|
23
|
-
* - {@link isVenueSlotName} / {@link isSignIdentifier} — the filters that keep bus-stop codes, route
|
|
24
|
-
* descriptions and street names out of the slots they would mislabel. Both were written FROM
|
|
25
|
-
* smoke output, not predicted; the docstrings name the strings that produced them.
|
|
26
|
-
*/
|
|
27
|
-
import { readFileSync } from "node:fs";
|
|
28
|
-
import { DatabaseSync } from "node:sqlite";
|
|
29
|
-
import { fileURLToPath } from "node:url";
|
|
30
|
-
import { parseJSONStrict } from "@mailwoman/core/objects";
|
|
31
|
-
import { dataRootPath } from "@mailwoman/core/utils";
|
|
32
|
-
import { classifyIdentifier, readSubVenueJSONL, SUBVENUE_PROMOTIONS, } from "#tools";
|
|
33
|
-
import { readTuples as readLocaleTuples } from "./locale.js";
|
|
34
|
-
import { makeMulberry32, readTuples as readShardTuples } from "./scaffold.js";
|
|
35
|
-
//#region Lexicon
|
|
36
|
-
/**
|
|
37
|
-
* The committed lexicon, resolved through the package manifest.
|
|
38
|
-
*/
|
|
39
|
-
export function defaultLexiconPath() {
|
|
40
|
-
return fileURLToPath(import.meta.resolve("@mailwoman/corpus/data/sub-venue-lexicon.json"));
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Read and parse the lexicon. Strict: a corrupt lexicon is a build failure, not a fallback.
|
|
44
|
-
*/
|
|
45
|
-
export function readSubVenueLexicon(path = defaultLexiconPath()) {
|
|
46
|
-
return parseJSONStrict(readFileSync(path, "utf8"));
|
|
47
|
-
}
|
|
48
|
-
//#endregion
|
|
49
|
-
//#region Name filters
|
|
50
|
-
/**
|
|
51
|
-
* Longest venue name kept for the venue slot. The extracts carry a tail of route descriptions and junction names
|
|
52
|
-
* ("Furnival Gate/Moorhead MH2", "SPEKE HALL ROAD/HILLFOOT AVE") that are not venue names at all; a length cap plus
|
|
53
|
-
* {@link isCleanName} removes the bulk of them without a hand list.
|
|
54
|
-
*/
|
|
55
|
-
const MAX_VENUE_NAME_LENGTH = 44;
|
|
56
|
-
/**
|
|
57
|
-
* Shortest kept name. Below four characters a "name" is an airport code or a platform letter, not something that can
|
|
58
|
-
* stand in a venue slot.
|
|
59
|
-
*/
|
|
60
|
-
const MIN_NAME_LENGTH = 4;
|
|
61
|
-
/**
|
|
62
|
-
* Longest attested sub-venue string, in whitespace tokens. `Terminal 1 Flugsteig B` is four and real; anything longer
|
|
63
|
-
* is a venue's own name that happens to contain a designator.
|
|
64
|
-
*/
|
|
65
|
-
const MAX_ATTESTED_TOKENS = 4;
|
|
66
|
-
/**
|
|
67
|
-
* Reject a name that is a route description, a junction, or a code rather than a name: embedded `/`, `;`, `,`, `:`,
|
|
68
|
-
* parentheses, no letters, or a bare source code. Measured motivation, not taste — the GB extract's `platform` tier
|
|
69
|
-
* contributes 7,549 `other`-shaped names like `kntgwdgj` and `SPEKE HALL ROAD/HILLFOOT AVE`.
|
|
70
|
-
*/
|
|
71
|
-
export function isCleanName(name) {
|
|
72
|
-
if (name.length < MIN_NAME_LENGTH || name.length > MAX_VENUE_NAME_LENGTH)
|
|
73
|
-
return false;
|
|
74
|
-
// A colon in a name is a qualifier, not part of it — "Porte 4 : Ferrys", "Derby College: Ilkeston Campus".
|
|
75
|
-
if (/[/;,:()[\]<>|]/.test(name))
|
|
76
|
-
return false;
|
|
77
|
-
if (!/\p{L}/u.test(name))
|
|
78
|
-
return false;
|
|
79
|
-
// A name that is all lower-case with no space is a source code (`kntgwdgj`), not a name.
|
|
80
|
-
if (!name.includes(" ") && name === name.toLowerCase())
|
|
81
|
-
return false;
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Head words that make a "name" something other than a venue name, checked on the FIRST token.
|
|
86
|
-
*
|
|
87
|
-
* Two populations, both found by reading the 2026-08-05 smoke output rather than predicted:
|
|
88
|
-
*
|
|
89
|
-
* - **Street types.** A bus stop is routinely named after the street it stands on, so the FR extract offers `Rue de la
|
|
90
|
-
* Porte Bergault` as a `porte` confound. It IS a confound, but it is a STREET, and putting it in the venue slot would
|
|
91
|
-
* train `Rue …` as a venue name — trading one mislabel for another.
|
|
92
|
-
* - **Stop qualifiers.** British stop names carry a position prefix (`OPPOSITE BRICKLEHAMPTON HALL`, `ADJ THE GREEN`)
|
|
93
|
-
* that names a relationship rather than a place.
|
|
94
|
-
*
|
|
95
|
-
* Per-language and short on purpose: this is a head-token filter over four Latin languages, not a street-type
|
|
96
|
-
* gazetteer. `@mailwoman/corpus` cannot reach the shipped street-type lexicon (it lives behind the gazetteer build),
|
|
97
|
-
* and a longer list here would be a second, drifting copy of it.
|
|
98
|
-
*/
|
|
99
|
-
const NON_VENUE_HEAD_WORDS = new Set([
|
|
100
|
-
// en
|
|
101
|
-
"street",
|
|
102
|
-
"road",
|
|
103
|
-
"lane",
|
|
104
|
-
"avenue",
|
|
105
|
-
"drive",
|
|
106
|
-
"way",
|
|
107
|
-
"close",
|
|
108
|
-
"opposite",
|
|
109
|
-
"opp",
|
|
110
|
-
"adj",
|
|
111
|
-
"adjacent",
|
|
112
|
-
"outside",
|
|
113
|
-
"near",
|
|
114
|
-
"nr",
|
|
115
|
-
"stop",
|
|
116
|
-
// fr
|
|
117
|
-
"rue",
|
|
118
|
-
"boulevard",
|
|
119
|
-
"chemin",
|
|
120
|
-
"impasse",
|
|
121
|
-
"allée",
|
|
122
|
-
"allee",
|
|
123
|
-
"route",
|
|
124
|
-
"quai",
|
|
125
|
-
"place",
|
|
126
|
-
// es / ca
|
|
127
|
-
"calle",
|
|
128
|
-
"carrer",
|
|
129
|
-
"avenida",
|
|
130
|
-
"avinguda",
|
|
131
|
-
"carretera",
|
|
132
|
-
"plaza",
|
|
133
|
-
"paseo",
|
|
134
|
-
"camino",
|
|
135
|
-
// de
|
|
136
|
-
"straße",
|
|
137
|
-
"strasse",
|
|
138
|
-
"weg",
|
|
139
|
-
"platz",
|
|
140
|
-
"gasse",
|
|
141
|
-
]);
|
|
142
|
-
/**
|
|
143
|
-
* Street types that appear at the END of an anglophone street name, checked on the LAST token.
|
|
144
|
-
*
|
|
145
|
-
* The head-word filter cannot see these — English streets are `<name> <type>`, so `Strawberry Hall Lane` and `Guinea
|
|
146
|
-
* Hall Mews` reached the venue slot in the second smoke and would have trained a STREET as a venue name. The
|
|
147
|
-
* street-side confound already has its own class (`designator-street`), drawn from real (street, locality, postcode)
|
|
148
|
-
* pairings, so nothing is lost by refusing these here. German is suffix-compounded rather than suffix-worded and is
|
|
149
|
-
* handled by {@link GERMAN_STREET_TAIL} instead.
|
|
150
|
-
*/
|
|
151
|
-
const STREET_TAIL_WORDS = new Set([
|
|
152
|
-
"street",
|
|
153
|
-
"road",
|
|
154
|
-
"lane",
|
|
155
|
-
"avenue",
|
|
156
|
-
"drive",
|
|
157
|
-
"close",
|
|
158
|
-
"crescent",
|
|
159
|
-
"mews",
|
|
160
|
-
"terrace",
|
|
161
|
-
"walk",
|
|
162
|
-
"way",
|
|
163
|
-
"court",
|
|
164
|
-
"gardens",
|
|
165
|
-
"grove",
|
|
166
|
-
"rise",
|
|
167
|
-
"row",
|
|
168
|
-
"parade",
|
|
169
|
-
"esplanade",
|
|
170
|
-
]);
|
|
171
|
-
const GERMAN_STREET_TAIL = /(?:straße|strasse|weg|platz|gasse|allee|ring|damm)$/;
|
|
172
|
-
/**
|
|
173
|
-
* Is this name usable as a VENUE-slot string (positive venue or negative confound venue)?
|
|
174
|
-
*/
|
|
175
|
-
export function isVenueSlotName(name) {
|
|
176
|
-
if (!isCleanName(name))
|
|
177
|
-
return false;
|
|
178
|
-
const words = name.toLowerCase().match(/[\p{L}]+/gu) ?? [];
|
|
179
|
-
if (!words.length)
|
|
180
|
-
return false;
|
|
181
|
-
if (NON_VENUE_HEAD_WORDS.has(words[0]))
|
|
182
|
-
return false;
|
|
183
|
-
const tail = words.at(-1);
|
|
184
|
-
return !STREET_TAIL_WORDS.has(tail) && !GERMAN_STREET_TAIL.test(tail);
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Title-case a designator phrase for rendering (`flugsteig` → `Flugsteig`). Single-token by construction: every
|
|
188
|
-
* promoted phrase in the ledger is one word.
|
|
189
|
-
*/
|
|
190
|
-
export function titleCase(phrase) {
|
|
191
|
-
return phrase.charAt(0).toUpperCase() + phrase.slice(1);
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Word-boundary containment, script-aware enough for the Latin legs this recipe runs.
|
|
195
|
-
*
|
|
196
|
-
* The boundary matters: without it `gate` matches Briggate and `wing` matches Wingate, which is how a harvest teaches
|
|
197
|
-
* itself that a Yorkshire street is a sub-venue. (The lexicon's own harvest carries the same rule, and it drops the
|
|
198
|
-
* boundary only for Han/Kana, which has no word boundaries and no leg here.)
|
|
199
|
-
*/
|
|
200
|
-
export function containsPhrase(lowerName, phrase) {
|
|
201
|
-
let from = 0;
|
|
202
|
-
for (;;) {
|
|
203
|
-
const at = lowerName.indexOf(phrase, from);
|
|
204
|
-
if (at === -1)
|
|
205
|
-
return false;
|
|
206
|
-
const before = at === 0 ? "" : lowerName[at - 1];
|
|
207
|
-
const after = lowerName[at + phrase.length] ?? "";
|
|
208
|
-
if (!/[\p{L}\p{N}]/u.test(before) && !/[\p{L}\p{N}]/u.test(after))
|
|
209
|
-
return true;
|
|
210
|
-
from = at + 1;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Identifier-shape classes a sub-venue string may sample.
|
|
215
|
-
*
|
|
216
|
-
* `other` is excluded: it is the junk bucket the lexicon's own examples advertise — `C15/C15A+C15B`, `Segelflug Start
|
|
217
|
-
* 06`, `152, 240`, `de.05374048.drabenderhoehezeithstrasse`. Everything else is a real identifier register.
|
|
218
|
-
*/
|
|
219
|
-
const USABLE_IDENTIFIER_SHAPES = new Set([
|
|
220
|
-
"digit",
|
|
221
|
-
"letter",
|
|
222
|
-
"letter-digit",
|
|
223
|
-
"digit-letter",
|
|
224
|
-
"range",
|
|
225
|
-
]);
|
|
226
|
-
/**
|
|
227
|
-
* One atom of a sign identifier: a short number (`5`, `205`), a single letter (`B`), a letter-then-number (`A12`,
|
|
228
|
-
* `B05`), or a number-then-letter (`2F`, `4S`).
|
|
229
|
-
*
|
|
230
|
-
* The **single** leading letter is the load-bearing part, and it is what the third smoke found. A letter-digit ref with
|
|
231
|
-
* a MULTI-letter prefix is not an identifier read off a sign, it is a network code: the lexicon's own examples of that
|
|
232
|
-
* shape are `BS04`, `BS07`, `PWP2`, `WSW3687`, `RQ8` — campus and platform codes — and the GB extract offers `Arundel
|
|
233
|
-
* Gate AG1` … `AG124`, fourteen bus stops on a Sheffield STREET called Arundel Gate whose stop codes begin with its
|
|
234
|
-
* initials. Admitting two-letter prefixes put all fourteen in the attested pool as `unit`.
|
|
235
|
-
*/
|
|
236
|
-
const SIGN_IDENTIFIER_ATOM = /^(?:[0-9]{1,3}|[A-Za-z]|[A-Za-z][0-9]{1,3}|[0-9]{1,3}[A-Za-z]{1,2})$/;
|
|
237
|
-
/**
|
|
238
|
-
* Is `value` what a sub-venue identifier looks like on a sign — an atom, or a range of two?
|
|
239
|
-
*
|
|
240
|
-
* Applied on top of {@link USABLE_IDENTIFIER_SHAPES}, which classifies but does not bound: `WSW3687` classifies as
|
|
241
|
-
* `letter-digit` and is a station code.
|
|
242
|
-
*/
|
|
243
|
-
export function isSignIdentifier(value) {
|
|
244
|
-
const parts = value.split(/[/-]/);
|
|
245
|
-
if (parts.length > 2 || parts.some((p) => !p))
|
|
246
|
-
return false;
|
|
247
|
-
return parts.every((part) => SIGN_IDENTIFIER_ATOM.test(part));
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Does a real extract name exercise `promoted` in one of the two shapes this shard teaches?
|
|
251
|
-
*
|
|
252
|
-
* Only `<phrase> <identifier>` and (English legs) `<modifier> <phrase>` qualify. That is stricter than "contains the
|
|
253
|
-
* phrase", and the 2026-08-05 smoke is why: the loose test put `Glasgow Clyde College - Langside Campus`, `Terminal de
|
|
254
|
-
* Ferry de Bilbao` and — worst — `Halle Wohnstadt Nord` into the attested pool, the last of which is a bare German
|
|
255
|
-
* `Halle` wearing a name where the ledger requires an identifier. A whole venue's name is not a sub-venue string, and
|
|
256
|
-
* an attested string that violates the promotion's own shape constraint is not attestation of it.
|
|
257
|
-
*
|
|
258
|
-
* The follower is checked with {@link classifyIdentifier} plus {@link isSignIdentifier} rather than "any following
|
|
259
|
-
* word": `Wohnstadt` is a word, `8` is an identifier, and the de-DE board turns on exactly that difference.
|
|
260
|
-
*/
|
|
261
|
-
export function hasPromotedShape(lowerName, promoted, modifiers = [], english = false) {
|
|
262
|
-
if (!containsPhrase(lowerName, promoted.phrase))
|
|
263
|
-
return false;
|
|
264
|
-
const escaped = promoted.phrase.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw `\$&`);
|
|
265
|
-
const withFollower = new RegExp(`(?:^|[^\\p{L}\\p{N}])${escaped}\\s+(\\S+)`, "u");
|
|
266
|
-
const follower = withFollower.exec(lowerName)?.[1];
|
|
267
|
-
if (follower && USABLE_IDENTIFIER_SHAPES.has(classifyIdentifier(follower)) && isSignIdentifier(follower))
|
|
268
|
-
return true;
|
|
269
|
-
if (promoted.identifierRequired)
|
|
270
|
-
return false;
|
|
271
|
-
if (!english || !promoted.modifierEligible)
|
|
272
|
-
return false;
|
|
273
|
-
return modifiers.some((modifier) => new RegExp(`(?:^|[^\\p{L}\\p{N}])${modifier}\\s+${escaped}(?![\\p{L}\\p{N}])`, "u").test(lowerName));
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* {@link hasPromotedShape} plus the length cap that makes a string usable AS a sub-venue span.
|
|
277
|
-
*
|
|
278
|
-
* The two are separate because the difference decides which POOL a name lands in. `navette n2 vers terminal 2g` carries
|
|
279
|
-
* the promoted shape and is five tokens: too long to be a sub-venue string, and disqualified from being a NEGATIVE
|
|
280
|
-
* precisely because it does contain the shape. It belongs to neither pool, and only splitting the test says so.
|
|
281
|
-
*/
|
|
282
|
-
export function matchesPromotedShape(lowerName, promoted, modifiers = [], english = false) {
|
|
283
|
-
if ((lowerName.match(/\S+/g) ?? []).length > MAX_ATTESTED_TOKENS)
|
|
284
|
-
return false;
|
|
285
|
-
return hasPromotedShape(lowerName, promoted, modifiers, english);
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* The surfaces a locale may emit as `unit`.
|
|
289
|
-
*
|
|
290
|
-
* Two inputs, and the difference between them is the advisory/binding split the ledger's docstring names:
|
|
291
|
-
*
|
|
292
|
-
* - The SHIPPED English vocabulary (`neural/venue-structure.ts`, re-declared in the lexicon as `shipped: true`) is a flat
|
|
293
|
-
* English list with no locale gate. It is promoted-by-shipping for the English legs, because the span proposer fires
|
|
294
|
-
* on it there today and the eval board's target cases are drawn from it.
|
|
295
|
-
* - {@link SUBVENUE_PROMOTIONS} adds the localized surfaces and SUBTRACTS the rejections. A rejection of a shipped
|
|
296
|
-
* designator cannot un-ship it (nothing here stops the proposer firing on "Red Wing"), but it absolutely stops this
|
|
297
|
-
* recipe generating a positive: en-US `wing` produces negatives instead.
|
|
298
|
-
*/
|
|
299
|
-
export function promotedSurfacesFor(locale, lexicon, promotions = SUBVENUE_PROMOTIONS) {
|
|
300
|
-
const language = locale.split("-")[0];
|
|
301
|
-
const rejected = new Set(promotions.filter((p) => p.decision === "reject" && p.locale === locale).map((p) => `${p.designatorID}|${p.phrase}`));
|
|
302
|
-
const out = new Map();
|
|
303
|
-
if (language === "en") {
|
|
304
|
-
for (const designator of lexicon.designators) {
|
|
305
|
-
if (!designator.shipped)
|
|
306
|
-
continue;
|
|
307
|
-
const key = `${designator.id}|${designator.id}`;
|
|
308
|
-
if (rejected.has(key))
|
|
309
|
-
continue;
|
|
310
|
-
out.set(key, {
|
|
311
|
-
designatorID: designator.id,
|
|
312
|
-
phrase: designator.id,
|
|
313
|
-
surface: titleCase(designator.id),
|
|
314
|
-
identifierRequired: false,
|
|
315
|
-
modifierEligible: designator.modifierEligible,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
for (const promotion of promotions) {
|
|
320
|
-
if (promotion.decision !== "promote" || promotion.locale !== locale)
|
|
321
|
-
continue;
|
|
322
|
-
const designator = lexicon.designators.find((d) => d.id === promotion.designatorID);
|
|
323
|
-
const key = `${promotion.designatorID}|${promotion.phrase}`;
|
|
324
|
-
if (rejected.has(key))
|
|
325
|
-
continue;
|
|
326
|
-
out.set(key, {
|
|
327
|
-
designatorID: promotion.designatorID,
|
|
328
|
-
phrase: promotion.phrase,
|
|
329
|
-
surface: titleCase(promotion.phrase),
|
|
330
|
-
identifierRequired: promotion.shape === "identifier-required",
|
|
331
|
-
// A promotion marks a SURFACE usable; it does not widen the modifier grammar (the ledger's
|
|
332
|
-
// own words). Modifier eligibility stays the designator's, and only English legs read it.
|
|
333
|
-
modifierEligible: Boolean(designator?.modifierEligible) && promotion.shape !== "identifier-required",
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
return [...out.values()].toSorted((a, b) => a.phrase.localeCompare(b.phrase));
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* The phrases REJECTED in a locale — the negatives' vocabulary.
|
|
340
|
-
*/
|
|
341
|
-
export function rejectedPhrasesFor(locale, promotions = SUBVENUE_PROMOTIONS) {
|
|
342
|
-
return promotions.filter((p) => p.decision === "reject" && p.locale === locale).map((p) => p.phrase);
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Designators whose refs the pooled fallback is built from.
|
|
346
|
-
*
|
|
347
|
-
* `platform` and `station` are excluded deliberately even though they are by far the largest buckets (GB alone has
|
|
348
|
-
* 25,109 platform digits): a platform ref is a network identifier, and its `other` bucket is 7,549 rows of
|
|
349
|
-
* `kntgwdgj`-style source codes. The three kept here are the ones whose refs are what a person reads off a sign.
|
|
350
|
-
*/
|
|
351
|
-
const POOLED_IDENTIFIER_DESIGNATORS = ["gate", "terminal", "campus"];
|
|
352
|
-
/**
|
|
353
|
-
* Minimum usable observations before a (region, designator) uses its OWN identifier distribution.
|
|
354
|
-
*
|
|
355
|
-
* Below this the sample is noise — ES `terminal` has 5 usable refs — so the leg falls back to the region's pooled
|
|
356
|
-
* gate+terminal+campus distribution, which is what the lexicon measured at volume (452–655 refs per region). The
|
|
357
|
-
* fallback keeps the axis that matters (the REGION) and drops only the per-designator refinement.
|
|
358
|
-
*/
|
|
359
|
-
const MIN_OWN_SHAPE_OBSERVATIONS = 20;
|
|
360
|
-
/**
|
|
361
|
-
* Build the per-region identifier model out of the lexicon's `identifierShapes`.
|
|
362
|
-
*/
|
|
363
|
-
export function buildIdentifierModel(lexicon, region) {
|
|
364
|
-
const byDesignator = new Map();
|
|
365
|
-
const pooled = [];
|
|
366
|
-
for (const row of lexicon.identifierShapes) {
|
|
367
|
-
if (row.region !== region)
|
|
368
|
-
continue;
|
|
369
|
-
if (!USABLE_IDENTIFIER_SHAPES.has(row.shape))
|
|
370
|
-
continue;
|
|
371
|
-
const examples = row.examples.filter((e) => isSignIdentifier(e));
|
|
372
|
-
if (!examples.length)
|
|
373
|
-
continue;
|
|
374
|
-
const bucket = { shape: row.shape, observations: row.observations, examples };
|
|
375
|
-
const list = byDesignator.get(row.designatorID);
|
|
376
|
-
if (list) {
|
|
377
|
-
list.push(bucket);
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
byDesignator.set(row.designatorID, [bucket]);
|
|
381
|
-
}
|
|
382
|
-
if (POOLED_IDENTIFIER_DESIGNATORS.includes(row.designatorID)) {
|
|
383
|
-
pooled.push(bucket);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return { byDesignator, pooled };
|
|
387
|
-
}
|
|
388
|
-
/**
|
|
389
|
-
* Draw one identifier for `designatorID` in this region.
|
|
390
|
-
*
|
|
391
|
-
* Own distribution when it has {@link MIN_OWN_SHAPE_OBSERVATIONS} usable observations, else the region's pooled one.
|
|
392
|
-
* Shapes are weighted by observation count and an example is drawn uniformly inside the chosen shape — the lexicon
|
|
393
|
-
* ships up to eight per shape, which is the resolution available.
|
|
394
|
-
*/
|
|
395
|
-
export function sampleIdentifier(model, designatorID, random) {
|
|
396
|
-
const own = model.byDesignator.get(designatorID) ?? [];
|
|
397
|
-
const ownTotal = own.reduce((sum, b) => sum + b.observations, 0);
|
|
398
|
-
const buckets = ownTotal >= MIN_OWN_SHAPE_OBSERVATIONS ? own : model.pooled;
|
|
399
|
-
if (!buckets.length)
|
|
400
|
-
return null;
|
|
401
|
-
const total = buckets.reduce((sum, b) => sum + b.observations, 0);
|
|
402
|
-
let r = random() * total;
|
|
403
|
-
for (const bucket of buckets) {
|
|
404
|
-
r -= bucket.observations;
|
|
405
|
-
if (r < 0)
|
|
406
|
-
return bucket.examples[Math.floor(random() * bucket.examples.length)];
|
|
407
|
-
}
|
|
408
|
-
const last = buckets.at(-1);
|
|
409
|
-
return last.examples[Math.floor(random() * last.examples.length)];
|
|
410
|
-
}
|
|
411
|
-
/**
|
|
412
|
-
* The pools a source that has nothing to say contributes — en-US has no OSM extract, and DE/ES/GB are outside poi.db's
|
|
413
|
-
* four countries. Empty rather than absent so a leg's merge is unconditional.
|
|
414
|
-
*/
|
|
415
|
-
export const EMPTY_NAME_POOLS = {
|
|
416
|
-
venues: [],
|
|
417
|
-
attested: [],
|
|
418
|
-
rejectedVenues: [],
|
|
419
|
-
longerNames: [],
|
|
420
|
-
unpromotedShapes: [],
|
|
421
|
-
};
|
|
422
|
-
/**
|
|
423
|
-
* Is this name a designator sitting inside a longer proper name — the "Grand Central Terminal" class the span
|
|
424
|
-
* proposer's second structural guard already knows about, and which the corpus has to agree with?
|
|
425
|
-
*/
|
|
426
|
-
function isLongerProperName(low, name, designatorPhrases) {
|
|
427
|
-
return designatorPhrases.some((phrase) => containsPhrase(low, phrase) && !low.startsWith(phrase) && !/\d/.test(name));
|
|
428
|
-
}
|
|
429
|
-
/**
|
|
430
|
-
* Read one OSM extract and split it into name pools.
|
|
431
|
-
*/
|
|
432
|
-
export function readExtractPools(path, query) {
|
|
433
|
-
const rows = readSubVenueJSONL(path);
|
|
434
|
-
const venues = new Set();
|
|
435
|
-
const attested = new Set();
|
|
436
|
-
const rejectedVenues = new Set();
|
|
437
|
-
const longerNames = new Set();
|
|
438
|
-
const unpromotedShapes = new Set();
|
|
439
|
-
for (const row of rows) {
|
|
440
|
-
const name = (row.name ?? "").trim();
|
|
441
|
-
if (!name || !isCleanName(name))
|
|
442
|
-
continue;
|
|
443
|
-
const low = name.toLowerCase();
|
|
444
|
-
const venueSlot = isVenueSlotName(name);
|
|
445
|
-
if (row.tier === "venue" && venueSlot) {
|
|
446
|
-
venues.add(name);
|
|
447
|
-
}
|
|
448
|
-
for (const promoted of query.promoted) {
|
|
449
|
-
if (!containsPhrase(low, promoted.phrase))
|
|
450
|
-
continue;
|
|
451
|
-
if (!hasPromotedShape(low, promoted, query.modifiers, query.english)) {
|
|
452
|
-
if (venueSlot) {
|
|
453
|
-
unpromotedShapes.add(name);
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
else if (matchesPromotedShape(low, promoted, query.modifiers, query.english)) {
|
|
457
|
-
attested.add(name);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
if (!venueSlot)
|
|
461
|
-
continue;
|
|
462
|
-
if (query.rejectedPhrases.some((phrase) => containsPhrase(low, phrase))) {
|
|
463
|
-
rejectedVenues.add(name);
|
|
464
|
-
}
|
|
465
|
-
if (isLongerProperName(low, name, query.designatorPhrases)) {
|
|
466
|
-
longerNames.add(name);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
return {
|
|
470
|
-
venues: [...venues],
|
|
471
|
-
attested: [...attested],
|
|
472
|
-
rejectedVenues: [...rejectedVenues],
|
|
473
|
-
longerNames: [...longerNames],
|
|
474
|
-
unpromotedShapes: [...unpromotedShapes],
|
|
475
|
-
};
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Poi.db category ids this recipe reads, by category NAME (ids are assigned per build, so they are resolved at run time
|
|
479
|
-
* out of `poi_category_codes`).
|
|
480
|
-
*
|
|
481
|
-
* The venue set is the transport + institution categories whose rows name a whole venue — exactly what
|
|
482
|
-
* `overture-subvenue.ts` REJECTED as a lexicon source ("4,071 of them are the token `airport` in the aerodrome's own
|
|
483
|
-
* name") and exactly what a venue slot wants. The confound set is that file's rejection list read as a source of
|
|
484
|
-
* negatives: `shoe_store` contributes 708 hits of `wing` because Red Wing sells boots, and that is the row this shard
|
|
485
|
-
* needs to see with `wing` NOT tagged `unit`.
|
|
486
|
-
*/
|
|
487
|
-
const POI_VENUE_CATEGORIES = [
|
|
488
|
-
"airport",
|
|
489
|
-
"airport_terminal",
|
|
490
|
-
"train_station",
|
|
491
|
-
"hospital",
|
|
492
|
-
"college_university",
|
|
493
|
-
];
|
|
494
|
-
const POI_CONFOUND_CATEGORIES = [
|
|
495
|
-
"shoe_store",
|
|
496
|
-
"furniture_store",
|
|
497
|
-
"home_decor_store",
|
|
498
|
-
"town_hall",
|
|
499
|
-
"martial_arts_club",
|
|
500
|
-
"chicken_wings_restaurant",
|
|
501
|
-
"fire_station",
|
|
502
|
-
];
|
|
503
|
-
/**
|
|
504
|
-
* Read the venue + confound pools for a country out of `poi.db`.
|
|
505
|
-
*
|
|
506
|
-
* Poi.db is FOUR COUNTRIES — US 11,521,612 / CA 794,418 / FR 721,352 / MX 644,316 — so this is reachable for en-US and
|
|
507
|
-
* fr-FR and nothing else, and a zero here is evidence of absence in four countries rather than in the world.
|
|
508
|
-
*/
|
|
509
|
-
export function readPOIPools(dbPath, country, query) {
|
|
510
|
-
const db = new DatabaseSync(dbPath, { readOnly: true });
|
|
511
|
-
try {
|
|
512
|
-
const codes = db.prepare("select id, category from poi_category_codes").all();
|
|
513
|
-
const byName = new Map(codes.map((c) => [c.category, c.id]));
|
|
514
|
-
const venueIDs = POI_VENUE_CATEGORIES.map((c) => byName.get(c)).filter((id) => id != null);
|
|
515
|
-
const confoundIDs = POI_CONFOUND_CATEGORIES.map((c) => byName.get(c)).filter((id) => id != null);
|
|
516
|
-
const wanted = [...venueIDs, ...confoundIDs];
|
|
517
|
-
if (!wanted.length)
|
|
518
|
-
throw new Error(`poi.db at ${dbPath} has none of the expected categories`);
|
|
519
|
-
// One filtered full scan (measured 4.3 s over all 13,681,698 rows, 2026-08-05) rather than one
|
|
520
|
-
// query per category: `poi` is `without rowid` on (h3_cell, category_id, …), so a category
|
|
521
|
-
// predicate scans either way and scanning once is the cheaper shape.
|
|
522
|
-
const rows = db
|
|
523
|
-
.prepare(`select name, category_id from poi where country = ? and name is not null and category_id in (${wanted.map(() => "?").join(",")})`)
|
|
524
|
-
.all(country, ...wanted);
|
|
525
|
-
const venueSet = new Set(venueIDs);
|
|
526
|
-
const venues = new Set();
|
|
527
|
-
const rejectedVenues = new Set();
|
|
528
|
-
const longerNames = new Set();
|
|
529
|
-
for (const row of rows) {
|
|
530
|
-
const name = row.name.trim();
|
|
531
|
-
if (!isVenueSlotName(name))
|
|
532
|
-
continue;
|
|
533
|
-
const low = name.toLowerCase();
|
|
534
|
-
if (venueSet.has(row.category_id)) {
|
|
535
|
-
venues.add(name);
|
|
536
|
-
}
|
|
537
|
-
if (query.rejectedPhrases.some((phrase) => containsPhrase(low, phrase))) {
|
|
538
|
-
rejectedVenues.add(name);
|
|
539
|
-
}
|
|
540
|
-
if (isLongerProperName(low, name, query.designatorPhrases)) {
|
|
541
|
-
longerNames.add(name);
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
return {
|
|
545
|
-
venues: [...venues],
|
|
546
|
-
attested: [],
|
|
547
|
-
rejectedVenues: [...rejectedVenues],
|
|
548
|
-
longerNames: [...longerNames],
|
|
549
|
-
unpromotedShapes: [],
|
|
550
|
-
};
|
|
551
|
-
}
|
|
552
|
-
finally {
|
|
553
|
-
db.close();
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
/**
|
|
557
|
-
* Merge two sources' name pools.
|
|
558
|
-
*/
|
|
559
|
-
export function mergeNamePools(a, b) {
|
|
560
|
-
return {
|
|
561
|
-
venues: [...a.venues, ...b.venues],
|
|
562
|
-
attested: [...a.attested, ...b.attested],
|
|
563
|
-
rejectedVenues: [...a.rejectedVenues, ...b.rejectedVenues],
|
|
564
|
-
longerNames: [...a.longerNames, ...b.longerNames],
|
|
565
|
-
unpromotedShapes: [...a.unpromotedShapes, ...b.unpromotedShapes],
|
|
566
|
-
};
|
|
567
|
-
}
|
|
568
|
-
//#endregion
|
|
569
|
-
//#region Address context
|
|
570
|
-
/**
|
|
571
|
-
* DE + ES address context. Both read through {@link readLocaleTuples}, the `locale` recipe's own streaming + reservoir
|
|
572
|
-
* reader, so the CSV handling (quoted fields, CRLF, city-noise cleaning, the DE per-part region fallback) has exactly
|
|
573
|
-
* one implementation.
|
|
574
|
-
*
|
|
575
|
-
* DE reads `europe.zip`'s two members rather than `oa-cache/de__*.zip`: the cached per-state zips the `locale` recipe
|
|
576
|
-
* names are not materialized on this host, and the archive members are byte-identical to OA's current run (verified in
|
|
577
|
-
* `corpus/AGENTS.md`'s "a file's mtime is not its data's vintage" note).
|
|
578
|
-
*/
|
|
579
|
-
const CONTEXT_PARTS = {
|
|
580
|
-
DE: [
|
|
581
|
-
{ zip: dataRootPath("openaddresses", "europe.zip"), csv: "de/berlin.csv", region: "Berlin" },
|
|
582
|
-
{ zip: dataRootPath("openaddresses", "europe.zip"), csv: "de/sn/statewide.csv", region: "Sachsen" },
|
|
583
|
-
],
|
|
584
|
-
ES: [{ path: dataRootPath("openaddresses", "extracted", "es", "countrywide.csv") }],
|
|
585
|
-
};
|
|
586
|
-
/**
|
|
587
|
-
* Load the address skeletons every leg renders onto: GB / US / FR from the house-venue v3 tuples (the same 176,519 real
|
|
588
|
-
* rows the `synth-house-venue` shard is built from, so the two shards' address halves are drawn from one pool), DE and
|
|
589
|
-
* ES streamed out of OpenAddresses.
|
|
590
|
-
*/
|
|
591
|
-
export async function loadContextTuples(tuplesPath, seed) {
|
|
592
|
-
const byCountry = new Map();
|
|
593
|
-
for await (const tuple of readShardTuples(tuplesPath)) {
|
|
594
|
-
const country = String(tuple.country ?? "");
|
|
595
|
-
if (!country || !tuple.locality || !tuple.street)
|
|
596
|
-
continue;
|
|
597
|
-
const mapped = {
|
|
598
|
-
house_number: String(tuple.houseNumber ?? tuple.house_number ?? ""),
|
|
599
|
-
street: String(tuple.street),
|
|
600
|
-
locality: String(tuple.locality),
|
|
601
|
-
region: String(tuple.region ?? ""),
|
|
602
|
-
postcode: String(tuple.postcode ?? ""),
|
|
603
|
-
};
|
|
604
|
-
const list = byCountry.get(country);
|
|
605
|
-
if (list) {
|
|
606
|
-
list.push(mapped);
|
|
607
|
-
}
|
|
608
|
-
else {
|
|
609
|
-
byCountry.set(country, [mapped]);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
for (const [country, parts] of Object.entries(CONTEXT_PARTS)) {
|
|
613
|
-
if (byCountry.has(country))
|
|
614
|
-
continue;
|
|
615
|
-
const pooled = [];
|
|
616
|
-
for (const [index, part] of parts.entries()) {
|
|
617
|
-
// A dedicated stream PRNG, seeded per part, so the input sample is reproducible without
|
|
618
|
-
// perturbing the emit loop's draws (the `locale` recipe's rule, kept).
|
|
619
|
-
const streamRandom = makeMulberry32(seed + index);
|
|
620
|
-
for (const tuple of await readLocaleTuples(part, streamRandom)) {
|
|
621
|
-
pooled.push(tuple);
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
byCountry.set(country, pooled);
|
|
625
|
-
}
|
|
626
|
-
return byCountry;
|
|
627
|
-
}
|
|
628
|
-
/**
|
|
629
|
-
* Shortest token that can carry a `-gate` street suffix and still be a NAME rather than the bare word: `gate` itself is
|
|
630
|
-
* four characters, so the class starts at five (`Highgate`, `Moorgate`, `Stonegate`).
|
|
631
|
-
*/
|
|
632
|
-
const MIN_GATE_SUFFIX_TOKEN_LENGTH = 5;
|
|
633
|
-
export function buildStreetNegatives(context, designatorPhrases, modifiers, country) {
|
|
634
|
-
const designatorSet = new Set(designatorPhrases);
|
|
635
|
-
const modifierSet = new Set(modifiers);
|
|
636
|
-
const designator = [];
|
|
637
|
-
const modifierDesignator = [];
|
|
638
|
-
const gateSuffix = [];
|
|
639
|
-
for (const tuple of context) {
|
|
640
|
-
const tokens = tuple.street.toLowerCase().match(/[\p{L}]+/gu) ?? [];
|
|
641
|
-
let isDesignator = false;
|
|
642
|
-
let isPair = false;
|
|
643
|
-
for (const [index, token] of tokens.entries()) {
|
|
644
|
-
if (designatorSet.has(token)) {
|
|
645
|
-
isDesignator = true;
|
|
646
|
-
}
|
|
647
|
-
if (index + 1 < tokens.length && modifierSet.has(token) && designatorSet.has(tokens[index + 1])) {
|
|
648
|
-
isPair = true;
|
|
649
|
-
}
|
|
650
|
-
if (country === "GB" && token.length >= MIN_GATE_SUFFIX_TOKEN_LENGTH && token.endsWith("gate")) {
|
|
651
|
-
gateSuffix.push(tuple);
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
if (isPair) {
|
|
655
|
-
modifierDesignator.push(tuple);
|
|
656
|
-
}
|
|
657
|
-
else if (isDesignator) {
|
|
658
|
-
designator.push(tuple);
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
return { designator, modifierDesignator, gateSuffix };
|
|
662
|
-
}
|
|
663
|
-
//#endregion
|
|
664
|
-
//# sourceMappingURL=sub-venue-sources.js.map
|