@lgriffin/esi.ts 1.0.0 → 2.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 (1152) hide show
  1. package/DOCUMENTATION.md +106 -0
  2. package/LICENSE +26 -0
  3. package/README.md +934 -125
  4. package/TESTING.md +523 -0
  5. package/demo/examples.ts +250 -0
  6. package/demo/flexible-examples.ts +166 -0
  7. package/docs/.nojekyll +1 -0
  8. package/docs/assets/highlight.css +106 -0
  9. package/docs/assets/icons.js +18 -0
  10. package/docs/assets/icons.svg +1 -0
  11. package/docs/assets/main.js +60 -0
  12. package/docs/assets/navigation.js +1 -0
  13. package/docs/assets/search.js +1 -0
  14. package/docs/assets/style.css +1493 -0
  15. package/docs/classes/src_EsiClient.EsiClient.html +48 -0
  16. package/docs/classes/src_EsiClientBuilder.CustomEsiClient.html +43 -0
  17. package/docs/classes/src_EsiClientBuilder.EsiApiFactory.html +23 -0
  18. package/docs/classes/src_EsiClientBuilder.EsiClientBuilder.html +15 -0
  19. package/docs/classes/src_api_alliances_getAllianceById.AllianceByIdApi.html +3 -0
  20. package/docs/classes/src_api_alliances_getAllianceContactLabels.AllianceContactLabelsApi.html +3 -0
  21. package/docs/classes/src_api_alliances_getAllianceContacts.AllianceContactsApi.html +3 -0
  22. package/docs/classes/src_api_alliances_getAllianceCorporations.AllianceCorporationsApi.html +3 -0
  23. package/docs/classes/src_api_alliances_getAllianceIcons.AllianceIconsApi.html +3 -0
  24. package/docs/classes/src_api_alliances_getAlliances.AllAlliancesApi.html +3 -0
  25. package/docs/classes/src_api_assets_getCharacterAssets.GetCharacterAssetsApi.html +3 -0
  26. package/docs/classes/src_api_assets_getCorporationAssets.GetCorporationAssetsApi.html +3 -0
  27. package/docs/classes/src_api_assets_postCharacterAssetLocations.PostCharacterAssetLocationsApi.html +3 -0
  28. package/docs/classes/src_api_assets_postCharacterAssetNames.PostCharacterAssetNamesApi.html +3 -0
  29. package/docs/classes/src_api_assets_postCorporationAssetLocations.PostCorporationAssetLocationsApi.html +3 -0
  30. package/docs/classes/src_api_assets_postCorporationAssetNames.PostCorporationAssetNamesApi.html +3 -0
  31. package/docs/classes/src_api_bookmarks_getCharacterBookmarkFolders.CharacterBookmarkFoldersApi.html +3 -0
  32. package/docs/classes/src_api_bookmarks_getCharacterBookmarks.CharacterBookmarksApi.html +3 -0
  33. package/docs/classes/src_api_bookmarks_getCorporationBookmarkFolders.CorporationBookmarkFoldersApi.html +3 -0
  34. package/docs/classes/src_api_bookmarks_getCorporationBookmarks.CorporationBookmarksApi.html +3 -0
  35. package/docs/classes/src_api_calendar_getCalendarEventById.GetCalendarEventByIdApi.html +3 -0
  36. package/docs/classes/src_api_calendar_getCalendarEvents.GetCalendarEventsApi.html +3 -0
  37. package/docs/classes/src_api_calendar_getEventAttendees.GetEventAttendeesApi.html +3 -0
  38. package/docs/classes/src_api_calendar_respondToCalendarEvent.RespondToCalendarEventApi.html +3 -0
  39. package/docs/classes/src_api_characters_getAgentsResearch.GetAgentsResearchApi.html +3 -0
  40. package/docs/classes/src_api_characters_getBlueprints.GetBlueprintsApi.html +3 -0
  41. package/docs/classes/src_api_characters_getCharacterPublicInfo.GetCharacterPublicInfoApi.html +3 -0
  42. package/docs/classes/src_api_characters_getCharacterRoles.GetCharacterRolesApi.html +3 -0
  43. package/docs/classes/src_api_characters_getCharacterStandings.GetCharacterStandingsApi.html +3 -0
  44. package/docs/classes/src_api_characters_getCharacterTitles.GetCharacterTitlesApi.html +3 -0
  45. package/docs/classes/src_api_characters_getContactNotifications.GetContactNotificationsApi.html +3 -0
  46. package/docs/classes/src_api_characters_getCorporationHistory.GetCorporationHistoryApi.html +3 -0
  47. package/docs/classes/src_api_characters_getJumpFatigue.GetJumpFatigueApi.html +3 -0
  48. package/docs/classes/src_api_characters_getMedals.GetMedalsApi.html +3 -0
  49. package/docs/classes/src_api_characters_getNotifications.GetNotificationsApi.html +3 -0
  50. package/docs/classes/src_api_characters_getPortrait.GetPortraitApi.html +3 -0
  51. package/docs/classes/src_api_characters_postCSPAChargeCost.PostCspaChargeCostApi.html +3 -0
  52. package/docs/classes/src_api_characters_postCharacterAffiliations.PostCharacterAffiliationApi.html +3 -0
  53. package/docs/classes/src_api_clones_getClones.GetClonesApi.html +3 -0
  54. package/docs/classes/src_api_clones_getImplants.GetImplantsApi.html +3 -0
  55. package/docs/classes/src_api_clones_postJumpCloneActivation.PostJumpCloneActivationApi.html +3 -0
  56. package/docs/classes/src_api_contacts_deleteCharacterContacts.deleteCharacterContacts.html +3 -0
  57. package/docs/classes/src_api_contacts_getAllianceContactLabels.getAllianceContactLabels.html +3 -0
  58. package/docs/classes/src_api_contacts_getAllianceContacts.getAllianceContacts.html +3 -0
  59. package/docs/classes/src_api_contacts_getCharacterContactLabels.getCharacterContactLabels.html +3 -0
  60. package/docs/classes/src_api_contacts_getCharacterContacts.getCharacterContacts.html +3 -0
  61. package/docs/classes/src_api_contacts_getCorporationContactLabels.getCorporationContactLabels.html +3 -0
  62. package/docs/classes/src_api_contacts_getCorporationContacts.getCorporationContacts.html +3 -0
  63. package/docs/classes/src_api_contacts_postCharacterContacts.postCharacterContacts.html +3 -0
  64. package/docs/classes/src_api_contacts_putCharacterContacts.putCharacterContacts.html +3 -0
  65. package/docs/classes/src_api_contracts_getCharacterContractBids.GetCharacterContractBidsApi.html +3 -0
  66. package/docs/classes/src_api_contracts_getCharacterContractItems.GetCharacterContractItemsApi.html +3 -0
  67. package/docs/classes/src_api_contracts_getCharacterContracts.GetCharacterContractsApi.html +3 -0
  68. package/docs/classes/src_api_contracts_getCorporationContractBids.GetCorporationContractBidsApi.html +3 -0
  69. package/docs/classes/src_api_contracts_getCorporationContractItems.GetCorporationContractItemsApi.html +3 -0
  70. package/docs/classes/src_api_contracts_getCorporationContracts.GetCorporationContractsApi.html +3 -0
  71. package/docs/classes/src_api_contracts_getPublicContractBids.GetPublicContractBidsApi.html +3 -0
  72. package/docs/classes/src_api_contracts_getPublicContractItems.GetPublicContractItemsApi.html +3 -0
  73. package/docs/classes/src_api_contracts_getPublicContracts.GetPublicContractsApi.html +3 -0
  74. package/docs/classes/src_api_corporations_getCorporationAllianceHistory.GetCorporationAllianceHistoryApi.html +3 -0
  75. package/docs/classes/src_api_corporations_getCorporationAlscLogs.GetCorporationAlscLogsApi.html +3 -0
  76. package/docs/classes/src_api_corporations_getCorporationBlueprints.GetCorporationBlueprintsApi.html +3 -0
  77. package/docs/classes/src_api_corporations_getCorporationDivisions.GetCorporationDivisionsApi.html +3 -0
  78. package/docs/classes/src_api_corporations_getCorporationFacilities.GetCorporationFacilitiesApi.html +3 -0
  79. package/docs/classes/src_api_corporations_getCorporationIcon.GetCorporationIconApi.html +3 -0
  80. package/docs/classes/src_api_corporations_getCorporationInfo.GetCorporationInfoApi.html +3 -0
  81. package/docs/classes/src_api_corporations_getCorporationIssuedMedals.GetCorporationIssuedMedalsApi.html +3 -0
  82. package/docs/classes/src_api_corporations_getCorporationMedals.GetCorporationMedalsApi.html +3 -0
  83. package/docs/classes/src_api_corporations_getCorporationMemberLimit.GetCorporationMemberLimitApi.html +3 -0
  84. package/docs/classes/src_api_corporations_getCorporationMemberRoles.GetCorporationMemberRolesApi.html +3 -0
  85. package/docs/classes/src_api_corporations_getCorporationMemberRolesHistory.GetCorporationMemberRolesHistoryApi.html +3 -0
  86. package/docs/classes/src_api_corporations_getCorporationMemberTracking.GetCorporationMemberTrackingApi.html +3 -0
  87. package/docs/classes/src_api_corporations_getCorporationMembers.GetCorporationMembersApi.html +3 -0
  88. package/docs/classes/src_api_corporations_getCorporationMembersTitles.GetCorporationMembersTitlesApi.html +3 -0
  89. package/docs/classes/src_api_corporations_getCorporationProjects.GetCorporationProjectsApi.html +3 -0
  90. package/docs/classes/src_api_corporations_getCorporationShareholders.GetCorporationShareholdersApi.html +3 -0
  91. package/docs/classes/src_api_corporations_getCorporationStandings.GetCorporationStandingsApi.html +3 -0
  92. package/docs/classes/src_api_corporations_getCorporationStarbaseDetail.GetCorporationStarbaseDetailApi.html +3 -0
  93. package/docs/classes/src_api_corporations_getCorporationStarbases.GetCorporationStarbasesApi.html +3 -0
  94. package/docs/classes/src_api_corporations_getCorporationStructures.GetCorporationStructuresApi.html +3 -0
  95. package/docs/classes/src_api_corporations_getCorporationTitles.GetCorporationTitlesApi.html +3 -0
  96. package/docs/classes/src_api_corporations_getNpcCorporations.GetNpcCorporationsApi.html +3 -0
  97. package/docs/classes/src_api_dogma_getDogmaAttributeById.DogmaAttributeByIdApi.html +3 -0
  98. package/docs/classes/src_api_dogma_getDogmaAttributes.DogmaAttributesApi.html +3 -0
  99. package/docs/classes/src_api_dogma_getDogmaDynamicItemAttributes.DogmaDynamicItemApi.html +3 -0
  100. package/docs/classes/src_api_dogma_getDogmaEffectById.DogmaEffectByIdApi.html +3 -0
  101. package/docs/classes/src_api_dogma_getDogmaEffects.DogmaEffectsApi.html +3 -0
  102. package/docs/classes/src_api_factions_getCharacterFactionWarfareStats.GetCharacterFactionWarfareStatsApi.html +3 -0
  103. package/docs/classes/src_api_factions_getCharacterLeaderboards.GetCharacterLeaderboardsApi.html +3 -0
  104. package/docs/classes/src_api_factions_getCorporationFactionWarfareStats.GetCorporationFactionWarfareStatsApi.html +3 -0
  105. package/docs/classes/src_api_factions_getCorporationLeaderboards.GetCorporationLeaderboardsApi.html +3 -0
  106. package/docs/classes/src_api_factions_getFactionLeaderboards.GetFactionLeaderboardsApi.html +3 -0
  107. package/docs/classes/src_api_factions_getFactionWarfareStats.getFactionWarfareStats.html +3 -0
  108. package/docs/classes/src_api_factions_getFactionWarfareSystems.FactionWarfareSystemsApi.html +3 -0
  109. package/docs/classes/src_api_factions_getFactionWarfareWars.FactionWarfareWarsApi.html +3 -0
  110. package/docs/classes/src_api_fittings_deleteCharacterFitting.DeleteCharacterFittingApi.html +3 -0
  111. package/docs/classes/src_api_fittings_getCharacterFittings.GetCharacterFittingsApi.html +3 -0
  112. package/docs/classes/src_api_fittings_postCharacterFittings.PostCharacterFittingApi.html +3 -0
  113. package/docs/classes/src_api_fleets_deleteFleetMember.DeleteFleetMemberApi.html +3 -0
  114. package/docs/classes/src_api_fleets_deleteFleetSquad.DeleteFleetSquadApi.html +3 -0
  115. package/docs/classes/src_api_fleets_deleteFleetWing.DeleteFleetWingApi.html +3 -0
  116. package/docs/classes/src_api_fleets_getCharacterFleetInfo.GetCharacterFleetInfoApi.html +3 -0
  117. package/docs/classes/src_api_fleets_getFleetInfo.GetFleetInfoApi.html +3 -0
  118. package/docs/classes/src_api_fleets_getFleetMembers.GetFleetMembersApi.html +3 -0
  119. package/docs/classes/src_api_fleets_getFleetWings.GetFleetWingsApi.html +3 -0
  120. package/docs/classes/src_api_fleets_postFleetInvitation.PostFleetInvitationApi.html +3 -0
  121. package/docs/classes/src_api_fleets_postFleetSquad.PostFleetSquadApi.html +3 -0
  122. package/docs/classes/src_api_fleets_postFleetWing.PostFleetWingApi.html +3 -0
  123. package/docs/classes/src_api_fleets_putFleetMember.PutFleetMemberApi.html +3 -0
  124. package/docs/classes/src_api_fleets_putFleetSquad.PutFleetSquadApi.html +3 -0
  125. package/docs/classes/src_api_fleets_putFleetWing.PutFleetWingApi.html +3 -0
  126. package/docs/classes/src_api_fleets_updateFleet.UpdateFleetApi.html +3 -0
  127. package/docs/classes/src_api_incursions_getIncursions.IncursionsApi.html +3 -0
  128. package/docs/classes/src_api_industry_getCharacterIndustryJobs.GetCharacterIndustryJobsApi.html +3 -0
  129. package/docs/classes/src_api_industry_getCharacterMiningLedger.GetCharacterMiningLedgerApi.html +3 -0
  130. package/docs/classes/src_api_industry_getCorporationIndustryJobs.GetCorporationIndustryJobsApi.html +3 -0
  131. package/docs/classes/src_api_industry_getCorporationMiningObserver.GetCorporationMiningObserverApi.html +3 -0
  132. package/docs/classes/src_api_industry_getCorporationMiningObservers.GetCorporationMiningObserversApi.html +3 -0
  133. package/docs/classes/src_api_industry_getIndustryFacilities.GetIndustryFacilitiesApi.html +3 -0
  134. package/docs/classes/src_api_industry_getIndustrySystems.GetIndustrySystemsApi.html +3 -0
  135. package/docs/classes/src_api_industry_getMoonExtractionTimers.GetMoonExtractionTimersApi.html +3 -0
  136. package/docs/classes/src_api_insurance_getInsurancePrices.InsuranceApi.html +3 -0
  137. package/docs/classes/src_api_killmails_getCharacterRecentKillmails.GetCharacterRecentKillmailsApi.html +3 -0
  138. package/docs/classes/src_api_killmails_getCorporationRecentKillmails.GetCorporationRecentKillmailsApi.html +3 -0
  139. package/docs/classes/src_api_killmails_getKillmail.GetKillmailApi.html +3 -0
  140. package/docs/classes/src_api_location_getCharacterLocation.GetCharacterLocationApi.html +3 -0
  141. package/docs/classes/src_api_location_getCharacterOnline.GetCharacterOnlineApi.html +3 -0
  142. package/docs/classes/src_api_location_getCharacterShip.GetCharacterShipApi.html +3 -0
  143. package/docs/classes/src_api_loyalty_getLoyaltyPoints.GetLoyaltyPointsApi.html +3 -0
  144. package/docs/classes/src_api_loyalty_getLoyaltyStoreOffers.GetLoyaltyStoreOffersApi.html +3 -0
  145. package/docs/classes/src_api_mail_deleteCharacterMail.DeleteCharacterMailApi.html +3 -0
  146. package/docs/classes/src_api_mail_deleteCharacterMailLabel.DeleteCharacterMailLabelApi.html +3 -0
  147. package/docs/classes/src_api_mail_getCharacterMail.GetCharacterMailApi.html +3 -0
  148. package/docs/classes/src_api_mail_getCharacterMailHeaders.GetCharacterMailHeadersApi.html +3 -0
  149. package/docs/classes/src_api_mail_getCharacterMailLabels.GetCharacterMailLabelsApi.html +3 -0
  150. package/docs/classes/src_api_mail_getCharacterMailingLists.GetCharacterMailingListsApi.html +3 -0
  151. package/docs/classes/src_api_mail_postCharacterMail.PostCharacterMailApi.html +3 -0
  152. package/docs/classes/src_api_mail_postCharacterMailLabels.PostCharacterMailLabelsApi.html +3 -0
  153. package/docs/classes/src_api_mail_putCharacterMail.PutCharacterMailApi.html +3 -0
  154. package/docs/classes/src_api_market_getCharacterOrderHistory.getCharacterOrderHistory.html +3 -0
  155. package/docs/classes/src_api_market_getCharacterOrders.getCharacterOrders.html +3 -0
  156. package/docs/classes/src_api_market_getCorporationOrderHistory.getCorporationOrderHistory.html +3 -0
  157. package/docs/classes/src_api_market_getCorporationOrders.getCorporationOrders.html +3 -0
  158. package/docs/classes/src_api_market_getMarketGroupInformation.getMarketGroupInformation.html +3 -0
  159. package/docs/classes/src_api_market_getMarketGroups.getMarketGroups.html +3 -0
  160. package/docs/classes/src_api_market_getMarketHistory.getMarketHistory.html +3 -0
  161. package/docs/classes/src_api_market_getMarketOrders.getMarketOrders.html +3 -0
  162. package/docs/classes/src_api_market_getMarketOrdersInStructure.getMarketOrdersInStructure.html +3 -0
  163. package/docs/classes/src_api_market_getMarketPrices.getMarketPrices.html +3 -0
  164. package/docs/classes/src_api_market_getMarketTypes.getMarketTypes.html +3 -0
  165. package/docs/classes/src_api_meta_getSwaggerJson.GetSwaggerJsonApi.html +3 -0
  166. package/docs/classes/src_api_meta_getSwaggerYaml.GetSwaggerYamlApi.html +3 -0
  167. package/docs/classes/src_api_opportunities_getCharacterOpportunities.GetCharacterOpportunitiesApi.html +3 -0
  168. package/docs/classes/src_api_opportunities_getOpportunitiesGroupById.GetOpportunitiesGroupByIdApi.html +3 -0
  169. package/docs/classes/src_api_opportunities_getOpportunitiesGroups.GetOpportunitiesGroupsApi.html +3 -0
  170. package/docs/classes/src_api_opportunities_getOpportunitiesTaskById.GetOpportunitiesTaskByIdApi.html +3 -0
  171. package/docs/classes/src_api_opportunities_getOpportunitiesTasks.GetOpportunitiesTasksApi.html +3 -0
  172. package/docs/classes/src_api_pi_getColonies.GetColoniesApi.html +3 -0
  173. package/docs/classes/src_api_pi_getColonyLayout.GetColonyLayoutApi.html +3 -0
  174. package/docs/classes/src_api_pi_getCorporationCustomsOffices.GetCorporationCustomsOfficesApi.html +3 -0
  175. package/docs/classes/src_api_pi_getSchematicInformation.GetSchematicInformationApi.html +3 -0
  176. package/docs/classes/src_api_route_getRoute.RouteApi.html +3 -0
  177. package/docs/classes/src_api_search_getCharacterSearch.CharacterSearchApi.html +3 -0
  178. package/docs/classes/src_api_skills_getCharacterAttributes.GetCharacterAttributesApi.html +3 -0
  179. package/docs/classes/src_api_skills_getCharacterSkillQueue.GetCharacterSkillQueueApi.html +3 -0
  180. package/docs/classes/src_api_skills_getCharacterSkills.GetCharacterSkillsApi.html +3 -0
  181. package/docs/classes/src_api_sovereignty_getSovereigntyCampaigns.SovereigntyCampaignsApi.html +3 -0
  182. package/docs/classes/src_api_sovereignty_getSovereigntyMap.SovereigntyMapApi.html +3 -0
  183. package/docs/classes/src_api_sovereignty_getSovereigntyStructures.SovereigntyStructuresApi.html +3 -0
  184. package/docs/classes/src_api_status_getStatus.GetStatusApi.html +3 -0
  185. package/docs/classes/src_api_ui_postAutopilotWaypoint.PostAutopilotWaypointApi.html +3 -0
  186. package/docs/classes/src_api_ui_postOpenContractWindow.PostOpenContractWindowApi.html +3 -0
  187. package/docs/classes/src_api_ui_postOpenInformationWindow.PostOpenInformationWindowApi.html +3 -0
  188. package/docs/classes/src_api_ui_postOpenMarketDetailsWindow.PostOpenMarketDetailsWindowApi.html +3 -0
  189. package/docs/classes/src_api_ui_postOpenNewMailWindow.PostOpenNewMailWindowApi.html +3 -0
  190. package/docs/classes/src_api_universe_getAncestries.UniverseAncestriesApi.html +3 -0
  191. package/docs/classes/src_api_universe_getAsteroidBeltInfo.UniverseAsteroidBeltApi.html +3 -0
  192. package/docs/classes/src_api_universe_getBloodlines.UniverseBloodlinesApi.html +3 -0
  193. package/docs/classes/src_api_universe_getConstellationById.UniverseConstellationByIdApi.html +3 -0
  194. package/docs/classes/src_api_universe_getConstellations.UniverseConstellationsApi.html +3 -0
  195. package/docs/classes/src_api_universe_getFactions.UniverseFactionsApi.html +3 -0
  196. package/docs/classes/src_api_universe_getGraphicById.UniverseGraphicByIdApi.html +3 -0
  197. package/docs/classes/src_api_universe_getGraphics.UniverseGraphicsApi.html +3 -0
  198. package/docs/classes/src_api_universe_getItemCategories.UniverseCategoriesApi.html +3 -0
  199. package/docs/classes/src_api_universe_getItemCategoryById.UniverseCategoryByIdApi.html +3 -0
  200. package/docs/classes/src_api_universe_getItemGroupById.UniverseItemGroupByIdApi.html +3 -0
  201. package/docs/classes/src_api_universe_getItemGroups.UniverseItemGroupsApi.html +3 -0
  202. package/docs/classes/src_api_universe_getMoonById.UniverseMoonByIdApi.html +3 -0
  203. package/docs/classes/src_api_universe_getPlanetById.UniversePlanetByIdApi.html +3 -0
  204. package/docs/classes/src_api_universe_getRaces.UniverseRacesApi.html +3 -0
  205. package/docs/classes/src_api_universe_getRegionById.UniverseRegionByIdApi.html +3 -0
  206. package/docs/classes/src_api_universe_getStarById.UniverseStarByIdApi.html +3 -0
  207. package/docs/classes/src_api_universe_getStargateById.UniverseStargateByIdApi.html +3 -0
  208. package/docs/classes/src_api_universe_getStationById.UniverseStationByIdApi.html +3 -0
  209. package/docs/classes/src_api_universe_getStructureById.UniverseStructureByIdApi.html +3 -0
  210. package/docs/classes/src_api_universe_getStructures.UniverseStructuresApi.html +3 -0
  211. package/docs/classes/src_api_universe_getSystemById.UniverseSystemByIdApi.html +3 -0
  212. package/docs/classes/src_api_universe_getSystemJumps.UniverseSystemJumpsApi.html +3 -0
  213. package/docs/classes/src_api_universe_getSystemKills.UniverseSystemKillsApi.html +3 -0
  214. package/docs/classes/src_api_universe_getSystems.UniverseSystemsApi.html +3 -0
  215. package/docs/classes/src_api_universe_getTypeById.UniverseTypeByIdApi.html +3 -0
  216. package/docs/classes/src_api_universe_getTypes.UniverseTypesApi.html +3 -0
  217. package/docs/classes/src_api_universe_postBulkNamesToIds.PostBulkNamesToIdsApi.html +3 -0
  218. package/docs/classes/src_api_universe_postNamesAndCategories.PostNamesAndCategoriesApi.html +3 -0
  219. package/docs/classes/src_api_wallet_getCharacterWallet.GetCharacterWalletApi.html +3 -0
  220. package/docs/classes/src_api_wallet_getCharacterWalletJournal.GetCharacterWalletJournalApi.html +3 -0
  221. package/docs/classes/src_api_wallet_getCharacterWalletTransactions.GetCharacterWalletTransactionsApi.html +3 -0
  222. package/docs/classes/src_api_wallet_getCorporationWalletJournal.GetCorporationWalletJournalApi.html +3 -0
  223. package/docs/classes/src_api_wallet_getCorporationWalletTransactions.GetCorporationWalletTransactionsApi.html +3 -0
  224. package/docs/classes/src_api_wallet_getCorporationWallets.GetCorporationWalletsApi.html +3 -0
  225. package/docs/classes/src_api_wars_getWarById.WarByIdApi.html +3 -0
  226. package/docs/classes/src_api_wars_getWarKillmails.WarKillmailsApi.html +3 -0
  227. package/docs/classes/src_api_wars_getWars.WarsApi.html +3 -0
  228. package/docs/classes/src_builders_AllianceApiBuilder.AllianceApiBuilder.html +3 -0
  229. package/docs/classes/src_builders_AssetsApiBuilder.AssetsApiBuilder.html +3 -0
  230. package/docs/classes/src_builders_BookmarkApiBuilder.BookmarkApiBuilder.html +3 -0
  231. package/docs/classes/src_builders_CalendarApiBuilder.CalendarApiBuilder.html +3 -0
  232. package/docs/classes/src_builders_CharacterApiBuilder.CharacterApiBuilder.html +3 -0
  233. package/docs/classes/src_builders_ClonesApiBuilder.ClonesApiBuilder.html +3 -0
  234. package/docs/classes/src_builders_ContactsApiBuilder.ContactsApiBuilder.html +3 -0
  235. package/docs/classes/src_builders_ContractsApiBuilder.ContractsApiBuilder.html +3 -0
  236. package/docs/classes/src_builders_CorporationsApiBuilder.CorporationsApiBuilder.html +3 -0
  237. package/docs/classes/src_builders_DogmaApiBuilder.DogmaAPIBuilder.html +3 -0
  238. package/docs/classes/src_builders_FactionApiBuilder.FactionAPIBuilder.html +3 -0
  239. package/docs/classes/src_builders_FittingsApiBuilder.FittingsApiBuilder.html +3 -0
  240. package/docs/classes/src_builders_FleetApiBuilder.FleetApiBuilder.html +3 -0
  241. package/docs/classes/src_builders_IncursionsApiBuilder.IncursionsApiBuilder.html +3 -0
  242. package/docs/classes/src_builders_IndustryApiBuilder.IndustryApiBuilder.html +3 -0
  243. package/docs/classes/src_builders_InsuranceApiBuilder.InsuranceAPIBuilder.html +3 -0
  244. package/docs/classes/src_builders_KillmailsBuilder.KillmailsApiBuilder.html +3 -0
  245. package/docs/classes/src_builders_LocationApiBuilder.LocationApiBuilder.html +3 -0
  246. package/docs/classes/src_builders_LoyaltyApiBuilder.LoyaltyApiBuilder.html +3 -0
  247. package/docs/classes/src_builders_MailApiBuilder.MailApiBuilder.html +3 -0
  248. package/docs/classes/src_builders_MarketApiBuilder.MarketApiBuilder.html +3 -0
  249. package/docs/classes/src_builders_MetaApiBuilder.MetaApiBuilder.html +3 -0
  250. package/docs/classes/src_builders_OpportunitiesApiBuilder.OpportunitiesApiBuilder.html +3 -0
  251. package/docs/classes/src_builders_PiApiBuilder.PiApiBuilder.html +3 -0
  252. package/docs/classes/src_builders_RouteApiBuilder.RouteApiBuilder.html +3 -0
  253. package/docs/classes/src_builders_SearchApiBuilder.SearchApiBuilder.html +3 -0
  254. package/docs/classes/src_builders_SkillsApiBuilder.SkillsApiBuilder.html +3 -0
  255. package/docs/classes/src_builders_SovereigntyApiBuilder.SovereigntyApiBuilder.html +3 -0
  256. package/docs/classes/src_builders_StatusApiBuilder.StatusAPIBuilder.html +3 -0
  257. package/docs/classes/src_builders_UiApiBuilder.UiApiBuilder.html +3 -0
  258. package/docs/classes/src_builders_UniverseApiBuilder.UniverseAPIBuilder.html +3 -0
  259. package/docs/classes/src_builders_WalletApiBuilder.WalletApiBuilder.html +3 -0
  260. package/docs/classes/src_builders_WarsAPIBuilder.WarsAPIBuilder.html +3 -0
  261. package/docs/classes/src_clients_AllianceClient.AllianceClient.html +10 -0
  262. package/docs/classes/src_clients_AssetsClient.AssetsClient.html +8 -0
  263. package/docs/classes/src_clients_BookmarkClient.BookmarkClient.html +6 -0
  264. package/docs/classes/src_clients_CalendarClient.CalendarClient.html +6 -0
  265. package/docs/classes/src_clients_CharacterClient.CharacterClient.html +16 -0
  266. package/docs/classes/src_clients_ClonesClient.ClonesClient.html +5 -0
  267. package/docs/classes/src_clients_ContactsClient.ContactsClient.html +11 -0
  268. package/docs/classes/src_clients_ContractsClient.ContractsClient.html +11 -0
  269. package/docs/classes/src_clients_CorporationsClient.CorporationsClient.html +25 -0
  270. package/docs/classes/src_clients_DogmaClient.DogmaClient.html +7 -0
  271. package/docs/classes/src_clients_FactionClient.FactionClient.html +10 -0
  272. package/docs/classes/src_clients_FittingsClient.FittingsClient.html +5 -0
  273. package/docs/classes/src_clients_FleetClient.FleetClient.html +16 -0
  274. package/docs/classes/src_clients_IncursionsClient.IncursionsClient.html +3 -0
  275. package/docs/classes/src_clients_IndustryClient.IndustryClient.html +10 -0
  276. package/docs/classes/src_clients_InsuranceClient.InsuranceClient.html +3 -0
  277. package/docs/classes/src_clients_KillmailsClient.KillmailsClient.html +5 -0
  278. package/docs/classes/src_clients_LocationClient.LocationClient.html +5 -0
  279. package/docs/classes/src_clients_LoyaltyClient.LoyaltyClient.html +4 -0
  280. package/docs/classes/src_clients_MailClient.MailClient.html +11 -0
  281. package/docs/classes/src_clients_MarketClient.MarketClient.html +13 -0
  282. package/docs/classes/src_clients_MetaClient.MetaClient.html +6 -0
  283. package/docs/classes/src_clients_OpportunitiesClient.OpportunitiesClient.html +7 -0
  284. package/docs/classes/src_clients_PiClient.PIClient.html +6 -0
  285. package/docs/classes/src_clients_RouteClient.RouteClient.html +3 -0
  286. package/docs/classes/src_clients_SearchClient.SearchClient.html +3 -0
  287. package/docs/classes/src_clients_SkillsClient.CharacterSkillsClient.html +5 -0
  288. package/docs/classes/src_clients_SovereigntyClient.SovereigntyClient.html +5 -0
  289. package/docs/classes/src_clients_StatusClient.StatusClient.html +3 -0
  290. package/docs/classes/src_clients_UiClient.UIClient.html +7 -0
  291. package/docs/classes/src_clients_UniverseClient.UniverseClient.html +31 -0
  292. package/docs/classes/src_clients_WalletClient.WalletClient.html +8 -0
  293. package/docs/classes/src_clients_WarsClient.WarsClient.html +5 -0
  294. package/docs/classes/src_core_ApiClient.ApiClient.html +4 -0
  295. package/docs/classes/src_core_ApiClientBuilder.ApiClientBuilder.html +6 -0
  296. package/docs/classes/src_core_ApiError.ApiError.html +3 -0
  297. package/docs/classes/src_core_cache_ETagCacheManager.ETagCacheManager.html +22 -0
  298. package/docs/classes/src_core_container_Container.CircularDependencyError.html +2 -0
  299. package/docs/classes/src_core_container_Container.Container.html +20 -0
  300. package/docs/classes/src_core_errors_ApiError.ApiError.html +12 -0
  301. package/docs/classes/src_core_errors_ApiError.ErrorHandler.html +5 -0
  302. package/docs/classes/src_core_factory_ApiFactory.ApiFactory.html +20 -0
  303. package/docs/classes/src_core_factory_ApiFactory.ApiModule.html +6 -0
  304. package/docs/classes/src_core_util_headersUtil.default.html +11 -0
  305. package/docs/classes/src_testing_TestDataFactory.TestDataFactory.html +47 -0
  306. package/docs/classes/src_testing_TestHelpers.MockApiClient.html +3 -0
  307. package/docs/classes/src_testing_TestHelpers.TestAssertions.html +6 -0
  308. package/docs/classes/src_testing_TestHelpers.TestDataFactory.html +6 -0
  309. package/docs/classes/src_testing_TestHelpers.TestScenarios.html +5 -0
  310. package/docs/classes/src_types_winston_loggly_bulk.Loggly.html +2 -0
  311. package/docs/enums/src_core_errors_ApiError.ApiErrorType.html +11 -0
  312. package/docs/functions/src.displayCharacterProfile.html +2 -0
  313. package/docs/functions/src.getCompleteCharacterProfile.html +4 -0
  314. package/docs/functions/src_config_configManager.getConfig.html +1 -0
  315. package/docs/functions/src_config_jest_jest_setup.getClient.html +1 -0
  316. package/docs/functions/src_core_ApiRequestHandler.getETagCache.html +1 -0
  317. package/docs/functions/src_core_ApiRequestHandler.handleRequest.html +1 -0
  318. package/docs/functions/src_core_ApiRequestHandler.handleRequestBody.html +1 -0
  319. package/docs/functions/src_core_ApiRequestHandler.initializeETagCache.html +1 -0
  320. package/docs/functions/src_core_ApiRequestHandler.resetETagCache.html +1 -0
  321. package/docs/functions/src_core_container_Container.Inject.html +1 -0
  322. package/docs/functions/src_core_container_Container.Injectable.html +1 -0
  323. package/docs/functions/src_core_logger_loggerUtil.logDebug.html +1 -0
  324. package/docs/functions/src_core_logger_loggerUtil.logError.html +1 -0
  325. package/docs/functions/src_core_logger_loggerUtil.logInfo.html +1 -0
  326. package/docs/functions/src_core_logger_loggerUtil.logWarn.html +1 -0
  327. package/docs/functions/src_core_util_error.buildError.html +1 -0
  328. package/docs/functions/src_core_util_file.checkForConfig.html +1 -0
  329. package/docs/functions/src_core_util_file.getSettings.html +1 -0
  330. package/docs/functions/src_core_util_file.log.html +1 -0
  331. package/docs/functions/src_core_util_inputValidation.inputValidation.html +1 -0
  332. package/docs/functions/src_core_util_network.request.html +1 -0
  333. package/docs/functions/src_core_util_request.inputValidation.html +1 -0
  334. package/docs/functions/src_core_util_request.request.html +1 -0
  335. package/docs/functions/src_core_util_testHelpers.getBody.html +1 -0
  336. package/docs/functions/src_core_util_testHelpers.getHeaders.html +1 -0
  337. package/docs/functions/src_core_util_testHelpers.mockApiCall.html +1 -0
  338. package/docs/functions/src_testing_TestHelpers.createMockApiClient.html +1 -0
  339. package/docs/functions/src_testing_TestHelpers.getBody.html +1 -0
  340. package/docs/functions/src_testing_TestHelpers.getHeaders.html +1 -0
  341. package/docs/hierarchy.html +1 -0
  342. package/docs/index.html +272 -0
  343. package/docs/interfaces/src_EsiClient.EsiClientConfig.html +8 -0
  344. package/docs/interfaces/src_core_IAPIBuilder.IAPIBuilder.html +2 -0
  345. package/docs/interfaces/src_core_IAPIBuilder.IApiClient.html +3 -0
  346. package/docs/interfaces/src_core_IAPIBuilder.IApiService.html +3 -0
  347. package/docs/interfaces/src_core_cache_ETagCacheManager.CacheEntry.html +6 -0
  348. package/docs/interfaces/src_core_cache_ETagCacheManager.ETagCacheConfig.html +6 -0
  349. package/docs/interfaces/src_core_container_Container.ContainerConfig.html +3 -0
  350. package/docs/interfaces/src_core_factory_ApiFactory.ApiClientConfig.html +7 -0
  351. package/docs/interfaces/src_core_factory_ApiFactory.ApiModuleConfig.html +4 -0
  352. package/docs/interfaces/src_testing_TestHelpers.MockConfig.html +6 -0
  353. package/docs/interfaces/src_types_api_responses.AllianceContact.html +5 -0
  354. package/docs/interfaces/src_types_api_responses.AllianceContactLabel.html +3 -0
  355. package/docs/interfaces/src_types_api_responses.AllianceIcon.html +3 -0
  356. package/docs/interfaces/src_types_api_responses.AllianceInfo.html +9 -0
  357. package/docs/interfaces/src_types_api_responses.ApiResponse.html +4 -0
  358. package/docs/interfaces/src_types_api_responses.AssetLocation.html +3 -0
  359. package/docs/interfaces/src_types_api_responses.AssetName.html +3 -0
  360. package/docs/interfaces/src_types_api_responses.CharacterAsset.html +9 -0
  361. package/docs/interfaces/src_types_api_responses.CharacterAttributes.html +9 -0
  362. package/docs/interfaces/src_types_api_responses.CharacterInfo.html +13 -0
  363. package/docs/interfaces/src_types_api_responses.CharacterPortrait.html +5 -0
  364. package/docs/interfaces/src_types_api_responses.CharacterSkill.html +5 -0
  365. package/docs/interfaces/src_types_api_responses.ConstellationInfo.html +6 -0
  366. package/docs/interfaces/src_types_api_responses.Contract.html +23 -0
  367. package/docs/interfaces/src_types_api_responses.ContractItem.html +8 -0
  368. package/docs/interfaces/src_types_api_responses.CorporationInfo.html +16 -0
  369. package/docs/interfaces/src_types_api_responses.ErrorResponse.html +4 -0
  370. package/docs/interfaces/src_types_api_responses.MailLabel.html +5 -0
  371. package/docs/interfaces/src_types_api_responses.MailMessage.html +8 -0
  372. package/docs/interfaces/src_types_api_responses.MarketHistory.html +7 -0
  373. package/docs/interfaces/src_types_api_responses.MarketOrder.html +12 -0
  374. package/docs/interfaces/src_types_api_responses.PaginatedResponse.html +5 -0
  375. package/docs/interfaces/src_types_api_responses.RegionInfo.html +5 -0
  376. package/docs/interfaces/src_types_api_responses.SkillQueue.html +9 -0
  377. package/docs/interfaces/src_types_api_responses.SolarSystemInfo.html +10 -0
  378. package/docs/interfaces/src_types_api_responses.WalletJournal.html +12 -0
  379. package/docs/interfaces/src_types_api_responses.WalletTransaction.html +11 -0
  380. package/docs/interfaces/src_types_winston_loggly_bulk.LogglyOptions.html +5 -0
  381. package/docs/media/LICENSE +26 -0
  382. package/docs/modules/src.html +22 -0
  383. package/docs/modules/src_EsiClient.html +4 -0
  384. package/docs/modules/src_EsiClientBuilder.html +6 -0
  385. package/docs/modules/src_api_alliances_getAllianceById.html +2 -0
  386. package/docs/modules/src_api_alliances_getAllianceContactLabels.html +2 -0
  387. package/docs/modules/src_api_alliances_getAllianceContacts.html +2 -0
  388. package/docs/modules/src_api_alliances_getAllianceCorporations.html +2 -0
  389. package/docs/modules/src_api_alliances_getAllianceIcons.html +2 -0
  390. package/docs/modules/src_api_alliances_getAlliances.html +2 -0
  391. package/docs/modules/src_api_assets_getCharacterAssets.html +2 -0
  392. package/docs/modules/src_api_assets_getCorporationAssets.html +2 -0
  393. package/docs/modules/src_api_assets_postCharacterAssetLocations.html +2 -0
  394. package/docs/modules/src_api_assets_postCharacterAssetNames.html +2 -0
  395. package/docs/modules/src_api_assets_postCorporationAssetLocations.html +2 -0
  396. package/docs/modules/src_api_assets_postCorporationAssetNames.html +2 -0
  397. package/docs/modules/src_api_bookmarks_getCharacterBookmarkFolders.html +2 -0
  398. package/docs/modules/src_api_bookmarks_getCharacterBookmarks.html +2 -0
  399. package/docs/modules/src_api_bookmarks_getCorporationBookmarkFolders.html +2 -0
  400. package/docs/modules/src_api_bookmarks_getCorporationBookmarks.html +2 -0
  401. package/docs/modules/src_api_calendar_getCalendarEventById.html +2 -0
  402. package/docs/modules/src_api_calendar_getCalendarEvents.html +2 -0
  403. package/docs/modules/src_api_calendar_getEventAttendees.html +2 -0
  404. package/docs/modules/src_api_calendar_respondToCalendarEvent.html +2 -0
  405. package/docs/modules/src_api_characters_getAgentsResearch.html +2 -0
  406. package/docs/modules/src_api_characters_getBlueprints.html +2 -0
  407. package/docs/modules/src_api_characters_getCharacterPublicInfo.html +2 -0
  408. package/docs/modules/src_api_characters_getCharacterRoles.html +2 -0
  409. package/docs/modules/src_api_characters_getCharacterStandings.html +2 -0
  410. package/docs/modules/src_api_characters_getCharacterTitles.html +2 -0
  411. package/docs/modules/src_api_characters_getContactNotifications.html +2 -0
  412. package/docs/modules/src_api_characters_getCorporationHistory.html +2 -0
  413. package/docs/modules/src_api_characters_getJumpFatigue.html +2 -0
  414. package/docs/modules/src_api_characters_getMedals.html +2 -0
  415. package/docs/modules/src_api_characters_getNotifications.html +2 -0
  416. package/docs/modules/src_api_characters_getPortrait.html +2 -0
  417. package/docs/modules/src_api_characters_postCSPAChargeCost.html +2 -0
  418. package/docs/modules/src_api_characters_postCharacterAffiliations.html +2 -0
  419. package/docs/modules/src_api_clones_getClones.html +2 -0
  420. package/docs/modules/src_api_clones_getImplants.html +2 -0
  421. package/docs/modules/src_api_clones_postJumpCloneActivation.html +2 -0
  422. package/docs/modules/src_api_contacts_deleteCharacterContacts.html +2 -0
  423. package/docs/modules/src_api_contacts_getAllianceContactLabels.html +2 -0
  424. package/docs/modules/src_api_contacts_getAllianceContacts.html +2 -0
  425. package/docs/modules/src_api_contacts_getCharacterContactLabels.html +2 -0
  426. package/docs/modules/src_api_contacts_getCharacterContacts.html +2 -0
  427. package/docs/modules/src_api_contacts_getCorporationContactLabels.html +2 -0
  428. package/docs/modules/src_api_contacts_getCorporationContacts.html +2 -0
  429. package/docs/modules/src_api_contacts_postCharacterContacts.html +2 -0
  430. package/docs/modules/src_api_contacts_putCharacterContacts.html +2 -0
  431. package/docs/modules/src_api_contracts_getCharacterContractBids.html +2 -0
  432. package/docs/modules/src_api_contracts_getCharacterContractItems.html +2 -0
  433. package/docs/modules/src_api_contracts_getCharacterContracts.html +2 -0
  434. package/docs/modules/src_api_contracts_getCorporationContractBids.html +2 -0
  435. package/docs/modules/src_api_contracts_getCorporationContractItems.html +2 -0
  436. package/docs/modules/src_api_contracts_getCorporationContracts.html +2 -0
  437. package/docs/modules/src_api_contracts_getPublicContractBids.html +2 -0
  438. package/docs/modules/src_api_contracts_getPublicContractItems.html +2 -0
  439. package/docs/modules/src_api_contracts_getPublicContracts.html +2 -0
  440. package/docs/modules/src_api_corporations_getCorporationAllianceHistory.html +2 -0
  441. package/docs/modules/src_api_corporations_getCorporationAlscLogs.html +2 -0
  442. package/docs/modules/src_api_corporations_getCorporationBlueprints.html +2 -0
  443. package/docs/modules/src_api_corporations_getCorporationDivisions.html +2 -0
  444. package/docs/modules/src_api_corporations_getCorporationFacilities.html +2 -0
  445. package/docs/modules/src_api_corporations_getCorporationIcon.html +2 -0
  446. package/docs/modules/src_api_corporations_getCorporationInfo.html +2 -0
  447. package/docs/modules/src_api_corporations_getCorporationIssuedMedals.html +2 -0
  448. package/docs/modules/src_api_corporations_getCorporationMedals.html +2 -0
  449. package/docs/modules/src_api_corporations_getCorporationMemberLimit.html +2 -0
  450. package/docs/modules/src_api_corporations_getCorporationMemberRoles.html +2 -0
  451. package/docs/modules/src_api_corporations_getCorporationMemberRolesHistory.html +2 -0
  452. package/docs/modules/src_api_corporations_getCorporationMemberTracking.html +2 -0
  453. package/docs/modules/src_api_corporations_getCorporationMembers.html +2 -0
  454. package/docs/modules/src_api_corporations_getCorporationMembersTitles.html +2 -0
  455. package/docs/modules/src_api_corporations_getCorporationProjects.html +2 -0
  456. package/docs/modules/src_api_corporations_getCorporationShareholders.html +2 -0
  457. package/docs/modules/src_api_corporations_getCorporationStandings.html +2 -0
  458. package/docs/modules/src_api_corporations_getCorporationStarbaseDetail.html +2 -0
  459. package/docs/modules/src_api_corporations_getCorporationStarbases.html +2 -0
  460. package/docs/modules/src_api_corporations_getCorporationStructures.html +2 -0
  461. package/docs/modules/src_api_corporations_getCorporationTitles.html +2 -0
  462. package/docs/modules/src_api_corporations_getNpcCorporations.html +2 -0
  463. package/docs/modules/src_api_dogma_getDogmaAttributeById.html +2 -0
  464. package/docs/modules/src_api_dogma_getDogmaAttributes.html +2 -0
  465. package/docs/modules/src_api_dogma_getDogmaDynamicItemAttributes.html +2 -0
  466. package/docs/modules/src_api_dogma_getDogmaEffectById.html +2 -0
  467. package/docs/modules/src_api_dogma_getDogmaEffects.html +2 -0
  468. package/docs/modules/src_api_factions_getCharacterFactionWarfareStats.html +2 -0
  469. package/docs/modules/src_api_factions_getCharacterLeaderboards.html +2 -0
  470. package/docs/modules/src_api_factions_getCorporationFactionWarfareStats.html +2 -0
  471. package/docs/modules/src_api_factions_getCorporationLeaderboards.html +2 -0
  472. package/docs/modules/src_api_factions_getFactionLeaderboards.html +2 -0
  473. package/docs/modules/src_api_factions_getFactionWarfareStats.html +2 -0
  474. package/docs/modules/src_api_factions_getFactionWarfareSystems.html +2 -0
  475. package/docs/modules/src_api_factions_getFactionWarfareWars.html +2 -0
  476. package/docs/modules/src_api_fittings_deleteCharacterFitting.html +2 -0
  477. package/docs/modules/src_api_fittings_getCharacterFittings.html +2 -0
  478. package/docs/modules/src_api_fittings_postCharacterFittings.html +2 -0
  479. package/docs/modules/src_api_fleets_deleteFleetMember.html +2 -0
  480. package/docs/modules/src_api_fleets_deleteFleetSquad.html +2 -0
  481. package/docs/modules/src_api_fleets_deleteFleetWing.html +2 -0
  482. package/docs/modules/src_api_fleets_getCharacterFleetInfo.html +2 -0
  483. package/docs/modules/src_api_fleets_getFleetInfo.html +2 -0
  484. package/docs/modules/src_api_fleets_getFleetMembers.html +2 -0
  485. package/docs/modules/src_api_fleets_getFleetWings.html +2 -0
  486. package/docs/modules/src_api_fleets_postFleetInvitation.html +2 -0
  487. package/docs/modules/src_api_fleets_postFleetSquad.html +2 -0
  488. package/docs/modules/src_api_fleets_postFleetWing.html +2 -0
  489. package/docs/modules/src_api_fleets_putFleetMember.html +2 -0
  490. package/docs/modules/src_api_fleets_putFleetSquad.html +2 -0
  491. package/docs/modules/src_api_fleets_putFleetWing.html +2 -0
  492. package/docs/modules/src_api_fleets_updateFleet.html +2 -0
  493. package/docs/modules/src_api_incursions_getIncursions.html +2 -0
  494. package/docs/modules/src_api_industry_getCharacterIndustryJobs.html +2 -0
  495. package/docs/modules/src_api_industry_getCharacterMiningLedger.html +2 -0
  496. package/docs/modules/src_api_industry_getCorporationIndustryJobs.html +2 -0
  497. package/docs/modules/src_api_industry_getCorporationMiningObserver.html +2 -0
  498. package/docs/modules/src_api_industry_getCorporationMiningObservers.html +2 -0
  499. package/docs/modules/src_api_industry_getIndustryFacilities.html +2 -0
  500. package/docs/modules/src_api_industry_getIndustrySystems.html +2 -0
  501. package/docs/modules/src_api_industry_getMoonExtractionTimers.html +2 -0
  502. package/docs/modules/src_api_insurance_getInsurancePrices.html +2 -0
  503. package/docs/modules/src_api_killmails_getCharacterRecentKillmails.html +2 -0
  504. package/docs/modules/src_api_killmails_getCorporationRecentKillmails.html +2 -0
  505. package/docs/modules/src_api_killmails_getKillmail.html +2 -0
  506. package/docs/modules/src_api_location_getCharacterLocation.html +2 -0
  507. package/docs/modules/src_api_location_getCharacterOnline.html +2 -0
  508. package/docs/modules/src_api_location_getCharacterShip.html +2 -0
  509. package/docs/modules/src_api_loyalty_getLoyaltyPoints.html +2 -0
  510. package/docs/modules/src_api_loyalty_getLoyaltyStoreOffers.html +2 -0
  511. package/docs/modules/src_api_mail_deleteCharacterMail.html +2 -0
  512. package/docs/modules/src_api_mail_deleteCharacterMailLabel.html +2 -0
  513. package/docs/modules/src_api_mail_getCharacterMail.html +2 -0
  514. package/docs/modules/src_api_mail_getCharacterMailHeaders.html +2 -0
  515. package/docs/modules/src_api_mail_getCharacterMailLabels.html +2 -0
  516. package/docs/modules/src_api_mail_getCharacterMailingLists.html +2 -0
  517. package/docs/modules/src_api_mail_postCharacterMail.html +2 -0
  518. package/docs/modules/src_api_mail_postCharacterMailLabels.html +2 -0
  519. package/docs/modules/src_api_mail_putCharacterMail.html +2 -0
  520. package/docs/modules/src_api_market_getCharacterOrderHistory.html +2 -0
  521. package/docs/modules/src_api_market_getCharacterOrders.html +2 -0
  522. package/docs/modules/src_api_market_getCorporationOrderHistory.html +2 -0
  523. package/docs/modules/src_api_market_getCorporationOrders.html +2 -0
  524. package/docs/modules/src_api_market_getMarketGroupInformation.html +2 -0
  525. package/docs/modules/src_api_market_getMarketGroups.html +2 -0
  526. package/docs/modules/src_api_market_getMarketHistory.html +2 -0
  527. package/docs/modules/src_api_market_getMarketOrders.html +2 -0
  528. package/docs/modules/src_api_market_getMarketOrdersInStructure.html +2 -0
  529. package/docs/modules/src_api_market_getMarketPrices.html +2 -0
  530. package/docs/modules/src_api_market_getMarketTypes.html +2 -0
  531. package/docs/modules/src_api_meta_getSwaggerJson.html +2 -0
  532. package/docs/modules/src_api_meta_getSwaggerYaml.html +2 -0
  533. package/docs/modules/src_api_opportunities_getCharacterOpportunities.html +2 -0
  534. package/docs/modules/src_api_opportunities_getOpportunitiesGroupById.html +2 -0
  535. package/docs/modules/src_api_opportunities_getOpportunitiesGroups.html +2 -0
  536. package/docs/modules/src_api_opportunities_getOpportunitiesTaskById.html +2 -0
  537. package/docs/modules/src_api_opportunities_getOpportunitiesTasks.html +2 -0
  538. package/docs/modules/src_api_pi_getColonies.html +2 -0
  539. package/docs/modules/src_api_pi_getColonyLayout.html +2 -0
  540. package/docs/modules/src_api_pi_getCorporationCustomsOffices.html +2 -0
  541. package/docs/modules/src_api_pi_getSchematicInformation.html +2 -0
  542. package/docs/modules/src_api_route_getRoute.html +2 -0
  543. package/docs/modules/src_api_search_getCharacterSearch.html +2 -0
  544. package/docs/modules/src_api_skills_getCharacterAttributes.html +2 -0
  545. package/docs/modules/src_api_skills_getCharacterSkillQueue.html +2 -0
  546. package/docs/modules/src_api_skills_getCharacterSkills.html +2 -0
  547. package/docs/modules/src_api_sovereignty_getSovereigntyCampaigns.html +2 -0
  548. package/docs/modules/src_api_sovereignty_getSovereigntyMap.html +2 -0
  549. package/docs/modules/src_api_sovereignty_getSovereigntyStructures.html +2 -0
  550. package/docs/modules/src_api_status_getStatus.html +2 -0
  551. package/docs/modules/src_api_ui_postAutopilotWaypoint.html +2 -0
  552. package/docs/modules/src_api_ui_postOpenContractWindow.html +2 -0
  553. package/docs/modules/src_api_ui_postOpenInformationWindow.html +2 -0
  554. package/docs/modules/src_api_ui_postOpenMarketDetailsWindow.html +2 -0
  555. package/docs/modules/src_api_ui_postOpenNewMailWindow.html +2 -0
  556. package/docs/modules/src_api_universe_getAncestries.html +2 -0
  557. package/docs/modules/src_api_universe_getAsteroidBeltInfo.html +2 -0
  558. package/docs/modules/src_api_universe_getBloodlines.html +2 -0
  559. package/docs/modules/src_api_universe_getConstellationById.html +2 -0
  560. package/docs/modules/src_api_universe_getConstellations.html +2 -0
  561. package/docs/modules/src_api_universe_getFactions.html +2 -0
  562. package/docs/modules/src_api_universe_getGraphicById.html +2 -0
  563. package/docs/modules/src_api_universe_getGraphics.html +2 -0
  564. package/docs/modules/src_api_universe_getItemCategories.html +2 -0
  565. package/docs/modules/src_api_universe_getItemCategoryById.html +2 -0
  566. package/docs/modules/src_api_universe_getItemGroupById.html +2 -0
  567. package/docs/modules/src_api_universe_getItemGroups.html +2 -0
  568. package/docs/modules/src_api_universe_getMoonById.html +2 -0
  569. package/docs/modules/src_api_universe_getPlanetById.html +2 -0
  570. package/docs/modules/src_api_universe_getRaces.html +2 -0
  571. package/docs/modules/src_api_universe_getRegionById.html +2 -0
  572. package/docs/modules/src_api_universe_getStarById.html +2 -0
  573. package/docs/modules/src_api_universe_getStargateById.html +2 -0
  574. package/docs/modules/src_api_universe_getStationById.html +2 -0
  575. package/docs/modules/src_api_universe_getStructureById.html +2 -0
  576. package/docs/modules/src_api_universe_getStructures.html +2 -0
  577. package/docs/modules/src_api_universe_getSystemById.html +2 -0
  578. package/docs/modules/src_api_universe_getSystemJumps.html +2 -0
  579. package/docs/modules/src_api_universe_getSystemKills.html +2 -0
  580. package/docs/modules/src_api_universe_getSystems.html +2 -0
  581. package/docs/modules/src_api_universe_getTypeById.html +2 -0
  582. package/docs/modules/src_api_universe_getTypes.html +2 -0
  583. package/docs/modules/src_api_universe_postBulkNamesToIds.html +2 -0
  584. package/docs/modules/src_api_universe_postNamesAndCategories.html +2 -0
  585. package/docs/modules/src_api_wallet_getCharacterWallet.html +2 -0
  586. package/docs/modules/src_api_wallet_getCharacterWalletJournal.html +2 -0
  587. package/docs/modules/src_api_wallet_getCharacterWalletTransactions.html +2 -0
  588. package/docs/modules/src_api_wallet_getCorporationWalletJournal.html +2 -0
  589. package/docs/modules/src_api_wallet_getCorporationWalletTransactions.html +2 -0
  590. package/docs/modules/src_api_wallet_getCorporationWallets.html +2 -0
  591. package/docs/modules/src_api_wars_getWarById.html +2 -0
  592. package/docs/modules/src_api_wars_getWarKillmails.html +2 -0
  593. package/docs/modules/src_api_wars_getWars.html +2 -0
  594. package/docs/modules/src_builders_AllianceApiBuilder.html +2 -0
  595. package/docs/modules/src_builders_AssetsApiBuilder.html +2 -0
  596. package/docs/modules/src_builders_BookmarkApiBuilder.html +2 -0
  597. package/docs/modules/src_builders_CalendarApiBuilder.html +2 -0
  598. package/docs/modules/src_builders_CharacterApiBuilder.html +2 -0
  599. package/docs/modules/src_builders_ClonesApiBuilder.html +2 -0
  600. package/docs/modules/src_builders_ContactsApiBuilder.html +2 -0
  601. package/docs/modules/src_builders_ContractsApiBuilder.html +2 -0
  602. package/docs/modules/src_builders_CorporationsApiBuilder.html +2 -0
  603. package/docs/modules/src_builders_DogmaApiBuilder.html +2 -0
  604. package/docs/modules/src_builders_FactionApiBuilder.html +2 -0
  605. package/docs/modules/src_builders_FittingsApiBuilder.html +2 -0
  606. package/docs/modules/src_builders_FleetApiBuilder.html +2 -0
  607. package/docs/modules/src_builders_IncursionsApiBuilder.html +2 -0
  608. package/docs/modules/src_builders_IndustryApiBuilder.html +2 -0
  609. package/docs/modules/src_builders_InsuranceApiBuilder.html +2 -0
  610. package/docs/modules/src_builders_KillmailsBuilder.html +2 -0
  611. package/docs/modules/src_builders_LocationApiBuilder.html +2 -0
  612. package/docs/modules/src_builders_LoyaltyApiBuilder.html +2 -0
  613. package/docs/modules/src_builders_MailApiBuilder.html +2 -0
  614. package/docs/modules/src_builders_MarketApiBuilder.html +2 -0
  615. package/docs/modules/src_builders_MetaApiBuilder.html +2 -0
  616. package/docs/modules/src_builders_OpportunitiesApiBuilder.html +2 -0
  617. package/docs/modules/src_builders_PiApiBuilder.html +2 -0
  618. package/docs/modules/src_builders_RouteApiBuilder.html +2 -0
  619. package/docs/modules/src_builders_SearchApiBuilder.html +2 -0
  620. package/docs/modules/src_builders_SkillsApiBuilder.html +2 -0
  621. package/docs/modules/src_builders_SovereigntyApiBuilder.html +2 -0
  622. package/docs/modules/src_builders_StatusApiBuilder.html +2 -0
  623. package/docs/modules/src_builders_UiApiBuilder.html +2 -0
  624. package/docs/modules/src_builders_UniverseApiBuilder.html +2 -0
  625. package/docs/modules/src_builders_WalletApiBuilder.html +2 -0
  626. package/docs/modules/src_builders_WarsAPIBuilder.html +2 -0
  627. package/docs/modules/src_clients_AllianceClient.html +2 -0
  628. package/docs/modules/src_clients_AssetsClient.html +2 -0
  629. package/docs/modules/src_clients_BookmarkClient.html +2 -0
  630. package/docs/modules/src_clients_CalendarClient.html +2 -0
  631. package/docs/modules/src_clients_CharacterClient.html +2 -0
  632. package/docs/modules/src_clients_ClonesClient.html +2 -0
  633. package/docs/modules/src_clients_ContactsClient.html +2 -0
  634. package/docs/modules/src_clients_ContractsClient.html +2 -0
  635. package/docs/modules/src_clients_CorporationsClient.html +2 -0
  636. package/docs/modules/src_clients_DogmaClient.html +2 -0
  637. package/docs/modules/src_clients_FactionClient.html +2 -0
  638. package/docs/modules/src_clients_FittingsClient.html +2 -0
  639. package/docs/modules/src_clients_FleetClient.html +2 -0
  640. package/docs/modules/src_clients_IncursionsClient.html +2 -0
  641. package/docs/modules/src_clients_IndustryClient.html +2 -0
  642. package/docs/modules/src_clients_InsuranceClient.html +2 -0
  643. package/docs/modules/src_clients_KillmailsClient.html +2 -0
  644. package/docs/modules/src_clients_LocationClient.html +2 -0
  645. package/docs/modules/src_clients_LoyaltyClient.html +2 -0
  646. package/docs/modules/src_clients_MailClient.html +2 -0
  647. package/docs/modules/src_clients_MarketClient.html +2 -0
  648. package/docs/modules/src_clients_MetaClient.html +2 -0
  649. package/docs/modules/src_clients_OpportunitiesClient.html +2 -0
  650. package/docs/modules/src_clients_PiClient.html +2 -0
  651. package/docs/modules/src_clients_RouteClient.html +2 -0
  652. package/docs/modules/src_clients_SearchClient.html +2 -0
  653. package/docs/modules/src_clients_SkillsClient.html +2 -0
  654. package/docs/modules/src_clients_SovereigntyClient.html +2 -0
  655. package/docs/modules/src_clients_StatusClient.html +2 -0
  656. package/docs/modules/src_clients_UiClient.html +2 -0
  657. package/docs/modules/src_clients_UniverseClient.html +2 -0
  658. package/docs/modules/src_clients_WalletClient.html +2 -0
  659. package/docs/modules/src_clients_WarsClient.html +2 -0
  660. package/docs/modules/src_config_configManager.html +2 -0
  661. package/docs/modules/src_config_constants.html +5 -0
  662. package/docs/modules/src_config_jest_jest_setup.html +2 -0
  663. package/docs/modules/src_core_ApiClient.html +2 -0
  664. package/docs/modules/src_core_ApiClientBuilder.html +2 -0
  665. package/docs/modules/src_core_ApiError.html +2 -0
  666. package/docs/modules/src_core_ApiRequestHandler.html +6 -0
  667. package/docs/modules/src_core_IAPIBuilder.html +4 -0
  668. package/docs/modules/src_core_cache_ETagCacheManager.html +4 -0
  669. package/docs/modules/src_core_container_Container.html +9 -0
  670. package/docs/modules/src_core_errors_ApiError.html +4 -0
  671. package/docs/modules/src_core_factory_ApiFactory.html +6 -0
  672. package/docs/modules/src_core_logger.html +2 -0
  673. package/docs/modules/src_core_logger_logger.html +2 -0
  674. package/docs/modules/src_core_logger_loggerUtil.html +5 -0
  675. package/docs/modules/src_core_util_error.html +2 -0
  676. package/docs/modules/src_core_util_file.html +4 -0
  677. package/docs/modules/src_core_util_headersUtil.html +2 -0
  678. package/docs/modules/src_core_util_inputValidation.html +2 -0
  679. package/docs/modules/src_core_util_network.html +2 -0
  680. package/docs/modules/src_core_util_request.html +3 -0
  681. package/docs/modules/src_core_util_testHelpers.html +4 -0
  682. package/docs/modules/src_testing_TestDataFactory.html +3 -0
  683. package/docs/modules/src_testing_TestHelpers.html +9 -0
  684. package/docs/modules/src_types_api_responses.html +28 -0
  685. package/docs/modules/src_types_winston_loggly_bulk.html +3 -0
  686. package/docs/modules.html +305 -0
  687. package/docs/types/src_EsiClientBuilder.ApiClientType.html +1 -0
  688. package/docs/types/src_EsiClientBuilder.ClientInstance.html +1 -0
  689. package/docs/types/src_core_container_Container.AsyncFactory.html +1 -0
  690. package/docs/types/src_core_container_Container.Factory.html +1 -0
  691. package/docs/variables/src_EsiClient.esiClient-1.html +1 -0
  692. package/docs/variables/src_config_constants.localConfig.html +1 -0
  693. package/docs/variables/src_config_constants.projectConfig.html +1 -0
  694. package/docs/variables/src_config_constants.routes.html +1 -0
  695. package/docs/variables/src_config_constants.server.html +1 -0
  696. package/docs/variables/src_core_container_Container.container-1.html +1 -0
  697. package/docs/variables/src_core_factory_ApiFactory.apiFactory-1.html +1 -0
  698. package/docs/variables/src_core_logger_logger.default.html +1 -0
  699. package/jest.improved.config.cjs +46 -0
  700. package/jest.unit.config.cjs +4 -1
  701. package/output.txt +0 -0
  702. package/package.json +34 -13
  703. package/src/EsiClient.ts +351 -0
  704. package/src/EsiClientBuilder.ts +380 -0
  705. package/src/TODO +26 -21
  706. package/src/api/alliances/getAllianceById.ts +7 -1
  707. package/src/api/alliances/getAlliances.ts +2 -2
  708. package/src/api/characters/postCharacterAffiliations.ts +2 -1
  709. package/src/api/clones/postJumpCloneActivation.ts +11 -0
  710. package/src/api/corporations/getCorporationProjects.ts +10 -0
  711. package/src/api/meta/getSwaggerJson.ts +10 -0
  712. package/src/api/meta/getSwaggerYaml.ts +36 -0
  713. package/src/api/status/getStatus.ts +2 -2
  714. package/src/builders/AllianceApiBuilder.ts +3 -2
  715. package/src/builders/AssetsApiBuilder.ts +2 -1
  716. package/src/builders/BookmarkApiBuilder.ts +2 -1
  717. package/src/builders/CalendarApiBuilder.ts +2 -1
  718. package/src/builders/CharacterApiBuilder.ts +2 -1
  719. package/src/builders/ClonesApiBuilder.ts +2 -1
  720. package/src/builders/ContactsApiBuilder.ts +2 -1
  721. package/src/builders/ContractsApiBuilder.ts +2 -1
  722. package/src/builders/CorporationsApiBuilder.ts +2 -1
  723. package/src/builders/DogmaApiBuilder.ts +2 -1
  724. package/src/builders/FactionApiBuilder.ts +3 -2
  725. package/src/builders/FittingsApiBuilder.ts +2 -3
  726. package/src/builders/FleetApiBuilder.ts +2 -1
  727. package/src/builders/IncursionsApiBuilder.ts +2 -1
  728. package/src/builders/IndustryApiBuilder.ts +2 -1
  729. package/src/builders/InsuranceApiBuilder.ts +2 -1
  730. package/src/builders/KillmailsBuilder.ts +2 -1
  731. package/src/builders/LocationApiBuilder.ts +2 -1
  732. package/src/builders/LoyaltyApiBuilder.ts +2 -1
  733. package/src/builders/MailApiBuilder.ts +2 -1
  734. package/src/builders/MarketApiBuilder.ts +2 -1
  735. package/src/builders/MetaApiBuilder.ts +15 -0
  736. package/src/builders/OpportunitiesApiBuilder.ts +2 -1
  737. package/src/builders/PiApiBuilder.ts +2 -1
  738. package/src/builders/RouteApiBuilder.ts +2 -1
  739. package/src/builders/SearchApiBuilder.ts +2 -1
  740. package/src/builders/SkillsApiBuilder.ts +2 -1
  741. package/src/builders/SovereigntyApiBuilder.ts +2 -1
  742. package/src/builders/StatusApiBuilder.ts +2 -1
  743. package/src/builders/UiApiBuilder.ts +2 -1
  744. package/src/builders/UniverseApiBuilder.ts +2 -1
  745. package/src/builders/WalletApiBuilder.ts +2 -1
  746. package/src/builders/WarsAPIBuilder.ts +2 -1
  747. package/src/clients/AllianceClient.ts +23 -14
  748. package/src/clients/ClonesClient.ts +7 -0
  749. package/src/clients/CorporationsClient.ts +7 -0
  750. package/src/clients/MetaClient.ts +24 -0
  751. package/src/core/ApiRequestHandler.ts +77 -3
  752. package/src/core/IAPIBuilder.ts +13 -0
  753. package/src/core/cache/ETagCacheManager.ts +248 -0
  754. package/src/core/container/Container.ts +176 -0
  755. package/src/core/errors/ApiError.ts +153 -0
  756. package/src/core/factory/ApiFactory.ts +207 -0
  757. package/src/core/util/headersUtil.ts +12 -0
  758. package/src/index.ts +214 -1152
  759. package/src/testing/TestDataFactory.ts +742 -0
  760. package/src/testing/TestHelpers.ts +280 -0
  761. package/src/types/api-responses.ts +291 -0
  762. package/tests/bdd/simple-bdd-demo.test.ts +210 -0
  763. package/tests/bdd-scenarios/core/bdd-alliance.test.ts +210 -0
  764. package/tests/bdd-scenarios/core/bdd-character.test.ts +346 -0
  765. package/tests/bdd-scenarios/core/bdd-clones.test.ts +159 -0
  766. package/tests/bdd-scenarios/core/bdd-corporation-projects.test.ts +136 -0
  767. package/tests/bdd-scenarios/core/bdd-corporation.test.ts +388 -0
  768. package/tests/bdd-scenarios/core/bdd-etag-caching.test.ts +280 -0
  769. package/tests/bdd-scenarios/core/bdd-market.test.ts +435 -0
  770. package/tests/bdd-scenarios/core/bdd-meta.test.ts +131 -0
  771. package/tests/bdd-scenarios/core/bdd-universe.test.ts +463 -0
  772. package/tests/bdd-scenarios/integration/bdd-integration-workflows.test.ts +490 -0
  773. package/tests/bdd-scenarios/performance/bdd-performance.test.ts +463 -0
  774. package/tests/tdd/alliances/AllianceClient.improved.test.ts +266 -0
  775. package/tests/tdd/alliances/AllianceClient.test.ts +186 -15
  776. package/tests/tdd/alliances/getAlliances.test.ts +4 -7
  777. package/tests/tdd/clones/postJumpCloneActivation.test.ts +70 -0
  778. package/tests/tdd/contacts/ContactsClient.test.ts +267 -44
  779. package/tests/tdd/core/ETagCacheManager.test.ts +173 -0
  780. package/tests/tdd/core/ETagIntegration.test.ts +208 -0
  781. package/tests/tdd/corporations/CorporationsClient.test.ts +180 -9
  782. package/tests/tdd/corporations/getCorporationProjects.test.ts +62 -0
  783. package/tests/tdd/incursions/getIncursions.test.ts +148 -23
  784. package/tests/tdd/meta/MetaApiBuilder.test.ts +45 -0
  785. package/tests/tdd/meta/MetaClient.test.ts +92 -0
  786. package/tests/tdd/meta/getSwaggerJson.test.ts +40 -0
  787. package/tests/tdd/meta/getSwaggerYaml.test.ts +40 -0
  788. package/tests/tdd/status/StatusClient.test.ts +10 -8
  789. package/tests/tdd/status/getStatus.test.ts +12 -10
  790. package/typedoc.json +77 -0
  791. package/Structure.js +0 -257
  792. package/eslint.json +0 -13
  793. package/jest.bdd.config.cjs +0 -22
  794. package/src/config/jest/jest.bdd.setup.ts +0 -11
  795. package/tests/bdd/features/alliances/getAllianceById.feature +0 -6
  796. package/tests/bdd/features/alliances/getAllianceContactLabels.feature +0 -0
  797. package/tests/bdd/features/alliances/getAllianceContacts.feature +0 -0
  798. package/tests/bdd/features/alliances/getAllianceCorporations.feature +0 -6
  799. package/tests/bdd/features/alliances/getAllianceIcons.feature +0 -6
  800. package/tests/bdd/features/alliances/getAlliances.feature +0 -0
  801. package/tests/bdd/features/characters/getCharacter.feature +0 -0
  802. package/tests/bdd/features/characters/getCharacterAffiliation.feature +0 -0
  803. package/tests/bdd/features/characters/getCharacterAgentsResearch.feature +0 -0
  804. package/tests/bdd/features/characters/getCharacterAssetLocations.feature +0 -0
  805. package/tests/bdd/features/characters/getCharacterAssetNames.feature +0 -0
  806. package/tests/bdd/features/characters/getCharacterAssets.feature +0 -0
  807. package/tests/bdd/features/characters/getCharacterAttributes.feature +0 -0
  808. package/tests/bdd/features/characters/getCharacterBlueprints.feature +0 -0
  809. package/tests/bdd/features/characters/getCharacterBookmarkFolders.feature +0 -0
  810. package/tests/bdd/features/characters/getCharacterBookmarks.feature +0 -0
  811. package/tests/bdd/features/characters/getCharacterCalendarEventById.feature +0 -0
  812. package/tests/bdd/features/characters/getCharacterCalendarEvents.feature +0 -0
  813. package/tests/bdd/features/characters/getCharacterClones.feature +0 -0
  814. package/tests/bdd/features/characters/getCharacterContractBids.feature +0 -0
  815. package/tests/bdd/features/characters/getCharacterContractItems.feature +0 -0
  816. package/tests/bdd/features/characters/getCharacterContracts.feature +0 -0
  817. package/tests/bdd/features/characters/getCharacterCorporationHistory.feature +0 -0
  818. package/tests/bdd/features/characters/getCharacterFatigue.feature +0 -0
  819. package/tests/bdd/features/characters/getCharacterFittings.feature +0 -0
  820. package/tests/bdd/features/characters/getCharacterFleet.feature +0 -0
  821. package/tests/bdd/features/characters/getCharacterFwStats.feature +0 -0
  822. package/tests/bdd/features/characters/getCharacterImplants.feature +0 -0
  823. package/tests/bdd/features/characters/getCharacterIndustryJobs.feature +0 -0
  824. package/tests/bdd/features/characters/getCharacterKillmails.feature +0 -0
  825. package/tests/bdd/features/characters/getCharacterLocation.feature +0 -0
  826. package/tests/bdd/features/characters/getCharacterLoyaltyPoints.feature +0 -0
  827. package/tests/bdd/features/characters/getCharacterMail.feature +0 -0
  828. package/tests/bdd/features/characters/getCharacterMailById.feature +0 -0
  829. package/tests/bdd/features/characters/getCharacterMailLabels.feature +0 -0
  830. package/tests/bdd/features/characters/getCharacterMailLists.feature +0 -0
  831. package/tests/bdd/features/characters/getCharacterMedals.feature +0 -0
  832. package/tests/bdd/features/characters/getCharacterMining.feature +0 -0
  833. package/tests/bdd/features/characters/getCharacterNotifications.feature +0 -0
  834. package/tests/bdd/features/characters/getCharacterNotificationsContacts.feature +0 -0
  835. package/tests/bdd/features/characters/getCharacterOpportunities.feature +0 -0
  836. package/tests/bdd/features/characters/getCharacterOrderHistory.feature +0 -0
  837. package/tests/bdd/features/characters/getCharacterOrders.feature +0 -0
  838. package/tests/bdd/features/characters/getCharacterPlanets.feature +0 -0
  839. package/tests/bdd/features/characters/getCharacterPortrait.feature +0 -0
  840. package/tests/bdd/features/characters/getCharacterRoles.feature +0 -0
  841. package/tests/bdd/features/characters/getCharacterSearch.feature +0 -0
  842. package/tests/bdd/features/characters/getCharacterShip.feature +0 -0
  843. package/tests/bdd/features/characters/getCharacterSkillQueue.feature +0 -0
  844. package/tests/bdd/features/characters/getCharacterSkills.feature +0 -0
  845. package/tests/bdd/features/characters/getCharacterStandings.feature +0 -0
  846. package/tests/bdd/features/characters/getCharacterStats.feature +0 -0
  847. package/tests/bdd/features/characters/getCharacterTitles.feature +0 -0
  848. package/tests/bdd/features/characters/getCharacterWallet.feature +0 -0
  849. package/tests/bdd/features/characters/getCharacterWalletJournal.feature +0 -0
  850. package/tests/bdd/features/characters/getCharacterWalletTransactions.feature +0 -0
  851. package/tests/bdd/features/contracts/getContractBids.feature +0 -0
  852. package/tests/bdd/features/contracts/getContractById.feature +0 -0
  853. package/tests/bdd/features/contracts/getContractItems.feature +0 -0
  854. package/tests/bdd/features/contracts/getContracts.feature +0 -0
  855. package/tests/bdd/features/contracts/getPublicContractBids.feature +0 -0
  856. package/tests/bdd/features/contracts/getPublicContractItems.feature +0 -0
  857. package/tests/bdd/features/contracts/getPublicContracts.feature +0 -0
  858. package/tests/bdd/features/corporations/getCorporation.feature +0 -0
  859. package/tests/bdd/features/corporations/getCorporationAlliances.feature +0 -0
  860. package/tests/bdd/features/corporations/getCorporationBlueprints.feature +0 -0
  861. package/tests/bdd/features/corporations/getCorporationBookmarkFolders.feature +0 -0
  862. package/tests/bdd/features/corporations/getCorporationBookmarks.feature +0 -0
  863. package/tests/bdd/features/corporations/getCorporationContactLabels.feature +0 -0
  864. package/tests/bdd/features/corporations/getCorporationContacts.feature +0 -0
  865. package/tests/bdd/features/corporations/getCorporationContainerLogs.feature +0 -0
  866. package/tests/bdd/features/corporations/getCorporationContractBids.feature +0 -0
  867. package/tests/bdd/features/corporations/getCorporationContractItems.feature +0 -0
  868. package/tests/bdd/features/corporations/getCorporationContracts.feature +0 -0
  869. package/tests/bdd/features/corporations/getCorporationDivisions.feature +0 -0
  870. package/tests/bdd/features/corporations/getCorporationFacilities.feature +0 -0
  871. package/tests/bdd/features/corporations/getCorporationFwStats.feature +0 -0
  872. package/tests/bdd/features/corporations/getCorporationIcons.feature +0 -0
  873. package/tests/bdd/features/corporations/getCorporationIndustryJobs.feature +0 -0
  874. package/tests/bdd/features/corporations/getCorporationKillmails.feature +0 -0
  875. package/tests/bdd/features/corporations/getCorporationMedals.feature +0 -0
  876. package/tests/bdd/features/corporations/getCorporationMemberLimit.feature +0 -0
  877. package/tests/bdd/features/corporations/getCorporationMemberTracking.feature +0 -0
  878. package/tests/bdd/features/corporations/getCorporationMembers.feature +0 -0
  879. package/tests/bdd/features/corporations/getCorporationMining.feature +0 -0
  880. package/tests/bdd/features/corporations/getCorporationNotifications.feature +0 -0
  881. package/tests/bdd/features/corporations/getCorporationOrderHistory.feature +0 -0
  882. package/tests/bdd/features/corporations/getCorporationOrders.feature +0 -0
  883. package/tests/bdd/features/corporations/getCorporationOutposts.feature +0 -0
  884. package/tests/bdd/features/corporations/getCorporationRoles.feature +0 -0
  885. package/tests/bdd/features/corporations/getCorporationShareholders.feature +0 -0
  886. package/tests/bdd/features/corporations/getCorporationStandings.feature +0 -0
  887. package/tests/bdd/features/corporations/getCorporationStarbases.feature +0 -0
  888. package/tests/bdd/features/corporations/getCorporationStructures.feature +0 -0
  889. package/tests/bdd/features/corporations/getCorporationTitles.feature +0 -0
  890. package/tests/bdd/features/corporations/getCorporationWalletJournal.feature +0 -0
  891. package/tests/bdd/features/corporations/getCorporationWalletTransactions.feature +0 -0
  892. package/tests/bdd/features/corporations/getCorporationWallets.feature +0 -0
  893. package/tests/bdd/features/dogma/getDogmaAttributeById.feature +0 -0
  894. package/tests/bdd/features/dogma/getDogmaAttributes.feature +0 -0
  895. package/tests/bdd/features/dogma/getDogmaDynamicItemAttributes.feature +0 -0
  896. package/tests/bdd/features/dogma/getDogmaEffectById.feature +0 -0
  897. package/tests/bdd/features/dogma/getDogmaEffects.feature +0 -0
  898. package/tests/bdd/features/factions/getFactionWarfareLeaderboards.feature +0 -6
  899. package/tests/bdd/features/factions/getFactionWarfareStats.feature +0 -6
  900. package/tests/bdd/features/factions/getFactionWarfareSystems.feature +0 -6
  901. package/tests/bdd/features/factions/getFactionWarfareWars.feature +0 -6
  902. package/tests/bdd/features/fleets/getFleetMembers.feature +0 -0
  903. package/tests/bdd/features/fleets/getFleetSquads.feature +0 -0
  904. package/tests/bdd/features/fleets/getFleetWings.feature +0 -0
  905. package/tests/bdd/features/fleets/getFleets.feature +0 -0
  906. package/tests/bdd/features/incursions/getIncursions.feature +0 -0
  907. package/tests/bdd/features/industry/getIndustryCorporationJobs.feature +0 -0
  908. package/tests/bdd/features/industry/getIndustryFacilities.feature +0 -0
  909. package/tests/bdd/features/industry/getIndustryJobs.feature +0 -0
  910. package/tests/bdd/features/industry/getIndustrySystems.feature +0 -0
  911. package/tests/bdd/features/insurance/getInsurancePrices.feature +0 -0
  912. package/tests/bdd/features/killmails/getKillmailById.feature +0 -0
  913. package/tests/bdd/features/killmails/getKillmails.feature +0 -0
  914. package/tests/bdd/features/killmails/getRecentCharacterKillmails.feature +0 -0
  915. package/tests/bdd/features/killmails/getRecentCorporationKillmails.feature +0 -0
  916. package/tests/bdd/features/location/getLocation.feature +0 -0
  917. package/tests/bdd/features/markets/getMarketGroupById.feature +0 -0
  918. package/tests/bdd/features/markets/getMarketGroups.feature +0 -0
  919. package/tests/bdd/features/markets/getMarketHistory.feature +0 -0
  920. package/tests/bdd/features/markets/getMarketOrders.feature +0 -0
  921. package/tests/bdd/features/markets/getMarketPrices.feature +0 -0
  922. package/tests/bdd/features/markets/getMarketRegionHistory.feature +0 -0
  923. package/tests/bdd/features/markets/getMarketRegionOrders.feature +0 -0
  924. package/tests/bdd/features/opportunities/getOpportunitiesGroups.feature +0 -0
  925. package/tests/bdd/features/opportunities/getOpportunitiesTasks.feature +0 -0
  926. package/tests/bdd/features/search/postSearch.feature +0 -0
  927. package/tests/bdd/features/sovereignty/getSovereigntyCampaigns.feature +0 -0
  928. package/tests/bdd/features/sovereignty/getSovereigntyMap.feature +0 -0
  929. package/tests/bdd/features/sovereignty/getSovereigntyStructures.feature +0 -0
  930. package/tests/bdd/features/ui/postUiAutopilotWaypoint.feature +0 -0
  931. package/tests/bdd/features/ui/postUiOpenWindowContract.feature +0 -0
  932. package/tests/bdd/features/ui/postUiOpenWindowInformation.feature +0 -0
  933. package/tests/bdd/features/ui/postUiOpenWindowMarketDetails.feature +0 -0
  934. package/tests/bdd/features/ui/postUiOpenWindowNewMail.feature +0 -0
  935. package/tests/bdd/features/universe/getAncestries.feature +0 -0
  936. package/tests/bdd/features/universe/getAsteroidBelt.feature +0 -0
  937. package/tests/bdd/features/universe/getBloodlines.feature +0 -0
  938. package/tests/bdd/features/universe/getCategories.feature +0 -0
  939. package/tests/bdd/features/universe/getCategoryById.feature +0 -0
  940. package/tests/bdd/features/universe/getConstellationById.feature +0 -0
  941. package/tests/bdd/features/universe/getConstellations.feature +0 -0
  942. package/tests/bdd/features/universe/getFactions.feature +0 -0
  943. package/tests/bdd/features/universe/getGraphicById.feature +0 -0
  944. package/tests/bdd/features/universe/getGraphics.feature +0 -0
  945. package/tests/bdd/features/universe/getGroupById.feature +0 -0
  946. package/tests/bdd/features/universe/getGroups.feature +0 -0
  947. package/tests/bdd/features/universe/getMoonById.feature +0 -0
  948. package/tests/bdd/features/universe/getMoons.feature +0 -0
  949. package/tests/bdd/features/universe/getPlanetById.feature +0 -0
  950. package/tests/bdd/features/universe/getPlanets.feature +0 -0
  951. package/tests/bdd/features/universe/getRaces.feature +0 -0
  952. package/tests/bdd/features/universe/getRegionById.feature +0 -0
  953. package/tests/bdd/features/universe/getRegions.feature +0 -0
  954. package/tests/bdd/features/universe/getStarById.feature +0 -0
  955. package/tests/bdd/features/universe/getStargateById.feature +0 -0
  956. package/tests/bdd/features/universe/getStargates.feature +0 -0
  957. package/tests/bdd/features/universe/getStars.feature +0 -0
  958. package/tests/bdd/features/universe/getStationById.feature +0 -0
  959. package/tests/bdd/features/universe/getStations.feature +0 -0
  960. package/tests/bdd/features/universe/getStructures.feature +0 -0
  961. package/tests/bdd/features/universe/getSystemById.feature +0 -0
  962. package/tests/bdd/features/universe/getSystemJumps.feature +0 -0
  963. package/tests/bdd/features/universe/getSystemKills.feature +0 -0
  964. package/tests/bdd/features/universe/getSystems.feature +0 -0
  965. package/tests/bdd/features/universe/getTypeById.feature +0 -0
  966. package/tests/bdd/features/universe/getTypes.feature +0 -0
  967. package/tests/bdd/features/universe/getWarById.feature +0 -0
  968. package/tests/bdd/features/universe/getWars.feature +0 -0
  969. package/tests/bdd/features/universe/postBulkIdsToNames.feature +0 -0
  970. package/tests/bdd/features/universe/postBulkNamesToIds.feature +0 -0
  971. package/tests/bdd/features/universe/postUniverseNames.feature +0 -0
  972. package/tests/bdd/features/wars/getWarById.feature +0 -0
  973. package/tests/bdd/features/wars/getWars.feature +0 -0
  974. package/tests/bdd/steps/alliances/getAllianceById.ts +0 -17
  975. package/tests/bdd/steps/alliances/getAllianceContactLabels.ts +0 -0
  976. package/tests/bdd/steps/alliances/getAllianceContacts.ts +0 -0
  977. package/tests/bdd/steps/alliances/getAllianceCorporations.ts +0 -18
  978. package/tests/bdd/steps/alliances/getAllianceIcons.ts +0 -21
  979. package/tests/bdd/steps/alliances/getAlliances.ts +0 -0
  980. package/tests/bdd/steps/characters/getCharacter.ts +0 -0
  981. package/tests/bdd/steps/characters/getCharacterAffiliation.ts +0 -0
  982. package/tests/bdd/steps/characters/getCharacterAgentsResearch.ts +0 -0
  983. package/tests/bdd/steps/characters/getCharacterAssetLocations.ts +0 -0
  984. package/tests/bdd/steps/characters/getCharacterAssetNames.ts +0 -0
  985. package/tests/bdd/steps/characters/getCharacterAssets.ts +0 -0
  986. package/tests/bdd/steps/characters/getCharacterAttributes.ts +0 -0
  987. package/tests/bdd/steps/characters/getCharacterBlueprints.ts +0 -0
  988. package/tests/bdd/steps/characters/getCharacterBookmarkFolders.ts +0 -0
  989. package/tests/bdd/steps/characters/getCharacterBookmarks.ts +0 -0
  990. package/tests/bdd/steps/characters/getCharacterCalendarEventById.ts +0 -0
  991. package/tests/bdd/steps/characters/getCharacterCalendarEvents.ts +0 -0
  992. package/tests/bdd/steps/characters/getCharacterClones.ts +0 -0
  993. package/tests/bdd/steps/characters/getCharacterContractBids.ts +0 -0
  994. package/tests/bdd/steps/characters/getCharacterContractItems.ts +0 -0
  995. package/tests/bdd/steps/characters/getCharacterContracts.ts +0 -0
  996. package/tests/bdd/steps/characters/getCharacterCorporationHistory.ts +0 -0
  997. package/tests/bdd/steps/characters/getCharacterFatigue.ts +0 -0
  998. package/tests/bdd/steps/characters/getCharacterFittings.ts +0 -0
  999. package/tests/bdd/steps/characters/getCharacterFleet.ts +0 -0
  1000. package/tests/bdd/steps/characters/getCharacterFwStats.ts +0 -0
  1001. package/tests/bdd/steps/characters/getCharacterImplants.ts +0 -0
  1002. package/tests/bdd/steps/characters/getCharacterIndustryJobs.ts +0 -0
  1003. package/tests/bdd/steps/characters/getCharacterKillmails.ts +0 -0
  1004. package/tests/bdd/steps/characters/getCharacterLocation.ts +0 -0
  1005. package/tests/bdd/steps/characters/getCharacterLoyaltyPoints.ts +0 -0
  1006. package/tests/bdd/steps/characters/getCharacterMail.ts +0 -0
  1007. package/tests/bdd/steps/characters/getCharacterMailById.ts +0 -0
  1008. package/tests/bdd/steps/characters/getCharacterMailLabels.ts +0 -0
  1009. package/tests/bdd/steps/characters/getCharacterMailLists.ts +0 -0
  1010. package/tests/bdd/steps/characters/getCharacterMedals.ts +0 -0
  1011. package/tests/bdd/steps/characters/getCharacterMining.ts +0 -0
  1012. package/tests/bdd/steps/characters/getCharacterNotifications.ts +0 -0
  1013. package/tests/bdd/steps/characters/getCharacterNotificationsContacts.ts +0 -0
  1014. package/tests/bdd/steps/characters/getCharacterOpportunities.ts +0 -0
  1015. package/tests/bdd/steps/characters/getCharacterOrderHistory.ts +0 -0
  1016. package/tests/bdd/steps/characters/getCharacterOrders.ts +0 -0
  1017. package/tests/bdd/steps/characters/getCharacterPlanets.ts +0 -0
  1018. package/tests/bdd/steps/characters/getCharacterPortrait.ts +0 -0
  1019. package/tests/bdd/steps/characters/getCharacterRoles.ts +0 -0
  1020. package/tests/bdd/steps/characters/getCharacterSearch.ts +0 -0
  1021. package/tests/bdd/steps/characters/getCharacterShip.ts +0 -0
  1022. package/tests/bdd/steps/characters/getCharacterSkillQueue.ts +0 -0
  1023. package/tests/bdd/steps/characters/getCharacterSkills.ts +0 -0
  1024. package/tests/bdd/steps/characters/getCharacterStandings.ts +0 -0
  1025. package/tests/bdd/steps/characters/getCharacterStats.ts +0 -0
  1026. package/tests/bdd/steps/characters/getCharacterTitles.ts +0 -0
  1027. package/tests/bdd/steps/characters/getCharacterWallet.ts +0 -0
  1028. package/tests/bdd/steps/characters/getCharacterWalletJournal.ts +0 -0
  1029. package/tests/bdd/steps/characters/getCharacterWalletTransactions.ts +0 -0
  1030. package/tests/bdd/steps/contracts/getContractBids.ts +0 -0
  1031. package/tests/bdd/steps/contracts/getContractById.ts +0 -0
  1032. package/tests/bdd/steps/contracts/getContractItems.ts +0 -0
  1033. package/tests/bdd/steps/contracts/getContracts.ts +0 -0
  1034. package/tests/bdd/steps/contracts/getPublicContractBids.ts +0 -0
  1035. package/tests/bdd/steps/contracts/getPublicContractItems.ts +0 -0
  1036. package/tests/bdd/steps/contracts/getPublicContracts.ts +0 -0
  1037. package/tests/bdd/steps/corporations/getCorporation.ts +0 -0
  1038. package/tests/bdd/steps/corporations/getCorporationAlliances.ts +0 -0
  1039. package/tests/bdd/steps/corporations/getCorporationBlueprints.ts +0 -0
  1040. package/tests/bdd/steps/corporations/getCorporationBookmarkFolders.ts +0 -0
  1041. package/tests/bdd/steps/corporations/getCorporationBookmarks.ts +0 -0
  1042. package/tests/bdd/steps/corporations/getCorporationContactLabels.ts +0 -0
  1043. package/tests/bdd/steps/corporations/getCorporationContacts.ts +0 -0
  1044. package/tests/bdd/steps/corporations/getCorporationContainerLogs.ts +0 -0
  1045. package/tests/bdd/steps/corporations/getCorporationContractBids.ts +0 -0
  1046. package/tests/bdd/steps/corporations/getCorporationContractItems.ts +0 -0
  1047. package/tests/bdd/steps/corporations/getCorporationContracts.ts +0 -0
  1048. package/tests/bdd/steps/corporations/getCorporationDivisions.ts +0 -0
  1049. package/tests/bdd/steps/corporations/getCorporationFacilities.ts +0 -0
  1050. package/tests/bdd/steps/corporations/getCorporationFwStats.ts +0 -0
  1051. package/tests/bdd/steps/corporations/getCorporationIcons.ts +0 -0
  1052. package/tests/bdd/steps/corporations/getCorporationIndustryJobs.ts +0 -0
  1053. package/tests/bdd/steps/corporations/getCorporationKillmails.ts +0 -0
  1054. package/tests/bdd/steps/corporations/getCorporationMedals.ts +0 -0
  1055. package/tests/bdd/steps/corporations/getCorporationMemberLimit.ts +0 -0
  1056. package/tests/bdd/steps/corporations/getCorporationMemberTracking.ts +0 -0
  1057. package/tests/bdd/steps/corporations/getCorporationMembers.ts +0 -0
  1058. package/tests/bdd/steps/corporations/getCorporationMining.ts +0 -0
  1059. package/tests/bdd/steps/corporations/getCorporationNotifications.ts +0 -0
  1060. package/tests/bdd/steps/corporations/getCorporationOrderHistory.ts +0 -0
  1061. package/tests/bdd/steps/corporations/getCorporationOrders.ts +0 -0
  1062. package/tests/bdd/steps/corporations/getCorporationOutposts.ts +0 -0
  1063. package/tests/bdd/steps/corporations/getCorporationRoles.ts +0 -0
  1064. package/tests/bdd/steps/corporations/getCorporationShareholders.ts +0 -0
  1065. package/tests/bdd/steps/corporations/getCorporationStandings.ts +0 -0
  1066. package/tests/bdd/steps/corporations/getCorporationStarbases.ts +0 -0
  1067. package/tests/bdd/steps/corporations/getCorporationStructures.ts +0 -0
  1068. package/tests/bdd/steps/corporations/getCorporationTitles.ts +0 -0
  1069. package/tests/bdd/steps/corporations/getCorporationWalletJournal.ts +0 -0
  1070. package/tests/bdd/steps/corporations/getCorporationWalletTransactions.ts +0 -0
  1071. package/tests/bdd/steps/corporations/getCorporationWallets.ts +0 -0
  1072. package/tests/bdd/steps/dogma/getDogmaAttributeById.ts +0 -0
  1073. package/tests/bdd/steps/dogma/getDogmaAttributes.ts +0 -0
  1074. package/tests/bdd/steps/dogma/getDogmaDynamicItemAttributes.ts +0 -0
  1075. package/tests/bdd/steps/dogma/getDogmaEffectById.ts +0 -0
  1076. package/tests/bdd/steps/dogma/getDogmaEffects.ts +0 -0
  1077. package/tests/bdd/steps/factions/getFactionWarfareLeaderboards.ts +0 -33
  1078. package/tests/bdd/steps/factions/getFactionWarfareStats.ts +0 -34
  1079. package/tests/bdd/steps/factions/getFactionWarfareSystems.ts +0 -33
  1080. package/tests/bdd/steps/factions/getFactionWarfareWars.ts +0 -33
  1081. package/tests/bdd/steps/fleets/getFleetMembers.ts +0 -0
  1082. package/tests/bdd/steps/fleets/getFleetSquads.ts +0 -0
  1083. package/tests/bdd/steps/fleets/getFleetWings.ts +0 -0
  1084. package/tests/bdd/steps/fleets/getFleets.ts +0 -0
  1085. package/tests/bdd/steps/incursions/getIncursions.ts +0 -0
  1086. package/tests/bdd/steps/industry/getIndustryCorporationJobs.ts +0 -0
  1087. package/tests/bdd/steps/industry/getIndustryFacilities.ts +0 -0
  1088. package/tests/bdd/steps/industry/getIndustryJobs.ts +0 -0
  1089. package/tests/bdd/steps/industry/getIndustrySystems.ts +0 -0
  1090. package/tests/bdd/steps/insurance/getInsurancePrices.ts +0 -0
  1091. package/tests/bdd/steps/killmails/getKillmailById.ts +0 -0
  1092. package/tests/bdd/steps/killmails/getKillmails.ts +0 -0
  1093. package/tests/bdd/steps/killmails/getRecentCharacterKillmails.ts +0 -0
  1094. package/tests/bdd/steps/killmails/getRecentCorporationKillmails.ts +0 -0
  1095. package/tests/bdd/steps/location/getLocation.ts +0 -0
  1096. package/tests/bdd/steps/markets/getMarketGroupById.ts +0 -0
  1097. package/tests/bdd/steps/markets/getMarketGroups.ts +0 -0
  1098. package/tests/bdd/steps/markets/getMarketHistory.ts +0 -0
  1099. package/tests/bdd/steps/markets/getMarketOrders.ts +0 -0
  1100. package/tests/bdd/steps/markets/getMarketPrices.ts +0 -0
  1101. package/tests/bdd/steps/markets/getMarketRegionHistory.ts +0 -0
  1102. package/tests/bdd/steps/markets/getMarketRegionOrders.ts +0 -0
  1103. package/tests/bdd/steps/opportunities/getOpportunitiesGroups.ts +0 -0
  1104. package/tests/bdd/steps/opportunities/getOpportunitiesTasks.ts +0 -0
  1105. package/tests/bdd/steps/search/postSearch.ts +0 -0
  1106. package/tests/bdd/steps/sovereignty/getSovereigntyCampaigns.ts +0 -0
  1107. package/tests/bdd/steps/sovereignty/getSovereigntyMap.ts +0 -0
  1108. package/tests/bdd/steps/sovereignty/getSovereigntyStructures.ts +0 -0
  1109. package/tests/bdd/steps/ui/postUiAutopilotWaypoint.ts +0 -0
  1110. package/tests/bdd/steps/ui/postUiOpenWindowContract.ts +0 -0
  1111. package/tests/bdd/steps/ui/postUiOpenWindowInformation.ts +0 -0
  1112. package/tests/bdd/steps/ui/postUiOpenWindowMarketDetails.ts +0 -0
  1113. package/tests/bdd/steps/ui/postUiOpenWindowNewMail.ts +0 -0
  1114. package/tests/bdd/steps/universe/getAncestries.ts +0 -0
  1115. package/tests/bdd/steps/universe/getAsteroidBelt.ts +0 -0
  1116. package/tests/bdd/steps/universe/getBloodlines.ts +0 -0
  1117. package/tests/bdd/steps/universe/getCategories.ts +0 -0
  1118. package/tests/bdd/steps/universe/getCategoryById.ts +0 -0
  1119. package/tests/bdd/steps/universe/getConstellationById.ts +0 -0
  1120. package/tests/bdd/steps/universe/getConstellations.ts +0 -0
  1121. package/tests/bdd/steps/universe/getFactions.ts +0 -0
  1122. package/tests/bdd/steps/universe/getGraphicById.ts +0 -0
  1123. package/tests/bdd/steps/universe/getGraphics.ts +0 -0
  1124. package/tests/bdd/steps/universe/getGroupById.ts +0 -0
  1125. package/tests/bdd/steps/universe/getGroups.ts +0 -0
  1126. package/tests/bdd/steps/universe/getMoonById.ts +0 -0
  1127. package/tests/bdd/steps/universe/getMoons.ts +0 -0
  1128. package/tests/bdd/steps/universe/getPlanetById.ts +0 -0
  1129. package/tests/bdd/steps/universe/getPlanets.ts +0 -0
  1130. package/tests/bdd/steps/universe/getRaces.ts +0 -0
  1131. package/tests/bdd/steps/universe/getRegionById.ts +0 -0
  1132. package/tests/bdd/steps/universe/getRegions.ts +0 -0
  1133. package/tests/bdd/steps/universe/getStarById.ts +0 -0
  1134. package/tests/bdd/steps/universe/getStargateById.ts +0 -0
  1135. package/tests/bdd/steps/universe/getStargates.ts +0 -0
  1136. package/tests/bdd/steps/universe/getStars.ts +0 -0
  1137. package/tests/bdd/steps/universe/getStationById.ts +0 -0
  1138. package/tests/bdd/steps/universe/getStations.ts +0 -0
  1139. package/tests/bdd/steps/universe/getStructures.ts +0 -0
  1140. package/tests/bdd/steps/universe/getSystemById.ts +0 -0
  1141. package/tests/bdd/steps/universe/getSystemJumps.ts +0 -0
  1142. package/tests/bdd/steps/universe/getSystemKills.ts +0 -0
  1143. package/tests/bdd/steps/universe/getSystems.ts +0 -0
  1144. package/tests/bdd/steps/universe/getTypeById.ts +0 -0
  1145. package/tests/bdd/steps/universe/getTypes.ts +0 -0
  1146. package/tests/bdd/steps/universe/getWarById.ts +0 -0
  1147. package/tests/bdd/steps/universe/getWars.ts +0 -0
  1148. package/tests/bdd/steps/universe/postBulkIdsToNames.ts +0 -0
  1149. package/tests/bdd/steps/universe/postBulkNamesToIds.ts +0 -0
  1150. package/tests/bdd/steps/universe/postUniverseNames.ts +0 -0
  1151. package/tests/bdd/steps/wars/getWarById.ts +0 -0
  1152. package/tests/bdd/steps/wars/getWars.ts +0 -0
