react-native-inapp-inspector 1.1.14 → 1.1.15

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 (239) hide show
  1. package/README.md +9 -34
  2. package/dist/commonjs/assets/svgAssets.d.ts +3 -0
  3. package/dist/commonjs/assets/svgAssets.js +17 -0
  4. package/dist/commonjs/components/AnalyticsEventCard.d.ts +1 -14
  5. package/dist/commonjs/components/AnalyticsEventCard.js +34 -51
  6. package/dist/commonjs/components/AnalyticsGraph.d.ts +2 -6
  7. package/dist/commonjs/components/AnalyticsGraph.js +8 -8
  8. package/dist/commonjs/components/AnalyticsTabView.d.ts +15 -0
  9. package/dist/commonjs/components/AnalyticsTabView.js +157 -0
  10. package/dist/commonjs/components/AnimatedEntrance.d.ts +1 -1
  11. package/dist/commonjs/components/AnimatedEntrance.js +2 -2
  12. package/dist/commonjs/components/ApiDetailView.d.ts +22 -0
  13. package/dist/commonjs/components/ApiDetailView.js +304 -0
  14. package/dist/commonjs/components/ApisTabView.d.ts +33 -0
  15. package/dist/commonjs/components/ApisTabView.js +235 -0
  16. package/dist/commonjs/components/CodeSnippet.d.ts +1 -5
  17. package/dist/commonjs/components/CodeSnippet.js +34 -34
  18. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -8
  19. package/dist/commonjs/components/ConsoleLogCard.js +262 -442
  20. package/dist/commonjs/components/ConsoleLogDetailView.d.ts +9 -0
  21. package/dist/commonjs/components/ConsoleLogDetailView.js +278 -0
  22. package/dist/commonjs/components/ConsoleLogsTabView.d.ts +24 -0
  23. package/dist/commonjs/components/ConsoleLogsTabView.js +354 -0
  24. package/dist/commonjs/components/DiffViewer.js +4 -2
  25. package/dist/commonjs/components/DomainHeader.js +66 -41
  26. package/dist/commonjs/components/EmptyState.d.ts +2 -2
  27. package/dist/commonjs/components/EmptyState.js +2 -2
  28. package/dist/commonjs/components/EndOfListFooter.d.ts +8 -0
  29. package/dist/commonjs/components/EndOfListFooter.js +90 -0
  30. package/dist/commonjs/components/ErrorBoundary.d.ts +5 -14
  31. package/dist/commonjs/components/ErrorBoundary.js +28 -28
  32. package/dist/commonjs/components/FloatingBubble.d.ts +14 -0
  33. package/dist/commonjs/components/FloatingBubble.js +75 -0
  34. package/dist/commonjs/components/HeadersSection.js +5 -3
  35. package/dist/commonjs/components/HighlightText.d.ts +1 -1
  36. package/dist/commonjs/components/HighlightText.js +5 -7
  37. package/dist/commonjs/components/Inspector/AnalyticsTab.d.ts +3 -0
  38. package/dist/commonjs/components/Inspector/AnalyticsTab.js +232 -0
  39. package/dist/commonjs/components/Inspector/ConsoleTab.d.ts +3 -0
  40. package/dist/commonjs/components/Inspector/ConsoleTab.js +410 -0
  41. package/dist/commonjs/components/Inspector/FabLauncher.d.ts +3 -0
  42. package/dist/commonjs/components/Inspector/FabLauncher.js +54 -0
  43. package/dist/commonjs/components/Inspector/InsightsDashboard.d.ts +3 -0
  44. package/dist/commonjs/components/Inspector/InsightsDashboard.js +619 -0
  45. package/dist/commonjs/components/Inspector/InspectorContext.d.ts +5 -0
  46. package/dist/commonjs/components/Inspector/InspectorContext.js +18 -0
  47. package/dist/commonjs/components/Inspector/InspectorHeader.d.ts +3 -0
  48. package/dist/commonjs/components/Inspector/InspectorHeader.js +452 -0
  49. package/dist/commonjs/components/Inspector/LogDetail.d.ts +3 -0
  50. package/dist/commonjs/components/Inspector/LogDetail.js +963 -0
  51. package/dist/commonjs/components/Inspector/MainScreen.d.ts +3 -0
  52. package/dist/commonjs/components/Inspector/MainScreen.js +68 -0
  53. package/dist/commonjs/components/Inspector/NavigationTracker.d.ts +3 -0
  54. package/dist/commonjs/components/Inspector/NavigationTracker.js +12 -0
  55. package/dist/commonjs/components/Inspector/NetworkDetail.d.ts +3 -0
  56. package/dist/commonjs/components/Inspector/NetworkDetail.js +405 -0
  57. package/dist/commonjs/components/Inspector/NetworkTab.d.ts +3 -0
  58. package/dist/commonjs/components/Inspector/NetworkTab.js +281 -0
  59. package/dist/commonjs/components/Inspector/ReduxTab.d.ts +3 -0
  60. package/dist/commonjs/components/Inspector/ReduxTab.js +75 -0
  61. package/dist/commonjs/components/Inspector/SettingsPanel.d.ts +3 -0
  62. package/dist/commonjs/components/Inspector/SettingsPanel.js +1476 -0
  63. package/dist/commonjs/components/Inspector/TabBar.d.ts +3 -0
  64. package/dist/commonjs/components/Inspector/TabBar.js +95 -0
  65. package/dist/commonjs/components/Inspector/WebViewTab.d.ts +3 -0
  66. package/dist/commonjs/components/Inspector/WebViewTab.js +757 -0
  67. package/dist/commonjs/components/InspectorHeader.d.ts +19 -0
  68. package/dist/commonjs/components/InspectorHeader.js +329 -0
  69. package/dist/commonjs/components/InspectorTabBar.d.ts +16 -0
  70. package/dist/commonjs/components/InspectorTabBar.js +90 -0
  71. package/dist/commonjs/components/JsonViewer.d.ts +4 -1
  72. package/dist/commonjs/components/JsonViewer.js +110 -171
  73. package/dist/commonjs/components/LogCard.js +109 -86
  74. package/dist/commonjs/components/MetaAccordion.d.ts +1 -10
  75. package/dist/commonjs/components/MetaAccordion.js +23 -21
  76. package/dist/commonjs/components/NavigationTracker.d.ts +7 -0
  77. package/dist/commonjs/components/NavigationTracker.js +76 -0
  78. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  79. package/dist/commonjs/components/NetworkIcons.js +54 -8
  80. package/dist/commonjs/components/ReduxTabView.d.ts +9 -0
  81. package/dist/commonjs/components/ReduxTabView.js +56 -0
  82. package/dist/commonjs/components/ReduxTreeView.js +241 -200
  83. package/dist/commonjs/components/SegmentedTabs.d.ts +15 -0
  84. package/dist/commonjs/components/SegmentedTabs.js +52 -0
  85. package/dist/commonjs/components/SettingsView.d.ts +13 -0
  86. package/dist/commonjs/components/SettingsView.js +328 -0
  87. package/dist/commonjs/components/TouchableScale.d.ts +2 -2
  88. package/dist/commonjs/components/TouchableScale.js +2 -2
  89. package/dist/commonjs/components/TreeNode.js +2 -2
  90. package/dist/commonjs/constants/index.js +1 -12
  91. package/dist/commonjs/constants/version.d.ts +1 -1
  92. package/dist/commonjs/constants/version.js +1 -1
  93. package/dist/commonjs/customHooks/consoleLogger.js +137 -13
  94. package/dist/commonjs/customHooks/networkLogger.d.ts +0 -1
  95. package/dist/commonjs/customHooks/networkLogger.js +0 -1
  96. package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -9
  97. package/dist/commonjs/enums/index.d.ts +39 -0
  98. package/dist/commonjs/enums/index.js +50 -0
  99. package/dist/commonjs/helpers/index.d.ts +27 -1
  100. package/dist/commonjs/helpers/index.js +187 -12
  101. package/dist/commonjs/helpers/settingsStore.d.ts +2 -24
  102. package/dist/commonjs/i18n/en.json +144 -0
  103. package/dist/commonjs/i18n/index.d.ts +2 -0
  104. package/dist/commonjs/i18n/index.js +27 -0
  105. package/dist/commonjs/i18n/locales/en.json +314 -0
  106. package/dist/commonjs/index.d.ts +1 -2
  107. package/dist/commonjs/index.js +196 -4800
  108. package/dist/commonjs/styles/AppColors.d.ts +148 -0
  109. package/dist/commonjs/styles/AppColors.js +176 -0
  110. package/dist/commonjs/styles/common.d.ts +3 -0
  111. package/dist/commonjs/styles/common.js +201 -0
  112. package/dist/commonjs/styles/index.d.ts +167 -442
  113. package/dist/commonjs/styles/index.js +239 -471
  114. package/dist/commonjs/types/enums.d.ts +9 -0
  115. package/dist/commonjs/types/enums.js +4 -0
  116. package/dist/commonjs/types/index.d.ts +4 -111
  117. package/dist/commonjs/types/index.js +16 -0
  118. package/dist/commonjs/types/interfaces.d.ts +337 -0
  119. package/dist/commonjs/types/interfaces.js +2 -0
  120. package/dist/esm/assets/svgAssets.d.ts +3 -0
  121. package/dist/esm/assets/svgAssets.js +14 -0
  122. package/dist/esm/components/AnalyticsEventCard.d.ts +1 -14
  123. package/dist/esm/components/AnalyticsEventCard.js +32 -49
  124. package/dist/esm/components/AnalyticsGraph.d.ts +2 -6
  125. package/dist/esm/components/AnalyticsGraph.js +8 -8
  126. package/dist/esm/components/AnalyticsTabView.d.ts +15 -0
  127. package/dist/esm/components/AnalyticsTabView.js +151 -0
  128. package/dist/esm/components/AnimatedEntrance.d.ts +1 -1
  129. package/dist/esm/components/AnimatedEntrance.js +2 -2
  130. package/dist/esm/components/ApiDetailView.d.ts +22 -0
  131. package/dist/esm/components/ApiDetailView.js +264 -0
  132. package/dist/esm/components/ApisTabView.d.ts +33 -0
  133. package/dist/esm/components/ApisTabView.js +196 -0
  134. package/dist/esm/components/CodeSnippet.d.ts +1 -5
  135. package/dist/esm/components/CodeSnippet.js +34 -34
  136. package/dist/esm/components/ConsoleLogCard.d.ts +1 -8
  137. package/dist/esm/components/ConsoleLogCard.js +262 -409
  138. package/dist/esm/components/ConsoleLogDetailView.d.ts +9 -0
  139. package/dist/esm/components/ConsoleLogDetailView.js +271 -0
  140. package/dist/esm/components/ConsoleLogsTabView.d.ts +24 -0
  141. package/dist/esm/components/ConsoleLogsTabView.js +348 -0
  142. package/dist/esm/components/DiffViewer.js +4 -2
  143. package/dist/esm/components/DomainHeader.js +66 -41
  144. package/dist/esm/components/EmptyState.d.ts +2 -2
  145. package/dist/esm/components/EmptyState.js +2 -2
  146. package/dist/esm/components/EndOfListFooter.d.ts +8 -0
  147. package/dist/esm/components/EndOfListFooter.js +83 -0
  148. package/dist/esm/components/ErrorBoundary.d.ts +5 -14
  149. package/dist/esm/components/ErrorBoundary.js +29 -29
  150. package/dist/esm/components/FloatingBubble.d.ts +14 -0
  151. package/dist/esm/components/FloatingBubble.js +68 -0
  152. package/dist/esm/components/HeadersSection.js +5 -3
  153. package/dist/esm/components/HighlightText.d.ts +1 -1
  154. package/dist/esm/components/HighlightText.js +5 -7
  155. package/dist/esm/components/Inspector/AnalyticsTab.d.ts +3 -0
  156. package/dist/esm/components/Inspector/AnalyticsTab.js +194 -0
  157. package/dist/esm/components/Inspector/ConsoleTab.d.ts +3 -0
  158. package/dist/esm/components/Inspector/ConsoleTab.js +372 -0
  159. package/dist/esm/components/Inspector/FabLauncher.d.ts +3 -0
  160. package/dist/esm/components/Inspector/FabLauncher.js +49 -0
  161. package/dist/esm/components/Inspector/InsightsDashboard.d.ts +3 -0
  162. package/dist/esm/components/Inspector/InsightsDashboard.js +614 -0
  163. package/dist/esm/components/Inspector/InspectorContext.d.ts +5 -0
  164. package/dist/esm/components/Inspector/InspectorContext.js +13 -0
  165. package/dist/esm/components/Inspector/InspectorHeader.d.ts +3 -0
  166. package/dist/esm/components/Inspector/InspectorHeader.js +447 -0
  167. package/dist/esm/components/Inspector/LogDetail.d.ts +3 -0
  168. package/dist/esm/components/Inspector/LogDetail.js +925 -0
  169. package/dist/esm/components/Inspector/MainScreen.d.ts +3 -0
  170. package/dist/esm/components/Inspector/MainScreen.js +63 -0
  171. package/dist/esm/components/Inspector/NavigationTracker.d.ts +3 -0
  172. package/dist/esm/components/Inspector/NavigationTracker.js +10 -0
  173. package/dist/esm/components/Inspector/NetworkDetail.d.ts +3 -0
  174. package/dist/esm/components/Inspector/NetworkDetail.js +367 -0
  175. package/dist/esm/components/Inspector/NetworkTab.d.ts +3 -0
  176. package/dist/esm/components/Inspector/NetworkTab.js +243 -0
  177. package/dist/esm/components/Inspector/ReduxTab.d.ts +3 -0
  178. package/dist/esm/components/Inspector/ReduxTab.js +70 -0
  179. package/dist/esm/components/Inspector/SettingsPanel.d.ts +3 -0
  180. package/dist/esm/components/Inspector/SettingsPanel.js +1438 -0
  181. package/dist/esm/components/Inspector/TabBar.d.ts +3 -0
  182. package/dist/esm/components/Inspector/TabBar.js +90 -0
  183. package/dist/esm/components/Inspector/WebViewTab.d.ts +3 -0
  184. package/dist/esm/components/Inspector/WebViewTab.js +752 -0
  185. package/dist/esm/components/InspectorHeader.d.ts +19 -0
  186. package/dist/esm/components/InspectorHeader.js +323 -0
  187. package/dist/esm/components/InspectorTabBar.d.ts +16 -0
  188. package/dist/esm/components/InspectorTabBar.js +84 -0
  189. package/dist/esm/components/JsonViewer.d.ts +4 -1
  190. package/dist/esm/components/JsonViewer.js +111 -172
  191. package/dist/esm/components/LogCard.js +111 -88
  192. package/dist/esm/components/MetaAccordion.d.ts +1 -10
  193. package/dist/esm/components/MetaAccordion.js +23 -21
  194. package/dist/esm/components/NavigationTracker.d.ts +7 -0
  195. package/dist/esm/components/NavigationTracker.js +39 -0
  196. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  197. package/dist/esm/components/NetworkIcons.js +46 -6
  198. package/dist/esm/components/ReduxTabView.d.ts +9 -0
  199. package/dist/esm/components/ReduxTabView.js +50 -0
  200. package/dist/esm/components/ReduxTreeView.js +243 -202
  201. package/dist/esm/components/SegmentedTabs.d.ts +15 -0
  202. package/dist/esm/components/SegmentedTabs.js +47 -0
  203. package/dist/esm/components/SettingsView.d.ts +13 -0
  204. package/dist/esm/components/SettingsView.js +321 -0
  205. package/dist/esm/components/TouchableScale.d.ts +2 -2
  206. package/dist/esm/components/TouchableScale.js +2 -2
  207. package/dist/esm/components/TreeNode.js +2 -2
  208. package/dist/esm/constants/index.js +1 -12
  209. package/dist/esm/constants/version.d.ts +1 -1
  210. package/dist/esm/constants/version.js +1 -1
  211. package/dist/esm/customHooks/consoleLogger.js +137 -13
  212. package/dist/esm/customHooks/networkLogger.d.ts +0 -1
  213. package/dist/esm/customHooks/networkLogger.js +0 -1
  214. package/dist/esm/customHooks/reduxLogger.d.ts +2 -9
  215. package/dist/esm/enums/index.d.ts +39 -0
  216. package/dist/esm/enums/index.js +47 -0
  217. package/dist/esm/helpers/index.d.ts +27 -1
  218. package/dist/esm/helpers/index.js +180 -11
  219. package/dist/esm/helpers/settingsStore.d.ts +2 -24
  220. package/dist/esm/i18n/en.json +144 -0
  221. package/dist/esm/i18n/index.d.ts +2 -0
  222. package/dist/esm/i18n/index.js +22 -0
  223. package/dist/esm/i18n/locales/en.json +314 -0
  224. package/dist/esm/index.d.ts +1 -2
  225. package/dist/esm/index.js +200 -4796
  226. package/dist/esm/styles/AppColors.d.ts +148 -0
  227. package/dist/esm/styles/AppColors.js +176 -0
  228. package/dist/esm/styles/common.d.ts +3 -0
  229. package/dist/esm/styles/common.js +197 -0
  230. package/dist/esm/styles/index.d.ts +167 -442
  231. package/dist/esm/styles/index.js +239 -471
  232. package/dist/esm/types/enums.d.ts +9 -0
  233. package/dist/esm/types/enums.js +3 -0
  234. package/dist/esm/types/index.d.ts +4 -111
  235. package/dist/esm/types/index.js +2 -1
  236. package/dist/esm/types/interfaces.d.ts +337 -0
  237. package/dist/esm/types/interfaces.js +1 -0
  238. package/example/App.tsx +88 -1
  239. package/package.json +3 -1
