@lgriffin/esi.ts 9.7.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/CHANGELOG.md +512 -0
  2. package/README.md +182 -236
  3. package/dist/EsiClient.d.mts +140 -0
  4. package/dist/EsiClient.d.ts +4 -0
  5. package/dist/EsiClient.d.ts.map +1 -1
  6. package/dist/EsiClientBuilder.d.mts +75 -0
  7. package/dist/EsiClientBuilder.d.ts.map +1 -1
  8. package/dist/auth/EsiTokenManager.d.mts +200 -0
  9. package/dist/auth/EsiTokenManager.d.ts +200 -0
  10. package/dist/auth/EsiTokenManager.d.ts.map +1 -0
  11. package/dist/auth/EveSsoClient.d.mts +88 -0
  12. package/dist/auth/EveSsoClient.d.ts +88 -0
  13. package/dist/auth/EveSsoClient.d.ts.map +1 -0
  14. package/dist/auth/errors.d.mts +42 -0
  15. package/dist/auth/errors.d.ts +42 -0
  16. package/dist/auth/errors.d.ts.map +1 -0
  17. package/dist/auth/index.d.mts +14 -0
  18. package/dist/auth/index.d.ts +14 -0
  19. package/dist/auth/index.d.ts.map +1 -0
  20. package/dist/auth/jwt.d.mts +43 -0
  21. package/dist/auth/jwt.d.ts +43 -0
  22. package/dist/auth/jwt.d.ts.map +1 -0
  23. package/dist/auth/pkce.d.mts +21 -0
  24. package/dist/auth/pkce.d.ts +21 -0
  25. package/dist/auth/pkce.d.ts.map +1 -0
  26. package/dist/auth/storage/FileTokenStorage.d.mts +44 -0
  27. package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
  28. package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
  29. package/dist/auth/storage/MemoryTokenStorage.d.mts +18 -0
  30. package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
  31. package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
  32. package/dist/auth/types.d.mts +42 -0
  33. package/dist/auth/types.d.ts +42 -0
  34. package/dist/auth/types.d.ts.map +1 -0
  35. package/dist/chunk-3ZI5A37L.mjs +1065 -0
  36. package/dist/chunk-3ZI5A37L.mjs.map +1 -0
  37. package/dist/chunk-BBSHKVPI.js +71 -0
  38. package/dist/chunk-BBSHKVPI.js.map +1 -0
  39. package/dist/chunk-D5L5HZVF.mjs +417 -0
  40. package/dist/chunk-D5L5HZVF.mjs.map +1 -0
  41. package/dist/chunk-JIW4BXLP.mjs +17 -0
  42. package/dist/chunk-JIW4BXLP.mjs.map +1 -0
  43. package/dist/chunk-MSJHIJXA.js +1065 -0
  44. package/dist/chunk-MSJHIJXA.js.map +1 -0
  45. package/dist/chunk-PZ5AY32C.js +10 -0
  46. package/dist/chunk-PZ5AY32C.js.map +1 -0
  47. package/dist/chunk-R7D7M2LQ.mjs +71 -0
  48. package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
  49. package/dist/chunk-SAQBXXTM.js +2614 -0
  50. package/dist/chunk-SAQBXXTM.js.map +1 -0
  51. package/dist/chunk-VZS32UQ3.mjs +2614 -0
  52. package/dist/chunk-VZS32UQ3.mjs.map +1 -0
  53. package/dist/chunk-XIB2OXEZ.js +417 -0
  54. package/dist/chunk-XIB2OXEZ.js.map +1 -0
  55. package/dist/clients/AccessListsClient.d.mts +25 -0
  56. package/dist/clients/AllianceClient.d.mts +59 -0
  57. package/dist/clients/AllianceClient.d.ts.map +1 -1
  58. package/dist/clients/AssetsClient.d.mts +65 -0
  59. package/dist/clients/BaseEsiClient.d.mts +19 -0
  60. package/dist/clients/CalendarClient.d.mts +48 -0
  61. package/dist/clients/CharacterClient.d.mts +134 -0
  62. package/dist/clients/ClonesClient.d.mts +27 -0
  63. package/dist/clients/ContactsClient.d.mts +96 -0
  64. package/dist/clients/ContractsClient.d.mts +91 -0
  65. package/dist/clients/ContractsClient.d.ts +12 -9
  66. package/dist/clients/ContractsClient.d.ts.map +1 -1
  67. package/dist/clients/CorporationProjectsClient.d.mts +54 -0
  68. package/dist/clients/CorporationProjectsClient.d.ts +22 -12
  69. package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
  70. package/dist/clients/CorporationsClient.d.mts +219 -0
  71. package/dist/clients/CosmeticsClient.d.mts +11 -0
  72. package/dist/clients/DogmaClient.d.mts +42 -0
  73. package/dist/clients/FactionClient.d.mts +60 -0
  74. package/dist/clients/FactionClient.d.ts +4 -4
  75. package/dist/clients/FactionClient.d.ts.map +1 -1
  76. package/dist/clients/FittingsClient.d.mts +38 -0
  77. package/dist/clients/FleetClient.d.mts +134 -0
  78. package/dist/clients/FreelanceJobsClient.d.mts +61 -0
  79. package/dist/clients/FreelanceJobsClient.d.ts +3 -3
  80. package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
  81. package/dist/clients/IncursionsClient.d.mts +14 -0
  82. package/dist/clients/IndustryClient.d.mts +86 -0
  83. package/dist/clients/IndustryClient.d.ts +4 -4
  84. package/dist/clients/IndustryClient.d.ts.map +1 -1
  85. package/dist/clients/InsuranceClient.d.mts +14 -0
  86. package/dist/clients/KillmailsClient.d.mts +37 -0
  87. package/dist/clients/LocationClient.d.mts +32 -0
  88. package/dist/clients/LoyaltyClient.d.mts +28 -0
  89. package/dist/clients/MailClient.d.mts +104 -0
  90. package/dist/clients/MailClient.d.ts +4 -4
  91. package/dist/clients/MailClient.d.ts.map +1 -1
  92. package/dist/clients/MarketClient.d.mts +102 -0
  93. package/dist/clients/MercenaryClient.d.mts +42 -0
  94. package/dist/clients/MetaClient.d.mts +45 -0
  95. package/dist/clients/MetaClient.d.ts +3 -2
  96. package/dist/clients/MetaClient.d.ts.map +1 -1
  97. package/dist/clients/MilitaryCampaignsClient.d.mts +53 -0
  98. package/dist/clients/ParagonHubClient.d.mts +13 -0
  99. package/dist/clients/PiClient.d.mts +45 -0
  100. package/dist/clients/RouteClient.d.mts +25 -0
  101. package/dist/clients/SearchClient.d.mts +17 -0
  102. package/dist/clients/SkillsClient.d.mts +39 -0
  103. package/dist/clients/SkyhooksClient.d.mts +48 -0
  104. package/dist/clients/SovereigntyClient.d.mts +20 -0
  105. package/dist/clients/StatusClient.d.mts +14 -0
  106. package/dist/clients/UiClient.d.mts +44 -0
  107. package/dist/clients/UniverseClient.d.mts +212 -0
  108. package/dist/clients/WalletClient.d.mts +70 -0
  109. package/dist/clients/WalletClient.d.ts +4 -4
  110. package/dist/clients/WalletClient.d.ts.map +1 -1
  111. package/dist/clients/WarsClient.d.mts +33 -0
  112. package/dist/core/ApiClient.d.mts +73 -0
  113. package/dist/core/ApiClient.d.ts +4 -0
  114. package/dist/core/ApiClient.d.ts.map +1 -1
  115. package/dist/core/ApiClientBuilder.d.mts +24 -0
  116. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  117. package/dist/core/BatchRequestHandler.d.mts +12 -0
  118. package/dist/core/BatchRequestHandler.d.ts.map +1 -1
  119. package/dist/core/ClientRegistry.d.mts +45 -0
  120. package/dist/core/EsiDiagnostics.d.mts +35 -0
  121. package/dist/core/IDeduplicator.d.mts +22 -0
  122. package/dist/core/IDeduplicator.d.ts +16 -0
  123. package/dist/core/IDeduplicator.d.ts.map +1 -1
  124. package/dist/core/IRetryStrategy.d.mts +5 -0
  125. package/dist/core/RequestDeduplicator.d.mts +21 -0
  126. package/dist/core/RequestDeduplicator.d.ts +13 -0
  127. package/dist/core/RequestDeduplicator.d.ts.map +1 -1
  128. package/dist/core/RetryStrategy.d.mts +21 -0
  129. package/dist/core/RetryStrategy.d.ts +2 -0
  130. package/dist/core/RetryStrategy.d.ts.map +1 -1
  131. package/dist/core/cache/ETagCacheManager.d.mts +75 -0
  132. package/dist/core/cache/ETagCacheManager.d.ts +4 -0
  133. package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
  134. package/dist/core/cache/ICache.d.mts +27 -0
  135. package/dist/core/cache/cacheKey.d.ts +11 -0
  136. package/dist/core/cache/cacheKey.d.ts.map +1 -1
  137. package/dist/core/circuitBreaker/CircuitBreaker.d.mts +52 -0
  138. package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
  139. package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
  140. package/dist/core/circuitBreaker/ICircuitBreaker.d.mts +23 -0
  141. package/dist/core/configureApiClient.d.mts +18 -0
  142. package/dist/core/configureApiClient.d.ts.map +1 -1
  143. package/dist/core/constants.d.ts +2 -2
  144. package/dist/core/constants.d.ts.map +1 -1
  145. package/dist/core/endpoints/EndpointDefinition.d.mts +63 -0
  146. package/dist/core/endpoints/accessListEndpoints.d.mts +34 -0
  147. package/dist/core/endpoints/allianceEndpoints.d.mts +43 -0
  148. package/dist/core/endpoints/assetEndpoints.d.mts +76 -0
  149. package/dist/core/endpoints/buildEndpointPath.d.mts +7 -0
  150. package/dist/core/endpoints/calendarEndpoints.d.mts +54 -0
  151. package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
  152. package/dist/core/endpoints/characterEndpoints.d.mts +185 -0
  153. package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
  154. package/dist/core/endpoints/cloneEndpoints.d.mts +32 -0
  155. package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
  156. package/dist/core/endpoints/contactEndpoints.d.mts +106 -0
  157. package/dist/core/endpoints/contractEndpoints.d.mts +168 -0
  158. package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
  159. package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
  160. package/dist/core/endpoints/corporationEndpoints.d.mts +324 -0
  161. package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
  162. package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
  163. package/dist/core/endpoints/corporationProjectEndpoints.d.mts +102 -0
  164. package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
  165. package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
  166. package/dist/core/endpoints/cosmeticsEndpoints.d.mts +52 -0
  167. package/dist/core/endpoints/createClient.d.mts +69 -0
  168. package/dist/core/endpoints/createClient.d.ts.map +1 -1
  169. package/dist/core/endpoints/dogmaEndpoints.d.mts +89 -0
  170. package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
  171. package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -1
  172. package/dist/core/endpoints/esi-rate-limit-groups.generated.d.mts +7 -0
  173. package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -1
  174. package/dist/core/endpoints/esi-scopes.generated.d.mts +3 -0
  175. package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -1
  176. package/dist/core/endpoints/factionEndpoints.d.mts +194 -0
  177. package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
  178. package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
  179. package/dist/core/endpoints/fittingEndpoints.d.mts +34 -0
  180. package/dist/core/endpoints/fleetEndpoints.d.mts +137 -0
  181. package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
  182. package/dist/core/endpoints/freelanceJobsEndpoints.d.mts +181 -0
  183. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
  184. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
  185. package/dist/core/endpoints/incursionEndpoints.d.mts +19 -0
  186. package/dist/core/endpoints/industryEndpoints.d.mts +138 -0
  187. package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
  188. package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
  189. package/dist/core/endpoints/insuranceEndpoints.d.mts +17 -0
  190. package/dist/core/endpoints/killmailEndpoints.d.mts +62 -0
  191. package/dist/core/endpoints/locationEndpoints.d.mts +37 -0
  192. package/dist/core/endpoints/loyaltyEndpoints.d.mts +32 -0
  193. package/dist/core/endpoints/mailEndpoints.d.mts +111 -0
  194. package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
  195. package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
  196. package/dist/core/endpoints/marketEndpoints.d.mts +191 -0
  197. package/dist/core/endpoints/mercenaryEndpoints.d.mts +79 -0
  198. package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
  199. package/dist/core/endpoints/metaEndpoints.d.mts +50 -0
  200. package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
  201. package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
  202. package/dist/core/endpoints/militaryCampaignEndpoints.d.mts +87 -0
  203. package/dist/core/endpoints/paragonHubEndpoints.d.mts +163 -0
  204. package/dist/core/endpoints/piEndpoints.d.mts +101 -0
  205. package/dist/core/endpoints/piEndpoints.d.ts +2 -2
  206. package/dist/core/endpoints/routeEndpoints.d.mts +14 -0
  207. package/dist/core/endpoints/searchEndpoints.d.mts +26 -0
  208. package/dist/core/endpoints/skillEndpoints.d.mts +52 -0
  209. package/dist/core/endpoints/skyhookEndpoints.d.mts +111 -0
  210. package/dist/core/endpoints/sovereigntyEndpoints.d.mts +59 -0
  211. package/dist/core/endpoints/statusEndpoints.d.mts +14 -0
  212. package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
  213. package/dist/core/endpoints/uiEndpoints.d.mts +43 -0
  214. package/dist/core/endpoints/universeEndpoints.d.mts +456 -0
  215. package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
  216. package/dist/core/endpoints/walletEndpoints.d.mts +98 -0
  217. package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
  218. package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
  219. package/dist/core/endpoints/warEndpoints.d.mts +51 -0
  220. package/dist/core/logger/DefaultLogger.d.mts +31 -0
  221. package/dist/core/logger/DefaultLogger.d.ts +31 -0
  222. package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
  223. package/dist/core/logger/ILogger.d.mts +17 -0
  224. package/dist/core/logger/ILogger.d.ts +14 -4
  225. package/dist/core/logger/ILogger.d.ts.map +1 -1
  226. package/dist/core/logger/NoopLogger.d.mts +7 -0
  227. package/dist/core/logger/NoopLogger.d.ts +4 -0
  228. package/dist/core/logger/NoopLogger.d.ts.map +1 -1
  229. package/dist/core/logger/clientLog.d.ts +11 -0
  230. package/dist/core/logger/clientLog.d.ts.map +1 -0
  231. package/dist/core/logger/logger.d.ts +11 -3
  232. package/dist/core/logger/logger.d.ts.map +1 -1
  233. package/dist/core/logger/loggerUtil.d.mts +11 -0
  234. package/dist/core/logger/loggerUtil.d.ts +8 -6
  235. package/dist/core/logger/loggerUtil.d.ts.map +1 -1
  236. package/dist/core/logger/resolveLogger.d.ts +10 -0
  237. package/dist/core/logger/resolveLogger.d.ts.map +1 -0
  238. package/dist/core/middleware/Middleware.d.mts +30 -0
  239. package/dist/core/pagination/AsyncPaginationIterator.d.mts +12 -0
  240. package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
  241. package/dist/core/pagination/CursorPaginationHandler.d.mts +68 -0
  242. package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
  243. package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
  244. package/dist/core/rateLimiter/IRateLimiter.d.mts +27 -0
  245. package/dist/core/rateLimiter/RateLimiter.d.mts +62 -0
  246. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  247. package/dist/core/requestPipeline/cachePolicy.d.ts +25 -1
  248. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  249. package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
  250. package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
  251. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  252. package/dist/core/requestPipeline/index.d.ts +2 -2
  253. package/dist/core/requestPipeline/index.d.ts.map +1 -1
  254. package/dist/core/requestPipeline/paginationOrchestration.d.ts +1 -1
  255. package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
  256. package/dist/core/requestPipeline/statusHandling.d.ts +14 -2
  257. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  258. package/dist/core/util/concurrency.d.ts +29 -0
  259. package/dist/core/util/concurrency.d.ts.map +1 -0
  260. package/dist/core/util/error.d.mts +37 -0
  261. package/dist/core/util/retry.d.mts +8 -0
  262. package/dist/core/util/retry.d.ts.map +1 -1
  263. package/dist/errors.d.mts +5 -0
  264. package/dist/errors.d.ts +1 -0
  265. package/dist/errors.d.ts.map +1 -1
  266. package/dist/errors.js +53 -195
  267. package/dist/errors.js.map +1 -1
  268. package/dist/errors.mjs +37 -129
  269. package/dist/errors.mjs.map +1 -1
  270. package/dist/index.d.mts +81 -0
  271. package/dist/index.d.ts +6 -2
  272. package/dist/index.d.ts.map +1 -1
  273. package/dist/index.js +2195 -3517
  274. package/dist/index.js.map +1 -1
  275. package/dist/index.mjs +1833 -3044
  276. package/dist/index.mjs.map +1 -1
  277. package/dist/schemas/access-lists.d.mts +16 -0
  278. package/dist/schemas/alliance.d.mts +26 -0
  279. package/dist/schemas/assets.d.mts +24 -0
  280. package/dist/schemas/calendar.d.mts +27 -0
  281. package/dist/schemas/calendar.d.ts +9 -7
  282. package/dist/schemas/calendar.d.ts.map +1 -1
  283. package/dist/schemas/character.d.mts +109 -0
  284. package/dist/schemas/character.d.ts +2 -2
  285. package/dist/schemas/clones.d.mts +17 -0
  286. package/dist/schemas/clones.d.ts +2 -2
  287. package/dist/schemas/common.d.mts +74 -0
  288. package/dist/schemas/contacts.d.mts +14 -0
  289. package/dist/schemas/contracts.d.mts +104 -0
  290. package/dist/schemas/contracts.d.ts +69 -6
  291. package/dist/schemas/contracts.d.ts.map +1 -1
  292. package/dist/schemas/corporation-projects.d.mts +104 -0
  293. package/dist/schemas/corporation-projects.d.ts +96 -9
  294. package/dist/schemas/corporation-projects.d.ts.map +1 -1
  295. package/dist/schemas/corporation.d.mts +193 -0
  296. package/dist/schemas/corporation.d.ts +34 -22
  297. package/dist/schemas/corporation.d.ts.map +1 -1
  298. package/dist/schemas/cosmetics.d.mts +58 -0
  299. package/dist/schemas/dogma.d.mts +57 -0
  300. package/dist/schemas/dogma.d.ts +2 -2
  301. package/dist/schemas/esiEnum.d.mts +3 -0
  302. package/dist/schemas/faction-warfare.d.mts +203 -0
  303. package/dist/schemas/faction-warfare.d.ts +125 -12
  304. package/dist/schemas/faction-warfare.d.ts.map +1 -1
  305. package/dist/schemas/fittings.d.mts +13 -0
  306. package/dist/schemas/fleet.d.mts +37 -0
  307. package/dist/schemas/fleet.d.ts +1 -1
  308. package/dist/schemas/freelance-jobs.d.mts +171 -0
  309. package/dist/schemas/freelance-jobs.d.ts +52 -22
  310. package/dist/schemas/freelance-jobs.d.ts.map +1 -1
  311. package/dist/schemas/incursions.d.mts +12 -0
  312. package/dist/schemas/index.d.mts +39 -0
  313. package/dist/schemas/index.js +420 -2479
  314. package/dist/schemas/index.js.map +1 -1
  315. package/dist/schemas/index.mjs +225 -2065
  316. package/dist/schemas/index.mjs.map +1 -1
  317. package/dist/schemas/industry.d.mts +99 -0
  318. package/dist/schemas/industry.d.ts +33 -0
  319. package/dist/schemas/industry.d.ts.map +1 -1
  320. package/dist/schemas/insurance.d.mts +10 -0
  321. package/dist/schemas/killmails.d.mts +38 -0
  322. package/dist/schemas/location.d.mts +18 -0
  323. package/dist/schemas/loyalty.d.mts +18 -0
  324. package/dist/schemas/mail.d.mts +53 -0
  325. package/dist/schemas/mail.d.ts +24 -5
  326. package/dist/schemas/mail.d.ts.map +1 -1
  327. package/dist/schemas/market.d.mts +123 -0
  328. package/dist/schemas/mercenary.d.mts +74 -0
  329. package/dist/schemas/mercenary.d.ts +1 -1
  330. package/dist/schemas/meta.d.mts +36 -0
  331. package/dist/schemas/meta.d.ts +12 -1
  332. package/dist/schemas/meta.d.ts.map +1 -1
  333. package/dist/schemas/military-campaigns.d.mts +26 -0
  334. package/dist/schemas/paragon-hub.d.mts +96 -0
  335. package/dist/schemas/pi.d.mts +71 -0
  336. package/dist/schemas/pi.d.ts +2 -2
  337. package/dist/schemas/skills.d.mts +28 -0
  338. package/dist/schemas/skyhooks.d.mts +129 -0
  339. package/dist/schemas/sovereignty.d.mts +56 -0
  340. package/dist/schemas/status.d.mts +8 -0
  341. package/dist/schemas/status.d.ts +1 -1
  342. package/dist/schemas/universe.d.mts +285 -0
  343. package/dist/schemas/universe.d.ts +22 -22
  344. package/dist/schemas/universe.d.ts.map +1 -1
  345. package/dist/schemas/wallet.d.mts +45 -0
  346. package/dist/schemas/wallet.d.ts +16 -0
  347. package/dist/schemas/wallet.d.ts.map +1 -1
  348. package/dist/schemas/wars.d.mts +27 -0
  349. package/dist/sde/IStaticDataProvider.d.mts +106 -0
  350. package/dist/sde/MemorySdeProvider.d.mts +167 -0
  351. package/dist/sde/SdeDataProvider.d.mts +119 -0
  352. package/dist/sde/SdeDataProvider.d.ts.map +1 -1
  353. package/dist/sde/SdeTestDataFactory.d.mts +33 -0
  354. package/dist/sde/errors.d.mts +23 -0
  355. package/dist/sde/index.d.mts +9 -0
  356. package/dist/sde/index.js +95 -1162
  357. package/dist/sde/index.js.map +1 -1
  358. package/dist/sde/index.mjs +73 -1091
  359. package/dist/sde/index.mjs.map +1 -1
  360. package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
  361. package/dist/sde/ingestion/metadata.d.ts +13 -0
  362. package/dist/sde/ingestion/metadata.d.ts.map +1 -0
  363. package/dist/sde/memory.d.mts +8 -0
  364. package/dist/sde/memory.js +21 -1095
  365. package/dist/sde/memory.js.map +1 -1
  366. package/dist/sde/memory.mjs +13 -1051
  367. package/dist/sde/memory.mjs.map +1 -1
  368. package/dist/sde/optionalPeers.d.ts +25 -0
  369. package/dist/sde/optionalPeers.d.ts.map +1 -0
  370. package/dist/sde/types.d.mts +1039 -0
  371. package/dist/sde/version.d.mts +7 -0
  372. package/dist/testing/TestDataFactory.d.mts +172 -0
  373. package/dist/testing/TestDataFactory.d.ts +28 -1
  374. package/dist/testing/TestDataFactory.d.ts.map +1 -1
  375. package/dist/testing/index.d.mts +2 -0
  376. package/dist/testing/index.js +116 -125
  377. package/dist/testing/index.js.map +1 -1
  378. package/dist/testing/index.mjs +110 -82
  379. package/dist/testing/index.mjs.map +1 -1
  380. package/dist/types/access-lists.d.mts +5 -0
  381. package/dist/types/alliance.d.mts +7 -0
  382. package/dist/types/api-responses.d.mts +40 -0
  383. package/dist/types/assets.d.mts +6 -0
  384. package/dist/types/branded.d.mts +23 -0
  385. package/dist/types/calendar.d.mts +6 -0
  386. package/dist/types/character.d.mts +17 -0
  387. package/dist/types/clones.d.mts +4 -0
  388. package/dist/types/common.d.mts +19 -0
  389. package/dist/types/contacts.d.mts +5 -0
  390. package/dist/types/contracts.d.mts +9 -0
  391. package/dist/types/contracts.d.ts +4 -1
  392. package/dist/types/contracts.d.ts.map +1 -1
  393. package/dist/types/corporation-projects.d.mts +10 -0
  394. package/dist/types/corporation-projects.d.ts +5 -1
  395. package/dist/types/corporation-projects.d.ts.map +1 -1
  396. package/dist/types/corporation.d.mts +19 -0
  397. package/dist/types/cosmetics.d.mts +8 -0
  398. package/dist/types/dogma.d.mts +6 -0
  399. package/dist/types/faction-warfare.d.mts +17 -0
  400. package/dist/types/faction-warfare.d.ts +9 -1
  401. package/dist/types/faction-warfare.d.ts.map +1 -1
  402. package/dist/types/fittings.d.mts +4 -0
  403. package/dist/types/fleet.d.mts +7 -0
  404. package/dist/types/freelance-jobs.d.mts +12 -0
  405. package/dist/types/freelance-jobs.d.ts +2 -1
  406. package/dist/types/freelance-jobs.d.ts.map +1 -1
  407. package/dist/types/generated/esi-spec.generated.d.mts +2136 -0
  408. package/dist/types/generated/esi-spec.generated.d.ts +164 -16
  409. package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
  410. package/dist/types/generated/spec-alignment.check.d.ts +2 -2
  411. package/dist/types/incursions.d.mts +4 -0
  412. package/dist/types/industry.d.mts +11 -0
  413. package/dist/types/industry.d.ts +2 -1
  414. package/dist/types/industry.d.ts.map +1 -1
  415. package/dist/types/insurance.d.mts +4 -0
  416. package/dist/types/killmails.d.mts +5 -0
  417. package/dist/types/location.d.mts +6 -0
  418. package/dist/types/loyalty.d.mts +5 -0
  419. package/dist/types/mail.d.mts +6 -0
  420. package/dist/types/mail.d.ts +2 -1
  421. package/dist/types/mail.d.ts.map +1 -1
  422. package/dist/types/market.d.mts +12 -0
  423. package/dist/types/mercenary.d.mts +7 -0
  424. package/dist/types/meta.d.mts +9 -0
  425. package/dist/types/meta.d.ts +2 -1
  426. package/dist/types/meta.d.ts.map +1 -1
  427. package/dist/types/military-campaigns.d.mts +6 -0
  428. package/dist/types/paragon-hub.d.mts +8 -0
  429. package/dist/types/pi.d.mts +6 -0
  430. package/dist/types/skills.d.mts +5 -0
  431. package/dist/types/skyhooks.d.mts +8 -0
  432. package/dist/types/sovereignty.d.mts +6 -0
  433. package/dist/types/status.d.mts +4 -0
  434. package/dist/types/universe.d.mts +27 -0
  435. package/dist/types/wallet.d.mts +6 -0
  436. package/dist/types/wallet.d.ts +2 -1
  437. package/dist/types/wallet.d.ts.map +1 -1
  438. package/dist/types/wars.d.mts +4 -0
  439. package/package.json +137 -46
