@lgriffin/esi.ts 9.4.0 → 9.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +388 -388
  2. package/LICENSE +26 -26
  3. package/README.md +1030 -1018
  4. package/dist/EsiClient.d.ts +4 -0
  5. package/dist/EsiClient.d.ts.map +1 -1
  6. package/dist/clients/CosmeticsClient.d.ts +11 -0
  7. package/dist/clients/CosmeticsClient.d.ts.map +1 -0
  8. package/dist/clients/MercenaryClient.d.ts +19 -1
  9. package/dist/clients/MercenaryClient.d.ts.map +1 -1
  10. package/dist/clients/ParagonHubClient.d.ts +13 -0
  11. package/dist/clients/ParagonHubClient.d.ts.map +1 -0
  12. package/dist/clients/SkyhooksClient.d.ts +19 -1
  13. package/dist/clients/SkyhooksClient.d.ts.map +1 -1
  14. package/dist/core/ApiClient.d.ts.map +1 -1
  15. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  16. package/dist/core/ClientRegistry.d.ts +5 -3
  17. package/dist/core/ClientRegistry.d.ts.map +1 -1
  18. package/dist/core/cache/cacheKey.d.ts +3 -0
  19. package/dist/core/cache/cacheKey.d.ts.map +1 -0
  20. package/dist/core/endpoints/cosmeticsEndpoints.d.ts +52 -0
  21. package/dist/core/endpoints/cosmeticsEndpoints.d.ts.map +1 -0
  22. package/dist/core/endpoints/mercenaryEndpoints.d.ts +45 -0
  23. package/dist/core/endpoints/mercenaryEndpoints.d.ts.map +1 -1
  24. package/dist/core/endpoints/paragonHubEndpoints.d.ts +163 -0
  25. package/dist/core/endpoints/paragonHubEndpoints.d.ts.map +1 -0
  26. package/dist/core/endpoints/skyhookEndpoints.d.ts +64 -0
  27. package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
  28. package/dist/core/requestPipeline/cachePolicy.d.ts +3 -3
  29. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  30. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  31. package/dist/core/requestPipeline/statusHandling.d.ts +2 -2
  32. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  33. package/dist/errors.js.map +1 -1
  34. package/dist/errors.mjs.map +1 -1
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +497 -49
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +495 -49
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/schemas/cosmetics.d.ts +58 -0
  42. package/dist/schemas/cosmetics.d.ts.map +1 -0
  43. package/dist/schemas/index.d.ts +2 -0
  44. package/dist/schemas/index.d.ts.map +1 -1
  45. package/dist/schemas/index.js +1461 -1191
  46. package/dist/schemas/index.js.map +1 -1
  47. package/dist/schemas/index.mjs +1427 -1191
  48. package/dist/schemas/index.mjs.map +1 -1
  49. package/dist/schemas/mercenary.d.ts +54 -0
  50. package/dist/schemas/mercenary.d.ts.map +1 -1
  51. package/dist/schemas/paragon-hub.d.ts +96 -0
  52. package/dist/schemas/paragon-hub.d.ts.map +1 -0
  53. package/dist/schemas/skyhooks.d.ts +101 -0
  54. package/dist/schemas/skyhooks.d.ts.map +1 -1
  55. package/dist/sde/index.js +7 -5100
  56. package/dist/sde/index.js.map +1 -1
  57. package/dist/sde/index.mjs +12 -5134
  58. package/dist/sde/index.mjs.map +1 -1
  59. package/dist/sde/memory.d.ts +8 -0
  60. package/dist/sde/memory.d.ts.map +1 -0
  61. package/dist/sde/memory.js +1100 -0
  62. package/dist/sde/memory.js.map +1 -0
  63. package/dist/sde/memory.mjs +1064 -0
  64. package/dist/sde/memory.mjs.map +1 -0
  65. package/dist/testing/index.js.map +1 -1
  66. package/dist/testing/index.mjs.map +1 -1
  67. package/dist/types/api-responses.d.ts +2 -0
  68. package/dist/types/api-responses.d.ts.map +1 -1
  69. package/dist/types/cosmetics.d.ts +8 -0
  70. package/dist/types/cosmetics.d.ts.map +1 -0
  71. package/dist/types/mercenary.d.ts +3 -1
  72. package/dist/types/mercenary.d.ts.map +1 -1
  73. package/dist/types/paragon-hub.d.ts +8 -0
  74. package/dist/types/paragon-hub.d.ts.map +1 -0
  75. package/dist/types/skyhooks.d.ts +3 -1
  76. package/dist/types/skyhooks.d.ts.map +1 -1
  77. package/package.json +289 -282
