@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 @@
1
+ {"version":3,"file":"datagov.js","sourceRoot":"","sources":["../src/datagov.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAsC,MAAM,WAAW,CAAC;AACzE,mFAAmF;AACnF,iFAAiF;AACjF,mFAAmF;AACnF,mFAAmF;AACnF,uFAAuF;AACvF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvE,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,qEAAqE;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEhD,sEAAsE;AACtE,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,mEAAmE;AACnE,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,eAAe,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,SAAS;AAEnE,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;CACT,CAAC;AAGX,4EAA4E;AAC5E,yBAAyB;AACzB,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,eAAe;IACf,QAAQ;IACR,+BAA+B;IAC/B,OAAO;CACC,CAAC;AAGX,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,YAAY,EAAE,eAAe,CAAU,CAAC;AAGjF,wEAAwE;AACxE,mFAAmF;AACnF,4EAA4E;AAC5E,4EAA4E;AAC5E,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,mBAAmB;IACnB,kBAAkB;IAClB,OAAO;IACP,QAAQ;CACA,CAAC;AAGX,mFAAmF;AACnF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI;IACJ,GAAG;IACH,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,MAAM;CACE,CAAC;AAGX,qEAAqE;AACrE,oFAAoF;AACpF,oFAAoF;AACpF,mFAAmF;AACnF,iFAAiF;AAEjF,8EAA8E;AAC9E;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,MAAuB;IAEvB,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,WAAW,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,gBAAgB,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,qCAAqC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,mCAAmC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gDAAgD;YACtM,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IACD,+EAA+E;IAC/E,mFAAmF;IACnF,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,qEAAqE;AAErE,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CACtC,GAAG,gBAAgB,6BAA6B,IAAI,GAAG,CAAC;AAgB1D,2EAA2E;AAC3E,SAAS,cAAc,CAAC,IAAa;IACnC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAA2D,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACjC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACrC,cAAc,EACZ,OAAO,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QACjE,mBAAmB,EACjB,OAAO,CAAC,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;QAC3E,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,aAAa,CAAC,IAAa;IAClC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAA2D,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACjC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,iBAAiB,CAC9B,QAA0C,EAC1C,IAA8B,EAC9B,IAA2B;IAE3B,MAAM,KAAK,GAAG,eAAe,QAAQ,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;IAExC,+EAA+E;IAC/E,gFAAgF;IAChF,2EAA2E;IAC3E,+EAA+E;IAC/E,sBAAsB;IACtB,IAAI,UAAU,GAAG,YAAY,IAAI,UAAU,GAAG,QAAQ,GAAG,eAAe,EAAE,CAAC;QACzE,MAAM,IAAI,gBAAgB,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,iCAAiC,UAAU,mBAAmB,QAAQ,4BAA4B,eAAe,aAAa,YAAY,8HAA8H,eAAe,WAAW;YAC3S,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,6EAA6E;IAC7E,gFAAgF;IAChF,+EAA+E;IAC/E,8EAA8E;IAC9E,4DAA4D;IAC5D,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAClE,8EAA8E;QAC9E,4EAA4E;QAC5E,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5E,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACzE,6EAA6E;QAC7E,2DAA2D;QAC3D,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3C,yEAAyE;IACzE,yEAAyE;IACzE,qFAAqF;IACrF,kFAAkF;IAClF,4EAA4E;IAC5E,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,gBAAgB;YAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,WAAW;YAC1B,MAAM,UAAU,CACd,KAAK,EACL,sEAAsE,CACvE,CAAC;QACJ,MAAM,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAGpB,CAAC;IAEF,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,CACd,KAAK,EACL,6BAA6B,QAAQ,kCAAkC,CACxE,CAAC;IACJ,CAAC;IACD,qEAAqE;IACrE,8EAA8E;IAC9E,yBAAyB;IACzB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,UAAU,CACd,KAAK,EACL,6BAA6B,QAAQ,yCAAyC,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAI,CAAC,CAAC,IAAkB,CAAC,GAAG,CACpC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CACtD,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAE3C,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,SAAS,GACb,cAAc,KAAK,IAAI,IAAI,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC;IACpE,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,CAAC;IACtC,MAAM,iBAAiB,GACrB,cAAc,IAAI,YAAY;QAC9B,cAAc,GAAG,QAAQ,IAAI,eAAe,CAAC;IAC/C,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,MAAM,UAAU,GAAG,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,QAAQ,oMAAoM,CAChQ,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,qBAAqB,eAAe,aAAa,YAAY,2CAA2C,cAAc,aAAa,cAAc,GAAG,eAAe,yJAAyJ,CAC7T,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5D,OAAO,QAAQ,CACb,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EACf;QACE,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC;QACtC,WAAW,EAAE,KAAK;QAClB,QAAQ;QACR,cAAc;QACd,cAAc;QACd,cAAc;QACd,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;QAC5D,KAAK;KAC0B,CAClC,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA2B;IAE3B,OAAO,iBAAiB,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA2B;IAE3B,OAAO,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAyBD;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,IAAa,EACb,cAAuB;IAEvB,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAGrB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAC3D,MAAM,GAAG,GAA4B;QACnC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;KACf,CAAC;IACF,IAAI,cAAc;QAAE,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,IAAa;IACpC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAGrB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxC,CAAC,CAAE,CAAC,CAAC,QAAsB;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QAC3C,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,+DAA+D;QAC/D,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACf,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,QAAQ;QACR,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACvB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QACnC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;KACf,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAkC;IAElC,MAAM,KAAK,GAAG,yBAAyB,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;IACxE,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC;IAE9B,kFAAkF;IAClF,8EAA8E;IAC9E,gFAAgF;IAChF,uEAAuE;IACvE,IAAI,UAAU,GAAG,YAAY,IAAI,UAAU,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QAC1E,MAAM,IAAI,gBAAgB,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,iCAAiC,UAAU,mBAAmB,SAAS,4BAA4B,eAAe,aAAa,YAAY,sIAAsI,eAAe,WAAW;YACpT,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5C,iFAAiF;IACjF,6EAA6E;IAC7E,+EAA+E;IAC/E,gFAAgF;IAChF,gBAAgB;IAChB,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,gBAAgB;YAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,WAAW;YAC1B,MAAM,UAAU,CACd,KAAK,EACL,sEAAsE,CACvE,CAAC;QACJ,MAAM,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAGpB,CAAC;IAEF,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,CACd,KAAK,EACL,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,UAAU,CACd,KAAK,EACL,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAI,CAAC,CAAC,IAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;IACF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,kFAAkF;IAClF,yCAAyC;IACzC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5C,MAAM,SAAS,GACb,cAAc,KAAK,IAAI,IAAI,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;IAChE,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,CAAC;IACtC,MAAM,iBAAiB,GACrB,cAAc,IAAI,YAAY;QAC9B,cAAc,GAAG,SAAS,IAAI,eAAe,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,+EAA+E;IAC/E,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,UAAU,GACd,SAAS,IAAI,iBAAiB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,qBAAqB,eAAe,aAAa,YAAY,2CAA2C,cAAc,aAAa,cAAc,GAAG,eAAe,iKAAiK,CACrU,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,wGAAwG,KAAK,WAAW,OAAO,CAAC,MAAM,oHAAoH,CAC3P,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CACb,EAAE,OAAO,EAAE,IAAI,EAAE,EACjB;QACE,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC;QACtC,WAAW,EAAE,KAAK,EAAE,uBAAuB;QAC3C,QAAQ;QACR,cAAc;QACd,cAAc;QACd,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,8EAA8E;QAC9E,2EAA2E;QAC3E,kBAAkB;QAClB,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;QAClD,KAAK;KAC0B,CAClC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAA8B;IAE9B,MAAM,KAAK,GAAG,8BAA8B,CAAC;IAC7C,MAAM,IAAI,GAAG,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,iBAAiB;IACjB,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,gBAAgB;YAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,WAAW;YAC1B,MAAM,UAAU,CACd,KAAK,EACL,sEAAsE,CACvE,CAAC;QACJ,MAAM,CAAC,CAAC;IACV,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAuB,CAAC;IAE7C,gFAAgF;IAChF,yEAAyE;IACzE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,UAAU,CACd,KAAK,EACL,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CACR,iNAAiN,CAClN,CAAC;IAEF,OAAO,QAAQ,CACb,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EACnC;QACE,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC;QACtC,WAAW,EAAE,KAAK,EAAE,uBAAuB;QAC3C,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,IAAI,EAAE,+DAA+D;QACrF,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,KAAK;KAC0B,CAClC,CAAC;AACJ,CAAC;AAED,qEAAqE;AAErE,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CACvC,GAAG,aAAa,0BAA0B,IAAI,GAAG,CAAC;AAEpD,4EAA4E;AAC5E,SAAS,OAAO,CAAC,IAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,CAAmC,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;QACtB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;QACpB,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;QACpC,YAAY,EAAE,MAAM;YAClB,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAChE,CAAC,CAAC,IAAI;QACR,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC;QAC9B,yEAAyE;QACzE,kEAAkE;QAClE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;KACjB,CAAC;AACJ,CAAC;AAYD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA6B;IAE7B,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAEhC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,gBAAgB,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,OAAO,EACL,6IAA6I;YAC/I,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ;QAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAGpB,CAAC;IAEF,yEAAyE;IACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,CACd,KAAK,EACL,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,oFAAoF;IACpF,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,UAAU,CACd,KAAK,EACL,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAI,CAAC,CAAC,KAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;IACxD,MAAM,OAAO,GACX,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,yMAAyM,CAC1M,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CACb,EAAE,KAAK,EAAE,EACT;QACE,MAAM,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC;QACvC,WAAW,EAAE,KAAK;QAClB,QAAQ;QACR,cAAc;QACd,cAAc;QACd,cAAc;QACd,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;QAClD,KAAK;KAC0B,CAClC,CAAC;AACJ,CAAC;AAQD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAyB;IACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE7B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAuB,CAAC;IAE7C,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,UAAU,CACd,KAAK,EACL,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnB,OAAO,QAAQ,CACb,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAChB;QACE,MAAM,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC;QACvC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,KAAK;KAC0B,CAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * datagovKey.ts — the SHARED api.data.gov KEY seam (ADR-0010 §2).
3
+ *
4
+ * These api.data.gov key helpers were originally module-private in `datagov.ts`
5
+ * (ADR-0007, the FIRST keyed source). GovInfo (ADR-0010) is the SECOND consumer
6
+ * of the identical DATA_GOV_API_KEY / DEMO_KEY / X-Api-Key discipline, which is
7
+ * the trigger to promote the helper to a single audited home — the exact
8
+ * `coerce.ts` precedent applied to a SECRET: a leak-discipline regression must now
9
+ * fail BOTH consumers' key-never-leaks tests at once, not hide in one of two
10
+ * drifting copies. `datagov.ts` AND `govinfo.ts` each import from here; NEITHER
11
+ * imports the other.
12
+ *
13
+ * This extraction is BEHAVIOR BYTE-IDENTICAL to the prior inlined `datagov.ts`
14
+ * code — these are pure functions that read `process.env` at CALL time, so moving
15
+ * them changes nothing (datagov's key handling, `_meta`, tools/list snapshot, and
16
+ * its key-never-leaks K-test all stay green; the K-test spies on the GLOBAL
17
+ * `fetch`, which is unaffected by this move).
18
+ *
19
+ * ★ THE KEY-SECURITY DISCIPLINE (ADR-0007 §2 — the load-bearing rules):
20
+ * 1. The key travels in `headers:{ "X-Api-Key": <key> }` ONLY — NEVER in the
21
+ * URL/query (no `?api_key=`).
22
+ * 2. `_meta.source`/`notes` are host + key-MODE only ("…(DEMO_KEY)" /
23
+ * "…(DATA_GOV_API_KEY)") — never the URL, never the key value, never the
24
+ * `X-Api-Key` header.
25
+ * 3. Never commit the key — read from env only; the DEMO_KEY fallback is a
26
+ * literal public constant (safe in source), the real key never is.
27
+ */
28
+ /** The X-Api-Key header — the ONLY carrier of the secret. Never logged/echoed. */
29
+ export declare function keyHeader(): Record<string, string>;
30
+ /** true when no real DATA_GOV_API_KEY is configured (drives the disclosure note). */
31
+ export declare function usingDemoKey(): boolean;
32
+ /** Key-MODE label for `_meta.source` — the MODE, never the value. */
33
+ export declare function keyModeLabel(): string;
34
+ /** Push the key-mode disclosure note (DEMO_KEY ceiling OR configured-key). */
35
+ export declare function pushKeyNote(notes: string[]): void;
36
+ //# sourceMappingURL=datagovKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datagovKey.d.ts","sourceRoot":"","sources":["../src/datagovKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAeH,kFAAkF;AAClF,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAElD;AAED,qFAAqF;AACrF,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,qEAAqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AASD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjD"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * datagovKey.ts — the SHARED api.data.gov KEY seam (ADR-0010 §2).
3
+ *
4
+ * These api.data.gov key helpers were originally module-private in `datagov.ts`
5
+ * (ADR-0007, the FIRST keyed source). GovInfo (ADR-0010) is the SECOND consumer
6
+ * of the identical DATA_GOV_API_KEY / DEMO_KEY / X-Api-Key discipline, which is
7
+ * the trigger to promote the helper to a single audited home — the exact
8
+ * `coerce.ts` precedent applied to a SECRET: a leak-discipline regression must now
9
+ * fail BOTH consumers' key-never-leaks tests at once, not hide in one of two
10
+ * drifting copies. `datagov.ts` AND `govinfo.ts` each import from here; NEITHER
11
+ * imports the other.
12
+ *
13
+ * This extraction is BEHAVIOR BYTE-IDENTICAL to the prior inlined `datagov.ts`
14
+ * code — these are pure functions that read `process.env` at CALL time, so moving
15
+ * them changes nothing (datagov's key handling, `_meta`, tools/list snapshot, and
16
+ * its key-never-leaks K-test all stay green; the K-test spies on the GLOBAL
17
+ * `fetch`, which is unaffected by this move).
18
+ *
19
+ * ★ THE KEY-SECURITY DISCIPLINE (ADR-0007 §2 — the load-bearing rules):
20
+ * 1. The key travels in `headers:{ "X-Api-Key": <key> }` ONLY — NEVER in the
21
+ * URL/query (no `?api_key=`).
22
+ * 2. `_meta.source`/`notes` are host + key-MODE only ("…(DEMO_KEY)" /
23
+ * "…(DATA_GOV_API_KEY)") — never the URL, never the key value, never the
24
+ * `X-Api-Key` header.
25
+ * 3. Never commit the key — read from env only; the DEMO_KEY fallback is a
26
+ * literal public constant (safe in source), the real key never is.
27
+ */
28
+ // ─── Key resolver (the load-bearing secret discipline) ────────────
29
+ // The key is read from env; if unset/empty it falls back to the public literal
30
+ // "DEMO_KEY". `keyHeader()` is the ONLY place the value is used — it is placed in
31
+ // the `X-Api-Key` request header and NOWHERE else (never the URL, never the label,
32
+ // never `_meta`, never a log).
33
+ const DEMO_KEY = "DEMO_KEY";
34
+ function resolvedKey() {
35
+ const raw = process.env.DATA_GOV_API_KEY;
36
+ const trimmed = typeof raw === "string" ? raw.trim() : "";
37
+ return trimmed ? trimmed : DEMO_KEY;
38
+ }
39
+ /** The X-Api-Key header — the ONLY carrier of the secret. Never logged/echoed. */
40
+ export function keyHeader() {
41
+ return { "X-Api-Key": resolvedKey() };
42
+ }
43
+ /** true when no real DATA_GOV_API_KEY is configured (drives the disclosure note). */
44
+ export function usingDemoKey() {
45
+ const raw = process.env.DATA_GOV_API_KEY;
46
+ return !(typeof raw === "string" && raw.trim());
47
+ }
48
+ /** Key-MODE label for `_meta.source` — the MODE, never the value. */
49
+ export function keyModeLabel() {
50
+ return usingDemoKey() ? "DEMO_KEY" : "DATA_GOV_API_KEY";
51
+ }
52
+ // The DEMO_KEY disclosure (m4-note: NO hardcoded verification date — "approximately
53
+ // 10 requests/hour", not a pinned date).
54
+ const DEMO_KEY_NOTE = "Using the shared api.data.gov DEMO_KEY — approximately 10 requests/hour, shared across all DEMO_KEY callers (limits reached quickly). Set DATA_GOV_API_KEY for production; free key at https://api.data.gov/signup/.";
55
+ const CONFIGURED_KEY_NOTE = "Using a configured DATA_GOV_API_KEY (value never logged).";
56
+ /** Push the key-mode disclosure note (DEMO_KEY ceiling OR configured-key). */
57
+ export function pushKeyNote(notes) {
58
+ notes.push(usingDemoKey() ? DEMO_KEY_NOTE : CONFIGURED_KEY_NOTE);
59
+ }
60
+ //# sourceMappingURL=datagovKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datagovKey.js","sourceRoot":"","sources":["../src/datagovKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,qEAAqE;AACrE,+EAA+E;AAC/E,kFAAkF;AAClF,mFAAmF;AACnF,+BAA+B;AAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC;AACxC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,OAAO,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC1B,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC1D,CAAC;AAED,oFAAoF;AACpF,yCAAyC;AACzC,MAAM,aAAa,GACjB,sNAAsN,CAAC;AACzN,MAAM,mBAAmB,GACvB,2DAA2D,CAAC;AAE9D,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,313 @@
1
+ /**
2
+ * datasource.ts — the shared fetch envelope for the keyless DataSources
3
+ * (ADR-0005). This is the ONE audited `assemble init → fetchWithRetry → r.json()`
4
+ * skeleton the keyless adapters share; the per-source quirks (timeout / headers /
5
+ * redirect) are OPTIONS, not three bespoke fetch fns. `RequestInit` already
6
+ * carries `headers` and `redirect`, so getJson forwards them without adding logic
7
+ * — folding the fetch fns into one is lossless.
8
+ *
9
+ * R2 SCOPE (ADR-0005 v2 FIX-B): getJson ships ONLY { label, headers?, redirect?,
10
+ * timeoutMs? }. `redirect:"error"` STAYS: a zero-logic RequestInit passthrough,
11
+ * absent for Treasury, and Socrata + the queued CKAN connector need the identical
12
+ * SSRF hardening.
13
+ *
14
+ * THE MIN-INTERVAL GATE (ADR-0011 orchestrator, v6 cycle 15 — the R2 deferred
15
+ * slice, now landed): `throughGate(key, minIntervalMs, fn)` is a STANDALONE
16
+ * exported primitive (below), the shared home for EDGAR's former module-singleton
17
+ * self-throttle. It is deliberately NOT wired into getJson and `gateKey`/
18
+ * `minIntervalMs` are deliberately NOT added to GetJsonOptions — there is no
19
+ * getJson consumer that throttles, so that would be dead option-surface (FIX-B
20
+ * "no dead surface"). If a future source makes a throttled getJson call, wiring
21
+ * the gate into getJson can be revisited then.
22
+ *
23
+ * `label` is the fetchWithRetry taxonomy key AND surfaces verbatim in
24
+ * ToolError.upstreamEndpoint to the MCP caller — it MUST be HOST-ONLY and never
25
+ * contain a token (Socrata/EDGAR m7).
26
+ *
27
+ * The shape-drift CHECK stays at each call site (bespoke per-source fields); only
28
+ * the THROW is standardized via `driftError`. This is deliberately NOT a `guard`
29
+ * hook baked into getJson: a hook would collide with Socrata's count(*) companion
30
+ * (which must degrade to total:null and NEVER throw schema_drift) and its
31
+ * discoverDatasets memoize boundary — leaving the check at the call site keeps
32
+ * that split honest (ADR-0005 §1c / Q4).
33
+ */
34
+ import { ToolErrorCarrier } from "./errors.js";
35
+ export type GetJsonOptions = {
36
+ /** fetchWithRetry taxonomy + error surface. HOST-ONLY, never a token. */
37
+ label: string;
38
+ /** Set on init ONLY when defined — Treasury passes nothing → no `headers` key. */
39
+ headers?: Record<string, string>;
40
+ /** SSRF hardening passthrough; omitted from init when absent (Treasury/EDGAR). */
41
+ redirect?: "error";
42
+ /** Request timeout; default 15_000 (all sources today). */
43
+ timeoutMs?: number;
44
+ /**
45
+ * HTTP method — the SINGLE literal `"POST"` (ADR-0014, the first non-GET
46
+ * consumer: NIH RePORTER is a POST-with-JSON-body API). Set on init ONLY when
47
+ * defined, so every existing GET caller (which omits it) keeps a byte-identical
48
+ * init with NO `method` key. Typed as the literal (not `string`) so a stray
49
+ * `method:"GET"` cannot silently alter a consumer. A retry of a read-only POST
50
+ * search with a re-readable string body is safe.
51
+ */
52
+ method?: "POST";
53
+ /**
54
+ * Request body (a pre-serialized string, e.g. `JSON.stringify(payload)`).
55
+ * A `RequestInit` field, exactly like `headers`/`redirect` — getJson forwards
56
+ * it verbatim, adding no logic. Set on init ONLY when defined (the `!== undefined`
57
+ * idiom), so a GET caller's init stays byte-identical.
58
+ */
59
+ body?: string;
60
+ };
61
+ /**
62
+ * GET + parse one JSON resource through the shared envelope. Assembles `init`
63
+ * (a fresh `AbortSignal.timeout` always; `headers`/`redirect` set ONLY when the
64
+ * option is provided — byte-identical to each source's prior hand-rolled init),
65
+ * calls `fetchWithRetry` (retry/backoff + the 429/5xx/404/400 taxonomy), then
66
+ * returns the parsed body. The caller validates the shape and throws
67
+ * `driftError` on drift.
68
+ */
69
+ export declare function getJson<T = unknown>(url: string, opts: GetJsonOptions): Promise<T>;
70
+ /**
71
+ * getJsonWithHeaders — the header-exposing sibling of `getJson` (ADR-0038 M1).
72
+ *
73
+ * WHY a SEPARATE primitive (and NOT a mutation of getJson): a PostgREST source
74
+ * (FAC / any Range-paginating REST API) carries its EXACT total in the
75
+ * `Content-Range` RESPONSE HEADER, but `getJson` returns ONLY `await r.json()`
76
+ * (the parsed body) and DISCARDS the `Response`/headers — so the header is
77
+ * unreachable through it. Mutating getJson's return shape would break every one
78
+ * of its ~9 callers (NOT byte-identical); this additive variant leaves getJson
79
+ * untouched. It runs the IDENTICAL init assembly + `fetchWithRetry(url, init,
80
+ * opts.label)` envelope as getJson (same headers / `redirect` / timeout / method
81
+ * / body / retry-taxonomy), and returns the parsed body PLUS ONLY the
82
+ * `content-range` header string — it NEVER surfaces the raw `Headers` object, so
83
+ * no incidental response header (Set-Cookie, a rate-limit token, etc.) can reach
84
+ * a consumer's `_meta`/output. A 200 non-JSON body makes `r.json()` throw a
85
+ * `SyntaxError`, exactly as with getJson — the caller reclassifies it (the
86
+ * fdic.ts / ADR-0038 S1 pattern), keeping the shared envelope free of source
87
+ * quirks.
88
+ */
89
+ export declare function getJsonWithHeaders<T = unknown>(url: string, opts: GetJsonOptions): Promise<{
90
+ body: T;
91
+ contentRange: string | null;
92
+ }>;
93
+ /**
94
+ * getText — the shared fetch → `r.text()` → error-classify skeleton for the
95
+ * keyless XML/RSS/ATOM sources (far/gao/fpds; ADR-0013). Sibling of `getJson`;
96
+ * returns the RAW body text (each source runs its own bespoke string/regex
97
+ * parser). The three sources' only structural variation — headers, redirect,
98
+ * timeout, retry strategy, and the redirect-classification message — are OPTIONS,
99
+ * reconciled so each source's fetch semantics are BYTE-IDENTICAL to its former
100
+ * hand-rolled fetcher.
101
+ *
102
+ * Two strategies, selected by `retry`:
103
+ * - retry !== false (DEFAULT — far/gao): `fetchWithRetry` (3-attempt retry +
104
+ * the 429/5xx/404/4xx/network taxonomy), then `r.text()`.
105
+ * - retry === false (fpds, m-redirect): a SINGLE direct `fetch`. A redirect
106
+ * `"error"` TypeError is classified INLINE as a NON-retryable `schema_drift`
107
+ * (via `driftError` + `redirectMessage`) — NOT the retryable
108
+ * `upstream_unavailable` that `fetchWithRetry`'s generic network-catch would
109
+ * emit, exactly what m-redirect forbids (the live search.do→sam.gov 301 must
110
+ * fail closed, single attempt). This is why fpds does its own `fetch` rather
111
+ * than routing through the shared, retry-all-transients `fetchWithRetry`.
112
+ *
113
+ * Unlike `getJson`, `label` is an OPAQUE passthrough — NOT host-only normalized
114
+ * (far's label is path-bearing `ecfr:versioner/…`; forcing host-only would break
115
+ * it). All three sources are keyless, so no token can appear in a label.
116
+ */
117
+ export type GetTextOptions = {
118
+ /** fetchWithRetry taxonomy key + `ToolError.upstreamEndpoint`. Opaque
119
+ * passthrough (NOT host-only normalized — far's is path-bearing). */
120
+ label: string;
121
+ /** Set on init ONLY when defined (far Accept-only / gao+fpds UA+Accept). */
122
+ headers?: Record<string, string>;
123
+ /** SSRF hardening passthrough; omitted from init when absent (far/gao). */
124
+ redirect?: "error";
125
+ /** Request timeout; default 15_000 (all three sources today). */
126
+ timeoutMs?: number;
127
+ /** DEFAULT true → the fetchWithRetry path (far/gao). false → the single-fetch
128
+ * path (fpds; the redirect TypeError must be caught on the sole attempt). */
129
+ retry?: boolean;
130
+ /** `driftError` message when a redirect TypeError is caught on the single-fetch
131
+ * path — preserves fpds's exact honesty disclosure. Only consulted on the
132
+ * retry:false + redirect fault. */
133
+ redirectMessage?: string;
134
+ };
135
+ /**
136
+ * GET one text resource through the shared envelope. Assembles `init`
137
+ * (byte-identical to `getJson`'s rule: a fresh `AbortSignal.timeout` always;
138
+ * `headers`/`redirect` set ONLY when the option is provided), then either
139
+ * retries via `fetchWithRetry` (default) or does a single classified `fetch`
140
+ * (retry:false), and returns the raw `r.text()` body.
141
+ */
142
+ export declare function getText(url: string, opts: GetTextOptions): Promise<string>;
143
+ /**
144
+ * Is a thrown error the redirect:"error" TypeError (undici: cause "unexpected
145
+ * redirect")? The live FPDS search.do→sam.gov 301 is the concrete case
146
+ * (ADR-0012 §1a). Moved here from fpds.ts (ADR-0013) as `getText`'s audited home
147
+ * — it is only reachable when a caller sets `redirect:"error"` (undici throws
148
+ * the unexpected-redirect TypeError only in `"error"` mode), so it is inert for
149
+ * any retry:false caller that does NOT set redirect.
150
+ */
151
+ export declare function isRedirectError(e: unknown): boolean;
152
+ /**
153
+ * The shared `schema_drift` constructor (all sources threw the identical
154
+ * carrier). Each source keeps its bespoke field-CHECK inline and calls this to
155
+ * standardize only the THROW. `label` becomes `upstreamEndpoint` — host-only,
156
+ * never a token.
157
+ */
158
+ export declare function driftError(label: string, message: string): ToolErrorCarrier;
159
+ /**
160
+ * Serialize every call sharing `key` through a single promise chain, spacing the
161
+ * START of consecutive runs by ≥ `minIntervalMs`. This is the generalization of
162
+ * EDGAR's former module singleton (edgar.ts `edgarGateChain`/`edgarLastFetchAt`/
163
+ * `throughEdgarGate`); `throughGate("edgar", 110, fn)` reproduces its behavior
164
+ * EXACTLY. Semantics that MUST stay byte-identical to the old EDGAR gate:
165
+ * - the Map entry is fetched-or-created and MUTATED IN PLACE (never replaced),
166
+ * so a key keeps one chain across the process;
167
+ * - before invoking `fn()`, wait `max(0, minIntervalMs - (now - lastAt))` using
168
+ * the **bare global `setTimeout`** (NOT `node:timers/promises`) — the fault
169
+ * suite's timer-neutralizing patch makes this offline-instant; an import-based
170
+ * timer would break that (and offline determinism);
171
+ * - `lastAt` is stamped with `Date.now()` **BEFORE** `fn()` is called, so the
172
+ * spacing is measured from the START of the previous run (edgar L97-98);
173
+ * - the chain SWALLOWS each step's error so the queue keeps flowing, while the
174
+ * real result/error still propagates on the promise returned to THAT caller.
175
+ */
176
+ export declare function throughGate<T>(key: string, minIntervalMs: number, fn: () => Promise<T>): Promise<T>;
177
+ /**
178
+ * Provenance the resilience layer stamps on a served body (ADR-0045 B2). Mirrors
179
+ * `getJsonWithHeaders`'s `{ body, contentRange }` provenance shape. `dataPath` is
180
+ * a FRESHNESS enum (M2), not a topology label: an independent host serving live
181
+ * data is still `"live"`. `asOf` (ISO-8601 UTC, m3) is present ONLY for a
182
+ * non-live (`snapshot`) body.
183
+ */
184
+ export type Provenance = {
185
+ dataPath: "live" | "snapshot";
186
+ asOf?: string;
187
+ };
188
+ /**
189
+ * getJsonWithProvenance — the resilient-fetch primitive (ADR-0045 B2). Runs the
190
+ * IDENTICAL init-assembly + `fetchWithRetry(url, init, opts.label)` envelope as
191
+ * `getJson`, and returns `{ body, provenance }`. The port ALWAYS returns an
192
+ * explicit provenance (honesty-B2 + regression-M1 reconciled): in Phase 1 there
193
+ * is a SINGLE live path, so `provenance` is ALWAYS `{ dataPath:"live" }` (asOf
194
+ * omitted). Because the port always stamps provenance, a mirror/snapshot body can
195
+ * never be structurally mislabelled as live (a future adapter that forgets to
196
+ * thread it still cannot claim live).
197
+ *
198
+ * ★INERT: NO adapter calls this yet — it is dormant infrastructure. It is a
199
+ * SEPARATE primitive (getJson is untouched, byte-identical), exported for the
200
+ * path-chain and for direct unit tests.
201
+ */
202
+ export declare function getJsonWithProvenance<T = unknown>(url: string, opts: GetJsonOptions): Promise<{
203
+ body: T;
204
+ provenance: Provenance;
205
+ }>;
206
+ export declare class CircuitBreaker {
207
+ /** Bounded: only hosts in the fixed set are ever tracked (m3-regression). */
208
+ private readonly hosts;
209
+ private readonly states;
210
+ /** Injectable clock for deterministic offline unit tests (defaults Date.now). */
211
+ private readonly now;
212
+ constructor(hosts: Iterable<string>, now?: () => number);
213
+ private state;
214
+ /**
215
+ * Should the live attempt to `host` be SKIPPED right now? True only while the
216
+ * breaker is OPEN and its 30s window has not elapsed AND a half-open probe is
217
+ * already in flight. When the window elapses, exactly ONE caller is admitted as
218
+ * the half-open probe (this returns false and marks probeInFlight) and the rest
219
+ * are skipped until that probe reports back. An untracked host is NEVER skipped.
220
+ */
221
+ shouldSkip(host: string): boolean;
222
+ /** Record a live success — closes the breaker and resets the failure run. */
223
+ onSuccess(host: string): void;
224
+ /**
225
+ * Record a live failure. A NON-hard error (429 / honor-Retry-After / 404 /
226
+ * timeout / abort) is IGNORED — it neither counts toward the trip threshold nor
227
+ * resets the run (it is orthogonal to host health). A HARD error increments the
228
+ * consecutive count and trips the breaker at the threshold; if it arrives during
229
+ * a half-open probe it immediately re-opens the window.
230
+ */
231
+ onFailure(host: string, err: unknown): void;
232
+ /** Test-only introspection: is the breaker currently OPEN for `host`? */
233
+ isOpen(host: string): boolean;
234
+ }
235
+ /**
236
+ * Is a thrown error a HARD failure for circuit-breaker purposes (ADR-0045 B1)?
237
+ * HARD = a 5xx or a network `TypeError` ONLY. Everything else is excluded:
238
+ * • isHonorRetryAfter (429 / 5xx+Retry-After) — B1-policy, honor the wait;
239
+ * • Timeout/Abort — classified upstream_unavailable with retryable:FALSE
240
+ * (errors.ts:169), so the `retryable===true` gate excludes it;
241
+ * • 404 (not_found), 4xx (invalid_input), schema_drift, unknown — not outages.
242
+ * A 5xx-after-retries and a network TypeError both surface from `fetchWithRetry`
243
+ * as a `ToolErrorCarrier` upstream_unavailable with retryable:TRUE — the one
244
+ * signature this admits. A raw (unclassified) `TypeError` also counts, for
245
+ * robustness when the breaker is driven directly.
246
+ */
247
+ export declare function isHardFailure(err: unknown): boolean;
248
+ /**
249
+ * One ordered access path for a source. `provenance` is what a SUCCESS on this
250
+ * path yields (live for the primary API, snapshot for a self-hosted mirror);
251
+ * `host` is the HOST-ONLY key the breaker tracks (must be in the breaker's fixed
252
+ * set); `run` performs the fetch+parse (typically a `getJson*` call).
253
+ */
254
+ export type ResiliencePath<T> = {
255
+ provenance: Provenance;
256
+ host: string;
257
+ run: () => Promise<T>;
258
+ };
259
+ /**
260
+ * Try an ordered array of access paths, returning the first success + its
261
+ * provenance (ADR-0045 §"경로 체인").
262
+ *
263
+ * ★A SINGLE-entry chain is a PURE PASSTHROUGH — no breaker consult, no try/catch
264
+ * overhead, byte-for-byte today's behavior (B1-regression). The breaker is
265
+ * consulted ONLY for a ≥2-path chain, so the 27 single-path sources are never
266
+ * affected.
267
+ *
268
+ * For a multi-path chain: an open breaker on a path's host SKIPS that path (no
269
+ * live attempt); a HARD failure records against the breaker and falls through to
270
+ * the next path; a SUCCESS records success and returns. An isHonorRetryAfter
271
+ * error (429 / 5xx+Retry-After) is RE-THROWN IMMEDIATELY (B1-policy) — it never
272
+ * counts against the breaker and never falls through to a mirror/snapshot; we
273
+ * wait and fail honestly. If every path is exhausted, the last error is thrown
274
+ * (honest failure — never a fabricated empty).
275
+ */
276
+ export declare function throughPathChain<T>(paths: ReadonlyArray<ResiliencePath<T>>, breaker?: CircuitBreaker): Promise<{
277
+ body: T;
278
+ provenance: Provenance;
279
+ }>;
280
+ /**
281
+ * A validator-bearing cache entry for `getJsonConditional`. `body` is the last
282
+ * parsed payload; `etag`/`lastModified` are the validators to replay; `asOf`
283
+ * (ISO-8601 UTC) is when the body was fetched.
284
+ */
285
+ export type CacheEntry<T> = {
286
+ body: T;
287
+ etag?: string;
288
+ lastModified?: string;
289
+ asOf?: string;
290
+ };
291
+ /**
292
+ * getJsonConditional — a SEPARATE conditional-GET primitive (ADR-0045
293
+ * B2-regression). It is DELIBERATELY NOT folded into the shared getJson/getText:
294
+ * adding If-None-Match/If-Modified-Since to getJson would make a 304 (a bodiless
295
+ * response) hit `r.json()` → a SyntaxError that fdic:340 / fedreg:588 reclassify
296
+ * as schema_drift — a hard regression. So this primitive:
297
+ * (a) sends validators ONLY when it holds a cache entry;
298
+ * (b) intercepts a 304 BEFORE the r.ok gate and returns the cached body;
299
+ * (c) NEVER calls `r.json()` on a 304.
300
+ * It keeps getJson's retry taxonomy for the non-304 case (5xx/429/network retry;
301
+ * timeout/abort fast-fail), via a local loop that mirrors fetchWithRetry but adds
302
+ * the 304 short-circuit ABOVE the r.ok gate.
303
+ *
304
+ * ★INERT: no adapter uses it yet. A cache MISS (no entry) behaves like getJson
305
+ * (no validators sent, 200 parsed) — so an adapter that later adopts it without a
306
+ * warm cache is envelope-identical.
307
+ */
308
+ export declare function getJsonConditional<T = unknown>(url: string, opts: GetJsonOptions, cache?: CacheEntry<T>): Promise<{
309
+ body: T;
310
+ notModified: boolean;
311
+ provenance: Provenance;
312
+ }>;
313
+ //# sourceMappingURL=datasource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../src/datasource.ts"],"names":[],"mappings":"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"}