dio_curl_interceptor 4.0.1
dio_curl_interceptor: ^4.0.1 copied to clipboard
A Dio interceptor that converts HTTP requests to cURL commands, with pluggable sinks, UI viewer, caching, path filtering, and webhook integration.
type: changelog authority: historical status: append-only version: 4.0.0 #
4.0.0 #
⚠️ Breaking #
- All breaking changes → see Migration Guide
✨ New #
- 3-layer arch:
DioCurlInterceptor→CurlRelay→Sink(interface-based) CurlConfigsingle value objectinterceptor.sendMessage(content, targetSinks: [...])— send manual messages without HTTP requestpackage:loggingreplacesdart:developer.log- Header redaction enabled by default (
Authorization,Cookie,Set-Cookie) — opt-out viaredactAuthHeaders: false StatusFilterSinkdecorator — filter by HTTP status bucket (replacesinspectionStatus)ResponseStatus.fromCode(int)helper — map status code to bucket
🐛 Fixes #
- 1 response = 1 webhook event (V2 dispatched twice)
requestHeaders: falsenow actually worksresponse.durationreports correct elapsed time- Dedupe LRU bounded at 10k entries (V2 was unbounded)
handler.nextalways runs after interceptor body (request never hangs)
♻️ Internal #
- Removed 80% code duplication between V1/V2
- Single
InterceptSafe.run()wrapping all lifecycle bodies - Cancelled-request cleanup made race-free
3.4.0 #
🆕 New Features #
- Path Filtering: Stop specific API calls and return custom responses
- Filter Rules: Support for exact, regex, and glob pattern matching
- Mock Responses: Return custom responses for filtered paths
- Real-time Filter Editing: Interactive filter management directly in CurlViewer UI
- Add, edit, and delete filter rules in real-time
- Test filter rules against sample requests
- Filter persistence across app sessions
- Integrated filter testing tools with visual feedback
- Path Exclusions: Specify paths to never filter
🔧 Improvements #
- Enhanced Factory: Updated CurlInterceptorFactory with filter support
- Better Documentation: Added comprehensive path filtering guide
3.3.4 #
🆕 New Features #
- State Persistence: CurlViewer now remembers your search queries, filters, and preferences between sessions
🔧 Improvements #
- Significantly faster CurlViewer: Much faster loading and smoother scrolling
- Better UI responsiveness: More responsive interface with improved error handling
- Reduced memory usage: More efficient memory usage for better app performance
3.3.3 #
🆕 New Features #
- CurlBubble: Floating bubble overlay for non-intrusive cURL log viewing
- BubbleOverlay: Generic draggable bubble widget for any content
- BubbleOverlayController: Programmatic control of bubble visibility and expansion
⚠️ Breaking Changes #
CachedCurlStorage→CachedCurlService(see MIGRATION.md)- REMOVED:
CurlInterceptor.withDiscordInspector()andCurlInterceptor.withTelegramInspector()factory methods - REMOVED: File export functionality from CurlViewer
🔧 Improvements #
- Enhanced FormData handling with detailed file info in cURL output
- Improved CurlViewer UI and error handling
- Fixed Telegram HTML parsing errors
- Better code organization and maintainability
3.3.2 #
- NEW: Added SenderInfo class for custom sender information in webhook inspectors
- FEATURE: Updated all webhook inspectors to use SenderInfo for consistent API
- ENHANCEMENT: InspectorUtils now supports all webhook types via WebhookInspectorBase
- BREAKING: InspectorUtils uses webhookInspectors instead of discordInspectors
3.3.0 #
- NEW: Added Telegram webhook integration (
TelegramInspector) - BREAKING: Renamed
discordInspectors→webhookInspectorsinCurlInterceptor - FEATURE: Created extensible webhook system with
WebhookInspectorBase - FIX: Resolved linter warnings and import conflicts
- ENHANCEMENT: Added comprehensive webhook examples
3.2.6 #
- Added limitResponseField
- Removed intl dependencies
- Change the default behavior from CurlBehavior.chronological to CurlBehavior.simultaneous
3.2.5 #
- Added examples for
includeUrlsandexcludeUrlsinDiscordInspectorconfiguration. - Bug fixes
3.2.3 #
- Updated
README.mdto includediscordInspectorparameter inCurlInterceptorexample. - Added examples for
includeUrlsandexcludeUrlsinDiscordInspectorconfiguration. - Enhanced
README.mdwith a new section "Integrating InspectorUtils in Custom Interceptors" under "Option 2: Using CurlUtils directly in your own interceptor".
3.2.2 #
- Introduced
InspectorUtilsfor centralized inspection methods, currently supporting Discord webhook integration.
3.2.0 #
- Enhanced caching security by encrypting the Hive box with
flutter_secure_storage. - Updated
CurlInterceptor.discordfactory andDiscordInspectortests to useincludeUrlsandexcludeUrlsfor URI filtering.
3.1.0 #
- Introduced Discord webhook integration for remote logging and team collaboration.
3.0.3 #
- Add
onExportcallback toshowCurlViewerto allow custom handling of exported file paths.
3.0.2 #
- Add public utility functions in
CurlUtilsfor direct caching:cacheResponseandcacheError - Refactor interceptor to use these utility functions
- Improve code maintainability and reusability
3.0.0 #
- Introduce cURL cache feature.
- Limit response body length with
limitResponseBodyoption. - Update documentation and examples for new features.
2.1.0 #
- Restructure codebase for better maintainability and organization
- Enhance readability with pretty printing capabilities
- Change the default printer from
printtologfrom [dart:developer] package - Remove
useUnicodeoption as it's now handled automatically
1.1.6 #
- Remove
formatteroption fromCurlOptions. - Bug fixes and improvements
1.1.5 #
- Introduce new CurlUtils class with standalone utility methods for curl generation and logging
- Add new CurlBehavior enum for controlling logging timing (chronological/simultaneous)
- Extend CurlOptions with new configuration parameters (behavior, printer, colored)
- Update documentation and examples
1.0.0 #
- enhance log format
0.0.7 #
- update dependency for support log long text.
0.0.3 #
- more readable log
- add formatter
- update README
0.0.2 #
- Add more configuration
0.0.1 #
- Initial release