react-native-inapp-inspector 2.4.2 → 2.5.1

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 (221) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  3. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  4. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  5. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  6. package/android/.gradle/8.9/gc.properties +0 -0
  7. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  8. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  9. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  11. package/android/.gradle/9.2.0/gc.properties +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  14. package/android/.gradle/vcs-1/gc.properties +0 -0
  15. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  16. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +523 -2
  17. package/dist/commonjs/capture.d.ts +2 -0
  18. package/dist/commonjs/capture.js +1 -1
  19. package/dist/commonjs/components/AnalyticsDetail.js +23 -23
  20. package/dist/commonjs/components/AnalyticsEventCard.js +1 -1
  21. package/dist/commonjs/components/AnalyticsGraph.js +44 -44
  22. package/dist/commonjs/components/AnimatedBrandOwl.js +32 -32
  23. package/dist/commonjs/components/AppHeaderLogo.js +6 -6
  24. package/dist/commonjs/components/BrandCircleIcon.js +28 -28
  25. package/dist/commonjs/components/BrandSquareIcon.js +33 -33
  26. package/dist/commonjs/components/ConsoleLogCard.js +1 -1
  27. package/dist/commonjs/components/Inspector/AnalyticsTab.js +2 -2
  28. package/dist/commonjs/components/Inspector/ConfirmationModal.js +23 -25
  29. package/dist/commonjs/components/Inspector/ConsoleTab.js +5 -5
  30. package/dist/commonjs/components/Inspector/CrashTab.js +44 -11
  31. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +1 -1
  32. package/dist/commonjs/components/Inspector/FabLauncher.js +30 -25
  33. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  34. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +54 -0
  35. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  36. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.js +234 -0
  37. package/dist/commonjs/components/Inspector/InspectorHeader.js +137 -127
  38. package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  39. package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +114 -32
  40. package/dist/commonjs/components/Inspector/MainScreen.js +26 -19
  41. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +38 -35
  42. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +36 -0
  43. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +345 -123
  44. package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
  45. package/dist/commonjs/components/Inspector/PushCard.js +1 -1
  46. package/dist/commonjs/components/Inspector/PushDetail.js +9 -9
  47. package/dist/commonjs/components/Inspector/PushTab.js +3 -3
  48. package/dist/commonjs/components/Inspector/ReduxTab.js +9 -7
  49. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  50. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +102 -73
  52. package/dist/commonjs/components/Inspector/SocketCard.js +1 -1
  53. package/dist/commonjs/components/Inspector/SocketDetail.js +73 -63
  54. package/dist/commonjs/components/Inspector/SocketTab.js +4 -4
  55. package/dist/commonjs/components/Inspector/StorageTab.js +10 -10
  56. package/dist/commonjs/components/Inspector/SupportModal.js +2 -2
  57. package/dist/commonjs/components/Inspector/SupportPage.js +1 -1
  58. package/dist/commonjs/components/JsonViewer.js +47 -45
  59. package/dist/commonjs/components/LogCard.js +22 -20
  60. package/dist/commonjs/components/ModuleErrorBoundary.js +5 -5
  61. package/dist/commonjs/components/NetworkIcons.d.ts +27 -0
  62. package/dist/commonjs/components/NetworkIcons.js +103 -5
  63. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  64. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  65. package/dist/commonjs/constants/version.d.ts +1 -1
  66. package/dist/commonjs/constants/version.js +1 -1
  67. package/dist/commonjs/crash.d.ts +1 -1
  68. package/dist/commonjs/crash.js +1 -1
  69. package/dist/commonjs/customHooks/crashHandler.d.ts +2 -1
  70. package/dist/commonjs/customHooks/crashHandler.js +7 -7
  71. package/dist/commonjs/editor.d.ts +13 -0
  72. package/dist/commonjs/editor.js +1 -0
  73. package/dist/commonjs/helpers/index.d.ts +1 -0
  74. package/dist/commonjs/helpers/index.js +1 -1
  75. package/dist/commonjs/helpers/settingsStore.js +1 -1
  76. package/dist/commonjs/helpers/telemetry.js +1 -1
  77. package/dist/commonjs/i18n/index.js +1 -1
  78. package/dist/commonjs/i18n/locales/ar.json +1 -1
  79. package/dist/commonjs/i18n/locales/bn.json +1 -1
  80. package/dist/commonjs/i18n/locales/de.json +1 -1
  81. package/dist/commonjs/i18n/locales/en.json +1 -1
  82. package/dist/commonjs/i18n/locales/es.json +1 -1
  83. package/dist/commonjs/i18n/locales/fr.json +1 -1
  84. package/dist/commonjs/i18n/locales/gu.json +1 -1
  85. package/dist/commonjs/i18n/locales/hi.json +1 -1
  86. package/dist/commonjs/i18n/locales/id.json +1 -1
  87. package/dist/commonjs/i18n/locales/it.json +1 -1
  88. package/dist/commonjs/i18n/locales/ja.json +1 -1
  89. package/dist/commonjs/i18n/locales/kn.json +1 -1
  90. package/dist/commonjs/i18n/locales/ko.json +1 -1
  91. package/dist/commonjs/i18n/locales/ml.json +1 -1
  92. package/dist/commonjs/i18n/locales/mr.json +1 -1
  93. package/dist/commonjs/i18n/locales/nl.json +1 -1
  94. package/dist/commonjs/i18n/locales/pa.json +1 -1
  95. package/dist/commonjs/i18n/locales/pl.json +1 -1
  96. package/dist/commonjs/i18n/locales/pt.json +1 -1
  97. package/dist/commonjs/i18n/locales/ru.json +1 -1
  98. package/dist/commonjs/i18n/locales/ta.json +1 -1
  99. package/dist/commonjs/i18n/locales/te.json +1 -1
  100. package/dist/commonjs/i18n/locales/tr.json +1 -1
  101. package/dist/commonjs/i18n/locales/vi.json +1 -1
  102. package/dist/commonjs/i18n/locales/zh.json +1 -1
  103. package/dist/commonjs/index.d.ts +4 -1
  104. package/dist/commonjs/index.js +3 -3
  105. package/dist/commonjs/native/NativeInspector.d.ts +3 -0
  106. package/dist/commonjs/native/NativeInspector.js +1 -1
  107. package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
  108. package/dist/commonjs/styles/AppColors.d.ts +42 -2
  109. package/dist/commonjs/styles/AppColors.js +1 -1
  110. package/dist/commonjs/styles/common.js +1 -1
  111. package/dist/commonjs/styles/index.d.ts +7 -0
  112. package/dist/commonjs/styles/index.js +1 -1
  113. package/dist/commonjs/types/editor.d.ts +96 -0
  114. package/dist/commonjs/types/editor.js +1 -0
  115. package/dist/commonjs/types/interfaces.d.ts +21 -0
  116. package/dist/esm/capture.d.ts +2 -0
  117. package/dist/esm/capture.js +1 -1
  118. package/dist/esm/components/AnalyticsDetail.js +31 -31
  119. package/dist/esm/components/AnalyticsEventCard.js +1 -1
  120. package/dist/esm/components/AnalyticsGraph.js +74 -74
  121. package/dist/esm/components/AnimatedBrandOwl.js +114 -114
  122. package/dist/esm/components/AppHeaderLogo.js +7 -7
  123. package/dist/esm/components/BrandCircleIcon.js +70 -70
  124. package/dist/esm/components/BrandSquareIcon.js +61 -61
  125. package/dist/esm/components/ConsoleLogCard.js +1 -1
  126. package/dist/esm/components/Inspector/AnalyticsTab.js +14 -14
  127. package/dist/esm/components/Inspector/ConfirmationModal.js +23 -25
  128. package/dist/esm/components/Inspector/ConsoleTab.js +17 -17
  129. package/dist/esm/components/Inspector/CrashTab.js +202 -169
  130. package/dist/esm/components/Inspector/DeviceInfoTab.js +75 -75
  131. package/dist/esm/components/Inspector/FabLauncher.js +56 -51
  132. package/dist/esm/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  133. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +54 -0
  134. package/dist/esm/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  135. package/dist/esm/components/Inspector/GlobalCrashScreenModal.js +234 -0
  136. package/dist/esm/components/Inspector/InspectorHeader.js +162 -152
  137. package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  138. package/dist/esm/components/Inspector/LanguageSelectorModal.js +140 -58
  139. package/dist/esm/components/Inspector/MainScreen.js +61 -54
  140. package/dist/esm/components/Inspector/MediaGalleryTab.js +55 -52
  141. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +36 -0
  142. package/dist/esm/components/Inspector/MediaPreviewModal.js +345 -123
  143. package/dist/esm/components/Inspector/NetworkTab.js +74 -74
  144. package/dist/esm/components/Inspector/PushCard.js +1 -1
  145. package/dist/esm/components/Inspector/PushDetail.js +18 -18
  146. package/dist/esm/components/Inspector/PushTab.js +1 -1
  147. package/dist/esm/components/Inspector/ReduxTab.js +18 -16
  148. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  149. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  150. package/dist/esm/components/Inspector/SettingsPanel.js +224 -195
  151. package/dist/esm/components/Inspector/SocketCard.js +8 -8
  152. package/dist/esm/components/Inspector/SocketDetail.js +106 -96
  153. package/dist/esm/components/Inspector/SocketTab.js +18 -18
  154. package/dist/esm/components/Inspector/StorageTab.js +47 -47
  155. package/dist/esm/components/Inspector/SupportModal.js +64 -64
  156. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  157. package/dist/esm/components/JsonViewer.js +51 -49
  158. package/dist/esm/components/LogCard.js +41 -39
  159. package/dist/esm/components/ModuleErrorBoundary.js +10 -10
  160. package/dist/esm/components/NetworkIcons.d.ts +27 -0
  161. package/dist/esm/components/NetworkIcons.js +101 -3
  162. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  163. package/dist/esm/constants/telemetryConfig.js +1 -1
  164. package/dist/esm/constants/version.d.ts +1 -1
  165. package/dist/esm/constants/version.js +1 -1
  166. package/dist/esm/crash.d.ts +1 -1
  167. package/dist/esm/crash.js +1 -1
  168. package/dist/esm/customHooks/crashHandler.d.ts +2 -1
  169. package/dist/esm/customHooks/crashHandler.js +7 -7
  170. package/dist/esm/editor.d.ts +13 -0
  171. package/dist/esm/editor.js +1 -0
  172. package/dist/esm/helpers/index.d.ts +1 -0
  173. package/dist/esm/helpers/index.js +4 -4
  174. package/dist/esm/helpers/settingsStore.js +1 -1
  175. package/dist/esm/helpers/telemetry.js +1 -1
  176. package/dist/esm/i18n/index.js +1 -1
  177. package/dist/esm/i18n/locales/ar.json +1 -1
  178. package/dist/esm/i18n/locales/bn.json +1 -1
  179. package/dist/esm/i18n/locales/de.json +1 -1
  180. package/dist/esm/i18n/locales/en.json +1 -1
  181. package/dist/esm/i18n/locales/es.json +1 -1
  182. package/dist/esm/i18n/locales/fr.json +1 -1
  183. package/dist/esm/i18n/locales/gu.json +1 -1
  184. package/dist/esm/i18n/locales/hi.json +1 -1
  185. package/dist/esm/i18n/locales/id.json +1 -1
  186. package/dist/esm/i18n/locales/it.json +1 -1
  187. package/dist/esm/i18n/locales/ja.json +1 -1
  188. package/dist/esm/i18n/locales/kn.json +1 -1
  189. package/dist/esm/i18n/locales/ko.json +1 -1
  190. package/dist/esm/i18n/locales/ml.json +1 -1
  191. package/dist/esm/i18n/locales/mr.json +1 -1
  192. package/dist/esm/i18n/locales/nl.json +1 -1
  193. package/dist/esm/i18n/locales/pa.json +1 -1
  194. package/dist/esm/i18n/locales/pl.json +1 -1
  195. package/dist/esm/i18n/locales/pt.json +1 -1
  196. package/dist/esm/i18n/locales/ru.json +1 -1
  197. package/dist/esm/i18n/locales/ta.json +1 -1
  198. package/dist/esm/i18n/locales/te.json +1 -1
  199. package/dist/esm/i18n/locales/tr.json +1 -1
  200. package/dist/esm/i18n/locales/vi.json +1 -1
  201. package/dist/esm/i18n/locales/zh.json +1 -1
  202. package/dist/esm/index.d.ts +4 -1
  203. package/dist/esm/index.js +5 -5
  204. package/dist/esm/native/NativeInspector.d.ts +3 -0
  205. package/dist/esm/native/NativeInspector.js +1 -1
  206. package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
  207. package/dist/esm/styles/AppColors.d.ts +42 -2
  208. package/dist/esm/styles/AppColors.js +1 -1
  209. package/dist/esm/styles/common.js +1 -1
  210. package/dist/esm/styles/index.d.ts +7 -0
  211. package/dist/esm/styles/index.js +1 -1
  212. package/dist/esm/types/editor.d.ts +96 -0
  213. package/dist/esm/types/editor.js +1 -0
  214. package/dist/esm/types/interfaces.d.ts +21 -0
  215. package/editor.d.ts +1 -0
  216. package/editor.js +1 -0
  217. package/ios/NetworkInspectorModule.mm +429 -0
  218. package/package.json +10 -1
  219. package/react-native-inapp-inspector.podspec +1 -1
  220. package/src/native/NativeInspector.ts +57 -4
  221. package/src/native/NativeNetworkInspector.ts +4 -0
