@lgriffin/esi.ts 10.2.0 → 11.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 (431) hide show
  1. package/CHANGELOG.md +414 -32
  2. package/LICENSE +667 -19
  3. package/NOTICE +19 -0
  4. package/README.md +149 -902
  5. package/dist/EsiClient.d.mts +5 -36
  6. package/dist/EsiClient.d.ts +5 -36
  7. package/dist/EsiClient.d.ts.map +1 -1
  8. package/dist/EsiClientBuilder.d.mts +128 -1
  9. package/dist/EsiClientBuilder.d.ts +128 -1
  10. package/dist/EsiClientBuilder.d.ts.map +1 -1
  11. package/dist/adapters/PipelineTransport.d.ts +16 -0
  12. package/dist/adapters/PipelineTransport.d.ts.map +1 -0
  13. package/dist/auth/EsiTokenManager.d.mts +62 -21
  14. package/dist/auth/EsiTokenManager.d.ts +62 -21
  15. package/dist/auth/EsiTokenManager.d.ts.map +1 -1
  16. package/dist/auth/EveSsoClient.d.mts +9 -9
  17. package/dist/auth/EveSsoClient.d.ts +9 -9
  18. package/dist/auth/EveSsoClient.d.ts.map +1 -1
  19. package/dist/auth/errors.d.mts +2 -2
  20. package/dist/auth/errors.d.ts +2 -2
  21. package/dist/auth/errors.d.ts.map +1 -1
  22. package/dist/auth/jwt.d.mts +7 -7
  23. package/dist/auth/jwt.d.ts +7 -7
  24. package/dist/auth/jwt.d.ts.map +1 -1
  25. package/dist/auth/storage/FileTokenStorage.d.mts +1 -1
  26. package/dist/auth/storage/FileTokenStorage.d.ts +1 -1
  27. package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -1
  28. package/dist/{chunk-BBSHKVPI.js → chunk-CM63VGGF.js} +1 -1
  29. package/dist/chunk-CM63VGGF.js.map +1 -0
  30. package/dist/chunk-DFRTIZK4.js +275 -0
  31. package/dist/chunk-DFRTIZK4.js.map +1 -0
  32. package/dist/{chunk-VZS32UQ3.mjs → chunk-HXS7ZVEL.mjs} +129 -28
  33. package/dist/chunk-HXS7ZVEL.mjs.map +1 -0
  34. package/dist/chunk-JNFQXEWZ.mjs +275 -0
  35. package/dist/chunk-JNFQXEWZ.mjs.map +1 -0
  36. package/dist/chunk-KIY3XA5Q.mjs +2980 -0
  37. package/dist/chunk-KIY3XA5Q.mjs.map +1 -0
  38. package/dist/{chunk-R7D7M2LQ.mjs → chunk-MGOE2YNH.mjs} +1 -1
  39. package/dist/chunk-MGOE2YNH.mjs.map +1 -0
  40. package/dist/{chunk-SAQBXXTM.js → chunk-MRKZ55XI.js} +130 -29
  41. package/dist/chunk-MRKZ55XI.js.map +1 -0
  42. package/dist/chunk-NKFIHGC6.js +2980 -0
  43. package/dist/chunk-NKFIHGC6.js.map +1 -0
  44. package/dist/{chunk-MSJHIJXA.js → chunk-S73PKM2Y.js} +20 -5
  45. package/dist/chunk-S73PKM2Y.js.map +1 -0
  46. package/dist/{chunk-3ZI5A37L.mjs → chunk-YUHGSPQ7.mjs} +19 -4
  47. package/dist/chunk-YUHGSPQ7.mjs.map +1 -0
  48. package/dist/client/identity.d.mts +20 -0
  49. package/dist/client/identity.d.ts +20 -0
  50. package/dist/client/identity.d.ts.map +1 -0
  51. package/dist/client/index.d.mts +11 -0
  52. package/dist/client/index.d.ts +11 -0
  53. package/dist/client/index.d.ts.map +1 -0
  54. package/dist/client/index.js +6607 -0
  55. package/dist/client/index.js.map +1 -0
  56. package/dist/client/index.mjs +6607 -0
  57. package/dist/client/index.mjs.map +1 -0
  58. package/dist/client/runtime.d.mts +67 -0
  59. package/dist/client/runtime.d.ts +67 -0
  60. package/dist/client/runtime.d.ts.map +1 -0
  61. package/dist/clients/BaseEsiClient.d.ts.map +1 -1
  62. package/dist/clients/ClientRegistry.d.mts +45 -0
  63. package/dist/clients/ClientRegistry.d.ts +45 -0
  64. package/dist/clients/ClientRegistry.d.ts.map +1 -0
  65. package/dist/clients/CorporationsClient.d.mts +3 -3
  66. package/dist/clients/CorporationsClient.d.ts +3 -3
  67. package/dist/clients/CorporationsClient.d.ts.map +1 -1
  68. package/dist/clients/MailClient.d.mts +2 -2
  69. package/dist/clients/MailClient.d.ts +2 -2
  70. package/dist/clients/MailClient.d.ts.map +1 -1
  71. package/dist/clients/MetaClient.d.mts +3 -2
  72. package/dist/clients/MetaClient.d.ts +3 -2
  73. package/dist/clients/MetaClient.d.ts.map +1 -1
  74. package/dist/clients/MilitaryCampaignsClient.d.mts +14 -7
  75. package/dist/clients/MilitaryCampaignsClient.d.ts +14 -7
  76. package/dist/clients/MilitaryCampaignsClient.d.ts.map +1 -1
  77. package/dist/clients/RouteClient.d.mts +4 -4
  78. package/dist/clients/RouteClient.d.ts +4 -4
  79. package/dist/clients/RouteClient.d.ts.map +1 -1
  80. package/dist/clients/SkillsClient.d.mts +1 -1
  81. package/dist/clients/SkillsClient.d.ts +1 -1
  82. package/dist/clients/SkillsClient.d.ts.map +1 -1
  83. package/dist/clients/SkyhooksClient.d.mts +4 -3
  84. package/dist/clients/SkyhooksClient.d.ts +4 -3
  85. package/dist/clients/SkyhooksClient.d.ts.map +1 -1
  86. package/dist/core/ApiClient.d.mts +11 -0
  87. package/dist/core/ApiClient.d.ts +11 -0
  88. package/dist/core/ApiClient.d.ts.map +1 -1
  89. package/dist/core/ApiClientBuilder.d.ts.map +1 -1
  90. package/dist/core/ApiRequestHandler.d.ts +2 -1
  91. package/dist/core/ApiRequestHandler.d.ts.map +1 -1
  92. package/dist/core/BatchRequestHandler.d.mts +13 -2
  93. package/dist/core/BatchRequestHandler.d.ts +13 -2
  94. package/dist/core/BatchRequestHandler.d.ts.map +1 -1
  95. package/dist/core/EsiClientConfig.d.mts +60 -0
  96. package/dist/core/EsiClientConfig.d.ts +60 -0
  97. package/dist/core/EsiClientConfig.d.ts.map +1 -0
  98. package/dist/core/RetryStrategy.d.mts +3 -3
  99. package/dist/core/RetryStrategy.d.ts +3 -3
  100. package/dist/core/RetryStrategy.d.ts.map +1 -1
  101. package/dist/core/cache/ETagCacheManager.d.mts +9 -4
  102. package/dist/core/cache/ETagCacheManager.d.ts +9 -4
  103. package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
  104. package/dist/core/cache/cacheKey.d.ts +31 -6
  105. package/dist/core/cache/cacheKey.d.ts.map +1 -1
  106. package/dist/core/circuitBreaker/CircuitBreaker.d.mts +8 -12
  107. package/dist/core/circuitBreaker/CircuitBreaker.d.ts +8 -12
  108. package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
  109. package/dist/core/clock.d.ts +8 -0
  110. package/dist/core/clock.d.ts.map +1 -0
  111. package/dist/core/configureApiClient.d.mts +1 -1
  112. package/dist/core/configureApiClient.d.ts +1 -1
  113. package/dist/core/configureApiClient.d.ts.map +1 -1
  114. package/dist/core/constants.d.ts +3 -3
  115. package/dist/core/constants.d.ts.map +1 -1
  116. package/dist/core/endpoints/EndpointDefinition.d.mts +17 -0
  117. package/dist/core/endpoints/EndpointDefinition.d.ts +17 -0
  118. package/dist/core/endpoints/EndpointDefinition.d.ts.map +1 -1
  119. package/dist/core/endpoints/assetEndpoints.d.mts +12 -0
  120. package/dist/core/endpoints/assetEndpoints.d.ts +12 -0
  121. package/dist/core/endpoints/assetEndpoints.d.ts.map +1 -1
  122. package/dist/core/endpoints/characterEndpoints.d.mts +10 -0
  123. package/dist/core/endpoints/characterEndpoints.d.ts +10 -0
  124. package/dist/core/endpoints/characterEndpoints.d.ts.map +1 -1
  125. package/dist/core/endpoints/contactEndpoints.d.mts +1 -0
  126. package/dist/core/endpoints/contactEndpoints.d.ts +1 -0
  127. package/dist/core/endpoints/contactEndpoints.d.ts.map +1 -1
  128. package/dist/core/endpoints/contractEndpoints.d.mts +2 -0
  129. package/dist/core/endpoints/contractEndpoints.d.ts +2 -0
  130. package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
  131. package/dist/core/endpoints/corporationEndpoints.d.mts +16 -3
  132. package/dist/core/endpoints/corporationEndpoints.d.ts +16 -3
  133. package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
  134. package/dist/core/endpoints/createClient.d.mts +2 -2
  135. package/dist/core/endpoints/createClient.d.ts +2 -2
  136. package/dist/core/endpoints/createClient.d.ts.map +1 -1
  137. package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -1
  138. package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -1
  139. package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -1
  140. package/dist/core/endpoints/fittingEndpoints.d.mts +3 -0
  141. package/dist/core/endpoints/fittingEndpoints.d.ts +3 -0
  142. package/dist/core/endpoints/fittingEndpoints.d.ts.map +1 -1
  143. package/dist/core/endpoints/fleetEndpoints.d.mts +6 -0
  144. package/dist/core/endpoints/fleetEndpoints.d.ts +6 -0
  145. package/dist/core/endpoints/fleetEndpoints.d.ts.map +1 -1
  146. package/dist/core/endpoints/industryEndpoints.d.mts +2 -2
  147. package/dist/core/endpoints/industryEndpoints.d.ts +2 -2
  148. package/dist/core/endpoints/mailEndpoints.d.mts +2 -0
  149. package/dist/core/endpoints/mailEndpoints.d.ts +2 -0
  150. package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
  151. package/dist/core/endpoints/mercenaryEndpoints.d.mts +1 -1
  152. package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
  153. package/dist/core/endpoints/metaEndpoints.d.mts +23 -8
  154. package/dist/core/endpoints/metaEndpoints.d.ts +23 -8
  155. package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
  156. package/dist/core/endpoints/militaryCampaignEndpoints.d.mts +78 -49
  157. package/dist/core/endpoints/militaryCampaignEndpoints.d.ts +78 -49
  158. package/dist/core/endpoints/militaryCampaignEndpoints.d.ts.map +1 -1
  159. package/dist/core/endpoints/paragonHubEndpoints.d.mts +5 -5
  160. package/dist/core/endpoints/paragonHubEndpoints.d.ts +5 -5
  161. package/dist/core/endpoints/skyhookEndpoints.d.mts +10 -8
  162. package/dist/core/endpoints/skyhookEndpoints.d.ts +10 -8
  163. package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
  164. package/dist/core/logger/DefaultLogger.d.mts +20 -1
  165. package/dist/core/logger/DefaultLogger.d.ts +20 -1
  166. package/dist/core/logger/DefaultLogger.d.ts.map +1 -1
  167. package/dist/core/logger/ILogger.d.mts +9 -0
  168. package/dist/core/logger/ILogger.d.ts +9 -0
  169. package/dist/core/logger/ILogger.d.ts.map +1 -1
  170. package/dist/core/logger/NoopLogger.d.ts.map +1 -1
  171. package/dist/core/logger/clientLog.d.ts.map +1 -1
  172. package/dist/core/logger/loggerUtil.d.ts.map +1 -1
  173. package/dist/core/logger/redactLog.d.ts +23 -0
  174. package/dist/core/logger/redactLog.d.ts.map +1 -0
  175. package/dist/core/logger/resolveLogger.d.ts +3 -3
  176. package/dist/core/logger/resolveLogger.d.ts.map +1 -1
  177. package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
  178. package/dist/core/pagination/CursorPaginationHandler.d.mts +2 -1
  179. package/dist/core/pagination/CursorPaginationHandler.d.ts +2 -1
  180. package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
  181. package/dist/core/ports/CacheStore.d.mts +32 -0
  182. package/dist/core/ports/CacheStore.d.ts +32 -0
  183. package/dist/core/ports/CacheStore.d.ts.map +1 -0
  184. package/dist/core/ports/Clock.d.mts +13 -0
  185. package/dist/core/ports/Clock.d.ts +13 -0
  186. package/dist/core/ports/Clock.d.ts.map +1 -0
  187. package/dist/core/ports/HttpTransport.d.mts +7 -0
  188. package/dist/core/ports/HttpTransport.d.ts +7 -0
  189. package/dist/core/ports/HttpTransport.d.ts.map +1 -0
  190. package/dist/core/ports/Identity.d.mts +31 -0
  191. package/dist/core/ports/Identity.d.ts +31 -0
  192. package/dist/core/ports/Identity.d.ts.map +1 -0
  193. package/dist/core/ports/Logger.d.mts +17 -0
  194. package/dist/core/ports/Logger.d.ts +17 -0
  195. package/dist/core/ports/Logger.d.ts.map +1 -0
  196. package/dist/core/ports/OperationTransport.d.mts +42 -0
  197. package/dist/core/ports/OperationTransport.d.ts +42 -0
  198. package/dist/core/ports/OperationTransport.d.ts.map +1 -0
  199. package/dist/core/ports/TokenProvider.d.mts +7 -0
  200. package/dist/core/ports/TokenProvider.d.ts +7 -0
  201. package/dist/core/ports/TokenProvider.d.ts.map +1 -0
  202. package/dist/core/ports/index.d.mts +14 -0
  203. package/dist/core/ports/index.d.ts +14 -0
  204. package/dist/core/ports/index.d.ts.map +1 -0
  205. package/dist/core/rateLimiter/RateLimiter.d.mts +11 -4
  206. package/dist/core/rateLimiter/RateLimiter.d.ts +11 -4
  207. package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
  208. package/dist/core/requestPipeline/cachePolicy.d.ts +5 -3
  209. package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
  210. package/dist/core/requestPipeline/fetchExecution.d.ts +3 -1
  211. package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
  212. package/dist/core/requestPipeline/headers.d.ts +1 -1
  213. package/dist/core/requestPipeline/headers.d.ts.map +1 -1
  214. package/dist/core/requestPipeline/index.d.ts +3 -5
  215. package/dist/core/requestPipeline/index.d.ts.map +1 -1
  216. package/dist/core/requestPipeline/paginationOrchestration.d.ts +1 -1
  217. package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
  218. package/dist/core/requestPipeline/statusHandling.d.ts +3 -3
  219. package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
  220. package/dist/core/util/callerIdentity.d.ts +10 -0
  221. package/dist/core/util/callerIdentity.d.ts.map +1 -0
  222. package/dist/core/util/concurrency.d.ts +2 -2
  223. package/dist/core/util/concurrency.d.ts.map +1 -1
  224. package/dist/core/util/error.d.mts +92 -3
  225. package/dist/core/util/error.d.ts +92 -3
  226. package/dist/core/util/error.d.ts.map +1 -1
  227. package/dist/core/util/retry.d.mts +4 -4
  228. package/dist/core/util/retry.d.ts +4 -4
  229. package/dist/core/util/retry.d.ts.map +1 -1
  230. package/dist/core/util/validation.d.ts +6 -0
  231. package/dist/core/util/validation.d.ts.map +1 -1
  232. package/dist/errors.d.mts +2 -3
  233. package/dist/errors.d.ts +2 -3
  234. package/dist/errors.d.ts.map +1 -1
  235. package/dist/errors.js +29 -3
  236. package/dist/errors.js.map +1 -1
  237. package/dist/errors.mjs +28 -2
  238. package/dist/generated/operations.generated.d.mts +9379 -0
  239. package/dist/generated/operations.generated.d.ts +9379 -0
  240. package/dist/generated/operations.generated.d.ts.map +1 -0
  241. package/dist/index.d.mts +4 -4
  242. package/dist/index.d.ts +4 -4
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +699 -2865
  245. package/dist/index.js.map +1 -1
  246. package/dist/index.mjs +359 -2525
  247. package/dist/index.mjs.map +1 -1
  248. package/dist/schemas/character.d.mts +5 -0
  249. package/dist/schemas/character.d.ts +5 -0
  250. package/dist/schemas/character.d.ts.map +1 -1
  251. package/dist/schemas/contacts.d.mts +2 -0
  252. package/dist/schemas/contacts.d.ts +2 -0
  253. package/dist/schemas/contacts.d.ts.map +1 -1
  254. package/dist/schemas/corporation.d.mts +24 -3
  255. package/dist/schemas/corporation.d.ts +24 -3
  256. package/dist/schemas/corporation.d.ts.map +1 -1
  257. package/dist/schemas/fittings.d.mts +4 -0
  258. package/dist/schemas/fittings.d.ts +4 -0
  259. package/dist/schemas/fittings.d.ts.map +1 -1
  260. package/dist/schemas/fleet.d.mts +8 -0
  261. package/dist/schemas/fleet.d.ts +8 -0
  262. package/dist/schemas/fleet.d.ts.map +1 -1
  263. package/dist/schemas/index.js +24 -2
  264. package/dist/schemas/index.js.map +1 -1
  265. package/dist/schemas/index.mjs +23 -1
  266. package/dist/schemas/industry.d.mts +2 -2
  267. package/dist/schemas/industry.d.ts +2 -2
  268. package/dist/schemas/mail.d.mts +4 -0
  269. package/dist/schemas/mail.d.ts +4 -0
  270. package/dist/schemas/mail.d.ts.map +1 -1
  271. package/dist/schemas/mercenary.d.mts +1 -1
  272. package/dist/schemas/mercenary.d.ts +1 -1
  273. package/dist/schemas/meta.d.mts +18 -9
  274. package/dist/schemas/meta.d.ts +18 -9
  275. package/dist/schemas/meta.d.ts.map +1 -1
  276. package/dist/schemas/military-campaigns.d.mts +54 -10
  277. package/dist/schemas/military-campaigns.d.ts +54 -10
  278. package/dist/schemas/military-campaigns.d.ts.map +1 -1
  279. package/dist/schemas/paragon-hub.d.mts +4 -4
  280. package/dist/schemas/paragon-hub.d.ts +4 -4
  281. package/dist/schemas/skyhooks.d.mts +18 -6
  282. package/dist/schemas/skyhooks.d.ts +18 -6
  283. package/dist/schemas/skyhooks.d.ts.map +1 -1
  284. package/dist/sde/clock.d.ts +11 -0
  285. package/dist/sde/clock.d.ts.map +1 -0
  286. package/dist/sde/domain/characters/schemas.d.ts +149 -0
  287. package/dist/sde/domain/characters/schemas.d.ts.map +1 -0
  288. package/dist/sde/domain/characters/types.d.mts +163 -0
  289. package/dist/sde/domain/characters/types.d.ts +163 -0
  290. package/dist/sde/domain/characters/types.d.ts.map +1 -0
  291. package/dist/sde/domain/content/schemas.d.ts +84 -0
  292. package/dist/sde/domain/content/schemas.d.ts.map +1 -0
  293. package/dist/sde/domain/content/types.d.mts +91 -0
  294. package/dist/sde/domain/content/types.d.ts +91 -0
  295. package/dist/sde/domain/content/types.d.ts.map +1 -0
  296. package/dist/sde/domain/corporations/schemas.d.ts +113 -0
  297. package/dist/sde/domain/corporations/schemas.d.ts.map +1 -0
  298. package/dist/sde/domain/corporations/types.d.mts +118 -0
  299. package/dist/sde/domain/corporations/types.d.ts +118 -0
  300. package/dist/sde/domain/corporations/types.d.ts.map +1 -0
  301. package/dist/sde/domain/dogma/schemas.d.ts +76 -0
  302. package/dist/sde/domain/dogma/schemas.d.ts.map +1 -0
  303. package/dist/sde/domain/dogma/types.d.mts +80 -0
  304. package/dist/sde/domain/dogma/types.d.ts +80 -0
  305. package/dist/sde/domain/dogma/types.d.ts.map +1 -0
  306. package/dist/sde/domain/industry/schemas.d.ts +204 -0
  307. package/dist/sde/domain/industry/schemas.d.ts.map +1 -0
  308. package/dist/sde/domain/industry/types.d.mts +88 -0
  309. package/dist/sde/domain/industry/types.d.ts +88 -0
  310. package/dist/sde/domain/industry/types.d.ts.map +1 -0
  311. package/dist/sde/domain/market/schemas.d.ts +24 -0
  312. package/dist/sde/domain/market/schemas.d.ts.map +1 -0
  313. package/dist/sde/domain/market/types.d.mts +25 -0
  314. package/dist/sde/domain/market/types.d.ts +25 -0
  315. package/dist/sde/domain/market/types.d.ts.map +1 -0
  316. package/dist/sde/domain/schemas.d.ts +15 -0
  317. package/dist/sde/domain/schemas.d.ts.map +1 -0
  318. package/dist/sde/domain/skins/schemas.d.ts +109 -0
  319. package/dist/sde/domain/skins/schemas.d.ts.map +1 -0
  320. package/dist/sde/domain/skins/types.d.mts +121 -0
  321. package/dist/sde/domain/skins/types.d.ts +121 -0
  322. package/dist/sde/domain/skins/types.d.ts.map +1 -0
  323. package/dist/sde/domain/types/schemas.d.ts +163 -0
  324. package/dist/sde/domain/types/schemas.d.ts.map +1 -0
  325. package/dist/sde/domain/types/types.d.mts +182 -0
  326. package/dist/sde/domain/types/types.d.ts +182 -0
  327. package/dist/sde/domain/types/types.d.ts.map +1 -0
  328. package/dist/sde/domain/types.d.mts +16 -0
  329. package/dist/sde/domain/types.d.ts +16 -0
  330. package/dist/sde/domain/types.d.ts.map +1 -0
  331. package/dist/sde/domain/ui/schemas.d.ts +42 -0
  332. package/dist/sde/domain/ui/schemas.d.ts.map +1 -0
  333. package/dist/sde/domain/ui/types.d.mts +45 -0
  334. package/dist/sde/domain/ui/types.d.ts +45 -0
  335. package/dist/sde/domain/ui/types.d.ts.map +1 -0
  336. package/dist/sde/domain/universe/schemas.d.ts +239 -0
  337. package/dist/sde/domain/universe/schemas.d.ts.map +1 -0
  338. package/dist/sde/domain/universe/types.d.mts +206 -0
  339. package/dist/sde/domain/universe/types.d.ts +206 -0
  340. package/dist/sde/domain/universe/types.d.ts.map +1 -0
  341. package/dist/sde/domain/version/schemas.d.ts +11 -0
  342. package/dist/sde/domain/version/schemas.d.ts.map +1 -0
  343. package/dist/sde/errors.d.mts +1 -1
  344. package/dist/sde/errors.d.ts +1 -1
  345. package/dist/sde/errors.d.ts.map +1 -1
  346. package/dist/sde/index.d.mts +7 -6
  347. package/dist/sde/index.d.ts +7 -6
  348. package/dist/sde/index.d.ts.map +1 -1
  349. package/dist/sde/index.js +31 -21
  350. package/dist/sde/index.js.map +1 -1
  351. package/dist/sde/index.mjs +26 -16
  352. package/dist/sde/index.mjs.map +1 -1
  353. package/dist/sde/ingestion/SdeDatabaseBuilder.d.ts +11 -0
  354. package/dist/sde/ingestion/SdeDatabaseBuilder.d.ts.map +1 -1
  355. package/dist/sde/ingestion/SdeDownloader.d.ts +2 -2
  356. package/dist/sde/ingestion/SdeDownloader.d.ts.map +1 -1
  357. package/dist/sde/memory.d.mts +5 -5
  358. package/dist/sde/memory.d.ts +5 -5
  359. package/dist/sde/memory.d.ts.map +1 -1
  360. package/dist/sde/memory.js +2 -2
  361. package/dist/sde/memory.mjs +1 -1
  362. package/dist/sde/{IStaticDataProvider.d.mts → ports/IStaticDataProvider.d.mts} +9 -2
  363. package/dist/sde/{IStaticDataProvider.d.ts → ports/IStaticDataProvider.d.ts} +9 -2
  364. package/dist/sde/ports/IStaticDataProvider.d.ts.map +1 -0
  365. package/dist/sde/{MemorySdeProvider.d.mts → providers/memory/MemorySdeProvider.d.mts} +3 -3
  366. package/dist/sde/{MemorySdeProvider.d.ts → providers/memory/MemorySdeProvider.d.ts} +3 -3
  367. package/dist/sde/providers/memory/MemorySdeProvider.d.ts.map +1 -0
  368. package/dist/sde/providers/order.d.ts +10 -0
  369. package/dist/sde/providers/order.d.ts.map +1 -0
  370. package/dist/sde/{SdeDataProvider.d.mts → providers/yaml/SdeDataProvider.d.mts} +14 -5
  371. package/dist/sde/{SdeDataProvider.d.ts → providers/yaml/SdeDataProvider.d.ts} +14 -5
  372. package/dist/sde/providers/yaml/SdeDataProvider.d.ts.map +1 -0
  373. package/dist/sde/{SdeTestDataFactory.d.mts → testing/SdeTestDataFactory.d.mts} +3 -3
  374. package/dist/sde/{SdeTestDataFactory.d.ts → testing/SdeTestDataFactory.d.ts} +3 -3
  375. package/dist/sde/testing/SdeTestDataFactory.d.ts.map +1 -0
  376. package/dist/sde/version.d.mts +1 -1
  377. package/dist/sde/version.d.ts +1 -1
  378. package/dist/sde/version.d.ts.map +1 -1
  379. package/dist/testing/TestDataFactory.d.mts +21 -3
  380. package/dist/testing/TestDataFactory.d.ts +21 -3
  381. package/dist/testing/TestDataFactory.d.ts.map +1 -1
  382. package/dist/testing/index.d.mts +1 -0
  383. package/dist/testing/index.d.ts +1 -0
  384. package/dist/testing/index.d.ts.map +1 -1
  385. package/dist/testing/index.js +157 -10
  386. package/dist/testing/index.js.map +1 -1
  387. package/dist/testing/index.mjs +155 -8
  388. package/dist/testing/index.mjs.map +1 -1
  389. package/dist/testing/mockTransport.d.mts +87 -0
  390. package/dist/testing/mockTransport.d.ts +87 -0
  391. package/dist/testing/mockTransport.d.ts.map +1 -0
  392. package/dist/types/generated/esi-spec.generated.d.mts +230 -10
  393. package/dist/types/generated/esi-spec.generated.d.ts +230 -10
  394. package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
  395. package/dist/types/military-campaigns.d.mts +4 -1
  396. package/dist/types/military-campaigns.d.ts +4 -1
  397. package/dist/types/military-campaigns.d.ts.map +1 -1
  398. package/dist/types/skyhooks.d.mts +2 -1
  399. package/dist/types/skyhooks.d.ts +2 -1
  400. package/dist/types/skyhooks.d.ts.map +1 -1
  401. package/package.json +167 -131
  402. package/dist/chunk-3ZI5A37L.mjs.map +0 -1
  403. package/dist/chunk-BBSHKVPI.js.map +0 -1
  404. package/dist/chunk-D5L5HZVF.mjs +0 -417
  405. package/dist/chunk-D5L5HZVF.mjs.map +0 -1
  406. package/dist/chunk-MSJHIJXA.js.map +0 -1
  407. package/dist/chunk-R7D7M2LQ.mjs.map +0 -1
  408. package/dist/chunk-SAQBXXTM.js.map +0 -1
  409. package/dist/chunk-VZS32UQ3.mjs.map +0 -1
  410. package/dist/chunk-XIB2OXEZ.js +0 -417
  411. package/dist/chunk-XIB2OXEZ.js.map +0 -1
  412. package/dist/config/jest/globalSetup.d.ts +0 -2
  413. package/dist/config/jest/globalSetup.d.ts.map +0 -1
  414. package/dist/config/jest/globalTeardown.d.ts +0 -2
  415. package/dist/config/jest/globalTeardown.d.ts.map +0 -1
  416. package/dist/config/jest/jest.setup.d.ts +0 -3
  417. package/dist/config/jest/jest.setup.d.ts.map +0 -1
  418. package/dist/core/ClientRegistry.d.mts +0 -45
  419. package/dist/core/ClientRegistry.d.ts +0 -45
  420. package/dist/core/ClientRegistry.d.ts.map +0 -1
  421. package/dist/core/logger/logger.d.ts +0 -12
  422. package/dist/core/logger/logger.d.ts.map +0 -1
  423. package/dist/sde/IStaticDataProvider.d.ts.map +0 -1
  424. package/dist/sde/MemorySdeProvider.d.ts.map +0 -1
  425. package/dist/sde/SdeDataProvider.d.ts.map +0 -1
  426. package/dist/sde/SdeTestDataFactory.d.ts.map +0 -1
  427. package/dist/sde/schemas.d.ts +0 -1121
  428. package/dist/sde/schemas.d.ts.map +0 -1
  429. package/dist/sde/types.d.mts +0 -1039
  430. package/dist/sde/types.d.ts +0 -1039
  431. package/dist/sde/types.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@lgriffin/esi.ts",
