react-native-inapp-inspector 1.1.13 → 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 (250) 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 +120 -50
  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/analyticsLogger.d.ts +8 -0
  94. package/dist/commonjs/customHooks/analyticsLogger.js +42 -1
  95. package/dist/commonjs/customHooks/consoleLogger.js +137 -13
  96. package/dist/commonjs/customHooks/networkLogger.d.ts +0 -1
  97. package/dist/commonjs/customHooks/networkLogger.js +0 -1
  98. package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -9
  99. package/dist/commonjs/enums/index.d.ts +39 -0
  100. package/dist/commonjs/enums/index.js +50 -0
  101. package/dist/commonjs/helpers/index.d.ts +27 -1
  102. package/dist/commonjs/helpers/index.js +187 -12
  103. package/dist/commonjs/helpers/settingsStore.d.ts +2 -24
  104. package/dist/commonjs/i18n/en.json +144 -0
  105. package/dist/commonjs/i18n/index.d.ts +2 -0
  106. package/dist/commonjs/i18n/index.js +27 -0
  107. package/dist/commonjs/i18n/locales/en.json +314 -0
  108. package/dist/commonjs/index.d.ts +2 -3
  109. package/dist/commonjs/index.js +207 -4927
  110. package/dist/commonjs/styles/AppColors.d.ts +148 -0
  111. package/dist/commonjs/styles/AppColors.js +176 -0
  112. package/dist/commonjs/styles/common.d.ts +3 -0
  113. package/dist/commonjs/styles/common.js +201 -0
  114. package/dist/commonjs/styles/index.d.ts +219 -435
  115. package/dist/commonjs/styles/index.js +312 -488
  116. package/dist/commonjs/types/enums.d.ts +9 -0
  117. package/dist/commonjs/types/enums.js +4 -0
  118. package/dist/commonjs/types/index.d.ts +4 -111
  119. package/dist/commonjs/types/index.js +16 -0
  120. package/dist/commonjs/types/interfaces.d.ts +337 -0
  121. package/dist/commonjs/types/interfaces.js +2 -0
  122. package/dist/esm/assets/svgAssets.d.ts +3 -0
  123. package/dist/esm/assets/svgAssets.js +14 -0
  124. package/dist/esm/components/AnalyticsEventCard.d.ts +1 -14
  125. package/dist/esm/components/AnalyticsEventCard.js +118 -48
  126. package/dist/esm/components/AnalyticsGraph.d.ts +2 -6
  127. package/dist/esm/components/AnalyticsGraph.js +8 -8
  128. package/dist/esm/components/AnalyticsTabView.d.ts +15 -0
  129. package/dist/esm/components/AnalyticsTabView.js +151 -0
  130. package/dist/esm/components/AnimatedEntrance.d.ts +1 -1
  131. package/dist/esm/components/AnimatedEntrance.js +2 -2
  132. package/dist/esm/components/ApiDetailView.d.ts +22 -0
  133. package/dist/esm/components/ApiDetailView.js +264 -0
  134. package/dist/esm/components/ApisTabView.d.ts +33 -0
  135. package/dist/esm/components/ApisTabView.js +196 -0
  136. package/dist/esm/components/CodeSnippet.d.ts +1 -5
  137. package/dist/esm/components/CodeSnippet.js +34 -34
  138. package/dist/esm/components/ConsoleLogCard.d.ts +1 -8
  139. package/dist/esm/components/ConsoleLogCard.js +262 -409
  140. package/dist/esm/components/ConsoleLogDetailView.d.ts +9 -0
  141. package/dist/esm/components/ConsoleLogDetailView.js +271 -0
  142. package/dist/esm/components/ConsoleLogsTabView.d.ts +24 -0
  143. package/dist/esm/components/ConsoleLogsTabView.js +348 -0
  144. package/dist/esm/components/DiffViewer.js +4 -2
  145. package/dist/esm/components/DomainHeader.js +66 -41
  146. package/dist/esm/components/EmptyState.d.ts +2 -2
  147. package/dist/esm/components/EmptyState.js +2 -2
  148. package/dist/esm/components/EndOfListFooter.d.ts +8 -0
  149. package/dist/esm/components/EndOfListFooter.js +83 -0
  150. package/dist/esm/components/ErrorBoundary.d.ts +5 -14
  151. package/dist/esm/components/ErrorBoundary.js +29 -29
  152. package/dist/esm/components/FloatingBubble.d.ts +14 -0
  153. package/dist/esm/components/FloatingBubble.js +68 -0
  154. package/dist/esm/components/HeadersSection.js +5 -3
  155. package/dist/esm/components/HighlightText.d.ts +1 -1
  156. package/dist/esm/components/HighlightText.js +5 -7
  157. package/dist/esm/components/Inspector/AnalyticsTab.d.ts +3 -0
  158. package/dist/esm/components/Inspector/AnalyticsTab.js +194 -0
  159. package/dist/esm/components/Inspector/ConsoleTab.d.ts +3 -0
  160. package/dist/esm/components/Inspector/ConsoleTab.js +372 -0
  161. package/dist/esm/components/Inspector/FabLauncher.d.ts +3 -0
  162. package/dist/esm/components/Inspector/FabLauncher.js +49 -0
  163. package/dist/esm/components/Inspector/InsightsDashboard.d.ts +3 -0
  164. package/dist/esm/components/Inspector/InsightsDashboard.js +614 -0
  165. package/dist/esm/components/Inspector/InspectorContext.d.ts +5 -0
  166. package/dist/esm/components/Inspector/InspectorContext.js +13 -0
  167. package/dist/esm/components/Inspector/InspectorHeader.d.ts +3 -0
  168. package/dist/esm/components/Inspector/InspectorHeader.js +447 -0
  169. package/dist/esm/components/Inspector/LogDetail.d.ts +3 -0
  170. package/dist/esm/components/Inspector/LogDetail.js +925 -0
  171. package/dist/esm/components/Inspector/MainScreen.d.ts +3 -0
  172. package/dist/esm/components/Inspector/MainScreen.js +63 -0
  173. package/dist/esm/components/Inspector/NavigationTracker.d.ts +3 -0
  174. package/dist/esm/components/Inspector/NavigationTracker.js +10 -0
  175. package/dist/esm/components/Inspector/NetworkDetail.d.ts +3 -0
  176. package/dist/esm/components/Inspector/NetworkDetail.js +367 -0
  177. package/dist/esm/components/Inspector/NetworkTab.d.ts +3 -0
  178. package/dist/esm/components/Inspector/NetworkTab.js +243 -0
  179. package/dist/esm/components/Inspector/ReduxTab.d.ts +3 -0
  180. package/dist/esm/components/Inspector/ReduxTab.js +70 -0
  181. package/dist/esm/components/Inspector/SettingsPanel.d.ts +3 -0
  182. package/dist/esm/components/Inspector/SettingsPanel.js +1438 -0
  183. package/dist/esm/components/Inspector/TabBar.d.ts +3 -0
  184. package/dist/esm/components/Inspector/TabBar.js +90 -0
  185. package/dist/esm/components/Inspector/WebViewTab.d.ts +3 -0
  186. package/dist/esm/components/Inspector/WebViewTab.js +752 -0
  187. package/dist/esm/components/InspectorHeader.d.ts +19 -0
  188. package/dist/esm/components/InspectorHeader.js +323 -0
  189. package/dist/esm/components/InspectorTabBar.d.ts +16 -0
  190. package/dist/esm/components/InspectorTabBar.js +84 -0
  191. package/dist/esm/components/JsonViewer.d.ts +4 -1
  192. package/dist/esm/components/JsonViewer.js +111 -172
  193. package/dist/esm/components/LogCard.js +111 -88
  194. package/dist/esm/components/MetaAccordion.d.ts +1 -10
  195. package/dist/esm/components/MetaAccordion.js +23 -21
  196. package/dist/esm/components/NavigationTracker.d.ts +7 -0
  197. package/dist/esm/components/NavigationTracker.js +39 -0
  198. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  199. package/dist/esm/components/NetworkIcons.js +46 -6
  200. package/dist/esm/components/ReduxTabView.d.ts +9 -0
  201. package/dist/esm/components/ReduxTabView.js +50 -0
  202. package/dist/esm/components/ReduxTreeView.js +243 -202
  203. package/dist/esm/components/SegmentedTabs.d.ts +15 -0
  204. package/dist/esm/components/SegmentedTabs.js +47 -0
  205. package/dist/esm/components/SettingsView.d.ts +13 -0
  206. package/dist/esm/components/SettingsView.js +321 -0
  207. package/dist/esm/components/TouchableScale.d.ts +2 -2
  208. package/dist/esm/components/TouchableScale.js +2 -2
  209. package/dist/esm/components/TreeNode.js +2 -2
  210. package/dist/esm/constants/index.js +1 -12
  211. package/dist/esm/constants/version.d.ts +1 -1
  212. package/dist/esm/constants/version.js +1 -1
  213. package/dist/esm/customHooks/analyticsLogger.d.ts +8 -0
  214. package/dist/esm/customHooks/analyticsLogger.js +37 -0
  215. package/dist/esm/customHooks/consoleLogger.js +137 -13
  216. package/dist/esm/customHooks/networkLogger.d.ts +0 -1
  217. package/dist/esm/customHooks/networkLogger.js +0 -1
  218. package/dist/esm/customHooks/reduxLogger.d.ts +2 -9
  219. package/dist/esm/enums/index.d.ts +39 -0
  220. package/dist/esm/enums/index.js +47 -0
  221. package/dist/esm/helpers/index.d.ts +27 -1
  222. package/dist/esm/helpers/index.js +180 -11
  223. package/dist/esm/helpers/settingsStore.d.ts +2 -24
  224. package/dist/esm/i18n/en.json +144 -0
  225. package/dist/esm/i18n/index.d.ts +2 -0
  226. package/dist/esm/i18n/index.js +22 -0
  227. package/dist/esm/i18n/locales/en.json +314 -0
  228. package/dist/esm/index.d.ts +2 -3
  229. package/dist/esm/index.js +207 -4923
  230. package/dist/esm/styles/AppColors.d.ts +148 -0
  231. package/dist/esm/styles/AppColors.js +176 -0
  232. package/dist/esm/styles/common.d.ts +3 -0
  233. package/dist/esm/styles/common.js +197 -0
  234. package/dist/esm/styles/index.d.ts +219 -435
  235. package/dist/esm/styles/index.js +312 -488
  236. package/dist/esm/types/enums.d.ts +9 -0
  237. package/dist/esm/types/enums.js +3 -0
  238. package/dist/esm/types/index.d.ts +4 -111
  239. package/dist/esm/types/index.js +2 -1
  240. package/dist/esm/types/interfaces.d.ts +337 -0
  241. package/dist/esm/types/interfaces.js +1 -0
  242. package/example/App.tsx +88 -1
  243. package/example/android/app/build.gradle +29 -1
  244. package/example/android/app/src/main/java/com/example/MainApplication.kt +25 -0
  245. package/example/android/build.gradle +31 -4
  246. package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  247. package/example/android/gradle.properties +1 -0
  248. package/example/android/settings.gradle +20 -1
  249. package/example/package-lock.json +1 -1
  250. package/package.json +3 -1
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MainScreen: () => React.JSX.Element;
3
+ export default MainScreen;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_native_1 = require("react-native");
8
+ const InspectorContext_1 = require("./InspectorContext");
9
+ const ErrorBoundary_1 = __importDefault(require("../ErrorBoundary"));
10
+ const FabLauncher_1 = __importDefault(require("./FabLauncher"));
11
+ const InspectorHeader_1 = __importDefault(require("./InspectorHeader"));
12
+ const TabBar_1 = __importDefault(require("./TabBar"));
13
+ const NetworkTab_1 = __importDefault(require("./NetworkTab"));
14
+ const NetworkDetail_1 = __importDefault(require("./NetworkDetail"));
15
+ const LogDetail_1 = __importDefault(require("./LogDetail"));
16
+ const ConsoleTab_1 = __importDefault(require("./ConsoleTab"));
17
+ const AnalyticsTab_1 = __importDefault(require("./AnalyticsTab"));
18
+ const ReduxTab_1 = __importDefault(require("./ReduxTab"));
19
+ const SettingsPanel_1 = __importDefault(require("./SettingsPanel"));
20
+ const styles_1 = __importDefault(require("../../styles"));
21
+ const AppColors_1 = require("../../styles/AppColors");
22
+ const NavigationTracker_1 = __importDefault(require("./NavigationTracker"));
23
+ const MainScreen = () => {
24
+ const { visible, modalAnimationType, closeModal, modalHeightPercent, selected, selectedEvent, selectedLog, settingsPage, activeTab, isReady, isEnabled, hasNavigationContext, setNavState, } = (0, InspectorContext_1.useInspector)();
25
+ return (<>
26
+ {isEnabled && <FabLauncher_1.default />}
27
+ <react_native_1.Modal visible={visible} animationType={modalAnimationType} transparent>
28
+ {visible && (<ErrorBoundary_1.default onClose={closeModal}>
29
+ <react_native_1.View style={styles_1.default.modalBackdrop}>
30
+ <react_native_1.Pressable style={styles_1.default.modalBackdropPressable} onPress={closeModal}/>
31
+ <react_native_1.View style={[
32
+ styles_1.default.modalContentCard,
33
+ { height: `${modalHeightPercent}%` },
34
+ ]}>
35
+ <react_native_1.StatusBar translucent backgroundColor="transparent" barStyle="light-content"/>
36
+
37
+ <InspectorHeader_1.default />
38
+
39
+ {/* ─── Horizontal Scrollable Tab Bar inside Content ─── */}
40
+ {selected == null &&
41
+ selectedEvent == null &&
42
+ selectedLog == null &&
43
+ settingsPage === null ? (<TabBar_1.default />) : null}
44
+
45
+ {isReady ? (activeTab === 'analytics' ? (<AnalyticsTab_1.default />) : activeTab === 'apis' && selected == null ? (<NetworkTab_1.default />) : activeTab === 'logs' && selectedLog == null ? (<ConsoleTab_1.default />) : activeTab === 'logs' ? (<LogDetail_1.default />) : activeTab === 'redux' ? (<ReduxTab_1.default />) : (<NetworkDetail_1.default />)) : (<react_native_1.View style={styles_1.default.empty}>
46
+ <react_native_1.ActivityIndicator size="large" color={AppColors_1.AppColors.purple}/>
47
+ <react_native_1.Text style={[styles_1.default.emptySub, { marginTop: 12 }]}>
48
+ Loading logs...
49
+ </react_native_1.Text>
50
+ </react_native_1.View>)}
51
+
52
+ {settingsPage !== null && (<react_native_1.View style={[
53
+ react_native_1.StyleSheet.absoluteFill,
54
+ {
55
+ backgroundColor: AppColors_1.AppColors.grayBackground,
56
+ zIndex: 99999,
57
+ },
58
+ ]}>
59
+ <SettingsPanel_1.default />
60
+ </react_native_1.View>)}
61
+ </react_native_1.View>
62
+ </react_native_1.View>
63
+ </ErrorBoundary_1.default>)}
64
+ {hasNavigationContext && (<NavigationTracker_1.default onStateChange={setNavState}/>)}
65
+ </react_native_1.Modal>
66
+ </>);
67
+ };
68
+ exports.default = MainScreen;
@@ -0,0 +1,3 @@
1
+ import { NavigationTrackerProps } from '../../types';
2
+ declare const NavigationTracker: ({ onStateChange }: NavigationTrackerProps) => null;
3
+ export default NavigationTracker;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ const native_1 = require("@react-navigation/native");
5
+ const NavigationTracker = ({ onStateChange }) => {
6
+ const navState = (0, native_1.useNavigationState)(state => state);
7
+ (0, react_1.useEffect)(() => {
8
+ onStateChange(navState);
9
+ }, [navState, onStateChange]);
10
+ return null;
11
+ };
12
+ exports.default = NavigationTracker;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const NetworkDetail: () => React.JSX.Element;
3
+ export default NetworkDetail;
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const react_1 = __importDefault(require("react"));
40
+ const react_i18next_1 = require("react-i18next");
41
+ const react_native_1 = require("react-native");
42
+ const react_native_svg_1 = __importStar(require("react-native-svg"));
43
+ const InspectorContext_1 = require("./InspectorContext");
44
+ const TouchableScale_1 = __importDefault(require("../TouchableScale"));
45
+ const SegmentedTabs_1 = __importDefault(require("../SegmentedTabs"));
46
+ const MetaAccordion_1 = __importDefault(require("../MetaAccordion"));
47
+ const HeadersSection_1 = __importDefault(require("../HeadersSection"));
48
+ const SourcePageCard_1 = __importDefault(require("../SourcePageCard"));
49
+ const SectionHeader_1 = __importDefault(require("../SectionHeader"));
50
+ const JsonViewer_1 = __importDefault(require("../JsonViewer"));
51
+ const DiffViewer_1 = __importDefault(require("../DiffViewer"));
52
+ const CopyButton_1 = __importDefault(require("../CopyButton"));
53
+ const styles_1 = __importDefault(require("../../styles"));
54
+ const AppColors_1 = require("../../styles/AppColors");
55
+ const AppFonts_1 = require("../../styles/AppFonts");
56
+ const constants_1 = require("../../constants");
57
+ const helpers_1 = require("../../helpers");
58
+ const NetworkIcons_1 = require("../NetworkIcons");
59
+ const NetworkDetail = () => {
60
+ const { t } = (0, react_i18next_1.useTranslation)();
61
+ const { selected, detailDisplayUrl, apiDetailActiveTab, setApiDetailActiveTab, detailSearch, setDetailSearch, reqExpanded, setReqExpanded, resExpanded, setResExpanded, showReqDiff, setShowReqDiff, showResDiff, setShowResDiff, prevRequestData, prevResponseData, logRouteMapRef, } = (0, InspectorContext_1.useInspector)();
62
+ if (!selected)
63
+ return null;
64
+ return (<react_native_1.View style={{ flex: 1 }}>
65
+ {/* Non-scrollable details header */}
66
+ <react_native_1.View style={{ paddingHorizontal: 6, paddingTop: 4 }}>
67
+ <react_native_1.View style={styles_1.default.detailInfoBar}>
68
+ {(() => {
69
+ let schemeStr = '';
70
+ let hostStr = '';
71
+ let pathStr = detailDisplayUrl;
72
+ let queryStr = '';
73
+ try {
74
+ // Simple parsing fallback for React Native environments
75
+ const qIndex = detailDisplayUrl.indexOf('?');
76
+ let cleanUrlForParsing = detailDisplayUrl;
77
+ if (qIndex !== -1) {
78
+ pathStr = detailDisplayUrl.substring(0, qIndex);
79
+ queryStr = detailDisplayUrl.substring(qIndex);
80
+ cleanUrlForParsing = pathStr;
81
+ }
82
+ const schemeIndex = cleanUrlForParsing.indexOf('://');
83
+ if (schemeIndex !== -1) {
84
+ schemeStr = cleanUrlForParsing.substring(0, schemeIndex + 3);
85
+ const withoutScheme = cleanUrlForParsing.substring(schemeIndex + 3);
86
+ const firstSlash = withoutScheme.indexOf('/');
87
+ if (firstSlash !== -1) {
88
+ hostStr = withoutScheme.substring(0, firstSlash);
89
+ pathStr = withoutScheme.substring(firstSlash);
90
+ }
91
+ else {
92
+ hostStr = withoutScheme;
93
+ pathStr = '/';
94
+ }
95
+ }
96
+ else {
97
+ const firstSlash = cleanUrlForParsing.indexOf('/');
98
+ if (firstSlash !== -1) {
99
+ hostStr = cleanUrlForParsing.substring(0, firstSlash);
100
+ pathStr = cleanUrlForParsing.substring(firstSlash);
101
+ }
102
+ else if (cleanUrlForParsing) {
103
+ hostStr = cleanUrlForParsing;
104
+ pathStr = '/';
105
+ }
106
+ }
107
+ }
108
+ catch (e) { }
109
+ return (<>
110
+ <react_native_1.View style={styles_1.default.detailInfoTop}>
111
+ <react_native_1.View style={{
112
+ flexDirection: 'row',
113
+ alignItems: 'center',
114
+ gap: 8,
115
+ }}>
116
+ <react_native_1.View style={[
117
+ styles_1.default.methodBadge,
118
+ {
119
+ backgroundColor: constants_1.METHOD_COLORS[selected.method] ?? constants_1.METHOD_COLORS.ALL,
120
+ },
121
+ ]}>
122
+ <react_native_1.Text style={[
123
+ styles_1.default.methodBadgeText,
124
+ {
125
+ color: AppColors_1.AppColors.white,
126
+ },
127
+ ]}>
128
+ {selected.method}
129
+ </react_native_1.Text>
130
+ </react_native_1.View>
131
+
132
+ {selected.status != null && (<react_native_1.View style={[
133
+ styles_1.default.chip,
134
+ {
135
+ backgroundColor: selected.status === 0
136
+ ? `${AppColors_1.AppColors.errorColor}15`
137
+ : `${(0, helpers_1.getStatusColor)(selected.status)}15`,
138
+ borderColor: selected.status === 0
139
+ ? `${AppColors_1.AppColors.errorColor}40`
140
+ : `${(0, helpers_1.getStatusColor)(selected.status)}40`,
141
+ },
142
+ ]}>
143
+ {selected.status === 0 ? (<NetworkIcons_1.FailIcon size={8} color={AppColors_1.AppColors.errorColor}/>) : (<react_native_svg_1.default width={6} height={6} viewBox="0 0 10 10" fill="none">
144
+ <react_native_svg_1.Circle cx="5" cy="5" r="5" fill={(0, helpers_1.getStatusColor)(selected.status)}/>
145
+ </react_native_svg_1.default>)}
146
+ <react_native_1.Text style={[
147
+ styles_1.default.chipText,
148
+ {
149
+ color: selected.status === 0
150
+ ? AppColors_1.AppColors.errorColor
151
+ : (0, helpers_1.getStatusColor)(selected.status),
152
+ },
153
+ ]}>
154
+ {selected.status === 0
155
+ ? 'Failed'
156
+ : String(selected.status)}
157
+ </react_native_1.Text>
158
+ </react_native_1.View>)}
159
+
160
+ {selected.duration != null && (<react_native_1.View style={[
161
+ styles_1.default.chip,
162
+ {
163
+ backgroundColor: `${AppColors_1.AppColors.purple}14`,
164
+ borderColor: `${AppColors_1.AppColors.purple}2E`,
165
+ },
166
+ ]}>
167
+ <react_native_1.Text style={[
168
+ styles_1.default.chipText,
169
+ { color: AppColors_1.AppColors.purple },
170
+ ]}>
171
+ {selected.duration}ms
172
+ </react_native_1.Text>
173
+ </react_native_1.View>)}
174
+ </react_native_1.View>
175
+ <react_native_1.View style={styles_1.default.detailInfoRight}>
176
+ <TouchableScale_1.default style={styles_1.default.iconSquareBtn} onPress={() => react_native_1.Linking.openURL(detailDisplayUrl)} hitSlop={12}>
177
+ <NetworkIcons_1.GlobeIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
178
+ </TouchableScale_1.default>
179
+ <CopyButton_1.default value={(0, helpers_1.getFetchCommand)(selected)} label="fetch()" iconType="fetch"/>
180
+ <CopyButton_1.default value={(0, helpers_1.getCurlCommand)(selected)} label="cURL" iconType="terminal"/>
181
+ <CopyButton_1.default value={detailDisplayUrl} label="URL"/>
182
+ </react_native_1.View>
183
+ </react_native_1.View>
184
+
185
+ <react_native_1.Pressable style={{
186
+ backgroundColor: AppColors_1.AppColors.grayBackground,
187
+ borderRadius: 10,
188
+ borderWidth: 1,
189
+ borderColor: AppColors_1.AppColors.dividerColor,
190
+ padding: 10,
191
+ marginTop: 6,
192
+ }} onPress={() => react_native_1.Linking.openURL(detailDisplayUrl)}>
193
+ <react_native_1.View style={{
194
+ flexDirection: 'row',
195
+ alignItems: 'center',
196
+ justifyContent: 'space-between',
197
+ marginBottom: 2,
198
+ }}>
199
+ <react_native_1.Text style={{
200
+ fontFamily: AppFonts_1.AppFonts.interMedium,
201
+ fontSize: 10,
202
+ color: AppColors_1.AppColors.grayTextWeak,
203
+ flex: 1,
204
+ }} numberOfLines={1}>
205
+ {schemeStr ? (<>
206
+ <react_native_1.Text style={{
207
+ color: AppColors_1.AppColors.slate400,
208
+ fontFamily: AppFonts_1.AppFonts.interRegular,
209
+ }}>
210
+ {schemeStr}
211
+ </react_native_1.Text>
212
+ {hostStr}
213
+ </>) : (hostStr || 'API Endpoint')}
214
+ </react_native_1.Text>
215
+ {queryStr ? (<react_native_1.View style={{
216
+ backgroundColor: `${AppColors_1.AppColors.purple}14`,
217
+ paddingHorizontal: 5,
218
+ paddingVertical: 1,
219
+ borderRadius: 4,
220
+ }}>
221
+ <react_native_1.Text style={{
222
+ fontFamily: AppFonts_1.AppFonts.interBold,
223
+ fontSize: 8.5,
224
+ color: AppColors_1.AppColors.purple,
225
+ }}>
226
+ {t('network.queryParams')}
227
+ </react_native_1.Text>
228
+ </react_native_1.View>) : null}
229
+ </react_native_1.View>
230
+ <react_native_1.Text selectable={true} style={{
231
+ fontFamily: AppFonts_1.AppFonts.interBold,
232
+ fontSize: 12,
233
+ color: AppColors_1.AppColors.primaryBlack,
234
+ marginTop: 2,
235
+ }} numberOfLines={2}>
236
+ {pathStr}
237
+ </react_native_1.Text>
238
+ {queryStr ? (<react_native_1.Text selectable={true} style={{
239
+ fontFamily: AppFonts_1.AppFonts.interRegular,
240
+ fontSize: 10,
241
+ color: AppColors_1.AppColors.grayTextWeak,
242
+ marginTop: 4,
243
+ }} numberOfLines={1}>
244
+ {queryStr}
245
+ </react_native_1.Text>) : null}
246
+ </react_native_1.Pressable>
247
+ </>);
248
+ })()}
249
+ </react_native_1.View>
250
+ </react_native_1.View>
251
+
252
+ {/* Sticky Segment Control */}
253
+ <SegmentedTabs_1.default tabs={[
254
+ {
255
+ key: 'metadata',
256
+ label: t('network.detailTabs.metadata'),
257
+ icon: (isActive) => (<NetworkIcons_1.StatusIcon color={isActive ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>),
258
+ },
259
+ {
260
+ key: 'headers',
261
+ label: t('network.detailTabs.headers'),
262
+ icon: (isActive) => (<NetworkIcons_1.HeadersIcon color={isActive ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>),
263
+ },
264
+ ...(selected.request != null
265
+ ? [
266
+ {
267
+ key: 'request',
268
+ label: t('network.detailTabs.request'),
269
+ icon: (isActive) => (<NetworkIcons_1.RequestIcon color={isActive ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>),
270
+ },
271
+ ]
272
+ : []),
273
+ {
274
+ key: 'response',
275
+ label: t('network.detailTabs.response'),
276
+ icon: (isActive) => (<NetworkIcons_1.ResponseIcon color={isActive ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>),
277
+ },
278
+ ]} activeKey={apiDetailActiveTab} onChange={tab => {
279
+ (0, InspectorContext_1.animateNextLayout)();
280
+ setApiDetailActiveTab(tab);
281
+ }} style={{ marginHorizontal: 6, marginBottom: 10, marginTop: 6 }}/>
282
+
283
+ {/* Scrollable Tab Content */}
284
+ <react_native_1.ScrollView style={styles_1.default.detailScroll} contentContainerStyle={{
285
+ paddingHorizontal: 6,
286
+ paddingBottom: 24,
287
+ }} showsVerticalScrollIndicator={true}>
288
+ {apiDetailActiveTab === 'metadata' && (<>
289
+ <MetaAccordion_1.default status={selected.status} statusColor={(0, helpers_1.getStatusColor)(selected.status)} duration={selected.duration} size={(0, helpers_1.getSize)(selected.response)} triggeredAt={(0, helpers_1.formatDateTime)(selected.startTime)} method={selected.method} contentType={selected.responseHeaders?.['content-type'] ||
290
+ selected.responseHeaders?.['Content-Type']} url={selected.url}/>
291
+
292
+ {(() => {
293
+ const routeInfo = logRouteMapRef.current.get(selected.id);
294
+ if (!routeInfo || routeInfo.path === 'Navigators')
295
+ return null;
296
+ return <SourcePageCard_1.default routeInfo={routeInfo}/>;
297
+ })()}
298
+
299
+ {(() => {
300
+ const cType = selected.responseHeaders?.['content-type'] ||
301
+ selected.responseHeaders?.['Content-Type'];
302
+ if (cType?.includes('image/')) {
303
+ return (<react_native_1.View style={styles_1.default.imagePreviewWrapper}>
304
+ <react_native_1.Image source={{ uri: selected.url }} style={styles_1.default.imagePreview} resizeMode="contain"/>
305
+ <TouchableScale_1.default style={styles_1.default.imageDownloadBtn} onPress={() => react_native_1.Linking.openURL(selected.url)} hitSlop={10}>
306
+ <NetworkIcons_1.DownloadIcon color={AppColors_1.AppColors.purple} size={18}/>
307
+ </TouchableScale_1.default>
308
+ </react_native_1.View>);
309
+ }
310
+ return null;
311
+ })()}
312
+ </>)}
313
+
314
+ {apiDetailActiveTab === 'headers' && (<>
315
+ <react_native_1.View style={styles_1.default.detailSearchRow}>
316
+ <react_native_1.View style={styles_1.default.detailSearchBox}>
317
+ <react_native_1.TextInput placeholder={t('network.searchHeaders')} placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={detailSearch} onChangeText={setDetailSearch} style={styles_1.default.detailSearchInput} autoCorrect={false} autoCapitalize="none"/>
318
+ {detailSearch.length > 0 && (<react_native_1.Pressable onPress={() => setDetailSearch('')} hitSlop={10} style={{ padding: 8 }}>
319
+ <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
320
+ </react_native_1.Pressable>)}
321
+ </react_native_1.View>
322
+ </react_native_1.View>
323
+
324
+ <HeadersSection_1.default title="Request Headers" headers={selected.requestHeaders} search={detailSearch} resetKey={selected.id}/>
325
+ <HeadersSection_1.default title="Response Headers" headers={selected.responseHeaders} search={detailSearch} resetKey={selected.id}/>
326
+ </>)}
327
+
328
+ {apiDetailActiveTab === 'request' &&
329
+ selected.request != null && (<>
330
+ <react_native_1.View style={styles_1.default.detailSearchRow}>
331
+ <react_native_1.View style={styles_1.default.detailSearchBox}>
332
+ <react_native_1.TextInput placeholder={t('network.searchRequest')} placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={detailSearch} onChangeText={setDetailSearch} style={styles_1.default.detailSearchInput} autoCorrect={false} autoCapitalize="none"/>
333
+ {detailSearch.length > 0 && (<react_native_1.Pressable onPress={() => setDetailSearch('')} hitSlop={10} style={{ padding: 8 }}>
334
+ <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
335
+ </react_native_1.Pressable>)}
336
+ </react_native_1.View>
337
+ </react_native_1.View>
338
+
339
+ <react_native_1.View style={styles_1.default.sectionContainer}>
340
+ <SectionHeader_1.default title={t('network.requestTitle')} value={selected.request} expanded={reqExpanded} onToggleExpand={() => setReqExpanded(v => !v)} showDiff={prevRequestData != null} isDiffing={showReqDiff} onToggleDiff={() => {
341
+ setShowReqDiff(v => !v);
342
+ if (!reqExpanded && !showReqDiff)
343
+ setReqExpanded(true);
344
+ }}/>
345
+ {showReqDiff ? (<DiffViewer_1.default oldData={prevRequestData} newData={selected.request} forceOpen={reqExpanded}/>) : reqExpanded ? (<JsonViewer_1.default data={selected.request} search={detailSearch} forceOpen/>) : (<react_native_1.View style={styles_1.default.codeBlock}>
346
+ <react_native_1.Text style={[
347
+ styles_1.default.codeText,
348
+ { color: AppColors_1.AppColors.grayTextWeak },
349
+ ]}>
350
+ {t('network.bodyHidden')}
351
+ </react_native_1.Text>
352
+ </react_native_1.View>)}
353
+ </react_native_1.View>
354
+ </>)}
355
+
356
+ {apiDetailActiveTab === 'response' && (<>
357
+ <react_native_1.View style={styles_1.default.detailSearchRow}>
358
+ <react_native_1.View style={styles_1.default.detailSearchBox}>
359
+ <react_native_1.TextInput placeholder={t('network.searchResponse')} placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={detailSearch} onChangeText={setDetailSearch} style={styles_1.default.detailSearchInput} autoCorrect={false} autoCapitalize="none"/>
360
+ {detailSearch.length > 0 && (<react_native_1.Pressable onPress={() => setDetailSearch('')} hitSlop={10} style={{ padding: 8 }}>
361
+ <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
362
+ </react_native_1.Pressable>)}
363
+ </react_native_1.View>
364
+ {selected.response != null && (<react_native_1.View style={{
365
+ flexDirection: 'row',
366
+ alignItems: 'center',
367
+ gap: 4,
368
+ paddingHorizontal: 10,
369
+ height: 34,
370
+ borderRadius: 8,
371
+ borderWidth: 1,
372
+ borderColor: `${AppColors_1.AppColors.purple}30`,
373
+ backgroundColor: `${AppColors_1.AppColors.purple}10`,
374
+ }}>
375
+ <NetworkIcons_1.SizeIcon color={AppColors_1.AppColors.purple} size={12}/>
376
+ <react_native_1.Text style={{
377
+ fontFamily: AppFonts_1.AppFonts.interBold,
378
+ fontSize: 10.5,
379
+ color: AppColors_1.AppColors.purple,
380
+ }}>
381
+ {(0, helpers_1.getSize)(selected.response)}
382
+ </react_native_1.Text>
383
+ </react_native_1.View>)}
384
+ </react_native_1.View>
385
+
386
+ <react_native_1.View style={styles_1.default.sectionContainer}>
387
+ <SectionHeader_1.default title={t('network.responseTitle')} value={selected.response} expanded={resExpanded} onToggleExpand={() => setResExpanded(v => !v)} showDiff={prevResponseData != null} isDiffing={showResDiff} onToggleDiff={() => {
388
+ setShowResDiff(v => !v);
389
+ if (!resExpanded && !showResDiff)
390
+ setResExpanded(true);
391
+ }}/>
392
+ {showResDiff ? (<DiffViewer_1.default oldData={prevResponseData} newData={selected.response} forceOpen={resExpanded}/>) : resExpanded ? (<JsonViewer_1.default data={selected.response} search={detailSearch} forceOpen wrap/>) : (<react_native_1.View style={styles_1.default.codeBlock}>
393
+ <react_native_1.Text style={[
394
+ styles_1.default.codeText,
395
+ { color: AppColors_1.AppColors.grayTextWeak },
396
+ ]}>
397
+ {t('network.bodyHidden')}
398
+ </react_native_1.Text>
399
+ </react_native_1.View>)}
400
+ </react_native_1.View>
401
+ </>)}
402
+ </react_native_1.ScrollView>
403
+ </react_native_1.View>);
404
+ };
405
+ exports.default = NetworkDetail;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const NetworkTab: () => React.JSX.Element;
3
+ export default NetworkTab;