@mailwoman/resolver-wof-sqlite 10.0.0 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/lib/address/point/interpolation.ts +45 -39
- package/lib/address/point/schema.ts +17 -40
- package/lib/address/point.ts +316 -0
- package/lib/{address/index.ts → address.ts} +1 -1
- package/lib/ancestry/backfill.ts +20 -86
- package/lib/{ancestry/index.ts → ancestry.ts} +19 -15
- package/lib/build/candidate.ts +122 -174
- package/lib/build/population-corrections.ts +64 -0
- package/lib/build/slim.ts +44 -114
- package/lib/candidate/alias-bags.ts +16 -17
- package/lib/candidate/ancestors/schema.ts +77 -61
- package/lib/candidate/ancestors/sidecar.ts +15 -22
- package/lib/candidate/country-display-names.ts +6 -20
- package/lib/candidate/extract-fold.ts +10 -55
- package/lib/candidate/fts.ts +5 -23
- package/lib/candidate/importance.ts +65 -68
- package/lib/candidate/lookup.ts +124 -415
- package/lib/candidate/name-roles.ts +15 -33
- package/lib/candidate/own-name.ts +35 -32
- package/lib/candidate/place-attrs.ts +20 -13
- package/lib/candidate/schema.ts +29 -65
- package/lib/candidate/scoring.ts +54 -93
- package/lib/capital-schema.ts +21 -17
- package/lib/capitals.ts +29 -27
- package/lib/coincident-roles.ts +85 -55
- package/lib/convention/schema.ts +15 -16
- package/lib/convention.ts +144 -0
- package/lib/coverage-manifest-schema.ts +40 -45
- package/lib/currency-backfill.ts +34 -79
- package/lib/env.ts +1 -1
- package/lib/exact-match.ts +32 -21
- package/lib/extracts.ts +97 -74
- package/lib/fst/autocomplete.ts +54 -37
- package/lib/fst/builder.ts +37 -41
- package/lib/fst/deserialize-web.ts +16 -17
- package/lib/fst/format.ts +41 -23
- package/lib/fst/freshness.ts +43 -120
- package/lib/fst/matcher.ts +7 -5
- package/lib/fst/serialize.ts +54 -74
- package/lib/fst/types.ts +78 -75
- package/lib/{fst/index.ts → fst.ts} +1 -0
- package/lib/fts/query.ts +5 -36
- package/lib/fts.ts +280 -0
- package/lib/geonames/aliases.ts +73 -144
- package/lib/geonames/postal.ts +162 -71
- package/lib/index.ts +9 -8
- package/lib/interpolation.ts +48 -100
- package/lib/lookup.ts +155 -270
- package/lib/name-score.ts +9 -7
- package/lib/nsul/lookup.ts +37 -54
- package/lib/nsul/schema.ts +16 -43
- package/lib/paths.ts +159 -0
- package/lib/place-importance-schema.ts +62 -169
- package/lib/poi/lookup.ts +104 -121
- package/lib/poi/schema.ts +42 -26
- package/lib/polygon-schema.ts +10 -6
- package/lib/postal/city/alias/lookup.ts +22 -40
- package/lib/postal/city/alias/schema.ts +14 -10
- package/lib/postal/city/candidate-schema.ts +26 -20
- package/lib/postcode-point-lookup.ts +8 -27
- package/lib/primary-preference.ts +46 -126
- package/lib/proximity-rerank.ts +44 -33
- package/lib/ranking-weights.ts +105 -78
- package/lib/region-keys.ts +70 -42
- package/lib/reverse.ts +149 -86
- package/lib/schema.ts +73 -50
- package/lib/search-fetch.ts +90 -68
- package/lib/sqlite/convention-source.ts +15 -23
- package/lib/sqlite/utils.ts +19 -22
- package/lib/street/centroid/schema.ts +37 -42
- package/lib/street/{centroid/index.ts → centroid.ts} +16 -25
- package/lib/street/morphology/fst/builder.ts +60 -42
- package/lib/street/morphology/fst/loader.ts +40 -32
- package/lib/street/name-lookup.ts +45 -41
- package/lib/street/normalize.ts +88 -219
- package/lib/street/segment-schema.ts +116 -43
- package/lib/{street/index.ts → street.ts} +1 -1
- package/lib/types.ts +109 -150
- package/lib/unified-schema.ts +29 -29
- package/lib/uprn/existence.ts +30 -19
- package/lib/uprn/lookup.ts +29 -68
- package/lib/uprn/schema.ts +18 -40
- package/lib/weights-overlay-linker.ts +236 -252
- package/out/address/point/interpolation.d.ts +20 -23
- package/out/address/point/interpolation.d.ts.map +1 -1
- package/out/address/point/interpolation.js +42 -39
- package/out/address/point/interpolation.js.map +1 -1
- package/out/address/point/schema.d.ts +12 -35
- package/out/address/point/schema.d.ts.map +1 -1
- package/out/address/point/schema.js +3 -19
- package/out/address/point/schema.js.map +1 -1
- package/out/address/point.d.ts +57 -0
- package/out/address/point.d.ts.map +1 -0
- package/out/address/point.js +206 -0
- package/out/address/point.js.map +1 -0
- package/out/{address/index.js → address.d.ts} +2 -2
- package/out/address.d.ts.map +1 -0
- package/out/{address/index.d.ts → address.js} +2 -2
- package/out/address.js.map +1 -0
- package/out/ancestry/backfill.d.ts +11 -64
- package/out/ancestry/backfill.d.ts.map +1 -1
- package/out/ancestry/backfill.js +14 -74
- package/out/ancestry/backfill.js.map +1 -1
- package/out/ancestry.d.ts +49 -0
- package/out/ancestry.d.ts.map +1 -0
- package/out/ancestry.js +59 -0
- package/out/ancestry.js.map +1 -0
- package/out/build/candidate.d.ts +82 -112
- package/out/build/candidate.d.ts.map +1 -1
- package/out/build/candidate.js +17 -100
- package/out/build/candidate.js.map +1 -1
- package/out/build/population-corrections.d.ts +52 -0
- package/out/build/population-corrections.d.ts.map +1 -0
- package/out/build/population-corrections.js +40 -0
- package/out/build/population-corrections.js.map +1 -0
- package/out/build/slim.d.ts +8 -44
- package/out/build/slim.d.ts.map +1 -1
- package/out/build/slim.js +33 -94
- package/out/build/slim.js.map +1 -1
- package/out/candidate/alias-bags.d.ts +6 -6
- package/out/candidate/alias-bags.d.ts.map +1 -1
- package/out/candidate/alias-bags.js +16 -17
- package/out/candidate/alias-bags.js.map +1 -1
- package/out/candidate/ancestors/schema.d.ts +73 -57
- package/out/candidate/ancestors/schema.d.ts.map +1 -1
- package/out/candidate/ancestors/schema.js +56 -48
- package/out/candidate/ancestors/schema.js.map +1 -1
- package/out/candidate/ancestors/sidecar.d.ts +3 -8
- package/out/candidate/ancestors/sidecar.d.ts.map +1 -1
- package/out/candidate/ancestors/sidecar.js +15 -22
- package/out/candidate/ancestors/sidecar.js.map +1 -1
- package/out/candidate/country-display-names.d.ts +5 -15
- package/out/candidate/country-display-names.d.ts.map +1 -1
- package/out/candidate/country-display-names.js +6 -20
- package/out/candidate/country-display-names.js.map +1 -1
- package/out/candidate/extract-fold.d.ts +7 -15
- package/out/candidate/extract-fold.d.ts.map +1 -1
- package/out/candidate/extract-fold.js +5 -47
- package/out/candidate/extract-fold.js.map +1 -1
- package/out/candidate/fts.d.ts +5 -23
- package/out/candidate/fts.d.ts.map +1 -1
- package/out/candidate/fts.js +5 -23
- package/out/candidate/fts.js.map +1 -1
- package/out/candidate/importance.d.ts +60 -65
- package/out/candidate/importance.d.ts.map +1 -1
- package/out/candidate/importance.js +56 -63
- package/out/candidate/importance.js.map +1 -1
- package/out/candidate/lookup.d.ts +18 -55
- package/out/candidate/lookup.d.ts.map +1 -1
- package/out/candidate/lookup.js +82 -385
- package/out/candidate/lookup.js.map +1 -1
- package/out/candidate/name-roles.d.ts +9 -21
- package/out/candidate/name-roles.d.ts.map +1 -1
- package/out/candidate/name-roles.js +15 -33
- package/out/candidate/name-roles.js.map +1 -1
- package/out/candidate/own-name.d.ts +23 -25
- package/out/candidate/own-name.d.ts.map +1 -1
- package/out/candidate/own-name.js +35 -32
- package/out/candidate/own-name.js.map +1 -1
- package/out/candidate/place-attrs.d.ts +20 -13
- package/out/candidate/place-attrs.d.ts.map +1 -1
- package/out/candidate/place-attrs.js +4 -5
- package/out/candidate/place-attrs.js.map +1 -1
- package/out/candidate/schema.d.ts +27 -62
- package/out/candidate/schema.d.ts.map +1 -1
- package/out/candidate/schema.js +10 -22
- package/out/candidate/schema.js.map +1 -1
- package/out/candidate/scoring.d.ts +7 -8
- package/out/candidate/scoring.d.ts.map +1 -1
- package/out/candidate/scoring.js +52 -89
- package/out/candidate/scoring.js.map +1 -1
- package/out/capital-schema.d.ts +21 -17
- package/out/capital-schema.d.ts.map +1 -1
- package/out/capital-schema.js +17 -15
- package/out/capital-schema.js.map +1 -1
- package/out/capitals.d.ts +27 -25
- package/out/capitals.d.ts.map +1 -1
- package/out/capitals.js +23 -21
- package/out/capitals.js.map +1 -1
- package/out/coincident-roles.d.ts +60 -43
- package/out/coincident-roles.d.ts.map +1 -1
- package/out/coincident-roles.js +72 -50
- package/out/coincident-roles.js.map +1 -1
- package/out/convention/schema.d.ts +14 -14
- package/out/convention/schema.d.ts.map +1 -1
- package/out/convention/schema.js +6 -4
- package/out/convention/schema.js.map +1 -1
- package/out/convention.d.ts +97 -0
- package/out/convention.d.ts.map +1 -0
- package/out/convention.js +81 -0
- package/out/convention.js.map +1 -0
- package/out/coverage-manifest-schema.d.ts +34 -39
- package/out/coverage-manifest-schema.d.ts.map +1 -1
- package/out/coverage-manifest-schema.js +25 -34
- package/out/coverage-manifest-schema.js.map +1 -1
- package/out/currency-backfill.d.ts +16 -38
- package/out/currency-backfill.d.ts.map +1 -1
- package/out/currency-backfill.js +19 -46
- package/out/currency-backfill.js.map +1 -1
- package/out/env.d.ts +1 -1
- package/out/env.js +1 -1
- package/out/exact-match.d.ts +19 -10
- package/out/exact-match.d.ts.map +1 -1
- package/out/exact-match.js +32 -21
- package/out/exact-match.js.map +1 -1
- package/out/extracts.d.ts +66 -55
- package/out/extracts.d.ts.map +1 -1
- package/out/extracts.js +63 -55
- package/out/extracts.js.map +1 -1
- package/out/fst/autocomplete.d.ts +29 -21
- package/out/fst/autocomplete.d.ts.map +1 -1
- package/out/fst/autocomplete.js +39 -28
- package/out/fst/autocomplete.js.map +1 -1
- package/out/fst/builder.d.ts.map +1 -1
- package/out/fst/builder.js +37 -41
- package/out/fst/builder.js.map +1 -1
- package/out/fst/deserialize-web.d.ts +4 -4
- package/out/fst/deserialize-web.d.ts.map +1 -1
- package/out/fst/deserialize-web.js +15 -16
- package/out/fst/deserialize-web.js.map +1 -1
- package/out/fst/format.d.ts +41 -23
- package/out/fst/format.d.ts.map +1 -1
- package/out/fst/format.js +41 -23
- package/out/fst/format.js.map +1 -1
- package/out/fst/freshness.d.ts +19 -81
- package/out/fst/freshness.d.ts.map +1 -1
- package/out/fst/freshness.js +31 -94
- package/out/fst/freshness.js.map +1 -1
- package/out/fst/matcher.d.ts +5 -4
- package/out/fst/matcher.d.ts.map +1 -1
- package/out/fst/matcher.js +2 -2
- package/out/fst/matcher.js.map +1 -1
- package/out/fst/serialize.d.ts +28 -28
- package/out/fst/serialize.d.ts.map +1 -1
- package/out/fst/serialize.js +53 -71
- package/out/fst/serialize.js.map +1 -1
- package/out/fst/types.d.ts +78 -74
- package/out/fst/types.d.ts.map +1 -1
- package/out/fst/types.js +1 -4
- package/out/fst/types.js.map +1 -1
- package/out/{fst/index.js → fst.d.ts} +2 -1
- package/out/fst.d.ts.map +1 -0
- package/out/{fst/index.d.ts → fst.js} +2 -1
- package/out/fst.js.map +1 -0
- package/out/fts/query.d.ts +2 -27
- package/out/fts/query.d.ts.map +1 -1
- package/out/fts/query.js +5 -36
- package/out/fts/query.js.map +1 -1
- package/out/fts.d.ts +126 -0
- package/out/fts.d.ts.map +1 -0
- package/out/fts.js +188 -0
- package/out/fts.js.map +1 -0
- package/out/geonames/aliases.d.ts +26 -62
- package/out/geonames/aliases.d.ts.map +1 -1
- package/out/geonames/aliases.js +45 -117
- package/out/geonames/aliases.js.map +1 -1
- package/out/geonames/postal.d.ts +84 -44
- package/out/geonames/postal.d.ts.map +1 -1
- package/out/geonames/postal.js +115 -73
- package/out/geonames/postal.js.map +1 -1
- package/out/{geonames/index.js → geonames.d.ts} +1 -1
- package/out/geonames.d.ts.map +1 -0
- package/out/{geonames/index.d.ts → geonames.js} +1 -1
- package/out/geonames.js.map +1 -0
- package/out/index.d.ts +9 -8
- package/out/index.d.ts.map +1 -1
- package/out/index.js +6 -5
- package/out/index.js.map +1 -1
- package/out/interpolation.d.ts +18 -55
- package/out/interpolation.d.ts.map +1 -1
- package/out/interpolation.js +27 -69
- package/out/interpolation.js.map +1 -1
- package/out/lookup.d.ts +23 -51
- package/out/lookup.d.ts.map +1 -1
- package/out/lookup.js +136 -234
- package/out/lookup.js.map +1 -1
- package/out/name-score.d.ts +2 -2
- package/out/name-score.d.ts.map +1 -1
- package/out/name-score.js +9 -7
- package/out/name-score.js.map +1 -1
- package/out/nsul/lookup.d.ts +33 -34
- package/out/nsul/lookup.d.ts.map +1 -1
- package/out/nsul/lookup.js +26 -40
- package/out/nsul/lookup.js.map +1 -1
- package/out/nsul/schema.d.ts +16 -43
- package/out/nsul/schema.d.ts.map +1 -1
- package/out/nsul/schema.js +9 -35
- package/out/nsul/schema.js.map +1 -1
- package/out/{nsul/index.d.ts → nsul.d.ts} +1 -1
- package/out/nsul.d.ts.map +1 -0
- package/out/{nsul/index.js → nsul.js} +1 -1
- package/out/nsul.js.map +1 -0
- package/out/paths.d.ts +124 -0
- package/out/paths.d.ts.map +1 -0
- package/out/paths.js +104 -0
- package/out/paths.js.map +1 -0
- package/out/place-importance-schema.d.ts +51 -143
- package/out/place-importance-schema.d.ts.map +1 -1
- package/out/place-importance-schema.js +28 -143
- package/out/place-importance-schema.js.map +1 -1
- package/out/poi/lookup.d.ts +40 -47
- package/out/poi/lookup.d.ts.map +1 -1
- package/out/poi/lookup.js +69 -96
- package/out/poi/lookup.js.map +1 -1
- package/out/poi/schema.d.ts +41 -25
- package/out/poi/schema.d.ts.map +1 -1
- package/out/poi/schema.js +25 -17
- package/out/poi/schema.js.map +1 -1
- package/out/{poi/index.js → poi.d.ts} +1 -1
- package/out/poi.d.ts.map +1 -0
- package/out/{poi/index.d.ts → poi.js} +1 -1
- package/out/poi.js.map +1 -0
- package/out/polygon-schema.d.ts +10 -6
- package/out/polygon-schema.d.ts.map +1 -1
- package/out/polygon-schema.js +2 -2
- package/out/polygon-schema.js.map +1 -1
- package/out/postal/city/alias/lookup.d.ts +20 -23
- package/out/postal/city/alias/lookup.d.ts.map +1 -1
- package/out/postal/city/alias/lookup.js +17 -30
- package/out/postal/city/alias/lookup.js.map +1 -1
- package/out/postal/city/alias/schema.d.ts +14 -10
- package/out/postal/city/alias/schema.d.ts.map +1 -1
- package/out/postal/city/alias/schema.js +10 -8
- package/out/postal/city/alias/schema.js.map +1 -1
- package/out/postal/city/candidate-schema.d.ts +25 -19
- package/out/postal/city/candidate-schema.d.ts.map +1 -1
- package/out/postal/city/candidate-schema.js +21 -17
- package/out/postal/city/candidate-schema.js.map +1 -1
- package/out/{postal/index.d.ts → postal.d.ts} +1 -1
- package/out/postal.d.ts.map +1 -0
- package/out/{postal/index.js → postal.js} +1 -1
- package/out/postal.js.map +1 -0
- package/out/postcode-point-lookup.d.ts +6 -24
- package/out/postcode-point-lookup.d.ts.map +1 -1
- package/out/postcode-point-lookup.js +5 -17
- package/out/postcode-point-lookup.js.map +1 -1
- package/out/primary-preference.d.ts +38 -92
- package/out/primary-preference.d.ts.map +1 -1
- package/out/primary-preference.js +15 -99
- package/out/primary-preference.js.map +1 -1
- package/out/proximity-rerank.d.ts +41 -30
- package/out/proximity-rerank.d.ts.map +1 -1
- package/out/proximity-rerank.js +38 -29
- package/out/proximity-rerank.js.map +1 -1
- package/out/ranking-weights.d.ts +98 -64
- package/out/ranking-weights.d.ts.map +1 -1
- package/out/ranking-weights.js +26 -25
- package/out/ranking-weights.js.map +1 -1
- package/out/region-keys.d.ts +50 -31
- package/out/region-keys.d.ts.map +1 -1
- package/out/region-keys.js +68 -40
- package/out/region-keys.js.map +1 -1
- package/out/reverse.d.ts +78 -50
- package/out/reverse.d.ts.map +1 -1
- package/out/reverse.js +98 -61
- package/out/reverse.js.map +1 -1
- package/out/schema.d.ts +72 -49
- package/out/schema.d.ts.map +1 -1
- package/out/schema.js +4 -5
- package/out/schema.js.map +1 -1
- package/out/search-fetch.d.ts +16 -12
- package/out/search-fetch.d.ts.map +1 -1
- package/out/search-fetch.js +83 -63
- package/out/search-fetch.js.map +1 -1
- package/out/sqlite/convention-source.d.ts +12 -16
- package/out/sqlite/convention-source.d.ts.map +1 -1
- package/out/sqlite/convention-source.js +13 -22
- package/out/sqlite/convention-source.js.map +1 -1
- package/out/sqlite/utils.d.ts +19 -19
- package/out/sqlite/utils.d.ts.map +1 -1
- package/out/sqlite/utils.js +14 -15
- package/out/sqlite/utils.js.map +1 -1
- package/out/street/centroid/schema.d.ts +37 -42
- package/out/street/centroid/schema.d.ts.map +1 -1
- package/out/street/centroid/schema.js +9 -21
- package/out/street/centroid/schema.js.map +1 -1
- package/out/street/centroid.d.ts +30 -0
- package/out/street/centroid.d.ts.map +1 -0
- package/out/street/{centroid/index.js → centroid.js} +13 -24
- package/out/street/centroid.js.map +1 -0
- package/out/street/morphology/fst/builder.d.ts +20 -10
- package/out/street/morphology/fst/builder.d.ts.map +1 -1
- package/out/street/morphology/fst/builder.js +44 -34
- package/out/street/morphology/fst/builder.js.map +1 -1
- package/out/street/morphology/fst/loader.d.ts +33 -26
- package/out/street/morphology/fst/loader.d.ts.map +1 -1
- package/out/street/morphology/fst/loader.js +23 -22
- package/out/street/morphology/fst/loader.js.map +1 -1
- package/out/street/name-lookup.d.ts +24 -18
- package/out/street/name-lookup.d.ts.map +1 -1
- package/out/street/name-lookup.js +34 -35
- package/out/street/name-lookup.js.map +1 -1
- package/out/street/normalize.d.ts +35 -136
- package/out/street/normalize.d.ts.map +1 -1
- package/out/street/normalize.js +77 -194
- package/out/street/normalize.js.map +1 -1
- package/out/street/segment-schema.d.ts +79 -39
- package/out/street/segment-schema.d.ts.map +1 -1
- package/out/street/segment-schema.js +71 -21
- package/out/street/segment-schema.js.map +1 -1
- package/out/{street/index.js → street.d.ts} +2 -2
- package/out/street.d.ts.map +1 -0
- package/out/{street/index.d.ts → street.js} +2 -2
- package/out/street.js.map +1 -0
- package/out/types.d.ts +84 -149
- package/out/types.d.ts.map +1 -1
- package/out/types.js +0 -6
- package/out/types.js.map +1 -1
- package/out/unified-schema.d.ts +8 -12
- package/out/unified-schema.d.ts.map +1 -1
- package/out/unified-schema.js +29 -29
- package/out/unified-schema.js.map +1 -1
- package/out/uprn/existence.d.ts +28 -17
- package/out/uprn/existence.d.ts.map +1 -1
- package/out/uprn/existence.js +26 -16
- package/out/uprn/existence.js.map +1 -1
- package/out/uprn/lookup.d.ts +14 -44
- package/out/uprn/lookup.d.ts.map +1 -1
- package/out/uprn/lookup.js +21 -57
- package/out/uprn/lookup.js.map +1 -1
- package/out/uprn/schema.d.ts +18 -40
- package/out/uprn/schema.d.ts.map +1 -1
- package/out/uprn/schema.js +10 -32
- package/out/uprn/schema.js.map +1 -1
- package/out/{uprn/index.d.ts → uprn.d.ts} +1 -1
- package/out/uprn.d.ts.map +1 -0
- package/out/{uprn/index.js → uprn.js} +1 -1
- package/out/uprn.js.map +1 -0
- package/out/weights-overlay-linker.d.ts +138 -144
- package/out/weights-overlay-linker.d.ts.map +1 -1
- package/out/weights-overlay-linker.js +105 -159
- package/out/weights-overlay-linker.js.map +1 -1
- package/package.json +91 -596
- package/lib/address/point/index.ts +0 -328
- package/lib/convention/index.ts +0 -154
- package/lib/fts/index.ts +0 -361
- package/out/address/index.d.ts.map +0 -1
- package/out/address/index.js.map +0 -1
- package/out/address/point/index.d.ts +0 -53
- package/out/address/point/index.d.ts.map +0 -1
- package/out/address/point/index.js +0 -222
- package/out/address/point/index.js.map +0 -1
- package/out/ancestry/index.d.ts +0 -45
- package/out/ancestry/index.d.ts.map +0 -1
- package/out/ancestry/index.js +0 -55
- package/out/ancestry/index.js.map +0 -1
- package/out/convention/index.d.ts +0 -106
- package/out/convention/index.d.ts.map +0 -1
- package/out/convention/index.js +0 -93
- package/out/convention/index.js.map +0 -1
- package/out/fst/index.d.ts.map +0 -1
- package/out/fst/index.js.map +0 -1
- package/out/fts/index.d.ts +0 -184
- package/out/fts/index.d.ts.map +0 -1
- package/out/fts/index.js +0 -277
- package/out/fts/index.js.map +0 -1
- package/out/geonames/index.d.ts.map +0 -1
- package/out/geonames/index.js.map +0 -1
- package/out/nsul/index.d.ts.map +0 -1
- package/out/nsul/index.js.map +0 -1
- package/out/poi/index.d.ts.map +0 -1
- package/out/poi/index.js.map +0 -1
- package/out/postal/index.d.ts.map +0 -1
- package/out/postal/index.js.map +0 -1
- package/out/street/centroid/index.d.ts +0 -40
- package/out/street/centroid/index.d.ts.map +0 -1
- package/out/street/centroid/index.js.map +0 -1
- package/out/street/index.d.ts.map +0 -1
- package/out/street/index.js.map +0 -1
- package/out/uprn/index.d.ts.map +0 -1
- package/out/uprn/index.js.map +0 -1
- /package/lib/{geonames/index.ts → geonames.ts} +0 -0
- /package/lib/{nsul/index.ts → nsul.ts} +0 -0
- /package/lib/{poi/index.ts → poi.ts} +0 -0
- /package/lib/{postal/index.ts → postal.ts} +0 -0
- /package/lib/{uprn/index.ts → uprn.ts} +0 -0
|
@@ -3,34 +3,30 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
* Address-point interpolation
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* miss; TIGER range interpolation (`StreetInterpolator`) demotes to the fallback for streets too
|
|
12
|
-
* sparse to bracket.
|
|
6
|
+
* Address-point interpolation, the second method of the resolution ladder. When the exact
|
|
7
|
+
* address-point tier misses a house number, bracket the number with real neighbor points on the
|
|
8
|
+
* same street and interpolate linearly in house-number space between them. Real occupancy
|
|
9
|
+
* replaces the tiger range tier's uniform-spacing assumption. Tiger range interpolation
|
|
10
|
+
* (`StreetInterpolator`) is the fallback for streets too sparse to bracket.
|
|
13
11
|
*
|
|
14
|
-
*
|
|
15
|
-
* (`canonicalizeRouteKey`), identical at build time (`
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* The matching key is `street_key`, the shared normalizer plus the route fold
|
|
13
|
+
* (`canonicalizeRouteKey`), identical at build time (`mailwoman situs address-points`) and query
|
|
14
|
+
* time by construction. Scope is postcode-first like the segment tier. A query without a postcode
|
|
15
|
+
* goes straight to the fallback. The fallback has its own statewide-ambiguity abstention.
|
|
18
16
|
*
|
|
19
|
-
*
|
|
17
|
+
* Neighbor candidates never include the queried number itself, so production never overrides an
|
|
18
|
+
* on-file number and grading against the same extract is non-circular.
|
|
20
19
|
*
|
|
21
|
-
* - Neighbor candidates NEVER include the queried number itself (any unit/duplicate row of it) — in
|
|
22
|
-
* production the exact tier would already have answered an on-file number, and in the eval
|
|
23
|
-
* this is what makes grading against the same extract non-circular by construction.
|
|
24
20
|
* - Both-sided bracket (`bracket: "both"`): linear interpolation between the nearest known number
|
|
25
|
-
* below and above
|
|
26
|
-
* - Single-sided (`bracket: "single"`): linear extrapolation along the two nearest known numbers
|
|
27
|
-
* that side, capped at one pair-span beyond the nearest point (`t ≤ 2
|
|
28
|
-
*
|
|
29
|
-
* the extrapolated overshoot,
|
|
30
|
-
* - No bracket
|
|
31
|
-
* the
|
|
21
|
+
* below and above. `uncertaintyM` is half the distance between them.
|
|
22
|
+
* - Single-sided (`bracket: "single"`): linear extrapolation along the two nearest known numbers
|
|
23
|
+
* on that side, capped at one pair-span beyond the nearest point (`t ≤ 2`, past which the line
|
|
24
|
+
* provides no evidence and the query falls through). `uncertaintyM` is the pair distance plus
|
|
25
|
+
* the extrapolated overshoot, larger than the both-sided radius.
|
|
26
|
+
* - No bracket, meaning no neighbors, a single known number, or past the extrapolation cap: fall
|
|
27
|
+
* through to the tiger fallback when configured, else null.
|
|
32
28
|
*
|
|
33
|
-
* Standalone like the segment tier
|
|
29
|
+
* Standalone like the segment tier, wired through the ordered `spatialTiers` list.
|
|
34
30
|
*/
|
|
35
31
|
import type { InterpolationLookup } from "@mailwoman/core/resolver";
|
|
36
32
|
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
@@ -43,6 +39,7 @@ export declare class AddressPointInterpolator<DB extends AddressPointDatabase =
|
|
|
43
39
|
database?: DatabaseClient<DB>;
|
|
44
40
|
fallback?: StreetInterpolator;
|
|
45
41
|
});
|
|
42
|
+
readonly radiusCalibration: null;
|
|
46
43
|
find(query: InterpolationQuery): InterpolatedHit | null;
|
|
47
44
|
[Symbol.dispose](): void;
|
|
48
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../../lib/address/point/interpolation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../../lib/address/point/interpolation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AA8B7F,qBAAa,wBAAwB,CACpC,EAAE,SAAS,oBAAoB,GAAG,oBAAoB,CACrD,YAAW,mBAAmB;;IAY/B,YAAY,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;KAAE,EA2BlG;IAED,QAAQ,CAAC,iBAAiB,OAAO;IAEjC,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI,CAsBtD;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAEvB;CACD"}
|
|
@@ -3,85 +3,85 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
* Address-point interpolation
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* miss; TIGER range interpolation (`StreetInterpolator`) demotes to the fallback for streets too
|
|
12
|
-
* sparse to bracket.
|
|
6
|
+
* Address-point interpolation, the second method of the resolution ladder. When the exact
|
|
7
|
+
* address-point tier misses a house number, bracket the number with real neighbor points on the
|
|
8
|
+
* same street and interpolate linearly in house-number space between them. Real occupancy
|
|
9
|
+
* replaces the tiger range tier's uniform-spacing assumption. Tiger range interpolation
|
|
10
|
+
* (`StreetInterpolator`) is the fallback for streets too sparse to bracket.
|
|
13
11
|
*
|
|
14
|
-
*
|
|
15
|
-
* (`canonicalizeRouteKey`), identical at build time (`
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* The matching key is `street_key`, the shared normalizer plus the route fold
|
|
13
|
+
* (`canonicalizeRouteKey`), identical at build time (`mailwoman situs address-points`) and query
|
|
14
|
+
* time by construction. Scope is postcode-first like the segment tier. A query without a postcode
|
|
15
|
+
* goes straight to the fallback. The fallback has its own statewide-ambiguity abstention.
|
|
18
16
|
*
|
|
19
|
-
*
|
|
17
|
+
* Neighbor candidates never include the queried number itself, so production never overrides an
|
|
18
|
+
* on-file number and grading against the same extract is non-circular.
|
|
20
19
|
*
|
|
21
|
-
* - Neighbor candidates NEVER include the queried number itself (any unit/duplicate row of it) — in
|
|
22
|
-
* production the exact tier would already have answered an on-file number, and in the eval
|
|
23
|
-
* this is what makes grading against the same extract non-circular by construction.
|
|
24
20
|
* - Both-sided bracket (`bracket: "both"`): linear interpolation between the nearest known number
|
|
25
|
-
* below and above
|
|
26
|
-
* - Single-sided (`bracket: "single"`): linear extrapolation along the two nearest known numbers
|
|
27
|
-
* that side, capped at one pair-span beyond the nearest point (`t ≤ 2
|
|
28
|
-
*
|
|
29
|
-
* the extrapolated overshoot,
|
|
30
|
-
* - No bracket
|
|
31
|
-
* the
|
|
21
|
+
* below and above. `uncertaintyM` is half the distance between them.
|
|
22
|
+
* - Single-sided (`bracket: "single"`): linear extrapolation along the two nearest known numbers
|
|
23
|
+
* on that side, capped at one pair-span beyond the nearest point (`t ≤ 2`, past which the line
|
|
24
|
+
* provides no evidence and the query falls through). `uncertaintyM` is the pair distance plus
|
|
25
|
+
* the extrapolated overshoot, larger than the both-sided radius.
|
|
26
|
+
* - No bracket, meaning no neighbors, a single known number, or past the extrapolation cap: fall
|
|
27
|
+
* through to the tiger fallback when configured, else null.
|
|
32
28
|
*
|
|
33
|
-
* Standalone like the segment tier
|
|
29
|
+
* Standalone like the segment tier, wired through the ordered `spatialTiers` list.
|
|
34
30
|
*/
|
|
35
31
|
import { haversineKm } from "@mailwoman/spatial";
|
|
36
32
|
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
37
33
|
import { hasTable, prepareAll } from "#sqlite-utils";
|
|
38
34
|
import { canonicalizeRouteKey, streetKeyVariants } from "#street/normalize";
|
|
39
35
|
/**
|
|
40
|
-
* Extrapolation cap for a single-sided bracket: at most one pair-span beyond
|
|
41
|
-
*
|
|
36
|
+
* Extrapolation cap for a single-sided bracket: at most one pair-span beyond
|
|
37
|
+
* the nearest known point (`t = 2`).
|
|
38
|
+
*
|
|
39
|
+
* Past it, the two-point line provides no evidence about the query number.
|
|
42
40
|
*/
|
|
43
41
|
const MAX_EXTRAPOLATION_T = 2;
|
|
44
42
|
export class AddressPointInterpolator {
|
|
45
43
|
#db;
|
|
46
44
|
/**
|
|
47
|
-
* Resources this instance opened.
|
|
48
|
-
*
|
|
45
|
+
* Resources this instance opened.
|
|
46
|
+
*
|
|
47
|
+
* A connection handed in by a caller is not in here, so disposal cannot reach it.
|
|
48
|
+
* Ownership is membership rather than a flag a later branch checks.
|
|
49
49
|
*/
|
|
50
|
-
#resources
|
|
50
|
+
#resources;
|
|
51
51
|
#fallback;
|
|
52
52
|
#byPostcode;
|
|
53
53
|
constructor(opts) {
|
|
54
|
+
using resources = new DisposableStack();
|
|
54
55
|
if (opts.database) {
|
|
55
56
|
this.#db = opts.database;
|
|
56
57
|
}
|
|
57
58
|
else if (opts.dbPath) {
|
|
58
|
-
this.#db =
|
|
59
|
+
this.#db = resources.use(new DatabaseClient(opts.dbPath, { readOnly: true }));
|
|
59
60
|
}
|
|
60
61
|
else {
|
|
61
62
|
throw new Error("AddressPointInterpolator: one of dbPath or database is required");
|
|
62
63
|
}
|
|
63
64
|
this.#fallback = opts.fallback;
|
|
64
|
-
// Degrade gracefully on an
|
|
65
|
-
// is skipped
|
|
65
|
+
// Degrade gracefully on an extract without an `address_point` table.
|
|
66
|
+
// The tier is skipped and defers to the segment fallback rather than crashing at construction.
|
|
66
67
|
if (hasTable(this.#db, "address_point")) {
|
|
67
|
-
// Strictly-numeric neighbor numbers on the route-folded street key within the ZIP. The
|
|
68
|
-
// queried number itself is excluded HERE (see module doc: non-circular by construction).
|
|
69
68
|
this.#byPostcode = prepareAll(this.#db, `SELECT CAST(number AS INTEGER) AS n, lat, lon, source, release
|
|
70
69
|
FROM address_point
|
|
71
70
|
WHERE postcode = ? AND street_key = ?
|
|
72
71
|
AND number GLOB '[0-9]*' AND number NOT GLOB '*[^0-9]*'
|
|
73
72
|
AND CAST(number AS INTEGER) != ?`);
|
|
74
73
|
}
|
|
74
|
+
this.#resources = resources.move();
|
|
75
75
|
}
|
|
76
|
+
radiusCalibration = null;
|
|
76
77
|
find(query) {
|
|
77
78
|
const numberRaw = query.number.trim();
|
|
78
79
|
if (!/^\d+$/.test(numberRaw))
|
|
79
80
|
return null;
|
|
80
81
|
const n = Number(numberRaw);
|
|
81
|
-
// No own table (empty extract) or no postcode → defer to the segment fallback rather than query.
|
|
82
82
|
if (!this.#byPostcode || !query.postcode)
|
|
83
83
|
return this.#fallback?.find(query) ?? null;
|
|
84
|
-
// Key-variant ladder (see `streetKeyVariants`)
|
|
84
|
+
// Key-variant ladder (see `streetKeyVariants`), the same probe order as the exact-point reader.
|
|
85
85
|
let rows = [];
|
|
86
86
|
for (const variant of streetKeyVariants(query.street)) {
|
|
87
87
|
const streetKey = canonicalizeRouteKey(variant);
|
|
@@ -122,9 +122,10 @@ function anchorsByNumber(rows) {
|
|
|
122
122
|
}
|
|
123
123
|
function interpolateFromNeighbors(rows, n) {
|
|
124
124
|
const anchors = anchorsByNumber(rows);
|
|
125
|
-
// Nearest known number below and above the query
|
|
126
|
-
|
|
127
|
-
let
|
|
125
|
+
// Nearest known number below and above the query.
|
|
126
|
+
// The rows never contain n itself.
|
|
127
|
+
let below = null;
|
|
128
|
+
let above = null;
|
|
128
129
|
for (const anchor of anchors) {
|
|
129
130
|
if (anchor.n < n) {
|
|
130
131
|
below = anchor;
|
|
@@ -142,6 +143,7 @@ function interpolateFromNeighbors(rows, n) {
|
|
|
142
143
|
lon: below.lon + (above.lon - below.lon) * t,
|
|
143
144
|
interpolated: true,
|
|
144
145
|
method: "address_point",
|
|
146
|
+
parityMatched: null,
|
|
145
147
|
bracket: "both",
|
|
146
148
|
uncertaintyM: Math.round(spanM / 2),
|
|
147
149
|
source: below.source,
|
|
@@ -149,7 +151,7 @@ function interpolateFromNeighbors(rows, n) {
|
|
|
149
151
|
};
|
|
150
152
|
}
|
|
151
153
|
// Single-sided: extrapolate along the two nearest known numbers on the populated side.
|
|
152
|
-
// `
|
|
154
|
+
// `t > 1` by construction because n lies outside the span.
|
|
153
155
|
const side = below ? anchors.slice(-2) : anchors.slice(0, 2);
|
|
154
156
|
if (side.length < 2)
|
|
155
157
|
return null;
|
|
@@ -166,6 +168,7 @@ function interpolateFromNeighbors(rows, n) {
|
|
|
166
168
|
lon,
|
|
167
169
|
interpolated: true,
|
|
168
170
|
method: "address_point",
|
|
171
|
+
parityMatched: null,
|
|
169
172
|
bracket: "single",
|
|
170
173
|
// Explicitly larger than the both-sided radius: the whole pair span plus the overshoot.
|
|
171
174
|
uncertaintyM: Math.round(pairM + overshootM),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolation.js","sourceRoot":"","sources":["../../../lib/address/point/interpolation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"interpolation.js","sourceRoot":"","sources":["../../../lib/address/point/interpolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,25 +2,12 @@
|
|
|
2
2
|
* @copyright Sister Software
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* Typed schema for the SITUS / rooftop ADDRESS-POINT extracts (`address-points-<cc>-<slug>.db`, built
|
|
7
|
-
* by `scripts/build-address-point-extract.ts` — the #476/#567 national rooftop tier behind the
|
|
8
|
-
* demo's "type any US address, get the building"). Single source of truth for the columns shared
|
|
9
|
-
* by the BUILDER and the READER ({@link AddressPointSqliteLookup}), so a column rename in one is a
|
|
10
|
-
* compile error in the other.
|
|
11
|
-
*
|
|
12
|
-
* The builder's hot INSERT (tens of millions of rows per state) stays a POSITIONAL prepared
|
|
13
|
-
* statement for throughput — but its column list is derived from {@link ADDRESS_POINT_COLUMNS}
|
|
14
|
-
* here, and its table comes from {@link createAddressPointTable}, so the positional order can't
|
|
15
|
-
* silently drift from what the reader expects. (Same convention as the candidate build: typed
|
|
16
|
-
* schema guards the contract; positional inserts keep the speed.)
|
|
17
5
|
*/
|
|
18
6
|
import type { Kysely } from "kysely";
|
|
19
7
|
import type { NameKey, RouteKey, StreetKey } from "#street/normalize";
|
|
20
8
|
/**
|
|
21
|
-
* One rooftop address point
|
|
22
|
-
*
|
|
23
|
-
* non-finite coords). `unit`/`postcode`/`locality_norm` are nullable (not every source carries all three).
|
|
9
|
+
* One rooftop address point; `(street_norm, number)` within a `postcode`
|
|
10
|
+
* or `locality_norm` scope is the lookup.
|
|
24
11
|
*/
|
|
25
12
|
export interface AddressPointTable {
|
|
26
13
|
/**
|
|
@@ -28,12 +15,12 @@ export interface AddressPointTable {
|
|
|
28
15
|
*/
|
|
29
16
|
street_norm: StreetKey;
|
|
30
17
|
/**
|
|
31
|
-
* `canonicalizeRouteKey(street_norm)` — the route-fold key
|
|
32
|
-
* interchanged with
|
|
18
|
+
* `canonicalizeRouteKey(street_norm)` — the route-fold key, branded
|
|
19
|
+
* so it cannot be interchanged with `street_norm`.
|
|
33
20
|
*/
|
|
34
21
|
street_key: RouteKey;
|
|
35
22
|
/**
|
|
36
|
-
* House number, normalized lower-case (kept
|
|
23
|
+
* House number, normalized lower-case (kept text — "123-A", "12 1/2" must survive).
|
|
37
24
|
*/
|
|
38
25
|
number: string;
|
|
39
26
|
unit: string | null;
|
|
@@ -42,9 +29,6 @@ export interface AddressPointTable {
|
|
|
42
29
|
* Shared {@link normalizeLocalityForKey} of the locality — the fallback scope.
|
|
43
30
|
*/
|
|
44
31
|
locality_norm: NameKey | null;
|
|
45
|
-
/**
|
|
46
|
-
* The street as it appeared in the source (kept for display / debugging).
|
|
47
|
-
*/
|
|
48
32
|
street_raw: string;
|
|
49
33
|
lat: number;
|
|
50
34
|
lon: number;
|
|
@@ -52,18 +36,15 @@ export interface AddressPointTable {
|
|
|
52
36
|
* Provenance: the dataset this point came from (e.g. `overture:us`, `openaddresses`).
|
|
53
37
|
*/
|
|
54
38
|
source: string;
|
|
55
|
-
/**
|
|
56
|
-
* The pinned data release the point was ingested from.
|
|
57
|
-
*/
|
|
58
39
|
release: string;
|
|
59
40
|
/**
|
|
60
|
-
* The source register's stable administrative key for the point's commune or municipality —
|
|
61
|
-
*
|
|
41
|
+
* The source register's stable administrative key for the point's commune or municipality —
|
|
42
|
+
* BAN's `code_insee`; the coverage basis is computed per this key.
|
|
62
43
|
*/
|
|
63
44
|
admin_code: string | null;
|
|
64
45
|
/**
|
|
65
|
-
* The register's own certification flag for the point
|
|
66
|
-
*
|
|
46
|
+
* The register's own certification flag for the point
|
|
47
|
+
* (BAN `certification_commune`: 1 certified, 0 not), never inferred from a share.
|
|
67
48
|
*/
|
|
68
49
|
certified: number | null;
|
|
69
50
|
}
|
|
@@ -74,16 +55,12 @@ export interface AddressPointDatabase {
|
|
|
74
55
|
address_point: AddressPointTable;
|
|
75
56
|
}
|
|
76
57
|
/**
|
|
77
|
-
* The
|
|
78
|
-
*
|
|
79
|
-
* Kysely is invariant in its schema parameter (the incompatibility is in `transaction()`), so a extract that EXTENDS
|
|
80
|
-
* `AddressPointTable` — OSM adds `h3_cell` — cannot pass its own handle to a `Kysely<AddressPointDatabase>` parameter.
|
|
81
|
-
* Naming only `schema` lets it, and the DDL below needs nothing else.
|
|
58
|
+
* The subset of a Kysely handle the DDL touches, narrowed to `schema`
|
|
59
|
+
* because Kysely is invariant in its schema parameter.
|
|
82
60
|
*/
|
|
83
61
|
export type AddressPointSchemaHandle = Pick<Kysely<AddressPointDatabase>, "schema">;
|
|
84
62
|
/**
|
|
85
|
-
* The `address_point` columns in
|
|
86
|
-
* from this, so the positional order can't drift from the DDL / the reader.
|
|
63
|
+
* The `address_point` columns in insert order, from which the builder derives its positional placeholders.
|
|
87
64
|
*/
|
|
88
65
|
export declare const ADDRESS_POINT_COLUMNS: readonly ["street_norm", "street_key", "number", "unit", "postcode", "locality_norm", "street_raw", "lat", "lon", "source", "release", "admin_code", "certified"];
|
|
89
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../lib/address/point/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../lib/address/point/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAErE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,WAAW,EAAE,SAAS,CAAA;IACtB;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAA;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB;;OAEG;IACH,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAE7B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,aAAa,EAAE,iBAAiB,CAAA;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnF;;GAEG;AACH,eAAO,MAAM,qBAAqB,YACjC,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,UAAU,EACV,eAAe,EACf,YAAY,EACZ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,CACF,CAAA;AAEV;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzF;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3F"}
|
|
@@ -2,22 +2,9 @@
|
|
|
2
2
|
* @copyright Sister Software
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* Typed schema for the SITUS / rooftop ADDRESS-POINT extracts (`address-points-<cc>-<slug>.db`, built
|
|
7
|
-
* by `scripts/build-address-point-extract.ts` — the #476/#567 national rooftop tier behind the
|
|
8
|
-
* demo's "type any US address, get the building"). Single source of truth for the columns shared
|
|
9
|
-
* by the BUILDER and the READER ({@link AddressPointSqliteLookup}), so a column rename in one is a
|
|
10
|
-
* compile error in the other.
|
|
11
|
-
*
|
|
12
|
-
* The builder's hot INSERT (tens of millions of rows per state) stays a POSITIONAL prepared
|
|
13
|
-
* statement for throughput — but its column list is derived from {@link ADDRESS_POINT_COLUMNS}
|
|
14
|
-
* here, and its table comes from {@link createAddressPointTable}, so the positional order can't
|
|
15
|
-
* silently drift from what the reader expects. (Same convention as the candidate build: typed
|
|
16
|
-
* schema guards the contract; positional inserts keep the speed.)
|
|
17
5
|
*/
|
|
18
6
|
/**
|
|
19
|
-
* The `address_point` columns in
|
|
20
|
-
* from this, so the positional order can't drift from the DDL / the reader.
|
|
7
|
+
* The `address_point` columns in insert order, from which the builder derives its positional placeholders.
|
|
21
8
|
*/
|
|
22
9
|
export const ADDRESS_POINT_COLUMNS = [
|
|
23
10
|
"street_norm",
|
|
@@ -41,7 +28,6 @@ export async function createAddressPointTable(db) {
|
|
|
41
28
|
await db.schema
|
|
42
29
|
.createTable("address_point")
|
|
43
30
|
.addColumn("street_norm", "text", (c) => c.notNull())
|
|
44
|
-
// `street_key` = canonicalizeRouteKey(street_norm): the route-fold key (#483 Method 2).
|
|
45
31
|
.addColumn("street_key", "text", (c) => c.notNull())
|
|
46
32
|
.addColumn("number", "text", (c) => c.notNull())
|
|
47
33
|
.addColumn("unit", "text")
|
|
@@ -71,10 +57,8 @@ export async function createAddressPointIndexes(db) {
|
|
|
71
57
|
.columns(["locality_norm", "street_norm", "number"])
|
|
72
58
|
.execute();
|
|
73
59
|
await db.schema.createIndex("idx_ap_streetkey").on("address_point").columns(["postcode", "street_key"]).execute();
|
|
74
|
-
// Street-first index for the
|
|
75
|
-
// reader scopes a `(street_norm, number)` probe by the resolved locality's bbox
|
|
76
|
-
// postcode/locality indexes lead with their scope column and can't serve this; US situs never probes by
|
|
77
|
-
// bbox so it simply carries one extra (cheap) index on a future rebuild.
|
|
60
|
+
// Street-first index for the bbox scope: OSM points often have no postcode or locality,
|
|
61
|
+
// so the reader scopes a `(street_norm, number)` probe by the resolved locality's bbox.
|
|
78
62
|
await db.schema.createIndex("idx_ap_street").on("address_point").columns(["street_norm", "number"]).execute();
|
|
79
63
|
}
|
|
80
64
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../lib/address/point/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../lib/address/point/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACpC,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,UAAU;IACV,eAAe;IACf,YAAY;IACZ,KAAK;IACL,KAAK;IACL,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;CACF,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAA4B;IACzE,MAAM,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,eAAe,CAAC;SAC5B,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAEpD,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;SACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;SAC7B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;SAClC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAChD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;SAC/B,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC;SACjC,OAAO,EAAE,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAA4B;IAC3E,MAAM,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,iBAAiB,CAAC;SAC9B,EAAE,CAAC,eAAe,CAAC;SACnB,OAAO,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;SAC9C,OAAO,EAAE,CAAA;IAEX,MAAM,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,iBAAiB,CAAC;SAC9B,EAAE,CAAC,eAAe,CAAC;SACnB,OAAO,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;SACnD,OAAO,EAAE,CAAA;IAEX,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IACjH,wFAAwF;IACxF,wFAAwF;IACxF,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;AAC9G,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
* @file SQLite implementation of core's `AddressPointLookup`.
|
|
6
|
+
*/
|
|
7
|
+
import type { AddressPointHit, AddressPointLookup } from "@mailwoman/core/resolver";
|
|
8
|
+
import type { PathBuilderLike } from "path-ts";
|
|
9
|
+
import type { AddressPointDatabase } from "#address/point/schema";
|
|
10
|
+
import { type StreetLocale } from "#street/normalize";
|
|
11
|
+
/**
|
|
12
|
+
* Finds an address point by exact normalized `(street, number)` within a postcode,
|
|
13
|
+
* a locality, or a bounding box.
|
|
14
|
+
*
|
|
15
|
+
* Query normalization uses the extract's `streetLocale`, which must match the
|
|
16
|
+
* locale the extract was built with.
|
|
17
|
+
* Street matching is exact after normalization.
|
|
18
|
+
*
|
|
19
|
+
* Scopes are tried from most to least selective: postcode, locality, locality suffix, then bounding box.
|
|
20
|
+
* When several rows match, any one of them can answer, because unit siblings share the building coordinate.
|
|
21
|
+
*/
|
|
22
|
+
export declare class AddressPointSqliteLookup<DB extends AddressPointDatabase = AddressPointDatabase> implements AddressPointLookup, Disposable {
|
|
23
|
+
#private;
|
|
24
|
+
/**
|
|
25
|
+
* @param dbPath Extract path.
|
|
26
|
+
* @param opts.streetLocale The street-normalization locale the extract was built with.
|
|
27
|
+
* A mismatch makes every key miss.
|
|
28
|
+
* @param opts.localityKeys Whether the extract's `locality_norm` holds full place names.
|
|
29
|
+
* With `"abbreviated"`, a row's locality can select a row but never rejects one.
|
|
30
|
+
* The US situs extract uses NAD city fields.
|
|
31
|
+
* Some counties abbreviate them (`addi` for Addison).
|
|
32
|
+
* Other counties replace them with the parent town.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `"us"`
|
|
35
|
+
* @defaultValue `"abbreviated"` for `"us"` and `"full"` for every other locale.
|
|
36
|
+
*/
|
|
37
|
+
constructor(dbPath: PathBuilderLike, opts?: {
|
|
38
|
+
streetLocale?: StreetLocale;
|
|
39
|
+
localityKeys?: "full" | "abbreviated";
|
|
40
|
+
});
|
|
41
|
+
find(query: {
|
|
42
|
+
street: string;
|
|
43
|
+
number: string;
|
|
44
|
+
postcode?: string;
|
|
45
|
+
locality?: string;
|
|
46
|
+
region?: string;
|
|
47
|
+
subregion?: string;
|
|
48
|
+
bbox: {
|
|
49
|
+
minLat: number;
|
|
50
|
+
maxLat: number;
|
|
51
|
+
minLon: number;
|
|
52
|
+
maxLon: number;
|
|
53
|
+
} | null;
|
|
54
|
+
}): AddressPointHit | null;
|
|
55
|
+
[Symbol.dispose](): void;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../lib/address/point.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAEnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAA;AAEpF,OAAO,EASN,KAAK,YAAY,EACjB,MAAM,mBAAmB,CAAA;AAc1B;;;;;;;;;;GAUG;AACH,qBAAa,wBAAwB,CAAC,EAAE,SAAS,oBAAoB,GAAG,oBAAoB,CAC3F,YAAW,kBAAkB,EAAE,UAAU;;IAyBzC;;;;;;;;;;;;OAYG;IACH,YACC,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,YAAY,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;KAAO,EAsCjF;IAED,IAAI,CAAC,KAAK,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAC/E,GAAG,eAAe,GAAG,IAAI,CAsCzB;IAyID,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAEvB;CACD"}
|