3
- "version": "10.2.0",
3
+ "version": "11.0.0",
4
4
  "description": "This is a TypeScript Implementation for the EVE Online API offered through ESI",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
8
8
  "type": "commonjs",
9
+ "sideEffects": false,
9
10
  "engines": {
10
- "node": ">=18.0.0"
11
+ "node": ">=22.12.0"
11
12
  },
12
13
  "publishConfig": {
13
14
  "access": "public"
@@ -53,6 +54,16 @@
53
54
  "default": "./dist/testing/index.js"
54
55
  }
55
56
  },
57
+ "./client": {
58
+ "import": {
59
+ "types": "./dist/client/index.d.mts",
60
+ "default": "./dist/client/index.mjs"
61
+ },
62
+ "require": {
63
+ "types": "./dist/client/index.d.ts",
64
+ "default": "./dist/client/index.js"
65
+ }
66
+ },
56
67
  "./sde": {
57
68
  "import": {
58
69
  "types": "./dist/sde/index.d.mts",
@@ -79,15 +90,21 @@
79
90
  "dist",
80
91
  "README.md",
81
92
  "LICENSE",
93
+ "NOTICE",
82
94
  "CHANGELOG.md"
83
95
  ],
84
96
  "scripts": {
85
- "build": "tsup && tsc --emitDeclarationOnly && node scripts/esm-declarations.cjs",
97
+ "build": "tsup && tsc --emitDeclarationOnly && node scripts/package/esm-declarations.cjs",
86
98
  "typecheck": "tsc --noEmit",
87
- "help": "ts-node scripts/npm-help.ts",
99
+ "typecheck:examples": "tsc -p tsconfig.examples.json",
100
+ "typecheck:isolated": "ts-node scripts/package/isolated-declarations.ts",
101
+ "examples:nightly": "ts-node scripts/docs/examples-nightly.ts",
102
+ "help": "ts-node scripts/quality/npm-help.ts",
88
103
  "start": "ts-node examples/character-profile.ts",
89
104
  "example": "ts-node examples/character-profile.ts",
90
105
  "example:status": "ts-node examples/status.ts",
106
+ "example:multi-character": "ts-node examples/multi-character.ts",
107
+ "example:public-vs-authenticated": "ts-node examples/public-vs-authenticated.ts",
91
108
  "example:character": "ts-node examples/character-lookup.ts",
92
109
  "example:universe": "ts-node examples/universe-info.ts",
93
110
  "example:market": "ts-node examples/market-prices.ts",
@@ -133,144 +150,168 @@
133
150
  "example:corporation-projects": "ts-node examples/corporation-projects.ts",
134
151
  "example:freelance-jobs": "ts-node examples/freelance-jobs.ts",
135
152
  "example:military-campaigns": "ts-node examples/military-campaigns.ts",
153
+ "example:meta": "ts-node examples/meta.ts",
154
+ "example:public-contracts": "ts-node examples/public-contracts.ts",
155
+ "example:corporation-history": "ts-node examples/corporation-history.ts",
156
+ "example:remaining-coverage": "ts-node examples/remaining-coverage.ts",
136
157
  "example:sde-basic": "ts-node examples/sde-basic-lookup.ts",
137
158
  "example:sde-fitting": "ts-node examples/sde-fitting.ts",
138
159
  "example:sde-industry": "ts-node examples/sde-industry.ts",
139
160
  "example:sde-market-tree": "ts-node examples/sde-market-tree.ts",
140
- "sde:ingest": "ts-node scripts/sde-ingest.ts",
161
+ "sde:ingest": "ts-node scripts/sde/sde-ingest.ts",
162
+ "sde:drift": "ts-node scripts/sde/sde-drift.ts",
141
163
  "example:write-ops": "ts-node examples/write-operations.ts",
142
- "token:create": "ts-node scripts/create-token.ts",
143
- "token:refresh": "ts-node scripts/refresh-token.ts",
144
- "lint": "eslint src",
145
- "lint:fix": "eslint src --fix",
146
- "lint:bdd-seam": "eslint --config eslint.bdd-seam.config.mjs tests/bdd",
147
- "lint:determinism": "ts-node scripts/determinism-lint.ts",
148
- "lint:suite-health": "eslint --config eslint.suite-health.config.mjs tests",
149
- "lint:workflows": "ts-node scripts/workflow-lint.ts",
150
- "lint:package": "ts-node scripts/package-lint.ts",
164
+ "token:create": "ts-node scripts/auth/create-token.ts",
165
+ "token:refresh": "ts-node scripts/auth/refresh-token.ts",
166
+ "lint": "eslint src tests",
167
+ "lint:fix": "eslint src tests --fix",
168
+ "lint:bdd-seam": "eslint --config config/eslint/bdd-seam.config.mjs tests/bdd",
169
+ "lint:determinism": "ts-node scripts/quality/determinism-lint.ts",
170
+ "lint:layers": "eslint --config config/eslint/layers.config.mjs --no-inline-config src",
171
+ "lint:suite-health": "eslint --config config/eslint/suite-health.config.mjs tests",
172
+ "lint:workflows": "ts-node scripts/quality/workflow-lint.ts",
173
+ "lint:package": "ts-node scripts/package/package-lint.ts",
151
174
  "size": "size-limit",
152
175
  "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
153
176
  "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
154
- "test": "jest --config jest.unit.config.cjs",
155
- "test:watch": "jest --config jest.unit.config.cjs --watch",
156
- "bdd": "jest --config jest.unit.config.cjs --testPathPatterns=tests/bdd/",
157
- "bdd:steps": "jest --config jest.unit.config.cjs --testPathPatterns=step-library",
158
- "bdd:alliance": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0001-alliance",
159
- "bdd:assets": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/assets",
160
- "bdd:calendar": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/calendar",
161
- "bdd:character": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/character",
162
- "bdd:clones": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0007-clones",
163
- "bdd:contacts": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/contacts",
164
- "bdd:contracts": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/contracts",
165
- "bdd:corporation": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/corporation",
166
- "bdd:corporation-projects": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0004-corporation-projects",
167
- "bdd:dogma": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0011-dogma",
168
- "bdd:etag-caching": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/etag-caching",
169
- "bdd:factions": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/factions",
170
- "bdd:fittings": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/fittings",
171
- "bdd:fleets": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/fleets",
172
- "bdd:freelance": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/freelance",
173
- "bdd:incursions": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/incursions",
174
- "bdd:industry": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/industry",
175
- "bdd:insurance": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0018-insurance",
176
- "bdd:killmails": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0019-killmails",
177
- "bdd:location": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/location",
178
- "bdd:loyalty": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/loyalty",
179
- "bdd:mail": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0022-mail",
180
- "bdd:market": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0023-market",
181
- "bdd:meta": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0025-meta",
182
- "bdd:pi": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/pi",
183
- "bdd:route": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0029-route",
184
- "bdd:search": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/search",
185
- "bdd:skills": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/skills",
186
- "bdd:skyhooks": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/skyhooks",
187
- "bdd:sovereignty": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/sovereignty",
188
- "bdd:mercenary": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/mercenary",
189
- "bdd:military-campaigns": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/military-campaigns",
190
- "bdd:access-lists": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0039-access-lists",
191
- "bdd:sde": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/sde",
192
- "bdd:status": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/status",
193
- "bdd:resilience": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/resilience",
194
- "bdd:ui": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/ui",
195
- "bdd:universe": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0036-universe",
196
- "bdd:wallet": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0037-wallet",
197
- "bdd:wars": "jest --config jest.unit.config.cjs --testPathPatterns=specs/core/0038-wars",
198
- "bdd:token-management": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/core/token-management",
199
- "bdd:integration": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/integration",
200
- "bdd:performance": "jest --config jest.unit.config.cjs --testPathPatterns=step-definitions/performance",
201
- "coverage": "jest --config jest.unit.config.cjs --coverage",
202
- "test:integration": "jest --config jest.integration.config.cjs",
203
- "test:integration:live": "jest --config jest.integration.live.config.cjs",
204
- "test:integration:gated": "node --env-file=.env -e \"require('child_process').execSync('npx jest --config jest.integration.config.cjs --testPathPatterns=gated-auth',{stdio:'inherit',env:Object.assign({},process.env,{ESI_GATED_TESTS:'true'})})\"",
177
+ "test": "jest --config config/jest/unit.config.cjs",
178
+ "test:watch": "jest --config config/jest/unit.config.cjs --watch",
179
+ "bdd": "jest --config config/jest/unit.config.cjs --testPathPatterns=tests/bdd/",
180
+ "bdd:steps": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-library",
181
+ "bdd:alliance": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0001-alliance",
182
+ "bdd:assets": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/assets",
183
+ "bdd:calendar": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/calendar",
184
+ "bdd:character": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/character",
185
+ "bdd:clones": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0007-clones",
186
+ "bdd:contacts": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/contacts",
187
+ "bdd:contracts": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/contracts",
188
+ "bdd:corporation": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/corporation",
189
+ "bdd:corporation-projects": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0004-corporation-projects",
190
+ "bdd:dogma": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0011-dogma",
191
+ "bdd:etag-caching": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/etag-caching",
192
+ "bdd:factions": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/factions",
193
+ "bdd:fittings": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/fittings",
194
+ "bdd:fleets": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/fleets",
195
+ "bdd:freelance": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/freelance",
196
+ "bdd:incursions": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/incursions",
197
+ "bdd:industry": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/industry",
198
+ "bdd:insurance": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0018-insurance",
199
+ "bdd:killmails": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0019-killmails",
200
+ "bdd:location": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/location",
201
+ "bdd:loyalty": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/loyalty",
202
+ "bdd:mail": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0022-mail",
203
+ "bdd:market": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0023-market",
204
+ "bdd:meta": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0025-meta",
205
+ "bdd:pi": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/pi",
206
+ "bdd:route": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0029-route",
207
+ "bdd:search": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/search",
208
+ "bdd:skills": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/skills",
209
+ "bdd:skyhooks": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/skyhooks",
210
+ "bdd:sovereignty": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/sovereignty",
211
+ "bdd:mercenary": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/mercenary",
212
+ "bdd:military-campaigns": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/military-campaigns",
213
+ "bdd:access-lists": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0039-access-lists",
214
+ "bdd:sde": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/sde",
215
+ "bdd:status": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/status",
216
+ "bdd:resilience": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/resilience",
217
+ "bdd:ui": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/ui",
218
+ "bdd:universe": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0036-universe",
219
+ "bdd:wallet": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0037-wallet",
220
+ "bdd:wars": "jest --config config/jest/unit.config.cjs --testPathPatterns=specs/core/0038-wars",
221
+ "bdd:token-management": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/core/token-management",
222
+ "bdd:integration": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/integration",
223
+ "bdd:performance": "jest --config config/jest/unit.config.cjs --testPathPatterns=step-definitions/performance",
224
+ "coverage": "jest --config config/jest/unit.config.cjs --coverage",
225
+ "test:integration": "jest --config config/jest/integration.config.cjs",
226
+ "test:integration:live": "jest --config config/jest/integration.live.config.cjs",
227
+ "test:integration:gated": "node --env-file=.env -e \"require('child_process').execSync('npx jest --config config/jest/integration.config.cjs --testPathPatterns=gated-auth',{stdio:'inherit',env:Object.assign({},process.env,{ESI_GATED_TESTS:'true'})})\"",
205
228
  "test:all": "npm run test && npm run bdd && npm run test:integration && npm run fuzz && npm run test:types",
206
- "contract": "jest --config jest.contract.config.cjs",
207
- "contract:live": "jest --config jest.contract.live.config.cjs",
208
- "contract:snapshot": "ts-node scripts/snapshot-openapi.ts",
229
+ "contract": "jest --config config/jest/contract.config.cjs",
230
+ "contract:live": "jest --config config/jest/contract.live.config.cjs",
231
+ "contract:snapshot": "ts-node scripts/spec/snapshot-openapi.ts",
209
232
  "contract:record": "ts-node tests/contract/record.ts",
210
- "contract:replay": "jest --config jest.contract.replay.config.cjs",
233
+ "contract:replay": "jest --config config/jest/contract.replay.config.cjs",
211
234
  "contract:shape-diff": "ts-node tests/contract/shape-diff.ts",
212
235
  "contract:diff": "docker run --rm -v ./tests/contract/snapshots:/specs tufin/oasdiff breaking /specs/esi-openapi.snapshot.json https://esi.evetech.net/meta/openapi.json",
213
- "benchmark": "ts-node scripts/bench-ab.ts --head .",
214
- "bench:ab": "ts-node scripts/bench-ab.ts",
215
- "bench:compare": "ts-node scripts/bench-compare.ts",
216
- "bench:trend": "ts-node scripts/bench-trend.ts",
217
- "soak": "node --expose-gc -r ts-node/register/transpile-only scripts/soak.ts",
218
- "fuzz": "jest --config jest.fuzz.config.cjs",
219
- "fuzz:properties": "jest --config jest.fuzz.config.cjs --testPathPatterns=property.test",
220
- "fuzz:api": "bash scripts/run-schemathesis.sh",
221
- "faults": "jest --config jest.faults.config.cjs",
222
- "faults:nightly": "jest --config jest.faults.nightly.config.cjs",
223
- "mock:esi": "prism mock https://esi.evetech.net/meta/openapi.json -p 4010",
236
+ "benchmark": "ts-node scripts/bench/bench-ab.ts --head .",
237
+ "bench:ab": "ts-node scripts/bench/bench-ab.ts",
238
+ "bench:compare": "ts-node scripts/bench/bench-compare.ts",
239
+ "bench:trend": "ts-node scripts/bench/bench-trend.ts",
240
+ "soak": "node --expose-gc -r ts-node/register/transpile-only scripts/bench/soak.ts",
241
+ "fuzz": "jest --config config/jest/fuzz.config.cjs",
242
+ "fuzz:properties": "jest --config config/jest/fuzz.config.cjs --testPathPatterns property.test sde-schema-fuzz.test",
243
+ "fuzz:api": "bash scripts/spec/run-schemathesis.sh",
244
+ "faults": "jest --config config/jest/faults.config.cjs",
245
+ "faults:nightly": "jest --config config/jest/faults.nightly.config.cjs",
246
+ "mock:esi": "docker run --rm -p 4010:4010 stoplight/prism:5@sha256:3f6d29e31bfe0b99587f0f6f79c423858dd6a2ea7e1e4658273ed930a78a9acf mock -h 0.0.0.0 -p 4010 -m false https://esi.evetech.net/meta/openapi.json",
224
247
  "test:types": "tsd --files 'tests/typetests/*.test-d.ts'",
225
- "test:export-coverage": "ts-node scripts/export-coverage.ts",
226
- "test:type-mutation": "ts-node scripts/type-mutation.ts",
227
- "test:consumer": "ts-node scripts/consumer-contract.ts",
228
- "test:docs-examples": "ts-node scripts/doc-examples.ts",
229
- "generate:types": "ts-node scripts/generate-esi-types.ts",
230
- "generate:okf": "ts-node scripts/generate-okf.ts",
231
- "generate:endpoints": "ts-node scripts/generate-endpoint-scaffold.ts",
248
+ "test:export-coverage": "ts-node scripts/package/export-coverage.ts",
249
+ "test:type-mutation": "ts-node scripts/mutation/type-mutation.ts",
250
+ "test:consumer": "ts-node scripts/quality/consumer-contract.ts",
251
+ "test:docs-examples": "ts-node scripts/docs/doc-examples.ts",
252
+ "generate:types": "ts-node scripts/spec/generate-esi-types.ts",
253
+ "generate:okf": "ts-node scripts/docs/generate-okf.ts",
254
+ "generate:endpoints": "ts-node scripts/spec/generate-endpoint-scaffold.ts",
232
255
  "generate:all": "npm run generate:types && npm run generate:okf && npm run contract:snapshot && npm run schema:drift && npm run validate:esi",
233
256
  "knip": "knip",
234
- "validate:esi": "ts-node scripts/validate-esi-endpoints.ts",
235
- "validate:auth-scopes": "ts-node scripts/validate-auth-scopes.ts",
257
+ "validate:esi": "ts-node scripts/spec/validate-esi-endpoints.ts",
258
+ "validate:esi:vendored": "ts-node scripts/spec/validate-esi-endpoints.ts --spec-file=tests/contract/snapshots/esi-openapi.snapshot.json",
259
+ "validate:auth-scopes": "ts-node scripts/spec/validate-auth-scopes.ts",
236
260
  "validate:spec": "redocly lint",
237
- "validate": "npm run lint && npm run format:check && npm run build && npm run coverage && knip --no-exit-code",
238
- "release:canary": "ts-node scripts/release-canary.ts",
239
- "release:sbom": "ts-node scripts/release-sbom.ts",
240
- "validate:versions": "ts-node scripts/validate-versions.ts",
241
- "spec:audit": "ts-node scripts/spec-audit.ts",
242
- "spec:audit:verbose": "ts-node scripts/spec-audit.ts --verbose",
243
- "bdd:report": "ts-node scripts/bdd-report.ts",
244
- "validate:spec-consistency": "ts-node scripts/rule-schema-check.ts",
245
- "check:local": "ts-node scripts/verify-local.ts",
246
- "check:local:fast": "ts-node scripts/verify-local.ts --fast",
247
- "check:local:all": "ts-node scripts/verify-local.ts --all",
248
- "check:all": "npm run lint && npm run format:check && npm run build && npm run coverage && knip --no-exit-code && npm run validate:esi && npm run validate:spec && npm run validate:versions && npm run spec:audit && npm run validate:spec-consistency",
261
+ "validate": "npm run lint && npm run format:check && npm run build && npm run coverage && npm run knip",
262
+ "release:canary": "ts-node scripts/release/release-canary.ts",
263
+ "release:sbom": "ts-node scripts/release/release-sbom.ts",
264
+ "release:dedupe-changelog": "ts-node scripts/release/changelog-dedupe.ts",
265
+ "validate:versions": "ts-node --transpile-only scripts/package/validate-versions.ts",
266
+ "spec:generate": "ts-node scripts/spec/spec-generate.ts",
267
+ "spec:generate:check": "ts-node scripts/spec/spec-generate.ts --check",
268
+ "spec:coverage": "ts-node scripts/spec/spec-coverage.ts",
269
+ "spec:coverage:sde": "ts-node scripts/sde/sde-spec-coverage.ts",
270
+ "spec:coverage:sde:ci": "ts-node scripts/sde/sde-spec-coverage.ts --ci",
271
+ "spec:coverage:clients": "ts-node scripts/spec/client-spec-coverage.ts",
272
+ "spec:coverage:clients:ci": "ts-node scripts/spec/client-spec-coverage.ts --ci",
273
+ "spec:response-schemas": "ts-node scripts/spec/spec-response-schemas.ts",
274
+ "spec:audit": "ts-node scripts/spec/spec-audit.ts",
275
+ "charter:audit": "ts-node scripts/quality/charter-audit.ts",
276
+ "spec:audit:verbose": "ts-node scripts/spec/spec-audit.ts --verbose",
277
+ "bdd:report": "ts-node scripts/quality/bdd-report.ts",
278
+ "ears": "ts-node scripts/quality/ears.ts",
279
+ "validate:spec-consistency": "ts-node scripts/spec/rule-schema-check.ts",
280
+ "check:local": "ts-node scripts/quality/verify-local.ts",
281
+ "check:local:fast": "ts-node scripts/quality/verify-local.ts --fast",
282
+ "check:local:all": "ts-node scripts/quality/verify-local.ts --all",
283
+ "check:all": "npm run lint && npm run format:check && npm run build && npm run coverage && npm run knip && npm run validate:esi && npm run validate:spec && npm run validate:versions && npm run spec:audit && npm run charter:audit && npm run validate:spec-consistency && npm run spec:coverage:sde:ci && npm run spec:coverage:clients:ci",
249
284
  "docs": "typedoc --options typedoc.json",
250
285
  "docs:watch": "typedoc --options typedoc.json --watch",
251
286
  "docs:serve": "npx http-server docs-site/public/api -p 8080 -o",
252
- "clean": "rm -rf dist coverage docs-site/public/api",
253
- "clean:docs": "rm -rf docs-site/public/api",
287
+ "docs:sync": "ts-node scripts/docs/sync-docs.ts",
288
+ "docs:metrics": "ts-node --transpile-only scripts/docs/doc-metrics.ts",
289
+ "docs:site": "npm run docs && npm run docs:sync && npm --prefix docs-site run build",
290
+ "docs:site:dev": "npm run docs:sync && npm --prefix docs-site run dev",
291
+ "docs:site:preview": "npm --prefix docs-site run preview",
292
+ "clean": "rm -rf dist coverage && npm run clean:docs",
293
+ "clean:docs": "rm -rf docs-site/public/api docs-site/guide docs-site/examples docs-site/.vitepress/dist docs-site/.vitepress/sidebar.generated.json",
254
294
  "prepare": "husky && npm run build",
255
- "health-check": "ts-node -e \"import('./src/EsiClient').then(({EsiClient}) => new EsiClient().healthCheck().then(console.log))\"",
256
- "mutation": "stryker run",
257
- "mutation:report": "stryker run --reporters html,clear-text",
258
- "mutation:bdd": "stryker run stryker.bdd.config.mjs",
259
- "mutation:bdd:merge": "ts-node scripts/mutation-merge.ts",
260
- "mutation:unit:merge": "ts-node scripts/mutation-merge.ts --shards mutation-unit-shards.json --shard-dir reports/mutation/shards --out reports/mutation/mutation.json",
261
- "mutation:bdd:ratchet": "ts-node scripts/mutation-ratchet.ts",
262
- "mutation:ratchet": "ts-node scripts/mutation-ratchet.ts --suite unit",
263
- "mutation:pr": "ts-node scripts/mutation-pr.ts",
264
- "mutation:pr:shard": "ts-node scripts/mutation-pr.ts --baseline-shard",
265
- "mutation:pr:gate": "ts-node scripts/mutation-pr-gate.ts",
266
- "mutation:fixture": "ts-node scripts/mutation-fixture.ts",
295
+ "health:live": "ts-node scripts/quality/live-health.ts",
296
+ "health-check": "ts-node -e \"import('./src/EsiClient').then(({EsiClient}) => { const c = new EsiClient(); return c.status.getStatus().then(console.log).finally(() => c.shutdown()); })\"",
297
+ "mutation": "stryker run config/mutation/stryker.config.mjs",
298
+ "mutation:report": "stryker run config/mutation/stryker.config.mjs --reporters html,clear-text",
299
+ "mutation:bdd": "stryker run config/mutation/stryker.bdd.config.mjs",
300
+ "mutation:bdd:merge": "ts-node scripts/mutation/mutation-merge.ts",
301
+ "mutation:unit:merge": "ts-node scripts/mutation/mutation-merge.ts --shards config/mutation/unit-shards.json --shard-dir reports/mutation/shards --out reports/mutation/mutation.json",
302
+ "mutation:bdd:ratchet": "ts-node scripts/mutation/mutation-ratchet.ts",
303
+ "mutation:ratchet": "ts-node scripts/mutation/mutation-ratchet.ts --suite unit",
304
+ "mutation:pr": "ts-node scripts/mutation/mutation-pr.ts",
305
+ "mutation:pr:shard": "ts-node scripts/mutation/mutation-pr.ts --baseline-shard",
306
+ "mutation:pr:gate": "ts-node scripts/mutation/mutation-pr-gate.ts",
307
+ "mutation:fixture": "ts-node scripts/mutation/mutation-fixture.ts",
267
308
  "api-report": "api-extractor run --local --verbose",
268
309
  "api-report:check": "api-extractor run --verbose",
269
- "api-report:semver": "ts-node scripts/api-semver-gate.ts",
270
- "schema:drift": "ts-node scripts/generate-schema-drift-report.ts",
271
- "schema:drift:ci": "ts-node scripts/generate-schema-drift-report.ts --ci",
272
- "audit:check": "ts-node scripts/audit-check.ts --check",
273
- "audit:diff": "ts-node scripts/audit-check.ts --diff"
310
+ "api-report:semver": "ts-node scripts/package/api-semver-gate.ts",
311
+ "schema:drift": "ts-node scripts/spec/generate-schema-drift-report.ts",
312
+ "schema:drift:ci": "ts-node scripts/spec/generate-schema-drift-report.ts --ci",
313
+ "audit:check": "ts-node scripts/quality/audit-check.ts --check",
314
+ "audit:diff": "ts-node scripts/quality/audit-check.ts --diff"
274
315
  },
275
316
  "lint-staged": {
276
317
  "src/**/*.ts": [
@@ -278,6 +319,7 @@
278
319
  "prettier --write"
279
320
  ],
280
321
  "tests/**/*.ts": [
322
+ "eslint --fix",
281
323
  "prettier --write"
282
324
  ],
283
325
  "*.{json,md,yml,yaml}": [
@@ -312,18 +354,15 @@
312
354
  "@cucumber/messages": "^34.2.1",
313
355
  "@microsoft/api-extractor": "^7.58.9",
314
356
  "@redocly/cli": "^2.48.0",
315
- "@size-limit/esbuild": "^12.1.0",
316
- "@size-limit/file": "^12.1.0",
317
- "@stoplight/prism-cli": "^5.14.2",
357
+ "@size-limit/esbuild": "^13.0.3",
358
+ "@size-limit/file": "^13.0.3",
318
359
  "@stryker-mutator/core": "^10.0.0",
319
360
  "@stryker-mutator/jest-runner": "^10.0.0",
320
361
  "@stryker-mutator/typescript-checker": "^10.0.0",
321
- "@types/adm-zip": "^0.5.8",
322
362
  "@types/jest": "^30.0.0",
323
- "@types/js-yaml": "^4.0.9",
324
363
  "@types/node": "^26.3.0",
325
364
  "adm-zip": "^0.6.0",
326
- "better-sqlite3": "^11.0.0",
365
+ "better-sqlite3": "^13.0.3",
327
366
  "esbuild": "^0.28.2",
328
367
  "eslint": "^10.9.1",
329
368
  "eslint-config-prettier": "^10.1.8",
@@ -335,22 +374,20 @@
335
374
  "jest": "^30.4.2",
336
375
  "jest-cucumber": "^4.5.0",
337
376
  "jest-fetch-mock": "^4.2.0",
338
- "jest-junit": "^17.0.0",
339
377
  "js-yaml": "^5.4.0",
340
378
  "knip": "^6.6.1",
341
379
  "lint-staged": "^17.0.8",
342
380
  "mitata": "^1.0.34",
343
381
  "prettier": "^3.3.2",
344
382
  "publint": "^0.3.24",
345
- "size-limit": "^12.1.0",
383
+ "size-limit": "^13.0.3",
346
384
  "ts-jest": "^29.4.11",
347
385
  "ts-node": "^10.9.2",
348
386
  "tsd": "^0.33.0",
349
387
  "tsup": "^8.5.1",
350
388
  "typedoc": "^0.28.18",
351
389
  "typescript": "^6.0.3",
352
- "typescript-eslint": "^8.68.0",
353
- "zod": "^4.4.3"
390
+ "typescript-eslint": "^8.68.0"
354
391
  },
355
392
  "peerDependencies": {
356
393
  "adm-zip": ">=0.4.11",
@@ -379,7 +416,6 @@
379
416
  "brace-expansion": ">=5.0.8",
380
417
  "esbuild": "$esbuild",
381
418
  "uuid": "~11.1.1",
382
- "@faker-js/faker": ">=10.5.0",
383
419
  "fast-uri": "^3.1.6",
384
420
  "cosmiconfig": {
385
421
  "js-yaml": "^4.3.2"
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sde/errors.ts","../src/sde/MemorySdeProvider.ts","../src/sde/SdeTestDataFactory.ts"],"sourcesContent":["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"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/ESI.ts/ESI.ts/dist/chunk-BBSHKVPI.js","../src/auth/errors.ts"],"names":[],"mappings":"AAAA;ACCO,IAAM,UAAA,EAAN,MAAA,QAAwB,MAAM;AAAA,EACnC,WAAA,CAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,KAAA,EAAO,WAAA;AAAA,EACd;AACF,CAAA;AASO,IAAM,SAAA,EAAN,MAAA,QAAuB,UAAU;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,WAAA,CACE,UAAA,EACA,SAAA,EACA,gBAAA,EACA;AACA,IAAA,MAAM,OAAA,EAAS,iBAAA,EAAmB,CAAA,EAAA,EAAK,gBAAgB,CAAA,EAAA;AACC,IAAA;AAC5C,IAAA;AACM,IAAA;AACD,IAAA;AACO,IAAA;AAC1B,EAAA;AAAA;AAGuB,EAAA;AACgC,IAAA;AACvD,EAAA;AACF;AAOiD;AAC/B,EAAA;AAEmC,EAAA;AACpC,IAAA;AACD,IAAA;AACO,IAAA;AACrB,EAAA;AACF;AAGgD;AACjB,EAAA;AACd,IAAA;AACD,IAAA;AACd,EAAA;AACF;AAGsD;AACpC,EAAA;AAEiB,EAAA;AACqB,IAAA;AACxC,IAAA;AACO,IAAA;AACrB,EAAA;AACF;AAEgE;AACtC,EAAA;AAC1B;AAE8D;AACpC,EAAA;AAC1B;AAE2E;AACjD,EAAA;AAC1B;AAImC;AACT,EAAA;AAC1B;AD/B4D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/ESI.ts/ESI.ts/dist/chunk-BBSHKVPI.js","sourcesContent":[null,"/** 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"]}