@mailwoman/corpus 9.4.0 → 10.1.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 +134 -32
- package/data/PROVENANCE.md +623 -17
- package/data/address-source-register.json +14249 -0
- package/data/builds/v0.7.0-de-holdout/inputs.json +22 -0
- package/data/builds/v0.8.0-registers/inputs.json +92 -0
- package/data/license-decisions.json +1603 -0
- package/data/licenses/PROVENANCE.md +65 -0
- package/data/licenses/cdla-permissive-2.0.md +43 -0
- package/data/licenses/geonames-publication.md +34 -0
- package/data/licenses/licence-ouverte-2.0.md +36 -0
- package/data/licenses/national-address-database.md +46 -0
- package/data/licenses/nlod-2.0.md +90 -0
- package/data/licenses/sirene-publication.md +38 -0
- package/data/licenses/whosonfirst-licenses.md +65 -0
- package/data/source-resolutions.json +804 -0
- package/data/sub-venue-lexicon.json +1 -1
- package/data/training-manifests/v0.7.0-de-holdout.effective.json +477 -0
- package/data/training-manifests/v0.7.0-de-holdout.json +78 -0
- package/lib/adapters/cordis/adapter.ts +785 -0
- package/lib/adapters/dedup-key.ts +40 -0
- package/lib/adapters/errors.ts +21 -0
- package/lib/adapters/geonames/adapter.ts +43 -53
- package/lib/adapters/geonames/postal/adapter.ts +116 -0
- package/lib/adapters/gleif/adapter.ts +828 -0
- package/lib/adapters/libpostal-dictionary.ts +39 -0
- package/lib/adapters/openaddresses/adapter.ts +54 -61
- package/lib/adapters/osm/adapter.ts +356 -0
- package/lib/adapters/overture/adapter.ts +65 -41
- package/lib/adapters/po-box/adapter.ts +202 -0
- package/lib/adapters/registry.ts +79 -0
- package/lib/adapters/sha256-stream.ts +49 -0
- package/lib/adapters/source-id.ts +49 -0
- package/lib/adapters/street-line.ts +135 -0
- package/lib/adapters/wof/admin/json/adapter.ts +254 -0
- package/lib/adapters/wof/json-rows.ts +211 -0
- package/lib/adapters/wof/postalcode-json/adapter.ts +194 -0
- package/lib/adapters.ts +230 -0
- package/lib/au/adapters/gnaf/adapter.ts +144 -0
- package/lib/au/adapters/gnaf/assemble.ts +205 -0
- package/lib/be/adapters/brussels/adapter.ts +566 -0
- package/lib/be/adapters/vlaanderen/adapter.ts +670 -0
- package/lib/be/adapters/wallonie/adapter.ts +537 -0
- package/lib/be/tools/fetch/brussels.ts +239 -0
- package/lib/be/tools/fetch/wallonie.ts +274 -0
- package/lib/build/adapters.ts +110 -0
- package/lib/build/align.ts +364 -0
- package/lib/build/checkpoint.ts +131 -0
- package/lib/build/eligibility.ts +96 -0
- package/lib/build/heap.ts +53 -0
- package/lib/build/inputs.ts +81 -0
- package/lib/build/rows.ts +21 -0
- package/lib/build/types.ts +232 -0
- package/lib/build.ts +127 -315
- package/lib/cn/recipes/organizational-units.ts +178 -0
- package/lib/cz/adapters/cuzk/adapter.ts +317 -0
- package/lib/cz/recipes/pcfirst-preposition.ts +125 -0
- package/lib/cz/tools/fetch/cuzk.ts +699 -0
- package/lib/de/recipes/locale.ts +370 -0
- package/lib/directory.ts +31 -0
- package/lib/dk/adapters/inspire/adapter.ts +345 -0
- package/lib/dk/tools/fetch/inspire.ts +321 -0
- package/lib/ee/adapters/ads/adapter.ts +246 -0
- package/lib/ee/tools/fetch/ads.ts +270 -0
- package/lib/env.ts +6 -2
- package/lib/es/adapters/bizkaia/adapter.ts +388 -0
- package/lib/es/adapters/catastro/adapter.ts +343 -0
- package/lib/es/adapters/gipuzkoa/adapter.ts +263 -0
- package/lib/es/adapters/navarra/adapter.ts +289 -0
- package/lib/es/cadastre.ts +194 -0
- package/lib/es/tools/fetch/bizkaia.ts +748 -0
- package/lib/es/tools/fetch/catastro.ts +754 -0
- package/lib/es/tools/fetch/gipuzkoa.ts +336 -0
- package/lib/es/tools/fetch/navarra.ts +488 -0
- package/lib/fi/adapters/ryhti/adapter.ts +323 -0
- package/lib/fi/tools/fetch/ryhti.ts +476 -0
- package/lib/fingerprints.ts +154 -0
- package/lib/fr/adapters/annuaire-education/adapter.ts +598 -0
- package/lib/fr/adapters/ban/adapter.ts +187 -0
- package/lib/fr/adapters/finess/adapter.ts +618 -0
- package/lib/fr/adapters/finess/postal-lines.ts +157 -0
- package/lib/fr/adapters/finess/voie-type.ts +200 -0
- package/lib/fr/insee-country.ts +62 -0
- package/lib/fr/recipes/admin-split.ts +221 -0
- package/lib/fr/recipes/bare-street.ts +158 -0
- package/lib/fr/recipes/fragment.ts +251 -0
- package/lib/fr/recipes/lieudit.ts +310 -0
- package/lib/fr/recipes/order.ts +219 -0
- package/lib/fr/street-decompose.ts +67 -0
- package/lib/fr/tools/fetch/annuaire-education.ts +306 -0
- package/lib/fr/tools/fetch/ban.ts +298 -0
- package/lib/fr/tools/fetch/finess.ts +352 -0
- package/lib/gauntlet-inputs.ts +92 -0
- package/lib/index.ts +10 -4
- package/lib/inspire/address.ts +457 -0
- package/lib/inspire/archive.ts +44 -0
- package/lib/inspire/errors.ts +71 -0
- package/lib/inspire/stream.ts +262 -0
- package/lib/international/recipes/locale.ts +556 -0
- package/lib/it/adapters/anac/adapter.ts +522 -0
- package/lib/it/tools/fetch/anac.ts +394 -0
- package/lib/jp/adapters/wof-admin/adapter.ts +224 -0
- package/lib/jp/tools/fetch/houjin.ts +139 -0
- package/lib/kr/adapters/juso/label-rows.ts +239 -0
- package/lib/kr/adapters/localdata/align.ts +288 -0
- package/lib/kr/adapters/localdata/key-index.ts +177 -0
- package/lib/kr/adapters/localdata/permit-rows.ts +193 -0
- package/lib/kr/tools/fetch/juso.ts +170 -0
- package/lib/kr/tools/fetch/localdata.ts +205 -0
- package/lib/lu/adapters/bd-adresses/adapter.ts +240 -0
- package/lib/lu/tools/fetch/bd-adresses.ts +351 -0
- package/lib/lv/adapters/varis/adapter.ts +499 -0
- package/lib/lv/tools/fetch/varis.ts +214 -0
- package/lib/nl/adapters/kadaster/adapter.ts +386 -0
- package/lib/nl/recipes/postcode.ts +139 -0
- package/lib/nl/tools/fetch/kadaster.ts +298 -0
- package/lib/no/adapters/matrikkelen/adapter.ts +187 -0
- package/lib/no/recipes/fragment.ts +189 -0
- package/lib/no/recipes/street/led.ts +154 -0
- package/lib/no/recipes/street.ts +109 -0
- package/lib/no/tools/fetch/matrikkelen.ts +519 -0
- package/lib/parquet/duckdb.ts +144 -0
- package/lib/parquet/readers.ts +86 -0
- package/lib/parquet/schema.ts +214 -0
- package/lib/parquet/shuffle.ts +59 -0
- package/lib/parquet/span-sql.ts +54 -0
- package/lib/parquet/streams.ts +113 -0
- package/lib/parquet/writers.ts +451 -0
- package/lib/pl/adapters/emuia/adapter.ts +202 -0
- package/lib/pl/tools/fetch/emuia.ts +360 -0
- package/lib/recipes/anchor-absorption.ts +30 -19
- package/lib/recipes/bare/country.ts +87 -0
- package/lib/recipes/bare/postcode/eval.ts +99 -0
- package/lib/recipes/bare/postcode.ts +346 -0
- package/lib/recipes/boundary-stress.ts +36 -19
- package/lib/recipes/country-balanced.ts +67 -87
- package/lib/recipes/house-venue.ts +31 -13
- package/lib/recipes/intersection.ts +83 -61
- package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
- package/lib/recipes/po/box/cedex/ca.ts +59 -0
- package/lib/recipes/po/box/cedex/fr.ts +77 -0
- package/lib/recipes/po/box/cedex/phrases.ts +109 -0
- package/lib/recipes/po/box/cedex/recipe.ts +215 -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 +74 -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.ts +149 -0
- package/lib/recipes/scaffold.ts +258 -182
- package/lib/recipes/sources.ts +399 -0
- package/lib/recipes/street/affix.ts +707 -0
- package/lib/recipes/street/bare.ts +115 -0
- package/lib/recipes/street.ts +32 -8
- package/lib/recipes/sub/venue/context.ts +156 -0
- package/lib/recipes/sub/venue/render.ts +170 -0
- package/lib/recipes/sub/venue/sources.ts +588 -0
- package/lib/recipes/sub/venue.ts +801 -0
- package/lib/recipes/trailing-region.ts +70 -81
- package/lib/recipes/unit/sources.ts +44 -0
- package/lib/recipes/unit.ts +102 -90
- package/lib/recipes.ts +106 -0
- package/lib/registers.ts +278 -0
- package/lib/ro/adapters/retea-scolara/adapter.ts +264 -0
- package/lib/ro/tools/fetch/retea-scolara.ts +187 -0
- package/lib/runner.ts +220 -84
- package/lib/sg/recipes/register.ts +264 -0
- package/lib/sg/tools/fetch/acra.ts +174 -0
- package/lib/si/recipes/bare-village.ts +116 -0
- package/lib/sk/adapters/inspire/adapter.ts +395 -0
- package/lib/sk/tools/fetch/inspire.ts +402 -0
- package/lib/source-register/effective-manifest.ts +659 -0
- package/lib/source-register/register.ts +539 -0
- package/lib/source-register/training-manifest.ts +218 -0
- package/lib/source-register/types.ts +590 -0
- package/lib/source-register.ts +71 -0
- package/lib/south-asia/recipes/register.ts +233 -0
- package/lib/subvenue/harvest.ts +251 -0
- package/lib/subvenue/promotions.ts +293 -0
- package/lib/subvenue/surfaces.ts +94 -0
- package/lib/subvenue/table.ts +264 -0
- package/lib/surfaces/locale.ts +246 -0
- package/lib/synthesizers/anchor-absorption.ts +55 -91
- package/lib/synthesizers/boundary-stress.ts +49 -131
- package/lib/synthesizers/house-venue.ts +44 -102
- package/lib/synthesizers/intersection.ts +37 -26
- package/lib/synthesizers/no-street.ts +70 -119
- package/lib/synthesizers/po-box.ts +90 -105
- package/lib/synthesizers/street.ts +47 -35
- package/lib/synthesizers/utils.ts +65 -219
- package/lib/test-kit/corpus-recipe.ts +45 -28
- package/lib/test-kit.ts +116 -0
- package/lib/tools/align-canonical.ts +64 -0
- package/lib/tools/audit.ts +114 -118
- package/lib/tools/corpus-stats.ts +46 -32
- package/lib/tools/fetch/atom.ts +164 -0
- package/lib/tools/fetch/cordis.ts +318 -0
- package/lib/tools/fetch/download/manifest.ts +114 -0
- package/lib/tools/fetch/download/network.ts +250 -0
- package/lib/tools/fetch/download/retry.ts +174 -0
- package/lib/tools/fetch/download.ts +4 -471
- package/lib/tools/fetch/geonames/dump.ts +275 -0
- package/lib/tools/fetch/geonames/postal.ts +145 -0
- package/lib/tools/fetch/gleif.ts +360 -0
- package/lib/tools/fetch/header.ts +69 -0
- package/lib/tools/fetch/inspire-addresses.ts +495 -0
- package/lib/tools/fetch/openaddresses.ts +20 -109
- package/lib/tools/fetch/ourairports.ts +16 -49
- package/lib/tools/fetch/ppd.ts +10 -10
- package/lib/tools/fetch/vlaanderen-ad.ts +435 -0
- package/lib/tools/fetch/wfs-harvest.ts +943 -0
- package/lib/tools/fetch/wikidata-subvenue.ts +43 -143
- package/lib/tools/fetch/zip-archive.ts +100 -0
- package/lib/tools/fetch.ts +143 -0
- package/lib/tools/golden/expand.ts +605 -0
- package/lib/tools/golden/promote.ts +349 -0
- package/lib/tools/golden/relabel-street/directory.ts +367 -0
- package/lib/tools/golden/relabel-street/row.ts +283 -0
- package/lib/tools/golden/relabel-street.ts +9 -0
- package/lib/tools/ingest-csv.ts +45 -50
- package/lib/tools/jsonl-to-parquet.ts +59 -98
- package/lib/tools/lint/recipe-output/vocab.ts +366 -0
- package/lib/tools/lint/recipe-output.ts +482 -0
- package/lib/tools/migrate/overlay-parquet.ts +173 -0
- package/lib/tools/migrate/recipe-output.ts +153 -0
- package/lib/tools/migrate/source-names.ts +161 -0
- package/lib/tools/overlay/kryptonite.ts +144 -0
- package/lib/tools/overlay/manifest.ts +407 -0
- package/lib/tools/overlay/merge-source.ts +138 -0
- package/lib/tools/overlay/split-slice.ts +144 -0
- package/lib/tools/overlay/translit.ts +234 -0
- package/lib/tools/overture-subvenue.ts +18 -91
- package/lib/tools/postcode-triples.ts +362 -167
- package/lib/tools/source-register/build.ts +819 -0
- package/lib/tools/sub/venue/head-nouns.ts +208 -0
- package/lib/tools/sub/venue/lexicon.ts +394 -0
- package/lib/tools/sub/venue/wikidata.ts +88 -0
- package/lib/tools.ts +31 -0
- package/lib/tw/tools/fetch/gcis.ts +181 -0
- package/lib/types.ts +304 -101
- package/lib/us/adapters/fcc-bdc/adapter.ts +158 -0
- package/lib/us/adapters/state/hi-schools/adapter.ts +171 -0
- package/lib/us/adapters/state/hi-schools/workbook.ts +40 -0
- package/lib/us/adapters/state/ia-contractors/adapter.ts +148 -0
- package/lib/us/adapters/state/ny-notaries/adapter.ts +132 -0
- package/lib/us/adapters/state/tx-notaries/adapter.ts +155 -0
- package/lib/us/adapters/tiger/adapter.ts +225 -0
- package/lib/us/adapters/tiger/street-decompose.ts +73 -0
- package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +171 -0
- package/lib/us/adapters/usgov/imls-pls/adapter.ts +140 -0
- package/lib/us/adapters/usgov/irs-bmf/adapter.ts +154 -0
- package/lib/us/adapters/usgov/nad/adapter.ts +263 -0
- package/lib/us/adapters/usgov/nppes/adapter.ts +180 -0
- package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +195 -0
- package/lib/us/fips-state.ts +122 -0
- package/lib/us/tools/fetch/hrsa.ts +58 -0
- package/lib/us/tools/fetch/imls-pls.ts +131 -0
- package/lib/us/tools/fetch/nad.ts +359 -0
- package/lib/us/tools/fetch/nppes.ts +153 -0
- package/lib/us/tools/fetch/state/hi-schools.ts +167 -0
- package/lib/us/tools/fetch/state/sources.ts +146 -0
- package/lib/us/tools/fetch/tiger-full.ts +256 -0
- package/lib/utils/align.ts +43 -53
- package/lib/utils/cooccurrence-stats.ts +101 -0
- package/lib/utils/golden.ts +39 -50
- package/lib/utils/license.ts +238 -26
- package/lib/utils/split.ts +205 -88
- package/lib/utils/tokenize.ts +22 -34
- package/lib/utils/wof-json.ts +134 -87
- package/lib/utils.ts +13 -0
- package/lib/ve/recipes/reviewed-postcode-tail.ts +217 -0
- package/out/adapters/cordis/adapter.d.ts +324 -0
- package/out/adapters/cordis/adapter.d.ts.map +1 -0
- package/out/adapters/cordis/adapter.js +616 -0
- package/out/adapters/cordis/adapter.js.map +1 -0
- package/out/adapters/dedup-key.d.ts +30 -0
- package/out/adapters/dedup-key.d.ts.map +1 -0
- package/out/adapters/dedup-key.js +35 -0
- package/out/adapters/dedup-key.js.map +1 -0
- package/out/adapters/errors.d.ts +17 -0
- package/out/adapters/errors.d.ts.map +1 -0
- package/out/adapters/errors.js +20 -0
- package/out/adapters/errors.js.map +1 -0
- package/out/adapters/geonames/adapter.d.ts +26 -28
- package/out/adapters/geonames/adapter.d.ts.map +1 -1
- package/out/adapters/geonames/adapter.js +40 -50
- package/out/adapters/geonames/adapter.js.map +1 -1
- package/out/adapters/geonames/postal/adapter.d.ts +41 -0
- package/out/adapters/geonames/postal/adapter.d.ts.map +1 -0
- package/out/adapters/geonames/postal/adapter.js +102 -0
- package/out/adapters/geonames/postal/adapter.js.map +1 -0
- package/out/adapters/gleif/adapter.d.ts +293 -0
- package/out/adapters/gleif/adapter.d.ts.map +1 -0
- package/out/adapters/gleif/adapter.js +684 -0
- package/out/adapters/gleif/adapter.js.map +1 -0
- package/out/adapters/libpostal-dictionary.d.ts +22 -0
- package/out/adapters/libpostal-dictionary.d.ts.map +1 -0
- package/out/adapters/libpostal-dictionary.js +36 -0
- package/out/adapters/libpostal-dictionary.js.map +1 -0
- package/out/adapters/openaddresses/adapter.d.ts +28 -43
- package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/adapters/openaddresses/adapter.js +37 -51
- package/out/adapters/openaddresses/adapter.js.map +1 -1
- package/out/adapters/osm/adapter.d.ts +101 -0
- package/out/adapters/osm/adapter.d.ts.map +1 -0
- package/out/adapters/osm/adapter.js +260 -0
- package/out/adapters/osm/adapter.js.map +1 -0
- package/out/adapters/overture/adapter.d.ts +14 -30
- package/out/adapters/overture/adapter.d.ts.map +1 -1
- package/out/adapters/overture/adapter.js +57 -41
- package/out/adapters/overture/adapter.js.map +1 -1
- package/out/adapters/po-box/adapter.d.ts +63 -0
- package/out/adapters/po-box/adapter.d.ts.map +1 -0
- package/out/adapters/po-box/adapter.js +139 -0
- package/out/adapters/po-box/adapter.js.map +1 -0
- package/out/adapters/registry.d.ts +55 -0
- package/out/adapters/registry.d.ts.map +1 -0
- package/out/adapters/registry.js +43 -0
- package/out/adapters/registry.js.map +1 -0
- package/out/adapters/sha256-stream.d.ts +26 -0
- package/out/adapters/sha256-stream.d.ts.map +1 -0
- package/out/adapters/sha256-stream.js +34 -0
- package/out/adapters/sha256-stream.js.map +1 -0
- package/out/adapters/source-id.d.ts +33 -0
- package/out/adapters/source-id.d.ts.map +1 -0
- package/out/adapters/source-id.js +42 -0
- package/out/adapters/source-id.js.map +1 -0
- package/out/adapters/street-line.d.ts +102 -0
- package/out/adapters/street-line.d.ts.map +1 -0
- package/out/adapters/street-line.js +117 -0
- package/out/adapters/street-line.js.map +1 -0
- package/out/adapters/wof/admin/json/adapter.d.ts +88 -0
- package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -0
- package/out/adapters/wof/admin/json/adapter.js +220 -0
- package/out/adapters/wof/admin/json/adapter.js.map +1 -0
- package/out/adapters/wof/json-rows.d.ts +89 -0
- package/out/adapters/wof/json-rows.d.ts.map +1 -0
- package/out/adapters/wof/json-rows.js +135 -0
- package/out/adapters/wof/json-rows.js.map +1 -0
- package/out/adapters/wof/postalcode-json/adapter.d.ts +49 -0
- package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -0
- package/out/adapters/wof/postalcode-json/adapter.js +165 -0
- package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
- package/out/adapters.d.ts +75 -0
- package/out/adapters.d.ts.map +1 -0
- package/out/adapters.js +167 -0
- package/out/adapters.js.map +1 -0
- package/out/au/adapters/gnaf/adapter.d.ts +37 -0
- package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
- package/out/au/adapters/gnaf/adapter.js +119 -0
- package/out/au/adapters/gnaf/adapter.js.map +1 -0
- package/out/au/adapters/gnaf/assemble.d.ts +54 -0
- package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
- package/out/au/adapters/gnaf/assemble.js +134 -0
- package/out/au/adapters/gnaf/assemble.js.map +1 -0
- package/out/be/adapters/brussels/adapter.d.ts +212 -0
- package/out/be/adapters/brussels/adapter.d.ts.map +1 -0
- package/out/be/adapters/brussels/adapter.js +435 -0
- package/out/be/adapters/brussels/adapter.js.map +1 -0
- package/out/be/adapters/vlaanderen/adapter.d.ts +233 -0
- package/out/be/adapters/vlaanderen/adapter.d.ts.map +1 -0
- package/out/be/adapters/vlaanderen/adapter.js +416 -0
- package/out/be/adapters/vlaanderen/adapter.js.map +1 -0
- package/out/be/adapters/wallonie/adapter.d.ts +196 -0
- package/out/be/adapters/wallonie/adapter.d.ts.map +1 -0
- package/out/be/adapters/wallonie/adapter.js +437 -0
- package/out/be/adapters/wallonie/adapter.js.map +1 -0
- package/out/be/tools/fetch/brussels.d.ts +119 -0
- package/out/be/tools/fetch/brussels.d.ts.map +1 -0
- package/out/be/tools/fetch/brussels.js +146 -0
- package/out/be/tools/fetch/brussels.js.map +1 -0
- package/out/be/tools/fetch/wallonie.d.ts +119 -0
- package/out/be/tools/fetch/wallonie.d.ts.map +1 -0
- package/out/be/tools/fetch/wallonie.js +167 -0
- package/out/be/tools/fetch/wallonie.js.map +1 -0
- package/out/build/adapters.d.ts +33 -0
- package/out/build/adapters.d.ts.map +1 -0
- package/out/build/adapters.js +68 -0
- package/out/build/adapters.js.map +1 -0
- package/out/build/align.d.ts +73 -0
- package/out/build/align.d.ts.map +1 -0
- package/out/build/align.js +226 -0
- package/out/build/align.js.map +1 -0
- package/out/build/checkpoint.d.ts +94 -0
- package/out/build/checkpoint.d.ts.map +1 -0
- package/out/build/checkpoint.js +59 -0
- package/out/build/checkpoint.js.map +1 -0
- package/out/build/eligibility.d.ts +47 -0
- package/out/build/eligibility.d.ts.map +1 -0
- package/out/build/eligibility.js +80 -0
- package/out/build/eligibility.js.map +1 -0
- package/out/build/heap.d.ts +28 -0
- package/out/build/heap.d.ts.map +1 -0
- package/out/build/heap.js +47 -0
- package/out/build/heap.js.map +1 -0
- package/out/build/inputs.d.ts +52 -0
- package/out/build/inputs.d.ts.map +1 -0
- package/out/build/inputs.js +49 -0
- package/out/build/inputs.js.map +1 -0
- package/out/build/rows.d.ts +16 -0
- package/out/build/rows.d.ts.map +1 -0
- package/out/build/rows.js +19 -0
- package/out/build/rows.js.map +1 -0
- package/out/build/types.d.ts +220 -0
- package/out/build/types.d.ts.map +1 -0
- package/out/build/types.js +34 -0
- package/out/build/types.js.map +1 -0
- package/out/build.d.ts +6 -121
- package/out/build.d.ts.map +1 -1
- package/out/build.js +112 -207
- package/out/build.js.map +1 -1
- package/out/cn/recipes/organizational-units.d.ts +19 -0
- package/out/cn/recipes/organizational-units.d.ts.map +1 -0
- package/out/cn/recipes/organizational-units.js +138 -0
- package/out/cn/recipes/organizational-units.js.map +1 -0
- package/out/cz/adapters/cuzk/adapter.d.ts +52 -0
- package/out/cz/adapters/cuzk/adapter.d.ts.map +1 -0
- package/out/cz/adapters/cuzk/adapter.js +266 -0
- package/out/cz/adapters/cuzk/adapter.js.map +1 -0
- package/out/cz/recipes/pcfirst-preposition.d.ts +18 -0
- package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
- package/out/cz/recipes/pcfirst-preposition.js +110 -0
- package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
- package/out/cz/tools/fetch/cuzk.d.ts +272 -0
- package/out/cz/tools/fetch/cuzk.d.ts.map +1 -0
- package/out/cz/tools/fetch/cuzk.js +446 -0
- package/out/cz/tools/fetch/cuzk.js.map +1 -0
- package/out/de/recipes/locale.d.ts +42 -0
- package/out/de/recipes/locale.d.ts.map +1 -0
- package/out/de/recipes/locale.js +299 -0
- package/out/de/recipes/locale.js.map +1 -0
- package/out/directory.d.ts +20 -0
- package/out/directory.d.ts.map +1 -0
- package/out/directory.js +27 -0
- package/out/directory.js.map +1 -0
- package/out/dk/adapters/inspire/adapter.d.ts +154 -0
- package/out/dk/adapters/inspire/adapter.d.ts.map +1 -0
- package/out/dk/adapters/inspire/adapter.js +258 -0
- package/out/dk/adapters/inspire/adapter.js.map +1 -0
- package/out/dk/tools/fetch/inspire.d.ts +100 -0
- package/out/dk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/dk/tools/fetch/inspire.js +230 -0
- package/out/dk/tools/fetch/inspire.js.map +1 -0
- package/out/ee/adapters/ads/adapter.d.ts +109 -0
- package/out/ee/adapters/ads/adapter.d.ts.map +1 -0
- package/out/ee/adapters/ads/adapter.js +191 -0
- package/out/ee/adapters/ads/adapter.js.map +1 -0
- package/out/ee/tools/fetch/ads.d.ts +123 -0
- package/out/ee/tools/fetch/ads.d.ts.map +1 -0
- package/out/ee/tools/fetch/ads.js +195 -0
- package/out/ee/tools/fetch/ads.js.map +1 -0
- package/out/env.d.ts +7 -3
- package/out/env.d.ts.map +1 -1
- package/out/env.js +6 -2
- package/out/env.js.map +1 -1
- package/out/es/adapters/bizkaia/adapter.d.ts +143 -0
- package/out/es/adapters/bizkaia/adapter.d.ts.map +1 -0
- package/out/es/adapters/bizkaia/adapter.js +332 -0
- package/out/es/adapters/bizkaia/adapter.js.map +1 -0
- package/out/es/adapters/catastro/adapter.d.ts +104 -0
- package/out/es/adapters/catastro/adapter.d.ts.map +1 -0
- package/out/es/adapters/catastro/adapter.js +288 -0
- package/out/es/adapters/catastro/adapter.js.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts +91 -0
- package/out/es/adapters/gipuzkoa/adapter.d.ts.map +1 -0
- package/out/es/adapters/gipuzkoa/adapter.js +225 -0
- package/out/es/adapters/gipuzkoa/adapter.js.map +1 -0
- package/out/es/adapters/navarra/adapter.d.ts +105 -0
- package/out/es/adapters/navarra/adapter.d.ts.map +1 -0
- package/out/es/adapters/navarra/adapter.js +241 -0
- package/out/es/adapters/navarra/adapter.js.map +1 -0
- package/out/es/cadastre.d.ts +109 -0
- package/out/es/cadastre.d.ts.map +1 -0
- package/out/es/cadastre.js +130 -0
- package/out/es/cadastre.js.map +1 -0
- package/out/es/tools/fetch/bizkaia.d.ts +278 -0
- package/out/es/tools/fetch/bizkaia.d.ts.map +1 -0
- package/out/es/tools/fetch/bizkaia.js +477 -0
- package/out/es/tools/fetch/bizkaia.js.map +1 -0
- package/out/es/tools/fetch/catastro.d.ts +272 -0
- package/out/es/tools/fetch/catastro.d.ts.map +1 -0
- package/out/es/tools/fetch/catastro.js +486 -0
- package/out/es/tools/fetch/catastro.js.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts +162 -0
- package/out/es/tools/fetch/gipuzkoa.d.ts.map +1 -0
- package/out/es/tools/fetch/gipuzkoa.js +209 -0
- package/out/es/tools/fetch/gipuzkoa.js.map +1 -0
- package/out/es/tools/fetch/navarra.d.ts +189 -0
- package/out/es/tools/fetch/navarra.d.ts.map +1 -0
- package/out/es/tools/fetch/navarra.js +316 -0
- package/out/es/tools/fetch/navarra.js.map +1 -0
- package/out/fi/adapters/ryhti/adapter.d.ts +115 -0
- package/out/fi/adapters/ryhti/adapter.d.ts.map +1 -0
- package/out/fi/adapters/ryhti/adapter.js +244 -0
- package/out/fi/adapters/ryhti/adapter.js.map +1 -0
- package/out/fi/tools/fetch/ryhti.d.ts +206 -0
- package/out/fi/tools/fetch/ryhti.d.ts.map +1 -0
- package/out/fi/tools/fetch/ryhti.js +327 -0
- package/out/fi/tools/fetch/ryhti.js.map +1 -0
- package/out/fingerprints.d.ts +68 -0
- package/out/fingerprints.d.ts.map +1 -0
- package/out/fingerprints.js +130 -0
- package/out/fingerprints.js.map +1 -0
- package/out/fr/adapters/annuaire-education/adapter.d.ts +236 -0
- package/out/fr/adapters/annuaire-education/adapter.d.ts.map +1 -0
- package/out/fr/adapters/annuaire-education/adapter.js +475 -0
- package/out/fr/adapters/annuaire-education/adapter.js.map +1 -0
- package/out/fr/adapters/ban/adapter.d.ts +38 -0
- package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
- package/out/fr/adapters/ban/adapter.js +134 -0
- package/out/fr/adapters/ban/adapter.js.map +1 -0
- package/out/fr/adapters/finess/adapter.d.ts +276 -0
- package/out/fr/adapters/finess/adapter.d.ts.map +1 -0
- package/out/fr/adapters/finess/adapter.js +519 -0
- package/out/fr/adapters/finess/adapter.js.map +1 -0
- package/out/fr/adapters/finess/postal-lines.d.ts +61 -0
- package/out/fr/adapters/finess/postal-lines.d.ts.map +1 -0
- package/out/fr/adapters/finess/postal-lines.js +114 -0
- package/out/fr/adapters/finess/postal-lines.js.map +1 -0
- package/out/fr/adapters/finess/voie-type.d.ts +77 -0
- package/out/fr/adapters/finess/voie-type.d.ts.map +1 -0
- package/out/fr/adapters/finess/voie-type.js +172 -0
- package/out/fr/adapters/finess/voie-type.js.map +1 -0
- package/out/fr/insee-country.d.ts +45 -0
- package/out/fr/insee-country.d.ts.map +1 -0
- package/out/fr/insee-country.js +60 -0
- package/out/fr/insee-country.js.map +1 -0
- package/out/fr/recipes/admin-split.d.ts +15 -0
- package/out/fr/recipes/admin-split.d.ts.map +1 -0
- package/out/fr/recipes/admin-split.js +170 -0
- package/out/fr/recipes/admin-split.js.map +1 -0
- package/out/fr/recipes/bare-street.d.ts +13 -0
- package/out/fr/recipes/bare-street.d.ts.map +1 -0
- package/out/fr/recipes/bare-street.js +129 -0
- package/out/fr/recipes/bare-street.js.map +1 -0
- package/out/fr/recipes/fragment.d.ts +18 -0
- package/out/fr/recipes/fragment.d.ts.map +1 -0
- package/out/fr/recipes/fragment.js +197 -0
- package/out/fr/recipes/fragment.js.map +1 -0
- package/out/fr/recipes/lieudit.d.ts +30 -0
- package/out/fr/recipes/lieudit.d.ts.map +1 -0
- package/out/fr/recipes/lieudit.js +231 -0
- package/out/fr/recipes/lieudit.js.map +1 -0
- package/out/fr/recipes/order.d.ts +15 -0
- package/out/fr/recipes/order.d.ts.map +1 -0
- package/out/fr/recipes/order.js +171 -0
- package/out/fr/recipes/order.js.map +1 -0
- package/out/fr/street-decompose.d.ts +29 -0
- package/out/fr/street-decompose.d.ts.map +1 -0
- package/out/fr/street-decompose.js +52 -0
- package/out/fr/street-decompose.js.map +1 -0
- package/out/fr/tools/fetch/annuaire-education.d.ts +130 -0
- package/out/fr/tools/fetch/annuaire-education.d.ts.map +1 -0
- package/out/fr/tools/fetch/annuaire-education.js +196 -0
- package/out/fr/tools/fetch/annuaire-education.js.map +1 -0
- package/out/fr/tools/fetch/ban.d.ts +33 -0
- package/out/fr/tools/fetch/ban.d.ts.map +1 -0
- package/out/fr/tools/fetch/ban.js +248 -0
- package/out/fr/tools/fetch/ban.js.map +1 -0
- package/out/fr/tools/fetch/finess.d.ts +145 -0
- package/out/fr/tools/fetch/finess.d.ts.map +1 -0
- package/out/fr/tools/fetch/finess.js +228 -0
- package/out/fr/tools/fetch/finess.js.map +1 -0
- package/out/gauntlet-inputs.d.ts +42 -0
- package/out/gauntlet-inputs.d.ts.map +1 -0
- package/out/gauntlet-inputs.js +78 -0
- package/out/gauntlet-inputs.js.map +1 -0
- package/out/index.d.ts +10 -4
- package/out/index.d.ts.map +1 -1
- package/out/index.js +10 -4
- package/out/index.js.map +1 -1
- package/out/inspire/address.d.ts +251 -0
- package/out/inspire/address.d.ts.map +1 -0
- package/out/inspire/address.js +384 -0
- package/out/inspire/address.js.map +1 -0
- package/out/inspire/archive.d.ts +36 -0
- package/out/inspire/archive.d.ts.map +1 -0
- package/out/inspire/archive.js +42 -0
- package/out/inspire/archive.js.map +1 -0
- package/out/inspire/errors.d.ts +55 -0
- package/out/inspire/errors.d.ts.map +1 -0
- package/out/inspire/errors.js +64 -0
- package/out/inspire/errors.js.map +1 -0
- package/out/inspire/stream.d.ts +137 -0
- package/out/inspire/stream.d.ts.map +1 -0
- package/out/inspire/stream.js +125 -0
- package/out/inspire/stream.js.map +1 -0
- package/out/international/recipes/locale.d.ts +90 -0
- package/out/international/recipes/locale.d.ts.map +1 -0
- package/out/international/recipes/locale.js +419 -0
- package/out/international/recipes/locale.js.map +1 -0
- package/out/it/adapters/anac/adapter.d.ts +267 -0
- package/out/it/adapters/anac/adapter.d.ts.map +1 -0
- package/out/it/adapters/anac/adapter.js +429 -0
- package/out/it/adapters/anac/adapter.js.map +1 -0
- package/out/it/tools/fetch/anac.d.ts +174 -0
- package/out/it/tools/fetch/anac.d.ts.map +1 -0
- package/out/it/tools/fetch/anac.js +272 -0
- package/out/it/tools/fetch/anac.js.map +1 -0
- package/out/jp/adapters/wof-admin/adapter.d.ts +68 -0
- package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
- package/out/jp/adapters/wof-admin/adapter.js +172 -0
- package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
- package/out/jp/tools/fetch/houjin.d.ts +27 -0
- package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
- package/out/jp/tools/fetch/houjin.js +106 -0
- package/out/jp/tools/fetch/houjin.js.map +1 -0
- package/out/kr/adapters/juso/label-rows.d.ts +62 -0
- package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
- package/out/kr/adapters/juso/label-rows.js +172 -0
- package/out/kr/adapters/juso/label-rows.js.map +1 -0
- package/out/kr/adapters/localdata/align.d.ts +31 -0
- package/out/kr/adapters/localdata/align.d.ts.map +1 -0
- package/out/kr/adapters/localdata/align.js +212 -0
- package/out/kr/adapters/localdata/align.js.map +1 -0
- package/out/kr/adapters/localdata/key-index.d.ts +62 -0
- package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
- package/out/kr/adapters/localdata/key-index.js +127 -0
- package/out/kr/adapters/localdata/key-index.js.map +1 -0
- package/out/kr/adapters/localdata/permit-rows.d.ts +73 -0
- package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
- package/out/kr/adapters/localdata/permit-rows.js +136 -0
- package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
- package/out/kr/tools/fetch/juso.d.ts +33 -0
- package/out/kr/tools/fetch/juso.d.ts.map +1 -0
- package/out/kr/tools/fetch/juso.js +121 -0
- package/out/kr/tools/fetch/juso.js.map +1 -0
- package/out/kr/tools/fetch/localdata.d.ts +37 -0
- package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
- package/out/kr/tools/fetch/localdata.js +147 -0
- package/out/kr/tools/fetch/localdata.js.map +1 -0
- package/out/lu/adapters/bd-adresses/adapter.d.ts +109 -0
- package/out/lu/adapters/bd-adresses/adapter.d.ts.map +1 -0
- package/out/lu/adapters/bd-adresses/adapter.js +196 -0
- package/out/lu/adapters/bd-adresses/adapter.js.map +1 -0
- package/out/lu/tools/fetch/bd-adresses.d.ts +163 -0
- package/out/lu/tools/fetch/bd-adresses.d.ts.map +1 -0
- package/out/lu/tools/fetch/bd-adresses.js +223 -0
- package/out/lu/tools/fetch/bd-adresses.js.map +1 -0
- package/out/lv/adapters/varis/adapter.d.ts +283 -0
- package/out/lv/adapters/varis/adapter.d.ts.map +1 -0
- package/out/lv/adapters/varis/adapter.js +404 -0
- package/out/lv/adapters/varis/adapter.js.map +1 -0
- package/out/lv/tools/fetch/varis.d.ts +80 -0
- package/out/lv/tools/fetch/varis.d.ts.map +1 -0
- package/out/lv/tools/fetch/varis.js +133 -0
- package/out/lv/tools/fetch/varis.js.map +1 -0
- package/out/nl/adapters/kadaster/adapter.d.ts +125 -0
- package/out/nl/adapters/kadaster/adapter.d.ts.map +1 -0
- package/out/nl/adapters/kadaster/adapter.js +310 -0
- package/out/nl/adapters/kadaster/adapter.js.map +1 -0
- package/out/nl/recipes/postcode.d.ts +24 -0
- package/out/nl/recipes/postcode.d.ts.map +1 -0
- package/out/nl/recipes/postcode.js +121 -0
- package/out/nl/recipes/postcode.js.map +1 -0
- package/out/nl/tools/fetch/kadaster.d.ts +155 -0
- package/out/nl/tools/fetch/kadaster.d.ts.map +1 -0
- package/out/nl/tools/fetch/kadaster.js +179 -0
- package/out/nl/tools/fetch/kadaster.js.map +1 -0
- package/out/no/adapters/matrikkelen/adapter.d.ts +44 -0
- package/out/no/adapters/matrikkelen/adapter.d.ts.map +1 -0
- package/out/no/adapters/matrikkelen/adapter.js +143 -0
- package/out/no/adapters/matrikkelen/adapter.js.map +1 -0
- package/out/no/recipes/fragment.d.ts +11 -0
- package/out/no/recipes/fragment.d.ts.map +1 -0
- package/out/no/recipes/fragment.js +149 -0
- package/out/no/recipes/fragment.js.map +1 -0
- package/out/no/recipes/street/led.d.ts +21 -0
- package/out/no/recipes/street/led.d.ts.map +1 -0
- package/out/no/recipes/street/led.js +124 -0
- package/out/no/recipes/street/led.js.map +1 -0
- package/out/no/recipes/street.d.ts +19 -0
- package/out/no/recipes/street.d.ts.map +1 -0
- package/out/no/recipes/street.js +88 -0
- package/out/no/recipes/street.js.map +1 -0
- package/out/no/tools/fetch/matrikkelen.d.ts +251 -0
- package/out/no/tools/fetch/matrikkelen.d.ts.map +1 -0
- package/out/no/tools/fetch/matrikkelen.js +345 -0
- package/out/no/tools/fetch/matrikkelen.js.map +1 -0
- package/out/parquet/duckdb.d.ts +100 -0
- package/out/parquet/duckdb.d.ts.map +1 -0
- package/out/parquet/duckdb.js +92 -0
- package/out/parquet/duckdb.js.map +1 -0
- package/out/parquet/readers.d.ts +44 -0
- package/out/parquet/readers.d.ts.map +1 -0
- package/out/parquet/readers.js +69 -0
- package/out/parquet/readers.js.map +1 -0
- package/out/parquet/schema.d.ts +95 -0
- package/out/parquet/schema.d.ts.map +1 -0
- package/out/parquet/schema.js +157 -0
- package/out/parquet/schema.js.map +1 -0
- package/out/parquet/shuffle.d.ts +25 -0
- package/out/parquet/shuffle.d.ts.map +1 -0
- package/out/parquet/shuffle.js +44 -0
- package/out/parquet/shuffle.js.map +1 -0
- package/out/parquet/span-sql.d.ts +49 -0
- package/out/parquet/span-sql.d.ts.map +1 -0
- package/out/parquet/span-sql.js +53 -0
- package/out/parquet/span-sql.js.map +1 -0
- package/out/parquet/streams.d.ts +47 -0
- package/out/parquet/streams.d.ts.map +1 -0
- package/out/parquet/streams.js +78 -0
- package/out/parquet/streams.js.map +1 -0
- package/out/parquet/writers.d.ts +124 -0
- package/out/parquet/writers.d.ts.map +1 -0
- package/out/parquet/writers.js +251 -0
- package/out/parquet/writers.js.map +1 -0
- package/out/pl/adapters/emuia/adapter.d.ts +81 -0
- package/out/pl/adapters/emuia/adapter.d.ts.map +1 -0
- package/out/pl/adapters/emuia/adapter.js +178 -0
- package/out/pl/adapters/emuia/adapter.js.map +1 -0
- package/out/pl/tools/fetch/emuia.d.ts +165 -0
- package/out/pl/tools/fetch/emuia.d.ts.map +1 -0
- package/out/pl/tools/fetch/emuia.js +260 -0
- package/out/pl/tools/fetch/emuia.js.map +1 -0
- package/out/recipes/anchor-absorption.d.ts +9 -9
- package/out/recipes/anchor-absorption.d.ts.map +1 -1
- package/out/recipes/anchor-absorption.js +29 -19
- package/out/recipes/anchor-absorption.js.map +1 -1
- package/out/recipes/bare/country.d.ts +7 -0
- package/out/recipes/bare/country.d.ts.map +1 -0
- package/out/recipes/bare/country.js +77 -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.d.ts +41 -0
- package/out/recipes/bare/postcode.d.ts.map +1 -0
- package/out/recipes/bare/postcode.js +279 -0
- package/out/recipes/bare/postcode.js.map +1 -0
- package/out/recipes/boundary-stress.d.ts +8 -8
- package/out/recipes/boundary-stress.d.ts.map +1 -1
- package/out/recipes/boundary-stress.js +36 -19
- package/out/recipes/boundary-stress.js.map +1 -1
- package/out/recipes/country-balanced.d.ts +3 -21
- package/out/recipes/country-balanced.d.ts.map +1 -1
- package/out/recipes/country-balanced.js +58 -76
- package/out/recipes/country-balanced.js.map +1 -1
- package/out/recipes/house-venue.d.ts +8 -6
- package/out/recipes/house-venue.d.ts.map +1 -1
- package/out/recipes/house-venue.js +29 -13
- package/out/recipes/house-venue.js.map +1 -1
- package/out/recipes/intersection.d.ts +20 -20
- package/out/recipes/intersection.d.ts.map +1 -1
- package/out/recipes/intersection.js +65 -53
- 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 +77 -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 +163 -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 +54 -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.d.ts +18 -0
- package/out/recipes/po/box.d.ts.map +1 -0
- package/out/recipes/po/box.js +123 -0
- package/out/recipes/po/box.js.map +1 -0
- package/out/recipes/scaffold.d.ts +214 -121
- package/out/recipes/scaffold.d.ts.map +1 -1
- package/out/recipes/scaffold.js +78 -88
- package/out/recipes/scaffold.js.map +1 -1
- package/out/recipes/sources.d.ts +178 -0
- package/out/recipes/sources.d.ts.map +1 -0
- package/out/recipes/sources.js +348 -0
- package/out/recipes/sources.js.map +1 -0
- package/out/recipes/street/affix.d.ts +59 -0
- package/out/recipes/street/affix.d.ts.map +1 -0
- package/out/recipes/street/affix.js +477 -0
- package/out/recipes/street/affix.js.map +1 -0
- package/out/recipes/street/bare.d.ts +27 -0
- package/out/recipes/street/bare.d.ts.map +1 -0
- package/out/recipes/street/bare.js +98 -0
- package/out/recipes/street/bare.js.map +1 -0
- package/out/recipes/street.d.ts +6 -4
- package/out/recipes/street.d.ts.map +1 -1
- package/out/recipes/street.js +29 -8
- package/out/recipes/street.js.map +1 -1
- package/out/recipes/sub/venue/context.d.ts +32 -0
- package/out/recipes/sub/venue/context.d.ts.map +1 -0
- package/out/recipes/sub/venue/context.js +110 -0
- package/out/recipes/sub/venue/context.js.map +1 -0
- package/out/recipes/sub/venue/render.d.ts +58 -0
- package/out/recipes/sub/venue/render.d.ts.map +1 -0
- package/out/recipes/sub/venue/render.js +118 -0
- package/out/recipes/sub/venue/render.js.map +1 -0
- package/out/recipes/sub/venue/sources.d.ts +166 -0
- package/out/recipes/sub/venue/sources.d.ts.map +1 -0
- package/out/recipes/sub/venue/sources.js +419 -0
- package/out/recipes/sub/venue/sources.js.map +1 -0
- package/out/recipes/sub/venue.d.ts +176 -0
- package/out/recipes/sub/venue.d.ts.map +1 -0
- package/out/recipes/sub/venue.js +562 -0
- package/out/recipes/sub/venue.js.map +1 -0
- package/out/recipes/trailing-region.d.ts +9 -61
- package/out/recipes/trailing-region.d.ts.map +1 -1
- package/out/recipes/trailing-region.js +56 -81
- package/out/recipes/trailing-region.js.map +1 -1
- package/out/recipes/unit/sources.d.ts +28 -0
- package/out/recipes/unit/sources.d.ts.map +1 -0
- package/out/recipes/unit/sources.js +30 -0
- package/out/recipes/unit/sources.js.map +1 -0
- package/out/recipes/unit.d.ts +30 -17
- package/out/recipes/unit.d.ts.map +1 -1
- package/out/recipes/unit.js +90 -79
- package/out/recipes/unit.js.map +1 -1
- package/out/recipes.d.ts +26 -0
- package/out/recipes.d.ts.map +1 -0
- package/out/recipes.js +100 -0
- package/out/recipes.js.map +1 -0
- package/out/registers.d.ts +277 -0
- package/out/registers.d.ts.map +1 -0
- package/out/registers.js +273 -0
- package/out/registers.js.map +1 -0
- package/out/ro/adapters/retea-scolara/adapter.d.ts +114 -0
- package/out/ro/adapters/retea-scolara/adapter.d.ts.map +1 -0
- package/out/ro/adapters/retea-scolara/adapter.js +209 -0
- package/out/ro/adapters/retea-scolara/adapter.js.map +1 -0
- package/out/ro/tools/fetch/retea-scolara.d.ts +69 -0
- package/out/ro/tools/fetch/retea-scolara.d.ts.map +1 -0
- package/out/ro/tools/fetch/retea-scolara.js +117 -0
- package/out/ro/tools/fetch/retea-scolara.js.map +1 -0
- package/out/runner.d.ts +120 -60
- package/out/runner.d.ts.map +1 -1
- package/out/runner.js +130 -56
- package/out/runner.js.map +1 -1
- package/out/sg/recipes/register.d.ts +55 -0
- package/out/sg/recipes/register.d.ts.map +1 -0
- package/out/sg/recipes/register.js +206 -0
- package/out/sg/recipes/register.js.map +1 -0
- package/out/sg/tools/fetch/acra.d.ts +20 -0
- package/out/sg/tools/fetch/acra.d.ts.map +1 -0
- package/out/sg/tools/fetch/acra.js +123 -0
- package/out/sg/tools/fetch/acra.js.map +1 -0
- package/out/si/recipes/bare-village.d.ts +31 -0
- package/out/si/recipes/bare-village.d.ts.map +1 -0
- package/out/si/recipes/bare-village.js +103 -0
- package/out/si/recipes/bare-village.js.map +1 -0
- package/out/sk/adapters/inspire/adapter.d.ts +119 -0
- package/out/sk/adapters/inspire/adapter.d.ts.map +1 -0
- package/out/sk/adapters/inspire/adapter.js +318 -0
- package/out/sk/adapters/inspire/adapter.js.map +1 -0
- package/out/sk/tools/fetch/inspire.d.ts +195 -0
- package/out/sk/tools/fetch/inspire.d.ts.map +1 -0
- package/out/sk/tools/fetch/inspire.js +280 -0
- package/out/sk/tools/fetch/inspire.js.map +1 -0
- package/out/source-register/effective-manifest.d.ts +355 -0
- package/out/source-register/effective-manifest.d.ts.map +1 -0
- package/out/source-register/effective-manifest.js +355 -0
- package/out/source-register/effective-manifest.js.map +1 -0
- package/out/source-register/register.d.ts +79 -0
- package/out/source-register/register.d.ts.map +1 -0
- package/out/source-register/register.js +400 -0
- package/out/source-register/register.js.map +1 -0
- package/out/source-register/training-manifest.d.ts +111 -0
- package/out/source-register/training-manifest.d.ts.map +1 -0
- package/out/source-register/training-manifest.js +120 -0
- package/out/source-register/training-manifest.js.map +1 -0
- package/out/source-register/types.d.ts +539 -0
- package/out/source-register/types.d.ts.map +1 -0
- package/out/source-register/types.js +263 -0
- package/out/source-register/types.js.map +1 -0
- package/out/source-register.d.ts +19 -0
- package/out/source-register.d.ts.map +1 -0
- package/out/source-register.js +16 -0
- package/out/source-register.js.map +1 -0
- package/out/south-asia/recipes/register.d.ts +54 -0
- package/out/south-asia/recipes/register.d.ts.map +1 -0
- package/out/south-asia/recipes/register.js +174 -0
- package/out/south-asia/recipes/register.js.map +1 -0
- package/out/subvenue/harvest.d.ts +117 -0
- package/out/subvenue/harvest.d.ts.map +1 -0
- package/out/subvenue/harvest.js +172 -0
- package/out/subvenue/harvest.js.map +1 -0
- package/out/subvenue/promotions.d.ts +65 -0
- package/out/subvenue/promotions.d.ts.map +1 -0
- package/out/subvenue/promotions.js +226 -0
- package/out/subvenue/promotions.js.map +1 -0
- package/out/subvenue/surfaces.d.ts +39 -0
- package/out/subvenue/surfaces.d.ts.map +1 -0
- package/out/subvenue/surfaces.js +75 -0
- package/out/subvenue/surfaces.js.map +1 -0
- package/out/subvenue/table.d.ts +212 -0
- package/out/subvenue/table.d.ts.map +1 -0
- package/out/subvenue/table.js +94 -0
- package/out/subvenue/table.js.map +1 -0
- package/out/surfaces/locale.d.ts +113 -0
- package/out/surfaces/locale.d.ts.map +1 -0
- package/out/surfaces/locale.js +136 -0
- package/out/surfaces/locale.js.map +1 -0
- package/out/synthesizers/anchor-absorption.d.ts +22 -31
- package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
- package/out/synthesizers/anchor-absorption.js +30 -85
- package/out/synthesizers/anchor-absorption.js.map +1 -1
- package/out/synthesizers/boundary-stress.d.ts +17 -48
- package/out/synthesizers/boundary-stress.d.ts.map +1 -1
- package/out/synthesizers/boundary-stress.js +27 -121
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/house-venue.d.ts +22 -25
- package/out/synthesizers/house-venue.d.ts.map +1 -1
- package/out/synthesizers/house-venue.js +28 -97
- package/out/synthesizers/house-venue.js.map +1 -1
- package/out/synthesizers/intersection.d.ts +10 -8
- package/out/synthesizers/intersection.d.ts.map +1 -1
- package/out/synthesizers/intersection.js +33 -26
- package/out/synthesizers/intersection.js.map +1 -1
- package/out/synthesizers/no-street.d.ts +7 -37
- package/out/synthesizers/no-street.d.ts.map +1 -1
- package/out/synthesizers/no-street.js +55 -111
- package/out/synthesizers/no-street.js.map +1 -1
- package/out/synthesizers/po-box.d.ts +46 -45
- package/out/synthesizers/po-box.d.ts.map +1 -1
- package/out/synthesizers/po-box.js +57 -97
- package/out/synthesizers/po-box.js.map +1 -1
- package/out/synthesizers/street.d.ts +18 -12
- package/out/synthesizers/street.d.ts.map +1 -1
- package/out/synthesizers/street.js +37 -30
- package/out/synthesizers/street.js.map +1 -1
- package/out/synthesizers/utils.d.ts +32 -129
- package/out/synthesizers/utils.d.ts.map +1 -1
- package/out/synthesizers/utils.js +54 -166
- package/out/synthesizers/utils.js.map +1 -1
- package/out/test-kit/corpus-recipe.d.ts +29 -23
- package/out/test-kit/corpus-recipe.d.ts.map +1 -1
- package/out/test-kit/corpus-recipe.js +28 -13
- package/out/test-kit/corpus-recipe.js.map +1 -1
- package/out/test-kit.d.ts +63 -0
- package/out/test-kit.d.ts.map +1 -0
- package/out/test-kit.js +88 -0
- package/out/test-kit.js.map +1 -0
- package/out/tools/align-canonical.d.ts +7 -0
- package/out/tools/align-canonical.d.ts.map +1 -0
- package/out/tools/align-canonical.js +52 -0
- package/out/tools/align-canonical.js.map +1 -0
- package/out/tools/audit.d.ts +18 -11
- package/out/tools/audit.d.ts.map +1 -1
- package/out/tools/audit.js +87 -95
- package/out/tools/audit.js.map +1 -1
- package/out/tools/corpus-stats.d.ts +24 -15
- package/out/tools/corpus-stats.d.ts.map +1 -1
- package/out/tools/corpus-stats.js +35 -31
- package/out/tools/corpus-stats.js.map +1 -1
- package/out/tools/fetch/atom.d.ts +115 -0
- package/out/tools/fetch/atom.d.ts.map +1 -0
- package/out/tools/fetch/atom.js +84 -0
- package/out/tools/fetch/atom.js.map +1 -0
- package/out/tools/fetch/cordis.d.ts +123 -0
- package/out/tools/fetch/cordis.d.ts.map +1 -0
- package/out/tools/fetch/cordis.js +208 -0
- package/out/tools/fetch/cordis.js.map +1 -0
- package/out/tools/fetch/download/manifest.d.ts +56 -0
- package/out/tools/fetch/download/manifest.d.ts.map +1 -0
- package/out/tools/fetch/download/manifest.js +81 -0
- package/out/tools/fetch/download/manifest.js.map +1 -0
- package/out/tools/fetch/download/network.d.ts +126 -0
- package/out/tools/fetch/download/network.d.ts.map +1 -0
- package/out/tools/fetch/download/network.js +140 -0
- package/out/tools/fetch/download/network.js.map +1 -0
- package/out/tools/fetch/download/retry.d.ts +46 -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/download.d.ts +4 -176
- package/out/tools/fetch/download.d.ts.map +1 -1
- package/out/tools/fetch/download.js +4 -312
- package/out/tools/fetch/download.js.map +1 -1
- package/out/tools/fetch/geonames/dump.d.ts +109 -0
- package/out/tools/fetch/geonames/dump.d.ts.map +1 -0
- package/out/tools/fetch/geonames/dump.js +181 -0
- package/out/tools/fetch/geonames/dump.js.map +1 -0
- package/out/tools/fetch/geonames/postal.d.ts +41 -0
- package/out/tools/fetch/geonames/postal.d.ts.map +1 -0
- package/out/tools/fetch/geonames/postal.js +87 -0
- package/out/tools/fetch/geonames/postal.js.map +1 -0
- package/out/tools/fetch/gleif.d.ts +137 -0
- package/out/tools/fetch/gleif.d.ts.map +1 -0
- package/out/tools/fetch/gleif.js +220 -0
- package/out/tools/fetch/gleif.js.map +1 -0
- package/out/tools/fetch/header.d.ts +41 -0
- package/out/tools/fetch/header.d.ts.map +1 -0
- package/out/tools/fetch/header.js +59 -0
- package/out/tools/fetch/header.js.map +1 -0
- package/out/tools/fetch/inspire-addresses.d.ts +249 -0
- package/out/tools/fetch/inspire-addresses.d.ts.map +1 -0
- package/out/tools/fetch/inspire-addresses.js +276 -0
- package/out/tools/fetch/inspire-addresses.js.map +1 -0
- package/out/tools/fetch/openaddresses.d.ts +0 -3
- package/out/tools/fetch/openaddresses.d.ts.map +1 -1
- package/out/tools/fetch/openaddresses.js +18 -97
- package/out/tools/fetch/openaddresses.js.map +1 -1
- package/out/tools/fetch/ourairports.d.ts +5 -32
- package/out/tools/fetch/ourairports.d.ts.map +1 -1
- package/out/tools/fetch/ourairports.js +13 -46
- package/out/tools/fetch/ourairports.js.map +1 -1
- package/out/tools/fetch/ppd.d.ts +4 -3
- package/out/tools/fetch/ppd.d.ts.map +1 -1
- package/out/tools/fetch/ppd.js +10 -9
- package/out/tools/fetch/ppd.js.map +1 -1
- package/out/tools/fetch/vlaanderen-ad.d.ts +131 -0
- package/out/tools/fetch/vlaanderen-ad.d.ts.map +1 -0
- package/out/tools/fetch/vlaanderen-ad.js +293 -0
- package/out/tools/fetch/vlaanderen-ad.js.map +1 -0
- package/out/tools/fetch/wfs-harvest.d.ts +410 -0
- package/out/tools/fetch/wfs-harvest.d.ts.map +1 -0
- package/out/tools/fetch/wfs-harvest.js +522 -0
- package/out/tools/fetch/wfs-harvest.js.map +1 -0
- package/out/tools/fetch/wikidata-subvenue.d.ts +31 -99
- package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
- package/out/tools/fetch/wikidata-subvenue.js +26 -121
- package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
- package/out/tools/fetch/zip-archive.d.ts +54 -0
- package/out/tools/fetch/zip-archive.d.ts.map +1 -0
- package/out/tools/fetch/zip-archive.js +58 -0
- package/out/tools/fetch/zip-archive.js.map +1 -0
- package/out/tools/fetch.d.ts +140 -0
- package/out/tools/fetch.d.ts.map +1 -0
- package/out/tools/fetch.js +136 -0
- package/out/tools/fetch.js.map +1 -0
- package/out/tools/golden/expand.d.ts +105 -0
- package/out/tools/golden/expand.d.ts.map +1 -0
- package/out/tools/golden/expand.js +420 -0
- package/out/tools/golden/expand.js.map +1 -0
- package/out/tools/golden/promote.d.ts +77 -0
- package/out/tools/golden/promote.d.ts.map +1 -0
- package/out/tools/golden/promote.js +248 -0
- package/out/tools/golden/promote.js.map +1 -0
- package/out/tools/golden/relabel-street/directory.d.ts +98 -0
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
- package/out/tools/golden/relabel-street/directory.js +227 -0
- package/out/tools/golden/relabel-street/directory.js.map +1 -0
- package/out/tools/golden/relabel-street/row.d.ts +69 -0
- package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
- package/out/tools/golden/relabel-street/row.js +174 -0
- package/out/tools/golden/relabel-street/row.js.map +1 -0
- package/out/tools/golden/relabel-street.d.ts +9 -0
- package/out/tools/golden/relabel-street.d.ts.map +1 -0
- package/out/tools/golden/relabel-street.js +9 -0
- package/out/tools/golden/relabel-street.js.map +1 -0
- package/out/tools/ingest-csv.d.ts +19 -15
- package/out/tools/ingest-csv.d.ts.map +1 -1
- package/out/tools/ingest-csv.js +39 -45
- package/out/tools/ingest-csv.js.map +1 -1
- package/out/tools/jsonl-to-parquet.d.ts +15 -28
- package/out/tools/jsonl-to-parquet.d.ts.map +1 -1
- package/out/tools/jsonl-to-parquet.js +49 -91
- package/out/tools/jsonl-to-parquet.js.map +1 -1
- package/out/tools/lint/recipe-output/vocab.d.ts +77 -0
- package/out/tools/lint/recipe-output/vocab.d.ts.map +1 -0
- package/out/tools/lint/recipe-output/vocab.js +239 -0
- package/out/tools/lint/recipe-output/vocab.js.map +1 -0
- package/out/tools/lint/recipe-output.d.ts +73 -0
- package/out/tools/lint/recipe-output.d.ts.map +1 -0
- package/out/tools/lint/recipe-output.js +302 -0
- package/out/tools/lint/recipe-output.js.map +1 -0
- package/out/tools/migrate/overlay-parquet.d.ts +30 -0
- package/out/tools/migrate/overlay-parquet.d.ts.map +1 -0
- package/out/tools/migrate/overlay-parquet.js +141 -0
- package/out/tools/migrate/overlay-parquet.js.map +1 -0
- package/out/tools/migrate/recipe-output.d.ts +35 -0
- package/out/tools/migrate/recipe-output.d.ts.map +1 -0
- package/out/tools/migrate/recipe-output.js +124 -0
- package/out/tools/migrate/recipe-output.js.map +1 -0
- package/out/tools/migrate/source-names.d.ts +52 -0
- package/out/tools/migrate/source-names.d.ts.map +1 -0
- package/out/tools/migrate/source-names.js +105 -0
- package/out/tools/migrate/source-names.js.map +1 -0
- package/out/tools/overlay/kryptonite.d.ts +33 -0
- package/out/tools/overlay/kryptonite.d.ts.map +1 -0
- package/out/tools/overlay/kryptonite.js +108 -0
- package/out/tools/overlay/kryptonite.js.map +1 -0
- package/out/tools/overlay/manifest.d.ts +142 -0
- package/out/tools/overlay/manifest.d.ts.map +1 -0
- package/out/tools/overlay/manifest.js +260 -0
- package/out/tools/overlay/manifest.js.map +1 -0
- package/out/tools/overlay/merge-source.d.ts +73 -0
- package/out/tools/overlay/merge-source.d.ts.map +1 -0
- package/out/tools/overlay/merge-source.js +63 -0
- package/out/tools/overlay/merge-source.js.map +1 -0
- package/out/tools/overlay/split-slice.d.ts +66 -0
- package/out/tools/overlay/split-slice.d.ts.map +1 -0
- package/out/tools/overlay/split-slice.js +78 -0
- package/out/tools/overlay/split-slice.js.map +1 -0
- package/out/tools/overlay/translit.d.ts +54 -0
- package/out/tools/overlay/translit.d.ts.map +1 -0
- package/out/tools/overlay/translit.js +177 -0
- package/out/tools/overlay/translit.js.map +1 -0
- package/out/tools/overture-subvenue.d.ts +17 -76
- package/out/tools/overture-subvenue.d.ts.map +1 -1
- package/out/tools/overture-subvenue.js +7 -74
- package/out/tools/overture-subvenue.js.map +1 -1
- package/out/tools/postcode-triples.d.ts +96 -109
- package/out/tools/postcode-triples.d.ts.map +1 -1
- package/out/tools/postcode-triples.js +237 -152
- package/out/tools/postcode-triples.js.map +1 -1
- package/out/tools/source-register/build.d.ts +145 -0
- package/out/tools/source-register/build.d.ts.map +1 -0
- package/out/tools/source-register/build.js +515 -0
- package/out/tools/source-register/build.js.map +1 -0
- package/out/tools/sub/venue/head-nouns.d.ts +21 -0
- package/out/tools/sub/venue/head-nouns.d.ts.map +1 -0
- package/out/tools/sub/venue/head-nouns.js +176 -0
- package/out/tools/sub/venue/head-nouns.js.map +1 -0
- package/out/tools/sub/venue/lexicon.d.ts +129 -0
- package/out/tools/sub/venue/lexicon.d.ts.map +1 -0
- package/out/tools/sub/venue/lexicon.js +239 -0
- package/out/tools/sub/venue/lexicon.js.map +1 -0
- package/out/tools/sub/venue/wikidata.d.ts +28 -0
- package/out/tools/sub/venue/wikidata.d.ts.map +1 -0
- package/out/tools/sub/venue/wikidata.js +65 -0
- package/out/tools/sub/venue/wikidata.js.map +1 -0
- package/out/tools.d.ts +31 -0
- package/out/tools.d.ts.map +1 -0
- package/out/tools.js +31 -0
- package/out/tools.js.map +1 -0
- package/out/tw/tools/fetch/gcis.d.ts +29 -0
- package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
- package/out/tw/tools/fetch/gcis.js +141 -0
- package/out/tw/tools/fetch/gcis.js.map +1 -0
- package/out/types.d.ts +270 -101
- package/out/types.d.ts.map +1 -1
- package/out/types.js +133 -9
- package/out/types.js.map +1 -1
- package/out/us/adapters/fcc-bdc/adapter.d.ts +50 -0
- package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
- package/out/us/adapters/fcc-bdc/adapter.js +129 -0
- package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
- package/out/us/adapters/state/hi-schools/adapter.d.ts +47 -0
- package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/hi-schools/adapter.js +146 -0
- package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
- package/out/us/adapters/state/hi-schools/workbook.d.ts +34 -0
- package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
- package/out/us/adapters/state/hi-schools/workbook.js +22 -0
- package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
- package/out/us/adapters/state/ia-contractors/adapter.d.ts +41 -0
- package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/ia-contractors/adapter.js +117 -0
- package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
- package/out/us/adapters/state/ny-notaries/adapter.d.ts +33 -0
- package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/ny-notaries/adapter.js +114 -0
- package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
- package/out/us/adapters/state/tx-notaries/adapter.d.ts +34 -0
- package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
- package/out/us/adapters/state/tx-notaries/adapter.js +125 -0
- package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
- package/out/us/adapters/tiger/adapter.d.ts +31 -0
- package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
- package/out/us/adapters/tiger/adapter.js +173 -0
- package/out/us/adapters/tiger/adapter.js.map +1 -0
- package/out/us/adapters/tiger/street-decompose.d.ts +23 -0
- package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
- package/out/us/adapters/tiger/street-decompose.js +58 -0
- package/out/us/adapters/tiger/street-decompose.js.map +1 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts +62 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +133 -0
- package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
- package/out/us/adapters/usgov/imls-pls/adapter.d.ts +37 -0
- package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/imls-pls/adapter.js +113 -0
- package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +38 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.js +126 -0
- package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
- package/out/us/adapters/usgov/nad/adapter.d.ts +28 -0
- package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/nad/adapter.js +185 -0
- package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
- package/out/us/adapters/usgov/nppes/adapter.d.ts +29 -0
- package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
- package/out/us/adapters/usgov/nppes/adapter.js +140 -0
- package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts +47 -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 +153 -0
- package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
- package/out/us/fips-state.d.ts +50 -0
- package/out/us/fips-state.d.ts.map +1 -0
- package/out/us/fips-state.js +109 -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 +45 -0
- package/out/us/tools/fetch/hrsa.js.map +1 -0
- package/out/us/tools/fetch/imls-pls.d.ts +14 -0
- package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
- package/out/us/tools/fetch/imls-pls.js +91 -0
- package/out/us/tools/fetch/imls-pls.js.map +1 -0
- package/out/us/tools/fetch/nad.d.ts +82 -0
- package/out/us/tools/fetch/nad.d.ts.map +1 -0
- package/out/us/tools/fetch/nad.js +239 -0
- package/out/us/tools/fetch/nad.js.map +1 -0
- package/out/us/tools/fetch/nppes.d.ts +16 -0
- package/out/us/tools/fetch/nppes.d.ts.map +1 -0
- package/out/us/tools/fetch/nppes.js +114 -0
- package/out/us/tools/fetch/nppes.js.map +1 -0
- package/out/us/tools/fetch/state/hi-schools.d.ts +29 -0
- package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
- package/out/us/tools/fetch/state/hi-schools.js +114 -0
- package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
- package/out/us/tools/fetch/state/sources.d.ts +27 -0
- package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
- package/out/us/tools/fetch/state/sources.js +110 -0
- package/out/us/tools/fetch/state/sources.js.map +1 -0
- package/out/us/tools/fetch/tiger-full.d.ts +9 -0
- package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
- package/out/us/tools/fetch/tiger-full.js +178 -0
- package/out/us/tools/fetch/tiger-full.js.map +1 -0
- package/out/utils/align.d.ts +25 -20
- package/out/utils/align.d.ts.map +1 -1
- package/out/utils/align.js +27 -42
- package/out/utils/align.js.map +1 -1
- package/out/utils/cooccurrence-stats.d.ts +58 -0
- package/out/utils/cooccurrence-stats.d.ts.map +1 -0
- package/out/utils/cooccurrence-stats.js +62 -0
- package/out/utils/cooccurrence-stats.js.map +1 -0
- package/out/utils/golden.d.ts +23 -29
- package/out/utils/golden.d.ts.map +1 -1
- package/out/utils/golden.js +33 -45
- package/out/utils/golden.js.map +1 -1
- package/out/utils/license.d.ts +158 -21
- package/out/utils/license.d.ts.map +1 -1
- package/out/utils/license.js +156 -26
- package/out/utils/license.js.map +1 -1
- package/out/utils/split.d.ts +66 -70
- package/out/utils/split.d.ts.map +1 -1
- package/out/utils/split.js +158 -69
- package/out/utils/split.js.map +1 -1
- package/out/utils/tokenize.d.ts +16 -28
- package/out/utils/tokenize.d.ts.map +1 -1
- package/out/utils/tokenize.js +18 -31
- package/out/utils/tokenize.js.map +1 -1
- package/out/utils/wof-json.d.ts +88 -62
- package/out/utils/wof-json.d.ts.map +1 -1
- package/out/utils/wof-json.js +81 -65
- package/out/utils/wof-json.js.map +1 -1
- package/out/utils.d.ts +13 -0
- package/out/utils.d.ts.map +1 -0
- package/out/utils.js +13 -0
- package/out/utils.js.map +1 -0
- package/out/ve/recipes/reviewed-postcode-tail.d.ts +65 -0
- package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
- package/out/ve/recipes/reviewed-postcode-tail.js +146 -0
- package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
- package/package.json +46 -330
- package/lib/adapters/ban/adapter.ts +0 -190
- package/lib/adapters/ban/street-decompose.ts +0 -66
- 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/index.ts +0 -153
- package/lib/adapters/state-hi-schools/adapter.ts +0 -170
- package/lib/adapters/state-hi-schools/workbook.ts +0 -35
- 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/synth-po-box/adapter.ts +0 -204
- package/lib/adapters/tiger/adapter.ts +0 -252
- package/lib/adapters/tiger/street-decompose.ts +0 -83
- 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/utils/index.ts +0 -307
- package/lib/adapters/wof-admin-jp/adapter.ts +0 -214
- 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/codex/us-fips-state.ts +0 -113
- package/lib/recipes/bare-country.ts +0 -95
- package/lib/recipes/cn-organizational-units.ts +0 -199
- package/lib/recipes/cz-pcfirst-preposition.ts +0 -112
- package/lib/recipes/fr-admin-split.ts +0 -243
- package/lib/recipes/fr-bare-street.ts +0 -171
- package/lib/recipes/fr-fragment.ts +0 -334
- package/lib/recipes/fr-lieudit.ts +0 -301
- package/lib/recipes/fr-order.ts +0 -246
- package/lib/recipes/german.ts +0 -360
- package/lib/recipes/index.ts +0 -97
- package/lib/recipes/locale.ts +0 -600
- package/lib/recipes/nl-postcode.ts +0 -117
- package/lib/recipes/no-fragment.ts +0 -213
- package/lib/recipes/no-street-led.ts +0 -135
- package/lib/recipes/no-street.ts +0 -91
- package/lib/recipes/po-box-cedex.ts +0 -976
- package/lib/recipes/po-box.ts +0 -124
- package/lib/recipes/reviewed-postcode-tail.ts +0 -190
- package/lib/recipes/si-bare-village.ts +0 -99
- package/lib/recipes/street-affix.ts +0 -805
- package/lib/recipes/street-bare.ts +0 -102
- package/lib/recipes/sub-venue-sources.ts +0 -878
- package/lib/recipes/sub-venue.ts +0 -998
- package/lib/synthesizers/german.ts +0 -260
- package/lib/test-kit/index.ts +0 -100
- package/lib/tools/align-slice.ts +0 -68
- package/lib/tools/fetch/acra-sg.ts +0 -174
- package/lib/tools/fetch/ban.ts +0 -289
- package/lib/tools/fetch/gcis-tw.ts +0 -175
- package/lib/tools/fetch/geonames-dump.ts +0 -257
- package/lib/tools/fetch/geonames-postal.ts +0 -180
- package/lib/tools/fetch/houjin-jp.ts +0 -135
- package/lib/tools/fetch/hrsa.ts +0 -59
- package/lib/tools/fetch/imls-pls.ts +0 -149
- package/lib/tools/fetch/index.ts +0 -174
- package/lib/tools/fetch/juso-kr.ts +0 -165
- package/lib/tools/fetch/localdata-kr.ts +0 -194
- 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/gb-title-case.ts +0 -69
- package/lib/tools/golden-expand.ts +0 -574
- package/lib/tools/golden-promote.ts +0 -337
- package/lib/tools/golden-relabel-street.ts +0 -686
- package/lib/tools/index.ts +0 -28
- package/lib/tools/lint-slice-vocab.ts +0 -388
- package/lib/tools/lint-slice.ts +0 -496
- package/lib/tools/overlay-manifest.ts +0 -148
- package/lib/tools/slice-kryptonite.ts +0 -137
- package/lib/tools/slice-translit.ts +0 -218
- 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/lib/tools/sub-venue-promotions.ts +0 -330
- package/lib/utils/index.ts +0 -14
- package/lib/utils/parquet.ts +0 -582
- package/lib/utils/slice-stats.ts +0 -95
- package/out/adapters/ban/adapter.d.ts +0 -44
- 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 +0 -28
- package/out/adapters/ban/street-decompose.d.ts.map +0 -1
- package/out/adapters/ban/street-decompose.js +0 -51
- package/out/adapters/ban/street-decompose.js.map +0 -1
- package/out/adapters/fcc-bdc/adapter.d.ts +0 -68
- 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 +0 -54
- 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 +0 -49
- 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/index.d.ts +0 -51
- package/out/adapters/index.d.ts.map +0 -1
- package/out/adapters/index.js +0 -95
- package/out/adapters/index.js.map +0 -1
- package/out/adapters/state-hi-schools/adapter.d.ts +0 -46
- 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 +0 -29
- package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
- package/out/adapters/state-hi-schools/workbook.js +0 -20
- package/out/adapters/state-hi-schools/workbook.js.map +0 -1
- package/out/adapters/state-ia-contractors/adapter.d.ts +0 -34
- 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 +0 -32
- 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 +0 -33
- 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/synth-po-box/adapter.d.ts +0 -67
- package/out/adapters/synth-po-box/adapter.d.ts.map +0 -1
- package/out/adapters/synth-po-box/adapter.js +0 -140
- package/out/adapters/synth-po-box/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 +0 -30
- package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
- package/out/adapters/tiger/street-decompose.js +0 -68
- package/out/adapters/tiger/street-decompose.js.map +0 -1
- package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts +0 -56
- 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 +0 -36
- 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 +0 -37
- 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 +0 -48
- 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 +0 -39
- 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 +0 -46
- 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/utils/index.d.ts +0 -191
- package/out/adapters/utils/index.d.ts.map +0 -1
- package/out/adapters/utils/index.js +0 -206
- package/out/adapters/utils/index.js.map +0 -1
- package/out/adapters/wof-admin-jp/adapter.d.ts +0 -65
- package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
- package/out/adapters/wof-admin-jp/adapter.js +0 -161
- 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/recipes/bare-country.d.ts +0 -25
- package/out/recipes/bare-country.d.ts.map +0 -1
- package/out/recipes/bare-country.js +0 -88
- 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 -101
- 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 -144
- 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 -277
- 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 -198
- 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 -289
- package/out/recipes/german.js.map +0 -1
- package/out/recipes/index.d.ts +0 -24
- package/out/recipes/index.d.ts.map +0 -1
- package/out/recipes/index.js +0 -91
- package/out/recipes/index.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 -103
- 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 -183
- 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 -114
- 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 -72
- 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 -768
- 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 -101
- package/out/recipes/po-box.js.map +0 -1
- package/out/recipes/reviewed-postcode-tail.d.ts +0 -47
- package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
- package/out/recipes/reviewed-postcode-tail.js +0 -125
- 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 -89
- 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 -87
- 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 -654
- 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 -726
- 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/test-kit/index.d.ts +0 -48
- package/out/test-kit/index.d.ts.map +0 -1
- package/out/test-kit/index.js +0 -78
- package/out/test-kit/index.js.map +0 -1
- package/out/tools/align-slice.d.ts +0 -7
- package/out/tools/align-slice.d.ts.map +0 -1
- package/out/tools/align-slice.js +0 -55
- package/out/tools/align-slice.js.map +0 -1
- package/out/tools/fetch/acra-sg.d.ts +0 -23
- package/out/tools/fetch/acra-sg.d.ts.map +0 -1
- package/out/tools/fetch/acra-sg.js +0 -126
- package/out/tools/fetch/acra-sg.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/gcis-tw.d.ts +0 -23
- package/out/tools/fetch/gcis-tw.d.ts.map +0 -1
- package/out/tools/fetch/gcis-tw.js +0 -135
- package/out/tools/fetch/gcis-tw.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/houjin-jp.d.ts +0 -24
- package/out/tools/fetch/houjin-jp.d.ts.map +0 -1
- package/out/tools/fetch/houjin-jp.js +0 -102
- package/out/tools/fetch/houjin-jp.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/index.d.ts +0 -171
- package/out/tools/fetch/index.d.ts.map +0 -1
- package/out/tools/fetch/index.js +0 -170
- package/out/tools/fetch/index.js.map +0 -1
- package/out/tools/fetch/juso-kr.d.ts +0 -30
- package/out/tools/fetch/juso-kr.d.ts.map +0 -1
- package/out/tools/fetch/juso-kr.js +0 -120
- package/out/tools/fetch/juso-kr.js.map +0 -1
- package/out/tools/fetch/localdata-kr.d.ts +0 -30
- package/out/tools/fetch/localdata-kr.d.ts.map +0 -1
- package/out/tools/fetch/localdata-kr.js +0 -139
- package/out/tools/fetch/localdata-kr.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/gb-title-case.d.ts +0 -2
- package/out/tools/gb-title-case.d.ts.map +0 -1
- package/out/tools/gb-title-case.js +0 -65
- package/out/tools/gb-title-case.js.map +0 -1
- package/out/tools/golden-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 -439
- package/out/tools/golden-relabel-street.js.map +0 -1
- package/out/tools/index.d.ts +0 -28
- package/out/tools/index.d.ts.map +0 -1
- package/out/tools/index.js +0 -28
- package/out/tools/index.js.map +0 -1
- package/out/tools/lint-slice-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/overlay-manifest.d.ts +0 -39
- package/out/tools/overlay-manifest.d.ts.map +0 -1
- package/out/tools/overlay-manifest.js +0 -90
- package/out/tools/overlay-manifest.js.map +0 -1
- package/out/tools/slice-kryptonite.d.ts +0 -32
- package/out/tools/slice-kryptonite.d.ts.map +0 -1
- package/out/tools/slice-kryptonite.js +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 +0 -213
- 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 +0 -77
- package/out/tools/sub-venue/surfaces.js.map +0 -1
- package/out/tools/sub-venue/table.d.ts +0 -229
- package/out/tools/sub-venue/table.d.ts.map +0 -1
- package/out/tools/sub-venue/table.js +0 -108
- package/out/tools/sub-venue/table.js.map +0 -1
- package/out/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/out/utils/index.d.ts +0 -14
- package/out/utils/index.d.ts.map +0 -1
- package/out/utils/index.js +0 -14
- package/out/utils/index.js.map +0 -1
- package/out/utils/parquet.d.ts +0 -178
- package/out/utils/parquet.d.ts.map +0 -1
- package/out/utils/parquet.js +0 -371
- package/out/utils/parquet.js.map +0 -1
- package/out/utils/slice-stats.d.ts +0 -52
- package/out/utils/slice-stats.d.ts.map +0 -1
- package/out/utils/slice-stats.js +0 -58
- package/out/utils/slice-stats.js.map +0 -1
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* The paging, manifest and resumption machinery a paged WFS harvest shares.
|
|
7
|
+
*
|
|
8
|
+
* `./inspire-addresses.ts` owns what an INSPIRE Addresses service exposes — its capabilities, its
|
|
9
|
+
* feature-type names and its GeoJSON pages. This module owns what a harvest of any paged WFS does
|
|
10
|
+
* with those pages: it appends each one to the single file an adapter's `inputPath` points at,
|
|
11
|
+
* records the page in a manifest beside it, and resumes from that manifest after an interrupted run.
|
|
12
|
+
*
|
|
13
|
+
* One file rather than one file per page, because the adapters read one. `#ee/adapters/ads/adapter`
|
|
14
|
+
* opens `opts.inputPath` as newline-delimited JSON and `#pl/adapters/emuia/adapter` opens it as one
|
|
15
|
+
* markup stream, so a directory of pages reaches neither. The manifest therefore records each page's
|
|
16
|
+
* byte range inside that file: `offset`, `bytes` and the sha256 of exactly those bytes. A range is
|
|
17
|
+
* what makes a page verifiable after it has been concatenated into its neighbors, and what lets an
|
|
18
|
+
* interrupted append be truncated back to a page boundary rather than discarding the harvest.
|
|
19
|
+
*
|
|
20
|
+
* Three properties of a WFS make this harder than reading pages until they run out, and each is
|
|
21
|
+
* handled here rather than by each country's module:
|
|
22
|
+
*
|
|
23
|
+
* 1. A service may ignore `startIndex` and answer every page with the first. `countWFSFeaturesByPaging`
|
|
24
|
+
* in `@mailwoman/core/api` refuses such a service by comparing two pages' leading feature. A
|
|
25
|
+
* harvest sees the same defect as two consecutive pages with equal bytes, which this refuses.
|
|
26
|
+
* 2. A service's own `numberMatched` may be a per-request cap rather than a count. The caller states
|
|
27
|
+
* what its count is and where it came from, and {@linkcode PagedWFSHarvestOptions.featureCount}
|
|
28
|
+
* carries both. No count is written into this module, and a harvest with no usable count ends on
|
|
29
|
+
* the first page that returns no features.
|
|
30
|
+
* 3. A page may return fewer features than `count` asks for. The next `startIndex` therefore advances
|
|
31
|
+
* by the features the service returned rather than by the page size, so a service that caps a page
|
|
32
|
+
* below the requested size is read whole instead of being read in strides that skip features.
|
|
33
|
+
*/
|
|
34
|
+
import { APIClient, assertNoOGCServiceException } from "@mailwoman/core/api";
|
|
35
|
+
import { ByteFormatter } from "@mailwoman/core/fs/formatters";
|
|
36
|
+
import { readFileRange, tryStat } from "@mailwoman/core/fs/readers";
|
|
37
|
+
import { appendLocalTextFile, makeDirectories, removePathIfPresent, truncateFile } from "@mailwoman/core/fs/writers";
|
|
38
|
+
import { sha256File, sha256Hex } from "@mailwoman/core/hash";
|
|
39
|
+
import { stringifyJSON } from "@mailwoman/core/json";
|
|
40
|
+
import { isoSecondsUTC } from "@mailwoman/core/utils";
|
|
41
|
+
import { PathBuilder } from "path-ts";
|
|
42
|
+
import { readManifest, writeManifest } from "#tools/fetch/download";
|
|
43
|
+
/**
|
|
44
|
+
* The WFS version this repository's harvesters speak.
|
|
45
|
+
*
|
|
46
|
+
* 2.0.0 defines `startIndex` paging and the `hits` result type, and it is what
|
|
47
|
+
* every service measured for these modules advertises.
|
|
48
|
+
*/
|
|
49
|
+
export const WFS_VERSION = "2.0.0";
|
|
50
|
+
/**
|
|
51
|
+
* The file name a harvest writes its manifest under, beside the data file.
|
|
52
|
+
*/
|
|
53
|
+
export const HARVEST_MANIFEST_FILE = "MANIFEST.json";
|
|
54
|
+
/**
|
|
55
|
+
* The first element tag in a document.
|
|
56
|
+
*
|
|
57
|
+
* An index scan over the tag rather than a parse of the document: a harvest needs the
|
|
58
|
+
* opening tag verbatim to open the file it assembles, and parsing a 1.6 MB page per request
|
|
59
|
+
* to recover a tag that the first 400 bytes already hold costs a document parse per page.
|
|
60
|
+
*
|
|
61
|
+
* The leading `[A-Za-z_]` skips the XML declaration, which opens `<?xml`.
|
|
62
|
+
*/
|
|
63
|
+
const ROOT_OPENING_TAG = /<([A-Za-z_][\w.:-]*)([^>]*)>/u;
|
|
64
|
+
/**
|
|
65
|
+
* One attribute of an opening tag, by local name.
|
|
66
|
+
*/
|
|
67
|
+
function tagAttribute(root, attribute) {
|
|
68
|
+
const pattern = new RegExp(`(?:^|\\s)(?:[\\w.-]+:)?${attribute}\\s*=\\s*"([^"]*)"`, "iu");
|
|
69
|
+
return pattern.exec(root.attributes)?.[1];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The count an opening tag states, or `null` where it states none or declines to state one.
|
|
73
|
+
*
|
|
74
|
+
* WFS 2.0 permits `numberMatched="unknown"`, which declines to count rather than counting none.
|
|
75
|
+
*/
|
|
76
|
+
export function rootCount(root, attribute) {
|
|
77
|
+
const value = tagAttribute(root, attribute);
|
|
78
|
+
return value !== undefined && /^\d+$/u.test(value) ? Number(value) : null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The document's first element tag.
|
|
82
|
+
*
|
|
83
|
+
* @throws When the body holds no element tag, so a response that is not markup
|
|
84
|
+
* reads as unreadable rather than as a page of no features.
|
|
85
|
+
*/
|
|
86
|
+
export function readMarkupRoot(body, context) {
|
|
87
|
+
const match = ROOT_OPENING_TAG.exec(body);
|
|
88
|
+
if (!match) {
|
|
89
|
+
throw new TypeError(`${context}: the response carried no element tag, so its root could not be read, beginning ${stringifyJSON(body.slice(0, 120))}`);
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
tag: match[0],
|
|
93
|
+
name: match[1] ?? "",
|
|
94
|
+
attributes: match[2] ?? "",
|
|
95
|
+
contentStart: match.index + match[0].length,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The content between a document's root tags, which for a `wfs:FeatureCollection` is its members.
|
|
100
|
+
*
|
|
101
|
+
* @throws When the root element is not closed, so a truncated transfer reads as
|
|
102
|
+
* unreadable rather than as a page of no features.
|
|
103
|
+
*/
|
|
104
|
+
export function rootContent(body, root, context) {
|
|
105
|
+
const closing = `</${root.name}>`;
|
|
106
|
+
const end = body.lastIndexOf(closing);
|
|
107
|
+
if (end < root.contentStart) {
|
|
108
|
+
throw new TypeError(`${context}: the response's ${root.name} element is not closed, so the members it holds could not be separated from the document that carries them`);
|
|
109
|
+
}
|
|
110
|
+
return body.slice(root.contentStart, end);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The attributes a page states about itself rather than about the feature type.
|
|
114
|
+
*
|
|
115
|
+
* A harvest assembles many pages under one root element, so the first page's counts
|
|
116
|
+
* and timestamp would describe the assembled file wrongly.
|
|
117
|
+
* They are dropped and the manifest records them per page.
|
|
118
|
+
*/
|
|
119
|
+
const PAGE_ATTRIBUTES = /\s(?:[\w.-]+:)?(?:numberMatched|numberReturned|timeStamp|next|previous)\s*=\s*"[^"]*"/giu;
|
|
120
|
+
/**
|
|
121
|
+
* A page's root tag with its namespace declarations kept and its per-page attributes
|
|
122
|
+
* dropped, so it can open a file holding every page.
|
|
123
|
+
*/
|
|
124
|
+
export function collectionOpeningTag(root) {
|
|
125
|
+
return `<${root.name}${root.attributes.replace(PAGE_ATTRIBUTES, "")}>`;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Issues one `GetFeature` and reads the counts off the root element.
|
|
129
|
+
*
|
|
130
|
+
* @throws When the service answers an OGC exception report, so an HTTP 400 carrying
|
|
131
|
+
* `ows:ExceptionCode` raises rather than being written into the harvest as a page.
|
|
132
|
+
*/
|
|
133
|
+
export async function readWFSMarkupPage(client, options) {
|
|
134
|
+
const { data } = await client.fetch({
|
|
135
|
+
method: "GET",
|
|
136
|
+
url: options.wfsURL,
|
|
137
|
+
responseType: "text",
|
|
138
|
+
params: { service: "WFS", version: WFS_VERSION, request: "GetFeature", ...options.params },
|
|
139
|
+
});
|
|
140
|
+
assertNoOGCServiceException(data, options.context);
|
|
141
|
+
const root = readMarkupRoot(data, options.context);
|
|
142
|
+
return {
|
|
143
|
+
body: data,
|
|
144
|
+
root,
|
|
145
|
+
numberReturned: rootCount(root, "numberReturned"),
|
|
146
|
+
numberMatched: rootCount(root, "numberMatched"),
|
|
147
|
+
timeStamp: tagAttribute(root, "timeStamp") ?? null,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The count a service states, or no count and the reason there is none.
|
|
152
|
+
*
|
|
153
|
+
* `readCheckedWFSFeatureCount` proves a reported `numberMatched` against a page of the
|
|
154
|
+
* same type, which catches a service whose count is smaller than one of its own pages.
|
|
155
|
+
* It cannot catch a count that equals the service's page cap: no page can return more
|
|
156
|
+
* features than the cap, so the page it asks for agrees with the cap every time.
|
|
157
|
+
*
|
|
158
|
+
* Poland's service is that case.
|
|
159
|
+
* Measured 2026-10-02, `resultType=hits` at `startIndex=1` reports `numberMatched="1000"`, its
|
|
160
|
+
* capabilities document advertises `CountDefault` as 1000, and a page returns at most 1,000 features.
|
|
161
|
+
*
|
|
162
|
+
* The reported number is the cap, and a harvest that read it as a count would store 1,000
|
|
163
|
+
* of the 8.6 million features the service holds and record the type as read whole.
|
|
164
|
+
* A reported count equal to the cap is therefore carried as no count.
|
|
165
|
+
*
|
|
166
|
+
* @param pageCap The largest page the service will serve, from its advertised `CountDefault`.
|
|
167
|
+
*/
|
|
168
|
+
export function statedFeatureCount(checked, pageCap) {
|
|
169
|
+
if (!checked.usable || checked.reported === null) {
|
|
170
|
+
return { count: null, because: `the service stated no usable count: ${checked.because}` };
|
|
171
|
+
}
|
|
172
|
+
if (pageCap !== null && checked.reported === pageCap) {
|
|
173
|
+
return {
|
|
174
|
+
count: null,
|
|
175
|
+
because: `the service reported numberMatched=${checked.reported}, which is the ${pageCap}-feature cap it advertises as CountDefault, so the number describes the largest page it will serve rather than what the type holds`,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
count: checked.reported,
|
|
180
|
+
because: `the service reported numberMatched=${checked.reported} past index 0, and ${checked.because}`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Does a recorded manifest describe the request being made now?
|
|
185
|
+
*
|
|
186
|
+
* A harvest taken at another page size, ordering, format or type cannot be continued:
|
|
187
|
+
* its pages were cut at different boundaries, and appending to them would leave
|
|
188
|
+
* a file whose manifest describes neither half.
|
|
189
|
+
*/
|
|
190
|
+
function describesSameRequest(manifest, options) {
|
|
191
|
+
return (manifest.source_url === options.request.wfsURL &&
|
|
192
|
+
manifest.type_name === options.request.typeName &&
|
|
193
|
+
manifest.output_format === options.request.outputFormat &&
|
|
194
|
+
manifest.sort_by === options.request.sortBy &&
|
|
195
|
+
manifest.page_size === options.pageSize &&
|
|
196
|
+
manifest.filename === options.filename);
|
|
197
|
+
}
|
|
198
|
+
function emptyManifest(options) {
|
|
199
|
+
return {
|
|
200
|
+
source: options.source,
|
|
201
|
+
source_url: options.request.wfsURL,
|
|
202
|
+
wfs_version: WFS_VERSION,
|
|
203
|
+
type_name: options.request.typeName,
|
|
204
|
+
output_format: options.request.outputFormat,
|
|
205
|
+
sort_by: options.request.sortBy,
|
|
206
|
+
license: options.license,
|
|
207
|
+
attribution: options.attribution,
|
|
208
|
+
downloaded_at: isoSecondsUTC(),
|
|
209
|
+
filename: options.filename,
|
|
210
|
+
page_size: options.pageSize,
|
|
211
|
+
feature_count: options.featureCount.count,
|
|
212
|
+
feature_count_source: options.featureCount.because,
|
|
213
|
+
features_written: 0,
|
|
214
|
+
header_bytes: 0,
|
|
215
|
+
footer: "",
|
|
216
|
+
bytes: 0,
|
|
217
|
+
sha256: null,
|
|
218
|
+
complete: false,
|
|
219
|
+
pages: [],
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* The offset the next page is appended at: the header plus every recorded page.
|
|
224
|
+
*/
|
|
225
|
+
function dataEndOf(manifest) {
|
|
226
|
+
let end = manifest.header_bytes;
|
|
227
|
+
for (const page of manifest.pages) {
|
|
228
|
+
end += page.bytes;
|
|
229
|
+
}
|
|
230
|
+
return end;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The features the recorded pages hold between them.
|
|
234
|
+
*/
|
|
235
|
+
function featuresIn(pages) {
|
|
236
|
+
let features = 0;
|
|
237
|
+
for (const page of pages) {
|
|
238
|
+
features += page.number_returned;
|
|
239
|
+
}
|
|
240
|
+
return features;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* The index the next page starts at: one past the last feature any recorded page reached.
|
|
244
|
+
*/
|
|
245
|
+
function nextStartIndexOf(pages) {
|
|
246
|
+
let next = 0;
|
|
247
|
+
for (const page of pages) {
|
|
248
|
+
next = Math.max(next, page.start_index + page.number_returned);
|
|
249
|
+
}
|
|
250
|
+
return next;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* The recorded pages that are actually on disk, with the file truncated back to the last of them.
|
|
254
|
+
*
|
|
255
|
+
* An interrupted run can leave a partial page at the end of the file,
|
|
256
|
+
* or a footer the next page has to be appended past.
|
|
257
|
+
* Both are resolved by cutting the file at the last page boundary the file reaches,
|
|
258
|
+
* which is a page boundary rather than an arbitrary offset.
|
|
259
|
+
*
|
|
260
|
+
* @throws When the last surviving page's bytes no longer hash to what the manifest recorded,
|
|
261
|
+
* which is a file that was altered rather than one that was cut short.
|
|
262
|
+
*/
|
|
263
|
+
async function reconcileHarvestFile(manifest, dataPath, context, report) {
|
|
264
|
+
const stat = await tryStat(dataPath);
|
|
265
|
+
const size = stat?.size ?? 0;
|
|
266
|
+
const kept = [];
|
|
267
|
+
for (const page of manifest.pages) {
|
|
268
|
+
if (page.offset + page.bytes > size)
|
|
269
|
+
break;
|
|
270
|
+
kept.push(page);
|
|
271
|
+
}
|
|
272
|
+
if (kept.length < manifest.pages.length) {
|
|
273
|
+
report?.(` ${manifest.pages.length - kept.length} of ${manifest.pages.length} recorded pages are not on disk — resuming from page ${kept.length}`);
|
|
274
|
+
}
|
|
275
|
+
const reconciled = {
|
|
276
|
+
...manifest,
|
|
277
|
+
pages: kept,
|
|
278
|
+
features_written: featuresIn(kept),
|
|
279
|
+
complete: manifest.complete && kept.length === manifest.pages.length,
|
|
280
|
+
};
|
|
281
|
+
if (!kept.length) {
|
|
282
|
+
// A header with no page behind it describes an empty document, so the file starts over.
|
|
283
|
+
await removePathIfPresent(dataPath);
|
|
284
|
+
return { ...reconciled, header_bytes: 0, footer: "", bytes: 0, sha256: null, complete: false };
|
|
285
|
+
}
|
|
286
|
+
const last = kept.at(-1);
|
|
287
|
+
const recordedBytes = await readFileRange(dataPath, last.offset, last.bytes);
|
|
288
|
+
const digest = sha256Hex(recordedBytes);
|
|
289
|
+
if (digest !== last.sha256) {
|
|
290
|
+
throw new Error(`${context}: the ${last.bytes} bytes the manifest records for the page at startIndex ${last.start_index} hash to ${digest} rather than ${last.sha256}, so ${dataPath} holds something other than the harvest it describes`);
|
|
291
|
+
}
|
|
292
|
+
const dataEnd = dataEndOf(reconciled);
|
|
293
|
+
if (reconciled.complete) {
|
|
294
|
+
const expected = dataEnd + Buffer.byteLength(reconciled.footer);
|
|
295
|
+
if (size === expected)
|
|
296
|
+
return { ...reconciled, bytes: expected };
|
|
297
|
+
report?.(` The complete harvest records ${expected} bytes and ${size} are on disk — closing it again`);
|
|
298
|
+
}
|
|
299
|
+
if (size !== dataEnd) {
|
|
300
|
+
await truncateFile(dataPath, dataEnd);
|
|
301
|
+
}
|
|
302
|
+
return { ...reconciled, bytes: dataEnd, sha256: null, complete: false };
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* The manifest of a harvest that needs no further request, or `null` where one does.
|
|
306
|
+
*
|
|
307
|
+
* A caller reads this before it reads a capabilities document, so a current harvest costs no request at all.
|
|
308
|
+
* Two harvests need none:
|
|
309
|
+
*
|
|
310
|
+
* - A complete one whose data file still hashes to the digest the manifest records.
|
|
311
|
+
* - A partial one that already holds `maxPages` pages, which is what a bounded probe asks for.
|
|
312
|
+
*
|
|
313
|
+
* @throws When a page's recorded byte range no longer hashes to its recorded digest,
|
|
314
|
+
* so a file that was altered under its manifest is reported rather than used.
|
|
315
|
+
*/
|
|
316
|
+
export async function readCurrentHarvest(options) {
|
|
317
|
+
const root = PathBuilder.from(options.outputDir);
|
|
318
|
+
const manifest = await readManifest(root(HARVEST_MANIFEST_FILE));
|
|
319
|
+
if (!manifest || !Array.isArray(manifest.pages))
|
|
320
|
+
return null;
|
|
321
|
+
const describesThisRequest = manifest.filename === options.filename &&
|
|
322
|
+
manifest.source_url === options.expect.wfsURL &&
|
|
323
|
+
manifest.sort_by === options.expect.sortBy &&
|
|
324
|
+
manifest.page_size === options.expect.pageSize;
|
|
325
|
+
if (!describesThisRequest)
|
|
326
|
+
return null;
|
|
327
|
+
const dataPath = root(options.filename);
|
|
328
|
+
if (manifest.complete) {
|
|
329
|
+
const stat = await tryStat(dataPath);
|
|
330
|
+
if (!stat || stat.size !== manifest.bytes)
|
|
331
|
+
return null;
|
|
332
|
+
return (await sha256File(dataPath)) === manifest.sha256 ? manifest : null;
|
|
333
|
+
}
|
|
334
|
+
if (options.maxPages === undefined || manifest.pages.length < options.maxPages)
|
|
335
|
+
return null;
|
|
336
|
+
const last = manifest.pages.at(-1);
|
|
337
|
+
if (!last)
|
|
338
|
+
return null;
|
|
339
|
+
const stat = await tryStat(dataPath);
|
|
340
|
+
if (!stat || stat.size < last.offset + last.bytes)
|
|
341
|
+
return null;
|
|
342
|
+
const digest = sha256Hex(await readFileRange(dataPath, last.offset, last.bytes));
|
|
343
|
+
if (digest !== last.sha256) {
|
|
344
|
+
throw new Error(`${options.context}: the ${last.bytes} bytes the manifest records for the page at startIndex ${last.start_index} hash to ${digest} rather than ${last.sha256}, so ${dataPath} holds something other than the harvest it describes`);
|
|
345
|
+
}
|
|
346
|
+
return manifest;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Harvests one WFS feature type into a single file, recording each page in a manifest beside it.
|
|
350
|
+
*
|
|
351
|
+
* Re-runnable in three ways, each of which makes no request:
|
|
352
|
+
*
|
|
353
|
+
* - A complete harvest whose file still hashes to the manifest's `sha256`.
|
|
354
|
+
* - A partial harvest that already holds {@linkcode PagedWFSHarvestOptions.maxPages} pages.
|
|
355
|
+
* - A partial harvest resumes at the page after the last one on disk,
|
|
356
|
+
* so the pages already taken are not taken again.
|
|
357
|
+
*
|
|
358
|
+
* @returns The manifest as written.
|
|
359
|
+
*/
|
|
360
|
+
export async function harvestPagedWFS(options) {
|
|
361
|
+
const root = PathBuilder.from(options.outputDir);
|
|
362
|
+
await makeDirectories(root);
|
|
363
|
+
const dataPath = root(options.filename);
|
|
364
|
+
const manifestPath = root(HARVEST_MANIFEST_FILE);
|
|
365
|
+
const recorded = await readManifest(manifestPath);
|
|
366
|
+
const resumable = recorded !== null && Array.isArray(recorded.pages) && describesSameRequest(recorded, options);
|
|
367
|
+
if (recorded !== null && !resumable) {
|
|
368
|
+
options.report?.(" The manifest describes a different request — starting the harvest over");
|
|
369
|
+
await removePathIfPresent(dataPath);
|
|
370
|
+
}
|
|
371
|
+
let manifest = resumable
|
|
372
|
+
? await reconcileHarvestFile(recorded, dataPath, options.context, options.report)
|
|
373
|
+
: emptyManifest(options);
|
|
374
|
+
// The count may have become readable, or stopped being readable, since the recorded run.
|
|
375
|
+
manifest = {
|
|
376
|
+
...manifest,
|
|
377
|
+
feature_count: options.featureCount.count,
|
|
378
|
+
feature_count_source: options.featureCount.because,
|
|
379
|
+
};
|
|
380
|
+
if (manifest.complete) {
|
|
381
|
+
const digest = await sha256File(dataPath);
|
|
382
|
+
if (digest === manifest.sha256) {
|
|
383
|
+
options.report?.(` ✓ Already harvested (sha256 matches ${HARVEST_MANIFEST_FILE}) — no request made.`);
|
|
384
|
+
return manifest;
|
|
385
|
+
}
|
|
386
|
+
options.report?.(` ${dataPath} hashes to ${digest} rather than ${manifest.sha256} — harvesting it again`);
|
|
387
|
+
manifest = { ...manifest, complete: false, sha256: null };
|
|
388
|
+
}
|
|
389
|
+
const atPageCap = () => options.maxPages !== undefined && manifest.pages.length >= options.maxPages;
|
|
390
|
+
if (atPageCap()) {
|
|
391
|
+
options.report?.(` ✓ The manifest already holds ${manifest.pages.length} pages — no request made.`);
|
|
392
|
+
return manifest;
|
|
393
|
+
}
|
|
394
|
+
let startIndex = nextStartIndexOf(manifest.pages);
|
|
395
|
+
let complete = false;
|
|
396
|
+
for (;;) {
|
|
397
|
+
if (options.signal?.aborted)
|
|
398
|
+
break;
|
|
399
|
+
if (atPageCap())
|
|
400
|
+
break;
|
|
401
|
+
if (manifest.feature_count !== null && manifest.features_written >= manifest.feature_count) {
|
|
402
|
+
complete = true;
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
405
|
+
const page = await options.readPage({ startIndex, count: options.pageSize });
|
|
406
|
+
if (page.numberReturned === null) {
|
|
407
|
+
throw new Error(`${options.context}: the page at startIndex ${startIndex} stated no numberReturned, so what it holds is unknown rather than empty`);
|
|
408
|
+
}
|
|
409
|
+
if (page.numberReturned === 0) {
|
|
410
|
+
complete = true;
|
|
411
|
+
break;
|
|
412
|
+
}
|
|
413
|
+
const payloadBytes = Buffer.byteLength(page.payload);
|
|
414
|
+
const digest = sha256Hex(page.payload);
|
|
415
|
+
const previous = manifest.pages.at(-1);
|
|
416
|
+
// A service that ignores `startIndex` answers every page with the first,
|
|
417
|
+
// and a harvest of one would hold the same features repeated.
|
|
418
|
+
// `countWFSFeaturesByPaging` refuses such a service by comparing two pages' leading feature.
|
|
419
|
+
// Identical bytes is the same defect seen here.
|
|
420
|
+
if (previous && previous.bytes === payloadBytes && previous.sha256 === digest) {
|
|
421
|
+
throw new Error(`${options.context}: the page at startIndex ${startIndex} is byte-identical to the page at startIndex ${previous.start_index}, so the service is answering a new startIndex with the previous page rather than paging`);
|
|
422
|
+
}
|
|
423
|
+
if (!manifest.pages.length && page.header) {
|
|
424
|
+
await appendLocalTextFile(page.header, dataPath);
|
|
425
|
+
manifest = { ...manifest, header_bytes: Buffer.byteLength(page.header) };
|
|
426
|
+
}
|
|
427
|
+
const offset = dataEndOf(manifest);
|
|
428
|
+
await appendLocalTextFile(page.payload, dataPath);
|
|
429
|
+
manifest = {
|
|
430
|
+
...manifest,
|
|
431
|
+
downloaded_at: isoSecondsUTC(),
|
|
432
|
+
footer: page.footer ?? manifest.footer,
|
|
433
|
+
features_written: manifest.features_written + page.numberReturned,
|
|
434
|
+
bytes: offset + payloadBytes,
|
|
435
|
+
pages: [
|
|
436
|
+
...manifest.pages,
|
|
437
|
+
{
|
|
438
|
+
start_index: startIndex,
|
|
439
|
+
count: options.pageSize,
|
|
440
|
+
offset,
|
|
441
|
+
bytes: payloadBytes,
|
|
442
|
+
sha256: digest,
|
|
443
|
+
number_returned: page.numberReturned,
|
|
444
|
+
number_matched: page.numberMatched,
|
|
445
|
+
retrieved_at: page.retrievedAt,
|
|
446
|
+
},
|
|
447
|
+
],
|
|
448
|
+
};
|
|
449
|
+
await writeManifest(manifestPath, manifest);
|
|
450
|
+
options.report?.(` page ${manifest.pages.length} at startIndex ${startIndex}: ${page.numberReturned} features, ${ByteFormatter.formatIEC(payloadBytes)} (${manifest.features_written} written)`);
|
|
451
|
+
// The service's own answer rather than the page size: a service that caps a page below the
|
|
452
|
+
// requested size would otherwise be read in strides that skip the features it did not return.
|
|
453
|
+
startIndex += page.numberReturned;
|
|
454
|
+
}
|
|
455
|
+
if (complete) {
|
|
456
|
+
if (manifest.footer) {
|
|
457
|
+
await appendLocalTextFile(manifest.footer, dataPath);
|
|
458
|
+
}
|
|
459
|
+
// A feature type of no features still needs the file the adapter opens, and an empty append creates it.
|
|
460
|
+
if (!(await tryStat(dataPath))) {
|
|
461
|
+
await appendLocalTextFile("", dataPath);
|
|
462
|
+
}
|
|
463
|
+
const stat = await tryStat(dataPath);
|
|
464
|
+
manifest = {
|
|
465
|
+
...manifest,
|
|
466
|
+
downloaded_at: isoSecondsUTC(),
|
|
467
|
+
bytes: stat?.size ?? manifest.bytes,
|
|
468
|
+
sha256: await sha256File(dataPath),
|
|
469
|
+
complete: true,
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
await writeManifest(manifestPath, manifest);
|
|
473
|
+
return manifest;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Runs one service's harvest and reports it as a fetch registry entry does.
|
|
477
|
+
*
|
|
478
|
+
* Estonia and Poland wrote this sequence twice: ask whether the harvest on disk is
|
|
479
|
+
* already current, construct a paced client unless the caller supplied one, run,
|
|
480
|
+
* report, and decide whether an incomplete harvest is a failure.
|
|
481
|
+
* A third WFS source would have written it a third time.
|
|
482
|
+
*
|
|
483
|
+
* The currency check runs before any request, so a complete harvest or a bounded
|
|
484
|
+
* probe that already holds its pages makes no request at all.
|
|
485
|
+
*
|
|
486
|
+
* A bounded run stops short by instruction rather than by failure, so a page cap the caller
|
|
487
|
+
* asked for reads as a success while an incomplete harvest without one reads as a failure.
|
|
488
|
+
*/
|
|
489
|
+
export async function runWFSHarvest(options, report) {
|
|
490
|
+
report?.(`=== ${options.slug}`);
|
|
491
|
+
const destination = options.outRoot(options.slug);
|
|
492
|
+
const current = await readCurrentHarvest({
|
|
493
|
+
outputDir: destination,
|
|
494
|
+
filename: options.filename,
|
|
495
|
+
context: options.slug,
|
|
496
|
+
expect: options.expect,
|
|
497
|
+
maxPages: options.maxPages,
|
|
498
|
+
});
|
|
499
|
+
if (current) {
|
|
500
|
+
report?.(` ✓ Already harvested: ${current.features_written} features over ${current.pages.length} pages — no request made.`);
|
|
501
|
+
return { fetched: 0, skipped: 1, failed: 0, failedCodes: [] };
|
|
502
|
+
}
|
|
503
|
+
let manifest;
|
|
504
|
+
if (options.client) {
|
|
505
|
+
manifest = await options.harvest(options.client);
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
// Bounded retry, because a harvest is many requests and one 5xx would otherwise end the run.
|
|
509
|
+
await using client = new APIClient({
|
|
510
|
+
displayName: options.displayName,
|
|
511
|
+
minRequestIntervalMs: options.minRequestIntervalMs,
|
|
512
|
+
retry: true,
|
|
513
|
+
});
|
|
514
|
+
manifest = await options.harvest(client);
|
|
515
|
+
}
|
|
516
|
+
report?.(` ${manifest.complete ? "✓" : "partial:"} ${manifest.features_written} features over ${manifest.pages.length} pages, ${manifest.bytes} bytes`);
|
|
517
|
+
const bounded = options.maxPages !== undefined && manifest.pages.length >= options.maxPages;
|
|
518
|
+
return manifest.complete || bounded
|
|
519
|
+
? { fetched: 1, skipped: 0, failed: 0, failedCodes: [] }
|
|
520
|
+
: { fetched: 0, skipped: 0, failed: 1, failedCodes: [options.slug] };
|
|
521
|
+
}
|
|
522
|
+
//# sourceMappingURL=wfs-harvest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wfs-harvest.js","sourceRoot":"","sources":["../../../lib/tools/fetch/wfs-harvest.ts"],"names":[],"mappings":"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"}
|