@lgriffin/esi.ts 9.4.0 → 9.7.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 (130) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +71 -52
  3. package/dist/EsiClient.d.ts +4 -0
  4. package/dist/EsiClient.d.ts.map +1 -1
  5. package/dist/clients/AllianceClient.d.ts +2 -0
  6. package/dist/clients/AllianceClient.d.ts.map +1 -1
  7. package/dist/clients/AssetsClient.d.ts +2 -0
  8. package/dist/clients/AssetsClient.d.ts.map +1 -1
  9. package/dist/clients/BaseEsiClient.d.ts +1 -0
  10. package/dist/clients/BaseEsiClient.d.ts.map +1 -1
  11. package/dist/clients/CalendarClient.d.ts +2 -0
  12. package/dist/clients/CalendarClient.d.ts.map +1 -1
  13. package/dist/clients/CharacterClient.d.ts +8 -0
  14. package/dist/clients/CharacterClient.d.ts.map +1 -1
  15. package/dist/clients/ClonesClient.d.ts +1 -0
  16. package/dist/clients/ClonesClient.d.ts.map +1 -1
  17. package/dist/clients/ContactsClient.d.ts +6 -0
  18. package/dist/clients/ContactsClient.d.ts.map +1 -1
  19. package/dist/clients/ContractsClient.d.ts +3 -0
  20. package/dist/clients/ContractsClient.d.ts.map +1 -1
  21. package/dist/clients/CorporationsClient.d.ts +17 -0
  22. package/dist/clients/CorporationsClient.d.ts.map +1 -1
  23. package/dist/clients/CosmeticsClient.d.ts +11 -0
  24. package/dist/clients/CosmeticsClient.d.ts.map +1 -0
  25. package/dist/clients/FittingsClient.d.ts +1 -0
  26. package/dist/clients/FittingsClient.d.ts.map +1 -1
  27. package/dist/clients/FleetClient.d.ts +2 -0
  28. package/dist/clients/FleetClient.d.ts.map +1 -1
  29. package/dist/clients/IndustryClient.d.ts +8 -0
  30. package/dist/clients/IndustryClient.d.ts.map +1 -1
  31. package/dist/clients/KillmailsClient.d.ts +2 -0
  32. package/dist/clients/KillmailsClient.d.ts.map +1 -1
  33. package/dist/clients/LoyaltyClient.d.ts +2 -0
  34. package/dist/clients/LoyaltyClient.d.ts.map +1 -1
  35. package/dist/clients/MailClient.d.ts +5 -0
  36. package/dist/clients/MailClient.d.ts.map +1 -1
  37. package/dist/clients/MarketClient.d.ts +6 -0
  38. package/dist/clients/MarketClient.d.ts.map +1 -1
  39. package/dist/clients/MercenaryClient.d.ts +19 -1
  40. package/dist/clients/MercenaryClient.d.ts.map +1 -1
  41. package/dist/clients/ParagonHubClient.d.ts +13 -0
  42. package/dist/clients/ParagonHubClient.d.ts.map +1 -0
  43. package/dist/clients/PiClient.d.ts +2 -0
  44. package/dist/clients/PiClient.d.ts.map +1 -1
  45. package/dist/clients/SkillsClient.d.ts +1 -0
  46. package/dist/clients/SkillsClient.d.ts.map +1 -1
  47. package/dist/clients/SkyhooksClient.d.ts +19 -1
  48. package/dist/clients/SkyhooksClient.d.ts.map +1 -1
  49. package/dist/clients/WalletClient.d.ts +4 -0
  50. package/dist/clients/WalletClient.d.ts.map +1 -1
  51. package/dist/clients/WarsClient.d.ts +2 -0
  52. package/dist/clients/WarsClient.d.ts.map +1 -1
  53. package/dist/core/ApiClient.d.ts +4 -0
  54. package/dist/core/ApiClient.d.ts.map +1 -1
  55. package/dist/core/ApiClientBuilder.d.ts +3 -1
  56. package/dist/core/ApiClientBuilder.d.ts.map +1 -1
  57. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  58. package/dist/core/ClientRegistry.d.ts +5 -3
  59. package/dist/core/ClientRegistry.d.ts.map +1 -1
  60. package/dist/core/cache/cacheKey.d.ts +3 -0
  61. package/dist/core/cache/cacheKey.d.ts.map +1 -0
  62. package/dist/core/constants.d.ts +2 -2
  63. package/dist/core/endpoints/EndpointDefinition.d.ts +2 -2
  64. package/dist/core/endpoints/EndpointDefinition.d.ts.map +1 -1
  65. package/dist/core/endpoints/cosmeticsEndpoints.d.ts +52 -0
  66. package/dist/core/endpoints/cosmeticsEndpoints.d.ts.map +1 -0
  67. package/dist/core/endpoints/createClient.d.ts +2 -2
  68. package/dist/core/endpoints/createClient.d.ts.map +1 -1
  69. package/dist/core/endpoints/mercenaryEndpoints.d.ts +45 -0
  70. package/dist/core/endpoints/mercenaryEndpoints.d.ts.map +1 -1
  71. package/dist/core/endpoints/paragonHubEndpoints.d.ts +163 -0
  72. package/dist/core/endpoints/paragonHubEndpoints.d.ts.map +1 -0
  73. package/dist/core/endpoints/skyhookEndpoints.d.ts +64 -0
  74. package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
  75. package/dist/core/logger/NoopLogger.d.ts +3 -0
  76. package/dist/core/logger/NoopLogger.d.ts.map +1 -0
  77. package/dist/core/pagination/AsyncPaginationIterator.d.ts +1 -0
  78. package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
  79. package/dist/core/rateLimiter/RateLimiter.d.ts +6 -0
  80. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  81. package/dist/core/requestPipeline/cachePolicy.d.ts +3 -3
  82. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  83. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  84. package/dist/core/requestPipeline/statusHandling.d.ts +2 -2
  85. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  86. package/dist/index.d.ts +6 -3
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +1141 -76
  89. package/dist/index.js.map +1 -1
  90. package/dist/index.mjs +1137 -76
  91. package/dist/index.mjs.map +1 -1
  92. package/dist/schemas/common.d.ts +11 -1
  93. package/dist/schemas/common.d.ts.map +1 -1
  94. package/dist/schemas/cosmetics.d.ts +58 -0
  95. package/dist/schemas/cosmetics.d.ts.map +1 -0
  96. package/dist/schemas/index.d.ts +2 -0
  97. package/dist/schemas/index.d.ts.map +1 -1
  98. package/dist/schemas/index.js +1467 -1192
  99. package/dist/schemas/index.js.map +1 -1
  100. package/dist/schemas/index.mjs +1433 -1192
  101. package/dist/schemas/index.mjs.map +1 -1
  102. package/dist/schemas/mercenary.d.ts +54 -0
  103. package/dist/schemas/mercenary.d.ts.map +1 -1
  104. package/dist/schemas/paragon-hub.d.ts +96 -0
  105. package/dist/schemas/paragon-hub.d.ts.map +1 -0
  106. package/dist/schemas/skyhooks.d.ts +101 -0
  107. package/dist/schemas/skyhooks.d.ts.map +1 -1
  108. package/dist/sde/index.js +7 -5100
  109. package/dist/sde/index.js.map +1 -1
  110. package/dist/sde/index.mjs +12 -5134
  111. package/dist/sde/index.mjs.map +1 -1
  112. package/dist/sde/memory.d.ts +8 -0
  113. package/dist/sde/memory.d.ts.map +1 -0
  114. package/dist/sde/memory.js +1100 -0
  115. package/dist/sde/memory.js.map +1 -0
  116. package/dist/sde/memory.mjs +1064 -0
  117. package/dist/sde/memory.mjs.map +1 -0
  118. package/dist/types/api-responses.d.ts +2 -0
  119. package/dist/types/api-responses.d.ts.map +1 -1
  120. package/dist/types/cosmetics.d.ts +8 -0
  121. package/dist/types/cosmetics.d.ts.map +1 -0
  122. package/dist/types/generated/esi-spec.generated.d.ts +12 -12
  123. package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
  124. package/dist/types/mercenary.d.ts +3 -1
  125. package/dist/types/mercenary.d.ts.map +1 -1
  126. package/dist/types/paragon-hub.d.ts +8 -0
  127. package/dist/types/paragon-hub.d.ts.map +1 -0
  128. package/dist/types/skyhooks.d.ts +3 -1
  129. package/dist/types/skyhooks.d.ts.map +1 -1
  130. package/package.json +30 -9
