react-native-inapp-inspector 2.0.4 → 2.0.5
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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/reports/problems/problems-report.html +659 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +87 -50
- package/dist/commonjs/components/Inspector/MainScreen.js +1 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/commonjs/components/Inspector/SettingsPanel.js +525 -359
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/helpers/searchQueryParser.d.ts +8 -3
- package/dist/commonjs/helpers/searchQueryParser.js +85 -31
- package/dist/commonjs/helpers/telemetry.js +4 -4
- package/dist/commonjs/index.js +58 -7
- package/dist/commonjs/types/interfaces.d.ts +9 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +87 -50
- package/dist/esm/components/Inspector/MainScreen.js +1 -0
- package/dist/esm/components/Inspector/NetworkTab.js +317 -12
- package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/esm/components/Inspector/SettingsPanel.js +526 -360
- package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/helpers/searchQueryParser.d.ts +8 -3
- package/dist/esm/helpers/searchQueryParser.js +85 -31
- package/dist/esm/helpers/telemetry.js +4 -4
- package/dist/esm/index.js +58 -7
- package/dist/esm/types/interfaces.d.ts +9 -0
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -49,6 +49,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
49
49
|
const [selected, setSelected] = useState(null);
|
|
50
50
|
const [selectedLogs, setSelectedLogs] = useState(new Set());
|
|
51
51
|
const [search, setSearch] = useState('');
|
|
52
|
+
const [searchScope, setSearchScope] = useState('all');
|
|
53
|
+
const [isRegexSearch, setIsRegexSearch] = useState(false);
|
|
54
|
+
const [isCaseSensitive, setIsCaseSensitive] = useState(false);
|
|
55
|
+
const [quickFilter, setQuickFilter] = useState('all');
|
|
52
56
|
const [detailSearch, setDetailSearch] = useState('');
|
|
53
57
|
const [reduxSearch, setReduxSearch] = useState('');
|
|
54
58
|
const [selectedReduxSlice, setSelectedReduxSlice] = useState(null);
|
|
@@ -1000,7 +1004,40 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1000
1004
|
}, [selected]);
|
|
1001
1005
|
const filteredLogs = useMemo(() => {
|
|
1002
1006
|
let result = logs.filter(log => {
|
|
1003
|
-
//
|
|
1007
|
+
// 1. Quick Filter Check (All, Errors, Success, Slow, GET, POST, GraphQL)
|
|
1008
|
+
if (quickFilter && quickFilter !== 'all') {
|
|
1009
|
+
if (quickFilter === 'errors') {
|
|
1010
|
+
const isErr = log.status === 0 ||
|
|
1011
|
+
log.status == null ||
|
|
1012
|
+
(typeof log.status === 'number' && log.status >= 400);
|
|
1013
|
+
if (!isErr)
|
|
1014
|
+
return false;
|
|
1015
|
+
}
|
|
1016
|
+
else if (quickFilter === 'success') {
|
|
1017
|
+
const isSuccess = typeof log.status === 'number' &&
|
|
1018
|
+
log.status >= 200 &&
|
|
1019
|
+
log.status < 400;
|
|
1020
|
+
if (!isSuccess)
|
|
1021
|
+
return false;
|
|
1022
|
+
}
|
|
1023
|
+
else if (quickFilter === 'slow') {
|
|
1024
|
+
if ((log.duration || 0) < 500)
|
|
1025
|
+
return false;
|
|
1026
|
+
}
|
|
1027
|
+
else if (quickFilter === 'graphql') {
|
|
1028
|
+
const isGql = (log.url || '').toLowerCase().includes('graphql') ||
|
|
1029
|
+
(log.client || '').toLowerCase().includes('graphql') ||
|
|
1030
|
+
(log.client || '').toLowerCase().includes('apollo');
|
|
1031
|
+
if (!isGql)
|
|
1032
|
+
return false;
|
|
1033
|
+
}
|
|
1034
|
+
else {
|
|
1035
|
+
if (log.method?.toUpperCase() !== quickFilter.toUpperCase()) {
|
|
1036
|
+
return false;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
// 2. Status Filter Check (from filters accordion dropdown)
|
|
1004
1041
|
if (statusFilters.size > 0) {
|
|
1005
1042
|
const matched = [...statusFilters].some(f => {
|
|
1006
1043
|
if (f === 'ALL')
|
|
@@ -1016,7 +1053,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1016
1053
|
if (!matched)
|
|
1017
1054
|
return false;
|
|
1018
1055
|
}
|
|
1019
|
-
// Method Filter Check
|
|
1056
|
+
// 3. Method Filter Check (from filters accordion dropdown)
|
|
1020
1057
|
if (methodFilters.size > 0) {
|
|
1021
1058
|
const matchedMethod = [...methodFilters].some(m => {
|
|
1022
1059
|
if (m === 'ALL')
|
|
@@ -1026,10 +1063,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1026
1063
|
if (!matchedMethod)
|
|
1027
1064
|
return false;
|
|
1028
1065
|
}
|
|
1029
|
-
// Advanced Search Query Engine Check
|
|
1066
|
+
// 4. Advanced Search Query Engine Check with Scope, Regex and Case-Sensitivity
|
|
1030
1067
|
if (search && search.trim().length > 0) {
|
|
1031
1068
|
const routePath = logRouteMapRef.current.get(log.id)?.path || '';
|
|
1032
|
-
const isMatch = matchNetworkLogQuery(log, search, routePath
|
|
1069
|
+
const isMatch = matchNetworkLogQuery(log, search, routePath, {
|
|
1070
|
+
scope: searchScope,
|
|
1071
|
+
isRegex: isRegexSearch,
|
|
1072
|
+
isCaseSensitive: isCaseSensitive,
|
|
1073
|
+
});
|
|
1033
1074
|
if (!isMatch)
|
|
1034
1075
|
return false;
|
|
1035
1076
|
}
|
|
@@ -1038,9 +1079,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1038
1079
|
if (sortOrder === 'oldest') {
|
|
1039
1080
|
result = [...result].reverse();
|
|
1040
1081
|
}
|
|
1041
|
-
// #9 — collapse consecutive identical requests
|
|
1042
|
-
// status) into one row carrying a ×N counter, unless the user opted in
|
|
1043
|
-
// to seeing every duplicate via Settings → "Show Duplicate Logs".
|
|
1082
|
+
// #9 — collapse consecutive identical requests
|
|
1044
1083
|
if (!showDuplicateLogs) {
|
|
1045
1084
|
const collapsed = [];
|
|
1046
1085
|
for (const log of result) {
|
|
@@ -1064,6 +1103,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1064
1103
|
}, [
|
|
1065
1104
|
logs,
|
|
1066
1105
|
search,
|
|
1106
|
+
searchScope,
|
|
1107
|
+
isRegexSearch,
|
|
1108
|
+
isCaseSensitive,
|
|
1109
|
+
quickFilter,
|
|
1067
1110
|
statusFilters,
|
|
1068
1111
|
methodFilters,
|
|
1069
1112
|
sortOrder,
|
|
@@ -1614,6 +1657,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1614
1657
|
groupedData,
|
|
1615
1658
|
search,
|
|
1616
1659
|
setSearch,
|
|
1660
|
+
searchScope,
|
|
1661
|
+
setSearchScope,
|
|
1662
|
+
isRegexSearch,
|
|
1663
|
+
setIsRegexSearch,
|
|
1664
|
+
isCaseSensitive,
|
|
1665
|
+
setIsCaseSensitive,
|
|
1666
|
+
quickFilter,
|
|
1667
|
+
setQuickFilter,
|
|
1617
1668
|
statusFilters,
|
|
1618
1669
|
setStatusFilters,
|
|
1619
1670
|
methodFilters,
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ViewStyle } from 'react-native';
|
|
3
3
|
import { Animated, PanResponderInstance } from 'react-native';
|
|
4
4
|
import type { ActiveTab, BreadcrumbType, CrashType, GroupedListItem, LocalFilter, LogFilter, Method, SettingsPage, SettingsSubTab, SortOrder, StatusFilter } from './index';
|
|
5
|
+
export type SearchScope = 'all' | 'url' | 'reqBody' | 'resBody' | 'headers';
|
|
5
6
|
export interface ParsedStackFrame {
|
|
6
7
|
method: string;
|
|
7
8
|
file: string;
|
|
@@ -214,6 +215,14 @@ export interface InspectorContextValue {
|
|
|
214
215
|
groupedData: GroupedListItem[];
|
|
215
216
|
search: string;
|
|
216
217
|
setSearch: React.Dispatch<React.SetStateAction<string>>;
|
|
218
|
+
searchScope: SearchScope;
|
|
219
|
+
setSearchScope: React.Dispatch<React.SetStateAction<SearchScope>>;
|
|
220
|
+
isRegexSearch: boolean;
|
|
221
|
+
setIsRegexSearch: React.Dispatch<React.SetStateAction<boolean>>;
|
|
222
|
+
isCaseSensitive: boolean;
|
|
223
|
+
setIsCaseSensitive: React.Dispatch<React.SetStateAction<boolean>>;
|
|
224
|
+
quickFilter: string;
|
|
225
|
+
setQuickFilter: React.Dispatch<React.SetStateAction<string>>;
|
|
217
226
|
statusFilters: Set<StatusFilter>;
|
|
218
227
|
setStatusFilters: React.Dispatch<React.SetStateAction<Set<StatusFilter>>>;
|
|
219
228
|
methodFilters: Set<Method>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-inapp-inspector",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "The zero-config, all-in-one in-app debugger for React Native & Expo. Inspect Network (fetch/axios), Console logs, Stack Traces, Redux State, Firebase Analytics, and JS Bundle size directly on device.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|