@@ -113,4 +113,4 @@ ${i}`,[{text:d("common.cancel","Cancel"),style:"cancel"},{text:d("common.open","
113
113
  </react_native_1.View>
114
114
  </react_native_1.View>
115
115
  </TouchableScale_1.default>
116
- </react_native_1.View>}const styles=react_native_1.StyleSheet.create({container:{marginHorizontal:4,marginBottom:6},card:{borderRadius:12,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,shadowColor:AppColors_1.AppColors.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2,elevation:1,overflow:"hidden"},cardNew:{borderColor:`${AppColors_1.AppColors.brandPurple}66`,backgroundColor:`${AppColors_1.AppColors.brandPurple}05`},cardBody:{padding:10},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:6},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0},smallCheckbox:{width:15,height:15,borderRadius:3.5,borderWidth:1.2,borderColor:AppColors_1.AppColors.grayTextWeak,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.white,marginRight:2},smallCheckboxChecked:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},serialNumber:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:10.5,color:AppColors_1.AppColors.grayTextWeak},protocolBadge:{paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:5,borderWidth:1},protocolBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,letterSpacing:.3},chip:{paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,letterSpacing:.2},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:6,paddingVertical:2,borderRadius:5,borderWidth:1},statusPillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,letterSpacing:.3},pulsingDot:{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.greenColor},globeBtn:{padding:3,borderRadius:4,backgroundColor:`${AppColors_1.AppColors.grayTextWeak}12`},urlBox:{marginBottom:8},urlMainRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6,marginBottom:3},pathText:{flex:1,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12.5,color:AppColors_1.AppColors.grayTextStrong,lineHeight:17},highlight:{backgroundColor:"rgba(250, 204, 21, 0.40)",color:AppColors_1.AppColors.grayTextStrong,borderRadius:2},hostRow:{flexDirection:"row",alignItems:"center",gap:5},protoBadge:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1},protoBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,letterSpacing:.2},hostText:{flex:1,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:6,borderTopWidth:1,borderTopColor:AppColors_1.AppColors.dividerColor},footerLeft:{flexDirection:"row",alignItems:"center",flex:1,minWidth:0,marginRight:6},cardDateRow:{flexDirection:"row",alignItems:"center",gap:4},cardDateText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.grayTextWeak},footerRight:{flexDirection:"row",alignItems:"center",gap:4},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:2,borderRadius:4,borderWidth:1},metaStatText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:9.5}});function areSocketPropsEqual(e,o){return e.item===o.item&&e.isSelected===o.isSelected&&e.isNew===o.isNew&&e.searchStr===o.searchStr&&e.serialNumber===o.serialNumber&&e.onPress===o.onPress&&e.onToggleSelect===o.onToggleSelect}exports.default=react_1.default.memo(SocketCard,areSocketPropsEqual);
116
+ </react_native_1.View>}const styles=react_native_1.StyleSheet.create({container:{marginHorizontal:4,marginBottom:6},card:{borderRadius:12,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,shadowColor:AppColors_1.AppColors.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2,elevation:1,overflow:"hidden"},cardNew:{borderColor:`${AppColors_1.AppColors.brandPurple}66`,backgroundColor:`${AppColors_1.AppColors.brandPurple}05`},cardBody:{paddingHorizontal:8,paddingVertical:8},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:5},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:4.5,flex:1,minWidth:0},smallCheckbox:{width:15,height:15,borderRadius:3.5,borderWidth:1.2,borderColor:AppColors_1.AppColors.grayTextWeak,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.white,marginRight:2},smallCheckboxChecked:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},serialNumber:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:10.5,color:AppColors_1.AppColors.grayTextWeak},protocolBadge:{paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:5,borderWidth:1},protocolBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,letterSpacing:.3},chip:{paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,letterSpacing:.2},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:6,paddingVertical:2,borderRadius:5,borderWidth:1},statusPillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,letterSpacing:.3},pulsingDot:{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.greenColor},globeBtn:{padding:3,borderRadius:4,backgroundColor:`${AppColors_1.AppColors.grayTextWeak}12`},urlBox:{marginBottom:8},urlMainRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6,marginBottom:3},pathText:{flex:1,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12.5,color:AppColors_1.AppColors.grayTextStrong,lineHeight:17},highlight:{backgroundColor:"rgba(250, 204, 21, 0.40)",color:AppColors_1.AppColors.grayTextStrong,borderRadius:2},hostRow:{flexDirection:"row",alignItems:"center",gap:5},protoBadge:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1},protoBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,letterSpacing:.2},hostText:{flex:1,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:6,borderTopWidth:1,borderTopColor:AppColors_1.AppColors.dividerColor},footerLeft:{flexDirection:"row",alignItems:"center",flex:1,minWidth:0,marginRight:6},cardDateRow:{flexDirection:"row",alignItems:"center",gap:4},cardDateText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.grayTextWeak},footerRight:{flexDirection:"row",alignItems:"center",gap:4},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:2,borderRadius:4,borderWidth:1},metaStatText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:9.5}});function areSocketPropsEqual(e,o){return e.item===o.item&&e.isSelected===o.isSelected&&e.isNew===o.isNew&&e.searchStr===o.searchStr&&e.serialNumber===o.serialNumber&&e.onPress===o.onPress&&e.onToggleSelect===o.onToggleSelect}exports.default=react_1.default.memo(SocketCard,areSocketPropsEqual);
@@ -1,6 +1,6 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,o,a,l){l===void 0&&(l=a);var r=Object.getOwnPropertyDescriptor(o,a);(!r||("get"in r?!o.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(e,l,r)}):(function(e,o,a,l){l===void 0&&(l=a),e[l]=o[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}):function(e,o){e.default=o}),__importStar=this&&this.__importStar||(function(){var e=function(o){return e=Object.getOwnPropertyNames||function(a){var l=[];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(l[l.length]=r);return l},e(o)};return function(o){if(o&&o.__esModule)return o;var a={};if(o!=null)for(var l=e(o),r=0;r<l.length;r++)l[r]!=="default"&&__createBinding(a,o,l[r]);return __setModuleDefault(a,o),a}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),SegmentedTabs_1=__importDefault(require("../SegmentedTabs")),JsonViewer_1=__importDefault(require("../JsonViewer")),CopyButton_1=__importDefault(require("../CopyButton")),ShareButton_1=__importDefault(require("../ShareButton")),CodeSnippet_1=__importDefault(require("../CodeSnippet")),HighlightText_1=__importDefault(require("../HighlightText")),TouchableScale_1=__importDefault(require("../TouchableScale")),helpers_1=require("../../helpers"),shareFormatter_1=require("../../helpers/shareFormatter"),NetworkIcons_1=require("../NetworkIcons");function formatByteSize(e){return!e||e<=0?"0 B":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`}const SocketDetail=({item:e})=>{const{t:o}=(0,i18n_1.useTranslation)(),[a,l]=(0,react_1.useState)("messages"),[r,f]=(0,react_1.useState)(""),[s,u]=(0,react_1.useState)("all"),[m,y]=(0,react_1.useState)(new Set);if(!e)return null;const C=e.url.startsWith("wss://")||e.url.startsWith("https://"),c=e.client==="socket.io"||e.url.includes("/socket.io"),d=(0,react_1.useMemo)(()=>{const t=(e.status||"open").toLowerCase();return t==="open"?AppColors_1.AppColors.greenColor:t==="connecting"?AppColors_1.AppColors.amber600:t==="error"?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.slate500},[e.status]),g=()=>{const t=e.url.replace(/^wss:\/\//,"https://").replace(/^ws:\/\//,"http://");react_native_1.Alert.alert(o("common.openInBrowser")||"Open in Browser",`${o("common.openInBrowserPrompt")||"Open URL in browser?"}
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,o,l,i){i===void 0&&(i=l);var e=Object.getOwnPropertyDescriptor(o,l);(!e||("get"in e?!o.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(a,i,e)}):(function(a,o,l,i){i===void 0&&(i=l),a[i]=o[l]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,o){Object.defineProperty(a,"default",{enumerable:!0,value:o})}):function(a,o){a.default=o}),__importStar=this&&this.__importStar||(function(){var a=function(o){return a=Object.getOwnPropertyNames||function(l){var i=[];for(var e in l)Object.prototype.hasOwnProperty.call(l,e)&&(i[i.length]=e);return i},a(o)};return function(o){if(o&&o.__esModule)return o;var l={};if(o!=null)for(var i=a(o),e=0;e<i.length;e++)i[e]!=="default"&&__createBinding(l,o,i[e]);return __setModuleDefault(l,o),l}})(),__importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),InspectorContext_1=require("./InspectorContext"),SourcePageCard_1=__importDefault(require("../SourcePageCard")),HeadersSection_1=__importDefault(require("../HeadersSection")),SegmentedTabs_1=__importDefault(require("../SegmentedTabs")),JsonViewer_1=__importDefault(require("../JsonViewer")),CopyButton_1=__importDefault(require("../CopyButton")),ShareButton_1=__importDefault(require("../ShareButton")),CodeSnippet_1=__importDefault(require("../CodeSnippet")),HighlightText_1=__importDefault(require("../HighlightText")),TouchableScale_1=__importDefault(require("../TouchableScale")),helpers_1=require("../../helpers"),shareFormatter_1=require("../../helpers/shareFormatter"),NetworkIcons_1=require("../NetworkIcons"),SocketDetail=({item:a})=>{const{t:o}=(0,i18n_1.useTranslation)(),{selectedSocket:l,logRouteMapRef:i}=(0,InspectorContext_1.useInspector)(),e=a||l,[d,h]=(0,react_1.useState)("messages"),[c,g]=(0,react_1.useState)(""),[s,_]=(0,react_1.useState)("all"),[S,f]=(0,react_1.useState)(new Set);if(!e)return null;const m=e.url.startsWith("wss://")||e.url.startsWith("https://"),p=e.client==="socket.io"||e.url.includes("/socket.io"),y=(0,react_1.useMemo)(()=>{const t=(e.status||"open").toLowerCase();return t==="open"?AppColors_1.AppColors.greenColor:t==="connecting"?AppColors_1.AppColors.amber600:t==="error"?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.slate500},[e.status]),x=()=>{const t=e.url.replace(/^wss:\/\//,"https://").replace(/^ws:\/\//,"http://");react_native_1.Alert.alert(o("common.openInBrowser")||"Open in Browser",`${o("common.openInBrowserPrompt")||"Open URL in browser?"}
2
2
 
3
- ${t}`,[{text:o("common.cancel")||"Cancel",style:"cancel"},{text:o("common.open")||"Open",onPress:()=>{react_native_1.Linking.canOpenURL(t).then(i=>{i&&react_native_1.Linking.openURL(t).catch(()=>{})})}}])},b=async()=>{await(0,shareFormatter_1.shareSocketReport)(e)},S=t=>{y(i=>{const n=new Set(i);return n.has(t)?n.delete(t):n.add(t),n})},h=()=>{const t=new Set((e.frames||[]).map(i=>i.id));y(t)},V=()=>{y(new Set)},x=(0,react_1.useMemo)(()=>{let t=e.frames||[];if(s!=="all"&&(t=t.filter(i=>i.direction===s)),r.trim()){const i=r.trim().toLowerCase();t=t.filter(n=>!!(n.eventName&&n.eventName.toLowerCase().includes(i)||n.type&&n.type.toLowerCase().includes(i)||typeof n.data=="string"&&n.data.toLowerCase().includes(i)||n.data&&typeof n.data=="object"&&JSON.stringify(n.data).toLowerCase().includes(i)))}return t},[e.frames,s,r]),F=(e.totalBytesSent||0)+(e.totalBytesReceived||0),w=(0,react_1.useMemo)(()=>c?`import { io } from 'socket.io-client';
3
+ ${t}`,[{text:o("common.cancel")||"Cancel",style:"cancel"},{text:o("common.open")||"Open",onPress:()=>{react_native_1.Linking.canOpenURL(t).then(n=>{n&&react_native_1.Linking.openURL(t).catch(()=>{})})}}])},V=async()=>{await(0,shareFormatter_1.shareSocketReport)(e)},k=t=>{f(n=>{const r=new Set(n);return r.has(t)?r.delete(t):r.add(t),r})},F=()=>{const t=new Set((e.frames||[]).map(n=>n.id));f(t)},B=()=>{f(new Set)},w=(0,react_1.useMemo)(()=>{let t=e.frames||[];if(s!=="all"&&(t=t.filter(n=>n.direction===s)),c.trim()){const n=c.trim().toLowerCase();t=t.filter(r=>!!(r.eventName&&r.eventName.toLowerCase().includes(n)||r.type&&r.type.toLowerCase().includes(n)||typeof r.data=="string"&&r.data.toLowerCase().includes(n)||r.data&&typeof r.data=="object"&&JSON.stringify(r.data).toLowerCase().includes(n)))}return t},[e.frames,s,c]),z=(e.totalBytesSent||0)+(e.totalBytesReceived||0),T=(0,react_1.useMemo)(()=>p?`import { io } from 'socket.io-client';
4
4
 
5
5
  const socket = io('${e.url}', {
6
6
  transports: ['websocket'],
@@ -31,7 +31,7 @@ ws.onerror = (error) => {
31
31
 
32
32
  ws.onclose = (event) => {
33
33
  console.log('WebSocket closed:', event.code, event.reason);
34
- };`,[e.url,e.protocols,e.query,c]),T=`wscat -c "${e.url}"`,v=e.url.indexOf("://"),p=v!==-1?e.url.substring(0,v+3):"";return<react_native_1.View style={{flex:1,backgroundColor:AppColors_1.AppColors.contentBg}}>
34
+ };`,[e.url,e.protocols,e.query,p]),v=`wscat -c "${e.url}"`,A=e.url.indexOf("://"),u=A!==-1?e.url.substring(0,A+3):"";return<react_native_1.View style={{flex:1,backgroundColor:AppColors_1.AppColors.contentBg}}>
35
35
 
36
36
  <react_native_1.View style={{paddingHorizontal:8,paddingTop:4}}>
37
37
  <react_native_1.View style={styles_1.default.detailInfoBar}>
@@ -39,23 +39,23 @@ ws.onclose = (event) => {
39
39
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:6,paddingBottom:8,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor}}>
40
40
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5,flexWrap:"wrap",flex:1}}>
41
41
 
42
- <react_native_1.View style={[styles_1.default.methodBadge,{backgroundColor:c?AppColors_1.AppColors.violet600:C?AppColors_1.AppColors.emerald600:AppColors_1.AppColors.blue600,paddingHorizontal:8,paddingVertical:3.5,borderRadius:6}]}>
42
+ <react_native_1.View style={[styles_1.default.methodBadge,{backgroundColor:p?AppColors_1.AppColors.violet600:m?AppColors_1.AppColors.emerald600:AppColors_1.AppColors.blue600,paddingHorizontal:8,paddingVertical:3.5,borderRadius:6}]}>
43
43
  <react_native_1.Text style={[styles_1.default.methodBadgeText,{color:AppColors_1.AppColors.white,fontSize:10.5,fontFamily:AppFonts_1.AppFonts.interBold}]}>
44
- {c?"SIO":C?"WSS":"WS"}
44
+ {p?"SIO":m?"WSS":"WS"}
45
45
  </react_native_1.Text>
46
46
  </react_native_1.View>
47
47
 
48
48
 
49
- <react_native_1.View style={[styles_1.default.chip,{backgroundColor:c?`${AppColors_1.AppColors.violet600}14`:`${AppColors_1.AppColors.sky500}14`,borderColor:c?`${AppColors_1.AppColors.violet600}30`:`${AppColors_1.AppColors.sky500}30`,paddingHorizontal:6,paddingVertical:3,borderRadius:6}]}>
50
- <react_native_1.Text style={[styles_1.default.chipText,{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:c?AppColors_1.AppColors.violet600:AppColors_1.AppColors.sky600}]}>
49
+ <react_native_1.View style={[styles_1.default.chip,{backgroundColor:p?`${AppColors_1.AppColors.violet600}14`:`${AppColors_1.AppColors.sky500}14`,borderColor:p?`${AppColors_1.AppColors.violet600}30`:`${AppColors_1.AppColors.sky500}30`,paddingHorizontal:6,paddingVertical:3,borderRadius:6}]}>
50
+ <react_native_1.Text style={[styles_1.default.chipText,{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:p?AppColors_1.AppColors.violet600:AppColors_1.AppColors.sky600}]}>
51
51
  {(e.client||"WEBSOCKET").toUpperCase()}
52
52
  </react_native_1.Text>
53
53
  </react_native_1.View>
54
54
 
55
55
 
56
- <react_native_1.View style={[styles_1.default.chip,{backgroundColor:`${d}18`,borderColor:`${d}40`,paddingHorizontal:7,paddingVertical:3,borderRadius:6}]}>
57
- {e.status==="error"?<NetworkIcons_1.FailIcon size={8}color={AppColors_1.AppColors.errorColor}/>:<react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:d}}/>}
58
- <react_native_1.Text style={[styles_1.default.chipText,{color:d,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5}]}>
56
+ <react_native_1.View style={[styles_1.default.chip,{backgroundColor:`${y}18`,borderColor:`${y}40`,paddingHorizontal:7,paddingVertical:3,borderRadius:6}]}>
57
+ {e.status==="error"?<NetworkIcons_1.FailIcon size={8}color={AppColors_1.AppColors.errorColor}/>:<react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:y}}/>}
58
+ <react_native_1.Text style={[styles_1.default.chipText,{color:y,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5}]}>
59
59
  {(e.status||"open").toUpperCase()}
