@lgriffin/esi.ts 9.7.0 → 10.2.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 +512 -0
- package/README.md +182 -236
- package/dist/EsiClient.d.mts +140 -0
- package/dist/EsiClient.d.ts +4 -0
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClientBuilder.d.mts +75 -0
- package/dist/EsiClientBuilder.d.ts.map +1 -1
- package/dist/auth/EsiTokenManager.d.mts +200 -0
- package/dist/auth/EsiTokenManager.d.ts +200 -0
- package/dist/auth/EsiTokenManager.d.ts.map +1 -0
- package/dist/auth/EveSsoClient.d.mts +88 -0
- package/dist/auth/EveSsoClient.d.ts +88 -0
- package/dist/auth/EveSsoClient.d.ts.map +1 -0
- package/dist/auth/errors.d.mts +42 -0
- package/dist/auth/errors.d.ts +42 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/index.d.mts +14 -0
- package/dist/auth/index.d.ts +14 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/jwt.d.mts +43 -0
- package/dist/auth/jwt.d.ts +43 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/pkce.d.mts +21 -0
- package/dist/auth/pkce.d.ts +21 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/storage/FileTokenStorage.d.mts +44 -0
- package/dist/auth/storage/FileTokenStorage.d.ts +44 -0
- package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -0
- package/dist/auth/storage/MemoryTokenStorage.d.mts +18 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts +18 -0
- package/dist/auth/storage/MemoryTokenStorage.d.ts.map +1 -0
- package/dist/auth/types.d.mts +42 -0
- package/dist/auth/types.d.ts +42 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-3ZI5A37L.mjs +1065 -0
- package/dist/chunk-3ZI5A37L.mjs.map +1 -0
- package/dist/chunk-BBSHKVPI.js +71 -0
- package/dist/chunk-BBSHKVPI.js.map +1 -0
- package/dist/chunk-D5L5HZVF.mjs +417 -0
- package/dist/chunk-D5L5HZVF.mjs.map +1 -0
- package/dist/chunk-JIW4BXLP.mjs +17 -0
- package/dist/chunk-JIW4BXLP.mjs.map +1 -0
- package/dist/chunk-MSJHIJXA.js +1065 -0
- package/dist/chunk-MSJHIJXA.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-R7D7M2LQ.mjs +71 -0
- package/dist/chunk-R7D7M2LQ.mjs.map +1 -0
- package/dist/chunk-SAQBXXTM.js +2614 -0
- package/dist/chunk-SAQBXXTM.js.map +1 -0
- package/dist/chunk-VZS32UQ3.mjs +2614 -0
- package/dist/chunk-VZS32UQ3.mjs.map +1 -0
- package/dist/chunk-XIB2OXEZ.js +417 -0
- package/dist/chunk-XIB2OXEZ.js.map +1 -0
- package/dist/clients/AccessListsClient.d.mts +25 -0
- package/dist/clients/AllianceClient.d.mts +59 -0
- package/dist/clients/AllianceClient.d.ts.map +1 -1
- package/dist/clients/AssetsClient.d.mts +65 -0
- package/dist/clients/BaseEsiClient.d.mts +19 -0
- package/dist/clients/CalendarClient.d.mts +48 -0
- package/dist/clients/CharacterClient.d.mts +134 -0
- package/dist/clients/ClonesClient.d.mts +27 -0
- package/dist/clients/ContactsClient.d.mts +96 -0
- package/dist/clients/ContractsClient.d.mts +91 -0
- package/dist/clients/ContractsClient.d.ts +12 -9
- package/dist/clients/ContractsClient.d.ts.map +1 -1
- package/dist/clients/CorporationProjectsClient.d.mts +54 -0
- package/dist/clients/CorporationProjectsClient.d.ts +22 -12
- package/dist/clients/CorporationProjectsClient.d.ts.map +1 -1
- package/dist/clients/CorporationsClient.d.mts +219 -0
- package/dist/clients/CosmeticsClient.d.mts +11 -0
- package/dist/clients/DogmaClient.d.mts +42 -0
- package/dist/clients/FactionClient.d.mts +60 -0
- package/dist/clients/FactionClient.d.ts +4 -4
- package/dist/clients/FactionClient.d.ts.map +1 -1
- package/dist/clients/FittingsClient.d.mts +38 -0
- package/dist/clients/FleetClient.d.mts +134 -0
- package/dist/clients/FreelanceJobsClient.d.mts +61 -0
- package/dist/clients/FreelanceJobsClient.d.ts +3 -3
- package/dist/clients/FreelanceJobsClient.d.ts.map +1 -1
- package/dist/clients/IncursionsClient.d.mts +14 -0
- package/dist/clients/IndustryClient.d.mts +86 -0
- package/dist/clients/IndustryClient.d.ts +4 -4
- package/dist/clients/IndustryClient.d.ts.map +1 -1
- package/dist/clients/InsuranceClient.d.mts +14 -0
- package/dist/clients/KillmailsClient.d.mts +37 -0
- package/dist/clients/LocationClient.d.mts +32 -0
- package/dist/clients/LoyaltyClient.d.mts +28 -0
- package/dist/clients/MailClient.d.mts +104 -0
- package/dist/clients/MailClient.d.ts +4 -4
- package/dist/clients/MailClient.d.ts.map +1 -1
- package/dist/clients/MarketClient.d.mts +102 -0
- package/dist/clients/MercenaryClient.d.mts +42 -0
- package/dist/clients/MetaClient.d.mts +45 -0
- package/dist/clients/MetaClient.d.ts +3 -2
- package/dist/clients/MetaClient.d.ts.map +1 -1
- package/dist/clients/MilitaryCampaignsClient.d.mts +53 -0
- package/dist/clients/ParagonHubClient.d.mts +13 -0
- package/dist/clients/PiClient.d.mts +45 -0
- package/dist/clients/RouteClient.d.mts +25 -0
- package/dist/clients/SearchClient.d.mts +17 -0
- package/dist/clients/SkillsClient.d.mts +39 -0
- package/dist/clients/SkyhooksClient.d.mts +48 -0
- package/dist/clients/SovereigntyClient.d.mts +20 -0
- package/dist/clients/StatusClient.d.mts +14 -0
- package/dist/clients/UiClient.d.mts +44 -0
- package/dist/clients/UniverseClient.d.mts +212 -0
- package/dist/clients/WalletClient.d.mts +70 -0
- package/dist/clients/WalletClient.d.ts +4 -4
- package/dist/clients/WalletClient.d.ts.map +1 -1
- package/dist/clients/WarsClient.d.mts +33 -0
- package/dist/core/ApiClient.d.mts +73 -0
- package/dist/core/ApiClient.d.ts +4 -0
- package/dist/core/ApiClient.d.ts.map +1 -1
- package/dist/core/ApiClientBuilder.d.mts +24 -0
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/BatchRequestHandler.d.mts +12 -0
- package/dist/core/BatchRequestHandler.d.ts.map +1 -1
- package/dist/core/ClientRegistry.d.mts +45 -0
- package/dist/core/EsiDiagnostics.d.mts +35 -0
- package/dist/core/IDeduplicator.d.mts +22 -0
- package/dist/core/IDeduplicator.d.ts +16 -0
- package/dist/core/IDeduplicator.d.ts.map +1 -1
- package/dist/core/IRetryStrategy.d.mts +5 -0
- package/dist/core/RequestDeduplicator.d.mts +21 -0
- package/dist/core/RequestDeduplicator.d.ts +13 -0
- package/dist/core/RequestDeduplicator.d.ts.map +1 -1
- package/dist/core/RetryStrategy.d.mts +21 -0
- package/dist/core/RetryStrategy.d.ts +2 -0
- package/dist/core/RetryStrategy.d.ts.map +1 -1
- package/dist/core/cache/ETagCacheManager.d.mts +75 -0
- package/dist/core/cache/ETagCacheManager.d.ts +4 -0
- package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
- package/dist/core/cache/ICache.d.mts +27 -0
- package/dist/core/cache/cacheKey.d.ts +11 -0
- package/dist/core/cache/cacheKey.d.ts.map +1 -1
- package/dist/core/circuitBreaker/CircuitBreaker.d.mts +52 -0
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts +3 -0
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
- package/dist/core/circuitBreaker/ICircuitBreaker.d.mts +23 -0
- package/dist/core/configureApiClient.d.mts +18 -0
- package/dist/core/configureApiClient.d.ts.map +1 -1
- package/dist/core/constants.d.ts +2 -2
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/endpoints/EndpointDefinition.d.mts +63 -0
- package/dist/core/endpoints/accessListEndpoints.d.mts +34 -0
- package/dist/core/endpoints/allianceEndpoints.d.mts +43 -0
- package/dist/core/endpoints/assetEndpoints.d.mts +76 -0
- package/dist/core/endpoints/buildEndpointPath.d.mts +7 -0
- package/dist/core/endpoints/calendarEndpoints.d.mts +54 -0
- package/dist/core/endpoints/calendarEndpoints.d.ts +7 -7
- package/dist/core/endpoints/characterEndpoints.d.mts +185 -0
- package/dist/core/endpoints/characterEndpoints.d.ts +2 -2
- package/dist/core/endpoints/cloneEndpoints.d.mts +32 -0
- package/dist/core/endpoints/cloneEndpoints.d.ts +2 -2
- package/dist/core/endpoints/contactEndpoints.d.mts +106 -0
- package/dist/core/endpoints/contractEndpoints.d.mts +168 -0
- package/dist/core/endpoints/contractEndpoints.d.ts +15 -22
- package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationEndpoints.d.mts +324 -0
- package/dist/core/endpoints/corporationEndpoints.d.ts +19 -22
- package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationProjectEndpoints.d.mts +102 -0
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts +75 -23
- package/dist/core/endpoints/corporationProjectEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/cosmeticsEndpoints.d.mts +52 -0
- package/dist/core/endpoints/createClient.d.mts +69 -0
- package/dist/core/endpoints/createClient.d.ts.map +1 -1
- package/dist/core/endpoints/dogmaEndpoints.d.mts +89 -0
- package/dist/core/endpoints/dogmaEndpoints.d.ts +2 -2
- package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -1
- package/dist/core/endpoints/esi-rate-limit-groups.generated.d.mts +7 -0
- package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -1
- package/dist/core/endpoints/esi-scopes.generated.d.mts +3 -0
- package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -1
- package/dist/core/endpoints/factionEndpoints.d.mts +194 -0
- package/dist/core/endpoints/factionEndpoints.d.ts +36 -36
- package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fittingEndpoints.d.mts +34 -0
- package/dist/core/endpoints/fleetEndpoints.d.mts +137 -0
- package/dist/core/endpoints/fleetEndpoints.d.ts +1 -1
- package/dist/core/endpoints/freelanceJobsEndpoints.d.mts +181 -0
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +131 -122
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/incursionEndpoints.d.mts +19 -0
- package/dist/core/endpoints/industryEndpoints.d.mts +138 -0
- package/dist/core/endpoints/industryEndpoints.d.ts +6 -6
- package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/insuranceEndpoints.d.mts +17 -0
- package/dist/core/endpoints/killmailEndpoints.d.mts +62 -0
- package/dist/core/endpoints/locationEndpoints.d.mts +37 -0
- package/dist/core/endpoints/loyaltyEndpoints.d.mts +32 -0
- package/dist/core/endpoints/mailEndpoints.d.mts +111 -0
- package/dist/core/endpoints/mailEndpoints.d.ts +3 -5
- package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/marketEndpoints.d.mts +191 -0
- package/dist/core/endpoints/mercenaryEndpoints.d.mts +79 -0
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
- package/dist/core/endpoints/metaEndpoints.d.mts +50 -0
- package/dist/core/endpoints/metaEndpoints.d.ts +5 -1
- package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/militaryCampaignEndpoints.d.mts +87 -0
- package/dist/core/endpoints/paragonHubEndpoints.d.mts +163 -0
- package/dist/core/endpoints/piEndpoints.d.mts +101 -0
- package/dist/core/endpoints/piEndpoints.d.ts +2 -2
- package/dist/core/endpoints/routeEndpoints.d.mts +14 -0
- package/dist/core/endpoints/searchEndpoints.d.mts +26 -0
- package/dist/core/endpoints/skillEndpoints.d.mts +52 -0
- package/dist/core/endpoints/skyhookEndpoints.d.mts +111 -0
- package/dist/core/endpoints/sovereigntyEndpoints.d.mts +59 -0
- package/dist/core/endpoints/statusEndpoints.d.mts +14 -0
- package/dist/core/endpoints/statusEndpoints.d.ts +1 -1
- package/dist/core/endpoints/uiEndpoints.d.mts +43 -0
- package/dist/core/endpoints/universeEndpoints.d.mts +456 -0
- package/dist/core/endpoints/universeEndpoints.d.ts +22 -22
- package/dist/core/endpoints/walletEndpoints.d.mts +98 -0
- package/dist/core/endpoints/walletEndpoints.d.ts +2 -3
- package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/warEndpoints.d.mts +51 -0
- package/dist/core/logger/DefaultLogger.d.mts +31 -0
- package/dist/core/logger/DefaultLogger.d.ts +31 -0
- package/dist/core/logger/DefaultLogger.d.ts.map +1 -0
- package/dist/core/logger/ILogger.d.mts +17 -0
- package/dist/core/logger/ILogger.d.ts +14 -4
- package/dist/core/logger/ILogger.d.ts.map +1 -1
- package/dist/core/logger/NoopLogger.d.mts +7 -0
- package/dist/core/logger/NoopLogger.d.ts +4 -0
- package/dist/core/logger/NoopLogger.d.ts.map +1 -1
- package/dist/core/logger/clientLog.d.ts +11 -0
- package/dist/core/logger/clientLog.d.ts.map +1 -0
- package/dist/core/logger/logger.d.ts +11 -3
- package/dist/core/logger/logger.d.ts.map +1 -1
- package/dist/core/logger/loggerUtil.d.mts +11 -0
- package/dist/core/logger/loggerUtil.d.ts +8 -6
- package/dist/core/logger/loggerUtil.d.ts.map +1 -1
- package/dist/core/logger/resolveLogger.d.ts +10 -0
- package/dist/core/logger/resolveLogger.d.ts.map +1 -0
- package/dist/core/middleware/Middleware.d.mts +30 -0
- package/dist/core/pagination/AsyncPaginationIterator.d.mts +12 -0
- package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
- package/dist/core/pagination/CursorPaginationHandler.d.mts +68 -0
- package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
- package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
- package/dist/core/rateLimiter/IRateLimiter.d.mts +27 -0
- package/dist/core/rateLimiter/RateLimiter.d.mts +62 -0
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/requestPipeline/cachePolicy.d.ts +25 -1
- package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
- package/dist/core/requestPipeline/headers.d.ts.map +1 -1
- package/dist/core/requestPipeline/index.d.ts +2 -2
- package/dist/core/requestPipeline/index.d.ts.map +1 -1
- package/dist/core/requestPipeline/paginationOrchestration.d.ts +1 -1
- package/dist/core/requestPipeline/paginationOrchestration.d.ts.map +1 -1
- package/dist/core/requestPipeline/statusHandling.d.ts +14 -2
- package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
- package/dist/core/util/concurrency.d.ts +29 -0
- package/dist/core/util/concurrency.d.ts.map +1 -0
- package/dist/core/util/error.d.mts +37 -0
- package/dist/core/util/retry.d.mts +8 -0
- package/dist/core/util/retry.d.ts.map +1 -1
- package/dist/errors.d.mts +5 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +53 -195
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +37 -129
- package/dist/errors.mjs.map +1 -1
- package/dist/index.d.mts +81 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2195 -3517
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1833 -3044
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/access-lists.d.mts +16 -0
- package/dist/schemas/alliance.d.mts +26 -0
- package/dist/schemas/assets.d.mts +24 -0
- package/dist/schemas/calendar.d.mts +27 -0
- package/dist/schemas/calendar.d.ts +9 -7
- package/dist/schemas/calendar.d.ts.map +1 -1
- package/dist/schemas/character.d.mts +109 -0
- package/dist/schemas/character.d.ts +2 -2
- package/dist/schemas/clones.d.mts +17 -0
- package/dist/schemas/clones.d.ts +2 -2
- package/dist/schemas/common.d.mts +74 -0
- package/dist/schemas/contacts.d.mts +14 -0
- package/dist/schemas/contracts.d.mts +104 -0
- package/dist/schemas/contracts.d.ts +69 -6
- package/dist/schemas/contracts.d.ts.map +1 -1
- package/dist/schemas/corporation-projects.d.mts +104 -0
- package/dist/schemas/corporation-projects.d.ts +96 -9
- package/dist/schemas/corporation-projects.d.ts.map +1 -1
- package/dist/schemas/corporation.d.mts +193 -0
- package/dist/schemas/corporation.d.ts +34 -22
- package/dist/schemas/corporation.d.ts.map +1 -1
- package/dist/schemas/cosmetics.d.mts +58 -0
- package/dist/schemas/dogma.d.mts +57 -0
- package/dist/schemas/dogma.d.ts +2 -2
- package/dist/schemas/esiEnum.d.mts +3 -0
- package/dist/schemas/faction-warfare.d.mts +203 -0
- package/dist/schemas/faction-warfare.d.ts +125 -12
- package/dist/schemas/faction-warfare.d.ts.map +1 -1
- package/dist/schemas/fittings.d.mts +13 -0
- package/dist/schemas/fleet.d.mts +37 -0
- package/dist/schemas/fleet.d.ts +1 -1
- package/dist/schemas/freelance-jobs.d.mts +171 -0
- package/dist/schemas/freelance-jobs.d.ts +52 -22
- package/dist/schemas/freelance-jobs.d.ts.map +1 -1
- package/dist/schemas/incursions.d.mts +12 -0
- package/dist/schemas/index.d.mts +39 -0
- package/dist/schemas/index.js +420 -2479
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/index.mjs +225 -2065
- package/dist/schemas/index.mjs.map +1 -1
- package/dist/schemas/industry.d.mts +99 -0
- package/dist/schemas/industry.d.ts +33 -0
- package/dist/schemas/industry.d.ts.map +1 -1
- package/dist/schemas/insurance.d.mts +10 -0
- package/dist/schemas/killmails.d.mts +38 -0
- package/dist/schemas/location.d.mts +18 -0
- package/dist/schemas/loyalty.d.mts +18 -0
- package/dist/schemas/mail.d.mts +53 -0
- package/dist/schemas/mail.d.ts +24 -5
- package/dist/schemas/mail.d.ts.map +1 -1
- package/dist/schemas/market.d.mts +123 -0
- package/dist/schemas/mercenary.d.mts +74 -0
- package/dist/schemas/mercenary.d.ts +1 -1
- package/dist/schemas/meta.d.mts +36 -0
- package/dist/schemas/meta.d.ts +12 -1
- package/dist/schemas/meta.d.ts.map +1 -1
- package/dist/schemas/military-campaigns.d.mts +26 -0
- package/dist/schemas/paragon-hub.d.mts +96 -0
- package/dist/schemas/pi.d.mts +71 -0
- package/dist/schemas/pi.d.ts +2 -2
- package/dist/schemas/skills.d.mts +28 -0
- package/dist/schemas/skyhooks.d.mts +129 -0
- package/dist/schemas/sovereignty.d.mts +56 -0
- package/dist/schemas/status.d.mts +8 -0
- package/dist/schemas/status.d.ts +1 -1
- package/dist/schemas/universe.d.mts +285 -0
- package/dist/schemas/universe.d.ts +22 -22
- package/dist/schemas/universe.d.ts.map +1 -1
- package/dist/schemas/wallet.d.mts +45 -0
- package/dist/schemas/wallet.d.ts +16 -0
- package/dist/schemas/wallet.d.ts.map +1 -1
- package/dist/schemas/wars.d.mts +27 -0
- package/dist/sde/IStaticDataProvider.d.mts +106 -0
- package/dist/sde/MemorySdeProvider.d.mts +167 -0
- package/dist/sde/SdeDataProvider.d.mts +119 -0
- package/dist/sde/SdeDataProvider.d.ts.map +1 -1
- package/dist/sde/SdeTestDataFactory.d.mts +33 -0
- package/dist/sde/errors.d.mts +23 -0
- package/dist/sde/index.d.mts +9 -0
- package/dist/sde/index.js +95 -1162
- package/dist/sde/index.js.map +1 -1
- package/dist/sde/index.mjs +73 -1091
- package/dist/sde/index.mjs.map +1 -1
- package/dist/sde/ingestion/SdeExtractor.d.ts.map +1 -1
- package/dist/sde/ingestion/metadata.d.ts +13 -0
- package/dist/sde/ingestion/metadata.d.ts.map +1 -0
- package/dist/sde/memory.d.mts +8 -0
- package/dist/sde/memory.js +21 -1095
- package/dist/sde/memory.js.map +1 -1
- package/dist/sde/memory.mjs +13 -1051
- package/dist/sde/memory.mjs.map +1 -1
- package/dist/sde/optionalPeers.d.ts +25 -0
- package/dist/sde/optionalPeers.d.ts.map +1 -0
- package/dist/sde/types.d.mts +1039 -0
- package/dist/sde/version.d.mts +7 -0
- package/dist/testing/TestDataFactory.d.mts +172 -0
- package/dist/testing/TestDataFactory.d.ts +28 -1
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/testing/index.d.mts +2 -0
- package/dist/testing/index.js +116 -125
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.mjs +110 -82
- package/dist/testing/index.mjs.map +1 -1
- package/dist/types/access-lists.d.mts +5 -0
- package/dist/types/alliance.d.mts +7 -0
- package/dist/types/api-responses.d.mts +40 -0
- package/dist/types/assets.d.mts +6 -0
- package/dist/types/branded.d.mts +23 -0
- package/dist/types/calendar.d.mts +6 -0
- package/dist/types/character.d.mts +17 -0
- package/dist/types/clones.d.mts +4 -0
- package/dist/types/common.d.mts +19 -0
- package/dist/types/contacts.d.mts +5 -0
- package/dist/types/contracts.d.mts +9 -0
- package/dist/types/contracts.d.ts +4 -1
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/corporation-projects.d.mts +10 -0
- package/dist/types/corporation-projects.d.ts +5 -1
- package/dist/types/corporation-projects.d.ts.map +1 -1
- package/dist/types/corporation.d.mts +19 -0
- package/dist/types/cosmetics.d.mts +8 -0
- package/dist/types/dogma.d.mts +6 -0
- package/dist/types/faction-warfare.d.mts +17 -0
- package/dist/types/faction-warfare.d.ts +9 -1
- package/dist/types/faction-warfare.d.ts.map +1 -1
- package/dist/types/fittings.d.mts +4 -0
- package/dist/types/fleet.d.mts +7 -0
- package/dist/types/freelance-jobs.d.mts +12 -0
- package/dist/types/freelance-jobs.d.ts +2 -1
- package/dist/types/freelance-jobs.d.ts.map +1 -1
- package/dist/types/generated/esi-spec.generated.d.mts +2136 -0
- package/dist/types/generated/esi-spec.generated.d.ts +164 -16
- package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
- package/dist/types/generated/spec-alignment.check.d.ts +2 -2
- package/dist/types/incursions.d.mts +4 -0
- package/dist/types/industry.d.mts +11 -0
- package/dist/types/industry.d.ts +2 -1
- package/dist/types/industry.d.ts.map +1 -1
- package/dist/types/insurance.d.mts +4 -0
- package/dist/types/killmails.d.mts +5 -0
- package/dist/types/location.d.mts +6 -0
- package/dist/types/loyalty.d.mts +5 -0
- package/dist/types/mail.d.mts +6 -0
- package/dist/types/mail.d.ts +2 -1
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/market.d.mts +12 -0
- package/dist/types/mercenary.d.mts +7 -0
- package/dist/types/meta.d.mts +9 -0
- package/dist/types/meta.d.ts +2 -1
- package/dist/types/meta.d.ts.map +1 -1
- package/dist/types/military-campaigns.d.mts +6 -0
- package/dist/types/paragon-hub.d.mts +8 -0
- package/dist/types/pi.d.mts +6 -0
- package/dist/types/skills.d.mts +5 -0
- package/dist/types/skyhooks.d.mts +8 -0
- package/dist/types/sovereignty.d.mts +6 -0
- package/dist/types/status.d.mts +4 -0
- package/dist/types/universe.d.mts +27 -0
- package/dist/types/wallet.d.mts +6 -0
- package/dist/types/wallet.d.ts +2 -1
- package/dist/types/wallet.d.ts.map +1 -1
- package/dist/types/wars.d.mts +4 -0
- package/package.json +137 -46
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ApiClient } from '../core/ApiClient.mjs';
|
|
2
|
+
import { BaseEsiClient } from './BaseEsiClient.mjs';
|
|
3
|
+
import { warEndpoints } from '../core/endpoints/warEndpoints.mjs';
|
|
4
|
+
import { War, KillmailSummary } from '../types/api-responses.mjs';
|
|
5
|
+
import { PageResult } from '../core/pagination/AsyncPaginationIterator.mjs';
|
|
6
|
+
export declare class WarsClient extends BaseEsiClient<typeof warEndpoints> {
|
|
7
|
+
constructor(client: ApiClient);
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves a list of all war IDs, ordered by war ID descending.
|
|
10
|
+
*
|
|
11
|
+
* @returns A list of war IDs
|
|
12
|
+
*/
|
|
13
|
+
getWars(): Promise<number[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves detailed information about a specific war, including aggressors, defenders, and status.
|
|
16
|
+
*
|
|
17
|
+
* @param warId - The ID of the war
|
|
18
|
+
* @returns Detailed war information
|
|
19
|
+
*/
|
|
20
|
+
getWarById(warId: number): Promise<War>;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves the killmail summaries associated with a specific war.
|
|
23
|
+
*
|
|
24
|
+
* @param warId - The ID of the war
|
|
25
|
+
* @returns A list of killmail summaries for the war
|
|
26
|
+
*/
|
|
27
|
+
getWarKillmails(warId: number): Promise<KillmailSummary[]>;
|
|
28
|
+
fetchAllWars(concurrency?: number): Promise<number[]>;
|
|
29
|
+
fetchAllWarKillmails(warId: number, concurrency?: number): Promise<KillmailSummary[]>;
|
|
30
|
+
streamWars(): AsyncGenerator<PageResult<number>, void, undefined>;
|
|
31
|
+
streamWarKillmails(warId: number): AsyncGenerator<PageResult<KillmailSummary>, void, undefined>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=WarsClient.d.ts.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { MiddlewareManager, RequestInterceptor, ResponseInterceptor } from './middleware/Middleware.mjs';
|
|
2
|
+
import { ICache } from './cache/ICache.mjs';
|
|
3
|
+
import { IRateLimiter } from './rateLimiter/IRateLimiter.mjs';
|
|
4
|
+
import { ICircuitBreaker } from './circuitBreaker/ICircuitBreaker.mjs';
|
|
5
|
+
import { IDeduplicator } from './IDeduplicator.mjs';
|
|
6
|
+
import { IRetryStrategy } from './IRetryStrategy.mjs';
|
|
7
|
+
import { RetryConfig } from './util/retry.mjs';
|
|
8
|
+
import type { ILogger } from './logger/ILogger.mjs';
|
|
9
|
+
export type EsiDatasource = 'tranquility' | 'singularity';
|
|
10
|
+
export type TokenProvider = () => Promise<string>;
|
|
11
|
+
export type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
12
|
+
export declare class ApiClient {
|
|
13
|
+
private clientId;
|
|
14
|
+
private link;
|
|
15
|
+
private accessToken?;
|
|
16
|
+
private datasource?;
|
|
17
|
+
private tokenProvider?;
|
|
18
|
+
private refreshInFlight?;
|
|
19
|
+
private middleware;
|
|
20
|
+
private cache;
|
|
21
|
+
private rateLimiter;
|
|
22
|
+
private circuitBreaker;
|
|
23
|
+
private timeout;
|
|
24
|
+
private deduplicator;
|
|
25
|
+
private retryConfig;
|
|
26
|
+
private retryStrategy;
|
|
27
|
+
private validateResponse;
|
|
28
|
+
private validateRequest;
|
|
29
|
+
private language?;
|
|
30
|
+
private compatibilityDate?;
|
|
31
|
+
private fetchFn;
|
|
32
|
+
private logger;
|
|
33
|
+
constructor(clientId: string, link: string, accessToken?: string | undefined);
|
|
34
|
+
getTimeout(): number;
|
|
35
|
+
setTimeout(timeout: number): void;
|
|
36
|
+
getCache(): ICache | null;
|
|
37
|
+
setCache(cache: ICache | null): void;
|
|
38
|
+
getRateLimiter(): IRateLimiter | null;
|
|
39
|
+
setRateLimiter(limiter: IRateLimiter | null): void;
|
|
40
|
+
getCircuitBreaker(): ICircuitBreaker | null;
|
|
41
|
+
setCircuitBreaker(cb: ICircuitBreaker | null): void;
|
|
42
|
+
getDeduplicator(): IDeduplicator | null;
|
|
43
|
+
setDeduplicator(dedup: IDeduplicator | null): void;
|
|
44
|
+
getRetryConfig(): RetryConfig | null;
|
|
45
|
+
setRetryConfig(config: RetryConfig | null): void;
|
|
46
|
+
getRetryStrategy(): IRetryStrategy | null;
|
|
47
|
+
setRetryStrategy(strategy: IRetryStrategy | null): void;
|
|
48
|
+
getValidateResponse(): boolean;
|
|
49
|
+
setValidateResponse(validate: boolean): void;
|
|
50
|
+
getValidateRequest(): boolean;
|
|
51
|
+
setValidateRequest(validate: boolean): void;
|
|
52
|
+
getFetch(): FetchLike;
|
|
53
|
+
setFetch(fn: FetchLike): void;
|
|
54
|
+
getMiddleware(): MiddlewareManager;
|
|
55
|
+
addRequestInterceptor(fn: RequestInterceptor): () => void;
|
|
56
|
+
addResponseInterceptor(fn: ResponseInterceptor): () => void;
|
|
57
|
+
getAuthorizationHeader(): string | undefined;
|
|
58
|
+
getLink(): string;
|
|
59
|
+
getDatasource(): EsiDatasource | undefined;
|
|
60
|
+
setDatasource(datasource: EsiDatasource | undefined): void;
|
|
61
|
+
getLanguage(): string | undefined;
|
|
62
|
+
setLanguage(language: string | undefined): void;
|
|
63
|
+
getCompatibilityDate(): string | undefined;
|
|
64
|
+
setCompatibilityDate(date: string | undefined): void;
|
|
65
|
+
setAccessToken(token: string): void;
|
|
66
|
+
setTokenProvider(provider: TokenProvider | undefined): void;
|
|
67
|
+
getLogger(): ILogger | null;
|
|
68
|
+
setLogger(logger: ILogger | null): void;
|
|
69
|
+
hasTokenProvider(): boolean;
|
|
70
|
+
toJSON(): Record<string, unknown>;
|
|
71
|
+
refreshToken(): Promise<string>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ApiClient.d.ts.map
|
package/dist/core/ApiClient.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { ICircuitBreaker } from './circuitBreaker/ICircuitBreaker';
|
|
|
5
5
|
import { IDeduplicator } from './IDeduplicator';
|
|
6
6
|
import { IRetryStrategy } from './IRetryStrategy';
|
|
7
7
|
import { RetryConfig } from './util/retry';
|
|
8
|
+
import type { ILogger } from './logger/ILogger';
|
|
8
9
|
export type EsiDatasource = 'tranquility' | 'singularity';
|
|
9
10
|
export type TokenProvider = () => Promise<string>;
|
|
10
11
|
export type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
@@ -28,6 +29,7 @@ export declare class ApiClient {
|
|
|
28
29
|
private language?;
|
|
29
30
|
private compatibilityDate?;
|
|
30
31
|
private fetchFn;
|
|
32
|
+
private logger;
|
|
31
33
|
constructor(clientId: string, link: string, accessToken?: string | undefined);
|
|
32
34
|
getTimeout(): number;
|
|
33
35
|
setTimeout(timeout: number): void;
|
|
@@ -62,6 +64,8 @@ export declare class ApiClient {
|
|
|
62
64
|
setCompatibilityDate(date: string | undefined): void;
|
|
63
65
|
setAccessToken(token: string): void;
|
|
64
66
|
setTokenProvider(provider: TokenProvider | undefined): void;
|
|
67
|
+
getLogger(): ILogger | null;
|
|
68
|
+
setLogger(logger: ILogger | null): void;
|
|
65
69
|
hasTokenProvider(): boolean;
|
|
66
70
|
toJSON(): Record<string, unknown>;
|
|
67
71
|
refreshToken(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/core/ApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/core/ApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ApiClient, FetchLike } from './ApiClient.mjs';
|
|
2
|
+
import { IRateLimiter } from './rateLimiter/IRateLimiter.mjs';
|
|
3
|
+
import { ICache } from './cache/ICache.mjs';
|
|
4
|
+
import { CircuitBreaker } from './circuitBreaker/CircuitBreaker.mjs';
|
|
5
|
+
export declare class ApiClientBuilder {
|
|
6
|
+
private clientId;
|
|
7
|
+
private link;
|
|
8
|
+
private accessToken?;
|
|
9
|
+
private rateLimiter?;
|
|
10
|
+
private cache?;
|
|
11
|
+
private circuitBreaker?;
|
|
12
|
+
private _timeout?;
|
|
13
|
+
private _fetch?;
|
|
14
|
+
setClientId(clientId: string): ApiClientBuilder;
|
|
15
|
+
setLink(link: string): ApiClientBuilder;
|
|
16
|
+
setAccessToken(accessToken?: string): ApiClientBuilder;
|
|
17
|
+
setRateLimiter(limiter: IRateLimiter): ApiClientBuilder;
|
|
18
|
+
setCache(cache: ICache): ApiClientBuilder;
|
|
19
|
+
setCircuitBreaker(cb: CircuitBreaker): ApiClientBuilder;
|
|
20
|
+
setTimeout(timeout: number): ApiClientBuilder;
|
|
21
|
+
setFetch(fn: FetchLike): ApiClientBuilder;
|
|
22
|
+
build(): ApiClient;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ApiClientBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/ApiRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/ApiRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwBxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAgL5D,eAAO,MAAM,uBAAuB,GAClC,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CA8B5B,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,OAAO,OAAO,EACd,eAAc,OAAe,EAC7B,UAAS,OAAc,EACvB,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,OAAO,CAAC,kBAAkB,CAsE5B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EsiError } from './util/error.mjs';
|
|
2
|
+
export interface BatchOptions {
|
|
3
|
+
concurrency?: number;
|
|
4
|
+
onProgress?: (completed: number, total: number) => void;
|
|
5
|
+
}
|
|
6
|
+
export interface BatchResult<K, T> {
|
|
7
|
+
results: Map<K, T>;
|
|
8
|
+
errors: Map<K, EsiError | Error>;
|
|
9
|
+
}
|
|
10
|
+
export declare function batchFetch<K, T>(keys: K[], fetcher: (key: K) => Promise<T>, options?: BatchOptions): Promise<BatchResult<K, T>>;
|
|
11
|
+
export declare function batchPost<T>(ids: number[], poster: (chunk: number[]) => Promise<T[]>, chunkSize?: number): Promise<T[]>;
|
|
12
|
+
//# sourceMappingURL=BatchRequestHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/BatchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;CAClC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"BatchRequestHandler.d.ts","sourceRoot":"","sources":["../../src/core/BatchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;CAClC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA8D5B;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACzC,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAmBd"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ApiClient } from './ApiClient.mjs';
|
|
2
|
+
import { AllianceClient } from '../clients/AllianceClient.mjs';
|
|
3
|
+
import { AssetsClient } from '../clients/AssetsClient.mjs';
|
|
4
|
+
import { CalendarClient } from '../clients/CalendarClient.mjs';
|
|
5
|
+
import { CharacterClient } from '../clients/CharacterClient.mjs';
|
|
6
|
+
import { ClonesClient } from '../clients/ClonesClient.mjs';
|
|
7
|
+
import { ContactsClient } from '../clients/ContactsClient.mjs';
|
|
8
|
+
import { ContractsClient } from '../clients/ContractsClient.mjs';
|
|
9
|
+
import { CorporationsClient } from '../clients/CorporationsClient.mjs';
|
|
10
|
+
import { CorporationProjectsClient } from '../clients/CorporationProjectsClient.mjs';
|
|
11
|
+
import { DogmaClient } from '../clients/DogmaClient.mjs';
|
|
12
|
+
import { FactionClient } from '../clients/FactionClient.mjs';
|
|
13
|
+
import { FittingsClient } from '../clients/FittingsClient.mjs';
|
|
14
|
+
import { FleetClient } from '../clients/FleetClient.mjs';
|
|
15
|
+
import { IncursionsClient } from '../clients/IncursionsClient.mjs';
|
|
16
|
+
import { IndustryClient } from '../clients/IndustryClient.mjs';
|
|
17
|
+
import { InsuranceClient } from '../clients/InsuranceClient.mjs';
|
|
18
|
+
import { KillmailsClient } from '../clients/KillmailsClient.mjs';
|
|
19
|
+
import { LocationClient } from '../clients/LocationClient.mjs';
|
|
20
|
+
import { LoyaltyClient } from '../clients/LoyaltyClient.mjs';
|
|
21
|
+
import { MailClient } from '../clients/MailClient.mjs';
|
|
22
|
+
import { MarketClient } from '../clients/MarketClient.mjs';
|
|
23
|
+
import { PiClient } from '../clients/PiClient.mjs';
|
|
24
|
+
import { RouteClient } from '../clients/RouteClient.mjs';
|
|
25
|
+
import { SearchClient } from '../clients/SearchClient.mjs';
|
|
26
|
+
import { CharacterSkillsClient } from '../clients/SkillsClient.mjs';
|
|
27
|
+
import { SovereigntyClient } from '../clients/SovereigntyClient.mjs';
|
|
28
|
+
import { StatusClient } from '../clients/StatusClient.mjs';
|
|
29
|
+
import { UiClient } from '../clients/UiClient.mjs';
|
|
30
|
+
import { UniverseClient } from '../clients/UniverseClient.mjs';
|
|
31
|
+
import { WalletClient } from '../clients/WalletClient.mjs';
|
|
32
|
+
import { WarsClient } from '../clients/WarsClient.mjs';
|
|
33
|
+
import { MetaClient } from '../clients/MetaClient.mjs';
|
|
34
|
+
import { FreelanceJobsClient } from '../clients/FreelanceJobsClient.mjs';
|
|
35
|
+
import { SkyhooksClient } from '../clients/SkyhooksClient.mjs';
|
|
36
|
+
import { MercenaryClient } from '../clients/MercenaryClient.mjs';
|
|
37
|
+
import { AccessListsClient } from '../clients/AccessListsClient.mjs';
|
|
38
|
+
import { CosmeticsClient } from '../clients/CosmeticsClient.mjs';
|
|
39
|
+
import { ParagonHubClient } from '../clients/ParagonHubClient.mjs';
|
|
40
|
+
import { MilitaryCampaignsClient } from '../clients/MilitaryCampaignsClient.mjs';
|
|
41
|
+
export type ApiClientType = 'alliance' | 'assets' | 'calendar' | 'characters' | 'clones' | 'contacts' | 'contracts' | 'corporations' | 'corporationProjects' | 'dogma' | 'factions' | 'fittings' | 'fleets' | 'incursions' | 'industry' | 'insurance' | 'killmails' | 'location' | 'loyalty' | 'mail' | 'market' | 'pi' | 'route' | 'search' | 'skills' | 'sovereignty' | 'status' | 'ui' | 'universe' | 'wallet' | 'wars' | 'meta' | 'freelanceJobs' | 'skyhooks' | 'cosmetics' | 'paragonHub' | 'mercenary' | 'militaryCampaigns' | 'accessLists';
|
|
42
|
+
export type ClientInstance = AllianceClient | AssetsClient | CalendarClient | CharacterClient | ClonesClient | ContactsClient | ContractsClient | CorporationsClient | CorporationProjectsClient | DogmaClient | FactionClient | FittingsClient | FleetClient | IncursionsClient | IndustryClient | InsuranceClient | KillmailsClient | LocationClient | LoyaltyClient | MailClient | MarketClient | PiClient | RouteClient | SearchClient | CharacterSkillsClient | SovereigntyClient | StatusClient | UiClient | UniverseClient | WalletClient | WarsClient | MetaClient | FreelanceJobsClient | SkyhooksClient | CosmeticsClient | ParagonHubClient | MercenaryClient | MilitaryCampaignsClient | AccessListsClient;
|
|
43
|
+
export declare function createClientInstance(name: ApiClientType, apiClient: ApiClient): ClientInstance;
|
|
44
|
+
export { AllianceClient, AssetsClient, CalendarClient, CharacterClient, ClonesClient, ContactsClient, ContractsClient, CorporationsClient, CorporationProjectsClient, DogmaClient, FactionClient, FittingsClient, FleetClient, IncursionsClient, IndustryClient, InsuranceClient, KillmailsClient, LocationClient, LoyaltyClient, MailClient, MarketClient, PiClient, RouteClient, SearchClient, CharacterSkillsClient, SovereigntyClient, StatusClient, UiClient, UniverseClient, WalletClient, WarsClient, MetaClient, FreelanceJobsClient, SkyhooksClient, CosmeticsClient, ParagonHubClient, MercenaryClient, MilitaryCampaignsClient, AccessListsClient, };
|
|
45
|
+
//# sourceMappingURL=ClientRegistry.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ApiClient } from './ApiClient.mjs';
|
|
2
|
+
import { ETagCacheConfig } from './cache/ETagCacheManager.mjs';
|
|
3
|
+
import { RequestDeduplicator } from './RequestDeduplicator.mjs';
|
|
4
|
+
export interface CacheStats {
|
|
5
|
+
totalEntries: number;
|
|
6
|
+
maxEntries: number;
|
|
7
|
+
hits: number;
|
|
8
|
+
misses: number;
|
|
9
|
+
hitRate: number;
|
|
10
|
+
oldestEntry: number | null;
|
|
11
|
+
newestEntry: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface CircuitBreakerStats {
|
|
14
|
+
totalCircuits: number;
|
|
15
|
+
openCircuits: number;
|
|
16
|
+
circuits: Record<string, {
|
|
17
|
+
state: 'closed' | 'open' | 'half-open';
|
|
18
|
+
failures: number;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export declare class EsiDiagnostics {
|
|
22
|
+
private apiClient;
|
|
23
|
+
private etagCacheEnabled;
|
|
24
|
+
private deduplicator;
|
|
25
|
+
constructor(apiClient: ApiClient, etagCacheEnabled: boolean, deduplicator: RequestDeduplicator | null);
|
|
26
|
+
getCacheStats(): CacheStats | null;
|
|
27
|
+
clearCache(): void;
|
|
28
|
+
updateCacheConfig(newConfig: Partial<ETagCacheConfig>): void;
|
|
29
|
+
getCircuitBreakerStats(): CircuitBreakerStats | null;
|
|
30
|
+
resetCircuitBreaker(endpoint?: string): void;
|
|
31
|
+
getDeduplicatorStats(): {
|
|
32
|
+
pendingRequests: number;
|
|
33
|
+
} | null;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=EsiDiagnostics.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface IDeduplicator {
|
|
2
|
+
dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
|
|
3
|
+
readonly pending: number;
|
|
4
|
+
clear(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Stop new callers joining in-flight requests whose key contains
|
|
7
|
+
* `pathSegment`, and report how many were detached.
|
|
8
|
+
*
|
|
9
|
+
* Called after a write succeeds. A read that starts after a DELETE has
|
|
10
|
+
* completed must not be answered by a GET that was sent before it: the
|
|
11
|
+
* response is pre-write data, and the caller has every reason to expect
|
|
12
|
+
* otherwise. Detaching leaves the in-flight request running and its existing
|
|
13
|
+
* joiners untouched — they asked before the write and their answer is still
|
|
14
|
+
* the one they asked for. It only removes the entry new callers would join.
|
|
15
|
+
*
|
|
16
|
+
* Optional, so a deduplicator written against an earlier version of this
|
|
17
|
+
* interface still satisfies it. A deduplicator that does not implement it
|
|
18
|
+
* keeps the old behaviour, which is why the pipeline calls it with `?.`.
|
|
19
|
+
*/
|
|
20
|
+
detachByPath?(pathSegment: string): number;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=IDeduplicator.d.ts.map
|
|
@@ -2,5 +2,21 @@ export interface IDeduplicator {
|
|
|
2
2
|
dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
|
|
3
3
|
readonly pending: number;
|
|
4
4
|
clear(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Stop new callers joining in-flight requests whose key contains
|
|
7
|
+
* `pathSegment`, and report how many were detached.
|
|
8
|
+
*
|
|
9
|
+
* Called after a write succeeds. A read that starts after a DELETE has
|
|
10
|
+
* completed must not be answered by a GET that was sent before it: the
|
|
11
|
+
* response is pre-write data, and the caller has every reason to expect
|
|
12
|
+
* otherwise. Detaching leaves the in-flight request running and its existing
|
|
13
|
+
* joiners untouched — they asked before the write and their answer is still
|
|
14
|
+
* the one they asked for. It only removes the entry new callers would join.
|
|
15
|
+
*
|
|
16
|
+
* Optional, so a deduplicator written against an earlier version of this
|
|
17
|
+
* interface still satisfies it. A deduplicator that does not implement it
|
|
18
|
+
* keeps the old behaviour, which is why the pipeline calls it with `?.`.
|
|
19
|
+
*/
|
|
20
|
+
detachByPath?(pathSegment: string): number;
|
|
5
21
|
}
|
|
6
22
|
//# sourceMappingURL=IDeduplicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/IDeduplicator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"IDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/IDeduplicator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IDeduplicator } from './IDeduplicator.mjs';
|
|
2
|
+
export declare class RequestDeduplicator implements IDeduplicator {
|
|
3
|
+
private inflight;
|
|
4
|
+
private client;
|
|
5
|
+
setClient(client: import('./ApiClient.mjs').ApiClient | null): void;
|
|
6
|
+
dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
|
|
7
|
+
/**
|
|
8
|
+
* Drop the in-flight entries whose key contains `pathSegment`, so a call
|
|
9
|
+
* made after a write cannot join a request sent before it.
|
|
10
|
+
*
|
|
11
|
+
* The requests themselves keep running and whoever already joined them still
|
|
12
|
+
* gets their answer. Only the map entry goes, which is what new callers look
|
|
13
|
+
* in. Matching is `includes`, the same rule ETagCacheManager.deleteByPath
|
|
14
|
+
* uses, so one written path invalidates the cache and detaches the reads of
|
|
15
|
+
* it by the same test.
|
|
16
|
+
*/
|
|
17
|
+
detachByPath(pathSegment: string): number;
|
|
18
|
+
get pending(): number;
|
|
19
|
+
clear(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=RequestDeduplicator.d.ts.map
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { IDeduplicator } from './IDeduplicator';
|
|
2
2
|
export declare class RequestDeduplicator implements IDeduplicator {
|
|
3
3
|
private inflight;
|
|
4
|
+
private client;
|
|
5
|
+
setClient(client: import('./ApiClient').ApiClient | null): void;
|
|
4
6
|
dedupe<T>(key: string, execute: () => Promise<T>): Promise<T>;
|
|
7
|
+
/**
|
|
8
|
+
* Drop the in-flight entries whose key contains `pathSegment`, so a call
|
|
9
|
+
* made after a write cannot join a request sent before it.
|
|
10
|
+
*
|
|
11
|
+
* The requests themselves keep running and whoever already joined them still
|
|
12
|
+
* gets their answer. Only the map entry goes, which is what new callers look
|
|
13
|
+
* in. Matching is `includes`, the same rule ETagCacheManager.deleteByPath
|
|
14
|
+
* uses, so one written path invalidates the cache and detaches the reads of
|
|
15
|
+
* it by the same test.
|
|
16
|
+
*/
|
|
17
|
+
detachByPath(pathSegment: string): number;
|
|
5
18
|
get pending(): number;
|
|
6
19
|
clear(): void;
|
|
7
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/RequestDeduplicator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAuC;
|
|
1
|
+
{"version":3,"file":"RequestDeduplicator.d.ts","sourceRoot":"","sources":["../../src/core/RequestDeduplicator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,MAAM,CAAgD;IAE9D,SAAS,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIzD,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBnE;;;;;;;;;OASG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAiBzC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ApiClient } from './ApiClient.mjs';
|
|
2
|
+
import { RetryConfig } from './util/retry.mjs';
|
|
3
|
+
import { IRetryStrategy } from './IRetryStrategy.mjs';
|
|
4
|
+
export interface RetryContext {
|
|
5
|
+
client?: ApiClient;
|
|
6
|
+
endpoint: string;
|
|
7
|
+
method: string;
|
|
8
|
+
requiresAuth: boolean;
|
|
9
|
+
refreshToken?: () => Promise<void>;
|
|
10
|
+
/** @deprecated Unused — after refresh the strategy re-enters the main operation loop. */
|
|
11
|
+
retryOperation?: () => Promise<unknown>;
|
|
12
|
+
}
|
|
13
|
+
export declare class RetryStrategy implements IRetryStrategy {
|
|
14
|
+
private readonly maxRetries;
|
|
15
|
+
private readonly baseDelayMs;
|
|
16
|
+
private readonly maxDelayMs;
|
|
17
|
+
private readonly retryMutations;
|
|
18
|
+
constructor(config?: RetryConfig);
|
|
19
|
+
execute<T>(operation: () => Promise<T>, context: RetryContext): Promise<T>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=RetryStrategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RetryStrategy.d.ts","sourceRoot":"","sources":["../../src/core/RetryStrategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RetryStrategy.d.ts","sourceRoot":"","sources":["../../src/core/RetryStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,MAAM,CAAC,EAAE,WAAW;IAO1B,OAAO,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC;CA8Ed"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ApiClient } from '../ApiClient.mjs';
|
|
2
|
+
import { ICache, CacheEntry } from './ICache.mjs';
|
|
3
|
+
export type { CacheEntry } from './ICache.mjs';
|
|
4
|
+
export interface ETagCacheConfig {
|
|
5
|
+
maxEntries?: number;
|
|
6
|
+
defaultTtl?: number;
|
|
7
|
+
cleanupInterval?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class ETagCacheManager implements ICache {
|
|
10
|
+
private cache;
|
|
11
|
+
private config;
|
|
12
|
+
private cleanupTimer?;
|
|
13
|
+
private hits;
|
|
14
|
+
private misses;
|
|
15
|
+
private client;
|
|
16
|
+
setClient(client: ApiClient | null): void;
|
|
17
|
+
private log;
|
|
18
|
+
constructor(config?: ETagCacheConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Get cached data if ETag matches
|
|
21
|
+
*/
|
|
22
|
+
get(url: string): CacheEntry | null;
|
|
23
|
+
/**
|
|
24
|
+
* Get ETag for a URL (for If-None-Match header)
|
|
25
|
+
*/
|
|
26
|
+
getETag(url: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Set cache entry
|
|
29
|
+
*/
|
|
30
|
+
set(url: string, etag: string, data: unknown, headers: Record<string, string>, customTtl?: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Check if cached data exists and is valid
|
|
33
|
+
*/
|
|
34
|
+
has(url: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Clear specific cache entry
|
|
37
|
+
*/
|
|
38
|
+
delete(url: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Delete all cache entries whose URL contains the given path segment
|
|
41
|
+
*/
|
|
42
|
+
deleteByPath(pathSegment: string): number;
|
|
43
|
+
/**
|
|
44
|
+
* Clear all cache entries
|
|
45
|
+
*/
|
|
46
|
+
clear(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get cache statistics
|
|
49
|
+
*/
|
|
50
|
+
getStats(): {
|
|
51
|
+
totalEntries: number;
|
|
52
|
+
maxEntries: number;
|
|
53
|
+
hits: number;
|
|
54
|
+
misses: number;
|
|
55
|
+
hitRate: number;
|
|
56
|
+
oldestEntry: number | null;
|
|
57
|
+
newestEntry: number | null;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Update cache configuration
|
|
61
|
+
*/
|
|
62
|
+
updateConfig(newConfig: Partial<ETagCacheConfig>): void;
|
|
63
|
+
/**
|
|
64
|
+
* Cleanup expired entries
|
|
65
|
+
*/
|
|
66
|
+
cleanup(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Shutdown cache manager
|
|
69
|
+
*/
|
|
70
|
+
shutdown(): void;
|
|
71
|
+
private isExpired;
|
|
72
|
+
private evictOldest;
|
|
73
|
+
private startCleanupTimer;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=ETagCacheManager.d.ts.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ApiClient } from '../ApiClient';
|
|
1
2
|
import { ICache, CacheEntry } from './ICache';
|
|
2
3
|
export type { CacheEntry } from './ICache';
|
|
3
4
|
export interface ETagCacheConfig {
|
|
@@ -11,6 +12,9 @@ export declare class ETagCacheManager implements ICache {
|
|
|
11
12
|
private cleanupTimer?;
|
|
12
13
|
private hits;
|
|
13
14
|
private misses;
|
|
15
|
+
private client;
|
|
16
|
+
setClient(client: ApiClient | null): void;
|
|
17
|
+
private log;
|
|
14
18
|
constructor(config?: ETagCacheConfig);
|
|
15
19
|
/**
|
|
16
20
|
* Get cached data if ETag matches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ETagCacheManager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/ETagCacheManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ETagCacheManager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/ETagCacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIzC,OAAO,CAAC,GAAG;gBAWC,MAAM,GAAE,eAAoB;IAexC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBnC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAmBP;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAoBzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;IAoBD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAOvD;;OAEG;IACH,OAAO,IAAI,MAAM;IAmBjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,iBAAiB;CAO1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CacheEntry {
|
|
2
|
+
etag: string;
|
|
3
|
+
data: unknown;
|
|
4
|
+
headers: Record<string, string>;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
ttl?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ICache {
|
|
9
|
+
get(url: string): CacheEntry | null;
|
|
10
|
+
getETag(url: string): string | null;
|
|
11
|
+
set(url: string, etag: string, data: unknown, headers: Record<string, string>, customTtl?: number): void;
|
|
12
|
+
has(url: string): boolean;
|
|
13
|
+
delete(url: string): boolean;
|
|
14
|
+
deleteByPath(pathSegment: string): number;
|
|
15
|
+
clear(): void;
|
|
16
|
+
getStats(): {
|
|
17
|
+
totalEntries: number;
|
|
18
|
+
maxEntries: number;
|
|
19
|
+
hits: number;
|
|
20
|
+
misses: number;
|
|
21
|
+
hitRate: number;
|
|
22
|
+
oldestEntry: number | null;
|
|
23
|
+
newestEntry: number | null;
|
|
24
|
+
};
|
|
25
|
+
shutdown(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ICache.d.ts.map
|
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
import { ApiClient } from '../ApiClient';
|
|
2
|
+
/** The ETag cache key for a request: its URL, scoped to the identity. */
|
|
2
3
|
export declare function buildCacheKey(url: string, client: ApiClient, requiresAuth?: boolean): string;
|
|
4
|
+
/**
|
|
5
|
+
* The deduplication key for an in-flight request: its endpoint, scoped to the
|
|
6
|
+
* identity.
|
|
7
|
+
*
|
|
8
|
+
* Coalescing has to draw the same line the cache does. Two concurrent GETs to
|
|
9
|
+
* one authenticated endpoint under different tokens are two different
|
|
10
|
+
* questions, and answering both from one response hands one caller the other
|
|
11
|
+
* identity's data.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildDedupeKey(endpoint: string, client: ApiClient, requiresAuth?: boolean): string;
|
|
3
14
|
//# sourceMappingURL=cacheKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheKey.d.ts","sourceRoot":"","sources":["../../../src/core/cache/cacheKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cacheKey.d.ts","sourceRoot":"","sources":["../../../src/core/cache/cacheKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8BzC,yEAAyE;AACzE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE,OAAe,GAC5B,MAAM,CAER"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ApiClient } from '../ApiClient.mjs';
|
|
2
|
+
import { ICircuitBreaker } from './ICircuitBreaker.mjs';
|
|
3
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
4
|
+
export interface CircuitBreakerConfig {
|
|
5
|
+
failureThreshold?: number;
|
|
6
|
+
resetTimeoutMs?: number;
|
|
7
|
+
halfOpenMaxAttempts?: number;
|
|
8
|
+
staleThresholdMs?: number;
|
|
9
|
+
/** 'resolved' (default, current behavior) | 'template' (group by endpoint template path) */
|
|
10
|
+
keyStrategy?: 'resolved' | 'template';
|
|
11
|
+
/** Interval in ms for automatic cleanup of stale circuits. 0 or undefined disables. Recommended value: staleThresholdMs. */
|
|
12
|
+
cleanupIntervalMs?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class CircuitBreaker implements ICircuitBreaker {
|
|
15
|
+
private circuits;
|
|
16
|
+
private readonly failureThreshold;
|
|
17
|
+
private readonly resetTimeoutMs;
|
|
18
|
+
private readonly halfOpenMaxAttempts;
|
|
19
|
+
private readonly staleThresholdMs;
|
|
20
|
+
private readonly keyStrategy;
|
|
21
|
+
private cleanupTimer;
|
|
22
|
+
private client;
|
|
23
|
+
setClient(client: ApiClient | null): void;
|
|
24
|
+
constructor(config?: CircuitBreakerConfig);
|
|
25
|
+
private getKey;
|
|
26
|
+
private getOrCreate;
|
|
27
|
+
checkCircuit(endpoint: string): void;
|
|
28
|
+
recordSuccess(endpoint: string): void;
|
|
29
|
+
recordFailure(endpoint: string, statusCode: number): void;
|
|
30
|
+
getState(endpoint: string): CircuitState;
|
|
31
|
+
getStats(): {
|
|
32
|
+
totalCircuits: number;
|
|
33
|
+
openCircuits: number;
|
|
34
|
+
circuits: Record<string, {
|
|
35
|
+
state: CircuitState;
|
|
36
|
+
failures: number;
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
39
|
+
reset(endpoint?: string): void;
|
|
40
|
+
cleanup(): number;
|
|
41
|
+
getKeyStrategy(): 'resolved' | 'template';
|
|
42
|
+
destroy(): void;
|
|
43
|
+
shutdown(): void;
|
|
44
|
+
private startCleanupTimer;
|
|
45
|
+
}
|
|
46
|
+
export declare class CircuitOpenError extends Error {
|
|
47
|
+
readonly endpoint: string;
|
|
48
|
+
readonly failures: number;
|
|
49
|
+
readonly retryAfterMs: number;
|
|
50
|
+
constructor(endpoint: string, failures: number, retryAfterMs: number);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=CircuitBreaker.d.ts.map
|