# Changelog

All notable changes to TypedFetch will be documented in this file.

# [Unreleased]

### Added
- Built-in mocking helpers (`tf.mock`, `tf.mockOnce`, `tf.clearMocks`, `tf.enableMocking`, `tf.disableMocking`) to short-circuit requests for tests, storybooks, and offline workflows while still feeding the type registry.

## [0.2.0] - 2025-01-20

### Added
- **SSE Streaming Support**: Native Server-Sent Events with `streamSSE()` method
- **POST Body Support for Streaming**: All streaming methods now accept request bodies for AI/ML workloads
- **Race Method**: `race()` for getting the first successful response from multiple endpoints
- **Batch Processing**: `batch()` method with concurrency control for efficient bulk operations
- **Parallel Requests**: `parallel()` method using Web Workers for true parallelism
- **Resumable Uploads**: `uploadResumable()` with adaptive chunking and progress tracking
- **Streaming Uploads**: `uploadStream()` for large file/model uploads
- **Bandwidth Throttling**: `throttled()` method using token bucket algorithm
- **Auto-Reconnecting Streams**: `streamWithReconnect()` for resilient streaming

### Changed
- Bundle size increased to 11KB gzipped (from 8KB) due to new features
- Improved TypeScript types for all new methods
- Enhanced error handling for streaming operations

### Removed
- Removed duplicate `withExponentialBackoff` implementation (already in retry logic)
- Removed AI-specific `trackTokenUsage` method (too specialized)
- Removed `parallelInference` method (replaced with generic `parallel()`)

### Fixed
- Fixed streaming methods to properly resolve relative URLs with baseURL
- Fixed TypeScript strict mode compatibility issues
- Ensured `throttled()` enforces bandwidth limits for streamed responses instead of being a no-op

## [0.1.3] - 2025-01-19

### Fixed
- Fixed streaming methods (`stream()` and `streamJSON()`) to support baseURL for relative URLs
- Fixed "Failed to parse URL" errors when using streaming with configured instances

## [0.1.2] - 2025-01-18

### Added
- Initial streaming support with `stream()` and `streamJSON()` methods
- Circuit breaker pattern for fault tolerance
- Request deduplication
- W-TinyLFU caching algorithm

## [0.1.1] - 2025-01-17

### Added
- Basic retry logic with exponential backoff
- Request/response interceptors
- Cache management

## [0.1.0] - 2025-01-16

### Added
- Initial release
- Type-safe HTTP client with Proxy-based API
- Zero dependencies
- Support for all HTTP methods
- Automatic JSON parsing
- Error handling with detailed context