Skip to content

Commit 964d0d1

Browse files
Release:v16.0.3 (#636)
* Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3 * Release: v16.0.3
1 parent 22ba4f9 commit 964d0d1

File tree

28 files changed

+477
-1539
lines changed

28 files changed

+477
-1539
lines changed

melos.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ scripts:
6363
flutter: true
6464
dependsOn: pana
6565
private: false
66-
scope: instabug_flutter
6766
pods:
6867
run: cd ios && pod install --repo-update
6968
description: running pod install

packages/instabug_dio_interceptor/.gitignore

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Generated files
22
*.mocks.dart
3+
*.g.dart
4+
android/**/generated/
5+
ios/**/Generated/
36

47
# Miscellaneous
58
*.class
6-
*.lock
79
*.log
810
*.pyc
911
*.swp
@@ -19,25 +21,32 @@
1921
*.iws
2022
.idea/
2123

22-
# Visual Studio Code related
23-
.vscode/
24+
# The .vscode folder contains launch configuration and tasks you configure in
25+
# VS Code which you may wish to be included in version control, so this line
26+
# is commented out by default.
27+
#.vscode/
2428

2529
# Flutter/Dart/Pub related
2630
**/doc/api/
2731
.dart_tool/
2832
.flutter-plugins
29-
.packages
3033
.flutter-plugins-dependencies
34+
.packages
3135
.pub-cache/
3236
.pub/
37+
/pubspec.lock
3338
build/
39+
coverage/
40+
41+
# Node related
42+
node_modules
3443

3544
# Android related
3645
**/android/**/gradle-wrapper.jar
3746
**/android/.gradle
3847
**/android/captures/
39-
**/android/gradlew
40-
**/android/gradlew.bat
48+
android/gradlew
49+
android/gradlew.bat
4150
**/android/local.properties
4251
**/android/**/GeneratedPluginRegistrant.java
4352

@@ -60,10 +69,12 @@ build/
6069
**/ios/.generated/
6170
**/ios/Flutter/App.framework
6271
**/ios/Flutter/Flutter.framework
72+
**/ios/Flutter/Flutter.podspec
6373
**/ios/Flutter/Generated.xcconfig
6474
**/ios/Flutter/app.flx
6575
**/ios/Flutter/app.zip
6676
**/ios/Flutter/flutter_assets/
77+
**/ios/Flutter/flutter_export_environment.sh
6778
**/ios/ServiceDefinitions.json
6879
**/ios/Runner/GeneratedPluginRegistrant.*
6980

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Generated files
2+
*.mocks.dart
3+
4+
# E2E tests
5+
e2e/
6+
7+
# Miscellaneous
8+
*.class
9+
*.log
10+
*.pyc
11+
*.swp
12+
.DS_Store
13+
.atom/
14+
.buildlog/
15+
.history
16+
.svn/
17+
18+
# IntelliJ related
19+
*.iml
20+
*.ipr
21+
*.iws
22+
.idea/
23+
24+
# The .vscode folder contains launch configuration and tasks you configure in
25+
# VS Code which you may wish to be included in version control, so this line
26+
# is commented out by default.
27+
#.vscode/
28+
29+
# Flutter/Dart/Pub related
30+
**/doc/api/
31+
.dart_tool/
32+
.flutter-plugins
33+
.flutter-plugins-dependencies
34+
.packages
35+
.pub-cache/
36+
.pub/
37+
pubspec.lock
38+
build/
39+
coverage/
40+
41+
# Android related
42+
**/android/**/gradle-wrapper.jar
43+
**/android/.gradle
44+
**/android/captures/
45+
android/gradlew
46+
android/gradlew.bat
47+
**/android/local.properties
48+
**/android/**/GeneratedPluginRegistrant.java
49+
50+
# iOS/XCode related
51+
**/ios/**/*.mode1v3
52+
**/ios/**/*.mode2v3
53+
**/ios/**/*.moved-aside
54+
**/ios/**/*.pbxuser
55+
**/ios/**/*.perspectivev3
56+
**/ios/**/*sync/
57+
**/ios/**/.sconsign.dblite
58+
**/ios/**/.tags*
59+
**/ios/**/.vagrant/
60+
**/ios/**/DerivedData/
61+
**/ios/**/Icon?
62+
**/ios/**/Pods/
63+
**/ios/**/.symlinks/
64+
**/ios/**/profile
65+
**/ios/**/xcuserdata
66+
**/ios/.generated/
67+
**/ios/Flutter/App.framework
68+
**/ios/Flutter/Flutter.framework
69+
**/ios/Flutter/Flutter.podspec
70+
**/ios/Flutter/Generated.xcconfig
71+
**/ios/Flutter/app.flx
72+
**/ios/Flutter/app.zip
73+
**/ios/Flutter/flutter_assets/
74+
**/ios/Flutter/flutter_export_environment.sh
75+
**/ios/ServiceDefinitions.json
76+
**/ios/Runner/GeneratedPluginRegistrant.*
77+
78+
# Exceptions to above rules.
79+
!**/ios/**/default.mode1v3
80+
!**/ios/**/default.mode2v3
81+
!**/ios/**/default.pbxuser
82+
!**/ios/**/default.perspectivev3
83+
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

packages/instabug_dio_interceptor/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [2.6.1] (2025-09-09)
4+
5+
### Fixed
6+
7+
- Obfuscation of network body encoding issue ([#636](https://github.com/Instabug/Instabug-Flutter/pull/636))
8+
39
## [2.6.0] (2025-08-29)
410

511
### Added
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
12+
# IntelliJ related
13+
*.iml
14+
*.ipr
15+
*.iws
16+
.idea/
17+
18+
# The .vscode folder contains launch configuration and tasks you configure in
19+
# VS Code which you may wish to be included in version control, so this line
20+
# is commented out by default.
21+
#.vscode/
22+
23+
# Flutter/Dart/Pub related
24+
**/doc/api/
25+
**/ios/Flutter/.last_build_id
26+
.dart_tool/
27+
.flutter-plugins
28+
.flutter-plugins-dependencies
29+
.packages
30+
.pub-cache/
31+
.pub/
32+
/build/
33+
34+
# Web related
35+
lib/generated_plugin_registrant.dart
36+
37+
# Symbolication related
38+
app.*.symbols
39+
40+
# Obfuscation related
41+
app.*.map.json
42+
43+
# Android related
44+
/android/app/.cxx/

packages/instabug_dio_interceptor/example/pubspec.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ packages:
105105
path: ".."
106106
relative: true
107107
source: path
108-
version: "2.6.0"
108+
version: "2.6.1"
109109
instabug_flutter:
110110
dependency: "direct overridden"
111111
description:
112112
path: "../../instabug_flutter"
113113
relative: true
114114
source: path
115-
version: "16.0.2"
115+
version: "16.0.3"
116116
leak_tracker:
117117
dependency: transitive
118118
description:

packages/instabug_dio_interceptor/lib/instabug_dio_interceptor.dart

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:convert';
2+
13
import 'package:dio/dio.dart';
24
import 'package:instabug_flutter/instabug_flutter.dart';
35

@@ -78,31 +80,60 @@ class InstabugDioInterceptor extends Interceptor {
7880
requestBodySize =
7981
int.parse(response.requestOptions.headers['content-length'] ?? '0');
8082
} else if (response.requestOptions.data != null) {
81-
requestBodySize = response.requestOptions.data.toString().length;
83+
// Calculate actual byte size for more accurate size estimation
84+
requestBodySize = _calculateBodySize(response.requestOptions.data);
8285
}
8386

8487
var responseBodySize = 0;
8588
if (responseHeaders.containsKey('content-length')) {
8689
// ignore: avoid_dynamic_calls
8790
responseBodySize = int.parse(responseHeaders['content-length'][0] ?? '0');
8891
} else if (response.data != null) {
89-
responseBodySize = response.data.toString().length;
92+
// Calculate actual byte size for more accurate size estimation
93+
responseBodySize = _calculateBodySize(response.data);
9094
}
9195

9296
return data.copyWith(
9397
endTime: endTime,
9498
duration: endTime.difference(data.startTime).inMicroseconds,
9599
url: response.requestOptions.uri.toString(),
96100
method: response.requestOptions.method,
97-
requestBody: response.requestOptions.data.toString(),
101+
requestBody: parseBody(response.requestOptions.data),
98102
requestHeaders: response.requestOptions.headers,
99103
requestContentType: response.requestOptions.contentType,
100104
requestBodySize: requestBodySize,
101105
status: response.statusCode,
102-
responseBody: response.data.toString(),
106+
responseBody: parseBody(response.data),
103107
responseHeaders: responseHeaders,
104108
responseContentType: responseContentType,
105109
responseBodySize: responseBodySize,
106110
);
107111
}
112+
113+
String parseBody(dynamic data) {
114+
try {
115+
return jsonEncode(data);
116+
} catch (e) {
117+
return data.toString();
118+
}
119+
}
120+
121+
/// Calculates the actual byte size of the body data
122+
int _calculateBodySize(dynamic data) {
123+
if (data == null) return 0;
124+
125+
try {
126+
// For string data, get UTF-8 byte length
127+
if (data is String) {
128+
return data.codeUnits.length;
129+
}
130+
131+
// For other types, try to encode as JSON and get byte length
132+
final jsonString = jsonEncode(data);
133+
return jsonString.codeUnits.length;
134+
} catch (e) {
135+
// Fallback to string conversion if JSON encoding fails
136+
return data.toString().codeUnits.length;
137+
}
138+
}
108139
}

0 commit comments

Comments
 (0)