@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.
Files changed (243) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +49 -16
  3. package/README.ko.md +49 -16
  4. package/README.md +255 -64
  5. package/dist/attachments.d.ts +63 -0
  6. package/dist/attachments.d.ts.map +1 -0
  7. package/dist/attachments.js +576 -0
  8. package/dist/attachments.js.map +1 -0
  9. package/dist/bls.d.ts +267 -0
  10. package/dist/bls.d.ts.map +1 -0
  11. package/dist/bls.js +1549 -0
  12. package/dist/bls.js.map +1 -0
  13. package/dist/cache.d.ts +2 -0
  14. package/dist/cache.d.ts.map +1 -1
  15. package/dist/cache.js +4 -0
  16. package/dist/cache.js.map +1 -1
  17. package/dist/census-economic.d.ts +93 -0
  18. package/dist/census-economic.d.ts.map +1 -0
  19. package/dist/census-economic.js +355 -0
  20. package/dist/census-economic.js.map +1 -0
  21. package/dist/census.d.ts +182 -0
  22. package/dist/census.d.ts.map +1 -0
  23. package/dist/census.js +576 -0
  24. package/dist/census.js.map +1 -0
  25. package/dist/ckan.d.ts +141 -0
  26. package/dist/ckan.d.ts.map +1 -0
  27. package/dist/ckan.js +393 -0
  28. package/dist/ckan.js.map +1 -0
  29. package/dist/clinicaltrials.d.ts +180 -0
  30. package/dist/clinicaltrials.d.ts.map +1 -0
  31. package/dist/clinicaltrials.js +730 -0
  32. package/dist/clinicaltrials.js.map +1 -0
  33. package/dist/cms.d.ts +140 -0
  34. package/dist/cms.d.ts.map +1 -0
  35. package/dist/cms.js +482 -0
  36. package/dist/cms.js.map +1 -0
  37. package/dist/coerce.d.ts +32 -0
  38. package/dist/coerce.d.ts.map +1 -0
  39. package/dist/coerce.js +50 -0
  40. package/dist/coerce.js.map +1 -0
  41. package/dist/datagov-catalog.d.ts +84 -0
  42. package/dist/datagov-catalog.d.ts.map +1 -0
  43. package/dist/datagov-catalog.js +233 -0
  44. package/dist/datagov-catalog.js.map +1 -0
  45. package/dist/datagov.d.ts +146 -0
  46. package/dist/datagov.d.ts.map +1 -0
  47. package/dist/datagov.js +689 -0
  48. package/dist/datagov.js.map +1 -0
  49. package/dist/datagovKey.d.ts +36 -0
  50. package/dist/datagovKey.d.ts.map +1 -0
  51. package/dist/datagovKey.js +60 -0
  52. package/dist/datagovKey.js.map +1 -0
  53. package/dist/datasource.d.ts +313 -0
  54. package/dist/datasource.d.ts.map +1 -0
  55. package/dist/datasource.js +551 -0
  56. package/dist/datasource.js.map +1 -0
  57. package/dist/disclosure.d.ts +55 -0
  58. package/dist/disclosure.d.ts.map +1 -0
  59. package/dist/disclosure.js +57 -0
  60. package/dist/disclosure.js.map +1 -0
  61. package/dist/ecfr.d.ts +4 -2
  62. package/dist/ecfr.d.ts.map +1 -1
  63. package/dist/ecfr.js +74 -1
  64. package/dist/ecfr.js.map +1 -1
  65. package/dist/echo.d.ts +143 -0
  66. package/dist/echo.d.ts.map +1 -0
  67. package/dist/echo.js +424 -0
  68. package/dist/echo.js.map +1 -0
  69. package/dist/edgar.d.ts +377 -0
  70. package/dist/edgar.d.ts.map +1 -0
  71. package/dist/edgar.js +2418 -0
  72. package/dist/edgar.js.map +1 -0
  73. package/dist/errors.d.ts +26 -0
  74. package/dist/errors.d.ts.map +1 -1
  75. package/dist/errors.js +69 -1
  76. package/dist/errors.js.map +1 -1
  77. package/dist/fac.d.ts +180 -0
  78. package/dist/fac.d.ts.map +1 -0
  79. package/dist/fac.js +416 -0
  80. package/dist/fac.js.map +1 -0
  81. package/dist/far.d.ts +170 -0
  82. package/dist/far.d.ts.map +1 -0
  83. package/dist/far.js +804 -0
  84. package/dist/far.js.map +1 -0
  85. package/dist/fdic.d.ts +599 -0
  86. package/dist/fdic.d.ts.map +1 -0
  87. package/dist/fdic.js +1624 -0
  88. package/dist/fdic.js.map +1 -0
  89. package/dist/federal-register.d.ts +139 -2
  90. package/dist/federal-register.d.ts.map +1 -1
  91. package/dist/federal-register.js +419 -3
  92. package/dist/federal-register.js.map +1 -1
  93. package/dist/fema.d.ts +181 -0
  94. package/dist/fema.d.ts.map +1 -0
  95. package/dist/fema.js +436 -0
  96. package/dist/fema.js.map +1 -0
  97. package/dist/fpds.d.ts +108 -0
  98. package/dist/fpds.d.ts.map +1 -0
  99. package/dist/fpds.js +519 -0
  100. package/dist/fpds.js.map +1 -0
  101. package/dist/fred.d.ts +108 -0
  102. package/dist/fred.d.ts.map +1 -0
  103. package/dist/fred.js +373 -0
  104. package/dist/fred.js.map +1 -0
  105. package/dist/gao.d.ts +64 -0
  106. package/dist/gao.d.ts.map +1 -0
  107. package/dist/gao.js +640 -0
  108. package/dist/gao.js.map +1 -0
  109. package/dist/govinfo.d.ts +111 -0
  110. package/dist/govinfo.d.ts.map +1 -0
  111. package/dist/govinfo.js +422 -0
  112. package/dist/govinfo.js.map +1 -0
  113. package/dist/grants.d.ts +27 -4
  114. package/dist/grants.d.ts.map +1 -1
  115. package/dist/grants.js +111 -6
  116. package/dist/grants.js.map +1 -1
  117. package/dist/gsa-csv.d.ts +249 -0
  118. package/dist/gsa-csv.d.ts.map +1 -0
  119. package/dist/gsa-csv.js +784 -0
  120. package/dist/gsa-csv.js.map +1 -0
  121. package/dist/integrity.d.ts +212 -0
  122. package/dist/integrity.d.ts.map +1 -0
  123. package/dist/integrity.js +707 -0
  124. package/dist/integrity.js.map +1 -0
  125. package/dist/keys.d.ts +83 -0
  126. package/dist/keys.d.ts.map +1 -0
  127. package/dist/keys.js +173 -0
  128. package/dist/keys.js.map +1 -0
  129. package/dist/meta.d.ts +165 -0
  130. package/dist/meta.d.ts.map +1 -0
  131. package/dist/meta.js +162 -0
  132. package/dist/meta.js.map +1 -0
  133. package/dist/nih.d.ts +117 -0
  134. package/dist/nih.d.ts.map +1 -0
  135. package/dist/nih.js +291 -0
  136. package/dist/nih.js.map +1 -0
  137. package/dist/nppes.d.ts +157 -0
  138. package/dist/nppes.d.ts.map +1 -0
  139. package/dist/nppes.js +648 -0
  140. package/dist/nppes.js.map +1 -0
  141. package/dist/nsf.d.ts +176 -0
  142. package/dist/nsf.d.ts.map +1 -0
  143. package/dist/nsf.js +554 -0
  144. package/dist/nsf.js.map +1 -0
  145. package/dist/nvd.d.ts +176 -0
  146. package/dist/nvd.d.ts.map +1 -0
  147. package/dist/nvd.js +912 -0
  148. package/dist/nvd.js.map +1 -0
  149. package/dist/ofac.d.ts +205 -0
  150. package/dist/ofac.d.ts.map +1 -0
  151. package/dist/ofac.js +919 -0
  152. package/dist/ofac.js.map +1 -0
  153. package/dist/pricing.d.ts +110 -0
  154. package/dist/pricing.d.ts.map +1 -0
  155. package/dist/pricing.js +843 -0
  156. package/dist/pricing.js.map +1 -0
  157. package/dist/sam-gov/client.d.ts +60 -2
  158. package/dist/sam-gov/client.d.ts.map +1 -1
  159. package/dist/sam-gov/client.js +320 -54
  160. package/dist/sam-gov/client.js.map +1 -1
  161. package/dist/sam-gov/index.d.ts +1 -1
  162. package/dist/sam-gov/index.d.ts.map +1 -1
  163. package/dist/sam-gov/index.js +1 -1
  164. package/dist/sam-gov/index.js.map +1 -1
  165. package/dist/sam-gov/types.d.ts +24 -0
  166. package/dist/sam-gov/types.d.ts.map +1 -1
  167. package/dist/sba.d.ts +72 -0
  168. package/dist/sba.d.ts.map +1 -0
  169. package/dist/sba.js +281 -0
  170. package/dist/sba.js.map +1 -0
  171. package/dist/server.d.ts +14 -2
  172. package/dist/server.d.ts.map +1 -1
  173. package/dist/server.js +4032 -297
  174. package/dist/server.js.map +1 -1
  175. package/dist/snapshot.d.ts +115 -0
  176. package/dist/snapshot.d.ts.map +1 -0
  177. package/dist/snapshot.js +175 -0
  178. package/dist/snapshot.js.map +1 -0
  179. package/dist/socrata.d.ts +157 -0
  180. package/dist/socrata.d.ts.map +1 -0
  181. package/dist/socrata.js +448 -0
  182. package/dist/socrata.js.map +1 -0
  183. package/dist/treasury.d.ts +143 -0
  184. package/dist/treasury.d.ts.map +1 -0
  185. package/dist/treasury.js +436 -0
  186. package/dist/treasury.js.map +1 -0
  187. package/dist/usaspending.d.ts +260 -65
  188. package/dist/usaspending.d.ts.map +1 -1
  189. package/dist/usaspending.js +1629 -201
  190. package/dist/usaspending.js.map +1 -1
  191. package/dist/usitc.d.ts +142 -0
  192. package/dist/usitc.d.ts.map +1 -0
  193. package/dist/usitc.js +339 -0
  194. package/dist/usitc.js.map +1 -0
  195. package/package.json +24 -2
  196. package/src/attachments.ts +652 -0
  197. package/src/bls.ts +1943 -0
  198. package/src/cache.ts +5 -0
  199. package/src/census-economic.ts +425 -0
  200. package/src/census.ts +735 -0
  201. package/src/ckan.ts +495 -0
  202. package/src/clinicaltrials.ts +923 -0
  203. package/src/cms.ts +634 -0
  204. package/src/coerce.ts +47 -0
  205. package/src/datagov-catalog.ts +296 -0
  206. package/src/datagov.ts +907 -0
  207. package/src/datagovKey.ts +68 -0
  208. package/src/datasource.ts +721 -0
  209. package/src/disclosure.ts +61 -0
  210. package/src/ecfr.ts +98 -1
  211. package/src/echo.ts +496 -0
  212. package/src/edgar.ts +3014 -0
  213. package/src/errors.ts +84 -1
  214. package/src/fac.ts +529 -0
  215. package/src/far.ts +1007 -0
  216. package/src/fdic.ts +2052 -0
  217. package/src/federal-register.ts +512 -3
  218. package/src/fema.ts +541 -0
  219. package/src/fpds.ts +620 -0
  220. package/src/fred.ts +464 -0
  221. package/src/gao.ts +744 -0
  222. package/src/govinfo.ts +497 -0
  223. package/src/grants.ts +139 -7
  224. package/src/gsa-csv.ts +992 -0
  225. package/src/integrity.ts +928 -0
  226. package/src/keys.ts +216 -0
  227. package/src/meta.ts +292 -0
  228. package/src/nih.ts +375 -0
  229. package/src/nppes.ts +834 -0
  230. package/src/nsf.ts +706 -0
  231. package/src/nvd.ts +1124 -0
  232. package/src/ofac.ts +1166 -0
  233. package/src/pricing.ts +1075 -0
  234. package/src/sam-gov/client.ts +345 -63
  235. package/src/sam-gov/index.ts +5 -1
  236. package/src/sam-gov/types.ts +22 -0
  237. package/src/sba.ts +357 -0
  238. package/src/server.ts +4717 -328
  239. package/src/snapshot.ts +223 -0
  240. package/src/socrata.ts +532 -0
  241. package/src/treasury.ts +575 -0
  242. package/src/usaspending.ts +1946 -214
  243. package/src/usitc.ts +420 -0
@@ -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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"}