@cliwant/mcp-sam-gov 1.4.0 → 1.6.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 (140) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +240 -231
  3. package/README.ko.md +240 -231
  4. package/README.md +725 -706
  5. package/dist/cbp-border.d.ts +51 -0
  6. package/dist/cbp-border.d.ts.map +1 -0
  7. package/dist/cbp-border.js +123 -0
  8. package/dist/cbp-border.js.map +1 -0
  9. package/dist/datagov-catalog.d.ts.map +1 -1
  10. package/dist/datagov-catalog.js +16 -2
  11. package/dist/datagov-catalog.js.map +1 -1
  12. package/dist/ecfr.d.ts +2 -2
  13. package/dist/ecfr.d.ts.map +1 -1
  14. package/dist/ecfr.js +24 -10
  15. package/dist/ecfr.js.map +1 -1
  16. package/dist/edgar.d.ts.map +1 -1
  17. package/dist/edgar.js +26 -6
  18. package/dist/edgar.js.map +1 -1
  19. package/dist/epa-envirofacts.d.ts.map +1 -1
  20. package/dist/epa-envirofacts.js +14 -1
  21. package/dist/epa-envirofacts.js.map +1 -1
  22. package/dist/errors.d.ts +10 -0
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +11 -0
  25. package/dist/errors.js.map +1 -1
  26. package/dist/far.d.ts.map +1 -1
  27. package/dist/far.js +3 -1
  28. package/dist/far.js.map +1 -1
  29. package/dist/federal-register.d.ts +2 -2
  30. package/dist/federal-register.d.ts.map +1 -1
  31. package/dist/federal-register.js +26 -10
  32. package/dist/federal-register.js.map +1 -1
  33. package/dist/feedback.d.ts +64 -0
  34. package/dist/feedback.d.ts.map +1 -0
  35. package/dist/feedback.js +131 -0
  36. package/dist/feedback.js.map +1 -0
  37. package/dist/fema.d.ts +36 -0
  38. package/dist/fema.d.ts.map +1 -1
  39. package/dist/fema.js +124 -0
  40. package/dist/fema.js.map +1 -1
  41. package/dist/gov-domains.d.ts +66 -0
  42. package/dist/gov-domains.d.ts.map +1 -0
  43. package/dist/gov-domains.js +211 -0
  44. package/dist/gov-domains.js.map +1 -0
  45. package/dist/nist-controls.d.ts +48 -0
  46. package/dist/nist-controls.d.ts.map +1 -0
  47. package/dist/nist-controls.js +174 -0
  48. package/dist/nist-controls.js.map +1 -0
  49. package/dist/nws-weather.d.ts +57 -0
  50. package/dist/nws-weather.d.ts.map +1 -0
  51. package/dist/nws-weather.js +131 -0
  52. package/dist/nws-weather.js.map +1 -0
  53. package/dist/openfda-drugsfda.d.ts +72 -0
  54. package/dist/openfda-drugsfda.d.ts.map +1 -0
  55. package/dist/openfda-drugsfda.js +230 -0
  56. package/dist/openfda-drugsfda.js.map +1 -0
  57. package/dist/openfda.d.ts.map +1 -1
  58. package/dist/openfda.js +31 -8
  59. package/dist/openfda.js.map +1 -1
  60. package/dist/server.d.ts.map +1 -1
  61. package/dist/server.js +374 -11
  62. package/dist/server.js.map +1 -1
  63. package/dist/treasury.d.ts +2 -0
  64. package/dist/treasury.d.ts.map +1 -1
  65. package/dist/treasury.js +7 -0
  66. package/dist/treasury.js.map +1 -1
  67. package/dist/usaspending.d.ts +32 -1
  68. package/dist/usaspending.d.ts.map +1 -1
  69. package/dist/usaspending.js +143 -16
  70. package/dist/usaspending.js.map +1 -1
  71. package/package.json +111 -111
  72. package/src/attachments.ts +652 -652
  73. package/src/bea.ts +372 -372
  74. package/src/bls.ts +1943 -1943
  75. package/src/cache.ts +73 -73
  76. package/src/cbp-border.ts +177 -0
  77. package/src/census-economic.ts +431 -431
  78. package/src/census.ts +735 -735
  79. package/src/ckan.ts +495 -495
  80. package/src/clinicaltrials.ts +923 -923
  81. package/src/cms-facility.ts +379 -379
  82. package/src/cms-hospital.ts +344 -344
  83. package/src/cms-supplier.ts +527 -527
  84. package/src/cms-utilization.ts +389 -389
  85. package/src/cms.ts +634 -634
  86. package/src/coerce.ts +47 -47
  87. package/src/courtlistener.ts +465 -465
  88. package/src/cpsc.ts +333 -333
  89. package/src/datagov-catalog.ts +312 -296
  90. package/src/datagov.ts +907 -907
  91. package/src/datagovKey.ts +68 -68
  92. package/src/datasource.ts +721 -721
  93. package/src/disclosure.ts +61 -61
  94. package/src/dol.ts +515 -515
  95. package/src/ecfr.ts +248 -231
  96. package/src/echo.ts +496 -496
  97. package/src/edgar.ts +3046 -3014
  98. package/src/epa-envirofacts.ts +358 -342
  99. package/src/errors.ts +324 -303
  100. package/src/fac.ts +529 -529
  101. package/src/far.ts +1009 -1007
  102. package/src/fdic.ts +2052 -2052
  103. package/src/federal-register.ts +725 -706
  104. package/src/feedback.ts +160 -0
  105. package/src/fema.ts +680 -541
  106. package/src/fpds.ts +620 -620
  107. package/src/fred.ts +464 -464
  108. package/src/gao.ts +744 -744
  109. package/src/gov-domains.ts +237 -0
  110. package/src/govinfo.ts +497 -497
  111. package/src/grants.ts +290 -290
  112. package/src/gsa-csv.ts +992 -992
  113. package/src/gsa-perdiem.ts +361 -361
  114. package/src/integrity.ts +928 -928
  115. package/src/keys.ts +268 -268
  116. package/src/lda.ts +385 -385
  117. package/src/meta.ts +292 -292
  118. package/src/nhtsa.ts +352 -352
  119. package/src/nih.ts +375 -375
  120. package/src/nist-controls.ts +219 -0
  121. package/src/nonprofit.ts +460 -460
  122. package/src/nppes.ts +834 -834
  123. package/src/nsf.ts +706 -706
  124. package/src/nvd.ts +1124 -1124
  125. package/src/nws-weather.ts +167 -0
  126. package/src/ofac.ts +1166 -1166
  127. package/src/openfda-device.ts +356 -356
  128. package/src/openfda-drugsfda.ts +313 -0
  129. package/src/openfda.ts +518 -495
  130. package/src/pricing.ts +1075 -1075
  131. package/src/sam-gov/client.ts +774 -774
  132. package/src/sam-gov/index.ts +32 -32
  133. package/src/sam-gov/types.ts +152 -152
  134. package/src/sba.ts +357 -357
  135. package/src/server.ts +6688 -6297
  136. package/src/snapshot.ts +223 -223
  137. package/src/socrata.ts +532 -532
  138. package/src/treasury.ts +582 -575
  139. package/src/usaspending.ts +2852 -2680
  140. package/src/usitc.ts +420 -420
