@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,417 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;// src/core/logger/DefaultLogger.ts
2
+ var _pino = require('pino'); var _pino2 = _interopRequireDefault(_pino);
3
+ function createDefaultLogger(level) {
4
+ const resolved = level || process.env.ESI_LOG_LEVEL || "warn";
5
+ const pinoLogger = _pino2.default.call(void 0, { level: resolved });
6
+ return toPinoLogger(pinoLogger);
7
+ }
8
+ function toPinoLogger(p) {
9
+ const emit2 = (level) => (message, context) => context ? p[level](context, message) : p[level](message);
10
+ return {
11
+ fatal: emit2("fatal"),
12
+ error: emit2("error"),
13
+ warn: emit2("warn"),
14
+ info: emit2("info"),
15
+ debug: emit2("debug"),
16
+ trace: emit2("trace")
17
+ };
18
+ }
19
+ var defaultLogger = createDefaultLogger();
20
+
21
+ // src/core/logger/loggerUtil.ts
22
+ var activeLogger = defaultLogger;
23
+ var setLogger = (customLogger) => {
24
+ activeLogger = customLogger;
25
+ };
26
+ var getLogger = () => activeLogger;
27
+ var ctx = (context) => context && Object.keys(context).length > 0 ? context : void 0;
28
+ var logFatal = (message, context) => {
29
+ activeLogger.fatal(message, ctx(context));
30
+ };
31
+ var logError = (message, context) => {
32
+ activeLogger.error(message, ctx(context));
33
+ };
34
+ var logWarn = (message, context) => {
35
+ activeLogger.warn(message, ctx(context));
36
+ };
37
+ var logInfo = (message, context) => {
38
+ activeLogger.info(message, ctx(context));
39
+ };
40
+ var logDebug = (message, context) => {
41
+ activeLogger.debug(message, ctx(context));
42
+ };
43
+ var logTrace = (message, context) => {
44
+ activeLogger.trace(message, ctx(context));
45
+ };
46
+
47
+ // src/core/logger/resolveLogger.ts
48
+ function resolveLogger(client) {
49
+ const perClient = _optionalChain([client, 'optionalAccess', _ => _.getLogger, 'optionalCall', _2 => _2()]);
50
+ if (perClient) return perClient;
51
+ const global = getLogger();
52
+ if (global !== defaultLogger) return global;
53
+ return defaultLogger;
54
+ }
55
+
56
+ // src/core/logger/clientLog.ts
57
+ var emit = (level) => (client, message, context) => {
58
+ resolveLogger(client)[level](
59
+ message,
60
+ context && Object.keys(context).length > 0 ? context : void 0
61
+ );
62
+ };
63
+ var logFatal2 = emit("fatal");
64
+ var logError2 = emit("error");
65
+ var logWarn2 = emit("warn");
66
+ var logInfo2 = emit("info");
67
+ var logDebug2 = emit("debug");
68
+ var logTrace2 = emit("trace");
69
+
70
+ // src/core/circuitBreaker/CircuitBreaker.ts
71
+ var CircuitBreaker = (_class = class {
72
+ __init() {this.circuits = /* @__PURE__ */ new Map()}
73
+
74
+
75
+
76
+
77
+
78
+ __init2() {this.cleanupTimer = null}
79
+ __init3() {this.client = null}
80
+ setClient(client) {
81
+ this.client = client;
82
+ }
83
+ constructor(config = {}) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);
84
+ this.failureThreshold = _nullishCoalesce(config.failureThreshold, () => ( 5));
85
+ this.resetTimeoutMs = _nullishCoalesce(config.resetTimeoutMs, () => ( 3e4));
86
+ this.halfOpenMaxAttempts = _nullishCoalesce(config.halfOpenMaxAttempts, () => ( 1));
87
+ this.staleThresholdMs = _nullishCoalesce(config.staleThresholdMs, () => ( 36e5));
88
+ this.keyStrategy = _nullishCoalesce(config.keyStrategy, () => ( "resolved"));
89
+ const cleanupIntervalMs = config.cleanupIntervalMs;
90
+ if (cleanupIntervalMs !== void 0 && cleanupIntervalMs > 0) {
91
+ this.startCleanupTimer(cleanupIntervalMs);
92
+ }
93
+ }
94
+ getKey(endpoint) {
95
+ return endpoint.split("?")[0];
96
+ }
97
+ getOrCreate(key) {
98
+ let record = this.circuits.get(key);
99
+ if (!record) {
100
+ record = {
101
+ state: "closed",
102
+ failures: 0,
103
+ lastFailureTime: 0,
104
+ halfOpenAttempts: 0
105
+ };
106
+ this.circuits.set(key, record);
107
+ }
108
+ return record;
109
+ }
110
+ checkCircuit(endpoint) {
111
+ const key = this.getKey(endpoint);
112
+ const record = this.getOrCreate(key);
113
+ if (record.state === "closed") return;
114
+ if (record.state === "open") {
115
+ const elapsed = Date.now() - record.lastFailureTime;
116
+ if (elapsed >= this.resetTimeoutMs) {
117
+ record.state = "half-open";
118
+ record.halfOpenAttempts = 1;
119
+ logInfo2(
120
+ this.client,
121
+ `Circuit half-open for ${key}, allowing probe request`,
122
+ { key }
123
+ );
124
+ return;
125
+ }
126
+ const remainingMs = this.resetTimeoutMs - elapsed;
127
+ throw new CircuitOpenError(key, record.failures, remainingMs);
128
+ }
129
+ if (record.state === "half-open") {
130
+ if (record.halfOpenAttempts >= this.halfOpenMaxAttempts) {
131
+ throw new CircuitOpenError(key, record.failures, this.resetTimeoutMs);
132
+ }
133
+ record.halfOpenAttempts++;
134
+ }
135
+ }
136
+ recordSuccess(endpoint) {
137
+ const key = this.getKey(endpoint);
138
+ const record = this.circuits.get(key);
139
+ if (!record) return;
140
+ if (record.state === "open") return;
141
+ if (record.state === "half-open") {
142
+ logInfo2(this.client, `Circuit closed for ${key} after successful probe`, {
143
+ key
144
+ });
145
+ }
146
+ record.state = "closed";
147
+ record.failures = 0;
148
+ record.halfOpenAttempts = 0;
149
+ }
150
+ recordFailure(endpoint, statusCode) {
151
+ if (statusCode !== 0 && statusCode < 500 && statusCode !== 420 && statusCode !== 429) {
152
+ return;
153
+ }
154
+ const key = this.getKey(endpoint);
155
+ const record = this.getOrCreate(key);
156
+ record.failures++;
157
+ record.lastFailureTime = Date.now();
158
+ if (record.state === "half-open") {
159
+ record.state = "open";
160
+ logWarn2(
161
+ this.client,
162
+ `Circuit re-opened for ${key} after failed probe (${record.failures} failures)`,
163
+ { key, failures: record.failures }
164
+ );
165
+ return;
166
+ }
167
+ if (record.failures >= this.failureThreshold) {
168
+ record.state = "open";
169
+ logWarn2(
170
+ this.client,
171
+ `Circuit opened for ${key} after ${record.failures} consecutive failures`,
172
+ { key, failures: record.failures }
173
+ );
174
+ }
175
+ }
176
+ getState(endpoint) {
177
+ const key = this.getKey(endpoint);
178
+ const record = this.circuits.get(key);
179
+ if (!record) return "closed";
180
+ if (record.state === "open") {
181
+ const elapsed = Date.now() - record.lastFailureTime;
182
+ if (elapsed >= this.resetTimeoutMs) {
183
+ return "half-open";
184
+ }
185
+ }
186
+ return record.state;
187
+ }
188
+ getStats() {
189
+ const circuits = {};
190
+ let openCircuits = 0;
191
+ for (const [key, record] of this.circuits.entries()) {
192
+ const state = this.getState(key);
193
+ circuits[key] = { state, failures: record.failures };
194
+ if (state === "open") openCircuits++;
195
+ }
196
+ return {
197
+ totalCircuits: this.circuits.size,
198
+ openCircuits,
199
+ circuits
200
+ };
201
+ }
202
+ reset(endpoint) {
203
+ if (endpoint) {
204
+ this.circuits.delete(this.getKey(endpoint));
205
+ } else {
206
+ this.circuits.clear();
207
+ }
208
+ }
209
+ cleanup() {
210
+ const now = Date.now();
211
+ let cleaned = 0;
212
+ for (const [key, record] of this.circuits.entries()) {
213
+ if (record.state === "closed" && record.failures === 0 && record.lastFailureTime > 0 && now - record.lastFailureTime > this.staleThresholdMs) {
214
+ this.circuits.delete(key);
215
+ cleaned++;
216
+ }
217
+ }
218
+ if (cleaned > 0) {
219
+ logInfo2(
220
+ this.client,
221
+ `Circuit breaker cleanup: removed ${cleaned} stale circuits`,
222
+ {
223
+ cleaned
224
+ }
225
+ );
226
+ }
227
+ return cleaned;
228
+ }
229
+ getKeyStrategy() {
230
+ return this.keyStrategy;
231
+ }
232
+ destroy() {
233
+ if (this.cleanupTimer) {
234
+ clearInterval(this.cleanupTimer);
235
+ this.cleanupTimer = null;
236
+ }
237
+ this.circuits.clear();
238
+ }
239
+ shutdown() {
240
+ this.destroy();
241
+ }
242
+ startCleanupTimer(intervalMs) {
243
+ this.cleanupTimer = setInterval(() => {
244
+ this.cleanup();
245
+ }, intervalMs);
246
+ this.cleanupTimer.unref();
247
+ }
248
+ }, _class);
249
+ var CircuitOpenError = class extends Error {
250
+
251
+
252
+
253
+ constructor(endpoint, failures, retryAfterMs) {
254
+ super(
255
+ `Circuit breaker open for ${endpoint} after ${failures} failures (retry after ${Math.ceil(retryAfterMs / 1e3)}s)`
256
+ );
257
+ this.name = "CircuitOpenError";
258
+ this.endpoint = endpoint;
259
+ this.failures = failures;
260
+ this.retryAfterMs = retryAfterMs;
261
+ }
262
+ };
263
+
264
+ // src/core/util/error.ts
265
+ var SENSITIVE_PARAMS = [
266
+ "token",
267
+ "access_token",
268
+ "api_key",
269
+ "refresh_token",
270
+ "client_secret",
271
+ "code",
272
+ "key",
273
+ "secret",
274
+ "auth",
275
+ "password",
276
+ "bearer"
277
+ ];
278
+ function sanitizeUrl(url) {
279
+ if (!url) return url;
280
+ try {
281
+ const parsed = new URL(url);
282
+ for (const param of SENSITIVE_PARAMS) {
283
+ if (parsed.searchParams.has(param)) {
284
+ parsed.searchParams.set(param, "[REDACTED]");
285
+ }
286
+ }
287
+ return parsed.toString();
288
+ } catch (e) {
289
+ const qIndex = url.indexOf("?");
290
+ return qIndex >= 0 ? url.substring(0, qIndex) + "?[params-redacted]" : url;
291
+ }
292
+ }
293
+ var EsiError = class extends Error {
294
+ constructor(statusCode, message, url, requestId) {
295
+ super(message);
296
+ this.statusCode = statusCode;
297
+ this.requestId = requestId;
298
+ this.name = "EsiError";
299
+ this.url = sanitizeUrl(url);
300
+ }
301
+
302
+
303
+
304
+ isRateLimited() {
305
+ return this.statusCode === 420 || this.statusCode === 429;
306
+ }
307
+ isNotFound() {
308
+ return this.statusCode === 404;
309
+ }
310
+ isUnauthorized() {
311
+ return this.statusCode === 401;
312
+ }
313
+ isForbidden() {
314
+ return this.statusCode === 403;
315
+ }
316
+ isServerError() {
317
+ return this.statusCode >= 500;
318
+ }
319
+ isTimeout() {
320
+ return this.statusCode === 0;
321
+ }
322
+ get retryable() {
323
+ return this.statusCode === 0 || this.statusCode === 420 || this.statusCode === 429 || this.statusCode === 502 || this.statusCode === 503 || this.statusCode === 504;
324
+ }
325
+ };
326
+ function isEsiError(error) {
327
+ return error instanceof EsiError;
328
+ }
329
+ function isRateLimited(error) {
330
+ return error instanceof EsiError && error.isRateLimited();
331
+ }
332
+ function isNotFound(error) {
333
+ return error instanceof EsiError && error.isNotFound();
334
+ }
335
+ function isUnauthorized(error) {
336
+ return error instanceof EsiError && error.isUnauthorized();
337
+ }
338
+ function isForbidden(error) {
339
+ return error instanceof EsiError && error.isForbidden();
340
+ }
341
+ function isServerError(error) {
342
+ return error instanceof EsiError && error.isServerError();
343
+ }
344
+ var TimeoutError = class extends EsiError {
345
+ constructor(timeoutMs, url, requestId) {
346
+ super(0, `Request timed out after ${timeoutMs}ms`, url, requestId);
347
+ this.timeoutMs = timeoutMs;
348
+ this.name = "TimeoutError";
349
+ }
350
+
351
+ };
352
+ function isTimeout(error) {
353
+ return error instanceof TimeoutError;
354
+ }
355
+ function isRetryable(error) {
356
+ return error instanceof EsiError && error.retryable;
357
+ }
358
+ function isCircuitOpen(error) {
359
+ return error instanceof CircuitOpenError;
360
+ }
361
+ var buildError = (message, type = "ERROR", url) => {
362
+ const error = new Error(`[${type}] ${message}`);
363
+ if (url) {
364
+ error.url = url;
365
+ }
366
+ return error;
367
+ };
368
+ var EsiValidationError = class extends EsiError {
369
+
370
+
371
+ constructor(url, zodError, requestId, direction = "response") {
372
+ const safeUrl = _nullishCoalesce(sanitizeUrl(url), () => ( url));
373
+ const label = direction === "request" ? "Request body" : "Response";
374
+ super(0, `${label} validation failed for ${safeUrl}`, url, requestId);
375
+ this.name = "EsiValidationError";
376
+ this.validationError = zodError;
377
+ this.direction = direction;
378
+ }
379
+ };
380
+ function isValidationError(error) {
381
+ return error instanceof EsiValidationError;
382
+ }
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+ exports.createDefaultLogger = createDefaultLogger; exports.toPinoLogger = toPinoLogger; exports.setLogger = setLogger; exports.getLogger = getLogger; exports.logFatal = logFatal; exports.logError = logError; exports.logWarn = logWarn; exports.logInfo = logInfo; exports.logDebug = logDebug; exports.logTrace = logTrace; exports.logError2 = logError2; exports.logWarn2 = logWarn2; exports.logInfo2 = logInfo2; exports.logDebug2 = logDebug2; exports.CircuitBreaker = CircuitBreaker; exports.CircuitOpenError = CircuitOpenError; exports.sanitizeUrl = sanitizeUrl; exports.EsiError = EsiError; exports.isEsiError = isEsiError; exports.isRateLimited = isRateLimited; exports.isNotFound = isNotFound; exports.isUnauthorized = isUnauthorized; exports.isForbidden = isForbidden; exports.isServerError = isServerError; exports.TimeoutError = TimeoutError; exports.isTimeout = isTimeout; exports.isRetryable = isRetryable; exports.isCircuitOpen = isCircuitOpen; exports.buildError = buildError; exports.EsiValidationError = EsiValidationError; exports.isValidationError = isValidationError;
417
+ //# sourceMappingURL=chunk-XIB2OXEZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-XIB2OXEZ.js","../src/core/logger/DefaultLogger.ts","../src/core/logger/loggerUtil.ts","../src/core/logger/resolveLogger.ts","../src/core/logger/clientLog.ts","../src/core/circuitBreaker/CircuitBreaker.ts","../src/core/util/error.ts"],"names":["emit","logFatal","logError","logWarn","logInfo","logDebug","logTrace"],"mappings":"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","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-XIB2OXEZ.js","sourcesContent":[null,"import pino from 'pino';\nimport type { ILogger, LogContext } from './ILogger';\n\n/**\n * The default `ILogger` implementation — a thin wrapper around pino.\n *\n * Level resolution (highest precedence first):\n * 1. `level` passed to `createDefaultLogger` (e.g. from\n * `EsiClientConfig.logLevel`).\n * 2. The `ESI_LOG_LEVEL` environment variable.\n * 3. `'warn'` (library default — quiet unless the app opts in).\n *\n * The logger writes to `process.stdout` and can be swapped entirely via\n * `EsiClientConfig.logger` or the global `setLogger()` fallback.\n */\nexport type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace';\n\nexport function createDefaultLogger(level?: string): ILogger {\n const resolved = level || process.env.ESI_LOG_LEVEL || 'warn';\n const pinoLogger = pino({ level: resolved });\n return toPinoLogger(pinoLogger);\n}\n\n/**\n * Adapt any pino-compatible logger (pino, pino-http child, custom sink) to the\n * `ILogger` contract. Context objects are spread onto the log event so they\n * appear as structured fields rather than being stringified into the message.\n */\nexport function toPinoLogger(p: {\n fatal: (...a: unknown[]) => void;\n error: (...a: unknown[]) => void;\n warn: (...a: unknown[]) => void;\n info: (...a: unknown[]) => void;\n debug: (...a: unknown[]) => void;\n trace: (...a: unknown[]) => void;\n}): ILogger {\n // Call through the sink object so pino methods keep their `this` binding.\n const emit =\n (level: LogLevel) =>\n (message: string, context?: LogContext): void =>\n context ? p[level](context, message) : p[level](message);\n return {\n fatal: emit('fatal'),\n error: emit('error'),\n warn: emit('warn'),\n info: emit('info'),\n debug: emit('debug'),\n trace: emit('trace'),\n };\n}\n\n/** Backwards-compatible default instance (level from `ESI_LOG_LEVEL`). */\nexport const defaultLogger: ILogger = createDefaultLogger();\n","import type { ILogger, LogContext } from './ILogger';\nimport { defaultLogger } from './DefaultLogger';\n\nexport type { ILogger, LogContext } from './ILogger';\n\n/**\n * Global logger fallback.\n *\n * The request pipeline reads the *per-client* logger first and only falls\n * back to this global when a client has none (e.g. the raw factory\n * `EsiApiFactory` clients, or unit tests that call pipeline modules\n * directly). Production apps can rely on the per-client logger from\n * `EsiClientConfig.logger`; this global exists for backwards compatibility\n * and for apps that want one shared logger across all clients.\n */\nlet activeLogger: ILogger = defaultLogger;\n\nexport const setLogger = (customLogger: ILogger): void => {\n activeLogger = customLogger;\n};\n\nexport const getLogger = (): ILogger => activeLogger;\n\nconst ctx = (context?: LogContext): LogContext | undefined =>\n context && Object.keys(context).length > 0 ? context : undefined;\n\nexport const logFatal = (message: string, context?: LogContext): void => {\n activeLogger.fatal(message, ctx(context));\n};\n\nexport const logError = (message: string, context?: LogContext): void => {\n activeLogger.error(message, ctx(context));\n};\n\nexport const logWarn = (message: string, context?: LogContext): void => {\n activeLogger.warn(message, ctx(context));\n};\n\nexport const logInfo = (message: string, context?: LogContext): void => {\n activeLogger.info(message, ctx(context));\n};\n\nexport const logDebug = (message: string, context?: LogContext): void => {\n activeLogger.debug(message, ctx(context));\n};\n\nexport const logTrace = (message: string, context?: LogContext): void => {\n activeLogger.trace(message, ctx(context));\n};\n","import type { ILogger } from './ILogger';\nimport { defaultLogger } from './DefaultLogger';\nimport { getLogger } from './loggerUtil';\n\n/**\n * Resolve the logger for a given API client: per-client logger first,\n * global (via `setLogger`) if a non-default one was installed, then the\n * built-in pino default.\n */\nexport function resolveLogger(\n client: { getLogger?: () => ILogger | null } | null | undefined,\n): ILogger {\n const perClient = client?.getLogger?.();\n if (perClient) return perClient;\n const global = getLogger();\n if (global !== defaultLogger) return global;\n return defaultLogger;\n}\n","import type { ApiClient } from '../ApiClient';\nimport type { LogContext } from './ILogger';\nimport { resolveLogger } from './resolveLogger';\n\ntype Level = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace';\n\ntype Emit = (\n client: ApiClient | null | undefined,\n message: string,\n context?: LogContext,\n) => void;\n\nconst emit =\n (level: Level): Emit =>\n (client, message, context) => {\n resolveLogger(client)[level](\n message,\n context && Object.keys(context).length > 0 ? context : undefined,\n );\n };\n\nexport const logFatal: Emit = emit('fatal');\nexport const logError: Emit = emit('error');\nexport const logWarn: Emit = emit('warn');\nexport const logInfo: Emit = emit('info');\nexport const logDebug: Emit = emit('debug');\nexport const logTrace: Emit = emit('trace');\n","import { ApiClient } from '../ApiClient';\nimport { logWarn, logInfo } from '../logger/clientLog';\nimport { ICircuitBreaker } from './ICircuitBreaker';\n\nexport type CircuitState = 'closed' | 'open' | 'half-open';\n\nexport interface CircuitBreakerConfig {\n failureThreshold?: number;\n resetTimeoutMs?: number;\n halfOpenMaxAttempts?: number;\n staleThresholdMs?: number;\n /** 'resolved' (default, current behavior) | 'template' (group by endpoint template path) */\n keyStrategy?: 'resolved' | 'template';\n /** Interval in ms for automatic cleanup of stale circuits. 0 or undefined disables. Recommended value: staleThresholdMs. */\n cleanupIntervalMs?: number;\n}\n\ninterface CircuitRecord {\n state: CircuitState;\n failures: number;\n lastFailureTime: number;\n halfOpenAttempts: number;\n}\n\nexport class CircuitBreaker implements ICircuitBreaker {\n private circuits: Map<string, CircuitRecord> = new Map();\n private readonly failureThreshold: number;\n private readonly resetTimeoutMs: number;\n private readonly halfOpenMaxAttempts: number;\n private readonly staleThresholdMs: number;\n private readonly keyStrategy: 'resolved' | 'template';\n private cleanupTimer: ReturnType<typeof setInterval> | null = null;\n private client: ApiClient | null = null;\n\n setClient(client: ApiClient | null): void {\n this.client = client;\n }\n\n constructor(config: CircuitBreakerConfig = {}) {\n this.failureThreshold = config.failureThreshold ?? 5;\n this.resetTimeoutMs = config.resetTimeoutMs ?? 30_000;\n this.halfOpenMaxAttempts = config.halfOpenMaxAttempts ?? 1;\n this.staleThresholdMs = config.staleThresholdMs ?? 3_600_000;\n this.keyStrategy = config.keyStrategy ?? 'resolved';\n\n const cleanupIntervalMs = config.cleanupIntervalMs;\n if (cleanupIntervalMs !== undefined && cleanupIntervalMs > 0) {\n this.startCleanupTimer(cleanupIntervalMs);\n }\n }\n\n private getKey(endpoint: string): string {\n return endpoint.split('?')[0]!;\n }\n\n private getOrCreate(key: string): CircuitRecord {\n let record = this.circuits.get(key);\n if (!record) {\n record = {\n state: 'closed',\n failures: 0,\n lastFailureTime: 0,\n halfOpenAttempts: 0,\n };\n this.circuits.set(key, record);\n }\n return record;\n }\n\n checkCircuit(endpoint: string): void {\n const key = this.getKey(endpoint);\n const record = this.getOrCreate(key);\n\n if (record.state === 'closed') return;\n\n if (record.state === 'open') {\n const elapsed = Date.now() - record.lastFailureTime;\n if (elapsed >= this.resetTimeoutMs) {\n record.state = 'half-open';\n // This call is the first probe, so it counts towards halfOpenMaxAttempts.\n record.halfOpenAttempts = 1;\n logInfo(\n this.client,\n `Circuit half-open for ${key}, allowing probe request`,\n { key },\n );\n return;\n }\n const remainingMs = this.resetTimeoutMs - elapsed;\n throw new CircuitOpenError(key, record.failures, remainingMs);\n }\n\n if (record.state === 'half-open') {\n if (record.halfOpenAttempts >= this.halfOpenMaxAttempts) {\n throw new CircuitOpenError(key, record.failures, this.resetTimeoutMs);\n }\n record.halfOpenAttempts++;\n }\n }\n\n recordSuccess(endpoint: string): void {\n const key = this.getKey(endpoint);\n const record = this.circuits.get(key);\n if (!record) return;\n\n // A success while open comes from a call admitted before the circuit\n // opened. Only a half-open probe may close the circuit.\n if (record.state === 'open') return;\n\n if (record.state === 'half-open') {\n logInfo(this.client, `Circuit closed for ${key} after successful probe`, {\n key,\n });\n }\n\n record.state = 'closed';\n record.failures = 0;\n record.halfOpenAttempts = 0;\n }\n\n recordFailure(endpoint: string, statusCode: number): void {\n // statusCode 0 = network/timeout; 420/429 = rate limited; >=500 = server errors\n if (\n statusCode !== 0 &&\n statusCode < 500 &&\n statusCode !== 420 &&\n statusCode !== 429\n ) {\n return;\n }\n\n const key = this.getKey(endpoint);\n const record = this.getOrCreate(key);\n\n record.failures++;\n record.lastFailureTime = Date.now();\n\n if (record.state === 'half-open') {\n record.state = 'open';\n logWarn(\n this.client,\n `Circuit re-opened for ${key} after failed probe (${record.failures} failures)`,\n { key, failures: record.failures },\n );\n return;\n }\n\n if (record.failures >= this.failureThreshold) {\n record.state = 'open';\n logWarn(\n this.client,\n `Circuit opened for ${key} after ${record.failures} consecutive failures`,\n { key, failures: record.failures },\n );\n }\n }\n\n getState(endpoint: string): CircuitState {\n const key = this.getKey(endpoint);\n const record = this.circuits.get(key);\n if (!record) return 'closed';\n\n if (record.state === 'open') {\n const elapsed = Date.now() - record.lastFailureTime;\n if (elapsed >= this.resetTimeoutMs) {\n return 'half-open';\n }\n }\n\n return record.state;\n }\n\n getStats(): {\n totalCircuits: number;\n openCircuits: number;\n circuits: Record<string, { state: CircuitState; failures: number }>;\n } {\n const circuits: Record<string, { state: CircuitState; failures: number }> =\n {};\n let openCircuits = 0;\n\n for (const [key, record] of this.circuits.entries()) {\n const state = this.getState(key);\n // eslint-disable-next-line security/detect-object-injection\n circuits[key] = { state, failures: record.failures };\n if (state === 'open') openCircuits++;\n }\n\n return {\n totalCircuits: this.circuits.size,\n openCircuits,\n circuits,\n };\n }\n\n reset(endpoint?: string): void {\n if (endpoint) {\n this.circuits.delete(this.getKey(endpoint));\n } else {\n this.circuits.clear();\n }\n }\n\n cleanup(): number {\n const now = Date.now();\n let cleaned = 0;\n for (const [key, record] of this.circuits.entries()) {\n if (\n record.state === 'closed' &&\n record.failures === 0 &&\n record.lastFailureTime > 0 &&\n now - record.lastFailureTime > this.staleThresholdMs\n ) {\n this.circuits.delete(key);\n cleaned++;\n }\n }\n if (cleaned > 0) {\n logInfo(\n this.client,\n `Circuit breaker cleanup: removed ${cleaned} stale circuits`,\n {\n cleaned,\n },\n );\n }\n return cleaned;\n }\n\n getKeyStrategy(): 'resolved' | 'template' {\n return this.keyStrategy;\n }\n\n destroy(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n this.circuits.clear();\n }\n\n shutdown(): void {\n this.destroy();\n }\n\n private startCleanupTimer(intervalMs: number): void {\n this.cleanupTimer = setInterval(() => {\n this.cleanup();\n }, intervalMs);\n // Don't prevent process exit (important for test runners and CLI tools)\n this.cleanupTimer.unref();\n }\n}\n\nexport class CircuitOpenError extends Error {\n readonly endpoint: string;\n readonly failures: number;\n readonly retryAfterMs: number;\n\n constructor(endpoint: string, failures: number, retryAfterMs: number) {\n super(\n `Circuit breaker open for ${endpoint} after ${failures} failures (retry after ${Math.ceil(retryAfterMs / 1000)}s)`,\n );\n this.name = 'CircuitOpenError';\n this.endpoint = endpoint;\n this.failures = failures;\n this.retryAfterMs = retryAfterMs;\n }\n}\n","const SENSITIVE_PARAMS = [\n 'token',\n 'access_token',\n 'api_key',\n 'refresh_token',\n 'client_secret',\n 'code',\n 'key',\n 'secret',\n 'auth',\n 'password',\n 'bearer',\n];\n\nexport function sanitizeUrl(url?: string): string | undefined {\n if (!url) return url;\n try {\n const parsed = new URL(url);\n for (const param of SENSITIVE_PARAMS) {\n if (parsed.searchParams.has(param)) {\n parsed.searchParams.set(param, '[REDACTED]');\n }\n }\n return parsed.toString();\n } catch {\n const qIndex = url.indexOf('?');\n return qIndex >= 0 ? url.substring(0, qIndex) + '?[params-redacted]' : url;\n }\n}\n\nexport class EsiError extends Error {\n public readonly url?: string;\n\n constructor(\n public readonly statusCode: number,\n message: string,\n url?: string,\n public readonly requestId?: string,\n ) {\n super(message);\n this.name = 'EsiError';\n this.url = sanitizeUrl(url);\n }\n\n isRateLimited(): boolean {\n return this.statusCode === 420 || this.statusCode === 429;\n }\n\n isNotFound(): boolean {\n return this.statusCode === 404;\n }\n\n isUnauthorized(): boolean {\n return this.statusCode === 401;\n }\n\n isForbidden(): boolean {\n return this.statusCode === 403;\n }\n\n isServerError(): boolean {\n return this.statusCode >= 500;\n }\n\n isTimeout(): boolean {\n return this.statusCode === 0;\n }\n\n get retryable(): boolean {\n return (\n this.statusCode === 0 ||\n this.statusCode === 420 ||\n this.statusCode === 429 ||\n this.statusCode === 502 ||\n this.statusCode === 503 ||\n this.statusCode === 504\n );\n }\n}\n\nexport function isEsiError(error: unknown): error is EsiError {\n return error instanceof EsiError;\n}\n\nexport function isRateLimited(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isRateLimited();\n}\n\nexport function isNotFound(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isNotFound();\n}\n\nexport function isUnauthorized(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isUnauthorized();\n}\n\nexport function isForbidden(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isForbidden();\n}\n\nexport function isServerError(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isServerError();\n}\n\nexport class TimeoutError extends EsiError {\n constructor(\n public readonly timeoutMs: number,\n url?: string,\n requestId?: string,\n ) {\n super(0, `Request timed out after ${timeoutMs}ms`, url, requestId);\n this.name = 'TimeoutError';\n }\n}\n\nexport function isTimeout(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError;\n}\n\nexport function isRetryable(error: unknown): error is EsiError {\n return error instanceof EsiError && error.retryable;\n}\n\n// Re-export CircuitOpenError for the type guard — avoid forcing consumers\n// to import from the circuitBreaker subpath just for error checking.\nimport { CircuitOpenError } from '../circuitBreaker/CircuitBreaker';\n\nexport function isCircuitOpen(error: unknown): error is CircuitOpenError {\n return error instanceof CircuitOpenError;\n}\n\nexport const buildError = (\n message: string,\n type: string = 'ERROR',\n url?: string,\n): Error => {\n const error = new Error(`[${type}] ${message}`);\n if (url) {\n (error as Error & { url: string }).url = url;\n }\n return error;\n};\n\nexport type ValidationDirection = 'request' | 'response';\n\nexport class EsiValidationError extends EsiError {\n public readonly validationError: unknown;\n public readonly direction: ValidationDirection;\n\n constructor(\n url: string,\n zodError: unknown,\n requestId?: string,\n direction: ValidationDirection = 'response',\n ) {\n const safeUrl = sanitizeUrl(url) ?? url;\n const label = direction === 'request' ? 'Request body' : 'Response';\n super(0, `${label} validation failed for ${safeUrl}`, url, requestId);\n this.name = 'EsiValidationError';\n this.validationError = zodError;\n this.direction = direction;\n }\n}\n\nexport function isValidationError(error: unknown): error is EsiValidationError {\n return error instanceof EsiValidationError;\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { ApiClient } from '../core/ApiClient.mjs';
2
+ import { BaseEsiClient } from './BaseEsiClient.mjs';
3
+ import { accessListEndpoints } from '../core/endpoints/accessListEndpoints.mjs';
4
+ import { AccessList } from '../types/api-responses.mjs';
5
+ export declare class AccessListsClient extends BaseEsiClient<typeof accessListEndpoints> {
6
+ constructor(client: ApiClient);
7
+ /**
8
+ * Retrieves the contents of an access list (ACL) including all character, corporation, and alliance entries.
9
+ *
10
+ * @param characterId - The ID of the character who owns the access list
11
+ * @param accessListId - The ID of the access list to retrieve
12
+ * @returns The access list with its entries
13
+ * @requires Authentication
14
+ */
15
+ getAccessList(characterId: number, accessListId: number): Promise<AccessList>;
16
+ /**
17
+ * Retrieves all access lists for a character.
18
+ *
19
+ * @param characterId - The ID of the character
20
+ * @returns An array of the character's access lists
21
+ * @requires Authentication
22
+ */
23
+ getCharacterAccessLists(characterId: number): Promise<AccessList[]>;
24
+ }
25
+ //# sourceMappingURL=AccessListsClient.d.ts.map
@@ -0,0 +1,59 @@
1
+ import { ApiClient } from '../core/ApiClient.mjs';
2
+ import { BaseEsiClient } from './BaseEsiClient.mjs';
3
+ import { allianceEndpoints } from '../core/endpoints/allianceEndpoints.mjs';
4
+ import { AllianceInfo, AllianceContact, AllianceContactLabel, AllianceIcon } from '../types/api-responses.mjs';
5
+ import { PageResult } from '../core/pagination/AsyncPaginationIterator.mjs';
6
+ export declare class AllianceClient extends BaseEsiClient<typeof allianceEndpoints> {
7
+ private contactApi;
8
+ constructor(client: ApiClient);
9
+ /**
10
+ * Retrieve public information about an alliance.
11
+ *
12
+ * @param allianceId - The ID of the alliance to look up
13
+ * @returns Public alliance information including name, ticker, and founding date
14
+ */
15
+ getAllianceById(allianceId: number): Promise<AllianceInfo>;
16
+ /**
17
+ * Retrieve contacts for an alliance.
18
+ *
19
+ * @deprecated Use ContactsClient.getAllianceContacts() instead
20
+ * @param allianceId - The ID of the alliance whose contacts to retrieve
21
+ * @returns A list of alliance contacts with standings and contact types
22
+ * @requires Authentication
23
+ */
24
+ getContacts(allianceId: number): Promise<AllianceContact[]>;
25
+ /**
26
+ * Retrieve custom contact labels for an alliance.
27
+ *
28
+ * @deprecated Use ContactsClient.getAllianceContactLabels() instead
29
+ * @param allianceId - The ID of the alliance whose contact labels to retrieve
30
+ * @returns A list of custom labels used to categorize alliance contacts
31
+ * @requires Authentication
32
+ */
33
+ getContactLabels(allianceId: number): Promise<AllianceContactLabel[]>;
34
+ /**
35
+ * Retrieve the list of corporation IDs that are members of an alliance.
36
+ *
37
+ * @param allianceId - The ID of the alliance whose member corporations to retrieve
38
+ * @returns An array of corporation IDs belonging to the alliance
39
+ */
40
+ getCorporations(allianceId: number): Promise<number[]>;
41
+ /**
42
+ * Retrieve icon URLs for an alliance.
43
+ *
44
+ * @param allianceId - The ID of the alliance whose icons to retrieve
45
+ * @returns Icon URLs at various resolutions for the alliance
46
+ */
47
+ getIcons(allianceId: number): Promise<AllianceIcon>;
48
+ /**
49
+ * Retrieve a list of all active alliance IDs in EVE Online.
50
+ *
51
+ * @returns An array of all active alliance IDs
52
+ */
53
+ getAlliances(): Promise<number[]>;
54
+ fetchAllAlliances(concurrency?: number): Promise<number[]>;
55
+ fetchAllCorporations(allianceId: number, concurrency?: number): Promise<number[]>;
56
+ streamAlliances(): AsyncGenerator<PageResult<number>, void, undefined>;
57
+ streamCorporations(allianceId: number): AsyncGenerator<PageResult<number>, void, undefined>;
58
+ }
59
+ //# sourceMappingURL=AllianceClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AllianceClient.d.ts","sourceRoot":"","sources":["../../src/clients/AllianceClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGxE,qBAAa,cAAe,SAAQ,aAAa,CAAC,OAAO,iBAAiB,CAAC;IACzE,OAAO,CAAC,UAAU,CAA2D;gBAEjE,MAAM,EAAE,SAAS;IAK7B;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1D;;;;;;;OAOG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAS3D;;;;;;;OAOG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IASrE;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAItD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAInD;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1D,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB,eAAe,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;IAItE,kBAAkB,CAChB,UAAU,EAAE,MAAM,GACjB,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;CAGvD"}
1
+ {"version":3,"file":"AllianceClient.d.ts","sourceRoot":"","sources":["../../src/clients/AllianceClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGxE,qBAAa,cAAe,SAAQ,aAAa,CAAC,OAAO,iBAAiB,CAAC;IACzE,OAAO,CAAC,UAAU,CAA2D;gBAEjE,MAAM,EAAE,SAAS;IAK7B;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1D;;;;;;;OAOG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAW3D;;;;;;;OAOG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAWrE;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAItD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAInD;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1D,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB,eAAe,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;IAItE,kBAAkB,CAChB,UAAU,EAAE,MAAM,GACjB,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;CAGvD"}
@@ -0,0 +1,65 @@
1
+ import { ApiClient } from '../core/ApiClient.mjs';
2
+ import { BaseEsiClient } from './BaseEsiClient.mjs';
3
+ import { assetEndpoints } from '../core/endpoints/assetEndpoints.mjs';
4
+ import { CharacterAsset, AssetLocation, AssetName } from '../types/api-responses.mjs';
5
+ import { PageResult } from '../core/pagination/AsyncPaginationIterator.mjs';
6
+ export declare class AssetsClient extends BaseEsiClient<typeof assetEndpoints> {
7
+ constructor(client: ApiClient);
8
+ /**
9
+ * Retrieve a list of assets owned by a character.
10
+ *
11
+ * @param characterId - The ID of the character whose assets to retrieve
12
+ * @returns A list of the character's assets including type, quantity, and location
13
+ * @requires Authentication
14
+ */
15
+ getCharacterAssets(characterId: number): Promise<CharacterAsset[]>;
16
+ /**
17
+ * Look up the locations of specific assets owned by a character via a bulk POST request.
18
+ *
19
+ * @param characterId - The ID of the character who owns the assets
20
+ * @param itemIds - An array of item IDs to look up locations for
21
+ * @returns Location information for each requested asset
22
+ * @requires Authentication
23
+ */
24
+ postCharacterAssetLocations(characterId: number, itemIds: number[]): Promise<AssetLocation[]>;
25
+ /**
26
+ * Look up the names of specific assets owned by a character via a bulk POST request.
27
+ *
28
+ * @param characterId - The ID of the character who owns the assets
29
+ * @param itemIds - An array of item IDs to look up names for
30
+ * @returns The user-assigned names for each requested asset
31
+ * @requires Authentication
32
+ */
33
+ postCharacterAssetNames(characterId: number, itemIds: number[]): Promise<AssetName[]>;
34
+ /**
35
+ * Retrieve a list of assets owned by a corporation.
36
+ *
37
+ * @param corporationId - The ID of the corporation whose assets to retrieve
38
+ * @returns A list of the corporation's assets including type, quantity, and location
39
+ * @requires Authentication
40
+ */
41
+ getCorporationAssets(corporationId: number): Promise<CharacterAsset[]>;
42
+ /**
43
+ * Look up the locations of specific assets owned by a corporation via a bulk POST request.
44
+ *
45
+ * @param corporationId - The ID of the corporation that owns the assets
46
+ * @param itemIds - An array of item IDs to look up locations for
47
+ * @returns Location information for each requested asset
48
+ * @requires Authentication
49
+ */
50
+ postCorporationAssetLocations(corporationId: number, itemIds: number[]): Promise<AssetLocation[]>;
51
+ /**
52
+ * Look up the names of specific assets owned by a corporation via a bulk POST request.
53
+ *
54
+ * @param corporationId - The ID of the corporation that owns the assets
55
+ * @param itemIds - An array of item IDs to look up names for
56
+ * @returns The user-assigned names for each requested asset
57
+ * @requires Authentication
58
+ */
59
+ postCorporationAssetNames(corporationId: number, itemIds: number[]): Promise<AssetName[]>;
60
+ fetchAllCharacterAssets(characterId: number, concurrency?: number): Promise<CharacterAsset[]>;
61
+ fetchAllCorporationAssets(corporationId: number, concurrency?: number): Promise<CharacterAsset[]>;
62
+ streamCharacterAssets(characterId: number): AsyncGenerator<PageResult<CharacterAsset>, void, undefined>;
63
+ streamCorporationAssets(corporationId: number): AsyncGenerator<PageResult<CharacterAsset>, void, undefined>;
64
+ }
65
+ //# sourceMappingURL=AssetsClient.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { ApiClient } from '../core/ApiClient.mjs';
2
+ import { createClient, WithMetadata, WithSafeMode } from '../core/endpoints/createClient.mjs';
3
+ import { EndpointMap } from '../core/endpoints/EndpointDefinition.mjs';
4
+ import { PageResult } from '../core/pagination/AsyncPaginationIterator.mjs';
5
+ type ClientMethods<T extends EndpointMap> = ReturnType<typeof createClient<T>>;
6
+ export declare abstract class BaseEsiClient<T extends EndpointMap> {
7
+ protected api: ClientMethods<T>;
8
+ protected _client: ApiClient;
9
+ protected _endpoints: T;
10
+ private _metaApi?;
11
+ private _safeApi?;
12
+ constructor(client: ApiClient, endpoints: T);
13
+ streamEndpoint<R>(endpointName: string & keyof T, ...args: unknown[]): AsyncGenerator<PageResult<R>, void, undefined>;
14
+ fetchAllEndpoint<R>(endpointName: string & keyof T, args: unknown[], concurrency?: number): Promise<R[]>;
15
+ withMetadata(): WithMetadata<Omit<this, 'withMetadata' | 'withSafeMode'>>;
16
+ withSafeMode(): WithSafeMode<Omit<this, 'withMetadata' | 'withSafeMode'>>;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=BaseEsiClient.d.ts.map