react-native-inapp-inspector 1.1.17 → 1.1.19

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 (313) hide show
  1. package/dist/commonjs/components/Inspector/BundleTab.d.ts +5 -0
  2. package/dist/commonjs/components/Inspector/BundleTab.js +176 -46
  3. package/dist/commonjs/components/Inspector/MainScreen.js +7 -0
  4. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +22 -0
  5. package/dist/commonjs/components/Inspector/PerformanceTab.js +1143 -0
  6. package/dist/commonjs/components/Inspector/SettingsPanel.js +5 -0
  7. package/dist/commonjs/components/Inspector/TabBar.js +7 -0
  8. package/dist/commonjs/components/NetworkIcons.d.ts +1 -0
  9. package/dist/commonjs/components/NetworkIcons.js +10 -1
  10. package/dist/commonjs/constants/version.d.ts +1 -1
  11. package/dist/commonjs/constants/version.js +1 -1
  12. package/dist/commonjs/index.js +6 -3
  13. package/dist/commonjs/types/enums.d.ts +2 -2
  14. package/dist/esm/components/Inspector/BundleTab.d.ts +5 -0
  15. package/dist/esm/components/Inspector/BundleTab.js +177 -47
  16. package/dist/esm/components/Inspector/MainScreen.js +7 -0
  17. package/dist/esm/components/Inspector/PerformanceTab.d.ts +22 -0
  18. package/dist/esm/components/Inspector/PerformanceTab.js +1105 -0
  19. package/dist/esm/components/Inspector/SettingsPanel.js +6 -1
  20. package/dist/esm/components/Inspector/TabBar.js +8 -1
  21. package/dist/esm/components/NetworkIcons.d.ts +1 -0
  22. package/dist/esm/components/NetworkIcons.js +8 -0
  23. package/dist/esm/constants/version.d.ts +1 -1
  24. package/dist/esm/constants/version.js +1 -1
  25. package/dist/esm/index.js +6 -3
  26. package/dist/esm/types/enums.d.ts +2 -2
  27. package/package.json +2 -4
  28. package/assets/banner_dark.svg +0 -186
  29. package/assets/banner_light.svg +0 -186
  30. package/assets/icon_circle.svg +0 -148
  31. package/assets/icon_square.svg +0 -148
  32. package/assets/social_preview.png +0 -0
  33. package/assets/walkthrough.gif +0 -0
  34. package/dist/commonjs/assets/svgAssets.d.ts +0 -3
  35. package/dist/commonjs/assets/svgAssets.js +0 -17
  36. package/dist/commonjs/components/AnalyticsTabView.d.ts +0 -15
  37. package/dist/commonjs/components/AnalyticsTabView.js +0 -157
  38. package/dist/commonjs/components/ApiDetailView.d.ts +0 -22
  39. package/dist/commonjs/components/ApiDetailView.js +0 -304
  40. package/dist/commonjs/components/ApisTabView.d.ts +0 -33
  41. package/dist/commonjs/components/ApisTabView.js +0 -235
  42. package/dist/commonjs/components/ConsoleLogDetailView.d.ts +0 -9
  43. package/dist/commonjs/components/ConsoleLogDetailView.js +0 -278
  44. package/dist/commonjs/components/ConsoleLogsTabView.d.ts +0 -24
  45. package/dist/commonjs/components/ConsoleLogsTabView.js +0 -354
  46. package/dist/commonjs/components/FloatingBubble.d.ts +0 -14
  47. package/dist/commonjs/components/FloatingBubble.js +0 -75
  48. package/dist/commonjs/components/Inspector/InsightsDashboard.d.ts +0 -3
  49. package/dist/commonjs/components/Inspector/InsightsDashboard.js +0 -619
  50. package/dist/commonjs/components/Inspector/WebViewTab.d.ts +0 -3
  51. package/dist/commonjs/components/Inspector/WebViewTab.js +0 -757
  52. package/dist/commonjs/components/InspectorHeader.d.ts +0 -19
  53. package/dist/commonjs/components/InspectorHeader.js +0 -329
  54. package/dist/commonjs/components/InspectorTabBar.d.ts +0 -16
  55. package/dist/commonjs/components/InspectorTabBar.js +0 -90
  56. package/dist/commonjs/components/NavigationTracker.d.ts +0 -7
  57. package/dist/commonjs/components/NavigationTracker.js +0 -76
  58. package/dist/commonjs/components/ReduxTabView.d.ts +0 -9
  59. package/dist/commonjs/components/ReduxTabView.js +0 -56
  60. package/dist/commonjs/components/ReduxTreeView.d.ts +0 -16
  61. package/dist/commonjs/components/ReduxTreeView.js +0 -1257
  62. package/dist/commonjs/components/SettingsView.d.ts +0 -13
  63. package/dist/commonjs/components/SettingsView.js +0 -328
  64. package/dist/commonjs/customHooks/webViewLogger.d.ts +0 -24
  65. package/dist/commonjs/customHooks/webViewLogger.js +0 -452
  66. package/dist/commonjs/enums/index.d.ts +0 -39
  67. package/dist/commonjs/enums/index.js +0 -50
  68. package/dist/commonjs/i18n/en.json +0 -144
  69. package/dist/esm/assets/svgAssets.d.ts +0 -3
  70. package/dist/esm/assets/svgAssets.js +0 -14
  71. package/dist/esm/components/AnalyticsTabView.d.ts +0 -15
  72. package/dist/esm/components/AnalyticsTabView.js +0 -151
  73. package/dist/esm/components/ApiDetailView.d.ts +0 -22
  74. package/dist/esm/components/ApiDetailView.js +0 -264
  75. package/dist/esm/components/ApisTabView.d.ts +0 -33
  76. package/dist/esm/components/ApisTabView.js +0 -196
  77. package/dist/esm/components/ConsoleLogDetailView.d.ts +0 -9
  78. package/dist/esm/components/ConsoleLogDetailView.js +0 -271
  79. package/dist/esm/components/ConsoleLogsTabView.d.ts +0 -24
  80. package/dist/esm/components/ConsoleLogsTabView.js +0 -348
  81. package/dist/esm/components/FloatingBubble.d.ts +0 -14
  82. package/dist/esm/components/FloatingBubble.js +0 -68
  83. package/dist/esm/components/Inspector/InsightsDashboard.d.ts +0 -3
  84. package/dist/esm/components/Inspector/InsightsDashboard.js +0 -614
  85. package/dist/esm/components/Inspector/WebViewTab.d.ts +0 -3
  86. package/dist/esm/components/Inspector/WebViewTab.js +0 -752
  87. package/dist/esm/components/InspectorHeader.d.ts +0 -19
  88. package/dist/esm/components/InspectorHeader.js +0 -323
  89. package/dist/esm/components/InspectorTabBar.d.ts +0 -16
  90. package/dist/esm/components/InspectorTabBar.js +0 -84
  91. package/dist/esm/components/NavigationTracker.d.ts +0 -7
  92. package/dist/esm/components/NavigationTracker.js +0 -39
  93. package/dist/esm/components/ReduxTabView.d.ts +0 -9
  94. package/dist/esm/components/ReduxTabView.js +0 -50
  95. package/dist/esm/components/ReduxTreeView.d.ts +0 -16
  96. package/dist/esm/components/ReduxTreeView.js +0 -1218
  97. package/dist/esm/components/SettingsView.d.ts +0 -13
  98. package/dist/esm/components/SettingsView.js +0 -321
  99. package/dist/esm/customHooks/webViewLogger.d.ts +0 -24
  100. package/dist/esm/customHooks/webViewLogger.js +0 -405
  101. package/dist/esm/enums/index.d.ts +0 -39
  102. package/dist/esm/enums/index.js +0 -47
  103. package/dist/esm/i18n/en.json +0 -144
  104. package/example/.bundle/config +0 -2
  105. package/example/.eslintrc.js +0 -4
  106. package/example/.prettierrc.js +0 -5
  107. package/example/.watchmanconfig +0 -1
  108. package/example/App.tsx +0 -879
  109. package/example/Gemfile +0 -17
  110. package/example/README.md +0 -53
  111. package/example/__tests__/App.test.tsx +0 -13
  112. package/example/android/app/build.gradle +0 -147
  113. package/example/android/app/debug.keystore +0 -0
  114. package/example/android/app/proguard-rules.pro +0 -10
  115. package/example/android/app/src/main/AndroidManifest.xml +0 -27
  116. package/example/android/app/src/main/java/com/example/MainActivity.kt +0 -22
  117. package/example/android/app/src/main/java/com/example/MainApplication.kt +0 -52
  118. package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  119. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  120. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  121. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  122. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  123. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  124. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  125. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  126. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  127. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  128. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  129. package/example/android/app/src/main/res/values/strings.xml +0 -3
  130. package/example/android/app/src/main/res/values/styles.xml +0 -9
  131. package/example/android/build.gradle +0 -48
  132. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  133. package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  134. package/example/android/gradle.properties +0 -45
  135. package/example/android/gradlew +0 -248
  136. package/example/android/gradlew.bat +0 -98
  137. package/example/android/settings.gradle +0 -25
  138. package/example/app.json +0 -4
  139. package/example/assets/app_icon.png +0 -0
  140. package/example/babel.config.js +0 -3
  141. package/example/guidance/Video-WalkThrough.mp4 +0 -0
  142. package/example/index.js +0 -9
  143. package/example/ios/.xcode.env +0 -11
  144. package/example/ios/Podfile +0 -34
  145. package/example/ios/Podfile.lock +0 -2303
  146. package/example/ios/example/AppDelegate.swift +0 -48
  147. package/example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json +0 -62
  148. package/example/ios/example/Images.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  149. package/example/ios/example/Images.xcassets/Contents.json +0 -6
  150. package/example/ios/example/Info.plist +0 -60
  151. package/example/ios/example/LaunchScreen.storyboard +0 -47
  152. package/example/ios/example/PrivacyInfo.xcprivacy +0 -37
  153. package/example/ios/example.xcodeproj/project.pbxproj +0 -498
  154. package/example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme +0 -88
  155. package/example/ios/example.xcworkspace/contents.xcworkspacedata +0 -10
  156. package/example/jest.config.js +0 -3
  157. package/example/metro.config.js +0 -45
  158. package/example/package-lock.json +0 -13508
  159. package/example/package.json +0 -54
  160. package/example/polyfill.js +0 -13
  161. package/example/tsconfig.json +0 -8
  162. package/fonts/Inter/Inter.ttc +0 -0
  163. package/fonts/Inter/InterVariable-Italic.ttf +0 -0
  164. package/fonts/Inter/InterVariable.ttf +0 -0
  165. package/fonts/Inter/LICENSE.txt +0 -92
  166. package/fonts/Inter/extras/otf/Inter-Black.otf +0 -0
  167. package/fonts/Inter/extras/otf/Inter-BlackItalic.otf +0 -0
  168. package/fonts/Inter/extras/otf/Inter-Bold.otf +0 -0
  169. package/fonts/Inter/extras/otf/Inter-BoldItalic.otf +0 -0
  170. package/fonts/Inter/extras/otf/Inter-ExtraBold.otf +0 -0
  171. package/fonts/Inter/extras/otf/Inter-ExtraBoldItalic.otf +0 -0
  172. package/fonts/Inter/extras/otf/Inter-ExtraLight.otf +0 -0
  173. package/fonts/Inter/extras/otf/Inter-ExtraLightItalic.otf +0 -0
  174. package/fonts/Inter/extras/otf/Inter-Italic.otf +0 -0
  175. package/fonts/Inter/extras/otf/Inter-Light.otf +0 -0
  176. package/fonts/Inter/extras/otf/Inter-LightItalic.otf +0 -0
  177. package/fonts/Inter/extras/otf/Inter-Medium.otf +0 -0
  178. package/fonts/Inter/extras/otf/Inter-MediumItalic.otf +0 -0
  179. package/fonts/Inter/extras/otf/Inter-Regular.otf +0 -0
  180. package/fonts/Inter/extras/otf/Inter-SemiBold.otf +0 -0
  181. package/fonts/Inter/extras/otf/Inter-SemiBoldItalic.otf +0 -0
  182. package/fonts/Inter/extras/otf/Inter-Thin.otf +0 -0
  183. package/fonts/Inter/extras/otf/Inter-ThinItalic.otf +0 -0
  184. package/fonts/Inter/extras/otf/InterDisplay-Black.otf +0 -0
  185. package/fonts/Inter/extras/otf/InterDisplay-BlackItalic.otf +0 -0
  186. package/fonts/Inter/extras/otf/InterDisplay-Bold.otf +0 -0
  187. package/fonts/Inter/extras/otf/InterDisplay-BoldItalic.otf +0 -0
  188. package/fonts/Inter/extras/otf/InterDisplay-ExtraBold.otf +0 -0
  189. package/fonts/Inter/extras/otf/InterDisplay-ExtraBoldItalic.otf +0 -0
  190. package/fonts/Inter/extras/otf/InterDisplay-ExtraLight.otf +0 -0
  191. package/fonts/Inter/extras/otf/InterDisplay-ExtraLightItalic.otf +0 -0
  192. package/fonts/Inter/extras/otf/InterDisplay-Italic.otf +0 -0
  193. package/fonts/Inter/extras/otf/InterDisplay-Light.otf +0 -0
  194. package/fonts/Inter/extras/otf/InterDisplay-LightItalic.otf +0 -0
  195. package/fonts/Inter/extras/otf/InterDisplay-Medium.otf +0 -0
  196. package/fonts/Inter/extras/otf/InterDisplay-MediumItalic.otf +0 -0
  197. package/fonts/Inter/extras/otf/InterDisplay-Regular.otf +0 -0
  198. package/fonts/Inter/extras/otf/InterDisplay-SemiBold.otf +0 -0
  199. package/fonts/Inter/extras/otf/InterDisplay-SemiBoldItalic.otf +0 -0
  200. package/fonts/Inter/extras/otf/InterDisplay-Thin.otf +0 -0
  201. package/fonts/Inter/extras/otf/InterDisplay-ThinItalic.otf +0 -0
  202. package/fonts/Inter/extras/ttf/Inter-Black.ttf +0 -0
  203. package/fonts/Inter/extras/ttf/Inter-BlackItalic.ttf +0 -0
  204. package/fonts/Inter/extras/ttf/Inter-Bold.ttf +0 -0
  205. package/fonts/Inter/extras/ttf/Inter-BoldItalic.ttf +0 -0
  206. package/fonts/Inter/extras/ttf/Inter-ExtraBold.ttf +0 -0
  207. package/fonts/Inter/extras/ttf/Inter-ExtraBoldItalic.ttf +0 -0
  208. package/fonts/Inter/extras/ttf/Inter-ExtraLight.ttf +0 -0
  209. package/fonts/Inter/extras/ttf/Inter-ExtraLightItalic.ttf +0 -0
  210. package/fonts/Inter/extras/ttf/Inter-Italic.ttf +0 -0
  211. package/fonts/Inter/extras/ttf/Inter-Light.ttf +0 -0
  212. package/fonts/Inter/extras/ttf/Inter-LightItalic.ttf +0 -0
  213. package/fonts/Inter/extras/ttf/Inter-Medium.ttf +0 -0
  214. package/fonts/Inter/extras/ttf/Inter-MediumItalic.ttf +0 -0
  215. package/fonts/Inter/extras/ttf/Inter-Regular.ttf +0 -0
  216. package/fonts/Inter/extras/ttf/Inter-SemiBold.ttf +0 -0
  217. package/fonts/Inter/extras/ttf/Inter-SemiBoldItalic.ttf +0 -0
  218. package/fonts/Inter/extras/ttf/Inter-Thin.ttf +0 -0
  219. package/fonts/Inter/extras/ttf/Inter-ThinItalic.ttf +0 -0
  220. package/fonts/Inter/extras/ttf/InterDisplay-Black.ttf +0 -0
  221. package/fonts/Inter/extras/ttf/InterDisplay-BlackItalic.ttf +0 -0
  222. package/fonts/Inter/extras/ttf/InterDisplay-Bold.ttf +0 -0
  223. package/fonts/Inter/extras/ttf/InterDisplay-BoldItalic.ttf +0 -0
  224. package/fonts/Inter/extras/ttf/InterDisplay-ExtraBold.ttf +0 -0
  225. package/fonts/Inter/extras/ttf/InterDisplay-ExtraBoldItalic.ttf +0 -0
  226. package/fonts/Inter/extras/ttf/InterDisplay-ExtraLight.ttf +0 -0
  227. package/fonts/Inter/extras/ttf/InterDisplay-ExtraLightItalic.ttf +0 -0
  228. package/fonts/Inter/extras/ttf/InterDisplay-Italic.ttf +0 -0
  229. package/fonts/Inter/extras/ttf/InterDisplay-Light.ttf +0 -0
  230. package/fonts/Inter/extras/ttf/InterDisplay-LightItalic.ttf +0 -0
  231. package/fonts/Inter/extras/ttf/InterDisplay-Medium.ttf +0 -0
  232. package/fonts/Inter/extras/ttf/InterDisplay-MediumItalic.ttf +0 -0
  233. package/fonts/Inter/extras/ttf/InterDisplay-Regular.ttf +0 -0
  234. package/fonts/Inter/extras/ttf/InterDisplay-SemiBold.ttf +0 -0
  235. package/fonts/Inter/extras/ttf/InterDisplay-SemiBoldItalic.ttf +0 -0
  236. package/fonts/Inter/extras/ttf/InterDisplay-Thin.ttf +0 -0
  237. package/fonts/Inter/extras/ttf/InterDisplay-ThinItalic.ttf +0 -0
  238. package/fonts/Inter/extras/woff-hinted/Inter-Black.woff2 +0 -0
  239. package/fonts/Inter/extras/woff-hinted/Inter-BlackItalic.woff2 +0 -0
  240. package/fonts/Inter/extras/woff-hinted/Inter-Bold.woff2 +0 -0
  241. package/fonts/Inter/extras/woff-hinted/Inter-BoldItalic.woff2 +0 -0
  242. package/fonts/Inter/extras/woff-hinted/Inter-ExtraBold.woff2 +0 -0
  243. package/fonts/Inter/extras/woff-hinted/Inter-ExtraBoldItalic.woff2 +0 -0
  244. package/fonts/Inter/extras/woff-hinted/Inter-ExtraLight.woff2 +0 -0
  245. package/fonts/Inter/extras/woff-hinted/Inter-ExtraLightItalic.woff2 +0 -0
  246. package/fonts/Inter/extras/woff-hinted/Inter-Italic.woff2 +0 -0
  247. package/fonts/Inter/extras/woff-hinted/Inter-Light.woff2 +0 -0
  248. package/fonts/Inter/extras/woff-hinted/Inter-LightItalic.woff2 +0 -0
  249. package/fonts/Inter/extras/woff-hinted/Inter-Medium.woff2 +0 -0
  250. package/fonts/Inter/extras/woff-hinted/Inter-MediumItalic.woff2 +0 -0
  251. package/fonts/Inter/extras/woff-hinted/Inter-Regular.woff2 +0 -0
  252. package/fonts/Inter/extras/woff-hinted/Inter-SemiBold.woff2 +0 -0
  253. package/fonts/Inter/extras/woff-hinted/Inter-SemiBoldItalic.woff2 +0 -0
  254. package/fonts/Inter/extras/woff-hinted/Inter-Thin.woff2 +0 -0
  255. package/fonts/Inter/extras/woff-hinted/Inter-ThinItalic.woff2 +0 -0
  256. package/fonts/Inter/extras/woff-hinted/InterDisplay-Black.woff2 +0 -0
  257. package/fonts/Inter/extras/woff-hinted/InterDisplay-BlackItalic.woff2 +0 -0
  258. package/fonts/Inter/extras/woff-hinted/InterDisplay-Bold.woff2 +0 -0
  259. package/fonts/Inter/extras/woff-hinted/InterDisplay-BoldItalic.woff2 +0 -0
  260. package/fonts/Inter/extras/woff-hinted/InterDisplay-ExtraBold.woff2 +0 -0
  261. package/fonts/Inter/extras/woff-hinted/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  262. package/fonts/Inter/extras/woff-hinted/InterDisplay-ExtraLight.woff2 +0 -0
  263. package/fonts/Inter/extras/woff-hinted/InterDisplay-ExtraLightItalic.woff2 +0 -0
  264. package/fonts/Inter/extras/woff-hinted/InterDisplay-Italic.woff2 +0 -0
  265. package/fonts/Inter/extras/woff-hinted/InterDisplay-Light.woff2 +0 -0
  266. package/fonts/Inter/extras/woff-hinted/InterDisplay-LightItalic.woff2 +0 -0
  267. package/fonts/Inter/extras/woff-hinted/InterDisplay-Medium.woff2 +0 -0
  268. package/fonts/Inter/extras/woff-hinted/InterDisplay-MediumItalic.woff2 +0 -0
  269. package/fonts/Inter/extras/woff-hinted/InterDisplay-Regular.woff2 +0 -0
  270. package/fonts/Inter/extras/woff-hinted/InterDisplay-SemiBold.woff2 +0 -0
  271. package/fonts/Inter/extras/woff-hinted/InterDisplay-SemiBoldItalic.woff2 +0 -0
  272. package/fonts/Inter/extras/woff-hinted/InterDisplay-Thin.woff2 +0 -0
  273. package/fonts/Inter/extras/woff-hinted/InterDisplay-ThinItalic.woff2 +0 -0
  274. package/fonts/Inter/help.txt +0 -165
  275. package/fonts/Inter/web/Inter-Black.woff2 +0 -0
  276. package/fonts/Inter/web/Inter-BlackItalic.woff2 +0 -0
  277. package/fonts/Inter/web/Inter-Bold.woff2 +0 -0
  278. package/fonts/Inter/web/Inter-BoldItalic.woff2 +0 -0
  279. package/fonts/Inter/web/Inter-ExtraBold.woff2 +0 -0
  280. package/fonts/Inter/web/Inter-ExtraBoldItalic.woff2 +0 -0
  281. package/fonts/Inter/web/Inter-ExtraLight.woff2 +0 -0
  282. package/fonts/Inter/web/Inter-ExtraLightItalic.woff2 +0 -0
  283. package/fonts/Inter/web/Inter-Italic.woff2 +0 -0
  284. package/fonts/Inter/web/Inter-Light.woff2 +0 -0
  285. package/fonts/Inter/web/Inter-LightItalic.woff2 +0 -0
  286. package/fonts/Inter/web/Inter-Medium.woff2 +0 -0
  287. package/fonts/Inter/web/Inter-MediumItalic.woff2 +0 -0
  288. package/fonts/Inter/web/Inter-Regular.woff2 +0 -0
  289. package/fonts/Inter/web/Inter-SemiBold.woff2 +0 -0
  290. package/fonts/Inter/web/Inter-SemiBoldItalic.woff2 +0 -0
  291. package/fonts/Inter/web/Inter-Thin.woff2 +0 -0
  292. package/fonts/Inter/web/Inter-ThinItalic.woff2 +0 -0
  293. package/fonts/Inter/web/InterDisplay-Black.woff2 +0 -0
  294. package/fonts/Inter/web/InterDisplay-BlackItalic.woff2 +0 -0
  295. package/fonts/Inter/web/InterDisplay-Bold.woff2 +0 -0
  296. package/fonts/Inter/web/InterDisplay-BoldItalic.woff2 +0 -0
  297. package/fonts/Inter/web/InterDisplay-ExtraBold.woff2 +0 -0
  298. package/fonts/Inter/web/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  299. package/fonts/Inter/web/InterDisplay-ExtraLight.woff2 +0 -0
  300. package/fonts/Inter/web/InterDisplay-ExtraLightItalic.woff2 +0 -0
  301. package/fonts/Inter/web/InterDisplay-Italic.woff2 +0 -0
  302. package/fonts/Inter/web/InterDisplay-Light.woff2 +0 -0
  303. package/fonts/Inter/web/InterDisplay-LightItalic.woff2 +0 -0
  304. package/fonts/Inter/web/InterDisplay-Medium.woff2 +0 -0
  305. package/fonts/Inter/web/InterDisplay-MediumItalic.woff2 +0 -0
  306. package/fonts/Inter/web/InterDisplay-Regular.woff2 +0 -0
  307. package/fonts/Inter/web/InterDisplay-SemiBold.woff2 +0 -0
  308. package/fonts/Inter/web/InterDisplay-SemiBoldItalic.woff2 +0 -0
  309. package/fonts/Inter/web/InterDisplay-Thin.woff2 +0 -0
  310. package/fonts/Inter/web/InterDisplay-ThinItalic.woff2 +0 -0
  311. package/fonts/Inter/web/InterVariable-Italic.woff2 +0 -0
  312. package/fonts/Inter/web/InterVariable.woff2 +0 -0
  313. package/fonts/Inter/web/inter.css +0 -148