60
60
  </react_native_1.Text>
61
61
  </react_native_1.View>
@@ -80,7 +80,7 @@ ws.onclose = (event) => {
80
80
  <react_native_1.View style={[styles_1.default.chip,{backgroundColor:`${AppColors_1.AppColors.sky600}14`,borderColor:`${AppColors_1.AppColors.sky600}30`,paddingHorizontal:7,paddingVertical:3,borderRadius:6,gap:4}]}>
81
81
  <NetworkIcons_1.SizeIcon color={AppColors_1.AppColors.sky600}size={10}/>
82
82
  <react_native_1.Text style={[styles_1.default.chipText,{color:AppColors_1.AppColors.sky600,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5}]}>
83
- {formatByteSize(F)}
83
+ {(0,helpers_1.formatByteSize)(z)}
84
84
  </react_native_1.Text>
85
85
  </react_native_1.View>
86
86
  </react_native_1.View>
@@ -91,9 +91,9 @@ ws.onclose = (event) => {
91
91
 
92
92
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",gap:6}}>
93
93
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1,minWidth:0}}>
94
- {p?<react_native_1.View style={{backgroundColor:p.startsWith("wss")||p.startsWith("https")?`${AppColors_1.AppColors.green600}18`:`${AppColors_1.AppColors.amber500}18`,paddingHorizontal:6,paddingVertical:2,borderRadius:4}}>
95
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,color:p.startsWith("wss")||p.startsWith("https")?AppColors_1.AppColors.green600:AppColors_1.AppColors.amber500}}>
96
- {p.replace("://","").toUpperCase()}
94
+ {u?<react_native_1.View style={{backgroundColor:u.startsWith("wss")||u.startsWith("https")?`${AppColors_1.AppColors.green600}18`:`${AppColors_1.AppColors.amber500}18`,paddingHorizontal:6,paddingVertical:2,borderRadius:4}}>
95
+ <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,color:u.startsWith("wss")||u.startsWith("https")?AppColors_1.AppColors.green600:AppColors_1.AppColors.amber500}}>
96
+ {u.replace("://","").toUpperCase()}
97
97
  </react_native_1.Text>
