@lgriffin/esi.ts 10.2.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +414 -32
- package/LICENSE +667 -19
- package/NOTICE +19 -0
- package/README.md +149 -902
- package/dist/EsiClient.d.mts +5 -36
- package/dist/EsiClient.d.ts +5 -36
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClientBuilder.d.mts +128 -1
- package/dist/EsiClientBuilder.d.ts +128 -1
- package/dist/EsiClientBuilder.d.ts.map +1 -1
- package/dist/adapters/PipelineTransport.d.ts +16 -0
- package/dist/adapters/PipelineTransport.d.ts.map +1 -0
- package/dist/auth/EsiTokenManager.d.mts +62 -21
- package/dist/auth/EsiTokenManager.d.ts +62 -21
- package/dist/auth/EsiTokenManager.d.ts.map +1 -1
- package/dist/auth/EveSsoClient.d.mts +9 -9
- package/dist/auth/EveSsoClient.d.ts +9 -9
- package/dist/auth/EveSsoClient.d.ts.map +1 -1
- package/dist/auth/errors.d.mts +2 -2
- package/dist/auth/errors.d.ts +2 -2
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/jwt.d.mts +7 -7
- package/dist/auth/jwt.d.ts +7 -7
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/storage/FileTokenStorage.d.mts +1 -1
- package/dist/auth/storage/FileTokenStorage.d.ts +1 -1
- package/dist/auth/storage/FileTokenStorage.d.ts.map +1 -1
- package/dist/{chunk-BBSHKVPI.js → chunk-CM63VGGF.js} +1 -1
- package/dist/chunk-CM63VGGF.js.map +1 -0
- package/dist/chunk-DFRTIZK4.js +275 -0
- package/dist/chunk-DFRTIZK4.js.map +1 -0
- package/dist/{chunk-VZS32UQ3.mjs → chunk-HXS7ZVEL.mjs} +129 -28
- package/dist/chunk-HXS7ZVEL.mjs.map +1 -0
- package/dist/chunk-JNFQXEWZ.mjs +275 -0
- package/dist/chunk-JNFQXEWZ.mjs.map +1 -0
- package/dist/chunk-KIY3XA5Q.mjs +2980 -0
- package/dist/chunk-KIY3XA5Q.mjs.map +1 -0
- package/dist/{chunk-R7D7M2LQ.mjs → chunk-MGOE2YNH.mjs} +1 -1
- package/dist/chunk-MGOE2YNH.mjs.map +1 -0
- package/dist/{chunk-SAQBXXTM.js → chunk-MRKZ55XI.js} +130 -29
- package/dist/chunk-MRKZ55XI.js.map +1 -0
- package/dist/chunk-NKFIHGC6.js +2980 -0
- package/dist/chunk-NKFIHGC6.js.map +1 -0
- package/dist/{chunk-MSJHIJXA.js → chunk-S73PKM2Y.js} +20 -5
- package/dist/chunk-S73PKM2Y.js.map +1 -0
- package/dist/{chunk-3ZI5A37L.mjs → chunk-YUHGSPQ7.mjs} +19 -4
- package/dist/chunk-YUHGSPQ7.mjs.map +1 -0
- package/dist/client/identity.d.mts +20 -0
- package/dist/client/identity.d.ts +20 -0
- package/dist/client/identity.d.ts.map +1 -0
- package/dist/client/index.d.mts +11 -0
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +6607 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/index.mjs +6607 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/client/runtime.d.mts +67 -0
- package/dist/client/runtime.d.ts +67 -0
- package/dist/client/runtime.d.ts.map +1 -0
- package/dist/clients/BaseEsiClient.d.ts.map +1 -1
- package/dist/clients/ClientRegistry.d.mts +45 -0
- package/dist/clients/ClientRegistry.d.ts +45 -0
- package/dist/clients/ClientRegistry.d.ts.map +1 -0
- package/dist/clients/CorporationsClient.d.mts +3 -3
- package/dist/clients/CorporationsClient.d.ts +3 -3
- package/dist/clients/CorporationsClient.d.ts.map +1 -1
- package/dist/clients/MailClient.d.mts +2 -2
- package/dist/clients/MailClient.d.ts +2 -2
- package/dist/clients/MailClient.d.ts.map +1 -1
- package/dist/clients/MetaClient.d.mts +3 -2
- package/dist/clients/MetaClient.d.ts +3 -2
- package/dist/clients/MetaClient.d.ts.map +1 -1
- package/dist/clients/MilitaryCampaignsClient.d.mts +14 -7
- package/dist/clients/MilitaryCampaignsClient.d.ts +14 -7
- package/dist/clients/MilitaryCampaignsClient.d.ts.map +1 -1
- package/dist/clients/RouteClient.d.mts +4 -4
- package/dist/clients/RouteClient.d.ts +4 -4
- package/dist/clients/RouteClient.d.ts.map +1 -1
- package/dist/clients/SkillsClient.d.mts +1 -1
- package/dist/clients/SkillsClient.d.ts +1 -1
- package/dist/clients/SkillsClient.d.ts.map +1 -1
- package/dist/clients/SkyhooksClient.d.mts +4 -3
- package/dist/clients/SkyhooksClient.d.ts +4 -3
- package/dist/clients/SkyhooksClient.d.ts.map +1 -1
- package/dist/core/ApiClient.d.mts +11 -0
- package/dist/core/ApiClient.d.ts +11 -0
- package/dist/core/ApiClient.d.ts.map +1 -1
- package/dist/core/ApiClientBuilder.d.ts.map +1 -1
- package/dist/core/ApiRequestHandler.d.ts +2 -1
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/BatchRequestHandler.d.mts +13 -2
- package/dist/core/BatchRequestHandler.d.ts +13 -2
- package/dist/core/BatchRequestHandler.d.ts.map +1 -1
- package/dist/core/EsiClientConfig.d.mts +60 -0
- package/dist/core/EsiClientConfig.d.ts +60 -0
- package/dist/core/EsiClientConfig.d.ts.map +1 -0
- package/dist/core/RetryStrategy.d.mts +3 -3
- package/dist/core/RetryStrategy.d.ts +3 -3
- package/dist/core/RetryStrategy.d.ts.map +1 -1
- package/dist/core/cache/ETagCacheManager.d.mts +9 -4
- package/dist/core/cache/ETagCacheManager.d.ts +9 -4
- package/dist/core/cache/ETagCacheManager.d.ts.map +1 -1
- package/dist/core/cache/cacheKey.d.ts +31 -6
- package/dist/core/cache/cacheKey.d.ts.map +1 -1
- package/dist/core/circuitBreaker/CircuitBreaker.d.mts +8 -12
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts +8 -12
- package/dist/core/circuitBreaker/CircuitBreaker.d.ts.map +1 -1
- package/dist/core/clock.d.ts +8 -0
- package/dist/core/clock.d.ts.map +1 -0
- package/dist/core/configureApiClient.d.mts +1 -1
- package/dist/core/configureApiClient.d.ts +1 -1
- package/dist/core/configureApiClient.d.ts.map +1 -1
- package/dist/core/constants.d.ts +3 -3
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/endpoints/EndpointDefinition.d.mts +17 -0
- package/dist/core/endpoints/EndpointDefinition.d.ts +17 -0
- package/dist/core/endpoints/EndpointDefinition.d.ts.map +1 -1
- package/dist/core/endpoints/assetEndpoints.d.mts +12 -0
- package/dist/core/endpoints/assetEndpoints.d.ts +12 -0
- package/dist/core/endpoints/assetEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/characterEndpoints.d.mts +10 -0
- package/dist/core/endpoints/characterEndpoints.d.ts +10 -0
- package/dist/core/endpoints/characterEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/contactEndpoints.d.mts +1 -0
- package/dist/core/endpoints/contactEndpoints.d.ts +1 -0
- package/dist/core/endpoints/contactEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/contractEndpoints.d.mts +2 -0
- package/dist/core/endpoints/contractEndpoints.d.ts +2 -0
- package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationEndpoints.d.mts +16 -3
- package/dist/core/endpoints/corporationEndpoints.d.ts +16 -3
- package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/createClient.d.mts +2 -2
- package/dist/core/endpoints/createClient.d.ts +2 -2
- package/dist/core/endpoints/createClient.d.ts.map +1 -1
- package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -1
- package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -1
- package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -1
- package/dist/core/endpoints/fittingEndpoints.d.mts +3 -0
- package/dist/core/endpoints/fittingEndpoints.d.ts +3 -0
- package/dist/core/endpoints/fittingEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fleetEndpoints.d.mts +6 -0
- package/dist/core/endpoints/fleetEndpoints.d.ts +6 -0
- package/dist/core/endpoints/fleetEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/industryEndpoints.d.mts +2 -2
- package/dist/core/endpoints/industryEndpoints.d.ts +2 -2
- package/dist/core/endpoints/mailEndpoints.d.mts +2 -0
- package/dist/core/endpoints/mailEndpoints.d.ts +2 -0
- package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.d.mts +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +1 -1
- package/dist/core/endpoints/metaEndpoints.d.mts +23 -8
- package/dist/core/endpoints/metaEndpoints.d.ts +23 -8
- package/dist/core/endpoints/metaEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/militaryCampaignEndpoints.d.mts +78 -49
- package/dist/core/endpoints/militaryCampaignEndpoints.d.ts +78 -49
- package/dist/core/endpoints/militaryCampaignEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/paragonHubEndpoints.d.mts +5 -5
- package/dist/core/endpoints/paragonHubEndpoints.d.ts +5 -5
- package/dist/core/endpoints/skyhookEndpoints.d.mts +10 -8
- package/dist/core/endpoints/skyhookEndpoints.d.ts +10 -8
- package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
- package/dist/core/logger/DefaultLogger.d.mts +20 -1
- package/dist/core/logger/DefaultLogger.d.ts +20 -1
- package/dist/core/logger/DefaultLogger.d.ts.map +1 -1
- package/dist/core/logger/ILogger.d.mts +9 -0
- package/dist/core/logger/ILogger.d.ts +9 -0
- package/dist/core/logger/ILogger.d.ts.map +1 -1
- package/dist/core/logger/NoopLogger.d.ts.map +1 -1
- package/dist/core/logger/clientLog.d.ts.map +1 -1
- package/dist/core/logger/loggerUtil.d.ts.map +1 -1
- package/dist/core/logger/redactLog.d.ts +23 -0
- package/dist/core/logger/redactLog.d.ts.map +1 -0
- package/dist/core/logger/resolveLogger.d.ts +3 -3
- package/dist/core/logger/resolveLogger.d.ts.map +1 -1
- package/dist/core/pagination/AsyncPaginationIterator.d.ts.map +1 -1
- package/dist/core/pagination/CursorPaginationHandler.d.mts +2 -1
- package/dist/core/pagination/CursorPaginationHandler.d.ts +2 -1
- package/dist/core/pagination/CursorPaginationHandler.d.ts.map +1 -1
- package/dist/core/ports/CacheStore.d.mts +32 -0
- package/dist/core/ports/CacheStore.d.ts +32 -0
- package/dist/core/ports/CacheStore.d.ts.map +1 -0
- package/dist/core/ports/Clock.d.mts +13 -0
- package/dist/core/ports/Clock.d.ts +13 -0
- package/dist/core/ports/Clock.d.ts.map +1 -0
- package/dist/core/ports/HttpTransport.d.mts +7 -0
- package/dist/core/ports/HttpTransport.d.ts +7 -0
- package/dist/core/ports/HttpTransport.d.ts.map +1 -0
- package/dist/core/ports/Identity.d.mts +31 -0
- package/dist/core/ports/Identity.d.ts +31 -0
- package/dist/core/ports/Identity.d.ts.map +1 -0
- package/dist/core/ports/Logger.d.mts +17 -0
- package/dist/core/ports/Logger.d.ts +17 -0
- package/dist/core/ports/Logger.d.ts.map +1 -0
- package/dist/core/ports/OperationTransport.d.mts +42 -0
- package/dist/core/ports/OperationTransport.d.ts +42 -0
- package/dist/core/ports/OperationTransport.d.ts.map +1 -0
- package/dist/core/ports/TokenProvider.d.mts +7 -0
- package/dist/core/ports/TokenProvider.d.ts +7 -0
- package/dist/core/ports/TokenProvider.d.ts.map +1 -0
- package/dist/core/ports/index.d.mts +14 -0
- package/dist/core/ports/index.d.ts +14 -0
- package/dist/core/ports/index.d.ts.map +1 -0
- package/dist/core/rateLimiter/RateLimiter.d.mts +11 -4
- package/dist/core/rateLimiter/RateLimiter.d.ts +11 -4
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/requestPipeline/cachePolicy.d.ts +5 -3
- package/dist/core/requestPipeline/cachePolicy.d.ts.map +1 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts +3 -1
- package/dist/core/requestPipeline/fetchExecution.d.ts.map +1 -1
- package/dist/core/requestPipeline/headers.d.ts +1 -1
- package/dist/core/requestPipeline/headers.d.ts.map +1 -1
- package/dist/core/requestPipeline/index.d.ts +3 -5
- 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 +3 -3
- package/dist/core/requestPipeline/statusHandling.d.ts.map +1 -1
- package/dist/core/util/callerIdentity.d.ts +10 -0
- package/dist/core/util/callerIdentity.d.ts.map +1 -0
- package/dist/core/util/concurrency.d.ts +2 -2
- package/dist/core/util/concurrency.d.ts.map +1 -1
- package/dist/core/util/error.d.mts +92 -3
- package/dist/core/util/error.d.ts +92 -3
- package/dist/core/util/error.d.ts.map +1 -1
- package/dist/core/util/retry.d.mts +4 -4
- package/dist/core/util/retry.d.ts +4 -4
- package/dist/core/util/retry.d.ts.map +1 -1
- package/dist/core/util/validation.d.ts +6 -0
- package/dist/core/util/validation.d.ts.map +1 -1
- package/dist/errors.d.mts +2 -3
- package/dist/errors.d.ts +2 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +29 -3
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +28 -2
- package/dist/generated/operations.generated.d.mts +9379 -0
- package/dist/generated/operations.generated.d.ts +9379 -0
- package/dist/generated/operations.generated.d.ts.map +1 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +699 -2865
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +359 -2525
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/character.d.mts +5 -0
- package/dist/schemas/character.d.ts +5 -0
- package/dist/schemas/character.d.ts.map +1 -1
- package/dist/schemas/contacts.d.mts +2 -0
- package/dist/schemas/contacts.d.ts +2 -0
- package/dist/schemas/contacts.d.ts.map +1 -1
- package/dist/schemas/corporation.d.mts +24 -3
- package/dist/schemas/corporation.d.ts +24 -3
- package/dist/schemas/corporation.d.ts.map +1 -1
- package/dist/schemas/fittings.d.mts +4 -0
- package/dist/schemas/fittings.d.ts +4 -0
- package/dist/schemas/fittings.d.ts.map +1 -1
- package/dist/schemas/fleet.d.mts +8 -0
- package/dist/schemas/fleet.d.ts +8 -0
- package/dist/schemas/fleet.d.ts.map +1 -1
- package/dist/schemas/index.js +24 -2
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/index.mjs +23 -1
- package/dist/schemas/industry.d.mts +2 -2
- package/dist/schemas/industry.d.ts +2 -2
- package/dist/schemas/mail.d.mts +4 -0
- package/dist/schemas/mail.d.ts +4 -0
- package/dist/schemas/mail.d.ts.map +1 -1
- package/dist/schemas/mercenary.d.mts +1 -1
- package/dist/schemas/mercenary.d.ts +1 -1
- package/dist/schemas/meta.d.mts +18 -9
- package/dist/schemas/meta.d.ts +18 -9
- package/dist/schemas/meta.d.ts.map +1 -1
- package/dist/schemas/military-campaigns.d.mts +54 -10
- package/dist/schemas/military-campaigns.d.ts +54 -10
- package/dist/schemas/military-campaigns.d.ts.map +1 -1
- package/dist/schemas/paragon-hub.d.mts +4 -4
- package/dist/schemas/paragon-hub.d.ts +4 -4
- package/dist/schemas/skyhooks.d.mts +18 -6
- package/dist/schemas/skyhooks.d.ts +18 -6
- package/dist/schemas/skyhooks.d.ts.map +1 -1
- package/dist/sde/clock.d.ts +11 -0
- package/dist/sde/clock.d.ts.map +1 -0
- package/dist/sde/domain/characters/schemas.d.ts +149 -0
- package/dist/sde/domain/characters/schemas.d.ts.map +1 -0
- package/dist/sde/domain/characters/types.d.mts +163 -0
- package/dist/sde/domain/characters/types.d.ts +163 -0
- package/dist/sde/domain/characters/types.d.ts.map +1 -0
- package/dist/sde/domain/content/schemas.d.ts +84 -0
- package/dist/sde/domain/content/schemas.d.ts.map +1 -0
- package/dist/sde/domain/content/types.d.mts +91 -0
- package/dist/sde/domain/content/types.d.ts +91 -0
- package/dist/sde/domain/content/types.d.ts.map +1 -0
- package/dist/sde/domain/corporations/schemas.d.ts +113 -0
- package/dist/sde/domain/corporations/schemas.d.ts.map +1 -0
- package/dist/sde/domain/corporations/types.d.mts +118 -0
- package/dist/sde/domain/corporations/types.d.ts +118 -0
- package/dist/sde/domain/corporations/types.d.ts.map +1 -0
- package/dist/sde/domain/dogma/schemas.d.ts +76 -0
- package/dist/sde/domain/dogma/schemas.d.ts.map +1 -0
- package/dist/sde/domain/dogma/types.d.mts +80 -0
- package/dist/sde/domain/dogma/types.d.ts +80 -0
- package/dist/sde/domain/dogma/types.d.ts.map +1 -0
- package/dist/sde/domain/industry/schemas.d.ts +204 -0
- package/dist/sde/domain/industry/schemas.d.ts.map +1 -0
- package/dist/sde/domain/industry/types.d.mts +88 -0
- package/dist/sde/domain/industry/types.d.ts +88 -0
- package/dist/sde/domain/industry/types.d.ts.map +1 -0
- package/dist/sde/domain/market/schemas.d.ts +24 -0
- package/dist/sde/domain/market/schemas.d.ts.map +1 -0
- package/dist/sde/domain/market/types.d.mts +25 -0
- package/dist/sde/domain/market/types.d.ts +25 -0
- package/dist/sde/domain/market/types.d.ts.map +1 -0
- package/dist/sde/domain/schemas.d.ts +15 -0
- package/dist/sde/domain/schemas.d.ts.map +1 -0
- package/dist/sde/domain/skins/schemas.d.ts +109 -0
- package/dist/sde/domain/skins/schemas.d.ts.map +1 -0
- package/dist/sde/domain/skins/types.d.mts +121 -0
- package/dist/sde/domain/skins/types.d.ts +121 -0
- package/dist/sde/domain/skins/types.d.ts.map +1 -0
- package/dist/sde/domain/types/schemas.d.ts +163 -0
- package/dist/sde/domain/types/schemas.d.ts.map +1 -0
- package/dist/sde/domain/types/types.d.mts +182 -0
- package/dist/sde/domain/types/types.d.ts +182 -0
- package/dist/sde/domain/types/types.d.ts.map +1 -0
- package/dist/sde/domain/types.d.mts +16 -0
- package/dist/sde/domain/types.d.ts +16 -0
- package/dist/sde/domain/types.d.ts.map +1 -0
- package/dist/sde/domain/ui/schemas.d.ts +42 -0
- package/dist/sde/domain/ui/schemas.d.ts.map +1 -0
- package/dist/sde/domain/ui/types.d.mts +45 -0
- package/dist/sde/domain/ui/types.d.ts +45 -0
- package/dist/sde/domain/ui/types.d.ts.map +1 -0
- package/dist/sde/domain/universe/schemas.d.ts +239 -0
- package/dist/sde/domain/universe/schemas.d.ts.map +1 -0
- package/dist/sde/domain/universe/types.d.mts +206 -0
- package/dist/sde/domain/universe/types.d.ts +206 -0
- package/dist/sde/domain/universe/types.d.ts.map +1 -0
- package/dist/sde/domain/version/schemas.d.ts +11 -0
- package/dist/sde/domain/version/schemas.d.ts.map +1 -0
- package/dist/sde/errors.d.mts +1 -1
- package/dist/sde/errors.d.ts +1 -1
- package/dist/sde/errors.d.ts.map +1 -1
- package/dist/sde/index.d.mts +7 -6
- package/dist/sde/index.d.ts +7 -6
- package/dist/sde/index.d.ts.map +1 -1
- package/dist/sde/index.js +31 -21
- package/dist/sde/index.js.map +1 -1
- package/dist/sde/index.mjs +26 -16
- package/dist/sde/index.mjs.map +1 -1
- package/dist/sde/ingestion/SdeDatabaseBuilder.d.ts +11 -0
- package/dist/sde/ingestion/SdeDatabaseBuilder.d.ts.map +1 -1
- package/dist/sde/ingestion/SdeDownloader.d.ts +2 -2
- package/dist/sde/ingestion/SdeDownloader.d.ts.map +1 -1
- package/dist/sde/memory.d.mts +5 -5
- package/dist/sde/memory.d.ts +5 -5
- package/dist/sde/memory.d.ts.map +1 -1
- package/dist/sde/memory.js +2 -2
- package/dist/sde/memory.mjs +1 -1
- package/dist/sde/{IStaticDataProvider.d.mts → ports/IStaticDataProvider.d.mts} +9 -2
- package/dist/sde/{IStaticDataProvider.d.ts → ports/IStaticDataProvider.d.ts} +9 -2
- package/dist/sde/ports/IStaticDataProvider.d.ts.map +1 -0
- package/dist/sde/{MemorySdeProvider.d.mts → providers/memory/MemorySdeProvider.d.mts} +3 -3
- package/dist/sde/{MemorySdeProvider.d.ts → providers/memory/MemorySdeProvider.d.ts} +3 -3
- package/dist/sde/providers/memory/MemorySdeProvider.d.ts.map +1 -0
- package/dist/sde/providers/order.d.ts +10 -0
- package/dist/sde/providers/order.d.ts.map +1 -0
- package/dist/sde/{SdeDataProvider.d.mts → providers/yaml/SdeDataProvider.d.mts} +14 -5
- package/dist/sde/{SdeDataProvider.d.ts → providers/yaml/SdeDataProvider.d.ts} +14 -5
- package/dist/sde/providers/yaml/SdeDataProvider.d.ts.map +1 -0
- package/dist/sde/{SdeTestDataFactory.d.mts → testing/SdeTestDataFactory.d.mts} +3 -3
- package/dist/sde/{SdeTestDataFactory.d.ts → testing/SdeTestDataFactory.d.ts} +3 -3
- package/dist/sde/testing/SdeTestDataFactory.d.ts.map +1 -0
- package/dist/sde/version.d.mts +1 -1
- package/dist/sde/version.d.ts +1 -1
- package/dist/sde/version.d.ts.map +1 -1
- package/dist/testing/TestDataFactory.d.mts +21 -3
- package/dist/testing/TestDataFactory.d.ts +21 -3
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/testing/index.d.mts +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +157 -10
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.mjs +155 -8
- package/dist/testing/index.mjs.map +1 -1
- package/dist/testing/mockTransport.d.mts +87 -0
- package/dist/testing/mockTransport.d.ts +87 -0
- package/dist/testing/mockTransport.d.ts.map +1 -0
- package/dist/types/generated/esi-spec.generated.d.mts +230 -10
- package/dist/types/generated/esi-spec.generated.d.ts +230 -10
- package/dist/types/generated/esi-spec.generated.d.ts.map +1 -1
- package/dist/types/military-campaigns.d.mts +4 -1
- package/dist/types/military-campaigns.d.ts +4 -1
- package/dist/types/military-campaigns.d.ts.map +1 -1
- package/dist/types/skyhooks.d.mts +2 -1
- package/dist/types/skyhooks.d.ts +2 -1
- package/dist/types/skyhooks.d.ts.map +1 -1
- package/package.json +167 -131
- package/dist/chunk-3ZI5A37L.mjs.map +0 -1
- package/dist/chunk-BBSHKVPI.js.map +0 -1
- package/dist/chunk-D5L5HZVF.mjs +0 -417
- package/dist/chunk-D5L5HZVF.mjs.map +0 -1
- package/dist/chunk-MSJHIJXA.js.map +0 -1
- package/dist/chunk-R7D7M2LQ.mjs.map +0 -1
- package/dist/chunk-SAQBXXTM.js.map +0 -1
- package/dist/chunk-VZS32UQ3.mjs.map +0 -1
- package/dist/chunk-XIB2OXEZ.js +0 -417
- package/dist/chunk-XIB2OXEZ.js.map +0 -1
- package/dist/config/jest/globalSetup.d.ts +0 -2
- package/dist/config/jest/globalSetup.d.ts.map +0 -1
- package/dist/config/jest/globalTeardown.d.ts +0 -2
- package/dist/config/jest/globalTeardown.d.ts.map +0 -1
- package/dist/config/jest/jest.setup.d.ts +0 -3
- package/dist/config/jest/jest.setup.d.ts.map +0 -1
- package/dist/core/ClientRegistry.d.mts +0 -45
- package/dist/core/ClientRegistry.d.ts +0 -45
- package/dist/core/ClientRegistry.d.ts.map +0 -1
- package/dist/core/logger/logger.d.ts +0 -12
- package/dist/core/logger/logger.d.ts.map +0 -1
- package/dist/sde/IStaticDataProvider.d.ts.map +0 -1
- package/dist/sde/MemorySdeProvider.d.ts.map +0 -1
- package/dist/sde/SdeDataProvider.d.ts.map +0 -1
- package/dist/sde/SdeTestDataFactory.d.ts.map +0 -1
- package/dist/sde/schemas.d.ts +0 -1121
- package/dist/sde/schemas.d.ts.map +0 -1
- package/dist/sde/types.d.mts +0 -1039
- package/dist/sde/types.d.ts +0 -1039
- package/dist/sde/types.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,26 +5,316 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [11.0.0](https://github.com/lgriffin/ESI.ts/compare/v10.2.3...v11.0.0) (2026-09-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### ⚠ BREAKING CHANGES
|
|
12
|
+
|
|
13
|
+
* Node 18 and Node 20 are no longer supported; both are end of life. package.json now declares "engines": { "node": ">=22.12.0" } and CI no longer tests older lines. Consumers on Node 18 or 20 should stay on 10.x or upgrade Node to 22.12 or later.
|
|
14
|
+
* **errors:** EsiValidationError, CircuitOpenError and the fault classes report retryable false and isTimeout() false; before, every status-0 error reported true for both. CircuitOpenError and the former plain [CODE] errors are now EsiError instances, so isEsiError() is true for them. A fault raised inside a request loses its extra "[ESIJS_ERROR] " prefix. The internal buildError helper is removed.
|
|
15
|
+
* **schemas:** meta.getChangelog() resolves to { changelog } instead of the bare per-date map, and MetaChangelogEntry has type in place of is_breaking. Read result.changelog[date] where you read result[date], and compare entry.type === 'breaking' where you read entry.is_breaking. Before this change the method could not succeed against live ESI.
|
|
16
|
+
* **schemas:** CorporationInfo.ceo_id, creator_id and tax_rate are now optional; read tax_rates.isk when tax_rate is absent. MetaClient.getName() returns { current, history } instead of { name }; read `current`. MilitaryCampaignsClient.getMilitaryCampaigns() returns { campaigns }, getMilitaryCampaignObjectives() and getCharacterMilitaryCampaignObjectives() return { objectives, cursor }, and campaign and objective fields are renamed to ESI's: campaign_id/objective_id -> id, start_time -> started, finish_time -> finished, committed -> is_committed, contribution -> contributed. These routes answered 404 before the default compatibility date reached 2026-08-18, so no working call changes shape.
|
|
17
|
+
* **core:** requests that do not set compatibilityDate now ask ESI for its 2026-08-18 behaviour instead of 2026-05-19. Routes whose response changed between those dates return the newer shape. To keep the old behaviour, pass `compatibilityDate: '2026-05-19'` to the EsiClient config.
|
|
18
|
+
* **schemas:** SkyhooksClient.getRaidableSkyhooks() resolves to RaidableSkyhooksResponse ({ skyhooks: RaidableSkyhook[] }) instead of RaidableSkyhook[], and RaidableSkyhook/RaidableSkyhookSchema now have planet_id, solar_system_id and theft_vulnerability { start, end } in place of structure_id, system_id, corporation_id, alliance_id, is_raidable and raidable_at. The old method threw on every live call, so no working code depended on it. Migrate by reading `.skyhooks` from the result and treating a skyhook as raidable while now is between theft_vulnerability.start and .end. TestDataFactory.createRaidableSkyhook builds the new shape; RaidableSkyhooksResponseSchema is new.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
* **charter:** audit CHARTER.md's requirement blocks like feature files ([#485](https://github.com/lgriffin/ESI.ts/issues/485)) ([33c9a87](https://github.com/lgriffin/ESI.ts/commit/33c9a87b4cc85d42ec875b4df89530af5d1bb7ad))
|
|
23
|
+
* **ci:** nightly live-health smoke against Tranquility with an authenticated route ([#539](https://github.com/lgriffin/ESI.ts/issues/539)) ([4fa9913](https://github.com/lgriffin/ESI.ts/commit/4fa99131afea7e20c36587eb13ad856ef87bd0b9))
|
|
24
|
+
* **client:** add the four missing CustomEsiClient getters ([3ddff8f](https://github.com/lgriffin/ESI.ts/commit/3ddff8fcc96ffad17f9c258de95e7b7369600bf2)), closes [#267](https://github.com/lgriffin/ESI.ts/issues/267)
|
|
25
|
+
* **client:** deprecate EsiApiFactory's named methods and EsiTokenManager.createClient ([2ec309d](https://github.com/lgriffin/ESI.ts/commit/2ec309dd4d1b0dd79bda157146dac0e48c696951))
|
|
26
|
+
* **client:** one shared runtime with a public view and per-identity views ([#472](https://github.com/lgriffin/ESI.ts/issues/472)) ([a8facde](https://github.com/lgriffin/ESI.ts/commit/a8facded382c3cb20d5e63e64ab0033f7b1c5f0b))
|
|
27
|
+
* **client:** per-client tenant (X-Tenant) and user agent options ([d006387](https://github.com/lgriffin/ESI.ts/commit/d00638705f2ec9e83ed831520956ff4b78000f2b))
|
|
28
|
+
* **ears:** list the exclusion register in the EARS report ([#484](https://github.com/lgriffin/ESI.ts/issues/484)) ([749d428](https://github.com/lgriffin/ESI.ts/commit/749d428c2af51fa3aceb850d3cce8f238cabb78e))
|
|
29
|
+
* **errors:** every pipeline failure is a typed EsiError ([61cbc30](https://github.com/lgriffin/ESI.ts/commit/61cbc30c61b7051c0edff7741684469d08b4917e)), closes [#295](https://github.com/lgriffin/ESI.ts/issues/295) [#266](https://github.com/lgriffin/ESI.ts/issues/266)
|
|
30
|
+
* **generator:** scope tree generated from path prefixes ([d83497e](https://github.com/lgriffin/ESI.ts/commit/d83497e332a325b51174add8e4e1fd855a011e56))
|
|
31
|
+
* **logger:** accept 'silent' for EsiClientConfig.logLevel ([518ca9b](https://github.com/lgriffin/ESI.ts/commit/518ca9bbe4e2ac20bf1c4d6b6d70ab28d622f2df))
|
|
32
|
+
* **logger:** redact URLs at the logger and route every line to the per-client logger ([50231fc](https://github.com/lgriffin/ESI.ts/commit/50231fc6c7263f979fc6dfb0a9a639504fcc4782))
|
|
33
|
+
* **logger:** route every pipeline log line to the per-client logger ([ca872a7](https://github.com/lgriffin/ESI.ts/commit/ca872a75c56c8b62525b0615d334b37daec6a14d)), closes [#296](https://github.com/lgriffin/ESI.ts/issues/296)
|
|
34
|
+
* **military-campaigns:** page through objective listings with after, before and limit ([01ecc40](https://github.com/lgriffin/ESI.ts/commit/01ecc40fd6c1961347612f319e98d2fc82165827))
|
|
35
|
+
* require Node 22 ([3709c39](https://github.com/lgriffin/ESI.ts/commit/3709c3909124456d8d3b8d2452233ee8b56201ec))
|
|
36
|
+
* **schemas:** validate every mutation that returns a body ([81a2e6b](https://github.com/lgriffin/ESI.ts/commit/81a2e6b89f073c8a18d22ff5f7528b287d1ed47e)), closes [#298](https://github.com/lgriffin/ESI.ts/issues/298)
|
|
37
|
+
* **sde:** inject the clock, mutate src/sde in its own shards and seed its floors ([#508](https://github.com/lgriffin/ESI.ts/issues/508)) ([18d69cc](https://github.com/lgriffin/ESI.ts/commit/18d69cccaa984725c880f3d643a6c2254e102306)), closes [#448](https://github.com/lgriffin/ESI.ts/issues/448)
|
|
38
|
+
* **testing:** createMockTransport for an application's own tests ([#478](https://github.com/lgriffin/ESI.ts/issues/478)) ([7982482](https://github.com/lgriffin/ESI.ts/commit/7982482d2e030ff05f3f58350e3793f63a557909))
|
|
39
|
+
* **types:** accept undefined in the remaining option bags ([6fc5033](https://github.com/lgriffin/ESI.ts/commit/6fc5033428958e441f591829e37954d6a0e9da54))
|
|
40
|
+
* **types:** compile src with exactOptionalPropertyTypes ([56dbd0a](https://github.com/lgriffin/ESI.ts/commit/56dbd0a8c1c70e34e239347179871b06de7bc254))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
* **adapters:** reject a non-finite query number before sending it ([3740c44](https://github.com/lgriffin/ESI.ts/commit/3740c4416a296bf8caf2f37235425c3a23abc589))
|
|
46
|
+
* **ci:** close a drift PR only after a clean run that contradicts it ([85fec83](https://github.com/lgriffin/ESI.ts/commit/85fec832671fd97369b37b455080dcfc44718810))
|
|
47
|
+
* **clients:** refuse a text endpoint in the page helpers ([2976cb0](https://github.com/lgriffin/ESI.ts/commit/2976cb0ae75be55ade8227fcec2513448bd4701a))
|
|
48
|
+
* **client:** validate tenant and user agent in their setters ([1f67db9](https://github.com/lgriffin/ESI.ts/commit/1f67db907c777b1cd82d678b35fc487abef16cbb))
|
|
49
|
+
* **contracts:** resolve public items and bids with [] when ESI sends no content ([8800141](https://github.com/lgriffin/ESI.ts/commit/8800141fc7cd7abb97d1bde21ec35dffcdb033bb)), closes [#433](https://github.com/lgriffin/ESI.ts/issues/433)
|
|
50
|
+
* **contract:** stop flagging optional fields as payload drift ([c6d0f2d](https://github.com/lgriffin/ESI.ts/commit/c6d0f2d6957ba4f88a5acfb0ae308316111b8789))
|
|
51
|
+
* **core:** key the ETag cache and deduplicator by character, not by token ([#465](https://github.com/lgriffin/ESI.ts/issues/465)) ([e68bdd5](https://github.com/lgriffin/ESI.ts/commit/e68bdd54ae54e6f27754b605694e115df5130bbe))
|
|
52
|
+
* **core:** pagination retries use the caller's method; cursor fetchAll rejects instead of truncating ([913631d](https://github.com/lgriffin/ESI.ts/commit/913631d3f499b836b77319a55efe261aa21f8e0f))
|
|
53
|
+
* **core:** send compatibility date 2026-08-18 by default ([ed9cc76](https://github.com/lgriffin/ESI.ts/commit/ed9cc763446997b012a53f8bd7cd9e6e194378f7))
|
|
54
|
+
* **core:** send streamed and fetch-all pages without If-None-Match ([624b87b](https://github.com/lgriffin/ESI.ts/commit/624b87bbe35a5ccd504db41d61ccd24bedd50d56)), closes [#292](https://github.com/lgriffin/ESI.ts/issues/292)
|
|
55
|
+
* **deps:** move the better-sqlite3 dev dependency to 13 so Node 24 runs ([e01d858](https://github.com/lgriffin/ESI.ts/commit/e01d85895567e37a7f416a1785e4bb24f41edb01))
|
|
56
|
+
* **docs:** escape backslashes before pipes in example index cells ([4d536d3](https://github.com/lgriffin/ESI.ts/commit/4d536d315ff39833d31d0fe36bd77266bc177bd1))
|
|
57
|
+
* **docs:** list only real client calls and make the quick start runnable ([c2ea722](https://github.com/lgriffin/ESI.ts/commit/c2ea7229d476a439360d59e72384a6395ca7257b))
|
|
58
|
+
* **docs:** require the readme version marker and mask indented code ([4ee29e2](https://github.com/lgriffin/ESI.ts/commit/4ee29e28d74e3eb7c57016a9dea4b79f0e08feb2))
|
|
59
|
+
* **ears:** name the audit in the result line and widen the workflow paths ([2771a00](https://github.com/lgriffin/ESI.ts/commit/2771a00fe03ea93976ac78e1863dc301b8dbed92))
|
|
60
|
+
* **factory:** apply compatibilityDate to EsiApiFactory clients ([9686f6c](https://github.com/lgriffin/ESI.ts/commit/9686f6c936299fc750f1af169de06f9ab5f420af))
|
|
61
|
+
* **layout:** name the moved Stryker config in docs; check config/ script targets ([5f4606d](https://github.com/lgriffin/ESI.ts/commit/5f4606d7acc8b32eb7d136398e2881859fc450da))
|
|
62
|
+
* **logger:** build the lazy default logger once for saved methods ([856eb19](https://github.com/lgriffin/ESI.ts/commit/856eb19f0a81cfe461f13c21b907eeef1bfeb913))
|
|
63
|
+
* **logger:** redact query pairs in place, and the token manager's lines ([8efe745](https://github.com/lgriffin/ESI.ts/commit/8efe74540caf1b737d511bc7f7884d2e31fe05af)), closes [#296](https://github.com/lgriffin/ESI.ts/issues/296)
|
|
64
|
+
* **logger:** redact sensitive query parameters at the logger boundary ([91b9bbb](https://github.com/lgriffin/ESI.ts/commit/91b9bbbbeabf2403f493f0e22fd81e2b8b1f5a74)), closes [#296](https://github.com/lgriffin/ESI.ts/issues/296)
|
|
65
|
+
* **logger:** resolve the token manager's fallback logger at each call ([94fb313](https://github.com/lgriffin/ESI.ts/commit/94fb3139efff2a9c89c956151aefe5053530ef8e)), closes [#296](https://github.com/lgriffin/ESI.ts/issues/296)
|
|
66
|
+
* **mutation:** re-run the mutants a changed or deleted test covered ([#499](https://github.com/lgriffin/ESI.ts/issues/499)) ([afead13](https://github.com/lgriffin/ESI.ts/commit/afead130fb2c3d5213e5aefbb3ad1fd3c3792625))
|
|
67
|
+
* **mutation:** run the BDD dry run over every spec so step-library domains are scored ([#523](https://github.com/lgriffin/ESI.ts/issues/523)) ([fb4a210](https://github.com/lgriffin/ESI.ts/commit/fb4a2109bc1e98bfa0ecfde9961a29e1ac0666d8))
|
|
68
|
+
* **release:** drop a merge line only when its twin commit is listed ([4301db1](https://github.com/lgriffin/ESI.ts/commit/4301db1da60a3751a91b0571486785bb9ece654c))
|
|
69
|
+
* **schemas:** match getRaidableSkyhooks to the response ESI sends ([63115d6](https://github.com/lgriffin/ESI.ts/commit/63115d628481ac504bea1d9d9104b6cf2e27215c))
|
|
70
|
+
* **schemas:** match the responses ESI sends at compatibility date 2026-08-18 ([ee3e2f4](https://github.com/lgriffin/ESI.ts/commit/ee3e2f45e584fac3e663626c32522454baca5cff))
|
|
71
|
+
* **schemas:** require one of tax_rate or tax_rates on CorporationInfo ([2351c79](https://github.com/lgriffin/ESI.ts/commit/2351c79e63a86b2a6346f0955f3e74aa2c9f2f0b))
|
|
72
|
+
* **schemas:** return meta.getChangelog as ESI sends it ([b8ed1e4](https://github.com/lgriffin/ESI.ts/commit/b8ed1e42ea0fa50c29d6ff018cb9b3a1fe27bb3f))
|
|
73
|
+
* **sde:** return whole tables and foreign-key lists ordered by ID ([#516](https://github.com/lgriffin/ESI.ts/issues/516)) ([0ea8251](https://github.com/lgriffin/ESI.ts/commit/0ea8251e6b60b83f6df2c67966fd54f66717c2c3))
|
|
74
|
+
* **sde:** take the dogma ids from the record keys and fix the industry example ([#533](https://github.com/lgriffin/ESI.ts/issues/533)) ([9df53ee](https://github.com/lgriffin/ESI.ts/commit/9df53ee4017e2a91bc13a70c441809ee4814efb3))
|
|
75
|
+
* **security:** reject `.` and `..` as path parameters ([4ed42b1](https://github.com/lgriffin/ESI.ts/commit/4ed42b15b57683d42f9716e71aa75eae3e54e090))
|
|
76
|
+
* **validation:** reject path params whose string form is empty ([a98e7e1](https://github.com/lgriffin/ESI.ts/commit/a98e7e18235641a88b6bb44fbef75d58b6a0b90f))
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
|
|
81
|
+
* **adapters:** back the generated operations with the request pipeline ([33ec520](https://github.com/lgriffin/ESI.ts/commit/33ec5208062f333dc3c086df02218767aa92fc7e))
|
|
82
|
+
* **api:** regenerate the API report after merging master ([4571b88](https://github.com/lgriffin/ESI.ts/commit/4571b880ece64ecd102bd09ff28fa2cde102d623))
|
|
83
|
+
* **auth:** let token:create match an application's own localhost callback path ([#544](https://github.com/lgriffin/ESI.ts/issues/544)) ([e4daf98](https://github.com/lgriffin/ESI.ts/commit/e4daf9896cabf0d8a88112e610c9c91d0478ce34))
|
|
84
|
+
* **beads:** close the beads that GitHub and master have already settled ([65ac0ca](https://github.com/lgriffin/ESI.ts/commit/65ac0ca581af567f5be48400e72166448499737e))
|
|
85
|
+
* **beads:** export issues.jsonl automatically after bd writes ([8784b95](https://github.com/lgriffin/ESI.ts/commit/8784b95653cfc8c18f86110347d2d8a2a922c42d)), closes [#245](https://github.com/lgriffin/ESI.ts/issues/245)
|
|
86
|
+
* **ci:** make the pull-request mutation job advisory until the release gate ([#477](https://github.com/lgriffin/ESI.ts/issues/477)) ([60f07d5](https://github.com/lgriffin/ESI.ts/commit/60f07d59fd29bef16bdd35bdf3d14ab209061acb))
|
|
87
|
+
* **core:** add the TokenProvider, CacheStore, Logger, Clock and HttpTransport ports ([38c106c](https://github.com/lgriffin/ESI.ts/commit/38c106c72a589007cd364793175c9909c2939815))
|
|
88
|
+
* **core:** empty the layer baseline ([#480](https://github.com/lgriffin/ESI.ts/issues/480)) ([3095682](https://github.com/lgriffin/ESI.ts/commit/30956826cf5ee5652841843f20f15deb5773b108))
|
|
89
|
+
* **core:** remove the unreachable logger module and unused pipeline re-exports ([c5baf4d](https://github.com/lgriffin/ESI.ts/commit/c5baf4d06e8d221cd0bd3f3a2022f81034efa036))
|
|
90
|
+
* **deps:** bump astral-sh/setup-uv from 10.0.1 to 10.2.0 ([#438](https://github.com/lgriffin/ESI.ts/issues/438)) ([5d8cf3e](https://github.com/lgriffin/ESI.ts/commit/5d8cf3e447064d6c74d7795342c3773bec8db13d))
|
|
91
|
+
* **deps:** bump size-limit, @size-limit/esbuild and @size-limit/file to 13.0.3 ([9995662](https://github.com/lgriffin/ESI.ts/commit/99956625c5e0847e3f43fb557c7cff4cfb016777))
|
|
92
|
+
* **deps:** bump the minor group with 6 updates ([#436](https://github.com/lgriffin/ESI.ts/issues/436)) ([af26529](https://github.com/lgriffin/ESI.ts/commit/af2652980d70e067eebe411e6b66b736c38360b2))
|
|
93
|
+
* **deps:** pin the local Prism mock and give the fuzz run its own network ([b8eaf66](https://github.com/lgriffin/ESI.ts/commit/b8eaf66475638246159423961803b2ab8fafa8af))
|
|
94
|
+
* **deps:** remove unused devDependencies ([4510bfa](https://github.com/lgriffin/ESI.ts/commit/4510bfa9aa408216a4e9ee0fa18bb2f40e00c100))
|
|
95
|
+
* **deps:** run Prism from its Docker image and drop @stoplight/prism-cli ([db8e36c](https://github.com/lgriffin/ESI.ts/commit/db8e36cac59dc3ed82107ff0e82c7fb3a5b4a2aa))
|
|
96
|
+
* **docs:** strip heading tags to a fixed point in the slug helper ([139be4d](https://github.com/lgriffin/ESI.ts/commit/139be4dc0e2d9aad232f8412e4d13510fee99706))
|
|
97
|
+
* **layout:** drop formatting-only edits from the scripts move ([6228a4f](https://github.com/lgriffin/ESI.ts/commit/6228a4fe20fa3cc49df1d01f08c16a85de5f9fd7))
|
|
98
|
+
* **layout:** drop the spec-audit old-path fallback ([12f6f9c](https://github.com/lgriffin/ESI.ts/commit/12f6f9c820e59cc1d2e53915a0deb4a6145adc1d))
|
|
99
|
+
* **layout:** keep unrelated files byte-identical to master ([3d2273f](https://github.com/lgriffin/ESI.ts/commit/3d2273f3ddd8de116d23e5388baf6bd778ce98b0))
|
|
100
|
+
* **layout:** move Jest configs to config/jest/ and test setup to tests/setup/ ([04151d6](https://github.com/lgriffin/ESI.ts/commit/04151d69be480d2d958bc1a22ba41c9afcf789b5))
|
|
101
|
+
* **layout:** move lint rule configs to config/eslint/ ([f4043d6](https://github.com/lgriffin/ESI.ts/commit/f4043d629ea9865ec73ade057d01e10d32e252a8))
|
|
102
|
+
* **layout:** move root types/ to tests/types/; archive the v7 OpenAPI output doc ([7bfa83a](https://github.com/lgriffin/ESI.ts/commit/7bfa83a67beee8de04c7d79431e296e906953850))
|
|
103
|
+
* **layout:** move Stryker configs and mutation floors to config/mutation/ ([8ae9bdb](https://github.com/lgriffin/ESI.ts/commit/8ae9bdb159b16081a7778326ebf665fe6e785cfb))
|
|
104
|
+
* **layout:** split scripts/ into folders by job ([7be688b](https://github.com/lgriffin/ESI.ts/commit/7be688b3aa228ef2e8a8f0b1faf5a980a28e7c96))
|
|
105
|
+
* **lint:** enforce SDE isolation in both directions ([#462](https://github.com/lgriffin/ESI.ts/issues/462)) ([3d57e80](https://github.com/lgriffin/ESI.ts/commit/3d57e80dd0cc1d15129843a2940e3fdbacb18a1c))
|
|
106
|
+
* **logger:** build no pino logger at import; declare sideEffects false ([25c21d7](https://github.com/lgriffin/ESI.ts/commit/25c21d70ac9daf88044c7b30c691298ccdf8303c)), closes [#268](https://github.com/lgriffin/ESI.ts/issues/268)
|
|
107
|
+
* **logger:** skip a disabled level before redacting the line ([a21a283](https://github.com/lgriffin/ESI.ts/commit/a21a283541788cab0291b6bc2ce2923afc5b4311)), closes [#296](https://github.com/lgriffin/ESI.ts/issues/296)
|
|
108
|
+
* **meta:** route getOpenApiYaml through the request pipeline ([e06089e](https://github.com/lgriffin/ESI.ts/commit/e06089e6ef0d53bba44ae1846b911d0616e76d7b))
|
|
109
|
+
* **mutation:** exclude interface-only src/core/ports from unit mutation ([397c19b](https://github.com/lgriffin/ESI.ts/commit/397c19b4bb9dcffc81541d424fcd8748c5d1b724))
|
|
110
|
+
* **schema-drift:** leave text endpoints out of the drift comparison ([58f5f2a](https://github.com/lgriffin/ESI.ts/commit/58f5f2a84fc873fe90965abe95d43b12586a8816))
|
|
111
|
+
* **scripts:** fail validate:auth-scopes in both directions of DES-04 ([4dedff8](https://github.com/lgriffin/ESI.ts/commit/4dedff838482c637a933c5d5a7163458c0ec9d00))
|
|
112
|
+
* **sde:** split the module into ports, domain, providers, ingestion and testing ([#527](https://github.com/lgriffin/ESI.ts/issues/527)) ([1a08e19](https://github.com/lgriffin/ESI.ts/commit/1a08e19cdd18e6026dded276ea708827f66c3eb6))
|
|
113
|
+
* **security:** record the Scorecard at 8.3 and move the two checks the repository still could ([#541](https://github.com/lgriffin/ESI.ts/issues/541)) ([dd80b06](https://github.com/lgriffin/ESI.ts/commit/dd80b0676fa9dc52dab4684ee583690d637ece5e))
|
|
114
|
+
* **size:** raise the . budget to the size master has grown to ([4b08f3b](https://github.com/lgriffin/ESI.ts/commit/4b08f3b1ffc034fd4313ea82e86b9582e2139361))
|
|
115
|
+
* **size:** raise the . budget to the size master has grown to ([de48154](https://github.com/lgriffin/ESI.ts/commit/de48154119f72a653fc005572de409460581e50c))
|
|
116
|
+
* **size:** raise the ./schemas budget for the 2026-08-18 schemas ([579cbaa](https://github.com/lgriffin/ESI.ts/commit/579cbaa47a62c6a07e0f4f9efda65efe035adb0a))
|
|
117
|
+
* **skills:** bump ears-gherkin-dev to 1.0.1 for the Jest config path change ([289d966](https://github.com/lgriffin/ESI.ts/commit/289d966521cda408dce975aa9e54b60de5144c57))
|
|
118
|
+
* **skills:** bump ears-gherkin-dev version for moved script paths ([46b788c](https://github.com/lgriffin/ESI.ts/commit/46b788cc290f05ecd8673064a8afeccbac6e90c7))
|
|
119
|
+
* **spec:** fetch the vendored spec at COMPATIBILITY_DATE from CI ([273b4a5](https://github.com/lgriffin/ESI.ts/commit/273b4a5af51c325f023cbbebb3fc11ac8bb1641a))
|
|
120
|
+
* **spec:** gate IStaticDataProvider method coverage against the EARS specification ([#512](https://github.com/lgriffin/ESI.ts/issues/512)) ([d37ee05](https://github.com/lgriffin/ESI.ts/commit/d37ee0587eed5ecbd98474caf03d83bcded8f2ef))
|
|
121
|
+
* **spec:** generate typed operations for every ESI route from the vendored spec ([26ed8cf](https://github.com/lgriffin/ESI.ts/commit/26ed8cff74330e351d35d5b622bbcb8924e634e2))
|
|
122
|
+
* **spec:** generate types from the vendored snapshot in spec-refresh ([9d5264f](https://github.com/lgriffin/ESI.ts/commit/9d5264fa0bea76ef63af4fc57c9aa38daba53544))
|
|
123
|
+
* **spec:** record each operation's header parameters in its Meta ([259e60c](https://github.com/lgriffin/ESI.ts/commit/259e60c6eb11b99878c712a618e0e50afcf82663))
|
|
124
|
+
* **spec:** reject bad snapshot arguments and skip superseded refreshes ([ae7a58e](https://github.com/lgriffin/ESI.ts/commit/ae7a58e86c88e57b6892ebb81b4d70f2609a61fc))
|
|
125
|
+
* **spec:** vendor the ESI spec at 2026-05-19 and regenerate operations ([bc011ff](https://github.com/lgriffin/ESI.ts/commit/bc011ff7becd00356314c32ebe1af01e4c3209c0))
|
|
126
|
+
* **spec:** vendor the ESI spec at 2026-08-18 and regenerate from it ([252ca74](https://github.com/lgriffin/ESI.ts/commit/252ca749658c393ec18f2cd5773b85828157278c))
|
|
127
|
+
* **spec:** vendor the ESI spec at 2026-08-18 and regenerate from it ([797794c](https://github.com/lgriffin/ESI.ts/commit/797794c7aef9d535d02140843d7fdb50c018507d))
|
|
128
|
+
* **spec:** vendor the ESI spec at the date the client sends, fetched by CI ([73fd955](https://github.com/lgriffin/ESI.ts/commit/73fd9556624d35076849dedea0c8f35ad983c1bd))
|
|
129
|
+
* **types:** check isolatedDeclarations over the layers 11.0 exposes ([#482](https://github.com/lgriffin/ESI.ts/issues/482)) ([5c7a3b0](https://github.com/lgriffin/ESI.ts/commit/5c7a3b0a6e028db49df82c34f22cadc5ab0f5188))
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
### Documentation
|
|
133
|
+
|
|
134
|
+
* add the Phase 0 audit of code origin, operation coverage and gates ([6cf5a6e](https://github.com/lgriffin/ESI.ts/commit/6cf5a6e4f0ac00874257322d769ec8d08f6aecef))
|
|
135
|
+
* add the Phase 0 generator spike over five spec operations ([29113be](https://github.com/lgriffin/ESI.ts/commit/29113beb9b14e745287eb01ebac2a0cef71ceca9))
|
|
136
|
+
* **audit:** re-check route coverage against the spec at 2026-05-19 ([5dfc0a4](https://github.com/lgriffin/ESI.ts/commit/5dfc0a46863ff07828258c08f5f2e5baf3ede1ec))
|
|
137
|
+
* **auth:** check the SSO state, hash rate-limit keys, fix example names ([10c862d](https://github.com/lgriffin/ESI.ts/commit/10c862dc6bc08e2a84c7a37b20ac5c858f708b25))
|
|
138
|
+
* bring the README, guides and testing docs up to the measured state ([38d5e19](https://github.com/lgriffin/ESI.ts/commit/38d5e1922b83ce4cbbc878a2e22644273cf33dd5))
|
|
139
|
+
* build and deploy the documentation site at lgriffin.github.io/ESI.ts ([ae99caf](https://github.com/lgriffin/ESI.ts/commit/ae99caf472cea4c41b4d4da05b8e1f0214f99cc5))
|
|
140
|
+
* **changelog:** backfill every version number from 8.0.0 to 9.9.0 ([2909278](https://github.com/lgriffin/ESI.ts/commit/2909278255a4f73711e2e6d9732dcdc3fd692afa)), closes [#275](https://github.com/lgriffin/ESI.ts/issues/275)
|
|
141
|
+
* **changelog:** keep the entries the stricter rule keeps ([f8ce01c](https://github.com/lgriffin/ESI.ts/commit/f8ce01c3de78c217b1aa2d3a1f379e7fbc13611f))
|
|
142
|
+
* **changelog:** remove the lines merge commits repeated in 10.x ([4e1595a](https://github.com/lgriffin/ESI.ts/commit/4e1595ab9e2a5ce700cdae54d719679ba217996c)), closes [#377](https://github.com/lgriffin/ESI.ts/issues/377)
|
|
143
|
+
* **charter:** link the dot-segment fix from gap register row 29 ([1686546](https://github.com/lgriffin/ESI.ts/commit/1686546e52eee8b8c3f9f79c6bd65b4c1a92ef6c))
|
|
144
|
+
* **charter:** mark TEST-09 enforced now that npm run lint covers tests/ ([92dbb12](https://github.com/lgriffin/ESI.ts/commit/92dbb12c34ac75a31090ccaa1b188b88ebc08bfc))
|
|
145
|
+
* **charter:** publish revision 2 for the 11.0 plan ([c0a7af5](https://github.com/lgriffin/ESI.ts/commit/c0a7af5c127aacbbf362fa316da31cc5deeaeda0)), closes [#299](https://github.com/lgriffin/ESI.ts/issues/299)
|
|
146
|
+
* **charter:** record the EARS governance decisions for 11.0.0 ([#469](https://github.com/lgriffin/ESI.ts/issues/469)) ([f806afa](https://github.com/lgriffin/ESI.ts/commit/f806afac96b1862b50a6462062548ab23c057e51))
|
|
147
|
+
* **charter:** state the determinism baseline and how recorded-payload drift reports ([45fadaa](https://github.com/lgriffin/ESI.ts/commit/45fadaa82e778aaf09a72a870dc70072dcfcc71e))
|
|
148
|
+
* **examples:** find the Rifter blueprint by its product in the industry example ([#536](https://github.com/lgriffin/ESI.ts/issues/536)) ([1ebb168](https://github.com/lgriffin/ESI.ts/commit/1ebb16869fc85908ac2573ff4f0fc34ccbe4c1b3))
|
|
149
|
+
* generate the counts the documentation quotes ([91b27d4](https://github.com/lgriffin/ESI.ts/commit/91b27d4feab9cf0a64e38a5fa934437b43f3998d))
|
|
150
|
+
* generate the documentation site from guides and examples ([f47ee69](https://github.com/lgriffin/ESI.ts/commit/f47ee69bbad583704cacea9d8c4d0998dfb0006e))
|
|
151
|
+
* **guides:** add the Lean decision record, v7 to 11.0 ([d089c05](https://github.com/lgriffin/ESI.ts/commit/d089c05c2746f8d66fd5251aed15e0367f5be7dc))
|
|
152
|
+
* **layout:** point remaining script paths at their new folders ([308def6](https://github.com/lgriffin/ESI.ts/commit/308def6241e2549b0b9a61dec1b5919307119f49))
|
|
153
|
+
* **logging:** every call site uses the per-client logger, held by lint ([3169a98](https://github.com/lgriffin/ESI.ts/commit/3169a9881c62132862988e9061228280c78d8ce0))
|
|
154
|
+
* **logging:** record that nothing is built at import; ARCH-06 Enforced ([28f17b9](https://github.com/lgriffin/ESI.ts/commit/28f17b9c830889ceac04d29b38a1fdcc6b671024))
|
|
155
|
+
* make the spike's compiler check reproducible and complete the audit baseline ([e0b836d](https://github.com/lgriffin/ESI.ts/commit/e0b836d9f32f1ed81b7a09c5b27eab044c30271a))
|
|
156
|
+
* metrics refreshed. ([cfd04b3](https://github.com/lgriffin/ESI.ts/commit/cfd04b36178b1817ae24a49523e31a8364cec9ce))
|
|
157
|
+
* **mutation:** re-run with --force when a strengthened test should kill a survivor ([e5b1622](https://github.com/lgriffin/ESI.ts/commit/e5b1622ad4370960da779b0425f075f92b2c3ed2)), closes [#380](https://github.com/lgriffin/ESI.ts/issues/380)
|
|
158
|
+
* note the 11.0 deprecations of the factory methods and createClient ([d852ab9](https://github.com/lgriffin/ESI.ts/commit/d852ab97c77982d5db8751ff29ad668fedc4722a))
|
|
159
|
+
* Phase 0 audit and generator spike ([391fba1](https://github.com/lgriffin/ESI.ts/commit/391fba1772620ab7fd4b8200e28e0b0082003725))
|
|
160
|
+
* **ports:** describe CacheStore ttl as retention, not freshness ([0641466](https://github.com/lgriffin/ESI.ts/commit/064146646aa08869902f0f5166d7c6810dcb0ed6))
|
|
161
|
+
* **quality-gates:** record the mutation and api-fuzz nightly issues ([c8d922c](https://github.com/lgriffin/ESI.ts/commit/c8d922c44a35a073f82e5b58de6fefcdaa9e9ab2)), closes [#277](https://github.com/lgriffin/ESI.ts/issues/277)
|
|
162
|
+
* **readme:** point the mutation row at the testing guide after merging master ([c329a3d](https://github.com/lgriffin/ESI.ts/commit/c329a3dd0239bcfecb65c0646a654a11af8fde1d))
|
|
163
|
+
* **readme:** put the measured test, coverage, mutation and Scorecard numbers up front ([#540](https://github.com/lgriffin/ESI.ts/issues/540)) ([8f5e5cf](https://github.com/lgriffin/ESI.ts/commit/8f5e5cfc2ed037740b888952a82d55e30da4eabd))
|
|
164
|
+
* record the documentation site in the charter, roadmap and guides ([cf69d6d](https://github.com/lgriffin/ESI.ts/commit/cf69d6db69357a74789953c7721905b305723de1))
|
|
165
|
+
* **release:** charter revision 3, Track S in the gate, and the 10.x end date ([#535](https://github.com/lgriffin/ESI.ts/issues/535)) ([7cfe139](https://github.com/lgriffin/ESI.ts/commit/7cfe139fd2f4126b3588f6e3cc2f3bded264d29d))
|
|
166
|
+
* **roadmap:** close Phase 4 and add Track S Run 12, the SDE clean architecture ([#495](https://github.com/lgriffin/ESI.ts/issues/495)) ([4f677b5](https://github.com/lgriffin/ESI.ts/commit/4f677b5c410a42b6f09ce6ad8bfaea549ab108d7))
|
|
167
|
+
* **roadmap:** mark Phase 3 done ([#483](https://github.com/lgriffin/ESI.ts/issues/483)) ([f7861fb](https://github.com/lgriffin/ESI.ts/commit/f7861fbb00efe774bdce63ee079ba5df3261cb68))
|
|
168
|
+
* **roadmap:** mark Phase 5 item 2 done in both landed notes ([69d1872](https://github.com/lgriffin/ESI.ts/commit/69d187210c4e28eb73b10e3218bc8d45c2c69be9))
|
|
169
|
+
* **roadmap:** mark phases 5 and 7 met on the 11.0.0 release gate ([aefa075](https://github.com/lgriffin/ESI.ts/commit/aefa075a2d7c49e221745075ae21c6f4abacc8fb))
|
|
170
|
+
* **roadmap:** mark the last three release-gate rows met ([#550](https://github.com/lgriffin/ESI.ts/issues/550)) ([8993558](https://github.com/lgriffin/ESI.ts/commit/8993558eafd2f758b42668a1576456af91cb57dd))
|
|
171
|
+
* **roadmap:** publish the Road to 11.0.0 plan with the SDE programme ([9c65c38](https://github.com/lgriffin/ESI.ts/commit/9c65c386cccefd745c6ab09d645dd95931840286))
|
|
172
|
+
* **roadmap:** record Phase 3 progress and drop isolatedDeclarations ([d58d4d6](https://github.com/lgriffin/ESI.ts/commit/d58d4d6844545b467b76aae70016b015414b96d4))
|
|
173
|
+
* **roadmap:** state the release gate as a table and Phase 7 docs work as future ([a0bf92d](https://github.com/lgriffin/ESI.ts/commit/a0bf92df38c32cb2d5b0cf2b774e414a9ce76349))
|
|
174
|
+
* **roadmap:** take maintainer settings and nightlies off the 11.0.0 release gate ([85f71dc](https://github.com/lgriffin/ESI.ts/commit/85f71dc8d087e2887c4d4565e667ebd4fe071939))
|
|
175
|
+
* **roadmap:** take mutation off the 11.0.0 release gate ([4f3289b](https://github.com/lgriffin/ESI.ts/commit/4f3289be82a3df9d73379ed665b149eb8cbdc9fd))
|
|
176
|
+
* **sde:** add the SDE guide with C4 architecture ([#463](https://github.com/lgriffin/ESI.ts/issues/463)) ([79b7a88](https://github.com/lgriffin/ESI.ts/commit/79b7a886525598a101f221bb8725ea673c082f10))
|
|
177
|
+
* **sde:** add the SDE testing scorecard ([#547](https://github.com/lgriffin/ESI.ts/issues/547)) ([ab06f4e](https://github.com/lgriffin/ESI.ts/commit/ab06f4e45eb3786e5ee1091379569e7c125c02b4))
|
|
178
|
+
* **sde:** move the SDE doc set to guides/ and record the enforced gates ([#521](https://github.com/lgriffin/ESI.ts/issues/521)) ([0e92049](https://github.com/lgriffin/ESI.ts/commit/0e92049e6aeab27b2156fa57c4d11f2c30c14cb1))
|
|
179
|
+
* **security:** record Phase 6's repository side and the maintainer's settings ([092e309](https://github.com/lgriffin/ESI.ts/commit/092e3094a7505331970ce43ecc2ee96c5114d001)), closes [#239](https://github.com/lgriffin/ESI.ts/issues/239) [#270](https://github.com/lgriffin/ESI.ts/issues/270)
|
|
180
|
+
* state the Node 22 floor for 11.0.0 ([fff5d2b](https://github.com/lgriffin/ESI.ts/commit/fff5d2bc0e96e23cd47e43611072b91fd507ba58))
|
|
181
|
+
* **testing:** fold MUTATION-TESTING.md into TESTING.md ([aedc678](https://github.com/lgriffin/ESI.ts/commit/aedc678ac1a6368248cb6f635d690cb29f01c145)), closes [#273](https://github.com/lgriffin/ESI.ts/issues/273)
|
|
182
|
+
* **testing:** record the fake-timer rule and the re-seed still to run ([4fcd495](https://github.com/lgriffin/ESI.ts/commit/4fcd4950b20896668a5e4a5653424763b7d23160)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
### Testing
|
|
186
|
+
|
|
187
|
+
* accept both compatibility dates in the drift check and type tests ([62ffa4d](https://github.com/lgriffin/ESI.ts/commit/62ffa4d28cf27fe3a5d625a774dfb784689653fa))
|
|
188
|
+
* add standalone EARS requirement check (npm run ears) ([471ab07](https://github.com/lgriffin/ESI.ts/commit/471ab07d7a74d5900ba85d4386b21c3799645ebb))
|
|
189
|
+
* **bdd:** close the peer, nested-log and fetch-all gaps in the exclusion rules ([cfd04b3](https://github.com/lgriffin/ESI.ts/commit/cfd04b36178b1817ae24a49523e31a8364cec9ce))
|
|
190
|
+
* **bdd:** convert SDE step definitions to the step library ([#511](https://github.com/lgriffin/ESI.ts/issues/511)) ([8a8656f](https://github.com/lgriffin/ESI.ts/commit/8a8656ffafc42894f7dd8a1a05e2611ee7c15a81)), closes [#449](https://github.com/lgriffin/ESI.ts/issues/449)
|
|
191
|
+
* **bdd:** import the SDE test data factory from its new testing folder ([9703828](https://github.com/lgriffin/ESI.ts/commit/9703828a8b31342648a2d26a85d1821fa1d24d2c))
|
|
192
|
+
* **bdd:** state every documented exclusion as an unwanted-behaviour rule ([114a485](https://github.com/lgriffin/ESI.ts/commit/114a485ae4d6eab65d55f268801918e71ddc7706))
|
|
193
|
+
* **bdd:** state the client's deliberate exclusions as unwanted-behaviour rules ([d9feafc](https://github.com/lgriffin/ESI.ts/commit/d9feafc26eb26a7fe183b61da3e1c23699c19332))
|
|
194
|
+
* **bench:** SDE load, lookup and heap benchmarks with nightly trend ([#520](https://github.com/lgriffin/ESI.ts/issues/520)) ([5e1ae57](https://github.com/lgriffin/ESI.ts/commit/5e1ae57aec7292e02d38fc9e5462aec980fdca30))
|
|
195
|
+
* **cache:** assert ETag cache expiry and sweeps on a fake clock ([bacc52c](https://github.com/lgriffin/ESI.ts/commit/bacc52c8609fcff702891060621dba24b10bb916)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
196
|
+
* **ci:** hold workflow token permissions and release signing ([5ca9231](https://github.com/lgriffin/ESI.ts/commit/5ca9231251e902162620a9b1f4b17b58267f81f9)), closes [#239](https://github.com/lgriffin/ESI.ts/issues/239)
|
|
197
|
+
* **circuit-breaker:** time reset, cleanup and the timer on a fake clock ([540be67](https://github.com/lgriffin/ESI.ts/commit/540be671b77a29cd92f52d1dbbc28a6c2fccda9a)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
198
|
+
* clear lint findings under tests/ ([4ca8384](https://github.com/lgriffin/ESI.ts/commit/4ca838495b5c146231911b499d58af215c3f2445))
|
|
199
|
+
* **contract:** look back at most five contract pages for auctions ([8a3ace6](https://github.com/lgriffin/ESI.ts/commit/8a3ace6ecb35a5bad113d4d467651eaac693a77d))
|
|
200
|
+
* **contract:** rebuild the negative status fixture from the new recording ([98464be](https://github.com/lgriffin/ESI.ts/commit/98464be692e9dec060c0505b4dd160163f66fd7f))
|
|
201
|
+
* **contract:** record public contract items from the newest contracts ([f57bfae](https://github.com/lgriffin/ESI.ts/commit/f57bfaead1e2338030b72275ff0124f539804b2d))
|
|
202
|
+
* **contract:** record the meta/openapi.yaml fixture ([cd35e9a](https://github.com/lgriffin/ESI.ts/commit/cd35e9a13b4f06146708a70bc983c1ccec4b8afa))
|
|
203
|
+
* **contract:** recorded ESI payloads changed shape ([#443](https://github.com/lgriffin/ESI.ts/issues/443)) ([6b6759d](https://github.com/lgriffin/ESI.ts/commit/6b6759d8a3bdba70c22fe44dadc68e522637e96d))
|
|
204
|
+
* **contract:** replay a text fixture as the document and compare it exactly ([9701a6f](https://github.com/lgriffin/ESI.ts/commit/9701a6f056ec1367a3ea1bbf579885f478953f62))
|
|
205
|
+
* **contract:** skip an empty 200 body instead of aborting the recording ([608afc7](https://github.com/lgriffin/ESI.ts/commit/608afc79d8b01e970c8635e0a38b814f8a8d4fdf))
|
|
206
|
+
* **contract:** walk back through contract pages to find auctions ([7c9713f](https://github.com/lgriffin/ESI.ts/commit/7c9713f88f1b46e232686560f8fbde875878b59d)), closes [#403](https://github.com/lgriffin/ESI.ts/issues/403)
|
|
207
|
+
* **core:** move the no-content unit tests into their own file ([f8a4568](https://github.com/lgriffin/ESI.ts/commit/f8a45689a29eab0e7817c4f379646fae9ad9ef9a))
|
|
208
|
+
* **core:** move time-dependent tests to fake clocks with exact boundaries ([2013d05](https://github.com/lgriffin/ESI.ts/commit/2013d05903f9cafedcefa43bcb463b9d56391e11))
|
|
209
|
+
* **core:** pin the no-content branch's status and log ([611ace3](https://github.com/lgriffin/ESI.ts/commit/611ace318d9324c1fafa0b3c628a5be6476fad61))
|
|
210
|
+
* **core:** record retry back-offs instead of sleeping through them ([52c69ab](https://github.com/lgriffin/ESI.ts/commit/52c69ab595b4189759dc93eaab08ae1d3956601e)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
211
|
+
* **docs:** check guide anchors with the site's slugifier and reference links ([1331c6b](https://github.com/lgriffin/ESI.ts/commit/1331c6b4213aef808777a261a744ba1e02ea22e9)), closes [#273](https://github.com/lgriffin/ESI.ts/issues/273)
|
|
212
|
+
* **examples:** fix the failures the first live run found, and review findings ([b682d4c](https://github.com/lgriffin/ESI.ts/commit/b682d4cb531346745bd8541d5ee37ebb14d85754))
|
|
213
|
+
* **examples:** report the newest compatibility date whatever the order ([687612f](https://github.com/lgriffin/ESI.ts/commit/687612f6c88ecbc7b692344f0359bf39e6a1f570))
|
|
214
|
+
* **examples:** run the public examples nightly against live ESI ([398f693](https://github.com/lgriffin/ESI.ts/commit/398f693a2b3fde6d5e049d313217289d98bd881f))
|
|
215
|
+
* **examples:** use the 2026-08-18 response shapes ([54212f6](https://github.com/lgriffin/ESI.ts/commit/54212f6cd6c267b19597272d833b8e9ec99760d3))
|
|
216
|
+
* **examples:** use the 2026-08-18 response shapes ([85c39b6](https://github.com/lgriffin/ESI.ts/commit/85c39b6703897e0bd09e5c55e6eacd2e58bde11f))
|
|
217
|
+
* **faults:** assert no repeat of page 1 revalidates it alone ([ad04003](https://github.com/lgriffin/ESI.ts/commit/ad0400397ef13e05aba508217e0d133a9d888452))
|
|
218
|
+
* **faults:** expect EsiParseError for unparseable 200 bodies; raise ./errors budget ([ac1e910](https://github.com/lgriffin/ESI.ts/commit/ac1e91012878bbcdffa6060b2fad1c2770a213b7))
|
|
219
|
+
* **faults:** filter refined schemas and serve text endpoints as text in the nightly fuzz ([94c87fe](https://github.com/lgriffin/ESI.ts/commit/94c87febbf68decf41e5323f3d4a812433125dee))
|
|
220
|
+
* **faults:** pin the page-1 repeat when a later page keeps failing ([076da67](https://github.com/lgriffin/ESI.ts/commit/076da6738ad3fdda6fd065a13798a65aecf0c8a2)), closes [#291](https://github.com/lgriffin/ESI.ts/issues/291)
|
|
221
|
+
* **fuzz:** draw all-non-string locale maps so the extraction vacuity check cannot miss its mutant ([#538](https://github.com/lgriffin/ESI.ts/issues/538)) ([9486fe2](https://github.com/lgriffin/ESI.ts/commit/9486fe2cd4da5510e55ad7539a30574b0c28beba))
|
|
222
|
+
* **fuzz:** expect dot segments to be rejected in buildEndpointPath ([0518111](https://github.com/lgriffin/ESI.ts/commit/05181111e7fc71afbddb195754fa08a9834aec1b))
|
|
223
|
+
* **fuzz:** keep dot segments out of the accepted-path-param arbitraries ([fe9d4c5](https://github.com/lgriffin/ESI.ts/commit/fe9d4c58a9143d28b8a552df99e90e945a5a990e))
|
|
224
|
+
* **fuzz:** property and model-based tests for the SDE provider and transforms ([#515](https://github.com/lgriffin/ESI.ts/issues/515)) ([51d7b31](https://github.com/lgriffin/ESI.ts/commit/51d7b31a9a00499e8d4b64da7ef75127277681d4))
|
|
225
|
+
* **fuzz:** start Prism in-process and print its log when the fuzz mock never answers ([#537](https://github.com/lgriffin/ESI.ts/issues/537)) ([2f40cb2](https://github.com/lgriffin/ESI.ts/commit/2f40cb286b4c6955791150698167b1ba41c1ae96))
|
|
226
|
+
* green the fault, Schemathesis and recorded-payload nightlies ([7f82583](https://github.com/lgriffin/ESI.ts/commit/7f82583348aa54114262b56080caf638f514f9f9))
|
|
227
|
+
* **package-lint:** run the size-limit fixture only where size-limit 13 runs ([eb3fd74](https://github.com/lgriffin/ESI.ts/commit/eb3fd7442f48ba40a50eeb005bc23aaa85da918e))
|
|
228
|
+
* **parity:** assert EsiClient's compatibilityDate too ([0423c52](https://github.com/lgriffin/ESI.ts/commit/0423c522e336db6bad8d2b2891ab0eb0215d58d8))
|
|
229
|
+
* **ports:** drop the two exports the ports test now covers from the export-coverage baseline ([f6cd9de](https://github.com/lgriffin/ESI.ts/commit/f6cd9de244a0c9afe8911ab6616dbf3b237bae32))
|
|
230
|
+
* **rate-limiter:** assert exact waits on a fake clock ([2b43a59](https://github.com/lgriffin/ESI.ts/commit/2b43a594462a6732102493c2f9f3fbc2eab594e5)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
231
|
+
* **request-pipeline:** pin the spec-TTL and duration boundaries ([2077df6](https://github.com/lgriffin/ESI.ts/commit/2077df6d207eeab63333053e0aab3b3913884378)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
232
|
+
* **schemas:** cover the mutation response schemas ([c533dde](https://github.com/lgriffin/ESI.ts/commit/c533ddea9c94e2391f81bc06f03a7dd49c6a3de5))
|
|
233
|
+
* **sde:** specify remaining lookups, loading, optional peers and ingestion ([#514](https://github.com/lgriffin/ESI.ts/issues/514)) ([03eb8be](https://github.com/lgriffin/ESI.ts/commit/03eb8be19a926fb652f38caa215b57bb78274a02))
|
|
234
|
+
* **sde:** specify type, universe, market and dogma lookups ([#513](https://github.com/lgriffin/ESI.ts/issues/513)) ([a6b63aa](https://github.com/lgriffin/ESI.ts/commit/a6b63aa1c92c3287b6dcc7481c15334ec74abed3))
|
|
235
|
+
* **skyhooks:** cover RaidableSkyhooksResponse and its schema ([1774c49](https://github.com/lgriffin/ESI.ts/commit/1774c49e9d4251b9b0d76edfacfca842c0d7fc8c))
|
|
236
|
+
* **spec:** gate domain-client method coverage against the EARS specification ([#528](https://github.com/lgriffin/ESI.ts/issues/528)) ([13239f1](https://github.com/lgriffin/ESI.ts/commit/13239f1c964323786922eb64f97dee133eb18ac1))
|
|
237
|
+
* **types:** tsd coverage for ./sde and ./sde/memory; seed type-mutation floors ([#517](https://github.com/lgriffin/ESI.ts/issues/517)) ([c1aa7e7](https://github.com/lgriffin/ESI.ts/commit/c1aa7e7a55c5f60b02561d933e8e6a369e5cb11c))
|
|
238
|
+
* **util:** drive concurrency pools with fake timers ([0a4b4f0](https://github.com/lgriffin/ESI.ts/commit/0a4b4f0d189c12bcdd60c6a2b81d5bdf6bba9c9e)), closes [#382](https://github.com/lgriffin/ESI.ts/issues/382)
|
|
239
|
+
|
|
240
|
+
## [10.2.3](https://github.com/lgriffin/ESI.ts/compare/v10.2.2...v10.2.3) (2026-09-26)
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### Fixed
|
|
244
|
+
|
|
245
|
+
* **transport:** leave X-User-Agent off when clientId is not a legal header value ([a744910](https://github.com/lgriffin/ESI.ts/commit/a744910fc635a3f861ea185623f839e2df26fa56))
|
|
246
|
+
* **transport:** send the configured clientId as X-User-Agent ([8a073ec](https://github.com/lgriffin/ESI.ts/commit/8a073ec624f3812a6c0c96d60cec96b1a969cca9))
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
### Changed
|
|
250
|
+
|
|
251
|
+
* **api:** record ApiClient.getClientId in the API report ([6ecda49](https://github.com/lgriffin/ESI.ts/commit/6ecda49681e2d600d824109c80d0b1b7aa2ac082))
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
### Testing
|
|
255
|
+
|
|
256
|
+
* **contract:** re-record ESI payloads whose shape changed ([cc1783f](https://github.com/lgriffin/ESI.ts/commit/cc1783fadba5adebe08b278646b2561b037f542a))
|
|
257
|
+
* **contract:** recorded ESI payloads changed shape ([74b0ed7](https://github.com/lgriffin/ESI.ts/commit/74b0ed79ecc70628e74549b920bf9d948cdb1f61))
|
|
258
|
+
|
|
259
|
+
## [10.2.2](https://github.com/lgriffin/ESI.ts/compare/v10.2.1...v10.2.2) (2026-09-23)
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
### Fixed
|
|
263
|
+
|
|
264
|
+
* **deps:** list zod only in dependencies so --omit=dev keeps it ([e9b80c1](https://github.com/lgriffin/ESI.ts/commit/e9b80c1342ce846fb1f351c171d4e2a8c7bd0155)), closes [#384](https://github.com/lgriffin/ESI.ts/issues/384)
|
|
265
|
+
* **mutation-pr:** say when a directory score is partly the nightly's ([9ade805](https://github.com/lgriffin/ESI.ts/commit/9ade805e31e11e5e8f0639f28192b315d18dbd3d))
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
### Changed
|
|
269
|
+
|
|
270
|
+
* **deps:** bump the minor-and-patch group across 1 directory with 6 updates ([f65a8c1](https://github.com/lgriffin/ESI.ts/commit/f65a8c176049f645161b2d0a4161f6f33e2f3190))
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
### Documentation
|
|
274
|
+
|
|
275
|
+
* add Marp presentation on repo history and evolution ([f4047f8](https://github.com/lgriffin/ESI.ts/commit/f4047f8e2ee14d15b4d515dc79cf190362cf9607))
|
|
276
|
+
* commit knowledge graph report (graphify) ([e377009](https://github.com/lgriffin/ESI.ts/commit/e3770098add384079f81bb36797df78b39d723fa))
|
|
277
|
+
* integrate graphify knowledge graph for architecture queries ([3260793](https://github.com/lgriffin/ESI.ts/commit/3260793918178405444cb9e40d2d5ff880c55714))
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
### Testing
|
|
281
|
+
|
|
282
|
+
* **canary:** verify release assets — SBOM, cosign bundles, checksums ([1180b1a](https://github.com/lgriffin/ESI.ts/commit/1180b1a559ebf82955b18ecf4cbddc69f68c66d2))
|
|
283
|
+
* **contract:** re-record ESI payloads whose shape changed ([60662dc](https://github.com/lgriffin/ESI.ts/commit/60662dcf029d5e7bfc67e2666257e0a9bfb664a6))
|
|
284
|
+
* **contract:** recorded ESI payloads changed shape ([60e72ac](https://github.com/lgriffin/ESI.ts/commit/60e72acf3a4c9c225b54e093ae51490cd2123f24))
|
|
285
|
+
|
|
286
|
+
## [10.2.1](https://github.com/lgriffin/ESI.ts/compare/v10.2.0...v10.2.1) (2026-09-19)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
### Changed
|
|
290
|
+
|
|
291
|
+
* **core:** drop two branches no input can tell apart ([52e82b9](https://github.com/lgriffin/ESI.ts/commit/52e82b9f4c0852a9e25a0d108228ca59e0ca2a21))
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
### Testing
|
|
295
|
+
|
|
296
|
+
* **logger:** drop logFatal and logTrace from the export-coverage baseline ([e7fd0e6](https://github.com/lgriffin/ESI.ts/commit/e7fd0e6e8d9c05e70084cd401e49190ff1042cfa))
|
|
297
|
+
* **logger:** kill every logger and util mutant ([9598d31](https://github.com/lgriffin/ESI.ts/commit/9598d317eadc5e12b00787a652f77099471ee7b1))
|
|
298
|
+
* **logger:** kill every logger and util mutant, and hold logger at 100 ([ad42937](https://github.com/lgriffin/ESI.ts/commit/ad4293716552da85ae3a44b93d764d35ac85da42))
|
|
299
|
+
* **pagination:** kill every pagination mutant ([cd15995](https://github.com/lgriffin/ESI.ts/commit/cd1599586e077cec6f534fec6bf608be46996bd3))
|
|
300
|
+
|
|
8
301
|
## [10.2.0](https://github.com/lgriffin/ESI.ts/compare/v10.1.1...v10.2.0) (2026-09-19)
|
|
9
302
|
|
|
10
303
|
|
|
11
304
|
### Added
|
|
12
305
|
|
|
13
|
-
* **release:** attach a signed CycloneDX SBOM to each release ([bf6c045](https://github.com/lgriffin/ESI.ts/commit/bf6c0458b81fc9123ca29f712db8a89948e2b382))
|
|
14
306
|
* **release:** attach a signed CycloneDX SBOM to each release ([1e29d7d](https://github.com/lgriffin/ESI.ts/commit/1e29d7de39237ecd250dcac3ef90da54a9c52df3))
|
|
15
307
|
|
|
16
308
|
|
|
17
309
|
### Testing
|
|
18
310
|
|
|
19
311
|
* **contract:** re-record ESI payloads whose shape changed ([2ea4198](https://github.com/lgriffin/ESI.ts/commit/2ea4198d8832d12618e9f9a9da0720ffb9b07f55))
|
|
20
|
-
* **contract:** recorded ESI payloads changed shape ([06fa27a](https://github.com/lgriffin/ESI.ts/commit/06fa27ab0516af9f9d450059cb0cb3fcd6463345))
|
|
21
312
|
|
|
22
313
|
## [10.1.1](https://github.com/lgriffin/ESI.ts/compare/v10.1.0...v10.1.1) (2026-09-18)
|
|
23
314
|
|
|
24
315
|
|
|
25
316
|
### Documentation
|
|
26
317
|
|
|
27
|
-
* **mutation:** record the first complete sharded run, and fix what it exposed ([7acf195](https://github.com/lgriffin/ESI.ts/commit/7acf1950d5781dad571e2f79e52d03324683f7bd))
|
|
28
318
|
* **mutation:** record the first complete sharded run, and fix what it exposed ([3209241](https://github.com/lgriffin/ESI.ts/commit/32092415c551cbc7cc75266fa7158ab884040aad))
|
|
29
319
|
|
|
30
320
|
## [10.1.0](https://github.com/lgriffin/ESI.ts/compare/v10.0.0...v10.1.0) (2026-09-18)
|
|
@@ -32,9 +322,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
32
322
|
|
|
33
323
|
### Added
|
|
34
324
|
|
|
35
|
-
* **dedupe:** detach in-flight reads of a path a write has just changed ([0339db7](https://github.com/lgriffin/ESI.ts/commit/0339db70d2cd34827c5575f1d731006fa1500ea0))
|
|
36
325
|
* **dedupe:** detach in-flight reads of a path a write has just changed ([e3a3d91](https://github.com/lgriffin/ESI.ts/commit/e3a3d91d2ef74759245cd43affb2e109040bf221))
|
|
37
|
-
* **release:** verify what npm serves, not only what CI built ([999125c](https://github.com/lgriffin/ESI.ts/commit/999125cd2c167410cdba7f35590afe6b5fa025d8))
|
|
38
326
|
* **release:** verify what npm serves, not only what CI built ([281e008](https://github.com/lgriffin/ESI.ts/commit/281e008d9fd65e45619f73c6abeb7a48dbc70831))
|
|
39
327
|
|
|
40
328
|
|
|
@@ -50,13 +338,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
50
338
|
* **circuit-breaker:** count the call that opens half-open as the first probe ([b418625](https://github.com/lgriffin/ESI.ts/commit/b418625bbf7ade64217fde9970bd76229dbb8ffd))
|
|
51
339
|
* **circuit-breaker:** keep an open circuit open when an earlier call succeeds ([03b27a5](https://github.com/lgriffin/ESI.ts/commit/03b27a5e1e641ddcf015f5e08f1420966c60b4ce))
|
|
52
340
|
* **ci:** read the attw report from a file so CI gets the whole JSON ([dac266d](https://github.com/lgriffin/ESI.ts/commit/dac266d5ec13b5bb2ba13a0a6f7a94b25da0ba0c))
|
|
53
|
-
* **dedupe:** key in-flight requests by identity as well as endpoint ([5bab05c](https://github.com/lgriffin/ESI.ts/commit/5bab05c85cfb8067baecffd8e740f6c1c27b6629))
|
|
54
341
|
* **dedupe:** key in-flight requests by identity as well as endpoint ([5d662d9](https://github.com/lgriffin/ESI.ts/commit/5d662d9699aab9f9bb34af93a8fb5809a02ccde6))
|
|
55
342
|
* five defects found by new model-based property tests (circuit breaker, pagination cache, backoff) ([80fcafa](https://github.com/lgriffin/ESI.ts/commit/80fcafa5bb99aed93348c30722c090e526b85fb7))
|
|
56
|
-
* **generate:** generate from the compatibility date the client actually sends ([ff781bd](https://github.com/lgriffin/ESI.ts/commit/ff781bd54777b2c3fda5189772e431e4d9de3657))
|
|
57
343
|
* **generate:** generate from the compatibility date the client actually sends ([5ea4a2f](https://github.com/lgriffin/ESI.ts/commit/5ea4a2fe0891bcba5c3d08171bb3d858639ea3f4))
|
|
58
344
|
* **mutation:** escape backslashes in the job summary table cells ([9ab23fa](https://github.com/lgriffin/ESI.ts/commit/9ab23fa685f68288b138dad749aed9bf871c215f))
|
|
59
|
-
* **package:** ship ES module declarations for the import condition ([2090682](https://github.com/lgriffin/ESI.ts/commit/20906829b64a093e8d66e2b6890cf2bbadb012c7))
|
|
60
345
|
* **package:** ship ES module declarations for the import condition ([d53fe91](https://github.com/lgriffin/ESI.ts/commit/d53fe914a156faad1835c1e748cd500254e57b69))
|
|
61
346
|
* **pagination:** cache an authenticated paginated result under the token-scoped key ([23313ff](https://github.com/lgriffin/ESI.ts/commit/23313ff95cf45a043ce2c27ea61d483969701366))
|
|
62
347
|
* **pagination:** never revalidate page 1 alone when a later page exhausts its retries ([8c48085](https://github.com/lgriffin/ESI.ts/commit/8c48085366af3eeb278be8bf033b45e53d353962))
|
|
@@ -65,11 +350,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
65
350
|
* **rate-limiter:** honour Retry-After given as an HTTP date ([1fb7cba](https://github.com/lgriffin/ESI.ts/commit/1fb7cba9a6b553f969fa2466f181018102d63bf3))
|
|
66
351
|
* **rate-limit:** keep the error-limit back-off when a late response reports budget left ([1c7279b](https://github.com/lgriffin/ESI.ts/commit/1c7279b9223702e64943e71bef3278488b4762d6))
|
|
67
352
|
* **release:** keep the canary off the shared npm cache ([8604246](https://github.com/lgriffin/ESI.ts/commit/86042464188ec6603f681d5564984275acd40866))
|
|
68
|
-
* **release:** publish the tarball that was tested and signed ([8c7c25f](https://github.com/lgriffin/ESI.ts/commit/8c7c25f77413349eca764f542015e944a55f738f))
|
|
69
353
|
* **release:** publish the tarball that was tested and signed ([c4ac638](https://github.com/lgriffin/ESI.ts/commit/c4ac6389a1844ddddc37fb7d380377e296e90ba1))
|
|
70
354
|
* **retry:** return a zero backoff instead of NaN past attempt 1023 ([ae36c02](https://github.com/lgriffin/ESI.ts/commit/ae36c022ce2c05fc33474110a801bd9121cb2438))
|
|
71
355
|
* **retry:** serve a retry from a fresh cache entry a concurrent call stored ([de5f7ee](https://github.com/lgriffin/ESI.ts/commit/de5f7eee75b89a45bbbe8e909462145ea805fba1))
|
|
72
|
-
* **type-mutation:** resolve entry points whose types sit under a condition ([1dd356d](https://github.com/lgriffin/ESI.ts/commit/1dd356d7874ecad0ff5b81a2f56695f408b0ad93))
|
|
73
356
|
* **type-mutation:** resolve entry points whose types sit under a condition ([330c69e](https://github.com/lgriffin/ESI.ts/commit/330c69e78b7854e6a7a9718fa2ce0fff4257c3ef))
|
|
74
357
|
* **types:** escape backslashes before pipes in the type mutation survivor table ([8d7d4de](https://github.com/lgriffin/ESI.ts/commit/8d7d4de6278cd968070c0c58f3e5e781815ad512))
|
|
75
358
|
|
|
@@ -81,18 +364,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
81
364
|
* **ci:** run the properties nightly at 10000 runs and document the tier ([06c79d2](https://github.com/lgriffin/ESI.ts/commit/06c79d268c85cd654d8f8e48b6b93ceb4d2cfc5d))
|
|
82
365
|
* **ci:** sample four overlapping calls nightly in seeded random order ([510b940](https://github.com/lgriffin/ESI.ts/commit/510b940f2cdf10abdbaaa38097f289143d7bf307))
|
|
83
366
|
* **lint:** lint tests/ for focused, skipped, assertion-free and silenced tests ([9bdf6bf](https://github.com/lgriffin/ESI.ts/commit/9bdf6bf174fe0476a213389ca4103fe90b00898c))
|
|
84
|
-
* **scripts:** check that every npm script points at a file that exists ([7b1fe81](https://github.com/lgriffin/ESI.ts/commit/7b1fe81b2cc52ac958a34490fdcd445eb57b2528))
|
|
85
367
|
* **scripts:** check that every npm script points at a file that exists ([55b03c7](https://github.com/lgriffin/ESI.ts/commit/55b03c77f0b6d636b7ec6ce6837f2bf642cb48c9))
|
|
86
|
-
* **scripts:** run every offline CI tier locally with one command ([14fc738](https://github.com/lgriffin/ESI.ts/commit/14fc738a13e5a8e6c782b032c708e46243b66087))
|
|
87
368
|
* **scripts:** run every offline CI tier locally with one command ([31197ac](https://github.com/lgriffin/ESI.ts/commit/31197accc81750b20a7412421e7b9e3ada57f9c6))
|
|
88
369
|
|
|
89
370
|
|
|
90
371
|
### Documentation
|
|
91
372
|
|
|
92
|
-
* **agents:** pin the semver rules against drift, and fix a retired config reference ([52ad44f](https://github.com/lgriffin/ESI.ts/commit/52ad44fa6e79018d21d0fafac6c98ab42117fe44))
|
|
93
373
|
* **agents:** pin the semver rules against drift, and fix a retired config reference ([d2af258](https://github.com/lgriffin/ESI.ts/commit/d2af258aa7a2d82a12eb56a014432f1d14c1a558))
|
|
94
374
|
* **bdd:** document the execution check, bug tags and when a Rule is protection ([fa0be02](https://github.com/lgriffin/ESI.ts/commit/fa0be0281996fd5e7fadeffcadbece5c81299b59))
|
|
95
|
-
* **contract:** name the real reason those endpoints cannot be recorded ([1b864da](https://github.com/lgriffin/ESI.ts/commit/1b864da3c9688833cf90ac748acb775f135d39b5))
|
|
96
375
|
* **contract:** name the real reason those endpoints cannot be recorded ([b8ea80d](https://github.com/lgriffin/ESI.ts/commit/b8ea80d3861813490fe012fcc1abda57bdce5485))
|
|
97
376
|
* declare TypeScript 5.4 as the oldest supported version ([f9e5f66](https://github.com/lgriffin/ESI.ts/commit/f9e5f66c4a3065ac82d8f0dab809b44d931e2a0a))
|
|
98
377
|
* describe the benchmark and heap soak tier ([f28cc2c](https://github.com/lgriffin/ESI.ts/commit/f28cc2c9d74115ebffce382a27ed362d96e5401a))
|
|
@@ -120,7 +399,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
120
399
|
* **consumer:** check the tarball as a matrix of consumer cells ([81c0cd0](https://github.com/lgriffin/ESI.ts/commit/81c0cd0cd97f548b35266991aad7c1ec805a233d))
|
|
121
400
|
* **consumer:** stop esbuild once the tree-shaking check has run ([9e9bea3](https://github.com/lgriffin/ESI.ts/commit/9e9bea30affcc0fdd73a015c9cb516f8b3d79144))
|
|
122
401
|
* **consumer:** widen the consumer contract to a Node x TypeScript x resolution matrix ([14880dd](https://github.com/lgriffin/ESI.ts/commit/14880dd5e341ec66f0871d5fadd5092e1e681b52))
|
|
123
|
-
* **contract:** assert replay failures through named helpers the lint knows ([48cd863](https://github.com/lgriffin/ESI.ts/commit/48cd863d5f74d0ea38c42f3bf2b60cdc236bcde9))
|
|
124
402
|
* **contract:** assert replay failures through named helpers the lint knows ([53e4b03](https://github.com/lgriffin/ESI.ts/commit/53e4b032ba437a71841086ec68541ea9fa78f295))
|
|
125
403
|
* **contract:** re-record ESI payloads whose shape changed ([bfe9af5](https://github.com/lgriffin/ESI.ts/commit/bfe9af5bb1ef26b639c5f836446633d7fb76a924))
|
|
126
404
|
* **contract:** re-record ESI payloads whose shape changed ([1f1be53](https://github.com/lgriffin/ESI.ts/commit/1f1be53fdec4f2a42ba260d5113c3e85d4dc0a4c))
|
|
@@ -134,7 +412,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
134
412
|
* **faults:** add a status the client has no text for, without a reason phrase ([1fe646a](https://github.com/lgriffin/ESI.ts/commit/1fe646a526ece7434966e0211c4a933071aad0b5))
|
|
135
413
|
* **faults:** add a transport fault catalogue run through the real pipeline ([1f5f055](https://github.com/lgriffin/ESI.ts/commit/1f5f055c2721cb7da9e67518d6237425b599e980))
|
|
136
414
|
* **faults:** assert through the helpers the suite-health lint knows ([0064539](https://github.com/lgriffin/ESI.ts/commit/0064539656221bdd30e1b0559da5d9854ee88e5c))
|
|
137
|
-
* **faults:** drop the x-pages gap the pagination fix closed ([6e367d6](https://github.com/lgriffin/ESI.ts/commit/6e367d6f1b6f6e864654384ba656cb00b709efa2))
|
|
138
415
|
* **faults:** drop the x-pages gap the pagination fix closed ([2f89d91](https://github.com/lgriffin/ESI.ts/commit/2f89d919c531c2b06f1eb41539e4c5ed71f4297a))
|
|
139
416
|
* **faults:** fault injection and fuzzing tier (transport fault catalogue) ([e3cee50](https://github.com/lgriffin/ESI.ts/commit/e3cee50f55a9f4c75b3d73569c55b1a608580acf))
|
|
140
417
|
* **faults:** fuzz every endpoint's payloads from its Zod schema nightly ([49dc045](https://github.com/lgriffin/ESI.ts/commit/49dc045d33fb538483e046c1c525d1982c7a0512))
|
|
@@ -142,7 +419,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
142
419
|
* **fuzz:** require eager pagination repeat calls to come from the cache ([cc57bc8](https://github.com/lgriffin/ESI.ts/commit/cc57bc8507f76af3614ddfc8441b6172fcde73d1))
|
|
143
420
|
* **fuzz:** respell all occurrences in cache-key lookalikes; ratchet export baseline ([1554338](https://github.com/lgriffin/ESI.ts/commit/155433898d56a6f52055f13f4847cf5ca025c56d))
|
|
144
421
|
* **mutation:** gate changed files per directory and prove the gate can fail ([c9a1b44](https://github.com/lgriffin/ESI.ts/commit/c9a1b4436643d529d30049eceaad8fb088a9b029))
|
|
145
|
-
* reference the exports v10 added and drop ContractBid from the export baseline ([dcb2081](https://github.com/lgriffin/ESI.ts/commit/dcb208160d195fef9cbfe226c61c9cc16a9c187d))
|
|
146
422
|
* reference the exports v10 added and drop ContractBid from the export baseline ([2633694](https://github.com/lgriffin/ESI.ts/commit/26336943d3897e1a8af85b82d0f9cc5754f54b75))
|
|
147
423
|
* **spec-audit:** require a tracker tag beside every [@bug](https://github.com/bug) ([04ad7a0](https://github.com/lgriffin/ESI.ts/commit/04ad7a00ed0e1b009c39db799740b2e32bbbcaa0))
|
|
148
424
|
* **types:** mutate the built declarations nightly and ratchet the tsd kill score ([5d0a8a8](https://github.com/lgriffin/ESI.ts/commit/5d0a8a8c3ba32ac383e01de768040ac9d075bd64))
|
|
@@ -324,7 +600,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
324
600
|
|
|
325
601
|
### Added
|
|
326
602
|
|
|
327
|
-
* **auth:** add EsiTokenManager with pluggable storage and bulk refresh ([1b6ca0a](https://github.com/lgriffin/ESI.ts/commit/1b6ca0a1bb7c460e74b26ee753660f1ee20342b0))
|
|
328
603
|
* **auth:** add EsiTokenManager with pluggable storage and bulk refresh ([91de317](https://github.com/lgriffin/ESI.ts/commit/91de317460b229547eb6fcbc78edd31582e6448d)), closes [#185](https://github.com/lgriffin/ESI.ts/issues/185) [#187](https://github.com/lgriffin/ESI.ts/issues/187)
|
|
329
604
|
* **logging:** per-client structured logging, engineering charter, release 9.9.0 ([ca9773b](https://github.com/lgriffin/ESI.ts/commit/ca9773bc9106741f9400690e4a14dbc6d39168fa))
|
|
330
605
|
* ramp-up phases 1, 3, 4 and 5 — load-bearing spec, CI gate, agent governance ([8453187](https://github.com/lgriffin/ESI.ts/commit/8453187e836dedcefc1d686a8371e19835c97bd2))
|
|
@@ -336,11 +611,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
336
611
|
|
|
337
612
|
* **auth:** address review findings on SSO exchange, refresh races and storage ([e8172f1](https://github.com/lgriffin/ESI.ts/commit/e8172f1efd781040bffc0a29ecca683fd61aeba6))
|
|
338
613
|
* **build:** let release-please bump PACKAGE_VERSION ([8ef9c19](https://github.com/lgriffin/ESI.ts/commit/8ef9c1994671891a67be438c5efd0cc2b4f5ffba))
|
|
339
|
-
* **build:** share one copy of each class across sub-path entries ([8110d73](https://github.com/lgriffin/ESI.ts/commit/8110d73cfd7016aebfe9bed5a85aed84fc12dec7))
|
|
340
614
|
* **build:** share one copy of each class across sub-path entries ([2f0ec0a](https://github.com/lgriffin/ESI.ts/commit/2f0ec0aa73051615a2bad3ed3a42c0e952c98d97))
|
|
341
615
|
* **cache:** evict a response body that fails schema validation ([22b0d0b](https://github.com/lgriffin/ESI.ts/commit/22b0d0b31276bf6526d52eb9ad3c7db43d3b8d7e))
|
|
342
616
|
* **cache:** evict cached reads after writes answered with 201 or 204 ([7e41381](https://github.com/lgriffin/ESI.ts/commit/7e413819ceaa591d961c254124fb4b4f25d16288))
|
|
343
|
-
* **cache:** keep entries an hour past their freshness TTL for stale-on-error ([e4f7e9a](https://github.com/lgriffin/ESI.ts/commit/e4f7e9a9dfe09afc7aead67d7810fd677de9bc47))
|
|
344
617
|
* **cache:** keep entries an hour past their freshness TTL for stale-on-error ([fec657d](https://github.com/lgriffin/ESI.ts/commit/fec657d28b4806a1ba6bddd04a722065bd247523))
|
|
345
618
|
* **ci:** publish releases created by release-please and sign with cosign bundles ([befc639](https://github.com/lgriffin/ESI.ts/commit/befc6392f347dbd2f9c76c1fd76af96ccfd76083))
|
|
346
619
|
* **ci:** unblock the v10.0.0 release: drift baseline, version marker, dispatchable publish, cosign bundles ([5271515](https://github.com/lgriffin/ESI.ts/commit/527151572053fb07ff9690b603743e7a65806efd))
|
|
@@ -356,7 +629,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
356
629
|
* **meta:** give getStatus the per-route shape ESI sends ([7b72f40](https://github.com/lgriffin/ESI.ts/commit/7b72f40a44205d94a7b708e83f15795c5a00625c))
|
|
357
630
|
* **mutation:** satisfy noUncheckedIndexedAccess in the ratchet script ([07ae337](https://github.com/lgriffin/ESI.ts/commit/07ae337107001ec3cdff319edc35a0bc190c65c6))
|
|
358
631
|
* ramp-up phase 6 — library safety gates and a validation cache fix ([a2629ad](https://github.com/lgriffin/ESI.ts/commit/a2629ada8d7cb1b896211f6762f185ef46667359))
|
|
359
|
-
* **release:** tag releases vX.Y.Z and start the changelog at 9.9.0 ([2067882](https://github.com/lgriffin/ESI.ts/commit/2067882e9920e60d3e3b5bda3d373187671baa30))
|
|
360
632
|
* **release:** tag releases vX.Y.Z and start the changelog at 9.9.0 ([15e62d6](https://github.com/lgriffin/ESI.ts/commit/15e62d66a742325ef05b90aeb3c590fa1b2c661e))
|
|
361
633
|
* **schemas:** require fleet boss, customs office access flags and system position ([00fff7c](https://github.com/lgriffin/ESI.ts/commit/00fff7c06d946043e833833894f9f885093393c5))
|
|
362
634
|
* **schemas:** require vip, contract status and availability as ESI does ([24c8c35](https://github.com/lgriffin/ESI.ts/commit/24c8c35de56e92ceb821383808cc2359acfb6659))
|
|
@@ -365,11 +637,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
365
637
|
* **scripts:** drop the 83 drift baseline entries [#317](https://github.com/lgriffin/ESI.ts/issues/317) resolved ([2cb7d18](https://github.com/lgriffin/ESI.ts/commit/2cb7d18779d70ecddff6b814715a50a2af5f7953))
|
|
366
638
|
* **scripts:** make schema:drift compare what it reports ([3dc4c53](https://github.com/lgriffin/ESI.ts/commit/3dc4c532d61fe100e842fda7d25f16093d19fe41))
|
|
367
639
|
* **scripts:** make schema:drift compare what it reports, with a ratcheted baseline ([7f428f9](https://github.com/lgriffin/ESI.ts/commit/7f428f926ca5b4e6ce43ef2dd626578409c1552c))
|
|
368
|
-
* **sde:** load js-yaml and adm-zip lazily as optional peer dependencies ([22afdce](https://github.com/lgriffin/ESI.ts/commit/22afdce1cabc9c6bbe860b14194222c3c9e39872))
|
|
369
640
|
* **sde:** load js-yaml and adm-zip lazily as optional peer dependencies ([526587b](https://github.com/lgriffin/ESI.ts/commit/526587beb77612daaf77e7c2da581fa21cf7ce69))
|
|
370
|
-
* **sde:** read nested _sde.yaml metadata from ZIP archives ([1f46860](https://github.com/lgriffin/ESI.ts/commit/1f46860834a6ab9f9e4320f9eee8259e1d2b8931))
|
|
371
641
|
* **sde:** read nested _sde.yaml metadata from ZIP archives ([13d04cb](https://github.com/lgriffin/ESI.ts/commit/13d04cbc3ce74b431f94688ad293163a97f29489))
|
|
372
|
-
* **spec-audit:** close five holes that let a non-compliant spec pass ([9106978](https://github.com/lgriffin/ESI.ts/commit/910697878270e34450af40431b90d9fa605b94b9))
|
|
373
642
|
* **spec-audit:** close five holes that let a non-compliant spec pass ([df06b64](https://github.com/lgriffin/ESI.ts/commit/df06b64cd1a116c885627240931fb734954e7b2f))
|
|
374
643
|
* **spec-audit:** load Cucumber through dynamic import so the audit runs on Node 18 ([4f0f819](https://github.com/lgriffin/ESI.ts/commit/4f0f819262aa7d7f0de70bbcdfbc4b143d3b2cde))
|
|
375
644
|
* **spec-audit:** split the pure checks out so Jest can load them ([34100d7](https://github.com/lgriffin/ESI.ts/commit/34100d77101bc1d2d4c5998b1cf70b69dbeeef9d))
|
|
@@ -393,13 +662,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
393
662
|
* **ci:** run schema drift against its ratcheted baseline ([e113851](https://github.com/lgriffin/ESI.ts/commit/e1138514a174bf31f97e9303bb74c7e1e2cbcda2))
|
|
394
663
|
* **deps:** add a Dependabot cooldown for npm and GitHub Actions updates ([f595daa](https://github.com/lgriffin/ESI.ts/commit/f595daa66c0a68fe83d220694cc6d88d71cc3a2e))
|
|
395
664
|
* **deps:** bump @cucumber/gherkin from 28.0.0 to 42.0.1 ([899f128](https://github.com/lgriffin/ESI.ts/commit/899f128fbd230a81ea2613e558e16bb8ff05f28b))
|
|
396
|
-
* **deps:** bump @cucumber/messages from 24.1.0 to 34.2.1 ([bc563d4](https://github.com/lgriffin/ESI.ts/commit/bc563d4d3afedaa5ab1d914fa2afccb0486636da))
|
|
397
665
|
* **deps:** bump @cucumber/messages from 24.1.0 to 34.2.1 ([bf2414d](https://github.com/lgriffin/ESI.ts/commit/bf2414d8add5b0b872db7da21b0218a7f2cce742))
|
|
398
666
|
* **deps:** bump the minor-and-patch group with 7 updates ([7039ca7](https://github.com/lgriffin/ESI.ts/commit/7039ca7a64dae5013eb426e63905dcd36af9bf8e))
|
|
399
667
|
* **deps:** bump zod to 4.6.4 and js-yaml to 5.4.2 ([09dd9f0](https://github.com/lgriffin/ESI.ts/commit/09dd9f03888962f823f194bf7ae88ec1b6a276ca))
|
|
400
668
|
* **deps:** bundle Dependabot updates (zod, js-yaml, codeql-action) ([ea7a211](https://github.com/lgriffin/ESI.ts/commit/ea7a2113e24f90ecc3a5591bff8a23eb8b2ee5f4))
|
|
401
669
|
* **lint:** load the seam lint parser from the listed typescript-eslint package ([c87e31b](https://github.com/lgriffin/ESI.ts/commit/c87e31bd9183406838f7fbbfa7f2b984f4527d41))
|
|
402
|
-
* **lint:** ratchet wall-clock, timer and Math.random use in src/ ([8a9fb4f](https://github.com/lgriffin/ESI.ts/commit/8a9fb4fb5018c5744e57ab82f1107bdb455cdd50))
|
|
403
670
|
* **lint:** ratchet wall-clock, timer and Math.random use in src/ ([37ede1d](https://github.com/lgriffin/ESI.ts/commit/37ede1d541aa1ffad4998ef9c870ef15d75b210c))
|
|
404
671
|
* **scripts:** move the schema drift comparison into a testable core ([ba293c1](https://github.com/lgriffin/ESI.ts/commit/ba293c1f47a209161402103f924b3dc154a4bada))
|
|
405
672
|
* **scripts:** plain plurals in the schema drift ratchet messages ([99724b8](https://github.com/lgriffin/ESI.ts/commit/99724b8b578e30c858b4d3ac676d8abfa5c36477))
|
|
@@ -413,11 +680,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
413
680
|
* **bdd:** state which leg carries the 100ms latency in the fan-out Rule ([b7ac123](https://github.com/lgriffin/ESI.ts/commit/b7ac123faff9b1d36919affea8ee8d5c0ebc893a))
|
|
414
681
|
* **guides:** describe ci-success, the live tier guard, cooldown and the no-retry nightly ([605333b](https://github.com/lgriffin/ESI.ts/commit/605333b8a745a02153fc1fa810edea35f34d2aaf))
|
|
415
682
|
* **guides:** document the seam lint and the BDD-only mutation ratchet ([9d228ad](https://github.com/lgriffin/ESI.ts/commit/9d228ad549ef2c8b542eb9247bff3ebe9f8591fb))
|
|
416
|
-
* **guides:** write the charter guides and retire docs/ ([8ffb88f](https://github.com/lgriffin/ESI.ts/commit/8ffb88f471e5259ad8f31fdee67ca1624194078e))
|
|
417
683
|
* **guides:** write the charter guides and retire docs/ ([5b61eaa](https://github.com/lgriffin/ESI.ts/commit/5b61eaa41929efadf5a7233a922adc7202fd4dde))
|
|
418
684
|
* **quality-gates:** document schema drift matching, guard and baseline ([ccb1ce1](https://github.com/lgriffin/ESI.ts/commit/ccb1ce10d45c29f4c820f7c8de6779c5afb5669d))
|
|
419
685
|
* **sde:** document js-yaml and adm-zip as optional peer dependencies ([d8d8843](https://github.com/lgriffin/ESI.ts/commit/d8d884364f997d91c1bdc2d540a9170939af3832))
|
|
420
|
-
* **semver:** add a semantic versioning guide and enforce it in CLAUDE.md ([48fedaa](https://github.com/lgriffin/ESI.ts/commit/48fedaa8fdac0ddba5326dc89b31e6b781cb68a2))
|
|
421
686
|
* **semver:** add a semantic versioning guide and enforce it in CLAUDE.md ([87d391b](https://github.com/lgriffin/ESI.ts/commit/87d391b14633262c4b58e1eb3b24af1f22cbe10c))
|
|
422
687
|
|
|
423
688
|
|
|
@@ -468,9 +733,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
468
733
|
* **spec-audit:** hold step files to one step per file and ratchet the legacy ones ([405298e](https://github.com/lgriffin/ESI.ts/commit/405298e75bede0da43a83ce14ad2ba2294511475))
|
|
469
734
|
* **spec-audit:** skip the CLI fixtures where the audit cannot start ([3cb173e](https://github.com/lgriffin/ESI.ts/commit/3cb173eb3ed7a0587b4a87c9b517c0405f258fba))
|
|
470
735
|
|
|
471
|
-
|
|
736
|
+
### Added (token management detail)
|
|
472
737
|
|
|
473
|
-
|
|
738
|
+
Drafted under `[Unreleased]` before release-please took over and shipped in
|
|
739
|
+
10.0.0; the list above links the same commits.
|
|
474
740
|
|
|
475
741
|
- **`EsiTokenManager`** — higher-level auth abstraction that owns the SSO token lifecycle for one or many characters (#185). Exchanges an authorization code, decodes the character id, name and scopes from the token, persists it through a pluggable `ITokenStorage`, refreshes ahead of expiry (`refreshSkewMs`, default 60 s), coalesces concurrent refreshes per character, persists the rotated refresh token before returning, and records an SSO `invalid_grant` so later calls fail locally with `TokenRevokedError`. `createClient(characterId)` returns an `EsiClient` wired with the character's token and a refresh provider bound to the manager; `tokenProviderFor(characterId)` exposes that provider for clients built by hand
|
|
476
742
|
- **Bulk refresh** — `refreshAll({ concurrency, expiringWithinMs, signal })` refreshes stored tokens with a concurrency cap (default 5), isolates failures per character, skips tokens outside an optional staleness window, and flags SSO 429/5xx failures as `retryable` (#187). Per-character failures never reject; every character gets a `RefreshResult`. A throwing `onProgress` callback and a non-finite `concurrency` value are tolerated; only a storage adapter that cannot list tokens rejects the call
|
|
@@ -480,7 +746,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
480
746
|
- `tests/bdd/features/core/0054-token-management.feature` — 26 EARS requirements covering the above, including the refresh-versus-removal and refresh-versus-re-authorization races, which the manager resolves in favour of the newer state
|
|
481
747
|
- `examples/token-manager.ts` and `npm run example:token-manager`
|
|
482
748
|
|
|
483
|
-
## [9.9.0] - 2026-09-15
|
|
749
|
+
## [9.9.0] - 2026-09-15 (not published)
|
|
750
|
+
|
|
751
|
+
Never tagged or published to npm; everything below shipped in 10.0.0.
|
|
484
752
|
|
|
485
753
|
### Added
|
|
486
754
|
|
|
@@ -498,7 +766,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
498
766
|
|
|
499
767
|
- `toPinoLogger` detached pino's methods from their instance, so every log call through the default logger threw `Cannot read properties of undefined (reading 'Symbol(pino.msgPrefix)')`
|
|
500
768
|
|
|
501
|
-
## [9.8.
|
|
769
|
+
## [9.8.1] - 2026-09-13 (not published)
|
|
770
|
+
|
|
771
|
+
Written to `package.json` only, never tagged or published. Its CI and release
|
|
772
|
+
provenance changes shipped in 10.0.0.
|
|
773
|
+
|
|
774
|
+
## [9.8.0] - 2026-09-10 (not published)
|
|
775
|
+
|
|
776
|
+
Never tagged or published to npm; everything below shipped in 10.0.0.
|
|
502
777
|
|
|
503
778
|
No change to the published API surface — this release is entirely about how
|
|
504
779
|
the library's behaviour is specified and enforced. Consumers upgrading from
|
|
@@ -546,6 +821,81 @@ everything below.
|
|
|
546
821
|
- **Nightly audit report corruption** — `nightly-audit.yml` merged stderr into its JSON report, so a single warning line would have made every `jq` query silently report zero vulnerabilities
|
|
547
822
|
- Zod v4 deprecation: `z.ZodTypeAny` replaced with `z.ZodType`
|
|
548
823
|
|
|
824
|
+
## [9.6.2] - 2026-09-09 (not published)
|
|
825
|
+
|
|
826
|
+
Written to `package.json` only; see 9.7.0.
|
|
827
|
+
|
|
828
|
+
## [9.6.1] - 2026-08-29 (not published)
|
|
829
|
+
|
|
830
|
+
Written to `package.json` only; see 9.7.0.
|
|
831
|
+
|
|
832
|
+
## [9.6.0] - 2026-08-20
|
|
833
|
+
|
|
834
|
+
First release since 9.4.0. Versions 9.5.0, 9.5.1 and 9.5.2 were bumped in
|
|
835
|
+
`package.json` but never published, so upgrading from 9.4.0 picks up
|
|
836
|
+
everything below.
|
|
837
|
+
|
|
838
|
+
### Added
|
|
839
|
+
|
|
840
|
+
- **`CosmeticsClient` and `ParagonHubClient`** — new domain clients for the SKINR cosmetics endpoints (3) and the Paragon Hub endpoints (5), with Zod schemas and inferred types, exported from the package root. `MercenaryClient` and `SkyhooksClient` gain per-item detail endpoints (4), closing the spec drift for compatibility date 2026-08-18 ([#189](https://github.com/lgriffin/ESI.ts/issues/189))
|
|
841
|
+
- **`@lgriffin/esi.ts/sde/memory` sub-path export** — imports `MemorySdeProvider` without loading `adm-zip`, so ESM consumers (tsx, Vite) no longer hit its CommonJS `require('fs')` chain. `adm-zip` and `js-yaml` are no longer bundled ([#194](https://github.com/lgriffin/ESI.ts/issues/194))
|
|
842
|
+
- **npm provenance** — releases are published with `--provenance`, so the registry carries a signed SLSA attestation
|
|
843
|
+
|
|
844
|
+
### Security
|
|
845
|
+
|
|
846
|
+
- **ETag cache isolated per access token** — cache keys for authenticated endpoints (`requiresAuth: true`) now include a hash of the token, so a cache shared between clients for different characters can no longer serve one character's response to another. Public endpoints still share entries
|
|
847
|
+
- `setAccessToken()` and token refresh no longer clear the whole cache; with per-token keys the blanket clear was unnecessary and emptied caches shared with other clients
|
|
848
|
+
- GitHub Actions pinned by commit SHA and workflow token permissions reduced
|
|
849
|
+
|
|
850
|
+
## [9.5.2] - 2026-08-20 (not published)
|
|
851
|
+
|
|
852
|
+
Written to `package.json` only; see 9.6.0.
|
|
853
|
+
|
|
854
|
+
## [9.5.1] - 2026-08-20 (not published)
|
|
855
|
+
|
|
856
|
+
Written to `package.json` only; see 9.6.0.
|
|
857
|
+
|
|
858
|
+
## [9.5.0] - 2026-08-20 (not published)
|
|
859
|
+
|
|
860
|
+
Written to `package.json` only; see 9.6.0.
|
|
861
|
+
|
|
862
|
+
## [9.4.0] - 2026-08-19
|
|
863
|
+
|
|
864
|
+
First release since 9.1.0. Versions 9.1.1, 9.1.2, 9.1.3 and 9.2.0 were bumped
|
|
865
|
+
in `package.json` but never published, and 9.3.0 was never used, so upgrading
|
|
866
|
+
from 9.1.0 picks up everything below.
|
|
867
|
+
|
|
868
|
+
### Added
|
|
869
|
+
|
|
870
|
+
- **`@lgriffin/esi.ts/sde` sub-path export** — a standalone reader for CCP's Static Data Export with no ESI dependency. `SdeDataProvider` loads the SDE YAML files from disk into memory and `MemorySdeProvider` serves data you supply; both implement `IStaticDataProvider`. All 101 SDE entity types have typed interfaces and Zod schemas, with `SdeTestDataFactory` for test data. Examples cover type lookup, fitting, industry and the market group tree
|
|
871
|
+
- **`compatibilityDate` client option** — `EsiClientConfig.compatibilityDate` sets the `X-Compatibility-Date` header per client instead of always sending the built-in constant, so consumers can pin ESI behaviour ([#178](https://github.com/lgriffin/ESI.ts/issues/178))
|
|
872
|
+
- **`esiEnum()`** in `@lgriffin/esi.ts/schemas` — an enum schema that accepts values it does not know, so a value CCP adds to an ESI enum no longer fails response validation ([#184](https://github.com/lgriffin/ESI.ts/issues/184))
|
|
873
|
+
|
|
874
|
+
### Changed
|
|
875
|
+
|
|
876
|
+
- Types regenerated from the ESI spec
|
|
877
|
+
- Nightly security audit, OpenSSF Scorecard and an Are The Types Wrong package check added to CI; mutation testing moved from the pull request pipeline to a nightly run
|
|
878
|
+
|
|
879
|
+
### Security
|
|
880
|
+
|
|
881
|
+
- npm overrides for `esbuild` (>= 0.28.1) and `uuid` (~11.1.1) clear two advisories in the dependency tree
|
|
882
|
+
|
|
883
|
+
## [9.2.0] - 2026-08-18 (not published)
|
|
884
|
+
|
|
885
|
+
Written to `package.json` only; see 9.4.0.
|
|
886
|
+
|
|
887
|
+
## [9.1.3] - 2026-08-18 (not published)
|
|
888
|
+
|
|
889
|
+
Written to `package.json` only; see 9.4.0.
|
|
890
|
+
|
|
891
|
+
## [9.1.2] - 2026-08-18 (not published)
|
|
892
|
+
|
|
893
|
+
Written to `package.json` only; see 9.4.0.
|
|
894
|
+
|
|
895
|
+
## [9.1.1] - 2026-08-18 (not published)
|
|
896
|
+
|
|
897
|
+
Written to `package.json` only; see 9.4.0.
|
|
898
|
+
|
|
549
899
|
## [9.1.0] - 2026-08-14
|
|
550
900
|
|
|
551
901
|
### Added
|
|
@@ -591,6 +941,38 @@ everything below.
|
|
|
591
941
|
- **Response interceptor status fix** — response interceptors previously received a hardcoded 200 status; they now receive the actual HTTP status code from the response
|
|
592
942
|
- **CI consolidated** — `pr-validation.yml` merged into `ci.yml`; all PR validation now runs through the main CI pipeline
|
|
593
943
|
|
|
944
|
+
## [8.0.0] - 2026-08-05
|
|
945
|
+
|
|
946
|
+
### Breaking Changes
|
|
947
|
+
|
|
948
|
+
- **Market order types split by ESI shape** — `MarketClient.getCharacterOrders()`, `getCharacterOrderHistory()`, `getCorporationOrders()` and `getCorporationOrderHistory()` return `CharacterMarketOrder`, `CharacterMarketOrderHistory`, `CorporationMarketOrder` and `CorporationMarketOrderHistory` instead of the shared `MarketOrder`. Retype annotations on these calls
|
|
949
|
+
- **Resilience components are typed by interface** — `ApiClient.getCircuitBreaker()` / `setCircuitBreaker()` take and return `ICircuitBreaker`, and the deduplicator accessors take `IDeduplicator`, instead of the concrete classes
|
|
950
|
+
- **`CustomEsiClient` and `EsiApiFactory` honour the full configuration** — both now go through the new `configureApiClient()`, so cache, deduplication, circuit breaker, retry, interceptors and timeout settings that were silently ignored now take effect
|
|
951
|
+
- **Logging uses pino instead of winston**; the `ILogger` interface is unchanged
|
|
952
|
+
- The package now ships an ES module build (`module`) beside the CommonJS one
|
|
953
|
+
|
|
954
|
+
### Added
|
|
955
|
+
|
|
956
|
+
- **`stream*` methods on 16 more domain clients** — 57 new async-generator methods for paginated endpoints, and `BaseEsiClient.streamEndpoint()` is now public for endpoints without a named wrapper
|
|
957
|
+
- **Opt-in request body validation** — `validateRequest: true` in `EsiClientConfig` validates POST/PUT/DELETE bodies against the endpoint's `requestSchema` before sending. `EsiValidationError` gains a `direction` field (`ValidationDirection`)
|
|
958
|
+
- **`IRetryStrategy`** — inject a custom retry strategy, following the `ICircuitBreaker` and `IDeduplicator` pattern
|
|
959
|
+
- **Circuit breaker `keyStrategy`** — `'resolved'` (default) or `'template'` in `CircuitBreakerConfig` groups circuits by resolved URL or endpoint template, and an optional cleanup timer is stopped with `destroy()`
|
|
960
|
+
- **Typed `createClient()` results** — `InferEndpointResult<D>` infers each method's return type from its endpoint's response schema instead of `unknown`
|
|
961
|
+
|
|
962
|
+
### Fixed
|
|
963
|
+
|
|
964
|
+
- Pagination and the rate limiter rethrow `EsiError` and `CircuitOpenError` with their status and retry classification instead of a plain `Error`; an exhausted rate-limit wait throws a retryable 429 instead of proceeding
|
|
965
|
+
- Cursor pagination throws `TimeoutError` on abort, so `isTimeout()` recognises it
|
|
966
|
+
- Cache entries use the endpoint's spec TTL so ETags survive long enough to revalidate
|
|
967
|
+
- Circuit breaker half-open probes no longer leak their slot on an early exception
|
|
968
|
+
- Structure market requests send the correct auth flag and `Accept` header
|
|
969
|
+
- Schema fields added from the ESI spec that responses may omit (`fleet_boss_id`, `allow_access_with_standings`, `allow_alliance_access`, `position`, sovereignty `alliance_id` and `solar_system_id`) are optional
|
|
970
|
+
|
|
971
|
+
### Security
|
|
972
|
+
|
|
973
|
+
- `ApiClient` serialises without its access token, `EsiValidationError` messages no longer include unsanitised URLs, and the ETag cache is cleared on token rotation
|
|
974
|
+
- High-severity npm audit findings and CodeQL findings resolved
|
|
975
|
+
|
|
594
976
|
## [7.4.0] - 2026-07-17
|
|
595
977
|
|
|
596
978
|
### Added
|