package/example/App.tsx DELETED
@@ -1,879 +0,0 @@
1
- import React from 'react';
2
- import {
3
- StatusBar,
4
- StyleSheet,
5
- Text,
6
- TouchableOpacity,
7
- View,
8
- ScrollView,
9
- useColorScheme,
10
- } from 'react-native';
11
- import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
12
- import { NavigationContainer, createNavigationContainerRef } from '@react-navigation/native';
13
- import { createNativeStackNavigator } from '@react-navigation/native-stack';
14
- import axios from 'axios';
15
- import NetworkInspector, {
16
- ErrorBoundary,
17
- connectReduxStore,
18
- setupNetworkLogger,
19
- subscribeNetworkLogs,
20
- subscribeConsoleLogs,
21
- logAnalyticsEvent,
22
- subscribeAnalyticsEvents,
23
- } from 'react-native-inapp-inspector';
24
- import {WebView} from 'react-native-webview';
25
-
26
- // ⚡ Call BEFORE any component renders so axios.create() is already patched
27
- setupNetworkLogger();
28
- // ─── Mock Redux Store ────────────────────────────────────────────────────────
29
- const mockStore = {
30
- state: {
31
- auth: {
32
- user: { id: 101, name: 'Venkatesh', role: 'Lead Architect' },
33
- token: 'bearer-jwt-tok_5548b366d86',
34
- isAuthenticated: true,
35
- lastLogin: new Date().toLocaleTimeString(),
36
- },
37
- settings: {
38
- theme: 'dark',
39
- notifications: true,
40
- fontSize: 14,
41
- locales: ['en-US', 'ta-IN'],
42
- },
43
- ui: {
44
- sidebarOpen: false,
45
- activeModal: null,
46
- loadingStates: {
47
- fetchUser: false,
48
- updateSettings: false,
49
- },
50
- },
51
- },
52
- listeners: new Set<() => void>(),
53
- getState() {
54
- return this.state;
55
- },
56
- subscribe(listener: () => void) {
57
- this.listeners.add(listener);
58
- return () => {
59
- this.listeners.delete(listener);
60
- };
61
- },
62
- dispatch(action: any) {
63
- console.log('[Mock Redux] Dispatching action:', action);
64
- if (action.type === 'TOGGLE_SIDEBAR') {
65
- this.state = {
66
- ...this.state,
67
- ui: {
68
- ...this.state.ui,
69
- sidebarOpen: !this.state.ui.sidebarOpen,
70
- },
71
- };
72
- } else if (action.type === 'SET_THEME') {
73
- this.state = {
74
- ...this.state,
75
- settings: {
76
- ...this.state.settings,
77
- theme: action.payload,
78
- },
79
- };
80
- } else if (action.type === 'UPDATE_USER_TIME') {
81
- this.state = {
82
- ...this.state,
83
- auth: {
84
- ...this.state.auth,
85
- lastLogin: new Date().toLocaleTimeString(),
86
- },
87
- };
88
- }
89
- this.listeners.forEach(l => l());
90
- },
91
- };
92
-
93
- // Connect mock store to the inspector
94
- connectReduxStore(mockStore);
95
-
96
- function BuggyComponent({ type }: { type: 'js' | 'native' }) {
97
- if (type === 'js') {
98
- throw new Error(
99
- 'Simulated JavaScript Crash: ReferenceError: x is not defined in App.tsx at line 67',
100
- );
101
- }
102
- if (type === 'native') {
103
- throw new Error(
104
- 'Simulated Native Crash: fatal error: Index out of range in Native Swift/Java module at line 70',
105
- );
106
- }
107
- return null;
108
- }
109
-
110
- function HomeScreen({ navigation }: any) {
111
- const [activeCrash, setActiveCrash] = React.useState<
112
- 'none' | 'js' | 'native'
113
- >('none');
114
- const [apiCount, setApiCount] = React.useState(0);
115
- const [logCount, setLogCount] = React.useState(0);
116
- const [analyticsCount, setAnalyticsCount] = React.useState(0);
117
- const [reduxState, setReduxState] = React.useState(mockStore.getState());
118
-
119
- React.useEffect(() => {
120
- // Subscribe to logs to display live dashboard counters
121
- const unsubNet = subscribeNetworkLogs(logs => setApiCount(logs.length));
122
- const unsubConsole = subscribeConsoleLogs(logs => setLogCount(logs.length));
123
- const unsubAnalytics = subscribeAnalyticsEvents(events =>
124
- setAnalyticsCount(events.length),
125
- );
126
- const unsubRedux = mockStore.subscribe(() =>
127
- setReduxState(mockStore.getState()),
128
- );
129
-
130
- // Initial Logs to populate stats
131
- console.log('[App] HomeScreen mounted and ready.');
132
- console.warn('[App] Check the Redux tab to inspect the connected state!');
133
-
134
- return () => {
135
- unsubNet();
136
- unsubConsole();
137
- unsubAnalytics();
138
- unsubRedux();
139
- };
140
- }, []);
141
-
142
- // Axios client — interceptors are automatically applied by setupNetworkLogger()
143
- const axiosClient = React.useMemo(
144
- () =>
145
- axios.create({
146
- baseURL: 'https://jsonplaceholder.typicode.com',
147
- }),
148
- [],
149
- );
150
-
151
- const triggerAxiosGet = async () => {
152
- try {
153
- console.log('[Axios] Triggering GET...');
154
- const response = await axiosClient.get('/posts/1');
155
- console.log('[Axios] GET response data title:', response.data.title);
156
- } catch (error: any) {
157
- console.error('[Axios] GET failed:', error.message);
158
- }
159
- };
160
-
161
- const triggerAxiosPost = async () => {
162
- try {
163
- console.log('[Axios] Triggering POST...');
164
- const response = await axiosClient.post('/posts', {
165
- title: 'New Post via Axios',
166
- body: 'This is a test post body sent via Axios auto-intercept.',
167
- userId: 1,
168
- });
169
- console.log('[Axios] POST response data:', response.data);
170
- } catch (error: any) {
171
- console.error('[Axios] POST failed:', error.message);
172
- }
173
- };
174
-
175
- const triggerAxiosPut = async () => {
176
- try {
177
- console.log('[Axios] Triggering PUT...');
178
- const response = await axiosClient.put('/posts/1', {
179
- id: 1,
180
- title: 'Updated Title via Axios',
181
- body: 'This is updated post body content sent via Axios.',
182
- userId: 1,
183
- });
184
- console.log('[Axios] PUT response data:', response.data);
185
- } catch (error: any) {
186
- console.error('[Axios] PUT failed:', error.message);
187
- }
188
- };
189
-
190
- const triggerAxiosPatch = async () => {
191
- try {
192
- console.log('[Axios] Triggering PATCH...');
193
- const response = await axiosClient.patch('/posts/1', {
194
- title: 'Partially Updated Title via Axios',
195
- });
196
- console.log('[Axios] PATCH response data:', response.data);
197
- } catch (error: any) {
198
- console.error('[Axios] PATCH failed:', error.message);
199
- }
200
- };
201
-
202
- const triggerAxiosDelete = async () => {
203
- try {
204
- console.log('[Axios] Triggering DELETE...');
205
- const response = await axiosClient.delete('/posts/1');
206
- console.log('[Axios] DELETE response status:', response.status);
207
- } catch (error: any) {
208
- console.error('[Axios] DELETE failed:', error.message);
209
- }
210
- };
211
-
212
- const triggerNetworkRequest = async () => {
213
- try {
214
- console.log('[API] Triggering fetch user...');
215
- const response = await fetch(
216
- 'https://jsonplaceholder.typicode.com/users/1',
217
- );
218
- const data = await response.json();
219
- console.log('[API] Fetch completed successfully:', data.name);
220
- } catch (error) {
221
- console.error('[API] Fetch failed:', error);
222
- }
223
- };
224
-
225
- const triggerFailedNetworkRequest = async () => {
226
- try {
227
- console.log('[API] Triggering failing fetch request...');
228
- await fetch('https://jsonplaceholder.typicode.com/invalid-route-error');
229
- } catch (error) {
230
- console.error('[API] Fetch failed with error:', error);
231
- }
232
- };
233
-
234
- const triggerConsoleLogs = () => {
235
- console.log(
236
- '[App] Manual log triggered at ' + new Date().toLocaleTimeString(),
237
- );
238
- console.warn('[App] Simulated warning. Please check the API config.');
239
- console.error('[App] Simulated error! Critical DB connection timeout.');
240
- };
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
-
307
- const handleToggleSidebar = () => {
308
- mockStore.dispatch({ type: 'TOGGLE_SIDEBAR' });
309
- mockStore.dispatch({ type: 'UPDATE_USER_TIME' });
310
- };
311
-
312
- return (
313
- <SafeAreaView style={styles.safeContainer}>
314
- <ScrollView
315
- contentContainerStyle={styles.content}
316
- showsVerticalScrollIndicator={false}
317
- >
318
- {/* Header Hero Section */}
319
- <View style={styles.headerHero}>
320
- <Text style={styles.headerBadge}>INSPECTOR PLAYGROUND</Text>
321
- <Text style={styles.headerTitle}>Debug Dashboard</Text>
322
- <Text style={styles.headerSubtitle}>
323
- A plug-and-play developer kit for real-time inspection.
324
- </Text>
325
- </View>
326
-
327
- {/* System Status Metrics Card */}
328
- <View style={styles.statsCard}>
329
- <Text style={styles.sectionTitle}>SYSTEM STATUS</Text>
330
- <View style={styles.statsGrid}>
331
- <View style={styles.statBox}>
332
- <Text style={styles.statVal}>{apiCount}</Text>
333
- <Text style={styles.statLbl}>APIs</Text>
334
- </View>
335
- <View style={styles.statBox}>
336
- <Text style={styles.statVal}>{logCount}</Text>
337
- <Text style={styles.statLbl}>Logs</Text>
338
- </View>
339
- <View style={styles.statBox}>
340
- <Text style={[styles.statVal, { color: '#EA580C' }]}>
341
- {analyticsCount}
342
- </Text>
343
- <Text style={styles.statLbl}>Analytics</Text>
344
- </View>
345
- <View style={styles.statBox}>
346
- <Text style={[styles.statVal, { color: '#A78BFA' }]}>
347
- {reduxState.ui.sidebarOpen ? 'Open' : 'Closed'}
348
- </Text>
349
- <Text style={styles.statLbl}>Sidebar</Text>
350
- </View>
351
- </View>
352
- </View>
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
-
376
- {/* Action Panel Grid */}
377
- <View style={styles.panelCard}>
378
- <Text style={styles.panelHeader}>🌐 API & NETWORK TESTS</Text>
379
- <View style={styles.btnRow}>
380
- <TouchableOpacity
381
- style={[styles.gridBtn, { borderColor: '#38BDF8' }]}
382
- onPress={triggerNetworkRequest}
383
- >
384
- <Text style={[styles.btnText, { color: '#38BDF8' }]}>
385
- Fetch (200 OK)
386
- </Text>
387
- </TouchableOpacity>
388
- <TouchableOpacity
389
- style={[styles.gridBtn, { borderColor: '#F43F5E' }]}
390
- onPress={triggerFailedNetworkRequest}
391
- >
392
- <Text style={[styles.btnText, { color: '#F43F5E' }]}>
393
- Fetch (404 Err)
394
- </Text>
395
- </TouchableOpacity>
396
- </View>
397
- </View>
398
-
399
- <View style={styles.panelCard}>
400
- <Text style={styles.panelHeader}>
401
- ⚡ AXIOS AUTOMATIC INTERCEPTION
402
- </Text>
403
- <View style={{ gap: 8 }}>
404
- <View style={styles.btnRow}>
405
- <TouchableOpacity
406
- style={[styles.gridBtn, { borderColor: '#10B981' }]}
407
- onPress={triggerAxiosGet}
408
- >
409
- <Text style={[styles.btnText, { color: '#10B981' }]}>
410
- Axios GET
411
- </Text>
412
- </TouchableOpacity>
413
- <TouchableOpacity
414
- style={[styles.gridBtn, { borderColor: '#8B5CF6' }]}
415
- onPress={triggerAxiosPost}
416
- >
417
- <Text style={[styles.btnText, { color: '#8B5CF6' }]}>
418
- Axios POST
419
- </Text>
420
- </TouchableOpacity>
421
- </View>
422
- <View style={styles.btnRow}>
423
- <TouchableOpacity
424
- style={[styles.gridBtn, { borderColor: '#F59E0B' }]}
425
- onPress={triggerAxiosPut}
426
- >
427
- <Text style={[styles.btnText, { color: '#F59E0B' }]}>
428
- Axios PUT
429
- </Text>
430
- </TouchableOpacity>
431
- <TouchableOpacity
432
- style={[styles.gridBtn, { borderColor: '#38BDF8' }]}
433
- onPress={triggerAxiosPatch}
434
- >
435
- <Text style={[styles.btnText, { color: '#38BDF8' }]}>
436
- Axios PATCH
437
- </Text>
438
- </TouchableOpacity>
439
- <TouchableOpacity
440
- style={[styles.gridBtn, { borderColor: '#EF4444' }]}
441
- onPress={triggerAxiosDelete}
442
- >
443
- <Text style={[styles.btnText, { color: '#EF4444' }]}>
444
- Axios DEL
445
- </Text>
446
- </TouchableOpacity>
447
- </View>
448
- </View>
449
- </View>
450
-
451
- <View style={styles.panelCard}>
452
- <Text style={styles.panelHeader}>📝 CONSOLE EVENT ACTIONS</Text>
453
- <TouchableOpacity
454
- style={[styles.fullWidthBtn, { backgroundColor: '#6366F1' }]}
455
- onPress={triggerConsoleLogs}
456
- >
457
- <Text style={styles.fullWidthBtnText}>
458
- Trigger Log, Warn & Error Logs
459
- </Text>
460
- </TouchableOpacity>
461
-
462
- <View style={[styles.btnRow, {marginTop: 8}]}>
463
- <TouchableOpacity
464
- style={[styles.gridBtn, { borderColor: '#8B5CF6' }]}
465
- onPress={() => {
466
- console.log(
467
- 'Multi-argument payload inspection:',
468
- { userId: 101, username: 'venkatesh', role: 'Lead Architect' },
469
- ['permissions.read', 'permissions.write', 'permissions.admin'],
470
- { device: 'iPhone 15 Pro', os: 'iOS 18.0', battery: '92%' },
471
- );
472
- }}
473
- >
474
- <Text style={[styles.btnText, { color: '#8B5CF6' }]}>
475
- Multi-Arg Log
476
- </Text>
477
- </TouchableOpacity>
478
-
479
- <TouchableOpacity
480
- style={[styles.gridBtn, { borderColor: '#EF4444' }]}
481
- onPress={() => {
482
- try {
483
- throw new TypeError('Cannot read properties of undefined (reading "authToken")');
484
- } catch (err) {
485
- console.error(err);
486
- }
487
- }}
488
- >
489
- <Text style={[styles.btnText, { color: '#EF4444' }]}>
490
- Error Stack Log
491
- </Text>
492
- </TouchableOpacity>
493
- </View>
494
- </View>
495
-
496
- <View style={styles.panelCard}>
497
- <Text style={styles.panelHeader}>📊 ANALYTICS LOG TESTS</Text>
498
- <View style={styles.btnRow}>
499
- <TouchableOpacity
500
- style={[styles.gridBtn, { borderColor: '#EA580C' }]}
501
- onPress={() => {
502
- console.log(
503
- '[App] Logged custom analytics event: click_button',
504
- );
505
- logAnalyticsEvent('click_button', {
506
- button_name: 'test_action',
507
- screen_name: 'Home',
508
- clicked_at: new Date().toLocaleTimeString(),
509
- });
510
- }}
511
- >
512
- <Text style={[styles.btnText, { color: '#EA580C' }]}>
513
- Log Custom Event
514
- </Text>
515
- </TouchableOpacity>
516
- <TouchableOpacity
517
- style={[styles.gridBtn, { borderColor: '#E11D48' }]}
518
- onPress={() => {
519
- console.log(
520
- '[App] Logged analytics ecommerce event: item_purchase',
521
- );
522
- logAnalyticsEvent(
523
- 'item_purchase',
524
- {
525
- item_id: 'prod_999',
526
- item_name: 'Premium Debug Kit',
527
- price: 29.99,
528
- currency: 'USD',
529
- items: [
530
- {
531
- id: 'prod_999',
532
- name: 'Premium Debug Kit',
533
- price: 29.99,
534
- },
535
- ],
536
- },
537
- {
538
- user_tier: 'gold_member',
539
- signup_platform: 'ios_app',
540
- },
541
- );
542
- }}
543
- >
544
- <Text style={[styles.btnText, { color: '#E11D48' }]}>
545
- Log Purchase
546
- </Text>
547
- </TouchableOpacity>
548
- </View>
549
- </View>
550
-
551
- <View style={styles.panelCard}>
552
- <Text style={styles.panelHeader}>⚙️ REDUX & STATE ACTIONS</Text>
553
- <View style={styles.btnRow}>
554
- <TouchableOpacity
555
- style={[styles.gridBtn, { borderColor: '#10B981' }]}
556
- onPress={handleToggleSidebar}
557
- >
558
- <Text style={[styles.btnText, { color: '#10B981' }]}>
559
- Toggle Sidebar
560
- </Text>
561
- </TouchableOpacity>
562
- <TouchableOpacity
563
- style={[styles.gridBtn, { borderColor: '#06B6D4' }]}
564
- onPress={() => {
565
- mockStore.dispatch({
566
- type: 'SET_THEME',
567
- payload: mockStore.getState().settings.theme === 'dark' ? 'light' : 'dark',
568
- });
569
- }}
570
- >
571
- <Text style={[styles.btnText, { color: '#06B6D4' }]}>
572
- Toggle Theme
573
- </Text>
574
- </TouchableOpacity>
575
- </View>
576
- <TouchableOpacity
577
- style={[styles.fullWidthBtn, { backgroundColor: '#8B5CF6', marginTop: 8 }]}
578
- onPress={handleToggleSidebar}
579
- >
580
- <Text style={styles.fullWidthBtnText}>
581
- Dispatch: Toggle Sidebar & Update Time
582
- </Text>
583
- </TouchableOpacity>
584
- </View>
585
-
586
- <View style={styles.panelCard}>
587
- <Text style={styles.panelHeader}>➔ ROUTING & WEBVIEW</Text>
588
- <View style={styles.btnRow}>
589
- <TouchableOpacity
590
- style={[styles.gridBtn, { borderColor: '#10B981' }]}
591
- onPress={() => navigation.navigate('Details')}
592
- >
593
- <Text style={[styles.btnText, { color: '#10B981' }]}>
594
- Go to Details
595
- </Text>
596
- </TouchableOpacity>
597
- <TouchableOpacity
598
- style={[styles.gridBtn, { borderColor: '#F59E0B' }]}
599
- onPress={() => navigation.navigate('WebView')}
600
- >
601
- <Text style={[styles.btnText, { color: '#F59E0B' }]}>
602
- Go to WebView
603
- </Text>
604
- </TouchableOpacity>
605
- </View>
606
- </View>
607
-
608
- <View style={[styles.panelCard, { borderColor: '#F43F5E' }]}>
609
- <Text style={[styles.panelHeader, { color: '#F43F5E' }]}>
610
- 💥 CRASH SIMULATION TESTS
611
- </Text>
612
- <View style={styles.btnRow}>
613
- <TouchableOpacity
614
- style={[
615
- styles.gridBtn,
616
- {
617
- borderColor: '#F43F5E',
618
- backgroundColor: 'rgba(244,63,94,0.05)',
619
- },
620
- ]}
621
- onPress={() => setActiveCrash('js')}
622
- >
623
- <Text style={[styles.btnText, { color: '#F43F5E' }]}>
624
- JS Crash
625
- </Text>
626
- </TouchableOpacity>
627
- <TouchableOpacity
628
- style={[
629
- styles.gridBtn,
630
- {
631
- borderColor: '#EF4444',
632
- backgroundColor: 'rgba(239,68,68,0.1)',
633
- },
634
- ]}
635
- onPress={() => setActiveCrash('native')}
636
- >
637
- <Text style={[styles.btnText, { color: '#EF4444' }]}>
638
- Native Crash
639
- </Text>
640
- </TouchableOpacity>
641
- </View>
642
- </View>
643
- </ScrollView>
644
- {activeCrash !== 'none' && <BuggyComponent type={activeCrash} />}
645
- </SafeAreaView>
646
- );
647
- }
648
-
649
- function DetailsScreen({ navigation }: any) {
650
- const triggerDetailLogs = () => {
651
- console.log('[Details] User triggered log from Details screen.');
652
- };
653
-
654
- React.useEffect(() => {
655
- console.log('[Test] DetailsScreen mounted!');
656
- }, []);
657
-
658
- return (
659
- <SafeAreaView style={styles.safeContainer}>
660
- <ScrollView contentContainerStyle={styles.content}>
661
- <View style={styles.headerHero}>
662
- <Text style={styles.headerBadge}>DETAILS MODULE</Text>
663
- <Text style={styles.headerTitle}>Navigation Tracking</Text>
664
- <Text style={styles.headerSubtitle}>
665
- The breadcrumbs inside the inspector track your stack route in
666
- real-time.
667
- </Text>
668
- </View>
669
-
670
- <View style={styles.panelCard}>
671
- <Text style={styles.panelHeader}>MODULE ACTIONS</Text>
672
- <TouchableOpacity
673
- style={[
674
- styles.fullWidthBtn,
675
- { backgroundColor: '#10B981', marginBottom: 12 },
676
- ]}
677
- onPress={triggerDetailLogs}
678
- >
679
- <Text style={styles.fullWidthBtnText}>
680
- Trigger Log from Details Screen
681
- </Text>
682
- </TouchableOpacity>
683
-
684
- <TouchableOpacity
685
- style={[styles.fullWidthBtn, { backgroundColor: '#475569' }]}
686
- onPress={() => navigation.goBack()}
687
- >
688
- <Text style={styles.fullWidthBtnText}>Go Back Home</Text>
689
- </TouchableOpacity>
690
- </View>
691
- </ScrollView>
692
- </SafeAreaView>
693
- );
694
- }
695
-
696
- function WebViewScreen({ navigation }: any) {
697
- React.useEffect(() => {
698
- console.log('[WebView] WebViewScreen mounted, loading apple.com...');
699
- }, []);
700
-
701
- return (
702
- <SafeAreaView style={styles.safeContainer}>
703
- <View style={{ flex: 1 }}>
704
- <WebView
705
- source={{ uri: 'https://apple.com' }}
706
- style={{ flex: 1 }}
707
- onLoadStart={() =>
708
- console.log('[WebView] Navigation started to apple.com')
709
- }
710
- onLoadEnd={() =>
711
- console.log('[WebView] Navigation finished loading apple.com')
712
- }
713
- />
714
- </View>
715
- </SafeAreaView>
716
- );
717
- }
718
-
719
- const Stack = createNativeStackNavigator();
720
- const navigationRef = createNavigationContainerRef();
721
-
722
- function App() {
723
- const isDarkMode = useColorScheme() === 'dark';
724
-
725
- return (
726
- <SafeAreaProvider>
727
- <StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
728
- <ErrorBoundary>
729
- <NavigationContainer ref={navigationRef}>
730
- <Stack.Navigator
731
- screenOptions={{
732
- headerShown: false,
733
- contentStyle: {
734
- backgroundColor: '#0F172A',
735
- },
736
- }}
737
- >
738
- <Stack.Screen name="Home" component={HomeScreen} />
739
- <Stack.Screen name="Details" component={DetailsScreen} />
740
- <Stack.Screen name="WebView" component={WebViewScreen} />
741
- </Stack.Navigator>
742
- </NavigationContainer>
743
- {/* Render inspector globally exactly once at the root level */}
744
- <NetworkInspector
745
- navigationRef={navigationRef}
746
- appIcon={require('./assets/app_icon.png')}
747
- environment="DEV"
748
- />
749
- </ErrorBoundary>
750
- </SafeAreaProvider>
751
- );
752
- }
753
-
754
- const styles = StyleSheet.create({
755
- safeContainer: {
756
- flex: 1,
757
- backgroundColor: '#0F172A',
758
- paddingTop: 12,
759
- },
760
- content: {
761
- paddingHorizontal: 20,
762
- paddingBottom: 40,
763
- },
764
- headerHero: {
765
- marginTop: 20,
766
- marginBottom: 24,
767
- alignItems: 'center',
768
- },
769
- headerBadge: {
770
- fontSize: 10,
771
- fontWeight: 'bold',
772
- color: '#818CF8',
773
- letterSpacing: 1.5,
774
- marginBottom: 6,
775
- },
776
- headerTitle: {
777
- fontSize: 14,
778
- fontWeight: '900',
779
- color: '#F8FAFC',
780
- marginBottom: 8,
781
- },
782
- headerSubtitle: {
783
- fontSize: 14,
784
- color: '#94A3B8',
785
- textAlign: 'center',
786
- lineHeight: 20,
787
- },
788
- statsCard: {
789
- backgroundColor: '#1E293B',
790
- borderRadius: 16,
791
- padding: 16,
792
- borderWidth: 1,
793
- borderColor: '#334155',
794
- marginBottom: 20,
795
- },
796
- sectionTitle: {
797
- fontSize: 11,
798
- fontWeight: '800',
799
- color: '#94A3B8',
800
- letterSpacing: 1.2,
801
- marginBottom: 12,
802
- },
803
- statsGrid: {
804
- flexDirection: 'row',
805
- justifyContent: 'space-between',
806
- gap: 12,
807
- },
808
- statBox: {
809
- flex: 1,
810
- backgroundColor: '#0F172A',
811
- borderRadius: 12,
812
- paddingVertical: 12,
813
- alignItems: 'center',
814
- borderWidth: 1,
815
- borderColor: '#1E293B',
816
- },
817
- statVal: {
818
- fontSize: 18,
819
- fontWeight: 'bold',
820
- color: '#38BDF8',
821
- },
822
- statLbl: {
823
- fontSize: 10,
824
- color: '#64748B',
825
- marginTop: 2,
826
- fontWeight: '600',
827
- },
828
- panelCard: {
829
- backgroundColor: '#1E293B',
830
- borderRadius: 16,
831
- padding: 16,
832
- borderWidth: 1,
833
- borderColor: '#334155',
834
- marginBottom: 16,
835
- },
836
- panelHeader: {
837
- fontSize: 12,
838
- fontWeight: '800',
839
- color: '#F8FAFC',
840
- letterSpacing: 0.8,
841
- marginBottom: 12,
842
- },
843
- btnRow: {
844
- flexDirection: 'row',
845
- gap: 12,
846
- },
847
- gridBtn: {
848
- flex: 1,
849
- height: 44,
850
- borderRadius: 10,
851
- borderWidth: 1.5,
852
- justifyContent: 'center',
853
- alignItems: 'center',
854
- backgroundColor: 'rgba(255,255,255,0.02)',
855
- },
856
- btnText: {
857
- fontSize: 13,
858
- fontWeight: 'bold',
859
- },
860
- fullWidthBtn: {
861
- width: '100%',
862
- height: 44,
863
- borderRadius: 10,
864
- justifyContent: 'center',
865
- alignItems: 'center',
866
- shadowColor: '#000',
867
- shadowOffset: { width: 0, height: 2 },
868
- shadowOpacity: 0.2,
869
- shadowRadius: 4,
870
- elevation: 3,
871
- },
872
- fullWidthBtnText: {
873
- fontSize: 13,
874
- fontWeight: 'bold',
875
- color: '#FFFFFF',
876
- },
877
- });
878
-
879
- export default App;