package/dist/index.mjs CHANGED
@@ -73,6 +73,7 @@ var ApiClient = class {
73
73
  validateRequest = false;
74
74
  language;
75
75
  compatibilityDate;
76
+ fetchFn = null;
76
77
  getTimeout() {
77
78
  return this.timeout;
78
79
  }
@@ -127,6 +128,12 @@ var ApiClient = class {
127
128
  setValidateRequest(validate) {
128
129
  this.validateRequest = validate;
129
130
  }
131
+ getFetch() {
132
+ return this.fetchFn ?? globalThis.fetch;
133
+ }
134
+ setFetch(fn) {
135
+ this.fetchFn = fn;
136
+ }
130
137
  getMiddleware() {
131
138
  return this.middleware;
132
139
  }
@@ -161,9 +168,6 @@ var ApiClient = class {
161
168
  this.compatibilityDate = date;
162
169
  }
163
170
  setAccessToken(token) {
164
- if (this.accessToken !== token) {
165
- this.cache?.clear();
166
- }
167
171
  this.accessToken = token;
168
172
  }
169
173
  setTokenProvider(provider) {
@@ -197,9 +201,6 @@ var ApiClient = class {
197
201
  }
198
202
  this.refreshInFlight = this.tokenProvider().then(
199
203
  (token) => {
200
- if (this.accessToken !== token) {
201
- this.cache?.clear();
202
- }
203
204
  this.accessToken = token;
204
205
  this.refreshInFlight = void 0;
205
206
  return token;
@@ -543,9 +544,19 @@ function isValidationError(error) {
543
544
  return error instanceof EsiValidationError;
544
545
  }
545
546
 
547
+ // src/core/cache/cacheKey.ts
548
+ import { createHash } from "crypto";
549
+ function buildCacheKey(url, client, requiresAuth = false) {
550
+ if (!requiresAuth) return url;
551
+ const authHeader = client.getAuthorizationHeader();
552
+ if (!authHeader) return url;
553
+ const hash = createHash("sha256").update(authHeader).digest("hex").slice(0, 16);
554
+ return `${hash}:${url}`;
555
+ }
556
+
546
557
  // src/core/constants.ts
547
558
  var PACKAGE_NAME = "esi.ts";
548
- var PACKAGE_VERSION = "9.2.0";
559
+ var PACKAGE_VERSION = "9.7.0";
549
560
  var USER_AGENT = `${PACKAGE_NAME}/${PACKAGE_VERSION}`;
550
561
  var COMPATIBILITY_DATE = "2026-05-19";
551
562
 
@@ -571,7 +582,10 @@ function buildRequestHeaders(client, url, method, requiresAuth, useETag, body, r
571
582
  const authHeader = client.getAuthorizationHeader();
572
583
  if (!authHeader) {
573
584
  throw buildError(
574
- "Authorization header is required but not provided",
585
+ [
586
+ "Authorization header is required for this endpoint but no access token is configured",
587
+ "Fix: set ESI_ACCESS_TOKEN in your environment (see .env.example), or call client.setAccessToken(token), or pass accessToken to the EsiClient constructor"
588
+ ].join(" \u2014 "),
575
589
  "NO_AUTH_TOKEN"
576
590
  );
577
591
  }
@@ -579,7 +593,8 @@ function buildRequestHeaders(client, url, method, requiresAuth, useETag, body, r
579
593
  }
580
594
  const cache = resolveCache2(client);
581
595
  if (useETag && method === "GET" && cache) {
582
- const cachedETag = cache.getETag(url);
596
+ const key = buildCacheKey(url, client, requiresAuth);
597
+ const cachedETag = cache.getETag(key);
583
598
  if (cachedETag) {
584
599
  headers["If-None-Match"] = cachedETag;
585
600
  logDebug(`Adding If-None-Match header: ${cachedETag}`);
@@ -733,13 +748,14 @@ function lookupSpecTtl(method, templatePath) {
733
748
  const seconds = esiCacheTtls[key];
734
749
  return typeof seconds === "number" ? seconds * 1e3 : void 0;
735
750
  }
736
- function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2) {
751
+ function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2, requiresAuth = false) {
737
752
  if (method !== "GET" || !templatePath) return null;
738
753
  const specTtlMs = lookupSpecTtl(method, templatePath);
739
754
  if (!specTtlMs) return null;
740
755
  const cache = resolveCache2(client);
741
756
  if (!cache) return null;
742
- const entry = cache.get(url);
757
+ const key = buildCacheKey(url, client, requiresAuth);
758
+ const entry = cache.get(key);
743
759
  if (!entry) return null;
744
760
  const age = Date.now() - entry.timestamp;
745
761
  if (age < specTtlMs) {
@@ -756,10 +772,11 @@ function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2)
756
772
  }
757
773
  return null;
758
774
  }
759
- function tryStaleCacheResponse(client, url, parsed, resolveCache2) {
775
+ function tryStaleCacheResponse(client, url, parsed, resolveCache2, requiresAuth = false) {
760
776
  const cache = resolveCache2(client);
761
777
  if (!cache) return null;
762
- const cachedEntry = cache.get(url);
778
+ const key = buildCacheKey(url, client, requiresAuth);
779
+ const cachedEntry = cache.get(key);
763
780
  if (!cachedEntry) return null;
764
781
  return {
765
782
  headers: { ...cachedEntry.headers, ...parsed.raw },
@@ -770,13 +787,14 @@ function tryStaleCacheResponse(client, url, parsed, resolveCache2) {
770
787
  cacheHitType: "stale-on-error"
771
788
  };
772
789
  }
773
- function cacheResponse(client, url, method, endpoint, parsed, data, useETag, resolveCache2, templatePath) {
790
+ function cacheResponse(client, url, method, endpoint, parsed, data, useETag, resolveCache2, templatePath, requiresAuth = false) {
774
791
  const cache = resolveCache2(client);
775
792
  if (useETag && method === "GET" && cache && parsed.etag) {
793
+ const key = buildCacheKey(url, client, requiresAuth);
776
794
  const headerTtl = parseCacheControlTtl(parsed.raw);
777
795
  const specTtlMs = templatePath ? lookupSpecTtl(method, templatePath) : void 0;
778
796
  const ttl = specTtlMs ?? headerTtl;
779
- cache.set(url, parsed.etag, data, parsed.raw, ttl);
797
+ cache.set(key, parsed.etag, data, parsed.raw, ttl);
780
798
  const ttlInfo = ttl ? ` (ttl=${ttl}ms)` : "";
781
799
  logDebug(`Cached response for ${url} with ETag ${parsed.etag}${ttlInfo}`);
782
800
  }
@@ -802,7 +820,7 @@ var STATUS_MESSAGES = {
802
820
  504: "Gateway Timeout",
803
821
  520: "Internal server error, did the request terminate too soon?"
804
822
  };
805
- function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2) {
823
+ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2, requiresAuth = false) {
806
824
  if (status === 201) {
807
825
  return { headers: parsed.raw, body: void 0, status: 201 };
808
826
  }
@@ -813,7 +831,8 @@ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2)
813
831
  if (status === 304) {
814
832
  const cache = resolveCache2(client);
815
833
  if (useETag && cache) {
816
- const cachedEntry = cache.get(url);
834
+ const key = buildCacheKey(url, client, requiresAuth);
835
+ const cachedEntry = cache.get(key);
817
836
  if (cachedEntry) {
818
837
  logInfo(`Cache hit (304) for endpoint: ${url}`);
819
838
  return {
@@ -834,14 +853,15 @@ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2)
834
853
  }
835
854
  return null;
836
855
  }
837
- function handleErrorResponse(client, response, url, parsed, useETag, resolveCache2) {
856
+ function handleErrorResponse(client, response, url, parsed, useETag, resolveCache2, requiresAuth = false) {
838
857
  const errorMessage = STATUS_MESSAGES[response.status] || response.statusText;
839
858
  if (response.status >= 500 && useETag) {
840
859
  const staleResult = tryStaleCacheResponse(
841
860
  client,
842
861
  url,
843
862
  parsed,
844
- resolveCache2
863
+ resolveCache2,
864
+ requiresAuth
845
865
  );
846
866
  if (staleResult) {
847
867
  logWarn(`${errorMessage} for ${url} \u2014 serving stale cache`);
@@ -851,9 +871,15 @@ function handleErrorResponse(client, response, url, parsed, useETag, resolveCach
851
871
  if (response.status === 420 || response.status === 429) {
852
872
  logWarn(`Rate limited (${response.status}) on ${url}`);
853
873
  }
874
+ let message = errorMessage;
875
+ if (response.status === 401) {
876
+ message = `${errorMessage} \u2014 the access token was missing, expired, or lacks the required ESI scope. Fix: verify ESI_ACCESS_TOKEN, or configure onTokenRefresh for automatic refresh on 401`;
877
+ } else if (response.status === 403) {
878
+ message = `${errorMessage} \u2014 your access token does not have the OAuth scopes required for this endpoint. Check the scopes on your EVE SSO application`;
879
+ }
854
880
  throw new EsiError(
855
881
  response.status,
856
- errorMessage,
882
+ message,
857
883
  url,
858
884
  parsed.requestId ?? void 0
859
885
  );
@@ -1218,7 +1244,7 @@ async function executeSingleFetch(client, endpoint, method, body, requiresAuth,
1218
1244
  options.signal = controller.signal;
1219
1245
  let response;
1220
1246
  try {
1221
- response = await fetch(url, options);
1247
+ response = await client.getFetch()(url, options);
1222
1248
  } catch (err) {
1223
1249
  clearTimeout(timer);
1224
1250
  if (cb) {
@@ -1338,7 +1364,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1338
1364
  url,
1339
1365
  parsed,
1340
1366
  useETag,
1341
- resolveCache
1367
+ resolveCache,
1368
+ requiresAuth
1342
1369
  );
1343
1370
  if (earlyResult) return finish(earlyResult);
1344
1371
  if (!response.ok) {
@@ -1348,7 +1375,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1348
1375
  url,
1349
1376
  parsed,
1350
1377
  useETag,
1351
- resolveCache
1378
+ resolveCache,
1379
+ requiresAuth
1352
1380
  );
1353
1381
  return finish(staleOrThrow);
1354
1382
  }
@@ -1362,7 +1390,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1362
1390
  data,
1363
1391
  useETag,
1364
1392
  resolveCache,
1365
- templatePath
1393
+ templatePath,
1394
+ requiresAuth
1366
1395
  );
1367
1396
  const cursorResult = handleCursorPagination(parsed, data);
1368
1397
  if (cursorResult) return finish(cursorResult);
@@ -1435,7 +1464,8 @@ var handleRequest = async (client, endpoint, method, body, requiresAuth = false,
1435
1464
  rawUrl,
1436
1465
  method,
1437
1466
  templatePath,
1438
- resolveCache
1467
+ resolveCache,
1468
+ requiresAuth
1439
1469
  );
1440
1470
  if (specHit) {
1441
1471
  return applyResponseInterceptors(
@@ -1599,6 +1629,20 @@ function buildMeta(response) {
1599
1629
  group: response.headers["x-ratelimit-group"] ?? null
1600
1630
  };
1601
1631
  }
1632
+ if (response.headers["etag"]) meta.etag = response.headers["etag"];
1633
+ if (response.headers["x-pages"])
1634
+ meta.pages = parseInt(response.headers["x-pages"], 10);
1635
+ if (response.headers["expires"]) meta.expires = response.headers["expires"];
1636
+ if (response.headers["x-esi-error-limit-remain"])
1637
+ meta.errorLimitRemain = parseInt(
1638
+ response.headers["x-esi-error-limit-remain"],
1639
+ 10
1640
+ );
1641
+ if (response.headers["x-esi-error-limit-reset"])
1642
+ meta.errorLimitReset = parseInt(
1643
+ response.headers["x-esi-error-limit-reset"],
1644
+ 10
1645
+ );
1602
1646
  return meta;
1603
1647
  }
1604
1648
  function createClient(apiClient, endpoints, options) {
@@ -1763,6 +1807,55 @@ function validatePageBody(body, schema, url, validate) {
1763
1807
  }
1764
1808
  return result.data;
1765
1809
  }
1810
+ async function fetchAllPages(client, endpoint, method, requiresAuth = false, body, templatePath, responseSchema, concurrency = 8) {
1811
+ const validate = client.getValidateResponse();
1812
+ const firstResponse = await handleSinglePageRequest(
1813
+ client,
1814
+ endpoint,
1815
+ method,
1816
+ body,
1817
+ requiresAuth,
1818
+ templatePath
1819
+ );
1820
+ const firstBody = validatePageBody(
1821
+ firstResponse.body,
1822
+ responseSchema,
1823
+ `${client.getLink()}/${endpoint}`,
1824
+ validate
1825
+ );
1826
+ const totalPages = parseInt(firstResponse.headers["x-pages"] || "1", 10);
1827
+ const result = extractArray(firstBody);
1828
+ if (totalPages <= 1) return result;
1829
+ const remaining = Array.from({ length: totalPages - 1 }, (_, i) => i + 2);
1830
+ for (let i = 0; i < remaining.length; i += concurrency) {
1831
+ const batch = remaining.slice(i, i + concurrency);
1832
+ const pages = await Promise.all(
1833
+ batch.map(async (page) => {
1834
+ const sep = endpoint.includes("?") ? "&" : "?";
1835
+ const pagedEndpoint = `${endpoint}${sep}page=${page}`;
1836
+ logInfo(`Fetching page ${page}/${totalPages}: ${pagedEndpoint}`);
1837
+ const response = await handleSinglePageRequest(
1838
+ client,
1839
+ pagedEndpoint,
1840
+ method,
1841
+ body,
1842
+ requiresAuth,
1843
+ templatePath
1844
+ );
1845
+ return validatePageBody(
1846
+ response.body,
1847
+ responseSchema,
1848
+ `${client.getLink()}/${pagedEndpoint}`,
1849
+ validate
1850
+ );
1851
+ })
1852
+ );
1853
+ for (const pageBody of pages) {
1854
+ result.push(...extractArray(pageBody));
1855
+ }
1856
+ }
1857
+ return result;
1858
+ }
1766
1859
  async function* fetchPages(client, endpoint, method, requiresAuth = false, body, templatePath, responseSchema) {
1767
1860
  const validate = client.getValidateResponse();
1768
1861
  const firstResponse = await handleSinglePageRequest(
@@ -1834,6 +1927,24 @@ var BaseEsiClient = class {
1834
1927
  def.responseSchema
1835
1928
  );
1836
1929
  }
1930
+ fetchAllEndpoint(endpointName, args, concurrency) {
1931
+ const def = this._endpoints[endpointName];
1932
+ const { path, body } = buildEndpointPath(
1933
+ def,
1934
+ args,
1935
+ this._client.getDatasource()
1936
+ );
1937
+ return fetchAllPages(
1938
+ this._client,
1939
+ path,
1940
+ def.method,
1941
+ def.requiresAuth,
1942
+ body,
1943
+ def.path,
1944
+ def.responseSchema,
1945
+ concurrency
1946
+ );
1947
+ }
1837
1948
  withMetadata() {
1838
1949
  if (!this._metaApi) {
1839
1950
  this._metaApi = createClient(this._client, this._endpoints, {
@@ -2040,9 +2151,7 @@ var AllianceClient = class extends BaseEsiClient {
2040
2151
  logWarn(
2041
2152
  "AllianceClient.getContacts() is deprecated. Use ContactsClient.getAllianceContacts() instead. Planned removal in next major version."
2042
2153
  );
2043
- return this.contactApi.getAllianceContacts(
2044
- allianceId
2045
- );
2154
+ return this.contactApi.getAllianceContacts(allianceId);
2046
2155
  }
2047
2156
  /**
2048
2157
  * Retrieve custom contact labels for an alliance.
@@ -2084,6 +2193,16 @@ var AllianceClient = class extends BaseEsiClient {
2084
2193
  getAlliances() {
2085
2194
  return this.api.getAlliances();
2086
2195
  }
2196
+ fetchAllAlliances(concurrency) {
2197
+ return this.fetchAllEndpoint("getAlliances", [], concurrency);
2198
+ }
2199
+ fetchAllCorporations(allianceId, concurrency) {
2200
+ return this.fetchAllEndpoint(
2201
+ "getCorporations",
2202
+ [allianceId],
2203
+ concurrency
2204
+ );
2205
+ }
2087
2206
  streamAlliances() {
2088
2207
  return this.streamEndpoint("getAlliances");
2089
2208
  }
@@ -2192,10 +2311,7 @@ var AssetsClient = class extends BaseEsiClient {
2192
2311
  * @requires Authentication
2193
2312
  */
2194
2313
  postCharacterAssetLocations(characterId, itemIds) {
2195
- return this.api.postCharacterAssetLocations(
2196
- characterId,
2197
- itemIds
2198
- );
2314
+ return this.api.postCharacterAssetLocations(characterId, itemIds);
2199
2315
  }
2200
2316
  /**
2201
2317
  * Look up the names of specific assets owned by a character via a bulk POST request.
@@ -2246,6 +2362,20 @@ var AssetsClient = class extends BaseEsiClient {
2246
2362
  itemIds
2247
2363
  );
2248
2364
  }
2365
+ fetchAllCharacterAssets(characterId, concurrency) {
2366
+ return this.fetchAllEndpoint(
2367
+ "getCharacterAssets",
2368
+ [characterId],
2369
+ concurrency
2370
+ );
2371
+ }
2372
+ fetchAllCorporationAssets(corporationId, concurrency) {
2373
+ return this.fetchAllEndpoint(
2374
+ "getCorporationAssets",
2375
+ [corporationId],
2376
+ concurrency
2377
+ );
2378
+ }
2249
2379
  streamCharacterAssets(characterId) {
2250
2380
  return this.streamEndpoint(
2251
2381
  "getCharacterAssets",
@@ -2389,6 +2519,20 @@ var CalendarClient = class extends BaseEsiClient {
2389
2519
  getEventAttendees(characterId, eventId) {
2390
2520
  return this.api.getEventAttendees(characterId, eventId);
2391
2521
  }
2522
+ fetchAllCalendarEvents(characterId, concurrency) {
2523
+ return this.fetchAllEndpoint(
2524
+ "getCalendarEvents",
2525
+ [characterId],
2526
+ concurrency
2527
+ );
2528
+ }
2529
+ fetchAllEventAttendees(characterId, eventId, concurrency) {
2530
+ return this.fetchAllEndpoint(
2531
+ "getEventAttendees",
2532
+ [characterId, eventId],
2533
+ concurrency
2534
+ );
2535
+ }
2392
2536
  streamCalendarEvents(characterId) {
2393
2537
  return this.streamEndpoint("getCalendarEvents", characterId);
2394
2538
  }
@@ -2548,7 +2692,12 @@ var EsiResponseMetaSchema = z11.looseObject({
2548
2692
  date: z11.string().optional(),
2549
2693
  contentLanguage: z11.string().optional(),
2550
2694
  rateLimit: RateLimitMetaSchema.optional(),
2551
- responseTimeMs: z11.number().optional()
2695
+ responseTimeMs: z11.number().optional(),
2696
+ etag: z11.string().optional(),
2697
+ pages: z11.number().optional(),
2698
+ expires: z11.string().optional(),
2699
+ errorLimitRemain: z11.number().optional(),
2700
+ errorLimitReset: z11.number().optional()
2552
2701
  });
2553
2702
  function esiResponse(dataSchema) {
2554
2703
  return z11.object({
@@ -2803,6 +2952,62 @@ var CharacterClient = class extends BaseEsiClient {
2803
2952
  postCharacterAffiliation(characters) {
2804
2953
  return this.api.postCharacterAffiliation(characters);
2805
2954
  }
2955
+ fetchAllCharacterAgentsResearch(characterId, concurrency) {
2956
+ return this.fetchAllEndpoint(
2957
+ "getAgentsResearch",
2958
+ [characterId],
2959
+ concurrency
2960
+ );
2961
+ }
2962
+ fetchAllCharacterBlueprints(characterId, concurrency) {
2963
+ return this.fetchAllEndpoint(
2964
+ "getBlueprints",
2965
+ [characterId],
2966
+ concurrency
2967
+ );
2968
+ }
2969
+ fetchAllCharacterCorporationHistory(characterId, concurrency) {
2970
+ return this.fetchAllEndpoint(
2971
+ "getCorporationHistory",
2972
+ [characterId],
2973
+ concurrency
2974
+ );
2975
+ }
2976
+ fetchAllCharacterMedals(characterId, concurrency) {
2977
+ return this.fetchAllEndpoint(
2978
+ "getMedals",
2979
+ [characterId],
2980
+ concurrency
2981
+ );
2982
+ }
2983
+ fetchAllCharacterNotifications(characterId, concurrency) {
2984
+ return this.fetchAllEndpoint(
2985
+ "getNotifications",
2986
+ [characterId],
2987
+ concurrency
2988
+ );
2989
+ }
2990
+ fetchAllCharacterNotificationsContacts(characterId, concurrency) {
2991
+ return this.fetchAllEndpoint(
2992
+ "getContactNotifications",
2993
+ [characterId],
2994
+ concurrency
2995
+ );
2996
+ }
2997
+ fetchAllCharacterStandings(characterId, concurrency) {
2998
+ return this.fetchAllEndpoint(
2999
+ "getStandings",
3000
+ [characterId],
3001
+ concurrency
3002
+ );
3003
+ }
3004
+ fetchAllCharacterTitles(characterId, concurrency) {
3005
+ return this.fetchAllEndpoint(
3006
+ "getTitles",
3007
+ [characterId],
3008
+ concurrency
3009
+ );
3010
+ }
2806
3011
  streamCharacterAgentsResearch(characterId) {
2807
3012
  return this.streamEndpoint("getAgentsResearch", characterId);
2808
3013
  }
@@ -2901,6 +3106,13 @@ var ClonesClient = class extends BaseEsiClient {
2901
3106
  getImplants(characterId) {
2902
3107
  return this.api.getImplants(characterId);
2903
3108
  }
3109
+ fetchAllImplants(characterId, concurrency) {
3110
+ return this.fetchAllEndpoint(
3111
+ "getImplants",
3112
+ [characterId],
3113
+ concurrency
3114
+ );
3115
+ }
2904
3116
  streamImplants(characterId) {
2905
3117
  return this.streamEndpoint("getImplants", characterId);
2906
3118
  }
@@ -3011,6 +3223,48 @@ var ContactsClient = class extends BaseEsiClient {
3011
3223
  getCorporationContactLabels(corporationId) {
3012
3224
  return this.api.getCorporationContactLabels(corporationId);
3013
3225
  }
3226
+ fetchAllAllianceContacts(allianceId, concurrency) {
3227
+ return this.fetchAllEndpoint(
3228
+ "getAllianceContacts",
3229
+ [allianceId],
3230
+ concurrency
3231
+ );
3232
+ }
3233
+ fetchAllAllianceContactLabels(allianceId, concurrency) {
3234
+ return this.fetchAllEndpoint(
3235
+ "getAllianceContactLabels",
3236
+ [allianceId],
3237
+ concurrency
3238
+ );
3239
+ }
3240
+ fetchAllCharacterContacts(characterId, concurrency) {
3241
+ return this.fetchAllEndpoint(
3242
+ "getCharacterContacts",
3243
+ [characterId],
3244
+ concurrency
3245
+ );
3246
+ }
3247
+ fetchAllCharacterContactLabels(characterId, concurrency) {
3248
+ return this.fetchAllEndpoint(
3249
+ "getCharacterContactLabels",
3250
+ [characterId],
3251
+ concurrency
3252
+ );
3253
+ }
3254
+ fetchAllCorporationContacts(corporationId, concurrency) {
3255
+ return this.fetchAllEndpoint(
3256
+ "getCorporationContacts",
3257
+ [corporationId],
3258
+ concurrency
3259
+ );
3260
+ }
3261
+ fetchAllCorporationContactLabels(corporationId, concurrency) {
3262
+ return this.fetchAllEndpoint(
3263
+ "getCorporationContactLabels",
3264
+ [corporationId],
3265
+ concurrency
3266
+ );
3267
+ }
3014
3268
  streamAllianceContacts(allianceId) {
3015
3269
  return this.streamEndpoint("getAllianceContacts", allianceId);
3016
3270
  }
@@ -3195,10 +3449,7 @@ var ContractsClient = class extends BaseEsiClient {
3195
3449
  * @requires Authentication
3196
3450
  */
3197
3451
  getCharacterContractBids(characterId, contractId) {
3198
- return this.api.getCharacterContractBids(
3199
- characterId,
3200
- contractId
3201
- );
3452
+ return this.api.getCharacterContractBids(characterId, contractId);
3202
3453
  }
3203
3454
  /**
3204
3455
  * Retrieve the items included in a contract owned by a character.
@@ -3209,10 +3460,7 @@ var ContractsClient = class extends BaseEsiClient {
3209
3460
  * @requires Authentication
3210
3461
  */
3211
3462
  getCharacterContractItems(characterId, contractId) {
3212
- return this.api.getCharacterContractItems(
3213
- characterId,
3214
- contractId
3215
- );
3463
+ return this.api.getCharacterContractItems(characterId, contractId);
3216
3464
  }
3217
3465
  /**
3218
3466
  * Retrieve publicly available contracts in a specific region.
@@ -3260,10 +3508,7 @@ var ContractsClient = class extends BaseEsiClient {
3260
3508
  * @requires Authentication
3261
3509
  */
3262
3510
  getCorporationContractBids(corporationId, contractId) {
3263
- return this.api.getCorporationContractBids(
3264
- corporationId,
3265
- contractId
3266
- );
3511
+ return this.api.getCorporationContractBids(corporationId, contractId);
3267
3512
  }
3268
3513
  /**
3269
3514
  * Retrieve the items included in a contract owned by a corporation.
@@ -3274,9 +3519,27 @@ var ContractsClient = class extends BaseEsiClient {
3274
3519
  * @requires Authentication
3275
3520
  */
3276
3521
  getCorporationContractItems(corporationId, contractId) {
3277
- return this.api.getCorporationContractItems(
3278
- corporationId,
3279
- contractId
3522
+ return this.api.getCorporationContractItems(corporationId, contractId);
3523
+ }
3524
+ fetchAllPublicContracts(regionId, concurrency) {
3525
+ return this.fetchAllEndpoint(
3526
+ "getPublicContracts",
3527
+ [regionId],
3528
+ concurrency
3529
+ );
3530
+ }
3531
+ fetchAllCharacterContracts(characterId, concurrency) {
3532
+ return this.fetchAllEndpoint(
3533
+ "getCharacterContracts",
3534
+ [characterId],
3535
+ concurrency
3536
+ );
3537
+ }
3538
+ fetchAllCorporationContracts(corporationId, concurrency) {
3539
+ return this.fetchAllEndpoint(
3540
+ "getCorporationContracts",
3541
+ [corporationId],
3542
+ concurrency
3280
3543
  );
3281
3544
  }
3282
3545
  streamPublicContracts(regionId) {
@@ -3875,6 +4138,121 @@ var CorporationsClient = class extends BaseEsiClient {
3875
4138
  getNpcCorporations() {
3876
4139
  return this.api.getNpcCorporations();
3877
4140
  }
4141
+ fetchAllCorporationAllianceHistory(corporationId, concurrency) {
4142
+ return this.fetchAllEndpoint(
4143
+ "getCorporationAllianceHistory",
4144
+ [corporationId],
4145
+ concurrency
4146
+ );
4147
+ }
4148
+ fetchAllCorporationBlueprints(corporationId, concurrency) {
4149
+ return this.fetchAllEndpoint(
4150
+ "getCorporationBlueprints",
4151
+ [corporationId],
4152
+ concurrency
4153
+ );
4154
+ }
4155
+ fetchAllCorporationAlscLogs(corporationId, concurrency) {
4156
+ return this.fetchAllEndpoint(
4157
+ "getCorporationAlscLogs",
4158
+ [corporationId],
4159
+ concurrency
4160
+ );
4161
+ }
4162
+ fetchAllCorporationFacilities(corporationId, concurrency) {
4163
+ return this.fetchAllEndpoint(
4164
+ "getCorporationFacilities",
4165
+ [corporationId],
4166
+ concurrency
4167
+ );
4168
+ }
4169
+ fetchAllCorporationMedals(corporationId, concurrency) {
4170
+ return this.fetchAllEndpoint(
4171
+ "getCorporationMedals",
4172
+ [corporationId],
4173
+ concurrency
4174
+ );
4175
+ }
4176
+ fetchAllCorporationIssuedMedals(corporationId, concurrency) {
4177
+ return this.fetchAllEndpoint(
4178
+ "getCorporationIssuedMedals",
4179
+ [corporationId],
4180
+ concurrency
4181
+ );
4182
+ }
4183
+ fetchAllCorporationMembers(corporationId, concurrency) {
4184
+ return this.fetchAllEndpoint(
4185
+ "getCorporationMembers",
4186
+ [corporationId],
4187
+ concurrency
4188
+ );
4189
+ }
4190
+ fetchAllCorporationMemberTitles(corporationId, concurrency) {
4191
+ return this.fetchAllEndpoint(
4192
+ "getCorporationMembersTitles",
4193
+ [corporationId],
4194
+ concurrency
4195
+ );
4196
+ }
4197
+ fetchAllCorporationMemberTracking(corporationId, concurrency) {
4198
+ return this.fetchAllEndpoint(
4199
+ "getCorporationMemberTracking",
4200
+ [corporationId],
4201
+ concurrency
4202
+ );
4203
+ }
4204
+ fetchAllCorporationRoles(corporationId, concurrency) {
4205
+ return this.fetchAllEndpoint(
4206
+ "getCorporationMemberRoles",
4207
+ [corporationId],
4208
+ concurrency
4209
+ );
4210
+ }
4211
+ fetchAllCorporationRolesHistory(corporationId, concurrency) {
4212
+ return this.fetchAllEndpoint(
4213
+ "getCorporationMemberRolesHistory",
4214
+ [corporationId],
4215
+ concurrency
4216
+ );
4217
+ }
4218
+ fetchAllCorporationShareholders(corporationId, concurrency) {
4219
+ return this.fetchAllEndpoint(
4220
+ "getCorporationShareholders",
4221
+ [corporationId],
4222
+ concurrency
4223
+ );
4224
+ }
4225
+ fetchAllCorporationStandings(corporationId, concurrency) {
4226
+ return this.fetchAllEndpoint(
4227
+ "getCorporationStandings",
4228
+ [corporationId],
4229
+ concurrency
4230
+ );
4231
+ }
4232
+ fetchAllCorporationStarbases(corporationId, concurrency) {
4233
+ return this.fetchAllEndpoint(
4234
+ "getCorporationStarbases",
4235
+ [corporationId],
4236
+ concurrency
4237
+ );
4238
+ }
4239
+ fetchAllCorporationStructures(corporationId, concurrency) {
4240
+ return this.fetchAllEndpoint(
4241
+ "getCorporationStructures",
4242
+ [corporationId],
4243
+ concurrency
4244
+ );
4245
+ }
4246
+ fetchAllCorporationTitles(corporationId, concurrency) {
4247
+ return this.fetchAllEndpoint(
4248
+ "getCorporationTitles",
4249
+ [corporationId],
4250
+ concurrency
4251
+ );
4252
+ }
4253
+ fetchAllNpcCorporations(concurrency) {
4254
+ return this.fetchAllEndpoint("getNpcCorporations", [], concurrency);
4255
+ }
3878
4256
  streamCorporationAllianceHistory(corporationId) {
3879
4257
  return this.streamEndpoint(
3880
4258
  "getCorporationAllianceHistory",
@@ -4557,6 +4935,13 @@ var FittingsClient = class extends BaseEsiClient {
4557
4935
  deleteFitting(characterId, fittingId) {
4558
4936
  return this.api.deleteFitting(characterId, fittingId);
4559
4937
  }
4938
+ fetchAllFittings(characterId, concurrency) {
4939
+ return this.fetchAllEndpoint(
4940
+ "getFittings",
4941
+ [characterId],
4942
+ concurrency
4943
+ );
4944
+ }
4560
4945
  streamFittings(characterId) {
4561
4946
  return this.streamEndpoint("getFittings", characterId);
4562
4947
  }
@@ -4881,6 +5266,20 @@ var FleetClient = class extends BaseEsiClient {
4881
5266
  createFleetSquad(fleetId, wingId) {
4882
5267
  return this.api.createFleetSquad(fleetId, wingId);
4883
5268
  }
5269
+ fetchAllFleetMembers(fleetId, concurrency) {
5270
+ return this.fetchAllEndpoint(
5271
+ "getFleetMembers",
5272
+ [fleetId],
5273
+ concurrency
5274
+ );
5275
+ }
5276
+ fetchAllFleetWings(fleetId, concurrency) {
5277
+ return this.fetchAllEndpoint(
5278
+ "getFleetWings",
5279
+ [fleetId],
5280
+ concurrency
5281
+ );
5282
+ }
4884
5283
  streamFleetMembers(fleetId) {
4885
5284
  return this.streamEndpoint("getFleetMembers", fleetId);
4886
5285
  }
@@ -5149,6 +5548,62 @@ var IndustryClient = class extends BaseEsiClient {
5149
5548
  getIndustrySystems() {
5150
5549
  return this.api.getIndustrySystems();
5151
5550
  }
5551
+ fetchAllCharacterIndustryJobs(characterId, concurrency) {
5552
+ return this.fetchAllEndpoint(
5553
+ "getCharacterIndustryJobs",
5554
+ [characterId],
5555
+ concurrency
5556
+ );
5557
+ }
5558
+ fetchAllCharacterMiningLedger(characterId, concurrency) {
5559
+ return this.fetchAllEndpoint(
5560
+ "getCharacterMiningLedger",
5561
+ [characterId],
5562
+ concurrency
5563
+ );
5564
+ }
5565
+ fetchAllCorporationIndustryJobs(corporationId, concurrency) {
5566
+ return this.fetchAllEndpoint(
5567
+ "getCorporationIndustryJobs",
5568
+ [corporationId],
5569
+ concurrency
5570
+ );
5571
+ }
5572
+ fetchAllMoonExtractionTimers(corporationId, concurrency) {
5573
+ return this.fetchAllEndpoint(
5574
+ "getMoonExtractionTimers",
5575
+ [corporationId],
5576
+ concurrency
5577
+ );
5578
+ }
5579
+ fetchAllCorporationMiningObservers(corporationId, concurrency) {
5580
+ return this.fetchAllEndpoint(
5581
+ "getCorporationMiningObservers",
5582
+ [corporationId],
5583
+ concurrency
5584
+ );
5585
+ }
5586
+ fetchAllCorporationMiningObserver(corporationId, observerId, concurrency) {
5587
+ return this.fetchAllEndpoint(
5588
+ "getCorporationMiningObserver",
5589
+ [corporationId, observerId],
5590
+ concurrency
5591
+ );
5592
+ }
5593
+ fetchAllIndustryFacilities(concurrency) {
5594
+ return this.fetchAllEndpoint(
5595
+ "getIndustryFacilities",
5596
+ [],
5597
+ concurrency
5598
+ );
5599
+ }
5600
+ fetchAllIndustrySystems(concurrency) {
5601
+ return this.fetchAllEndpoint(
5602
+ "getIndustrySystems",
5603
+ [],
5604
+ concurrency
5605
+ );
5606
+ }
5152
5607
  streamCharacterIndustryJobs(characterId) {
5153
5608
  return this.streamEndpoint(
5154
5609
  "getCharacterIndustryJobs",
@@ -5339,6 +5794,20 @@ var KillmailsClient = class extends BaseEsiClient {
5339
5794
  getKillmail(killmailId, killmailHash) {
5340
5795
  return this.api.getKillmail(killmailId, killmailHash);
5341
5796
  }
5797
+ fetchAllCharacterRecentKillmails(characterId, concurrency) {
5798
+ return this.fetchAllEndpoint(
5799
+ "getCharacterRecentKillmails",
5800
+ [characterId],
5801
+ concurrency
5802
+ );
5803
+ }
5804
+ fetchAllCorporationRecentKillmails(corporationId, concurrency) {
5805
+ return this.fetchAllEndpoint(
5806
+ "getCorporationRecentKillmails",
5807
+ [corporationId],
5808
+ concurrency
5809
+ );
5810
+ }
5342
5811
  streamCharacterRecentKillmails(characterId) {
5343
5812
  return this.streamEndpoint(
5344
5813
  "getCharacterRecentKillmails",
@@ -5502,6 +5971,20 @@ var LoyaltyClient = class extends BaseEsiClient {
5502
5971
  getLoyaltyStoreOffers(corporationId) {
5503
5972
  return this.api.getLoyaltyStoreOffers(corporationId);
5504
5973
  }
5974
+ fetchAllLoyaltyPoints(characterId, concurrency) {
5975
+ return this.fetchAllEndpoint(
5976
+ "getLoyaltyPoints",
5977
+ [characterId],
5978
+ concurrency
5979
+ );
5980
+ }
5981
+ fetchAllLoyaltyStoreOffers(corporationId, concurrency) {
5982
+ return this.fetchAllEndpoint(
5983
+ "getLoyaltyStoreOffers",
5984
+ [corporationId],
5985
+ concurrency
5986
+ );
5987
+ }
5505
5988
  streamLoyaltyPoints(characterId) {
5506
5989
  return this.streamEndpoint("getLoyaltyPoints", characterId);
5507
5990
  }
@@ -5739,6 +6222,20 @@ var MailClient = class extends BaseEsiClient {
5739
6222
  getMailingLists(characterId) {
5740
6223
  return this.api.getMailingLists(characterId);
5741
6224
  }
6225
+ fetchAllMailHeaders(characterId, concurrency) {
6226
+ return this.fetchAllEndpoint(
6227
+ "getCharacterMailHeaders",
6228
+ [characterId],
6229
+ concurrency
6230
+ );
6231
+ }
6232
+ fetchAllMailingLists(characterId, concurrency) {
6233
+ return this.fetchAllEndpoint(
6234
+ "getMailingLists",
6235
+ [characterId],
6236
+ concurrency
6237
+ );
6238
+ }
5742
6239
  streamMailHeaders(characterId) {
5743
6240
  return this.streamEndpoint(
5744
6241
  "getCharacterMailHeaders",
@@ -6063,6 +6560,48 @@ var MarketClient = class extends BaseEsiClient {
6063
6560
  getMarketOrdersInStructure(structureId) {
6064
6561
  return this.api.getMarketOrdersInStructure(structureId);
6065
6562
  }
6563
+ fetchAllMarketOrders(regionId, concurrency) {
6564
+ return this.fetchAllEndpoint(
6565
+ "getMarketOrders",
6566
+ [regionId, "all"],
6567
+ concurrency
6568
+ );
6569
+ }
6570
+ fetchAllMarketTypes(regionId, concurrency) {
6571
+ return this.fetchAllEndpoint(
6572
+ "getMarketTypes",
6573
+ [regionId],
6574
+ concurrency
6575
+ );
6576
+ }
6577
+ fetchAllCharacterOrderHistory(characterId, concurrency) {
6578
+ return this.fetchAllEndpoint(
6579
+ "getCharacterOrderHistory",
6580
+ [characterId],
6581
+ concurrency
6582
+ );
6583
+ }
6584
+ fetchAllCorporationOrders(corporationId, concurrency) {
6585
+ return this.fetchAllEndpoint(
6586
+ "getCorporationOrders",
6587
+ [corporationId],
6588
+ concurrency
6589
+ );
6590
+ }
6591
+ fetchAllCorporationOrderHistory(corporationId, concurrency) {
6592
+ return this.fetchAllEndpoint(
6593
+ "getCorporationOrderHistory",
6594
+ [corporationId],
6595
+ concurrency
6596
+ );
6597
+ }
6598
+ fetchAllMarketOrdersInStructure(structureId, concurrency) {
6599
+ return this.fetchAllEndpoint(
6600
+ "getMarketOrdersInStructure",
6601
+ [structureId],
6602
+ concurrency
6603
+ );
6604
+ }
6066
6605
  streamMarketOrders(regionId) {
6067
6606
  return this.streamEndpoint("getMarketOrders", regionId, "all");
6068
6607
  }
@@ -6515,6 +7054,20 @@ var PiClient = class extends BaseEsiClient {
6515
7054
  getSchematicInformation(schematicId) {
6516
7055
  return this.api.getSchematicInformation(schematicId);
6517
7056
  }
7057
+ fetchAllColonies(characterId, concurrency) {
7058
+ return this.fetchAllEndpoint(
7059
+ "getColonies",
7060
+ [characterId],
7061
+ concurrency
7062
+ );
7063
+ }
7064
+ fetchAllCorporationCustomsOffices(corporationId, concurrency) {
7065
+ return this.fetchAllEndpoint(
7066
+ "getCorporationCustomsOffices",
7067
+ [corporationId],
7068
+ concurrency
7069
+ );
7070
+ }
6518
7071
  streamColonies(characterId) {
6519
7072
  return this.streamEndpoint("getColonies", characterId);
6520
7073
  }
@@ -6687,6 +7240,13 @@ var CharacterSkillsClient = class extends BaseEsiClient {
6687
7240
  getCharacterSkills(characterId) {
6688
7241
  return this.api.getCharacterSkills(characterId);
6689
7242
  }
7243
+ fetchAllCharacterSkillQueue(characterId, concurrency) {
7244
+ return this.fetchAllEndpoint(
7245
+ "getCharacterSkillQueue",
7246
+ [characterId],
7247
+ concurrency
7248
+ );
7249
+ }
6690
7250
  streamCharacterSkillQueue(characterId) {
6691
7251
  return this.streamEndpoint(
6692
7252
  "getCharacterSkillQueue",
@@ -7571,6 +8131,34 @@ var WalletClient = class extends BaseEsiClient {
7571
8131
  getCorporationWalletTransactions(corporationId, division) {
7572
8132
  return this.api.getCorporationWalletTransactions(corporationId, division);
7573
8133
  }
8134
+ fetchAllCharacterWalletJournal(characterId, concurrency) {
8135
+ return this.fetchAllEndpoint(
8136
+ "getCharacterWalletJournal",
8137
+ [characterId],
8138
+ concurrency
8139
+ );
8140
+ }
8141
+ fetchAllCorporationWalletJournal(corporationId, division, concurrency) {
8142
+ return this.fetchAllEndpoint(
8143
+ "getCorporationWalletJournal",
8144
+ [corporationId, division],
8145
+ concurrency
8146
+ );
8147
+ }
8148
+ fetchAllCharacterWalletTransactions(characterId, concurrency) {
8149
+ return this.fetchAllEndpoint(
8150
+ "getCharacterWalletTransactions",
8151
+ [characterId],
8152
+ concurrency
8153
+ );
8154
+ }
8155
+ fetchAllCorporationWalletTransactions(corporationId, division, concurrency) {
8156
+ return this.fetchAllEndpoint(
8157
+ "getCorporationWalletTransactions",
8158
+ [corporationId, division],
8159
+ concurrency
8160
+ );
8161
+ }
7574
8162
  streamCharacterWalletJournal(characterId) {
7575
8163
  return this.streamEndpoint(
7576
8164
  "getCharacterWalletJournal",
@@ -7687,6 +8275,16 @@ var WarsClient = class extends BaseEsiClient {
7687
8275
  getWarKillmails(warId) {
7688
8276
  return this.api.getWarKillmails(warId);
7689
8277
  }
8278
+ fetchAllWars(concurrency) {
8279
+ return this.fetchAllEndpoint("getWars", [], concurrency);
8280
+ }
8281
+ fetchAllWarKillmails(warId, concurrency) {
8282
+ return this.fetchAllEndpoint(
8283
+ "getWarKillmails",
8284
+ [warId],
8285
+ concurrency
8286
+ );
8287
+ }
7690
8288
  streamWars() {
7691
8289
  return this.streamEndpoint("getWars");
7692
8290
  }
@@ -8102,6 +8700,72 @@ var RaidableSkyhookSchema = z62.looseObject({
8102
8700
  raidable_at: z62.string().optional(),
8103
8701
  is_raidable: z62.boolean()
8104
8702
  });
8703
+ var SkyhookDetailReagentSchema = z62.looseObject({
8704
+ type_id: z62.number(),
8705
+ secured_stock: z62.number(),
8706
+ unsecured_stock: z62.number(),
8707
+ last_cycle: z62.string()
8708
+ });
8709
+ var SkyhookDetailReinforcementTimerSchema = z62.looseObject({
8710
+ end: z62.string()
8711
+ });
8712
+ var SkyhookDetailTheftVulnerabilitySchema = z62.looseObject({
8713
+ start: z62.string(),
8714
+ end: z62.string()
8715
+ });
8716
+ var SkyhookDetailSchema = z62.looseObject({
8717
+ id: z62.number(),
8718
+ planet_id: z62.number(),
8719
+ state: esiEnum([
8720
+ "Unspecified",
8721
+ "ShieldVulnerable",
8722
+ "ArmorReinforced",
8723
+ "ArmorVulnerable",
8724
+ "HullReinforced",
8725
+ "HullVulnerable"
8726
+ ]),
8727
+ is_active: z62.boolean(),
8728
+ effective_workforce: z62.number().optional(),
8729
+ reagents: z62.array(SkyhookDetailReagentSchema).optional(),
8730
+ reinforcement_timer: SkyhookDetailReinforcementTimerSchema.optional(),
8731
+ theft_vulnerability: SkyhookDetailTheftVulnerabilitySchema.optional()
8732
+ });
8733
+ var SovereigntyHubDetailReagentSchema = z62.looseObject({
8734
+ type_id: z62.number(),
8735
+ amount: z62.number(),
8736
+ burning_per_hour: z62.number().optional()
8737
+ });
8738
+ var SovereigntyHubDetailReagentBaySchema = z62.looseObject({
8739
+ last_updated: z62.string(),
8740
+ reagents: z62.array(SovereigntyHubDetailReagentSchema)
8741
+ });
8742
+ var SovereigntyHubDetailResourceSchema = z62.looseObject({
8743
+ available: z62.number().optional(),
8744
+ used: z62.number().optional()
8745
+ });
8746
+ var SovereigntyHubDetailResourcesSchema = z62.looseObject({
8747
+ power: SovereigntyHubDetailResourceSchema,
8748
+ workforce: SovereigntyHubDetailResourceSchema
8749
+ });
8750
+ var SovereigntyHubDetailUpgradeSchema = z62.looseObject({
8751
+ type_id: z62.number(),
8752
+ power_state: esiEnum(["Unspecified", "Online", "Offline", "Low", "Pending"])
8753
+ });
8754
+ var SovereigntyHubDetailVulnerabilityWindowSchema = z62.looseObject({
8755
+ start: z62.string(),
8756
+ end: z62.string()
8757
+ });
8758
+ var SovereigntyHubDetailTransportSchema = z62.looseObject({});
8759
+ var SovereigntyHubDetailSchema = z62.looseObject({
8760
+ id: z62.number(),
8761
+ solar_system_id: z62.number(),
8762
+ upgrades: z62.array(SovereigntyHubDetailUpgradeSchema),
8763
+ reagent_bay: SovereigntyHubDetailReagentBaySchema,
8764
+ resources: SovereigntyHubDetailResourcesSchema,
8765
+ workforce_transport: SovereigntyHubDetailTransportSchema,
8766
+ fuel_access_list_id: z62.number().optional(),
8767
+ vulnerability_window: SovereigntyHubDetailVulnerabilityWindowSchema.optional()
8768
+ });
8105
8769
 
8106
8770
  // src/core/endpoints/skyhookEndpoints.ts
8107
8771
  var skyhookEndpoints = {
@@ -8124,6 +8788,20 @@ var skyhookEndpoints = {
8124
8788
  method: "GET",
8125
8789
  requiresAuth: false,
8126
8790
  responseSchema: z63.array(RaidableSkyhookSchema)
8791
+ },
8792
+ getSkyhookDetail: {
8793
+ path: "corporations/{corporationId}/structures/skyhooks/{skyhookId}",
8794
+ method: "GET",
8795
+ requiresAuth: true,
8796
+ pathParams: ["corporationId", "skyhookId"],
8797
+ responseSchema: SkyhookDetailSchema
8798
+ },
8799
+ getSovereigntyHubDetail: {
8800
+ path: "corporations/{corporationId}/structures/sovereignty-hubs/{sovereigntyHubId}",
8801
+ method: "GET",
8802
+ requiresAuth: true,
8803
+ pathParams: ["corporationId", "sovereigntyHubId"],
8804
+ responseSchema: SovereigntyHubDetailSchema
8127
8805
  }
8128
8806
  };
8129
8807
 
@@ -8160,6 +8838,28 @@ var SkyhooksClient = class extends BaseEsiClient {
8160
8838
  getRaidableSkyhooks() {
8161
8839
  return this.api.getRaidableSkyhooks();
8162
8840
  }
8841
+ /**
8842
+ * Retrieves detail for a specific skyhook including reagents, reinforcement timer, and theft vulnerability.
8843
+ *
8844
+ * @param corporationId - The ID of the corporation
8845
+ * @param skyhookId - The ID of the skyhook
8846
+ * @returns Skyhook detail
8847
+ * @requires Authentication
8848
+ */
8849
+ getSkyhookDetail(corporationId, skyhookId) {
8850
+ return this.api.getSkyhookDetail(corporationId, skyhookId);
8851
+ }
8852
+ /**
8853
+ * Retrieves detail for a specific sovereignty hub including reagent bay, resources, upgrades, and vulnerability window.
8854
+ *
8855
+ * @param corporationId - The ID of the corporation
8856
+ * @param sovereigntyHubId - The ID of the sovereignty hub
8857
+ * @returns Sovereignty hub detail
8858
+ * @requires Authentication
8859
+ */
8860
+ getSovereigntyHubDetail(corporationId, sovereigntyHubId) {
8861
+ return this.api.getSovereigntyHubDetail(corporationId, sovereigntyHubId);
8862
+ }
8163
8863
  };
8164
8864
 
8165
8865
  // src/core/endpoints/mercenaryEndpoints.ts
@@ -8185,6 +8885,48 @@ var MercenaryTacticalOperationSchema = z64.looseObject({
8185
8885
  started_at: z64.string().optional(),
8186
8886
  expires_at: z64.string().optional()
8187
8887
  });
8888
+ var MercenaryDenDetailEvolutionLevelSchema = z64.looseObject({
8889
+ level: z64.number().optional(),
8890
+ progress: z64.number().optional()
8891
+ });
8892
+ var MercenaryDenDetailEvolutionSchema = z64.looseObject({
8893
+ development: MercenaryDenDetailEvolutionLevelSchema,
8894
+ anarchy: MercenaryDenDetailEvolutionLevelSchema
8895
+ });
8896
+ var MercenaryDenDetailInfomorphsSchema = z64.looseObject({
8897
+ amount: z64.number()
8898
+ });
8899
+ var MercenaryDenDetailReinforcementTimerSchema = z64.looseObject({
8900
+ end: z64.string()
8901
+ });
8902
+ var MercenaryDenDetailSkyhookSchema = z64.looseObject({
8903
+ id: z64.number(),
8904
+ planet_id: z64.number(),
8905
+ corporation_id: z64.number()
8906
+ });
8907
+ var MercenaryDenDetailSchema = z64.looseObject({
8908
+ id: z64.number(),
8909
+ type_id: z64.number(),
8910
+ state: esiEnum(["Unspecified", "Running", "Paused", "Disabled"]),
8911
+ skyhook: MercenaryDenDetailSkyhookSchema,
8912
+ infomorphs: MercenaryDenDetailInfomorphsSchema,
8913
+ evolution: MercenaryDenDetailEvolutionSchema,
8914
+ reinforcement_timer: MercenaryDenDetailReinforcementTimerSchema.optional()
8915
+ });
8916
+ var MercenaryTacticalOperationDetailSchema = z64.looseObject({
8917
+ id: z64.string(),
8918
+ mercenary_den_id: z64.number(),
8919
+ state: esiEnum([
8920
+ "Unspecified",
8921
+ "Available",
8922
+ "Started",
8923
+ "Completed",
8924
+ "Expired",
8925
+ "Removed"
8926
+ ]),
8927
+ dungeon_type_id: z64.number(),
8928
+ expires: z64.string()
8929
+ });
8188
8930
 
8189
8931
  // src/core/endpoints/mercenaryEndpoints.ts
8190
8932
  var mercenaryEndpoints = {
@@ -8201,6 +8943,20 @@ var mercenaryEndpoints = {
8201
8943
  requiresAuth: true,
8202
8944
  pathParams: ["characterId"],
8203
8945
  responseSchema: z65.array(MercenaryTacticalOperationSchema)
8946
+ },
8947
+ getMercenaryDenDetail: {
8948
+ path: "characters/{characterId}/structures/mercenary-dens/{mercenaryDenId}",
8949
+ method: "GET",
8950
+ requiresAuth: true,
8951
+ pathParams: ["characterId", "mercenaryDenId"],
8952
+ responseSchema: MercenaryDenDetailSchema
8953
+ },
8954
+ getMercenaryTacticalOperationDetail: {
8955
+ path: "characters/{characterId}/mercenary-tactical-operations/{operationId}",
8956
+ method: "GET",
8957
+ requiresAuth: true,
8958
+ pathParams: ["characterId", "operationId"],
8959
+ responseSchema: MercenaryTacticalOperationDetailSchema
8204
8960
  }
8205
8961
  };
8206
8962
 
@@ -8229,6 +8985,31 @@ var MercenaryClient = class extends BaseEsiClient {
8229
8985
  getMercenaryTacticalOperations(characterId) {
8230
8986
  return this.api.getMercenaryTacticalOperations(characterId);
8231
8987
  }
8988
+ /**
8989
+ * Retrieves detail for a specific mercenary den including evolution, infomorphs, and skyhook attachment.
8990
+ *
8991
+ * @param characterId - The ID of the character
8992
+ * @param mercenaryDenId - The ID of the mercenary den
8993
+ * @returns Mercenary den detail
8994
+ * @requires Authentication
8995
+ */
8996
+ getMercenaryDenDetail(characterId, mercenaryDenId) {
8997
+ return this.api.getMercenaryDenDetail(characterId, mercenaryDenId);
8998
+ }
8999
+ /**
9000
+ * Retrieves detail for a specific mercenary tactical operation.
9001
+ *
9002
+ * @param characterId - The ID of the character
9003
+ * @param operationId - The UUID of the tactical operation
9004
+ * @returns Mercenary tactical operation detail
9005
+ * @requires Authentication
9006
+ */
9007
+ getMercenaryTacticalOperationDetail(characterId, operationId) {
9008
+ return this.api.getMercenaryTacticalOperationDetail(
9009
+ characterId,
9010
+ operationId
9011
+ );
9012
+ }
8232
9013
  };
8233
9014
 
8234
9015
  // src/core/endpoints/accessListEndpoints.ts
@@ -8293,34 +9074,239 @@ var AccessListsClient = class extends BaseEsiClient {
8293
9074
  }
8294
9075
  };
8295
9076
 
8296
- // src/core/endpoints/militaryCampaignEndpoints.ts
9077
+ // src/schemas/cosmetics.ts
9078
+ import { z as z68 } from "zod";
9079
+ var SkinrLicenseSchema = z68.looseObject({
9080
+ skinr_id: z68.string(),
9081
+ activated: z68.boolean(),
9082
+ unactivated: z68.number()
9083
+ });
9084
+ var CharacterSkinrSchema = z68.looseObject({
9085
+ licenses: z68.array(SkinrLicenseSchema)
9086
+ });
9087
+ var SkinrComponentRunsSchema = z68.looseObject({
9088
+ remaining: z68.number().optional(),
9089
+ unlimited: z68.boolean().optional()
9090
+ });
9091
+ var SkinrComponentLicenseSchema = z68.looseObject({
9092
+ component_id: z68.number(),
9093
+ type: esiEnum(["nanocoating", "pattern"]),
9094
+ runs: SkinrComponentRunsSchema
9095
+ });
9096
+ var CharacterSkinrComponentsSchema = z68.looseObject({
9097
+ licenses: z68.array(SkinrComponentLicenseSchema)
9098
+ });
9099
+ var SkinrTierSchema = z68.looseObject({
9100
+ level: z68.number()
9101
+ });
9102
+ var SkinrLayoutSlotSchema = z68.looseObject({});
9103
+ var SkinrLayoutSchema = z68.looseObject({
9104
+ slots: z68.array(SkinrLayoutSlotSchema),
9105
+ pattern_blend_mode: esiEnum([
9106
+ "normal",
9107
+ "subtract",
9108
+ "exclusion",
9109
+ "nested",
9110
+ "nested_inverted"
9111
+ ])
9112
+ });
9113
+ var SkinrSchema = z68.looseObject({
9114
+ id: z68.string(),
9115
+ name: z68.string(),
9116
+ creator_id: z68.number(),
9117
+ ship_type_id: z68.number(),
9118
+ line: z68.string().optional(),
9119
+ tier: SkinrTierSchema,
9120
+ layout: SkinrLayoutSchema
9121
+ });
9122
+
9123
+ // src/core/endpoints/cosmeticsEndpoints.ts
9124
+ var cosmeticsEndpoints = {
9125
+ getCharacterSkinr: {
9126
+ path: "characters/{characterId}/cosmetics/skinr",
9127
+ method: "GET",
9128
+ requiresAuth: true,
9129
+ pathParams: ["characterId"],
9130
+ responseSchema: CharacterSkinrSchema
9131
+ },
9132
+ getCharacterSkinrComponents: {
9133
+ path: "characters/{characterId}/cosmetics/skinr/components",
9134
+ method: "GET",
9135
+ requiresAuth: true,
9136
+ pathParams: ["characterId"],
9137
+ responseSchema: CharacterSkinrComponentsSchema
9138
+ },
9139
+ getSkinr: {
9140
+ path: "cosmetics/skinr/{skinrId}",
9141
+ method: "GET",
9142
+ requiresAuth: false,
9143
+ pathParams: ["skinrId"],
9144
+ responseSchema: SkinrSchema
9145
+ }
9146
+ };
9147
+
9148
+ // src/clients/CosmeticsClient.ts
9149
+ var CosmeticsClient = class extends BaseEsiClient {
9150
+ constructor(client) {
9151
+ super(client, cosmeticsEndpoints);
9152
+ }
9153
+ getCharacterSkinr(characterId) {
9154
+ return this.api.getCharacterSkinr(characterId);
9155
+ }
9156
+ getCharacterSkinrComponents(characterId) {
9157
+ return this.api.getCharacterSkinrComponents(characterId);
9158
+ }
9159
+ getSkinr(skinrId) {
9160
+ return this.api.getSkinr(skinrId);
9161
+ }
9162
+ };
9163
+
9164
+ // src/schemas/paragon-hub.ts
8297
9165
  import { z as z69 } from "zod";
9166
+ var ParagonHubCursorSchema = z69.looseObject({
9167
+ after: z69.string().optional(),
9168
+ before: z69.string().optional()
9169
+ });
9170
+ var ParagonHubSkinrPriceSchema = z69.looseObject({
9171
+ isk: z69.number().optional(),
9172
+ plex: z69.number().optional()
9173
+ });
9174
+ var ParagonHubSkinrListingSchema = z69.looseObject({
9175
+ id: z69.string(),
9176
+ state: esiEnum(["listed", "sold_out", "expired", "removed"]),
9177
+ last_modified: z69.string(),
9178
+ seller_id: z69.number(),
9179
+ skinr_id: z69.string(),
9180
+ created: z69.string(),
9181
+ expires: z69.string(),
9182
+ quantity: z69.number(),
9183
+ price: ParagonHubSkinrPriceSchema
9184
+ });
9185
+ var ParagonHubSkinrTargetSchema = z69.looseObject({
9186
+ character_id: z69.number().optional(),
9187
+ corporation_id: z69.number().optional(),
9188
+ alliance_id: z69.number().optional(),
9189
+ public: z69.boolean().optional()
9190
+ });
9191
+ var ParagonHubCharacterListingSchema = z69.looseObject({
9192
+ id: z69.string(),
9193
+ state: esiEnum(["listed", "sold_out", "expired", "removed"]),
9194
+ last_modified: z69.string(),
9195
+ seller_id: z69.number(),
9196
+ skinr_id: z69.string(),
9197
+ created: z69.string(),
9198
+ expires: z69.string(),
9199
+ quantity: z69.number(),
9200
+ price: ParagonHubSkinrPriceSchema,
9201
+ target: ParagonHubSkinrTargetSchema
9202
+ });
9203
+ var ParagonHubSkinrResponseSchema = z69.looseObject({
9204
+ cursor: ParagonHubCursorSchema.optional(),
9205
+ listings: z69.array(ParagonHubSkinrListingSchema)
9206
+ });
9207
+ var ParagonHubCharacterSkinrResponseSchema = z69.looseObject({
9208
+ cursor: ParagonHubCursorSchema.optional(),
9209
+ listings: z69.array(ParagonHubCharacterListingSchema)
9210
+ });
9211
+
9212
+ // src/core/endpoints/paragonHubEndpoints.ts
9213
+ var paragonHubEndpoints = {
9214
+ getPublicListings: {
9215
+ path: "paragon-hub/skinr",
9216
+ method: "GET",
9217
+ requiresAuth: false,
9218
+ queryParams: { after: "after", before: "before", limit: "limit" },
9219
+ responseSchema: ParagonHubSkinrResponseSchema
9220
+ },
9221
+ getCharacterListings: {
9222
+ path: "characters/{characterId}/paragon-hub/skinr",
9223
+ method: "GET",
9224
+ requiresAuth: true,
9225
+ pathParams: ["characterId"],
9226
+ queryParams: { after: "after", before: "before", limit: "limit" },
9227
+ responseSchema: ParagonHubCharacterSkinrResponseSchema
9228
+ },
9229
+ getAllianceListings: {
9230
+ path: "paragon-hub/skinr/alliances/{allianceId}",
9231
+ method: "GET",
9232
+ requiresAuth: true,
9233
+ pathParams: ["allianceId"],
9234
+ queryParams: { after: "after", before: "before", limit: "limit" },
9235
+ responseSchema: ParagonHubSkinrResponseSchema
9236
+ },
9237
+ getCharacterTargetedListings: {
9238
+ path: "paragon-hub/skinr/characters/{characterId}",
9239
+ method: "GET",
9240
+ requiresAuth: true,
9241
+ pathParams: ["characterId"],
9242
+ queryParams: { after: "after", before: "before", limit: "limit" },
9243
+ responseSchema: ParagonHubSkinrResponseSchema
9244
+ },
9245
+ getCorporationListings: {
9246
+ path: "paragon-hub/skinr/corporations/{corporationId}",
9247
+ method: "GET",
9248
+ requiresAuth: true,
9249
+ pathParams: ["corporationId"],
9250
+ queryParams: { after: "after", before: "before", limit: "limit" },
9251
+ responseSchema: ParagonHubSkinrResponseSchema
9252
+ }
9253
+ };
9254
+
9255
+ // src/clients/ParagonHubClient.ts
9256
+ var ParagonHubClient = class extends BaseEsiClient {
9257
+ constructor(client) {
9258
+ super(client, paragonHubEndpoints);
9259
+ }
9260
+ getPublicListings(after, before, limit) {
9261
+ return this.api.getPublicListings(after, before, limit);
9262
+ }
9263
+ getCharacterListings(characterId, after, before, limit) {
9264
+ return this.api.getCharacterListings(characterId, after, before, limit);
9265
+ }
9266
+ getAllianceListings(allianceId, after, before, limit) {
9267
+ return this.api.getAllianceListings(allianceId, after, before, limit);
9268
+ }
9269
+ getCharacterTargetedListings(characterId, after, before, limit) {
9270
+ return this.api.getCharacterTargetedListings(
9271
+ characterId,
9272
+ after,
9273
+ before,
9274
+ limit
9275
+ );
9276
+ }
9277
+ getCorporationListings(corporationId, after, before, limit) {
9278
+ return this.api.getCorporationListings(corporationId, after, before, limit);
9279
+ }
9280
+ };
9281
+
9282
+ // src/core/endpoints/militaryCampaignEndpoints.ts
9283
+ import { z as z71 } from "zod";
8298
9284
 
8299
9285
  // src/schemas/military-campaigns.ts
8300
- import { z as z68 } from "zod";
8301
- var MilitaryCampaignSchema = z68.looseObject({
8302
- campaign_id: z68.string(),
8303
- state: z68.string(),
8304
- progress: z68.number(),
8305
- start_time: z68.string(),
8306
- finish_time: z68.string().optional()
8307
- });
8308
- var MilitaryCampaignObjectiveSchema = z68.looseObject({
8309
- objective_id: z68.string(),
8310
- campaign_id: z68.string(),
8311
- state: z68.string(),
8312
- progress: z68.number(),
8313
- participants: z68.looseObject({
8314
- total: z68.number(),
8315
- committed: z68.number(),
8316
- contributors: z68.number()
9286
+ import { z as z70 } from "zod";
9287
+ var MilitaryCampaignSchema = z70.looseObject({
9288
+ campaign_id: z70.string(),
9289
+ state: z70.string(),
9290
+ progress: z70.number(),
9291
+ start_time: z70.string(),
9292
+ finish_time: z70.string().optional()
9293
+ });
9294
+ var MilitaryCampaignObjectiveSchema = z70.looseObject({
9295
+ objective_id: z70.string(),
9296
+ campaign_id: z70.string(),
9297
+ state: z70.string(),
9298
+ progress: z70.number(),
9299
+ participants: z70.looseObject({
9300
+ total: z70.number(),
9301
+ committed: z70.number(),
9302
+ contributors: z70.number()
8317
9303
  })
8318
9304
  });
8319
- var CharacterMilitaryCampaignObjectiveSchema = z68.looseObject({
8320
- objective_id: z68.string(),
8321
- campaign_id: z68.string(),
8322
- committed: z68.boolean(),
8323
- contribution: z68.number()
9305
+ var CharacterMilitaryCampaignObjectiveSchema = z70.looseObject({
9306
+ objective_id: z70.string(),
9307
+ campaign_id: z70.string(),
9308
+ committed: z70.boolean(),
9309
+ contribution: z70.number()
8324
9310
  });
8325
9311
 
8326
9312
  // src/core/endpoints/militaryCampaignEndpoints.ts
@@ -8329,7 +9315,7 @@ var militaryCampaignEndpoints = {
8329
9315
  path: "military-campaigns",
8330
9316
  method: "GET",
8331
9317
  requiresAuth: false,
8332
- responseSchema: z69.array(MilitaryCampaignSchema)
9318
+ responseSchema: z71.array(MilitaryCampaignSchema)
8333
9319
  },
8334
9320
  getMilitaryCampaign: {
8335
9321
  path: "military-campaigns/{campaignId}",
@@ -8343,7 +9329,7 @@ var militaryCampaignEndpoints = {
8343
9329
  method: "GET",
8344
9330
  requiresAuth: false,
8345
9331
  pathParams: ["campaignId"],
8346
- responseSchema: z69.array(MilitaryCampaignObjectiveSchema)
9332
+ responseSchema: z71.array(MilitaryCampaignObjectiveSchema)
8347
9333
  },
8348
9334
  getMilitaryCampaignObjective: {
8349
9335
  path: "military-campaigns/{campaignId}/objectives/{objectiveId}",
@@ -8357,7 +9343,7 @@ var militaryCampaignEndpoints = {
8357
9343
  method: "GET",
8358
9344
  requiresAuth: true,
8359
9345
  pathParams: ["characterId"],
8360
- responseSchema: z69.array(CharacterMilitaryCampaignObjectiveSchema)
9346
+ responseSchema: z71.array(CharacterMilitaryCampaignObjectiveSchema)
8361
9347
  },
8362
9348
  getCharacterMilitaryCampaignObjective: {
8363
9349
  path: "characters/{characterId}/military-campaigns/objectives/{objectiveId}",
@@ -8471,6 +9457,8 @@ var clientFactories = {
8471
9457
  meta: MetaClient,
8472
9458
  freelanceJobs: FreelanceJobsClient,
8473
9459
  skyhooks: SkyhooksClient,
9460
+ cosmetics: CosmeticsClient,
9461
+ paragonHub: ParagonHubClient,
8474
9462
  mercenary: MercenaryClient,
8475
9463
  militaryCampaigns: MilitaryCampaignsClient,
8476
9464
  accessLists: AccessListsClient
@@ -8882,8 +9870,8 @@ var esiRateLimitGroups = {
8882
9870
  "PUT:fleets/{fleet_id}/wings/{wing_id}": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8883
9871
  "DELETE:fleets/{fleet_id}/wings/{wing_id}": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8884
9872
  "POST:fleets/{fleet_id}/wings/{wing_id}/squads": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8885
- "GET:freelance-jobs": { group: "freelance-job", maxTokens: 900, windowSizeMs: 9e5 },
8886
- "GET:freelance-jobs/{job_id}": { group: "freelance-job", maxTokens: 900, windowSizeMs: 9e5 },
9873
+ "GET:freelance-jobs": { group: "freelance-job", maxTokens: 12e3, windowSizeMs: 9e5 },
9874
+ "GET:freelance-jobs/{job_id}": { group: "freelance-job", maxTokens: 12e3, windowSizeMs: 9e5 },
8887
9875
  "GET:fw/leaderboards": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
8888
9876
  "GET:fw/leaderboards/characters": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
8889
9877
  "GET:fw/leaderboards/corporations": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
@@ -8928,6 +9916,7 @@ var RateLimiter = class _RateLimiter {
8928
9916
  minDelayMs;
8929
9917
  decelerationThreshold;
8930
9918
  userKeyExtractor;
9919
+ endpointOverrides;
8931
9920
  lastRequestTime = 0;
8932
9921
  minDelayChain = Promise.resolve();
8933
9922
  isTestMode = false;
@@ -8941,6 +9930,7 @@ var RateLimiter = class _RateLimiter {
8941
9930
  this.minDelayMs = config?.minDelayMs ?? 50;
8942
9931
  this.decelerationThreshold = config?.decelerationThreshold ?? 0.2;
8943
9932
  this.userKeyExtractor = config?.userKeyExtractor;
9933
+ this.endpointOverrides = config?.endpointOverrides ?? {};
8944
9934
  if (this.userKeyExtractor) {
8945
9935
  this.userBuckets = /* @__PURE__ */ new Map();
8946
9936
  }
@@ -8983,6 +9973,14 @@ var RateLimiter = class _RateLimiter {
8983
9973
  if (!templatePath || !method) return void 0;
8984
9974
  const normalized = templatePath.replace(/\/$/, "").replace(/\{(\w+)\}/g, (_, name) => `{${camelToSnake(name)}}`);
8985
9975
  const key = `${method}:${normalized}`;
9976
+ const override = this.endpointOverrides[key];
9977
+ if (override) {
9978
+ return {
9979
+ group: `endpoint:${key}`,
9980
+ maxTokens: override.maxTokens,
9981
+ windowSizeMs: override.windowSizeMs
9982
+ };
9983
+ }
8986
9984
  return esiRateLimitGroups[key];
8987
9985
  }
8988
9986
  resolveUserSet(requestHeaders) {
@@ -9465,6 +10463,12 @@ var EsiClient = class {
9465
10463
  get freelanceJobs() {
9466
10464
  return this.getClient("freelanceJobs");
9467
10465
  }
10466
+ get cosmetics() {
10467
+ return this.getClient("cosmetics");
10468
+ }
10469
+ get paragonHub() {
10470
+ return this.getClient("paragonHub");
10471
+ }
9468
10472
  get skyhooks() {
9469
10473
  return this.getClient("skyhooks");
9470
10474
  }
@@ -9841,6 +10845,7 @@ var ApiClientBuilder = class {
9841
10845
  cache;
9842
10846
  circuitBreaker;
9843
10847
  _timeout;
10848
+ _fetch;
9844
10849
  setClientId(clientId) {
9845
10850
  this.clientId = clientId;
9846
10851
  return this;
@@ -9869,12 +10874,17 @@ var ApiClientBuilder = class {
9869
10874
  this._timeout = timeout;
9870
10875
  return this;
9871
10876
  }
10877
+ setFetch(fn) {
10878
+ this._fetch = fn;
10879
+ return this;
10880
+ }
9872
10881
  build() {
9873
10882
  const client = new ApiClient(this.clientId, this.link, this.accessToken);
9874
10883
  client.setRateLimiter(this.rateLimiter ?? new RateLimiter());
9875
10884
  if (this.cache) client.setCache(this.cache);
9876
10885
  if (this.circuitBreaker) client.setCircuitBreaker(this.circuitBreaker);
9877
10886
  if (this._timeout !== void 0) client.setTimeout(this._timeout);
10887
+ if (this._fetch) client.setFetch(this._fetch);
9878
10888
  return client;
9879
10889
  }
9880
10890
  };
@@ -10010,6 +11020,19 @@ var esiEndpointScopes = {
10010
11020
  "GET:universe/structures/{structure_id}": ["esi-universe.read_structures.v1"]
10011
11021
  };
10012
11022
 
11023
+ // src/core/logger/NoopLogger.ts
11024
+ var noop = () => {
11025
+ };
11026
+ var noopLogger = {
11027
+ info: noop,
11028
+ warn: noop,
11029
+ error: noop,
11030
+ debug: noop
11031
+ };
11032
+ function createNoopLogger() {
11033
+ return noopLogger;
11034
+ }
11035
+
10013
11036
  // src/types/branded.ts
10014
11037
  function brand(value) {
10015
11038
  return value;
@@ -10054,6 +11077,8 @@ __export(schemas_exports, {
10054
11077
  CharacterShipSchema: () => CharacterShipSchema,
10055
11078
  CharacterSkillSchema: () => CharacterSkillSchema,
10056
11079
  CharacterSkillsResponseSchema: () => CharacterSkillsResponseSchema,
11080
+ CharacterSkinrComponentsSchema: () => CharacterSkinrComponentsSchema,
11081
+ CharacterSkinrSchema: () => CharacterSkinrSchema,
10057
11082
  CharacterTitleSchema: () => CharacterTitleSchema,
10058
11083
  CloneInfoSchema: () => CloneInfoSchema,
10059
11084
  ColonyLayoutSchema: () => ColonyLayoutSchema,
@@ -10134,7 +11159,13 @@ __export(schemas_exports, {
10134
11159
  MarketOrderSchema: () => MarketOrderSchema,
10135
11160
  MarketPriceSchema: () => MarketPriceSchema,
10136
11161
  MedalSchema: () => MedalSchema,
11162
+ MercenaryDenDetailEvolutionSchema: () => MercenaryDenDetailEvolutionSchema,
11163
+ MercenaryDenDetailInfomorphsSchema: () => MercenaryDenDetailInfomorphsSchema,
11164
+ MercenaryDenDetailReinforcementTimerSchema: () => MercenaryDenDetailReinforcementTimerSchema,
11165
+ MercenaryDenDetailSchema: () => MercenaryDenDetailSchema,
11166
+ MercenaryDenDetailSkyhookSchema: () => MercenaryDenDetailSkyhookSchema,
10137
11167
  MercenaryDenSchema: () => MercenaryDenSchema,
11168
+ MercenaryTacticalOperationDetailSchema: () => MercenaryTacticalOperationDetailSchema,
10138
11169
  MercenaryTacticalOperationSchema: () => MercenaryTacticalOperationSchema,
10139
11170
  MetaChangelogEntrySchema: () => MetaChangelogEntrySchema,
10140
11171
  MetaChangelogSchema: () => MetaChangelogSchema,
@@ -10151,6 +11182,13 @@ __export(schemas_exports, {
10151
11182
  NameAndCategorySchema: () => NameAndCategorySchema,
10152
11183
  NotificationSchema: () => NotificationSchema,
10153
11184
  OrbitalSkyhookSchema: () => OrbitalSkyhookSchema,
11185
+ ParagonHubCharacterListingSchema: () => ParagonHubCharacterListingSchema,
11186
+ ParagonHubCharacterSkinrResponseSchema: () => ParagonHubCharacterSkinrResponseSchema,
11187
+ ParagonHubCursorSchema: () => ParagonHubCursorSchema,
11188
+ ParagonHubSkinrListingSchema: () => ParagonHubSkinrListingSchema,
11189
+ ParagonHubSkinrPriceSchema: () => ParagonHubSkinrPriceSchema,
11190
+ ParagonHubSkinrResponseSchema: () => ParagonHubSkinrResponseSchema,
11191
+ ParagonHubSkinrTargetSchema: () => ParagonHubSkinrTargetSchema,
10154
11192
  PlanetInfoSchema: () => PlanetInfoSchema,
10155
11193
  PlanetaryColonySchema: () => PlanetaryColonySchema,
10156
11194
  RaceSchema: () => RaceSchema,
@@ -10161,8 +11199,27 @@ __export(schemas_exports, {
10161
11199
  SearchResultSchema: () => SearchResultSchema,
10162
11200
  ServerStatusSchema: () => ServerStatusSchema,
10163
11201
  SkillQueueSchema: () => SkillQueueSchema,
11202
+ SkinrComponentLicenseSchema: () => SkinrComponentLicenseSchema,
11203
+ SkinrComponentRunsSchema: () => SkinrComponentRunsSchema,
11204
+ SkinrLayoutSchema: () => SkinrLayoutSchema,
11205
+ SkinrLayoutSlotSchema: () => SkinrLayoutSlotSchema,
11206
+ SkinrLicenseSchema: () => SkinrLicenseSchema,
11207
+ SkinrSchema: () => SkinrSchema,
11208
+ SkinrTierSchema: () => SkinrTierSchema,
11209
+ SkyhookDetailReagentSchema: () => SkyhookDetailReagentSchema,
11210
+ SkyhookDetailReinforcementTimerSchema: () => SkyhookDetailReinforcementTimerSchema,
11211
+ SkyhookDetailSchema: () => SkyhookDetailSchema,
11212
+ SkyhookDetailTheftVulnerabilitySchema: () => SkyhookDetailTheftVulnerabilitySchema,
10164
11213
  SolarSystemInfoSchema: () => SolarSystemInfoSchema,
10165
11214
  SovereigntyCampaignSchema: () => SovereigntyCampaignSchema,
11215
+ SovereigntyHubDetailReagentBaySchema: () => SovereigntyHubDetailReagentBaySchema,
11216
+ SovereigntyHubDetailReagentSchema: () => SovereigntyHubDetailReagentSchema,
11217
+ SovereigntyHubDetailResourceSchema: () => SovereigntyHubDetailResourceSchema,
11218
+ SovereigntyHubDetailResourcesSchema: () => SovereigntyHubDetailResourcesSchema,
11219
+ SovereigntyHubDetailSchema: () => SovereigntyHubDetailSchema,
11220
+ SovereigntyHubDetailTransportSchema: () => SovereigntyHubDetailTransportSchema,
11221
+ SovereigntyHubDetailUpgradeSchema: () => SovereigntyHubDetailUpgradeSchema,
11222
+ SovereigntyHubDetailVulnerabilityWindowSchema: () => SovereigntyHubDetailVulnerabilityWindowSchema,
10166
11223
  SovereigntyHubSchema: () => SovereigntyHubSchema2,
10167
11224
  SovereigntySystemSchema: () => SovereigntySystemSchema,
10168
11225
  SovereigntySystemStructureSchema: () => SovereigntySystemStructureSchema,
@@ -10198,6 +11255,7 @@ export {
10198
11255
  ContractsClient,
10199
11256
  CorporationProjectsClient,
10200
11257
  CorporationsClient,
11258
+ CosmeticsClient,
10201
11259
  CustomEsiClient,
10202
11260
  DogmaClient,
10203
11261
  ETagCacheManager,
@@ -10223,6 +11281,7 @@ export {
10223
11281
  MercenaryClient,
10224
11282
  MetaClient,
10225
11283
  MilitaryCampaignsClient,
11284
+ ParagonHubClient,
10226
11285
  PiClient,
10227
11286
  RateLimiter,
10228
11287
  RequestDeduplicator,
@@ -10242,8 +11301,10 @@ export {
10242
11301
  brand,
10243
11302
  buildEndpointPath,
10244
11303
  configureApiClient,
11304
+ createNoopLogger,
10245
11305
  esiEndpointScopes,
10246
11306
  fetchAllCursorPages,
11307
+ fetchAllPages,
10247
11308
  fetchPages,
10248
11309
  getDefaultClient,
10249
11310
  isCircuitOpen,