@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.
Files changed (216) hide show
  1. package/CHANGELOG.md +370 -0
  2. package/README.md +168 -231
  3. package/dist/EsiClient.d.ts +4 -0
  4. package/dist/EsiClient.d.ts.map +1 -1
  5. package/dist/EsiClientBuilder.d.ts.map +1 -1
  6. package/dist/auth/EsiTokenManager.d.ts +200 -0
  7. package/dist/auth/EsiTokenManager.d.ts.map +1 -0
  8. package/dist/auth/EveSsoClient.d.ts +88 -0
  9. package/dist/auth/EveSsoClient.d.ts.map +1 -0
  10. package/dist/auth/errors.d.ts +42 -0
  11. package/dist/auth/errors.d.ts.map +1 -0
  12. package/dist/auth/index.d.ts +14 -0
  13. package/dist/auth/index.d.ts.map +1 -0
  14. package/dist/auth/jwt.d.ts +43 -0
  15. package/dist/auth/jwt.d.ts.map +1 -0
  16. package/dist/auth/pkce.d.ts +21 -0
  17. package/dist/auth/pkce.d.ts.map +1 -0
  18. package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
  19. package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
  20. package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
  21. package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
  22. package/dist/auth/types.d.ts +42 -0
  23. package/dist/auth/types.d.ts.map +1 -0
  24. package/dist/chunk-3ZI5A37L.mjs +1065 -0
  25. package/dist/chunk-3ZI5A37L.mjs.map +1 -0
  26. package/dist/chunk-7A72QFDF.mjs +416 -0
  27. package/dist/chunk-7A72QFDF.mjs.map +1 -0
  28. package/dist/chunk-BBSHKVPI.js +71 -0
  29. package/dist/chunk-BBSHKVPI.js.map +1 -0
  30. package/dist/chunk-HPSACXX3.js +416 -0
  31. package/dist/chunk-HPSACXX3.js.map +1 -0
  32. package/dist/chunk-JIW4BXLP.mjs +17 -0
  33. package/dist/chunk-JIW4BXLP.mjs.map +1 -0
  34. package/dist/chunk-MSJHIJXA.js +1065 -0
  35. package/dist/chunk-MSJHIJXA.js.map +1 -0
  36. package/dist/chunk-PZ5AY32C.js +10 -0
  37. package/dist/chunk-PZ5AY32C.js.map +1 -0
  38. package/dist/chunk-R7D7M2LQ.mjs +71 -0
  39. package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
  40. package/dist/chunk-SAQBXXTM.js +2614 -0
  41. package/dist/chunk-SAQBXXTM.js.map +1 -0
  42. package/dist/chunk-VZS32UQ3.mjs +2614 -0
  43. package/dist/chunk-VZS32UQ3.mjs.map +1 -0
  44. package/dist/clients/AllianceClient.d.ts.map +1 -1
  45. package/dist/clients/ContractsClient.d.ts +12 -9
  46. package/dist/clients/ContractsClient.d.ts.map +1 -1
  47. package/dist/clients/CorporationProjectsClient.d.ts +22 -12
  48. package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
  49. package/dist/clients/FactionClient.d.ts +4 -4
  50. package/dist/clients/FactionClient.d.ts.map +1 -1
  51. package/dist/clients/FreelanceJobsClient.d.ts +3 -3
  52. package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
  53. package/dist/clients/IndustryClient.d.ts +4 -4
  54. package/dist/clients/IndustryClient.d.ts.map +1 -1
  55. package/dist/clients/MailClient.d.ts +4 -4
  56. package/dist/clients/MailClient.d.ts.map +1 -1
  57. package/dist/clients/MetaClient.d.ts +3 -2
  58. package/dist/clients/MetaClient.d.ts.map +1 -1
  59. package/dist/clients/WalletClient.d.ts +4 -4
  60. package/dist/clients/WalletClient.d.ts.map +1 -1
  61. package/dist/core/ApiClient.d.ts +4 -0
  62. package/dist/core/ApiClient.d.ts.map +1 -1
  63. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  64. package/dist/core/BatchRequestHandler.d.ts.map +1 -1
  65. package/dist/core/RequestDeduplicator.d.ts +2 -0
  66. package/dist/core/RequestDeduplicator.d.ts.map +1 -1
  67. package/dist/core/RetryStrategy.d.ts +2 -0
  68. package/dist/core/RetryStrategy.d.ts.map +1 -1
  69. package/dist/core/cache/ETagCacheManager.d.ts +4 -0
  70. package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
  71. package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
  72. package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
  73. package/dist/core/configureApiClient.d.ts.map +1 -1
  74. package/dist/core/constants.d.ts +2 -2
  75. package/dist/core/constants.d.ts.map +1 -1
  76. package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
  77. package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
  78. package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
  79. package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
  80. package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
  81. package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
  82. package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
  83. package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
  84. package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
  85. package/dist/core/endpoints/createClient.d.ts.map +1 -1
  86. package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
  87. package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
  88. package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
  89. package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
  90. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
  91. package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
  92. package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
  93. package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
  94. package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
  95. package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
  96. package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
  97. package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
  98. package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
  99. package/dist/core/endpoints/piEndpoints.d.ts +2 -2
  100. package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
  101. package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
  102. package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
  103. package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
  104. package/dist/core/logger/DefaultLogger.d.ts +31 -0
  105. package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
  106. package/dist/core/logger/ILogger.d.ts +14 -4
  107. package/dist/core/logger/ILogger.d.ts.map +1 -1
  108. package/dist/core/logger/NoopLogger.d.ts +4 -0
  109. package/dist/core/logger/NoopLogger.d.ts.map +1 -1
  110. package/dist/core/logger/clientLog.d.ts +11 -0
  111. package/dist/core/logger/clientLog.d.ts.map +1 -0
  112. package/dist/core/logger/logger.d.ts +11 -3
  113. package/dist/core/logger/logger.d.ts.map +1 -1
  114. package/dist/core/logger/loggerUtil.d.ts +8 -6
  115. package/dist/core/logger/loggerUtil.d.ts.map +1 -1
  116. package/dist/core/logger/resolveLogger.d.ts +10 -0
  117. package/dist/core/logger/resolveLogger.d.ts.map +1 -0
  118. package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
  119. package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
  120. package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
  121. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  122. package/dist/core/requestPipeline/cachePolicy.d.ts +14 -0
  123. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  124. package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
  125. package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
  126. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  127. package/dist/core/requestPipeline/index.d.ts +2 -2
  128. package/dist/core/requestPipeline/index.d.ts.map +1 -1
  129. package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
  130. package/dist/core/requestPipeline/statusHandling.d.ts +8 -2
  131. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  132. package/dist/core/util/concurrency.d.ts +29 -0
  133. package/dist/core/util/concurrency.d.ts.map +1 -0
  134. package/dist/errors.d.ts +1 -0
  135. package/dist/errors.d.ts.map +1 -1
  136. package/dist/errors.js +53 -195
  137. package/dist/errors.js.map +1 -1
  138. package/dist/errors.mjs +37 -129
  139. package/dist/errors.mjs.map +1 -1
  140. package/dist/index.d.ts +6 -2
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +1972 -3472
  143. package/dist/index.js.map +1 -1
  144. package/dist/index.mjs +1606 -2995
  145. package/dist/index.mjs.map +1 -1
  146. package/dist/schemas/calendar.d.ts +9 -7
  147. package/dist/schemas/calendar.d.ts.map +1 -1
  148. package/dist/schemas/character.d.ts +2 -2
  149. package/dist/schemas/clones.d.ts +2 -2
  150. package/dist/schemas/contracts.d.ts +69 -6
  151. package/dist/schemas/contracts.d.ts.map +1 -1
  152. package/dist/schemas/corporation-projects.d.ts +96 -9
  153. package/dist/schemas/corporation-projects.d.ts.map +1 -1
  154. package/dist/schemas/corporation.d.ts +34 -22
  155. package/dist/schemas/corporation.d.ts.map +1 -1
  156. package/dist/schemas/dogma.d.ts +2 -2
  157. package/dist/schemas/faction-warfare.d.ts +125 -12
  158. package/dist/schemas/faction-warfare.d.ts.map +1 -1
  159. package/dist/schemas/fleet.d.ts +1 -1
  160. package/dist/schemas/freelance-jobs.d.ts +52 -22
  161. package/dist/schemas/freelance-jobs.d.ts.map +1 -1
  162. package/dist/schemas/index.js +420 -2479
  163. package/dist/schemas/index.js.map +1 -1
  164. package/dist/schemas/index.mjs +225 -2065
  165. package/dist/schemas/index.mjs.map +1 -1
  166. package/dist/schemas/industry.d.ts +33 -0
  167. package/dist/schemas/industry.d.ts.map +1 -1
  168. package/dist/schemas/mail.d.ts +24 -5
  169. package/dist/schemas/mail.d.ts.map +1 -1
  170. package/dist/schemas/mercenary.d.ts +1 -1
  171. package/dist/schemas/meta.d.ts +12 -1
  172. package/dist/schemas/meta.d.ts.map +1 -1
  173. package/dist/schemas/pi.d.ts +2 -2
  174. package/dist/schemas/status.d.ts +1 -1
  175. package/dist/schemas/universe.d.ts +22 -22
  176. package/dist/schemas/universe.d.ts.map +1 -1
  177. package/dist/schemas/wallet.d.ts +16 -0
  178. package/dist/schemas/wallet.d.ts.map +1 -1
  179. package/dist/sde/SdeDataProvider.d.ts.map +1 -1
  180. package/dist/sde/index.js +95 -1162
  181. package/dist/sde/index.js.map +1 -1
  182. package/dist/sde/index.mjs +73 -1091
  183. package/dist/sde/index.mjs.map +1 -1
  184. package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
  185. package/dist/sde/ingestion/metadata.d.ts +13 -0
  186. package/dist/sde/ingestion/metadata.d.ts.map +1 -0
  187. package/dist/sde/memory.js +21 -1095
  188. package/dist/sde/memory.js.map +1 -1
  189. package/dist/sde/memory.mjs +13 -1051
  190. package/dist/sde/memory.mjs.map +1 -1
  191. package/dist/sde/optionalPeers.d.ts +25 -0
  192. package/dist/sde/optionalPeers.d.ts.map +1 -0
  193. package/dist/testing/TestDataFactory.d.ts +28 -1
  194. package/dist/testing/TestDataFactory.d.ts.map +1 -1
  195. package/dist/testing/index.js +116 -125
  196. package/dist/testing/index.js.map +1 -1
  197. package/dist/testing/index.mjs +110 -82
  198. package/dist/testing/index.mjs.map +1 -1
  199. package/dist/types/contracts.d.ts +4 -1
  200. package/dist/types/contracts.d.ts.map +1 -1
  201. package/dist/types/corporation-projects.d.ts +5 -1
  202. package/dist/types/corporation-projects.d.ts.map +1 -1
  203. package/dist/types/faction-warfare.d.ts +9 -1
  204. package/dist/types/faction-warfare.d.ts.map +1 -1
  205. package/dist/types/freelance-jobs.d.ts +2 -1
  206. package/dist/types/freelance-jobs.d.ts.map +1 -1
  207. package/dist/types/generated/spec-alignment.check.d.ts +2 -2
  208. package/dist/types/industry.d.ts +2 -1
  209. package/dist/types/industry.d.ts.map +1 -1
  210. package/dist/types/mail.d.ts +2 -1
  211. package/dist/types/mail.d.ts.map +1 -1
  212. package/dist/types/meta.d.ts +2 -1
  213. package/dist/types/meta.d.ts.map +1 -1
  214. package/dist/types/wallet.d.ts +2 -1
  215. package/dist/types/wallet.d.ts.map +1 -1
  216. package/package.json +46 -23
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-MSJHIJXA.js","../src/sde/errors.ts","../src/sde/MemorySdeProvider.ts","../src/sde/SdeTestDataFactory.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-MSJHIJXA.js","sourcesContent":[null,"export class SdeError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'SdeError';\n }\n}\n\nexport class SdeDatabaseError extends SdeError {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'SdeDatabaseError';\n this.cause = cause;\n }\n}\n\nexport class SdeValidationError extends SdeError {\n public readonly validationError: unknown;\n public readonly entityType: string;\n public readonly entityId?: number;\n\n constructor(entityType: string, validationError: unknown, entityId?: number) {\n const idSuffix = entityId !== undefined ? ` (id: ${entityId})` : '';\n super(`SDE validation failed for ${entityType}${idSuffix}`);\n this.name = 'SdeValidationError';\n this.validationError = validationError;\n this.entityType = entityType;\n this.entityId = entityId;\n }\n}\n\nexport class SdeVersionMismatchError extends SdeError {\n public readonly expected: string;\n public readonly actual: string;\n\n constructor(expected: string, actual: string) {\n super(`SDE version mismatch: expected ${expected}, got ${actual}`);\n this.name = 'SdeVersionMismatchError';\n this.expected = expected;\n this.actual = actual;\n }\n}\n\nexport function isSdeError(error: unknown): error is SdeError {\n return error instanceof SdeError;\n}\n\nexport function isSdeDatabaseError(error: unknown): error is SdeDatabaseError {\n return error instanceof SdeDatabaseError;\n}\n\nexport function isSdeValidationError(\n error: unknown,\n): error is SdeValidationError {\n return error instanceof SdeValidationError;\n}\n\nexport function isSdeVersionMismatch(\n error: unknown,\n): error is SdeVersionMismatchError {\n return error instanceof SdeVersionMismatchError;\n}\n","import type { IStaticDataProvider } from './IStaticDataProvider';\nimport type {\n EveType,\n EveGroup,\n EveCategory,\n Region,\n Constellation,\n SolarSystem,\n Stargate,\n Star,\n Planet,\n Moon,\n AsteroidBelt,\n Faction,\n Race,\n Bloodline,\n Ancestry,\n NpcCorporation,\n NpcStation,\n MarketGroup,\n MetaGroup,\n Icon,\n Graphic,\n DogmaAttribute,\n DogmaEffect,\n Blueprint,\n PlanetSchematic,\n AgentType,\n AgentInSpace,\n Certificate,\n CharacterAttribute,\n CloneGrade,\n CorporationActivity,\n DogmaAttributeCategory,\n DogmaUnit,\n IndustryActivity,\n Landmark,\n NotificationType,\n NpcCharacter,\n NpcCorporationDivision,\n School,\n SecondarySun,\n Skin,\n SkinLicense,\n StationOperation,\n StationService,\n TypeDogma,\n TypeMaterial,\n TypeBonus,\n Mission,\n Dungeon,\n EpicArc,\n} from './types';\nimport type { SdeVersionInfo } from './version';\n\nexport interface MemorySdeData {\n types?: EveType[];\n groups?: EveGroup[];\n categories?: EveCategory[];\n regions?: Region[];\n constellations?: Constellation[];\n solarSystems?: SolarSystem[];\n stargates?: Stargate[];\n stars?: Star[];\n planets?: Planet[];\n moons?: Moon[];\n asteroidBelts?: AsteroidBelt[];\n factions?: Faction[];\n races?: Race[];\n bloodlines?: Bloodline[];\n ancestries?: Ancestry[];\n npcCorporations?: NpcCorporation[];\n npcStations?: NpcStation[];\n marketGroups?: MarketGroup[];\n metaGroups?: MetaGroup[];\n icons?: Icon[];\n graphics?: Graphic[];\n dogmaAttributes?: DogmaAttribute[];\n dogmaEffects?: DogmaEffect[];\n blueprints?: Blueprint[];\n planetSchematics?: PlanetSchematic[];\n agentTypes?: AgentType[];\n agentsInSpace?: AgentInSpace[];\n certificates?: Certificate[];\n characterAttributes?: CharacterAttribute[];\n cloneGrades?: CloneGrade[];\n corporationActivities?: CorporationActivity[];\n dogmaAttributeCategories?: DogmaAttributeCategory[];\n dogmaUnits?: DogmaUnit[];\n industryActivities?: IndustryActivity[];\n landmarks?: Landmark[];\n notificationTypes?: NotificationType[];\n npcCharacters?: NpcCharacter[];\n npcCorporationDivisions?: NpcCorporationDivision[];\n schools?: School[];\n secondarySuns?: SecondarySun[];\n skins?: Skin[];\n skinLicenses?: SkinLicense[];\n stationOperations?: StationOperation[];\n stationServices?: StationService[];\n typeDogma?: TypeDogma[];\n typeMaterials?: TypeMaterial[];\n typeBonuses?: TypeBonus[];\n missions?: Mission[];\n dungeons?: Dungeon[];\n epicArcs?: EpicArc[];\n version?: Partial<SdeVersionInfo>;\n}\n\nexport class MemorySdeProvider implements IStaticDataProvider {\n private data: Map<string, Map<number | string, unknown>> = new Map();\n private versionInfo: SdeVersionInfo;\n\n constructor(data: MemorySdeData = {}) {\n const register = <T>(\n key: string,\n items: T[] | undefined,\n idFn: (item: T) => number | string,\n ): void => {\n this.data.set(\n key,\n new Map((items ?? []).map((item) => [idFn(item), item])),\n );\n };\n\n register('eve_types', data.types, (t) => t.typeId);\n register('eve_groups', data.groups, (g) => g.groupId);\n register('eve_categories', data.categories, (c) => c.categoryId);\n register('eve_regions', data.regions, (r) => r.regionId);\n register(\n 'eve_constellations',\n data.constellations,\n (c) => c.constellationId,\n );\n register('eve_solar_systems', data.solarSystems, (s) => s.systemId);\n register('eve_stargates', data.stargates, (s) => s.stargateId);\n register('eve_stars', data.stars, (s) => s.starId);\n register('eve_planets', data.planets, (p) => p.planetId);\n register('eve_moons', data.moons, (m) => m.moonId);\n register('eve_asteroid_belts', data.asteroidBelts, (a) => a.asteroidBeltId);\n register('eve_factions', data.factions, (f) => f.factionId);\n register('eve_races', data.races, (r) => r.raceId);\n register('eve_bloodlines', data.bloodlines, (b) => b.bloodlineId);\n register('eve_ancestries', data.ancestries, (a) => a.ancestryId);\n register(\n 'eve_npc_corporations',\n data.npcCorporations,\n (c) => c.corporationId,\n );\n register('eve_npc_stations', data.npcStations, (s) => s.stationId);\n register('eve_market_groups', data.marketGroups, (g) => g.marketGroupId);\n register('eve_meta_groups', data.metaGroups, (g) => g.metaGroupId);\n register('eve_icons', data.icons, (i) => i.iconId);\n register('eve_graphics', data.graphics, (g) => g.graphicId);\n register(\n 'eve_dogma_attributes',\n data.dogmaAttributes,\n (a) => a.attributeId,\n );\n register('eve_dogma_effects', data.dogmaEffects, (e) => e.effectId);\n register('eve_blueprints', data.blueprints, (b) => b.blueprintTypeId);\n register(\n 'eve_planet_schematics',\n data.planetSchematics,\n (s) => s.planetSchematicId,\n );\n register('eve_agent_types', data.agentTypes, (a) => a.agentTypeId);\n register('eve_agents_in_space', data.agentsInSpace, (a) => a.characterId);\n register('eve_certificates', data.certificates, (c) => c.certificateId);\n register(\n 'eve_character_attributes',\n data.characterAttributes,\n (c) => c.attributeId,\n );\n register('eve_clone_grades', data.cloneGrades, (c) => c.cloneGradeId);\n register(\n 'eve_corporation_activities',\n data.corporationActivities,\n (c) => c.corporationActivityId,\n );\n register(\n 'eve_dogma_attribute_categories',\n data.dogmaAttributeCategories,\n (d) => d.attributeCategoryId,\n );\n register('eve_dogma_units', data.dogmaUnits, (d) => d.unitId);\n register(\n 'eve_industry_activities',\n data.industryActivities,\n (i) => i.industryActivityId,\n );\n register('eve_landmarks', data.landmarks, (l) => l.landmarkId);\n register(\n 'eve_notification_types',\n data.notificationTypes,\n (n) => n.notificationTypeId,\n );\n register('eve_npc_characters', data.npcCharacters, (n) => n.characterId);\n register(\n 'eve_npc_corporation_divisions',\n data.npcCorporationDivisions,\n (n) => n.npcCorporationDivisionId,\n );\n register('eve_schools', data.schools, (s) => s.schoolId);\n register('eve_secondary_suns', data.secondarySuns, (s) => s.secondarySunId);\n register('eve_skins', data.skins, (s) => s.skinId);\n register('eve_skin_licenses', data.skinLicenses, (s) => s.licenseTypeId);\n register(\n 'eve_station_operations',\n data.stationOperations,\n (s) => s.stationOperationId,\n );\n register(\n 'eve_station_services',\n data.stationServices,\n (s) => s.stationServiceId,\n );\n register('eve_type_dogma', data.typeDogma, (t) => t.typeId);\n register('eve_type_materials', data.typeMaterials, (t) => t.typeId);\n register('eve_type_bonuses', data.typeBonuses, (t) => t.typeId);\n register('eve_missions', data.missions, (m) => m.missionId);\n register('eve_dungeons', data.dungeons, (d) => d.dungeonId);\n register('eve_epic_arcs', data.epicArcs, (e) => e.epicArcId);\n\n this.versionInfo = {\n version: data.version?.version ?? '1.0.0-test',\n buildDate: data.version?.buildDate ?? '2024-01-01T00:00:00Z',\n importedAt: data.version?.importedAt ?? '2024-01-01T00:00:00Z',\n checksum: data.version?.checksum,\n };\n }\n\n private getById<T>(table: string, id: number | string): T | null {\n return (this.data.get(table)?.get(id) as T) ?? null;\n }\n\n private getAllFrom<T>(table: string): T[] {\n const map = this.data.get(table);\n return map ? (Array.from(map.values()) as T[]) : [];\n }\n\n private filterBy<T>(table: string, field: string, value: unknown): T[] {\n return this.getAllFrom<T>(table).filter(\n (item) => (item as Record<string, unknown>)[field] === value,\n );\n }\n\n private searchBy<T>(\n table: string,\n field: string,\n query: string,\n limit = 25,\n ): T[] {\n const lowerQuery = query.toLowerCase();\n const results: T[] = [];\n for (const item of this.getAllFrom<T>(table)) {\n const val = (item as Record<string, unknown>)[field];\n if (typeof val === 'string' && val.toLowerCase().includes(lowerQuery)) {\n results.push(item);\n if (results.length >= limit) break;\n }\n }\n return results;\n }\n\n // --- Types, Groups, Categories ---\n getType(typeId: number): EveType | null {\n return this.getById('eve_types', typeId);\n }\n getTypesByGroup(groupId: number): EveType[] {\n return this.filterBy('eve_types', 'groupId', groupId);\n }\n getGroup(groupId: number): EveGroup | null {\n return this.getById('eve_groups', groupId);\n }\n getGroupsByCategory(categoryId: number): EveGroup[] {\n return this.filterBy('eve_groups', 'categoryId', categoryId);\n }\n getCategory(categoryId: number): EveCategory | null {\n return this.getById('eve_categories', categoryId);\n }\n getAllCategories(): EveCategory[] {\n return this.getAllFrom('eve_categories');\n }\n\n // --- Regions, Constellations, Solar Systems, Stargates ---\n getRegion(regionId: number): Region | null {\n return this.getById('eve_regions', regionId);\n }\n getAllRegions(): Region[] {\n return this.getAllFrom('eve_regions');\n }\n getConstellation(constellationId: number): Constellation | null {\n return this.getById('eve_constellations', constellationId);\n }\n getConstellationsByRegion(regionId: number): Constellation[] {\n return this.filterBy('eve_constellations', 'regionId', regionId);\n }\n getSolarSystem(systemId: number): SolarSystem | null {\n return this.getById('eve_solar_systems', systemId);\n }\n getSolarSystemsByConstellation(constellationId: number): SolarSystem[] {\n return this.filterBy(\n 'eve_solar_systems',\n 'constellationId',\n constellationId,\n );\n }\n getStargate(stargateId: number): Stargate | null {\n return this.getById('eve_stargates', stargateId);\n }\n getStargatesBySystem(systemId: number): Stargate[] {\n return this.filterBy('eve_stargates', 'solarSystemId', systemId);\n }\n\n // --- Search ---\n searchTypesByName(query: string, limit = 25): EveType[] {\n return this.searchBy('eve_types', 'name', query, limit);\n }\n searchSolarSystemsByName(query: string, limit = 25): SolarSystem[] {\n return this.searchBy('eve_solar_systems', 'name', query, limit);\n }\n\n // --- Universe ---\n getStar(starId: number): Star | null {\n return this.getById('eve_stars', starId);\n }\n getStarBySystem(systemId: number): Star | null {\n return (\n this.filterBy<Star>('eve_stars', 'solarSystemId', systemId)[0] ?? null\n );\n }\n getPlanet(planetId: number): Planet | null {\n return this.getById('eve_planets', planetId);\n }\n getPlanetsBySystem(systemId: number): Planet[] {\n return this.filterBy('eve_planets', 'solarSystemId', systemId);\n }\n getMoon(moonId: number): Moon | null {\n return this.getById('eve_moons', moonId);\n }\n getMoonsBySystem(systemId: number): Moon[] {\n return this.filterBy('eve_moons', 'solarSystemId', systemId);\n }\n getAsteroidBelt(asteroidBeltId: number): AsteroidBelt | null {\n return this.getById('eve_asteroid_belts', asteroidBeltId);\n }\n getAsteroidBeltsBySystem(systemId: number): AsteroidBelt[] {\n return this.filterBy('eve_asteroid_belts', 'solarSystemId', systemId);\n }\n\n // --- Character/Lore ---\n getFaction(factionId: number): Faction | null {\n return this.getById('eve_factions', factionId);\n }\n getAllFactions(): Faction[] {\n return this.getAllFrom('eve_factions');\n }\n getRace(raceId: number): Race | null {\n return this.getById('eve_races', raceId);\n }\n getAllRaces(): Race[] {\n return this.getAllFrom('eve_races');\n }\n getBloodline(bloodlineId: number): Bloodline | null {\n return this.getById('eve_bloodlines', bloodlineId);\n }\n getBloodlinesByRace(raceId: number): Bloodline[] {\n return this.filterBy('eve_bloodlines', 'raceId', raceId);\n }\n getAncestry(ancestryId: number): Ancestry | null {\n return this.getById('eve_ancestries', ancestryId);\n }\n getAncestriesByBloodline(bloodlineId: number): Ancestry[] {\n return this.filterBy('eve_ancestries', 'bloodlineId', bloodlineId);\n }\n\n // --- NPC Infrastructure ---\n getNpcCorporation(corporationId: number): NpcCorporation | null {\n return this.getById('eve_npc_corporations', corporationId);\n }\n getNpcCorporationsByFaction(factionId: number): NpcCorporation[] {\n return this.filterBy('eve_npc_corporations', 'factionId', factionId);\n }\n getNpcStation(stationId: number): NpcStation | null {\n return this.getById('eve_npc_stations', stationId);\n }\n getNpcStationsBySystem(systemId: number): NpcStation[] {\n return this.filterBy('eve_npc_stations', 'solarSystemId', systemId);\n }\n getNpcStationsByOwner(ownerId: number): NpcStation[] {\n return this.filterBy('eve_npc_stations', 'ownerId', ownerId);\n }\n\n // --- Market ---\n getMarketGroup(marketGroupId: number): MarketGroup | null {\n return this.getById('eve_market_groups', marketGroupId);\n }\n getMarketGroupsByParent(parentGroupId: number): MarketGroup[] {\n return this.filterBy('eve_market_groups', 'parentGroupId', parentGroupId);\n }\n getRootMarketGroups(): MarketGroup[] {\n return this.getAllFrom<MarketGroup>('eve_market_groups').filter(\n (g) => g.parentGroupId === null,\n );\n }\n getTypesByMarketGroup(marketGroupId: number): EveType[] {\n return this.filterBy('eve_types', 'marketGroupId', marketGroupId);\n }\n searchMarketGroupsByName(query: string, limit = 25): MarketGroup[] {\n return this.searchBy('eve_market_groups', 'name', query, limit);\n }\n\n // --- Meta/UI ---\n getMetaGroup(metaGroupId: number): MetaGroup | null {\n return this.getById('eve_meta_groups', metaGroupId);\n }\n getAllMetaGroups(): MetaGroup[] {\n return this.getAllFrom('eve_meta_groups');\n }\n getIcon(iconId: number): Icon | null {\n return this.getById('eve_icons', iconId);\n }\n getGraphic(graphicId: number): Graphic | null {\n return this.getById('eve_graphics', graphicId);\n }\n\n // --- Dogma ---\n getDogmaAttribute(attributeId: number): DogmaAttribute | null {\n return this.getById('eve_dogma_attributes', attributeId);\n }\n searchDogmaAttributesByName(query: string, limit = 25): DogmaAttribute[] {\n return this.searchBy('eve_dogma_attributes', 'name', query, limit);\n }\n getDogmaEffect(effectId: number): DogmaEffect | null {\n return this.getById('eve_dogma_effects', effectId);\n }\n searchDogmaEffectsByName(query: string, limit = 25): DogmaEffect[] {\n return this.searchBy('eve_dogma_effects', 'name', query, limit);\n }\n getDogmaAttributeCategory(\n attributeCategoryId: number,\n ): DogmaAttributeCategory | null {\n return this.getById('eve_dogma_attribute_categories', attributeCategoryId);\n }\n getAllDogmaAttributeCategories(): DogmaAttributeCategory[] {\n return this.getAllFrom('eve_dogma_attribute_categories');\n }\n getDogmaUnit(unitId: number): DogmaUnit | null {\n return this.getById('eve_dogma_units', unitId);\n }\n getAllDogmaUnits(): DogmaUnit[] {\n return this.getAllFrom('eve_dogma_units');\n }\n\n // --- Industry ---\n getBlueprint(blueprintTypeId: number): Blueprint | null {\n return this.getById('eve_blueprints', blueprintTypeId);\n }\n getPlanetSchematic(planetSchematicId: number): PlanetSchematic | null {\n return this.getById('eve_planet_schematics', planetSchematicId);\n }\n getAllPlanetSchematics(): PlanetSchematic[] {\n return this.getAllFrom('eve_planet_schematics');\n }\n getIndustryActivity(industryActivityId: number): IndustryActivity | null {\n return this.getById('eve_industry_activities', industryActivityId);\n }\n getAllIndustryActivities(): IndustryActivity[] {\n return this.getAllFrom('eve_industry_activities');\n }\n\n // --- Agent System ---\n getAgentType(agentTypeId: number): AgentType | null {\n return this.getById('eve_agent_types', agentTypeId);\n }\n getAllAgentTypes(): AgentType[] {\n return this.getAllFrom('eve_agent_types');\n }\n getAgentInSpace(characterId: number): AgentInSpace | null {\n return this.getById('eve_agents_in_space', characterId);\n }\n getAgentsInSpaceBySystem(systemId: number): AgentInSpace[] {\n return this.filterBy('eve_agents_in_space', 'solarSystemId', systemId);\n }\n\n // --- Certificates ---\n getCertificate(certificateId: number): Certificate | null {\n return this.getById('eve_certificates', certificateId);\n }\n getAllCertificates(): Certificate[] {\n return this.getAllFrom('eve_certificates');\n }\n\n // --- Character Attributes ---\n getCharacterAttribute(attributeId: number): CharacterAttribute | null {\n return this.getById('eve_character_attributes', attributeId);\n }\n getAllCharacterAttributes(): CharacterAttribute[] {\n return this.getAllFrom('eve_character_attributes');\n }\n\n // --- NPC Characters ---\n getNpcCharacter(characterId: number): NpcCharacter | null {\n return this.getById('eve_npc_characters', characterId);\n }\n getNpcCharactersByCorporation(corporationId: number): NpcCharacter[] {\n return this.filterBy('eve_npc_characters', 'corporationId', corporationId);\n }\n searchNpcCharactersByName(query: string, limit = 25): NpcCharacter[] {\n return this.searchBy('eve_npc_characters', 'name', query, limit);\n }\n\n // --- Clone Grades ---\n getCloneGrade(cloneGradeId: number): CloneGrade | null {\n return this.getById('eve_clone_grades', cloneGradeId);\n }\n getAllCloneGrades(): CloneGrade[] {\n return this.getAllFrom('eve_clone_grades');\n }\n\n // --- Corporation Reference ---\n getCorporationActivity(\n corporationActivityId: number,\n ): CorporationActivity | null {\n return this.getById('eve_corporation_activities', corporationActivityId);\n }\n getAllCorporationActivities(): CorporationActivity[] {\n return this.getAllFrom('eve_corporation_activities');\n }\n getNpcCorporationDivision(\n npcCorporationDivisionId: number,\n ): NpcCorporationDivision | null {\n return this.getById(\n 'eve_npc_corporation_divisions',\n npcCorporationDivisionId,\n );\n }\n getAllNpcCorporationDivisions(): NpcCorporationDivision[] {\n return this.getAllFrom('eve_npc_corporation_divisions');\n }\n\n // --- Landmarks ---\n getLandmark(landmarkId: number): Landmark | null {\n return this.getById('eve_landmarks', landmarkId);\n }\n getAllLandmarks(): Landmark[] {\n return this.getAllFrom('eve_landmarks');\n }\n\n // --- Notifications ---\n getNotificationType(notificationTypeId: number): NotificationType | null {\n return this.getById('eve_notification_types', notificationTypeId);\n }\n\n // --- Schools ---\n getSchool(schoolId: number): School | null {\n return this.getById('eve_schools', schoolId);\n }\n getAllSchools(): School[] {\n return this.getAllFrom('eve_schools');\n }\n\n // --- Secondary Suns ---\n getSecondarySun(secondarySunId: number): SecondarySun | null {\n return this.getById('eve_secondary_suns', secondarySunId);\n }\n getSecondarySunsBySystem(systemId: number): SecondarySun[] {\n return this.filterBy('eve_secondary_suns', 'solarSystemId', systemId);\n }\n\n // --- Skins ---\n getSkin(skinId: number): Skin | null {\n return this.getById('eve_skins', skinId);\n }\n getSkinLicense(licenseTypeId: number): SkinLicense | null {\n return this.getById('eve_skin_licenses', licenseTypeId);\n }\n getSkinLicensesBySkin(skinId: number): SkinLicense[] {\n return this.filterBy('eve_skin_licenses', 'skinId', skinId);\n }\n\n // --- Station Operations & Services ---\n getStationOperation(stationOperationId: number): StationOperation | null {\n return this.getById('eve_station_operations', stationOperationId);\n }\n getAllStationOperations(): StationOperation[] {\n return this.getAllFrom('eve_station_operations');\n }\n getStationService(stationServiceId: number): StationService | null {\n return this.getById('eve_station_services', stationServiceId);\n }\n getAllStationServices(): StationService[] {\n return this.getAllFrom('eve_station_services');\n }\n\n // --- Type Extensions ---\n getTypeDogma(typeId: number): TypeDogma | null {\n return this.getById('eve_type_dogma', typeId);\n }\n getTypeMaterial(typeId: number): TypeMaterial | null {\n return this.getById('eve_type_materials', typeId);\n }\n getTypeBonus(typeId: number): TypeBonus | null {\n return this.getById('eve_type_bonuses', typeId);\n }\n\n // --- Missions & Content ---\n getMission(missionId: number): Mission | null {\n return this.getById('eve_missions', missionId);\n }\n getDungeon(dungeonId: number): Dungeon | null {\n return this.getById('eve_dungeons', dungeonId);\n }\n getEpicArc(epicArcId: number): EpicArc | null {\n return this.getById('eve_epic_arcs', epicArcId);\n }\n getAllEpicArcs(): EpicArc[] {\n return this.getAllFrom('eve_epic_arcs');\n }\n\n // --- Generic accessor ---\n getEntity<T = Record<string, unknown>>(\n tableName: string,\n id: number | string,\n ): T | null {\n return this.getById<T>(tableName, id);\n }\n\n getAllEntities<T = Record<string, unknown>>(tableName: string): T[] {\n return this.getAllFrom<T>(tableName);\n }\n\n // --- Version & Lifecycle ---\n getVersion(): SdeVersionInfo {\n return { ...this.versionInfo };\n }\n\n close(): void {\n this.data.clear();\n }\n}\n","import type {\n EveType,\n EveGroup,\n EveCategory,\n Region,\n Constellation,\n SolarSystem,\n Stargate,\n Star,\n Planet,\n Moon,\n AsteroidBelt,\n Faction,\n Race,\n Bloodline,\n Ancestry,\n NpcCorporation,\n NpcStation,\n MarketGroup,\n MetaGroup,\n Icon,\n Graphic,\n DogmaAttribute,\n DogmaEffect,\n Blueprint,\n PlanetSchematic,\n} from './types';\nimport type { SdeVersionInfo } from './version';\nimport type { MemorySdeData } from './MemorySdeProvider';\n\nexport class SdeTestDataFactory {\n static createEveType(overrides: Partial<EveType> = {}): EveType {\n return {\n typeId: 34,\n groupId: 18,\n mass: 1,\n name: 'Tritanium',\n portionSize: 1,\n published: true,\n packagedVolume: null,\n volume: 0.01,\n radius: null,\n description: 'The most common mineral in the known universe.',\n graphicId: 20,\n soundId: null,\n iconId: null,\n raceId: null,\n basePrice: 4,\n marketGroupId: 1857,\n capacity: null,\n isRepackable: null,\n ...overrides,\n };\n }\n\n static createEveGroup(overrides: Partial<EveGroup> = {}): EveGroup {\n return {\n groupId: 18,\n anchorable: false,\n anchored: false,\n categoryId: 4,\n fittableNonSingleton: false,\n name: 'Mineral',\n published: true,\n useBasePrice: true,\n iconId: null,\n ...overrides,\n };\n }\n\n static createEveCategory(overrides: Partial<EveCategory> = {}): EveCategory {\n return {\n categoryId: 4,\n name: 'Material',\n published: true,\n iconId: null,\n ...overrides,\n };\n }\n\n static createRegion(overrides: Partial<Region> = {}): Region {\n return {\n regionId: 10000002,\n constellationIDs: [20000020],\n description: 'The Forge is the industrial heart of the Caldari State.',\n factionId: 500001,\n name: 'The Forge',\n nebulaId: 10,\n position: { x: -9.6e16, y: 6.0e16, z: -1.1e17 },\n wormholeClassId: 0,\n ...overrides,\n };\n }\n\n static createConstellation(\n overrides: Partial<Constellation> = {},\n ): Constellation {\n return {\n constellationId: 20000020,\n factionId: 500001,\n name: 'Kimotoro',\n position: { x: -9.7e16, y: 6.1e16, z: -1.15e17 },\n regionId: 10000002,\n solarSystemIDs: [30000142, 30000144],\n wormholeClassId: 0,\n ...overrides,\n };\n }\n\n static createSolarSystem(overrides: Partial<SolarSystem> = {}): SolarSystem {\n return {\n systemId: 30000142,\n border: false,\n constellationId: 20000020,\n hub: true,\n international: false,\n luminosity: 0.02142,\n name: 'Jita',\n planetIDs: [40009077],\n position: { x: -1.29e17, y: 6.07e16, z: -1.12e17 },\n position2D: { x: -1.29e17, y: -1.12e17 },\n radius: 4.67e12,\n regionId: 10000002,\n regional: false,\n securityClass: 'B',\n securityStatus: 0.9459991455078125,\n starId: 40009082,\n stargateIDs: [50001248],\n corridor: null,\n fringe: null,\n wormholeClassId: null,\n visualEffect: null,\n ...overrides,\n };\n }\n\n static createStargate(overrides: Partial<Stargate> = {}): Stargate {\n return {\n stargateId: 50001248,\n destination: { solarSystemId: 30000144, stargateId: 50001249 },\n position: { x: 1.5e12, y: 3.2e11, z: -8.7e11 },\n solarSystemId: 30000142,\n typeId: 16,\n ...overrides,\n };\n }\n\n static createStar(overrides: Partial<Star> = {}): Star {\n return {\n starId: 40009082,\n radius: 346600000,\n solarSystemId: 30000142,\n statistics: {\n age: 76000000000,\n life: 100000000000,\n luminosity: 0.02142,\n locked: false,\n spectralClass: 'K7 V',\n temperature: 4000,\n },\n typeId: 3796,\n ...overrides,\n };\n }\n\n static createPlanet(overrides: Partial<Planet> = {}): Planet {\n return {\n planetId: 40009077,\n asteroidBeltIDs: [40009079],\n attributes: {},\n celestialIndex: 1,\n moonIDs: [40009078],\n orbitId: 40009082,\n position: { x: 1.2e13, y: 1e11, z: -3.5e12 },\n radius: 2330000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 2015,\n npcStationIDs: null,\n ...overrides,\n };\n }\n\n static createMoon(overrides: Partial<Moon> = {}): Moon {\n return {\n moonId: 40009078,\n attributes: {},\n celestialIndex: 1,\n orbitId: 40009077,\n orbitIndex: 1,\n position: { x: 1.21e13, y: 1.01e11, z: -3.51e12 },\n radius: 240000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 14,\n npcStationIDs: null,\n ...overrides,\n };\n }\n\n static createAsteroidBelt(\n overrides: Partial<AsteroidBelt> = {},\n ): AsteroidBelt {\n return {\n asteroidBeltId: 40009079,\n celestialIndex: 1,\n orbitId: 40009077,\n orbitIndex: 1,\n position: { x: 1.19e13, y: 9.9e10, z: -3.49e12 },\n radius: 50000,\n solarSystemId: 30000142,\n statistics: {},\n typeId: 15,\n ...overrides,\n };\n }\n\n static createFaction(overrides: Partial<Faction> = {}): Faction {\n return {\n factionId: 500001,\n corporationId: 1000035,\n description: 'The Caldari State is a corporate dictatorship.',\n flatLogo: 'res:/ui/texture/corps/caldari.png',\n flatLogoWithName: 'res:/ui/texture/corps/caldari_name.png',\n iconId: 1439,\n memberRaces: [1],\n militiaCorporationId: 1000180,\n name: 'Caldari State',\n shortDescription: 'Caldari',\n sizeFactor: 5,\n solarSystemId: 30000142,\n uniqueName: true,\n ...overrides,\n };\n }\n\n static createRace(overrides: Partial<Race> = {}): Race {\n return {\n raceId: 1,\n description: 'The Caldari State is a corporate dictatorship.',\n iconId: 1439,\n name: 'Caldari',\n shipTypeId: 601,\n skills: {},\n ...overrides,\n };\n }\n\n static createBloodline(overrides: Partial<Bloodline> = {}): Bloodline {\n return {\n bloodlineId: 1,\n charisma: 3,\n corporationId: 1000006,\n description: 'The Deteis are regarded as the face of the Caldari State.',\n iconId: 1383,\n intelligence: 7,\n memory: 7,\n name: 'Deteis',\n perception: 5,\n raceId: 1,\n willpower: 5,\n ...overrides,\n };\n }\n\n static createAncestry(overrides: Partial<Ancestry> = {}): Ancestry {\n return {\n ancestryId: 1,\n bloodlineId: 1,\n charisma: 0,\n description: 'Born and raised in a capsule.',\n iconId: 1664,\n intelligence: 0,\n memory: 0,\n name: 'Tube Child',\n perception: 0,\n shortDescription: 'Raised in a capsule.',\n willpower: 2,\n ...overrides,\n };\n }\n\n static createNpcCorporation(\n overrides: Partial<NpcCorporation> = {},\n ): NpcCorporation {\n return {\n corporationId: 1000035,\n ceoId: 3004451,\n deleted: false,\n description: 'The Caldari Navy is the armed forces of the Caldari State.',\n extent: 'G',\n hasPlayerPersonnelManager: false,\n initialPrice: 0,\n memberLimit: 0,\n minSecurity: 0,\n minimumJoinStanding: 0,\n name: 'Caldari Navy',\n sendCharTerminationMessage: true,\n shares: 100000,\n size: 'H',\n stationId: 60003760,\n taxRate: 0,\n tickerName: 'CN',\n uniqueName: true,\n allowedMemberRaces: null,\n corporationTrades: null,\n divisions: null,\n enemyId: null,\n factionId: 500001,\n friendId: null,\n iconId: 1439,\n investors: null,\n lpOfferTables: null,\n mainActivityId: null,\n raceId: 1,\n sizeFactor: null,\n solarSystemId: 30000142,\n secondaryActivityId: null,\n ...overrides,\n };\n }\n\n static createNpcStation(overrides: Partial<NpcStation> = {}): NpcStation {\n return {\n stationId: 60003760,\n celestialIndex: 4,\n operationId: 1,\n orbitId: 40009081,\n orbitIndex: 4,\n ownerId: 1000035,\n position: { x: 1.58e14, y: 9.63e12, z: 1.06e14 },\n reprocessingEfficiency: 0.5,\n reprocessingHangarFlag: 4,\n reprocessingStationsTake: 0.05,\n solarSystemId: 30000142,\n typeId: 1529,\n useOperationName: true,\n ...overrides,\n };\n }\n\n static createMarketGroup(overrides: Partial<MarketGroup> = {}): MarketGroup {\n return {\n marketGroupId: 1857,\n description: 'Refined minerals used in manufacturing.',\n hasTypes: true,\n iconId: 22,\n name: 'Minerals',\n parentGroupId: 1031,\n ...overrides,\n };\n }\n\n static createMetaGroup(overrides: Partial<MetaGroup> = {}): MetaGroup {\n return {\n metaGroupId: 1,\n color: { r: 255, g: 255, b: 255, a: 255 },\n name: 'Tech I',\n iconId: null,\n iconSuffix: null,\n description: null,\n ...overrides,\n };\n }\n\n static createIcon(overrides: Partial<Icon> = {}): Icon {\n return {\n iconId: 22,\n iconFile: 'res:/UI/Texture/Icons/22_32_2.png',\n ...overrides,\n };\n }\n\n static createGraphic(overrides: Partial<Graphic> = {}): Graphic {\n return {\n graphicId: 20,\n graphicFile: 'res:/dx9/model/worldobject/asteroid/oreveld001.red',\n iconFolder: null,\n sofFactionName: null,\n sofHullName: null,\n sofRaceName: null,\n ...overrides,\n };\n }\n\n static createDogmaAttribute(\n overrides: Partial<DogmaAttribute> = {},\n ): DogmaAttribute {\n return {\n attributeId: 9,\n attributeCategoryId: 1,\n dataType: 2,\n defaultValue: 0,\n description: 'Hit points for a ship.',\n displayWhenZero: false,\n highIsGood: true,\n name: 'hp',\n published: true,\n stackable: false,\n displayName: null,\n iconId: null,\n tooltipDescription: null,\n tooltipTitle: null,\n unitId: 1,\n chargeRechargeTimeId: null,\n maxAttributeId: null,\n minAttributeId: null,\n ...overrides,\n };\n }\n\n static createDogmaEffect(overrides: Partial<DogmaEffect> = {}): DogmaEffect {\n return {\n effectId: 11,\n disallowAutoRepeat: false,\n dischargeAttributeId: 0,\n durationAttributeId: 0,\n effectCategoryId: 0,\n electronicChance: false,\n guid: 'effects.LowSlotModifier',\n isAssistance: false,\n isOffensive: false,\n isWarpSafe: true,\n name: 'lowSlotModifier',\n propulsionChance: false,\n published: true,\n rangeChance: false,\n distribution: null,\n falloffAttributeId: null,\n rangeAttributeId: null,\n trackingSpeedAttributeId: null,\n description: null,\n displayName: null,\n iconId: null,\n modifierInfo: null,\n ...overrides,\n };\n }\n\n static createBlueprint(overrides: Partial<Blueprint> = {}): Blueprint {\n return {\n activities: {\n manufacturing: {\n time: 6000,\n materials: [\n { typeId: 34, quantity: 100 },\n { typeId: 35, quantity: 50 },\n ],\n products: [{ typeId: 587, quantity: 1 }],\n },\n },\n blueprintTypeId: 787,\n maxProductionLimit: 10,\n ...overrides,\n };\n }\n\n static createPlanetSchematic(\n overrides: Partial<PlanetSchematic> = {},\n ): PlanetSchematic {\n return {\n planetSchematicId: 65,\n cycleTime: 1800,\n name: 'Bacteria',\n pins: [],\n types: [],\n ...overrides,\n };\n }\n\n static createVersionInfo(\n overrides: Partial<SdeVersionInfo> = {},\n ): SdeVersionInfo {\n return {\n version: '2024-01-15.1',\n buildDate: '2024-01-15T00:00:00Z',\n importedAt: '2024-01-16T12:00:00Z',\n checksum: 'abc123def456',\n ...overrides,\n };\n }\n\n static createHierarchicalTestData(): MemorySdeData {\n const category = this.createEveCategory();\n const group = this.createEveGroup({ categoryId: category.categoryId });\n const type1 = this.createEveType({\n typeId: 34,\n name: 'Tritanium',\n groupId: group.groupId,\n });\n const type2 = this.createEveType({\n typeId: 35,\n name: 'Pyerite',\n groupId: group.groupId,\n });\n const type3 = this.createEveType({\n typeId: 36,\n name: 'Mexallon',\n groupId: group.groupId,\n });\n\n const region = this.createRegion();\n const constellation = this.createConstellation({\n regionId: region.regionId,\n });\n const system1 = this.createSolarSystem({\n systemId: 30000142,\n name: 'Jita',\n constellationId: constellation.constellationId,\n regionId: region.regionId,\n });\n const system2 = this.createSolarSystem({\n systemId: 30000144,\n name: 'Perimeter',\n constellationId: constellation.constellationId,\n regionId: region.regionId,\n securityStatus: 0.9,\n });\n const stargate = this.createStargate({\n solarSystemId: system1.systemId,\n destination: { solarSystemId: system2.systemId, stargateId: 50001249 },\n });\n\n const star = this.createStar({ solarSystemId: system1.systemId });\n const planet = this.createPlanet({ solarSystemId: system1.systemId });\n const moon = this.createMoon({ solarSystemId: system1.systemId });\n const asteroidBelt = this.createAsteroidBelt({\n solarSystemId: system1.systemId,\n });\n\n const race = this.createRace();\n const faction = this.createFaction({ memberRaces: [race.raceId] });\n const bloodline = this.createBloodline({ raceId: race.raceId });\n const ancestry = this.createAncestry({\n bloodlineId: bloodline.bloodlineId,\n });\n const npcCorp = this.createNpcCorporation({\n factionId: faction.factionId,\n raceId: race.raceId,\n });\n const npcStation = this.createNpcStation({\n solarSystemId: system1.systemId,\n ownerId: npcCorp.corporationId,\n });\n\n const rootMarketGroup = this.createMarketGroup({\n marketGroupId: 1031,\n name: 'Manufacture & Research',\n parentGroupId: null,\n hasTypes: false,\n });\n const marketGroup = this.createMarketGroup({\n parentGroupId: rootMarketGroup.marketGroupId,\n });\n const metaGroup = this.createMetaGroup();\n const icon = this.createIcon();\n const graphic = this.createGraphic();\n\n const dogmaAttribute = this.createDogmaAttribute();\n const dogmaEffect = this.createDogmaEffect();\n const blueprint = this.createBlueprint();\n const planetSchematic = this.createPlanetSchematic();\n\n return {\n categories: [category],\n groups: [group],\n types: [type1, type2, type3],\n regions: [region],\n constellations: [constellation],\n solarSystems: [system1, system2],\n stargates: [stargate],\n stars: [star],\n planets: [planet],\n moons: [moon],\n asteroidBelts: [asteroidBelt],\n factions: [faction],\n races: [race],\n bloodlines: [bloodline],\n ancestries: [ancestry],\n npcCorporations: [npcCorp],\n npcStations: [npcStation],\n marketGroups: [rootMarketGroup, marketGroup],\n metaGroups: [metaGroup],\n icons: [icon],\n graphics: [graphic],\n dogmaAttributes: [dogmaAttribute],\n dogmaEffects: [dogmaEffect],\n blueprints: [blueprint],\n planetSchematics: [planetSchematic],\n version: this.createVersionInfo(),\n };\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+
8
+
9
+ exports.__export = __export;
10
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-PZ5AY32C.js"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;AAChC,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACE;AACF,4BAAC","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-PZ5AY32C.js"}
@@ -0,0 +1,71 @@
1
+ // src/auth/errors.ts
2
+ var AuthError = class extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = "AuthError";
6
+ }
7
+ };
8
+ var SsoError = class extends AuthError {
9
+ statusCode;
10
+ errorCode;
11
+ errorDescription;
12
+ constructor(statusCode, errorCode, errorDescription) {
13
+ const detail = errorDescription ? `: ${errorDescription}` : "";
14
+ super(`EVE SSO request failed (${statusCode} ${errorCode})${detail}`);
15
+ this.name = "SsoError";
16
+ this.statusCode = statusCode;
17
+ this.errorCode = errorCode;
18
+ this.errorDescription = errorDescription;
19
+ }
20
+ /** True for statuses where the same request can be retried later. */
21
+ isRetryable() {
22
+ return this.statusCode === 429 || this.statusCode >= 500;
23
+ }
24
+ };
25
+ var TokenRevokedError = class extends AuthError {
26
+ characterId;
27
+ constructor(message, characterId) {
28
+ super(message);
29
+ this.name = "TokenRevokedError";
30
+ this.characterId = characterId;
31
+ }
32
+ };
33
+ var TokenDecodeError = class extends AuthError {
34
+ constructor(message) {
35
+ super(message);
36
+ this.name = "TokenDecodeError";
37
+ }
38
+ };
39
+ var CharacterNotFoundError = class extends AuthError {
40
+ characterId;
41
+ constructor(characterId) {
42
+ super(`No token stored for character ${characterId}`);
43
+ this.name = "CharacterNotFoundError";
44
+ this.characterId = characterId;
45
+ }
46
+ };
47
+ function isAuthError(error) {
48
+ return error instanceof AuthError;
49
+ }
50
+ function isSsoError(error) {
51
+ return error instanceof SsoError;
52
+ }
53
+ function isTokenRevoked(error) {
54
+ return error instanceof TokenRevokedError;
55
+ }
56
+ function isCharacterNotFound(error) {
57
+ return error instanceof CharacterNotFoundError;
58
+ }
59
+
60
+ export {
61
+ AuthError,
62
+ SsoError,
63
+ TokenRevokedError,
64
+ TokenDecodeError,
65
+ CharacterNotFoundError,
66
+ isAuthError,
67
+ isSsoError,
68
+ isTokenRevoked,
69
+ isCharacterNotFound
70
+ };
71
+ //# sourceMappingURL=chunk-R7D7M2LQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/auth/errors.ts"],"sourcesContent":["/** Base class for every error raised by the auth subsystem. */\nexport class AuthError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AuthError';\n }\n}\n\n/**\n * EVE SSO answered a token or revoke request with a non-2xx status.\n *\n * `errorCode` is the OAuth2 `error` field from the response body\n * (`invalid_client`, `invalid_request`, ...) or `unknown` when the body could\n * not be parsed. `statusCode` is the HTTP status.\n */\nexport class SsoError extends AuthError {\n public readonly statusCode: number;\n public readonly errorCode: string;\n public readonly errorDescription?: string;\n\n constructor(\n statusCode: number,\n errorCode: string,\n errorDescription?: string,\n ) {\n const detail = errorDescription ? `: ${errorDescription}` : '';\n super(`EVE SSO request failed (${statusCode} ${errorCode})${detail}`);\n this.name = 'SsoError';\n this.statusCode = statusCode;\n this.errorCode = errorCode;\n this.errorDescription = errorDescription;\n }\n\n /** True for statuses where the same request can be retried later. */\n isRetryable(): boolean {\n return this.statusCode === 429 || this.statusCode >= 500;\n }\n}\n\n/**\n * The refresh token is no longer accepted by SSO (`invalid_grant`), or the\n * manager has already recorded that outcome for the character. The character\n * must log in again; retrying cannot help.\n */\nexport class TokenRevokedError extends AuthError {\n public readonly characterId?: number;\n\n constructor(message: string, characterId?: number) {\n super(message);\n this.name = 'TokenRevokedError';\n this.characterId = characterId;\n }\n}\n\n/** A JWT access token could not be decoded into the claims the manager needs. */\nexport class TokenDecodeError extends AuthError {\n constructor(message: string) {\n super(message);\n this.name = 'TokenDecodeError';\n }\n}\n\n/** No token is stored for the requested character. */\nexport class CharacterNotFoundError extends AuthError {\n public readonly characterId: number;\n\n constructor(characterId: number) {\n super(`No token stored for character ${characterId}`);\n this.name = 'CharacterNotFoundError';\n this.characterId = characterId;\n }\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return error instanceof AuthError;\n}\n\nexport function isSsoError(error: unknown): error is SsoError {\n return error instanceof SsoError;\n}\n\nexport function isTokenRevoked(error: unknown): error is TokenRevokedError {\n return error instanceof TokenRevokedError;\n}\n\nexport function isCharacterNotFound(\n error: unknown,\n): error is CharacterNotFoundError {\n return error instanceof CharacterNotFoundError;\n}\n"],"mappings":";AACO,IAAM,YAAN,cAAwB,MAAM;AAAA,EACnC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AASO,IAAM,WAAN,cAAuB,UAAU;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YACE,YACA,WACA,kBACA;AACA,UAAM,SAAS,mBAAmB,KAAK,gBAAgB,KAAK;AAC5D,UAAM,2BAA2B,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE;AACpE,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,mBAAmB;AAAA,EAC1B;AAAA;AAAA,EAGA,cAAuB;AACrB,WAAO,KAAK,eAAe,OAAO,KAAK,cAAc;AAAA,EACvD;AACF;AAOO,IAAM,oBAAN,cAAgC,UAAU;AAAA,EAC/B;AAAA,EAEhB,YAAY,SAAiB,aAAsB;AACjD,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,cAAc;AAAA,EACrB;AACF;AAGO,IAAM,mBAAN,cAA+B,UAAU;AAAA,EAC9C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAGO,IAAM,yBAAN,cAAqC,UAAU;AAAA,EACpC;AAAA,EAEhB,YAAY,aAAqB;AAC/B,UAAM,iCAAiC,WAAW,EAAE;AACpD,SAAK,OAAO;AACZ,SAAK,cAAc;AAAA,EACrB;AACF;AAEO,SAAS,YAAY,OAAoC;AAC9D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,WAAW,OAAmC;AAC5D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,eAAe,OAA4C;AACzE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,oBACd,OACiC;AACjC,SAAO,iBAAiB;AAC1B;","names":[]}