package/README.md CHANGED
@@ -1,127 +1,936 @@
1
1
  # ESI.ts
2
2
 
3
- This repository contains a TypeScript implementation for the EVE Online API (ESI). This is inspired by the JavaScript implementation at https://github.com/ExperiBass/esiJS
4
-
5
- The project is a personal goal for me, I'm a lapsed developer (actively an Engineering Manager) going back to upskill in TypeScript after a decade away from development in Node.js and Java. Why TypeScript? Familarity with JavaScript and a hopefully better experience for anyone using my app.
6
-
7
- In my absence from coding, I have generated a lot of knowledge on concepts around architecture and design. So the intent of this application is to:
8
-
9
- - Build a clean architecture inspired application -- NOTE This will not be perfect, I'm going to try and adhere to it as best I can
10
- - Bring in Behaviour Driven Development to describe the intentions of the API for non expert programmers
11
- - Try and pursue a red-green TDD style approach for the APIs
12
- - Seperate the API into small, consumable usage
13
- - Look at design patterns, currently playing around with a Builder Pattern to eventually look at tailored client usage where we can have a slimmer client experience and create customised and narrower API profiles
14
- - Figure out how github actions work, I know enough of Jenkins to hopefully figure this out
15
- - Figure out caching and API management
16
- - Figure out auth flows and longer term token management and see can the API help here.
17
- - Develop a useful user guide and documentation
18
-
19
- This is most likely overkill for most end users, my goal is maintability and extensibility of the API and try and get a best practices project off the ground. The project is in flight, this first formal public commit is more to expose the intention and architecture. The factions API was chosen first just to have a mix of open calls and auth calls. This did not follow any best practices with testing and was an attempt to just get a functional API working. A lot of time was spent battling tooling (cucumber.js does not like TypeScript) and different integrations but this is at a point now where I am happy with the intentions. As I progress through each future API grouping my aim is to follow best practices and create a hopefully useful app for the EVE Online Community.
20
-
21
- ISK donations are always welcome to deiseman in game, reach out to chat about any ideas or how the design and API exposure could benefit your app.
22
-
23
-
24
-
25
- ## API Implementation Status
26
-
27
- As progress is made I will try and update this to show what is functional and in place.
28
-
29
- ### Faction Warfare
30
- - [x] Get Faction Warfare Leaderboards - Characters ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
31
- - [x] Get Faction Warfare Leaderboards - Corporations ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
32
- - [x] Get Faction Warfare Leaderboards - Overall ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
33
- - [x] Get Faction Warfare Stats ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
34
- - [x] Get Faction Warfare Character Stats ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
35
- - [x] Get Faction Warfare Corporation Stats ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
36
- - [x] Get Faction Warfare Systems ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
37
- - [x] Get Faction Warfare Wars ![✔️](https://img.shields.io/badge/Status-Implemented-brightgreen)
38
-
39
- ### Alliances
40
- - [ ] Get Alliance by ID ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
41
- - [ ] Get Alliance Corporations ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
42
- - [ ] Get Alliances ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
43
- - [ ] Get Alliance Icons ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
44
-
45
- ### Bookmarks
46
- - [ ] Get Character Bookmarks ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
47
- - [ ] Get Character Bookmark Folders ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
48
- - [ ] Get Corporation Bookmarks ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
49
- - [ ] Get Corporation Bookmark Folders ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
50
-
51
- ### Calendar
52
- - [ ] Get Character Calendar ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
53
- - [ ] Get Calendar Event by ID ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
54
- - [ ] Get Calendar Event Attendees ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
55
- - [ ] Respond to Calendar Event ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
56
-
57
- ### Characters
58
- - [ ] Get Character by ID ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
59
- - [ ] Get Character Agents Research ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
60
- - [ ] Get Character Blueprints ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
61
- - [ ] Get Character Corporation History ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
62
- - [ ] Get Character Medals ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
63
- - [ ] Get Character Notifications ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
64
- - [ ] Get Character Portrait ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
65
- - [ ] Get Character Roles ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
66
-
67
- ### Clones
68
- - [ ] Get Clones ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
69
- - [ ] Get Jump Clones ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
70
- - [ ] Get Implants ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
71
-
72
- ### Contacts
73
- - [ ] Get Character Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
74
- - [ ] Get Corporation Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
75
- - [ ] Get Alliance Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
76
- - [ ] Add Character Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
77
- - [ ] Edit Character Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
78
- - [ ] Delete Character Contacts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
79
-
80
- ### Contracts
81
- - [ ] Get Character Contracts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
82
- - [ ] Get Corporation Contracts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
83
- - [ ] Get Public Contracts ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
84
- - [ ] Get Contract Bids ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
85
- - [ ] Get Contract Items ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
86
-
87
- ### Corporations
88
- - [ ] Get Corporation by ID ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
89
- - [ ] Get Corporation Assets ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
90
- - [ ] Get Corporation Blueprints ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
91
- - [ ] Get Corporation Divisions ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
92
- - [ ] Get Corporation Facilities ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
93
- - [ ] Get Corporation Icons ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
94
- - [ ] Get Corporation Medals ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
95
- - [ ] Get Corporation Members ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
96
-
97
- ### Dogma
98
- - [ ] Get Dogma Attributes ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
99
- - [ ] Get Dogma Effects ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
100
-
101
- ### Fittings
102
- - [ ] Get Character Fittings ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
103
- - [ ] Create Character Fitting ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
104
- - [ ] Delete Character Fitting ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
105
-
106
- ### Fleets
107
- - [ ] Get Fleet by ID ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
108
- - [ ] Get Fleet Members ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
109
- - [ ] Invite Fleet Member ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
110
- - [ ] Kick Fleet Member ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
111
- - [ ] Update Fleet Member ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
112
- - [ ] Get Fleet Wings ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
113
-
114
- ### Incursions
115
- - [ ] Get Incursions ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
116
-
117
- ### Industry
118
- - [ ] Get Industry Facilities ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
119
- - [ ] Get Industry Systems ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
120
- - [ ] Get Character Industry Jobs ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
121
- - [ ] Get Corporation Industry Jobs ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
122
-
123
- ### Insurance
124
- - [ ] Get Insurance Prices ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
125
-
126
- ### Killmails
127
- - [ ] Get Character Killmails ![❌](https://img.shields.io/badge/Status-Not_Implemented-red)
3
+ [![npm version](https://badge.fury.io/js/%40lgriffin%2Fesi.ts.svg)](https://badge.fury.io/js/%40lgriffin%2Fesi.ts)
4
+ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-4.5%2B-blue)](https://www.typescriptlang.org/)
6
+
7
+ A modern, type-safe TypeScript implementation for the [EVE Online ESI API](https://esi.evetech.net/). Built with clean architecture principles, comprehensive error handling, and extensive testing.
8
+
9
+ ## 🚀 Features
10
+
11
+ - **Type-Safe**: Full TypeScript support with comprehensive type definitions
12
+ - **Clean Architecture**: Separation of concerns with dependency injection
13
+ - **Resilient**: Built-in error handling, retry logic, and circuit breakers
14
+ - **High Performance**: Intelligent ETag caching for optimal bandwidth usage
15
+ - **Testable**: Extensive test coverage with BDD scenarios
16
+ - **Modern**: Uses latest TypeScript features and best practices
17
+ - **Comprehensive**: Covers all ESI API endpoints with organized client structure
18
+
19
+ ## 📦 Installation
20
+
21
+ ```bash
22
+ npm install @lgriffin/esi.ts
23
+ ```
24
+
25
+ ## 🔧 Getting Started
26
+
27
+ ESI.ts offers multiple ways to use the API depending on your needs:
28
+
29
+ ### 1. Full ESI Client (All APIs)
30
+
31
+ The complete `EsiClient` gives you access to all ESI endpoints:
32
+
33
+ ```typescript
34
+ import { EsiClient } from '@lgriffin/esi.ts';
35
+
36
+ // Full client with all APIs available
37
+ const client = new EsiClient({
38
+ clientId: 'your-app-name',
39
+ accessToken: 'your-access-token', // Optional - required for authenticated endpoints
40
+ timeout: 30000, // Optional - request timeout in ms
41
+ retryAttempts: 3 // Optional - number of retry attempts
42
+ });
43
+ ```
44
+
45
+ ### 2. Custom Lightweight Client (Selected APIs)
46
+
47
+ Create a lightweight client with only the APIs you need:
48
+
49
+ ```typescript
50
+ import { CustomEsiClient } from '@lgriffin/esi.ts';
51
+
52
+ // Lightweight client with only specific APIs
53
+ const customClient = new CustomEsiClient({
54
+ clientId: 'my-trading-bot',
55
+ clients: ['characters', 'market', 'universe'] // Only load what you need
56
+ });
57
+
58
+ // Access your selected APIs
59
+ const character = await customClient.characters?.getCharacterPublicInfo(123456);
60
+ const prices = await customClient.market?.getMarketPrices();
61
+ ```
62
+
63
+ ### 3. Builder Pattern for Custom Clients
64
+
65
+ Use the builder pattern for more readable client construction:
66
+
67
+ ```typescript
68
+ import { EsiClientBuilder } from '@lgriffin/esi.ts';
69
+
70
+ // Build a custom client step by step
71
+ const client = new EsiClientBuilder()
72
+ .addClient('characters')
73
+ .addClient('corporations')
74
+ .addClients(['market', 'universe'])
75
+ .withClientId('my-corp-manager')
76
+ .withAccessToken('your-token')
77
+ .build();
78
+ ```
79
+
80
+ ### 4. Individual API Clients (Ultra Lightweight)
81
+
82
+ Create standalone clients for single API groups:
83
+
84
+ ```typescript
85
+ import { EsiApiFactory } from '@lgriffin/esi.ts';
86
+
87
+ // Just the Character API
88
+ const characterClient = EsiApiFactory.createCharacterClient({
89
+ clientId: 'character-lookup-tool'
90
+ });
91
+
92
+ const character = await characterClient.getCharacterPublicInfo(123456);
93
+
94
+ // Just the Market API
95
+ const marketClient = EsiApiFactory.createMarketClient({
96
+ clientId: 'market-analyzer'
97
+ });
98
+
99
+ const prices = await marketClient.getMarketPrices();
100
+ ```
101
+
102
+ ### 5. Direct API Class Instantiation
103
+
104
+ For maximum control, instantiate API clients directly:
105
+
106
+ ```typescript
107
+ import { CharacterClient, ApiClient, ApiClientBuilder } from '@lgriffin/esi.ts';
108
+
109
+ // Create the underlying API client
110
+ const apiClient = new ApiClientBuilder()
111
+ .withClientId('direct-api-client')
112
+ .withBaseUrl('https://esi.evetech.net')
113
+ .build();
114
+
115
+ // Create the Character client directly
116
+ const characterClient = new CharacterClient(apiClient);
117
+ const character = await characterClient.getCharacterPublicInfo(123456);
118
+ ```
119
+
120
+ ## 📊 Client Architecture
121
+
122
+ ### Available Client Types
123
+
124
+ All approaches above give you access to these organized API clients:
125
+
126
+ ```typescript
127
+ // Available clients:
128
+ client.alliance // Alliance information
129
+ client.characters // Character data
130
+ client.corporations // Corporation management
131
+ client.market // Market data and trading
132
+ client.universe // Universe information (systems, stations, items)
133
+ client.fleets // Fleet management
134
+ client.industry // Manufacturing and industry
135
+ client.mail // In-game mail
136
+ client.contacts // Contact management
137
+ client.assets // Asset management
138
+ client.wallet // Wallet operations
139
+ client.killmails // Killmail data
140
+ client.location // Character location
141
+ client.skills // Character skills (if available)
142
+ client.factions // Faction warfare
143
+ client.wars // War information
144
+ client.sovereignty // Sovereignty data
145
+ client.incursions // Incursion information
146
+ client.opportunities // Opportunities system
147
+ client.fittings // Ship fittings
148
+ client.clones // Clone management
149
+ client.loyalty // Loyalty points
150
+ client.bookmarks // Bookmark management
151
+ client.calendar // Calendar events
152
+ client.contracts // Contract system
153
+ client.insurance // Insurance information
154
+ client.route // Route planning
155
+ client.search // Search functionality
156
+ client.status // Server status
157
+ client.ui // UI interactions
158
+ ```
159
+
160
+ ## 🎯 Choosing the Right Approach
161
+
162
+ ### When to Use Each Method
163
+
164
+ | Approach | Best For | Memory Usage | Startup Time |
165
+ |----------|----------|--------------|--------------|
166
+ | **Full EsiClient** | Complete applications, multiple API usage | High | Slower |
167
+ | **CustomEsiClient** | Focused applications, selected APIs | Medium | Medium |
168
+ | **EsiApiFactory** | Single-purpose tools, microservices | Low | Fast |
169
+ | **Direct Instantiation** | Libraries, embedded usage | Minimal | Fastest |
170
+
171
+ ### Practical Examples by Use Case
172
+
173
+ #### Character Lookup Tool (Ultra Lightweight)
174
+
175
+ ```typescript
176
+ import { EsiApiFactory } from '@lgriffin/esi.ts';
177
+
178
+ const characterClient = EsiApiFactory.createCharacterClient({
179
+ clientId: 'character-lookup-v1'
180
+ });
181
+
182
+ // Just character operations
183
+ const character = await characterClient.getCharacterPublicInfo(123456);
184
+ const portrait = await characterClient.getCharacterPortrait(123456);
185
+ console.log(`${character.body.name} - ${portrait.body.px128x128}`);
186
+ ```
187
+
188
+ #### Trading Bot (Selected APIs)
189
+
190
+ ```typescript
191
+ import { EsiClientBuilder } from '@lgriffin/esi.ts';
192
+
193
+ const tradingBot = new EsiClientBuilder()
194
+ .addClients(['market', 'characters', 'universe', 'wallet'])
195
+ .withClientId('trading-bot-v2')
196
+ .withAccessToken(process.env.EVE_ACCESS_TOKEN)
197
+ .build();
198
+
199
+ // Only the APIs you need are loaded
200
+ const prices = await tradingBot.market?.getMarketPrices();
201
+ const wallet = await tradingBot.wallet?.getCharacterWallet(characterId);
202
+ ```
203
+
204
+ #### Corporation Management Dashboard (Custom Client)
205
+
206
+ ```typescript
207
+ import { CustomEsiClient } from '@lgriffin/esi.ts';
208
+
209
+ const corpManager = new CustomEsiClient({
210
+ clientId: 'corp-dashboard',
211
+ accessToken: directorToken,
212
+ clients: ['corporations', 'characters', 'assets', 'wallet', 'mail']
213
+ });
214
+
215
+ // Efficient corp management with only needed APIs
216
+ const corp = await corpManager.corporations?.getCorporationInfo(corpId);
217
+ const members = await corpManager.corporations?.getCorporationMembers(corpId);
218
+ ```
219
+
220
+ ## 📋 Common Usage Patterns
221
+
222
+ ### Public Data (No Authentication Required)
223
+
224
+ ```typescript
225
+ // Get alliance information
226
+ const alliance = await client.alliance.getAllianceById(99005338);
227
+ console.log(`Alliance: ${alliance.name} [${alliance.ticker}]`);
228
+
229
+ // Get character public information
230
+ const character = await client.characters.getCharacterPublicInfo(1689391488);
231
+ console.log(`Character: ${character.name}`);
232
+
233
+ // Get corporation information
234
+ const corporation = await client.corporations.getCorporationInfo(98742334);
235
+ console.log(`Corporation: ${corporation.name} [${corporation.ticker}]`);
236
+
237
+ // Get market prices
238
+ const prices = await client.market.getMarketPrices();
239
+ console.log(`Found ${prices.length} market prices`);
240
+
241
+ // Get solar system information
242
+ const system = await client.universe.getSystemById(30000142);
243
+ console.log(`System: ${system.name} (Security: ${system.security_status})`);
244
+ ```
245
+
246
+ ### Authenticated Data (Access Token Required)
247
+
248
+ ```typescript
249
+ // Initialize with access token
250
+ const authenticatedClient = new EsiClient({
251
+ clientId: 'your-app-name',
252
+ accessToken: 'your-character-access-token'
253
+ });
254
+
255
+ const characterId = 1689391488;
256
+
257
+ // Get character's assets
258
+ const assets = await authenticatedClient.assets.getCharacterAssets(characterId);
259
+ console.log(`Character has ${assets.length} assets`);
260
+
261
+ // Get character's wallet balance
262
+ const wallet = await authenticatedClient.wallet.getCharacterWallet(characterId);
263
+ console.log(`Wallet balance: ${wallet.toLocaleString()} ISK`);
264
+
265
+ // Get character's mail
266
+ const mail = await authenticatedClient.mail.getCharacterMail(characterId);
267
+ console.log(`Character has ${mail.length} mail messages`);
268
+
269
+ // Get character's market orders
270
+ const orders = await authenticatedClient.market.getCharacterOrders(characterId);
271
+ console.log(`Character has ${orders.length} active market orders`);
272
+ ```
273
+
274
+ ### Complex Workflows
275
+
276
+ ```typescript
277
+ // Character Profile Assembly
278
+ async function getCompleteCharacterProfile(characterId: number) {
279
+ const [character, portrait, corporation, location] = await Promise.all([
280
+ client.characters.getCharacterPublicInfo(characterId),
281
+ client.characters.getCharacterPortrait(characterId),
282
+ client.characters.getCharacterPublicInfo(characterId).then(char =>
283
+ client.corporations.getCorporationInfo(char.corporation_id)
284
+ ),
285
+ client.location.getCharacterLocation(characterId)
286
+ ]);
287
+
288
+ return {
289
+ character,
290
+ portrait,
291
+ corporation,
292
+ location
293
+ };
294
+ }
295
+
296
+ // Market Analysis
297
+ async function analyzeMarketData(regionId: number, typeId: number) {
298
+ const [prices, orders, history] = await Promise.all([
299
+ client.market.getMarketPrices(),
300
+ client.market.getMarketOrders(regionId, { type_id: typeId }),
301
+ client.market.getMarketHistory(regionId, typeId)
302
+ ]);
303
+
304
+ const currentPrice = prices.find(p => p.type_id === typeId)?.average_price;
305
+ const buyOrders = orders.filter(o => o.is_buy_order);
306
+ const sellOrders = orders.filter(o => !o.is_buy_order);
307
+
308
+ return {
309
+ currentPrice,
310
+ bestBuyPrice: Math.max(...buyOrders.map(o => o.price)),
311
+ bestSellPrice: Math.min(...sellOrders.map(o => o.price)),
312
+ dailyVolume: history[0]?.volume || 0
313
+ };
314
+ }
315
+ ```
316
+
317
+ ## 📊 Error Handling
318
+
319
+ The library provides comprehensive error handling with specific error types:
320
+
321
+ ```typescript
322
+ import { ApiError, ApiErrorType } from '@lgriffin/esi.ts';
323
+
324
+ try {
325
+ const alliance = await client.alliance.getAllianceById(99999999); // Invalid ID
326
+ } catch (error) {
327
+ if (error instanceof ApiError) {
328
+ switch (error.type) {
329
+ case ApiErrorType.NOT_FOUND:
330
+ console.log('Alliance not found');
331
+ break;
332
+ case ApiErrorType.RATE_LIMITED:
333
+ console.log('Rate limited - retry after:', error.retryAfter);
334
+ break;
335
+ case ApiErrorType.SERVER_ERROR:
336
+ console.log('ESI server error:', error.statusCode);
337
+ break;
338
+ case ApiErrorType.NETWORK_ERROR:
339
+ console.log('Network connectivity issue');
340
+ break;
341
+ case ApiErrorType.AUTHENTICATION_ERROR:
342
+ console.log('Invalid or expired access token');
343
+ break;
344
+ default:
345
+ console.log('Unexpected error:', error.message);
346
+ }
347
+ }
348
+ }
349
+ ```
350
+
351
+ ### Graceful Error Handling in Complex Workflows
352
+
353
+ ```typescript
354
+ async function safeCharacterLookup(characterId: number) {
355
+ try {
356
+ // Use Promise.allSettled for partial success scenarios
357
+ const results = await Promise.allSettled([
358
+ client.characters.getCharacterPublicInfo(characterId),
359
+ client.characters.getCharacterPortrait(characterId),
360
+ client.location.getCharacterLocation(characterId)
361
+ ]);
362
+
363
+ const profile: any = {};
364
+
365
+ if (results[0].status === 'fulfilled') {
366
+ profile.character = results[0].value;
367
+ }
368
+
369
+ if (results[1].status === 'fulfilled') {
370
+ profile.portrait = results[1].value;
371
+ }
372
+
373
+ if (results[2].status === 'fulfilled') {
374
+ profile.location = results[2].value;
375
+ } else if (results[2].status === 'rejected') {
376
+ console.log('Location unavailable (character may be offline)');
377
+ }
378
+
379
+ return profile;
380
+ } catch (error) {
381
+ console.error('Failed to get character data:', error);
382
+ return null;
383
+ }
384
+ }
385
+ ```
386
+
387
+ ## ⚡ Performance & Caching
388
+
389
+ ### Intelligent ETag Caching
390
+
391
+ ESI.ts includes a sophisticated ETag caching system that automatically optimizes API calls by avoiding unnecessary data transfers. This feature is **enabled by default** and works transparently with all GET requests.
392
+
393
+ #### How ETag Caching Works
394
+
395
+ ETags (Entity Tags) are unique identifiers returned by ESI servers that represent the current version of a resource. When data hasn't changed, the server returns a `304 Not Modified` status instead of the full data, dramatically reducing bandwidth usage and improving response times.
396
+
397
+ #### Basic Usage (Automatic)
398
+
399
+ ```typescript
400
+ import { EsiClient } from '@lgriffin/esi.ts';
401
+
402
+ // ETag caching is enabled by default
403
+ const client = new EsiClient({
404
+ clientId: 'my-eve-app'
405
+ });
406
+
407
+ // First call - downloads and caches data
408
+ const alliances1 = await client.alliance.getAlliances();
409
+
410
+ // Second call - returns cached data if unchanged (304 response)
411
+ const alliances2 = await client.alliance.getAlliances(); // ⚡ Lightning fast!
412
+ ```
413
+
414
+ #### Custom Cache Configuration
415
+
416
+ ```typescript
417
+ const client = new EsiClient({
418
+ clientId: 'my-eve-app',
419
+ enableETagCache: true, // Default: true
420
+ etagCacheConfig: {
421
+ maxEntries: 1000, // Max cached responses (default: 1000)
422
+ defaultTtl: 300000, // Cache TTL in ms (default: 5 minutes)
423
+ cleanupInterval: 60000, // Cleanup frequency (default: 1 minute)
424
+ persistToStorage: true, // Save to localStorage (default: false)
425
+ storageKey: 'my-esi-cache' // Custom storage key
426
+ }
427
+ });
428
+ ```
429
+
430
+ #### Cache Management
431
+
432
+ ```typescript
433
+ // Get cache statistics
434
+ const stats = client.getCacheStats();
435
+ console.log(`Cache: ${stats.totalEntries}/${stats.maxEntries} entries`);
436
+ console.log(`Hit rate optimization: ${stats.hitRate}%`);
437
+
438
+ // Clear cache manually
439
+ client.clearCache();
440
+
441
+ // Update cache settings at runtime
442
+ client.updateCacheConfig({
443
+ maxEntries: 2000,
444
+ defaultTtl: 600000 // 10 minutes
445
+ });
446
+
447
+ // Disable caching for specific use cases
448
+ const client = new EsiClient({
449
+ enableETagCache: false // Disable caching entirely
450
+ });
451
+ ```
452
+
453
+ #### Performance Benefits
454
+
455
+ - **🚀 Faster Response Times**: Cached responses return instantly
456
+ - **📉 Reduced Bandwidth**: Avoid downloading unchanged data
457
+ - **🔋 Server-Friendly**: Reduces load on ESI servers
458
+ - **💰 Cost Effective**: Lower data usage for mobile/metered connections
459
+ - **🎯 Smart Caching**: Only caches GET requests with ETags
460
+
461
+ #### Cache Behavior
462
+
463
+ | Scenario | Behavior | Performance Impact |
464
+ |----------|----------|-------------------|
465
+ | First API call | Downloads data, stores ETag | Normal speed |
466
+ | Data unchanged | Returns cached data (304) | ⚡ **~95% faster** |
467
+ | Data changed | Downloads new data, updates cache | Normal speed |
468
+ | Cache expired | Downloads fresh data | Normal speed |
469
+ | Cache full | Evicts oldest entries automatically | Minimal impact |
470
+
471
+ #### Advanced ETag Features
472
+
473
+ ```typescript
474
+ // Monitor cache performance
475
+ client.on('cacheHit', (url, etag) => {
476
+ console.log(`Cache hit for ${url} with ETag ${etag}`);
477
+ });
478
+
479
+ client.on('cacheMiss', (url) => {
480
+ console.log(`Cache miss for ${url} - downloading fresh data`);
481
+ });
482
+
483
+ // Programmatic cache inspection
484
+ const cache = client.getETagCache();
485
+ if (cache) {
486
+ const entry = cache.get('https://esi.evetech.net/latest/alliances');
487
+ if (entry) {
488
+ console.log(`Cached data age: ${Date.now() - entry.timestamp}ms`);
489
+ console.log(`ETag: ${entry.etag}`);
490
+ }
491
+ }
492
+ ```
493
+
494
+ #### When ETag Caching Helps Most
495
+
496
+ - **📊 Market Data**: Price lists that update periodically
497
+ - **🏢 Corporation/Alliance Info**: Relatively static organizational data
498
+ - **🌌 Universe Data**: Star system, station, and type information
499
+ - **👥 Character Lists**: Member rosters and public information
500
+ - **📈 Statistics**: Aggregate data that updates on intervals
501
+
502
+ #### Implementation Details
503
+
504
+ - **Architecture**: Implemented at the core `ApiRequestHandler` level
505
+ - **Scope**: Works with ALL GET requests automatically
506
+ - **Compatibility**: Fully backward compatible - existing code works unchanged
507
+ - **Thread Safety**: Uses atomic operations for cache management
508
+ - **Memory Efficient**: Automatic cleanup and size management
509
+ - **Storage Options**: In-memory (default) or persistent localStorage
510
+
511
+ ## 🔧 Advanced Configuration
512
+
513
+ ### Custom Timeout and Retry Logic
514
+
515
+ ```typescript
516
+ const client = new EsiClient({
517
+ clientId: 'my-eve-app',
518
+ timeout: 60000, // 60 second timeout
519
+ retryAttempts: 5, // Retry up to 5 times
520
+ baseUrl: 'https://esi.evetech.net' // Custom ESI endpoint (optional)
521
+ });
522
+ ```
523
+
524
+ ### Using Environment Variables
525
+
526
+ ```typescript
527
+ // Set environment variables
528
+ // ESI_CLIENT_ID=your-app-name
529
+ // ESI_ACCESS_TOKEN=your-token
530
+ // ESI_TIMEOUT=30000
531
+
532
+ const client = new EsiClient({
533
+ clientId: process.env.ESI_CLIENT_ID,
534
+ accessToken: process.env.ESI_ACCESS_TOKEN,
535
+ timeout: parseInt(process.env.ESI_TIMEOUT || '30000')
536
+ });
537
+ ```
538
+
539
+ ## 🚀 Real-World Examples
540
+
541
+ ### EVE Market Trading Bot (Lightweight Version)
542
+
543
+ ```typescript
544
+ import { EsiClientBuilder } from '@lgriffin/esi.ts';
545
+
546
+ class MarketBot {
547
+ private client: any; // CustomEsiClient
548
+
549
+ constructor(accessToken: string) {
550
+ // Only load the APIs we actually need
551
+ this.client = new EsiClientBuilder()
552
+ .addClients(['market', 'universe'])
553
+ .withClientId('market-bot-v1')
554
+ .withAccessToken(accessToken)
555
+ .build();
556
+ }
557
+
558
+ async findArbitrageOpportunities(regionId: number, typeId: number) {
559
+ try {
560
+ const [orders, history] = await Promise.all([
561
+ this.client.market.getMarketOrders(regionId, { type_id: typeId }),
562
+ this.client.market.getMarketHistory(regionId, typeId)
563
+ ]);
564
+
565
+ const buyOrders = orders.filter(o => o.is_buy_order).sort((a, b) => b.price - a.price);
566
+ const sellOrders = orders.filter(o => !o.is_buy_order).sort((a, b) => a.price - b.price);
567
+
568
+ if (buyOrders.length > 0 && sellOrders.length > 0) {
569
+ const spread = buyOrders[0].price - sellOrders[0].price;
570
+ const spreadPercent = (spread / sellOrders[0].price) * 100;
571
+
572
+ return {
573
+ profitable: spread > 0,
574
+ spread,
575
+ spreadPercent,
576
+ bestBuy: buyOrders[0],
577
+ bestSell: sellOrders[0],
578
+ dailyVolume: history[0]?.volume || 0
579
+ };
580
+ }
581
+
582
+ return null;
583
+ } catch (error) {
584
+ console.error('Failed to analyze market:', error);
585
+ return null;
586
+ }
587
+ }
588
+ }
589
+ ```
590
+
591
+ ### Corporation Management Dashboard (Custom Client)
592
+
593
+ ```typescript
594
+ import { CustomEsiClient } from '@lgriffin/esi.ts';
595
+
596
+ class CorporationManager {
597
+ private client: CustomEsiClient;
598
+
599
+ constructor(accessToken: string) {
600
+ // Only load corporation-related APIs
601
+ this.client = new CustomEsiClient({
602
+ clientId: 'corp-manager',
603
+ accessToken,
604
+ clients: ['corporations', 'characters', 'wallet']
605
+ });
606
+ }
607
+
608
+ async getCorporationOverview(corporationId: number) {
609
+ try {
610
+ const [corp, members, wallets] = await Promise.all([
611
+ this.client.corporations.getCorporationInfo(corporationId),
612
+ this.client.corporations.getCorporationMembers(corporationId),
613
+ this.client.wallet.getCorporationWallets(corporationId)
614
+ ]);
615
+
616
+ return {
617
+ corporation: corp,
618
+ memberCount: members.length,
619
+ totalBalance: wallets.reduce((sum, wallet) => sum + wallet.balance, 0)
620
+ };
621
+ } catch (error) {
622
+ if (error instanceof ApiError && error.type === ApiErrorType.AUTHENTICATION_ERROR) {
623
+ throw new Error('Insufficient permissions to access corporation data');
624
+ }
625
+ throw error;
626
+ }
627
+ }
628
+ }
629
+ ```
630
+
631
+ ### Simple Character Lookup (Direct API)
632
+
633
+ ```typescript
634
+ import { EsiApiFactory } from '@lgriffin/esi.ts';
635
+
636
+ // Ultra-lightweight: just one API, one function
637
+ async function lookupCharacter(characterId: number) {
638
+ const characterClient = EsiApiFactory.createCharacterClient({
639
+ clientId: 'simple-lookup'
640
+ });
641
+
642
+ const character = await characterClient.getCharacterPublicInfo(characterId);
643
+ return character.body.name;
644
+ }
645
+
646
+ // Usage
647
+ const name = await lookupCharacter(1689391488);
648
+ console.log(name); // "deiseman"
649
+ ```
650
+
651
+ ### Direct API Class Usage
652
+
653
+ ```typescript
654
+ import { CharacterClient, ApiClientBuilder } from '@lgriffin/esi.ts';
655
+
656
+ // Maximum control - build exactly what you need
657
+ const apiClient = new ApiClientBuilder()
658
+ .setClientId('direct-usage')
659
+ .setLink('https://esi.evetech.net')
660
+ .build();
661
+
662
+ const characterClient = new CharacterClient(apiClient);
663
+
664
+ // Direct usage without any wrapper
665
+ const character = await characterClient.getCharacterPublicInfo(123456);
666
+ const portrait = await characterClient.getCharacterPortrait(123456);
667
+ ```
668
+
669
+ ### Microservice Example (Single Responsibility)
670
+
671
+ ```typescript
672
+ import { EsiApiFactory } from '@lgriffin/esi.ts';
673
+
674
+ // A microservice that only needs market data
675
+ class PriceService {
676
+ private marketClient;
677
+
678
+ constructor() {
679
+ // Only load what this service needs
680
+ this.marketClient = EsiApiFactory.createMarketClient({
681
+ clientId: 'price-service-v1'
682
+ });
683
+ }
684
+
685
+ async getCurrentPrice(typeId: number): Promise<number> {
686
+ const prices = await this.marketClient.getMarketPrices();
687
+ const price = prices.body.find((p: any) => p.type_id === typeId);
688
+ return price?.average_price || 0;
689
+ }
690
+
691
+ async getBestPrices(regionId: number, typeId: number) {
692
+ const orders = await this.marketClient.getMarketOrders(regionId, { type_id: typeId });
693
+
694
+ const buyOrders = orders.body.filter((o: any) => o.is_buy_order);
695
+ const sellOrders = orders.body.filter((o: any) => !o.is_buy_order);
696
+
697
+ return {
698
+ bestBuy: Math.max(...buyOrders.map((o: any) => o.price)),
699
+ bestSell: Math.min(...sellOrders.map((o: any) => o.price))
700
+ };
701
+ }
702
+ }
703
+ ```
704
+
705
+ ## 🧪 Testing
706
+
707
+ ### Running Tests
708
+
709
+ ```bash
710
+ # Run unit tests
711
+ npm test
712
+
713
+ # Run unit tests with coverage
714
+ npm run coverage
715
+
716
+ # Run BDD tests (behavioral scenarios)
717
+ npm run bdd
718
+
719
+ # Run specific BDD test suites
720
+ npm run bdd:alliance
721
+ npm run bdd:character
722
+ npm run bdd:market
723
+
724
+ # Run all tests
725
+ npm run test:all
726
+ ```
727
+
728
+ ## 🚀 Working Examples
729
+
730
+ ### Try the Examples
731
+
732
+ ESI.ts includes working examples that demonstrate real API usage:
733
+
734
+ ```bash
735
+ # Run the complete character profile example
736
+ npm run example
737
+
738
+ # Run flexible API usage examples (all 5 approaches)
739
+ npm run examples:flexible
740
+ ```
741
+
742
+ ### Character Profile Example
743
+
744
+ The main example (`npm run example`) demonstrates:
745
+ - ✅ Complete character profile assembly
746
+ - ✅ Parallel API calls for efficiency
747
+ - ✅ Error handling and graceful degradation
748
+ - ✅ Resource cleanup
749
+ - ✅ Performance timing
750
+
751
+ **Sample Output:**
752
+ ```
753
+ 🚀 ESI.ts Character Profile Example
754
+ =====================================
755
+
756
+ 🔍 Gathering complete profile for character ID: 1689391488
757
+ 📋 Fetching basic character information...
758
+ 🚀 Fetching detailed profile data in parallel...
759
+
760
+ ============================================================
761
+ 🎯 CHARACTER PROFILE SUMMARY
762
+ ============================================================
763
+ 👤 Name: deiseman
764
+ 🆔 Character ID: 1689391488
765
+ 🎂 Birthday: 2/3/2008
766
+ ⚖️ Security Status: 0.16
767
+
768
+ 🏢 Corporation: Brittas Empire [BREMP]
769
+ 👥 Members: 360
770
+ 🤝 Alliance: Pandemic Horde [REKTD]
771
+ 📊 Founded: 2/4/2015
772
+
773
+ 🖼️ Portrait URLs:
774
+ 📱 64x64: https://images.evetech.net/characters/1689391488/portrait?tenant=tranquility&size=64
775
+ 🖥️ 128x128: https://images.evetech.net/characters/1689391488/portrait?tenant=tranquility&size=128
776
+ 🖼️ 256x256: https://images.evetech.net/characters/1689391488/portrait?tenant=tranquility&size=256
777
+ 📺 512x512: https://images.evetech.net/characters/1689391488/portrait?tenant=tranquility&size=512
778
+
779
+ 📍 Current Location: Unavailable (character may be offline)
780
+ ============================================================
781
+
782
+ ⏱️ Total execution time: 154ms
783
+ ✅ Character profile retrieved successfully!
784
+ ```
785
+
786
+ ### Flexible API Examples
787
+
788
+ The flexible examples (`npm run examples:flexible`) demonstrate:
789
+ - ✅ Full ESI Client (all APIs)
790
+ - ✅ Custom lightweight client (selected APIs)
791
+ - ✅ Builder pattern usage
792
+ - ✅ Individual API clients
793
+ - ✅ Direct API class instantiation
794
+ - ✅ Performance comparisons
795
+ - ✅ Microservice example
796
+
797
+ **Sample Output:**
798
+ ```
799
+ 🚀 ESI.ts Flexible API Usage Examples
800
+ =====================================
801
+
802
+ 1️⃣ Full ESI Client (All APIs)
803
+ ✅ Character: deiseman (using full client)
804
+
805
+ 2️⃣ Custom Lightweight Client (Selected APIs)
806
+ ✅ Character: deiseman (using custom client)
807
+ 📊 Enabled clients: characters, corporations
808
+
809
+ 3️⃣ Builder Pattern
810
+ ✅ Character: deiseman (using builder pattern)
811
+
812
+ 4️⃣ Individual API Client (Ultra Lightweight)
813
+ ✅ Character: deiseman (using standalone client)
814
+
815
+ 5️⃣ Direct API Class Instantiation
816
+ ✅ Character: deiseman (using direct instantiation)
817
+
818
+ 🎯 Performance Comparison
819
+ =========================
820
+ ⏱️ Startup time comparison:
821
+ Full Client: 1ms
822
+ Custom Client (1 API): 0ms
823
+ Individual Client: 0ms
824
+
825
+ 💰 Microservice Example: Price Service
826
+ ======================================
827
+ 💎 Tritanium average price: 3.78 ISK
828
+ ```
829
+
830
+ ### Example Files
831
+
832
+ | File | Purpose | Command |
833
+ |------|---------|---------|
834
+ | `src/index.ts` | Character profile assembly | `npm run example` |
835
+ | `demo/flexible-examples.ts` | All flexible API patterns | `npm run examples:flexible` |
836
+
837
+ ### Learning Path
838
+
839
+ 1. **Start Here**: Run `npm run example` to see a complete real-world workflow
840
+ 2. **Explore Options**: Run `npm run examples:flexible` to see all the different ways to use the API
841
+ 3. **Choose Your Approach**: Pick the method that best fits your use case
842
+ 4. **Build Your App**: Use the examples as templates for your own application
843
+
844
+ ### Testing Your Applications
845
+
846
+ ```typescript
847
+ import { EsiClient } from '@lgriffin/esi.ts';
848
+ import { TestDataFactory } from '@lgriffin/esi.ts';
849
+
850
+ describe('My EVE Application', () => {
851
+ let client: EsiClient;
852
+
853
+ beforeEach(() => {
854
+ client = new EsiClient({
855
+ clientId: 'test-client'
856
+ });
857
+ });
858
+
859
+ afterEach(async () => {
860
+ await client.shutdown();
861
+ });
862
+
863
+ it('should handle character lookup', async () => {
864
+ // Mock data for testing
865
+ jest.spyOn(client.characters, 'getCharacterPublicInfo')
866
+ .mockResolvedValue(TestDataFactory.createCharacterInfo({
867
+ character_id: 123456,
868
+ name: 'Test Character'
869
+ }));
870
+
871
+ const character = await client.characters.getCharacterPublicInfo(123456);
872
+ expect(character.name).toBe('Test Character');
873
+ });
874
+ });
875
+ ```
876
+
877
+ ## 🛠️ Resource Management
878
+
879
+ ### Proper Cleanup
880
+
881
+ ```typescript
882
+ // Always clean up resources when done
883
+ async function myApplication() {
884
+ const client = new EsiClient({
885
+ clientId: 'my-app'
886
+ });
887
+
888
+ try {
889
+ // Your application logic here
890
+ const alliance = await client.alliance.getAllianceById(99005338);
891
+ console.log(alliance.name);
892
+ } finally {
893
+ // Important: Always shutdown the client
894
+ await client.shutdown();
895
+ }
896
+ }
897
+
898
+ // Or use a try-with-resources pattern
899
+ class EsiClientManager {
900
+ private client: EsiClient;
901
+
902
+ constructor(config: any) {
903
+ this.client = new EsiClient(config);
904
+ }
905
+
906
+ async use<T>(callback: (client: EsiClient) => Promise<T>): Promise<T> {
907
+ try {
908
+ return await callback(this.client);
909
+ } finally {
910
+ await this.client.shutdown();
911
+ }
912
+ }
913
+ }
914
+
915
+ // Usage
916
+ const manager = new EsiClientManager({ clientId: 'my-app' });
917
+ const result = await manager.use(async (client) => {
918
+ return await client.alliance.getAllianceById(99005338);
919
+ });
920
+ ```
921
+
922
+ ## 🤝 Contributing
923
+
924
+ 1. Fork the repository
925
+ 2. Create a feature branch
926
+ 3. Write tests for your changes
927
+ 4. Ensure all tests pass: `npm test && npm run bdd`
928
+ 5. Open a Pull Request
929
+
930
+ ## 📄 License
931
+
932
+ GPL-3.0-or-later - see the [LICENSE](LICENSE) file for details.
933
+
934
+ ---
935
+
936
+ **Happy coding, capsuleers! o7**