package/src/coerce.ts CHANGED
@@ -1,47 +1,47 @@
1
- /**
2
- * coerce.ts — the honesty-critical value coercions shared across the keyless
3
- * DataSources (ADR-0005 v2 FIX-C: map-layer primitives, split out of the
4
- * fetch-envelope port so each module stays single-concern).
5
- *
6
- * `num`/`str` return **null (NEVER 0 / never a fabricated string)** for absent
7
- * values — a missing amount is an honest "unknown", never a data-absence-as-zero
8
- * masquerade (the project's forbidden failure class). This is the single most
9
- * duplicated honesty primitive across the sources; hoisting ONE audited copy
10
- * removes the 3-way drift risk (a `num` regression now fails Treasury AND Socrata
11
- * suites at once instead of silently in one).
12
- *
13
- * Byte-identical to Treasury's + Socrata's prior LOCAL copies:
14
- * - `num` is identical in both (and, per ADR-0005 v2, output-equivalent to
15
- * EDGAR's — "NULL" etc. reach null via Number(...)=NaN either way).
16
- * - `str` adopts the Treasury/Socrata convention (null for ""/"null"). It is
17
- * output-identical to BOTH over their real input domains. EDGAR's `str` does
18
- * NOT null the literal "null" (ADR-0005 v2 FIX-A), so EDGAR keeps its own
19
- * local `str` and is NOT migrated here (EDGAR is deferred anyway per FIX-B).
20
- */
21
-
22
- /**
23
- * Coerce an inconsistently-typed value field to `number | null`.
24
- *
25
- * Returns **null (NEVER 0)** for absent values: `null`/`undefined`, the literal
26
- * string `"null"`, `""`/whitespace (CRITICAL — `Number("")` is 0, so this MUST
27
- * be caught explicitly), and the `"(-)"`/`"-"` placeholders. Numeric strings
28
- * parse; numbers pass through (a non-finite number → null).
29
- */
30
- export function num(x: unknown): number | null {
31
- if (x === null || x === undefined) return null;
32
- if (typeof x === "number") return Number.isFinite(x) ? x : null;
33
- if (typeof x === "string") {
34
- const s = x.trim();
35
- if (s === "" || s === "null" || s === "(-)" || s === "-") return null;
36
- const n = Number(s);
37
- return Number.isFinite(n) ? n : null;
38
- }
39
- return null;
40
- }
41
-
42
- /** null for absent (null/undefined/""/whitespace/"null"), else the trimmed string. */
43
- export function str(x: unknown): string | null {
44
- if (x === null || x === undefined) return null;
45
- const s = String(x).trim();
46
- return s === "" || s === "null" ? null : s;
47
- }
1
+ /**
2
+ * coerce.ts — the honesty-critical value coercions shared across the keyless
3
+ * DataSources (ADR-0005 v2 FIX-C: map-layer primitives, split out of the
4
+ * fetch-envelope port so each module stays single-concern).
5
+ *
6
+ * `num`/`str` return **null (NEVER 0 / never a fabricated string)** for absent
7
+ * values — a missing amount is an honest "unknown", never a data-absence-as-zero
8
+ * masquerade (the project's forbidden failure class). This is the single most
9
+ * duplicated honesty primitive across the sources; hoisting ONE audited copy
10
+ * removes the 3-way drift risk (a `num` regression now fails Treasury AND Socrata
11
+ * suites at once instead of silently in one).
12
+ *
13
+ * Byte-identical to Treasury's + Socrata's prior LOCAL copies:
14
+ * - `num` is identical in both (and, per ADR-0005 v2, output-equivalent to
15
+ * EDGAR's — "NULL" etc. reach null via Number(...)=NaN either way).
16
+ * - `str` adopts the Treasury/Socrata convention (null for ""/"null"). It is
17
+ * output-identical to BOTH over their real input domains. EDGAR's `str` does
18
+ * NOT null the literal "null" (ADR-0005 v2 FIX-A), so EDGAR keeps its own
19
+ * local `str` and is NOT migrated here (EDGAR is deferred anyway per FIX-B).
20
+ */
21
+
22
+ /**
23
+ * Coerce an inconsistently-typed value field to `number | null`.
24
+ *
25
+ * Returns **null (NEVER 0)** for absent values: `null`/`undefined`, the literal
26
+ * string `"null"`, `""`/whitespace (CRITICAL — `Number("")` is 0, so this MUST
27
+ * be caught explicitly), and the `"(-)"`/`"-"` placeholders. Numeric strings
28
+ * parse; numbers pass through (a non-finite number → null).
29
+ */
30
+ export function num(x: unknown): number | null {
31
+ if (x === null || x === undefined) return null;
32
+ if (typeof x === "number") return Number.isFinite(x) ? x : null;
33
+ if (typeof x === "string") {
34
+ const s = x.trim();
35
+ if (s === "" || s === "null" || s === "(-)" || s === "-") return null;
36
+ const n = Number(s);
37
+ return Number.isFinite(n) ? n : null;
38
+ }
39
+ return null;
40
+ }
41
+
42
+ /** null for absent (null/undefined/""/whitespace/"null"), else the trimmed string. */
43
+ export function str(x: unknown): string | null {
44
+ if (x === null || x === undefined) return null;
45
+ const s = String(x).trim();
46
+ return s === "" || s === "null" ? null : s;
47
+ }