@lgriffin/esi.ts 9.7.0 → 10.0.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.
- package/CHANGELOG.md +370 -0
- package/README.md +168 -231
- package/dist/EsiClient.d.ts +4 -0
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClientBuilder.d.ts.map +1 -1
- package/dist/auth/EsiTokenManager.d.ts +200 -0
- package/dist/auth/EsiTokenManager.d.ts.map +1 -0
- package/dist/auth/EveSsoClient.d.ts +88 -0
- package/dist/auth/EveSsoClient.d.ts.map +1 -0
- package/dist/auth/errors.d.ts +42 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/index.d.ts +14 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/jwt.d.ts +43 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/pkce.d.ts +21 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
- package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
- package/dist/auth/types.d.ts +42 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-3ZI5A37L.mjs +1065 -0
- package/dist/chunk-3ZI5A37L.mjs.map +1 -0
- package/dist/chunk-7A72QFDF.mjs +416 -0
- package/dist/chunk-7A72QFDF.mjs.map +1 -0
- package/dist/chunk-BBSHKVPI.js +71 -0
- package/dist/chunk-BBSHKVPI.js.map +1 -0
- package/dist/chunk-HPSACXX3.js +416 -0
- package/dist/chunk-HPSACXX3.js.map +1 -0
- package/dist/chunk-JIW4BXLP.mjs +17 -0
- package/dist/chunk-JIW4BXLP.mjs.map +1 -0
- package/dist/chunk-MSJHIJXA.js +1065 -0
- package/dist/chunk-MSJHIJXA.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-R7D7M2LQ.mjs +71 -0
- package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
- package/dist/chunk-SAQBXXTM.js +2614 -0
- package/dist/chunk-SAQBXXTM.js.map +1 -0
- package/dist/chunk-VZS32UQ3.mjs +2614 -0
- package/dist/chunk-VZS32UQ3.mjs.map +1 -0
- package/dist/clients/AllianceClient.d.ts.map +1 -1
- package/dist/clients/ContractsClient.d.ts +12 -9
- package/dist/clients/ContractsClient.d.ts.map +1 -1
- package/dist/clients/CorporationProjectsClient.d.ts +22 -12
- package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
- package/dist/clients/FactionClient.d.ts +4 -4
- package/dist/clients/FactionClient.d.ts.map +1 -1
- package/dist/clients/FreelanceJobsClient.d.ts +3 -3
- package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
- package/dist/clients/IndustryClient.d.ts +4 -4
- package/dist/clients/IndustryClient.d.ts.map +1 -1
- package/dist/clients/MailClient.d.ts +4 -4
- package/dist/clients/MailClient.d.ts.map +1 -1
- package/dist/clients/MetaClient.d.ts +3 -2
- package/dist/clients/MetaClient.d.ts.map +1 -1
- package/dist/clients/WalletClient.d.ts +4 -4
- package/dist/clients/WalletClient.d.ts.map +1 -1
- package/dist/core/ApiClient.d.ts +4 -0
- package/dist/core/ApiClient.d.ts.map +1 -1
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/BatchRequestHandler.d.ts.map +1 -1
- package/dist/core/RequestDeduplicator.d.ts +2 -0
- package/dist/core/RequestDeduplicator.d.ts.map +1 -1
- package/dist/core/RetryStrategy.d.ts +2 -0
- package/dist/core/RetryStrategy.d.ts.map +1 -1
- package/dist/core/cache/ETagCacheManager.d.ts +4 -0
- package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
- package/dist/core/configureApiClient.d.ts.map +1 -1
- package/dist/core/constants.d.ts +2 -2
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
- package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
- package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
- package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
- package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
- package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/createClient.d.ts.map +1 -1
- package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
- package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
- package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
- package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
- package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
- package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
- package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/piEndpoints.d.ts +2 -2
- package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
- package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
- package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
- package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
- package/dist/core/logger/DefaultLogger.d.ts +31 -0
- package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
- package/dist/core/logger/ILogger.d.ts +14 -4
- package/dist/core/logger/ILogger.d.ts.map +1 -1
- package/dist/core/logger/NoopLogger.d.ts +4 -0
- package/dist/core/logger/NoopLogger.d.ts.map +1 -1
- package/dist/core/logger/clientLog.d.ts +11 -0
- package/dist/core/logger/clientLog.d.ts.map +1 -0
- package/dist/core/logger/logger.d.ts +11 -3
- package/dist/core/logger/logger.d.ts.map +1 -1
- package/dist/core/logger/loggerUtil.d.ts +8 -6
- package/dist/core/logger/loggerUtil.d.ts.map +1 -1
- package/dist/core/logger/resolveLogger.d.ts +10 -0
- package/dist/core/logger/resolveLogger.d.ts.map +1 -0
- package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
- package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
- package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/requestPipeline/cachePolicy.d.ts +14 -0
- package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
- package/dist/core/requestPipeline/headers.d.ts.map +1 -1
- package/dist/core/requestPipeline/index.d.ts +2 -2
- package/dist/core/requestPipeline/index.d.ts.map +1 -1
- package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
- package/dist/core/requestPipeline/statusHandling.d.ts +8 -2
- package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
- package/dist/core/util/concurrency.d.ts +29 -0
- package/dist/core/util/concurrency.d.ts.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +53 -195
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +37 -129
- package/dist/errors.mjs.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1972 -3472
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1606 -2995
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/calendar.d.ts +9 -7
- package/dist/schemas/calendar.d.ts.map +1 -1
- package/dist/schemas/character.d.ts +2 -2
- package/dist/schemas/clones.d.ts +2 -2
- package/dist/schemas/contracts.d.ts +69 -6
- package/dist/schemas/contracts.d.ts.map +1 -1
- package/dist/schemas/corporation-projects.d.ts +96 -9
- package/dist/schemas/corporation-projects.d.ts.map +1 -1
- package/dist/schemas/corporation.d.ts +34 -22
- package/dist/schemas/corporation.d.ts.map +1 -1
- package/dist/schemas/dogma.d.ts +2 -2
- package/dist/schemas/faction-warfare.d.ts +125 -12
- package/dist/schemas/faction-warfare.d.ts.map +1 -1
- package/dist/schemas/fleet.d.ts +1 -1
- package/dist/schemas/freelance-jobs.d.ts +52 -22
- package/dist/schemas/freelance-jobs.d.ts.map +1 -1
- package/dist/schemas/index.js +420 -2479
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/index.mjs +225 -2065
- package/dist/schemas/index.mjs.map +1 -1
- package/dist/schemas/industry.d.ts +33 -0
- package/dist/schemas/industry.d.ts.map +1 -1
- package/dist/schemas/mail.d.ts +24 -5
- package/dist/schemas/mail.d.ts.map +1 -1
- package/dist/schemas/mercenary.d.ts +1 -1
- package/dist/schemas/meta.d.ts +12 -1
- package/dist/schemas/meta.d.ts.map +1 -1
- package/dist/schemas/pi.d.ts +2 -2
- package/dist/schemas/status.d.ts +1 -1
- package/dist/schemas/universe.d.ts +22 -22
- package/dist/schemas/universe.d.ts.map +1 -1
- package/dist/schemas/wallet.d.ts +16 -0
- package/dist/schemas/wallet.d.ts.map +1 -1
- package/dist/sde/SdeDataProvider.d.ts.map +1 -1
- package/dist/sde/index.js +95 -1162
- package/dist/sde/index.js.map +1 -1
- package/dist/sde/index.mjs +73 -1091
- package/dist/sde/index.mjs.map +1 -1
- package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
- package/dist/sde/ingestion/metadata.d.ts +13 -0
- package/dist/sde/ingestion/metadata.d.ts.map +1 -0
- package/dist/sde/memory.js +21 -1095
- package/dist/sde/memory.js.map +1 -1
- package/dist/sde/memory.mjs +13 -1051
- package/dist/sde/memory.mjs.map +1 -1
- package/dist/sde/optionalPeers.d.ts +25 -0
- package/dist/sde/optionalPeers.d.ts.map +1 -0
- package/dist/testing/TestDataFactory.d.ts +28 -1
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/testing/index.js +116 -125
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.mjs +110 -82
- package/dist/testing/index.mjs.map +1 -1
- package/dist/types/contracts.d.ts +4 -1
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/corporation-projects.d.ts +5 -1
- package/dist/types/corporation-projects.d.ts.map +1 -1
- package/dist/types/faction-warfare.d.ts +9 -1
- package/dist/types/faction-warfare.d.ts.map +1 -1
- package/dist/types/freelance-jobs.d.ts +2 -1
- package/dist/types/freelance-jobs.d.ts.map +1 -1
- package/dist/types/generated/spec-alignment.check.d.ts +2 -2
- package/dist/types/industry.d.ts +2 -1
- package/dist/types/industry.d.ts.map +1 -1
- package/dist/types/mail.d.ts +2 -1
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/meta.d.ts +2 -1
- package/dist/types/meta.d.ts.map +1 -1
- package/dist/types/wallet.d.ts +2 -1
- package/dist/types/wallet.d.ts.map +1 -1
- package/package.json +46 -23
package/dist/testing/index.mjs
CHANGED
|
@@ -1,76 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// src/core/util/error.ts
|
|
6
|
-
var SENSITIVE_PARAMS = [
|
|
7
|
-
"token",
|
|
8
|
-
"access_token",
|
|
9
|
-
"api_key",
|
|
10
|
-
"refresh_token",
|
|
11
|
-
"client_secret",
|
|
12
|
-
"code",
|
|
13
|
-
"key",
|
|
14
|
-
"secret",
|
|
15
|
-
"auth",
|
|
16
|
-
"password",
|
|
17
|
-
"bearer"
|
|
18
|
-
];
|
|
19
|
-
function sanitizeUrl(url) {
|
|
20
|
-
if (!url) return url;
|
|
21
|
-
try {
|
|
22
|
-
const parsed = new URL(url);
|
|
23
|
-
for (const param of SENSITIVE_PARAMS) {
|
|
24
|
-
if (parsed.searchParams.has(param)) {
|
|
25
|
-
parsed.searchParams.set(param, "[REDACTED]");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return parsed.toString();
|
|
29
|
-
} catch {
|
|
30
|
-
const qIndex = url.indexOf("?");
|
|
31
|
-
return qIndex >= 0 ? url.substring(0, qIndex) + "?[params-redacted]" : url;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
var EsiError = class extends Error {
|
|
35
|
-
constructor(statusCode, message, url, requestId) {
|
|
36
|
-
super(message);
|
|
37
|
-
this.statusCode = statusCode;
|
|
38
|
-
this.requestId = requestId;
|
|
39
|
-
this.name = "EsiError";
|
|
40
|
-
this.url = sanitizeUrl(url);
|
|
41
|
-
}
|
|
42
|
-
statusCode;
|
|
43
|
-
requestId;
|
|
44
|
-
url;
|
|
45
|
-
isRateLimited() {
|
|
46
|
-
return this.statusCode === 420 || this.statusCode === 429;
|
|
47
|
-
}
|
|
48
|
-
isNotFound() {
|
|
49
|
-
return this.statusCode === 404;
|
|
50
|
-
}
|
|
51
|
-
isUnauthorized() {
|
|
52
|
-
return this.statusCode === 401;
|
|
53
|
-
}
|
|
54
|
-
isForbidden() {
|
|
55
|
-
return this.statusCode === 403;
|
|
56
|
-
}
|
|
57
|
-
isServerError() {
|
|
58
|
-
return this.statusCode >= 500;
|
|
59
|
-
}
|
|
60
|
-
isTimeout() {
|
|
61
|
-
return this.statusCode === 0;
|
|
62
|
-
}
|
|
63
|
-
get retryable() {
|
|
64
|
-
return this.statusCode === 0 || this.statusCode === 420 || this.statusCode === 429 || this.statusCode === 502 || this.statusCode === 503 || this.statusCode === 504;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
EsiError
|
|
3
|
+
} from "../chunk-7A72QFDF.mjs";
|
|
4
|
+
import "../chunk-JIW4BXLP.mjs";
|
|
67
5
|
|
|
68
6
|
// src/testing/TestDataFactory.ts
|
|
69
7
|
var TestDataFactory = class {
|
|
70
8
|
// Alliance test data
|
|
9
|
+
/** `GET /alliances/{alliance_id}`: the alliance ID is in the path, not the body. */
|
|
71
10
|
static createAllianceInfo(overrides = {}) {
|
|
72
11
|
return {
|
|
73
|
-
alliance_id: 99005338,
|
|
74
12
|
name: "Goonswarm Federation",
|
|
75
13
|
ticker: "CONDI",
|
|
76
14
|
creator_id: 1689391488,
|
|
@@ -100,7 +38,6 @@ var TestDataFactory = class {
|
|
|
100
38
|
// Character test data
|
|
101
39
|
static createCharacterInfo(overrides = {}) {
|
|
102
40
|
return {
|
|
103
|
-
character_id: 1689391488,
|
|
104
41
|
name: "Test Character",
|
|
105
42
|
corporation_id: 1344654522,
|
|
106
43
|
alliance_id: 99005338,
|
|
@@ -171,6 +108,11 @@ var TestDataFactory = class {
|
|
|
171
108
|
date: "2023-01-01T00:00:00Z",
|
|
172
109
|
issuer_id: 1689391489,
|
|
173
110
|
reason: "Outstanding service",
|
|
111
|
+
status: "public",
|
|
112
|
+
graphics: [
|
|
113
|
+
{ part: 1, layer: 0, graphic: "caldari.1_1", color: -1 },
|
|
114
|
+
{ part: 2, layer: 1, graphic: "caldari.2_3" }
|
|
115
|
+
],
|
|
174
116
|
...overrides
|
|
175
117
|
};
|
|
176
118
|
}
|
|
@@ -249,6 +191,11 @@ var TestDataFactory = class {
|
|
|
249
191
|
system_id: 30000142,
|
|
250
192
|
name: "Jita",
|
|
251
193
|
constellation_id: 20000020,
|
|
194
|
+
position: {
|
|
195
|
+
x: -129064861735e6,
|
|
196
|
+
y: 6075530691e7,
|
|
197
|
+
z: 11746922706e7
|
|
198
|
+
},
|
|
252
199
|
security_status: 0.9459991455078125,
|
|
253
200
|
star_id: 40000001,
|
|
254
201
|
stargates: [50000001, 50000002],
|
|
@@ -268,6 +215,7 @@ var TestDataFactory = class {
|
|
|
268
215
|
type_id: 52678,
|
|
269
216
|
race_id: 1,
|
|
270
217
|
system_id: 30000142,
|
|
218
|
+
position: { x: 3813196800, y: 101675e4, z: -230557e4 },
|
|
271
219
|
reprocessing_efficiency: 0.5,
|
|
272
220
|
reprocessing_stations_take: 0.05,
|
|
273
221
|
max_dockable_ship_volume: 5e7,
|
|
@@ -283,9 +231,9 @@ var TestDataFactory = class {
|
|
|
283
231
|
...overrides
|
|
284
232
|
};
|
|
285
233
|
}
|
|
234
|
+
/** `GET /universe/structures/{structure_id}`: the ID is in the path, not the body. */
|
|
286
235
|
static createStructure(overrides = {}) {
|
|
287
236
|
return {
|
|
288
|
-
structure_id: 1021975535893,
|
|
289
237
|
name: "Test Citadel",
|
|
290
238
|
owner_id: 1689391488,
|
|
291
239
|
solar_system_id: 30000142,
|
|
@@ -294,13 +242,13 @@ var TestDataFactory = class {
|
|
|
294
242
|
...overrides
|
|
295
243
|
};
|
|
296
244
|
}
|
|
245
|
+
/** `GET /universe/types/{type_id}`: the category is on the group, not the type. */
|
|
297
246
|
static createItemType(overrides = {}) {
|
|
298
247
|
return {
|
|
299
248
|
type_id: 34,
|
|
300
249
|
name: "Tritanium",
|
|
301
250
|
description: "The most common ore type in the known universe.",
|
|
302
251
|
group_id: 18,
|
|
303
|
-
category_id: 4,
|
|
304
252
|
market_group_id: 1857,
|
|
305
253
|
mass: 1,
|
|
306
254
|
volume: 0.01,
|
|
@@ -321,9 +269,9 @@ var TestDataFactory = class {
|
|
|
321
269
|
...overrides
|
|
322
270
|
};
|
|
323
271
|
}
|
|
272
|
+
/** `GET /universe/stars/{star_id}`: the star ID is in the path, not the body. */
|
|
324
273
|
static createStar(overrides = {}) {
|
|
325
274
|
return {
|
|
326
|
-
star_id: 40000001,
|
|
327
275
|
name: "Jita - Star",
|
|
328
276
|
type_id: 3802,
|
|
329
277
|
solar_system_id: 30000142,
|
|
@@ -345,14 +293,18 @@ var TestDataFactory = class {
|
|
|
345
293
|
...overrides
|
|
346
294
|
};
|
|
347
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* `GET /characters/{character_id}/search`: one list per requested category,
|
|
298
|
+
* keyed by the singular category name.
|
|
299
|
+
*/
|
|
348
300
|
static createSearchResults(overrides = {}) {
|
|
349
301
|
return {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
302
|
+
solar_system: [],
|
|
303
|
+
station: [],
|
|
304
|
+
structure: [],
|
|
305
|
+
character: [],
|
|
306
|
+
corporation: [],
|
|
307
|
+
alliance: [],
|
|
356
308
|
...overrides
|
|
357
309
|
};
|
|
358
310
|
}
|
|
@@ -384,12 +336,14 @@ var TestDataFactory = class {
|
|
|
384
336
|
location_id: 60003760,
|
|
385
337
|
location_flag: "CorpSAG1",
|
|
386
338
|
location_type: "station",
|
|
339
|
+
is_singleton: false,
|
|
387
340
|
...overrides
|
|
388
341
|
};
|
|
389
342
|
}
|
|
390
343
|
static createCorporationStructure(overrides = {}) {
|
|
391
344
|
return {
|
|
392
345
|
structure_id: 1021975535893,
|
|
346
|
+
corporation_id: 1344654522,
|
|
393
347
|
type_id: 35832,
|
|
394
348
|
system_id: 30000142,
|
|
395
349
|
profile_id: 101853,
|
|
@@ -421,10 +375,9 @@ var TestDataFactory = class {
|
|
|
421
375
|
};
|
|
422
376
|
}
|
|
423
377
|
// Fleet test data
|
|
378
|
+
/** `GET /fleets/{fleet_id}`: the fleet ID is in the path, not the body. */
|
|
424
379
|
static createFleetInfo(overrides = {}) {
|
|
425
380
|
return {
|
|
426
|
-
fleet_id: 1234567890,
|
|
427
|
-
fleet_boss_id: 1689391488,
|
|
428
381
|
is_free_move: false,
|
|
429
382
|
is_registered: true,
|
|
430
383
|
is_voice_enabled: true,
|
|
@@ -432,21 +385,31 @@ var TestDataFactory = class {
|
|
|
432
385
|
...overrides
|
|
433
386
|
};
|
|
434
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* A fleet member as `GET /fleets/{fleet_id}/members` sends it. The default
|
|
390
|
+
* is the fleet commander, whom ESI places in no wing or squad (-1).
|
|
391
|
+
*/
|
|
435
392
|
static createFleetMember(overrides = {}) {
|
|
436
393
|
return {
|
|
437
394
|
character_id: 1689391488,
|
|
395
|
+
join_time: "2024-01-15T18:00:00Z",
|
|
438
396
|
role: "fleet_commander",
|
|
397
|
+
role_name: "Fleet Commander (Boss)",
|
|
439
398
|
ship_type_id: 17918,
|
|
440
399
|
solar_system_id: 30000142,
|
|
400
|
+
squad_id: -1,
|
|
441
401
|
station_id: 60003760,
|
|
402
|
+
takes_fleet_warp: true,
|
|
403
|
+
wing_id: -1,
|
|
442
404
|
...overrides
|
|
443
405
|
};
|
|
444
406
|
}
|
|
407
|
+
/** A wing as `GET /fleets/{fleet_id}/wings` sends it: keyed by `id`. */
|
|
445
408
|
static createFleetWing(overrides = {}) {
|
|
446
409
|
return {
|
|
447
|
-
|
|
410
|
+
id: 2073711261968,
|
|
448
411
|
name: "Wing 1",
|
|
449
|
-
squads: [{
|
|
412
|
+
squads: [{ id: 3129411261968, name: "Squad 1" }],
|
|
450
413
|
...overrides
|
|
451
414
|
};
|
|
452
415
|
}
|
|
@@ -456,12 +419,40 @@ var TestDataFactory = class {
|
|
|
456
419
|
job_id: 1000001,
|
|
457
420
|
installer_id: 1689391488,
|
|
458
421
|
facility_id: 60003760,
|
|
422
|
+
station_id: 60003760,
|
|
423
|
+
activity_id: 1,
|
|
424
|
+
blueprint_id: 1000000001,
|
|
425
|
+
blueprint_type_id: 17918,
|
|
426
|
+
blueprint_location_id: 60003760,
|
|
427
|
+
output_location_id: 60003760,
|
|
428
|
+
product_type_id: 17918,
|
|
429
|
+
runs: 1,
|
|
430
|
+
status: "active",
|
|
431
|
+
duration: 86400,
|
|
432
|
+
start_date: "2024-01-15T12:00:00Z",
|
|
433
|
+
end_date: "2024-01-16T12:00:00Z",
|
|
434
|
+
...overrides
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* A corporation industry job as `GET /corporations/{corporation_id}/industry/jobs`
|
|
439
|
+
* sends it: placed by `location_id`, where a character job has `station_id`.
|
|
440
|
+
*/
|
|
441
|
+
static createCorporationIndustryJob(overrides = {}) {
|
|
442
|
+
return {
|
|
443
|
+
job_id: 2000001,
|
|
444
|
+
installer_id: 1689391488,
|
|
445
|
+
facility_id: 1021975535893,
|
|
446
|
+
location_id: 1021975535893,
|
|
459
447
|
activity_id: 1,
|
|
460
448
|
blueprint_id: 1000000001,
|
|
461
449
|
blueprint_type_id: 17918,
|
|
450
|
+
blueprint_location_id: 1021975535893,
|
|
451
|
+
output_location_id: 1021975535893,
|
|
462
452
|
product_type_id: 17918,
|
|
463
453
|
runs: 1,
|
|
464
454
|
status: "active",
|
|
455
|
+
duration: 86400,
|
|
465
456
|
start_date: "2024-01-15T12:00:00Z",
|
|
466
457
|
end_date: "2024-01-16T12:00:00Z",
|
|
467
458
|
...overrides
|
|
@@ -488,6 +479,7 @@ var TestDataFactory = class {
|
|
|
488
479
|
location_id: 60003760,
|
|
489
480
|
location_flag: "Hangar",
|
|
490
481
|
location_type: "station",
|
|
482
|
+
is_singleton: false,
|
|
491
483
|
...overrides
|
|
492
484
|
};
|
|
493
485
|
}
|
|
@@ -521,9 +513,9 @@ var TestDataFactory = class {
|
|
|
521
513
|
};
|
|
522
514
|
}
|
|
523
515
|
// Corporation test data
|
|
516
|
+
/** `GET /corporations/{corporation_id}`: the ID is in the path, not the body. */
|
|
524
517
|
static createCorporationInfo(overrides = {}) {
|
|
525
518
|
return {
|
|
526
|
-
corporation_id: 1344654522,
|
|
527
519
|
name: "GoonWaffe",
|
|
528
520
|
ticker: "GEWNS",
|
|
529
521
|
ceo_id: 1689391488,
|
|
@@ -578,6 +570,25 @@ var TestDataFactory = class {
|
|
|
578
570
|
...overrides
|
|
579
571
|
};
|
|
580
572
|
}
|
|
573
|
+
/**
|
|
574
|
+
* A corporation wallet transaction as
|
|
575
|
+
* `GET /corporations/{corporation_id}/wallets/{division}/transactions` sends
|
|
576
|
+
* it: no is_personal.
|
|
577
|
+
*/
|
|
578
|
+
static createCorporationWalletTransaction(overrides = {}) {
|
|
579
|
+
return {
|
|
580
|
+
transaction_id: 123456790,
|
|
581
|
+
date: "2023-12-01T12:00:00Z",
|
|
582
|
+
type_id: 34,
|
|
583
|
+
location_id: 60003760,
|
|
584
|
+
unit_price: 5.5,
|
|
585
|
+
quantity: 1e3,
|
|
586
|
+
client_id: 1689391488,
|
|
587
|
+
is_buy: true,
|
|
588
|
+
journal_ref_id: 987654322,
|
|
589
|
+
...overrides
|
|
590
|
+
};
|
|
591
|
+
}
|
|
581
592
|
// Contract test data
|
|
582
593
|
static createContract(overrides = {}) {
|
|
583
594
|
return {
|
|
@@ -585,6 +596,7 @@ var TestDataFactory = class {
|
|
|
585
596
|
issuer_id: 1689391488,
|
|
586
597
|
issuer_corporation_id: 1344654522,
|
|
587
598
|
assignee_id: 987654321,
|
|
599
|
+
acceptor_id: 0,
|
|
588
600
|
start_location_id: 60003760,
|
|
589
601
|
end_location_id: 60008494,
|
|
590
602
|
type: "courier",
|
|
@@ -602,6 +614,22 @@ var TestDataFactory = class {
|
|
|
602
614
|
...overrides
|
|
603
615
|
};
|
|
604
616
|
}
|
|
617
|
+
static createPublicContract(overrides = {}) {
|
|
618
|
+
return {
|
|
619
|
+
contract_id: 123456790,
|
|
620
|
+
issuer_id: 1689391488,
|
|
621
|
+
issuer_corporation_id: 1344654522,
|
|
622
|
+
start_location_id: 60003760,
|
|
623
|
+
type: "item_exchange",
|
|
624
|
+
title: "Test Item Exchange Contract",
|
|
625
|
+
for_corporation: false,
|
|
626
|
+
date_issued: "2023-12-01T12:00:00Z",
|
|
627
|
+
date_expired: "2023-12-15T12:00:00Z",
|
|
628
|
+
price: 5e7,
|
|
629
|
+
volume: 10,
|
|
630
|
+
...overrides
|
|
631
|
+
};
|
|
632
|
+
}
|
|
605
633
|
// Sovereignty test data (Equinox)
|
|
606
634
|
static createSovereigntySystem(overrides = {}) {
|
|
607
635
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/logger/logger.ts","../../src/core/util/error.ts","../../src/testing/TestDataFactory.ts"],"sourcesContent":["import pino from 'pino';\nimport { ILogger } from './ILogger';\n\nconst pinoLogger = pino({ level: process.env.ESI_LOG_LEVEL || 'warn' });\n\nconst logger: ILogger = {\n info: (msg: string) => {\n pinoLogger.info(msg);\n },\n warn: (msg: string) => {\n pinoLogger.warn(msg);\n },\n error: (msg: string) => {\n pinoLogger.error(msg);\n },\n debug: (msg: string) => {\n pinoLogger.debug(msg);\n },\n};\n\nexport default logger;\n","const SENSITIVE_PARAMS = [\n 'token',\n 'access_token',\n 'api_key',\n 'refresh_token',\n 'client_secret',\n 'code',\n 'key',\n 'secret',\n 'auth',\n 'password',\n 'bearer',\n];\n\nexport function sanitizeUrl(url?: string): string | undefined {\n if (!url) return url;\n try {\n const parsed = new URL(url);\n for (const param of SENSITIVE_PARAMS) {\n if (parsed.searchParams.has(param)) {\n parsed.searchParams.set(param, '[REDACTED]');\n }\n }\n return parsed.toString();\n } catch {\n const qIndex = url.indexOf('?');\n return qIndex >= 0 ? url.substring(0, qIndex) + '?[params-redacted]' : url;\n }\n}\n\nexport class EsiError extends Error {\n public readonly url?: string;\n\n constructor(\n public readonly statusCode: number,\n message: string,\n url?: string,\n public readonly requestId?: string,\n ) {\n super(message);\n this.name = 'EsiError';\n this.url = sanitizeUrl(url);\n }\n\n isRateLimited(): boolean {\n return this.statusCode === 420 || this.statusCode === 429;\n }\n\n isNotFound(): boolean {\n return this.statusCode === 404;\n }\n\n isUnauthorized(): boolean {\n return this.statusCode === 401;\n }\n\n isForbidden(): boolean {\n return this.statusCode === 403;\n }\n\n isServerError(): boolean {\n return this.statusCode >= 500;\n }\n\n isTimeout(): boolean {\n return this.statusCode === 0;\n }\n\n get retryable(): boolean {\n return (\n this.statusCode === 0 ||\n this.statusCode === 420 ||\n this.statusCode === 429 ||\n this.statusCode === 502 ||\n this.statusCode === 503 ||\n this.statusCode === 504\n );\n }\n}\n\nexport function isEsiError(error: unknown): error is EsiError {\n return error instanceof EsiError;\n}\n\nexport function isRateLimited(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isRateLimited();\n}\n\nexport function isNotFound(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isNotFound();\n}\n\nexport function isUnauthorized(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isUnauthorized();\n}\n\nexport function isForbidden(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isForbidden();\n}\n\nexport function isServerError(error: unknown): error is EsiError {\n return error instanceof EsiError && error.isServerError();\n}\n\nexport class TimeoutError extends EsiError {\n constructor(\n public readonly timeoutMs: number,\n url?: string,\n requestId?: string,\n ) {\n super(0, `Request timed out after ${timeoutMs}ms`, url, requestId);\n this.name = 'TimeoutError';\n }\n}\n\nexport function isTimeout(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError;\n}\n\nexport function isRetryable(error: unknown): error is EsiError {\n return error instanceof EsiError && error.retryable;\n}\n\n// Re-export CircuitOpenError for the type guard — avoid forcing consumers\n// to import from the circuitBreaker subpath just for error checking.\nimport { CircuitOpenError } from '../circuitBreaker/CircuitBreaker';\n\nexport function isCircuitOpen(error: unknown): error is CircuitOpenError {\n return error instanceof CircuitOpenError;\n}\n\nexport const buildError = (\n message: string,\n type: string = 'ERROR',\n url?: string,\n): Error => {\n const error = new Error(`[${type}] ${message}`);\n if (url) {\n (error as Error & { url: string }).url = url;\n }\n return error;\n};\n\nexport type ValidationDirection = 'request' | 'response';\n\nexport class EsiValidationError extends EsiError {\n public readonly validationError: unknown;\n public readonly direction: ValidationDirection;\n\n constructor(\n url: string,\n zodError: unknown,\n requestId?: string,\n direction: ValidationDirection = 'response',\n ) {\n const safeUrl = sanitizeUrl(url) ?? url;\n const label = direction === 'request' ? 'Request body' : 'Response';\n super(0, `${label} validation failed for ${safeUrl}`, url, requestId);\n this.name = 'EsiValidationError';\n this.validationError = zodError;\n this.direction = direction;\n }\n}\n\nexport function isValidationError(error: unknown): error is EsiValidationError {\n return error instanceof EsiValidationError;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AllianceInfo,\n CharacterInfo,\n CorporationInfo,\n AllianceContact,\n AllianceContactLabel,\n CharacterPortrait,\n CharacterAttributes,\n CharacterSkill,\n MarketOrder,\n WalletTransaction,\n Contract,\n SovereigntySystem,\n SovereigntyHub,\n OrbitalSkyhook,\n RaidableSkyhook,\n MercenaryDen,\n MercenaryTacticalOperation,\n AccessListEntry,\n} from '../types/api-responses';\nimport { EsiError } from '../core/util/error';\n\nexport class TestDataFactory {\n // Alliance test data\n static createAllianceInfo(\n overrides: Partial<AllianceInfo> = {},\n ): AllianceInfo {\n return {\n alliance_id: 99005338,\n name: 'Goonswarm Federation',\n ticker: 'CONDI',\n creator_id: 1689391488,\n creator_corporation_id: 1344654522,\n executor_corporation_id: 1344654522,\n date_founded: '2010-06-01T00:00:00Z',\n faction_id: 500001,\n ...overrides,\n };\n }\n\n static createAllianceContact(\n overrides: Partial<AllianceContact> = {},\n ): AllianceContact {\n return {\n contact_id: 1689391488,\n contact_type: 'character',\n standing: 10.0,\n label_ids: [1, 2],\n ...overrides,\n };\n }\n\n static createAllianceContactLabel(\n overrides: Partial<AllianceContactLabel> = {},\n ): AllianceContactLabel {\n return {\n label_id: 1,\n label_name: 'Friendly',\n ...overrides,\n };\n }\n\n // Character test data\n static createCharacterInfo(\n overrides: Partial<CharacterInfo> = {},\n ): CharacterInfo {\n return {\n character_id: 1689391488,\n name: 'Test Character',\n corporation_id: 1344654522,\n alliance_id: 99005338,\n bloodline_id: 4,\n race_id: 1,\n gender: 'male',\n birthday: '2003-05-06T00:00:00Z',\n description: 'A test character for BDD scenarios',\n security_status: 5.0,\n title: 'Test Pilot',\n ...overrides,\n };\n }\n\n static createCharacterPortrait(\n characterId: number = 1689391488,\n ): CharacterPortrait {\n return {\n px64x64: `https://images.evetech.net/characters/${characterId}/portrait?size=64`,\n px128x128: `https://images.evetech.net/characters/${characterId}/portrait?size=128`,\n px256x256: `https://images.evetech.net/characters/${characterId}/portrait?size=256`,\n px512x512: `https://images.evetech.net/characters/${characterId}/portrait?size=512`,\n };\n }\n\n static createCharacterAttributes(\n overrides: Partial<CharacterAttributes> = {},\n ): CharacterAttributes {\n return {\n charisma: 20,\n intelligence: 24,\n memory: 21,\n perception: 23,\n willpower: 22,\n bonus_remaps: 2,\n last_remap_date: '2023-01-01T00:00:00Z',\n accrued_remap_cooldown_date: '2024-01-01T00:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterSkill(\n overrides: Partial<CharacterSkill> = {},\n ): CharacterSkill {\n return {\n skill_id: 3300,\n skillpoints_in_skill: 256000,\n trained_skill_level: 5,\n active_skill_level: 5,\n ...overrides,\n };\n }\n\n static createCharacterRoles(overrides: Record<string, any> = {}): any {\n return {\n roles: ['Director'],\n roles_at_base: [],\n roles_at_hq: ['Director'],\n roles_at_other: [],\n ...overrides,\n };\n }\n\n static createCorporationHistoryEntry(\n overrides: Record<string, any> = {},\n ): any {\n return {\n corporation_id: 1344654522,\n is_deleted: false,\n record_id: 1,\n start_date: '2020-01-01T00:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterMedal(overrides: Record<string, any> = {}): any {\n return {\n medal_id: 1,\n title: 'Test Medal',\n description: 'A test medal for demonstration',\n corporation_id: 1344654522,\n date: '2023-01-01T00:00:00Z',\n issuer_id: 1689391489,\n reason: 'Outstanding service',\n ...overrides,\n };\n }\n\n static createCharacterNotification(overrides: Record<string, any> = {}): any {\n return {\n notification_id: 1000001,\n sender_id: 1689391489,\n sender_type: 'character',\n text: 'Test notification',\n timestamp: '2024-01-15T12:00:00Z',\n type: 'AllWarDeclaredMsg',\n is_read: false,\n ...overrides,\n };\n }\n\n // Market test data\n static createMarketPrice(overrides: Record<string, any> = {}): any {\n return {\n type_id: 34,\n average_price: 4.5,\n adjusted_price: 4.55,\n ...overrides,\n };\n }\n\n static createMarketHistory(overrides: Record<string, any> = {}): any {\n return {\n date: '2024-01-15',\n volume: 1000000000,\n order_count: 2500,\n lowest: 4.2,\n highest: 4.8,\n average: 4.5,\n ...overrides,\n };\n }\n\n static createCharacterMarketOrder(overrides: Record<string, any> = {}): any {\n return {\n order_id: 5000000001,\n type_id: 34,\n region_id: 10000002,\n location_id: 60003760,\n range: 'region',\n volume_total: 1000000,\n volume_remain: 750000,\n min_volume: 1,\n price: 4.5,\n is_buy_order: true,\n is_corporation: false,\n duration: 90,\n issued: '2024-01-15T12:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterOrderHistory(overrides: Record<string, any> = {}): any {\n return {\n order_id: 5000000001,\n type_id: 34,\n region_id: 10000002,\n location_id: 60003760,\n range: 'region',\n volume_total: 1000000,\n volume_remain: 0,\n min_volume: 1,\n price: 4.5,\n is_buy_order: true,\n is_corporation: false,\n duration: 90,\n issued: '2024-01-10T12:00:00Z',\n state: 'expired',\n ...overrides,\n };\n }\n\n // Universe test data\n static createSolarSystem(overrides: Record<string, any> = {}): any {\n return {\n system_id: 30000142,\n name: 'Jita',\n constellation_id: 20000020,\n security_status: 0.9459991455078125,\n star_id: 40000001,\n stargates: [50000001, 50000002],\n stations: [60003760, 60003761],\n planets: [\n { planet_id: 40000001, moons: [40000002, 40000003] },\n { planet_id: 40000004, moons: [40000005] },\n ],\n ...overrides,\n };\n }\n\n static createStation(overrides: Record<string, any> = {}): any {\n return {\n station_id: 60003760,\n name: 'Jita IV - Moon 4 - Caldari Navy Assembly Plant',\n owner: 1000035,\n type_id: 52678,\n race_id: 1,\n system_id: 30000142,\n reprocessing_efficiency: 0.5,\n reprocessing_stations_take: 0.05,\n max_dockable_ship_volume: 50000000,\n office_rental_cost: 10000000,\n services: [\n 'bounty-missions',\n 'courier-missions',\n 'interbus',\n 'reprocessing-plant',\n 'market',\n 'stock-exchange',\n ],\n ...overrides,\n };\n }\n\n static createStructure(overrides: Record<string, any> = {}): any {\n return {\n structure_id: 1021975535893,\n name: 'Test Citadel',\n owner_id: 1689391488,\n solar_system_id: 30000142,\n type_id: 35832,\n position: { x: 1000000000, y: 2000000000, z: 3000000000 },\n ...overrides,\n };\n }\n\n static createItemType(overrides: Record<string, any> = {}): any {\n return {\n type_id: 34,\n name: 'Tritanium',\n description: 'The most common ore type in the known universe.',\n group_id: 18,\n category_id: 4,\n market_group_id: 1857,\n mass: 1.0,\n volume: 0.01,\n capacity: 0.0,\n portion_size: 1,\n radius: 1.0,\n published: true,\n ...overrides,\n };\n }\n\n static createItemGroup(overrides: Record<string, any> = {}): any {\n return {\n group_id: 18,\n name: 'Mineral',\n category_id: 4,\n published: true,\n types: [34, 35, 36, 37, 38, 39, 40, 11399],\n ...overrides,\n };\n }\n\n static createStar(overrides: Record<string, any> = {}): any {\n return {\n star_id: 40000001,\n name: 'Jita - Star',\n type_id: 3802,\n solar_system_id: 30000142,\n age: 4600000000,\n luminosity: 0.06575,\n radius: 62140000,\n spectral_class: 'K2 V',\n temperature: 4567,\n ...overrides,\n };\n }\n\n static createPlanet(overrides: Record<string, any> = {}): any {\n return {\n planet_id: 40000004,\n name: 'Jita IV',\n type_id: 11,\n system_id: 30000142,\n position: { x: 150000000000, y: 0, z: 0 },\n ...overrides,\n };\n }\n\n static createSearchResults(overrides: Record<string, any> = {}): any {\n return {\n systems: [],\n stations: [],\n structures: [],\n characters: [],\n corporations: [],\n alliances: [],\n ...overrides,\n };\n }\n\n static createEntityName(overrides: Record<string, any> = {}): any {\n return {\n id: 30000142,\n name: 'Jita',\n category: 'solar_system',\n ...overrides,\n };\n }\n\n // Corporation test data\n static createCorporationMemberRoles(\n overrides: Record<string, any> = {},\n ): any {\n return {\n character_id: 1689391488,\n roles: ['Director', 'Personnel_Manager'],\n grantable_roles: ['Hangar_Take_1', 'Hangar_Take_2'],\n roles_at_hq: ['Director'],\n roles_at_base: [],\n roles_at_other: [],\n ...overrides,\n };\n }\n\n static createCorporationAsset(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000000001,\n type_id: 587,\n quantity: 100,\n location_id: 60003760,\n location_flag: 'CorpSAG1',\n location_type: 'station',\n ...overrides,\n };\n }\n\n static createCorporationStructure(overrides: Record<string, any> = {}): any {\n return {\n structure_id: 1021975535893,\n type_id: 35832,\n system_id: 30000142,\n profile_id: 101853,\n fuel_expires: '2024-02-01T12:00:00Z',\n state_timer_start: '2024-01-15T12:00:00Z',\n state_timer_end: '2024-01-22T12:00:00Z',\n state: 'shield_vulnerable',\n ...overrides,\n };\n }\n\n static createCorporationWallet(overrides: Record<string, any> = {}): any {\n return {\n division: 1,\n balance: 1000000000.0,\n ...overrides,\n };\n }\n\n static createWalletJournalEntry(overrides: Record<string, any> = {}): any {\n return {\n id: 1000000001,\n date: '2024-01-15T12:00:00Z',\n ref_type: 'market_transaction',\n first_party_id: 1344654522,\n amount: 1000000.0,\n balance: 1000000000.0,\n reason: 'Market transaction',\n description: 'Sold items on market',\n ...overrides,\n };\n }\n\n // Fleet test data\n static createFleetInfo(overrides: Record<string, any> = {}): any {\n return {\n fleet_id: 1234567890,\n fleet_boss_id: 1689391488,\n is_free_move: false,\n is_registered: true,\n is_voice_enabled: true,\n motd: 'Fleet operations in progress',\n ...overrides,\n };\n }\n\n static createFleetMember(overrides: Record<string, any> = {}): any {\n return {\n character_id: 1689391488,\n role: 'fleet_commander',\n ship_type_id: 17918,\n solar_system_id: 30000142,\n station_id: 60003760,\n ...overrides,\n };\n }\n\n static createFleetWing(overrides: Record<string, any> = {}): any {\n return {\n wing_id: 987654321,\n name: 'Wing 1',\n squads: [{ squad_id: 123456789, name: 'Squad 1' }],\n ...overrides,\n };\n }\n\n // Industry test data\n static createIndustryJob(overrides: Record<string, any> = {}): any {\n return {\n job_id: 1000001,\n installer_id: 1689391488,\n facility_id: 60003760,\n activity_id: 1,\n blueprint_id: 1000000001,\n blueprint_type_id: 17918,\n product_type_id: 17918,\n runs: 1,\n status: 'active',\n start_date: '2024-01-15T12:00:00Z',\n end_date: '2024-01-16T12:00:00Z',\n ...overrides,\n };\n }\n\n static createBlueprint(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000001,\n type_id: 17918,\n location_id: 60003760,\n location_flag: 'Hangar',\n quantity: -2,\n time_efficiency: 10,\n material_efficiency: 10,\n runs: 100,\n ...overrides,\n };\n }\n\n static createCharacterAsset(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000002,\n type_id: 34,\n quantity: 1000000,\n location_id: 60003760,\n location_flag: 'Hangar',\n location_type: 'station',\n ...overrides,\n };\n }\n\n static createCharacterLocation(overrides: Record<string, any> = {}): any {\n return {\n solar_system_id: 30000142,\n station_id: 60003760,\n structure_id: undefined,\n ...overrides,\n };\n }\n\n static createCharacterSkills(overrides: Record<string, any> = {}): any {\n return {\n skills: [\n {\n skill_id: 3300,\n skillpoints_in_skill: 256000,\n trained_skill_level: 5,\n active_skill_level: 5,\n },\n {\n skill_id: 3301,\n skillpoints_in_skill: 128000,\n trained_skill_level: 4,\n active_skill_level: 4,\n },\n ],\n total_sp: 384000,\n unallocated_sp: 0,\n ...overrides,\n };\n }\n\n // Corporation test data\n static createCorporationInfo(\n overrides: Partial<CorporationInfo> = {},\n ): CorporationInfo {\n return {\n corporation_id: 1344654522,\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n ceo_id: 1689391488,\n creator_id: 1689391488,\n member_count: 15000,\n tax_rate: 0.1,\n alliance_id: 99005338,\n date_founded: '2003-05-06T00:00:00Z',\n description: 'The founding corporation of Goonswarm Federation',\n home_station_id: 60003760,\n shares: 1000,\n // eslint-disable-next-line sonarjs/no-clear-text-protocols\n url: 'http://www.goonfleet.com/',\n faction_id: 500001,\n war_eligible: true,\n ...overrides,\n };\n }\n\n // Market test data\n static createMarketOrder(overrides: Partial<MarketOrder> = {}): MarketOrder {\n return {\n order_id: 123456789,\n type_id: 34, // Tritanium\n location_id: 60003760, // Jita 4-4\n volume_total: 1000000,\n volume_remain: 500000,\n min_volume: 1,\n price: 5.5,\n is_buy_order: false,\n system_id: 30000142,\n duration: 90,\n issued: '2023-12-01T12:00:00Z',\n range: 'region',\n ...overrides,\n };\n }\n\n // Wallet test data\n static createWalletTransaction(\n overrides: Partial<WalletTransaction> = {},\n ): WalletTransaction {\n return {\n transaction_id: 123456789,\n date: '2023-12-01T12:00:00Z',\n type_id: 34,\n location_id: 60003760,\n unit_price: 5.5,\n quantity: 1000,\n client_id: 1689391488,\n is_buy: false,\n is_personal: true,\n journal_ref_id: 987654321,\n ...overrides,\n };\n }\n\n // Contract test data\n static createContract(overrides: Partial<Contract> = {}): Contract {\n return {\n contract_id: 123456789,\n issuer_id: 1689391488,\n issuer_corporation_id: 1344654522,\n assignee_id: 987654321,\n start_location_id: 60003760,\n end_location_id: 60008494,\n type: 'courier',\n status: 'outstanding',\n title: 'Test Courier Contract',\n for_corporation: false,\n availability: 'public',\n date_issued: '2023-12-01T12:00:00Z',\n date_expired: '2023-12-08T12:00:00Z',\n days_to_complete: 3,\n price: 1000000,\n reward: 500000,\n collateral: 10000000,\n volume: 1000,\n ...overrides,\n };\n }\n\n // Sovereignty test data (Equinox)\n static createSovereigntySystem(\n overrides: Partial<SovereigntySystem> = {},\n ): SovereigntySystem {\n return {\n solar_systems: [\n {\n solar_system_id: 30000142,\n claim: {\n alliance: {\n alliance_id: 99005338,\n corporation_id: 1344654522,\n claimed_since: '2020-10-08T00:38:16Z',\n is_capital_system: false,\n development: {\n activity_defense_multiplier: 4.5,\n military_level: 5,\n industrial_level: 3,\n strategic_level: 1,\n },\n },\n },\n },\n ],\n ...overrides,\n };\n }\n\n static createSovereigntyHub(\n overrides: Partial<SovereigntyHub> = {},\n ): SovereigntyHub {\n return {\n structure_id: 100000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n online: true,\n remaining_reagents: 500,\n installed_upgrades: [1, 2, 3],\n ...overrides,\n };\n }\n\n static createOrbitalSkyhook(\n overrides: Partial<OrbitalSkyhook> = {},\n ): OrbitalSkyhook {\n return {\n structure_id: 200000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n online: true,\n reagent_silo_capacity: 1000,\n reagent_silo_level: 750,\n ...overrides,\n };\n }\n\n static createRaidableSkyhook(\n overrides: Partial<RaidableSkyhook> = {},\n ): RaidableSkyhook {\n return {\n structure_id: 200000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n raidable_at: '2026-05-20T12:00:00Z',\n is_raidable: true,\n ...overrides,\n };\n }\n\n static createMercenaryDen(\n overrides: Partial<MercenaryDen> = {},\n ): MercenaryDen {\n return {\n den_id: 5001,\n system_id: 30000142,\n constellation_id: 20000125,\n region_id: 10000002,\n development_level: 3,\n anarchy_level: 2,\n active_operations: 1,\n ...overrides,\n };\n }\n\n static createMercenaryTacticalOperation(\n overrides: Partial<MercenaryTacticalOperation> = {},\n ): MercenaryTacticalOperation {\n return {\n operation_id: 7001,\n den_id: 5001,\n system_id: 30000142,\n site_type: 'assault',\n status: 'active',\n started_at: '2026-05-20T10:00:00Z',\n expires_at: '2026-05-20T22:00:00Z',\n ...overrides,\n };\n }\n\n static createAccessListEntry(\n overrides: Partial<AccessListEntry> = {},\n ): AccessListEntry {\n return {\n entity_id: 1689391488,\n entity_type: 'character',\n access_type: 'allowed',\n ...overrides,\n };\n }\n\n // Error test data\n static createError(statusCode: number, message?: string): EsiError {\n const defaultMessages: Record<number, string> = {\n 400: 'Bad request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Resource not found',\n 429: 'Rate limit exceeded',\n 500: 'Internal server error',\n 503: 'Service unavailable',\n };\n return new EsiError(\n statusCode,\n // eslint-disable-next-line security/detect-object-injection\n message || defaultMessages[statusCode] || 'Unknown error',\n );\n }\n\n // Test scenarios\n static createTestScenarios() {\n return {\n alliances: [\n { id: 99005338, name: 'Goonswarm Federation', ticker: 'CONDI' },\n { id: 99000001, name: 'Test Alliance Please Ignore', ticker: 'TEST' },\n { id: 99000002, name: 'Brave Collective', ticker: 'BRAVE' },\n { id: 99000003, name: 'Pandemic Legion', ticker: 'PL' },\n { id: 99000004, name: 'Northern Coalition.', ticker: 'NC.' },\n ],\n characters: [\n {\n id: 1689391488,\n name: 'Test Character',\n corp: 1344654522,\n alliance: 99005338,\n },\n {\n id: 123456789,\n name: 'Demo Pilot',\n corp: 987654321,\n alliance: 99000001,\n },\n {\n id: 111111111,\n name: 'Alpha Tester',\n corp: 222222222,\n alliance: 99000002,\n },\n {\n id: 333333333,\n name: 'Beta User',\n corp: 444444444,\n alliance: 99000003,\n },\n {\n id: 555555555,\n name: 'Gamma Pilot',\n corp: 666666666,\n alliance: 99000004,\n },\n ],\n corporations: [\n {\n id: 1344654522,\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n alliance: 99005338,\n },\n {\n id: 987654321,\n name: 'Test Corp Please Ignore',\n ticker: 'TCPI',\n alliance: 99000001,\n },\n {\n id: 222222222,\n name: 'Brave Newbies Inc.',\n ticker: 'BNI',\n alliance: 99000002,\n },\n {\n id: 444444444,\n name: 'Sniggerdly',\n ticker: 'SNIGG',\n alliance: 99000003,\n },\n {\n id: 666666666,\n name: 'Tactical Narcotics Team',\n ticker: 'TNT',\n alliance: 99000004,\n },\n ],\n errorScenarios: [\n { statusCode: 0, label: 'network_error', probability: 0.1 },\n { statusCode: 429, label: 'rate_limited', probability: 0.05 },\n { statusCode: 500, label: 'server_error', probability: 0.02 },\n { statusCode: 504, label: 'timeout', probability: 0.03 },\n { statusCode: 404, label: 'not_found', probability: 0.01 },\n ],\n };\n }\n\n // Performance test data\n static createPerformanceTestData(\n size: 'small' | 'medium' | 'large' = 'medium',\n ) {\n const sizes = {\n small: { alliances: 5, characters: 20, corporations: 10 },\n medium: { alliances: 20, characters: 100, corporations: 50 },\n large: { alliances: 100, characters: 1000, corporations: 500 },\n };\n\n // eslint-disable-next-line security/detect-object-injection\n const config = sizes[size];\n const data = {\n alliances: [] as AllianceInfo[],\n characters: [] as CharacterInfo[],\n corporations: [] as CorporationInfo[],\n };\n\n // Generate alliances\n for (let i = 1; i <= config.alliances; i++) {\n data.alliances.push(\n this.createAllianceInfo({\n alliance_id: 99000000 + i,\n name: `Test Alliance ${i}`,\n ticker: `TST${i.toString().padStart(2, '0')}`,\n creator_id: 1000000 + i,\n }),\n );\n }\n\n // Generate corporations\n for (let i = 1; i <= config.corporations; i++) {\n const allianceIndex = Math.floor(\n (i - 1) / (config.corporations / config.alliances),\n );\n data.corporations.push(\n this.createCorporationInfo({\n corporation_id: 2000000 + i,\n name: `Test Corporation ${i}`,\n ticker: `TC${i.toString().padStart(3, '0')}`,\n // eslint-disable-next-line security/detect-object-injection\n alliance_id: data.alliances[allianceIndex]?.alliance_id,\n ceo_id: 3000000 + i,\n }),\n );\n }\n\n // Generate characters\n for (let i = 1; i <= config.characters; i++) {\n const corpIndex = Math.floor(\n (i - 1) / (config.characters / config.corporations),\n );\n // eslint-disable-next-line security/detect-object-injection\n const corp = data.corporations[corpIndex];\n data.characters.push(\n this.createCharacterInfo({\n character_id: 3000000 + i,\n name: `Test Character ${i}`,\n corporation_id: corp?.corporation_id || 2000001,\n alliance_id: corp?.alliance_id,\n }),\n );\n }\n\n return data;\n }\n\n // Realistic test data with relationships\n static createRealisticTestData() {\n const goonswarm = this.createAllianceInfo({\n alliance_id: 99005338,\n name: 'Goonswarm Federation',\n ticker: 'CONDI',\n creator_id: 1689391488,\n creator_corporation_id: 1344654522,\n executor_corporation_id: 1344654522,\n date_founded: '2010-06-01T00:00:00Z',\n });\n\n const goonwaffe = this.createCorporationInfo({\n corporation_id: 1344654522,\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n alliance_id: 99005338,\n ceo_id: 1689391488,\n creator_id: 1689391488,\n member_count: 15000,\n date_founded: '2003-05-06T00:00:00Z',\n });\n\n const testCharacter = this.createCharacterInfo({\n character_id: 1689391488,\n name: 'The Mittani',\n corporation_id: 1344654522,\n alliance_id: 99005338,\n birthday: '2003-05-06T00:00:00Z',\n });\n\n return {\n alliances: [goonswarm],\n corporations: [goonwaffe],\n characters: [testCharacter],\n relationships: {\n allianceExecutor: { alliance: 99005338, corporation: 1344654522 },\n corporationCEO: { corporation: 1344654522, character: 1689391488 },\n characterMembership: {\n character: 1689391488,\n corporation: 1344654522,\n alliance: 99005338,\n },\n },\n };\n }\n}\n"],"mappings":";AAAA,OAAO,UAAU;AAGjB,IAAM,aAAa,KAAK,EAAE,OAAO,QAAQ,IAAI,iBAAiB,OAAO,CAAC;;;ACHtE,IAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,YAAY,KAAkC;AAC5D,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI;AACF,UAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,eAAW,SAAS,kBAAkB;AACpC,UAAI,OAAO,aAAa,IAAI,KAAK,GAAG;AAClC,eAAO,aAAa,IAAI,OAAO,YAAY;AAAA,MAC7C;AAAA,IACF;AACA,WAAO,OAAO,SAAS;AAAA,EACzB,QAAQ;AACN,UAAM,SAAS,IAAI,QAAQ,GAAG;AAC9B,WAAO,UAAU,IAAI,IAAI,UAAU,GAAG,MAAM,IAAI,uBAAuB;AAAA,EACzE;AACF;AAEO,IAAM,WAAN,cAAuB,MAAM;AAAA,EAGlC,YACkB,YAChB,SACA,KACgB,WAChB;AACA,UAAM,OAAO;AALG;AAGA;AAGhB,SAAK,OAAO;AACZ,SAAK,MAAM,YAAY,GAAG;AAAA,EAC5B;AAAA,EARkB;AAAA,EAGA;AAAA,EANF;AAAA,EAahB,gBAAyB;AACvB,WAAO,KAAK,eAAe,OAAO,KAAK,eAAe;AAAA,EACxD;AAAA,EAEA,aAAsB;AACpB,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EAEA,iBAA0B;AACxB,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EAEA,cAAuB;AACrB,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EAEA,gBAAyB;AACvB,WAAO,KAAK,cAAc;AAAA,EAC5B;AAAA,EAEA,YAAqB;AACnB,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EAEA,IAAI,YAAqB;AACvB,WACE,KAAK,eAAe,KACpB,KAAK,eAAe,OACpB,KAAK,eAAe,OACpB,KAAK,eAAe,OACpB,KAAK,eAAe,OACpB,KAAK,eAAe;AAAA,EAExB;AACF;;;ACvDO,IAAM,kBAAN,MAAsB;AAAA;AAAA,EAE3B,OAAO,mBACL,YAAmC,CAAC,GACtB;AACd,WAAO;AAAA,MACL,aAAa;AAAA,MACb,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,wBAAwB;AAAA,MACxB,yBAAyB;AAAA,MACzB,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,sBACL,YAAsC,CAAC,GACtB;AACjB,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,WAAW,CAAC,GAAG,CAAC;AAAA,MAChB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,2BACL,YAA2C,CAAC,GACtB;AACtB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,oBACL,YAAoC,CAAC,GACtB;AACf,WAAO;AAAA,MACL,cAAc;AAAA,MACd,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,wBACL,cAAsB,YACH;AACnB,WAAO;AAAA,MACL,SAAS,yCAAyC,WAAW;AAAA,MAC7D,WAAW,yCAAyC,WAAW;AAAA,MAC/D,WAAW,yCAAyC,WAAW;AAAA,MAC/D,WAAW,yCAAyC,WAAW;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,OAAO,0BACL,YAA0C,CAAC,GACtB;AACrB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,6BAA6B;AAAA,MAC7B,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBACL,YAAqC,CAAC,GACtB;AAChB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBAAqB,YAAiC,CAAC,GAAQ;AACpE,WAAO;AAAA,MACL,OAAO,CAAC,UAAU;AAAA,MAClB,eAAe,CAAC;AAAA,MAChB,aAAa,CAAC,UAAU;AAAA,MACxB,gBAAgB,CAAC;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,8BACL,YAAiC,CAAC,GAC7B;AACL,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBAAqB,YAAiC,CAAC,GAAQ;AACpE,WAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,4BAA4B,YAAiC,CAAC,GAAQ;AAC3E,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,kBAAkB,YAAiC,CAAC,GAAQ;AACjE,WAAO;AAAA,MACL,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,oBAAoB,YAAiC,CAAC,GAAQ;AACnE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,2BAA2B,YAAiC,CAAC,GAAQ;AAC1E,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,MACP,cAAc;AAAA,MACd,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,4BAA4B,YAAiC,CAAC,GAAQ;AAC3E,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,MACP,cAAc;AAAA,MACd,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,kBAAkB,YAAiC,CAAC,GAAQ;AACjE,WAAO;AAAA,MACL,WAAW;AAAA,MACX,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,WAAW,CAAC,UAAU,QAAQ;AAAA,MAC9B,UAAU,CAAC,UAAU,QAAQ;AAAA,MAC7B,SAAS;AAAA,QACP,EAAE,WAAW,UAAU,OAAO,CAAC,UAAU,QAAQ,EAAE;AAAA,QACnD,EAAE,WAAW,UAAU,OAAO,CAAC,QAAQ,EAAE;AAAA,MAC3C;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,cAAc,YAAiC,CAAC,GAAQ;AAC7D,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,yBAAyB;AAAA,MACzB,4BAA4B;AAAA,MAC5B,0BAA0B;AAAA,MAC1B,oBAAoB;AAAA,MACpB,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,gBAAgB,YAAiC,CAAC,GAAQ;AAC/D,WAAO;AAAA,MACL,cAAc;AAAA,MACd,MAAM;AAAA,MACN,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,UAAU,EAAE,GAAG,KAAY,GAAG,KAAY,GAAG,IAAW;AAAA,MACxD,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,eAAe,YAAiC,CAAC,GAAQ;AAC9D,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,gBAAgB,YAAiC,CAAC,GAAQ;AAC/D,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM;AAAA,MACN,aAAa;AAAA,MACb,WAAW;AAAA,MACX,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK;AAAA,MACzC,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,WAAW,YAAiC,CAAC,GAAQ;AAC1D,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,aAAa,YAAiC,CAAC,GAAQ;AAC5D,WAAO;AAAA,MACL,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU,EAAE,GAAG,OAAc,GAAG,GAAG,GAAG,EAAE;AAAA,MACxC,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,oBAAoB,YAAiC,CAAC,GAAQ;AACnE,WAAO;AAAA,MACL,SAAS,CAAC;AAAA,MACV,UAAU,CAAC;AAAA,MACX,YAAY,CAAC;AAAA,MACb,YAAY,CAAC;AAAA,MACb,cAAc,CAAC;AAAA,MACf,WAAW,CAAC;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,iBAAiB,YAAiC,CAAC,GAAQ;AAChE,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,6BACL,YAAiC,CAAC,GAC7B;AACL,WAAO;AAAA,MACL,cAAc;AAAA,MACd,OAAO,CAAC,YAAY,mBAAmB;AAAA,MACvC,iBAAiB,CAAC,iBAAiB,eAAe;AAAA,MAClD,aAAa,CAAC,UAAU;AAAA,MACxB,eAAe,CAAC;AAAA,MAChB,gBAAgB,CAAC;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,uBAAuB,YAAiC,CAAC,GAAQ;AACtE,WAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,aAAa;AAAA,MACb,eAAe;AAAA,MACf,eAAe;AAAA,MACf,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,2BAA2B,YAAiC,CAAC,GAAQ;AAC1E,WAAO;AAAA,MACL,cAAc;AAAA,MACd,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,wBAAwB,YAAiC,CAAC,GAAQ;AACvE,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,yBAAyB,YAAiC,CAAC,GAAQ;AACxE,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,gBAAgB,YAAiC,CAAC,GAAQ;AAC/D,WAAO;AAAA,MACL,UAAU;AAAA,MACV,eAAe;AAAA,MACf,cAAc;AAAA,MACd,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,MAAM;AAAA,MACN,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,kBAAkB,YAAiC,CAAC,GAAQ;AACjE,WAAO;AAAA,MACL,cAAc;AAAA,MACd,MAAM;AAAA,MACN,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,gBAAgB,YAAiC,CAAC,GAAQ;AAC/D,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,UAAU,WAAW,MAAM,UAAU,CAAC;AAAA,MACjD,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,kBAAkB,YAAiC,CAAC,GAAQ;AACjE,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,aAAa;AAAA,MACb,aAAa;AAAA,MACb,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,gBAAgB,YAAiC,CAAC,GAAQ;AAC/D,WAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,MACb,eAAe;AAAA,MACf,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,MAAM;AAAA,MACN,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBAAqB,YAAiC,CAAC,GAAQ;AACpE,WAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,aAAa;AAAA,MACb,eAAe;AAAA,MACf,eAAe;AAAA,MACf,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,wBAAwB,YAAiC,CAAC,GAAQ;AACvE,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,sBAAsB,YAAiC,CAAC,GAAQ;AACrE,WAAO;AAAA,MACL,QAAQ;AAAA,QACN;AAAA,UACE,UAAU;AAAA,UACV,sBAAsB;AAAA,UACtB,qBAAqB;AAAA,UACrB,oBAAoB;AAAA,QACtB;AAAA,QACA;AAAA,UACE,UAAU;AAAA,UACV,sBAAsB;AAAA,UACtB,qBAAqB;AAAA,UACrB,oBAAoB;AAAA,QACtB;AAAA,MACF;AAAA,MACA,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,sBACL,YAAsC,CAAC,GACtB;AACjB,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,QAAQ;AAAA;AAAA,MAER,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,kBAAkB,YAAkC,CAAC,GAAgB;AAC1E,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA;AAAA,MACT,aAAa;AAAA;AAAA,MACb,cAAc;AAAA,MACd,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,wBACL,YAAwC,CAAC,GACtB;AACnB,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,eAAe,YAA+B,CAAC,GAAa;AACjE,WAAO;AAAA,MACL,aAAa;AAAA,MACb,WAAW;AAAA,MACX,uBAAuB;AAAA,MACvB,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,wBACL,YAAwC,CAAC,GACtB;AACnB,WAAO;AAAA,MACL,eAAe;AAAA,QACb;AAAA,UACE,iBAAiB;AAAA,UACjB,OAAO;AAAA,YACL,UAAU;AAAA,cACR,aAAa;AAAA,cACb,gBAAgB;AAAA,cAChB,eAAe;AAAA,cACf,mBAAmB;AAAA,cACnB,aAAa;AAAA,gBACX,6BAA6B;AAAA,gBAC7B,gBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,iBAAiB;AAAA,cACnB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBACL,YAAqC,CAAC,GACtB;AAChB,WAAO;AAAA,MACL,cAAc;AAAA,MACd,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,oBAAoB;AAAA,MACpB,oBAAoB,CAAC,GAAG,GAAG,CAAC;AAAA,MAC5B,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,qBACL,YAAqC,CAAC,GACtB;AAChB,WAAO;AAAA,MACL,cAAc;AAAA,MACd,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,uBAAuB;AAAA,MACvB,oBAAoB;AAAA,MACpB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,sBACL,YAAsC,CAAC,GACtB;AACjB,WAAO;AAAA,MACL,cAAc;AAAA,MACd,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,aAAa;AAAA,MACb,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,mBACL,YAAmC,CAAC,GACtB;AACd,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,iCACL,YAAiD,CAAC,GACtB;AAC5B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,OAAO,sBACL,YAAsC,CAAC,GACtB;AACjB,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa;AAAA,MACb,aAAa;AAAA,MACb,GAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,YAAY,YAAoB,SAA4B;AACjE,UAAM,kBAA0C;AAAA,MAC9C,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,WAAO,IAAI;AAAA,MACT;AAAA;AAAA,MAEA,WAAW,gBAAgB,UAAU,KAAK;AAAA,IAC5C;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,sBAAsB;AAC3B,WAAO;AAAA,MACL,WAAW;AAAA,QACT,EAAE,IAAI,UAAU,MAAM,wBAAwB,QAAQ,QAAQ;AAAA,QAC9D,EAAE,IAAI,UAAU,MAAM,+BAA+B,QAAQ,OAAO;AAAA,QACpE,EAAE,IAAI,UAAU,MAAM,oBAAoB,QAAQ,QAAQ;AAAA,QAC1D,EAAE,IAAI,UAAU,MAAM,mBAAmB,QAAQ,KAAK;AAAA,QACtD,EAAE,IAAI,UAAU,MAAM,uBAAuB,QAAQ,MAAM;AAAA,MAC7D;AAAA,MACA,YAAY;AAAA,QACV;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACZ;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,gBAAgB;AAAA,QACd,EAAE,YAAY,GAAG,OAAO,iBAAiB,aAAa,IAAI;AAAA,QAC1D,EAAE,YAAY,KAAK,OAAO,gBAAgB,aAAa,KAAK;AAAA,QAC5D,EAAE,YAAY,KAAK,OAAO,gBAAgB,aAAa,KAAK;AAAA,QAC5D,EAAE,YAAY,KAAK,OAAO,WAAW,aAAa,KAAK;AAAA,QACvD,EAAE,YAAY,KAAK,OAAO,aAAa,aAAa,KAAK;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,0BACL,OAAqC,UACrC;AACA,UAAM,QAAQ;AAAA,MACZ,OAAO,EAAE,WAAW,GAAG,YAAY,IAAI,cAAc,GAAG;AAAA,MACxD,QAAQ,EAAE,WAAW,IAAI,YAAY,KAAK,cAAc,GAAG;AAAA,MAC3D,OAAO,EAAE,WAAW,KAAK,YAAY,KAAM,cAAc,IAAI;AAAA,IAC/D;AAGA,UAAM,SAAS,MAAM,IAAI;AACzB,UAAM,OAAO;AAAA,MACX,WAAW,CAAC;AAAA,MACZ,YAAY,CAAC;AAAA,MACb,cAAc,CAAC;AAAA,IACjB;AAGA,aAAS,IAAI,GAAG,KAAK,OAAO,WAAW,KAAK;AAC1C,WAAK,UAAU;AAAA,QACb,KAAK,mBAAmB;AAAA,UACtB,aAAa,OAAW;AAAA,UACxB,MAAM,iBAAiB,CAAC;AAAA,UACxB,QAAQ,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,UAC3C,YAAY,MAAU;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AAGA,aAAS,IAAI,GAAG,KAAK,OAAO,cAAc,KAAK;AAC7C,YAAM,gBAAgB,KAAK;AAAA,SACxB,IAAI,MAAM,OAAO,eAAe,OAAO;AAAA,MAC1C;AACA,WAAK,aAAa;AAAA,QAChB,KAAK,sBAAsB;AAAA,UACzB,gBAAgB,MAAU;AAAA,UAC1B,MAAM,oBAAoB,CAAC;AAAA,UAC3B,QAAQ,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA;AAAA,UAE1C,aAAa,KAAK,UAAU,aAAa,GAAG;AAAA,UAC5C,QAAQ,MAAU;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF;AAGA,aAAS,IAAI,GAAG,KAAK,OAAO,YAAY,KAAK;AAC3C,YAAM,YAAY,KAAK;AAAA,SACpB,IAAI,MAAM,OAAO,aAAa,OAAO;AAAA,MACxC;AAEA,YAAM,OAAO,KAAK,aAAa,SAAS;AACxC,WAAK,WAAW;AAAA,QACd,KAAK,oBAAoB;AAAA,UACvB,cAAc,MAAU;AAAA,UACxB,MAAM,kBAAkB,CAAC;AAAA,UACzB,gBAAgB,MAAM,kBAAkB;AAAA,UACxC,aAAa,MAAM;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,0BAA0B;AAC/B,UAAM,YAAY,KAAK,mBAAmB;AAAA,MACxC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,wBAAwB;AAAA,MACxB,yBAAyB;AAAA,MACzB,cAAc;AAAA,IAChB,CAAC;AAED,UAAM,YAAY,KAAK,sBAAsB;AAAA,MAC3C,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,IAChB,CAAC;AAED,UAAM,gBAAgB,KAAK,oBAAoB;AAAA,MAC7C,cAAc;AAAA,MACd,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAED,WAAO;AAAA,MACL,WAAW,CAAC,SAAS;AAAA,MACrB,cAAc,CAAC,SAAS;AAAA,MACxB,YAAY,CAAC,aAAa;AAAA,MAC1B,eAAe;AAAA,QACb,kBAAkB,EAAE,UAAU,UAAU,aAAa,WAAW;AAAA,QAChE,gBAAgB,EAAE,aAAa,YAAY,WAAW,WAAW;AAAA,QACjE,qBAAqB;AAAA,UACnB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/testing/TestDataFactory.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AllianceInfo,\n CharacterInfo,\n CorporationInfo,\n AllianceContact,\n AllianceContactLabel,\n CharacterPortrait,\n CharacterAttributes,\n CharacterSkill,\n MarketOrder,\n WalletTransaction,\n CorporationWalletTransaction,\n Contract,\n PublicContract,\n SovereigntySystem,\n SovereigntyHub,\n OrbitalSkyhook,\n RaidableSkyhook,\n MercenaryDen,\n MercenaryTacticalOperation,\n AccessListEntry,\n} from '../types/api-responses';\nimport { EsiError } from '../core/util/error';\n\nexport class TestDataFactory {\n // Alliance test data\n\n /** `GET /alliances/{alliance_id}`: the alliance ID is in the path, not the body. */\n static createAllianceInfo(\n overrides: Partial<AllianceInfo> = {},\n ): AllianceInfo {\n return {\n name: 'Goonswarm Federation',\n ticker: 'CONDI',\n creator_id: 1689391488,\n creator_corporation_id: 1344654522,\n executor_corporation_id: 1344654522,\n date_founded: '2010-06-01T00:00:00Z',\n faction_id: 500001,\n ...overrides,\n };\n }\n\n static createAllianceContact(\n overrides: Partial<AllianceContact> = {},\n ): AllianceContact {\n return {\n contact_id: 1689391488,\n contact_type: 'character',\n standing: 10.0,\n label_ids: [1, 2],\n ...overrides,\n };\n }\n\n static createAllianceContactLabel(\n overrides: Partial<AllianceContactLabel> = {},\n ): AllianceContactLabel {\n return {\n label_id: 1,\n label_name: 'Friendly',\n ...overrides,\n };\n }\n\n // Character test data\n static createCharacterInfo(\n overrides: Partial<CharacterInfo> = {},\n ): CharacterInfo {\n return {\n name: 'Test Character',\n corporation_id: 1344654522,\n alliance_id: 99005338,\n bloodline_id: 4,\n race_id: 1,\n gender: 'male',\n birthday: '2003-05-06T00:00:00Z',\n description: 'A test character for BDD scenarios',\n security_status: 5.0,\n title: 'Test Pilot',\n ...overrides,\n };\n }\n\n static createCharacterPortrait(\n characterId: number = 1689391488,\n ): CharacterPortrait {\n return {\n px64x64: `https://images.evetech.net/characters/${characterId}/portrait?size=64`,\n px128x128: `https://images.evetech.net/characters/${characterId}/portrait?size=128`,\n px256x256: `https://images.evetech.net/characters/${characterId}/portrait?size=256`,\n px512x512: `https://images.evetech.net/characters/${characterId}/portrait?size=512`,\n };\n }\n\n static createCharacterAttributes(\n overrides: Partial<CharacterAttributes> = {},\n ): CharacterAttributes {\n return {\n charisma: 20,\n intelligence: 24,\n memory: 21,\n perception: 23,\n willpower: 22,\n bonus_remaps: 2,\n last_remap_date: '2023-01-01T00:00:00Z',\n accrued_remap_cooldown_date: '2024-01-01T00:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterSkill(\n overrides: Partial<CharacterSkill> = {},\n ): CharacterSkill {\n return {\n skill_id: 3300,\n skillpoints_in_skill: 256000,\n trained_skill_level: 5,\n active_skill_level: 5,\n ...overrides,\n };\n }\n\n static createCharacterRoles(overrides: Record<string, any> = {}): any {\n return {\n roles: ['Director'],\n roles_at_base: [],\n roles_at_hq: ['Director'],\n roles_at_other: [],\n ...overrides,\n };\n }\n\n static createCorporationHistoryEntry(\n overrides: Record<string, any> = {},\n ): any {\n return {\n corporation_id: 1344654522,\n is_deleted: false,\n record_id: 1,\n start_date: '2020-01-01T00:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterMedal(overrides: Record<string, any> = {}): any {\n return {\n medal_id: 1,\n title: 'Test Medal',\n description: 'A test medal for demonstration',\n corporation_id: 1344654522,\n date: '2023-01-01T00:00:00Z',\n issuer_id: 1689391489,\n reason: 'Outstanding service',\n status: 'public',\n graphics: [\n { part: 1, layer: 0, graphic: 'caldari.1_1', color: -1 },\n { part: 2, layer: 1, graphic: 'caldari.2_3' },\n ],\n ...overrides,\n };\n }\n\n static createCharacterNotification(overrides: Record<string, any> = {}): any {\n return {\n notification_id: 1000001,\n sender_id: 1689391489,\n sender_type: 'character',\n text: 'Test notification',\n timestamp: '2024-01-15T12:00:00Z',\n type: 'AllWarDeclaredMsg',\n is_read: false,\n ...overrides,\n };\n }\n\n // Market test data\n static createMarketPrice(overrides: Record<string, any> = {}): any {\n return {\n type_id: 34,\n average_price: 4.5,\n adjusted_price: 4.55,\n ...overrides,\n };\n }\n\n static createMarketHistory(overrides: Record<string, any> = {}): any {\n return {\n date: '2024-01-15',\n volume: 1000000000,\n order_count: 2500,\n lowest: 4.2,\n highest: 4.8,\n average: 4.5,\n ...overrides,\n };\n }\n\n static createCharacterMarketOrder(overrides: Record<string, any> = {}): any {\n return {\n order_id: 5000000001,\n type_id: 34,\n region_id: 10000002,\n location_id: 60003760,\n range: 'region',\n volume_total: 1000000,\n volume_remain: 750000,\n min_volume: 1,\n price: 4.5,\n is_buy_order: true,\n is_corporation: false,\n duration: 90,\n issued: '2024-01-15T12:00:00Z',\n ...overrides,\n };\n }\n\n static createCharacterOrderHistory(overrides: Record<string, any> = {}): any {\n return {\n order_id: 5000000001,\n type_id: 34,\n region_id: 10000002,\n location_id: 60003760,\n range: 'region',\n volume_total: 1000000,\n volume_remain: 0,\n min_volume: 1,\n price: 4.5,\n is_buy_order: true,\n is_corporation: false,\n duration: 90,\n issued: '2024-01-10T12:00:00Z',\n state: 'expired',\n ...overrides,\n };\n }\n\n // Universe test data\n static createSolarSystem(overrides: Record<string, any> = {}): any {\n return {\n system_id: 30000142,\n name: 'Jita',\n constellation_id: 20000020,\n position: {\n x: -129064861735000000,\n y: 60755306910000000,\n z: 117469227060000000,\n },\n security_status: 0.9459991455078125,\n star_id: 40000001,\n stargates: [50000001, 50000002],\n stations: [60003760, 60003761],\n planets: [\n { planet_id: 40000001, moons: [40000002, 40000003] },\n { planet_id: 40000004, moons: [40000005] },\n ],\n ...overrides,\n };\n }\n\n static createStation(overrides: Record<string, any> = {}): any {\n return {\n station_id: 60003760,\n name: 'Jita IV - Moon 4 - Caldari Navy Assembly Plant',\n owner: 1000035,\n type_id: 52678,\n race_id: 1,\n system_id: 30000142,\n position: { x: 3813196800, y: 1016750000, z: -2305570000 },\n reprocessing_efficiency: 0.5,\n reprocessing_stations_take: 0.05,\n max_dockable_ship_volume: 50000000,\n office_rental_cost: 10000000,\n services: [\n 'bounty-missions',\n 'courier-missions',\n 'interbus',\n 'reprocessing-plant',\n 'market',\n 'stock-exchange',\n ],\n ...overrides,\n };\n }\n\n /** `GET /universe/structures/{structure_id}`: the ID is in the path, not the body. */\n static createStructure(overrides: Record<string, any> = {}): any {\n return {\n name: 'Test Citadel',\n owner_id: 1689391488,\n solar_system_id: 30000142,\n type_id: 35832,\n position: { x: 1000000000, y: 2000000000, z: 3000000000 },\n ...overrides,\n };\n }\n\n /** `GET /universe/types/{type_id}`: the category is on the group, not the type. */\n static createItemType(overrides: Record<string, any> = {}): any {\n return {\n type_id: 34,\n name: 'Tritanium',\n description: 'The most common ore type in the known universe.',\n group_id: 18,\n market_group_id: 1857,\n mass: 1.0,\n volume: 0.01,\n capacity: 0.0,\n portion_size: 1,\n radius: 1.0,\n published: true,\n ...overrides,\n };\n }\n\n static createItemGroup(overrides: Record<string, any> = {}): any {\n return {\n group_id: 18,\n name: 'Mineral',\n category_id: 4,\n published: true,\n types: [34, 35, 36, 37, 38, 39, 40, 11399],\n ...overrides,\n };\n }\n\n /** `GET /universe/stars/{star_id}`: the star ID is in the path, not the body. */\n static createStar(overrides: Record<string, any> = {}): any {\n return {\n name: 'Jita - Star',\n type_id: 3802,\n solar_system_id: 30000142,\n age: 4600000000,\n luminosity: 0.06575,\n radius: 62140000,\n spectral_class: 'K2 V',\n temperature: 4567,\n ...overrides,\n };\n }\n\n static createPlanet(overrides: Record<string, any> = {}): any {\n return {\n planet_id: 40000004,\n name: 'Jita IV',\n type_id: 11,\n system_id: 30000142,\n position: { x: 150000000000, y: 0, z: 0 },\n ...overrides,\n };\n }\n\n /**\n * `GET /characters/{character_id}/search`: one list per requested category,\n * keyed by the singular category name.\n */\n static createSearchResults(overrides: Record<string, any> = {}): any {\n return {\n solar_system: [],\n station: [],\n structure: [],\n character: [],\n corporation: [],\n alliance: [],\n ...overrides,\n };\n }\n\n static createEntityName(overrides: Record<string, any> = {}): any {\n return {\n id: 30000142,\n name: 'Jita',\n category: 'solar_system',\n ...overrides,\n };\n }\n\n // Corporation test data\n static createCorporationMemberRoles(\n overrides: Record<string, any> = {},\n ): any {\n return {\n character_id: 1689391488,\n roles: ['Director', 'Personnel_Manager'],\n grantable_roles: ['Hangar_Take_1', 'Hangar_Take_2'],\n roles_at_hq: ['Director'],\n roles_at_base: [],\n roles_at_other: [],\n ...overrides,\n };\n }\n\n static createCorporationAsset(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000000001,\n type_id: 587,\n quantity: 100,\n location_id: 60003760,\n location_flag: 'CorpSAG1',\n location_type: 'station',\n is_singleton: false,\n ...overrides,\n };\n }\n\n static createCorporationStructure(overrides: Record<string, any> = {}): any {\n return {\n structure_id: 1021975535893,\n corporation_id: 1344654522,\n type_id: 35832,\n system_id: 30000142,\n profile_id: 101853,\n fuel_expires: '2024-02-01T12:00:00Z',\n state_timer_start: '2024-01-15T12:00:00Z',\n state_timer_end: '2024-01-22T12:00:00Z',\n state: 'shield_vulnerable',\n ...overrides,\n };\n }\n\n static createCorporationWallet(overrides: Record<string, any> = {}): any {\n return {\n division: 1,\n balance: 1000000000.0,\n ...overrides,\n };\n }\n\n static createWalletJournalEntry(overrides: Record<string, any> = {}): any {\n return {\n id: 1000000001,\n date: '2024-01-15T12:00:00Z',\n ref_type: 'market_transaction',\n first_party_id: 1344654522,\n amount: 1000000.0,\n balance: 1000000000.0,\n reason: 'Market transaction',\n description: 'Sold items on market',\n ...overrides,\n };\n }\n\n // Fleet test data\n\n /** `GET /fleets/{fleet_id}`: the fleet ID is in the path, not the body. */\n static createFleetInfo(overrides: Record<string, any> = {}): any {\n return {\n is_free_move: false,\n is_registered: true,\n is_voice_enabled: true,\n motd: 'Fleet operations in progress',\n ...overrides,\n };\n }\n\n /**\n * A fleet member as `GET /fleets/{fleet_id}/members` sends it. The default\n * is the fleet commander, whom ESI places in no wing or squad (-1).\n */\n static createFleetMember(overrides: Record<string, any> = {}): any {\n return {\n character_id: 1689391488,\n join_time: '2024-01-15T18:00:00Z',\n role: 'fleet_commander',\n role_name: 'Fleet Commander (Boss)',\n ship_type_id: 17918,\n solar_system_id: 30000142,\n squad_id: -1,\n station_id: 60003760,\n takes_fleet_warp: true,\n wing_id: -1,\n ...overrides,\n };\n }\n\n /** A wing as `GET /fleets/{fleet_id}/wings` sends it: keyed by `id`. */\n static createFleetWing(overrides: Record<string, any> = {}): any {\n return {\n id: 2073711261968,\n name: 'Wing 1',\n squads: [{ id: 3129411261968, name: 'Squad 1' }],\n ...overrides,\n };\n }\n\n // Industry test data\n static createIndustryJob(overrides: Record<string, any> = {}): any {\n return {\n job_id: 1000001,\n installer_id: 1689391488,\n facility_id: 60003760,\n station_id: 60003760,\n activity_id: 1,\n blueprint_id: 1000000001,\n blueprint_type_id: 17918,\n blueprint_location_id: 60003760,\n output_location_id: 60003760,\n product_type_id: 17918,\n runs: 1,\n status: 'active',\n duration: 86400,\n start_date: '2024-01-15T12:00:00Z',\n end_date: '2024-01-16T12:00:00Z',\n ...overrides,\n };\n }\n\n /**\n * A corporation industry job as `GET /corporations/{corporation_id}/industry/jobs`\n * sends it: placed by `location_id`, where a character job has `station_id`.\n */\n static createCorporationIndustryJob(\n overrides: Record<string, any> = {},\n ): any {\n return {\n job_id: 2000001,\n installer_id: 1689391488,\n facility_id: 1021975535893,\n location_id: 1021975535893,\n activity_id: 1,\n blueprint_id: 1000000001,\n blueprint_type_id: 17918,\n blueprint_location_id: 1021975535893,\n output_location_id: 1021975535893,\n product_type_id: 17918,\n runs: 1,\n status: 'active',\n duration: 86400,\n start_date: '2024-01-15T12:00:00Z',\n end_date: '2024-01-16T12:00:00Z',\n ...overrides,\n };\n }\n\n static createBlueprint(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000001,\n type_id: 17918,\n location_id: 60003760,\n location_flag: 'Hangar',\n quantity: -2,\n time_efficiency: 10,\n material_efficiency: 10,\n runs: 100,\n ...overrides,\n };\n }\n\n static createCharacterAsset(overrides: Record<string, any> = {}): any {\n return {\n item_id: 1000000002,\n type_id: 34,\n quantity: 1000000,\n location_id: 60003760,\n location_flag: 'Hangar',\n location_type: 'station',\n is_singleton: false,\n ...overrides,\n };\n }\n\n static createCharacterLocation(overrides: Record<string, any> = {}): any {\n return {\n solar_system_id: 30000142,\n station_id: 60003760,\n structure_id: undefined,\n ...overrides,\n };\n }\n\n static createCharacterSkills(overrides: Record<string, any> = {}): any {\n return {\n skills: [\n {\n skill_id: 3300,\n skillpoints_in_skill: 256000,\n trained_skill_level: 5,\n active_skill_level: 5,\n },\n {\n skill_id: 3301,\n skillpoints_in_skill: 128000,\n trained_skill_level: 4,\n active_skill_level: 4,\n },\n ],\n total_sp: 384000,\n unallocated_sp: 0,\n ...overrides,\n };\n }\n\n // Corporation test data\n\n /** `GET /corporations/{corporation_id}`: the ID is in the path, not the body. */\n static createCorporationInfo(\n overrides: Partial<CorporationInfo> = {},\n ): CorporationInfo {\n return {\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n ceo_id: 1689391488,\n creator_id: 1689391488,\n member_count: 15000,\n tax_rate: 0.1,\n alliance_id: 99005338,\n date_founded: '2003-05-06T00:00:00Z',\n description: 'The founding corporation of Goonswarm Federation',\n home_station_id: 60003760,\n shares: 1000,\n // eslint-disable-next-line sonarjs/no-clear-text-protocols\n url: 'http://www.goonfleet.com/',\n faction_id: 500001,\n war_eligible: true,\n ...overrides,\n };\n }\n\n // Market test data\n static createMarketOrder(overrides: Partial<MarketOrder> = {}): MarketOrder {\n return {\n order_id: 123456789,\n type_id: 34, // Tritanium\n location_id: 60003760, // Jita 4-4\n volume_total: 1000000,\n volume_remain: 500000,\n min_volume: 1,\n price: 5.5,\n is_buy_order: false,\n system_id: 30000142,\n duration: 90,\n issued: '2023-12-01T12:00:00Z',\n range: 'region',\n ...overrides,\n };\n }\n\n // Wallet test data\n static createWalletTransaction(\n overrides: Partial<WalletTransaction> = {},\n ): WalletTransaction {\n return {\n transaction_id: 123456789,\n date: '2023-12-01T12:00:00Z',\n type_id: 34,\n location_id: 60003760,\n unit_price: 5.5,\n quantity: 1000,\n client_id: 1689391488,\n is_buy: false,\n is_personal: true,\n journal_ref_id: 987654321,\n ...overrides,\n };\n }\n\n /**\n * A corporation wallet transaction as\n * `GET /corporations/{corporation_id}/wallets/{division}/transactions` sends\n * it: no is_personal.\n */\n static createCorporationWalletTransaction(\n overrides: Partial<CorporationWalletTransaction> = {},\n ): CorporationWalletTransaction {\n return {\n transaction_id: 123456790,\n date: '2023-12-01T12:00:00Z',\n type_id: 34,\n location_id: 60003760,\n unit_price: 5.5,\n quantity: 1000,\n client_id: 1689391488,\n is_buy: true,\n journal_ref_id: 987654322,\n ...overrides,\n };\n }\n\n // Contract test data\n static createContract(overrides: Partial<Contract> = {}): Contract {\n return {\n contract_id: 123456789,\n issuer_id: 1689391488,\n issuer_corporation_id: 1344654522,\n assignee_id: 987654321,\n acceptor_id: 0,\n start_location_id: 60003760,\n end_location_id: 60008494,\n type: 'courier',\n status: 'outstanding',\n title: 'Test Courier Contract',\n for_corporation: false,\n availability: 'public',\n date_issued: '2023-12-01T12:00:00Z',\n date_expired: '2023-12-08T12:00:00Z',\n days_to_complete: 3,\n price: 1000000,\n reward: 500000,\n collateral: 10000000,\n volume: 1000,\n ...overrides,\n };\n }\n\n static createPublicContract(\n overrides: Partial<PublicContract> = {},\n ): PublicContract {\n return {\n contract_id: 123456790,\n issuer_id: 1689391488,\n issuer_corporation_id: 1344654522,\n start_location_id: 60003760,\n type: 'item_exchange',\n title: 'Test Item Exchange Contract',\n for_corporation: false,\n date_issued: '2023-12-01T12:00:00Z',\n date_expired: '2023-12-15T12:00:00Z',\n price: 50000000,\n volume: 10,\n ...overrides,\n };\n }\n\n // Sovereignty test data (Equinox)\n static createSovereigntySystem(\n overrides: Partial<SovereigntySystem> = {},\n ): SovereigntySystem {\n return {\n solar_systems: [\n {\n solar_system_id: 30000142,\n claim: {\n alliance: {\n alliance_id: 99005338,\n corporation_id: 1344654522,\n claimed_since: '2020-10-08T00:38:16Z',\n is_capital_system: false,\n development: {\n activity_defense_multiplier: 4.5,\n military_level: 5,\n industrial_level: 3,\n strategic_level: 1,\n },\n },\n },\n },\n ],\n ...overrides,\n };\n }\n\n static createSovereigntyHub(\n overrides: Partial<SovereigntyHub> = {},\n ): SovereigntyHub {\n return {\n structure_id: 100000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n online: true,\n remaining_reagents: 500,\n installed_upgrades: [1, 2, 3],\n ...overrides,\n };\n }\n\n static createOrbitalSkyhook(\n overrides: Partial<OrbitalSkyhook> = {},\n ): OrbitalSkyhook {\n return {\n structure_id: 200000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n online: true,\n reagent_silo_capacity: 1000,\n reagent_silo_level: 750,\n ...overrides,\n };\n }\n\n static createRaidableSkyhook(\n overrides: Partial<RaidableSkyhook> = {},\n ): RaidableSkyhook {\n return {\n structure_id: 200000001,\n system_id: 30000142,\n corporation_id: 98000002,\n alliance_id: 99000006,\n raidable_at: '2026-05-20T12:00:00Z',\n is_raidable: true,\n ...overrides,\n };\n }\n\n static createMercenaryDen(\n overrides: Partial<MercenaryDen> = {},\n ): MercenaryDen {\n return {\n den_id: 5001,\n system_id: 30000142,\n constellation_id: 20000125,\n region_id: 10000002,\n development_level: 3,\n anarchy_level: 2,\n active_operations: 1,\n ...overrides,\n };\n }\n\n static createMercenaryTacticalOperation(\n overrides: Partial<MercenaryTacticalOperation> = {},\n ): MercenaryTacticalOperation {\n return {\n operation_id: 7001,\n den_id: 5001,\n system_id: 30000142,\n site_type: 'assault',\n status: 'active',\n started_at: '2026-05-20T10:00:00Z',\n expires_at: '2026-05-20T22:00:00Z',\n ...overrides,\n };\n }\n\n static createAccessListEntry(\n overrides: Partial<AccessListEntry> = {},\n ): AccessListEntry {\n return {\n entity_id: 1689391488,\n entity_type: 'character',\n access_type: 'allowed',\n ...overrides,\n };\n }\n\n // Error test data\n static createError(statusCode: number, message?: string): EsiError {\n const defaultMessages: Record<number, string> = {\n 400: 'Bad request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Resource not found',\n 429: 'Rate limit exceeded',\n 500: 'Internal server error',\n 503: 'Service unavailable',\n };\n return new EsiError(\n statusCode,\n // eslint-disable-next-line security/detect-object-injection\n message || defaultMessages[statusCode] || 'Unknown error',\n );\n }\n\n // Test scenarios\n static createTestScenarios() {\n return {\n alliances: [\n { id: 99005338, name: 'Goonswarm Federation', ticker: 'CONDI' },\n { id: 99000001, name: 'Test Alliance Please Ignore', ticker: 'TEST' },\n { id: 99000002, name: 'Brave Collective', ticker: 'BRAVE' },\n { id: 99000003, name: 'Pandemic Legion', ticker: 'PL' },\n { id: 99000004, name: 'Northern Coalition.', ticker: 'NC.' },\n ],\n characters: [\n {\n id: 1689391488,\n name: 'Test Character',\n corp: 1344654522,\n alliance: 99005338,\n },\n {\n id: 123456789,\n name: 'Demo Pilot',\n corp: 987654321,\n alliance: 99000001,\n },\n {\n id: 111111111,\n name: 'Alpha Tester',\n corp: 222222222,\n alliance: 99000002,\n },\n {\n id: 333333333,\n name: 'Beta User',\n corp: 444444444,\n alliance: 99000003,\n },\n {\n id: 555555555,\n name: 'Gamma Pilot',\n corp: 666666666,\n alliance: 99000004,\n },\n ],\n corporations: [\n {\n id: 1344654522,\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n alliance: 99005338,\n },\n {\n id: 987654321,\n name: 'Test Corp Please Ignore',\n ticker: 'TCPI',\n alliance: 99000001,\n },\n {\n id: 222222222,\n name: 'Brave Newbies Inc.',\n ticker: 'BNI',\n alliance: 99000002,\n },\n {\n id: 444444444,\n name: 'Sniggerdly',\n ticker: 'SNIGG',\n alliance: 99000003,\n },\n {\n id: 666666666,\n name: 'Tactical Narcotics Team',\n ticker: 'TNT',\n alliance: 99000004,\n },\n ],\n errorScenarios: [\n { statusCode: 0, label: 'network_error', probability: 0.1 },\n { statusCode: 429, label: 'rate_limited', probability: 0.05 },\n { statusCode: 500, label: 'server_error', probability: 0.02 },\n { statusCode: 504, label: 'timeout', probability: 0.03 },\n { statusCode: 404, label: 'not_found', probability: 0.01 },\n ],\n };\n }\n\n // Performance test data\n static createPerformanceTestData(\n size: 'small' | 'medium' | 'large' = 'medium',\n ) {\n const sizes = {\n small: { alliances: 5, characters: 20, corporations: 10 },\n medium: { alliances: 20, characters: 100, corporations: 50 },\n large: { alliances: 100, characters: 1000, corporations: 500 },\n };\n\n // eslint-disable-next-line security/detect-object-injection\n const config = sizes[size];\n const data = {\n alliances: [] as AllianceInfo[],\n characters: [] as CharacterInfo[],\n corporations: [] as CorporationInfo[],\n };\n\n // Generate alliances\n for (let i = 1; i <= config.alliances; i++) {\n data.alliances.push(\n this.createAllianceInfo({\n alliance_id: 99000000 + i,\n name: `Test Alliance ${i}`,\n ticker: `TST${i.toString().padStart(2, '0')}`,\n creator_id: 1000000 + i,\n }),\n );\n }\n\n // Generate corporations\n for (let i = 1; i <= config.corporations; i++) {\n const allianceIndex = Math.floor(\n (i - 1) / (config.corporations / config.alliances),\n );\n data.corporations.push(\n this.createCorporationInfo({\n corporation_id: 2000000 + i,\n name: `Test Corporation ${i}`,\n ticker: `TC${i.toString().padStart(3, '0')}`,\n // eslint-disable-next-line security/detect-object-injection\n alliance_id: data.alliances[allianceIndex]?.alliance_id,\n ceo_id: 3000000 + i,\n }),\n );\n }\n\n // Generate characters\n for (let i = 1; i <= config.characters; i++) {\n const corpIndex = Math.floor(\n (i - 1) / (config.characters / config.corporations),\n );\n // eslint-disable-next-line security/detect-object-injection\n const corp = data.corporations[corpIndex];\n data.characters.push(\n this.createCharacterInfo({\n character_id: 3000000 + i,\n name: `Test Character ${i}`,\n corporation_id: corp?.corporation_id || 2000001,\n alliance_id: corp?.alliance_id,\n }),\n );\n }\n\n return data;\n }\n\n // Realistic test data with relationships\n static createRealisticTestData() {\n const goonswarm = this.createAllianceInfo({\n alliance_id: 99005338,\n name: 'Goonswarm Federation',\n ticker: 'CONDI',\n creator_id: 1689391488,\n creator_corporation_id: 1344654522,\n executor_corporation_id: 1344654522,\n date_founded: '2010-06-01T00:00:00Z',\n });\n\n const goonwaffe = this.createCorporationInfo({\n corporation_id: 1344654522,\n name: 'GoonWaffe',\n ticker: 'GEWNS',\n alliance_id: 99005338,\n ceo_id: 1689391488,\n creator_id: 1689391488,\n member_count: 15000,\n date_founded: '2003-05-06T00:00:00Z',\n });\n\n const testCharacter = this.createCharacterInfo({\n character_id: 1689391488,\n name: 'The Mittani',\n corporation_id: 1344654522,\n alliance_id: 99005338,\n birthday: '2003-05-06T00:00:00Z',\n });\n\n return {\n alliances: [goonswarm],\n corporations: [goonwaffe],\n characters: [testCharacter],\n relationships: {\n allianceExecutor: { alliance: 99005338, corporation: 1344654522 },\n corporationCEO: { corporation: 1344654522, character: 1689391488 },\n characterMembership: {\n character: 1689391488,\n corporation: 1344654522,\n alliance: 99005338,\n },\n },\n };\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { ContractSchema, ContractItemSchema, ContractBidSchema } from '../schemas/contracts';
|
|
2
|
+
import { ContractSchema, PublicContractSchema, ContractItemSchema, PublicContractItemSchema, ContractBidSchema, PublicContractBidSchema } from '../schemas/contracts';
|
|
3
3
|
export type Contract = z.infer<typeof ContractSchema>;
|
|
4
|
+
export type PublicContract = z.infer<typeof PublicContractSchema>;
|
|
4
5
|
export type ContractItem = z.infer<typeof ContractItemSchema>;
|
|
6
|
+
export type PublicContractItem = z.infer<typeof PublicContractItemSchema>;
|
|
5
7
|
export type ContractBid = z.infer<typeof ContractBidSchema>;
|
|
8
|
+
export type PublicContractBid = z.infer<typeof PublicContractBidSchema>;
|
|
6
9
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/types/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/types/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { CorporationProjectSchema, CorporationProjectContributionSchema, CorporationProjectContributorSchema } from '../schemas/corporation-projects';
|
|
2
|
+
import { CorporationProjectCursorSchema, CorporationProjectSummarySchema, CorporationProjectsListingSchema, CorporationProjectSchema, CorporationProjectContributionSchema, CorporationProjectContributorSchema, CorporationProjectContributorsListingSchema } from '../schemas/corporation-projects';
|
|
3
|
+
export type CorporationProjectCursor = z.infer<typeof CorporationProjectCursorSchema>;
|
|
4
|
+
export type CorporationProjectSummary = z.infer<typeof CorporationProjectSummarySchema>;
|
|
5
|
+
export type CorporationProjectsListing = z.infer<typeof CorporationProjectsListingSchema>;
|
|
3
6
|
export type CorporationProject = z.infer<typeof CorporationProjectSchema>;
|
|
4
7
|
export type CorporationProjectContribution = z.infer<typeof CorporationProjectContributionSchema>;
|
|
5
8
|
export type CorporationProjectContributor = z.infer<typeof CorporationProjectContributorSchema>;
|
|
9
|
+
export type CorporationProjectContributorsListing = z.infer<typeof CorporationProjectContributorsListingSchema>;
|
|
6
10
|
//# sourceMappingURL=corporation-projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corporation-projects.d.ts","sourceRoot":"","sources":["../../src/types/corporation-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,oCAAoC,EACpC,mCAAmC,
|
|
1
|
+
{"version":3,"file":"corporation-projects.d.ts","sourceRoot":"","sources":["../../src/types/corporation-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,oCAAoC,EACpC,mCAAmC,EACnC,2CAA2C,EAC5C,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,oCAAoC,CAC5C,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AACF,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,2CAA2C,CACnD,CAAC"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { FactionWarfareStatsSchema, FactionWarfareCharacterStatsSchema, FactionWarfareSystemSchema, FactionWarfareWarSchema, FactionWarfareLeaderboardSchema, FactionWarfareCorporationStatsSchema } from '../schemas/faction-warfare';
|
|
2
|
+
import { FactionWarfareStatsSchema, FactionWarfareCharacterStatsSchema, FactionWarfareSystemSchema, FactionWarfareWarSchema, FactionWarfareLeaderboardSchema, FactionWarfareFactionLeaderboardSchema, FactionWarfareCharacterLeaderboardSchema, FactionWarfareCorporationLeaderboardSchema, FactionWarfareCorporationStatsSchema } from '../schemas/faction-warfare';
|
|
3
3
|
export type FactionWarfareStats = z.infer<typeof FactionWarfareStatsSchema>;
|
|
4
4
|
export type FactionWarfareCharacterStats = z.infer<typeof FactionWarfareCharacterStatsSchema>;
|
|
5
5
|
export type FactionWarfareSystem = z.infer<typeof FactionWarfareSystemSchema>;
|
|
6
6
|
export type FactionWarfareWar = z.infer<typeof FactionWarfareWarSchema>;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use FactionWarfareFactionLeaderboard,
|
|
9
|
+
* FactionWarfareCharacterLeaderboard or FactionWarfareCorporationLeaderboard.
|
|
10
|
+
* Each of those is assignable to this type.
|
|
11
|
+
*/
|
|
7
12
|
export type FactionWarfareLeaderboard = z.infer<typeof FactionWarfareLeaderboardSchema>;
|
|
13
|
+
export type FactionWarfareFactionLeaderboard = z.infer<typeof FactionWarfareFactionLeaderboardSchema>;
|
|
14
|
+
export type FactionWarfareCharacterLeaderboard = z.infer<typeof FactionWarfareCharacterLeaderboardSchema>;
|
|
15
|
+
export type FactionWarfareCorporationLeaderboard = z.infer<typeof FactionWarfareCorporationLeaderboardSchema>;
|
|
8
16
|
export type FactionWarfareCorporationStats = z.infer<typeof FactionWarfareCorporationStatsSchema>;
|
|
9
17
|
//# sourceMappingURL=faction-warfare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faction-warfare.d.ts","sourceRoot":"","sources":["../../src/types/faction-warfare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"faction-warfare.d.ts","sourceRoot":"","sources":["../../src/types/faction-warfare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,uBAAuB,EAEvB,+BAA+B,EAC/B,sCAAsC,EACtC,wCAAwC,EACxC,0CAA0C,EAC1C,oCAAoC,EACrC,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAE7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,wCAAwC,CAChD,CAAC;AACF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,0CAA0C,CAClD,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,oCAAoC,CAC5C,CAAC"}
|