@@ -0,0 +1,33 @@
1
+ import { ApiClient } from '../core/ApiClient.mjs';
2
+ import { BaseEsiClient } from './BaseEsiClient.mjs';
3
+ import { warEndpoints } from '../core/endpoints/warEndpoints.mjs';
4
+ import { War, KillmailSummary } from '../types/api-responses.mjs';
5
+ import { PageResult } from '../core/pagination/AsyncPaginationIterator.mjs';
6
+ export declare class WarsClient extends BaseEsiClient<typeof warEndpoints> {
7
+ constructor(client: ApiClient);
8
+ /**
9
+ * Retrieves a list of all war IDs, ordered by war ID descending.
10
+ *
11
+ * @returns A list of war IDs
12
+ */
13
+ getWars(): Promise<number[]>;
14
+ /**
15
+ * Retrieves detailed information about a specific war, including aggressors, defenders, and status.
16
+ *
17
+ * @param warId - The ID of the war
18
+ * @returns Detailed war information
19
+ */
20
+ getWarById(warId: number): Promise<War>;
21
+ /**
22
+ * Retrieves the killmail summaries associated with a specific war.
23
+ *
24
+ * @param warId - The ID of the war
25
+ * @returns A list of killmail summaries for the war
26
+ */
27
+ getWarKillmails(warId: number): Promise<KillmailSummary[]>;
28
+ fetchAllWars(concurrency?: number): Promise<number[]>;
29
+ fetchAllWarKillmails(warId: number, concurrency?: number): Promise<KillmailSummary[]>;
30
+ streamWars(): AsyncGenerator<PageResult<number>, void, undefined>;
31
+ streamWarKillmails(warId: number): AsyncGenerator<PageResult<KillmailSummary>, void, undefined>;
32
+ }
33
+ //# sourceMappingURL=WarsClient.d.ts.map
@@ -0,0 +1,73 @@
1
+ import { MiddlewareManager, RequestInterceptor, ResponseInterceptor } from './middleware/Middleware.mjs';
2
+ import { ICache } from './cache/ICache.mjs';
3
+ import { IRateLimiter } from './rateLimiter/IRateLimiter.mjs';
4
+ import { ICircuitBreaker } from './circuitBreaker/ICircuitBreaker.mjs';
5
+ import { IDeduplicator } from './IDeduplicator.mjs';
6
+ import { IRetryStrategy } from './IRetryStrategy.mjs';
7
+ import { RetryConfig } from './util/retry.mjs';
8
+ import type { ILogger } from './logger/ILogger.mjs';
9
+ export type EsiDatasource = 'tranquility' | 'singularity';
10
+ export type TokenProvider = () => Promise<string>;
11
+ export type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
12
+ export declare class ApiClient {
13
+ private clientId;
14
+ private link;
15
+ private accessToken?;
16
+ private datasource?;
17
+ private tokenProvider?;
18
+ private refreshInFlight?;
19
+ private middleware;
20
+ private cache;
21
+ private rateLimiter;
22
+ private circuitBreaker;
23
+ private timeout;
24
+ private deduplicator;
25
+ private retryConfig;
26
+ private retryStrategy;
27
+ private validateResponse;
28
+ private validateRequest;
29
+ private language?;
30
+ private compatibilityDate?;
31
+ private fetchFn;
32
+ private logger;
33
+ constructor(clientId: string, link: string, accessToken?: string | undefined);
34
+ getTimeout(): number;
35
+ setTimeout(timeout: number): void;
36
+ getCache(): ICache | null;
37
+ setCache(cache: ICache | null): void;
38
+ getRateLimiter(): IRateLimiter | null;
39
+ setRateLimiter(limiter: IRateLimiter | null): void;
40
+ getCircuitBreaker(): ICircuitBreaker | null;
41
+ setCircuitBreaker(cb: ICircuitBreaker | null): void;
42
+ getDeduplicator(): IDeduplicator | null;
43
+ setDeduplicator(dedup: IDeduplicator | null): void;
44
+ getRetryConfig(): RetryConfig | null;
45
+ setRetryConfig(config: RetryConfig | null): void;
46
+ getRetryStrategy(): IRetryStrategy | null;
47
+ setRetryStrategy(strategy: IRetryStrategy | null): void;
48
+ getValidateResponse(): boolean;
49
+ setValidateResponse(validate: boolean): void;
50
+ getValidateRequest(): boolean;
51
+ setValidateRequest(validate: boolean): void;
52
+ getFetch(): FetchLike;
53
+ setFetch(fn: FetchLike): void;
54
+ getMiddleware(): MiddlewareManager;
55
+ addRequestInterceptor(fn: RequestInterceptor): () => void;
56
+ addResponseInterceptor(fn: ResponseInterceptor): () => void;
57
+ getAuthorizationHeader(): string | undefined;
58
+ getLink(): string;
59
+ getDatasource(): EsiDatasource | undefined;
60
+ setDatasource(datasource: EsiDatasource | undefined): void;
61
+ getLanguage(): string | undefined;
62
+ setLanguage(language: string | undefined): void;
63
+ getCompatibilityDate(): string | undefined;
64
+ setCompatibilityDate(date: string | undefined): void;
65
+ setAccessToken(token: string): void;
66
+ setTokenProvider(provider: TokenProvider | undefined): void;
67
+ getLogger(): ILogger | null;
68
+ setLogger(logger: ILogger | null): void;
69
+ hasTokenProvider(): boolean;
70
+ toJSON(): Record<string, unknown>;
71
+ refreshToken(): Promise<string>;
72
+ }
73
+ //# sourceMappingURL=ApiClient.d.ts.map
@@ -5,6 +5,7 @@ import { ICircuitBreaker } from './circuitBreaker/ICircuitBreaker';
5
5
  import { IDeduplicator } from './IDeduplicator';
