ispectify_http 4.3.1-dev01
ispectify_http: ^4.3.1-dev01 copied to clipboard
An additional package for http (logging and handling).
Changelog #
4.3.1-dev01 #
Added #
- Optional redaction toggle in settings (enabled by default):
ISpectDioInterceptorSettings.enableRedaction
ISpectHttpInterceptorSettings.enableRedaction
ISpectWSInterceptorSettings.enableRedaction
- Redactor-aware serialization for network data models:
ispectify_dio
:DioRequestData.toJson
,DioResponseData.toJson
,DioErrorData.toJson
now accept an optionalRedactionService
and (when provided) redact headers, data, and metadata. Per-callignoredValues
/ignoredKeys
supported.ispectify_http
:HttpRequestData.toJson
,HttpResponseData.toJson
updated similarly; redaction applied when a redactor is passed.
Enhancements #
- Apply centralized sensitive-data redaction consistently before logging and when serializing
additionalData
acrossdio
/http
/ws
interceptors. Interceptors pass their redactor into modeltoJson(...)
calls when redaction is enabled. ispectify_dio
:- Request/response/error logs redact request headers/body, response headers/body, and common metadata (
query-parameters
,extra
).FormData
bodies are represented with a safe placeholder.
- Request/response/error logs redact request headers/body, response headers/body, and common metadata (
ispectify_http
:- Request/response logs redact headers and (when parsable) JSON/string bodies; multipart request details are preserved in shape while avoiding sensitive content.
ispectify_ws
:- Interceptor respects the redaction toggle and redacts sent/received payloads when enabled.
Fixed #
- Preserve response headers shape while redacting in
ispectify_dio
(Map<String, List<String>>
) to avoid type/cast issues.
4.3.0 #
Added: #
- Add
LogsJsonService
for structuredJSON
export/import of logs and integrate sharing/import features intoISpectViewController
and UI. - Implement
DailyFileLogHistory
for file-based log persistence with daily sessions and provide related screens for browsing and sharing sessions. - Added
File Viewer
to settings sheet inISpect
screen to view and manage log files. ispectify_ws
package for WebSocket (ws package) logging withISpect
integration.
Enhancements: #
- Extend
ISpectifyFlutter.init
to accept customILogHistory
instances and disable default print logging. - Refactor file handlers (web and native) to support configurable file types and
JSON
output. - Make settings and info callback parameters optional in the app bar and conditionally render related UI.
- Add ability to open log files directly from the
ISpect
screen.
Changes: #
- Rename
ISpectifyDioLogger
toISpectDioInterceptor
for clarity and consistency with other interceptors - Rename
ISpectifyHttpLogger
toISpectHttpInterceptor
and adjust its usage in the example project - Rename
ISpectifyBlocObserver
toISpectBLocObserver
for consistency - Rename
iSpectify
tologger
and update related classes and documentation for consistency
Draggable Panel #
- Added: Position change listener API in
DraggablePanelController
(addPositionListener
/removePositionListener
). - Added: Public
dockBoundary
getter for consistent boundary logic across widget and controller. - Changed:
toggle()
now respects currentpanelState
(notinitialPanelState
). Auto-toggle on mount removed to preserve user state. Initial position is clamped and (when starting closed) docked to the nearest edge. - Fixed: Panel no longer resets to default after visibility toggles; duplicate position callbacks removed; unified docking logic.
- Performance: Batched x/y updates during drag via
setPosition(x, y)
; reduced redundant notifications and rebuilds; lifecycle safety (mounted checks) and controller rewire indidUpdateWidget
.
4.2.0 #
Added: #
- Introduce navigation flow feature to visualize app route transitions.
- Ability to share log with the applied filters in the
ISpect
screen.
Enhancements: #
- Extend
ISpectNavigatorObserver
to bufferRouteTransition
objects with unique IDs, timestamps, and structured logging using aTransitionType
enum
. - Add
RouteTransition
data model,List
extensions, androuteName
/routeType
extensions for richer routemetadata
. - Improve
ISpectOptions
equality andtoString
implementations withDeepCollectionEquality
. - Toggle default
isLogModals
behavior tofalse
for finer logging control.
4.1.9 #
Changes: #
- Replaced
LogScreen
with a generalizedISpectJsonScreen
, which now accepts aMap<String, dynamic>
JSON
input directly instead of extracting it from an object. - Refactored and migrated the
Color
tohex
string conversion utility. - Performed minor improvements and code cleanups.
4.1.6 #
Changes: #
ISpectPanelItem
->DraggablePanelItem
;ISpectPanelButtonItem
->DraggablePanelButtonItem
.- Added tooltip snackbar when long press on the panel buttons and items.
Just add
description
field to theDraggablePanelItem
orDraggablePanelButtonItem
to show the tooltip.
4.1.5 #
Enhancements: #
- Refactor
InspectorState
to modularize main child, overlay builders, and zoom state handling - Expose new zoom configuration constants and helper methods in
InspectorState
for enhanced zoom and overlay management
Changes: #
- Revise
README
instructions across all packages to showcase new initialization patterns (e.g. ISpectifyFlutter.init,ISpectJiraClient.initialize
) - Rename
ISpectifyActionItem
toISpectActionItem
and update references in docs and examples - Add
ISpectPanelItem
andISpectPanelButtonItem
models and corresponding usage samples.Records
->Models
- Refresh quick start and advanced feature code snippets to illustrate updated APIs and options
- Unify headings (Basic Setup, Custom Issue Creation, etc.) and standardize sample app flows
4.1.4 #
Enhancements: #
- Optimize
JSON
truncator to avoid expensive length calls, use correct recursion depth, and handle truncations efficiently - Extend filter search to include map keys, prevent circular loops, and streamline filter combination logic
- Refine dotted separator painter to distribute dots evenly within container bounds
CI: #
- Upgrade
actions/checkout
to v4 with full fetch depth - Harden validate_versions workflow with strict error handling,
version.config
andVERSION
checks - Switch grep to fixed-string mode and update workflow paths in
sync_versions_and_changelogs
- Remove obsolete
update_changelogs.yml
file
4.1.3 #
Infrastructure #
- Added comprehensive version management system:
- Created
version.config
as single source of truth for package versions - Added automated dependency synchronization between internal packages
- Implemented CI/CD workflows for automatic version sync on changes
- Added scripts for easy version bumping: patch, minor, major, dev versions
- Created comprehensive documentation in VERSION_MANAGEMENT.md and VERSION.md
- Created
- Added validation for package versions:
- Pre-commit hooks to prevent inconsistent versions
- Automated checks for internal dependency consistency
- Pull request validation for versions and changelogs
Enhanced #
- Refactored and improved optimization for handling very large JSON in the detailed log screen.
- Improved search and scroll to matched item functionality in the detailed log screen.
Added #
- Added a button for copying next to the JSON item (map/iterable) inside the detailed log screen.
- Added the ability to share the full log as a file .txt or quickly copy the truncated log to the clipboard.
Changes #
- UI changes in ISpect and log screens for better usability.
- Bumped dependencies to the latest versions.
4.1.2 #
4.1.1 #
Added #
- Add screen size utility to detect and adapt UI based on device screen
- Implement alternative dialog-based UI for larger screen sizes
Fixed #
- Fix issue displaying API fields correctly in the console
Enhancements #
- Implement responsive design for settings bottom sheet and log screens using screen size detection
- Improve search functionality in JSON viewer, added scrolling to the found element
Changes #
- Remove platform-specific configurations for Android and iOS in the example project
- Add macOS support for the example project
4.1.0 #
Fixed #
- Replace square bracket references with backticks in code comments and documentation across multiple packages to improve code documentation readability and consistency
4.0.9 #
Added #
- JsonTruncatorService for more robust JSON truncation and formatting
- Introduced more granular widget rendering strategies in JSON explorer
Fixed #
- Fixed potential performance bottlenecks in JSON rendering
- Improved error handling in JSON formatting and logging
- Fix analyzer issue for pub score
Enhanced #
- Refactored JSON attribute rendering to reduce widget rebuilds
- Improved performance of text highlighting in JSON viewer
- Optimized context selection and memoization in JSON explorer components
Chore #
- Cleaned up unused code and simplified complex rendering logic
- Improved code readability in JSON viewer components
4.0.6 #
Added #
- Custom Performance Overlay - Changed the approach and some improvements
- Enhanced Log Navigation - Search, highlight, and expand/collapse functionality
- New Option:
logTruncateLength
- Available inISpectifyOptions
for configurable log truncation - New Configuration:
ISpectHttpInterceptorSettings
- Added toISpectHttpInterceptor
for improved setup flexibility
Improved #
- JSON Handling - Async and lazy loading for better performance on large data structures
- Log Card Refactor - Improved readability and maintainability
- Error Handling - Added filtering for more precise issue tracking
Fixed #
- Security Cleanup - Removed
ispect_ai
package and related dependencies
4.0.5 #
Changed #
- Error display now limited to first 10,000 characters for large errors to prevent widget overload and application hanging
4.0.1 #
Breaking Changes #
ISpectScopeWrapper
Relocation - Moved insideISpectBuilder
. Now,ISpectBuilder
serves as a one-stop solutionISpect.log()
Update - Replaced withISpect.logger.log()
for improved consistency and clarity
Added #
- Language Support - Chinese (zh_CN) localization
- JSON Log Viewer - Detailed log viewing as a
JSON
tree structure - Enhanced HTTP Logs - HTTP request logging displays all details in
JSON
tree format with search and filtering - Log Descriptions - Added
logDescriptions
toISpectTheme
to add, modify, or disable descriptions in the info bottom sheet - Theme Scheme Screen - Included basic
Theme Scheme Screen
in theISpect
panel for testing
Updated ISpectify #
- Documentation - Comprehensive documentation added to the
ISpectify
class - Constructor Enhancement - Modified to accept optional components (
logger
,observer
,options
,filter
,errorHandler
,history
) - Configuration Method - Introduced
configure
method to update existing inspector instance configuration - Internal Logic - Updated to leverage new components and options effectively
Improved #
-
Bottom Sheet Revamp
- Removed
BaseBottomSheet
widget - Implemented
DraggableScrollableSheet
with configurableinitial
,min
, andmax
child sizes - Updated build method to integrate
DraggableScrollableSheet
- Adjusted layout and styling for new bottom sheet structure
- Removed
-
Filtering Enhancements
- Added
ValueNotifier
to manage filter enablement state - Introduced
SearchBar
for log filtering - Replaced
InkWell
withFilterChip
for title filtering - Adjusted layout and styling to support new search and filter components
- Added
-
Navigation Logging
- Added properties to control logging of gestures, pages, modals, and other navigation types
- Updated
didPush
,didReplace
,didPop
,didRemove
, anddidStartUserGesture
methods - Introduced
validate
method to determine if a route should be logged based on its type - Enhanced log messages with detailed route and argument information
Styling & Optimization #
- Improved consistency in terminology and formatting
- Streamlined descriptions for clarity and brevity
3.0.1 #
Fixed #
- Added
DraggablePanelController
toISpectBuilder
for controlling the panel- See the example project for implementation details
3.0.0 #
BREAKING CHANGES #
-
Forked the
Talker
package (where I'm actively contributing) and added it toISpect
asISpectify
- This was done to ease usage and reduce external dependencies
- You can now use
ISpectify
to log all application actions
-
Separated main functions into different packages:
ispect_ai
- For usingAI
as a log reporter and log description generator (useful for managers and testers)ispect_jira
- For usingJira
to create tickets directly in the applicationispect_device
- For getting device data and related informationispectify_http
- For loggingHTTP
requestsispectify_dio
- For loggingDio
requestsispectify_bloc
- ForBLoC
logging
Please see usage examples in the respective packages or in
ispect/example
For questions, contact:yelamanyelmuratov@gmail.com
2.0.8 #
Changed #
- Removed
ISpectPanelButton
andISpectPanelItem
and replaced with Records - Separated
DraggablePanel
into its own package: draggable_panel
2.0.7 #
Breaking Changes #
- Jira and AI tools are now separate packages:
- Jira: ispect_jira
See usage examples in ispect_ai/example - ISpect AI: ispect_ai
See usage examples in ispect_jira/example
- Jira: ispect_jira
2.0.5 #
Added #
- Support to view MultiPart request and response in the Detailed HTTP Logs page (HTTP package)
2.0.0 #
Fixed #
- No Navigator in context when navigatorKey is not provided
- Panel height factor calculation
1.9.8 #
1.9.6 #
1.9.5 #
Added #
-
New logging method:
ISpect.track
for custom analytics events (Amplitude, Firebase, etc.) -
Ability to change log colors and custom log icons
Example: (SuccessLog is your custom log)
theme: ISpectTheme( logColors: { SuccessLog.logKey: const Color(0xFF880E4F), }, logIcons: { ISpectifyLogType.route.key: Icons.router_rounded, SuccessLog.logKey: Icons.check_circle_rounded, }, ),
-
Google AI integration for generating log descriptions and reports
Changed #
ISpect
replaced withISpect
- UseISpect
for all logging purposes Example:ISpect.debug('Hello, ISpect!')
->ISpect.debug('Hello, ISpect!')
1.9.3 #
Added #
- New option in
ISpectOptions
:panelButtons
to add custom buttons to the panel - New options for NavigatorObserver:
isLogPages
- Toggle logging of page changesisLogModals
- Toggle logging of modal changesisLogOtherTypes
- Toggle logging of other change types
isFlutterPrintEnabled
option in ISpect.run to enable/disable Flutter print handler
1.8.9 #
UI Updates #
- Improved color picker
- Updated light log colors
- Revised ISpect page layout
- Combined actions and settings
- Various minor visual enhancements
1.7.2 #
1.7.1 #
Added #
- Updated Feedback builder for sending developer feedback
- Fixed localization issues when using Navigator inside Feedback
1.7.0 #
1.6.3 #
Changed #
- Implemented print handler
- Moved ISpect's initialization to the ISpect's run method (See example project for implementation details)
1.5.7 #
1.5.5 #
Fixed #
- Issues with Draggable button
- Enable ISpect in release builds: manage conditions with
isISpectEnabled
1.4.8 #
Changed #
- Removed shared preference (incompatible with shrink)
- Added parameters to ISpectBuilder for Draggable button customization
1.4.4 #
Added #
- New parameter
actionItems
inISpectOptions
for adding custom actions to ISpect page's actions sheet
1.4.3 #
1.4.2 #
Improved #
- Draggable button functionality with new maximum reverse point
- Added localization for Detailed HTTP Logs page
- Minor updates to Detailed HTTP Logs page
1.3.1 #
Improved #
- Refactored and optimized code
- Draggable button position now saved in cache
- Updated
analysis_options.yaml
file - Updated
README.md
file
1.2.7 #
Added #
- More customization options for
ISpect.initHandling
- Configure BLoC, Dispatcher error handling, and more during initialization
1.2.4 #
Added #
- New options for
ISpectify
detailed monitor page: reverse all logs and toggle expansion - Moved performance tracker to
Draggable
button (removed from settings sheet)
1.2.3 #
Changed #
navigatorContext
no longer required for ISpectBuilder- To use Draggable button inside ISpectScreen, pass the key (not available by default)