@mailwoman/corpus 9.3.0 → 10.0.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 +16 -0
- package/lib/adapters/geonames/adapter.ts +3 -3
- package/lib/adapters/geonames/postal/adapter.ts +122 -0
- package/lib/adapters/index.ts +39 -32
- package/lib/adapters/openaddresses/adapter.ts +4 -7
- package/lib/adapters/osm/adapter.ts +278 -0
- package/lib/adapters/overture/adapter.ts +22 -7
- package/lib/adapters/utils/index.ts +1 -1
- package/lib/adapters/wof/admin/json/adapter.ts +239 -0
- package/lib/adapters/wof/json-rows.ts +181 -0
- package/lib/adapters/wof/postalcode-json/adapter.ts +196 -0
- package/lib/au/adapters/gnaf/adapter.ts +152 -0
- package/lib/au/adapters/gnaf/assemble.ts +225 -0
- package/lib/cz/recipes/pcfirst-preposition.ts +112 -0
- package/lib/de/recipes/locale.ts +360 -0
- package/lib/fr/adapters/ban/adapter.ts +159 -0
- package/lib/fr/recipes/admin-split.ts +243 -0
- package/lib/fr/recipes/bare-street.ts +171 -0
- package/lib/fr/recipes/fragment.ts +334 -0
- package/lib/fr/recipes/lieudit.ts +274 -0
- package/lib/fr/recipes/order.ts +246 -0
- package/lib/fr/tools/fetch/ban.ts +289 -0
- package/lib/index.ts +1 -1
- package/lib/international/recipes/locale.ts +598 -0
- package/lib/jp/tools/fetch/houjin.ts +141 -0
- package/lib/kr/adapters/juso/label-rows.ts +259 -0
- package/lib/kr/adapters/localdata/align.ts +299 -0
- package/lib/kr/adapters/localdata/key-index.ts +185 -0
- package/lib/kr/adapters/localdata/permit-rows.ts +186 -0
- package/lib/kr/tools/fetch/juso.ts +172 -0
- package/lib/kr/tools/fetch/localdata.ts +206 -0
- package/lib/nl/recipes/postcode.ts +117 -0
- package/lib/no/recipes/fragment.ts +213 -0
- package/lib/no/recipes/street/index.ts +91 -0
- package/lib/no/recipes/street/led.ts +135 -0
- package/lib/recipes/anchor-absorption.ts +2 -2
- package/lib/recipes/bare/country.ts +95 -0
- package/lib/recipes/bare/postcode/eval.ts +99 -0
- package/lib/recipes/bare/postcode/index.ts +327 -0
- package/lib/recipes/boundary-stress.ts +3 -1
- package/lib/recipes/country-balanced.ts +3 -2
- package/lib/recipes/house-venue.ts +2 -1
- package/lib/recipes/index.ts +28 -21
- package/lib/recipes/intersection.ts +3 -2
- package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
- package/lib/recipes/po/box/cedex/ca.ts +58 -0
- package/lib/recipes/po/box/cedex/fr.ts +76 -0
- package/lib/recipes/po/box/cedex/phrases.ts +108 -0
- package/lib/recipes/po/box/cedex/recipe.ts +203 -0
- package/lib/recipes/po/box/cedex/sources.ts +189 -0
- package/lib/recipes/po/box/cedex/types.ts +35 -0
- package/lib/recipes/po/box/cedex/us.ts +69 -0
- package/lib/recipes/po/box/cedex/vocabulary.ts +106 -0
- package/lib/recipes/po/box/cedex.ts +9 -0
- package/lib/recipes/po/box/index.ts +128 -0
- package/lib/recipes/scaffold.ts +18 -42
- package/lib/recipes/street/affix.ts +807 -0
- package/lib/recipes/street/bare.ts +102 -0
- package/lib/recipes/street.ts +3 -1
- package/lib/recipes/sub/venue/context.ts +149 -0
- package/lib/recipes/sub/venue/index.ts +997 -0
- package/lib/recipes/sub/venue/sources.ts +739 -0
- package/lib/recipes/trailing-region.ts +9 -9
- package/lib/recipes/unit.ts +3 -3
- package/lib/sg/recipes/register.ts +270 -0
- package/lib/sg/tools/fetch/acra.ts +179 -0
- package/lib/si/recipes/bare-village.ts +99 -0
- package/lib/south-asia/recipes/register.ts +214 -0
- package/lib/synthesizers/anchor-absorption.ts +1 -1
- package/lib/synthesizers/locale.ts +261 -0
- package/lib/synthesizers/street.ts +1 -1
- package/lib/synthesizers/utils.ts +2 -2
- package/lib/tools/audit.ts +3 -2
- package/lib/tools/corpus-stats.ts +3 -3
- package/lib/tools/fetch/download/index.ts +10 -0
- package/lib/tools/fetch/download/manifest.ts +102 -0
- package/lib/tools/fetch/download/network.ts +226 -0
- package/lib/tools/fetch/download/retry.ts +173 -0
- package/lib/tools/fetch/geonames/dump.ts +257 -0
- package/lib/tools/fetch/geonames/postal.ts +180 -0
- package/lib/tools/fetch/index.ts +47 -20
- package/lib/tools/fetch/openaddresses.ts +2 -2
- package/lib/tools/fetch/ourairports.ts +2 -2
- package/lib/tools/fetch/ppd.ts +1 -3
- package/lib/tools/fetch/wikidata-subvenue.ts +2 -2
- package/lib/tools/golden/promote.ts +340 -0
- package/lib/tools/golden/relabel-street/directory.ts +340 -0
- package/lib/tools/golden/relabel-street/index.ts +9 -0
- package/lib/tools/golden/relabel-street/row.ts +361 -0
- package/lib/tools/index.ts +10 -10
- package/lib/tools/ingest-csv.ts +5 -7
- package/lib/tools/lint/slice/vocab.ts +376 -0
- package/lib/tools/overlay-manifest.ts +92 -25
- package/lib/tools/overture-subvenue.ts +1 -1
- package/lib/tools/postcode-triples.ts +138 -14
- package/lib/tools/sub/venue/harvest.ts +234 -0
- package/lib/tools/sub/venue/head-nouns.ts +245 -0
- package/lib/tools/sub/venue/lexicon.ts +429 -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/tw/tools/fetch/gcis.ts +180 -0
- package/lib/types.ts +1 -1
- package/lib/us/adapters/fcc-bdc/adapter.ts +173 -0
- package/lib/us/adapters/state/hi-schools/adapter.ts +160 -0
- package/lib/us/adapters/state/ia-contractors/adapter.ts +136 -0
- package/lib/us/adapters/state/ny-notaries/adapter.ts +133 -0
- package/lib/us/adapters/state/tx-notaries/adapter.ts +149 -0
- package/lib/us/adapters/tiger/adapter.ts +250 -0
- package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +156 -0
- package/lib/us/adapters/usgov/imls-pls/adapter.ts +134 -0
- package/lib/us/adapters/usgov/irs-bmf/adapter.ts +145 -0
- package/lib/us/adapters/usgov/nad/adapter.ts +324 -0
- package/lib/us/adapters/usgov/nppes/adapter.ts +143 -0
- package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +182 -0
- package/lib/us/tools/fetch/hrsa.ts +59 -0
- package/lib/us/tools/fetch/imls-pls.ts +149 -0
- package/lib/us/tools/fetch/nad.ts +341 -0
- package/lib/us/tools/fetch/nppes.ts +165 -0
- package/lib/us/tools/fetch/state/hi-schools.ts +161 -0
- package/lib/us/tools/fetch/state/sources.ts +146 -0
- package/lib/us/tools/fetch/tiger-full.ts +308 -0
- package/lib/utils/align.ts +1 -1
- package/lib/utils/golden.ts +12 -8
- package/lib/utils/wof-json.ts +7 -13
- package/out/adapters/geonames/adapter.d.ts +1 -1
- package/out/adapters/geonames/adapter.js +3 -3
- package/out/adapters/geonames/adapter.js.map +1 -1
- 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/index.d.ts +16 -16
- package/out/adapters/index.d.ts.map +1 -1
- package/out/adapters/index.js +34 -32
- package/out/adapters/index.js.map +1 -1
- package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/adapters/openaddresses/adapter.js +4 -6
- package/out/adapters/openaddresses/adapter.js.map +1 -1
- package/out/adapters/osm/adapter.d.ts +95 -0
- package/out/adapters/osm/adapter.d.ts.map +1 -0
- package/out/adapters/osm/adapter.js +211 -0
- package/out/adapters/osm/adapter.js.map +1 -0
- package/out/adapters/overture/adapter.d.ts +10 -0
- package/out/adapters/overture/adapter.d.ts.map +1 -1
- package/out/adapters/overture/adapter.js +20 -7
- package/out/adapters/overture/adapter.js.map +1 -1
- package/out/adapters/synth-po-box/adapter.js.map +1 -1
- package/out/adapters/utils/index.d.ts +1 -1
- package/out/adapters/utils/index.d.ts.map +1 -1
- package/out/adapters/utils/index.js.map +1 -1
- 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 +204 -0
- package/out/adapters/wof/admin/json/adapter.js.map +1 -0
- package/out/adapters/wof/json-rows.d.ts +73 -0
- package/out/adapters/wof/json-rows.d.ts.map +1 -0
- package/out/adapters/wof/json-rows.js +115 -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 +167 -0
- package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
- package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
- package/out/au/adapters/gnaf/adapter.js +127 -0
- package/out/au/adapters/gnaf/adapter.js.map +1 -0
- package/out/au/adapters/gnaf/assemble.d.ts +65 -0
- package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
- package/out/au/adapters/gnaf/assemble.js +154 -0
- package/out/au/adapters/gnaf/assemble.js.map +1 -0
- package/out/cn/recipes/organizational-units.d.ts +36 -0
- package/out/cn/recipes/organizational-units.d.ts.map +1 -0
- package/out/cn/recipes/organizational-units.js +159 -0
- package/out/cn/recipes/organizational-units.js.map +1 -0
- package/out/cz/recipes/pcfirst-preposition.d.ts +22 -0
- package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
- package/out/cz/recipes/pcfirst-preposition.js +101 -0
- package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
- package/out/de/recipes/locale.d.ts +44 -0
- package/out/de/recipes/locale.d.ts.map +1 -0
- package/out/de/recipes/locale.js +289 -0
- package/out/de/recipes/locale.js.map +1 -0
- package/out/env.d.ts +1 -1
- package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
- package/out/fr/adapters/ban/adapter.js +123 -0
- package/out/fr/adapters/ban/adapter.js.map +1 -0
- package/out/fr/adapters/ban/street-decompose.d.ts.map +1 -0
- package/out/fr/adapters/ban/street-decompose.js.map +1 -0
- package/out/fr/recipes/admin-split.d.ts +38 -0
- package/out/fr/recipes/admin-split.d.ts.map +1 -0
- package/out/fr/recipes/admin-split.js +192 -0
- package/out/fr/recipes/admin-split.js.map +1 -0
- package/out/fr/recipes/bare-street.d.ts +28 -0
- package/out/fr/recipes/bare-street.d.ts.map +1 -0
- package/out/fr/recipes/bare-street.js +144 -0
- package/out/fr/recipes/bare-street.js.map +1 -0
- package/out/fr/recipes/fragment.d.ts +77 -0
- package/out/fr/recipes/fragment.d.ts.map +1 -0
- package/out/fr/recipes/fragment.js +277 -0
- package/out/fr/recipes/fragment.js.map +1 -0
- package/out/fr/recipes/lieudit.d.ts +32 -0
- package/out/fr/recipes/lieudit.d.ts.map +1 -0
- package/out/fr/recipes/lieudit.js +211 -0
- package/out/fr/recipes/lieudit.js.map +1 -0
- package/out/fr/recipes/order.d.ts +38 -0
- package/out/fr/recipes/order.d.ts.map +1 -0
- package/out/fr/recipes/order.js +198 -0
- package/out/fr/recipes/order.js.map +1 -0
- package/out/fr/tools/fetch/ban.d.ts +31 -0
- package/out/fr/tools/fetch/ban.d.ts.map +1 -0
- package/out/fr/tools/fetch/ban.js +239 -0
- package/out/fr/tools/fetch/ban.js.map +1 -0
- package/out/index.d.ts +1 -1
- package/out/index.d.ts.map +1 -1
- package/out/index.js +1 -1
- package/out/index.js.map +1 -1
- package/out/international/recipes/locale.d.ts +136 -0
- package/out/international/recipes/locale.d.ts.map +1 -0
- package/out/international/recipes/locale.js +458 -0
- package/out/international/recipes/locale.js.map +1 -0
- package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
- package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
- package/out/jp/tools/fetch/houjin.d.ts +24 -0
- package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
- package/out/jp/tools/fetch/houjin.js +102 -0
- package/out/jp/tools/fetch/houjin.js.map +1 -0
- package/out/kr/adapters/juso/label-rows.d.ts +76 -0
- package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
- package/out/kr/adapters/juso/label-rows.js +194 -0
- package/out/kr/adapters/juso/label-rows.js.map +1 -0
- package/out/kr/adapters/localdata/align.d.ts +43 -0
- package/out/kr/adapters/localdata/align.d.ts.map +1 -0
- package/out/kr/adapters/localdata/align.js +223 -0
- package/out/kr/adapters/localdata/align.js.map +1 -0
- package/out/kr/adapters/localdata/key-index.d.ts +71 -0
- package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
- package/out/kr/adapters/localdata/key-index.js +133 -0
- package/out/kr/adapters/localdata/key-index.js.map +1 -0
- package/out/kr/adapters/localdata/permit-rows.d.ts +66 -0
- package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
- package/out/kr/adapters/localdata/permit-rows.js +131 -0
- package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
- package/out/kr/tools/fetch/juso.d.ts +30 -0
- package/out/kr/tools/fetch/juso.d.ts.map +1 -0
- package/out/kr/tools/fetch/juso.js +120 -0
- package/out/kr/tools/fetch/juso.js.map +1 -0
- package/out/kr/tools/fetch/localdata.d.ts +30 -0
- package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
- package/out/kr/tools/fetch/localdata.js +139 -0
- package/out/kr/tools/fetch/localdata.js.map +1 -0
- package/out/nl/recipes/postcode.d.ts +26 -0
- package/out/nl/recipes/postcode.d.ts.map +1 -0
- package/out/nl/recipes/postcode.js +103 -0
- package/out/nl/recipes/postcode.js.map +1 -0
- package/out/no/recipes/fragment.d.ts +43 -0
- package/out/no/recipes/fragment.d.ts.map +1 -0
- package/out/no/recipes/fragment.js +183 -0
- package/out/no/recipes/fragment.js.map +1 -0
- package/out/no/recipes/street/index.d.ts +18 -0
- package/out/no/recipes/street/index.d.ts.map +1 -0
- package/out/no/recipes/street/index.js +72 -0
- package/out/no/recipes/street/index.js.map +1 -0
- package/out/no/recipes/street/led.d.ts +24 -0
- package/out/no/recipes/street/led.d.ts.map +1 -0
- package/out/no/recipes/street/led.js +114 -0
- package/out/no/recipes/street/led.js.map +1 -0
- package/out/recipes/anchor-absorption.d.ts.map +1 -1
- package/out/recipes/anchor-absorption.js +2 -1
- package/out/recipes/anchor-absorption.js.map +1 -1
- 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 +88 -0
- package/out/recipes/bare/country.js.map +1 -0
- package/out/recipes/bare/postcode/eval.d.ts +29 -0
- package/out/recipes/bare/postcode/eval.d.ts.map +1 -0
- package/out/recipes/bare/postcode/eval.js +85 -0
- package/out/recipes/bare/postcode/eval.js.map +1 -0
- package/out/recipes/bare/postcode/index.d.ts +62 -0
- package/out/recipes/bare/postcode/index.d.ts.map +1 -0
- package/out/recipes/bare/postcode/index.js +267 -0
- package/out/recipes/bare/postcode/index.js.map +1 -0
- package/out/recipes/boundary-stress.d.ts.map +1 -1
- package/out/recipes/boundary-stress.js +2 -1
- package/out/recipes/boundary-stress.js.map +1 -1
- package/out/recipes/country-balanced.d.ts.map +1 -1
- package/out/recipes/country-balanced.js +2 -1
- package/out/recipes/country-balanced.js.map +1 -1
- package/out/recipes/house-venue.d.ts.map +1 -1
- package/out/recipes/house-venue.js +2 -1
- package/out/recipes/house-venue.js.map +1 -1
- package/out/recipes/index.d.ts.map +1 -1
- package/out/recipes/index.js +28 -21
- package/out/recipes/index.js.map +1 -1
- package/out/recipes/intersection.d.ts.map +1 -1
- package/out/recipes/intersection.js +2 -1
- package/out/recipes/intersection.js.map +1 -1
- package/out/recipes/po/box/cedex/au-nz.d.ts +7 -0
- package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/au-nz.js +56 -0
- package/out/recipes/po/box/cedex/au-nz.js.map +1 -0
- package/out/recipes/po/box/cedex/ca.d.ts +7 -0
- package/out/recipes/po/box/cedex/ca.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/ca.js +38 -0
- package/out/recipes/po/box/cedex/ca.js.map +1 -0
- package/out/recipes/po/box/cedex/fr.d.ts +7 -0
- package/out/recipes/po/box/cedex/fr.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/fr.js +57 -0
- package/out/recipes/po/box/cedex/fr.js.map +1 -0
- package/out/recipes/po/box/cedex/phrases.d.ts +8 -0
- package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/phrases.js +76 -0
- package/out/recipes/po/box/cedex/phrases.js.map +1 -0
- package/out/recipes/po/box/cedex/recipe.d.ts +9 -0
- package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/recipe.js +153 -0
- package/out/recipes/po/box/cedex/recipe.js.map +1 -0
- package/out/recipes/po/box/cedex/sources.d.ts +86 -0
- package/out/recipes/po/box/cedex/sources.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/sources.js +143 -0
- package/out/recipes/po/box/cedex/sources.js.map +1 -0
- package/out/recipes/po/box/cedex/types.d.ts +31 -0
- package/out/recipes/po/box/cedex/types.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/types.js +5 -0
- package/out/recipes/po/box/cedex/types.js.map +1 -0
- package/out/recipes/po/box/cedex/us.d.ts +7 -0
- package/out/recipes/po/box/cedex/us.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/us.js +51 -0
- package/out/recipes/po/box/cedex/us.js.map +1 -0
- package/out/recipes/po/box/cedex/vocabulary.d.ts +68 -0
- package/out/recipes/po/box/cedex/vocabulary.d.ts.map +1 -0
- package/out/recipes/po/box/cedex/vocabulary.js +90 -0
- package/out/recipes/po/box/cedex/vocabulary.js.map +1 -0
- package/out/recipes/po/box/cedex.d.ts +9 -0
- package/out/recipes/po/box/cedex.d.ts.map +1 -0
- package/out/recipes/po/box/cedex.js +9 -0
- package/out/recipes/po/box/cedex.js.map +1 -0
- package/out/recipes/po/box/index.d.ts +17 -0
- package/out/recipes/po/box/index.d.ts.map +1 -0
- package/out/recipes/po/box/index.js +105 -0
- package/out/recipes/po/box/index.js.map +1 -0
- package/out/recipes/scaffold.d.ts +20 -1
- package/out/recipes/scaffold.d.ts.map +1 -1
- package/out/recipes/scaffold.js +18 -49
- package/out/recipes/scaffold.js.map +1 -1
- 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 +565 -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 +87 -0
- package/out/recipes/street/bare.js.map +1 -0
- package/out/recipes/street.d.ts.map +1 -1
- package/out/recipes/street.js +2 -1
- package/out/recipes/street.js.map +1 -1
- package/out/recipes/sub/venue/context.d.ts +29 -0
- package/out/recipes/sub/venue/context.d.ts.map +1 -0
- package/out/recipes/sub/venue/context.js +106 -0
- package/out/recipes/sub/venue/context.js.map +1 -0
- package/out/recipes/sub/venue/index.d.ts +270 -0
- package/out/recipes/sub/venue/index.d.ts.map +1 -0
- package/out/recipes/sub/venue/index.js +728 -0
- package/out/recipes/sub/venue/index.js.map +1 -0
- package/out/recipes/sub/venue/sources.d.ts +209 -0
- package/out/recipes/sub/venue/sources.d.ts.map +1 -0
- package/out/recipes/sub/venue/sources.js +555 -0
- package/out/recipes/sub/venue/sources.js.map +1 -0
- package/out/recipes/trailing-region.d.ts.map +1 -1
- package/out/recipes/trailing-region.js +8 -2
- package/out/recipes/trailing-region.js.map +1 -1
- package/out/recipes/unit.d.ts.map +1 -1
- package/out/recipes/unit.js +2 -1
- package/out/recipes/unit.js.map +1 -1
- package/out/sg/recipes/register.d.ts +69 -0
- package/out/sg/recipes/register.d.ts.map +1 -0
- package/out/sg/recipes/register.js +211 -0
- package/out/sg/recipes/register.js.map +1 -0
- package/out/sg/tools/fetch/acra.d.ts +23 -0
- package/out/sg/tools/fetch/acra.d.ts.map +1 -0
- package/out/sg/tools/fetch/acra.js +126 -0
- package/out/sg/tools/fetch/acra.js.map +1 -0
- package/out/si/recipes/bare-village.d.ts +32 -0
- package/out/si/recipes/bare-village.d.ts.map +1 -0
- package/out/si/recipes/bare-village.js +89 -0
- package/out/si/recipes/bare-village.js.map +1 -0
- package/out/south-asia/recipes/register.d.ts +51 -0
- package/out/south-asia/recipes/register.d.ts.map +1 -0
- package/out/south-asia/recipes/register.js +154 -0
- package/out/south-asia/recipes/register.js.map +1 -0
- package/out/synthesizers/anchor-absorption.d.ts +1 -1
- package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
- package/out/synthesizers/anchor-absorption.js.map +1 -1
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/house-venue.js.map +1 -1
- package/out/synthesizers/intersection.js.map +1 -1
- package/out/synthesizers/locale.d.ts +116 -0
- package/out/synthesizers/locale.d.ts.map +1 -0
- package/out/synthesizers/locale.js +150 -0
- package/out/synthesizers/locale.js.map +1 -0
- package/out/synthesizers/no-street.d.ts.map +1 -1
- package/out/synthesizers/no-street.js.map +1 -1
- package/out/synthesizers/po-box.js.map +1 -1
- package/out/synthesizers/street.d.ts.map +1 -1
- package/out/synthesizers/street.js +1 -1
- package/out/synthesizers/street.js.map +1 -1
- package/out/synthesizers/utils.js +1 -1
- package/out/synthesizers/utils.js.map +1 -1
- package/out/test-kit/corpus-recipe.d.ts.map +1 -1
- package/out/test-kit/corpus-recipe.js.map +1 -1
- package/out/tools/audit.d.ts.map +1 -1
- package/out/tools/audit.js +3 -2
- package/out/tools/audit.js.map +1 -1
- package/out/tools/corpus-stats.js +3 -3
- package/out/tools/corpus-stats.js.map +1 -1
- package/out/tools/fetch/download/index.d.ts +10 -0
- package/out/tools/fetch/download/index.d.ts.map +1 -0
- package/out/tools/fetch/download/index.js +10 -0
- package/out/tools/fetch/download/index.js.map +1 -0
- package/out/tools/fetch/download/manifest.d.ts +47 -0
- package/out/tools/fetch/download/manifest.d.ts.map +1 -0
- package/out/tools/fetch/download/manifest.js +74 -0
- package/out/tools/fetch/download/manifest.js.map +1 -0
- package/out/tools/fetch/download/network.d.ts +105 -0
- package/out/tools/fetch/download/network.d.ts.map +1 -0
- package/out/tools/fetch/download/network.js +130 -0
- package/out/tools/fetch/download/network.js.map +1 -0
- package/out/tools/fetch/download/retry.d.ts +45 -0
- package/out/tools/fetch/download/retry.d.ts.map +1 -0
- package/out/tools/fetch/download/retry.js +136 -0
- package/out/tools/fetch/download/retry.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/index.d.ts +47 -20
- package/out/tools/fetch/index.d.ts.map +1 -1
- package/out/tools/fetch/index.js +47 -20
- package/out/tools/fetch/index.js.map +1 -1
- package/out/tools/fetch/openaddresses.d.ts +1 -1
- package/out/tools/fetch/openaddresses.d.ts.map +1 -1
- package/out/tools/fetch/openaddresses.js +1 -1
- package/out/tools/fetch/openaddresses.js.map +1 -1
- package/out/tools/fetch/ourairports.d.ts +1 -1
- package/out/tools/fetch/ourairports.d.ts.map +1 -1
- package/out/tools/fetch/ourairports.js +1 -1
- package/out/tools/fetch/ourairports.js.map +1 -1
- package/out/tools/fetch/ppd.js +1 -3
- package/out/tools/fetch/ppd.js.map +1 -1
- package/out/tools/fetch/wikidata-subvenue.d.ts +1 -1
- package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
- package/out/tools/fetch/wikidata-subvenue.js +1 -1
- package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
- 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 +72 -0
- package/out/tools/golden/promote.d.ts.map +1 -0
- package/out/tools/golden/promote.js +243 -0
- package/out/tools/golden/promote.js.map +1 -0
- package/out/tools/golden/relabel-street/directory.d.ts +83 -0
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
- package/out/tools/golden/relabel-street/directory.js +216 -0
- package/out/tools/golden/relabel-street/directory.js.map +1 -0
- package/out/tools/golden/relabel-street/index.d.ts +9 -0
- package/out/tools/golden/relabel-street/index.d.ts.map +1 -0
- package/out/tools/golden/relabel-street/index.js +9 -0
- package/out/tools/golden/relabel-street/index.js.map +1 -0
- package/out/tools/golden/relabel-street/row.d.ts +121 -0
- package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
- package/out/tools/golden/relabel-street/row.js +232 -0
- package/out/tools/golden/relabel-street/row.js.map +1 -0
- package/out/tools/index.d.ts +10 -10
- package/out/tools/index.d.ts.map +1 -1
- package/out/tools/index.js +10 -10
- package/out/tools/index.js.map +1 -1
- package/out/tools/ingest-csv.d.ts.map +1 -1
- package/out/tools/ingest-csv.js +5 -7
- package/out/tools/ingest-csv.js.map +1 -1
- package/out/tools/lint/slice/index.d.ts +93 -0
- package/out/tools/lint/slice/index.d.ts.map +1 -0
- package/out/tools/lint/slice/index.js +322 -0
- package/out/tools/lint/slice/index.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 +254 -0
- package/out/tools/lint/slice/vocab.js.map +1 -0
- package/out/tools/overlay-manifest.d.ts +56 -6
- package/out/tools/overlay-manifest.d.ts.map +1 -1
- package/out/tools/overlay-manifest.js +56 -15
- package/out/tools/overlay-manifest.js.map +1 -1
- package/out/tools/overture-subvenue.d.ts +1 -1
- package/out/tools/postcode-triples.d.ts +36 -0
- package/out/tools/postcode-triples.d.ts.map +1 -1
- package/out/tools/postcode-triples.js +91 -12
- package/out/tools/postcode-triples.js.map +1 -1
- 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.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/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.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.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/tw/tools/fetch/gcis.d.ts +23 -0
- package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
- package/out/tw/tools/fetch/gcis.js +135 -0
- package/out/tw/tools/fetch/gcis.js.map +1 -0
- package/out/types.d.ts +1 -1
- package/out/types.d.ts.map +1 -1
- package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
- package/out/us/adapters/fcc-bdc/adapter.js +142 -0
- package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
- package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/hi-schools/adapter.js +136 -0
- package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
- package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
- package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
- package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/ia-contractors/adapter.js +104 -0
- package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
- package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/ny-notaries/adapter.js +112 -0
- package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
- package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/tx-notaries/adapter.js +118 -0
- package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
- package/out/us/adapters/tiger/adapter.d.ts +55 -0
- package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
- package/out/us/adapters/tiger/adapter.js +197 -0
- package/out/us/adapters/tiger/adapter.js.map +1 -0
- package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
- package/out/us/adapters/tiger/street-decompose.js.map +1 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +121 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
- package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/imls-pls/adapter.js +106 -0
- package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.js +116 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
- package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/nad/adapter.js +239 -0
- package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
- package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/nppes/adapter.js +110 -0
- package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +143 -0
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
- package/out/us/fips-state.d.ts +41 -0
- package/out/us/fips-state.d.ts.map +1 -0
- package/out/us/fips-state.js +100 -0
- package/out/us/fips-state.js.map +1 -0
- package/out/us/tools/fetch/hrsa.d.ts +18 -0
- package/out/us/tools/fetch/hrsa.d.ts.map +1 -0
- package/out/us/tools/fetch/hrsa.js +46 -0
- package/out/us/tools/fetch/hrsa.js.map +1 -0
- package/out/us/tools/fetch/imls-pls.d.ts +25 -0
- package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
- package/out/us/tools/fetch/imls-pls.js +108 -0
- package/out/us/tools/fetch/imls-pls.js.map +1 -0
- package/out/us/tools/fetch/nad.d.ts +70 -0
- package/out/us/tools/fetch/nad.d.ts.map +1 -0
- package/out/us/tools/fetch/nad.js +234 -0
- package/out/us/tools/fetch/nad.js.map +1 -0
- package/out/us/tools/fetch/nppes.d.ts +26 -0
- package/out/us/tools/fetch/nppes.d.ts.map +1 -0
- package/out/us/tools/fetch/nppes.js +126 -0
- package/out/us/tools/fetch/nppes.js.map +1 -0
- package/out/us/tools/fetch/state/hi-schools.d.ts +26 -0
- package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
- package/out/us/tools/fetch/state/hi-schools.js +112 -0
- package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
- package/out/us/tools/fetch/state/sources.d.ts +26 -0
- package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
- package/out/us/tools/fetch/state/sources.js +111 -0
- package/out/us/tools/fetch/state/sources.js.map +1 -0
- package/out/us/tools/fetch/tiger-full.d.ts +22 -0
- package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
- package/out/us/tools/fetch/tiger-full.js +217 -0
- package/out/us/tools/fetch/tiger-full.js.map +1 -0
- package/out/utils/align.d.ts +1 -1
- package/out/utils/align.d.ts.map +1 -1
- package/out/utils/align.js.map +1 -1
- package/out/utils/golden.d.ts +7 -3
- package/out/utils/golden.d.ts.map +1 -1
- package/out/utils/golden.js +12 -8
- package/out/utils/golden.js.map +1 -1
- package/out/utils/parquet.d.ts.map +1 -1
- package/out/utils/split.js.map +1 -1
- package/out/utils/wof-json.d.ts.map +1 -1
- package/out/utils/wof-json.js +7 -12
- package/out/utils/wof-json.js.map +1 -1
- package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
- package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
- package/package.json +196 -46
- package/lib/adapters/ban/adapter.ts +0 -190
- package/lib/adapters/fcc-bdc/adapter.ts +0 -174
- package/lib/adapters/geonames-postal/adapter.ts +0 -122
- package/lib/adapters/gnaf/adapter.ts +0 -149
- package/lib/adapters/gnaf/assemble.ts +0 -225
- package/lib/adapters/state-hi-schools/adapter.ts +0 -170
- package/lib/adapters/state-ia-contractors/adapter.ts +0 -144
- package/lib/adapters/state-ny-notaries/adapter.ts +0 -141
- package/lib/adapters/state-tx-notaries/adapter.ts +0 -157
- package/lib/adapters/tiger/adapter.ts +0 -252
- package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +0 -167
- package/lib/adapters/usgov-imls-pls/adapter.ts +0 -143
- package/lib/adapters/usgov-irs-bmf/adapter.ts +0 -151
- package/lib/adapters/usgov-nad/adapter.ts +0 -334
- package/lib/adapters/usgov-nppes/adapter.ts +0 -151
- package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -193
- package/lib/adapters/wof-admin-json/adapter.ts +0 -231
- package/lib/adapters/wof-json-rows.ts +0 -129
- package/lib/adapters/wof-postalcode-json/adapter.ts +0 -176
- package/lib/name-prone-us-suffixes.ts +0 -12
- package/lib/recipes/bare-country.ts +0 -95
- package/lib/recipes/cz-pcfirst-preposition.ts +0 -111
- package/lib/recipes/fr-admin-split.ts +0 -242
- package/lib/recipes/fr-bare-street.ts +0 -170
- package/lib/recipes/fr-fragment.ts +0 -333
- package/lib/recipes/fr-lieudit.ts +0 -301
- package/lib/recipes/fr-order.ts +0 -245
- package/lib/recipes/german.ts +0 -359
- package/lib/recipes/locale.ts +0 -599
- package/lib/recipes/nl-postcode.ts +0 -115
- package/lib/recipes/no-fragment.ts +0 -219
- package/lib/recipes/no-street-led.ts +0 -141
- package/lib/recipes/no-street.ts +0 -90
- package/lib/recipes/po-box-cedex.ts +0 -976
- package/lib/recipes/po-box.ts +0 -123
- package/lib/recipes/si-bare-village.ts +0 -97
- package/lib/recipes/street-affix.ts +0 -804
- package/lib/recipes/street-bare.ts +0 -100
- package/lib/recipes/sub-venue-sources.ts +0 -877
- package/lib/recipes/sub-venue.ts +0 -997
- package/lib/synthesizers/german.ts +0 -260
- package/lib/tools/fetch/ban.ts +0 -289
- package/lib/tools/fetch/download.ts +0 -262
- package/lib/tools/fetch/geonames-dump.ts +0 -257
- package/lib/tools/fetch/geonames-postal.ts +0 -180
- package/lib/tools/fetch/hrsa.ts +0 -59
- package/lib/tools/fetch/imls-pls.ts +0 -149
- package/lib/tools/fetch/nad.ts +0 -341
- package/lib/tools/fetch/nppes.ts +0 -165
- package/lib/tools/fetch/state-hi-schools.ts +0 -161
- package/lib/tools/fetch/state-sources.ts +0 -146
- package/lib/tools/fetch/tiger-full.ts +0 -308
- package/lib/tools/golden-promote.ts +0 -337
- package/lib/tools/golden-relabel-street.ts +0 -683
- package/lib/tools/lint-slice-vocab.ts +0 -388
- package/lib/tools/sub-venue/harvest.ts +0 -234
- package/lib/tools/sub-venue/head-nouns.ts +0 -245
- package/lib/tools/sub-venue/surfaces.ts +0 -95
- package/lib/tools/sub-venue/table.ts +0 -281
- package/lib/tools/sub-venue/wikidata.ts +0 -85
- package/lib/tools/sub-venue-lexicon.ts +0 -429
- package/out/adapters/ban/adapter.d.ts.map +0 -1
- package/out/adapters/ban/adapter.js +0 -149
- package/out/adapters/ban/adapter.js.map +0 -1
- package/out/adapters/ban/street-decompose.d.ts.map +0 -1
- package/out/adapters/ban/street-decompose.js.map +0 -1
- package/out/adapters/fcc-bdc/adapter.d.ts.map +0 -1
- package/out/adapters/fcc-bdc/adapter.js +0 -144
- package/out/adapters/fcc-bdc/adapter.js.map +0 -1
- package/out/adapters/geonames-postal/adapter.d.ts.map +0 -1
- package/out/adapters/geonames-postal/adapter.js +0 -107
- package/out/adapters/geonames-postal/adapter.js.map +0 -1
- package/out/adapters/gnaf/adapter.d.ts.map +0 -1
- package/out/adapters/gnaf/adapter.js +0 -124
- package/out/adapters/gnaf/adapter.js.map +0 -1
- package/out/adapters/gnaf/assemble.d.ts +0 -65
- package/out/adapters/gnaf/assemble.d.ts.map +0 -1
- package/out/adapters/gnaf/assemble.js +0 -154
- package/out/adapters/gnaf/assemble.js.map +0 -1
- package/out/adapters/state-hi-schools/adapter.d.ts.map +0 -1
- package/out/adapters/state-hi-schools/adapter.js +0 -145
- package/out/adapters/state-hi-schools/adapter.js.map +0 -1
- package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
- package/out/adapters/state-hi-schools/workbook.js.map +0 -1
- package/out/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
- package/out/adapters/state-ia-contractors/adapter.js +0 -111
- package/out/adapters/state-ia-contractors/adapter.js.map +0 -1
- package/out/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
- package/out/adapters/state-ny-notaries/adapter.js +0 -119
- package/out/adapters/state-ny-notaries/adapter.js.map +0 -1
- package/out/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
- package/out/adapters/state-tx-notaries/adapter.js +0 -125
- package/out/adapters/state-tx-notaries/adapter.js.map +0 -1
- package/out/adapters/tiger/adapter.d.ts +0 -55
- package/out/adapters/tiger/adapter.d.ts.map +0 -1
- package/out/adapters/tiger/adapter.js +0 -201
- package/out/adapters/tiger/adapter.js.map +0 -1
- package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
- package/out/adapters/tiger/street-decompose.js.map +0 -1
- package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-hrsa-fqhc/adapter.js +0 -132
- package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
- package/out/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-imls-pls/adapter.js +0 -114
- package/out/adapters/usgov-imls-pls/adapter.js.map +0 -1
- package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-irs-bmf/adapter.js +0 -120
- package/out/adapters/usgov-irs-bmf/adapter.js.map +0 -1
- package/out/adapters/usgov-nad/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-nad/adapter.js +0 -249
- package/out/adapters/usgov-nad/adapter.js.map +0 -1
- package/out/adapters/usgov-nppes/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-nppes/adapter.js +0 -118
- package/out/adapters/usgov-nppes/adapter.js.map +0 -1
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -154
- package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
- package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
- package/out/adapters/wof-admin-jp/adapter.js.map +0 -1
- package/out/adapters/wof-admin-json/adapter.d.ts +0 -79
- package/out/adapters/wof-admin-json/adapter.d.ts.map +0 -1
- package/out/adapters/wof-admin-json/adapter.js +0 -197
- package/out/adapters/wof-admin-json/adapter.js.map +0 -1
- package/out/adapters/wof-json-rows.d.ts +0 -62
- package/out/adapters/wof-json-rows.d.ts.map +0 -1
- package/out/adapters/wof-json-rows.js +0 -83
- package/out/adapters/wof-json-rows.js.map +0 -1
- package/out/adapters/wof-postalcode-json/adapter.d.ts +0 -65
- package/out/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
- package/out/adapters/wof-postalcode-json/adapter.js +0 -151
- package/out/adapters/wof-postalcode-json/adapter.js.map +0 -1
- package/out/codex/us-fips-state.d.ts +0 -41
- package/out/codex/us-fips-state.d.ts.map +0 -1
- package/out/codex/us-fips-state.js +0 -100
- package/out/codex/us-fips-state.js.map +0 -1
- package/out/name-prone-us-suffixes.d.ts +0 -12
- package/out/name-prone-us-suffixes.d.ts.map +0 -1
- package/out/name-prone-us-suffixes.js +0 -12
- package/out/name-prone-us-suffixes.js.map +0 -1
- package/out/recipes/bare-country.d.ts +0 -25
- package/out/recipes/bare-country.d.ts.map +0 -1
- package/out/recipes/bare-country.js +0 -87
- package/out/recipes/bare-country.js.map +0 -1
- package/out/recipes/cn-organizational-units.d.ts +0 -36
- package/out/recipes/cn-organizational-units.d.ts.map +0 -1
- package/out/recipes/cn-organizational-units.js +0 -159
- package/out/recipes/cn-organizational-units.js.map +0 -1
- package/out/recipes/cz-pcfirst-preposition.d.ts +0 -22
- package/out/recipes/cz-pcfirst-preposition.d.ts.map +0 -1
- package/out/recipes/cz-pcfirst-preposition.js +0 -100
- package/out/recipes/cz-pcfirst-preposition.js.map +0 -1
- package/out/recipes/fr-admin-split.d.ts +0 -38
- package/out/recipes/fr-admin-split.d.ts.map +0 -1
- package/out/recipes/fr-admin-split.js +0 -192
- package/out/recipes/fr-admin-split.js.map +0 -1
- package/out/recipes/fr-bare-street.d.ts +0 -28
- package/out/recipes/fr-bare-street.d.ts.map +0 -1
- package/out/recipes/fr-bare-street.js +0 -143
- package/out/recipes/fr-bare-street.js.map +0 -1
- package/out/recipes/fr-fragment.d.ts +0 -77
- package/out/recipes/fr-fragment.d.ts.map +0 -1
- package/out/recipes/fr-fragment.js +0 -276
- package/out/recipes/fr-fragment.js.map +0 -1
- package/out/recipes/fr-lieudit.d.ts +0 -32
- package/out/recipes/fr-lieudit.d.ts.map +0 -1
- package/out/recipes/fr-lieudit.js +0 -227
- package/out/recipes/fr-lieudit.js.map +0 -1
- package/out/recipes/fr-order.d.ts +0 -38
- package/out/recipes/fr-order.d.ts.map +0 -1
- package/out/recipes/fr-order.js +0 -197
- package/out/recipes/fr-order.js.map +0 -1
- package/out/recipes/german.d.ts +0 -44
- package/out/recipes/german.d.ts.map +0 -1
- package/out/recipes/german.js +0 -288
- package/out/recipes/german.js.map +0 -1
- package/out/recipes/locale.d.ts +0 -136
- package/out/recipes/locale.d.ts.map +0 -1
- package/out/recipes/locale.js +0 -460
- package/out/recipes/locale.js.map +0 -1
- package/out/recipes/nl-postcode.d.ts +0 -26
- package/out/recipes/nl-postcode.d.ts.map +0 -1
- package/out/recipes/nl-postcode.js +0 -102
- package/out/recipes/nl-postcode.js.map +0 -1
- package/out/recipes/no-fragment.d.ts +0 -43
- package/out/recipes/no-fragment.d.ts.map +0 -1
- package/out/recipes/no-fragment.js +0 -182
- package/out/recipes/no-fragment.js.map +0 -1
- package/out/recipes/no-street-led.d.ts +0 -24
- package/out/recipes/no-street-led.d.ts.map +0 -1
- package/out/recipes/no-street-led.js +0 -113
- package/out/recipes/no-street-led.js.map +0 -1
- package/out/recipes/no-street.d.ts +0 -18
- package/out/recipes/no-street.d.ts.map +0 -1
- package/out/recipes/no-street.js +0 -71
- package/out/recipes/no-street.js.map +0 -1
- package/out/recipes/po-box-cedex.d.ts +0 -38
- package/out/recipes/po-box-cedex.d.ts.map +0 -1
- package/out/recipes/po-box-cedex.js +0 -767
- package/out/recipes/po-box-cedex.js.map +0 -1
- package/out/recipes/po-box.d.ts +0 -17
- package/out/recipes/po-box.d.ts.map +0 -1
- package/out/recipes/po-box.js +0 -100
- package/out/recipes/po-box.js.map +0 -1
- package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
- package/out/recipes/reviewed-postcode-tail.js.map +0 -1
- package/out/recipes/si-bare-village.d.ts +0 -32
- package/out/recipes/si-bare-village.d.ts.map +0 -1
- package/out/recipes/si-bare-village.js +0 -88
- package/out/recipes/si-bare-village.js.map +0 -1
- package/out/recipes/street-affix.d.ts +0 -89
- package/out/recipes/street-affix.d.ts.map +0 -1
- package/out/recipes/street-affix.js +0 -563
- package/out/recipes/street-affix.js.map +0 -1
- package/out/recipes/street-bare.d.ts +0 -25
- package/out/recipes/street-bare.d.ts.map +0 -1
- package/out/recipes/street-bare.js +0 -86
- package/out/recipes/street-bare.js.map +0 -1
- package/out/recipes/sub-venue-sources.d.ts +0 -229
- package/out/recipes/sub-venue-sources.d.ts.map +0 -1
- package/out/recipes/sub-venue-sources.js +0 -653
- package/out/recipes/sub-venue-sources.js.map +0 -1
- package/out/recipes/sub-venue.d.ts +0 -269
- package/out/recipes/sub-venue.d.ts.map +0 -1
- package/out/recipes/sub-venue.js +0 -725
- package/out/recipes/sub-venue.js.map +0 -1
- package/out/synthesizers/german.d.ts +0 -115
- package/out/synthesizers/german.d.ts.map +0 -1
- package/out/synthesizers/german.js +0 -149
- package/out/synthesizers/german.js.map +0 -1
- package/out/tools/fetch/ban.d.ts +0 -31
- package/out/tools/fetch/ban.d.ts.map +0 -1
- package/out/tools/fetch/ban.js +0 -239
- package/out/tools/fetch/ban.js.map +0 -1
- package/out/tools/fetch/download.d.ts +0 -117
- package/out/tools/fetch/download.d.ts.map +0 -1
- package/out/tools/fetch/download.js +0 -160
- package/out/tools/fetch/download.js.map +0 -1
- package/out/tools/fetch/geonames-dump.d.ts +0 -91
- package/out/tools/fetch/geonames-dump.d.ts.map +0 -1
- package/out/tools/fetch/geonames-dump.js +0 -171
- package/out/tools/fetch/geonames-dump.js.map +0 -1
- package/out/tools/fetch/geonames-postal.d.ts +0 -76
- package/out/tools/fetch/geonames-postal.d.ts.map +0 -1
- package/out/tools/fetch/geonames-postal.js +0 -126
- package/out/tools/fetch/geonames-postal.js.map +0 -1
- package/out/tools/fetch/hrsa.d.ts +0 -18
- package/out/tools/fetch/hrsa.d.ts.map +0 -1
- package/out/tools/fetch/hrsa.js +0 -46
- package/out/tools/fetch/hrsa.js.map +0 -1
- package/out/tools/fetch/imls-pls.d.ts +0 -25
- package/out/tools/fetch/imls-pls.d.ts.map +0 -1
- package/out/tools/fetch/imls-pls.js +0 -108
- package/out/tools/fetch/imls-pls.js.map +0 -1
- package/out/tools/fetch/nad.d.ts +0 -70
- package/out/tools/fetch/nad.d.ts.map +0 -1
- package/out/tools/fetch/nad.js +0 -234
- package/out/tools/fetch/nad.js.map +0 -1
- package/out/tools/fetch/nppes.d.ts +0 -26
- package/out/tools/fetch/nppes.d.ts.map +0 -1
- package/out/tools/fetch/nppes.js +0 -126
- package/out/tools/fetch/nppes.js.map +0 -1
- package/out/tools/fetch/state-hi-schools.d.ts +0 -26
- package/out/tools/fetch/state-hi-schools.d.ts.map +0 -1
- package/out/tools/fetch/state-hi-schools.js +0 -112
- package/out/tools/fetch/state-hi-schools.js.map +0 -1
- package/out/tools/fetch/state-sources.d.ts +0 -26
- package/out/tools/fetch/state-sources.d.ts.map +0 -1
- package/out/tools/fetch/state-sources.js +0 -111
- package/out/tools/fetch/state-sources.js.map +0 -1
- package/out/tools/fetch/tiger-full.d.ts +0 -22
- package/out/tools/fetch/tiger-full.d.ts.map +0 -1
- package/out/tools/fetch/tiger-full.js +0 -217
- package/out/tools/fetch/tiger-full.js.map +0 -1
- package/out/tools/golden-expand.d.ts +0 -90
- package/out/tools/golden-expand.d.ts.map +0 -1
- package/out/tools/golden-expand.js +0 -406
- package/out/tools/golden-expand.js.map +0 -1
- package/out/tools/golden-promote.d.ts +0 -72
- package/out/tools/golden-promote.d.ts.map +0 -1
- package/out/tools/golden-promote.js +0 -240
- package/out/tools/golden-promote.js.map +0 -1
- package/out/tools/golden-relabel-street.d.ts +0 -196
- package/out/tools/golden-relabel-street.d.ts.map +0 -1
- package/out/tools/golden-relabel-street.js +0 -440
- package/out/tools/golden-relabel-street.js.map +0 -1
- package/out/tools/lint-slice-vocab.d.ts +0 -90
- package/out/tools/lint-slice-vocab.d.ts.map +0 -1
- package/out/tools/lint-slice-vocab.js +0 -267
- package/out/tools/lint-slice-vocab.js.map +0 -1
- package/out/tools/lint-slice.d.ts +0 -93
- package/out/tools/lint-slice.d.ts.map +0 -1
- package/out/tools/lint-slice.js +0 -322
- package/out/tools/lint-slice.js.map +0 -1
- package/out/tools/slice-kryptonite.d.ts +0 -32
- package/out/tools/slice-kryptonite.d.ts.map +0 -1
- package/out/tools/slice-kryptonite.js +0 -99
- package/out/tools/slice-kryptonite.js.map +0 -1
- package/out/tools/slice-translit.d.ts +0 -51
- package/out/tools/slice-translit.d.ts.map +0 -1
- package/out/tools/slice-translit.js +0 -166
- package/out/tools/slice-translit.js.map +0 -1
- package/out/tools/sub-venue/harvest.d.ts +0 -100
- package/out/tools/sub-venue/harvest.d.ts.map +0 -1
- package/out/tools/sub-venue/harvest.js +0 -168
- package/out/tools/sub-venue/harvest.js.map +0 -1
- package/out/tools/sub-venue/head-nouns.d.ts +0 -50
- package/out/tools/sub-venue/head-nouns.d.ts.map +0 -1
- package/out/tools/sub-venue/head-nouns.js.map +0 -1
- package/out/tools/sub-venue/surfaces.d.ts +0 -45
- package/out/tools/sub-venue/surfaces.d.ts.map +0 -1
- package/out/tools/sub-venue/surfaces.js.map +0 -1
- package/out/tools/sub-venue/table.d.ts +0 -229
- package/out/tools/sub-venue/table.d.ts.map +0 -1
- package/out/tools/sub-venue/table.js.map +0 -1
- package/out/tools/sub-venue/wikidata.d.ts +0 -26
- package/out/tools/sub-venue/wikidata.d.ts.map +0 -1
- package/out/tools/sub-venue/wikidata.js +0 -62
- package/out/tools/sub-venue/wikidata.js.map +0 -1
- package/out/tools/sub-venue-lexicon.d.ts +0 -156
- package/out/tools/sub-venue-lexicon.d.ts.map +0 -1
- package/out/tools/sub-venue-lexicon.js +0 -283
- package/out/tools/sub-venue-lexicon.js.map +0 -1
- package/out/tools/sub-venue-promotions.d.ts +0 -94
- package/out/tools/sub-venue-promotions.d.ts.map +0 -1
- package/out/tools/sub-venue-promotions.js +0 -266
- package/out/tools/sub-venue-promotions.js.map +0 -1
- /package/lib/{recipes/cn-organizational-units.ts → cn/recipes/organizational-units.ts} +0 -0
- /package/lib/{adapters → fr/adapters}/ban/street-decompose.ts +0 -0
- /package/lib/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.ts +0 -0
- /package/lib/tools/{golden-expand.ts → golden/expand.ts} +0 -0
- /package/lib/tools/{lint-slice.ts → lint/slice/index.ts} +0 -0
- /package/lib/tools/{slice-kryptonite.ts → slice/kryptonite.ts} +0 -0
- /package/lib/tools/{slice-translit.ts → slice/translit.ts} +0 -0
- /package/lib/tools/{sub-venue-promotions.ts → sub/venue/promotions.ts} +0 -0
- /package/lib/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.ts +0 -0
- /package/lib/{adapters → us/adapters}/tiger/street-decompose.ts +0 -0
- /package/lib/{codex/us-fips-state.ts → us/fips-state.ts} +0 -0
- /package/lib/{recipes → ve/recipes}/reviewed-postcode-tail.ts +0 -0
- /package/out/adapters/{geonames-postal → geonames/postal}/adapter.d.ts +0 -0
- /package/out/{adapters → au/adapters}/gnaf/adapter.d.ts +0 -0
- /package/out/{adapters → fr/adapters}/ban/adapter.d.ts +0 -0
- /package/out/{adapters → fr/adapters}/ban/street-decompose.d.ts +0 -0
- /package/out/{adapters → fr/adapters}/ban/street-decompose.js +0 -0
- /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.d.ts +0 -0
- /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.js +0 -0
- /package/out/tools/{sub-venue → sub/venue}/head-nouns.js +0 -0
- /package/out/tools/{sub-venue → sub/venue}/surfaces.js +0 -0
- /package/out/tools/{sub-venue → sub/venue}/table.js +0 -0
- /package/out/{adapters → us/adapters}/fcc-bdc/adapter.d.ts +0 -0
- /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/adapter.d.ts +0 -0
- /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.d.ts +0 -0
- /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.js +0 -0
- /package/out/{adapters/state-ia-contractors → us/adapters/state/ia-contractors}/adapter.d.ts +0 -0
- /package/out/{adapters/state-ny-notaries → us/adapters/state/ny-notaries}/adapter.d.ts +0 -0
- /package/out/{adapters/state-tx-notaries → us/adapters/state/tx-notaries}/adapter.d.ts +0 -0
- /package/out/{adapters → us/adapters}/tiger/street-decompose.d.ts +0 -0
- /package/out/{adapters → us/adapters}/tiger/street-decompose.js +0 -0
- /package/out/{adapters/usgov-hrsa-fqhc → us/adapters/usgov/hrsa-fqhc}/adapter.d.ts +0 -0
- /package/out/{adapters/usgov-imls-pls → us/adapters/usgov/imls-pls}/adapter.d.ts +0 -0
- /package/out/{adapters/usgov-irs-bmf → us/adapters/usgov/irs-bmf}/adapter.d.ts +0 -0
- /package/out/{adapters/usgov-nad → us/adapters/usgov/nad}/adapter.d.ts +0 -0
- /package/out/{adapters/usgov-nppes → us/adapters/usgov/nppes}/adapter.d.ts +0 -0
- /package/out/{adapters/usgov-samhsa-treatment-locator → us/adapters/usgov/samhsa-treatment-locator}/adapter.d.ts +0 -0
- /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.d.ts +0 -0
- /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.js +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `fcc-bdc`: FCC Broadband Data Collection (BDC) — Fabric-derived location consumer.
|
|
7
|
+
*
|
|
8
|
+
* The first member of Phase 1.6's "adversarial sources" class. BDC ships the public-domain US
|
|
9
|
+
* broadband-serviceable-location (BSL) fabric: ~120M addresses keyed by stable `location_id`,
|
|
10
|
+
* carrying `address_primary` + `city` + `state` + `zip` + `zip_suffix`. Compared to the clean
|
|
11
|
+
* gazetteer rows from WOF / TIGER / BAN, BDC carries the chaos of address data that has passed
|
|
12
|
+
* through several layers of human entry + automated geocoding + revision: abbreviation drift,
|
|
13
|
+
* inconsistent unit designators, "RR" / "HC" / "PSC" rural-route shapes, embedded apartment /
|
|
14
|
+
* suite numbers that did not survive the address parser cleanly. This is the highest-signal,
|
|
15
|
+
* hardest-to-normalize address corpus in the federal public-domain catalog.
|
|
16
|
+
*
|
|
17
|
+
* Following the `tiger` / `wof-admin` pattern, this adapter consumes a SQLite database the operator
|
|
18
|
+
* pre-builds via the isp-nexus BDC ETL (`/srv/isp-nexus/sync/fcc/bdc/`) or any equivalent
|
|
19
|
+
* host-side pipeline. The mailwoman side does not download or parse the raw CSV/ZIP distribution
|
|
20
|
+
* directly — that keeps the adapter narrow and the BDC ingest pluggable.
|
|
21
|
+
*
|
|
22
|
+
* The SQLite schema is documented in README.md and modeled after `NTIARecord`
|
|
23
|
+
* (`isp-nexus/fcc/bdc/data-collection.ts`): one row per `location_id`. The adapter splits
|
|
24
|
+
* `address_primary` into `house_number` (leading numeric prefix, if any) + `street` (everything
|
|
25
|
+
* after), and combines `zip` + `zip_suffix` into the canonical USPS `postcode` slot.
|
|
26
|
+
*
|
|
27
|
+
* One CanonicalRow per fabric record. Unlike `tiger` (multiple postcode variants per segment) or
|
|
28
|
+
* `wof-admin` (multiple hierarchy variants per place), BDC records already represent fully
|
|
29
|
+
* specified addresses; no fan-out is warranted. Adversarial composition (Phase 1.6 §2.1) is the
|
|
30
|
+
* mechanism for deriving multiple training rows per BDC record.
|
|
31
|
+
*
|
|
32
|
+
* License: stamped `"Public Domain"` per the BDC fabric's US federal-government distribution terms.
|
|
33
|
+
* The CostQuest Fabric source data has its own license; consumers who substitute that path should
|
|
34
|
+
* re-stamp accordingly.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
import type { BDCDatabase } from "@mailwoman/bdc/schema"
|
|
38
|
+
import { formatAddressRow } from "@mailwoman/codex/address-format"
|
|
39
|
+
import { DatabaseClient } from "@mailwoman/sqlite/client"
|
|
40
|
+
|
|
41
|
+
import { splitStreetLine } from "#adapters/utils"
|
|
42
|
+
import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
|
|
43
|
+
import { lookupStateAbbreviation } from "#us/fips-state"
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
47
|
+
* it came from.
|
|
48
|
+
*/
|
|
49
|
+
export const FCC_BDC_ADAPTER_ID = "fcc-bdc"
|
|
50
|
+
/**
|
|
51
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
52
|
+
* than having to look them up.
|
|
53
|
+
*/
|
|
54
|
+
export const FCC_BDC_DEFAULT_LICENSE = "Public Domain"
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* SQLite row shape — one row per BSL `location_id`. Columns mirror NTIARecord.
|
|
58
|
+
*/
|
|
59
|
+
interface BdcLocationRow {
|
|
60
|
+
location_id: number
|
|
61
|
+
address_primary: string
|
|
62
|
+
city: string
|
|
63
|
+
state: string
|
|
64
|
+
zip: string
|
|
65
|
+
zip_suffix: string | null
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Combine `zip` + optional `zip_suffix` into the canonical USPS postcode surface form.
|
|
70
|
+
*
|
|
71
|
+
* NTIARecord doc is ambiguous about whether `zip_suffix` is the 4-digit extension alone or the full ZIP+4 string. This
|
|
72
|
+
* handles both:
|
|
73
|
+
*
|
|
74
|
+
* - Bare 4-digit extension (`zip="94103"`, `zip_suffix="1234"`) → `"94103-1234"`
|
|
75
|
+
* - Already-joined form (`zip_suffix="94103-1234"`) → returned as-is
|
|
76
|
+
* - No suffix → bare `zip`
|
|
77
|
+
*
|
|
78
|
+
* Empty / whitespace-only suffix is treated as missing.
|
|
79
|
+
*/
|
|
80
|
+
export function buildPostcode(zip: string, suffix: string | null): string {
|
|
81
|
+
const z = zip.trim()
|
|
82
|
+
|
|
83
|
+
if (!z) return ""
|
|
84
|
+
const s = suffix?.trim() ?? ""
|
|
85
|
+
|
|
86
|
+
if (!s) return z
|
|
87
|
+
|
|
88
|
+
if (s.includes("-")) return s
|
|
89
|
+
|
|
90
|
+
return `${z}-${s}`
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Build a BDC adapter. Pure factory so multiple instances can be created in tests.
|
|
95
|
+
*/
|
|
96
|
+
export function createFccBdcAdapter(): CorpusAdapter {
|
|
97
|
+
return {
|
|
98
|
+
id: FCC_BDC_ADAPTER_ID,
|
|
99
|
+
defaultLicense: FCC_BDC_DEFAULT_LICENSE,
|
|
100
|
+
description:
|
|
101
|
+
"FCC Broadband Data Collection — Fabric-derived BSL addresses (public-domain); SQLite DB the operator builds via the isp-nexus BDC ETL.",
|
|
102
|
+
|
|
103
|
+
async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
|
|
104
|
+
if (opts.country && opts.country !== "US") {
|
|
105
|
+
throw new Error(`fcc-bdc adapter: only US supported, got country=${opts.country}`)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const db = new DatabaseClient<BDCDatabase>(opts.inputPath, { readOnly: true })
|
|
109
|
+
let emitted = 0
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
const stmt = db.prepare(
|
|
113
|
+
`SELECT location_id, address_primary, city, state, zip, zip_suffix
|
|
114
|
+
FROM bdc_locations
|
|
115
|
+
ORDER BY location_id`
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
for (const row of stmt.iterate() as IterableIterator<BdcLocationRow>) {
|
|
119
|
+
if (opts.signal?.aborted) return
|
|
120
|
+
|
|
121
|
+
if (opts.limit !== undefined && emitted >= opts.limit) return
|
|
122
|
+
|
|
123
|
+
const split = splitStreetLine(row.address_primary ?? "")
|
|
124
|
+
|
|
125
|
+
if (!split) continue
|
|
126
|
+
const state = lookupStateAbbreviation(row.state)
|
|
127
|
+
|
|
128
|
+
if (!state) continue
|
|
129
|
+
const locality = row.city?.trim()
|
|
130
|
+
|
|
131
|
+
if (!locality) continue
|
|
132
|
+
const postcode = buildPostcode(row.zip ?? "", row.zip_suffix ?? null)
|
|
133
|
+
|
|
134
|
+
if (!postcode) continue
|
|
135
|
+
|
|
136
|
+
const components: CanonicalRow["components"] = {
|
|
137
|
+
...(split.house_number ? { house_number: split.house_number } : {}),
|
|
138
|
+
street: split.street,
|
|
139
|
+
locality,
|
|
140
|
+
region: state.abbreviation,
|
|
141
|
+
postcode,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const rendered = formatAddressRow(components, "US", { singleLine: true })
|
|
145
|
+
|
|
146
|
+
if (!rendered) continue
|
|
147
|
+
|
|
148
|
+
const { raw, components: aligned } = rendered
|
|
149
|
+
|
|
150
|
+
yield {
|
|
151
|
+
raw,
|
|
152
|
+
components: aligned,
|
|
153
|
+
country: "US",
|
|
154
|
+
locale: "en-US",
|
|
155
|
+
source: FCC_BDC_ADAPTER_ID,
|
|
156
|
+
source_id: `${FCC_BDC_ADAPTER_ID}-${row.location_id}`,
|
|
157
|
+
corpus_version: "",
|
|
158
|
+
license: FCC_BDC_DEFAULT_LICENSE,
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
emitted++
|
|
162
|
+
}
|
|
163
|
+
} finally {
|
|
164
|
+
await db.destroy()
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* The configured adapter instance registered with the corpus builder.
|
|
172
|
+
*/
|
|
173
|
+
export const fccBdcAdapter = createFccBdcAdapter()
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `state-hi-schools`: Hawaii DOE public + charter school workbook consumer.
|
|
7
|
+
*
|
|
8
|
+
* The Hawaii State Department of Education publishes a directory of all HIDOE schools and public
|
|
9
|
+
* charter schools (PCS) as an XLSX workbook (`SchoolList.xlsx`) with two sheets: `HIDOE` (~258
|
|
10
|
+
* rows) and `PCS` (~38 rows). Total ~296 rows statewide. Each row carries a school name,
|
|
11
|
+
* single-line street address, city, ZIP, a numeric `code`, and HI-specific administrative columns
|
|
12
|
+
* (complex, complex_area, district, island, charter).
|
|
13
|
+
*
|
|
14
|
+
* The adapter consumes the original XLSX retained by the fetcher and reads both worksheets directly.
|
|
15
|
+
* Legacy flat CSV artifacts remain accepted so existing source caches do not need conversion.
|
|
16
|
+
*
|
|
17
|
+
* Address parsing notes: Hawaii's residential numbering is hyphenated on Oahu (`47-470 Hui Aeko
|
|
18
|
+
* Place`), Kauai (`2-4035 Kaumualii Hwy`), and elsewhere. The shared HOUSE_NUMBER_PREFIX regex
|
|
19
|
+
* covers this via its optional `(?:-\d+)?` group.
|
|
20
|
+
*
|
|
21
|
+
* The `island` and `district` columns are HIDOE administrative labels (Honolulu, Central, Leeward,
|
|
22
|
+
* Windward, Hilo, Hawaii, Maui, Kauai) — they are NOT US counties and intentionally are not
|
|
23
|
+
* surfaced as `subregion`.
|
|
24
|
+
*
|
|
25
|
+
* Output: one row per school with `venue` (school name), `(house_number?, street, locality,
|
|
26
|
+
* region=HI, postcode)`, and a stable `source_id` derived from the school `code`.
|
|
27
|
+
*
|
|
28
|
+
* License: stamped `"Public Domain"` per Hawaii state government open-data terms.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
import { formatAddressRow } from "@mailwoman/codex/address-format"
|
|
32
|
+
import { CSVSpliterator, XLSXSpliterator } from "spliterator"
|
|
33
|
+
|
|
34
|
+
import { splitStreetLine, stableSourceID } from "#adapters/utils"
|
|
35
|
+
import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
|
|
36
|
+
import { type HiSchoolRow, schoolCellText, STATE_HI_SCHOOL_SHEETS } from "#us/adapters/state/hi-schools/workbook"
|
|
37
|
+
import { lookupStateAbbreviation } from "#us/fips-state"
|
|
38
|
+
|
|
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 STATE_HI_SCHOOLS_ADAPTER_ID = "state-hi-schools"
|
|
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 STATE_HI_SCHOOLS_DEFAULT_LICENSE = "Public Domain"
|
|
49
|
+
|
|
50
|
+
const HI_STATE_ABBR = "HI"
|
|
51
|
+
|
|
52
|
+
function normalizeZip(raw: HiSchoolRow["zip"]): string {
|
|
53
|
+
const trimmed = schoolCellText(raw)
|
|
54
|
+
|
|
55
|
+
if (!trimmed) return ""
|
|
56
|
+
|
|
57
|
+
// XLSX → CSV conversion may emit numeric ZIPs without leading zeros. HI ZIPs all begin
|
|
58
|
+
// with 96, so a 4-digit value indicates a leading-zero stripped during numeric coercion
|
|
59
|
+
// (defensive — has not been observed in the published file as of 2026-05).
|
|
60
|
+
if (/^\d{4}$/.test(trimmed)) return `0${trimmed}`
|
|
61
|
+
|
|
62
|
+
return trimmed
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function* readSchoolRows(inputPath: string): AsyncGenerator<HiSchoolRow> {
|
|
66
|
+
if (inputPath.toLowerCase().endsWith(".xlsx")) {
|
|
67
|
+
for (const sheet of STATE_HI_SCHOOL_SHEETS) {
|
|
68
|
+
yield* XLSXSpliterator.fromAsync<HiSchoolRow>(inputPath, {
|
|
69
|
+
sheet,
|
|
70
|
+
normalizeKeys: false,
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
yield* CSVSpliterator.fromAsync<HiSchoolRow>(inputPath, {
|
|
78
|
+
normalizeKeys: false,
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function createStateHiSchoolsAdapter(): CorpusAdapter {
|
|
83
|
+
return {
|
|
84
|
+
id: STATE_HI_SCHOOLS_ADAPTER_ID,
|
|
85
|
+
defaultLicense: STATE_HI_SCHOOLS_DEFAULT_LICENSE,
|
|
86
|
+
description: "Hawaii DOE School Directory — ~300 K-12 public + charter schools with venue+address (public-domain).",
|
|
87
|
+
|
|
88
|
+
async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
|
|
89
|
+
if (opts.country && opts.country !== "US") {
|
|
90
|
+
throw new Error(`state-hi-schools adapter: only US supported, got country=${opts.country}`)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const state = lookupStateAbbreviation(HI_STATE_ABBR)
|
|
94
|
+
|
|
95
|
+
if (!state) {
|
|
96
|
+
throw new Error(`state-hi-schools adapter: HI not found in state codex (corpus bug)`)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let emitted = 0
|
|
100
|
+
|
|
101
|
+
for await (const record of readSchoolRows(opts.inputPath)) {
|
|
102
|
+
if (opts.signal?.aborted) break
|
|
103
|
+
|
|
104
|
+
if (opts.limit !== undefined && emitted >= opts.limit) break
|
|
105
|
+
|
|
106
|
+
const name = schoolCellText(record.name)
|
|
107
|
+
const address = schoolCellText(record.address)
|
|
108
|
+
const city = schoolCellText(record.city)
|
|
109
|
+
const zip = normalizeZip(record.zip)
|
|
110
|
+
|
|
111
|
+
if (!name || !address || !city || !zip) continue
|
|
112
|
+
|
|
113
|
+
const split = splitStreetLine(address)
|
|
114
|
+
|
|
115
|
+
if (!split) continue
|
|
116
|
+
|
|
117
|
+
const components: CanonicalRow["components"] = {
|
|
118
|
+
venue: name,
|
|
119
|
+
...(split.house_number ? { house_number: split.house_number } : {}),
|
|
120
|
+
street: split.street,
|
|
121
|
+
locality: city,
|
|
122
|
+
region: state.abbreviation,
|
|
123
|
+
postcode: zip,
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const rendered = formatAddressRow(components, "US", { singleLine: true })
|
|
127
|
+
|
|
128
|
+
if (!rendered) continue
|
|
129
|
+
|
|
130
|
+
const { raw, components: aligned } = rendered
|
|
131
|
+
|
|
132
|
+
if (Object.keys(aligned).length <= 2) continue
|
|
133
|
+
|
|
134
|
+
const code = schoolCellText(record.code)
|
|
135
|
+
|
|
136
|
+
const sourceID = code
|
|
137
|
+
? `${STATE_HI_SCHOOLS_ADAPTER_ID}-${code}`
|
|
138
|
+
: stableSourceID(STATE_HI_SCHOOLS_ADAPTER_ID, aligned)
|
|
139
|
+
|
|
140
|
+
yield {
|
|
141
|
+
raw,
|
|
142
|
+
components: aligned,
|
|
143
|
+
country: "US",
|
|
144
|
+
locale: "en-US",
|
|
145
|
+
source: STATE_HI_SCHOOLS_ADAPTER_ID,
|
|
146
|
+
source_id: sourceID,
|
|
147
|
+
corpus_version: "",
|
|
148
|
+
license: STATE_HI_SCHOOLS_DEFAULT_LICENSE,
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
emitted++
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* The configured adapter instance registered with the corpus builder.
|
|
159
|
+
*/
|
|
160
|
+
export const stateHiSchoolsAdapter = createStateHiSchoolsAdapter()
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `state-ia-contractors`: Iowa Active Construction Contractor Registrations CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* Iowa Workforce Development publishes a public registry of active construction contractors. Each
|
|
9
|
+
* row carries a business name, street address, city/state/zip, and contact info.
|
|
10
|
+
*
|
|
11
|
+
* The adapter consumes the CSV the operator pre-downloads via `fetch-state-sources.ts`.
|
|
12
|
+
*
|
|
13
|
+
* Output: one row per contractor with `venue` (business name) and address quad `(house_number,
|
|
14
|
+
* street, locality, region, postcode)`.
|
|
15
|
+
*
|
|
16
|
+
* License: stamped `"Public Domain"` per Iowa state government open-data terms.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { formatAddressRow } from "@mailwoman/codex/address-format"
|
|
20
|
+
import { isPresent } from "@mailwoman/core/objects"
|
|
21
|
+
import { CSVSpliterator } from "spliterator"
|
|
22
|
+
|
|
23
|
+
import { splitStreetLine, stableSourceID } from "#adapters/utils"
|
|
24
|
+
import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
|
|
25
|
+
import { lookupStateAbbreviation } from "#us/fips-state"
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Registry id for this adapter. Stamped into every row it emits, so a corpus record can be traced back to the dataset
|
|
29
|
+
* it came from.
|
|
30
|
+
*/
|
|
31
|
+
export const STATE_IA_CONTRACTORS_ADAPTER_ID = "state-ia-contractors"
|
|
32
|
+
/**
|
|
33
|
+
* License carried by this source (Public Domain), attached to each row so downstream consumers inherit the terms rather
|
|
34
|
+
* than having to look them up.
|
|
35
|
+
*/
|
|
36
|
+
export const STATE_IA_CONTRACTORS_DEFAULT_LICENSE = "Public Domain"
|
|
37
|
+
|
|
38
|
+
interface IaContractorRow {
|
|
39
|
+
"Registration #": string
|
|
40
|
+
"Business Name": string
|
|
41
|
+
"Address 1": string
|
|
42
|
+
"Address 2": string
|
|
43
|
+
City: string
|
|
44
|
+
State: string
|
|
45
|
+
"Zip Code": string
|
|
46
|
+
"First Name": string
|
|
47
|
+
"Last Name": string
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function createStateIaContractorsAdapter(): CorpusAdapter {
|
|
51
|
+
return {
|
|
52
|
+
id: STATE_IA_CONTRACTORS_ADAPTER_ID,
|
|
53
|
+
defaultLicense: STATE_IA_CONTRACTORS_DEFAULT_LICENSE,
|
|
54
|
+
description:
|
|
55
|
+
"Iowa Active Construction Contractor Registrations — business name + full street address (public-domain).",
|
|
56
|
+
|
|
57
|
+
async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
|
|
58
|
+
if (opts.country && opts.country !== "US") {
|
|
59
|
+
throw new Error(`state-ia-contractors adapter: only US supported, got country=${opts.country}`)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const rows = CSVSpliterator.fromAsync(opts.inputPath, {
|
|
63
|
+
normalizeKeys: false,
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
let emitted = 0
|
|
67
|
+
|
|
68
|
+
for await (const record of rows as AsyncIterable<IaContractorRow>) {
|
|
69
|
+
if (opts.signal?.aborted) break
|
|
70
|
+
|
|
71
|
+
if (opts.limit !== undefined && emitted >= opts.limit) break
|
|
72
|
+
|
|
73
|
+
const businessName = (record["Business Name"] ?? "").trim()
|
|
74
|
+
const address1 = (record["Address 1"] ?? "").trim()
|
|
75
|
+
const address2 = (record["Address 2"] ?? "").trim()
|
|
76
|
+
const city = (record.City ?? "").trim()
|
|
77
|
+
const stateAbbr = (record.State ?? "").trim()
|
|
78
|
+
const zip = (record["Zip Code"] ?? "").trim()
|
|
79
|
+
|
|
80
|
+
if (!city || !zip) continue
|
|
81
|
+
|
|
82
|
+
const state = lookupStateAbbreviation(stateAbbr)
|
|
83
|
+
|
|
84
|
+
if (!state) continue
|
|
85
|
+
|
|
86
|
+
const fullAddress = [address1, address2].filter(isPresent).join(" ")
|
|
87
|
+
const split = splitStreetLine(fullAddress)
|
|
88
|
+
|
|
89
|
+
if (!split) continue
|
|
90
|
+
|
|
91
|
+
const venue = businessName || undefined
|
|
92
|
+
|
|
93
|
+
const components: CanonicalRow["components"] = {
|
|
94
|
+
...(venue ? { venue } : {}),
|
|
95
|
+
...(split.house_number ? { house_number: split.house_number } : {}),
|
|
96
|
+
street: split.street,
|
|
97
|
+
locality: city,
|
|
98
|
+
region: state.abbreviation,
|
|
99
|
+
postcode: zip,
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const rendered = formatAddressRow(components, "US", { singleLine: true })
|
|
103
|
+
|
|
104
|
+
if (!rendered) continue
|
|
105
|
+
|
|
106
|
+
const { raw, components: aligned } = rendered
|
|
107
|
+
|
|
108
|
+
if (Object.keys(aligned).length <= 2) continue
|
|
109
|
+
|
|
110
|
+
const regNum = (record["Registration #"] ?? "").trim()
|
|
111
|
+
|
|
112
|
+
const sourceID = regNum
|
|
113
|
+
? `${STATE_IA_CONTRACTORS_ADAPTER_ID}-${regNum}`
|
|
114
|
+
: stableSourceID(STATE_IA_CONTRACTORS_ADAPTER_ID, aligned)
|
|
115
|
+
|
|
116
|
+
yield {
|
|
117
|
+
raw,
|
|
118
|
+
components: aligned,
|
|
119
|
+
country: "US",
|
|
120
|
+
locale: "en-US",
|
|
121
|
+
source: STATE_IA_CONTRACTORS_ADAPTER_ID,
|
|
122
|
+
source_id: sourceID,
|
|
123
|
+
corpus_version: "",
|
|
124
|
+
license: STATE_IA_CONTRACTORS_DEFAULT_LICENSE,
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
emitted++
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The configured adapter instance registered with the corpus builder.
|
|
135
|
+
*/
|
|
136
|
+
export const stateIaContractorsAdapter = createStateIaContractorsAdapter()
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* `state-ny-notaries`: New York Commissioned Notaries CSV consumer.
|
|
7
|
+
*
|
|
8
|
+
* The New York Department of State publishes a registry of commissioned notaries public. Each row
|
|
9
|
+
* optionally carries a business name and business address (~1-5% fill rate).
|
|
10
|
+
*
|
|
11
|
+
* The adapter consumes the CSV the operator pre-downloads via `fetch-state-sources.ts`. Column
|
|
12
|
+
* names match the data.ny.gov export header (note: some columns have leading spaces).
|
|
13
|
+
*
|
|
14
|
+
* License: stamped `"Public Domain"` per New York state government open-data terms.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { formatAddressRow } from "@mailwoman/codex/address-format"
|
|
18
|
+
import { isPresent } from "@mailwoman/core/objects"
|
|
19
|
+
import { CSVSpliterator } from "spliterator"
|
|
20
|
+
|
|
21
|
+
import { splitStreetLine, stableSourceID } from "#adapters/utils"
|
|
22
|
+
import type { AdapterOptions, CanonicalRow, CorpusAdapter } from "#types"
|
|
23
|
+
import { lookupStateAbbreviation } from "#us/fips-state"
|
|
24
|
+
|
|
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 STATE_NY_NOTARIES_ADAPTER_ID = "state-ny-notaries"
|
|
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 STATE_NY_NOTARIES_DEFAULT_LICENSE = "Public Domain"
|
|
35
|
+
|
|
36
|
+
export function createStateNyNotariesAdapter(): CorpusAdapter {
|
|
37
|
+
return {
|
|
38
|
+
id: STATE_NY_NOTARIES_ADAPTER_ID,
|
|
39
|
+
defaultLicense: STATE_NY_NOTARIES_DEFAULT_LICENSE,
|
|
40
|
+
description: "New York Commissioned Notaries — name + optional business address (public-domain).",
|
|
41
|
+
|
|
42
|
+
async *rows(opts: AdapterOptions): AsyncIterable<CanonicalRow> {
|
|
43
|
+
if (opts.country && opts.country !== "US") {
|
|
44
|
+
throw new Error(`state-ny-notaries adapter: only US supported, got country=${opts.country}`)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const rows = CSVSpliterator.fromAsync(opts.inputPath, {
|
|
48
|
+
normalizeKeys: false,
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
let emitted = 0
|
|
52
|
+
|
|
53
|
+
for await (const rawRecord of rows as AsyncIterable<Record<string, string>>) {
|
|
54
|
+
if (opts.signal?.aborted) break
|
|
55
|
+
|
|
56
|
+
if (opts.limit !== undefined && emitted >= opts.limit) break
|
|
57
|
+
|
|
58
|
+
// NY CSV has columns with leading spaces, so we normalize by trimming keys.
|
|
59
|
+
const record: Record<string, string> = {}
|
|
60
|
+
|
|
61
|
+
for (const key of Object.keys(rawRecord)) {
|
|
62
|
+
record[key.trim()] = rawRecord[key] ?? ""
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const holderName = (record["Commission Holder Name"] ?? "").trim()
|
|
66
|
+
const businessName = (record["Business Name (if available)"] ?? "").trim()
|
|
67
|
+
const address1 = (record["Business Address 1 (if available)"] ?? "").trim()
|
|
68
|
+
const address2 = (record["Business Address 2 (if available)"] ?? "").trim()
|
|
69
|
+
const city = (record["Business City (if available)"] ?? "").trim()
|
|
70
|
+
const stateAbbr = (record["Business State (if available)"] ?? "").trim()
|
|
71
|
+
const zip = (record["Business Zip (if available)"] ?? "").trim()
|
|
72
|
+
const county = (record["Commissioned County"] ?? "").trim()
|
|
73
|
+
|
|
74
|
+
if (!city || !stateAbbr || !zip) continue
|
|
75
|
+
|
|
76
|
+
if (!address1 && !address2) continue
|
|
77
|
+
|
|
78
|
+
const state = lookupStateAbbreviation(stateAbbr)
|
|
79
|
+
|
|
80
|
+
if (!state) continue
|
|
81
|
+
|
|
82
|
+
const fullAddress = [address1, address2].filter(isPresent).join(" ")
|
|
83
|
+
const split = splitStreetLine(fullAddress)
|
|
84
|
+
|
|
85
|
+
if (!split) continue
|
|
86
|
+
|
|
87
|
+
const venue = businessName || holderName || undefined
|
|
88
|
+
|
|
89
|
+
const components: CanonicalRow["components"] = {
|
|
90
|
+
...(venue ? { venue } : {}),
|
|
91
|
+
...(split.house_number ? { house_number: split.house_number } : {}),
|
|
92
|
+
street: split.street,
|
|
93
|
+
locality: city,
|
|
94
|
+
region: state.abbreviation,
|
|
95
|
+
postcode: zip,
|
|
96
|
+
...(county ? { subregion: county } : {}),
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const rendered = formatAddressRow(components, "US", { singleLine: true })
|
|
100
|
+
|
|
101
|
+
if (!rendered) continue
|
|
102
|
+
|
|
103
|
+
const { raw, components: aligned } = rendered
|
|
104
|
+
|
|
105
|
+
if (Object.keys(aligned).length <= 2) continue
|
|
106
|
+
|
|
107
|
+
const commNum = (record["Commission Number (UID)"] ?? "").trim()
|
|
108
|
+
|
|
109
|
+
const sourceID = commNum
|
|
110
|
+
? `${STATE_NY_NOTARIES_ADAPTER_ID}-${commNum}`
|
|
111
|
+
: stableSourceID(STATE_NY_NOTARIES_ADAPTER_ID, aligned)
|
|
112
|
+
|
|
113
|
+
yield {
|
|
114
|
+
raw,
|
|
115
|
+
components: aligned,
|
|
116
|
+
country: "US",
|
|
117
|
+
locale: "en-US",
|
|
118
|
+
source: STATE_NY_NOTARIES_ADAPTER_ID,
|
|
119
|
+
source_id: sourceID,
|
|
120
|
+
corpus_version: "",
|
|
121
|
+
license: STATE_NY_NOTARIES_DEFAULT_LICENSE,
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
emitted++
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* The configured adapter instance registered with the corpus builder.
|
|
132
|
+
*/
|
|
133
|
+
export const stateNyNotariesAdapter = createStateNyNotariesAdapter()
|