@mailwoman/corpus 9.1.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 +24 -24
- package/data/PROVENANCE.md +20 -7
- package/data/reviewed-ve-postcode-tuples.json +74 -0
- 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/state-ia-contractors/adapter.ts +144 -0
- package/lib/adapters/state-ny-notaries/adapter.ts +141 -0
- package/lib/adapters/state-tx-notaries/adapter.ts +157 -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/license.ts +50 -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 +44 -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 +68 -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 +46 -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 +72 -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 +34 -0
- package/out/adapters/state-ia-contractors/adapter.d.ts.map +1 -0
- package/out/adapters/state-ia-contractors/adapter.js +111 -0
- package/out/adapters/state-ia-contractors/adapter.js.map +1 -0
- package/out/adapters/state-ny-notaries/adapter.d.ts +32 -0
- package/out/adapters/state-ny-notaries/adapter.d.ts.map +1 -0
- package/out/adapters/state-ny-notaries/adapter.js +119 -0
- package/out/adapters/state-ny-notaries/adapter.js.map +1 -0
- package/out/adapters/state-tx-notaries/adapter.d.ts +33 -0
- package/out/adapters/state-tx-notaries/adapter.d.ts.map +1 -0
- package/out/adapters/state-tx-notaries/adapter.js +125 -0
- package/out/adapters/state-tx-notaries/adapter.js.map +1 -0
- package/out/adapters/synth-po-box/adapter.d.ts +67 -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 +39 -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 +46 -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 +65 -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 +14 -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 +47 -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 +350 -65
- package/out/src/adapters/ban/adapter.d.ts +0 -44
- package/out/src/adapters/ban/adapter.d.ts.map +0 -1
- package/out/src/adapters/ban/adapter.js +0 -148
- 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 +0 -68
- 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 +0 -46
- 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 +0 -72
- 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 -132
- package/out/src/adapters/state-hi-schools/adapter.js.map +0 -1
- package/out/src/adapters/state-ia-contractors/adapter.d.ts +0 -34
- package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-ia-contractors/adapter.js +0 -106
- package/out/src/adapters/state-ia-contractors/adapter.js.map +0 -1
- package/out/src/adapters/state-ny-notaries/adapter.d.ts +0 -32
- package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-ny-notaries/adapter.js +0 -125
- package/out/src/adapters/state-ny-notaries/adapter.js.map +0 -1
- package/out/src/adapters/state-tx-notaries/adapter.d.ts +0 -33
- package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
- package/out/src/adapters/state-tx-notaries/adapter.js +0 -120
- package/out/src/adapters/state-tx-notaries/adapter.js.map +0 -1
- package/out/src/adapters/synth-po-box/adapter.d.ts +0 -67
- 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 -138
- 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 -110
- 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 -123
- 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 +0 -39
- 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 +0 -46
- 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 -155
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
- package/out/src/adapters/utils/index.d.ts +0 -144
- package/out/src/adapters/utils/index.d.ts.map +0 -1
- package/out/src/adapters/utils/index.js +0 -151
- package/out/src/adapters/utils/index.js.map +0 -1
- package/out/src/adapters/wof-admin-jp/adapter.d.ts +0 -65
- 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 -93
- package/out/src/adapters/wof-admin-json/adapter.d.ts.map +0 -1
- package/out/src/adapters/wof-admin-json/adapter.js +0 -248
- package/out/src/adapters/wof-admin-json/adapter.js.map +0 -1
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts +0 -70
- package/out/src/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
- package/out/src/adapters/wof-postalcode-json/adapter.js +0 -185
- package/out/src/adapters/wof-postalcode-json/adapter.js.map +0 -1
- package/out/src/build.d.ts +0 -131
- package/out/src/build.d.ts.map +0 -1
- package/out/src/build.js +0 -248
- 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 -64
- 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 -83
- package/out/src/shard-recipes/anchor-absorption.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 -405
- 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 -82
- 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 -187
- 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 -82
- 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 -225
- 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 -207
- 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 -83
- 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 -458
- 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/scaffold.d.ts +0 -217
- package/out/src/shard-recipes/scaffold.d.ts.map +0 -1
- package/out/src/shard-recipes/scaffold.js +0 -138
- 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 -709
- package/out/src/shard-recipes/sub-venue.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 -253
- 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 -220
- 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 -707
- 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 -255
- package/out/src/tools/fetch/ban.js.map +0 -1
- package/out/src/tools/fetch/download.d.ts +0 -69
- package/out/src/tools/fetch/download.d.ts.map +0 -1
- package/out/src/tools/fetch/download.js +0 -100
- package/out/src/tools/fetch/download.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 -133
- package/out/src/tools/fetch/index.d.ts.map +0 -1
- package/out/src/tools/fetch/index.js +0 -132
- 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 -225
- 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 -124
- 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 -316
- 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 -123
- package/out/src/tools/fetch/ourairports.js.map +0 -1
- package/out/src/tools/fetch/ppd.d.ts +0 -18
- 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 -178
- package/out/src/tools/fetch/state-hi-schools.js.map +0 -1
- package/out/src/tools/fetch/state-sources.d.ts +0 -22
- package/out/src/tools/fetch/state-sources.d.ts.map +0 -1
- package/out/src/tools/fetch/state-sources.js +0 -115
- 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 -254
- 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 -404
- 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 -307
- 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 -35
- package/out/src/tools/overlay-manifest.d.ts.map +0 -1
- package/out/src/tools/overlay-manifest.js +0 -88
- 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/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 -101
- 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 -197
- package/out/src/tools/shard-translit.js.map +0 -1
- package/out/src/tools/sub-venue-lexicon.d.ts +0 -507
- package/out/src/tools/sub-venue-lexicon.d.ts.map +0 -1
- package/out/src/tools/sub-venue-lexicon.js +0 -817
- 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 +0 -47
- package/out/src/utils/license.js.map +0 -1
- package/out/src/utils/parquet.d.ts +0 -143
- package/out/src/utils/parquet.d.ts.map +0 -1
- package/out/src/utils/parquet.js +0 -258
- 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 -189
- package/src/adapters/ban/street-decompose.ts +0 -96
- package/src/adapters/fcc-bdc/adapter.ts +0 -173
- package/src/adapters/geonames/adapter.ts +0 -199
- package/src/adapters/geonames-postal/adapter.ts +0 -118
- package/src/adapters/gnaf/adapter.ts +0 -148
- package/src/adapters/gnaf/assemble.ts +0 -226
- package/src/adapters/index.ts +0 -149
- package/src/adapters/openaddresses/adapter.ts +0 -250
- package/src/adapters/overture/adapter.ts +0 -161
- package/src/adapters/state-hi-schools/adapter.ts +0 -162
- package/src/adapters/state-ia-contractors/adapter.ts +0 -138
- package/src/adapters/state-ny-notaries/adapter.ts +0 -159
- package/src/adapters/state-tx-notaries/adapter.ts +0 -151
- package/src/adapters/synth-po-box/adapter.ts +0 -203
- package/src/adapters/tiger/adapter.ts +0 -252
- package/src/adapters/tiger/street-decompose.ts +0 -111
- package/src/adapters/usgov-hrsa-fqhc/adapter.ts +0 -181
- package/src/adapters/usgov-imls-pls/adapter.ts +0 -138
- package/src/adapters/usgov-irs-bmf/adapter.ts +0 -161
- package/src/adapters/usgov-nad/adapter.ts +0 -347
- package/src/adapters/usgov-nppes/adapter.ts +0 -157
- package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -202
- package/src/adapters/utils/index.ts +0 -220
- package/src/adapters/wof-admin-jp/adapter.ts +0 -219
- package/src/adapters/wof-admin-json/adapter.ts +0 -294
- package/src/adapters/wof-postalcode-json/adapter.ts +0 -216
- 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 -88
- package/src/parquet-wrapper/schema.ts +0 -88
- package/src/parquet-wrapper/writer.ts +0 -110
- package/src/runner.ts +0 -322
- package/src/shard-recipes/anchor-absorption.ts +0 -103
- package/src/shard-recipes/boundary-stress.ts +0 -104
- package/src/shard-recipes/country-balanced.ts +0 -522
- package/src/shard-recipes/cz-pcfirst-preposition.ts +0 -92
- package/src/shard-recipes/fr-admin-split.ts +0 -237
- package/src/shard-recipes/fr-bare-street.ts +0 -95
- package/src/shard-recipes/fr-fragment.ts +0 -332
- package/src/shard-recipes/fr-lieudit.ts +0 -300
- package/src/shard-recipes/fr-order.ts +0 -256
- package/src/shard-recipes/german.ts +0 -169
- package/src/shard-recipes/house-venue.ts +0 -88
- package/src/shard-recipes/index.ts +0 -89
- package/src/shard-recipes/intersection.ts +0 -629
- package/src/shard-recipes/locale.ts +0 -601
- 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 -919
- package/src/shard-recipes/po-box.ts +0 -123
- package/src/shard-recipes/scaffold.ts +0 -329
- package/src/shard-recipes/si-bare-village.ts +0 -97
- package/src/shard-recipes/street-affix.ts +0 -825
- 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 -895
- package/src/shard-recipes/sub-venue.ts +0 -982
- package/src/shard-recipes/unit.ts +0 -320
- package/src/synthesizers/anchor-absorption.ts +0 -290
- package/src/synthesizers/boundary-stress.ts +0 -531
- package/src/synthesizers/german.ts +0 -250
- package/src/synthesizers/house-venue.ts +0 -316
- 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 -272
- package/src/synthesizers/utils.ts +0 -901
- package/src/tools/align-shard.ts +0 -69
- package/src/tools/audit.ts +0 -399
- package/src/tools/corpus-stats.ts +0 -184
- package/src/tools/fetch/ban.ts +0 -310
- package/src/tools/fetch/download.ts +0 -158
- package/src/tools/fetch/hrsa.ts +0 -68
- package/src/tools/fetch/imls-pls.ts +0 -158
- package/src/tools/fetch/index.ts +0 -136
- package/src/tools/fetch/nad.ts +0 -331
- package/src/tools/fetch/nppes.ts +0 -172
- package/src/tools/fetch/openaddresses.ts +0 -408
- package/src/tools/fetch/ourairports.ts +0 -166
- package/src/tools/fetch/ppd.ts +0 -137
- package/src/tools/fetch/state-hi-schools.ts +0 -228
- package/src/tools/fetch/state-sources.ts +0 -155
- package/src/tools/fetch/tiger-full.ts +0 -361
- package/src/tools/fetch/wikidata-subvenue.ts +0 -386
- package/src/tools/golden-expand.ts +0 -573
- 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 -435
- 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 -145
- package/src/tools/overture-subvenue.ts +0 -215
- package/src/tools/shard-kryptonite.ts +0 -138
- package/src/tools/shard-translit.ts +0 -270
- package/src/tools/sub-venue-lexicon.ts +0 -1250
- package/src/tools/sub-venue-promotions.ts +0 -330
- package/src/types.ts +0 -247
- package/src/utils/align.ts +0 -330
- package/src/utils/golden.ts +0 -176
- package/src/utils/index.ts +0 -14
- package/src/utils/license.ts +0 -50
- package/src/utils/parquet.ts +0 -377
- package/src/utils/split.ts +0 -278
- package/src/utils/tokenize.ts +0 -78
- package/src/utils/wof-json.ts +0 -244
- /package/{src → lib}/codex/us-fips-state.ts +0 -0
- /package/{src → lib}/tools/gb-title-case.ts +0 -0
- /package/out/{src/adapters → adapters}/ban/street-decompose.d.ts +0 -0
- /package/out/{src/adapters → adapters}/tiger/street-decompose.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}/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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-irs-bmf`: IRS Exempt Organizations Business Master File (EO BMF) CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* The EO BMF is the IRS's authoritative registry of US tax-exempt organizations (charities,
|
|
9
|
+
* churches, foundations, ...), published as per-region CSVs at
|
|
10
|
+
* `https://www.irs.gov/charities-non-profits/exempt-organizations-business-master-file-extract-eo-bmf`
|
|
11
|
+
* (`eo1.csv`..`eo4.csv`, `eo_pr.csv`, `eo_xx.csv`). Each row carries an organization NAME plus
|
|
12
|
+
* its mailing address. It complements `usgov-nppes` with a DIFFERENT venue population
|
|
13
|
+
* (non-profits vs healthcare providers) and, notably, a high share of PO-box addresses — useful
|
|
14
|
+
* `po_box`-tag signal (a tag with historically low recall).
|
|
15
|
+
*
|
|
16
|
+
* Output: one row per record with a usable city + postcode. NAME → `venue`; the street line becomes
|
|
17
|
+
* `po_box` when it's a PO-box, else `house_number` + `street`; CITY/STATE/ZIP fill the locality
|
|
18
|
+
* line. STATE is already a USPS abbreviation in the source. License: `"Public Domain"` (US
|
|
19
|
+
* federal).
|
|
20
|
+
*/
|
|
21
|
+
import type { CorpusAdapter } from "#types";
|
|
22
|
+
/**
|
|
23
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
24
|
+
* it came from.
|
|
25
|
+
*/
|
|
26
|
+
export declare const USGOV_IRS_BMF_ADAPTER_ID = "usgov-irs-bmf";
|
|
27
|
+
/**
|
|
28
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
29
|
+
* than having to look them up.
|
|
30
|
+
*/
|
|
31
|
+
export declare const USGOV_IRS_BMF_DEFAULT_LICENSE = "Public Domain";
|
|
32
|
+
export declare function createUSGovIRSBMFAdapter(): CorpusAdapter;
|
|
33
|
+
/**
|
|
34
|
+
* The configured adapter instance registered with the corpus builder.
|
|
35
|
+
*/
|
|
36
|
+
export declare const USGovIRSBMFAdapter: CorpusAdapter;
|
|
37
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../lib/adapters/usgov-irs-bmf/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,kBAAkB,CAAA;AACvD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,kBAAkB,CAAA;AA+B5D,wBAAgB,wBAAwB,IAAI,aAAa,CA6ExD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAA6B,CAAA"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-irs-bmf`: IRS Exempt Organizations Business Master File (EO BMF) CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* The EO BMF is the IRS's authoritative registry of US tax-exempt organizations (charities,
|
|
9
|
+
* churches, foundations, ...), published as per-region CSVs at
|
|
10
|
+
* `https://www.irs.gov/charities-non-profits/exempt-organizations-business-master-file-extract-eo-bmf`
|
|
11
|
+
* (`eo1.csv`..`eo4.csv`, `eo_pr.csv`, `eo_xx.csv`). Each row carries an organization NAME plus
|
|
12
|
+
* its mailing address. It complements `usgov-nppes` with a DIFFERENT venue population
|
|
13
|
+
* (non-profits vs healthcare providers) and, notably, a high share of PO-box addresses — useful
|
|
14
|
+
* `po_box`-tag signal (a tag with historically low recall).
|
|
15
|
+
*
|
|
16
|
+
* Output: one row per record with a usable city + postcode. NAME → `venue`; the street line becomes
|
|
17
|
+
* `po_box` when it's a PO-box, else `house_number` + `street`; CITY/STATE/ZIP fill the locality
|
|
18
|
+
* line. STATE is already a USPS abbreviation in the source. License: `"Public Domain"` (US
|
|
19
|
+
* federal).
|
|
20
|
+
*/
|
|
21
|
+
import { isPresent } from "@mailwoman/core/objects";
|
|
22
|
+
import { reconcileComponents } from "@mailwoman/formatter";
|
|
23
|
+
import { CSVSpliterator } from "spliterator";
|
|
24
|
+
import { composeRaw, splitStreetLine, stableSourceID } from "#adapters/utils";
|
|
25
|
+
/**
|
|
26
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
27
|
+
* it came from.
|
|
28
|
+
*/
|
|
29
|
+
export const USGOV_IRS_BMF_ADAPTER_ID = "usgov-irs-bmf";
|
|
30
|
+
/**
|
|
31
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
32
|
+
* than having to look them up.
|
|
33
|
+
*/
|
|
34
|
+
export const USGOV_IRS_BMF_DEFAULT_LICENSE = "Public Domain";
|
|
35
|
+
/**
|
|
36
|
+
* PO box in its many written forms: "PO BOX 12", "P.O. BOX 12", "P O BOX 12", "POB 12", "BOX 12".
|
|
37
|
+
*/
|
|
38
|
+
const PO_BOX = /^\s*(?:P\.?\s?O\.?\s*BOX|POB|BOX)\s+\w/i;
|
|
39
|
+
/**
|
|
40
|
+
* Classify the street line into a `po_box` or a `{house_number?, street}` split.
|
|
41
|
+
*
|
|
42
|
+
* BMF mixes street addresses and PO boxes in one `STREET` column, so the PO-box shapes have to be claimed BEFORE the
|
|
43
|
+
* shared house-number split runs — otherwise `splitStreetLine` would hand back `"PO Box 1234"` as a plain street, which
|
|
44
|
+
* is correct for every other US adapter and wrong here.
|
|
45
|
+
*/
|
|
46
|
+
function splitStreetLineOrPOBox(street) {
|
|
47
|
+
const trimmed = street.trim();
|
|
48
|
+
if (PO_BOX.test(trimmed))
|
|
49
|
+
return { po_box: trimmed };
|
|
50
|
+
return splitStreetLine(trimmed);
|
|
51
|
+
}
|
|
52
|
+
export function createUSGovIRSBMFAdapter() {
|
|
53
|
+
return {
|
|
54
|
+
id: USGOV_IRS_BMF_ADAPTER_ID,
|
|
55
|
+
defaultLicense: USGOV_IRS_BMF_DEFAULT_LICENSE,
|
|
56
|
+
description: "IRS Exempt Organizations Business Master File — US non-profit venue+address (public-domain), with strong PO-box coverage.",
|
|
57
|
+
async *rows(opts) {
|
|
58
|
+
if (opts.country && opts.country !== "US") {
|
|
59
|
+
throw new Error(`usgov-irs-bmf adapter: only US supported, got country=${opts.country}`);
|
|
60
|
+
}
|
|
61
|
+
const rows = CSVSpliterator.fromAsync(opts.inputPath, {
|
|
62
|
+
mode: "object",
|
|
63
|
+
normalizeKeys: false,
|
|
64
|
+
enableQuoteHandling: true,
|
|
65
|
+
});
|
|
66
|
+
let emitted = 0;
|
|
67
|
+
for await (const record of rows) {
|
|
68
|
+
if (opts.signal?.aborted)
|
|
69
|
+
break;
|
|
70
|
+
if (opts.limit !== undefined && emitted >= opts.limit)
|
|
71
|
+
break;
|
|
72
|
+
const ein = (record.EIN ?? "").trim();
|
|
73
|
+
const venue = (record.NAME ?? "").trim() || undefined;
|
|
74
|
+
const street = (record.STREET ?? "").trim();
|
|
75
|
+
const city = (record.CITY ?? "").trim();
|
|
76
|
+
const state = (record.STATE ?? "").trim();
|
|
77
|
+
const zipRaw = (record.ZIP ?? "").trim();
|
|
78
|
+
if (!city || !zipRaw)
|
|
79
|
+
continue;
|
|
80
|
+
const postcode = zipRaw.split("-")[0].trim(); // 5-digit; drop the optional +4
|
|
81
|
+
const split = splitStreetLineOrPOBox(street);
|
|
82
|
+
if (!split)
|
|
83
|
+
continue;
|
|
84
|
+
const streetPart = "po_box" in split ? split.po_box : [split.house_number, split.street].filter(isPresent).join(" ");
|
|
85
|
+
const components = {
|
|
86
|
+
...(venue ? { venue } : {}),
|
|
87
|
+
...("po_box" in split
|
|
88
|
+
? { po_box: split.po_box }
|
|
89
|
+
: { ...(split.house_number ? { house_number: split.house_number } : {}), street: split.street }),
|
|
90
|
+
locality: city,
|
|
91
|
+
...(state ? { region: state } : {}),
|
|
92
|
+
postcode,
|
|
93
|
+
};
|
|
94
|
+
const raw = composeRaw({ venue, streetLine: streetPart, locality: city, region: state, postcode });
|
|
95
|
+
if (!raw)
|
|
96
|
+
continue;
|
|
97
|
+
const aligned = reconcileComponents(components, raw);
|
|
98
|
+
if (Object.keys(aligned).length <= 2)
|
|
99
|
+
continue;
|
|
100
|
+
const sourceID = ein ? `${USGOV_IRS_BMF_ADAPTER_ID}-${ein}` : stableSourceID(USGOV_IRS_BMF_ADAPTER_ID, aligned);
|
|
101
|
+
yield {
|
|
102
|
+
raw,
|
|
103
|
+
components: aligned,
|
|
104
|
+
country: "US",
|
|
105
|
+
locale: "en-US",
|
|
106
|
+
source: USGOV_IRS_BMF_ADAPTER_ID,
|
|
107
|
+
source_id: sourceID,
|
|
108
|
+
corpus_version: "",
|
|
109
|
+
license: USGOV_IRS_BMF_DEFAULT_LICENSE,
|
|
110
|
+
};
|
|
111
|
+
emitted++;
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The configured adapter instance registered with the corpus builder.
|
|
118
|
+
*/
|
|
119
|
+
export const USGovIRSBMFAdapter = createUSGovIRSBMFAdapter();
|
|
120
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../lib/adapters/usgov-irs-bmf/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-nad`: US DOT National Address Database — ~97M structured address-point records.
|
|
7
|
+
*
|
|
8
|
+
* The single largest US address source available — federal aggregation of state + local 911-grade
|
|
9
|
+
* address points (every addressable location). Compared to TIGER ADDRFEAT (~20M segment-level, no
|
|
10
|
+
* city/locality) and NPPES (~7M provider-centric venues), NAD covers the entire residential +
|
|
11
|
+
* commercial address space with full structured components.
|
|
12
|
+
*
|
|
13
|
+
* The adapter consumes NDJSON slices produced by `fetch-nad.ts`'s featureserver mode (operator
|
|
14
|
+
* pre-downloads via `mailwoman corpus fetch nad`). Each slice is per-OID-range
|
|
15
|
+
* `oids_<start>-<end>.ndjson` with a sibling `.manifest.json`. Adapter iterates every `.ndjson`
|
|
16
|
+
* in the input directory, skipping the `quarantined-bash-bug/` subdir (legacy of the bash-
|
|
17
|
+
* fetcher's silent-page-failure bug).
|
|
18
|
+
*
|
|
19
|
+
* Field mapping (NAD v9 → CanonicalRow components):
|
|
20
|
+
*
|
|
21
|
+
* - House_number: `AddNo_Full` (pre-composed); falls back to AddNum_Pre + Add_Number + AddNum_Suf
|
|
22
|
+
* - Street: `StNam_Full` (pre-composed); falls back to St_PreDir + St_PreTyp + St_Name + St_PosTyp
|
|
23
|
+
*
|
|
24
|
+
* - St_PosDir + St_PosMod composition
|
|
25
|
+
* - Locality: `Post_City` > `Inc_Muni` > `Census_Plc` > `Uninc_Comm` (first non-empty)
|
|
26
|
+
* - Region: `State` (2-char USPS code, including territories: PR, GU, VI, AS, MP)
|
|
27
|
+
* - Postcode: `Zip_Code` + `Plus_4` (joined as `XXXXX-NNNN` when both present)
|
|
28
|
+
* - Venue: `LandmkName` (typically a park, school, hospital, named facility — when present)
|
|
29
|
+
*
|
|
30
|
+
* License: stamped `"Public Domain"` per 17 U.S.C. § 105 (US federal works).
|
|
31
|
+
*/
|
|
32
|
+
import type { CorpusAdapter } from "#types";
|
|
33
|
+
/**
|
|
34
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
35
|
+
* it came from.
|
|
36
|
+
*/
|
|
37
|
+
export declare const USGOV_NAD_ADAPTER_ID = "usgov-nad";
|
|
38
|
+
/**
|
|
39
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
40
|
+
* than having to look them up.
|
|
41
|
+
*/
|
|
42
|
+
export declare const USGOV_NAD_DEFAULT_LICENSE = "Public Domain";
|
|
43
|
+
export declare function createUsgovNADAdapter(): CorpusAdapter;
|
|
44
|
+
/**
|
|
45
|
+
* The configured adapter instance registered with the corpus builder.
|
|
46
|
+
*/
|
|
47
|
+
export declare const usgovNADAdapter: CorpusAdapter;
|
|
48
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../lib/adapters/usgov-nad/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAUH,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAC/C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,kBAAkB,CAAA;AA8KxD,wBAAgB,qBAAqB,IAAI,aAAa,CAuGrD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAA0B,CAAA"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-nad`: US DOT National Address Database — ~97M structured address-point records.
|
|
7
|
+
*
|
|
8
|
+
* The single largest US address source available — federal aggregation of state + local 911-grade
|
|
9
|
+
* address points (every addressable location). Compared to TIGER ADDRFEAT (~20M segment-level, no
|
|
10
|
+
* city/locality) and NPPES (~7M provider-centric venues), NAD covers the entire residential +
|
|
11
|
+
* commercial address space with full structured components.
|
|
12
|
+
*
|
|
13
|
+
* The adapter consumes NDJSON slices produced by `fetch-nad.ts`'s featureserver mode (operator
|
|
14
|
+
* pre-downloads via `mailwoman corpus fetch nad`). Each slice is per-OID-range
|
|
15
|
+
* `oids_<start>-<end>.ndjson` with a sibling `.manifest.json`. Adapter iterates every `.ndjson`
|
|
16
|
+
* in the input directory, skipping the `quarantined-bash-bug/` subdir (legacy of the bash-
|
|
17
|
+
* fetcher's silent-page-failure bug).
|
|
18
|
+
*
|
|
19
|
+
* Field mapping (NAD v9 → CanonicalRow components):
|
|
20
|
+
*
|
|
21
|
+
* - House_number: `AddNo_Full` (pre-composed); falls back to AddNum_Pre + Add_Number + AddNum_Suf
|
|
22
|
+
* - Street: `StNam_Full` (pre-composed); falls back to St_PreDir + St_PreTyp + St_Name + St_PosTyp
|
|
23
|
+
*
|
|
24
|
+
* - St_PosDir + St_PosMod composition
|
|
25
|
+
* - Locality: `Post_City` > `Inc_Muni` > `Census_Plc` > `Uninc_Comm` (first non-empty)
|
|
26
|
+
* - Region: `State` (2-char USPS code, including territories: PR, GU, VI, AS, MP)
|
|
27
|
+
* - Postcode: `Zip_Code` + `Plus_4` (joined as `XXXXX-NNNN` when both present)
|
|
28
|
+
* - Venue: `LandmkName` (typically a park, school, hospital, named facility — when present)
|
|
29
|
+
*
|
|
30
|
+
* License: stamped `"Public Domain"` per 17 U.S.C. § 105 (US federal works).
|
|
31
|
+
*/
|
|
32
|
+
import { readDirectory } from "@mailwoman/core/fs/readers";
|
|
33
|
+
import { tryParsingJSON } from "@mailwoman/core/json";
|
|
34
|
+
import { isPresent } from "@mailwoman/core/objects";
|
|
35
|
+
import { reconcileComponents } from "@mailwoman/formatter";
|
|
36
|
+
import { join } from "path-ts";
|
|
37
|
+
import { TextSpliterator } from "spliterator";
|
|
38
|
+
import { composeRaw } from "#adapters/utils";
|
|
39
|
+
/**
|
|
40
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
41
|
+
* it came from.
|
|
42
|
+
*/
|
|
43
|
+
export const USGOV_NAD_ADAPTER_ID = "usgov-nad";
|
|
44
|
+
/**
|
|
45
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
46
|
+
* than having to look them up.
|
|
47
|
+
*/
|
|
48
|
+
export const USGOV_NAD_DEFAULT_LICENSE = "Public Domain";
|
|
49
|
+
const US_STATES_SET = new Set([
|
|
50
|
+
"AL",
|
|
51
|
+
"AK",
|
|
52
|
+
"AZ",
|
|
53
|
+
"AR",
|
|
54
|
+
"CA",
|
|
55
|
+
"CO",
|
|
56
|
+
"CT",
|
|
57
|
+
"DE",
|
|
58
|
+
"DC",
|
|
59
|
+
"FL",
|
|
60
|
+
"GA",
|
|
61
|
+
"HI",
|
|
62
|
+
"ID",
|
|
63
|
+
"IL",
|
|
64
|
+
"IN",
|
|
65
|
+
"IA",
|
|
66
|
+
"KS",
|
|
67
|
+
"KY",
|
|
68
|
+
"LA",
|
|
69
|
+
"ME",
|
|
70
|
+
"MD",
|
|
71
|
+
"MA",
|
|
72
|
+
"MI",
|
|
73
|
+
"MN",
|
|
74
|
+
"MS",
|
|
75
|
+
"MO",
|
|
76
|
+
"MT",
|
|
77
|
+
"NE",
|
|
78
|
+
"NV",
|
|
79
|
+
"NH",
|
|
80
|
+
"NJ",
|
|
81
|
+
"NM",
|
|
82
|
+
"NY",
|
|
83
|
+
"NC",
|
|
84
|
+
"ND",
|
|
85
|
+
"OH",
|
|
86
|
+
"OK",
|
|
87
|
+
"OR",
|
|
88
|
+
"PA",
|
|
89
|
+
"RI",
|
|
90
|
+
"SC",
|
|
91
|
+
"SD",
|
|
92
|
+
"TN",
|
|
93
|
+
"TX",
|
|
94
|
+
"UT",
|
|
95
|
+
"VT",
|
|
96
|
+
"VA",
|
|
97
|
+
"WA",
|
|
98
|
+
"WV",
|
|
99
|
+
"WI",
|
|
100
|
+
"WY",
|
|
101
|
+
// Territories that ship in NAD
|
|
102
|
+
"PR",
|
|
103
|
+
"GU",
|
|
104
|
+
"VI",
|
|
105
|
+
"AS",
|
|
106
|
+
"MP",
|
|
107
|
+
]);
|
|
108
|
+
function nonEmpty(...values) {
|
|
109
|
+
for (const v of values) {
|
|
110
|
+
const trimmed = (v ?? "").toString().trim();
|
|
111
|
+
if (trimmed)
|
|
112
|
+
return trimmed;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
function composeHouseNumber(r) {
|
|
117
|
+
const full = (r.AddNo_Full ?? "").toString().trim();
|
|
118
|
+
if (full)
|
|
119
|
+
return full;
|
|
120
|
+
const num = r.Add_Number == null ? "" : String(r.Add_Number).trim();
|
|
121
|
+
if (!num)
|
|
122
|
+
return undefined;
|
|
123
|
+
const pre = (r.AddNum_Pre ?? "").toString().trim();
|
|
124
|
+
const suf = (r.AddNum_Suf ?? "").toString().trim();
|
|
125
|
+
return [pre, num, suf].filter(isPresent).join(" ").trim() || undefined;
|
|
126
|
+
}
|
|
127
|
+
function decomposeNADStreet(r) {
|
|
128
|
+
const name = (r.St_Name ?? "").toString().trim();
|
|
129
|
+
if (name) {
|
|
130
|
+
const preDir = (r.St_PreDir ?? "").toString().trim();
|
|
131
|
+
const preTyp = (r.St_PreTyp ?? "").toString().trim();
|
|
132
|
+
const preSep = (r.St_PreSep ?? "").toString().trim();
|
|
133
|
+
const posTyp = (r.St_PosTyp ?? "").toString().trim();
|
|
134
|
+
const posDir = (r.St_PosDir ?? "").toString().trim();
|
|
135
|
+
const prefix = [preDir, preTyp, preSep].filter(isPresent).join(" ") || undefined;
|
|
136
|
+
const suffix = [posTyp, posDir].filter(isPresent).join(" ") || undefined;
|
|
137
|
+
const full = [prefix, name, suffix].filter(isPresent).join(" ");
|
|
138
|
+
return { prefix, street: name, suffix, full };
|
|
139
|
+
}
|
|
140
|
+
const full = (r.StNam_Full ?? "").toString().trim();
|
|
141
|
+
if (full)
|
|
142
|
+
return { full, street: full };
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
function composeLocality(r) {
|
|
146
|
+
return nonEmpty(r.Post_City, r.Inc_Muni, r.Census_Plc, r.Uninc_Comm);
|
|
147
|
+
}
|
|
148
|
+
function composePostcode(r) {
|
|
149
|
+
const zip = (r.Zip_Code ?? "").toString().trim();
|
|
150
|
+
if (!zip)
|
|
151
|
+
return undefined;
|
|
152
|
+
const plus4 = (r.Plus_4 ?? "").toString().trim();
|
|
153
|
+
return plus4 ? `${zip}-${plus4}` : zip;
|
|
154
|
+
}
|
|
155
|
+
export function createUsgovNADAdapter() {
|
|
156
|
+
return {
|
|
157
|
+
id: USGOV_NAD_ADAPTER_ID,
|
|
158
|
+
defaultLicense: USGOV_NAD_DEFAULT_LICENSE,
|
|
159
|
+
description: "US DOT National Address Database — ~97M structured US address points (911-grade). Single largest US source.",
|
|
160
|
+
async *rows(opts) {
|
|
161
|
+
if (opts.country && opts.country !== "US") {
|
|
162
|
+
throw new Error(`usgov-nad adapter: only US supported, got country=${opts.country}`);
|
|
163
|
+
}
|
|
164
|
+
// inputPath is a directory of NDJSON slices (per fetch-nad.ts featureserver output).
|
|
165
|
+
// Single-file inputs (e.g. a bulk-extracted CSV) are not currently supported — the
|
|
166
|
+
// featureserver slice pattern is the primary distribution.
|
|
167
|
+
const entries = await readDirectory(opts.inputPath);
|
|
168
|
+
const slices = entries.filter((n) => n.endsWith(".ndjson")).toSorted();
|
|
169
|
+
let emitted = 0;
|
|
170
|
+
outer: for (const slice of slices) {
|
|
171
|
+
if (opts.signal?.aborted)
|
|
172
|
+
break;
|
|
173
|
+
// TextSpliterator streams string lines; the per-line tryParsingJSON below keeps the reader
|
|
174
|
+
// tolerant of malformed rows (skip silently), so TextSpliterator + a non-throwing parse —
|
|
175
|
+
// not JSONSpliterator, which would throw. The path string lets the lib own + dispose each
|
|
176
|
+
// slice's file handle, including on the `break outer` early exit.
|
|
177
|
+
const lines = TextSpliterator.fromAsync(join(opts.inputPath, slice));
|
|
178
|
+
for await (const line of lines) {
|
|
179
|
+
if (opts.signal?.aborted)
|
|
180
|
+
break outer;
|
|
181
|
+
if (opts.limit !== undefined && emitted >= opts.limit)
|
|
182
|
+
break outer;
|
|
183
|
+
if (!line)
|
|
184
|
+
continue;
|
|
185
|
+
const record = tryParsingJSON(line);
|
|
186
|
+
if (record === null)
|
|
187
|
+
continue; // malformed line — skip silently
|
|
188
|
+
const state = (record.State ?? "").toString().trim().toUpperCase();
|
|
189
|
+
if (!US_STATES_SET.has(state))
|
|
190
|
+
continue;
|
|
191
|
+
const locality = composeLocality(record);
|
|
192
|
+
if (!locality)
|
|
193
|
+
continue;
|
|
194
|
+
const postcode = composePostcode(record);
|
|
195
|
+
if (!postcode)
|
|
196
|
+
continue;
|
|
197
|
+
const decomposed = decomposeNADStreet(record);
|
|
198
|
+
const houseNumber = composeHouseNumber(record);
|
|
199
|
+
const venue = nonEmpty(record.LandmkName);
|
|
200
|
+
const unit = nonEmpty(record.Unit, record.Building, record.Floor, record.Room);
|
|
201
|
+
const components = {
|
|
202
|
+
...(venue ? { venue } : {}),
|
|
203
|
+
...(houseNumber ? { house_number: houseNumber } : {}),
|
|
204
|
+
...(decomposed?.prefix ? { street_prefix: decomposed.prefix } : {}),
|
|
205
|
+
...(decomposed?.street ? { street: decomposed.street } : {}),
|
|
206
|
+
...(decomposed?.suffix ? { street_suffix: decomposed.suffix } : {}),
|
|
207
|
+
...(unit ? { unit } : {}),
|
|
208
|
+
locality,
|
|
209
|
+
region: state,
|
|
210
|
+
postcode,
|
|
211
|
+
};
|
|
212
|
+
const raw = composeRaw({
|
|
213
|
+
venue,
|
|
214
|
+
houseNumber,
|
|
215
|
+
street: decomposed?.full,
|
|
216
|
+
unit,
|
|
217
|
+
locality,
|
|
218
|
+
region: state,
|
|
219
|
+
postcode,
|
|
220
|
+
});
|
|
221
|
+
if (!raw)
|
|
222
|
+
continue;
|
|
223
|
+
const aligned = reconcileComponents(components, raw);
|
|
224
|
+
if (Object.keys(aligned).length <= 2)
|
|
225
|
+
continue;
|
|
226
|
+
const sourceID = record.UUID
|
|
227
|
+
? `${USGOV_NAD_ADAPTER_ID}-${record.UUID}`
|
|
228
|
+
: `${USGOV_NAD_ADAPTER_ID}-${record.OBJECTID ?? `${slice}:${emitted}`}`;
|
|
229
|
+
yield {
|
|
230
|
+
raw,
|
|
231
|
+
components: aligned,
|
|
232
|
+
country: "US",
|
|
233
|
+
locale: "en-US",
|
|
234
|
+
source: USGOV_NAD_ADAPTER_ID,
|
|
235
|
+
source_id: sourceID,
|
|
236
|
+
corpus_version: "",
|
|
237
|
+
license: USGOV_NAD_DEFAULT_LICENSE,
|
|
238
|
+
};
|
|
239
|
+
emitted++;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The configured adapter instance registered with the corpus builder.
|
|
247
|
+
*/
|
|
248
|
+
export const usgovNADAdapter = createUsgovNADAdapter();
|
|
249
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../lib/adapters/usgov-nad/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAC/C;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAA;AAgDxD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC7B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,+BAA+B;IAC/B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACJ,CAAC,CAAA;AAEF,SAAS,QAAQ,CAAC,GAAG,MAAwC;IAC5D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QAE3C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;IAC5B,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAY;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAEnD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IAEnE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAClD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAElD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAA;AACvE,CAAC;AASD,SAAS,kBAAkB,CAAC,CAAY;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAEhD,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;QAChF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;QACxE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAEnD,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAEvC,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,CAAY;IACpC,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,CAAY;IACpC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAEhD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAEhD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACpC,OAAO;QACN,EAAE,EAAE,oBAAoB;QACxB,cAAc,EAAE,yBAAyB;QACzC,WAAW,EACV,6GAA6G;QAE9G,KAAK,CAAC,CAAC,IAAI,CAAC,IAAoB;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;YACrF,CAAC;YAED,qFAAqF;YACrF,mFAAmF;YACnF,2DAA2D;YAC3D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAEtE,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,KAAK,EAAE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAK;gBAC/B,2FAA2F;gBAC3F,0FAA0F;gBAC1F,0FAA0F;gBAC1F,kEAAkE;gBAClE,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;gBAEpE,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBAChC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;wBAAE,MAAM,KAAK,CAAA;oBAErC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK;wBAAE,MAAM,KAAK,CAAA;oBAElE,IAAI,CAAC,IAAI;wBAAE,SAAQ;oBAEnB,MAAM,MAAM,GAAG,cAAc,CAAY,IAAI,CAAC,CAAA;oBAE9C,IAAI,MAAM,KAAK,IAAI;wBAAE,SAAQ,CAAC,iCAAiC;oBAE/D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAElE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,SAAQ;oBAEvC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;oBAExC,IAAI,CAAC,QAAQ;wBAAE,SAAQ;oBAEvB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;oBAExC,IAAI,CAAC,QAAQ;wBAAE,SAAQ;oBAEvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;oBAC7C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;oBAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;oBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;oBAE9E,MAAM,UAAU,GAA+B;wBAC9C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrD,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5D,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzB,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,QAAQ;qBACR,CAAA;oBAED,MAAM,GAAG,GAAG,UAAU,CAAC;wBACtB,KAAK;wBACL,WAAW;wBACX,MAAM,EAAE,UAAU,EAAE,IAAI;wBACxB,IAAI;wBACJ,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,QAAQ;qBACR,CAAC,CAAA;oBAEF,IAAI,CAAC,GAAG;wBAAE,SAAQ;oBAElB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;oBAEpD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;wBAAE,SAAQ;oBAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI;wBAC3B,CAAC,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,IAAI,EAAE;wBAC1C,CAAC,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,OAAO,EAAE,EAAE,CAAA;oBAExE,MAAM;wBACL,GAAG;wBACH,UAAU,EAAE,OAAO;wBACnB,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,oBAAoB;wBAC5B,SAAS,EAAE,QAAQ;wBACnB,cAAc,EAAE,EAAE;wBAClB,OAAO,EAAE,yBAAyB;qBAClC,CAAA;oBAED,OAAO,EAAE,CAAA;gBACV,CAAC;YACF,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-nppes`: CMS National Plan and Provider Enumeration System (NPI registry) CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* NPPES is the authoritative US healthcare provider registry, published monthly by CMS. Each row
|
|
9
|
+
* carries a provider's business practice location address together with their legal business name
|
|
10
|
+
* or individual name. At ~7M rows it is the single largest venue+address signal source
|
|
11
|
+
* available.
|
|
12
|
+
*
|
|
13
|
+
* The adapter consumes the monthly full-replacement CSV (operator pre-downloads via
|
|
14
|
+
* `fetch-nppes.ts`). Column names match the canonical NPPES "Full Replacement Monthly NPI File"
|
|
15
|
+
* header published at `https://download.cms.gov/nppes/NPI_Files.html`.
|
|
16
|
+
*
|
|
17
|
+
* Output: one row per CSV record where the practice location address is populated. Organization
|
|
18
|
+
* rows carry `venue` from the legal business name; individual rows compose `attention` from
|
|
19
|
+
* last+first name. Address quad goes on `(house_number, street, locality, region, postcode)`.
|
|
20
|
+
*
|
|
21
|
+
* License: stamped `"Public Domain"` per CMS's federal government distribution terms.
|
|
22
|
+
*/
|
|
23
|
+
import type { CorpusAdapter } from "#types";
|
|
24
|
+
/**
|
|
25
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
26
|
+
* it came from.
|
|
27
|
+
*/
|
|
28
|
+
export declare const USGOV_NPPES_ADAPTER_ID = "usgov-nppes";
|
|
29
|
+
/**
|
|
30
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
31
|
+
* than having to look them up.
|
|
32
|
+
*/
|
|
33
|
+
export declare const USGOV_NPPES_DEFAULT_LICENSE = "Public Domain";
|
|
34
|
+
export declare function createUsgovNPPESAdapter(): CorpusAdapter;
|
|
35
|
+
/**
|
|
36
|
+
* The configured adapter instance registered with the corpus builder.
|
|
37
|
+
*/
|
|
38
|
+
export declare const usgovNPPESAdapter: CorpusAdapter;
|
|
39
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../lib/adapters/usgov-nppes/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,OAAO,KAAK,EAAgC,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AACnD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,kBAAkB,CAAA;AAe1D,wBAAgB,uBAAuB,IAAI,aAAa,CA0FvD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA4B,CAAA"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `usgov-nppes`: CMS National Plan and Provider Enumeration System (NPI registry) CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* NPPES is the authoritative US healthcare provider registry, published monthly by CMS. Each row
|
|
9
|
+
* carries a provider's business practice location address together with their legal business name
|
|
10
|
+
* or individual name. At ~7M rows it is the single largest venue+address signal source
|
|
11
|
+
* available.
|
|
12
|
+
*
|
|
13
|
+
* The adapter consumes the monthly full-replacement CSV (operator pre-downloads via
|
|
14
|
+
* `fetch-nppes.ts`). Column names match the canonical NPPES "Full Replacement Monthly NPI File"
|
|
15
|
+
* header published at `https://download.cms.gov/nppes/NPI_Files.html`.
|
|
16
|
+
*
|
|
17
|
+
* Output: one row per CSV record where the practice location address is populated. Organization
|
|
18
|
+
* rows carry `venue` from the legal business name; individual rows compose `attention` from
|
|
19
|
+
* last+first name. Address quad goes on `(house_number, street, locality, region, postcode)`.
|
|
20
|
+
*
|
|
21
|
+
* License: stamped `"Public Domain"` per CMS's federal government distribution terms.
|
|
22
|
+
*/
|
|
23
|
+
import { isPresent } from "@mailwoman/core/objects";
|
|
24
|
+
import { reconcileComponents } from "@mailwoman/formatter";
|
|
25
|
+
import { CSVSpliterator } from "spliterator";
|
|
26
|
+
import { composeRaw, splitStreetLine, stableSourceID } from "#adapters/utils";
|
|
27
|
+
import { lookupStateAbbreviation } from "#codex/us-fips-state";
|
|
28
|
+
/**
|
|
29
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
30
|
+
* it came from.
|
|
31
|
+
*/
|
|
32
|
+
export const USGOV_NPPES_ADAPTER_ID = "usgov-nppes";
|
|
33
|
+
/**
|
|
34
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
35
|
+
* than having to look them up.
|
|
36
|
+
*/
|
|
37
|
+
export const USGOV_NPPES_DEFAULT_LICENSE = "Public Domain";
|
|
38
|
+
export function createUsgovNPPESAdapter() {
|
|
39
|
+
return {
|
|
40
|
+
id: USGOV_NPPES_ADAPTER_ID,
|
|
41
|
+
defaultLicense: USGOV_NPPES_DEFAULT_LICENSE,
|
|
42
|
+
description: "CMS National Plan and Provider Enumeration System — 7M provider practice locations (public-domain). Venue+address co-occurrence at scale.",
|
|
43
|
+
async *rows(opts) {
|
|
44
|
+
if (opts.country && opts.country !== "US") {
|
|
45
|
+
throw new Error(`usgov-nppes adapter: only US supported, got country=${opts.country}`);
|
|
46
|
+
}
|
|
47
|
+
const rows = CSVSpliterator.fromAsync(opts.inputPath, {
|
|
48
|
+
mode: "object",
|
|
49
|
+
normalizeKeys: false,
|
|
50
|
+
enableQuoteHandling: true,
|
|
51
|
+
});
|
|
52
|
+
let emitted = 0;
|
|
53
|
+
for await (const record of rows) {
|
|
54
|
+
if (opts.signal?.aborted)
|
|
55
|
+
break;
|
|
56
|
+
if (opts.limit !== undefined && emitted >= opts.limit)
|
|
57
|
+
break;
|
|
58
|
+
const npi = (record.NPI ?? "").trim();
|
|
59
|
+
const orgName = (record["Provider Organization Name (Legal Business Name)"] ?? "").trim();
|
|
60
|
+
const lastName = (record["Provider Last Name (Legal Name)"] ?? "").trim();
|
|
61
|
+
const firstName = (record["Provider First Name"] ?? "").trim();
|
|
62
|
+
const address1 = (record["Provider First Line Business Practice Location Address"] ?? "").trim();
|
|
63
|
+
const address2 = (record["Provider Second Line Business Practice Location Address"] ?? "").trim();
|
|
64
|
+
const city = (record["Provider Business Practice Location Address City Name"] ?? "").trim();
|
|
65
|
+
const stateRaw = (record["Provider Business Practice Location Address State Name"] ?? "").trim();
|
|
66
|
+
const postcode = (record["Provider Business Practice Location Address Postcode"] ?? "").trim();
|
|
67
|
+
if (!city || !postcode)
|
|
68
|
+
continue;
|
|
69
|
+
const state = lookupStateAbbreviation(stateRaw);
|
|
70
|
+
if (!state)
|
|
71
|
+
continue;
|
|
72
|
+
const fullStreet = [address1, address2].filter(isPresent).join(" ");
|
|
73
|
+
const split = splitStreetLine(fullStreet);
|
|
74
|
+
if (!split)
|
|
75
|
+
continue;
|
|
76
|
+
const venue = orgName || [firstName, lastName].filter(isPresent).join(" ") || undefined;
|
|
77
|
+
const components = {
|
|
78
|
+
...(venue ? { venue } : {}),
|
|
79
|
+
...(split.house_number ? { house_number: split.house_number } : {}),
|
|
80
|
+
street: split.street,
|
|
81
|
+
locality: city,
|
|
82
|
+
region: state.abbreviation,
|
|
83
|
+
postcode,
|
|
84
|
+
};
|
|
85
|
+
const raw = composeRaw({
|
|
86
|
+
venue,
|
|
87
|
+
houseNumber: split.house_number,
|
|
88
|
+
street: split.street,
|
|
89
|
+
locality: city,
|
|
90
|
+
region: state.abbreviation,
|
|
91
|
+
postcode,
|
|
92
|
+
});
|
|
93
|
+
if (!raw)
|
|
94
|
+
continue;
|
|
95
|
+
const aligned = reconcileComponents(components, raw);
|
|
96
|
+
if (Object.keys(aligned).length <= 2)
|
|
97
|
+
continue;
|
|
98
|
+
const sourceID = npi ? `${USGOV_NPPES_ADAPTER_ID}-${npi}` : stableSourceID(USGOV_NPPES_ADAPTER_ID, aligned);
|
|
99
|
+
yield {
|
|
100
|
+
raw,
|
|
101
|
+
components: aligned,
|
|
102
|
+
country: "US",
|
|
103
|
+
locale: "en-US",
|
|
104
|
+
source: USGOV_NPPES_ADAPTER_ID,
|
|
105
|
+
source_id: sourceID,
|
|
106
|
+
corpus_version: "",
|
|
107
|
+
license: USGOV_NPPES_DEFAULT_LICENSE,
|
|
108
|
+
};
|
|
109
|
+
emitted++;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The configured adapter instance registered with the corpus builder.
|
|
116
|
+
*/
|
|
117
|
+
export const usgovNPPESAdapter = createUsgovNPPESAdapter();
|
|
118
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../lib/adapters/usgov-nppes/adapter.ts"],"names":[],"mappings":"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"}
|