@lgriffin/esi.ts 9.4.0 → 9.6.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 (77) hide show
  1. package/CHANGELOG.md +388 -388
  2. package/LICENSE +26 -26
  3. package/README.md +1030 -1018
  4. package/dist/EsiClient.d.ts +4 -0
  5. package/dist/EsiClient.d.ts.map +1 -1
  6. package/dist/clients/CosmeticsClient.d.ts +11 -0
  7. package/dist/clients/CosmeticsClient.d.ts.map +1 -0
  8. package/dist/clients/MercenaryClient.d.ts +19 -1
  9. package/dist/clients/MercenaryClient.d.ts.map +1 -1
  10. package/dist/clients/ParagonHubClient.d.ts +13 -0
  11. package/dist/clients/ParagonHubClient.d.ts.map +1 -0
  12. package/dist/clients/SkyhooksClient.d.ts +19 -1
  13. package/dist/clients/SkyhooksClient.d.ts.map +1 -1
  14. package/dist/core/ApiClient.d.ts.map +1 -1
  15. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  16. package/dist/core/ClientRegistry.d.ts +5 -3
  17. package/dist/core/ClientRegistry.d.ts.map +1 -1
  18. package/dist/core/cache/cacheKey.d.ts +3 -0
  19. package/dist/core/cache/cacheKey.d.ts.map +1 -0
  20. package/dist/core/endpoints/cosmeticsEndpoints.d.ts +52 -0
  21. package/dist/core/endpoints/cosmeticsEndpoints.d.ts.map +1 -0
  22. package/dist/core/endpoints/mercenaryEndpoints.d.ts +45 -0
  23. package/dist/core/endpoints/mercenaryEndpoints.d.ts.map +1 -1
  24. package/dist/core/endpoints/paragonHubEndpoints.d.ts +163 -0
  25. package/dist/core/endpoints/paragonHubEndpoints.d.ts.map +1 -0
  26. package/dist/core/endpoints/skyhookEndpoints.d.ts +64 -0
  27. package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
  28. package/dist/core/requestPipeline/cachePolicy.d.ts +3 -3
  29. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  30. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  31. package/dist/core/requestPipeline/statusHandling.d.ts +2 -2
  32. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  33. package/dist/errors.js.map +1 -1
  34. package/dist/errors.mjs.map +1 -1
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +497 -49
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +495 -49
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/schemas/cosmetics.d.ts +58 -0
  42. package/dist/schemas/cosmetics.d.ts.map +1 -0
  43. package/dist/schemas/index.d.ts +2 -0
  44. package/dist/schemas/index.d.ts.map +1 -1
  45. package/dist/schemas/index.js +1461 -1191
  46. package/dist/schemas/index.js.map +1 -1
  47. package/dist/schemas/index.mjs +1427 -1191
  48. package/dist/schemas/index.mjs.map +1 -1
  49. package/dist/schemas/mercenary.d.ts +54 -0
  50. package/dist/schemas/mercenary.d.ts.map +1 -1
  51. package/dist/schemas/paragon-hub.d.ts +96 -0
  52. package/dist/schemas/paragon-hub.d.ts.map +1 -0
  53. package/dist/schemas/skyhooks.d.ts +101 -0
  54. package/dist/schemas/skyhooks.d.ts.map +1 -1
  55. package/dist/sde/index.js +7 -5100
  56. package/dist/sde/index.js.map +1 -1
  57. package/dist/sde/index.mjs +12 -5134
  58. package/dist/sde/index.mjs.map +1 -1
  59. package/dist/sde/memory.d.ts +8 -0
  60. package/dist/sde/memory.d.ts.map +1 -0
  61. package/dist/sde/memory.js +1100 -0
  62. package/dist/sde/memory.js.map +1 -0
  63. package/dist/sde/memory.mjs +1064 -0
  64. package/dist/sde/memory.mjs.map +1 -0
  65. package/dist/testing/index.js.map +1 -1
  66. package/dist/testing/index.mjs.map +1 -1
  67. package/dist/types/api-responses.d.ts +2 -0
  68. package/dist/types/api-responses.d.ts.map +1 -1
  69. package/dist/types/cosmetics.d.ts +8 -0
  70. package/dist/types/cosmetics.d.ts.map +1 -0
  71. package/dist/types/mercenary.d.ts +3 -1
  72. package/dist/types/mercenary.d.ts.map +1 -1
  73. package/dist/types/paragon-hub.d.ts +8 -0
  74. package/dist/types/paragon-hub.d.ts.map +1 -0
  75. package/dist/types/skyhooks.d.ts +3 -1
  76. package/dist/types/skyhooks.d.ts.map +1 -1
  77. package/package.json +289 -282