98
98
  </react_native_1.View>:null}
99
99
 
@@ -104,18 +104,18 @@ ws.onclose = (event) => {
104
104
 
105
105
 
106
106
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0}}>
107
- <CopyButton_1.default value={T}label="wscat"iconType="terminal"/>
108
- <ShareButton_1.default onShare={b}/>
109
- <CopyButton_1.default value={w}label="JS"iconType="fetch"/>
107
+ <CopyButton_1.default value={v}label="wscat"iconType="terminal"/>
108
+ <ShareButton_1.default onShare={V}/>
109
+ <CopyButton_1.default value={T}label="JS"iconType="fetch"/>
110
110
  <CopyButton_1.default value={e.url}label="URL"iconType="copy"/>
111
- <TouchableScale_1.default style={[styles_1.default.iconSquareBtn,{backgroundColor:`${AppColors_1.AppColors.sky600}15`,borderColor:`${AppColors_1.AppColors.sky600}35`}]}onPress={g}hitSlop={10}accessibilityLabel="Open in Browser">
111
+ <TouchableScale_1.default style={[styles_1.default.iconSquareBtn,{backgroundColor:`${AppColors_1.AppColors.sky600}15`,borderColor:`${AppColors_1.AppColors.sky600}35`}]}onPress={x}hitSlop={10}accessibilityLabel="Open in Browser">
112
112
  <NetworkIcons_1.ExternalLinkIcon color={AppColors_1.AppColors.sky600}size={13}/>
113
113
  </TouchableScale_1.default>
114
114
  </react_native_1.View>
115
115
  </react_native_1.View>
116
116
 
117
117
 
118
- <react_native_1.Pressable onPress={g}>
118
+ <react_native_1.Pressable onPress={x}>
119
119
  <react_native_1.Text selectable={!0}style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12.5,color:AppColors_1.AppColors.skyBlue,textDecorationLine:"underline",lineHeight:18}}>
120
120
  {e.url}
121
121
  </react_native_1.Text>