@@ -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":"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","names":[]}
1
+ {"version":3,"sources":["../../src/core/logger/logger.ts","../../src/core/util/error.ts","../../src/testing/TestDataFactory.ts"],"sourcesContent":["import pino from 'pino';\r\nimport { ILogger } from './ILogger';\r\n\r\nconst pinoLogger = pino({ level: process.env.ESI_LOG_LEVEL || 'warn' });\r\n\r\nconst logger: ILogger = {\r\n info: (msg: string) => {\r\n pinoLogger.info(msg);\r\n },\r\n warn: (msg: string) => {\r\n pinoLogger.warn(msg);\r\n },\r\n error: (msg: string) => {\r\n pinoLogger.error(msg);\r\n },\r\n debug: (msg: string) => {\r\n pinoLogger.debug(msg);\r\n },\r\n};\r\n\r\nexport default logger;\r\n","const SENSITIVE_PARAMS = [\r\n 'token',\r\n 'access_token',\r\n 'api_key',\r\n 'refresh_token',\r\n 'client_secret',\r\n 'code',\r\n 'key',\r\n 'secret',\r\n 'auth',\r\n 'password',\r\n 'bearer',\r\n];\r\n\r\nexport function sanitizeUrl(url?: string): string | undefined {\r\n if (!url) return url;\r\n try {\r\n const parsed = new URL(url);\r\n for (const param of SENSITIVE_PARAMS) {\r\n if (parsed.searchParams.has(param)) {\r\n parsed.searchParams.set(param, '[REDACTED]');\r\n }\r\n }\r\n return parsed.toString();\r\n } catch {\r\n const qIndex = url.indexOf('?');\r\n return qIndex >= 0 ? url.substring(0, qIndex) + '?[params-redacted]' : url;\r\n }\r\n}\r\n\r\nexport class EsiError extends Error {\r\n public readonly url?: string;\r\n\r\n constructor(\r\n public readonly statusCode: number,\r\n message: string,\r\n url?: string,\r\n public readonly requestId?: string,\r\n ) {\r\n super(message);\r\n this.name = 'EsiError';\r\n this.url = sanitizeUrl(url);\r\n }\r\n\r\n isRateLimited(): boolean {\r\n return this.statusCode === 420 || this.statusCode === 429;\r\n }\r\n\r\n isNotFound(): boolean {\r\n return this.statusCode === 404;\r\n }\r\n\r\n isUnauthorized(): boolean {\r\n return this.statusCode === 401;\r\n }\r\n\r\n isForbidden(): boolean {\r\n return this.statusCode === 403;\r\n }\r\n\r\n isServerError(): boolean {\r\n return this.statusCode >= 500;\r\n }\r\n\r\n isTimeout(): boolean {\r\n return this.statusCode === 0;\r\n }\r\n\r\n get retryable(): boolean {\r\n return (\r\n this.statusCode === 0 ||\r\n this.statusCode === 420 ||\r\n this.statusCode === 429 ||\r\n this.statusCode === 502 ||\r\n this.statusCode === 503 ||\r\n this.statusCode === 504\r\n );\r\n }\r\n}\r\n\r\nexport function isEsiError(error: unknown): error is EsiError {\r\n return error instanceof EsiError;\r\n}\r\n\r\nexport function isRateLimited(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.isRateLimited();\r\n}\r\n\r\nexport function isNotFound(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.isNotFound();\r\n}\r\n\r\nexport function isUnauthorized(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.isUnauthorized();\r\n}\r\n\r\nexport function isForbidden(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.isForbidden();\r\n}\r\n\r\nexport function isServerError(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.isServerError();\r\n}\r\n\r\nexport class TimeoutError extends EsiError {\r\n constructor(\r\n public readonly timeoutMs: number,\r\n url?: string,\r\n requestId?: string,\r\n ) {\r\n super(0, `Request timed out after ${timeoutMs}ms`, url, requestId);\r\n this.name = 'TimeoutError';\r\n }\r\n}\r\n\r\nexport function isTimeout(error: unknown): error is TimeoutError {\r\n return error instanceof TimeoutError;\r\n}\r\n\r\nexport function isRetryable(error: unknown): error is EsiError {\r\n return error instanceof EsiError && error.retryable;\r\n}\r\n\r\n// Re-export CircuitOpenError for the type guard — avoid forcing consumers\r\n// to import from the circuitBreaker subpath just for error checking.\r\nimport { CircuitOpenError } from '../circuitBreaker/CircuitBreaker';\r\n\r\nexport function isCircuitOpen(error: unknown): error is CircuitOpenError {\r\n return error instanceof CircuitOpenError;\r\n}\r\n\r\nexport const buildError = (\r\n message: string,\r\n type: string = 'ERROR',\r\n url?: string,\r\n): Error => {\r\n const error = new Error(`[${type}] ${message}`);\r\n if (url) {\r\n (error as Error & { url: string }).url = url;\r\n }\r\n return error;\r\n};\r\n\r\nexport type ValidationDirection = 'request' | 'response';\r\n\r\nexport class EsiValidationError extends EsiError {\r\n public readonly validationError: unknown;\r\n public readonly direction: ValidationDirection;\r\n\r\n constructor(\r\n url: string,\r\n zodError: unknown,\r\n requestId?: string,\r\n direction: ValidationDirection = 'response',\r\n ) {\r\n const safeUrl = sanitizeUrl(url) ?? url;\r\n const label = direction === 'request' ? 'Request body' : 'Response';\r\n super(0, `${label} validation failed for ${safeUrl}`, url, requestId);\r\n this.name = 'EsiValidationError';\r\n this.validationError = zodError;\r\n this.direction = direction;\r\n }\r\n}\r\n\r\nexport function isValidationError(error: unknown): error is EsiValidationError {\r\n return error instanceof EsiValidationError;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AllianceInfo,\r\n CharacterInfo,\r\n CorporationInfo,\r\n AllianceContact,\r\n AllianceContactLabel,\r\n CharacterPortrait,\r\n CharacterAttributes,\r\n CharacterSkill,\r\n MarketOrder,\r\n WalletTransaction,\r\n Contract,\r\n SovereigntySystem,\r\n SovereigntyHub,\r\n OrbitalSkyhook,\r\n RaidableSkyhook,\r\n MercenaryDen,\r\n MercenaryTacticalOperation,\r\n AccessListEntry,\r\n} from '../types/api-responses';\r\nimport { EsiError } from '../core/util/error';\r\n\r\nexport class TestDataFactory {\r\n // Alliance test data\r\n static createAllianceInfo(\r\n overrides: Partial<AllianceInfo> = {},\r\n ): AllianceInfo {\r\n return {\r\n alliance_id: 99005338,\r\n name: 'Goonswarm Federation',\r\n ticker: 'CONDI',\r\n creator_id: 1689391488,\r\n creator_corporation_id: 1344654522,\r\n executor_corporation_id: 1344654522,\r\n date_founded: '2010-06-01T00:00:00Z',\r\n faction_id: 500001,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createAllianceContact(\r\n overrides: Partial<AllianceContact> = {},\r\n ): AllianceContact {\r\n return {\r\n contact_id: 1689391488,\r\n contact_type: 'character',\r\n standing: 10.0,\r\n label_ids: [1, 2],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createAllianceContactLabel(\r\n overrides: Partial<AllianceContactLabel> = {},\r\n ): AllianceContactLabel {\r\n return {\r\n label_id: 1,\r\n label_name: 'Friendly',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Character test data\r\n static createCharacterInfo(\r\n overrides: Partial<CharacterInfo> = {},\r\n ): CharacterInfo {\r\n return {\r\n character_id: 1689391488,\r\n name: 'Test Character',\r\n corporation_id: 1344654522,\r\n alliance_id: 99005338,\r\n bloodline_id: 4,\r\n race_id: 1,\r\n gender: 'male',\r\n birthday: '2003-05-06T00:00:00Z',\r\n description: 'A test character for BDD scenarios',\r\n security_status: 5.0,\r\n title: 'Test Pilot',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterPortrait(\r\n characterId: number = 1689391488,\r\n ): CharacterPortrait {\r\n return {\r\n px64x64: `https://images.evetech.net/characters/${characterId}/portrait?size=64`,\r\n px128x128: `https://images.evetech.net/characters/${characterId}/portrait?size=128`,\r\n px256x256: `https://images.evetech.net/characters/${characterId}/portrait?size=256`,\r\n px512x512: `https://images.evetech.net/characters/${characterId}/portrait?size=512`,\r\n };\r\n }\r\n\r\n static createCharacterAttributes(\r\n overrides: Partial<CharacterAttributes> = {},\r\n ): CharacterAttributes {\r\n return {\r\n charisma: 20,\r\n intelligence: 24,\r\n memory: 21,\r\n perception: 23,\r\n willpower: 22,\r\n bonus_remaps: 2,\r\n last_remap_date: '2023-01-01T00:00:00Z',\r\n accrued_remap_cooldown_date: '2024-01-01T00:00:00Z',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterSkill(\r\n overrides: Partial<CharacterSkill> = {},\r\n ): CharacterSkill {\r\n return {\r\n skill_id: 3300,\r\n skillpoints_in_skill: 256000,\r\n trained_skill_level: 5,\r\n active_skill_level: 5,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterRoles(overrides: Record<string, any> = {}): any {\r\n return {\r\n roles: ['Director'],\r\n roles_at_base: [],\r\n roles_at_hq: ['Director'],\r\n roles_at_other: [],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCorporationHistoryEntry(\r\n overrides: Record<string, any> = {},\r\n ): any {\r\n return {\r\n corporation_id: 1344654522,\r\n is_deleted: false,\r\n record_id: 1,\r\n start_date: '2020-01-01T00:00:00Z',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterMedal(overrides: Record<string, any> = {}): any {\r\n return {\r\n medal_id: 1,\r\n title: 'Test Medal',\r\n description: 'A test medal for demonstration',\r\n corporation_id: 1344654522,\r\n date: '2023-01-01T00:00:00Z',\r\n issuer_id: 1689391489,\r\n reason: 'Outstanding service',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterNotification(overrides: Record<string, any> = {}): any {\r\n return {\r\n notification_id: 1000001,\r\n sender_id: 1689391489,\r\n sender_type: 'character',\r\n text: 'Test notification',\r\n timestamp: '2024-01-15T12:00:00Z',\r\n type: 'AllWarDeclaredMsg',\r\n is_read: false,\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Market test data\r\n static createMarketPrice(overrides: Record<string, any> = {}): any {\r\n return {\r\n type_id: 34,\r\n average_price: 4.5,\r\n adjusted_price: 4.55,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createMarketHistory(overrides: Record<string, any> = {}): any {\r\n return {\r\n date: '2024-01-15',\r\n volume: 1000000000,\r\n order_count: 2500,\r\n lowest: 4.2,\r\n highest: 4.8,\r\n average: 4.5,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterMarketOrder(overrides: Record<string, any> = {}): any {\r\n return {\r\n order_id: 5000000001,\r\n type_id: 34,\r\n region_id: 10000002,\r\n location_id: 60003760,\r\n range: 'region',\r\n volume_total: 1000000,\r\n volume_remain: 750000,\r\n min_volume: 1,\r\n price: 4.5,\r\n is_buy_order: true,\r\n is_corporation: false,\r\n duration: 90,\r\n issued: '2024-01-15T12:00:00Z',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterOrderHistory(overrides: Record<string, any> = {}): any {\r\n return {\r\n order_id: 5000000001,\r\n type_id: 34,\r\n region_id: 10000002,\r\n location_id: 60003760,\r\n range: 'region',\r\n volume_total: 1000000,\r\n volume_remain: 0,\r\n min_volume: 1,\r\n price: 4.5,\r\n is_buy_order: true,\r\n is_corporation: false,\r\n duration: 90,\r\n issued: '2024-01-10T12:00:00Z',\r\n state: 'expired',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Universe test data\r\n static createSolarSystem(overrides: Record<string, any> = {}): any {\r\n return {\r\n system_id: 30000142,\r\n name: 'Jita',\r\n constellation_id: 20000020,\r\n security_status: 0.9459991455078125,\r\n star_id: 40000001,\r\n stargates: [50000001, 50000002],\r\n stations: [60003760, 60003761],\r\n planets: [\r\n { planet_id: 40000001, moons: [40000002, 40000003] },\r\n { planet_id: 40000004, moons: [40000005] },\r\n ],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createStation(overrides: Record<string, any> = {}): any {\r\n return {\r\n station_id: 60003760,\r\n name: 'Jita IV - Moon 4 - Caldari Navy Assembly Plant',\r\n owner: 1000035,\r\n type_id: 52678,\r\n race_id: 1,\r\n system_id: 30000142,\r\n reprocessing_efficiency: 0.5,\r\n reprocessing_stations_take: 0.05,\r\n max_dockable_ship_volume: 50000000,\r\n office_rental_cost: 10000000,\r\n services: [\r\n 'bounty-missions',\r\n 'courier-missions',\r\n 'interbus',\r\n 'reprocessing-plant',\r\n 'market',\r\n 'stock-exchange',\r\n ],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createStructure(overrides: Record<string, any> = {}): any {\r\n return {\r\n structure_id: 1021975535893,\r\n name: 'Test Citadel',\r\n owner_id: 1689391488,\r\n solar_system_id: 30000142,\r\n type_id: 35832,\r\n position: { x: 1000000000, y: 2000000000, z: 3000000000 },\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createItemType(overrides: Record<string, any> = {}): any {\r\n return {\r\n type_id: 34,\r\n name: 'Tritanium',\r\n description: 'The most common ore type in the known universe.',\r\n group_id: 18,\r\n category_id: 4,\r\n market_group_id: 1857,\r\n mass: 1.0,\r\n volume: 0.01,\r\n capacity: 0.0,\r\n portion_size: 1,\r\n radius: 1.0,\r\n published: true,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createItemGroup(overrides: Record<string, any> = {}): any {\r\n return {\r\n group_id: 18,\r\n name: 'Mineral',\r\n category_id: 4,\r\n published: true,\r\n types: [34, 35, 36, 37, 38, 39, 40, 11399],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createStar(overrides: Record<string, any> = {}): any {\r\n return {\r\n star_id: 40000001,\r\n name: 'Jita - Star',\r\n type_id: 3802,\r\n solar_system_id: 30000142,\r\n age: 4600000000,\r\n luminosity: 0.06575,\r\n radius: 62140000,\r\n spectral_class: 'K2 V',\r\n temperature: 4567,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createPlanet(overrides: Record<string, any> = {}): any {\r\n return {\r\n planet_id: 40000004,\r\n name: 'Jita IV',\r\n type_id: 11,\r\n system_id: 30000142,\r\n position: { x: 150000000000, y: 0, z: 0 },\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createSearchResults(overrides: Record<string, any> = {}): any {\r\n return {\r\n systems: [],\r\n stations: [],\r\n structures: [],\r\n characters: [],\r\n corporations: [],\r\n alliances: [],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createEntityName(overrides: Record<string, any> = {}): any {\r\n return {\r\n id: 30000142,\r\n name: 'Jita',\r\n category: 'solar_system',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Corporation test data\r\n static createCorporationMemberRoles(\r\n overrides: Record<string, any> = {},\r\n ): any {\r\n return {\r\n character_id: 1689391488,\r\n roles: ['Director', 'Personnel_Manager'],\r\n grantable_roles: ['Hangar_Take_1', 'Hangar_Take_2'],\r\n roles_at_hq: ['Director'],\r\n roles_at_base: [],\r\n roles_at_other: [],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCorporationAsset(overrides: Record<string, any> = {}): any {\r\n return {\r\n item_id: 1000000000001,\r\n type_id: 587,\r\n quantity: 100,\r\n location_id: 60003760,\r\n location_flag: 'CorpSAG1',\r\n location_type: 'station',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCorporationStructure(overrides: Record<string, any> = {}): any {\r\n return {\r\n structure_id: 1021975535893,\r\n type_id: 35832,\r\n system_id: 30000142,\r\n profile_id: 101853,\r\n fuel_expires: '2024-02-01T12:00:00Z',\r\n state_timer_start: '2024-01-15T12:00:00Z',\r\n state_timer_end: '2024-01-22T12:00:00Z',\r\n state: 'shield_vulnerable',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCorporationWallet(overrides: Record<string, any> = {}): any {\r\n return {\r\n division: 1,\r\n balance: 1000000000.0,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createWalletJournalEntry(overrides: Record<string, any> = {}): any {\r\n return {\r\n id: 1000000001,\r\n date: '2024-01-15T12:00:00Z',\r\n ref_type: 'market_transaction',\r\n first_party_id: 1344654522,\r\n amount: 1000000.0,\r\n balance: 1000000000.0,\r\n reason: 'Market transaction',\r\n description: 'Sold items on market',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Fleet test data\r\n static createFleetInfo(overrides: Record<string, any> = {}): any {\r\n return {\r\n fleet_id: 1234567890,\r\n fleet_boss_id: 1689391488,\r\n is_free_move: false,\r\n is_registered: true,\r\n is_voice_enabled: true,\r\n motd: 'Fleet operations in progress',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createFleetMember(overrides: Record<string, any> = {}): any {\r\n return {\r\n character_id: 1689391488,\r\n role: 'fleet_commander',\r\n ship_type_id: 17918,\r\n solar_system_id: 30000142,\r\n station_id: 60003760,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createFleetWing(overrides: Record<string, any> = {}): any {\r\n return {\r\n wing_id: 987654321,\r\n name: 'Wing 1',\r\n squads: [{ squad_id: 123456789, name: 'Squad 1' }],\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Industry test data\r\n static createIndustryJob(overrides: Record<string, any> = {}): any {\r\n return {\r\n job_id: 1000001,\r\n installer_id: 1689391488,\r\n facility_id: 60003760,\r\n activity_id: 1,\r\n blueprint_id: 1000000001,\r\n blueprint_type_id: 17918,\r\n product_type_id: 17918,\r\n runs: 1,\r\n status: 'active',\r\n start_date: '2024-01-15T12:00:00Z',\r\n end_date: '2024-01-16T12:00:00Z',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createBlueprint(overrides: Record<string, any> = {}): any {\r\n return {\r\n item_id: 1000000001,\r\n type_id: 17918,\r\n location_id: 60003760,\r\n location_flag: 'Hangar',\r\n quantity: -2,\r\n time_efficiency: 10,\r\n material_efficiency: 10,\r\n runs: 100,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterAsset(overrides: Record<string, any> = {}): any {\r\n return {\r\n item_id: 1000000002,\r\n type_id: 34,\r\n quantity: 1000000,\r\n location_id: 60003760,\r\n location_flag: 'Hangar',\r\n location_type: 'station',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterLocation(overrides: Record<string, any> = {}): any {\r\n return {\r\n solar_system_id: 30000142,\r\n station_id: 60003760,\r\n structure_id: undefined,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createCharacterSkills(overrides: Record<string, any> = {}): any {\r\n return {\r\n skills: [\r\n {\r\n skill_id: 3300,\r\n skillpoints_in_skill: 256000,\r\n trained_skill_level: 5,\r\n active_skill_level: 5,\r\n },\r\n {\r\n skill_id: 3301,\r\n skillpoints_in_skill: 128000,\r\n trained_skill_level: 4,\r\n active_skill_level: 4,\r\n },\r\n ],\r\n total_sp: 384000,\r\n unallocated_sp: 0,\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Corporation test data\r\n static createCorporationInfo(\r\n overrides: Partial<CorporationInfo> = {},\r\n ): CorporationInfo {\r\n return {\r\n corporation_id: 1344654522,\r\n name: 'GoonWaffe',\r\n ticker: 'GEWNS',\r\n ceo_id: 1689391488,\r\n creator_id: 1689391488,\r\n member_count: 15000,\r\n tax_rate: 0.1,\r\n alliance_id: 99005338,\r\n date_founded: '2003-05-06T00:00:00Z',\r\n description: 'The founding corporation of Goonswarm Federation',\r\n home_station_id: 60003760,\r\n shares: 1000,\r\n // eslint-disable-next-line sonarjs/no-clear-text-protocols\r\n url: 'http://www.goonfleet.com/',\r\n faction_id: 500001,\r\n war_eligible: true,\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Market test data\r\n static createMarketOrder(overrides: Partial<MarketOrder> = {}): MarketOrder {\r\n return {\r\n order_id: 123456789,\r\n type_id: 34, // Tritanium\r\n location_id: 60003760, // Jita 4-4\r\n volume_total: 1000000,\r\n volume_remain: 500000,\r\n min_volume: 1,\r\n price: 5.5,\r\n is_buy_order: false,\r\n system_id: 30000142,\r\n duration: 90,\r\n issued: '2023-12-01T12:00:00Z',\r\n range: 'region',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Wallet test data\r\n static createWalletTransaction(\r\n overrides: Partial<WalletTransaction> = {},\r\n ): WalletTransaction {\r\n return {\r\n transaction_id: 123456789,\r\n date: '2023-12-01T12:00:00Z',\r\n type_id: 34,\r\n location_id: 60003760,\r\n unit_price: 5.5,\r\n quantity: 1000,\r\n client_id: 1689391488,\r\n is_buy: false,\r\n is_personal: true,\r\n journal_ref_id: 987654321,\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Contract test data\r\n static createContract(overrides: Partial<Contract> = {}): Contract {\r\n return {\r\n contract_id: 123456789,\r\n issuer_id: 1689391488,\r\n issuer_corporation_id: 1344654522,\r\n assignee_id: 987654321,\r\n start_location_id: 60003760,\r\n end_location_id: 60008494,\r\n type: 'courier',\r\n status: 'outstanding',\r\n title: 'Test Courier Contract',\r\n for_corporation: false,\r\n availability: 'public',\r\n date_issued: '2023-12-01T12:00:00Z',\r\n date_expired: '2023-12-08T12:00:00Z',\r\n days_to_complete: 3,\r\n price: 1000000,\r\n reward: 500000,\r\n collateral: 10000000,\r\n volume: 1000,\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Sovereignty test data (Equinox)\r\n static createSovereigntySystem(\r\n overrides: Partial<SovereigntySystem> = {},\r\n ): SovereigntySystem {\r\n return {\r\n solar_systems: [\r\n {\r\n solar_system_id: 30000142,\r\n claim: {\r\n alliance: {\r\n alliance_id: 99005338,\r\n corporation_id: 1344654522,\r\n claimed_since: '2020-10-08T00:38:16Z',\r\n is_capital_system: false,\r\n development: {\r\n activity_defense_multiplier: 4.5,\r\n military_level: 5,\r\n industrial_level: 3,\r\n strategic_level: 1,\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createSovereigntyHub(\r\n overrides: Partial<SovereigntyHub> = {},\r\n ): SovereigntyHub {\r\n return {\r\n structure_id: 100000001,\r\n system_id: 30000142,\r\n corporation_id: 98000002,\r\n alliance_id: 99000006,\r\n online: true,\r\n remaining_reagents: 500,\r\n installed_upgrades: [1, 2, 3],\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createOrbitalSkyhook(\r\n overrides: Partial<OrbitalSkyhook> = {},\r\n ): OrbitalSkyhook {\r\n return {\r\n structure_id: 200000001,\r\n system_id: 30000142,\r\n corporation_id: 98000002,\r\n alliance_id: 99000006,\r\n online: true,\r\n reagent_silo_capacity: 1000,\r\n reagent_silo_level: 750,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createRaidableSkyhook(\r\n overrides: Partial<RaidableSkyhook> = {},\r\n ): RaidableSkyhook {\r\n return {\r\n structure_id: 200000001,\r\n system_id: 30000142,\r\n corporation_id: 98000002,\r\n alliance_id: 99000006,\r\n raidable_at: '2026-05-20T12:00:00Z',\r\n is_raidable: true,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createMercenaryDen(\r\n overrides: Partial<MercenaryDen> = {},\r\n ): MercenaryDen {\r\n return {\r\n den_id: 5001,\r\n system_id: 30000142,\r\n constellation_id: 20000125,\r\n region_id: 10000002,\r\n development_level: 3,\r\n anarchy_level: 2,\r\n active_operations: 1,\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createMercenaryTacticalOperation(\r\n overrides: Partial<MercenaryTacticalOperation> = {},\r\n ): MercenaryTacticalOperation {\r\n return {\r\n operation_id: 7001,\r\n den_id: 5001,\r\n system_id: 30000142,\r\n site_type: 'assault',\r\n status: 'active',\r\n started_at: '2026-05-20T10:00:00Z',\r\n expires_at: '2026-05-20T22:00:00Z',\r\n ...overrides,\r\n };\r\n }\r\n\r\n static createAccessListEntry(\r\n overrides: Partial<AccessListEntry> = {},\r\n ): AccessListEntry {\r\n return {\r\n entity_id: 1689391488,\r\n entity_type: 'character',\r\n access_type: 'allowed',\r\n ...overrides,\r\n };\r\n }\r\n\r\n // Error test data\r\n static createError(statusCode: number, message?: string): EsiError {\r\n const defaultMessages: Record<number, string> = {\r\n 400: 'Bad request',\r\n 401: 'Unauthorized',\r\n 403: 'Forbidden',\r\n 404: 'Resource not found',\r\n 429: 'Rate limit exceeded',\r\n 500: 'Internal server error',\r\n 503: 'Service unavailable',\r\n };\r\n return new EsiError(\r\n statusCode,\r\n // eslint-disable-next-line security/detect-object-injection\r\n message || defaultMessages[statusCode] || 'Unknown error',\r\n );\r\n }\r\n\r\n // Test scenarios\r\n static createTestScenarios() {\r\n return {\r\n alliances: [\r\n { id: 99005338, name: 'Goonswarm Federation', ticker: 'CONDI' },\r\n { id: 99000001, name: 'Test Alliance Please Ignore', ticker: 'TEST' },\r\n { id: 99000002, name: 'Brave Collective', ticker: 'BRAVE' },\r\n { id: 99000003, name: 'Pandemic Legion', ticker: 'PL' },\r\n { id: 99000004, name: 'Northern Coalition.', ticker: 'NC.' },\r\n ],\r\n characters: [\r\n {\r\n id: 1689391488,\r\n name: 'Test Character',\r\n corp: 1344654522,\r\n alliance: 99005338,\r\n },\r\n {\r\n id: 123456789,\r\n name: 'Demo Pilot',\r\n corp: 987654321,\r\n alliance: 99000001,\r\n },\r\n {\r\n id: 111111111,\r\n name: 'Alpha Tester',\r\n corp: 222222222,\r\n alliance: 99000002,\r\n },\r\n {\r\n id: 333333333,\r\n name: 'Beta User',\r\n corp: 444444444,\r\n alliance: 99000003,\r\n },\r\n {\r\n id: 555555555,\r\n name: 'Gamma Pilot',\r\n corp: 666666666,\r\n alliance: 99000004,\r\n },\r\n ],\r\n corporations: [\r\n {\r\n id: 1344654522,\r\n name: 'GoonWaffe',\r\n ticker: 'GEWNS',\r\n alliance: 99005338,\r\n },\r\n {\r\n id: 987654321,\r\n name: 'Test Corp Please Ignore',\r\n ticker: 'TCPI',\r\n alliance: 99000001,\r\n },\r\n {\r\n id: 222222222,\r\n name: 'Brave Newbies Inc.',\r\n ticker: 'BNI',\r\n alliance: 99000002,\r\n },\r\n {\r\n id: 444444444,\r\n name: 'Sniggerdly',\r\n ticker: 'SNIGG',\r\n alliance: 99000003,\r\n },\r\n {\r\n id: 666666666,\r\n name: 'Tactical Narcotics Team',\r\n ticker: 'TNT',\r\n alliance: 99000004,\r\n },\r\n ],\r\n errorScenarios: [\r\n { statusCode: 0, label: 'network_error', probability: 0.1 },\r\n { statusCode: 429, label: 'rate_limited', probability: 0.05 },\r\n { statusCode: 500, label: 'server_error', probability: 0.02 },\r\n { statusCode: 504, label: 'timeout', probability: 0.03 },\r\n { statusCode: 404, label: 'not_found', probability: 0.01 },\r\n ],\r\n };\r\n }\r\n\r\n // Performance test data\r\n static createPerformanceTestData(\r\n size: 'small' | 'medium' | 'large' = 'medium',\r\n ) {\r\n const sizes = {\r\n small: { alliances: 5, characters: 20, corporations: 10 },\r\n medium: { alliances: 20, characters: 100, corporations: 50 },\r\n large: { alliances: 100, characters: 1000, corporations: 500 },\r\n };\r\n\r\n // eslint-disable-next-line security/detect-object-injection\r\n const config = sizes[size];\r\n const data = {\r\n alliances: [] as AllianceInfo[],\r\n characters: [] as CharacterInfo[],\r\n corporations: [] as CorporationInfo[],\r\n };\r\n\r\n // Generate alliances\r\n for (let i = 1; i <= config.alliances; i++) {\r\n data.alliances.push(\r\n this.createAllianceInfo({\r\n alliance_id: 99000000 + i,\r\n name: `Test Alliance ${i}`,\r\n ticker: `TST${i.toString().padStart(2, '0')}`,\r\n creator_id: 1000000 + i,\r\n }),\r\n );\r\n }\r\n\r\n // Generate corporations\r\n for (let i = 1; i <= config.corporations; i++) {\r\n const allianceIndex = Math.floor(\r\n (i - 1) / (config.corporations / config.alliances),\r\n );\r\n data.corporations.push(\r\n this.createCorporationInfo({\r\n corporation_id: 2000000 + i,\r\n name: `Test Corporation ${i}`,\r\n ticker: `TC${i.toString().padStart(3, '0')}`,\r\n // eslint-disable-next-line security/detect-object-injection\r\n alliance_id: data.alliances[allianceIndex]?.alliance_id,\r\n ceo_id: 3000000 + i,\r\n }),\r\n );\r\n }\r\n\r\n // Generate characters\r\n for (let i = 1; i <= config.characters; i++) {\r\n const corpIndex = Math.floor(\r\n (i - 1) / (config.characters / config.corporations),\r\n );\r\n // eslint-disable-next-line security/detect-object-injection\r\n const corp = data.corporations[corpIndex];\r\n data.characters.push(\r\n this.createCharacterInfo({\r\n character_id: 3000000 + i,\r\n name: `Test Character ${i}`,\r\n corporation_id: corp?.corporation_id || 2000001,\r\n alliance_id: corp?.alliance_id,\r\n }),\r\n );\r\n }\r\n\r\n return data;\r\n }\r\n\r\n // Realistic test data with relationships\r\n static createRealisticTestData() {\r\n const goonswarm = this.createAllianceInfo({\r\n alliance_id: 99005338,\r\n name: 'Goonswarm Federation',\r\n ticker: 'CONDI',\r\n creator_id: 1689391488,\r\n creator_corporation_id: 1344654522,\r\n executor_corporation_id: 1344654522,\r\n date_founded: '2010-06-01T00:00:00Z',\r\n });\r\n\r\n const goonwaffe = this.createCorporationInfo({\r\n corporation_id: 1344654522,\r\n name: 'GoonWaffe',\r\n ticker: 'GEWNS',\r\n alliance_id: 99005338,\r\n ceo_id: 1689391488,\r\n creator_id: 1689391488,\r\n member_count: 15000,\r\n date_founded: '2003-05-06T00:00:00Z',\r\n });\r\n\r\n const testCharacter = this.createCharacterInfo({\r\n character_id: 1689391488,\r\n name: 'The Mittani',\r\n corporation_id: 1344654522,\r\n alliance_id: 99005338,\r\n birthday: '2003-05-06T00:00:00Z',\r\n });\r\n\r\n return {\r\n alliances: [goonswarm],\r\n corporations: [goonwaffe],\r\n characters: [testCharacter],\r\n relationships: {\r\n allianceExecutor: { alliance: 99005338, corporation: 1344654522 },\r\n corporationCEO: { corporation: 1344654522, character: 1689391488 },\r\n characterMembership: {\r\n character: 1689391488,\r\n corporation: 1344654522,\r\n alliance: 99005338,\r\n },\r\n },\r\n };\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
@@ -28,6 +28,8 @@ export * from './sovereignty';
28
28
  export * from './status';
29
29
  export * from './wars';
30
30
  export * from './corporation-projects';
31
+ export * from './cosmetics';
32
+ export * from './paragon-hub';
31
33
  export * from './freelance-jobs';
32
34
  export * from './skyhooks';
33
35
  export * from './mercenary';
@@ -1 +1 @@
1
- {"version":3,"file":"api-responses.d.ts","sourceRoot":"","sources":["../../src/types/api-responses.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"api-responses.d.ts","sourceRoot":"","sources":["../../src/types/api-responses.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { CharacterSkinrSchema, CharacterSkinrComponentsSchema, SkinrSchema, SkinrLicenseSchema, SkinrComponentLicenseSchema } from '../schemas/cosmetics';
3
+ export type CharacterSkinr = z.infer<typeof CharacterSkinrSchema>;
4
+ export type CharacterSkinrComponents = z.infer<typeof CharacterSkinrComponentsSchema>;
5
+ export type Skinr = z.infer<typeof SkinrSchema>;
6
+ export type SkinrLicense = z.infer<typeof SkinrLicenseSchema>;
7
+ export type SkinrComponentLicense = z.infer<typeof SkinrComponentLicenseSchema>;
8
+ //# sourceMappingURL=cosmetics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmetics.d.ts","sourceRoot":"","sources":["../../src/types/cosmetics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,WAAW,EACX,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { MercenaryDenSchema, MercenaryTacticalOperationSchema } from '../schemas/mercenary';
2
+ import { MercenaryDenSchema, MercenaryTacticalOperationSchema, MercenaryDenDetailSchema, MercenaryTacticalOperationDetailSchema } from '../schemas/mercenary';
3
3
  export type MercenaryDen = z.infer<typeof MercenaryDenSchema>;
4
4
  export type MercenaryTacticalOperation = z.infer<typeof MercenaryTacticalOperationSchema>;
5
+ export type MercenaryDenDetail = z.infer<typeof MercenaryDenDetailSchema>;
6
+ export type MercenaryTacticalOperationDetail = z.infer<typeof MercenaryTacticalOperationDetailSchema>;
5
7
  //# sourceMappingURL=mercenary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mercenary.d.ts","sourceRoot":"","sources":["../../src/types/mercenary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EACjC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC"}
1
+ {"version":3,"file":"mercenary.d.ts","sourceRoot":"","sources":["../../src/types/mercenary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EAChC,wBAAwB,EACxB,sCAAsC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,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,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { ParagonHubSkinrListingSchema, ParagonHubCharacterListingSchema, ParagonHubSkinrResponseSchema, ParagonHubCharacterSkinrResponseSchema, ParagonHubCursorSchema } from '../schemas/paragon-hub';
3
+ export type ParagonHubSkinrListing = z.infer<typeof ParagonHubSkinrListingSchema>;
4
+ export type ParagonHubCharacterListing = z.infer<typeof ParagonHubCharacterListingSchema>;
5
+ export type ParagonHubSkinrResponse = z.infer<typeof ParagonHubSkinrResponseSchema>;
6
+ export type ParagonHubCharacterSkinrResponse = z.infer<typeof ParagonHubCharacterSkinrResponseSchema>;
7
+ export type ParagonHubCursor = z.infer<typeof ParagonHubCursorSchema>;
8
+ //# sourceMappingURL=paragon-hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paragon-hub.d.ts","sourceRoot":"","sources":["../../src/types/paragon-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,sCAAsC,EACtC,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { SovereigntyHubSchema, OrbitalSkyhookSchema, RaidableSkyhookSchema } from '../schemas/skyhooks';
2
+ import { SovereigntyHubSchema, OrbitalSkyhookSchema, RaidableSkyhookSchema, SkyhookDetailSchema, SovereigntyHubDetailSchema } from '../schemas/skyhooks';
3
3
  export type SovereigntyHub = z.infer<typeof SovereigntyHubSchema>;
4
4
  export type OrbitalSkyhook = z.infer<typeof OrbitalSkyhookSchema>;
5
5
  export type RaidableSkyhook = z.infer<typeof RaidableSkyhookSchema>;
6
+ export type SkyhookDetail = z.infer<typeof SkyhookDetailSchema>;
7
+ export type SovereigntyHubDetail = z.infer<typeof SovereigntyHubDetailSchema>;
6
8
  //# sourceMappingURL=skyhooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyhooks.d.ts","sourceRoot":"","sources":["../../src/types/skyhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"skyhooks.d.ts","sourceRoot":"","sources":["../../src/types/skyhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}