@lgriffin/esi.ts 10.0.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 (255) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +14 -5
  3. package/dist/EsiClient.d.mts +140 -0
  4. package/dist/EsiClientBuilder.d.mts +75 -0
  5. package/dist/auth/EsiTokenManager.d.mts +200 -0
  6. package/dist/auth/EveSsoClient.d.mts +88 -0
  7. package/dist/auth/errors.d.mts +42 -0
  8. package/dist/auth/index.d.mts +14 -0
  9. package/dist/auth/jwt.d.mts +43 -0
  10. package/dist/auth/pkce.d.mts +21 -0
  11. package/dist/auth/storage/FileTokenStorage.d.mts +44 -0
  12. package/dist/auth/storage/MemoryTokenStorage.d.mts +18 -0
  13. package/dist/auth/types.d.mts +42 -0
  14. package/dist/{chunk-7A72QFDF.mjs → chunk-D5L5HZVF.mjs} +3 -2
  15. package/dist/chunk-D5L5HZVF.mjs.map +1 -0
  16. package/dist/{chunk-HPSACXX3.js → chunk-XIB2OXEZ.js} +3 -2
  17. package/dist/chunk-XIB2OXEZ.js.map +1 -0
  18. package/dist/clients/AccessListsClient.d.mts +25 -0
  19. package/dist/clients/AllianceClient.d.mts +59 -0
  20. package/dist/clients/AssetsClient.d.mts +65 -0
  21. package/dist/clients/BaseEsiClient.d.mts +19 -0
  22. package/dist/clients/CalendarClient.d.mts +48 -0
  23. package/dist/clients/CharacterClient.d.mts +134 -0
  24. package/dist/clients/ClonesClient.d.mts +27 -0
  25. package/dist/clients/ContactsClient.d.mts +96 -0
  26. package/dist/clients/ContractsClient.d.mts +91 -0
  27. package/dist/clients/CorporationProjectsClient.d.mts +54 -0
  28. package/dist/clients/CorporationsClient.d.mts +219 -0
  29. package/dist/clients/CosmeticsClient.d.mts +11 -0
  30. package/dist/clients/DogmaClient.d.mts +42 -0
  31. package/dist/clients/FactionClient.d.mts +60 -0
  32. package/dist/clients/FittingsClient.d.mts +38 -0
  33. package/dist/clients/FleetClient.d.mts +134 -0
  34. package/dist/clients/FreelanceJobsClient.d.mts +61 -0
  35. package/dist/clients/IncursionsClient.d.mts +14 -0
  36. package/dist/clients/IndustryClient.d.mts +86 -0
  37. package/dist/clients/InsuranceClient.d.mts +14 -0
  38. package/dist/clients/KillmailsClient.d.mts +37 -0
  39. package/dist/clients/LocationClient.d.mts +32 -0
  40. package/dist/clients/LoyaltyClient.d.mts +28 -0
  41. package/dist/clients/MailClient.d.mts +104 -0
  42. package/dist/clients/MarketClient.d.mts +102 -0
  43. package/dist/clients/MercenaryClient.d.mts +42 -0
  44. package/dist/clients/MetaClient.d.mts +45 -0
  45. package/dist/clients/MilitaryCampaignsClient.d.mts +53 -0
  46. package/dist/clients/ParagonHubClient.d.mts +13 -0
  47. package/dist/clients/PiClient.d.mts +45 -0
  48. package/dist/clients/RouteClient.d.mts +25 -0
  49. package/dist/clients/SearchClient.d.mts +17 -0
  50. package/dist/clients/SkillsClient.d.mts +39 -0
  51. package/dist/clients/SkyhooksClient.d.mts +48 -0
  52. package/dist/clients/SovereigntyClient.d.mts +20 -0
  53. package/dist/clients/StatusClient.d.mts +14 -0
  54. package/dist/clients/UiClient.d.mts +44 -0
  55. package/dist/clients/UniverseClient.d.mts +212 -0
  56. package/dist/clients/WalletClient.d.mts +70 -0
  57. package/dist/clients/WarsClient.d.mts +33 -0
  58. package/dist/core/ApiClient.d.mts +73 -0
  59. package/dist/core/ApiClientBuilder.d.mts +24 -0
  60. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  61. package/dist/core/BatchRequestHandler.d.mts +12 -0
  62. package/dist/core/ClientRegistry.d.mts +45 -0
  63. package/dist/core/EsiDiagnostics.d.mts +35 -0
  64. package/dist/core/IDeduplicator.d.mts +22 -0
  65. package/dist/core/IDeduplicator.d.ts +16 -0
  66. package/dist/core/IDeduplicator.d.ts.map +1 -1
  67. package/dist/core/IRetryStrategy.d.mts +5 -0
  68. package/dist/core/RequestDeduplicator.d.mts +21 -0
  69. package/dist/core/RequestDeduplicator.d.ts +11 -0
  70. package/dist/core/RequestDeduplicator.d.ts.map +1 -1
  71. package/dist/core/RetryStrategy.d.mts +21 -0
  72. package/dist/core/cache/ETagCacheManager.d.mts +75 -0
  73. package/dist/core/cache/ICache.d.mts +27 -0
  74. package/dist/core/cache/cacheKey.d.ts +11 -0
  75. package/dist/core/cache/cacheKey.d.ts.map +1 -1
  76. package/dist/core/circuitBreaker/CircuitBreaker.d.mts +52 -0
  77. package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
  78. package/dist/core/circuitBreaker/ICircuitBreaker.d.mts +23 -0
  79. package/dist/core/configureApiClient.d.mts +18 -0
  80. package/dist/core/constants.d.ts +2 -2
  81. package/dist/core/endpoints/EndpointDefinition.d.mts +63 -0
  82. package/dist/core/endpoints/accessListEndpoints.d.mts +34 -0
  83. package/dist/core/endpoints/allianceEndpoints.d.mts +43 -0
  84. package/dist/core/endpoints/assetEndpoints.d.mts +76 -0
  85. package/dist/core/endpoints/buildEndpointPath.d.mts +7 -0
  86. package/dist/core/endpoints/calendarEndpoints.d.mts +54 -0
  87. package/dist/core/endpoints/characterEndpoints.d.mts +185 -0
  88. package/dist/core/endpoints/cloneEndpoints.d.mts +32 -0
  89. package/dist/core/endpoints/contactEndpoints.d.mts +106 -0
  90. package/dist/core/endpoints/contractEndpoints.d.mts +168 -0
  91. package/dist/core/endpoints/corporationEndpoints.d.mts +324 -0
  92. package/dist/core/endpoints/corporationProjectEndpoints.d.mts +102 -0
  93. package/dist/core/endpoints/cosmeticsEndpoints.d.mts +52 -0
  94. package/dist/core/endpoints/createClient.d.mts +69 -0
  95. package/dist/core/endpoints/dogmaEndpoints.d.mts +89 -0
  96. package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -1
  97. package/dist/core/endpoints/esi-rate-limit-groups.generated.d.mts +7 -0
  98. package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -1
  99. package/dist/core/endpoints/esi-scopes.generated.d.mts +3 -0
  100. package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -1
  101. package/dist/core/endpoints/factionEndpoints.d.mts +194 -0
  102. package/dist/core/endpoints/fittingEndpoints.d.mts +34 -0
  103. package/dist/core/endpoints/fleetEndpoints.d.mts +137 -0
  104. package/dist/core/endpoints/freelanceJobsEndpoints.d.mts +181 -0
  105. package/dist/core/endpoints/incursionEndpoints.d.mts +19 -0
  106. package/dist/core/endpoints/industryEndpoints.d.mts +138 -0
  107. package/dist/core/endpoints/insuranceEndpoints.d.mts +17 -0
  108. package/dist/core/endpoints/killmailEndpoints.d.mts +62 -0
  109. package/dist/core/endpoints/locationEndpoints.d.mts +37 -0
  110. package/dist/core/endpoints/loyaltyEndpoints.d.mts +32 -0
  111. package/dist/core/endpoints/mailEndpoints.d.mts +111 -0
  112. package/dist/core/endpoints/marketEndpoints.d.mts +191 -0
  113. package/dist/core/endpoints/mercenaryEndpoints.d.mts +79 -0
  114. package/dist/core/endpoints/metaEndpoints.d.mts +50 -0
  115. package/dist/core/endpoints/militaryCampaignEndpoints.d.mts +87 -0
  116. package/dist/core/endpoints/paragonHubEndpoints.d.mts +163 -0
  117. package/dist/core/endpoints/piEndpoints.d.mts +101 -0
  118. package/dist/core/endpoints/routeEndpoints.d.mts +14 -0
  119. package/dist/core/endpoints/searchEndpoints.d.mts +26 -0
  120. package/dist/core/endpoints/skillEndpoints.d.mts +52 -0
  121. package/dist/core/endpoints/skyhookEndpoints.d.mts +111 -0
  122. package/dist/core/endpoints/sovereigntyEndpoints.d.mts +59 -0
  123. package/dist/core/endpoints/statusEndpoints.d.mts +14 -0
  124. package/dist/core/endpoints/uiEndpoints.d.mts +43 -0
  125. package/dist/core/endpoints/universeEndpoints.d.mts +456 -0
  126. package/dist/core/endpoints/walletEndpoints.d.mts +98 -0
  127. package/dist/core/endpoints/warEndpoints.d.mts +51 -0
  128. package/dist/core/logger/DefaultLogger.d.mts +31 -0
  129. package/dist/core/logger/ILogger.d.mts +17 -0
  130. package/dist/core/logger/NoopLogger.d.mts +7 -0
  131. package/dist/core/logger/loggerUtil.d.mts +11 -0
  132. package/dist/core/middleware/Middleware.d.mts +30 -0
  133. package/dist/core/pagination/AsyncPaginationIterator.d.mts +12 -0
  134. package/dist/core/pagination/CursorPaginationHandler.d.mts +68 -0
  135. package/dist/core/rateLimiter/IRateLimiter.d.mts +27 -0
  136. package/dist/core/rateLimiter/RateLimiter.d.mts +62 -0
  137. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  138. package/dist/core/requestPipeline/cachePolicy.d.ts +11 -1
  139. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  140. package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
  141. package/dist/core/requestPipeline/index.d.ts +1 -1
  142. package/dist/core/requestPipeline/index.d.ts.map +1 -1
  143. package/dist/core/requestPipeline/paginationOrchestration.d.ts +1 -1
  144. package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
  145. package/dist/core/requestPipeline/statusHandling.d.ts +6 -0
  146. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  147. package/dist/core/util/error.d.mts +37 -0
  148. package/dist/core/util/retry.d.mts +8 -0
  149. package/dist/core/util/retry.d.ts.map +1 -1
  150. package/dist/errors.d.mts +5 -0
  151. package/dist/errors.js +2 -2
  152. package/dist/errors.mjs +1 -1
  153. package/dist/index.d.mts +81 -0
  154. package/dist/index.js +373 -195
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.mjs +266 -88
  157. package/dist/index.mjs.map +1 -1
  158. package/dist/schemas/access-lists.d.mts +16 -0
  159. package/dist/schemas/alliance.d.mts +26 -0
  160. package/dist/schemas/assets.d.mts +24 -0
  161. package/dist/schemas/calendar.d.mts +27 -0
  162. package/dist/schemas/character.d.mts +109 -0
  163. package/dist/schemas/clones.d.mts +17 -0
  164. package/dist/schemas/common.d.mts +74 -0
  165. package/dist/schemas/contacts.d.mts +14 -0
  166. package/dist/schemas/contracts.d.mts +104 -0
  167. package/dist/schemas/corporation-projects.d.mts +104 -0
  168. package/dist/schemas/corporation.d.mts +193 -0
  169. package/dist/schemas/cosmetics.d.mts +58 -0
  170. package/dist/schemas/dogma.d.mts +57 -0
  171. package/dist/schemas/esiEnum.d.mts +3 -0
  172. package/dist/schemas/faction-warfare.d.mts +203 -0
  173. package/dist/schemas/fittings.d.mts +13 -0
  174. package/dist/schemas/fleet.d.mts +37 -0
  175. package/dist/schemas/freelance-jobs.d.mts +171 -0
  176. package/dist/schemas/incursions.d.mts +12 -0
  177. package/dist/schemas/index.d.mts +39 -0
  178. package/dist/schemas/industry.d.mts +99 -0
  179. package/dist/schemas/insurance.d.mts +10 -0
  180. package/dist/schemas/killmails.d.mts +38 -0
  181. package/dist/schemas/location.d.mts +18 -0
  182. package/dist/schemas/loyalty.d.mts +18 -0
  183. package/dist/schemas/mail.d.mts +53 -0
  184. package/dist/schemas/market.d.mts +123 -0
  185. package/dist/schemas/mercenary.d.mts +74 -0
  186. package/dist/schemas/meta.d.mts +36 -0
  187. package/dist/schemas/military-campaigns.d.mts +26 -0
  188. package/dist/schemas/paragon-hub.d.mts +96 -0
  189. package/dist/schemas/pi.d.mts +71 -0
  190. package/dist/schemas/skills.d.mts +28 -0
  191. package/dist/schemas/skyhooks.d.mts +129 -0
  192. package/dist/schemas/sovereignty.d.mts +56 -0
  193. package/dist/schemas/status.d.mts +8 -0
  194. package/dist/schemas/universe.d.mts +285 -0
  195. package/dist/schemas/wallet.d.mts +45 -0
  196. package/dist/schemas/wars.d.mts +27 -0
  197. package/dist/sde/IStaticDataProvider.d.mts +106 -0
  198. package/dist/sde/MemorySdeProvider.d.mts +167 -0
  199. package/dist/sde/SdeDataProvider.d.mts +119 -0
  200. package/dist/sde/SdeTestDataFactory.d.mts +33 -0
  201. package/dist/sde/errors.d.mts +23 -0
  202. package/dist/sde/index.d.mts +9 -0
  203. package/dist/sde/memory.d.mts +8 -0
  204. package/dist/sde/types.d.mts +1039 -0
  205. package/dist/sde/version.d.mts +7 -0
  206. package/dist/testing/TestDataFactory.d.mts +172 -0
  207. package/dist/testing/index.d.mts +2 -0
  208. package/dist/testing/index.js +2 -2
  209. package/dist/testing/index.mjs +1 -1
  210. package/dist/types/access-lists.d.mts +5 -0
  211. package/dist/types/alliance.d.mts +7 -0
  212. package/dist/types/api-responses.d.mts +40 -0
  213. package/dist/types/assets.d.mts +6 -0
  214. package/dist/types/branded.d.mts +23 -0
  215. package/dist/types/calendar.d.mts +6 -0
  216. package/dist/types/character.d.mts +17 -0
  217. package/dist/types/clones.d.mts +4 -0
  218. package/dist/types/common.d.mts +19 -0
  219. package/dist/types/contacts.d.mts +5 -0
  220. package/dist/types/contracts.d.mts +9 -0
  221. package/dist/types/corporation-projects.d.mts +10 -0
  222. package/dist/types/corporation.d.mts +19 -0
  223. package/dist/types/cosmetics.d.mts +8 -0
  224. package/dist/types/dogma.d.mts +6 -0
  225. package/dist/types/faction-warfare.d.mts +17 -0
  226. package/dist/types/fittings.d.mts +4 -0
  227. package/dist/types/fleet.d.mts +7 -0
  228. package/dist/types/freelance-jobs.d.mts +12 -0
  229. package/dist/types/generated/esi-spec.generated.d.mts +2136 -0
  230. package/dist/types/generated/esi-spec.generated.d.ts +164 -16
  231. package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
  232. package/dist/types/generated/spec-alignment.check.d.ts +2 -2
  233. package/dist/types/incursions.d.mts +4 -0
  234. package/dist/types/industry.d.mts +11 -0
  235. package/dist/types/insurance.d.mts +4 -0
  236. package/dist/types/killmails.d.mts +5 -0
  237. package/dist/types/location.d.mts +6 -0
  238. package/dist/types/loyalty.d.mts +5 -0
  239. package/dist/types/mail.d.mts +6 -0
  240. package/dist/types/market.d.mts +12 -0
  241. package/dist/types/mercenary.d.mts +7 -0
  242. package/dist/types/meta.d.mts +9 -0
  243. package/dist/types/military-campaigns.d.mts +6 -0
  244. package/dist/types/paragon-hub.d.mts +8 -0
  245. package/dist/types/pi.d.mts +6 -0
  246. package/dist/types/skills.d.mts +5 -0
  247. package/dist/types/skyhooks.d.mts +8 -0
  248. package/dist/types/sovereignty.d.mts +6 -0
  249. package/dist/types/status.d.mts +4 -0
  250. package/dist/types/universe.d.mts +27 -0
  251. package/dist/types/wallet.d.mts +6 -0
  252. package/dist/types/wars.d.mts +4 -0
  253. package/package.json +92 -24
  254. package/dist/chunk-7A72QFDF.mjs.map +0 -1
  255. package/dist/chunk-HPSACXX3.js.map +0 -1
