@cliwant/mcp-sam-gov 0.3.0 → 1.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/LICENSE +21 -21
- package/README.ja.md +49 -16
- package/README.ko.md +49 -16
- package/README.md +255 -64
- package/dist/attachments.d.ts +63 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +576 -0
- package/dist/attachments.js.map +1 -0
- package/dist/bls.d.ts +267 -0
- package/dist/bls.d.ts.map +1 -0
- package/dist/bls.js +1549 -0
- package/dist/bls.js.map +1 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +4 -0
- package/dist/cache.js.map +1 -1
- package/dist/census-economic.d.ts +93 -0
- package/dist/census-economic.d.ts.map +1 -0
- package/dist/census-economic.js +355 -0
- package/dist/census-economic.js.map +1 -0
- package/dist/census.d.ts +182 -0
- package/dist/census.d.ts.map +1 -0
- package/dist/census.js +576 -0
- package/dist/census.js.map +1 -0
- package/dist/ckan.d.ts +141 -0
- package/dist/ckan.d.ts.map +1 -0
- package/dist/ckan.js +393 -0
- package/dist/ckan.js.map +1 -0
- package/dist/clinicaltrials.d.ts +180 -0
- package/dist/clinicaltrials.d.ts.map +1 -0
- package/dist/clinicaltrials.js +730 -0
- package/dist/clinicaltrials.js.map +1 -0
- package/dist/cms.d.ts +140 -0
- package/dist/cms.d.ts.map +1 -0
- package/dist/cms.js +482 -0
- package/dist/cms.js.map +1 -0
- package/dist/coerce.d.ts +32 -0
- package/dist/coerce.d.ts.map +1 -0
- package/dist/coerce.js +50 -0
- package/dist/coerce.js.map +1 -0
- package/dist/datagov-catalog.d.ts +84 -0
- package/dist/datagov-catalog.d.ts.map +1 -0
- package/dist/datagov-catalog.js +233 -0
- package/dist/datagov-catalog.js.map +1 -0
- package/dist/datagov.d.ts +146 -0
- package/dist/datagov.d.ts.map +1 -0
- package/dist/datagov.js +689 -0
- package/dist/datagov.js.map +1 -0
- package/dist/datagovKey.d.ts +36 -0
- package/dist/datagovKey.d.ts.map +1 -0
- package/dist/datagovKey.js +60 -0
- package/dist/datagovKey.js.map +1 -0
- package/dist/datasource.d.ts +313 -0
- package/dist/datasource.d.ts.map +1 -0
- package/dist/datasource.js +551 -0
- package/dist/datasource.js.map +1 -0
- package/dist/disclosure.d.ts +55 -0
- package/dist/disclosure.d.ts.map +1 -0
- package/dist/disclosure.js +57 -0
- package/dist/disclosure.js.map +1 -0
- package/dist/ecfr.d.ts +4 -2
- package/dist/ecfr.d.ts.map +1 -1
- package/dist/ecfr.js +74 -1
- package/dist/ecfr.js.map +1 -1
- package/dist/echo.d.ts +143 -0
- package/dist/echo.d.ts.map +1 -0
- package/dist/echo.js +424 -0
- package/dist/echo.js.map +1 -0
- package/dist/edgar.d.ts +377 -0
- package/dist/edgar.d.ts.map +1 -0
- package/dist/edgar.js +2418 -0
- package/dist/edgar.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +69 -1
- package/dist/errors.js.map +1 -1
- package/dist/fac.d.ts +180 -0
- package/dist/fac.d.ts.map +1 -0
- package/dist/fac.js +416 -0
- package/dist/fac.js.map +1 -0
- package/dist/far.d.ts +170 -0
- package/dist/far.d.ts.map +1 -0
- package/dist/far.js +804 -0
- package/dist/far.js.map +1 -0
- package/dist/fdic.d.ts +599 -0
- package/dist/fdic.d.ts.map +1 -0
- package/dist/fdic.js +1624 -0
- package/dist/fdic.js.map +1 -0
- package/dist/federal-register.d.ts +139 -2
- package/dist/federal-register.d.ts.map +1 -1
- package/dist/federal-register.js +419 -3
- package/dist/federal-register.js.map +1 -1
- package/dist/fema.d.ts +181 -0
- package/dist/fema.d.ts.map +1 -0
- package/dist/fema.js +436 -0
- package/dist/fema.js.map +1 -0
- package/dist/fpds.d.ts +108 -0
- package/dist/fpds.d.ts.map +1 -0
- package/dist/fpds.js +519 -0
- package/dist/fpds.js.map +1 -0
- package/dist/fred.d.ts +108 -0
- package/dist/fred.d.ts.map +1 -0
- package/dist/fred.js +373 -0
- package/dist/fred.js.map +1 -0
- package/dist/gao.d.ts +64 -0
- package/dist/gao.d.ts.map +1 -0
- package/dist/gao.js +640 -0
- package/dist/gao.js.map +1 -0
- package/dist/govinfo.d.ts +111 -0
- package/dist/govinfo.d.ts.map +1 -0
- package/dist/govinfo.js +422 -0
- package/dist/govinfo.js.map +1 -0
- package/dist/grants.d.ts +27 -4
- package/dist/grants.d.ts.map +1 -1
- package/dist/grants.js +111 -6
- package/dist/grants.js.map +1 -1
- package/dist/gsa-csv.d.ts +249 -0
- package/dist/gsa-csv.d.ts.map +1 -0
- package/dist/gsa-csv.js +784 -0
- package/dist/gsa-csv.js.map +1 -0
- package/dist/integrity.d.ts +212 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +707 -0
- package/dist/integrity.js.map +1 -0
- package/dist/keys.d.ts +83 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +173 -0
- package/dist/keys.js.map +1 -0
- package/dist/meta.d.ts +165 -0
- package/dist/meta.d.ts.map +1 -0
- package/dist/meta.js +162 -0
- package/dist/meta.js.map +1 -0
- package/dist/nih.d.ts +117 -0
- package/dist/nih.d.ts.map +1 -0
- package/dist/nih.js +291 -0
- package/dist/nih.js.map +1 -0
- package/dist/nppes.d.ts +157 -0
- package/dist/nppes.d.ts.map +1 -0
- package/dist/nppes.js +648 -0
- package/dist/nppes.js.map +1 -0
- package/dist/nsf.d.ts +176 -0
- package/dist/nsf.d.ts.map +1 -0
- package/dist/nsf.js +554 -0
- package/dist/nsf.js.map +1 -0
- package/dist/nvd.d.ts +176 -0
- package/dist/nvd.d.ts.map +1 -0
- package/dist/nvd.js +912 -0
- package/dist/nvd.js.map +1 -0
- package/dist/ofac.d.ts +205 -0
- package/dist/ofac.d.ts.map +1 -0
- package/dist/ofac.js +919 -0
- package/dist/ofac.js.map +1 -0
- package/dist/pricing.d.ts +110 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +843 -0
- package/dist/pricing.js.map +1 -0
- package/dist/sam-gov/client.d.ts +60 -2
- package/dist/sam-gov/client.d.ts.map +1 -1
- package/dist/sam-gov/client.js +320 -54
- package/dist/sam-gov/client.js.map +1 -1
- package/dist/sam-gov/index.d.ts +1 -1
- package/dist/sam-gov/index.d.ts.map +1 -1
- package/dist/sam-gov/index.js +1 -1
- package/dist/sam-gov/index.js.map +1 -1
- package/dist/sam-gov/types.d.ts +24 -0
- package/dist/sam-gov/types.d.ts.map +1 -1
- package/dist/sba.d.ts +72 -0
- package/dist/sba.d.ts.map +1 -0
- package/dist/sba.js +281 -0
- package/dist/sba.js.map +1 -0
- package/dist/server.d.ts +14 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4032 -297
- package/dist/server.js.map +1 -1
- package/dist/snapshot.d.ts +115 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +175 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/socrata.d.ts +157 -0
- package/dist/socrata.d.ts.map +1 -0
- package/dist/socrata.js +448 -0
- package/dist/socrata.js.map +1 -0
- package/dist/treasury.d.ts +143 -0
- package/dist/treasury.d.ts.map +1 -0
- package/dist/treasury.js +436 -0
- package/dist/treasury.js.map +1 -0
- package/dist/usaspending.d.ts +260 -65
- package/dist/usaspending.d.ts.map +1 -1
- package/dist/usaspending.js +1629 -201
- package/dist/usaspending.js.map +1 -1
- package/dist/usitc.d.ts +142 -0
- package/dist/usitc.d.ts.map +1 -0
- package/dist/usitc.js +339 -0
- package/dist/usitc.js.map +1 -0
- package/package.json +24 -2
- package/src/attachments.ts +652 -0
- package/src/bls.ts +1943 -0
- package/src/cache.ts +5 -0
- package/src/census-economic.ts +425 -0
- package/src/census.ts +735 -0
- package/src/ckan.ts +495 -0
- package/src/clinicaltrials.ts +923 -0
- package/src/cms.ts +634 -0
- package/src/coerce.ts +47 -0
- package/src/datagov-catalog.ts +296 -0
- package/src/datagov.ts +907 -0
- package/src/datagovKey.ts +68 -0
- package/src/datasource.ts +721 -0
- package/src/disclosure.ts +61 -0
- package/src/ecfr.ts +98 -1
- package/src/echo.ts +496 -0
- package/src/edgar.ts +3014 -0
- package/src/errors.ts +84 -1
- package/src/fac.ts +529 -0
- package/src/far.ts +1007 -0
- package/src/fdic.ts +2052 -0
- package/src/federal-register.ts +512 -3
- package/src/fema.ts +541 -0
- package/src/fpds.ts +620 -0
- package/src/fred.ts +464 -0
- package/src/gao.ts +744 -0
- package/src/govinfo.ts +497 -0
- package/src/grants.ts +139 -7
- package/src/gsa-csv.ts +992 -0
- package/src/integrity.ts +928 -0
- package/src/keys.ts +216 -0
- package/src/meta.ts +292 -0
- package/src/nih.ts +375 -0
- package/src/nppes.ts +834 -0
- package/src/nsf.ts +706 -0
- package/src/nvd.ts +1124 -0
- package/src/ofac.ts +1166 -0
- package/src/pricing.ts +1075 -0
- package/src/sam-gov/client.ts +345 -63
- package/src/sam-gov/index.ts +5 -1
- package/src/sam-gov/types.ts +22 -0
- package/src/sba.ts +357 -0
- package/src/server.ts +4717 -328
- package/src/snapshot.ts +223 -0
- package/src/socrata.ts +532 -0
- package/src/treasury.ts +575 -0
- package/src/usaspending.ts +1946 -214
- package/src/usitc.ts +420 -0
package/dist/census.d.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US Census Bureau Geocoder — keyless source #22 (ADR-0023). A NEW capability
|
|
3
|
+
* domain: TERRITORY / GEOSPATIAL — resolve a one-line address (or a lon/lat point)
|
|
4
|
+
* to its Census GEOGRAPHIES (State, County, Congressional District, Census Tract,
|
|
5
|
+
* Census Block, Incorporated Place, CBSA/CSA, State Legislative Districts). This is
|
|
6
|
+
* the geographic backbone of set-aside / place-of-performance analysis: a bidder
|
|
7
|
+
* needs a location's congressional district + census tract to reason about HUBZone
|
|
8
|
+
* / Opportunity-Zone eligibility and to file/verify a contract's place-of-performance.
|
|
9
|
+
*
|
|
10
|
+
* The GET source on the R2 `DataSource` port: census.ts writes ZERO fetch/coercion/
|
|
11
|
+
* error/meta code — it REUSES `getJson` / `driftError` / `num`·`str` / `withMeta`,
|
|
12
|
+
* and COPIES (does NOT import) the ECHO fixed-host SSRF idiom. Fully PUBLIC, KEYLESS
|
|
13
|
+
* (byte-clean init — NO headers, NO UA; live-verified 2026-07-12).
|
|
14
|
+
*
|
|
15
|
+
* Address → geographies: https://geocoding.geo.census.gov/geocoder/geographies/onelineaddress
|
|
16
|
+
* ?address=…&benchmark=…&vintage=…&format=json
|
|
17
|
+
* → { result:{ input, addressMatches:[ { matchedAddress,
|
|
18
|
+
* coordinates:{x,y}, tigerLine, addressComponents,
|
|
19
|
+
* geographies:{ …layer keys… } } ] } }
|
|
20
|
+
* Point → geographies: https://geocoding.geo.census.gov/geocoder/geographies/coordinates
|
|
21
|
+
* ?x=<lon>&y=<lat>&benchmark=…&vintage=…&format=json
|
|
22
|
+
* → { result:{ input:{ location:{x,y}, … }, geographies:{ … } } }
|
|
23
|
+
* (NO addressMatches wrapper — a point resolves to ONE geography set)
|
|
24
|
+
*
|
|
25
|
+
* ★ SSRF GUARD (policy① — a verbatim copy of the ECHO fixed-host shape):
|
|
26
|
+
* (1) SINGLE fixed host constant `CENSUS_GEO_HOST` — the caller NEVER supplies a host.
|
|
27
|
+
* (2) TWO fixed endpoint-path constants (a frozen Set) — the caller NEVER supplies a
|
|
28
|
+
* path fragment; there is NO id interpolated into the path (both endpoints are
|
|
29
|
+
* query-param-only), so there is no path-segment-injection surface at all. A path
|
|
30
|
+
* outside the Set ⇒ invalid_input before any fetch.
|
|
31
|
+
* (3) `address`/`x`/`y`/`benchmark`/`vintage`/`format` ride in a module-built
|
|
32
|
+
* URLSearchParams (encoded VALUES — an embedded &/=/?/# inside `address` stays
|
|
33
|
+
* inside the value, never touching the host/path). `benchmark`/`vintage` are
|
|
34
|
+
* enum-whitelisted; `x`/`y` are re-guarded finite-in-range and sent as String().
|
|
35
|
+
* `format=json` is ALWAYS module-set (never a caller arg).
|
|
36
|
+
* (4) Construct the URL, then ASSERT `new URL(built).hostname === CENSUS_GEO_HOST`
|
|
37
|
+
* and `protocol === "https:"` ⇒ invalid_input on mismatch (belt-and-suspenders).
|
|
38
|
+
* (5) `redirect:"error"` on every getJson — a 3xx off geocoding.geo.census.gov throws;
|
|
39
|
+
* its body is never read.
|
|
40
|
+
*
|
|
41
|
+
* ★ HONESTY (load-bearing — 02-truthful-outputs-spec §2.1; ADR-0023 v2 AUTHORITATIVE):
|
|
42
|
+
* [B1] The layer mapper resolves each canonical layer by a SUFFIX pattern on the
|
|
43
|
+
* layer-key (never a literal versioned key — the key names ROLL: "119th
|
|
44
|
+
* Congressional Districts", "2020 Census Blocks", "2024 State Legislative
|
|
45
|
+
* Districts - Upper"). It handles >1 KEY PER SUFFIX: a historical vintage
|
|
46
|
+
* (live-verified `Census2010_Current`) returns TWO `/Congressional Districts$/`
|
|
47
|
+
* keys (113th=GEOID 0102 AND 111th=GEOID 0103 for Montgomery AL — a redistricted
|
|
48
|
+
* location with DISTINCT district GEOIDs). Single-pick-and-drop would present one
|
|
49
|
+
* as THE district and hide the other — a data-lie by omission. So when >1 key
|
|
50
|
+
* matches: pick deterministically (highest leading session/year number), surface
|
|
51
|
+
* EVERY matched layerKey (the chosen object + an `alternates[]`), AND emit a
|
|
52
|
+
* MANDATORY `_meta` note naming the N keys + the chosen one. NEVER silently drop.
|
|
53
|
+
* [M1] The drift-guard is scoped to the FOUR always-present sentinel layers only —
|
|
54
|
+
* States, Counties, Census Tracts, Congressional Districts. driftError fires ONLY
|
|
55
|
+
* when a sentinel matches ZERO keys while `geographies` is a NON-EMPTY object.
|
|
56
|
+
* Optional/vintage-dependent layers (Census Blocks, SLD-Upper/Lower, CBSA/CSA)
|
|
57
|
+
* → honest `null` on absence (live-verified: ACS2023_Current omits Census Blocks;
|
|
58
|
+
* DC omits SLD-Lower — LEGITIMATE absences, NOT drift).
|
|
59
|
+
* [M2] The vintage enum is the UNION of live-valid vintages across the four shipped
|
|
60
|
+
* benchmarks (25 distinct — enumerated via /benchmarks + /vintages 2026-07-12),
|
|
61
|
+
* so a VALID non-default pair (e.g. Public_AR_Census2020 + Census2020_Census2020,
|
|
62
|
+
* live 200) is NOT Zod-rejected. An INVALID (benchmark,vintage) pair LOUD-fails
|
|
63
|
+
* at HTTP 400 (the module relies on that backstop) and the tool DISCLOSES that
|
|
64
|
+
* vintage must be benchmark-compatible.
|
|
65
|
+
* • Genuine-empty is HTTP-200 and is NEVER thrown; a 400/500/outage is NEVER read as
|
|
66
|
+
* empty. Address: `addressMatches:[]` ⇒ matches:[], matchCount:0, complete:true.
|
|
67
|
+
* Coordinates: `geographies:{}` ⇒ all layers null, matchCount:0, complete:true. An
|
|
68
|
+
* invalid/missing benchmark/vintage or a non-numeric coord ⇒ HTTP 400 ⇒ getJson
|
|
69
|
+
* THROWS invalid_input; a 5xx/timeout ⇒ THROWS upstream_unavailable.
|
|
70
|
+
* • Multi-match (addressMatches.length > 1, live-forced: "100 Main St, Springfield"
|
|
71
|
+
* → 7 matches with DISTINCT state/CD geographies) ⇒ surface ALL matches (each with
|
|
72
|
+
* its own matchedAddress + geographies) + matchCount + a mandatory note.
|
|
73
|
+
* • The RESOLVED benchmark/vintage is echoed in EVERY response (data.vintageResolved
|
|
74
|
+
* from result.input.{benchmark.benchmarkName, vintage.vintageName}) + a mandatory
|
|
75
|
+
* "Current is a MOVING vintage" note.
|
|
76
|
+
* • GEOIDs are `str` (null-never-empty-string). Leading zeros are REAL and MUST
|
|
77
|
+
* survive: State "01", County "01101", Tract "01101000200", CD "0102" — `num()`
|
|
78
|
+
* would corrupt "01"→1, so a GEOID is NEVER num-coerced.
|
|
79
|
+
* • The KILLER caveat, in EVERY response: Census geographies are a NOMINAL input, NOT
|
|
80
|
+
* an authoritative HUBZone / Opportunity-Zone / set-aside determination.
|
|
81
|
+
* • No fabricated pagination/cursor — both tools are single-shot lookups.
|
|
82
|
+
*
|
|
83
|
+
* ★ `tokenizeForDisclosure` (src/disclosure.ts, C110) is DELIBERATELY N/A: the geocoder
|
|
84
|
+
* is a STRUCTURED address PARSER, not an Essie whitespace-AND/OR keyword search. A
|
|
85
|
+
* multi-word `address` is EXPECTED and is not tokenized into a co-occurrence trap — an
|
|
86
|
+
* under-specified address returns a clean genuine-empty (live-verified), not a silent
|
|
87
|
+
* broaden. There is NO upstream token-drop to disclose, so this module builds NO
|
|
88
|
+
* whitespace-split disclosure note (the lint-invariants disclosure check stays green).
|
|
89
|
+
*/
|
|
90
|
+
import { num } from "./coerce.js";
|
|
91
|
+
import { type MetaBundle } from "./meta.js";
|
|
92
|
+
export { num };
|
|
93
|
+
export declare const CENSUS_BENCHMARKS: readonly ["Public_AR_Current", "Public_AR_ACS2025", "Public_AR_LUCA", "Public_AR_Census2020"];
|
|
94
|
+
export type CensusBenchmark = (typeof CENSUS_BENCHMARKS)[number];
|
|
95
|
+
export declare const CENSUS_VINTAGES: readonly ["Current_Current", "Census2010_Current", "ACS2017_Current", "ACS2018_Current", "ACS2019_Current", "Census2020_Current", "ACS2021_Current", "ACS2022_Current", "ACS2023_Current", "ACS2024_Current", "ACS2025_Current", "LUCA_Current", "Current_ACS2025", "Census2010_ACS2025", "ACS2017_ACS2025", "ACS2018_ACS2025", "ACS2019_ACS2025", "Census2020_ACS2025", "ACS2021_ACS2025", "ACS2022_ACS2025", "ACS2023_ACS2025", "ACS2024_ACS2025", "ACS2025_ACS2025", "Census2020_Census2020", "Census2010_Census2020"];
|
|
96
|
+
export type CensusVintage = (typeof CENSUS_VINTAGES)[number];
|
|
97
|
+
/**
|
|
98
|
+
* GET one Census geocoder endpoint. SSRF guard: `path` ∈ the frozen 2-member Set
|
|
99
|
+
* (the path-injection guard), params via a module-built URLSearchParams (encoded
|
|
100
|
+
* values, no host-alteration surface), `format=json` ALWAYS module-set, then the
|
|
101
|
+
* CONSTRUCTED URL's hostname === CENSUS_GEO_HOST (https) assertion. Sets
|
|
102
|
+
* `redirect:"error"`; NO headers (keyless — byte-clean init). Reuses errors.ts
|
|
103
|
+
* retry/timeout/taxonomy (429 → rate_limited; 5xx → upstream_unavailable; 404 →
|
|
104
|
+
* not_found; 400 → invalid_input — the P6–P10 400s become the thrown error, NEVER a
|
|
105
|
+
* fake-empty). Returns the parsed JSON (unknown; the caller validates the envelope).
|
|
106
|
+
*/
|
|
107
|
+
export declare function censusGet(path: string, params: URLSearchParams): Promise<unknown>;
|
|
108
|
+
export type GeoLayer = {
|
|
109
|
+
layerKey: string;
|
|
110
|
+
geoid: string | null;
|
|
111
|
+
name: string | null;
|
|
112
|
+
};
|
|
113
|
+
export type GeoLayerField = (GeoLayer & {
|
|
114
|
+
alternates?: GeoLayer[];
|
|
115
|
+
}) | null;
|
|
116
|
+
export type CensusGeographies = {
|
|
117
|
+
state: GeoLayerField;
|
|
118
|
+
county: GeoLayerField;
|
|
119
|
+
congressionalDistrict: GeoLayerField;
|
|
120
|
+
censusTract: GeoLayerField;
|
|
121
|
+
censusBlock: GeoLayerField;
|
|
122
|
+
place: GeoLayerField;
|
|
123
|
+
cbsaOrCsa: GeoLayerField;
|
|
124
|
+
stateLegislativeUpper: GeoLayerField;
|
|
125
|
+
stateLegislativeLower: GeoLayerField;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Map a `geographies` object to the STABLE canonical set by SUFFIX pattern, handling
|
|
129
|
+
* >1 key per suffix ([B1]) and the sentinel drift-guard ([M1]). Returns the mapped
|
|
130
|
+
* geographies + any multi-key `_meta` notes. `label` scopes the driftError;
|
|
131
|
+
* `vintageName` names the vintage in the multi-key note.
|
|
132
|
+
*/
|
|
133
|
+
export declare function mapGeographies(geographies: Record<string, unknown>, label: string, vintageName: string | null): {
|
|
134
|
+
geo: CensusGeographies;
|
|
135
|
+
notes: string[];
|
|
136
|
+
};
|
|
137
|
+
export type AddressMatch = {
|
|
138
|
+
matchedAddress: string | null;
|
|
139
|
+
coordinates: {
|
|
140
|
+
x: number | null;
|
|
141
|
+
y: number | null;
|
|
142
|
+
};
|
|
143
|
+
tigerLineId: string | null;
|
|
144
|
+
addressComponents: {
|
|
145
|
+
street: string | null;
|
|
146
|
+
city: string | null;
|
|
147
|
+
state: string | null;
|
|
148
|
+
zip: string | null;
|
|
149
|
+
};
|
|
150
|
+
geographies: CensusGeographies;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Resolve a one-line US address → its matched address(es) + the Census geographies
|
|
154
|
+
* that drive set-aside / place-of-performance analysis (congressional district,
|
|
155
|
+
* census tract, county, state, block). Handles the addressMatches ARRAY (the
|
|
156
|
+
* multi-match "which location" honesty surface — every match carries its own
|
|
157
|
+
* matchedAddress + geographies). Disclose-not-refuse: an unmatched address is NOT an
|
|
158
|
+
* error (matches:[], matchCount:0, complete:true + a note).
|
|
159
|
+
*/
|
|
160
|
+
export declare function geocodeAddress(args: {
|
|
161
|
+
address: string;
|
|
162
|
+
benchmark?: string;
|
|
163
|
+
vintage?: string;
|
|
164
|
+
}): Promise<MetaBundle>;
|
|
165
|
+
/**
|
|
166
|
+
* Resolve a longitude/latitude point → the Census geographies at that point (no
|
|
167
|
+
* address parsing). For a caller that already holds coordinates. `x`/`longitude`
|
|
168
|
+
* (required) and `y`/`latitude` (required) are aliases; the handler coalesces + re-
|
|
169
|
+
* guards them finite-in-range (belt-and-suspenders behind Zod — a non-finite value ⇒
|
|
170
|
+
* invalid_input PRE-fetch, 0 fetch, mirroring the LOUD 400 of a non-numeric coord but
|
|
171
|
+
* caught locally). A point outside any US Census geography ⇒ geographies:{} ⇒ all
|
|
172
|
+
* layers null, matchCount:0, complete:true + a note (NOT an error).
|
|
173
|
+
*/
|
|
174
|
+
export declare function geographiesByCoordinates(args: {
|
|
175
|
+
x?: number;
|
|
176
|
+
y?: number;
|
|
177
|
+
longitude?: number;
|
|
178
|
+
latitude?: number;
|
|
179
|
+
benchmark?: string;
|
|
180
|
+
vintage?: string;
|
|
181
|
+
}): Promise<MetaBundle>;
|
|
182
|
+
//# sourceMappingURL=census.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"census.d.ts","sourceRoot":"","sources":["../src/census.ts"],"names":[],"mappings":"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"}
|