6
6
  import { IRetryStrategy } from './IRetryStrategy';
7
7
  import { RetryConfig } from './util/retry';
8
+ import type { ILogger } from './logger/ILogger';
8
9
  export type EsiDatasource = 'tranquility' | 'singularity';
9
10
  export type TokenProvider = () => Promise<string>;
10
11
  export type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
@@ -28,6 +29,7 @@ export declare class ApiClient {
28
29
  private language?;
29
30
  private compatibilityDate?;
30
31
  private fetchFn;
32
+ private logger;
31
33
  constructor(clientId: string, link: string, accessToken?: string | undefined);
32
34
  getTimeout(): number;
33
35
  setTimeout(timeout: number): void;
@@ -62,6 +64,8 @@ export declare class ApiClient {
62
64
  setCompatibilityDate(date: string | undefined): void;
63
65
  setAccessToken(token: string): void;
64
66
  setTokenProvider(provider: TokenProvider | undefined): void;
67
+ getLogger(): ILogger | null;
68
+ setLogger(logger: ILogger | null): void;
65
69
  hasTokenProvider(): boolean;
66
70
  toJSON(): Record<string, unknown>;
67
71
  refreshToken(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/core/ApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/core/ApiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { ApiClient, FetchLike } from './ApiClient.mjs';
2
+ import { IRateLimiter } from './rateLimiter/IRateLimiter.mjs';
3
+ import { ICache } from './cache/ICache.mjs';
4
+ import { CircuitBreaker } from './circuitBreaker/CircuitBreaker.mjs';
5
+ export declare class ApiClientBuilder {
6
+ private clientId;
7
+ private link;
8
+ private accessToken?;
9
+ private rateLimiter?;
10
+ private cache?;
11
+ private circuitBreaker?;
12
+ private _timeout?;
13
+ private _fetch?;
14
+ setClientId(clientId: string): ApiClientBuilder;
15
+ setLink(link: string): ApiClientBuilder;
16
+ setAccessToken(accessToken?: string): ApiClientBuilder;
17
+ setRateLimiter(limiter: IRateLimiter): ApiClientBuilder;
18
+ setCache(cache: ICache): ApiClientBuilder;
19
+ setCircuitBreaker(cb: CircuitBreaker): ApiClientBuilder;
20
+ setTimeout(timeout: number): ApiClientBuilder;
21
+ setFetch(fn: FetchLike): ApiClientBuilder;
22
+ build(): ApiClient;
23
+ }
24
+ //# sourceMappingURL=ApiClientBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/ApiRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmBxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAqI5D,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CA6B5B,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,UAAS,OAAc,EACvB,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CAoD5B,CAAC"}
1
+ {"version":3,"file":"ApiRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/ApiRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwBxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAgL5D,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CA8B5B,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,UAAS,OAAc,EACvB,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CAsE5B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { EsiError } from './util/error.mjs';
2
+ export interface BatchOptions {
3
+ concurrency?: number;
4
+ onProgress?: (completed: number, total: number) => void;
5
+ }
6
+ export interface BatchResult<K, T> {
7
+ results: Map<K, T>;
8
+ errors: Map<K, EsiError | Error>;
9
+ }
10
+ export declare function batchFetch<K, T>(keys: K[], fetcher: (key: K) => Promise<T>, options?: BatchOptions): Promise<BatchResult<K, T>>;
11
+ export declare function batchPost<T>(ids: number[], poster: (chunk: number[]) => Promise<T[]>, chunkSize?: number): Promise<T[]>;
12
+ //# sourceMappingURL=BatchRequestHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BatchRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/BatchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;CAClC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAqD5B;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACzC,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd"}
1
+ {"version":3,"file":"BatchRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/BatchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;CAClC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA8D5B;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACzC,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAmBd"}
@@ -0,0 +1,45 @@
1
+ import { ApiClient } from './ApiClient.mjs';
2
+ import { AllianceClient } from '../clients/AllianceClient.mjs';
3
+ import { AssetsClient } from '../clients/AssetsClient.mjs';
4
+ import { CalendarClient } from '../clients/CalendarClient.mjs';
5
+ import { CharacterClient } from '../clients/CharacterClient.mjs';
6
+ import { ClonesClient } from '../clients/ClonesClient.mjs';
7
+ import { ContactsClient } from '../clients/ContactsClient.mjs';
8
+ import { ContractsClient } from '../clients/ContractsClient.mjs';
9
+ import { CorporationsClient } from '../clients/CorporationsClient.mjs';
10
+ import { CorporationProjectsClient } from '../clients/CorporationProjectsClient.mjs';
11
+ import { DogmaClient } from '../clients/DogmaClient.mjs';
12
+ import { FactionClient } from '../clients/FactionClient.mjs';
13
+ import { FittingsClient } from '../clients/FittingsClient.mjs';
14
+ import { FleetClient } from '../clients/FleetClient.mjs';
15
+ import { IncursionsClient } from '../clients/IncursionsClient.mjs';
16
+ import { IndustryClient } from '../clients/IndustryClient.mjs';
17
+ import { InsuranceClient } from '../clients/InsuranceClient.mjs';
18
+ import { KillmailsClient } from '../clients/KillmailsClient.mjs';
19
+ import { LocationClient } from '../clients/LocationClient.mjs';
20
+ import { LoyaltyClient } from '../clients/LoyaltyClient.mjs';
21
+ import { MailClient } from '../clients/MailClient.mjs';
22
+ import { MarketClient } from '../clients/MarketClient.mjs';
23
+ import { PiClient } from '../clients/PiClient.mjs';
24
+ import { RouteClient } from '../clients/RouteClient.mjs';
25
+ import { SearchClient } from '../clients/SearchClient.mjs';
26
+ import { CharacterSkillsClient } from '../clients/SkillsClient.mjs';
27
+ import { SovereigntyClient } from '../clients/SovereigntyClient.mjs';
28
+ import { StatusClient } from '../clients/StatusClient.mjs';
29
+ import { UiClient } from '../clients/UiClient.mjs';
30
+ import { UniverseClient } from '../clients/UniverseClient.mjs';
31
+ import { WalletClient } from '../clients/WalletClient.mjs';
32
+ import { WarsClient } from '../clients/WarsClient.mjs';
33
+ import { MetaClient } from '../clients/MetaClient.mjs';
34
+ import { FreelanceJobsClient } from '../clients/FreelanceJobsClient.mjs';
35
+ import { SkyhooksClient } from '../clients/SkyhooksClient.mjs';
36
+ import { MercenaryClient } from '../clients/MercenaryClient.mjs';
37
+ import { AccessListsClient } from '../clients/AccessListsClient.mjs';
38
+ import { CosmeticsClient } from '../clients/CosmeticsClient.mjs';
39
+ import { ParagonHubClient } from '../clients/ParagonHubClient.mjs';
40
+ import { MilitaryCampaignsClient } from '../clients/MilitaryCampaignsClient.mjs';
41
+ export type ApiClientType = 'alliance' | 'assets' | 'calendar' | 'characters' | 'clones' | 'contacts' | 'contracts' | 'corporations' | 'corporationProjects' | 'dogma' | 'factions' | 'fittings' | 'fleets' | 'incursions' | 'industry' | 'insurance' | 'killmails' | 'location' | 'loyalty' | 'mail' | 'market' | 'pi' | 'route' | 'search' | 'skills' | 'sovereignty' | 'status' | 'ui' | 'universe' | 'wallet' | 'wars' | 'meta' | 'freelanceJobs' | 'skyhooks' | 'cosmetics' | 'paragonHub' | 'mercenary' | 'militaryCampaigns' | 'accessLists';
42
+ export type ClientInstance = AllianceClient | AssetsClient | CalendarClient | CharacterClient | ClonesClient | ContactsClient | ContractsClient | CorporationsClient | CorporationProjectsClient | DogmaClient | FactionClient | FittingsClient | FleetClient | IncursionsClient | IndustryClient | InsuranceClient | KillmailsClient | LocationClient | LoyaltyClient | MailClient | MarketClient | PiClient | RouteClient | SearchClient | CharacterSkillsClient | SovereigntyClient | StatusClient | UiClient | UniverseClient | WalletClient | WarsClient | MetaClient | FreelanceJobsClient | SkyhooksClient | CosmeticsClient | ParagonHubClient | MercenaryClient | MilitaryCampaignsClient | AccessListsClient;
43
+ export declare function createClientInstance(name: ApiClientType, apiClient: ApiClient): ClientInstance;
44
+ export { AllianceClient, AssetsClient, CalendarClient, CharacterClient, ClonesClient, ContactsClient, ContractsClient, CorporationsClient, CorporationProjectsClient, DogmaClient, FactionClient, FittingsClient, FleetClient, IncursionsClient, IndustryClient, InsuranceClient, KillmailsClient, LocationClient, LoyaltyClient, MailClient, MarketClient, PiClient, RouteClient, SearchClient, CharacterSkillsClient, SovereigntyClient, StatusClient, UiClient, UniverseClient, WalletClient, WarsClient, MetaClient, FreelanceJobsClient, SkyhooksClient, CosmeticsClient, ParagonHubClient, MercenaryClient, MilitaryCampaignsClient, AccessListsClient, };
45
+ //# sourceMappingURL=ClientRegistry.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { ApiClient } from './ApiClient.mjs';
2
+ import { ETagCacheConfig } from './cache/ETagCacheManager.mjs';
3
+ import { RequestDeduplicator } from './RequestDeduplicator.mjs';
4
+ export interface CacheStats {
5
+ totalEntries: number;
6
+ maxEntries: number;
7
+ hits: number;
8
+ misses: number;
9
+ hitRate: number;
10
+ oldestEntry: number | null;
11
+ newestEntry: number | null;
12
+ }
13
+ export interface CircuitBreakerStats {
14
+ totalCircuits: number;
15
+ openCircuits: number;
16
+ circuits: Record<string, {
17
+ state: 'closed' | 'open' | 'half-open';
18
+ failures: number;
19
+ }>;
20
+ }
21
+ export declare class EsiDiagnostics {
22
+ private apiClient;
23
+ private etagCacheEnabled;
24
+ private deduplicator;
25
+ constructor(apiClient: ApiClient, etagCacheEnabled: boolean, deduplicator: RequestDeduplicator | null);
26
+ getCacheStats(): CacheStats | null;
27
+ clearCache(): void;
28
+ updateCacheConfig(newConfig: Partial<ETagCacheConfig>): void;
29
+ getCircuitBreakerStats(): CircuitBreakerStats | null;
30
+ resetCircuitBreaker(endpoint?: string): void;
31
+ getDeduplicatorStats(): {
32
+ pendingRequests: number;
33
+ } | null;
34
+ }
35
+ //# sourceMappingURL=EsiDiagnostics.d.ts.map
@@ -0,0 +1,22 @@
1
+ export interface IDeduplicator {
2
+ dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
3
+ readonly pending: number;
4
+ clear(): void;
5
+ /**
6
+ * Stop new callers joining in-flight requests whose key contains
7
+ * `pathSegment`, and report how many were detached.
8
+ *
9
+ * Called after a write succeeds. A read that starts after a DELETE has
10
+ * completed must not be answered by a GET that was sent before it: the
11
+ * response is pre-write data, and the caller has every reason to expect
12
+ * otherwise. Detaching leaves the in-flight request running and its existing
13
+ * joiners untouched — they asked before the write and their answer is still
14
+ * the one they asked for. It only removes the entry new callers would join.
15
+ *
16
+ * Optional, so a deduplicator written against an earlier version of this
17
+ * interface still satisfies it. A deduplicator that does not implement it
18
+ * keeps the old behaviour, which is why the pipeline calls it with `?.`.
19
+ */
20
+ detachByPath?(pathSegment: string): number;
21
+ }
22
+ //# sourceMappingURL=IDeduplicator.d.ts.map
@@ -2,5 +2,21 @@ export interface IDeduplicator {
2
2
  dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
3
3
  readonly pending: number;
4
4
  clear(): void;
5
+ /**
6
+ * Stop new callers joining in-flight requests whose key contains
7
+ * `pathSegment`, and report how many were detached.
8
+ *
9
+ * Called after a write succeeds. A read that starts after a DELETE has
10
+ * completed must not be answered by a GET that was sent before it: the
11
+ * response is pre-write data, and the caller has every reason to expect
12
+ * otherwise. Detaching leaves the in-flight request running and its existing
13
+ * joiners untouched — they asked before the write and their answer is still
14
+ * the one they asked for. It only removes the entry new callers would join.
15
+ *
16
+ * Optional, so a deduplicator written against an earlier version of this
17
+ * interface still satisfies it. A deduplicator that does not implement it
18
+ * keeps the old behaviour, which is why the pipeline calls it with `?.`.
19
+ */
20
+ detachByPath?(pathSegment: string): number;
5
21
  }
6
22
  //# sourceMappingURL=IDeduplicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/IDeduplicator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"IDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/IDeduplicator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C"}
@@ -0,0 +1,5 @@
1
+ import { RetryContext } from './RetryStrategy.mjs';
2
+ export interface IRetryStrategy {
3
+ execute<T>(operation: () => Promise<T>, context: RetryContext): Promise<T>;
4
+ }
5
+ //# sourceMappingURL=IRetryStrategy.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { IDeduplicator } from './IDeduplicator.mjs';
2
+ export declare class RequestDeduplicator implements IDeduplicator {
3
+ private inflight;
4
+ private client;
5
+ setClient(client: import('./ApiClient.mjs').ApiClient | null): void;
6
+ dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
7
+ /**
8
+ * Drop the in-flight entries whose key contains `pathSegment`, so a call
9
+ * made after a write cannot join a request sent before it.
10
+ *
11
+ * The requests themselves keep running and whoever already joined them still
12
+ * gets their answer. Only the map entry goes, which is what new callers look
13
+ * in. Matching is `includes`, the same rule ETagCacheManager.deleteByPath
14
+ * uses, so one written path invalidates the cache and detaches the reads of
15
+ * it by the same test.
16
+ */
17
+ detachByPath(pathSegment: string): number;
18
+ get pending(): number;
19
+ clear(): void;
20
+ }
21
+ //# sourceMappingURL=RequestDeduplicator.d.ts.map
@@ -1,7 +1,20 @@
1
1
  import { IDeduplicator } from './IDeduplicator';
2
2
  export declare class RequestDeduplicator implements IDeduplicator {
3
3
  private inflight;
4
+ private client;
5
+ setClient(client: import('./ApiClient').ApiClient | null): void;
4
6
  dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
7
+ /**
8
+ * Drop the in-flight entries whose key contains `pathSegment`, so a call
9
+ * made after a write cannot join a request sent before it.
10
+ *
11
+ * The requests themselves keep running and whoever already joined them still
12
+ * gets their answer. Only the map entry goes, which is what new callers look
13
+ * in. Matching is `includes`, the same rule ETagCacheManager.deleteByPath
14
+ * uses, so one written path invalidates the cache and detaches the reads of
15
+ * it by the same test.
16
+ */
17
+ detachByPath(pathSegment: string): number;
5
18
  get pending(): number;
6
19
  clear(): void;
7
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RequestDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/RequestDeduplicator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAuC;IAEjD,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAenE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"RequestDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/RequestDeduplicator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,MAAM,CAAgD;IAE9D,SAAS,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIzD,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBnE;;;;;;;;;OASG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAiBzC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,21 @@
1
+ import { ApiClient } from './ApiClient.mjs';
2
+ import { RetryConfig } from './util/retry.mjs';
3
+ import { IRetryStrategy } from './IRetryStrategy.mjs';
4
+ export interface RetryContext {
5
+ client?: ApiClient;
6
+ endpoint: string;
7
+ method: string;
8
+ requiresAuth: boolean;
9
+ refreshToken?: () => Promise<void>;
10
+ /** @deprecated Unused — after refresh the strategy re-enters the main operation loop. */
11
+ retryOperation?: () => Promise<unknown>;
12
+ }
13
+ export declare class RetryStrategy implements IRetryStrategy {
14
+ private readonly maxRetries;
15
+ private readonly baseDelayMs;
16
+ private readonly maxDelayMs;
17
+ private readonly retryMutations;
18
+ constructor(config?: RetryConfig);
19
+ execute<T>(operation: () => Promise<T>, context: RetryContext): Promise<T>;
20
+ }
21
+ //# sourceMappingURL=RetryStrategy.d.ts.map
@@ -1,6 +1,8 @@
1
+ import { ApiClient } from './ApiClient';
1
2
  import { RetryConfig } from './util/retry';
2
3
  import { IRetryStrategy } from './IRetryStrategy';
3
4
  export interface RetryContext {
5
+ client?: ApiClient;
4
6
  endpoint: string;
5
7
  method: string;
6
8
  requiresAuth: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"RetryStrategy.d.ts","sourceRoot":"","sources":["../../src/core/RetryStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,MAAM,CAAC,EAAE,WAAW;IAO1B,OAAO,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC;CAsEd"}
1
+ {"version":3,"file":"RetryStrategy.d.ts","sourceRoot":"","sources":["../../src/core/RetryStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,MAAM,CAAC,EAAE,WAAW;IAO1B,OAAO,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC;CA8Ed"}
@@ -0,0 +1,75 @@
1
+ import { ApiClient } from '../ApiClient.mjs';
2
+ import { ICache, CacheEntry } from './ICache.mjs';
3
+ export type { CacheEntry } from './ICache.mjs';
4
+ export interface ETagCacheConfig {
5
+ maxEntries?: number;
6
+ defaultTtl?: number;
7
+ cleanupInterval?: number;
8
+ }
9
+ export declare class ETagCacheManager implements ICache {
10
+ private cache;
11
+ private config;
12
+ private cleanupTimer?;
13
+ private hits;
14
+ private misses;
15
+ private client;
16
+ setClient(client: ApiClient | null): void;
17
+ private log;
18
+ constructor(config?: ETagCacheConfig);
19
+ /**
20
+ * Get cached data if ETag matches
21
+ */
22
+ get(url: string): CacheEntry | null;
23
+ /**
24
+ * Get ETag for a URL (for If-None-Match header)
25
+ */
26
+ getETag(url: string): string | null;
27
+ /**
28
+ * Set cache entry
29
+ */
30
+ set(url: string, etag: string, data: unknown, headers: Record<string, string>, customTtl?: number): void;
31
+ /**
32
+ * Check if cached data exists and is valid
33
+ */
34
+ has(url: string): boolean;
35
+ /**
36
+ * Clear specific cache entry
37
+ */
38
+ delete(url: string): boolean;
39
+ /**
40
+ * Delete all cache entries whose URL contains the given path segment
41
+ */
42
+ deleteByPath(pathSegment: string): number;
43
+ /**
44
+ * Clear all cache entries
45
+ */
46
+ clear(): void;
47
+ /**
48
+ * Get cache statistics
49
+ */
50
+ getStats(): {
51
+ totalEntries: number;
52
+ maxEntries: number;
53
+ hits: number;
54
+ misses: number;
55
+ hitRate: number;
56
+ oldestEntry: number | null;
57
+ newestEntry: number | null;
58
+ };
59
+ /**
60
+ * Update cache configuration
61
+ */
62
+ updateConfig(newConfig: Partial<ETagCacheConfig>): void;
63
+ /**
64
+ * Cleanup expired entries
65
+ */
66
+ cleanup(): number;
67
+ /**
68
+ * Shutdown cache manager
69
+ */
70
+ shutdown(): void;
71
+ private isExpired;
72
+ private evictOldest;
73
+ private startCleanupTimer;
74
+ }
75
+ //# sourceMappingURL=ETagCacheManager.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { ApiClient } from '../ApiClient';
1
2
  import { ICache, CacheEntry } from './ICache';
2
3
  export type { CacheEntry } from './ICache';
3
4
  export interface ETagCacheConfig {
@@ -11,6 +12,9 @@ export declare class ETagCacheManager implements ICache {
11
12
  private cleanupTimer?;
12
13
  private hits;
13
14
  private misses;
15
+ private client;
16
+ setClient(client: ApiClient | null): void;
17
+ private log;
14
18
  constructor(config?: ETagCacheConfig);
15
19
  /**
16
20
  * Get cached data if ETag matches
@@ -1 +1 @@
1
- {"version":3,"file":"ETagCacheManager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/ETagCacheManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,GAAE,eAAoB;IAaxC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBnC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAkBP;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAczC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;IAoBD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAKvD;;OAEG;IACH,OAAO,IAAI,MAAM;IAiBjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,iBAAiB;CAO1B"}
1
+ {"version":3,"file":"ETagCacheManager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/ETagCacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIzC,OAAO,CAAC,GAAG;gBAWC,MAAM,GAAE,eAAoB;IAexC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBnC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAmBP;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAoBzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;IAoBD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAOvD;;OAEG;IACH,OAAO,IAAI,MAAM;IAmBjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,iBAAiB;CAO1B"}
@@ -0,0 +1,27 @@
1
+ export interface CacheEntry {
2
+ etag: string;
3
+ data: unknown;
4
+ headers: Record<string, string>;
5
+ timestamp: number;
6
+ ttl?: number;
7
+ }
8
+ export interface ICache {
9
+ get(url: string): CacheEntry | null;
10
+ getETag(url: string): string | null;
11
+ set(url: string, etag: string, data: unknown, headers: Record<string, string>, customTtl?: number): void;
12
+ has(url: string): boolean;
13
+ delete(url: string): boolean;
14
+ deleteByPath(pathSegment: string): number;
15
+ clear(): void;
16
+ getStats(): {
17
+ totalEntries: number;
18
+ maxEntries: number;
19
+ hits: number;
20
+ misses: number;
21
+ hitRate: number;
22
+ oldestEntry: number | null;
23
+ newestEntry: number | null;
24
+ };
25
+ shutdown(): void;
26
+ }
27
+ //# sourceMappingURL=ICache.d.ts.map
@@ -1,3 +1,14 @@
1
1
  import { ApiClient } from '../ApiClient';
2
+ /** The ETag cache key for a request: its URL, scoped to the identity. */
2
3
  export declare function buildCacheKey(url: string, client: ApiClient, requiresAuth?: boolean): string;
4
+ /**
5
+ * The deduplication key for an in-flight request: its endpoint, scoped to the
6
+ * identity.
7
+ *
8
+ * Coalescing has to draw the same line the cache does. Two concurrent GETs to
9
+ * one authenticated endpoint under different tokens are two different
10
+ * questions, and answering both from one response hands one caller the other
11
+ * identity's data.
12
+ */
13
+ export declare function buildDedupeKey(endpoint: string, client: ApiClient, requiresAuth?: boolean): string;
3
14
  //# sourceMappingURL=cacheKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cacheKey.d.ts","sourceRoot":"","sources":["../../../src/core/cache/cacheKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CASR"}
1
+ {"version":3,"file":"cacheKey.d.ts","sourceRoot":"","sources":["../../../src/core/cache/cacheKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8BzC,yEAAyE;AACzE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CAER"}
@@ -0,0 +1,52 @@
1
+ import { ApiClient } from '../ApiClient.mjs';
2
+ import { ICircuitBreaker } from './ICircuitBreaker.mjs';
3
+ export type CircuitState = 'closed' | 'open' | 'half-open';
4
+ export interface CircuitBreakerConfig {
5
+ failureThreshold?: number;
6
+ resetTimeoutMs?: number;
7
+ halfOpenMaxAttempts?: number;
8
+ staleThresholdMs?: number;
9
+ /** 'resolved' (default, current behavior) | 'template' (group by endpoint template path) */
10
+ keyStrategy?: 'resolved' | 'template';
11
+ /** Interval in ms for automatic cleanup of stale circuits. 0 or undefined disables. Recommended value: staleThresholdMs. */
12
+ cleanupIntervalMs?: number;
13
+ }
14
+ export declare class CircuitBreaker implements ICircuitBreaker {
15
+ private circuits;
16
+ private readonly failureThreshold;
17
+ private readonly resetTimeoutMs;
18
+ private readonly halfOpenMaxAttempts;
19
+ private readonly staleThresholdMs;
20
+ private readonly keyStrategy;
21
+ private cleanupTimer;
22
+ private client;
23
+ setClient(client: ApiClient | null): void;
24
+ constructor(config?: CircuitBreakerConfig);
25
+ private getKey;
26
+ private getOrCreate;
27
+ checkCircuit(endpoint: string): void;
28
+ recordSuccess(endpoint: string): void;
29
+ recordFailure(endpoint: string, statusCode: number): void;
30
+ getState(endpoint: string): CircuitState;
31
+ getStats(): {
32
+ totalCircuits: number;
33
+ openCircuits: number;
34
+ circuits: Record<string, {
35
+ state: CircuitState;
36
+ failures: number;
37
+ }>;
38
+ };
39
+ reset(endpoint?: string): void;
40
+ cleanup(): number;
41
+ getKeyStrategy(): 'resolved' | 'template';
42
+ destroy(): void;
43
+ shutdown(): void;
44
+ private startCleanupTimer;
45
+ }
46
+ export declare class CircuitOpenError extends Error {
47
+ readonly endpoint: string;
48
+ readonly failures: number;
49
+ readonly retryAfterMs: number;
50
+ constructor(endpoint: string, failures: number, retryAfterMs: number);
51
+ }
52
+ //# sourceMappingURL=CircuitBreaker.d.ts.map