@lgriffin/esi.ts 4.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/LICENSE +26 -26
- package/README.md +562 -557
- package/dist/EsiClient.d.ts +8 -2
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClient.js +9 -0
- package/dist/EsiClientBuilder.d.ts +4 -1
- package/dist/EsiClientBuilder.d.ts.map +1 -1
- package/dist/EsiClientBuilder.js +9 -0
- package/dist/clients/AccessListsClient.d.ts +15 -0
- package/dist/clients/AccessListsClient.d.ts.map +1 -0
- package/dist/clients/AccessListsClient.js +20 -0
- package/dist/clients/MercenaryClient.d.ts +20 -0
- package/dist/clients/MercenaryClient.d.ts.map +1 -0
- package/dist/clients/MercenaryClient.js +27 -0
- package/dist/clients/SkyhooksClient.d.ts +26 -0
- package/dist/clients/SkyhooksClient.d.ts.map +1 -0
- package/dist/clients/SkyhooksClient.js +35 -0
- package/dist/clients/SovereigntyClient.d.ts +4 -10
- package/dist/clients/SovereigntyClient.d.ts.map +1 -1
- package/dist/clients/SovereigntyClient.js +4 -12
- package/dist/clients/UniverseClient.d.ts +2 -2
- package/dist/clients/UniverseClient.d.ts.map +1 -1
- package/dist/clients/UniverseClient.js +3 -3
- package/dist/config/configManager.d.ts.map +1 -1
- package/dist/config/configManager.js +12 -6
- package/dist/config/jest/jest.setup.js +0 -1
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/ApiRequestHandler.js +7 -3
- package/dist/core/ClientRegistry.d.ts +6 -4
- package/dist/core/ClientRegistry.d.ts.map +1 -1
- package/dist/core/ClientRegistry.js +11 -2
- package/dist/core/circuitBreaker/CircuitBreaker.js +2 -2
- package/dist/core/constants.d.ts +3 -3
- package/dist/core/constants.js +2 -2
- package/dist/core/endpoints/accessListEndpoints.d.ts +9 -0
- package/dist/core/endpoints/accessListEndpoints.d.ts.map +1 -0
- package/dist/core/endpoints/accessListEndpoints.js +11 -0
- package/dist/core/endpoints/assetEndpoints.d.ts +4 -12
- package/dist/core/endpoints/assetEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/assetEndpoints.js +4 -4
- package/dist/core/endpoints/contactEndpoints.d.ts +1 -3
- package/dist/core/endpoints/contactEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/contactEndpoints.js +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +13 -0
- package/dist/core/endpoints/mercenaryEndpoints.d.ts.map +1 -0
- package/dist/core/endpoints/mercenaryEndpoints.js +15 -0
- package/dist/core/endpoints/skyhookEndpoints.d.ts +18 -0
- package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -0
- package/dist/core/endpoints/skyhookEndpoints.js +20 -0
- package/dist/core/endpoints/sovereigntyEndpoints.d.ts +2 -7
- package/dist/core/endpoints/sovereigntyEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/sovereigntyEndpoints.js +2 -7
- package/dist/core/endpoints/universeEndpoints.d.ts +2 -6
- package/dist/core/endpoints/universeEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/universeEndpoints.js +2 -2
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/rateLimiter/RateLimiter.js +5 -11
- package/dist/core/util/headersUtil.d.ts.map +1 -1
- package/dist/core/util/headersUtil.js +2 -1
- package/dist/core/util/testHelpers.d.ts +0 -2
- package/dist/core/util/testHelpers.d.ts.map +1 -1
- package/dist/core/util/testHelpers.js +3 -19
- package/dist/core/util/validation.js +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/testing/TestDataFactory.d.ts +8 -2
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/testing/TestDataFactory.js +86 -1
- package/dist/types/access-lists.d.ts +11 -0
- package/dist/types/access-lists.d.ts.map +1 -0
- package/dist/types/api-responses.d.ts +3 -0
- package/dist/types/api-responses.d.ts.map +1 -1
- package/dist/types/api-responses.js +3 -0
- package/dist/types/mercenary.d.ts +19 -0
- package/dist/types/mercenary.d.ts.map +1 -0
- package/dist/types/mercenary.js +2 -0
- package/dist/types/skyhooks.d.ts +27 -0
- package/dist/types/skyhooks.d.ts.map +1 -0
- package/dist/types/skyhooks.js +2 -0
- package/dist/types/sovereignty.d.ts +11 -9
- package/dist/types/sovereignty.d.ts.map +1 -1
- package/package.json +181 -156
- package/dist/api/alliances/getAllianceById.js +0 -17
- package/dist/api/alliances/getAllianceContactLabels.js +0 -13
- package/dist/api/alliances/getAllianceContacts.js +0 -13
- package/dist/api/alliances/getAllianceCorporations.js +0 -13
- package/dist/api/alliances/getAllianceIcons.js +0 -13
- package/dist/api/alliances/getAlliances.js +0 -13
- package/dist/api/assets/getCharacterAssets.js +0 -13
- package/dist/api/assets/getCorporationAssets.js +0 -13
- package/dist/api/assets/postCharacterAssetLocations.js +0 -13
- package/dist/api/assets/postCharacterAssetNames.js +0 -13
- package/dist/api/assets/postCorporationAssetLocations.js +0 -13
- package/dist/api/assets/postCorporationAssetNames.js +0 -13
- package/dist/api/bookmarks/getCharacterBookmarkFolders.js +0 -13
- package/dist/api/bookmarks/getCharacterBookmarks.js +0 -13
- package/dist/api/bookmarks/getCorporationBookmarkFolders.js +0 -13
- package/dist/api/bookmarks/getCorporationBookmarks.js +0 -13
- package/dist/api/calendar/getCalendarEventById.js +0 -13
- package/dist/api/calendar/getCalendarEvents.js +0 -13
- package/dist/api/calendar/getEventAttendees.js +0 -13
- package/dist/api/calendar/respondToCalendarEvent.js +0 -14
- package/dist/api/characters/getAgentsResearch.js +0 -13
- package/dist/api/characters/getBlueprints.js +0 -13
- package/dist/api/characters/getCharacterPublicInfo.js +0 -13
- package/dist/api/characters/getCharacterRoles.js +0 -13
- package/dist/api/characters/getCharacterStandings.js +0 -13
- package/dist/api/characters/getCharacterTitles.js +0 -13
- package/dist/api/characters/getContactNotifications.js +0 -13
- package/dist/api/characters/getCorporationHistory.js +0 -13
- package/dist/api/characters/getJumpFatigue.js +0 -13
- package/dist/api/characters/getMedals.js +0 -13
- package/dist/api/characters/getNotifications.js +0 -13
- package/dist/api/characters/getPortrait.js +0 -13
- package/dist/api/characters/postCSPAChargeCost.js +0 -13
- package/dist/api/characters/postCharacterAffiliations.js +0 -14
- package/dist/api/clones/getClones.js +0 -14
- package/dist/api/clones/getImplants.js +0 -14
- package/dist/api/clones/postJumpCloneActivation.js +0 -14
- package/dist/api/contacts/deleteCharacterContacts.js +0 -13
- package/dist/api/contacts/getAllianceContactLabels.js +0 -13
- package/dist/api/contacts/getAllianceContacts.js +0 -13
- package/dist/api/contacts/getCharacterContactLabels.js +0 -13
- package/dist/api/contacts/getCharacterContacts.js +0 -13
- package/dist/api/contacts/getCorporationContactLabels.js +0 -13
- package/dist/api/contacts/getCorporationContacts.js +0 -13
- package/dist/api/contacts/postCharacterContacts.js +0 -13
- package/dist/api/contacts/putCharacterContacts.js +0 -13
- package/dist/api/contracts/getCharacterContractBids.js +0 -13
- package/dist/api/contracts/getCharacterContractItems.js +0 -13
- package/dist/api/contracts/getCharacterContracts.js +0 -13
- package/dist/api/contracts/getCorporationContractBids.js +0 -13
- package/dist/api/contracts/getCorporationContractItems.js +0 -13
- package/dist/api/contracts/getCorporationContracts.js +0 -13
- package/dist/api/contracts/getPublicContractBids.js +0 -13
- package/dist/api/contracts/getPublicContractItems.js +0 -13
- package/dist/api/contracts/getPublicContracts.js +0 -13
- package/dist/api/corporations/getCorporationAllianceHistory.js +0 -13
- package/dist/api/corporations/getCorporationAlscLogs.js +0 -13
- package/dist/api/corporations/getCorporationBlueprints.js +0 -13
- package/dist/api/corporations/getCorporationDivisions.js +0 -13
- package/dist/api/corporations/getCorporationFacilities.js +0 -13
- package/dist/api/corporations/getCorporationIcon.js +0 -13
- package/dist/api/corporations/getCorporationInfo.js +0 -13
- package/dist/api/corporations/getCorporationIssuedMedals.js +0 -13
- package/dist/api/corporations/getCorporationMedals.js +0 -13
- package/dist/api/corporations/getCorporationMemberLimit.js +0 -13
- package/dist/api/corporations/getCorporationMemberRoles.js +0 -13
- package/dist/api/corporations/getCorporationMemberRolesHistory.js +0 -13
- package/dist/api/corporations/getCorporationMemberTracking.js +0 -13
- package/dist/api/corporations/getCorporationMembers.js +0 -13
- package/dist/api/corporations/getCorporationMembersTitles.js +0 -13
- package/dist/api/corporations/getCorporationProjects.js +0 -13
- package/dist/api/corporations/getCorporationShareholders.js +0 -13
- package/dist/api/corporations/getCorporationStandings.js +0 -13
- package/dist/api/corporations/getCorporationStarbaseDetail.js +0 -13
- package/dist/api/corporations/getCorporationStarbases.js +0 -13
- package/dist/api/corporations/getCorporationStructures.js +0 -13
- package/dist/api/corporations/getCorporationTitles.js +0 -13
- package/dist/api/corporations/getNpcCorporations.js +0 -13
- package/dist/api/dogma/getDogmaAttributeById.js +0 -13
- package/dist/api/dogma/getDogmaAttributes.js +0 -13
- package/dist/api/dogma/getDogmaDynamicItemAttributes.js +0 -13
- package/dist/api/dogma/getDogmaEffectById.js +0 -13
- package/dist/api/dogma/getDogmaEffects.js +0 -13
- package/dist/api/factions/getCharacterFactionWarfareStats.js +0 -13
- package/dist/api/factions/getCharacterLeaderboards.js +0 -13
- package/dist/api/factions/getCorporationFactionWarfareStats.js +0 -13
- package/dist/api/factions/getCorporationLeaderboards.js +0 -13
- package/dist/api/factions/getFactionLeaderboards.js +0 -13
- package/dist/api/factions/getFactionWarfareStats.js +0 -13
- package/dist/api/factions/getFactionWarfareSystems.js +0 -13
- package/dist/api/factions/getFactionWarfareWars.js +0 -13
- package/dist/api/fittings/deleteCharacterFitting.js +0 -13
- package/dist/api/fittings/getCharacterFittings.js +0 -13
- package/dist/api/fittings/postCharacterFittings.js +0 -13
- package/dist/api/fleets/deleteFleetMember.js +0 -13
- package/dist/api/fleets/deleteFleetSquad.js +0 -13
- package/dist/api/fleets/deleteFleetWing.js +0 -13
- package/dist/api/fleets/getCharacterFleetInfo.js +0 -13
- package/dist/api/fleets/getFleetInfo.js +0 -13
- package/dist/api/fleets/getFleetMembers.js +0 -13
- package/dist/api/fleets/getFleetWings.js +0 -13
- package/dist/api/fleets/postFleetInvitation.js +0 -13
- package/dist/api/fleets/postFleetSquad.js +0 -14
- package/dist/api/fleets/postFleetWing.js +0 -13
- package/dist/api/fleets/putFleetMember.js +0 -13
- package/dist/api/fleets/putFleetSquad.js +0 -13
- package/dist/api/fleets/putFleetWing.js +0 -14
- package/dist/api/fleets/updateFleet.js +0 -13
- package/dist/api/incursions/getIncursions.js +0 -13
- package/dist/api/industry/getCharacterIndustryJobs.js +0 -13
- package/dist/api/industry/getCharacterMiningLedger.js +0 -13
- package/dist/api/industry/getCorporationIndustryJobs.js +0 -13
- package/dist/api/industry/getCorporationMiningObserver.js +0 -13
- package/dist/api/industry/getCorporationMiningObservers.js +0 -13
- package/dist/api/industry/getIndustryFacilities.js +0 -13
- package/dist/api/industry/getIndustrySystems.js +0 -13
- package/dist/api/industry/getMoonExtractionTimers.js +0 -13
- package/dist/api/insurance/getInsurancePrices.js +0 -13
- package/dist/api/killmails/getCharacterRecentKillmails.js +0 -13
- package/dist/api/killmails/getCorporationRecentKillmails.js +0 -13
- package/dist/api/killmails/getKillmail.js +0 -13
- package/dist/api/location/getCharacterLocation.js +0 -13
- package/dist/api/location/getCharacterOnline.js +0 -13
- package/dist/api/location/getCharacterShip.js +0 -13
- package/dist/api/loyalty/getLoyaltyPoints.js +0 -13
- package/dist/api/loyalty/getLoyaltyStoreOffers.js +0 -13
- package/dist/api/mail/deleteCharacterMail.js +0 -13
- package/dist/api/mail/deleteCharacterMailLabel.js +0 -13
- package/dist/api/mail/deleteCharacterMailLabel.test.js +0 -21
- package/dist/api/mail/getCharacerMailingLists.test.js +0 -33
- package/dist/api/mail/getCharacterMail.js +0 -13
- package/dist/api/mail/getCharacterMailHeaders.js +0 -13
- package/dist/api/mail/getCharacterMailLabels.js +0 -13
- package/dist/api/mail/getCharacterMailingLists.js +0 -13
- package/dist/api/mail/postCharacterMail.js +0 -13
- package/dist/api/mail/postCharacterMailLabels.js +0 -13
- package/dist/api/mail/putCharacterMail.js +0 -13
- package/dist/api/market/getCharacterOrderHistory.js +0 -13
- package/dist/api/market/getCharacterOrders.js +0 -13
- package/dist/api/market/getCorporationOrderHistory.js +0 -13
- package/dist/api/market/getCorporationOrders.js +0 -13
- package/dist/api/market/getMarketGroupInformation.js +0 -13
- package/dist/api/market/getMarketGroups.js +0 -13
- package/dist/api/market/getMarketHistory.js +0 -13
- package/dist/api/market/getMarketOrders.js +0 -13
- package/dist/api/market/getMarketOrdersInStructure.js +0 -13
- package/dist/api/market/getMarketPrices.js +0 -13
- package/dist/api/market/getMarketTypes.js +0 -13
- package/dist/api/meta/getSwaggerJson.js +0 -13
- package/dist/api/meta/getSwaggerYaml.js +0 -37
- package/dist/api/opportunities/getCharacterOpportunities.js +0 -13
- package/dist/api/opportunities/getOpportunitiesGroupById.js +0 -13
- package/dist/api/opportunities/getOpportunitiesGroups.js +0 -13
- package/dist/api/opportunities/getOpportunitiesTaskById.js +0 -13
- package/dist/api/opportunities/getOpportunitiesTasks.js +0 -13
- package/dist/api/pi/getColonies.js +0 -13
- package/dist/api/pi/getColonyLayout.js +0 -13
- package/dist/api/pi/getCorporationCustomsOffices.js +0 -13
- package/dist/api/pi/getSchematicInformation.js +0 -13
- package/dist/api/route/getRoute.js +0 -13
- package/dist/api/search/getCharacterSearch.js +0 -13
- package/dist/api/skills/getCharacterAttributes.js +0 -13
- package/dist/api/skills/getCharacterSkillQueue.js +0 -13
- package/dist/api/skills/getCharacterSkills.js +0 -13
- package/dist/api/sovereignty/getSovereigntyCampaigns.js +0 -13
- package/dist/api/sovereignty/getSovereigntyMap.js +0 -13
- package/dist/api/sovereignty/getSovereigntyStructures.js +0 -13
- package/dist/api/status/getStatus.js +0 -13
- package/dist/api/ui/postAutopilotWaypoint.js +0 -13
- package/dist/api/ui/postOpenContractWindow.js +0 -13
- package/dist/api/ui/postOpenInformationWindow.js +0 -13
- package/dist/api/ui/postOpenMarketDetailsWindow.js +0 -13
- package/dist/api/ui/postOpenNewMailWindow.js +0 -13
- package/dist/api/universe/getAncestries.js +0 -13
- package/dist/api/universe/getAsteroidBeltInfo.js +0 -13
- package/dist/api/universe/getBloodlines.js +0 -13
- package/dist/api/universe/getConstellationById.js +0 -13
- package/dist/api/universe/getConstellations.js +0 -13
- package/dist/api/universe/getFactions.js +0 -13
- package/dist/api/universe/getGraphicById.js +0 -13
- package/dist/api/universe/getGraphics.js +0 -13
- package/dist/api/universe/getItemCategories.js +0 -13
- package/dist/api/universe/getItemCategoryById.js +0 -13
- package/dist/api/universe/getItemGroupById.js +0 -13
- package/dist/api/universe/getItemGroups.js +0 -13
- package/dist/api/universe/getMoonById.js +0 -13
- package/dist/api/universe/getPlanetById.js +0 -13
- package/dist/api/universe/getRaces.js +0 -13
- package/dist/api/universe/getRegionById.js +0 -13
- package/dist/api/universe/getRegions.js +0 -13
- package/dist/api/universe/getSchematicById.js +0 -13
- package/dist/api/universe/getStarById.js +0 -13
- package/dist/api/universe/getStargateById.js +0 -13
- package/dist/api/universe/getStationById.js +0 -13
- package/dist/api/universe/getStructureById.js +0 -13
- package/dist/api/universe/getStructures.js +0 -13
- package/dist/api/universe/getSystemById.js +0 -13
- package/dist/api/universe/getSystemJumps.js +0 -13
- package/dist/api/universe/getSystemKills.js +0 -13
- package/dist/api/universe/getSystems.js +0 -13
- package/dist/api/universe/getTypeById.js +0 -13
- package/dist/api/universe/getTypes.js +0 -13
- package/dist/api/universe/postBulkNamesToIds.js +0 -14
- package/dist/api/universe/postNamesAndCategories.js +0 -14
- package/dist/api/wallet/getCharacterWallet.js +0 -13
- package/dist/api/wallet/getCharacterWalletJournal.js +0 -13
- package/dist/api/wallet/getCharacterWalletTransactions.js +0 -13
- package/dist/api/wallet/getCorporationWalletJournal.js +0 -13
- package/dist/api/wallet/getCorporationWalletTransactions.js +0 -13
- package/dist/api/wallet/getCorporationWallets.js +0 -13
- package/dist/api/wars/getWarById.js +0 -13
- package/dist/api/wars/getWarKillmails.js +0 -13
- package/dist/api/wars/getWars.js +0 -13
- package/dist/builders/AllianceApiBuilder.js +0 -13
- package/dist/builders/AssetsApiBuilder.js +0 -13
- package/dist/builders/BookmarkApiBuilder.js +0 -13
- package/dist/builders/CalendarApiBuilder.js +0 -13
- package/dist/builders/CharacterApiBuilder.js +0 -13
- package/dist/builders/ClonesApiBuilder.js +0 -13
- package/dist/builders/ContactsApiBuilder.js +0 -13
- package/dist/builders/ContractsApiBuilder.js +0 -13
- package/dist/builders/CorporationsApiBuilder.js +0 -13
- package/dist/builders/DogmaApiBuilder.js +0 -13
- package/dist/builders/FactionApiBuilder.js +0 -13
- package/dist/builders/FittingsApiBuilder.js +0 -13
- package/dist/builders/FleetApiBuilder.js +0 -13
- package/dist/builders/IncursionsApiBuilder.js +0 -13
- package/dist/builders/IndustryApiBuilder.js +0 -13
- package/dist/builders/InsuranceApiBuilder.js +0 -13
- package/dist/builders/KillmailsBuilder.js +0 -13
- package/dist/builders/LocationApiBuilder.js +0 -13
- package/dist/builders/LoyaltyApiBuilder.js +0 -13
- package/dist/builders/MailApiBuilder.js +0 -13
- package/dist/builders/MarketApiBuilder.js +0 -13
- package/dist/builders/MetaApiBuilder.js +0 -13
- package/dist/builders/OpportunitiesApiBuilder.js +0 -13
- package/dist/builders/PiApiBuilder.js +0 -13
- package/dist/builders/RouteApiBuilder.js +0 -13
- package/dist/builders/SearchApiBuilder.js +0 -13
- package/dist/builders/SkillsApiBuilder.js +0 -13
- package/dist/builders/SovereigntyApiBuilder.js +0 -13
- package/dist/builders/StatusApiBuilder.js +0 -13
- package/dist/builders/UiApiBuilder.js +0 -13
- package/dist/builders/UniverseApiBuilder.js +0 -13
- package/dist/builders/WalletApiBuilder.js +0 -13
- package/dist/builders/WarsAPIBuilder.js +0 -13
- package/dist/clients/BookmarkClient.js +0 -28
- package/dist/clients/OpportunitiesClient.js +0 -33
- package/dist/config/constants.js +0 -11
- package/dist/core/ApiError.js +0 -11
- package/dist/core/container/Container.js +0 -145
- package/dist/core/errors/ApiError.js +0 -129
- package/dist/core/factory/ApiFactory.js +0 -170
- package/dist/core/logger/index.d.ts +0 -2
- package/dist/core/logger/index.d.ts.map +0 -1
- package/dist/core/logger/index.js +0 -8
- package/dist/core/util/file.js +0 -26
- package/dist/core/util/inputValidation.js +0 -9
- package/dist/core/util/network.js +0 -15
- package/dist/core/util/request.js +0 -21
- package/dist/testing/TestHelpers.js +0 -205
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{core/IAPIBuilder.js → types/access-lists.js} +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [5.1.0] - 2026-06-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`noUncheckedIndexedAccess`** compiler flag — array/record indexing now returns `T | undefined`, catching unguarded index access at compile time
|
|
15
|
+
- **`noImplicitReturns`** compiler flag — all function code paths must explicitly return a value
|
|
16
|
+
- **`noImplicitOverride`** compiler flag — `override` keyword required when overriding base class methods
|
|
17
|
+
- **`tsconfig.test.json`** — separate TypeScript config for tests, relaxing `noUncheckedIndexedAccess` for test utility patterns
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- `RateLimiter` token cost lookup inlined (removed unnecessary `Record` indirection)
|
|
22
|
+
- Jest configs (`jest.unit.config.cjs`, `jest.integration.config.cjs`) now use `tsconfig.test.json`
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Unguarded indexed access in `ApiRequestHandler`, `CircuitBreaker`, `RateLimiter`, and `headersUtil`
|
|
27
|
+
|
|
28
|
+
## [5.0.0] - 2026-06-26
|
|
29
|
+
|
|
30
|
+
### Breaking Changes
|
|
31
|
+
|
|
32
|
+
- **Removed `SovereigntyClient.getSovereigntyMap()`** — sunset ESI endpoint; use `getSovereigntySystems()` instead
|
|
33
|
+
- **Removed `SovereigntyClient.getSovereigntyStructures()`** — sunset ESI endpoint; use `getSovereigntySystems()` instead
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **Dependabot** — automated weekly dependency update PRs with grouped ESLint and testing ecosystems
|
|
38
|
+
- **CodeQL Analysis** — GitHub-native security scanning workflow
|
|
39
|
+
- **Commitlint** — conventional commit message validation via husky hook
|
|
40
|
+
- **Version consistency script** — `npm run validate:versions` checks `package.json` matches `constants.ts`
|
|
41
|
+
- **`npm run check:all`** — comprehensive validation including ESI endpoint and version checks
|
|
42
|
+
- Coverage and npm download badges in README
|
|
43
|
+
- `.editorconfig`, `.nvmrc`, `CONTRIBUTING.md`, `SECURITY.md`
|
|
44
|
+
- ClientRegistry test coverage for all 35 client types
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- **POST body format** for asset and contact endpoints — request body was incorrectly structured
|
|
49
|
+
- **POST body format** for `/universe/ids` and `/universe/names` — same issue
|
|
50
|
+
- **Circuit breaker** now treats HTTP 420/429 rate-limit responses as failures
|
|
51
|
+
- **configManager** uses `require.resolve` instead of `process.cwd()` fallback for reliable path resolution
|
|
52
|
+
- **User-Agent version** — ESI requests were sending `esi.ts/3.4.0` instead of current version
|
|
53
|
+
- **Compatibility date** — updated from `2025-12-16` to `2026-05-19` (Equinox)
|
|
54
|
+
- TypeScript badge in README updated from 5.0+ to 6.0+
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
|
|
58
|
+
- `src/TODO` — fully completed roadmap
|
|
59
|
+
- `jest.improved.config.cjs` — dead config matching zero test files
|
|
60
|
+
- `docs/` — generated TypeDoc output removed from git tracking (CI builds as artifact)
|
|
61
|
+
- Unused `getHeaders` test helper
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- `package.json`: added `keywords`, `homepage`, `bugs` URLs, `files` includes README/LICENSE/CHANGELOG
|
|
66
|
+
- Moved `docs/architecture.md` to `guides/ARCHITECTURE.md`
|
|
67
|
+
- Updated `guides/TESTING.md` and `guides/DOCUMENTATION.md` to current state
|
|
68
|
+
- Test coverage raised from 75% to 91%+
|
|
69
|
+
|
|
70
|
+
### Dependencies
|
|
71
|
+
|
|
72
|
+
- `@typescript-eslint/eslint-plugin`: 7.18.0 → 8.x
|
|
73
|
+
- `@typescript-eslint/parser`: 7.18.0 → 8.x
|
|
74
|
+
- `@types/node`: 18.x → 26.x
|
|
75
|
+
- `@commitlint/cli`: 19.x → 21.x
|
|
76
|
+
- `eslint-config-prettier`: 9.x → 10.x
|
|
77
|
+
- `lint-staged`: 16.x → 17.x
|
|
78
|
+
- `jest-junit`: 16.x → 17.x
|
|
79
|
+
- GitHub Actions: checkout v4→v7, setup-node v4→v6, upload-artifact v4→v7, codeql-action v3→v4, gh-pages v3→v4, action-gh-release v1→v3
|
|
80
|
+
|
|
81
|
+
## [4.1.1] - 2026-06-08
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- **TypeScript 5.9 → 6.0** — upgraded to TypeScript 6.0.3, the last version before the Go-based TS7 compiler
|
|
86
|
+
- `tsconfig.json`: added explicit `moduleResolution: "bundler"` (TS6 changed the default from `node` to `bundler`)
|
|
87
|
+
- `tsconfig.json`: added explicit `rootDir: "./src"` (TS6 requires this when emitting)
|
|
88
|
+
- `tsconfig.json`: removed `esModuleInterop: true` (always-on in TS6)
|
|
89
|
+
|
|
90
|
+
## [4.1.0] - 2026-06-08
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
|
|
94
|
+
- **Equinox ESI compliance** — new endpoints and types for the [Equinox expansion](https://developers.eveonline.com/blog/equinox-on-esi-structures-sovereignty-and-access-lists) (compatibility date 2026-05-19)
|
|
95
|
+
- **`SovereigntyClient.getSovereigntySystems()`** — combined sovereignty systems route with separate ADM indices (`military_index`, `industry_index`, `strategic_index`), occupancy data, and anchored structures in a single response
|
|
96
|
+
- **`SkyhooksClient`** — new domain client with `getSovereigntyHubs()`, `getOrbitalSkyhooks()`, and `getRaidableSkyhooks()` endpoints for Upwell sovereignty structures
|
|
97
|
+
- **`MercenaryClient`** — new domain client with `getMercenaryDens()` and `getMercenaryTacticalOperations()` endpoints for mercenary content
|
|
98
|
+
- **`AccessListsClient`** — new domain client with `getAccessList(id)` for reading access list (ACL) contents including character, corporation, and alliance entries
|
|
99
|
+
- `TestDataFactory` methods for all new Equinox types: `createSovereigntySystem()`, `createSovereigntyHub()`, `createOrbitalSkyhook()`, `createRaidableSkyhook()`, `createMercenaryDen()`, `createMercenaryTacticalOperation()`, `createAccessListEntry()`
|
|
100
|
+
- TDD and BDD test coverage for all new endpoints
|
|
101
|
+
|
|
102
|
+
### Changed
|
|
103
|
+
|
|
104
|
+
- `SovereigntyClient.getSovereigntyMap()` and `getSovereigntyStructures()` marked as deprecated — use `getSovereigntySystems()` instead
|
|
105
|
+
- Domain client count increased from 32 to 35
|
|
106
|
+
|
|
107
|
+
### Dependencies
|
|
108
|
+
|
|
109
|
+
- `ts-jest`: 29.4.9 → 29.4.11
|
|
110
|
+
- `eslint-plugin-prettier`: 5.5.5 → 5.5.6
|
|
111
|
+
|
|
112
|
+
## [4.0.0] - 2026-05-15
|
|
113
|
+
|
|
114
|
+
### Breaking Changes
|
|
115
|
+
|
|
116
|
+
- **Removed `RateLimiter.getInstance()` singleton** - Create instances with `new RateLimiter()` instead
|
|
117
|
+
- **Removed global cache/circuit breaker functions** - `initializeETagCache()`, `getETagCache()`, `resetETagCache()`, `initializeCircuitBreaker()`, `getCircuitBreaker()`, `resetCircuitBreaker()` are no longer exported from `ApiRequestHandler`
|
|
118
|
+
- Each `EsiClient` and `ApiClientBuilder` now creates its own `RateLimiter`, `ETagCacheManager`, and `CircuitBreaker` instances
|
|
119
|
+
|
|
120
|
+
### Added
|
|
121
|
+
|
|
122
|
+
- **`BaseEsiClient` base class** — eliminates ~650 lines of repeated constructor/field/`withMetadata()` boilerplate across all 33 domain clients
|
|
123
|
+
- **`RequestDeduplicator`** — coalesces concurrent identical GET requests into a single in-flight fetch, sharing the result across all callers (enabled by default; disable with `enableRequestDeduplication: false`)
|
|
124
|
+
- **`EsiDiagnostics` API** — `client.diagnostics` accessor for cache/circuit-breaker stats, moved out of the main `EsiClient` API surface
|
|
125
|
+
- **`fetchPages()` async generator** — memory-efficient page-by-page iteration over paginated ESI responses
|
|
126
|
+
- **Request timeouts** — `config.timeout` now wired to `AbortController` (default 30s); previously the field existed but was never connected to `fetch()` calls
|
|
127
|
+
- **`EsiError` retry helpers** — `isTimeout()`, `retryable` getter, and `isRetryable()` guard for smarter consumer retry logic
|
|
128
|
+
- **`RateLimiterConfig`** — `minDelayMs` and `decelerationThreshold` exposed via `EsiClientConfig` for consumer-tunable rate limiting
|
|
129
|
+
- TypeScript declaration files (`.d.ts`) now emitted with builds
|
|
130
|
+
- `exports` field in `package.json` for modern Node.js module resolution
|
|
131
|
+
- `engines` field specifying Node.js >= 18.0.0
|
|
132
|
+
- `publishConfig` with public access for scoped package
|
|
133
|
+
- `RateLimiter`, `ETagCacheManager`, and `CircuitBreaker` classes exported from main index
|
|
134
|
+
- `ApiClientBuilder.setRateLimiter()`, `.setCache()`, `.setCircuitBreaker()` builder methods
|
|
135
|
+
- `validateBaseUrl()` for SSRF protection — validates ESI host allowlist and HTTPS
|
|
136
|
+
- `unsafeAllowCustomHost` config option to bypass base URL validation
|
|
137
|
+
- URL sanitization in `EsiError` — sensitive query params (`token`, `access_token`, `api_key`) are redacted
|
|
138
|
+
- Path parameters encoded with `encodeURIComponent()` for defense-in-depth
|
|
139
|
+
- URL assertions in all client unit tests — every test now verifies the correct endpoint URL
|
|
140
|
+
- Endpoint definition contract tests — 1800+ tests validating path templates, params, methods
|
|
141
|
+
- Test coverage for `RequestDeduplicator`, `EsiDiagnostics`, `AsyncPaginationIterator`, and extended `EsiError` tests
|
|
142
|
+
- `CHANGELOG.md` following Keep a Changelog format
|
|
143
|
+
- Changelog validation step in release workflow
|
|
144
|
+
|
|
145
|
+
### Fixed
|
|
146
|
+
|
|
147
|
+
- `.d.ts` files not generated during build (`declaration: true` added to `tsconfig.json`)
|
|
148
|
+
- Release pipeline CNAME placeholder removed from GitHub Pages deployment
|
|
149
|
+
- `ContractsClient.ts` test file renamed to `.test.ts` so Jest actually runs it
|
|
150
|
+
|
|
151
|
+
### Changed
|
|
152
|
+
|
|
153
|
+
- `RateLimiter` constructor is now public
|
|
154
|
+
- Cache, rate limiter, and circuit breaker are instance-based per client (no global shared state)
|
|
155
|
+
- `ApiClientBuilder.build()` auto-creates a `RateLimiter` if none was explicitly set
|
|
156
|
+
- `api-responses.ts` (1366 lines) split into 29 domain-specific type files with barrel re-export for backward compatibility
|
|
157
|
+
- `RateLimiter` uses `logWarn` instead of `console.warn` for consistent observability
|
|
158
|
+
- Reduced allocations and deduplicated fetch/sleep logic across core modules
|
|
159
|
+
|
|
160
|
+
## [3.4.0] - 2026-04-29
|
|
161
|
+
|
|
162
|
+
### Added
|
|
163
|
+
|
|
164
|
+
- ESI response header best practices documentation
|
|
165
|
+
- Dogma test coverage (10 TDD + 9 BDD tests)
|
|
166
|
+
- Gated authenticated integration tests (32 tests across 14 endpoint groups)
|
|
167
|
+
- EVE SSO token creator for local integration testing
|
|
168
|
+
- Search endpoint `categories` query parameter
|
|
169
|
+
|
|
170
|
+
### Fixed
|
|
171
|
+
|
|
172
|
+
- 3 industry endpoint paths (`corporation` -> `corporations`) for mining routes
|
|
173
|
+
- Pagination middleware bypass: pages 2+ now route through request pipeline
|
|
174
|
+
- Consolidated duplicate alliance contact endpoints
|
package/LICENSE
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
GNU GENERAL PUBLIC LICENSE
|
|
2
|
-
Version 3, 29 June 2007
|
|
3
|
-
|
|
4
|
-
Copyright (C) 2024 lgriffin
|
|
5
|
-
|
|
6
|
-
This program is free software: you can redistribute it and/or modify
|
|
7
|
-
it under the terms of the GNU General Public License as published by
|
|
8
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
(at your option) any later version.
|
|
10
|
-
|
|
11
|
-
This program is distributed in the hope that it will be useful,
|
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
GNU General Public License for more details.
|
|
15
|
-
|
|
16
|
-
You should have received a copy of the GNU General Public License
|
|
17
|
-
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide.
|
|
22
|
-
All other trademarks are the property of their respective owners.
|
|
23
|
-
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf.
|
|
24
|
-
All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf.
|
|
25
|
-
|
|
26
|
-
This software is not affiliated with or endorsed by CCP hf.
|
|
1
|
+
GNU GENERAL PUBLIC LICENSE
|
|
2
|
+
Version 3, 29 June 2007
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2024 lgriffin
|
|
5
|
+
|
|
6
|
+
This program is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU General Public License as published by
|
|
8
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
(at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide.
|
|
22
|
+
All other trademarks are the property of their respective owners.
|
|
23
|
+
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf.
|
|
24
|
+
All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf.
|
|
25
|
+
|
|
26
|
+
This software is not affiliated with or endorsed by CCP hf.
|