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.
Files changed (46) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/8.9/gc.properties +0 -0
  9. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  10. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  12. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  13. package/android/.gradle/9.2.0/gc.properties +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  16. package/android/.gradle/vcs-1/gc.properties +0 -0
  17. package/android/build/reports/problems/problems-report.html +659 -0
  18. package/dist/commonjs/components/Inspector/InspectorHeader.js +87 -50
  19. package/dist/commonjs/components/Inspector/MainScreen.js +1 -0
  20. package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
  21. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
  22. package/dist/commonjs/components/Inspector/SettingsPanel.js +525 -359
  23. package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
  24. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
  25. package/dist/commonjs/constants/version.d.ts +1 -1
  26. package/dist/commonjs/constants/version.js +1 -1
  27. package/dist/commonjs/helpers/searchQueryParser.d.ts +8 -3
  28. package/dist/commonjs/helpers/searchQueryParser.js +85 -31
  29. package/dist/commonjs/helpers/telemetry.js +4 -4
  30. package/dist/commonjs/index.js +58 -7
  31. package/dist/commonjs/types/interfaces.d.ts +9 -0
  32. package/dist/esm/components/Inspector/InspectorHeader.js +87 -50
  33. package/dist/esm/components/Inspector/MainScreen.js +1 -0
  34. package/dist/esm/components/Inspector/NetworkTab.js +317 -12
  35. package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
  36. package/dist/esm/components/Inspector/SettingsPanel.js +526 -360
  37. package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
  38. package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
  39. package/dist/esm/constants/version.d.ts +1 -1
  40. package/dist/esm/constants/version.js +1 -1
  41. package/dist/esm/helpers/searchQueryParser.d.ts +8 -3
  42. package/dist/esm/helpers/searchQueryParser.js +85 -31
  43. package/dist/esm/helpers/telemetry.js +4 -4
  44. package/dist/esm/index.js +58 -7
  45. package/dist/esm/types/interfaces.d.ts +9 -0
  46. 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
- // Status Filter Check
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 (Supports method:POST, is:error, slow:>1s, status:200, headers, body, etc.)
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 (same method + url +
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.4",
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",