@@ -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
@@ -4,6 +4,17 @@ export declare class RequestDeduplicator implements IDeduplicator {
4
4
  private client;
5
5
  setClient(client: import('./ApiClient').ApiClient | null): void;
6
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;
7
18
  get pending(): number;
8
19
  clear(): void;
9
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;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,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
@@ -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
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../../src/core/circuitBreaker/CircuitBreaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4FAA4F;IAC5F,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,4HAA4H;IAC5H,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AASD,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;gBAI7B,MAAM,GAAE,oBAAyB;IAa7C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,WAAW;IAcnB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA8BpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBrC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAqCzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAexC,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrE;IAmBD,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ9B,OAAO,IAAI,MAAM;IA0BjB,cAAc,IAAI,UAAU,GAAG,UAAU;IAIzC,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,IAAI;IAIhB,OAAO,CAAC,iBAAiB;CAO1B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CASrE"}
1
+ {"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../../src/core/circuitBreaker/CircuitBreaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4FAA4F;IAC5F,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,4HAA4H;IAC5H,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AASD,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;gBAI7B,MAAM,GAAE,oBAAyB;IAa7C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,WAAW;IAcnB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA+BpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAoBrC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAqCzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAexC,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrE;IAmBD,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ9B,OAAO,IAAI,MAAM;IA0BjB,cAAc,IAAI,UAAU,GAAG,UAAU;IAIzC,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,IAAI;IAIhB,OAAO,CAAC,iBAAiB;CAO1B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CASrE"}
@@ -0,0 +1,23 @@
1
+ import { CircuitState } from './CircuitBreaker.mjs';
2
+ export interface ICircuitBreaker {
3
+ checkCircuit(endpoint: string): void;
4
+ recordSuccess(endpoint: string): void;
5
+ recordFailure(endpoint: string, statusCode: number): void;
6
+ getState(endpoint: string): CircuitState;
7
+ getStats(): {
8
+ totalCircuits: number;
9
+ openCircuits: number;
10
+ circuits: Record<string, {
11
+ state: CircuitState;
12
+ failures: number;
13
+ }>;
14
+ };
15
+ reset(endpoint?: string): void;
16
+ cleanup(): number;
17
+ shutdown(): void;
18
+ /** Release resources (timers). Optional for backward compatibility. */
19
+ destroy?(): void;
20
+ /** Returns the configured key strategy. Optional for backward compatibility. */
21
+ getKeyStrategy?(): 'resolved' | 'template';
22
+ }
23
+ //# sourceMappingURL=ICircuitBreaker.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { ApiClient } from './ApiClient.mjs';
2
+ import { RequestDeduplicator } from './RequestDeduplicator.mjs';
3
+ import type { EsiClientConfig } from '../EsiClient.mjs';
4
+ export interface ConfigureApiClientResult {
5
+ deduplicator: RequestDeduplicator | null;
6
+ }
7
+ /**
8
+ * Configures an existing ApiClient with the full middleware stack
9
+ * based on an EsiClientConfig. This is the single source of truth
10
+ * for how config maps to middleware — used by EsiClient,
11
+ * CustomEsiClient, and EsiApiFactory.
12
+ *
13
+ * The caller is responsible for creating the ApiClient (with baseUrl,
14
+ * clientId, accessToken) and setting datasource/language/tokenProvider
15
+ * before calling this function, since those vary by construction surface.
16
+ */
17
+ export declare function configureApiClient(client: ApiClient, config?: EsiClientConfig): ConfigureApiClientResult;
18
+ //# sourceMappingURL=configureApiClient.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_NAME = "esi.ts";
2
- export declare const PACKAGE_VERSION = "10.0.0";
3
- export declare const USER_AGENT = "esi.ts/10.0.0";
2
+ export declare const PACKAGE_VERSION = "10.2.0";
3
+ export declare const USER_AGENT = "esi.ts/10.2.0";
4
4
  export declare const COMPATIBILITY_DATE = "2026-05-19";
5
5
  //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,63 @@
1
+ import { z } from 'zod';
2
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
3
+ export interface DeprecationInfo {
4
+ message?: string;
5
+ replacedBy?: string;
6
+ sunsetDate?: string;
7
+ }
8
+ export interface EndpointDefinition {
9
+ /** URL template with placeholders, e.g. 'alliances/{allianceId}/' */
10
+ path: string;
11
+ /** HTTP method */
12
+ method: HttpMethod;
13
+ /** Whether the endpoint requires an auth token */
14
+ requiresAuth: boolean;
15
+ /** Path parameter names in method signature order */
16
+ pathParams?: readonly string[];
17
+ /** Maps method param name to query string key, e.g. { typeId: 'type_id' } */
18
+ queryParams?: Record<string, string>;
19
+ /** Whether the method accepts a body parameter (for POST/PUT/DELETE) */
20
+ hasBody?: boolean;
21
+ /** Custom body builder for endpoints that construct body from individual params */
22
+ bodyBuilder?: (...args: any[]) => unknown;
23
+ /** Whether this endpoint uses cursor-based pagination (before/after tokens) */
24
+ cursorPagination?: boolean;
25
+ /** Mark an endpoint as deprecated with optional migration guidance */
26
+ deprecated?: DeprecationInfo;
27
+ /** Zod schema for runtime response validation */
28
+ responseSchema?: z.ZodType;
29
+ /** Zod schema for runtime request body validation (opt-in via validateRequest) */
30
+ requestSchema?: z.ZodType;
31
+ }
32
+ export type EndpointMap = Record<string, EndpointDefinition>;
33
+ /** Convert a readonly string tuple to a tuple of number | string (one per path param) */
34
+ type PathParamArgs<P> = P extends readonly [
35
+ unknown,
36
+ ...infer Rest extends readonly unknown[]
37
+ ] ? [number | string, ...PathParamArgs<Rest>] : [];
38
+ /** Compute the method parameter tuple from an endpoint definition */
39
+ export type EndpointArgs<D> = D extends {
40
+ pathParams: infer P extends readonly string[];
41
+ } ? D extends {
42
+ bodyBuilder: (...args: infer BA) => unknown;
43
+ } ? D extends {
44
+ queryParams: Record<string, string>;
45
+ } ? [
46
+ ...PathParamArgs<P>,
47
+ ...(string | number | boolean | undefined)[],
48
+ ...BA
49
+ ] : [...PathParamArgs<P>, ...BA] : D extends {
50
+ hasBody: true;
51
+ } ? [...PathParamArgs<P>, body: object] : D extends {
52
+ queryParams: Record<string, string>;
53
+ } ? [...PathParamArgs<P>, ...(string | number | boolean | undefined)[]] : PathParamArgs<P> : D extends {
54
+ bodyBuilder: (...args: infer BA) => unknown;
55
+ } ? D extends {
56
+ queryParams: Record<string, string>;
57
+ } ? [...(string | number | boolean | undefined)[], ...BA] : BA : D extends {
58
+ hasBody: true;
59
+ } ? [body: object] : D extends {
60
+ queryParams: Record<string, string>;
61
+ } ? (string | number | boolean | undefined)[] : [];
62
+ export {};
63
+ //# sourceMappingURL=EndpointDefinition.d.ts.map
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ export declare const accessListEndpoints: {
3
+ readonly getAccessList: {
4
+ readonly path: "characters/{characterId}/access-lists/{accessListId}";
5
+ readonly method: "GET";
6
+ readonly requiresAuth: true;
7
+ readonly pathParams: readonly ["characterId", "accessListId"];
8
+ readonly responseSchema: z.ZodObject<{
9
+ access_list_id: z.ZodNumber;
10
+ name: z.ZodString;
11
+ entries: z.ZodArray<z.ZodObject<{
12
+ entity_id: z.ZodNumber;
13
+ entity_type: z.ZodType<(string & {}) | "character" | "corporation" | "alliance", unknown, z.core.$ZodTypeInternals<(string & {}) | "character" | "corporation" | "alliance", unknown>>;
14
+ access_type: z.ZodType<(string & {}) | "allowed" | "blocked", unknown, z.core.$ZodTypeInternals<(string & {}) | "allowed" | "blocked", unknown>>;
15
+ }, z.core.$loose>>;
16
+ }, z.core.$loose>;
17
+ };
18
+ readonly getCharacterAccessLists: {
19
+ readonly path: "characters/{characterId}/access-lists";
20
+ readonly method: "GET";
21
+ readonly requiresAuth: true;
22
+ readonly pathParams: readonly ["characterId"];
23
+ readonly responseSchema: z.ZodArray<z.ZodObject<{
24
+ access_list_id: z.ZodNumber;
25
+ name: z.ZodString;
26
+ entries: z.ZodArray<z.ZodObject<{
27
+ entity_id: z.ZodNumber;
28
+ entity_type: z.ZodType<(string & {}) | "character" | "corporation" | "alliance", unknown, z.core.$ZodTypeInternals<(string & {}) | "character" | "corporation" | "alliance", unknown>>;
29
+ access_type: z.ZodType<(string & {}) | "allowed" | "blocked", unknown, z.core.$ZodTypeInternals<(string & {}) | "allowed" | "blocked", unknown>>;
30
+ }, z.core.$loose>>;
31
+ }, z.core.$loose>>;
32
+ };
33
+ };
34
+ //# sourceMappingURL=accessListEndpoints.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { z } from 'zod';
2
+ export declare const allianceEndpoints: {
3
+ readonly getAllianceById: {
4
+ readonly path: "alliances/{allianceId}/";
5
+ readonly method: "GET";
6
+ readonly requiresAuth: false;
7
+ readonly pathParams: readonly ["allianceId"];
8
+ readonly responseSchema: z.ZodObject<{
9
+ alliance_id: z.ZodOptional<z.ZodNumber>;
10
+ name: z.ZodString;
11
+ ticker: z.ZodString;
12
+ creator_id: z.ZodNumber;
13
+ creator_corporation_id: z.ZodNumber;
14
+ executor_corporation_id: z.ZodOptional<z.ZodNumber>;
15
+ date_founded: z.ZodString;
16
+ faction_id: z.ZodOptional<z.ZodNumber>;
17
+ }, z.core.$loose>;
18
+ };
19
+ readonly getCorporations: {
20
+ readonly path: "alliances/{allianceId}/corporations/";
21
+ readonly method: "GET";
22
+ readonly requiresAuth: false;
23
+ readonly pathParams: readonly ["allianceId"];
24
+ readonly responseSchema: z.ZodArray<z.ZodNumber>;
25
+ };
26
+ readonly getIcons: {
27
+ readonly path: "alliances/{allianceId}/icons/";
28
+ readonly method: "GET";
29
+ readonly requiresAuth: false;
30
+ readonly pathParams: readonly ["allianceId"];
31
+ readonly responseSchema: z.ZodObject<{
32
+ px64x64: z.ZodOptional<z.ZodString>;
33
+ px128x128: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$loose>;
35
+ };
36
+ readonly getAlliances: {
37
+ readonly path: "alliances";
38
+ readonly method: "GET";
39
+ readonly requiresAuth: false;
40
+ readonly responseSchema: z.ZodArray<z.ZodNumber>;
41
+ };
42
+ };
43
+ //# sourceMappingURL=allianceEndpoints.d.ts.map
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ export declare const assetEndpoints: {
3
+ readonly getCharacterAssets: {
4
+ readonly path: "characters/{characterId}/assets/";
5
+ readonly method: "GET";
6
+ readonly requiresAuth: true;
7
+ readonly pathParams: readonly ["characterId"];
8
+ readonly responseSchema: z.ZodArray<z.ZodObject<{
9
+ item_id: z.ZodNumber;
10
+ type_id: z.ZodNumber;
11
+ quantity: z.ZodNumber;
12
+ location_id: z.ZodNumber;
13
+ location_type: z.ZodType<(string & {}) | "other" | "solar_system" | "station" | "item", unknown, z.core.$ZodTypeInternals<(string & {}) | "other" | "solar_system" | "station" | "item", unknown>>;
14
+ location_flag: z.ZodString;
15
+ is_singleton: z.ZodBoolean;
16
+ is_blueprint_copy: z.ZodOptional<z.ZodBoolean>;
17
+ }, z.core.$loose>>;
18
+ };
19
+ readonly getCorporationAssets: {
20
+ readonly path: "corporations/{corporationId}/assets/";
21
+ readonly method: "GET";
22
+ readonly requiresAuth: true;
23
+ readonly pathParams: readonly ["corporationId"];
24
+ readonly responseSchema: z.ZodArray<z.ZodObject<{
25
+ item_id: z.ZodNumber;
26
+ type_id: z.ZodNumber;
27
+ quantity: z.ZodNumber;
28
+ location_id: z.ZodNumber;
29
+ location_type: z.ZodType<(string & {}) | "other" | "solar_system" | "station" | "item", unknown, z.core.$ZodTypeInternals<(string & {}) | "other" | "solar_system" | "station" | "item", unknown>>;
30
+ location_flag: z.ZodString;
31
+ is_singleton: z.ZodBoolean;
32
+ is_blueprint_copy: z.ZodOptional<z.ZodBoolean>;
33
+ }, z.core.$loose>>;
34
+ };
35
+ readonly postCharacterAssetLocations: {
36
+ readonly path: "characters/{characterId}/assets/locations/";
37
+ readonly method: "POST";
38
+ readonly requiresAuth: true;
39
+ readonly pathParams: readonly ["characterId"];
40
+ readonly bodyBuilder: (itemIds: number[]) => number[];
41
+ readonly responseSchema: z.ZodArray<z.ZodObject<{
42
+ item_id: z.ZodNumber;
43
+ position: z.ZodObject<{
44
+ x: z.ZodNumber;
45
+ y: z.ZodNumber;
46
+ z: z.ZodNumber;
47
+ }, z.core.$loose>;
48
+ }, z.core.$loose>>;
49
+ };
50
+ readonly postCharacterAssetNames: {
51
+ readonly path: "characters/{characterId}/assets/names/";
52
+ readonly method: "POST";
53
+ readonly requiresAuth: true;
54
+ readonly pathParams: readonly ["characterId"];
55
+ readonly bodyBuilder: (itemIds: number[]) => number[];
56
+ readonly responseSchema: z.ZodArray<z.ZodObject<{
57
+ item_id: z.ZodNumber;
58
+ name: z.ZodString;
59
+ }, z.core.$loose>>;
60
+ };
61
+ readonly postCorporationAssetLocations: {
62
+ readonly path: "corporations/{corporationId}/assets/locations/";
63
+ readonly method: "POST";
64
+ readonly requiresAuth: true;
65
+ readonly pathParams: readonly ["corporationId"];
66
+ readonly bodyBuilder: (itemIds: number[]) => number[];
67
+ };
68
+ readonly postCorporationAssetNames: {
69
+ readonly path: "corporations/{corporationId}/assets/names/";
70
+ readonly method: "POST";
71
+ readonly requiresAuth: true;
72
+ readonly pathParams: readonly ["corporationId"];
73
+ readonly bodyBuilder: (itemIds: number[]) => number[];
74
+ };
75
+ };
76
+ //# sourceMappingURL=assetEndpoints.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { EndpointDefinition } from './EndpointDefinition.mjs';
2
+ export interface EndpointPathResult {
3
+ path: string;
4
+ body: unknown;
5
+ }
6
+ export declare function buildEndpointPath(def: EndpointDefinition, args: unknown[], datasource?: string): EndpointPathResult;
7
+ //# sourceMappingURL=buildEndpointPath.d.ts.map