package/dist/index.js CHANGED
@@ -46,6 +46,7 @@ __export(index_exports, {
46
46
  ContractsClient: () => ContractsClient,
47
47
  CorporationProjectsClient: () => CorporationProjectsClient,
48
48
  CorporationsClient: () => CorporationsClient,
49
+ CosmeticsClient: () => CosmeticsClient,
49
50
  CustomEsiClient: () => CustomEsiClient,
50
51
  DogmaClient: () => DogmaClient,
51
52
  ETagCacheManager: () => ETagCacheManager,
@@ -71,6 +72,7 @@ __export(index_exports, {
71
72
  MercenaryClient: () => MercenaryClient,
72
73
  MetaClient: () => MetaClient,
73
74
  MilitaryCampaignsClient: () => MilitaryCampaignsClient,
75
+ ParagonHubClient: () => ParagonHubClient,
74
76
  PiClient: () => PiClient,
75
77
  RateLimiter: () => RateLimiter,
76
78
  RequestDeduplicator: () => RequestDeduplicator,
@@ -267,9 +269,6 @@ var ApiClient = class {
267
269
  this.compatibilityDate = date;
268
270
  }
269
271
  setAccessToken(token) {
270
- if (this.accessToken !== token) {
271
- this.cache?.clear();
272
- }
273
272
  this.accessToken = token;
274
273
  }
275
274
  setTokenProvider(provider) {
@@ -303,9 +302,6 @@ var ApiClient = class {
303
302
  }
304
303
  this.refreshInFlight = this.tokenProvider().then(
305
304
  (token) => {
306
- if (this.accessToken !== token) {
307
- this.cache?.clear();
308
- }
309
305
  this.accessToken = token;
310
306
  this.refreshInFlight = void 0;
311
307
  return token;
@@ -649,6 +645,16 @@ function isValidationError(error) {
649
645
  return error instanceof EsiValidationError;
650
646
  }
651
647
 
648
+ // src/core/cache/cacheKey.ts
649
+ var import_crypto = require("crypto");
650
+ function buildCacheKey(url, client, requiresAuth = false) {
651
+ if (!requiresAuth) return url;
652
+ const authHeader = client.getAuthorizationHeader();
653
+ if (!authHeader) return url;
654
+ const hash = (0, import_crypto.createHash)("sha256").update(authHeader).digest("hex").slice(0, 16);
655
+ return `${hash}:${url}`;
656
+ }
657
+
652
658
  // src/core/constants.ts
653
659
  var PACKAGE_NAME = "esi.ts";
654
660
  var PACKAGE_VERSION = "9.2.0";
@@ -685,7 +691,8 @@ function buildRequestHeaders(client, url, method, requiresAuth, useETag, body, r
685
691
  }
686
692
  const cache = resolveCache2(client);
687
693
  if (useETag && method === "GET" && cache) {
688
- const cachedETag = cache.getETag(url);
694
+ const key = buildCacheKey(url, client, requiresAuth);
695
+ const cachedETag = cache.getETag(key);
689
696
  if (cachedETag) {
690
697
  headers["If-None-Match"] = cachedETag;
691
698
  logDebug(`Adding If-None-Match header: ${cachedETag}`);
@@ -839,13 +846,14 @@ function lookupSpecTtl(method, templatePath) {
839
846
  const seconds = esiCacheTtls[key];
840
847
  return typeof seconds === "number" ? seconds * 1e3 : void 0;
841
848
  }
842
- function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2) {
849
+ function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2, requiresAuth = false) {
843
850
  if (method !== "GET" || !templatePath) return null;
844
851
  const specTtlMs = lookupSpecTtl(method, templatePath);
845
852
  if (!specTtlMs) return null;
846
853
  const cache = resolveCache2(client);
847
854
  if (!cache) return null;
848
- const entry = cache.get(url);
855
+ const key = buildCacheKey(url, client, requiresAuth);
856
+ const entry = cache.get(key);
849
857
  if (!entry) return null;
850
858
  const age = Date.now() - entry.timestamp;
851
859
  if (age < specTtlMs) {
@@ -862,10 +870,11 @@ function trySpecAwareCacheHit(client, url, method, templatePath, resolveCache2)
862
870
  }
863
871
  return null;
864
872
  }
865
- function tryStaleCacheResponse(client, url, parsed, resolveCache2) {
873
+ function tryStaleCacheResponse(client, url, parsed, resolveCache2, requiresAuth = false) {
866
874
  const cache = resolveCache2(client);
867
875
  if (!cache) return null;
868
- const cachedEntry = cache.get(url);
876
+ const key = buildCacheKey(url, client, requiresAuth);
877
+ const cachedEntry = cache.get(key);
869
878
  if (!cachedEntry) return null;
870
879
  return {
871
880
  headers: { ...cachedEntry.headers, ...parsed.raw },
@@ -876,13 +885,14 @@ function tryStaleCacheResponse(client, url, parsed, resolveCache2) {
876
885
  cacheHitType: "stale-on-error"
877
886
  };
878
887
  }
879
- function cacheResponse(client, url, method, endpoint, parsed, data, useETag, resolveCache2, templatePath) {
888
+ function cacheResponse(client, url, method, endpoint, parsed, data, useETag, resolveCache2, templatePath, requiresAuth = false) {
880
889
  const cache = resolveCache2(client);
881
890
  if (useETag && method === "GET" && cache && parsed.etag) {
891
+ const key = buildCacheKey(url, client, requiresAuth);
882
892
  const headerTtl = parseCacheControlTtl(parsed.raw);
883
893
  const specTtlMs = templatePath ? lookupSpecTtl(method, templatePath) : void 0;
884
894
  const ttl = specTtlMs ?? headerTtl;
885
- cache.set(url, parsed.etag, data, parsed.raw, ttl);
895
+ cache.set(key, parsed.etag, data, parsed.raw, ttl);
886
896
  const ttlInfo = ttl ? ` (ttl=${ttl}ms)` : "";
887
897
  logDebug(`Cached response for ${url} with ETag ${parsed.etag}${ttlInfo}`);
888
898
  }
@@ -908,7 +918,7 @@ var STATUS_MESSAGES = {
908
918
  504: "Gateway Timeout",
909
919
  520: "Internal server error, did the request terminate too soon?"
910
920
  };
911
- function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2) {
921
+ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2, requiresAuth = false) {
912
922
  if (status === 201) {
913
923
  return { headers: parsed.raw, body: void 0, status: 201 };
914
924
  }
@@ -919,7 +929,8 @@ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2)
919
929
  if (status === 304) {
920
930
  const cache = resolveCache2(client);
921
931
  if (useETag && cache) {
922
- const cachedEntry = cache.get(url);
932
+ const key = buildCacheKey(url, client, requiresAuth);
933
+ const cachedEntry = cache.get(key);
923
934
  if (cachedEntry) {
924
935
  logInfo(`Cache hit (304) for endpoint: ${url}`);
925
936
  return {
@@ -940,14 +951,15 @@ function handleEarlyStatus(client, status, url, parsed, useETag, resolveCache2)
940
951
  }
941
952
  return null;
942
953
  }
943
- function handleErrorResponse(client, response, url, parsed, useETag, resolveCache2) {
954
+ function handleErrorResponse(client, response, url, parsed, useETag, resolveCache2, requiresAuth = false) {
944
955
  const errorMessage = STATUS_MESSAGES[response.status] || response.statusText;
945
956
  if (response.status >= 500 && useETag) {
946
957
  const staleResult = tryStaleCacheResponse(
947
958
  client,
948
959
  url,
949
960
  parsed,
950
- resolveCache2
961
+ resolveCache2,
962
+ requiresAuth
951
963
  );
952
964
  if (staleResult) {
953
965
  logWarn(`${errorMessage} for ${url} \u2014 serving stale cache`);
@@ -1444,7 +1456,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1444
1456
  url,
1445
1457
  parsed,
1446
1458
  useETag,
1447
- resolveCache
1459
+ resolveCache,
1460
+ requiresAuth
1448
1461
  );
1449
1462
  if (earlyResult) return finish(earlyResult);
1450
1463
  if (!response.ok) {
@@ -1454,7 +1467,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1454
1467
  url,
1455
1468
  parsed,
1456
1469
  useETag,
1457
- resolveCache
1470
+ resolveCache,
1471
+ requiresAuth
1458
1472
  );
1459
1473
  return finish(staleOrThrow);
1460
1474
  }
@@ -1468,7 +1482,8 @@ var executeRequest = async (client, endpoint, method, body, requiresAuth = false
1468
1482
  data,
1469
1483
  useETag,
1470
1484
  resolveCache,
1471
- templatePath
1485
+ templatePath,
1486
+ requiresAuth
1472
1487
  );
1473
1488
  const cursorResult = handleCursorPagination(parsed, data);
1474
1489
  if (cursorResult) return finish(cursorResult);
@@ -1541,7 +1556,8 @@ var handleRequest = async (client, endpoint, method, body, requiresAuth = false,
1541
1556
  rawUrl,
1542
1557
  method,
1543
1558
  templatePath,
1544
- resolveCache
1559
+ resolveCache,
1560
+ requiresAuth
1545
1561
  );
1546
1562
  if (specHit) {
1547
1563
  return applyResponseInterceptors(
@@ -8208,6 +8224,72 @@ var RaidableSkyhookSchema = import_zod62.z.looseObject({
8208
8224
  raidable_at: import_zod62.z.string().optional(),
8209
8225
  is_raidable: import_zod62.z.boolean()
8210
8226
  });
8227
+ var SkyhookDetailReagentSchema = import_zod62.z.looseObject({
8228
+ type_id: import_zod62.z.number(),
8229
+ secured_stock: import_zod62.z.number(),
8230
+ unsecured_stock: import_zod62.z.number(),
8231
+ last_cycle: import_zod62.z.string()
8232
+ });
8233
+ var SkyhookDetailReinforcementTimerSchema = import_zod62.z.looseObject({
8234
+ end: import_zod62.z.string()
8235
+ });
8236
+ var SkyhookDetailTheftVulnerabilitySchema = import_zod62.z.looseObject({
8237
+ start: import_zod62.z.string(),
8238
+ end: import_zod62.z.string()
8239
+ });
8240
+ var SkyhookDetailSchema = import_zod62.z.looseObject({
8241
+ id: import_zod62.z.number(),
8242
+ planet_id: import_zod62.z.number(),
8243
+ state: esiEnum([
8244
+ "Unspecified",
8245
+ "ShieldVulnerable",
8246
+ "ArmorReinforced",
8247
+ "ArmorVulnerable",
8248
+ "HullReinforced",
8249
+ "HullVulnerable"
8250
+ ]),
8251
+ is_active: import_zod62.z.boolean(),
8252
+ effective_workforce: import_zod62.z.number().optional(),
8253
+ reagents: import_zod62.z.array(SkyhookDetailReagentSchema).optional(),
8254
+ reinforcement_timer: SkyhookDetailReinforcementTimerSchema.optional(),
8255
+ theft_vulnerability: SkyhookDetailTheftVulnerabilitySchema.optional()
8256
+ });
8257
+ var SovereigntyHubDetailReagentSchema = import_zod62.z.looseObject({
8258
+ type_id: import_zod62.z.number(),
8259
+ amount: import_zod62.z.number(),
8260
+ burning_per_hour: import_zod62.z.number().optional()
8261
+ });
8262
+ var SovereigntyHubDetailReagentBaySchema = import_zod62.z.looseObject({
8263
+ last_updated: import_zod62.z.string(),
8264
+ reagents: import_zod62.z.array(SovereigntyHubDetailReagentSchema)
8265
+ });
8266
+ var SovereigntyHubDetailResourceSchema = import_zod62.z.looseObject({
8267
+ available: import_zod62.z.number().optional(),
8268
+ used: import_zod62.z.number().optional()
8269
+ });
8270
+ var SovereigntyHubDetailResourcesSchema = import_zod62.z.looseObject({
8271
+ power: SovereigntyHubDetailResourceSchema,
8272
+ workforce: SovereigntyHubDetailResourceSchema
8273
+ });
8274
+ var SovereigntyHubDetailUpgradeSchema = import_zod62.z.looseObject({
8275
+ type_id: import_zod62.z.number(),
8276
+ power_state: esiEnum(["Unspecified", "Online", "Offline", "Low", "Pending"])
8277
+ });
8278
+ var SovereigntyHubDetailVulnerabilityWindowSchema = import_zod62.z.looseObject({
8279
+ start: import_zod62.z.string(),
8280
+ end: import_zod62.z.string()
8281
+ });
8282
+ var SovereigntyHubDetailTransportSchema = import_zod62.z.looseObject({});
8283
+ var SovereigntyHubDetailSchema = import_zod62.z.looseObject({
8284
+ id: import_zod62.z.number(),
8285
+ solar_system_id: import_zod62.z.number(),
8286
+ upgrades: import_zod62.z.array(SovereigntyHubDetailUpgradeSchema),
8287
+ reagent_bay: SovereigntyHubDetailReagentBaySchema,
8288
+ resources: SovereigntyHubDetailResourcesSchema,
8289
+ workforce_transport: SovereigntyHubDetailTransportSchema,
8290
+ fuel_access_list_id: import_zod62.z.number().optional(),
8291
+ vulnerability_window: SovereigntyHubDetailVulnerabilityWindowSchema.optional()
8292
+ });
8211
8293
 
8212
8294
  // src/core/endpoints/skyhookEndpoints.ts
8213
8295
  var skyhookEndpoints = {
@@ -8230,6 +8312,20 @@ var skyhookEndpoints = {
8230
8312
  method: "GET",
8231
8313
  requiresAuth: false,
8232
8314
  responseSchema: import_zod63.z.array(RaidableSkyhookSchema)
8315
+ },
8316
+ getSkyhookDetail: {
8317
+ path: "corporations/{corporationId}/structures/skyhooks/{skyhookId}",
8318
+ method: "GET",
8319
+ requiresAuth: true,
8320
+ pathParams: ["corporationId", "skyhookId"],
8321
+ responseSchema: SkyhookDetailSchema
8322
+ },
8323
+ getSovereigntyHubDetail: {
8324
+ path: "corporations/{corporationId}/structures/sovereignty-hubs/{sovereigntyHubId}",
8325
+ method: "GET",
8326
+ requiresAuth: true,
8327
+ pathParams: ["corporationId", "sovereigntyHubId"],
8328
+ responseSchema: SovereigntyHubDetailSchema
8233
8329
  }
8234
8330
  };
8235
8331
 
@@ -8266,6 +8362,28 @@ var SkyhooksClient = class extends BaseEsiClient {
8266
8362
  getRaidableSkyhooks() {
8267
8363
  return this.api.getRaidableSkyhooks();
8268
8364
  }
8365
+ /**
8366
+ * Retrieves detail for a specific skyhook including reagents, reinforcement timer, and theft vulnerability.
8367
+ *
8368
+ * @param corporationId - The ID of the corporation
8369
+ * @param skyhookId - The ID of the skyhook
8370
+ * @returns Skyhook detail
8371
+ * @requires Authentication
8372
+ */
8373
+ getSkyhookDetail(corporationId, skyhookId) {
8374
+ return this.api.getSkyhookDetail(corporationId, skyhookId);
8375
+ }
8376
+ /**
8377
+ * Retrieves detail for a specific sovereignty hub including reagent bay, resources, upgrades, and vulnerability window.
8378
+ *
8379
+ * @param corporationId - The ID of the corporation
8380
+ * @param sovereigntyHubId - The ID of the sovereignty hub
8381
+ * @returns Sovereignty hub detail
8382
+ * @requires Authentication
8383
+ */
8384
+ getSovereigntyHubDetail(corporationId, sovereigntyHubId) {
8385
+ return this.api.getSovereigntyHubDetail(corporationId, sovereigntyHubId);
8386
+ }
8269
8387
  };
8270
8388
 
8271
8389
  // src/core/endpoints/mercenaryEndpoints.ts
@@ -8291,6 +8409,48 @@ var MercenaryTacticalOperationSchema = import_zod64.z.looseObject({
8291
8409
  started_at: import_zod64.z.string().optional(),
8292
8410
  expires_at: import_zod64.z.string().optional()
8293
8411
  });
8412
+ var MercenaryDenDetailEvolutionLevelSchema = import_zod64.z.looseObject({
8413
+ level: import_zod64.z.number().optional(),
8414
+ progress: import_zod64.z.number().optional()
8415
+ });
8416
+ var MercenaryDenDetailEvolutionSchema = import_zod64.z.looseObject({
8417
+ development: MercenaryDenDetailEvolutionLevelSchema,
8418
+ anarchy: MercenaryDenDetailEvolutionLevelSchema
8419
+ });
8420
+ var MercenaryDenDetailInfomorphsSchema = import_zod64.z.looseObject({
8421
+ amount: import_zod64.z.number()
8422
+ });
8423
+ var MercenaryDenDetailReinforcementTimerSchema = import_zod64.z.looseObject({
8424
+ end: import_zod64.z.string()
8425
+ });
8426
+ var MercenaryDenDetailSkyhookSchema = import_zod64.z.looseObject({
8427
+ id: import_zod64.z.number(),
8428
+ planet_id: import_zod64.z.number(),
8429
+ corporation_id: import_zod64.z.number()
8430
+ });
8431
+ var MercenaryDenDetailSchema = import_zod64.z.looseObject({
8432
+ id: import_zod64.z.number(),
8433
+ type_id: import_zod64.z.number(),
8434
+ state: esiEnum(["Unspecified", "Running", "Paused", "Disabled"]),
8435
+ skyhook: MercenaryDenDetailSkyhookSchema,
8436
+ infomorphs: MercenaryDenDetailInfomorphsSchema,
8437
+ evolution: MercenaryDenDetailEvolutionSchema,
8438
+ reinforcement_timer: MercenaryDenDetailReinforcementTimerSchema.optional()
8439
+ });
8440
+ var MercenaryTacticalOperationDetailSchema = import_zod64.z.looseObject({
8441
+ id: import_zod64.z.string(),
8442
+ mercenary_den_id: import_zod64.z.number(),
8443
+ state: esiEnum([
8444
+ "Unspecified",
8445
+ "Available",
8446
+ "Started",
8447
+ "Completed",
8448
+ "Expired",
8449
+ "Removed"
8450
+ ]),
8451
+ dungeon_type_id: import_zod64.z.number(),
8452
+ expires: import_zod64.z.string()
8453
+ });
8294
8454
 
8295
8455
  // src/core/endpoints/mercenaryEndpoints.ts
8296
8456
  var mercenaryEndpoints = {
@@ -8307,6 +8467,20 @@ var mercenaryEndpoints = {
8307
8467
  requiresAuth: true,
8308
8468
  pathParams: ["characterId"],
8309
8469
  responseSchema: import_zod65.z.array(MercenaryTacticalOperationSchema)
8470
+ },
8471
+ getMercenaryDenDetail: {
8472
+ path: "characters/{characterId}/structures/mercenary-dens/{mercenaryDenId}",
8473
+ method: "GET",
8474
+ requiresAuth: true,
8475
+ pathParams: ["characterId", "mercenaryDenId"],
8476
+ responseSchema: MercenaryDenDetailSchema
8477
+ },
8478
+ getMercenaryTacticalOperationDetail: {
8479
+ path: "characters/{characterId}/mercenary-tactical-operations/{operationId}",
8480
+ method: "GET",
8481
+ requiresAuth: true,
8482
+ pathParams: ["characterId", "operationId"],
8483
+ responseSchema: MercenaryTacticalOperationDetailSchema
8310
8484
  }
8311
8485
  };
8312
8486
 
@@ -8335,6 +8509,31 @@ var MercenaryClient = class extends BaseEsiClient {
8335
8509
  getMercenaryTacticalOperations(characterId) {
8336
8510
  return this.api.getMercenaryTacticalOperations(characterId);
8337
8511
  }
8512
+ /**
8513
+ * Retrieves detail for a specific mercenary den including evolution, infomorphs, and skyhook attachment.
8514
+ *
8515
+ * @param characterId - The ID of the character
8516
+ * @param mercenaryDenId - The ID of the mercenary den
8517
+ * @returns Mercenary den detail
8518
+ * @requires Authentication
8519
+ */
8520
+ getMercenaryDenDetail(characterId, mercenaryDenId) {
8521
+ return this.api.getMercenaryDenDetail(characterId, mercenaryDenId);
8522
+ }
8523
+ /**
8524
+ * Retrieves detail for a specific mercenary tactical operation.
8525
+ *
8526
+ * @param characterId - The ID of the character
8527
+ * @param operationId - The UUID of the tactical operation
8528
+ * @returns Mercenary tactical operation detail
8529
+ * @requires Authentication
8530
+ */
8531
+ getMercenaryTacticalOperationDetail(characterId, operationId) {
8532
+ return this.api.getMercenaryTacticalOperationDetail(
8533
+ characterId,
8534
+ operationId
8535
+ );
8536
+ }
8338
8537
  };
8339
8538
 
8340
8539
  // src/core/endpoints/accessListEndpoints.ts
@@ -8399,34 +8598,239 @@ var AccessListsClient = class extends BaseEsiClient {
8399
8598
  }
8400
8599
  };
8401
8600
 
8402
- // src/core/endpoints/militaryCampaignEndpoints.ts
8601
+ // src/schemas/cosmetics.ts
8602
+ var import_zod68 = require("zod");
8603
+ var SkinrLicenseSchema = import_zod68.z.looseObject({
8604
+ skinr_id: import_zod68.z.string(),
8605
+ activated: import_zod68.z.boolean(),
8606
+ unactivated: import_zod68.z.number()
8607
+ });
8608
+ var CharacterSkinrSchema = import_zod68.z.looseObject({
8609
+ licenses: import_zod68.z.array(SkinrLicenseSchema)
8610
+ });
8611
+ var SkinrComponentRunsSchema = import_zod68.z.looseObject({
8612
+ remaining: import_zod68.z.number().optional(),
8613
+ unlimited: import_zod68.z.boolean().optional()
8614
+ });
8615
+ var SkinrComponentLicenseSchema = import_zod68.z.looseObject({
8616
+ component_id: import_zod68.z.number(),
8617
+ type: esiEnum(["nanocoating", "pattern"]),
8618
+ runs: SkinrComponentRunsSchema
8619
+ });
8620
+ var CharacterSkinrComponentsSchema = import_zod68.z.looseObject({
8621
+ licenses: import_zod68.z.array(SkinrComponentLicenseSchema)
8622
+ });
8623
+ var SkinrTierSchema = import_zod68.z.looseObject({
8624
+ level: import_zod68.z.number()
8625
+ });
8626
+ var SkinrLayoutSlotSchema = import_zod68.z.looseObject({});
8627
+ var SkinrLayoutSchema = import_zod68.z.looseObject({
8628
+ slots: import_zod68.z.array(SkinrLayoutSlotSchema),
8629
+ pattern_blend_mode: esiEnum([
8630
+ "normal",
8631
+ "subtract",
8632
+ "exclusion",
8633
+ "nested",
8634
+ "nested_inverted"
8635
+ ])
8636
+ });
8637
+ var SkinrSchema = import_zod68.z.looseObject({
8638
+ id: import_zod68.z.string(),
8639
+ name: import_zod68.z.string(),
8640
+ creator_id: import_zod68.z.number(),
8641
+ ship_type_id: import_zod68.z.number(),
8642
+ line: import_zod68.z.string().optional(),
8643
+ tier: SkinrTierSchema,
8644
+ layout: SkinrLayoutSchema
8645
+ });
8646
+
8647
+ // src/core/endpoints/cosmeticsEndpoints.ts
8648
+ var cosmeticsEndpoints = {
8649
+ getCharacterSkinr: {
8650
+ path: "characters/{characterId}/cosmetics/skinr",
8651
+ method: "GET",
8652
+ requiresAuth: true,
8653
+ pathParams: ["characterId"],
8654
+ responseSchema: CharacterSkinrSchema
8655
+ },
8656
+ getCharacterSkinrComponents: {
8657
+ path: "characters/{characterId}/cosmetics/skinr/components",
8658
+ method: "GET",
8659
+ requiresAuth: true,
8660
+ pathParams: ["characterId"],
8661
+ responseSchema: CharacterSkinrComponentsSchema
8662
+ },
8663
+ getSkinr: {
8664
+ path: "cosmetics/skinr/{skinrId}",
8665
+ method: "GET",
8666
+ requiresAuth: false,
8667
+ pathParams: ["skinrId"],
8668
+ responseSchema: SkinrSchema
8669
+ }
8670
+ };
8671
+
8672
+ // src/clients/CosmeticsClient.ts
8673
+ var CosmeticsClient = class extends BaseEsiClient {
8674
+ constructor(client) {
8675
+ super(client, cosmeticsEndpoints);
8676
+ }
8677
+ getCharacterSkinr(characterId) {
8678
+ return this.api.getCharacterSkinr(characterId);
8679
+ }
8680
+ getCharacterSkinrComponents(characterId) {
8681
+ return this.api.getCharacterSkinrComponents(characterId);
8682
+ }
8683
+ getSkinr(skinrId) {
8684
+ return this.api.getSkinr(skinrId);
8685
+ }
8686
+ };
8687
+
8688
+ // src/schemas/paragon-hub.ts
8403
8689
  var import_zod69 = require("zod");
8690
+ var ParagonHubCursorSchema = import_zod69.z.looseObject({
8691
+ after: import_zod69.z.string().optional(),
8692
+ before: import_zod69.z.string().optional()
8693
+ });
8694
+ var ParagonHubSkinrPriceSchema = import_zod69.z.looseObject({
8695
+ isk: import_zod69.z.number().optional(),
8696
+ plex: import_zod69.z.number().optional()
8697
+ });
8698
+ var ParagonHubSkinrListingSchema = import_zod69.z.looseObject({
8699
+ id: import_zod69.z.string(),
8700
+ state: esiEnum(["listed", "sold_out", "expired", "removed"]),
8701
+ last_modified: import_zod69.z.string(),
8702
+ seller_id: import_zod69.z.number(),
8703
+ skinr_id: import_zod69.z.string(),
8704
+ created: import_zod69.z.string(),
8705
+ expires: import_zod69.z.string(),
8706
+ quantity: import_zod69.z.number(),
8707
+ price: ParagonHubSkinrPriceSchema
8708
+ });
8709
+ var ParagonHubSkinrTargetSchema = import_zod69.z.looseObject({
8710
+ character_id: import_zod69.z.number().optional(),
8711
+ corporation_id: import_zod69.z.number().optional(),
8712
+ alliance_id: import_zod69.z.number().optional(),
8713
+ public: import_zod69.z.boolean().optional()
8714
+ });
8715
+ var ParagonHubCharacterListingSchema = import_zod69.z.looseObject({
8716
+ id: import_zod69.z.string(),
8717
+ state: esiEnum(["listed", "sold_out", "expired", "removed"]),
8718
+ last_modified: import_zod69.z.string(),
8719
+ seller_id: import_zod69.z.number(),
8720
+ skinr_id: import_zod69.z.string(),
8721
+ created: import_zod69.z.string(),
8722
+ expires: import_zod69.z.string(),
8723
+ quantity: import_zod69.z.number(),
8724
+ price: ParagonHubSkinrPriceSchema,
8725
+ target: ParagonHubSkinrTargetSchema
8726
+ });
8727
+ var ParagonHubSkinrResponseSchema = import_zod69.z.looseObject({
8728
+ cursor: ParagonHubCursorSchema.optional(),
8729
+ listings: import_zod69.z.array(ParagonHubSkinrListingSchema)
8730
+ });
8731
+ var ParagonHubCharacterSkinrResponseSchema = import_zod69.z.looseObject({
8732
+ cursor: ParagonHubCursorSchema.optional(),
8733
+ listings: import_zod69.z.array(ParagonHubCharacterListingSchema)
8734
+ });
8735
+
8736
+ // src/core/endpoints/paragonHubEndpoints.ts
8737
+ var paragonHubEndpoints = {
8738
+ getPublicListings: {
8739
+ path: "paragon-hub/skinr",
8740
+ method: "GET",
8741
+ requiresAuth: false,
8742
+ queryParams: { after: "after", before: "before", limit: "limit" },
8743
+ responseSchema: ParagonHubSkinrResponseSchema
8744
+ },
8745
+ getCharacterListings: {
8746
+ path: "characters/{characterId}/paragon-hub/skinr",
8747
+ method: "GET",
8748
+ requiresAuth: true,
8749
+ pathParams: ["characterId"],
8750
+ queryParams: { after: "after", before: "before", limit: "limit" },
8751
+ responseSchema: ParagonHubCharacterSkinrResponseSchema
8752
+ },
8753
+ getAllianceListings: {
8754
+ path: "paragon-hub/skinr/alliances/{allianceId}",
8755
+ method: "GET",
8756
+ requiresAuth: true,
8757
+ pathParams: ["allianceId"],
8758
+ queryParams: { after: "after", before: "before", limit: "limit" },
8759
+ responseSchema: ParagonHubSkinrResponseSchema
8760
+ },
8761
+ getCharacterTargetedListings: {
8762
+ path: "paragon-hub/skinr/characters/{characterId}",
8763
+ method: "GET",
8764
+ requiresAuth: true,
8765
+ pathParams: ["characterId"],
8766
+ queryParams: { after: "after", before: "before", limit: "limit" },
8767
+ responseSchema: ParagonHubSkinrResponseSchema
8768
+ },
8769
+ getCorporationListings: {
8770
+ path: "paragon-hub/skinr/corporations/{corporationId}",
8771
+ method: "GET",
8772
+ requiresAuth: true,
8773
+ pathParams: ["corporationId"],
8774
+ queryParams: { after: "after", before: "before", limit: "limit" },
8775
+ responseSchema: ParagonHubSkinrResponseSchema
8776
+ }
8777
+ };
8778
+
8779
+ // src/clients/ParagonHubClient.ts
8780
+ var ParagonHubClient = class extends BaseEsiClient {
8781
+ constructor(client) {
8782
+ super(client, paragonHubEndpoints);
8783
+ }
8784
+ getPublicListings(after, before, limit) {
8785
+ return this.api.getPublicListings(after, before, limit);
8786
+ }
8787
+ getCharacterListings(characterId, after, before, limit) {
8788
+ return this.api.getCharacterListings(characterId, after, before, limit);
8789
+ }
8790
+ getAllianceListings(allianceId, after, before, limit) {
8791
+ return this.api.getAllianceListings(allianceId, after, before, limit);
8792
+ }
8793
+ getCharacterTargetedListings(characterId, after, before, limit) {
8794
+ return this.api.getCharacterTargetedListings(
8795
+ characterId,
8796
+ after,
8797
+ before,
8798
+ limit
8799
+ );
8800
+ }
8801
+ getCorporationListings(corporationId, after, before, limit) {
8802
+ return this.api.getCorporationListings(corporationId, after, before, limit);
8803
+ }
8804
+ };
8805
+
8806
+ // src/core/endpoints/militaryCampaignEndpoints.ts
8807
+ var import_zod71 = require("zod");
8404
8808
 
8405
8809
  // src/schemas/military-campaigns.ts
8406
- var import_zod68 = require("zod");
8407
- var MilitaryCampaignSchema = import_zod68.z.looseObject({
8408
- campaign_id: import_zod68.z.string(),
8409
- state: import_zod68.z.string(),
8410
- progress: import_zod68.z.number(),
8411
- start_time: import_zod68.z.string(),
8412
- finish_time: import_zod68.z.string().optional()
8413
- });
8414
- var MilitaryCampaignObjectiveSchema = import_zod68.z.looseObject({
8415
- objective_id: import_zod68.z.string(),
8416
- campaign_id: import_zod68.z.string(),
8417
- state: import_zod68.z.string(),
8418
- progress: import_zod68.z.number(),
8419
- participants: import_zod68.z.looseObject({
8420
- total: import_zod68.z.number(),
8421
- committed: import_zod68.z.number(),
8422
- contributors: import_zod68.z.number()
8810
+ var import_zod70 = require("zod");
8811
+ var MilitaryCampaignSchema = import_zod70.z.looseObject({
8812
+ campaign_id: import_zod70.z.string(),
8813
+ state: import_zod70.z.string(),
8814
+ progress: import_zod70.z.number(),
8815
+ start_time: import_zod70.z.string(),
8816
+ finish_time: import_zod70.z.string().optional()
8817
+ });
8818
+ var MilitaryCampaignObjectiveSchema = import_zod70.z.looseObject({
8819
+ objective_id: import_zod70.z.string(),
8820
+ campaign_id: import_zod70.z.string(),
8821
+ state: import_zod70.z.string(),
8822
+ progress: import_zod70.z.number(),
8823
+ participants: import_zod70.z.looseObject({
8824
+ total: import_zod70.z.number(),
8825
+ committed: import_zod70.z.number(),
8826
+ contributors: import_zod70.z.number()
8423
8827
  })
8424
8828
  });
8425
- var CharacterMilitaryCampaignObjectiveSchema = import_zod68.z.looseObject({
8426
- objective_id: import_zod68.z.string(),
8427
- campaign_id: import_zod68.z.string(),
8428
- committed: import_zod68.z.boolean(),
8429
- contribution: import_zod68.z.number()
8829
+ var CharacterMilitaryCampaignObjectiveSchema = import_zod70.z.looseObject({
8830
+ objective_id: import_zod70.z.string(),
8831
+ campaign_id: import_zod70.z.string(),
8832
+ committed: import_zod70.z.boolean(),
8833
+ contribution: import_zod70.z.number()
8430
8834
  });
8431
8835
 
8432
8836
  // src/core/endpoints/militaryCampaignEndpoints.ts
@@ -8435,7 +8839,7 @@ var militaryCampaignEndpoints = {
8435
8839
  path: "military-campaigns",
8436
8840
  method: "GET",
8437
8841
  requiresAuth: false,
8438
- responseSchema: import_zod69.z.array(MilitaryCampaignSchema)
8842
+ responseSchema: import_zod71.z.array(MilitaryCampaignSchema)
8439
8843
  },
8440
8844
  getMilitaryCampaign: {
8441
8845
  path: "military-campaigns/{campaignId}",
@@ -8449,7 +8853,7 @@ var militaryCampaignEndpoints = {
8449
8853
  method: "GET",
8450
8854
  requiresAuth: false,
8451
8855
  pathParams: ["campaignId"],
8452
- responseSchema: import_zod69.z.array(MilitaryCampaignObjectiveSchema)
8856
+ responseSchema: import_zod71.z.array(MilitaryCampaignObjectiveSchema)
8453
8857
  },
8454
8858
  getMilitaryCampaignObjective: {
8455
8859
  path: "military-campaigns/{campaignId}/objectives/{objectiveId}",
@@ -8463,7 +8867,7 @@ var militaryCampaignEndpoints = {
8463
8867
  method: "GET",
8464
8868
  requiresAuth: true,
8465
8869
  pathParams: ["characterId"],
8466
- responseSchema: import_zod69.z.array(CharacterMilitaryCampaignObjectiveSchema)
8870
+ responseSchema: import_zod71.z.array(CharacterMilitaryCampaignObjectiveSchema)
8467
8871
  },
8468
8872
  getCharacterMilitaryCampaignObjective: {
8469
8873
  path: "characters/{characterId}/military-campaigns/objectives/{objectiveId}",
@@ -8577,6 +8981,8 @@ var clientFactories = {
8577
8981
  meta: MetaClient,
8578
8982
  freelanceJobs: FreelanceJobsClient,
8579
8983
  skyhooks: SkyhooksClient,
8984
+ cosmetics: CosmeticsClient,
8985
+ paragonHub: ParagonHubClient,
8580
8986
  mercenary: MercenaryClient,
8581
8987
  militaryCampaigns: MilitaryCampaignsClient,
8582
8988
  accessLists: AccessListsClient
@@ -8988,8 +9394,8 @@ var esiRateLimitGroups = {
8988
9394
  "PUT:fleets/{fleet_id}/wings/{wing_id}": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8989
9395
  "DELETE:fleets/{fleet_id}/wings/{wing_id}": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8990
9396
  "POST:fleets/{fleet_id}/wings/{wing_id}/squads": { group: "fleet", maxTokens: 1800, windowSizeMs: 9e5 },
8991
- "GET:freelance-jobs": { group: "freelance-job", maxTokens: 900, windowSizeMs: 9e5 },
8992
- "GET:freelance-jobs/{job_id}": { group: "freelance-job", maxTokens: 900, windowSizeMs: 9e5 },
9397
+ "GET:freelance-jobs": { group: "freelance-job", maxTokens: 12e3, windowSizeMs: 9e5 },
9398
+ "GET:freelance-jobs/{job_id}": { group: "freelance-job", maxTokens: 12e3, windowSizeMs: 9e5 },
8993
9399
  "GET:fw/leaderboards": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
8994
9400
  "GET:fw/leaderboards/characters": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
8995
9401
  "GET:fw/leaderboards/corporations": { group: "factional-warfare", maxTokens: 150, windowSizeMs: 9e5 },
@@ -9571,6 +9977,12 @@ var EsiClient = class {
9571
9977
  get freelanceJobs() {
9572
9978
  return this.getClient("freelanceJobs");
9573
9979
  }
9980
+ get cosmetics() {
9981
+ return this.getClient("cosmetics");
9982
+ }
9983
+ get paragonHub() {
9984
+ return this.getClient("paragonHub");
9985
+ }
9574
9986
  get skyhooks() {
9575
9987
  return this.getClient("skyhooks");
9576
9988
  }
@@ -10160,6 +10572,8 @@ __export(schemas_exports, {
10160
10572
  CharacterShipSchema: () => CharacterShipSchema,
10161
10573
  CharacterSkillSchema: () => CharacterSkillSchema,
10162
10574
  CharacterSkillsResponseSchema: () => CharacterSkillsResponseSchema,
10575
+ CharacterSkinrComponentsSchema: () => CharacterSkinrComponentsSchema,
10576
+ CharacterSkinrSchema: () => CharacterSkinrSchema,
10163
10577
  CharacterTitleSchema: () => CharacterTitleSchema,
10164
10578
  CloneInfoSchema: () => CloneInfoSchema,
10165
10579
  ColonyLayoutSchema: () => ColonyLayoutSchema,
@@ -10240,7 +10654,13 @@ __export(schemas_exports, {
10240
10654
  MarketOrderSchema: () => MarketOrderSchema,
10241
10655
  MarketPriceSchema: () => MarketPriceSchema,
10242
10656
  MedalSchema: () => MedalSchema,
10657
+ MercenaryDenDetailEvolutionSchema: () => MercenaryDenDetailEvolutionSchema,
10658
+ MercenaryDenDetailInfomorphsSchema: () => MercenaryDenDetailInfomorphsSchema,
10659
+ MercenaryDenDetailReinforcementTimerSchema: () => MercenaryDenDetailReinforcementTimerSchema,
10660
+ MercenaryDenDetailSchema: () => MercenaryDenDetailSchema,
10661
+ MercenaryDenDetailSkyhookSchema: () => MercenaryDenDetailSkyhookSchema,
10243
10662
  MercenaryDenSchema: () => MercenaryDenSchema,
10663
+ MercenaryTacticalOperationDetailSchema: () => MercenaryTacticalOperationDetailSchema,
10244
10664
  MercenaryTacticalOperationSchema: () => MercenaryTacticalOperationSchema,
10245
10665
  MetaChangelogEntrySchema: () => MetaChangelogEntrySchema,
10246
10666
  MetaChangelogSchema: () => MetaChangelogSchema,
@@ -10257,6 +10677,13 @@ __export(schemas_exports, {
10257
10677
  NameAndCategorySchema: () => NameAndCategorySchema,
10258
10678
  NotificationSchema: () => NotificationSchema,
10259
10679
  OrbitalSkyhookSchema: () => OrbitalSkyhookSchema,
10680
+ ParagonHubCharacterListingSchema: () => ParagonHubCharacterListingSchema,
10681
+ ParagonHubCharacterSkinrResponseSchema: () => ParagonHubCharacterSkinrResponseSchema,
10682
+ ParagonHubCursorSchema: () => ParagonHubCursorSchema,
10683
+ ParagonHubSkinrListingSchema: () => ParagonHubSkinrListingSchema,
10684
+ ParagonHubSkinrPriceSchema: () => ParagonHubSkinrPriceSchema,
10685
+ ParagonHubSkinrResponseSchema: () => ParagonHubSkinrResponseSchema,
10686
+ ParagonHubSkinrTargetSchema: () => ParagonHubSkinrTargetSchema,
10260
10687
  PlanetInfoSchema: () => PlanetInfoSchema,
10261
10688
  PlanetaryColonySchema: () => PlanetaryColonySchema,
10262
10689
  RaceSchema: () => RaceSchema,
@@ -10267,8 +10694,27 @@ __export(schemas_exports, {
10267
10694
  SearchResultSchema: () => SearchResultSchema,
10268
10695
  ServerStatusSchema: () => ServerStatusSchema,
10269
10696
  SkillQueueSchema: () => SkillQueueSchema,
10697
+ SkinrComponentLicenseSchema: () => SkinrComponentLicenseSchema,
10698
+ SkinrComponentRunsSchema: () => SkinrComponentRunsSchema,
10699
+ SkinrLayoutSchema: () => SkinrLayoutSchema,
10700
+ SkinrLayoutSlotSchema: () => SkinrLayoutSlotSchema,
10701
+ SkinrLicenseSchema: () => SkinrLicenseSchema,
10702
+ SkinrSchema: () => SkinrSchema,
10703
+ SkinrTierSchema: () => SkinrTierSchema,
10704
+ SkyhookDetailReagentSchema: () => SkyhookDetailReagentSchema,
10705
+ SkyhookDetailReinforcementTimerSchema: () => SkyhookDetailReinforcementTimerSchema,
10706
+ SkyhookDetailSchema: () => SkyhookDetailSchema,
10707
+ SkyhookDetailTheftVulnerabilitySchema: () => SkyhookDetailTheftVulnerabilitySchema,
10270
10708
  SolarSystemInfoSchema: () => SolarSystemInfoSchema,
10271
10709
  SovereigntyCampaignSchema: () => SovereigntyCampaignSchema,
10710
+ SovereigntyHubDetailReagentBaySchema: () => SovereigntyHubDetailReagentBaySchema,
10711
+ SovereigntyHubDetailReagentSchema: () => SovereigntyHubDetailReagentSchema,
10712
+ SovereigntyHubDetailResourceSchema: () => SovereigntyHubDetailResourceSchema,
10713
+ SovereigntyHubDetailResourcesSchema: () => SovereigntyHubDetailResourcesSchema,
10714
+ SovereigntyHubDetailSchema: () => SovereigntyHubDetailSchema,
10715
+ SovereigntyHubDetailTransportSchema: () => SovereigntyHubDetailTransportSchema,
10716
+ SovereigntyHubDetailUpgradeSchema: () => SovereigntyHubDetailUpgradeSchema,
10717
+ SovereigntyHubDetailVulnerabilityWindowSchema: () => SovereigntyHubDetailVulnerabilityWindowSchema,
10272
10718
  SovereigntyHubSchema: () => SovereigntyHubSchema2,
10273
10719
  SovereigntySystemSchema: () => SovereigntySystemSchema,
10274
10720
  SovereigntySystemStructureSchema: () => SovereigntySystemStructureSchema,
@@ -10305,6 +10751,7 @@ __export(schemas_exports, {
10305
10751
  ContractsClient,
10306
10752
  CorporationProjectsClient,
10307
10753
  CorporationsClient,
10754
+ CosmeticsClient,
10308
10755
  CustomEsiClient,
10309
10756
  DogmaClient,
10310
10757
  ETagCacheManager,
@@ -10330,6 +10777,7 @@ __export(schemas_exports, {
10330
10777
  MercenaryClient,
10331
10778
  MetaClient,
10332
10779
  MilitaryCampaignsClient,
10780
+ ParagonHubClient,
10333
10781
  PiClient,
10334
10782
  RateLimiter,
10335
10783
  RequestDeduplicator,