@@ -0,0 +1,9 @@
1
+ export type ActiveTab = 'apis' | 'analytics' | 'logs' | 'redux';
2
+ export type Method = 'ALL' | 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3
+ export type StatusFilter = 'ALL' | '2xx' | '3xx' | '4xx' | '5xx' | 'Failed';
4
+ export type SortOrder = 'newest' | 'oldest';
5
+ export type LocalFilter = 'success' | 'failed' | 'loading';
6
+ export type ModalAnimationType = 'slide' | 'fade' | 'none';
7
+ export type SettingsPage = 'main' | 'apis' | 'logs' | 'analytics' | 'redux' | null;
8
+ export type SettingsSubTab = 'module' | 'ui';
9
+ export type LogFilter = 'all' | 'info' | 'warn' | 'error' | 'user-log' | 'analytics';
@@ -0,0 +1,3 @@
1
+ // ─── Enum-like union types ────────────────────────────────────────────────────
2
+ // The codebase treats these as string enums (used for tab keys, filters, etc.).
3
+ export {};
@@ -1,54 +1,7 @@
1
- import React from 'react';
2
- export type ActiveTab = 'insights' | 'apis' | 'analytics' | 'logs' | 'webview' | 'redux';
3
- export interface ConsoleLog {
4
- id: number;
5
- type: 'info' | 'warn' | 'error';
6
- message: string;
7
- timestamp: number;
8
- caller?: string;
9
- sourceMethod?: 'log' | 'info' | 'warn' | 'error';
10
- /** #9 — number of consecutive identical logs collapsed into this entry. */
11
- duplicateCount?: number;
12
- }
13
- export interface AnalyticsEvent {
14
- id: number;
15
- name: string;
16
- screenName: string;
17
- screenClass: string;
18
- userId: string;
19
- params: Record<string, any>;
20
- userProperties: Record<string, any>;
21
- timestamp: number;
22
- source: 'firebase' | 'manual';
23
- raw?: string;
24
- trackingId?: string;
25
- clientId?: string;
26
- sessionId?: string;
27
- pageTitle?: string;
28
- pageLocation?: string;
29
- }
30
- export interface NetworkLog {
31
- id: number;
32
- url: string;
33
- method: string;
34
- status: number | null;
35
- duration: number | null;
36
- startTime: number;
37
- request?: unknown;
38
- response?: unknown;
39
- requestHeaders?: Record<string, string>;
40
- responseHeaders?: Record<string, string>;
41
- /** #9 — number of consecutive identical requests collapsed into this entry. */
42
- duplicateCount?: number;
43
- }
44
- export interface RouteInfo {
45
- path: string;
46
- params: any;
47
- }
48
- export type Method = 'ALL' | 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
49
- export type StatusFilter = 'ALL' | '2xx' | '3xx' | '4xx' | '5xx' | 'Failed';
50
- export type SortOrder = 'newest' | 'oldest';
51
- export type LocalFilter = 'success' | 'failed' | 'loading';
1
+ import type { NetworkLog } from './interfaces';
2
+ import type { LocalFilter } from './enums';
3
+ export * from './interfaces';
4
+ export * from './enums';
52
5
  export type GroupedListItem = {
53
6
  type: 'header';
54
7
  id: string;
@@ -76,63 +29,3 @@ export type DiffResult = {
76
29
  oldVal?: any;
77
30
  newVal?: any;
78
31
  };
79
- export interface CopyButtonProps {
80
- value: unknown | (() => unknown);
81
- label: string;
82
- iconType?: 'copy' | 'terminal' | 'fetch';
83
- }
84
- export interface SectionHeaderProps {
85
- title: string;
86
- value: unknown;
87
- expanded: boolean | undefined;
88
- onToggleExpand: () => void;
89
- showDiff?: boolean;
90
- isDiffing?: boolean;
91
- onToggleDiff?: () => void;
92
- showSearch?: boolean;
93
- isSearching?: boolean;
94
- onToggleSearch?: () => void;
95
- }
96
- export interface TreeNodeProps {
97
- data: unknown;
98
- name?: string | number;
99
- level?: number;
100
- search?: string;
101
- forceOpen?: boolean;
102
- defaultExpandDepth?: number;
103
- }
104
- export interface LogCardProps {
105
- item: NetworkLog;
106
- onPress: () => void;
107
- timelineMinStart: number;
108
- timelineTotalRange: number;
109
- isNew?: boolean;
110
- isSelected: boolean;
111
- onToggleSelect: (id: number) => void;
112
- searchStr?: string;
113
- }
114
- export interface MetaAccordionProps {
115
- status: number | null;
116
- statusColor: string;
117
- duration: number | null;
118
- size: string;
119
- triggeredAt: string;
120
- method?: string;
121
- contentType?: string;
122
- url?: string;
123
- }
124
- export interface HeadersSectionProps {
125
- title: string;
126
- headers: Record<string, string> | undefined;
127
- search?: string;
128
- resetKey?: string | number;
129
- }
130
- export interface SourcePageCardProps {
131
- routeInfo: RouteInfo;
132
- }
133
- export interface SectionCardProps {
134
- title?: string;
135
- count?: number;
136
- accentColor?: string;
137
- children?: React.ReactNode;
138
- }
@@ -1 +1,2 @@
1
- export {};
1
+ export * from './interfaces';
2
+ export * from './enums';
@@ -0,0 +1,337 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+ import { Animated, PanResponderInstance } from 'react-native';
4
+ import type { ActiveTab, GroupedListItem, LocalFilter, LogFilter, Method, SettingsPage, SettingsSubTab, SortOrder, StatusFilter } from './index';
5
+ export interface ConsoleLog {
6
+ id: number;
7
+ type: 'info' | 'warn' | 'error';
8
+ message: string;
9
+ timestamp: number;
10
+ caller?: string;
11
+ stack?: string;
12
+ errorStack?: string;
13
+ rawArgs?: any[];
14
+ sourceMethod?: 'log' | 'info' | 'warn' | 'error';
15
+ /** #9 — number of consecutive identical logs collapsed into this entry. */
16
+ duplicateCount?: number;
17
+ }
18
+ export interface AnalyticsEvent {
19
+ id: number;
20
+ name: string;
21
+ screenName: string;
22
+ screenClass: string;
23
+ userId: string;
24
+ params: Record<string, any>;
25
+ userProperties: Record<string, any>;
26
+ timestamp: number;
27
+ source: 'firebase' | 'manual';
28
+ raw?: string;
29
+ trackingId?: string;
30
+ clientId?: string;
31
+ sessionId?: string;
32
+ pageTitle?: string;
33
+ pageLocation?: string;
34
+ }
35
+ export interface NetworkLog {
36
+ id: number;
37
+ url: string;
38
+ method: string;
39
+ status: number | null;
40
+ duration: number | null;
41
+ startTime: number;
42
+ request?: unknown;
43
+ response?: unknown;
44
+ requestHeaders?: Record<string, string>;
45
+ responseHeaders?: Record<string, string>;
46
+ /** #9 — number of consecutive identical requests collapsed into this entry. */
47
+ duplicateCount?: number;
48
+ }
49
+ export interface RouteInfo {
50
+ path: string;
51
+ params: any;
52
+ }
53
+ export interface ReduxHistoryEntry {
54
+ id: number;
55
+ type: string;
56
+ payload: any;
57
+ timestamp: string;
58
+ affectedSlices: string[];
59
+ prevState?: any;
60
+ nextState?: any;
61
+ }
62
+ export interface InspectorStorage {
63
+ getItem: (key: string) => string | null | Promise<string | null>;
64
+ setItem: (key: string, value: string) => void | Promise<void>;
65
+ removeItem?: (key: string) => void | Promise<void>;
66
+ }
67
+ export interface PersistedSettings {
68
+ isDark?: boolean;
69
+ modalHeightPercent?: number;
70
+ modalAnimationType?: string;
71
+ tabVisibility?: Record<string, boolean>;
72
+ defaultTab?: string;
73
+ maxNetworkLogs?: number;
74
+ maxConsoleLogs?: number;
75
+ showConsoleLevels?: {
76
+ info: boolean;
77
+ warn: boolean;
78
+ error: boolean;
79
+ };
80
+ reduxAutoRefresh?: boolean;
81
+ reduxExpandDepth?: number;
82
+ showDuplicateLogs?: boolean;
83
+ }
84
+ export interface NetworkInspectorProps {
85
+ enabled?: boolean;
86
+ isEnabled?: boolean;
87
+ storage?: InspectorStorage;
88
+ navigationRef?: any;
89
+ }
90
+ export interface NavigationTrackerProps {
91
+ onStateChange: (state: any) => void;
92
+ }
93
+ export interface InspectorContextValue {
94
+ visible: boolean;
95
+ setVisible: React.Dispatch<React.SetStateAction<boolean>>;
96
+ closeModal: () => void;
97
+ isReady: boolean;
98
+ isEnabled: boolean;
99
+ modalHeightPercent: number;
100
+ setModalHeightPercent: React.Dispatch<React.SetStateAction<number>>;
101
+ modalAnimationType: 'slide' | 'fade' | 'none';
102
+ setModalAnimationType: React.Dispatch<React.SetStateAction<'slide' | 'fade' | 'none'>>;
103
+ hasNavigationContext: boolean;
104
+ setNavState: React.Dispatch<React.SetStateAction<any>>;
105
+ activeTab: ActiveTab;
106
+ switchActiveTab: (key: ActiveTab) => void;
107
+ tabVisibility: Record<ActiveTab, boolean>;
108
+ toggleTabVisibility: (key: ActiveTab) => void;
109
+ lastReadApisCount: number;
110
+ lastReadLogsCount: number;
111
+ selected: NetworkLog | null;
112
+ setSelected: React.Dispatch<React.SetStateAction<NetworkLog | null>>;
113
+ selectedEvent: AnalyticsEvent | null;
114
+ setSelectedEvent: React.Dispatch<React.SetStateAction<AnalyticsEvent | null>>;
115
+ selectedLog: ConsoleLog | null;
116
+ setSelectedLog: React.Dispatch<React.SetStateAction<ConsoleLog | null>>;
117
+ showHeaderInfo: boolean;
118
+ setShowHeaderInfo: React.Dispatch<React.SetStateAction<boolean>>;
119
+ settingsPage: SettingsPage;
120
+ setSettingsPage: React.Dispatch<React.SetStateAction<SettingsPage>>;
121
+ updateAvailable: boolean;
122
+ latestNpmVersion: string | null;
123
+ clearAnim: Animated.Value;
124
+ activePulseAnim: Animated.Value;
125
+ unreadPulseAnim: Animated.Value;
126
+ runClearAllWithAnimation: () => void;
127
+ fabPan: Animated.ValueXY;
128
+ fabPanResponder: PanResponderInstance;
129
+ fabDraggedRef: React.MutableRefObject<boolean>;
130
+ pulseAnim: Animated.Value;
131
+ fabShineAnim: Animated.Value;
132
+ logs: NetworkLog[];
133
+ filteredLogs: NetworkLog[];
134
+ groupedData: GroupedListItem[];
135
+ search: string;
136
+ setSearch: React.Dispatch<React.SetStateAction<string>>;
137
+ statusFilters: Set<StatusFilter>;
138
+ setStatusFilters: React.Dispatch<React.SetStateAction<Set<StatusFilter>>>;
139
+ methodFilters: Set<Method>;
140
+ setMethodFilters: React.Dispatch<React.SetStateAction<Set<Method>>>;
141
+ availableMethods: Method[];
142
+ sortOrder: SortOrder;
143
+ setSortOrder: React.Dispatch<React.SetStateAction<SortOrder>>;
144
+ selectedLogs: Set<number>;
145
+ toggleSelect: (id: number) => void;
146
+ minStart: number;
147
+ totalRange: number;
148
+ newLogIds: Set<number>;
149
+ toggleSectionFilter: (pageName: string, filter: LocalFilter) => void;
150
+ toggleSectionCollapse: (pageName: string) => void;
151
+ handleDelete: () => void;
152
+ isNetworkPaused: boolean;
153
+ setIsNetworkPaused: React.Dispatch<React.SetStateAction<boolean>>;
154
+ detailTitle: string;
155
+ detailDisplayUrl: string;
156
+ apiDetailActiveTab: 'metadata' | 'headers' | 'request' | 'response';
157
+ setApiDetailActiveTab: React.Dispatch<React.SetStateAction<'metadata' | 'headers' | 'request' | 'response'>>;
158
+ detailSearch: string;
159
+ setDetailSearch: React.Dispatch<React.SetStateAction<string>>;
160
+ reqExpanded: boolean | undefined;
161
+ setReqExpanded: React.Dispatch<React.SetStateAction<boolean | undefined>>;
162
+ resExpanded: boolean | undefined;
163
+ setResExpanded: React.Dispatch<React.SetStateAction<boolean | undefined>>;
164
+ showReqDiff: boolean;
165
+ setShowReqDiff: React.Dispatch<React.SetStateAction<boolean>>;
166
+ showResDiff: boolean;
167
+ setShowResDiff: React.Dispatch<React.SetStateAction<boolean>>;
168
+ prevRequestData: unknown;
169
+ prevResponseData: unknown;
170
+ logRouteMapRef: React.MutableRefObject<Map<number, RouteInfo>>;
171
+ consoleLogs: ConsoleLog[];
172
+ visibleConsoleLogs: ConsoleLog[];
173
+ filteredConsoleLogs: ConsoleLog[];
174
+ logSearch: string;
175
+ setLogSearch: React.Dispatch<React.SetStateAction<string>>;
176
+ logFilters: Set<LogFilter>;
177
+ setLogFilters: React.Dispatch<React.SetStateAction<Set<LogFilter>>>;
178
+ logCounts: Record<string, string>;
179
+ logSortOrder: SortOrder;
180
+ setLogSortOrder: React.Dispatch<React.SetStateAction<SortOrder>>;
181
+ isConsolePaused: boolean;
182
+ setIsConsolePaused: React.Dispatch<React.SetStateAction<boolean>>;
183
+ analyticsEvents: AnalyticsEvent[];
184
+ filteredAnalyticsEvents: (AnalyticsEvent & {
185
+ count?: number;
186
+ })[];
187
+ analyticsSearch: string;
188
+ setAnalyticsSearch: React.Dispatch<React.SetStateAction<string>>;
189
+ newEventIds: Set<number>;
190
+ isAnalyticsLayoutReady: boolean;
191
+ setIsAnalyticsLayoutReady: React.Dispatch<React.SetStateAction<boolean>>;
192
+ analyticsHeaderExpanded: boolean;
193
+ setAnalyticsHeaderExpanded: React.Dispatch<React.SetStateAction<boolean>>;
194
+ isAnalyticsPaused: boolean;
195
+ setIsAnalyticsPaused: React.Dispatch<React.SetStateAction<boolean>>;
196
+ reduxState: any;
197
+ setReduxState: React.Dispatch<React.SetStateAction<any>>;
198
+ reduxLastActionMap: Record<string, any>;
199
+ reduxSearch: string;
200
+ setReduxSearch: React.Dispatch<React.SetStateAction<string>>;
201
+ settingsActiveSubTab: SettingsSubTab;
202
+ setSettingsActiveSubTab: React.Dispatch<React.SetStateAction<SettingsSubTab>>;
203
+ defaultTab: ActiveTab;
204
+ setDefaultTab: React.Dispatch<React.SetStateAction<ActiveTab>>;
205
+ isDark: boolean;
206
+ setIsDark: React.Dispatch<React.SetStateAction<boolean>>;
207
+ showDuplicateLogs: boolean;
208
+ setShowDuplicateLogs: React.Dispatch<React.SetStateAction<boolean>>;
209
+ showConsoleLevels: {
210
+ info: boolean;
211
+ warn: boolean;
212
+ error: boolean;
213
+ };
214
+ setShowConsoleLevels: React.Dispatch<React.SetStateAction<{
215
+ info: boolean;
216
+ warn: boolean;
217
+ error: boolean;
218
+ }>>;
219
+ resetToDefaults: () => Promise<void>;
220
+ storage: InspectorStorage | undefined;
221
+ maxNetworkLogs: number;
222
+ setMaxNetworkLogs: React.Dispatch<React.SetStateAction<number>>;
223
+ maxConsoleLogs: number;
224
+ setMaxConsoleLogs: React.Dispatch<React.SetStateAction<number>>;
225
+ reduxAutoRefresh: boolean;
226
+ setReduxAutoRefreshState: React.Dispatch<React.SetStateAction<boolean>>;
227
+ reduxExpandDepth: number;
228
+ setReduxExpandDepth: React.Dispatch<React.SetStateAction<number>>;
229
+ }
230
+ export interface CopyButtonProps {
231
+ value: unknown | (() => unknown);
232
+ label: string;
233
+ iconType?: 'copy' | 'terminal' | 'fetch';
234
+ }
235
+ export interface SectionHeaderProps {
236
+ title: string;
237
+ value: unknown;
238
+ expanded: boolean | undefined;
239
+ onToggleExpand: () => void;
240
+ showDiff?: boolean;
241
+ isDiffing?: boolean;
242
+ onToggleDiff?: () => void;
243
+ showSearch?: boolean;
244
+ isSearching?: boolean;
245
+ onToggleSearch?: () => void;
246
+ }
247
+ export interface TreeNodeProps {
248
+ data: unknown;
249
+ name?: string | number;
250
+ level?: number;
251
+ search?: string;
252
+ forceOpen?: boolean;
253
+ defaultExpandDepth?: number;
254
+ }
255
+ export interface LogCardProps {
256
+ item: NetworkLog;
257
+ onPress: () => void;
258
+ timelineMinStart: number;
259
+ timelineTotalRange: number;
260
+ isNew?: boolean;
261
+ isSelected: boolean;
262
+ onToggleSelect: (id: number) => void;
263
+ searchStr?: string;
264
+ }
265
+ export interface MetaAccordionProps {
266
+ status: number | null | undefined;
267
+ statusColor: string;
268
+ duration: number | null | undefined;
269
+ size: string;
270
+ triggeredAt: string;
271
+ method: string;
272
+ contentType?: string;
273
+ url: string;
274
+ }
275
+ export interface HeadersSectionProps {
276
+ title: string;
277
+ headers: Record<string, string> | undefined;
278
+ search?: string;
279
+ resetKey?: string | number;
280
+ }
281
+ export interface SourcePageCardProps {
282
+ routeInfo: RouteInfo;
283
+ }
284
+ export interface SectionCardProps {
285
+ title?: string;
286
+ count?: number;
287
+ accentColor?: string;
288
+ children?: React.ReactNode;
289
+ }
290
+ export interface AnalyticsEventCardProps {
291
+ event: AnalyticsEvent & {
292
+ count?: number;
293
+ };
294
+ onPress: () => void;
295
+ isNew?: boolean;
296
+ searchStr?: string;
297
+ isFirst: boolean;
298
+ isLast: boolean;
299
+ msSincePrev?: number;
300
+ showTimestamp?: boolean;
301
+ computedScreenName?: string;
302
+ }
303
+ export interface CodeSnippetProps {
304
+ code: string;
305
+ language: 'html' | 'css' | 'javascript';
306
+ search?: string;
307
+ }
308
+ export interface AnimatedEntranceProps {
309
+ children: React.ReactNode;
310
+ delay?: number;
311
+ distance?: number;
312
+ duration?: number;
313
+ index?: number;
314
+ style?: ViewStyle | ViewStyle[];
315
+ }
316
+ export interface ConsoleLogCardProps {
317
+ item: ConsoleLog;
318
+ searchStr?: string;
319
+ }
320
+ export interface JsonContent {
321
+ header: string;
322
+ data: any;
323
+ }
324
+ export interface AnalyticsGraphProps {
325
+ event: AnalyticsEvent;
326
+ accentColor: string;
327
+ }
328
+ export interface ErrorBoundaryProps {
329
+ children: React.ReactNode;
330
+ onClose?: () => void;
331
+ onReset?: () => void;
332
+ fallbackType?: 'modal' | 'inline';
333
+ }
334
+ export interface ErrorBoundaryState {
335
+ hasError: boolean;
336
+ error: Error | null;
337
+ }
@@ -0,0 +1 @@
1
+ export {};
package/example/App.tsx CHANGED
@@ -13,7 +13,6 @@ import { NavigationContainer, createNavigationContainerRef } from '@react-naviga
13
13
  import { createNativeStackNavigator } from '@react-navigation/native-stack';
14
14
  import axios from 'axios';
15
15
  import NetworkInspector, {
16
- WebView,
17
16
  ErrorBoundary,
18
17
  connectReduxStore,
19
18
  setupNetworkLogger,
@@ -22,6 +21,7 @@ import NetworkInspector, {
22
21
  logAnalyticsEvent,
23
22
  subscribeAnalyticsEvents,
24
23
  } from 'react-native-inapp-inspector';
24
+ import {WebView} from 'react-native-webview';
25
25
 
26
26
  // ⚡ Call BEFORE any component renders so axios.create() is already patched
27
27
  setupNetworkLogger();
@@ -239,6 +239,71 @@ function HomeScreen({ navigation }: any) {
239
239
  console.error('[App] Simulated error! Critical DB connection timeout.');
240
240
  };
241
241
 
242
+ const triggerSampleAll = () => {
243
+ // Fire every sample action at once (with a few random extras)
244
+ const randomConsoleMessages = [
245
+ '[Sample] Fetching latest feed...',
246
+ '[Sample] Cache refreshed for user session',
247
+ '[Sample] Push notification permission granted',
248
+ '[Sample] Background sync completed',
249
+ ];
250
+ const randomAnalyticsEvents = [
251
+ 'screen_view',
252
+ 'button_tapped',
253
+ 'list_scrolled',
254
+ 'session_started',
255
+ ];
256
+
257
+ console.log(
258
+ `[Sample] Firing sample-all at ${new Date().toLocaleTimeString()}`,
259
+ );
260
+ console.warn('[Sample] Randomized warning: throttled API response');
261
+ console.error('[Sample] Randomized error: timeout on retry attempt #3');
262
+ console.log(
263
+ randomConsoleMessages[
264
+ Math.floor(Math.random() * randomConsoleMessages.length)
265
+ ],
266
+ );
267
+
268
+ triggerAxiosGet();
269
+ triggerAxiosPost();
270
+ triggerAxiosPut();
271
+ triggerAxiosPatch();
272
+ triggerAxiosDelete();
273
+ triggerNetworkRequest();
274
+ triggerFailedNetworkRequest();
275
+
276
+ logAnalyticsEvent(
277
+ randomAnalyticsEvents[
278
+ Math.floor(Math.random() * randomAnalyticsEvents.length)
279
+ ],
280
+ {
281
+ sample_batch: 'all',
282
+ triggered_at: new Date().toISOString(),
283
+ random_value: Math.floor(Math.random() * 1000),
284
+ },
285
+ );
286
+ logAnalyticsEvent('item_purchase', {
287
+ item_id: 'prod_999',
288
+ item_name: 'Premium Debug Kit',
289
+ price: 29.99,
290
+ currency: 'USD',
291
+ });
292
+
293
+ mockStore.dispatch({type: 'TOGGLE_SIDEBAR'});
294
+ mockStore.dispatch({type: 'UPDATE_USER_TIME'});
295
+
296
+ // Random extra fetch to spice up the flood
297
+ fetch(
298
+ `https://jsonplaceholder.typicode.com/posts/${Math.floor(
299
+ Math.random() * 8 + 1,
300
+ )}`,
301
+ )
302
+ .then(r => r.json())
303
+ .then(d => console.log('[Sample] Random fetch completed:', d.title))
304
+ .catch(e => console.error('[Sample] Random fetch failed:', e));
305
+ };
306
+
242
307
  const handleToggleSidebar = () => {
243
308
  mockStore.dispatch({ type: 'TOGGLE_SIDEBAR' });
244
309
  mockStore.dispatch({ type: 'UPDATE_USER_TIME' });
@@ -286,6 +351,28 @@ function HomeScreen({ navigation }: any) {
286
351
  </View>
287
352
  </View>
288
353
 
354
+ {/* Trigger Sample All Logs */}
355
+ <View
356
+ style={[
357
+ styles.panelCard,
358
+ { borderColor: '#22D3EE', marginBottom: 20 },
359
+ ]}>
360
+ <Text style={[styles.panelHeader, { color: '#22D3EE' }]}>
361
+ 🎲 SAMPLE ALL LOGS
362
+ </Text>
363
+ <TouchableOpacity
364
+ style={[
365
+ styles.fullWidthBtn,
366
+ { backgroundColor: '#0891B2' },
367
+ ]}
368
+ onPress={triggerSampleAll}
369
+ >
370
+ <Text style={styles.fullWidthBtnText}>
371
+ Trigger Sample All Logs At Once
372
+ </Text>
373
+ </TouchableOpacity>
374
+ </View>
375
+
289
376
  {/* Action Panel Grid */}
290
377
  <View style={styles.panelCard}>
291
378
  <Text style={styles.panelHeader}>🌐 API & NETWORK TESTS</Text>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-inapp-inspector",
3
- "version": "1.1.14",
3
+ "version": "1.1.15",
4
4
  "description": "A self-contained network, console, analytics, and webview inspector for React Native applications.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -56,6 +56,8 @@
56
56
  },
57
57
  "dependencies": {
58
58
  "@react-navigation/native": "^6.1.9",
59
+ "i18next": "^26.3.6",
60
+ "react-i18next": "^17.0.11",
59
61
  "react-native-linear-gradient": "^2.8.3",
60
62
  "react-native-svg": "^15.14.0"
61
63
  },