@@ -125,16 +125,16 @@ ws.onclose = (event) => {
125
125
  </react_native_1.View>
126
126
 
127
127
 
128
- <SegmentedTabs_1.default tabs={[{key:"messages",label:`${o("socket.messages","Messages")} (${e.frames?.length||0})`,themeColor:AppColors_1.AppColors.violet600,icon:t=><NetworkIcons_1.SendFrameIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},{key:"overview",label:o("socket.overview","Overview"),themeColor:AppColors_1.AppColors.sky600,icon:t=><NetworkIcons_1.GlobeIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},{key:"params",label:`${o("socket.params","Params")} (${Object.keys(e.query||{}).length})`,themeColor:AppColors_1.AppColors.teal600,icon:t=><NetworkIcons_1.LayersIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},{key:"raw",label:o("socket.rawAndCode","Raw & Code"),themeColor:AppColors_1.AppColors.amber600,icon:t=><NetworkIcons_1.TerminalIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>}]}activeKey={a}onChange={l}style={{marginHorizontal:6,marginBottom:10,marginTop:6}}/>
128
+ <SegmentedTabs_1.default tabs={[{key:"messages",label:`${o("socket.messages","Messages")} (${e.frames?.length||0})`,themeColor:AppColors_1.AppColors.violet600,icon:t=><NetworkIcons_1.SendFrameIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},{key:"overview",label:o("socket.overview","Overview"),themeColor:AppColors_1.AppColors.sky600,icon:t=><NetworkIcons_1.GlobeIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},...e.headers&&Object.keys(e.headers).length>0?[{key:"headers",label:`${o("network.detailTabs.headers","Headers")} (${Object.keys(e.headers).length})`,themeColor:AppColors_1.AppColors.purple,icon:t=><NetworkIcons_1.HeadersIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>}]:[],{key:"params",label:`${o("socket.params","Params")} (${Object.keys(e.query||{}).length})`,themeColor:AppColors_1.AppColors.teal600,icon:t=><NetworkIcons_1.LayersIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>},{key:"raw",label:o("socket.rawAndCode","Raw & Code"),themeColor:AppColors_1.AppColors.amber600,icon:t=><NetworkIcons_1.TerminalIcon size={12}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>}]}activeKey={d}onChange={t=>{(0,InspectorContext_1.animateNextLayout)(),h(t)}}style={{marginHorizontal:6,marginBottom:10,marginTop:6}}/>
129
129
 
130
130
 
131
- {a==="messages"&&<react_native_1.View style={{flex:1}}>
131
+ {d==="messages"&&<react_native_1.View style={{flex:1}}>
132
132
 
133
133
  <react_native_1.View style={socketDetailStyles.frameControlBar}>
134
134
  <react_native_1.View style={socketDetailStyles.frameSearchBar}>
135
135
  <NetworkIcons_1.SearchIcon size={13}color={AppColors_1.AppColors.grayTextWeak}/>
136
- <react_native_1.TextInput style={socketDetailStyles.frameSearchInput}placeholder={o("socket.searchFramesPlaceholder","Search frame payloads or event names...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}value={r}onChangeText={f}clearButtonMode="while-editing"/>
137
- {r.length>0&&<react_native_1.Pressable onPress={()=>f("")}>
136
+ <react_native_1.TextInput style={socketDetailStyles.frameSearchInput}placeholder={o("socket.searchFramesPlaceholder","Search frame payloads or event names...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}value={c}onChangeText={g}clearButtonMode="while-editing"/>
137
+ {c.length>0&&<react_native_1.Pressable onPress={()=>g("")}>
138
138
  <NetworkIcons_1.ClearIcon size={12}color={AppColors_1.AppColors.grayTextWeak}/>
139
139
  </react_native_1.Pressable>}
140
140
  </react_native_1.View>
@@ -142,20 +142,20 @@ ws.onclose = (event) => {
142
142
 
143
143
  <react_native_1.View style={socketDetailStyles.frameFilterRow}>
144
144
  <react_native_1.View style={socketDetailStyles.dirPillGroup}>
145
- <react_native_1.TouchableOpacity onPress={()=>u("all")}style={[socketDetailStyles.dirPill,s==="all"&&socketDetailStyles.dirPillActive]}>
145
+ <react_native_1.TouchableOpacity onPress={()=>_("all")}style={[socketDetailStyles.dirPill,s==="all"&&socketDetailStyles.dirPillActive]}>
146
146
  <react_native_1.Text style={[socketDetailStyles.dirPillText,s==="all"&&socketDetailStyles.dirPillTextActive]}>
147
147
  {o("common.all","All")}
148
148
  </react_native_1.Text>
149
149
  </react_native_1.TouchableOpacity>
150
150
 
151
- <react_native_1.TouchableOpacity onPress={()=>u("send")}style={[socketDetailStyles.dirPill,s==="send"&&socketDetailStyles.dirPillActive,{flexDirection:"row",alignItems:"center",gap:4}]}>
151
+ <react_native_1.TouchableOpacity onPress={()=>_("send")}style={[socketDetailStyles.dirPill,s==="send"&&socketDetailStyles.dirPillActive,{flexDirection:"row",alignItems:"center",gap:4}]}>
152
152
  <NetworkIcons_1.SendFrameIcon size={10}color={s==="send"?AppColors_1.AppColors.white:AppColors_1.AppColors.emerald600}/>
153
153
  <react_native_1.Text style={[socketDetailStyles.dirPillText,s==="send"&&socketDetailStyles.dirPillTextActive]}>
154
154
  {o("socket.sent","Sent")}
155
155
  </react_native_1.Text>
156
156
  </react_native_1.TouchableOpacity>
157
157
 
158
- <react_native_1.TouchableOpacity onPress={()=>u("receive")}style={[socketDetailStyles.dirPill,s==="receive"&&socketDetailStyles.dirPillActive,{flexDirection:"row",alignItems:"center",gap:4}]}>
158
+ <react_native_1.TouchableOpacity onPress={()=>_("receive")}style={[socketDetailStyles.dirPill,s==="receive"&&socketDetailStyles.dirPillActive,{flexDirection:"row",alignItems:"center",gap:4}]}>
159
159
  <NetworkIcons_1.ReceiveFrameIcon size={10}color={s==="receive"?AppColors_1.AppColors.white:AppColors_1.AppColors.sky600}/>
160
160
  <react_native_1.Text style={[socketDetailStyles.dirPillText,s==="receive"&&socketDetailStyles.dirPillTextActive]}>
161
161
  {o("socket.recv","Recv")}
@@ -164,11 +164,11 @@ ws.onclose = (event) => {
164
164
  </react_native_1.View>
165
165
 
166
166
  <react_native_1.View style={socketDetailStyles.expandGroup}>
167
- <react_native_1.TouchableOpacity onPress={h}style={socketDetailStyles.textBtn}>
167
+ <react_native_1.TouchableOpacity onPress={F}style={socketDetailStyles.textBtn}>
168
168
  <react_native_1.Text style={socketDetailStyles.textBtnLabel}>{o("common.expandAll","Expand All")}</react_native_1.Text>
169
169
  </react_native_1.TouchableOpacity>
170
170
  <react_native_1.Text style={socketDetailStyles.textBtnSep}>•</react_native_1.Text>
171
- <react_native_1.TouchableOpacity onPress={V}style={socketDetailStyles.textBtn}>
171
+ <react_native_1.TouchableOpacity onPress={B}style={socketDetailStyles.textBtn}>
172
172
  <react_native_1.Text style={socketDetailStyles.textBtnLabel}>{o("common.collapseAll","Collapse All")}</react_native_1.Text>
173
173
  </react_native_1.TouchableOpacity>
174
174
  </react_native_1.View>
@@ -177,18 +177,18 @@ ws.onclose = (event) => {
177
177
 
178
178
 
179
179
  <react_native_1.ScrollView style={socketDetailStyles.framesScrollView}contentContainerStyle={{padding:12}}>
180
- {x.length===0?<react_native_1.View style={socketDetailStyles.emptyFrames}>
180
+ {w.length===0?<react_native_1.View style={socketDetailStyles.emptyFrames}>
181
181
  <react_native_1.Text style={socketDetailStyles.emptyFramesText}>
182
182
  {e.frames?.length===0?"No messages transferred on this connection yet":"No frames match the active search or direction filter"}
183
183
  </react_native_1.Text>
184
- </react_native_1.View>:x.map((t,i)=>{const n=t.direction==="send",A=m.has(t.id),_=n?AppColors_1.AppColors.blue600:AppColors_1.AppColors.emerald600,B=n?`${AppColors_1.AppColors.blue600}12`:`${AppColors_1.AppColors.emerald600}12`,k=t.timestamp-e.startTime;return<react_native_1.View key={t.id}style={socketDetailStyles.frameCard}>
184
+ </react_native_1.View>:w.map((t,n)=>{const r=t.direction==="send",b=S.has(t.id),C=r?AppColors_1.AppColors.blue600:AppColors_1.AppColors.emerald600,R=r?`${AppColors_1.AppColors.blue600}12`:`${AppColors_1.AppColors.emerald600}12`,P=t.timestamp-e.startTime;return<react_native_1.View key={t.id}style={socketDetailStyles.frameCard}>
185
185
 
186
- <react_native_1.Pressable onPress={()=>S(t.id)}style={socketDetailStyles.frameCardHeader}>
186
+ <react_native_1.Pressable onPress={()=>k(t.id)}style={socketDetailStyles.frameCardHeader}>
187
187
  <react_native_1.View style={socketDetailStyles.frameHeaderLeft}>
188
- <react_native_1.View style={[socketDetailStyles.dirBadge,{backgroundColor:B}]}>
189
- {n?<NetworkIcons_1.SendFrameIcon size={10}color={_}/>:<NetworkIcons_1.ReceiveFrameIcon size={10}color={_}/>}
190
- <react_native_1.Text style={[socketDetailStyles.dirBadgeText,{color:_}]}>
191
- {n?"SENT":"RECV"}
188
+ <react_native_1.View style={[socketDetailStyles.dirBadge,{backgroundColor:R}]}>
189
+ {r?<NetworkIcons_1.SendFrameIcon size={10}color={C}/>:<NetworkIcons_1.ReceiveFrameIcon size={10}color={C}/>}
190
+ <react_native_1.Text style={[socketDetailStyles.dirBadgeText,{color:C}]}>
191
+ {r?"SENT":"RECV"}
192
192
  </react_native_1.Text>
193
193
  </react_native_1.View>
194
194
 
@@ -198,27 +198,27 @@ ws.onclose = (event) => {
198
198
  </react_native_1.Text>
199
199
  </react_native_1.View>}
200
200
 
201
- <react_native_1.Text style={socketDetailStyles.frameIndexText}>#{i+1}</react_native_1.Text>
201
+ <react_native_1.Text style={socketDetailStyles.frameIndexText}>#{n+1}</react_native_1.Text>
202
202
  </react_native_1.View>
203
203
 
204
204
  <react_native_1.View style={socketDetailStyles.frameHeaderRight}>
205
205
  <react_native_1.Text style={socketDetailStyles.frameOffsetTime}>
206
- +{k}ms
206
+ +{P}ms
207
207
  </react_native_1.Text>
208
208
  <react_native_1.View style={socketDetailStyles.frameSizePill}>
209
209
  <react_native_1.Text style={socketDetailStyles.frameSizeText}>
210
- {formatByteSize(t.size||0)}
210
+ {(0,helpers_1.formatByteSize)(t.size||0)}
211
211
  </react_native_1.Text>
212
212
  </react_native_1.View>
213
213
  <CopyButton_1.default value={t.raw??t.data}label="Frame"/>
214
- <NetworkIcons_1.ChevronIcon direction={A?"up":"down"}size={12}color={AppColors_1.AppColors.grayTextWeak}/>
214
+ <NetworkIcons_1.ChevronIcon direction={b?"up":"down"}size={12}color={AppColors_1.AppColors.grayTextWeak}/>
215
215
  </react_native_1.View>
216
216
  </react_native_1.Pressable>
217
217
 
218
218
 
219
219
  <react_native_1.View style={socketDetailStyles.frameBody}>
220
- {typeof t.data=="object"&&t.data!==null?<JsonViewer_1.default data={t.data}search={r}forceOpen={A}/>:<react_native_1.Text style={socketDetailStyles.frameRawText}>
221
- <HighlightText_1.default text={String(t.data)}search={r}/>
220
+ {typeof t.data=="object"&&t.data!==null?<JsonViewer_1.default data={t.data}search={c}forceOpen={b}/>:<react_native_1.Text style={socketDetailStyles.frameRawText}>
221
+ <HighlightText_1.default text={String(t.data)}search={c}/>
222
222
  </react_native_1.Text>}
223
223
  </react_native_1.View>
224
224
  </react_native_1.View>})}
@@ -226,91 +226,101 @@ ws.onclose = (event) => {
226
226
  </react_native_1.View>}
227
227
 
228
228
 
229
- {a==="overview"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
229
+ {d==="overview"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
230
230
  <react_native_1.View style={socketDetailStyles.sectionCard}>
231
- <react_native_1.Text style={socketDetailStyles.sectionHeading}>CONNECTION DETAILS</react_native_1.Text>
231
+ <react_native_1.Text style={socketDetailStyles.sectionHeading}>{o("socket.connectionDetails","CONNECTION DETAILS")}</react_native_1.Text>
232
232
 
233
233
  <react_native_1.View style={socketDetailStyles.infoRow}>
234
- <react_native_1.Text style={socketDetailStyles.infoKey}>URL</react_native_1.Text>
234
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.url","URL")}</react_native_1.Text>
235
235
  <react_native_1.Text style={socketDetailStyles.infoVal}selectable>{e.url}</react_native_1.Text>
236
236
  </react_native_1.View>
237
237
 
238
238
  <react_native_1.View style={socketDetailStyles.infoRow}>
239
- <react_native_1.Text style={socketDetailStyles.infoKey}>Client Engine</react_native_1.Text>
239
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.clientEngine","Client Engine")}</react_native_1.Text>
240
240
  <react_native_1.Text style={socketDetailStyles.infoVal}>{e.client?.toUpperCase()||"WEBSOCKET"}</react_native_1.Text>
241
241
  </react_native_1.View>
242
242
 
243
243
  <react_native_1.View style={socketDetailStyles.infoRow}>
244
- <react_native_1.Text style={socketDetailStyles.infoKey}>Ready State</react_native_1.Text>
244
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.readyState","Ready State")}</react_native_1.Text>
245
245
  <react_native_1.Text style={socketDetailStyles.infoVal}>
246
246
  {e.readyState===1?"1 (OPEN)":e.readyState===0?"0 (CONNECTING)":e.readyState===2?"2 (CLOSING)":"3 (CLOSED)"}
247
247
  </react_native_1.Text>
248
248
  </react_native_1.View>
249
249
 
250
250
  <react_native_1.View style={socketDetailStyles.infoRow}>
251
- <react_native_1.Text style={socketDetailStyles.infoKey}>Connected At</react_native_1.Text>
251
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.connectedAt","Connected At")}</react_native_1.Text>
252
252
  <react_native_1.Text style={socketDetailStyles.infoVal}>{(0,helpers_1.formatDateTime)(e.startTime)}</react_native_1.Text>
253
253
  </react_native_1.View>
254
254
 
255
255
  {e.endTime&&<react_native_1.View style={socketDetailStyles.infoRow}>
256
- <react_native_1.Text style={socketDetailStyles.infoKey}>Closed At</react_native_1.Text>
256
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.closedAt","Closed At")}</react_native_1.Text>
257
257
  <react_native_1.Text style={socketDetailStyles.infoVal}>{(0,helpers_1.formatDateTime)(e.endTime)}</react_native_1.Text>
258
258
  </react_native_1.View>}
259
259
 
260
260
  {e.closeCode!=null&&<react_native_1.View style={socketDetailStyles.infoRow}>
261
- <react_native_1.Text style={socketDetailStyles.infoKey}>Close Code & Reason</react_native_1.Text>
261
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.closeCodeReason","Close Code & Reason")}</react_native_1.Text>
262
262
  <react_native_1.Text style={socketDetailStyles.infoVal}>{e.closeCode} ({e.closeReason||"N/A"})</react_native_1.Text>
263
263
  </react_native_1.View>}
264
264
 
265
265
  {e.protocols&&<react_native_1.View style={socketDetailStyles.infoRow}>
266
- <react_native_1.Text style={socketDetailStyles.infoKey}>Subprotocols</react_native_1.Text>
266
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.subprotocols","Subprotocols")}</react_native_1.Text>
267
267
  <react_native_1.Text style={socketDetailStyles.infoVal}>
268
268
  {Array.isArray(e.protocols)?e.protocols.join(", "):e.protocols}
269
269
  </react_native_1.Text>
270
270
  </react_native_1.View>}
271
271
 
272
272
  {e.caller&&<react_native_1.View style={socketDetailStyles.infoRow}>
273
- <react_native_1.Text style={socketDetailStyles.infoKey}>Caller Stack</react_native_1.Text>
273
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.callerStack","Caller Stack")}</react_native_1.Text>
274
274
  <react_native_1.Text style={[socketDetailStyles.infoVal,{fontFamily:AppFonts_1.AppFonts.interMedium,color:AppColors_1.AppColors.brandPurple}]}selectable>
275
275
  {e.caller}
276
276
  </react_native_1.Text>
277
277
  </react_native_1.View>}
278
278
 
279
279
  {e.error&&<react_native_1.View style={socketDetailStyles.infoRow}>
280
- <react_native_1.Text style={socketDetailStyles.infoKey}>Error</react_native_1.Text>
280
+ <react_native_1.Text style={socketDetailStyles.infoKey}>{o("socket.error","Error")}</react_native_1.Text>
281
281
  <react_native_1.Text style={[socketDetailStyles.infoVal,{color:AppColors_1.AppColors.errorColor}]}selectable>
282
282
  {e.error}
283
283
  </react_native_1.Text>
284
284
  </react_native_1.View>}
285
285
  </react_native_1.View>
286
+
287
+
288
+ {(()=>{const t=e.routeInfo||i?.current&&i.current.get(e.id);return!t||!t.path||t.path==="Navigators"?null:<react_native_1.View style={{marginTop:12}}>
289
+ <SourcePageCard_1.default routeInfo={t}/>
290
+ </react_native_1.View>})()}
286
291
  </react_native_1.ScrollView>}
287
292
 
288
293
 
289
- {a==="params"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
294
+ {d==="headers"&&e.headers&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
295
+ <HeadersSection_1.default title={o("socket.handshakeHeaders","Handshake Headers")}headers={e.headers}search=""resetKey={e.id}/>
296
+ </react_native_1.ScrollView>}
297
+
298
+
299
+ {d==="params"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
290
300
  <react_native_1.View style={socketDetailStyles.sectionCard}>
291
- <react_native_1.Text style={socketDetailStyles.sectionHeading}>HANDSHAKE QUERY PARAMETERS</react_native_1.Text>
292
- {!e.query||Object.keys(e.query).length===0?<react_native_1.Text style={socketDetailStyles.emptySectionText}>No query parameters passed in connection URL</react_native_1.Text>:Object.entries(e.query).map(([t,i])=><react_native_1.View key={t}style={socketDetailStyles.paramRow}>
301
+ <react_native_1.Text style={socketDetailStyles.sectionHeading}>{o("socket.handshakeParams","HANDSHAKE QUERY PARAMETERS")}</react_native_1.Text>
302
+ {!e.query||Object.keys(e.query).length===0?<react_native_1.Text style={socketDetailStyles.emptySectionText}>{o("socket.noQueryParams","No query parameters passed in connection URL")}</react_native_1.Text>:Object.entries(e.query).map(([t,n])=><react_native_1.View key={t}style={socketDetailStyles.paramRow}>
293
303
  <react_native_1.Text style={socketDetailStyles.paramKey}selectable>{t}</react_native_1.Text>
294
- <react_native_1.Text style={socketDetailStyles.paramVal}selectable>{i}</react_native_1.Text>
295
- <CopyButton_1.default value={i}label={t}/>
304
+ <react_native_1.Text style={socketDetailStyles.paramVal}selectable>{n}</react_native_1.Text>
305
+ <CopyButton_1.default value={n}label={t}/>
296
306
  </react_native_1.View>)}
297
307
  </react_native_1.View>
298
308
  </react_native_1.ScrollView>}
299
309
 
300
310
 
301
- {a==="raw"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
311
+ {d==="raw"&&<react_native_1.ScrollView style={socketDetailStyles.tabContentScroll}contentContainerStyle={{padding:12}}>
302
312
  <react_native_1.View style={socketDetailStyles.sectionCard}>
303
- <react_native_1.Text style={socketDetailStyles.sectionHeading}>JAVASCRIPT CLIENT CODE</react_native_1.Text>
304
- <CodeSnippet_1.default code={w}language="javascript"/>
313
+ <react_native_1.Text style={socketDetailStyles.sectionHeading}>{o("socket.jsClientCode","JAVASCRIPT CLIENT CODE")}</react_native_1.Text>
314
+ <CodeSnippet_1.default code={T}language="javascript"/>
305
315
  </react_native_1.View>
306
316
 
307
317
  <react_native_1.View style={[socketDetailStyles.sectionCard,{marginTop:14}]}>
308
- <react_native_1.Text style={socketDetailStyles.sectionHeading}>TERMINAL WSCAT COMMAND</react_native_1.Text>
309
- <CodeSnippet_1.default code={T}language="javascript"/>
318
+ <react_native_1.Text style={socketDetailStyles.sectionHeading}>{o("socket.terminalWscat","TERMINAL WSCAT COMMAND")}</react_native_1.Text>
319
+ <CodeSnippet_1.default code={v}language="javascript"/>
310
320
  </react_native_1.View>
311
321
 
312
322
  <react_native_1.View style={[socketDetailStyles.sectionCard,{marginTop:14}]}>
313
- <react_native_1.Text style={socketDetailStyles.sectionHeading}>RAW CONNECTION JSON DUMP</react_native_1.Text>
323
+ <react_native_1.Text style={socketDetailStyles.sectionHeading}>{o("socket.rawDump","RAW CONNECTION JSON DUMP")}</react_native_1.Text>
314
324
  <JsonViewer_1.default data={e}/>
315
325
  </react_native_1.View>
316
326
  </react_native_1.ScrollView>}
@@ -1,5 +1,5 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,i,l){l===void 0&&(l=i);var a=Object.getOwnPropertyDescriptor(r,i);(!a||("get"in a?!r.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return r[i]}}),Object.defineProperty(t,l,a)}):(function(t,r,i,l){l===void 0&&(l=i),t[l]=r[i]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}):function(t,r){t.default=r}),__importStar=this&&this.__importStar||(function(){var t=function(r){return t=Object.getOwnPropertyNames||function(i){var l=[];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(l[l.length]=a);return l},t(r)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var l=t(r),a=0;a<l.length;a++)l[a]!=="default"&&__createBinding(i,r,l[a]);return __setModuleDefault(i,r),i}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),SocketCard_1=__importDefault(require("./SocketCard")),SocketFilterModal_1=__importStar(require("./SocketFilterModal")),ConfirmationModal_1=require("./ConfirmationModal"),TouchableScale_1=__importDefault(require("../TouchableScale")),AnimatedEntrance_1=__importDefault(require("../AnimatedEntrance")),EmptyState_1=__importDefault(require("../EmptyState")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),NetworkIcons_1=require("../NetworkIcons"),LOAD_MORE_STEP=10,SocketTab=react_1.default.memo(()=>{const{t}=(0,i18n_1.useTranslation)(),{socketRecords:r,filteredSocketRecords:i,socketSearch:l,setSocketSearch:a,socketQuickFilter:p,setSocketQuickFilter:_,setSelectedSocket:T,clearAllSocketLogs:w,deleteMultipleSocketRecords:k,simulateSocket:A,maxSocketLogs:m}=(0,InspectorContext_1.useInspector)(),L=m||50,x=(0,react_1.useRef)(null),[v,E]=(0,react_1.useState)(0),[b,B]=(0,react_1.useState)(L),[q,I]=(0,react_1.useState)(!1),[d,$]=(0,react_1.useState)(SocketFilterModal_1.DEFAULT_SOCKET_FILTERS),[c,C]=(0,react_1.useState)(new Set),[F,V]=(0,react_1.useState)(!1),[f,h]=(0,react_1.useState)({visible:!1,title:"",message:"",onConfirm:()=>{}});react_1.default.useEffect(()=>{B(m||50),x.current?.scrollToOffset({offset:0,animated:!1})},[l,p,m]);const z=["chat","crypto","socketio","echo"],O=(0,react_1.useCallback)(()=>{const e=z[v%z.length];A(e),E(o=>o+1),(0,toast_1.showToast)(`Simulated ${e.toUpperCase()} WebSocket`)},[v,A]),u=(0,react_1.useMemo)(()=>{let e=0,o=0,s=0,D=0,M=0,P=0;return r.forEach(S=>{const y=(S.status||"open").toLowerCase();y==="open"?e++:y==="closed"?o++:y==="error"&&s++,S.client==="socket.io"||S.url.includes("/socket.io")?P++:S.url.startsWith("wss://")?D++:M++}),{all:r.length,open:e,closed:o,error:s,wss:D,ws:M,sio:P}},[r]),n=(0,react_1.useMemo)(()=>{let e=i;return(0,SocketFilterModal_1.isSocketFiltersDefault)(d)||(d.status.has("all")||(e=e.filter(o=>d.status.has(o.status||"open"))),d.types.has("all")||(e=e.filter(o=>!!(d.types.has("sio")&&(o.client==="socket.io"||o.url.includes("/socket.io"))||d.types.has("wss")&&o.url.startsWith("wss://")||d.types.has("ws")&&o.url.startsWith("ws://")))),d.sortBy==="time_asc"?e=[...e].sort((o,s)=>o.startTime-s.startTime):d.sortBy==="frames_desc"?e=[...e].sort((o,s)=>(s.frames?.length||0)-(o.frames?.length||0)):d.sortBy==="duration_desc"&&(e=[...e].sort((o,s)=>(s.duration||0)-(o.duration||0)))),e},[i,d]),g=(0,react_1.useMemo)(()=>n.slice(0,b),[n,b]),R=(0,react_1.useCallback)(e=>{C(o=>{const s=new Set(o);return s.has(e)?s.delete(e):s.add(e),s})},[]),j=(0,react_1.useCallback)(()=>{c.size===n.length?C(new Set):C(new Set(n.map(e=>e.id)))},[c.size,n]),H=(0,react_1.useCallback)(()=>{const e=n.filter(s=>c.has(s.id));if(e.length===0)return;const o=e.map(s=>s.url).join(`
2
- `);(0,helpers_1.copyToClipboard)(o,`${e.length} WebSocket URLs`),(0,toast_1.showToast)(`${e.length} URLs copied to clipboard`)},[n,c]),N=(0,react_1.useCallback)(async()=>{const e=n.filter(o=>c.has(o.id));if(e.length!==0)try{const o=JSON.stringify(e.map(s=>({url:s.url,status:s.status,startTime:new Date(s.startTime).toISOString(),duration:s.duration,framesCount:s.frames?.length||0,totalBytesSent:s.totalBytesSent,totalBytesReceived:s.totalBytesReceived})),null,2);await react_native_1.Share.share({message:o,title:`WebSocket Traffic (${e.length} connections)`})}catch{}},[n,c]),U=(0,react_1.useCallback)(()=>{c.size!==0&&h({visible:!0,title:t("socket.deleteSelectedTitle","Delete Selected WebSockets"),message:t("socket.deleteSelectedMsg",{count:c.size,defaultValue:`Are you sure you want to delete ${c.size} selected WebSocket logs?`}),confirmText:t("common.delete","Delete"),cancelText:t("common.cancel","Cancel"),onConfirm:()=>{h(o=>({...o,visible:!1}));const e=Array.from(c);k?.(e),C(new Set),(0,toast_1.showToast)(`Deleted ${e.length} WebSocket logs`)}})},[c,k,t]),K=(0,react_1.useCallback)(()=>{h({visible:!0,title:t("socket.clearTitle","Clear All WebSocket Logs"),message:t("socket.clearMessage","Are you sure you want to delete all recorded WebSocket sessions?"),confirmText:t("common.clear","Clear All"),cancelText:t("common.cancel","Cancel"),onConfirm:()=>{h(e=>({...e,visible:!1})),w(),C(new Set),(0,toast_1.showToast)(t("socket.cleared","All WebSocket logs cleared"))}})},[w,t]),Q=(0,react_1.useMemo)(()=>[{id:"all",label:"All",count:u.all,color:AppColors_1.AppColors.purple,icon:e=><NetworkIcons_1.WebsocketIcon size={12}color={e}/>},{id:"open",label:"Open",count:u.open,color:AppColors_1.AppColors.greenColor,icon:e=><react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:e}}/>},{id:"closed",label:"Closed",count:u.closed,color:AppColors_1.AppColors.slate500,icon:e=><NetworkIcons_1.ClockIcon size={11}color={e}/>},{id:"error",label:"Error",count:u.error,color:AppColors_1.AppColors.errorColor,icon:e=><NetworkIcons_1.FailIcon size={9}color={e}/>},{id:"sio",label:"Socket.IO",count:u.sio,color:AppColors_1.AppColors.violet600,icon:e=><NetworkIcons_1.BoltIcon size={11}color={e}/>},{id:"wss",label:"WSS",count:u.wss,color:AppColors_1.AppColors.emerald600,icon:e=><NetworkIcons_1.LockIcon size={11}color={e}/>},{id:"ws",label:"WS",count:u.ws,color:AppColors_1.AppColors.blue600,icon:e=><NetworkIcons_1.GlobeIcon size={11}color={e}/>}],[u]),G=(0,react_1.useCallback)(()=>{b<n.length&&B(e=>Math.min(e+LOAD_MORE_STEP,n.length))},[b,n.length]),W=(0,react_1.useCallback)(e=>{T(e)},[T]),J=(0,react_1.useCallback)(e=>e?.id?String(e.id):"",[]),X=(0,react_1.useCallback)(({item:e,index:o})=><AnimatedEntrance_1.default index={o}distance={8}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,i,l){l===void 0&&(l=i);var a=Object.getOwnPropertyDescriptor(r,i);(!a||("get"in a?!r.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return r[i]}}),Object.defineProperty(t,l,a)}):(function(t,r,i,l){l===void 0&&(l=i),t[l]=r[i]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}):function(t,r){t.default=r}),__importStar=this&&this.__importStar||(function(){var t=function(r){return t=Object.getOwnPropertyNames||function(i){var l=[];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(l[l.length]=a);return l},t(r)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var l=t(r),a=0;a<l.length;a++)l[a]!=="default"&&__createBinding(i,r,l[a]);return __setModuleDefault(i,r),i}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),SocketCard_1=__importDefault(require("./SocketCard")),SocketFilterModal_1=__importStar(require("./SocketFilterModal")),ConfirmationModal_1=require("./ConfirmationModal"),TouchableScale_1=__importDefault(require("../TouchableScale")),AnimatedEntrance_1=__importDefault(require("../AnimatedEntrance")),EmptyState_1=__importDefault(require("../EmptyState")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),NetworkIcons_1=require("../NetworkIcons"),LOAD_MORE_STEP=10,SocketTab=react_1.default.memo(()=>{const{t}=(0,i18n_1.useTranslation)(),{socketRecords:r,filteredSocketRecords:i,socketSearch:l,setSocketSearch:a,socketQuickFilter:p,setSocketQuickFilter:_,setSelectedSocket:T,clearAllSocketLogs:w,deleteMultipleSocketRecords:k,simulateSocket:A,maxSocketLogs:m}=(0,InspectorContext_1.useInspector)(),L=m||50,x=(0,react_1.useRef)(null),[v,E]=(0,react_1.useState)(0),[g,B]=(0,react_1.useState)(L),[q,I]=(0,react_1.useState)(!1),[d,$]=(0,react_1.useState)(SocketFilterModal_1.DEFAULT_SOCKET_FILTERS),[c,C]=(0,react_1.useState)(new Set),[F,V]=(0,react_1.useState)(!1),[f,h]=(0,react_1.useState)({visible:!1,title:"",message:"",onConfirm:()=>{}});react_1.default.useEffect(()=>{B(m||50),x.current?.scrollToOffset({offset:0,animated:!1})},[l,p,m]);const z=["chat","crypto","socketio","echo"],O=(0,react_1.useCallback)(()=>{const e=z[v%z.length];A(e),E(o=>o+1),(0,toast_1.showToast)(`Simulated ${e.toUpperCase()} WebSocket`)},[v,A]),u=(0,react_1.useMemo)(()=>{let e=0,o=0,s=0,D=0,M=0,P=0;return r.forEach(S=>{const y=(S.status||"open").toLowerCase();y==="open"?e++:y==="closed"?o++:y==="error"&&s++,S.client==="socket.io"||S.url.includes("/socket.io")?P++:S.url.startsWith("wss://")?D++:M++}),{all:r.length,open:e,closed:o,error:s,wss:D,ws:M,sio:P}},[r]),n=(0,react_1.useMemo)(()=>{let e=i;return(0,SocketFilterModal_1.isSocketFiltersDefault)(d)||(d.status.has("all")||(e=e.filter(o=>d.status.has(o.status||"open"))),d.types.has("all")||(e=e.filter(o=>!!(d.types.has("sio")&&(o.client==="socket.io"||o.url.includes("/socket.io"))||d.types.has("wss")&&o.url.startsWith("wss://")||d.types.has("ws")&&o.url.startsWith("ws://")))),d.sortBy==="time_asc"?e=[...e].sort((o,s)=>o.startTime-s.startTime):d.sortBy==="frames_desc"?e=[...e].sort((o,s)=>(s.frames?.length||0)-(o.frames?.length||0)):d.sortBy==="duration_desc"&&(e=[...e].sort((o,s)=>(s.duration||0)-(o.duration||0)))),e},[i,d]),b=(0,react_1.useMemo)(()=>n.slice(0,g),[n,g]),R=(0,react_1.useCallback)(e=>{C(o=>{const s=new Set(o);return s.has(e)?s.delete(e):s.add(e),s})},[]),j=(0,react_1.useCallback)(()=>{c.size===n.length?C(new Set):C(new Set(n.map(e=>e.id)))},[c.size,n]),H=(0,react_1.useCallback)(()=>{const e=n.filter(s=>c.has(s.id));if(e.length===0)return;const o=e.map(s=>s.url).join(`
2
+ `);(0,helpers_1.copyToClipboard)(o,`${e.length} WebSocket URLs`),(0,toast_1.showToast)(`${e.length} URLs copied to clipboard`)},[n,c]),N=(0,react_1.useCallback)(async()=>{const e=n.filter(o=>c.has(o.id));if(e.length!==0)try{const o=JSON.stringify(e.map(s=>({url:s.url,status:s.status,startTime:new Date(s.startTime).toISOString(),duration:s.duration,framesCount:s.frames?.length||0,totalBytesSent:s.totalBytesSent,totalBytesReceived:s.totalBytesReceived})),null,2);await react_native_1.Share.share({message:o,title:`WebSocket Traffic (${e.length} connections)`})}catch{}},[n,c]),U=(0,react_1.useCallback)(()=>{c.size!==0&&h({visible:!0,title:t("socket.deleteSelectedTitle","Delete Selected WebSockets"),message:t("socket.deleteSelectedMsg",{count:c.size,defaultValue:`Are you sure you want to delete ${c.size} selected WebSocket logs?`}),confirmText:t("common.delete","Delete"),cancelText:t("common.cancel","Cancel"),onConfirm:()=>{h(o=>({...o,visible:!1}));const e=Array.from(c);k?.(e),C(new Set),(0,toast_1.showToast)(`Deleted ${e.length} WebSocket logs`)}})},[c,k,t]),K=(0,react_1.useCallback)(()=>{h({visible:!0,title:t("socket.clearTitle","Clear All WebSocket Logs"),message:t("socket.clearMessage","Are you sure you want to delete all recorded WebSocket sessions?"),confirmText:t("common.clear","Clear All"),cancelText:t("common.cancel","Cancel"),onConfirm:()=>{h(e=>({...e,visible:!1})),w(),C(new Set),(0,toast_1.showToast)(t("socket.cleared","All WebSocket logs cleared"))}})},[w,t]),Q=(0,react_1.useMemo)(()=>[{id:"all",label:"All",count:u.all,color:AppColors_1.AppColors.purple,icon:e=><NetworkIcons_1.WebsocketIcon size={12}color={e}/>},{id:"open",label:"Open",count:u.open,color:AppColors_1.AppColors.greenColor,icon:e=><react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:e}}/>},{id:"closed",label:"Closed",count:u.closed,color:AppColors_1.AppColors.slate500,icon:e=><NetworkIcons_1.ClockIcon size={11}color={e}/>},{id:"error",label:"Error",count:u.error,color:AppColors_1.AppColors.errorColor,icon:e=><NetworkIcons_1.FailIcon size={9}color={e}/>},{id:"sio",label:"Socket.IO",count:u.sio,color:AppColors_1.AppColors.violet600,icon:e=><NetworkIcons_1.BoltIcon size={11}color={e}/>},{id:"wss",label:"WSS",count:u.wss,color:AppColors_1.AppColors.emerald600,icon:e=><NetworkIcons_1.LockIcon size={11}color={e}/>},{id:"ws",label:"WS",count:u.ws,color:AppColors_1.AppColors.blue600,icon:e=><NetworkIcons_1.GlobeIcon size={11}color={e}/>}],[u]),G=(0,react_1.useCallback)(()=>{g<n.length&&B(e=>Math.min(e+LOAD_MORE_STEP,n.length))},[g,n.length]),W=(0,react_1.useCallback)(e=>{T(e)},[T]),J=(0,react_1.useCallback)(e=>e?.id?String(e.id):"",[]),X=(0,react_1.useCallback)(({item:e,index:o})=><AnimatedEntrance_1.default index={o}distance={8}>
3
3
  <SocketCard_1.default item={e}onPress={()=>W(e)}searchStr={l}isSelected={c.has(e.id)}onToggleSelect={R}serialNumber={o+1}/>
4
4
  </AnimatedEntrance_1.default>,[l,c,R,W]);return<react_native_1.View style={{flex:1,backgroundColor:AppColors_1.AppColors.primaryLight}}>
5
5
 
@@ -95,7 +95,7 @@
95
95
  </react_native_1.View>}
96
96
 
97
97
 
98
- <react_native_1.FlatList ref={x}data={g}keyExtractor={J}renderItem={X}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}contentContainerStyle={[socketTabStyles.listContent,g.length===0&&{flex:1}]}showsVerticalScrollIndicator={!1}ListEmptyComponent={<react_native_1.View style={socketTabStyles.emptyWrapper}>
98
+ <react_native_1.FlatList ref={x}data={b}keyExtractor={J}renderItem={X}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}style={{flex:1}}contentContainerStyle={[socketTabStyles.listContent,{flexGrow:1}]}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}keyboardShouldPersistTaps="handled"ListEmptyComponent={<react_native_1.View style={socketTabStyles.emptyWrapper}>
99
99
  <EmptyState_1.default isSearch={!!(l||p!=="all")}searchQuery={l}customTitle={l||p!=="all"?t("socket.noMatching","No matching WebSockets"):t("socket.noSockets","No WebSockets recorded yet")}customSub={l||p!=="all"?t("socket.adjustSearchFilter","Try adjusting your search query or filter chips."):t("socket.noSocketsDesc","WebSocket connections and Socket.IO messages will appear here in real-time.")}onClearSearch={()=>{a(""),_("all")}}showReload={!1}/>
100
100
  {!l&&p==="all"&&<TouchableScale_1.default onPress={O}style={socketTabStyles.simulateEmptyBtn}>
101
101
  <NetworkIcons_1.BoltIcon color={AppColors_1.AppColors.white}size={14}/>
@@ -103,7 +103,7 @@
103
103
  {t("socket.simulateTraffic","Simulate Demo WebSocket Traffic")}
104
104
  </react_native_1.Text>
105
105
  </TouchableScale_1.default>}
106
- </react_native_1.View>}ListFooterComponent={g.length>0?<EndOfListFooter_1.default totalCount={n.length}count={g.length}hasMore={g.length<n.length}onLoadMore={G}/>:null}/>
106
+ </react_native_1.View>}ListFooterComponent={b.length>0?<EndOfListFooter_1.default totalCount={n.length}count={b.length}hasMore={b.length<n.length}onLoadMore={G}/>:null}/>
107
107
 
108
108
 
109
109
  <SocketFilterModal_1.default visible={q}onClose={()=>I(!1)}filters={d}onApply={$}records={r}/>