react-native-inapp-inspector 2.4.0 → 2.4.2

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 (231) hide show
  1. package/README.ar.md +163 -0
  2. package/README.de.md +163 -0
  3. package/README.es.md +164 -0
  4. package/README.fr.md +163 -0
  5. package/README.hi.md +163 -0
  6. package/README.ja.md +180 -0
  7. package/README.ko.md +163 -0
  8. package/README.md +340 -243
  9. package/README.pt-BR.md +163 -0
  10. package/README.ru.md +163 -0
  11. package/README.zh-CN.md +387 -0
  12. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +82 -21
  13. package/assets/banner_dark.svg +186 -0
  14. package/assets/banner_light.svg +186 -0
  15. package/assets/icon_circle.svg +148 -0
  16. package/assets/icon_square.svg +369 -0
  17. package/assets/inapp_inspector_icon.gif +0 -0
  18. package/assets/inapp_inspector_icon_original.gif +0 -0
  19. package/assets/social_preview.png +0 -0
  20. package/assets/walkthrough.gif +0 -0
  21. package/dist/commonjs/components/AnimatedBrandOwl.d.ts +7 -0
  22. package/dist/commonjs/components/AnimatedBrandOwl.js +175 -0
  23. package/dist/commonjs/components/AppHeaderLogo.d.ts +1 -0
  24. package/dist/commonjs/components/AppHeaderLogo.js +7 -5
  25. package/dist/commonjs/components/BrandSquareIcon.d.ts +5 -0
  26. package/dist/commonjs/components/BrandSquareIcon.js +139 -0
  27. package/dist/commonjs/components/ConsoleLogCard.d.ts +2 -1
  28. package/dist/commonjs/components/ConsoleLogCard.js +23 -39
  29. package/dist/commonjs/components/Inspector/AboutModal.js +44 -54
  30. package/dist/commonjs/components/Inspector/AnalyticsTab.js +16 -16
  31. package/dist/commonjs/components/Inspector/ConfirmationModal.d.ts +13 -0
  32. package/dist/commonjs/components/Inspector/ConfirmationModal.js +32 -0
  33. package/dist/commonjs/components/Inspector/ConsoleTab.js +15 -15
  34. package/dist/commonjs/components/Inspector/CrashTab.js +25 -23
  35. package/dist/commonjs/components/Inspector/DebuggingTab.js +17 -17
  36. package/dist/commonjs/components/Inspector/FabLauncher.js +22 -30
  37. package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +2 -2
  38. package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +15 -0
  39. package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +90 -0
  40. package/dist/commonjs/components/Inspector/MainScreen.js +46 -33
  41. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +21 -19
  42. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +85 -101
  43. package/dist/commonjs/components/Inspector/NetworkTab.js +50 -50
  44. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +1 -1
  45. package/dist/commonjs/components/Inspector/PushCard.d.ts +3 -2
  46. package/dist/commonjs/components/Inspector/PushCard.js +5 -4
  47. package/dist/commonjs/components/Inspector/PushDetail.js +32 -23
  48. package/dist/commonjs/components/Inspector/PushTab.js +13 -13
  49. package/dist/commonjs/components/Inspector/ReduxDetail.js +32 -32
  50. package/dist/commonjs/components/Inspector/ReduxTab.js +14 -14
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +258 -139
  52. package/dist/commonjs/components/Inspector/SocketCard.d.ts +5 -0
  53. package/dist/commonjs/components/Inspector/SocketCard.js +116 -0
  54. package/dist/commonjs/components/Inspector/SocketDetail.d.ts +4 -0
  55. package/dist/commonjs/components/Inspector/SocketDetail.js +317 -0
  56. package/dist/commonjs/components/Inspector/SocketFilterModal.d.ts +13 -0
  57. package/dist/commonjs/components/Inspector/SocketFilterModal.js +69 -0
  58. package/dist/commonjs/components/Inspector/SocketTab.d.ts +3 -0
  59. package/dist/commonjs/components/Inspector/SocketTab.js +112 -0
  60. package/dist/commonjs/components/Inspector/StorageTab.js +34 -32
  61. package/dist/commonjs/components/Inspector/SupportModal.d.ts +7 -0
  62. package/dist/commonjs/components/Inspector/SupportModal.js +125 -0
  63. package/dist/commonjs/components/Inspector/SupportPage.d.ts +5 -0
  64. package/dist/commonjs/components/Inspector/SupportPage.js +227 -0
  65. package/dist/commonjs/components/Inspector/TabBar.js +24 -23
  66. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +24 -24
  67. package/dist/commonjs/components/JsonViewer.js +7 -7
  68. package/dist/commonjs/components/LogCard.d.ts +3 -2
  69. package/dist/commonjs/components/LogCard.js +17 -14
  70. package/dist/commonjs/components/LogSyntaxHighlighter.js +5 -5
  71. package/dist/commonjs/components/ModuleErrorBoundary.js +2 -2
  72. package/dist/commonjs/components/NetworkIcons.d.ts +15 -0
  73. package/dist/commonjs/components/NetworkIcons.js +38 -3
  74. package/dist/commonjs/components/SegmentedTabs.js +1 -1
  75. package/dist/commonjs/constants/version.d.ts +1 -1
  76. package/dist/commonjs/constants/version.js +1 -1
  77. package/dist/commonjs/customHooks/socketLogger.d.ts +26 -0
  78. package/dist/commonjs/customHooks/socketLogger.js +2 -0
  79. package/dist/commonjs/helpers/index.js +3 -3
  80. package/dist/commonjs/helpers/memoryManager.d.ts +1 -0
  81. package/dist/commonjs/helpers/memoryManager.js +1 -1
  82. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
  83. package/dist/commonjs/helpers/searchQueryParser.js +5 -1
  84. package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
  85. package/dist/commonjs/helpers/settingsStore.js +1 -1
  86. package/dist/commonjs/helpers/shareFormatter.d.ts +3 -1
  87. package/dist/commonjs/helpers/shareFormatter.js +8 -7
  88. package/dist/commonjs/i18n/index.d.ts +99 -1
  89. package/dist/commonjs/i18n/index.js +1 -1
  90. package/dist/commonjs/i18n/locales/ar.json +1 -1
  91. package/dist/commonjs/i18n/locales/bn.json +1 -0
  92. package/dist/commonjs/i18n/locales/de.json +1 -1
  93. package/dist/commonjs/i18n/locales/en.json +1 -1
  94. package/dist/commonjs/i18n/locales/es.json +1 -1
  95. package/dist/commonjs/i18n/locales/fr.json +1 -1
  96. package/dist/commonjs/i18n/locales/gu.json +1 -0
  97. package/dist/commonjs/i18n/locales/hi.json +1 -1
  98. package/dist/commonjs/i18n/locales/id.json +1 -0
  99. package/dist/commonjs/i18n/locales/it.json +1 -0
  100. package/dist/commonjs/i18n/locales/ja.json +1 -1
  101. package/dist/commonjs/i18n/locales/kn.json +1 -0
  102. package/dist/commonjs/i18n/locales/ko.json +1 -1
  103. package/dist/commonjs/i18n/locales/ml.json +1 -0
  104. package/dist/commonjs/i18n/locales/mr.json +1 -0
  105. package/dist/commonjs/i18n/locales/nl.json +1 -0
  106. package/dist/commonjs/i18n/locales/pa.json +1 -0
  107. package/dist/commonjs/i18n/locales/pl.json +1 -0
  108. package/dist/commonjs/i18n/locales/pt.json +1 -1
  109. package/dist/commonjs/i18n/locales/ru.json +1 -1
  110. package/dist/commonjs/i18n/locales/ta.json +1 -0
  111. package/dist/commonjs/i18n/locales/te.json +1 -0
  112. package/dist/commonjs/i18n/locales/tr.json +1 -0
  113. package/dist/commonjs/i18n/locales/vi.json +1 -0
  114. package/dist/commonjs/i18n/locales/zh.json +1 -1
  115. package/dist/commonjs/index.d.ts +13 -13
  116. package/dist/commonjs/index.js +5 -4
  117. package/dist/commonjs/native/NativeInspector.d.ts +1 -0
  118. package/dist/commonjs/socket.d.ts +4 -0
  119. package/dist/commonjs/socket.js +1 -0
  120. package/dist/commonjs/styles/index.d.ts +23 -0
  121. package/dist/commonjs/styles/index.js +1 -1
  122. package/dist/commonjs/types/enums.d.ts +40 -0
  123. package/dist/commonjs/types/enums.js +1 -1
  124. package/dist/commonjs/types/interfaces.d.ts +122 -1
  125. package/dist/esm/components/AnimatedBrandOwl.d.ts +7 -0
  126. package/dist/esm/components/AnimatedBrandOwl.js +175 -0
  127. package/dist/esm/components/AppHeaderLogo.d.ts +1 -0
  128. package/dist/esm/components/AppHeaderLogo.js +7 -5
  129. package/dist/esm/components/BrandSquareIcon.d.ts +5 -0
  130. package/dist/esm/components/BrandSquareIcon.js +139 -0
  131. package/dist/esm/components/ConsoleLogCard.d.ts +2 -1
  132. package/dist/esm/components/ConsoleLogCard.js +61 -77
  133. package/dist/esm/components/Inspector/AboutModal.js +85 -95
  134. package/dist/esm/components/Inspector/AnalyticsTab.js +31 -31
  135. package/dist/esm/components/Inspector/ConfirmationModal.d.ts +13 -0
  136. package/dist/esm/components/Inspector/ConfirmationModal.js +32 -0
  137. package/dist/esm/components/Inspector/ConsoleTab.js +49 -49
  138. package/dist/esm/components/Inspector/CrashTab.js +40 -38
  139. package/dist/esm/components/Inspector/DebuggingTab.js +29 -29
  140. package/dist/esm/components/Inspector/FabLauncher.js +50 -58
  141. package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +7 -7
  142. package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +15 -0
  143. package/dist/esm/components/Inspector/LanguageSelectorModal.js +90 -0
  144. package/dist/esm/components/Inspector/MainScreen.js +123 -110
  145. package/dist/esm/components/Inspector/MediaGalleryTab.js +64 -62
  146. package/dist/esm/components/Inspector/MediaPreviewModal.js +107 -123
  147. package/dist/esm/components/Inspector/NetworkTab.js +90 -90
  148. package/dist/esm/components/Inspector/NpmUpdateToast.js +1 -1
  149. package/dist/esm/components/Inspector/PushCard.d.ts +3 -2
  150. package/dist/esm/components/Inspector/PushCard.js +23 -22
  151. package/dist/esm/components/Inspector/PushDetail.js +34 -25
  152. package/dist/esm/components/Inspector/PushTab.js +25 -25
  153. package/dist/esm/components/Inspector/ReduxDetail.js +42 -42
  154. package/dist/esm/components/Inspector/ReduxTab.js +35 -35
  155. package/dist/esm/components/Inspector/SettingsPanel.js +495 -376
  156. package/dist/esm/components/Inspector/SocketCard.d.ts +5 -0
  157. package/dist/esm/components/Inspector/SocketCard.js +116 -0
  158. package/dist/esm/components/Inspector/SocketDetail.d.ts +4 -0
  159. package/dist/esm/components/Inspector/SocketDetail.js +317 -0
  160. package/dist/esm/components/Inspector/SocketFilterModal.d.ts +13 -0
  161. package/dist/esm/components/Inspector/SocketFilterModal.js +69 -0
  162. package/dist/esm/components/Inspector/SocketTab.d.ts +3 -0
  163. package/dist/esm/components/Inspector/SocketTab.js +112 -0
  164. package/dist/esm/components/Inspector/StorageTab.js +136 -134
  165. package/dist/esm/components/Inspector/SupportModal.d.ts +7 -0
  166. package/dist/esm/components/Inspector/SupportModal.js +125 -0
  167. package/dist/esm/components/Inspector/SupportPage.d.ts +5 -0
  168. package/dist/esm/components/Inspector/SupportPage.js +227 -0
  169. package/dist/esm/components/Inspector/TabBar.js +36 -35
  170. package/dist/esm/components/Inspector/UpdateAvailableModal.js +22 -22
  171. package/dist/esm/components/JsonViewer.js +55 -55
  172. package/dist/esm/components/LogCard.d.ts +3 -2
  173. package/dist/esm/components/LogCard.js +61 -58
  174. package/dist/esm/components/LogSyntaxHighlighter.js +5 -5
  175. package/dist/esm/components/ModuleErrorBoundary.js +23 -23
  176. package/dist/esm/components/NetworkIcons.d.ts +15 -0
  177. package/dist/esm/components/NetworkIcons.js +38 -3
  178. package/dist/esm/components/SegmentedTabs.js +7 -7
  179. package/dist/esm/constants/version.d.ts +1 -1
  180. package/dist/esm/constants/version.js +1 -1
  181. package/dist/esm/customHooks/socketLogger.d.ts +26 -0
  182. package/dist/esm/customHooks/socketLogger.js +2 -0
  183. package/dist/esm/helpers/index.js +3 -3
  184. package/dist/esm/helpers/memoryManager.d.ts +1 -0
  185. package/dist/esm/helpers/memoryManager.js +1 -1
  186. package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
  187. package/dist/esm/helpers/searchQueryParser.js +5 -1
  188. package/dist/esm/helpers/settingsStore.d.ts +1 -0
  189. package/dist/esm/helpers/settingsStore.js +1 -1
  190. package/dist/esm/helpers/shareFormatter.d.ts +3 -1
  191. package/dist/esm/helpers/shareFormatter.js +8 -7
  192. package/dist/esm/i18n/index.d.ts +99 -1
  193. package/dist/esm/i18n/index.js +1 -1
  194. package/dist/esm/i18n/locales/ar.json +1 -1
  195. package/dist/esm/i18n/locales/bn.json +1 -0
  196. package/dist/esm/i18n/locales/de.json +1 -1
  197. package/dist/esm/i18n/locales/en.json +1 -1
  198. package/dist/esm/i18n/locales/es.json +1 -1
  199. package/dist/esm/i18n/locales/fr.json +1 -1
  200. package/dist/esm/i18n/locales/gu.json +1 -0
  201. package/dist/esm/i18n/locales/hi.json +1 -1
  202. package/dist/esm/i18n/locales/id.json +1 -0
  203. package/dist/esm/i18n/locales/it.json +1 -0
  204. package/dist/esm/i18n/locales/ja.json +1 -1
  205. package/dist/esm/i18n/locales/kn.json +1 -0
  206. package/dist/esm/i18n/locales/ko.json +1 -1
  207. package/dist/esm/i18n/locales/ml.json +1 -0
  208. package/dist/esm/i18n/locales/mr.json +1 -0
  209. package/dist/esm/i18n/locales/nl.json +1 -0
  210. package/dist/esm/i18n/locales/pa.json +1 -0
  211. package/dist/esm/i18n/locales/pl.json +1 -0
  212. package/dist/esm/i18n/locales/pt.json +1 -1
  213. package/dist/esm/i18n/locales/ru.json +1 -1
  214. package/dist/esm/i18n/locales/ta.json +1 -0
  215. package/dist/esm/i18n/locales/te.json +1 -0
  216. package/dist/esm/i18n/locales/tr.json +1 -0
  217. package/dist/esm/i18n/locales/vi.json +1 -0
  218. package/dist/esm/i18n/locales/zh.json +1 -1
  219. package/dist/esm/index.d.ts +13 -13
  220. package/dist/esm/index.js +8 -7
  221. package/dist/esm/native/NativeInspector.d.ts +1 -0
  222. package/dist/esm/socket.d.ts +4 -0
  223. package/dist/esm/socket.js +1 -0
  224. package/dist/esm/styles/index.d.ts +23 -0
  225. package/dist/esm/styles/index.js +1 -1
  226. package/dist/esm/types/enums.d.ts +40 -0
  227. package/dist/esm/types/enums.js +1 -1
  228. package/dist/esm/types/interfaces.d.ts +122 -1
  229. package/ios/NetworkInspectorModule.mm +102 -12
  230. package/package.json +204 -2
  231. package/src/native/NativeInspector.ts +8 -0
@@ -1,12 +1,12 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,n,o){o===void 0&&(o=n);var a=Object.getOwnPropertyDescriptor(e,n);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(r,o,a)}):(function(r,e,n,o){o===void 0&&(o=n),r[o]=e[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),__importStar=this&&this.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(n){var o=[];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(o[o.length]=a);return o},r(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var o=r(e),a=0;a<o.length;a++)o[a]!=="default"&&__createBinding(n,e,o[a]);return __setModuleDefault(n,e),n}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),constants_1=require("../constants"),helpers_1=require("../helpers"),NetworkIcons_1=require("./NetworkIcons"),AppFonts_1=require("../styles/AppFonts"),HighlightText_1=__importDefault(require("./HighlightText")),TouchableScale_1=__importDefault(require("./TouchableScale")),i18n_1=require("../i18n"),LogCard=react_1.default.memo(function({item:e,onPress:n,timelineMinStart:o,timelineTotalRange:a,isNew:u,isSelected:h,onToggleSelect:w,searchStr:b}){const{t:p}=(0,i18n_1.useTranslation)(),C=constants_1.METHOD_COLORS[e.method]??constants_1.METHOD_COLORS.ALL,i=(0,react_1.useMemo)(()=>{try{const t=new URL(e.url),d=t.host,_=t.pathname+(t.search?t.search:""),k=t.protocol==="https:";return{host:d,path:_||"/",isHttps:k}}catch{const t=e.url.toLowerCase().startsWith("https:"),d=(0,helpers_1.getPath)(e.url);return{host:(0,helpers_1.getBaseUrl)(e.url).replace(/^https?:\/\//,""),path:d||e.url,isHttps:t}}},[e.url]),x=t=>{t?.stopPropagation?.(),react_native_1.Alert.alert(p("common.openInBrowser")||"Open in Browser",`${p("common.openInBrowserPrompt")||"Are you sure you want to open this URL in your external browser?"}
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,a,n){n===void 0&&(n=a);var o=Object.getOwnPropertyDescriptor(t,a);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,n,o)}):(function(e,t,a,n){n===void 0&&(n=a),e[n]=t[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(a){var n=[];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[n.length]=o);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var n=e(t),o=0;o<n.length;o++)n[o]!=="default"&&__createBinding(a,t,n[o]);return __setModuleDefault(a,t),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"),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),constants_1=require("../constants"),helpers_1=require("../helpers"),NetworkIcons_1=require("./NetworkIcons"),AppFonts_1=require("../styles/AppFonts"),HighlightText_1=__importDefault(require("./HighlightText")),TouchableScale_1=__importDefault(require("./TouchableScale")),i18n_1=require("../i18n");function LogCard({item:e,onPress:t,timelineMinStart:a,timelineTotalRange:n,isNew:o,isSelected:h,onToggleSelect:_,searchStr:w}){const{t:p}=(0,i18n_1.useTranslation)(),C=constants_1.METHOD_COLORS[e.method]??constants_1.METHOD_COLORS.ALL,i=(0,react_1.useMemo)(()=>{try{const r=new URL(e.url),d=r.host,f=r.pathname+(r.search?r.search:""),S=r.protocol==="https:";return{host:d,path:f||"/",isHttps:S}}catch{const r=e.url.toLowerCase().startsWith("https:"),d=(0,helpers_1.getPath)(e.url);return{host:(0,helpers_1.getBaseUrl)(e.url).replace(/^https?:\/\//,""),path:d||e.url,isHttps:r}}},[e.url]),b=r=>{r?.stopPropagation?.(),react_native_1.Alert.alert(p("common.openInBrowser")||"Open in Browser",`${p("common.openInBrowserPrompt")||"Are you sure you want to open this URL in your external browser?"}
2
2
 
3
- ${e.url}`,[{text:p("common.cancel")||"Cancel",style:"cancel"},{text:p("common.open")||"Open",onPress:()=>{react_native_1.Linking.canOpenURL(e.url).then(d=>{d?react_native_1.Linking.openURL(e.url):react_native_1.Linking.openURL(e.url).catch(()=>{})}).catch(()=>{})}}])},l=e.status===0||e.status!=null&&e.status>=400,s=e.status==null,g=(0,helpers_1.getStatusColor)(e.status),c=(0,helpers_1.getDurationColor)(e.duration),y=s?AppColors_1.AppColors.darkOrange:l?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.greenColor,f=(0,react_1.useRef)(new react_native_1.Animated.Value(u?.35:0)).current;(0,react_1.useEffect)(()=>{u&&react_native_1.Animated.timing(f,{toValue:0,duration:1200,useNativeDriver:!1}).start()},[u]);const A=()=>{if(s)return"...";if(e.status===0||e.status==null)return p("network.statusFailed")||"FAILED";const t=typeof e.status=="number"?e.status:parseInt(String(e.status||0),10);return t===200?"200 OK":t===201?"201 Created":t===204?"204 No Content":t===304?"304 Not Modified":t===400?"400 Bad Req":t===401?"401 Unauth":t===403?"403 Forbidden":t===404?"404 Not Found":t===500?"500 Error":String(e.status)},v=()=>{if(s)return<NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.darkOrange}size={10}/>;const t=typeof e.status=="number"?e.status:parseInt(String(e.status||0),10);return t>=200&&t<300?<NetworkIcons_1.CircleCheckIcon color={AppColors_1.AppColors.greenColor}size={10}/>:t>=300&&t<400?<NetworkIcons_1.RepeatIcon color={AppColors_1.AppColors.amber700}size={10}/>:t>=400&&t<500?<NetworkIcons_1.CircleAlertIcon color={AppColors_1.AppColors.darkOrange}size={10}/>:<NetworkIcons_1.CircleXIcon color={AppColors_1.AppColors.errorColor}size={10}/>},T=(0,helpers_1.formatDateTime)(e.startTime),V=e.url.split("?")[0].toLowerCase().endsWith(".json");return<react_native_1.View style={styles.container}>
4
- <TouchableScale_1.default onPress={n}style={[styles.card,{borderLeftWidth:3.5,borderLeftColor:y,backgroundColor:l?AppColors_1.AppColors.errorCardBg:AppColors_1.AppColors.white}]}>
3
+ ${e.url}`,[{text:p("common.cancel")||"Cancel",style:"cancel"},{text:p("common.open")||"Open",onPress:()=>{react_native_1.Linking.canOpenURL(e.url).then(d=>{d?react_native_1.Linking.openURL(e.url):react_native_1.Linking.openURL(e.url).catch(()=>{})}).catch(()=>{})}}])},l=e.status===0||e.status!=null&&e.status>=400,s=e.status==null,u=(0,helpers_1.getStatusColor)(e.status),c=(0,helpers_1.getDurationColor)(e.duration),y=s?AppColors_1.AppColors.darkOrange:l?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.greenColor,g=(0,react_1.useRef)(new react_native_1.Animated.Value(o?.35:0)).current;(0,react_1.useEffect)(()=>{o&&react_native_1.Animated.timing(g,{toValue:0,duration:1200,useNativeDriver:!0}).start()},[o,g]);const x=()=>{if(s)return"...";if(e.status===0||e.status==null)return p("network.statusFailed")||"FAILED";const r=typeof e.status=="number"?e.status:parseInt(String(e.status||0),10);return r===200?"200 OK":r===201?"201 Created":r===204?"204 No Content":r===304?"304 Not Modified":r===400?"400 Bad Req":r===401?"401 Unauth":r===403?"403 Forbidden":r===404?"404 Not Found":r===500?"500 Error":String(e.status)},A=()=>{if(s)return<NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.darkOrange}size={10}/>;const r=typeof e.status=="number"?e.status:parseInt(String(e.status||0),10);return r>=200&&r<300?<NetworkIcons_1.CircleCheckIcon color={AppColors_1.AppColors.greenColor}size={10}/>:r>=300&&r<400?<NetworkIcons_1.RepeatIcon color={AppColors_1.AppColors.amber700}size={10}/>:r>=400&&r<500?<NetworkIcons_1.CircleAlertIcon color={AppColors_1.AppColors.darkOrange}size={10}/>:<NetworkIcons_1.CircleXIcon color={AppColors_1.AppColors.errorColor}size={10}/>},T=(0,helpers_1.formatDateTime)(e.startTime),v=e.url.split("?")[0].toLowerCase().endsWith(".json");return<react_native_1.View style={styles.container}>
4
+ <TouchableScale_1.default onPress={t}style={[styles.card,{borderLeftWidth:3.5,borderLeftColor:y,backgroundColor:l?AppColors_1.AppColors.errorCardBg:AppColors_1.AppColors.white}]}>
5
5
  <react_native_1.View style={styles.cardBody}>
6
6
 
7
7
  <react_native_1.View style={styles.cardHeaderRow}>
8
8
  <react_native_1.View style={styles.cardHeaderLeft}>
9
- <react_native_1.Pressable onPress={()=>w(e.id)}hitSlop={12}style={[styles.smallCheckbox,h&&styles.smallCheckboxChecked]}>
9
+ <react_native_1.Pressable onPress={()=>_(e.id)}hitSlop={12}style={[styles.smallCheckbox,h&&styles.smallCheckboxChecked]}>
10
10
  {h&&<react_native_svg_1.default width={9}height={9}viewBox="0 0 24 24"fill="none">
11
11
  <react_native_svg_1.Path d="M20 6L9 17l-5-5"stroke={AppColors_1.AppColors.white}strokeWidth="4"strokeLinecap="round"strokeLinejoin="round"/>
12
12
  </react_native_svg_1.default>}
@@ -35,22 +35,25 @@ ${e.url}`,[{text:p("common.cancel")||"Cancel",style:"cancel"},{text:p("common.op
35
35
  </react_native_1.View>
36
36
 
37
37
  <react_native_1.View style={styles.cardHeaderRight}>
38
- <react_native_1.View style={[styles.statusPill,{backgroundColor:l?`${AppColors_1.AppColors.errorColor}14`:s?`${AppColors_1.AppColors.darkOrange}14`:`${g}14`,borderColor:l?`${AppColors_1.AppColors.errorColor}33`:s?`${AppColors_1.AppColors.darkOrange}33`:`${g}33`}]}>
39
- {v()}
40
- <react_native_1.Text style={[styles.statusPillText,{color:l?AppColors_1.AppColors.errorColor:s?AppColors_1.AppColors.darkOrange:g}]}>
41
- {A()}
38
+ <react_native_1.View style={[styles.statusPill,{backgroundColor:l?`${AppColors_1.AppColors.errorColor}14`:s?`${AppColors_1.AppColors.darkOrange}14`:`${u}14`,borderColor:l?`${AppColors_1.AppColors.errorColor}33`:s?`${AppColors_1.AppColors.darkOrange}33`:`${u}33`}]}>
39
+ {A()}
40
+ <react_native_1.Text style={[styles.statusPillText,{color:l?AppColors_1.AppColors.errorColor:s?AppColors_1.AppColors.darkOrange:u}]}>
41
+ {x()}
42
42
  </react_native_1.Text>
43
43
  </react_native_1.View>
44
+ <react_native_1.Pressable onPress={b}hitSlop={8}style={styles.globeBtn}accessibilityRole="button"accessibilityLabel="Open in Browser">
45
+ <NetworkIcons_1.GlobeIcon color={AppColors_1.AppColors.grayTextWeak}size={12}/>
46
+ </react_native_1.Pressable>
44
47
  <NetworkIcons_1.ForwardChevronIcon color={AppColors_1.AppColors.grayTextWeak}size={13}/>
45
48
  </react_native_1.View>
46
49
  </react_native_1.View>
47
50
 
48
51
 
49
- <react_native_1.Pressable onPress={x}hitSlop={6}style={styles.urlBox}>
52
+ <react_native_1.View style={styles.urlBox}>
50
53
  <react_native_1.View style={styles.urlMainRow}>
51
- <HighlightText_1.default text={i.path}search={b}style={styles.pathText}highlightStyle={styles.highlight}numberOfLines={1}ellipsizeMode="middle"/>
54
+ <HighlightText_1.default text={i.path}search={w}style={styles.pathText}highlightStyle={styles.highlight}numberOfLines={1}ellipsizeMode="middle"/>
52
55
  <react_native_1.View style={styles.urlBadgeRow}>
53
- {V&&<react_native_1.View style={styles.jsonBadge}>
56
+ {v&&<react_native_1.View style={styles.jsonBadge}>
54
57
  <react_native_1.Text style={styles.jsonBadgeText}>.json</react_native_1.Text>
55
58
  </react_native_1.View>}
56
59
  {e.duplicateCount!=null&&e.duplicateCount>1&&<react_native_1.View style={styles.dupBadge}>
@@ -69,7 +72,7 @@ ${e.url}`,[{text:p("common.cancel")||"Cancel",style:"cancel"},{text:p("common.op
69
72
  {i.host||e.url}
70
73
  </react_native_1.Text>
71
74
  </react_native_1.View>
72
- </react_native_1.Pressable>
75
+ </react_native_1.View>
73
76
 
74
77
 
75
78
  <react_native_1.View style={styles.cardFooterRow}>
@@ -103,6 +106,6 @@ ${e.url}`,[{text:p("common.cancel")||"Cancel",style:"cancel"},{text:p("common.op
103
106
  </react_native_1.View>
104
107
  </react_native_1.View>
105
108
 
106
- {u&&<react_native_1.Animated.View pointerEvents="none"style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:C,opacity:f}]}/>}
109
+ {o&&<react_native_1.Animated.View pointerEvents="none"style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:C,opacity:g}]}/>}
107
110
  </TouchableScale_1.default>
108
- </react_native_1.View>}),styles=react_native_1.StyleSheet.create({container:{paddingHorizontal:8,paddingVertical:4,height:126,justifyContent:"center"},card:{height:118,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,shadowColor:AppColors_1.AppColors.shadowColorString},cardBody:{height:"100%",paddingHorizontal:12,paddingTop:9,paddingBottom:7,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:8,gap:6,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},smallCheckbox:{width:15,height:15,borderRadius:4,borderWidth:1.5,borderColor:AppColors_1.AppColors.grayTextWeak,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.white},smallCheckboxChecked:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},serialNumber:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:7,paddingVertical:2.5,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:AppColors_1.AppColors.white},chip:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},chipText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,lineHeight:12},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,lineHeight:13},urlBox:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:7,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,paddingHorizontal:9,paddingVertical:5,height:48,minHeight:48,maxHeight:48,justifyContent:"center",gap:3,overflow:"hidden"},urlMainRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},pathText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,lineHeight:16,color:AppColors_1.AppColors.primaryBlack,flex:1},urlBadgeRow:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},jsonBadge:{backgroundColor:`${AppColors_1.AppColors.darkOrange}14`,borderColor:`${AppColors_1.AppColors.darkOrange}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},jsonBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.darkOrange},dupBadge:{backgroundColor:`${AppColors_1.AppColors.purple}14`,borderColor:`${AppColors_1.AppColors.purple}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},dupBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.purple},hostRow:{flexDirection:"row",alignItems:"center",gap:5,minHeight:15},protoBadge:{paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5,borderWidth:1},protoBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8,lineHeight:10},hostText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,lineHeight:13,color:AppColors_1.AppColors.grayTextWeak,flex:1},highlight:{backgroundColor:AppColors_1.AppColors.yellowHighlight,color:AppColors_1.AppColors.primaryBlack,borderRadius:2},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,lineHeight:13,color:AppColors_1.AppColors.slate400},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:AppColors_1.AppColors.violetSoftBg,borderColor:AppColors_1.AppColors.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:AppColors_1.AppColors.graySurface,borderRadius:1.5,overflow:"hidden",marginTop:2},waterfallBar:{height:"100%",borderRadius:1.5}});exports.default=LogCard;
111
+ </react_native_1.View>}const styles=react_native_1.StyleSheet.create({container:{paddingHorizontal:8,paddingVertical:4,height:126,justifyContent:"center"},card:{height:118,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,shadowColor:AppColors_1.AppColors.shadowColorString},cardBody:{height:"100%",paddingHorizontal:12,paddingTop:9,paddingBottom:7,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:8,gap:6,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},smallCheckbox:{width:15,height:15,borderRadius:4,borderWidth:1.5,borderColor:AppColors_1.AppColors.grayTextWeak,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.white},smallCheckboxChecked:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},serialNumber:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:7,paddingVertical:2.5,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:AppColors_1.AppColors.white},chip:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},chipText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9,lineHeight:12},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,lineHeight:13},globeBtn:{padding:3,borderRadius:4,backgroundColor:`${AppColors_1.AppColors.grayTextWeak}12`,alignItems:"center",justifyContent:"center"},urlBox:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:7,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,paddingHorizontal:9,paddingVertical:5,height:48,minHeight:48,maxHeight:48,justifyContent:"center",gap:3,overflow:"hidden"},urlMainRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},pathText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,lineHeight:16,color:AppColors_1.AppColors.primaryBlack,flex:1},urlBadgeRow:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},jsonBadge:{backgroundColor:`${AppColors_1.AppColors.darkOrange}14`,borderColor:`${AppColors_1.AppColors.darkOrange}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},jsonBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.darkOrange},dupBadge:{backgroundColor:`${AppColors_1.AppColors.purple}14`,borderColor:`${AppColors_1.AppColors.purple}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},dupBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.purple},hostRow:{flexDirection:"row",alignItems:"center",gap:5,minHeight:15},protoBadge:{paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5,borderWidth:1},protoBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8,lineHeight:10},hostText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,lineHeight:13,color:AppColors_1.AppColors.grayTextWeak,flex:1},highlight:{backgroundColor:AppColors_1.AppColors.yellowHighlight,color:AppColors_1.AppColors.primaryBlack,borderRadius:2},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,lineHeight:13,color:AppColors_1.AppColors.slate400},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:AppColors_1.AppColors.violetSoftBg,borderColor:AppColors_1.AppColors.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:AppColors_1.AppColors.graySurface,borderRadius:1.5,overflow:"hidden",marginTop:2},waterfallBar:{height:"100%",borderRadius:1.5}});function areLogCardPropsEqual(e,t){return e.item===t.item&&e.isSelected===t.isSelected&&e.isNew===t.isNew&&e.searchStr===t.searchStr&&e.timelineMinStart===t.timelineMinStart&&e.timelineTotalRange===t.timelineTotalRange&&e.onPress===t.onPress&&e.onToggleSelect===t.onToggleSelect}exports.default=react_1.default.memo(LogCard,areLogCardPropsEqual);
@@ -1,11 +1,11 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogSyntaxHighlighter=exports.tokenizeText=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts"),helpers_1=require("../helpers"),TOKEN_REGEX=/("(?:\\.|[^"\\])*"(?=\s*:))|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|(\b-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b)|(\b(?:true|false)\b)|(\b(?:null|undefined|NaN)\b)|(https?:\/\/[^\s"',]+)|(\[[\w\s_-]+\])|([{}[\],:])|([^"'\d\s{}[\],:]+|[ \t\r\n]+)/g,tokenizeText=r=>{if(!r)return[];const t=[];let e;for(TOKEN_REGEX.lastIndex=0;(e=TOKEN_REGEX.exec(r))!==null;)e[1]?t.push({type:"key",value:e[1]}):e[2]?t.push({type:"string",value:e[2]}):e[3]?t.push({type:"number",value:e[3]}):e[4]?t.push({type:"boolean",value:e[4]}):e[5]?t.push({type:"null",value:e[5]}):e[6]?t.push({type:"url",value:e[6]}):e[7]?t.push({type:"tag",value:e[7]}):e[8]?t.push({type:"bracket",value:e[8]}):e[9]&&t.push({type:"plain",value:e[9]});return t};exports.tokenizeText=tokenizeText;const getTokenColor=r=>{switch(r){case"key":return AppColors_1.AppColors.sky600;case"string":return AppColors_1.AppColors.emerald600;case"number":return AppColors_1.AppColors.amber600;case"boolean":return AppColors_1.AppColors.purple;case"null":return AppColors_1.AppColors.red600;case"url":return AppColors_1.AppColors.sky600;case"tag":return AppColors_1.AppColors.violet600;case"bracket":return AppColors_1.AppColors.slate500;default:return AppColors_1.AppColors.primaryBlack}};exports.LogSyntaxHighlighter=react_1.default.memo(({text:r,search:t,numberOfLines:e,style:u,detectLinks:a=!0})=>{if(!r)return null;const c=react_1.default.useMemo(()=>(0,exports.tokenizeText)(r),[r]),y=(s,i)=>{const h=getTokenColor(s.type),l=s.type==="url",f=s.type==="key",n={color:h,fontFamily:f?AppFonts_1.AppFonts.interBold:AppFonts_1.AppFonts.interRegular,textDecorationLine:l?"underline":"none"};if(!t||t.trim().length===0)return<react_native_1.Text key={i}style={n}onPress={l&&a?()=>(0,helpers_1.handleOpenExternalLink)(s.value):void 0}>
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogSyntaxHighlighter=exports.tokenizeText=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts"),helpers_1=require("../helpers"),TOKEN_REGEX=/("(?:\\.|[^"\\])*"(?=\s*:))|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|(\b-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b)|(\b(?:true|false)\b)|(\b(?:null|undefined|NaN)\b)|(https?:\/\/[^\s"',]+)|(\[[\w\s_-]+\])|([{}[\],:])|([^"'\d\s{}[\],:]+|[ \t\r\n]+)/g,tokenizeText=r=>{if(!r)return[];const t=[];let e;for(TOKEN_REGEX.lastIndex=0;(e=TOKEN_REGEX.exec(r))!==null;)e[1]?t.push({type:"key",value:e[1]}):e[2]?t.push({type:"string",value:e[2]}):e[3]?t.push({type:"number",value:e[3]}):e[4]?t.push({type:"boolean",value:e[4]}):e[5]?t.push({type:"null",value:e[5]}):e[6]?t.push({type:"url",value:e[6]}):e[7]?t.push({type:"tag",value:e[7]}):e[8]?t.push({type:"bracket",value:e[8]}):e[9]&&t.push({type:"plain",value:e[9]});return t};exports.tokenizeText=tokenizeText;const getTokenColor=r=>{switch(r){case"key":return AppColors_1.AppColors.sky600;case"string":return AppColors_1.AppColors.emerald600;case"number":return AppColors_1.AppColors.amber600;case"boolean":return AppColors_1.AppColors.purple;case"null":return AppColors_1.AppColors.red600;case"url":return AppColors_1.AppColors.sky600;case"tag":return AppColors_1.AppColors.violet600;case"bracket":return AppColors_1.AppColors.slate500;default:return AppColors_1.AppColors.primaryBlack}};exports.LogSyntaxHighlighter=react_1.default.memo(({text:r,search:t,numberOfLines:e,style:u,detectLinks:a=!0})=>{if(!r)return null;const c=react_1.default.useMemo(()=>(0,exports.tokenizeText)(r),[r]),y=(s,p)=>{const h=getTokenColor(s.type),n=s.type==="url",x=s.type==="key",l={color:h,fontFamily:x?AppFonts_1.AppFonts.interBold:AppFonts_1.AppFonts.interRegular,textDecorationLine:n?"underline":"none"};if(!t||t.trim().length===0)return<react_native_1.Text key={p}style={l}onPress={n&&a?()=>(0,helpers_1.handleOpenExternalLink)(s.value):void 0}>
2
2
  {s.value}
3
- </react_native_1.Text>;const x=new RegExp(`(${(0,helpers_1.escapeRegex)(t.trim())})`,"gi"),g=s.value.split(x);return<react_native_1.Text key={i}style={n}>
4
- {g.map((o,p)=>o.toLowerCase()===t.trim().toLowerCase()?<react_native_1.Text key={p}style={[n,styles.searchHighlight]}>
3
+ </react_native_1.Text>;const f=new RegExp(`(${(0,helpers_1.escapeRegex)(t.trim())})`,"gi"),g=s.value.split(f);return<react_native_1.Text key={p}style={l}>
4
+ {g.map((o,i)=>o.toLowerCase()===t.trim().toLowerCase()?<react_native_1.Text key={i}style={[l,styles.searchHighlight]}>
5
5
  {o}
6
- </react_native_1.Text>:<react_native_1.Text key={p}style={n}onPress={l&&a?()=>(0,helpers_1.handleOpenExternalLink)(s.value):void 0}>
6
+ </react_native_1.Text>:<react_native_1.Text key={i}style={l}onPress={n&&a?()=>(0,helpers_1.handleOpenExternalLink)(s.value):void 0}>
7
7
  {o}
8
8
  </react_native_1.Text>)}
9
9
  </react_native_1.Text>};return<react_native_1.Text style={[styles.containerText,u]}numberOfLines={e}>
10
10
  {c.map(y)}
11
- </react_native_1.Text>});const styles=react_native_1.StyleSheet.create({containerText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:12,lineHeight:18,color:AppColors_1.AppColors.primaryBlack},searchHighlight:{backgroundColor:"#fef08a",color:"#854d0e",fontFamily:AppFonts_1.AppFonts.interBold,borderRadius:2}});exports.default=exports.LogSyntaxHighlighter;
11
+ </react_native_1.Text>});const styles=react_native_1.StyleSheet.create({containerText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:12,lineHeight:18,color:AppColors_1.AppColors.primaryBlack},searchHighlight:{backgroundColor:AppColors_1.AppColors.yellow200,color:AppColors_1.AppColors.yellow800,fontFamily:AppFonts_1.AppFonts.interBold,borderRadius:2}});exports.default=exports.LogSyntaxHighlighter;
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var o=Object.getOwnPropertyDescriptor(e,t);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,o)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[r.length]=o);return r},n(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),o=0;o<r.length;o++)r[o]!=="default"&&__createBinding(t,e,r[o]);return __setModuleDefault(t,e),t}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.ModuleErrorBoundary=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppFonts_1=require("../styles/AppFonts"),helpers_1=require("../helpers"),NetworkIcons_1=require("./NetworkIcons"),crashHandler_1=require("../customHooks/crashHandler"),enums_1=require("../types/enums");class ModuleErrorBoundary extends react_1.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null,copied:!1},this.handleRetry=()=>{this.setState({hasError:!1,error:null,copied:!1}),this.props.onRetry&&this.props.onRetry()},this.handleCopy=()=>{if(!this.state.error)return;const e=`[Module Error: ${this.props.moduleName||"Micro-Feature"}]
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var o=Object.getOwnPropertyDescriptor(e,t);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,o)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[r.length]=o);return r},n(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),o=0;o<r.length;o++)r[o]!=="default"&&__createBinding(t,e,r[o]);return __setModuleDefault(t,e),t}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.ModuleErrorBoundary=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppFonts_1=require("../styles/AppFonts"),AppColors_1=require("../styles/AppColors"),helpers_1=require("../helpers"),NetworkIcons_1=require("./NetworkIcons"),crashHandler_1=require("../customHooks/crashHandler"),enums_1=require("../types/enums");class ModuleErrorBoundary extends react_1.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null,copied:!1},this.handleRetry=()=>{this.setState({hasError:!1,error:null,copied:!1}),this.props.onRetry&&this.props.onRetry()},this.handleCopy=()=>{if(!this.state.error)return;const e=`[Module Error: ${this.props.moduleName||"Micro-Feature"}]
2
2
  Message: ${this.state.error.message}
3
3
  Stack: ${this.state.error.stack||"N/A"}`;(0,helpers_1.copyToClipboard)(e),this.setState({copied:!0}),setTimeout(()=>{this.setState({copied:!1})},2e3)}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){try{(0,crashHandler_1.handleInterceptedCrash)(e,e?.stack,!1,enums_1.CrashType.Js,t.componentStack||void 0)}catch{}this.props.onError&&this.props.onError(e,t)}render(){if(this.state.hasError&&this.state.error){const{fallback:e,moduleName:t="UI Module",containerStyle:r}=this.props;return typeof e=="function"?e(this.state.error,this.handleRetry):e||<react_native_1.View style={[styles.card,r]}>
4
4
  <react_native_1.View style={styles.headerRow}>
@@ -30,4 +30,4 @@ Stack: ${this.state.error.stack||"N/A"}`;(0,helpers_1.copyToClipboard)(e),this.s
30
30
  </react_native_1.Text>
31
31
  </react_native_1.TouchableOpacity>
32
32
  </react_native_1.View>
33
- </react_native_1.View>}return this.props.children}}exports.ModuleErrorBoundary=ModuleErrorBoundary,exports.default=ModuleErrorBoundary;const styles=react_native_1.StyleSheet.create({card:{backgroundColor:"#FEF2F2",borderColor:"#FECDD3",borderWidth:1.2,borderRadius:16,padding:14,marginVertical:6,gap:10,...react_native_1.Platform.select({ios:{shadowColor:"#DC2626",shadowOffset:{width:0,height:2},shadowOpacity:.06,shadowRadius:6},android:{elevation:2}})},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},titleRow:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1},moduleName:{fontSize:12.5,fontWeight:"800",color:"#991B1B",fontFamily:AppFonts_1.AppFonts.interBold,flexShrink:1},badge:{backgroundColor:"#FEE2E2",paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1,borderColor:"#FCA5A5"},badgeText:{fontSize:8.5,fontWeight:"800",color:"#B91C1C",letterSpacing:.4},message:{fontSize:11.5,color:"#7F1D1D",lineHeight:16,fontFamily:AppFonts_1.AppFonts.interRegular},actionsRow:{flexDirection:"row",alignItems:"center",gap:8,marginTop:2},retryButton:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,backgroundColor:"#DC2626",paddingVertical:7,paddingHorizontal:12,borderRadius:9},retryText:{fontSize:11,fontWeight:"700",color:"#FFFFFF",fontFamily:AppFonts_1.AppFonts.interBold},copyButton:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,backgroundColor:"#F1F5F9",paddingVertical:7,paddingHorizontal:12,borderRadius:9,borderWidth:1,borderColor:"#E2E8F0"},copyText:{fontSize:11,fontWeight:"600",color:"#475569",fontFamily:AppFonts_1.AppFonts.interMedium}});
33
+ </react_native_1.View>}return this.props.children}}exports.ModuleErrorBoundary=ModuleErrorBoundary,exports.default=ModuleErrorBoundary;const styles=react_native_1.StyleSheet.create({card:{backgroundColor:AppColors_1.AppColors.red50,borderColor:`${AppColors_1.AppColors.red500}33`,borderWidth:1.2,borderRadius:16,padding:14,marginVertical:6,gap:10,...react_native_1.Platform.select({ios:{shadowColor:AppColors_1.AppColors.red600,shadowOffset:{width:0,height:2},shadowOpacity:.06,shadowRadius:6},android:{elevation:2}})},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},titleRow:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1},moduleName:{fontSize:12.5,fontWeight:"800",color:AppColors_1.AppColors.redErrorText,fontFamily:AppFonts_1.AppFonts.interBold,flexShrink:1},badge:{backgroundColor:AppColors_1.AppColors.red100,paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1,borderColor:`${AppColors_1.AppColors.red500}4D`},badgeText:{fontSize:8.5,fontWeight:"800",color:AppColors_1.AppColors.rose700,letterSpacing:.4},message:{fontSize:11.5,color:AppColors_1.AppColors.redErrorText,lineHeight:16,fontFamily:AppFonts_1.AppFonts.interRegular},actionsRow:{flexDirection:"row",alignItems:"center",gap:8,marginTop:2},retryButton:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,backgroundColor:AppColors_1.AppColors.red600,paddingVertical:7,paddingHorizontal:12,borderRadius:9},retryText:{fontSize:11,fontWeight:"700",color:AppColors_1.AppColors.white,fontFamily:AppFonts_1.AppFonts.interBold},copyButton:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,backgroundColor:AppColors_1.AppColors.graySurface,paddingVertical:7,paddingHorizontal:12,borderRadius:9,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},copyText:{fontSize:11,fontWeight:"600",color:AppColors_1.AppColors.grayText,fontFamily:AppFonts_1.AppFonts.interMedium}});
@@ -47,6 +47,7 @@ export declare const DebugIcon: ({ color, size }: IconProps) => React.JSX.Elemen
47
47
  export declare const SunIcon: ({ color, size }: IconProps) => React.JSX.Element;
48
48
  export declare const MoonIcon: ({ color, size }: IconProps) => React.JSX.Element;
49
49
  export { BrandCircleIcon } from './BrandCircleIcon';
50
+ export { BrandSquareIcon } from './BrandSquareIcon';
50
51
  export declare const HtmlIcon: ({ color, size }: IconProps) => React.JSX.Element;
51
52
  export declare const CssIcon: ({ color, size }: IconProps) => React.JSX.Element;
52
53
  export declare const JsIcon: ({ color, size }: IconProps) => React.JSX.Element;
@@ -168,3 +169,17 @@ export declare const HeartFaceIcon: ({ color, size, }: IconProps) => React.JSX.E
168
169
  export declare const BellIcon: ({ color, size, }: IconProps) => React.JSX.Element;
169
170
  export declare const NotificationIcon: ({ color, size, }: IconProps) => React.JSX.Element;
170
171
  export declare const CloudPushIcon: ({ color, size, }: IconProps) => React.JSX.Element;
172
+ export declare const SocketIcon: ({ color, size, }: IconProps) => React.JSX.Element;
173
+ export declare const WebsocketIcon: ({ color, size, }: IconProps) => React.JSX.Element;
174
+ export declare const SendFrameIcon: ({ color, size, }: IconProps) => React.JSX.Element;
175
+ export declare const ReceiveFrameIcon: ({ color, size, }: IconProps) => React.JSX.Element;
176
+ export declare const PingIcon: ({ color, size, }: IconProps) => React.JSX.Element;
177
+ export declare const BroadcastIcon: ({ color, size, }: IconProps) => React.JSX.Element;
178
+ export declare const VolumeIcon: ({ color, size, }: IconProps) => React.JSX.Element;
179
+ export declare const BuildingIcon: ({ color, size, }: IconProps) => React.JSX.Element;
180
+ export declare const ArrowUpIcon: ({ color, size, }: IconProps) => React.JSX.Element;
181
+ export declare const ArrowDownIcon: ({ color, size, }: IconProps) => React.JSX.Element;
182
+ export declare const SupportIcon: ({ color, size, }: IconProps) => React.JSX.Element;
183
+ export declare const HeartIcon: ({ color, size, fill, }: IconProps & {
184
+ fill?: string;
185
+ }) => React.JSX.Element;
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[r.length]=n);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(t!=null)for(var r=e(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(o,t,r[n]);return __setModuleDefault(o,t),o}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.WarningTriangleIcon=exports.InfoCircleIcon=exports.UserIcon=exports.LayersIcon=exports.WipeIcon=exports.FolderIcon=exports.SettingsIcon=exports.EyeIcon=exports.JsIcon=exports.CssIcon=exports.HtmlIcon=exports.BrandCircleIcon=exports.MoonIcon=exports.SunIcon=exports.DebugIcon=exports.InsightsIcon=exports.AnalyticsIcon=exports.WhiteBackNavigation=exports.CloseWhite=exports.DownloadIcon=exports.FilterIcon=exports.ChevronIcon=exports.SortArrowIcon=exports.GlobeIcon=exports.DiffIcon=exports.SignalIcon=exports.ShareIcon=exports.ExportIcon=exports.TrashIcon=exports.FailIcon=exports.CircleAlertIcon=exports.CircleXIcon=exports.CircleCheckIcon=exports.CheckIcon=exports.TerminalIcon=exports.FetchIcon=exports.CopyIcon=exports.HeadersIcon=exports.ResponseIcon=exports.RequestIcon=exports.SizeIcon=exports.StatusIcon=exports.CalendarIcon=exports.ClockIcon=exports.ClearIcon=exports.SearchIcon=exports.ExpandCollapseIcon=exports.ScreenIcon=exports.MapPinIcon=exports.EmptyRadarIcon=void 0,exports.DiagnosticsIcon=exports.StackTraceIcon=exports.LayoutIcon=exports.ChipIcon=exports.SkullIcon=exports.ShieldAlertIcon=exports.CrashIcon=exports.UserCheckIcon=exports.TargetGoalIcon=exports.RepeatIcon=exports.PinIcon=exports.HourglassIcon=exports.FlameIcon=exports.CodeBracketsIcon=exports.AndroidIcon=exports.AppleIcon=exports.LinkChainIcon=exports.GitHubIcon=exports.StarIcon=exports.PackageBoxIcon=exports.ExternalLinkIcon=exports.MoneyIcon=exports.CartIcon=exports.TextAaIcon=exports.BrainIcon=exports.AtomIcon=exports.MapIcon=exports.SparkleIcon=exports.LightbulbIcon=exports.DocIcon=exports.FolderOpenIcon=exports.BanIcon=exports.BoltIcon=exports.PerformanceIcon=exports.ReduxIcon=exports.MetadataIcon=exports.StorageIcon=exports.RefreshCcwIcon=exports.TimelineIcon=exports.LiveStateIcon=exports.BundleIcon=exports.ForwardChevronIcon=exports.PackageIcon=exports.TableIcon=exports.RawIcon=exports.PrettyIcon=exports.SortIcon=exports.MotionIcon=exports.TrendingUpIcon=exports.ErrorCircleIcon=void 0,exports.ChevronUpIcon=exports.WrenchIcon=exports.BookOpenIcon=exports.MinimizeWindowIcon=exports.GridIcon=exports.ListIcon=exports.ScreencastIcon=exports.FilmIcon=exports.ImageIcon=exports.PauseIcon=exports.PlayIcon=exports.GifIcon=exports.MicrophoneIcon=exports.VideoCameraIcon=exports.CameraIcon=exports.LifeBuoyIcon=exports.SendIcon=exports.HelpCircleIcon=exports.HeadphonesIcon=exports.TurtleIcon=exports.RocketIcon=exports.UnlockIcon=exports.QrCodeIcon=exports.LockIcon=exports.PlusIcon=exports.PencilIcon=exports.DatabaseIcon=exports.ShieldCheckIcon=exports.WifiIcon=exports.CpuIcon=exports.MinimizeIcon=exports.MaximizeIcon=exports.ChevronDownIcon=exports.ResetIcon=exports.NpmIcon=exports.TagIcon=exports.BugIcon=exports.AlertTriangleIcon=exports.SmartphoneIcon=exports.KeyIcon=exports.BarChartIcon=exports.DiceIcon=exports.ZapIcon=exports.FlaskIcon=exports.LoadingSpinnerIcon=exports.ListenerIcon=exports.AllFramesIcon=exports.AppFramesIcon=exports.RawJsonIcon=exports.TrailIcon=void 0,exports.CloudPushIcon=exports.NotificationIcon=exports.BellIcon=exports.HeartFaceIcon=exports.StarFaceIcon=exports.SmileFaceIcon=exports.NeutralFaceIcon=exports.AngryFaceIcon=exports.SparklesIcon=exports.MessageSquareIcon=void 0;const react_1=__importDefault(require("react")),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),EmptyRadarIcon=({color:e=AppColors_1.AppColors.purple,size:t=32})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[r.length]=n);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(t!=null)for(var r=e(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(o,t,r[n]);return __setModuleDefault(o,t),o}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoCircleIcon=exports.UserIcon=exports.LayersIcon=exports.WipeIcon=exports.FolderIcon=exports.SettingsIcon=exports.EyeIcon=exports.JsIcon=exports.CssIcon=exports.HtmlIcon=exports.BrandSquareIcon=exports.BrandCircleIcon=exports.MoonIcon=exports.SunIcon=exports.DebugIcon=exports.InsightsIcon=exports.AnalyticsIcon=exports.WhiteBackNavigation=exports.CloseWhite=exports.DownloadIcon=exports.FilterIcon=exports.ChevronIcon=exports.SortArrowIcon=exports.GlobeIcon=exports.DiffIcon=exports.SignalIcon=exports.ShareIcon=exports.ExportIcon=exports.TrashIcon=exports.FailIcon=exports.CircleAlertIcon=exports.CircleXIcon=exports.CircleCheckIcon=exports.CheckIcon=exports.TerminalIcon=exports.FetchIcon=exports.CopyIcon=exports.HeadersIcon=exports.ResponseIcon=exports.RequestIcon=exports.SizeIcon=exports.StatusIcon=exports.CalendarIcon=exports.ClockIcon=exports.ClearIcon=exports.SearchIcon=exports.ExpandCollapseIcon=exports.ScreenIcon=exports.MapPinIcon=exports.EmptyRadarIcon=void 0,exports.StackTraceIcon=exports.LayoutIcon=exports.ChipIcon=exports.SkullIcon=exports.ShieldAlertIcon=exports.CrashIcon=exports.UserCheckIcon=exports.TargetGoalIcon=exports.RepeatIcon=exports.PinIcon=exports.HourglassIcon=exports.FlameIcon=exports.CodeBracketsIcon=exports.AndroidIcon=exports.AppleIcon=exports.LinkChainIcon=exports.GitHubIcon=exports.StarIcon=exports.PackageBoxIcon=exports.ExternalLinkIcon=exports.MoneyIcon=exports.CartIcon=exports.TextAaIcon=exports.BrainIcon=exports.AtomIcon=exports.MapIcon=exports.SparkleIcon=exports.LightbulbIcon=exports.DocIcon=exports.FolderOpenIcon=exports.BanIcon=exports.BoltIcon=exports.PerformanceIcon=exports.ReduxIcon=exports.MetadataIcon=exports.StorageIcon=exports.RefreshCcwIcon=exports.TimelineIcon=exports.LiveStateIcon=exports.BundleIcon=exports.ForwardChevronIcon=exports.PackageIcon=exports.TableIcon=exports.RawIcon=exports.PrettyIcon=exports.SortIcon=exports.MotionIcon=exports.TrendingUpIcon=exports.ErrorCircleIcon=exports.WarningTriangleIcon=void 0,exports.WrenchIcon=exports.BookOpenIcon=exports.MinimizeWindowIcon=exports.GridIcon=exports.ListIcon=exports.ScreencastIcon=exports.FilmIcon=exports.ImageIcon=exports.PauseIcon=exports.PlayIcon=exports.GifIcon=exports.MicrophoneIcon=exports.VideoCameraIcon=exports.CameraIcon=exports.LifeBuoyIcon=exports.SendIcon=exports.HelpCircleIcon=exports.HeadphonesIcon=exports.TurtleIcon=exports.RocketIcon=exports.UnlockIcon=exports.QrCodeIcon=exports.LockIcon=exports.PlusIcon=exports.PencilIcon=exports.DatabaseIcon=exports.ShieldCheckIcon=exports.WifiIcon=exports.CpuIcon=exports.MinimizeIcon=exports.MaximizeIcon=exports.ChevronDownIcon=exports.ResetIcon=exports.NpmIcon=exports.TagIcon=exports.BugIcon=exports.AlertTriangleIcon=exports.SmartphoneIcon=exports.KeyIcon=exports.BarChartIcon=exports.DiceIcon=exports.ZapIcon=exports.FlaskIcon=exports.LoadingSpinnerIcon=exports.ListenerIcon=exports.AllFramesIcon=exports.AppFramesIcon=exports.RawJsonIcon=exports.TrailIcon=exports.DiagnosticsIcon=void 0,exports.HeartIcon=exports.SupportIcon=exports.ArrowDownIcon=exports.ArrowUpIcon=exports.BuildingIcon=exports.VolumeIcon=exports.BroadcastIcon=exports.PingIcon=exports.ReceiveFrameIcon=exports.SendFrameIcon=exports.WebsocketIcon=exports.SocketIcon=exports.CloudPushIcon=exports.NotificationIcon=exports.BellIcon=exports.HeartFaceIcon=exports.StarFaceIcon=exports.SmileFaceIcon=exports.NeutralFaceIcon=exports.AngryFaceIcon=exports.SparklesIcon=exports.MessageSquareIcon=exports.ChevronUpIcon=void 0;const react_1=__importDefault(require("react")),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),EmptyRadarIcon=({color:e=AppColors_1.AppColors.purple,size:t=32})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
2
2
  <react_native_svg_1.Path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"stroke={e}strokeWidth="1.5"strokeLinecap="round"strokeLinejoin="round"/>
3
3
  <react_native_svg_1.Circle cx="12"cy="11"r="3"stroke={e}strokeWidth="1.5"/>
4
4
  <react_native_svg_1.Path d="M12 14v3"stroke={e}strokeWidth="1.5"strokeLinecap="round"/>
@@ -114,7 +114,7 @@
114
114
  <react_native_svg_1.Path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"stroke={e}strokeWidth="2"strokeLinecap="round"/>
115
115
  </react_native_svg_1.default>;exports.SunIcon=SunIcon;const MoonIcon=({color:e=AppColors_1.AppColors.white,size:t=16})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
116
116
  <react_native_svg_1.Path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"fill={e}stroke={e}strokeWidth="1.5"strokeLinecap="round"strokeLinejoin="round"/>
117
- </react_native_svg_1.default>;exports.MoonIcon=MoonIcon;var BrandCircleIcon_1=require("./BrandCircleIcon");Object.defineProperty(exports,"BrandCircleIcon",{enumerable:!0,get:function(){return BrandCircleIcon_1.BrandCircleIcon}});const HtmlIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
117
+ </react_native_svg_1.default>;exports.MoonIcon=MoonIcon;var BrandCircleIcon_1=require("./BrandCircleIcon");Object.defineProperty(exports,"BrandCircleIcon",{enumerable:!0,get:function(){return BrandCircleIcon_1.BrandCircleIcon}});var BrandSquareIcon_1=require("./BrandSquareIcon");Object.defineProperty(exports,"BrandSquareIcon",{enumerable:!0,get:function(){return BrandSquareIcon_1.BrandSquareIcon}});const HtmlIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
118
118
  <react_native_svg_1.Path d="M17.5 8.5L21 12l-3.5 3.5M6.5 8.5L3 12l3.5 3.5M14 4.5l-4 15"stroke={e}strokeWidth="2.5"strokeLinecap="round"strokeLinejoin="round"/>
119
119
  </react_native_svg_1.default>;exports.HtmlIcon=HtmlIcon;const CssIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
120
120
  <react_native_svg_1.Path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
@@ -537,4 +537,39 @@
537
537
  </react_native_svg_1.default>;exports.BellIcon=BellIcon,exports.NotificationIcon=exports.BellIcon;const CloudPushIcon=({color:e=AppColors_1.AppColors.brandPurple,size:t=20})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
538
538
  <react_native_svg_1.Path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
539
539
  <react_native_svg_1.Path d="m12 13 3 3m0 0-3 3m3-3H7"stroke={e}strokeWidth="1.8"strokeLinecap="round"strokeLinejoin="round"/>
540
- </react_native_svg_1.default>;exports.CloudPushIcon=CloudPushIcon;
540
+ </react_native_svg_1.default>;exports.CloudPushIcon=CloudPushIcon;const SocketIcon=({color:e=AppColors_1.AppColors.blue600,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
541
+ <react_native_svg_1.Path d="M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z"stroke={e}strokeWidth="1.8"strokeLinecap="round"strokeLinejoin="round"/>
542
+ <react_native_svg_1.Path d="M12 6v6l4 2"stroke={e}strokeWidth="1.8"strokeLinecap="round"strokeLinejoin="round"/>
543
+ <react_native_svg_1.Path d="M4.93 4.93l4.24 4.24m5.66 5.66l4.24 4.24"stroke={e}strokeWidth="1.6"strokeLinecap="round"strokeLinejoin="round"/>
544
+ </react_native_svg_1.default>;exports.SocketIcon=SocketIcon;const WebsocketIcon=({color:e=AppColors_1.AppColors.blue600,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
545
+ <react_native_svg_1.Path d="M7 8h10M17 8l-3-3M17 8l-3 3"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
546
+ <react_native_svg_1.Path d="M17 16H7M7 16l3-3M7 16l3 3"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
547
+ <react_native_svg_1.Circle cx="4"cy="8"r="1.5"fill={e}/>
548
+ <react_native_svg_1.Circle cx="20"cy="16"r="1.5"fill={e}/>
549
+ </react_native_svg_1.default>;exports.WebsocketIcon=WebsocketIcon;const SendFrameIcon=({color:e=AppColors_1.AppColors.blue600,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
550
+ <react_native_svg_1.Path d="m12 19V5m-7 7 7-7 7 7"stroke={e}strokeWidth="2.2"strokeLinecap="round"strokeLinejoin="round"/>
551
+ </react_native_svg_1.default>;exports.SendFrameIcon=SendFrameIcon;const ReceiveFrameIcon=({color:e=AppColors_1.AppColors.emerald600,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
552
+ <react_native_svg_1.Path d="m12 5v14m-7-7 7 7 7-7"stroke={e}strokeWidth="2.2"strokeLinecap="round"strokeLinejoin="round"/>
553
+ </react_native_svg_1.default>;exports.ReceiveFrameIcon=ReceiveFrameIcon;const PingIcon=({color:e=AppColors_1.AppColors.amber600,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
554
+ <react_native_svg_1.Path d="M22 12h-4l-3 9L9 3l-3 9H2"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
555
+ </react_native_svg_1.default>;exports.PingIcon=PingIcon;const BroadcastIcon=({color:e=AppColors_1.AppColors.brandPurple,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
556
+ <react_native_svg_1.Path d="M4.93 4.93a10 10 0 0 1 14.14 0M7.76 7.76a6 6 0 0 1 8.48 0"stroke={e}strokeWidth="2"strokeLinecap="round"/>
557
+ <react_native_svg_1.Circle cx="12"cy="12"r="2"fill={e}/>
558
+ </react_native_svg_1.default>;exports.BroadcastIcon=BroadcastIcon;const VolumeIcon=({color:e=AppColors_1.AppColors.violet600,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
559
+ <react_native_svg_1.Path d="M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.08"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
560
+ </react_native_svg_1.default>;exports.VolumeIcon=VolumeIcon;const BuildingIcon=({color:e=AppColors_1.AppColors.blue600,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
561
+ <react_native_svg_1.Path d="M3 21h18M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16M9 9h1M9 13h1M9 17h1M14 9h1M14 13h1M14 17h1"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
562
+ </react_native_svg_1.default>;exports.BuildingIcon=BuildingIcon;const ArrowUpIcon=({color:e=AppColors_1.AppColors.green600,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
563
+ <react_native_svg_1.Path d="M12 19V5M5 12l7-7 7 7"stroke={e}strokeWidth="2.5"strokeLinecap="round"strokeLinejoin="round"/>
564
+ </react_native_svg_1.default>;exports.ArrowUpIcon=ArrowUpIcon;const ArrowDownIcon=({color:e=AppColors_1.AppColors.blue600,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
565
+ <react_native_svg_1.Path d="M12 5v14M19 12l-7 7-7-7"stroke={e}strokeWidth="2.5"strokeLinecap="round"strokeLinejoin="round"/>
566
+ </react_native_svg_1.default>;exports.ArrowDownIcon=ArrowDownIcon;const SupportIcon=({color:e=AppColors_1.AppColors.white,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
567
+ <react_native_svg_1.Circle cx="12"cy="12"r="9.5"stroke={e}strokeWidth="1.8"/>
568
+ <react_native_svg_1.Circle cx="12"cy="12"r="4"stroke={e}strokeWidth="1.8"/>
569
+ <react_native_svg_1.Line x1="4.93"y1="4.93"x2="9.17"y2="9.17"stroke={e}strokeWidth="1.8"strokeLinecap="round"/>
570
+ <react_native_svg_1.Line x1="14.83"y1="9.17"x2="19.07"y2="4.93"stroke={e}strokeWidth="1.8"strokeLinecap="round"/>
571
+ <react_native_svg_1.Line x1="14.83"y1="14.83"x2="19.07"y2="19.07"stroke={e}strokeWidth="1.8"strokeLinecap="round"/>
572
+ <react_native_svg_1.Line x1="4.93"y1="19.07"x2="9.17"y2="14.83"stroke={e}strokeWidth="1.8"strokeLinecap="round"/>
573
+ </react_native_svg_1.default>;exports.SupportIcon=SupportIcon;const HeartIcon=({color:e=AppColors_1.AppColors.red500,size:t=20,fill:o=e})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
574
+ <react_native_svg_1.Path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"fill={o}/>
575
+ </react_native_svg_1.default>;exports.HeartIcon=HeartIcon;
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_INNER_TAB_THEMES=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts");exports.DEFAULT_INNER_TAB_THEMES={metadata:AppColors_1.AppColors.sky600,headers:AppColors_1.AppColors.teal600,request:AppColors_1.AppColors.amber600,response:AppColors_1.AppColors.brandPurple,req:AppColors_1.AppColors.amber600,res:AppColors_1.AppColors.brandPurple,output:AppColors_1.AppColors.teal600,arguments:AppColors_1.AppColors.amber600,stack:AppColors_1.AppColors.errorColor,caller:AppColors_1.AppColors.sky600,error:AppColors_1.AppColors.errorColor,app:AppColors_1.AppColors.green600,all:AppColors_1.AppColors.brandPurple,live:AppColors_1.AppColors.violet600,timeline:AppColors_1.AppColors.orange600,persisted:AppColors_1.AppColors.teal600,payload:AppColors_1.AppColors.violet600,diff:AppColors_1.AppColors.green600,raw:AppColors_1.AppColors.brandPurple,diagnostics:AppColors_1.AppColors.amber600,breadcrumbs:AppColors_1.AppColors.orange600,overview:AppColors_1.AppColors.sky600,json:AppColors_1.AppColors.brandPurple,tree:AppColors_1.AppColors.violet600,preview:AppColors_1.AppColors.brandPurple,delivery:AppColors_1.AppColors.amber600,domainAttrs:AppColors_1.AppColors.sky600,pretty:AppColors_1.AppColors.violet600,table:AppColors_1.AppColors.teal600,production:AppColors_1.AppColors.brandPurple,files:AppColors_1.AppColors.teal600,packages:AppColors_1.AppColors.orange600,media:AppColors_1.AppColors.pink600,optimizer:AppColors_1.AppColors.violet600,hardware:AppColors_1.AppColors.orange600,network:AppColors_1.AppColors.teal600,display:AppColors_1.AppColors.pink600,runtime:AppColors_1.AppColors.amber600,security:AppColors_1.AppColors.errorColor,fatal:AppColors_1.AppColors.errorColor,promise:AppColors_1.AppColors.orange600,render:AppColors_1.AppColors.pink600,native:AppColors_1.AppColors.cyan600,js:AppColors_1.AppColors.amber600,asyncStorage:AppColors_1.AppColors.brandPurple,mmkv:AppColors_1.AppColors.teal600};const SegmentedTabs=react_1.default.memo(({tabs:r,activeKey:a,onChange:i,style:s,scrollable:p})=>{const t=r.map(o=>{const e=a===o.key,l=o.themeColor||o.color||exports.DEFAULT_INNER_TAB_THEMES[o.key]||AppColors_1.AppColors.brandPurple;return<react_native_1.Pressable key={o.key}onPress={()=>i(o.key)}style={({pressed:n})=>[{flex:p?void 0:1,paddingVertical:7,paddingHorizontal:p?12:6,borderRadius:7,backgroundColor:e?l:"transparent",alignItems:"center",justifyContent:"center",gap:4.5,flexDirection:"row",opacity:n?.8:1},e&&{shadowColor:l,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:3,elevation:2}]}>
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_INNER_TAB_THEMES=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts");exports.DEFAULT_INNER_TAB_THEMES={metadata:AppColors_1.AppColors.sky600,headers:AppColors_1.AppColors.teal600,request:AppColors_1.AppColors.amber600,response:AppColors_1.AppColors.brandPurple,req:AppColors_1.AppColors.amber600,res:AppColors_1.AppColors.brandPurple,output:AppColors_1.AppColors.teal600,arguments:AppColors_1.AppColors.amber600,stack:AppColors_1.AppColors.errorColor,caller:AppColors_1.AppColors.sky600,error:AppColors_1.AppColors.errorColor,app:AppColors_1.AppColors.green600,all:AppColors_1.AppColors.brandPurple,live:AppColors_1.AppColors.violet600,timeline:AppColors_1.AppColors.orange600,persisted:AppColors_1.AppColors.teal600,payload:AppColors_1.AppColors.violet600,diff:AppColors_1.AppColors.green600,raw:AppColors_1.AppColors.brandPurple,diagnostics:AppColors_1.AppColors.amber600,breadcrumbs:AppColors_1.AppColors.orange600,overview:AppColors_1.AppColors.sky600,json:AppColors_1.AppColors.brandPurple,tree:AppColors_1.AppColors.violet600,preview:AppColors_1.AppColors.brandPurple,delivery:AppColors_1.AppColors.amber600,domainAttrs:AppColors_1.AppColors.sky600,messages:AppColors_1.AppColors.violet600,params:AppColors_1.AppColors.teal600,code:AppColors_1.AppColors.amber600,pretty:AppColors_1.AppColors.violet600,table:AppColors_1.AppColors.teal600,production:AppColors_1.AppColors.brandPurple,files:AppColors_1.AppColors.teal600,packages:AppColors_1.AppColors.orange600,media:AppColors_1.AppColors.pink600,optimizer:AppColors_1.AppColors.violet600,hardware:AppColors_1.AppColors.orange600,network:AppColors_1.AppColors.teal600,display:AppColors_1.AppColors.pink600,runtime:AppColors_1.AppColors.amber600,security:AppColors_1.AppColors.errorColor,fatal:AppColors_1.AppColors.errorColor,promise:AppColors_1.AppColors.orange600,render:AppColors_1.AppColors.pink600,native:AppColors_1.AppColors.cyan600,js:AppColors_1.AppColors.amber600,asyncStorage:AppColors_1.AppColors.brandPurple,mmkv:AppColors_1.AppColors.teal600};const SegmentedTabs=react_1.default.memo(({tabs:r,activeKey:a,onChange:i,style:s,scrollable:p})=>{const t=r.map(o=>{const e=a===o.key,l=o.themeColor||o.color||exports.DEFAULT_INNER_TAB_THEMES[o.key]||AppColors_1.AppColors.brandPurple;return<react_native_1.Pressable key={o.key}onPress={()=>i(o.key)}style={({pressed:n})=>[{flex:p?void 0:1,paddingVertical:7,paddingHorizontal:p?12:6,borderRadius:7,backgroundColor:e?l:"transparent",alignItems:"center",justifyContent:"center",gap:4.5,flexDirection:"row",opacity:n?.8:1},e&&{shadowColor:l,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:3,elevation:2}]}>
2
2
  {o.icon?typeof o.icon=="function"?o.icon(e,l):o.icon:null}
3
3
  <react_native_1.Text numberOfLines={1}style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:e?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText,letterSpacing:.2}}>
4
4
  {o.label}
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "2.4.0";
1
+ export declare const LIB_VERSION = "2.4.2";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.4.0";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.4.2";
@@ -0,0 +1,26 @@
1
+ import type { SocketConnectionRecord, SocketFrame, SocketFrameDirection, SocketFrameType, RouteInfo } from '../types';
2
+ export declare const setSocketRouteInfoProvider: (provider: (() => RouteInfo | null) | null) => void;
3
+ export declare const setSocketModuleEnabled: (enabled: boolean) => void;
4
+ export declare const getSocketModuleEnabled: () => boolean;
5
+ export declare const setMaxSocketRecordsLimit: (limit: number) => void;
6
+ export declare const getMaxSocketRecordsLimit: () => number;
7
+ export declare function getSocketRecords(): SocketConnectionRecord[];
8
+ export declare function clearSocketRecords(): void;
9
+ export declare function deleteSocketRecord(id: string): void;
10
+ export declare function deleteMultipleSocketRecords(ids: string[]): void;
11
+ export declare function subscribeSocketRecords(callback: (records: SocketConnectionRecord[]) => void): () => void;
12
+ export declare function pruneSocketRecords(keepCount?: number): void;
13
+ interface ParsedPayloadInfo {
14
+ data: any;
15
+ type: SocketFrameType;
16
+ eventName?: string;
17
+ size: number;
18
+ }
19
+ export declare function analyzeSocketPayload(raw: any): ParsedPayloadInfo;
20
+ export declare function recordSocketConnection(url: string, options?: Partial<SocketConnectionRecord>): SocketConnectionRecord;
21
+ export declare function recordSocketFrame(socketId: string, rawPayload: any, direction?: SocketFrameDirection, options?: Partial<SocketFrame>): SocketFrame | null;
22
+ export declare function recordSocketClose(socketId: string, closeCode?: number, closeReason?: string): void;
23
+ export declare function recordSocketError(socketId: string, error: any): void;
24
+ export declare function setupSocketLogger(): void;
25
+ export declare function simulateTestSocket(preset?: 'chat' | 'crypto' | 'socketio' | 'echo' | 'custom', customData?: any): SocketConnectionRecord;
26
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMaxSocketRecordsLimit=exports.setMaxSocketRecordsLimit=exports.getSocketModuleEnabled=exports.setSocketModuleEnabled=exports.setSocketRouteInfoProvider=void 0,exports.getSocketRecords=getSocketRecords,exports.clearSocketRecords=clearSocketRecords,exports.deleteSocketRecord=deleteSocketRecord,exports.deleteMultipleSocketRecords=deleteMultipleSocketRecords,exports.subscribeSocketRecords=subscribeSocketRecords,exports.pruneSocketRecords=pruneSocketRecords,exports.analyzeSocketPayload=analyzeSocketPayload,exports.recordSocketConnection=recordSocketConnection,exports.recordSocketFrame=recordSocketFrame,exports.recordSocketClose=recordSocketClose,exports.recordSocketError=recordSocketError,exports.setupSocketLogger=setupSocketLogger,exports.simulateTestSocket=simulateTestSocket;let socketRecords=[],maxSocketRecordsLimit=50,isSocketModuleEnabled=!0,isWebSocketProxied=!1,currentRouteProvider=null;const listeners=new Set,setSocketRouteInfoProvider=e=>{currentRouteProvider=e};exports.setSocketRouteInfoProvider=setSocketRouteInfoProvider;const setSocketModuleEnabled=e=>{isSocketModuleEnabled=e};exports.setSocketModuleEnabled=setSocketModuleEnabled;const getSocketModuleEnabled=()=>isSocketModuleEnabled;exports.getSocketModuleEnabled=getSocketModuleEnabled;const setMaxSocketRecordsLimit=e=>{maxSocketRecordsLimit=Math.max(10,Math.min(500,e)),socketRecords.length>maxSocketRecordsLimit&&(socketRecords=socketRecords.slice(0,maxSocketRecordsLimit),notifyListeners())};exports.setMaxSocketRecordsLimit=setMaxSocketRecordsLimit;const getMaxSocketRecordsLimit=()=>maxSocketRecordsLimit;exports.getMaxSocketRecordsLimit=getMaxSocketRecordsLimit;function getSocketRecords(){return[...socketRecords]}function clearSocketRecords(){socketRecords=[],notifyListeners()}function deleteSocketRecord(e){socketRecords=socketRecords.filter(t=>t.id!==e),notifyListeners()}function deleteMultipleSocketRecords(e){const t=new Set(e);socketRecords=socketRecords.filter(s=>!t.has(s.id)),notifyListeners()}function subscribeSocketRecords(e){return listeners.add(e),e([...socketRecords]),()=>{listeners.delete(e)}}function pruneSocketRecords(e=25){socketRecords.length>e&&(socketRecords=socketRecords.slice(0,e),notifyListeners())}function notifyListeners(){const e=[...socketRecords];listeners.forEach(t=>{try{t(e)}catch{}})}function generateSocketId(){return`ws_${Date.now()}_${Math.random().toString(36).substring(2,8)}`}function generateFrameId(){return`f_${Date.now()}_${Math.random().toString(36).substring(2,7)}`}function extractCallerInfo(){try{const e=new Error().stack;if(!e)return;const t=e.split(`
2
+ `);for(const s of t)if(!s.includes("socketLogger")&&!s.includes("NativeInspector")&&!s.includes("InspectorWebSocket")&&!s.includes("node_modules/react-native")&&!s.includes("node_modules/expo")&&s.includes(".js")||s.includes(".tsx")||s.includes(".ts")){const i=s.match(/(?:at\s+)?(?:(.+?)\s+\()?(.*?):(\d+):(\d+)\)?$/);if(i){const n=i[1]||"anonymous",c=i[2]?.split("/").pop()||i[2],a=i[3];return`${c}:${a} (${n})`}}}catch{}}function parseUrlQuery(e){const t={};try{const s=e.indexOf("?");if(s>=0){const n=e.substring(s+1).split("#")[0].split("&");for(const c of n){const[a,d]=c.split("=");a&&(t[decodeURIComponent(a)]=d?decodeURIComponent(d):"")}}}catch{}return t}function analyzeSocketPayload(e){if(e==null)return{data:null,type:"text",size:0};if(typeof e=="string"){const t=(new Blob,e.length);if(/^\d+/.test(e)){if(e.startsWith("2"))return{data:"ping",type:"ping",size:t};if(e.startsWith("3"))return{data:"pong",type:"pong",size:t};if(e.startsWith("42")||e.startsWith("43"))try{const i=e.substring(2),n=JSON.parse(i);if(Array.isArray(n)&&n.length>0){const c=typeof n[0]=="string"?n[0]:"socket.io",a=n.length>1?n.length===2?n[1]:n.slice(1):null;return{data:a!==null?a:n,type:"socket.io",eventName:c,size:t}}}catch{}if(e.startsWith("0"))try{return{data:JSON.parse(e.substring(1)),type:"socket.io",eventName:"handshake",size:t}}catch{}}const s=e.trim();if(s.startsWith("{")&&s.endsWith("}")||s.startsWith("[")&&s.endsWith("]"))try{return{data:JSON.parse(s),type:"json",size:t}}catch{}return{data:e,type:"text",size:t}}return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?{data:`[ArrayBuffer ${e.byteLength} bytes]`,type:"binary",size:e.byteLength}:typeof Uint8Array<"u"&&e instanceof Uint8Array?{data:`[Uint8Array ${e.byteLength} bytes]`,type:"binary",size:e.byteLength}:typeof Blob<"u"&&e instanceof Blob?{data:`[Blob ${e.size} bytes: ${e.type||"binary"}]`,type:"binary",size:e.size}:typeof e=="object"?{data:e,type:"json",size:JSON.stringify(e).length}:{data:String(e),type:"text",size:String(e).length}}function recordSocketConnection(e,t){const s=parseUrlQuery(e),i=e.includes("/socket.io")||t?.client==="socket.io",n={id:t?.id||generateSocketId(),url:e,protocols:t?.protocols,readyState:t?.readyState??1,status:t?.status||"open",startTime:t?.startTime||Date.now(),client:t?.client||(i?"socket.io":"websocket"),frames:t?.frames||[],sentCount:t?.sentCount||0,receivedCount:t?.receivedCount||0,totalBytesSent:t?.totalBytesSent||0,totalBytesReceived:t?.totalBytesReceived||0,caller:t?.caller||extractCallerInfo(),query:s,headers:t?.headers,routeInfo:t?.routeInfo||currentRouteProvider&&currentRouteProvider()||void 0};return socketRecords.unshift(n),socketRecords.length>maxSocketRecordsLimit&&(socketRecords=socketRecords.slice(0,maxSocketRecordsLimit)),notifyListeners(),n}function recordSocketFrame(e,t,s="send",i){const n=socketRecords.find(d=>d.id===e);if(!n)return null;const c=analyzeSocketPayload(t),a={id:i?.id||generateFrameId(),timestamp:i?.timestamp||Date.now(),direction:s,type:i?.type||c.type,data:i?.data!==void 0?i.data:c.data,raw:t,size:i?.size!==void 0?i.size:c.size,eventName:i?.eventName||c.eventName,ackId:i?.ackId};return n.frames.push(a),s==="send"?(n.sentCount+=1,n.totalBytesSent+=a.size||0):(n.receivedCount+=1,n.totalBytesReceived+=a.size||0),notifyListeners(),a}function recordSocketClose(e,t=1e3,s="Normal closure"){const i=socketRecords.find(n=>n.id===e);i&&(i.readyState=3,i.status="closed",i.closeCode=t,i.closeReason=s,i.endTime=Date.now(),i.duration=i.endTime-i.startTime,notifyListeners())}function recordSocketError(e,t){const s=socketRecords.find(i=>i.id===e);s&&(s.status="error",s.error=typeof t=="string"?t:t?.message||"WebSocket error occurred",notifyListeners())}const OriginalWebSocket=typeof global<"u"&&global.WebSocket?global.WebSocket:void 0;function setupSocketLogger(){if(isWebSocketProxied||!OriginalWebSocket)return;class e extends OriginalWebSocket{constructor(s,i){const n=typeof s=="string"?s:s.toString();if(super(s,i),this._inspectorUrl=n,this._inspectorId=generateSocketId(),isSocketModuleEnabled){const c=parseUrlQuery(n),a=n.includes("/socket.io"),d={id:this._inspectorId,url:n,protocols:i,readyState:0,status:"connecting",startTime:Date.now(),client:a?"socket.io":"websocket",frames:[],sentCount:0,receivedCount:0,totalBytesSent:0,totalBytesReceived:0,caller:extractCallerInfo(),query:c,routeInfo:currentRouteProvider&&currentRouteProvider()||void 0};socketRecords.unshift(d),socketRecords.length>maxSocketRecordsLimit&&(socketRecords=socketRecords.slice(0,maxSocketRecordsLimit)),notifyListeners(),this.addEventListener("open",()=>{const o=socketRecords.find(r=>r.id===this._inspectorId);o&&(o.readyState=1,o.status="open",notifyListeners())}),this.addEventListener("message",o=>{if(!isSocketModuleEnabled)return;const r=socketRecords.find(m=>m.id===this._inspectorId);if(!r)return;const u=o?.data,l=analyzeSocketPayload(u),p={id:generateFrameId(),timestamp:Date.now(),direction:"receive",type:l.type,data:l.data,raw:u,size:l.size,eventName:l.eventName};r.frames.push(p),r.receivedCount+=1,r.totalBytesReceived+=p.size||0,notifyListeners()}),this.addEventListener("error",o=>{const r=socketRecords.find(u=>u.id===this._inspectorId);r&&(r.status="error",r.error=o?.message||"WebSocket connection error",notifyListeners())}),this.addEventListener("close",o=>{const r=socketRecords.find(u=>u.id===this._inspectorId);r&&(r.readyState=3,r.status="closed",r.closeCode=o?.code||1e3,r.closeReason=o?.reason||"Closed",r.endTime=Date.now(),r.duration=r.endTime-r.startTime,notifyListeners())})}}send(s){if(isSocketModuleEnabled&&this._inspectorId){const i=socketRecords.find(n=>n.id===this._inspectorId);if(i){const n=analyzeSocketPayload(s),c={id:generateFrameId(),timestamp:Date.now(),direction:"send",type:n.type,data:n.data,raw:s,size:n.size,eventName:n.eventName};i.frames.push(c),i.sentCount+=1,i.totalBytesSent+=c.size||0,notifyListeners()}}super.send(s)}}e.CONNECTING=0,e.OPEN=1,e.CLOSING=2,e.CLOSED=3,global.WebSocket=e,isWebSocketProxied=!0}function simulateTestSocket(e="chat",t){const s=Date.now();if(e==="chat"){const d=generateSocketId(),o=s-18450,r={id:d,url:"wss://chat.example.com/v2/rooms/engineering?user=lead_dev",protocols:"chat.v2",readyState:1,status:"open",startTime:o,client:"websocket",sentCount:3,receivedCount:5,totalBytesSent:412,totalBytesReceived:890,caller:"ChatRoomScreen.tsx:84 (initChatWebSocket)",query:{user:"lead_dev",version:"2.0.4"},frames:[{id:generateFrameId(),timestamp:o+120,direction:"send",type:"json",data:{action:"auth",token:"bearer_token_sec_99182",userId:"usr_81723"},size:78},{id:generateFrameId(),timestamp:o+380,direction:"receive",type:"json",data:{status:"authenticated",room:"engineering",activeUsers:14},size:64},{id:generateFrameId(),timestamp:o+2400,direction:"send",type:"json",data:{action:"send_message",message:"Hello team, the new release build is ready! \u{1F680}"},size:82},{id:generateFrameId(),timestamp:o+3100,direction:"receive",type:"json",data:{user:"Sarah_QA",message:"Awesome! Starting regression tests on iOS 18 now.",timestamp:o+3090},size:114},{id:generateFrameId(),timestamp:o+7500,direction:"receive",type:"json",data:{user:"Alex_Backend",message:"API response times look great on staging cluster.",timestamp:o+7490},size:98},{id:generateFrameId(),timestamp:o+12e3,direction:"send",type:"ping",data:"ping",size:4},{id:generateFrameId(),timestamp:o+12045,direction:"receive",type:"pong",data:"pong",size:4},{id:generateFrameId(),timestamp:o+16200,direction:"receive",type:"json",data:{event:"typing_indicator",user:"David_Design",status:"typing"},size:56}]};return socketRecords.unshift(r),notifyListeners(),r}if(e==="crypto"){const d=generateSocketId(),o=s-45e3,r={id:d,url:"wss://stream.binance.com:9443/ws/btcusdt@ticker/ethusdt@ticker",protocols:void 0,readyState:1,status:"open",startTime:o,client:"websocket",sentCount:1,receivedCount:6,totalBytesSent:86,totalBytesReceived:2140,caller:"CryptoLiveTicker.tsx:42 (connectTickerStream)",query:{symbols:"btcusdt,ethusdt"},frames:[{id:generateFrameId(),timestamp:o+80,direction:"send",type:"json",data:{method:"SUBSCRIBE",params:["btcusdt@ticker","ethusdt@ticker"],id:1},size:86},{id:generateFrameId(),timestamp:o+250,direction:"receive",type:"json",data:{result:null,id:1},size:24},{id:generateFrameId(),timestamp:o+1200,direction:"receive",type:"json",data:{s:"BTCUSDT",c:"92,450.00",h:"93,120.00",l:"90,800.00",v:"18420.45",q:"1702891240.50",P:"+2.45%"},size:142},{id:generateFrameId(),timestamp:o+5400,direction:"receive",type:"json",data:{s:"ETHUSDT",c:"3,420.50",h:"3,480.00",l:"3,360.00",v:"84120.12",q:"287890124.00",P:"+1.82%"},size:138},{id:generateFrameId(),timestamp:o+18e3,direction:"receive",type:"json",data:{s:"BTCUSDT",c:"92,610.00",h:"93,120.00",l:"90,800.00",v:"18650.10",q:"1724120890.00",P:"+2.62%"},size:142}]};return socketRecords.unshift(r),notifyListeners(),r}if(e==="socketio"){const d=generateSocketId(),o=s-32e3,r={id:d,url:"https://api.myapp.io/socket.io/?EIO=4&transport=websocket&sid=U9k1l_892Zq",readyState:1,status:"open",startTime:o,client:"socket.io",sentCount:3,receivedCount:4,totalBytesSent:280,totalBytesReceived:560,caller:"SocketIOClient.ts:62 (io.connect)",query:{EIO:"4",transport:"websocket",sid:"U9k1l_892Zq"},frames:[{id:generateFrameId(),timestamp:o+90,direction:"receive",type:"socket.io",eventName:"handshake",data:{sid:"U9k1l_892Zq",upgrades:[],pingInterval:25e3,pingTimeout:2e4},size:96},{id:generateFrameId(),timestamp:o+210,direction:"send",type:"socket.io",eventName:"connect_namespace",data:{token:"jwt_auth_pass_token_99"},size:54},{id:generateFrameId(),timestamp:o+340,direction:"receive",type:"socket.io",eventName:"connect",data:{status:"ok",sid:"U9k1l_892Zq"},size:42},{id:generateFrameId(),timestamp:o+4200,direction:"send",type:"socket.io",eventName:"subscribe_order_feed",data:{orderId:"ORD_99182",tenantId:"enterprise_gold"},size:72},{id:generateFrameId(),timestamp:o+8900,direction:"receive",type:"socket.io",eventName:"order_status_updated",data:{orderId:"ORD_99182",status:"DISPATCHED",driverName:"Michael Brown",etaMinutes:12,location:{lat:37.7749,lng:-122.4194}},size:168},{id:generateFrameId(),timestamp:o+25e3,direction:"send",type:"ping",data:"ping",size:4},{id:generateFrameId(),timestamp:o+25032,direction:"receive",type:"pong",data:"pong",size:4}]};return socketRecords.unshift(r),notifyListeners(),r}const i=generateSocketId(),n=s-6e4,c=s-2e3,a={id:i,url:"wss://echo.websocket.events",readyState:3,status:"closed",startTime:n,endTime:c,duration:c-n,closeCode:1e3,closeReason:"Normal session closure",client:"websocket",sentCount:2,receivedCount:2,totalBytesSent:110,totalBytesReceived:110,caller:"HomeScreen.tsx:120 (testWebSocketEcho)",frames:[{id:generateFrameId(),timestamp:n+200,direction:"send",type:"text",data:"Echo ping test #1",size:17},{id:generateFrameId(),timestamp:n+380,direction:"receive",type:"text",data:"Echo ping test #1",size:17},{id:generateFrameId(),timestamp:n+15e3,direction:"send",type:"json",data:{type:"diagnostics",timestamp:n+15e3},size:45},{id:generateFrameId(),timestamp:n+15210,direction:"receive",type:"json",data:{type:"diagnostics",timestamp:n+15e3},size:45}]};return t&&Object.assign(a,t),socketRecords.unshift(a),notifyListeners(),a}
@@ -1,8 +1,8 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__exportStar=this&&this.__exportStar||function(e,t){for(var o in e)o!=="default"&&!Object.prototype.hasOwnProperty.call(t,o)&&__createBinding(t,e,o)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRuntimeDiagnostics=exports.getCategoryColors=exports.registerGAPlugin=exports.getEventCategory=exports.getEventColor=exports.ANALYTICS_EVENT_PALETTE=exports.openInVSCode=exports.getCleanCallerDisplay=exports.parseStackLine=exports.getJsonPreviewText=exports.getJsonContent=exports.formatGap=exports.formatTime=exports.formatTimeShort=exports.handleOpenExternalLink=exports.getAppVersionAndBuild=exports.getAppName=exports.getBundleIdentifier=exports.formatDateTimeToAnalytics=exports.isAllValuesEmpty=exports.getLocalizedFilePathWithSlash=exports.getLocalizedFilePath=exports.formatDisplayUrl=exports.getDiff=exports.flattenObject=exports.getLogPageName=exports.getNavigationInfo=exports.escapeRegex=exports.deduplicateLogs=exports.getFetchCommand=exports.getCurlCommand=exports.getBaseUrl=exports.getPath=exports.copyImageOrMediaToClipboard=exports.copyToClipboard=exports.formatBytes=exports.getSize=exports.getDurationColor=exports.getStatusColor=exports.formatTimestamp=exports.formatDateTime=exports.getDomainColor=exports.isLocalDebugEnvironment=void 0;const react_native_1=require("react-native"),clipboard_1=__importDefault(require("@react-native-clipboard/clipboard")),toast_1=require("./toast"),NativeInspector_1=require("../native/NativeInspector"),AppColors_1=require("../styles/AppColors"),constants_1=require("../constants");__exportStar(require("./searchQueryParser"),exports),__exportStar(require("./memoryManager"),exports),__exportStar(require("./toast"),exports);const isLocalDebugEnvironment=()=>{const e=typeof __DEV__<"u"&&!!__DEV__,t=react_native_1.NativeModules.SourceCode?.scriptURL||"",o=t.startsWith("http://")||t.startsWith("https://")||t.includes(":8081")||t.includes(":8082");return e||o};exports.isLocalDebugEnvironment=isLocalDebugEnvironment;const getDomainColor=e=>{if(!e)return constants_1.DOMAIN_COLORS[0];let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);return constants_1.DOMAIN_COLORS[Math.abs(t)%constants_1.DOMAIN_COLORS.length]};exports.getDomainColor=getDomainColor;const formatDateTime=e=>{const t=new Date(e),o=(d,c=2)=>String(d).padStart(c,"0"),r=o(t.getDate()),n=o(t.getMonth()+1),i=t.getFullYear(),s=o(t.getHours()),a=o(t.getMinutes()),u=o(t.getSeconds());return`${r}/${n}/${i} ${s}:${a}:${u}`};exports.formatDateTime=formatDateTime;const formatTimestamp=e=>{try{const t=new Date(e),o=t.getHours().toString().padStart(2,"0"),r=t.getMinutes().toString().padStart(2,"0"),n=t.getSeconds().toString().padStart(2,"0"),i=t.getMilliseconds().toString().padStart(3,"0");return`${o}:${r}:${n}.${i}`}catch{return"\u2014"}};exports.formatTimestamp=formatTimestamp;const getStatusColor=e=>!e||e===0||e>=500?AppColors_1.AppColors.errorColor:e>=400?AppColors_1.AppColors.darkOrange:e>=300?AppColors_1.AppColors.warningIconGold:AppColors_1.AppColors.greenColor;exports.getStatusColor=getStatusColor;const getDurationColor=e=>e==null?AppColors_1.AppColors.grayTextWeak:e<constants_1.DURATION_FAST_MS?AppColors_1.AppColors.greenColor:e<constants_1.DURATION_SLOW_MS?AppColors_1.AppColors.lightOrange:AppColors_1.AppColors.errorColor;exports.getDurationColor=getDurationColor;const getSize=e=>{try{const t=JSON.stringify(e)?.length??0;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}catch{return"\u2014"}};exports.getSize=getSize;const formatBytes=e=>{if(e===0||!e||isNaN(e))return"0 B";const t=1024,o=["B","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/Math.pow(t,r)).toFixed(1))} ${o[r]||"B"}`};exports.formatBytes=formatBytes;const copyToClipboard=(e,t)=>{const o=typeof e=="function"?e():e;let r="";if(typeof o=="string")r=o;else try{r=JSON.stringify(o,null,2)}catch{r=String(o)}try{typeof clipboard_1.default?.setString=="function"?clipboard_1.default.setString(r):typeof clipboard_1.default?.default?.setString=="function"&&clipboard_1.default.default.setString(r)}catch(n){__DEV__&&console.warn("[NetworkInspector] Clipboard.setString failed:",n)}try{(0,toast_1.showToast)(t?`${t} copied to clipboard`:"Copied to clipboard")}catch{}try{react_native_1.Platform.OS==="android"&&react_native_1.ToastAndroid?.show&&react_native_1.ToastAndroid.show(t?`${t} copied to clipboard`:"Copied to clipboard",react_native_1.ToastAndroid.SHORT)}catch{}};exports.copyToClipboard=copyToClipboard;const copyImageOrMediaToClipboard=async(e,t="Image")=>{if(!e)return;let o=!1;try{o=await(0,NativeInspector_1.copyMediaToClipboard)(e)}catch{o=!1}if(!o){(0,exports.copyToClipboard)(e,t);return}try{(0,toast_1.showToast)(`${t} copied to clipboard`)}catch{}try{react_native_1.Platform.OS==="android"&&react_native_1.ToastAndroid?.show&&react_native_1.ToastAndroid.show(`${t} copied to clipboard`,react_native_1.ToastAndroid.SHORT)}catch{}};exports.copyImageOrMediaToClipboard=copyImageOrMediaToClipboard;const getPath=e=>{try{const t=new URL(e);return t.pathname+(t.search?t.search:"")}catch{return e.replace(/^https?:\/\/[^/?#]+/,"")||"/"}};exports.getPath=getPath;const getBaseUrl=e=>{try{const t=new URL(e);return`${t.protocol}//${t.host}`}catch{const t=e.match(/^(https?:\/\/[^/]+)/);return t?t[1]:""}};exports.getBaseUrl=getBaseUrl;const getCurlCommand=e=>{let t=`curl -X ${e.method} "${e.url}"`;if(e.requestHeaders&&Object.entries(e.requestHeaders).forEach(([o,r])=>{t+=` \\
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__exportStar=this&&this.__exportStar||function(e,t){for(var o in e)o!=="default"&&!Object.prototype.hasOwnProperty.call(t,o)&&__createBinding(t,e,o)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRuntimeDiagnostics=exports.getCategoryColors=exports.registerGAPlugin=exports.getEventCategory=exports.getEventColor=exports.ANALYTICS_EVENT_PALETTE=exports.openInVSCode=exports.getCleanCallerDisplay=exports.parseStackLine=exports.getJsonPreviewText=exports.getJsonContent=exports.formatGap=exports.formatTime=exports.formatTimeShort=exports.handleOpenExternalLink=exports.getAppVersionAndBuild=exports.getAppName=exports.getBundleIdentifier=exports.formatDateTimeToAnalytics=exports.isAllValuesEmpty=exports.getLocalizedFilePathWithSlash=exports.getLocalizedFilePath=exports.formatDisplayUrl=exports.getDiff=exports.flattenObject=exports.getLogPageName=exports.getNavigationInfo=exports.escapeRegex=exports.deduplicateLogs=exports.getFetchCommand=exports.getCurlCommand=exports.getBaseUrl=exports.getPath=exports.copyImageOrMediaToClipboard=exports.copyToClipboard=exports.formatBytes=exports.getSize=exports.getDurationColor=exports.getStatusColor=exports.formatTimestamp=exports.formatDateTime=exports.getDomainColor=exports.isLocalDebugEnvironment=void 0;const react_native_1=require("react-native"),clipboard_1=__importDefault(require("@react-native-clipboard/clipboard")),toast_1=require("./toast"),NativeInspector_1=require("../native/NativeInspector"),AppColors_1=require("../styles/AppColors"),constants_1=require("../constants");__exportStar(require("./searchQueryParser"),exports),__exportStar(require("./memoryManager"),exports),__exportStar(require("./toast"),exports);const isLocalDebugEnvironment=()=>{const e=typeof __DEV__<"u"&&!!__DEV__,t=react_native_1.NativeModules.SourceCode?.scriptURL||"",o=t.startsWith("http://")||t.startsWith("https://")||t.includes(":8081")||t.includes(":8082");return e||o};exports.isLocalDebugEnvironment=isLocalDebugEnvironment;const getDomainColor=e=>{if(!e)return constants_1.DOMAIN_COLORS[0];let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);return constants_1.DOMAIN_COLORS[Math.abs(t)%constants_1.DOMAIN_COLORS.length]};exports.getDomainColor=getDomainColor;const formatDateTime=e=>{const t=new Date(e),o=(d,c=2)=>String(d).padStart(c,"0"),r=o(t.getDate()),n=o(t.getMonth()+1),i=t.getFullYear(),s=o(t.getHours()),a=o(t.getMinutes()),l=o(t.getSeconds());return`${r}/${n}/${i} ${s}:${a}:${l}`};exports.formatDateTime=formatDateTime;const formatTimestamp=e=>{try{const t=new Date(e),o=t.getHours().toString().padStart(2,"0"),r=t.getMinutes().toString().padStart(2,"0"),n=t.getSeconds().toString().padStart(2,"0"),i=t.getMilliseconds().toString().padStart(3,"0");return`${o}:${r}:${n}.${i}`}catch{return"\u2014"}};exports.formatTimestamp=formatTimestamp;const getStatusColor=e=>!e||e===0||e>=500?AppColors_1.AppColors.errorColor:e>=400?AppColors_1.AppColors.darkOrange:e>=300?AppColors_1.AppColors.warningIconGold:AppColors_1.AppColors.greenColor;exports.getStatusColor=getStatusColor;const getDurationColor=e=>e==null?AppColors_1.AppColors.grayTextWeak:e<constants_1.DURATION_FAST_MS?AppColors_1.AppColors.greenColor:e<constants_1.DURATION_SLOW_MS?AppColors_1.AppColors.lightOrange:AppColors_1.AppColors.errorColor;exports.getDurationColor=getDurationColor;const getSize=e=>{try{const t=JSON.stringify(e)?.length??0;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}catch{return"\u2014"}};exports.getSize=getSize;const formatBytes=e=>{if(e===0||!e||isNaN(e))return"0 B";const t=1024,o=["B","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/Math.pow(t,r)).toFixed(1))} ${o[r]||"B"}`};exports.formatBytes=formatBytes;const copyToClipboard=(e,t)=>{const o=typeof e=="function"?e():e;let r="";if(typeof o=="string")r=o;else try{r=JSON.stringify(o,null,2)}catch{r=String(o)}try{typeof clipboard_1.default?.setString=="function"?clipboard_1.default.setString(r):typeof clipboard_1.default?.default?.setString=="function"&&clipboard_1.default.default.setString(r)}catch(n){__DEV__&&console.warn("[NetworkInspector] Clipboard.setString failed:",n)}try{(0,toast_1.showToast)(t?`${t} copied to clipboard`:"Copied to clipboard")}catch{}try{react_native_1.Platform.OS==="android"&&react_native_1.ToastAndroid?.show&&react_native_1.ToastAndroid.show(t?`${t} copied to clipboard`:"Copied to clipboard",react_native_1.ToastAndroid.SHORT)}catch{}};exports.copyToClipboard=copyToClipboard;const copyImageOrMediaToClipboard=async(e,t="Image")=>{if(!e)return;let o=!1;try{o=await(0,NativeInspector_1.copyMediaToClipboard)(e)}catch{o=!1}if(!o){(0,exports.copyToClipboard)(e,t);return}try{(0,toast_1.showToast)(`${t} copied to clipboard`)}catch{}try{react_native_1.Platform.OS==="android"&&react_native_1.ToastAndroid?.show&&react_native_1.ToastAndroid.show(`${t} copied to clipboard`,react_native_1.ToastAndroid.SHORT)}catch{}};exports.copyImageOrMediaToClipboard=copyImageOrMediaToClipboard;const getPath=e=>{try{const t=new URL(e);return t.pathname+(t.search?t.search:"")}catch{return e.replace(/^https?:\/\/[^/?#]+/,"")||"/"}};exports.getPath=getPath;const getBaseUrl=e=>{try{const t=new URL(e);return`${t.protocol}//${t.host}`}catch{const t=e.match(/^(https?:\/\/[^/]+)/);return t?t[1]:""}};exports.getBaseUrl=getBaseUrl;const getCurlCommand=e=>{let t=`curl -X ${e.method} "${e.url}"`;if(e.requestHeaders&&Object.entries(e.requestHeaders).forEach(([o,r])=>{t+=` \\
2
2
  -H "${o}: ${r}"`}),e.request&&e.method!=="GET"){const o=typeof e.request=="string"?e.request:JSON.stringify(e.request);t+=` \\
3
- -d '${o.replace(/'/g,"'\\''")}'`}return t};exports.getCurlCommand=getCurlCommand;const getFetchCommand=e=>{const t={method:e.method};return e.requestHeaders&&Object.keys(e.requestHeaders).length>0&&(t.headers=e.requestHeaders),e.request&&e.method!=="GET"&&(t.body=JSON.stringify(e.request)),`fetch("${e.url}", ${JSON.stringify(t,null,2)})`};exports.getFetchCommand=getFetchCommand;const deduplicateLogs=e=>{const t=new Map;return e.forEach(o=>{if(!t.has(o.id))t.set(o.id,o);else{const r=t.get(o.id);(r.status==null&&o.status!=null||(o.startTime??0)>=(r.startTime??0))&&t.set(o.id,o)}}),Array.from(t.values()).sort((o,r)=>r.id-o.id)};exports.deduplicateLogs=deduplicateLogs;const escapeRegex=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");exports.escapeRegex=escapeRegex;const getNavigationInfo=(e,t=[])=>{if(!e)return{path:t.length>0?t.join(" \u2794 "):"",params:null};if(e.name&&!e.routes)return{path:t.length>0?[...t,e.name].join(" \u2794 "):e.name,params:e.params||null};if(!e.routes||!Array.isArray(e.routes)||e.routes.length===0)return{path:t.length>0?t.join(" \u2794 "):"",params:null};const o=typeof e.index=="number"&&e.index>=0&&e.index<e.routes.length?e.index:0,r=e.routes[o];if(!r)return{path:t.length>0?t.join(" \u2794 "):"",params:null};const n=r.name?[...t,r.name]:t;return r?.state?(0,exports.getNavigationInfo)(r.state,n):{path:n.length>0?n.join(" \u2794 "):r.name||"",params:r.params||null}};exports.getNavigationInfo=getNavigationInfo;const getLogPageName=(e,t)=>{const o=t||e?.routeInfo;if(o&&o.path&&o.path!=="Navigators"){const r=o.path.split(" \u2794 ").map(n=>n.trim()).filter(Boolean);return r.length>0?r[r.length-1]:o.path}if(e.caller&&e.caller!=="Unknown")try{const r=e.caller.match(/([^/\\]+)\.(tsx|jsx|ts|js)/i);if(r&&r[1]){const n=r[1];if(!["networklogger","fetch","axios","apiclient","request","http","index","nativeinspector","inappinspector","bundleanalyzer"].includes(n.toLowerCase()))return n}}catch{}if(e.url)try{const n=e.url.split("?")[0].split("#")[0].replace(/^https?:\/\//i,""),i=n.indexOf("/");if(i!==-1){const a=n.substring(i+1).split("/").filter(Boolean),u=["api","v1","v2","v3","v4","rest","graphql","json","data","service","app"],d=a.filter(c=>!u.includes(c.toLowerCase()));if(d.length>0){const c=d[0];return c.charAt(0).toUpperCase()+c.slice(1)}}const s=n.split("/")[0];if(s)return s}catch{}return"General"};exports.getLogPageName=getLogPageName;const flattenObject=(e,t="")=>{let o={};return typeof e=="object"&&e!==null?Array.isArray(e)?e.forEach((r,n)=>{Object.assign(o,(0,exports.flattenObject)(r,t?`${t}[${n}]`:`[${n}]`))}):Object.keys(e).forEach(r=>{Object.assign(o,(0,exports.flattenObject)(e[r],t?`${t}.${r}`:r))}):o[t||"root"]=e,o};exports.flattenObject=flattenObject;const getDiff=(e,t)=>{const o=(0,exports.flattenObject)(e),r=(0,exports.flattenObject)(t),n=[];return new Set([...Object.keys(o),...Object.keys(r)]).forEach(s=>{s in o?s in r?o[s]!==r[s]&&n.push({type:"changed",path:s,oldVal:o[s],newVal:r[s]}):n.push({type:"removed",path:s,oldVal:o[s]}):n.push({type:"added",path:s,newVal:r[s]})}),n.sort((s,a)=>s.path.localeCompare(a.path))};exports.getDiff=getDiff;const formatDisplayUrl=e=>e?e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`:"";exports.formatDisplayUrl=formatDisplayUrl;const getLocalizedFilePath=(e,t,o)=>e.replace("country-language",`${t?.toLowerCase()}-${o?.toLowerCase()}`);exports.getLocalizedFilePath=getLocalizedFilePath;const getLocalizedFilePathWithSlash=(e,t,o)=>e.replace("country/language",`${t?.toLowerCase()}/${o?.toLowerCase()}`);exports.getLocalizedFilePathWithSlash=getLocalizedFilePathWithSlash;const isAllValuesEmpty=e=>!e||typeof e!="object"?!0:Object.values(e).every(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0);exports.isAllValuesEmpty=isAllValuesEmpty;const formatDateTimeToAnalytics=e=>new Date(e)?.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"});exports.formatDateTimeToAnalytics=formatDateTimeToAnalytics;const getBundleIdentifier=()=>{const e=react_native_1.NativeModules.RNDeviceInfo;if(e&&typeof e.bundleId=="string")return e.bundleId;if(e&&typeof e.getBundleId=="function")try{const n=e.getBundleId();if(typeof n=="string")return n}catch{}const t=react_native_1.NativeModules.ExponentConstants;if(t&&t.manifest){const n=t.manifest;if(n.ios&&n.ios.bundleIdentifier)return n.ios.bundleIdentifier;if(n.android&&n.android.package)return n.android.package}const o=react_native_1.NativeModules.ExpoApplication;if(o&&typeof o.applicationId=="string")return o.applicationId;const r=react_native_1.NativeModules.SourceCode;if(r&&typeof r.scriptURL=="string"){const n=r.scriptURL;if(n.includes("assets/"))try{const i=n.match(/assets\/([^/?#]+)/);if(i&&i[1])return i[1]}catch{}}return"org.reactjs.native.example"};exports.getBundleIdentifier=getBundleIdentifier;const getAppName=()=>{const e=react_native_1.NativeModules.PlatformConstants;e&&e.interfaceIdiom;const t=react_native_1.NativeModules.RNDeviceInfo;if(t&&typeof t.appName=="string")return t.appName;const o=react_native_1.NativeModules.ExpoApplication;if(o&&typeof o.applicationName=="string")return o.applicationName;const r=react_native_1.NativeModules.ExponentConstants;if(r&&r.manifest){const s=r.manifest;if(s.name)return s.name}const n=react_native_1.NativeModules.AppInfo;if(n&&typeof n.appName=="string")return n.appName;const i=(0,exports.getBundleIdentifier)();if(i&&i!=="org.reactjs.native.example"){const s=i.split("."),a=s[s.length-1];return a?a.charAt(0).toUpperCase()+a.slice(1):"App"}return"App"};exports.getAppName=getAppName;const getAppVersionAndBuild=()=>{let e="",t="";const o=react_native_1.NativeModules.ExpoApplication;o&&(typeof o.nativeAppVersion=="string"&&(e=o.nativeAppVersion),typeof o.nativeBuildVersion=="string"&&(t=o.nativeBuildVersion));const r=react_native_1.NativeModules.ExponentConstants;if(r){const a=r.manifest||r.expoConfig;a&&(!e&&a.version&&(e=String(a.version)),t||(a.ios?.buildNumber?t=String(a.ios.buildNumber):a.android?.versionCode&&(t=String(a.android.versionCode))))}const n=react_native_1.NativeModules.RNDeviceInfo;if(n){if(!e){if(typeof n.appVersion=="string")e=n.appVersion;else if(typeof n.getVersion=="function")try{e=n.getVersion()}catch{}}if(!t){if(typeof n.buildNumber=="string")t=n.buildNumber;else if(typeof n.getBuildNumber=="function")try{t=n.getBuildNumber()}catch{}}}const i=react_native_1.Platform.constants||react_native_1.NativeModules.PlatformConstants;if(i&&(!e&&i.Version&&typeof i.Version=="string"&&i.Version.includes(".")&&(e=i.Version),!e&&i.reactNativeVersion)){const a=i.reactNativeVersion;a.major!==void 0&&(e=`${a.major}.${a.minor}.${a.patch}`)}const s=react_native_1.NativeModules.AppInfo;return s&&(!e&&typeof s.versionName=="string"&&(e=s.versionName),!t&&typeof s.versionCode=="string"&&(t=s.versionCode)),e||(e="1.0.0"),t||(t="1"),{version:e,build:t,formatted:`${e} (${t})`}};exports.getAppVersionAndBuild=getAppVersionAndBuild;const handleOpenExternalLink=e=>{if(!e)return;const t=(0,exports.formatDisplayUrl)(e);react_native_1.Alert.alert("Open Link",`Do you want to open this link in your web browser?
3
+ -d '${o.replace(/'/g,"'\\''")}'`}return t};exports.getCurlCommand=getCurlCommand;const getFetchCommand=e=>{const t={method:e.method};return e.requestHeaders&&Object.keys(e.requestHeaders).length>0&&(t.headers=e.requestHeaders),e.request&&e.method!=="GET"&&(t.body=JSON.stringify(e.request)),`fetch("${e.url}", ${JSON.stringify(t,null,2)})`};exports.getFetchCommand=getFetchCommand;const deduplicateLogs=e=>{const t=new Map;return e.forEach(o=>{if(!t.has(o.id))t.set(o.id,o);else{const r=t.get(o.id);(r.status==null&&o.status!=null||(o.startTime??0)>=(r.startTime??0))&&t.set(o.id,o)}}),Array.from(t.values()).sort((o,r)=>r.id-o.id)};exports.deduplicateLogs=deduplicateLogs;const escapeRegex=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");exports.escapeRegex=escapeRegex;const getNavigationInfo=(e,t=[])=>{if(!e)return{path:t.length>0?t.join(" \u2794 "):"",params:null};if(e.name&&!e.routes)return{path:t.length>0?[...t,e.name].join(" \u2794 "):e.name,params:e.params||null};if(!e.routes||!Array.isArray(e.routes)||e.routes.length===0)return{path:t.length>0?t.join(" \u2794 "):"",params:null};const o=typeof e.index=="number"&&e.index>=0&&e.index<e.routes.length?e.index:0,r=e.routes[o];if(!r)return{path:t.length>0?t.join(" \u2794 "):"",params:null};const n=r.name?[...t,r.name]:t;return r?.state?(0,exports.getNavigationInfo)(r.state,n):{path:n.length>0?n.join(" \u2794 "):r.name||"",params:r.params||null}};exports.getNavigationInfo=getNavigationInfo;const getLogPageName=(e,t)=>{const o=t||e?.routeInfo;if(o&&o.path&&o.path!=="Navigators"){const r=o.path.split(" \u2794 ").map(n=>n.trim()).filter(Boolean);return r.length>0?r[r.length-1]:o.path}if(e.caller&&e.caller!=="Unknown")try{const r=e.caller.match(/([^/\\]+)\.(tsx|jsx|ts|js)/i);if(r&&r[1]){const n=r[1];if(!["networklogger","fetch","axios","apiclient","request","http","index","nativeinspector","inappinspector","bundleanalyzer"].includes(n.toLowerCase()))return n}}catch{}if(e.url)try{const n=e.url.split("?")[0].split("#")[0].replace(/^https?:\/\//i,""),i=n.indexOf("/");if(i!==-1){const a=n.substring(i+1).split("/").filter(Boolean),l=["api","v1","v2","v3","v4","rest","graphql","json","data","service","app"],d=a.filter(c=>!l.includes(c.toLowerCase()));if(d.length>0){const c=d[0];return c.charAt(0).toUpperCase()+c.slice(1)}}const s=n.split("/")[0];if(s)return s}catch{}return"General"};exports.getLogPageName=getLogPageName;const flattenObject=(e,t="")=>{let o={};return typeof e=="object"&&e!==null?Array.isArray(e)?e.forEach((r,n)=>{Object.assign(o,(0,exports.flattenObject)(r,t?`${t}[${n}]`:`[${n}]`))}):Object.keys(e).forEach(r=>{Object.assign(o,(0,exports.flattenObject)(e[r],t?`${t}.${r}`:r))}):o[t||"root"]=e,o};exports.flattenObject=flattenObject;const getDiff=(e,t)=>{const o=(0,exports.flattenObject)(e),r=(0,exports.flattenObject)(t),n=[];return new Set([...Object.keys(o),...Object.keys(r)]).forEach(s=>{s in o?s in r?o[s]!==r[s]&&n.push({type:"changed",path:s,oldVal:o[s],newVal:r[s]}):n.push({type:"removed",path:s,oldVal:o[s]}):n.push({type:"added",path:s,newVal:r[s]})}),n.sort((s,a)=>s.path.localeCompare(a.path))};exports.getDiff=getDiff;const formatDisplayUrl=e=>e?e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`:"";exports.formatDisplayUrl=formatDisplayUrl;const getLocalizedFilePath=(e,t,o)=>e.replace("country-language",`${t?.toLowerCase()}-${o?.toLowerCase()}`);exports.getLocalizedFilePath=getLocalizedFilePath;const getLocalizedFilePathWithSlash=(e,t,o)=>e.replace("country/language",`${t?.toLowerCase()}/${o?.toLowerCase()}`);exports.getLocalizedFilePathWithSlash=getLocalizedFilePathWithSlash;const isAllValuesEmpty=e=>!e||typeof e!="object"?!0:Object.values(e).every(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0);exports.isAllValuesEmpty=isAllValuesEmpty;const formatDateTimeToAnalytics=e=>new Date(e)?.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"});exports.formatDateTimeToAnalytics=formatDateTimeToAnalytics;const getBundleIdentifier=()=>{const e=react_native_1.NativeModules.RNDeviceInfo;if(e&&typeof e.bundleId=="string")return e.bundleId;if(e&&typeof e.getBundleId=="function")try{const n=e.getBundleId();if(typeof n=="string")return n}catch{}const t=react_native_1.NativeModules.ExponentConstants;if(t&&t.manifest){const n=t.manifest;if(n.ios&&n.ios.bundleIdentifier)return n.ios.bundleIdentifier;if(n.android&&n.android.package)return n.android.package}const o=react_native_1.NativeModules.ExpoApplication;if(o&&typeof o.applicationId=="string")return o.applicationId;const r=react_native_1.NativeModules.SourceCode;if(r&&typeof r.scriptURL=="string"){const n=r.scriptURL;if(n.includes("assets/"))try{const i=n.match(/assets\/([^/?#]+)/);if(i&&i[1])return i[1]}catch{}}return"org.reactjs.native.example"};exports.getBundleIdentifier=getBundleIdentifier;const getAppName=()=>{const e=react_native_1.NativeModules.PlatformConstants;e&&e.interfaceIdiom;const t=react_native_1.NativeModules.RNDeviceInfo;if(t&&typeof t.appName=="string")return t.appName;const o=react_native_1.NativeModules.NetworkInspectorModule;if(o&&typeof o.appName=="string"&&o.appName.length>0&&o.appName!=="App")return o.appName;const r=react_native_1.NativeModules.ExpoApplication;if(r&&typeof r.applicationName=="string")return r.applicationName;const n=react_native_1.NativeModules.ExponentConstants;if(n&&n.manifest){const a=n.manifest;if(a.name)return a.name}const i=react_native_1.NativeModules.AppInfo;if(i&&typeof i.appName=="string")return i.appName;const s=(0,exports.getBundleIdentifier)();if(s&&s!=="org.reactjs.native.example"){const a=s.split("."),l=a[a.length-1];return l?l.charAt(0).toUpperCase()+l.slice(1):"App"}return"App"};exports.getAppName=getAppName;const getAppVersionAndBuild=()=>{let e="",t="";const o=react_native_1.NativeModules.NetworkInspectorModule;if(o&&(typeof o.appVersion=="string"&&o.appVersion.length>0&&(e=o.appVersion),typeof o.appBuild=="string"&&o.appBuild.length>0&&(t=o.appBuild)),!e||!t){const r=react_native_1.NativeModules.ExpoApplication;r&&(!e&&typeof r.nativeAppVersion=="string"&&(e=r.nativeAppVersion),!t&&typeof r.nativeBuildVersion=="string"&&(t=r.nativeBuildVersion))}if(!e||!t){const r=react_native_1.NativeModules.ExponentConstants;if(r){const n=r.manifest||r.expoConfig;n&&(!e&&n.version&&(e=String(n.version)),t||(n.ios?.buildNumber?t=String(n.ios.buildNumber):n.android?.versionCode&&(t=String(n.android.versionCode))))}}if(!e||!t){const r=react_native_1.NativeModules.RNDeviceInfo;if(r){if(!e){if(typeof r.appVersion=="string")e=r.appVersion;else if(typeof r.getVersion=="function")try{e=r.getVersion()}catch{}}if(!t){if(typeof r.buildNumber=="string")t=r.buildNumber;else if(typeof r.getBuildNumber=="function")try{t=r.getBuildNumber()}catch{}}}}if(!e||!t){const r=react_native_1.NativeModules.AppInfo;r&&(!e&&typeof r.versionName=="string"&&(e=r.versionName),!t&&typeof r.versionCode=="string"&&(t=r.versionCode))}if(!e){const r=react_native_1.Platform.constants||react_native_1.NativeModules.PlatformConstants;r&&r.Version&&typeof r.Version=="string"&&r.Version.includes(".")&&(e=r.Version)}return e||(e="1.0"),t||(t="1"),{version:e,build:t,formatted:`${e} (${t})`}};exports.getAppVersionAndBuild=getAppVersionAndBuild;const handleOpenExternalLink=e=>{if(!e)return;const t=(0,exports.formatDisplayUrl)(e);react_native_1.Alert.alert("Open Link",`Do you want to open this link in your web browser?
4
4
 
5
5
  ${t}`,[{text:"Cancel",style:"cancel"},{text:"Open",onPress:()=>{react_native_1.Linking.openURL(t).catch(()=>{})}}])};exports.handleOpenExternalLink=handleOpenExternalLink;const formatTimeShort=e=>{const t=new Date(e),o=String(t.getHours()).padStart(2,"0"),r=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0");return`${o}:${r}:${n}`};exports.formatTimeShort=formatTimeShort;const formatTime=e=>{const t=new Date(e),o=String(t.getHours()).padStart(2,"0"),r=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0"),i=String(t.getMilliseconds()).padStart(3,"0");return`${o}:${r}:${n}.${i}`};exports.formatTime=formatTime;const formatGap=e=>{if(e<1e3)return`+${e}ms`;const t=Math.round(e/1e3);if(t<60)return`+${t}s`;const o=Math.floor(t/60),r=t%60;return r>0?`+${o}m ${r}s`:`+${o}m`};exports.formatGap=formatGap;const getJsonContent=e=>{if(!e)return null;const t=[];for(let o=0;o<e.length;o++)(e[o]==="{"||e[o]==="[")&&t.push(o);for(const o of t){const r=e.substring(o).trim();try{const n=JSON.parse(r);if(n!==null&&typeof n=="object")return{header:e.substring(0,o).trim(),data:n}}catch{}}return null};exports.getJsonContent=getJsonContent;const getJsonPreviewText=(e,t=4)=>{try{const o=JSON.stringify(e,null,2),r=o.split(`
6
6
  `);return r.length>t?{text:r.slice(0,t).join(`
7
7
  `)+`
8
- ...`,hasMore:!0}:{text:o,hasMore:!1}}catch{return{text:String(e),hasMore:!1}}};exports.getJsonPreviewText=getJsonPreviewText;const parseStackLine=(e,t=!1)=>{let o=e.trim().replace(/^at /,"");if(o.includes("@")){const N=o.indexOf("@"),b=o.substring(0,N).trim(),v=o.substring(N+1).trim();o=b?`${b} (${v})`:v}const r=o.match(/^(.*?)\s*\((.*?)\)$/);let n="<anonymous>",i=o;r&&(n=r[1].trim()||"<anonymous>",i=r[2].trim()),(n.startsWith("?anon_")||n==="?")&&(n="anonymous"),i=i.replace(/^address at /,"");const s=i.match(/^(.*?):(\d+):(\d+)$/);let a=i,u,d;s&&(a=s[1],u=s[2],d=s[3]);let c=a.replace(/[?&].*$/,"").replace(/[)]+$/,"").replace(/\/\/+$/,"");c=c.replace(/^(?:https?:\/\/[^\/]+\/|file:\/\/\/|webpack:\/\/\/?)/,"");let l=c.split("/").filter(Boolean).pop()||c;l=l.replace(/[?&].*$/,"").replace(/[)]+$/,""),(l.startsWith("&")||l.startsWith("?")||l.startsWith("platform=")||l.includes("platform=")||l.startsWith("dev=")||l.includes("dev="))&&(l="Unknown",c="Unknown");const m=l.match(/\.([a-z0-9]+)$/i),p=m?m[1].toLowerCase():"",g=p==="tsx"||p==="jsx"||p==="ts"||p==="js"?p:"other",h=i==="native"||c==="native",x=c.includes("InternalBytecode")||c.includes("metro-runtime")||c.includes("regenerator-runtime")||n==="tryCallOne"||n==="asyncGeneratorStep"||n==="_next"||n==="next"&&h,y=c.includes("node_modules")||c.includes("react-native/Libraries")||c.includes("react-native-inapp-inspector")&&!c.includes("/example/"),C=!h&&!x&&!y&&(g==="tsx"||g==="jsx"||g==="ts"||g==="js"||!l.includes(".bundle")&&l!=="Unknown"),S=C?"app":y?"dependency":h?"native":"runtime",A=x||h||n==="asyncGeneratorStep"||n==="_next";let f=c;f.includes("/example/")?f=f.substring(f.indexOf("/example/")+9):f.includes("/src/")?f=f.substring(f.indexOf("/src/")+1):f.includes("/node_modules/")&&(f=f.substring(f.indexOf("/node_modules/")+14));const $=u?`${l}:${u}${d?`:${d}`:""}`:l;return{raw:e,functionName:n,fileName:l,fullPath:f,rawFilePath:a,fileExt:g,frameType:S,isUserCode:C,isRuntimeNoise:A,lineNumber:u,columnNumber:d,isOrigin:t,copyableLocation:$}};exports.parseStackLine=parseStackLine;const getCleanCallerDisplay=e=>{if(!e||e==="Unknown"||e.trim()==="")return null;const t=e.trim();if(t.startsWith("&platform")||t.startsWith("?platform")||t.startsWith("&")||t.includes("&platform=")||t.includes("?platform=")){const i=t.match(/^(.*?)\s*[\(@]/);if(i&&i[1]&&!i[1].includes("&")&&!i[1].includes("platform")){const s=i[1].trim();if(s&&s!=="<anonymous>"&&s!=="anonymous"&&!s.startsWith("?anon_"))return{fileName:s,functionName:s,display:s}}return null}const o=(0,exports.parseStackLine)(e,!0);if(!o)return null;if(o.fileName.includes(".bundle")||o.fileName.includes("platform=")||o.fileName.startsWith("&")||o.fileName.startsWith("?")||o.fileName==="index.bundle"||o.fileName==="bundle"||o.fileName==="Unknown")return o.functionName&&o.functionName!=="<anonymous>"&&o.functionName!=="anonymous"&&!o.functionName.startsWith("?")&&!o.functionName.startsWith("_callee")&&!o.functionName.includes("regeneratorRuntime")?{fileName:o.functionName,lineNumber:o.lineNumber,functionName:o.functionName,display:o.functionName}:null;const n=o.lineNumber?`${o.fileName}:${o.lineNumber}`:o.fileName;return{fileName:o.fileName,lineNumber:o.lineNumber,functionName:o.functionName,display:n}};exports.getCleanCallerDisplay=getCleanCallerDisplay;const openInVSCode=(e,t,o)=>{const r=t?Number(t):1,n=o?Number(o):1,i=t?`:${t}`:"",s=o?`:${o}`:"",a=e.replace(/^file:\/\//,"");let u=null;try{const p=react_native_1.NativeModules?.SourceCode?.scriptURL||react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.DevSettings?.serverHost;if(typeof p=="string"&&p.length>0){const g=p.match(/^(https?:\/\/[^/]+)/);g?u=g[1]:!p.startsWith("http")&&p.includes(":")&&(u=`http://${p}`)}}catch{}Array.from(new Set([...u?[u]:[],"http://localhost:8081","http://127.0.0.1:8081","http://10.0.2.2:8081"])).forEach(p=>{try{fetch(`${p}/open-stack-frame`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:a,lineNumber:r,column:n})}).catch(()=>{})}catch{}});const c=`vscode://file/${a.replace(/^\/+/,"")}${i}${s}`,l=`cursor://file/${a.replace(/^\/+/,"")}${i}${s}`,m=`vscode-insiders://file/${a.replace(/^\/+/,"")}${i}${s}`;react_native_1.Linking.openURL(c).catch(()=>{react_native_1.Linking.openURL(l).catch(()=>{react_native_1.Linking.openURL(m).catch(()=>{(0,exports.copyToClipboard)(`${a}${i}${s}`,"Location")})})})};exports.openInVSCode=openInVSCode,exports.ANALYTICS_EVENT_PALETTE=[AppColors_1.AppColors.googleBlue,AppColors_1.AppColors.googleGreen,AppColors_1.AppColors.googlePurple,AppColors_1.AppColors.googleTeal,AppColors_1.AppColors.googleRed,AppColors_1.AppColors.googleOrange,AppColors_1.AppColors.blue700,AppColors_1.AppColors.materialGreen];const getEventColor=e=>{const t=typeof e=="string"?e:String(e||"");let o=0;for(let r=0;r<t.length;r++)o=o*31+t.charCodeAt(r)|0;return exports.ANALYTICS_EVENT_PALETTE[Math.abs(o)%exports.ANALYTICS_EVENT_PALETTE.length]};exports.getEventColor=getEventColor;var gaAnalyticsRegistry_1=require("./gaAnalyticsRegistry");Object.defineProperty(exports,"getEventCategory",{enumerable:!0,get:function(){return gaAnalyticsRegistry_1.getEventCategory}}),Object.defineProperty(exports,"registerGAPlugin",{enumerable:!0,get:function(){return gaAnalyticsRegistry_1.registerGAPlugin}});const getCategoryColors=e=>{switch(e){case"page_view":case"Page View":return{bg:AppColors_1.AppColors.blueBg,border:AppColors_1.AppColors.blueBorder,text:AppColors_1.AppColors.blue800};case"ecommerce":case"Ecommerce":return{bg:AppColors_1.AppColors.greenBg,border:AppColors_1.AppColors.greenBorder,text:AppColors_1.AppColors.materialGreen};case"system":case"System":return{bg:AppColors_1.AppColors.greyBg,border:AppColors_1.AppColors.greyBorder,text:AppColors_1.AppColors.grey600};default:return{bg:AppColors_1.AppColors.purpleBg,border:AppColors_1.AppColors.purpleBorder,text:AppColors_1.AppColors.purpleText}}};exports.getCategoryColors=getCategoryColors;const getRuntimeDiagnostics=()=>{const e=typeof global.HermesInternal<"u",t=typeof global._v8runtime<"u",o=e?"hermes":t?"v8":"jsc",n=typeof global.nativeFabricUIManager<"u"||!!global.__turboModuleProxy?"fabric":"paper";let i=32.4,s=64;try{const a=global.HermesInternal?.getInstrumentedStats?.();a?.js_heap_size?(i=Number((a.js_heap_size/(1024*1024)).toFixed(1)),s=Number(((a.js_allocated_bytes||a.js_heap_size*1.6)/(1024*1024)).toFixed(1))):global.performance?.memory?.usedJSHeapSize&&(i=Number((global.performance.memory.usedJSHeapSize/(1024*1024)).toFixed(1)),s=Number((global.performance.memory.totalJSHeapSize/(1024*1024)).toFixed(1)))}catch{}return{engineType:o,archType:n,usedHeapMb:i,totalAllocMb:s}};exports.getRuntimeDiagnostics=getRuntimeDiagnostics;
8
+ ...`,hasMore:!0}:{text:o,hasMore:!1}}catch{return{text:String(e),hasMore:!1}}};exports.getJsonPreviewText=getJsonPreviewText;const parseStackLine=(e,t=!1)=>{let o=e.trim().replace(/^at /,"");if(o.includes("@")){const N=o.indexOf("@"),b=o.substring(0,N).trim(),S=o.substring(N+1).trim();o=b?`${b} (${S})`:S}const r=o.match(/^(.*?)\s*\((.*?)\)$/);let n="<anonymous>",i=o;r&&(n=r[1].trim()||"<anonymous>",i=r[2].trim()),(n.startsWith("?anon_")||n==="?")&&(n="anonymous"),i=i.replace(/^address at /,"");const s=i.match(/^(.*?):(\d+):(\d+)$/);let a=i,l,d;s&&(a=s[1],l=s[2],d=s[3]);let c=a.replace(/[?&].*$/,"").replace(/[)]+$/,"").replace(/\/\/+$/,"");c=c.replace(/^(?:https?:\/\/[^\/]+\/|file:\/\/\/|webpack:\/\/\/?)/,"");let p=c.split("/").filter(Boolean).pop()||c;p=p.replace(/[?&].*$/,"").replace(/[)]+$/,""),(p.startsWith("&")||p.startsWith("?")||p.startsWith("platform=")||p.includes("platform=")||p.startsWith("dev=")||p.includes("dev="))&&(p="Unknown",c="Unknown");const m=p.match(/\.([a-z0-9]+)$/i),u=m?m[1].toLowerCase():"",g=u==="tsx"||u==="jsx"||u==="ts"||u==="js"?u:"other",h=i==="native"||c==="native",x=c.includes("InternalBytecode")||c.includes("metro-runtime")||c.includes("regenerator-runtime")||n==="tryCallOne"||n==="asyncGeneratorStep"||n==="_next"||n==="next"&&h,y=c.includes("node_modules")||c.includes("react-native/Libraries")||c.includes("react-native-inapp-inspector")&&!c.includes("/example/"),C=!h&&!x&&!y&&(g==="tsx"||g==="jsx"||g==="ts"||g==="js"||!p.includes(".bundle")&&p!=="Unknown"),v=C?"app":y?"dependency":h?"native":"runtime",A=x||h||n==="asyncGeneratorStep"||n==="_next";let f=c;f.includes("/example/")?f=f.substring(f.indexOf("/example/")+9):f.includes("/src/")?f=f.substring(f.indexOf("/src/")+1):f.includes("/node_modules/")&&(f=f.substring(f.indexOf("/node_modules/")+14));const $=l?`${p}:${l}${d?`:${d}`:""}`:p;return{raw:e,functionName:n,fileName:p,fullPath:f,rawFilePath:a,fileExt:g,frameType:v,isUserCode:C,isRuntimeNoise:A,lineNumber:l,columnNumber:d,isOrigin:t,copyableLocation:$}};exports.parseStackLine=parseStackLine;const getCleanCallerDisplay=e=>{if(!e||e==="Unknown"||e.trim()==="")return null;const t=e.trim();if(t.startsWith("&platform")||t.startsWith("?platform")||t.startsWith("&")||t.includes("&platform=")||t.includes("?platform=")){const i=t.match(/^(.*?)\s*[\(@]/);if(i&&i[1]&&!i[1].includes("&")&&!i[1].includes("platform")){const s=i[1].trim();if(s&&s!=="<anonymous>"&&s!=="anonymous"&&!s.startsWith("?anon_"))return{fileName:s,functionName:s,display:s}}return null}const o=(0,exports.parseStackLine)(e,!0);if(!o)return null;if(o.fileName.includes(".bundle")||o.fileName.includes("platform=")||o.fileName.startsWith("&")||o.fileName.startsWith("?")||o.fileName==="index.bundle"||o.fileName==="bundle"||o.fileName==="Unknown")return o.functionName&&o.functionName!=="<anonymous>"&&o.functionName!=="anonymous"&&!o.functionName.startsWith("?")&&!o.functionName.startsWith("_callee")&&!o.functionName.includes("regeneratorRuntime")?{fileName:o.functionName,lineNumber:o.lineNumber,functionName:o.functionName,display:o.functionName}:null;const n=o.lineNumber?`${o.fileName}:${o.lineNumber}`:o.fileName;return{fileName:o.fileName,lineNumber:o.lineNumber,functionName:o.functionName,display:n}};exports.getCleanCallerDisplay=getCleanCallerDisplay;const openInVSCode=(e,t,o)=>{const r=t?Number(t):1,n=o?Number(o):1,i=t?`:${t}`:"",s=o?`:${o}`:"",a=e.replace(/^file:\/\//,"");let l=null;try{const u=react_native_1.NativeModules?.SourceCode?.scriptURL||react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.DevSettings?.serverHost;if(typeof u=="string"&&u.length>0){const g=u.match(/^(https?:\/\/[^/]+)/);g?l=g[1]:!u.startsWith("http")&&u.includes(":")&&(l=`http://${u}`)}}catch{}Array.from(new Set([...l?[l]:[],"http://localhost:8081","http://127.0.0.1:8081","http://10.0.2.2:8081"])).forEach(u=>{try{fetch(`${u}/open-stack-frame`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:a,lineNumber:r,column:n})}).catch(()=>{})}catch{}});const c=`vscode://file/${a.replace(/^\/+/,"")}${i}${s}`,p=`cursor://file/${a.replace(/^\/+/,"")}${i}${s}`,m=`vscode-insiders://file/${a.replace(/^\/+/,"")}${i}${s}`;react_native_1.Linking.openURL(c).catch(()=>{react_native_1.Linking.openURL(p).catch(()=>{react_native_1.Linking.openURL(m).catch(()=>{(0,exports.copyToClipboard)(`${a}${i}${s}`,"Location")})})})};exports.openInVSCode=openInVSCode,exports.ANALYTICS_EVENT_PALETTE=[AppColors_1.AppColors.googleBlue,AppColors_1.AppColors.googleGreen,AppColors_1.AppColors.googlePurple,AppColors_1.AppColors.googleTeal,AppColors_1.AppColors.googleRed,AppColors_1.AppColors.googleOrange,AppColors_1.AppColors.blue700,AppColors_1.AppColors.materialGreen];const getEventColor=e=>{const t=typeof e=="string"?e:String(e||"");let o=0;for(let r=0;r<t.length;r++)o=o*31+t.charCodeAt(r)|0;return exports.ANALYTICS_EVENT_PALETTE[Math.abs(o)%exports.ANALYTICS_EVENT_PALETTE.length]};exports.getEventColor=getEventColor;var gaAnalyticsRegistry_1=require("./gaAnalyticsRegistry");Object.defineProperty(exports,"getEventCategory",{enumerable:!0,get:function(){return gaAnalyticsRegistry_1.getEventCategory}}),Object.defineProperty(exports,"registerGAPlugin",{enumerable:!0,get:function(){return gaAnalyticsRegistry_1.registerGAPlugin}});const getCategoryColors=e=>{switch(e){case"page_view":case"Page View":return{bg:AppColors_1.AppColors.blueBg,border:AppColors_1.AppColors.blueBorder,text:AppColors_1.AppColors.blue800};case"ecommerce":case"Ecommerce":return{bg:AppColors_1.AppColors.greenBg,border:AppColors_1.AppColors.greenBorder,text:AppColors_1.AppColors.materialGreen};case"system":case"System":return{bg:AppColors_1.AppColors.greyBg,border:AppColors_1.AppColors.greyBorder,text:AppColors_1.AppColors.grey600};default:return{bg:AppColors_1.AppColors.purpleBg,border:AppColors_1.AppColors.purpleBorder,text:AppColors_1.AppColors.purpleText}}};exports.getCategoryColors=getCategoryColors;const getRuntimeDiagnostics=()=>{const e=typeof global.HermesInternal<"u",t=typeof global._v8runtime<"u",o=e?"hermes":t?"v8":"jsc",n=typeof global.nativeFabricUIManager<"u"||!!global.__turboModuleProxy?"fabric":"paper";let i=32.4,s=64;try{const a=global.HermesInternal?.getInstrumentedStats?.();a?.js_heap_size?(i=Number((a.js_heap_size/(1024*1024)).toFixed(1)),s=Number(((a.js_allocated_bytes||a.js_heap_size*1.6)/(1024*1024)).toFixed(1))):global.performance?.memory?.usedJSHeapSize&&(i=Number((global.performance.memory.usedJSHeapSize/(1024*1024)).toFixed(1)),s=Number((global.performance.memory.totalJSHeapSize/(1024*1024)).toFixed(1)))}catch{}return{engineType:o,archType:n,usedHeapMb:i,totalAllocMb:s}};exports.getRuntimeDiagnostics=getRuntimeDiagnostics;
@@ -6,6 +6,7 @@ export interface MemoryPruneSummary {
6
6
  prunedAnalytics: number;
7
7
  prunedCrashes: number;
8
8
  prunedPush: number;
9
+ prunedSocket: number;
9
10
  totalPruned: number;
10
11
  triggeredBy: 'memory-warning' | 'manual' | 'ram-threshold';
11
12
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isMemoryHandlerActive=exports.getLastPruneTimestamp=exports.subscribeMemoryWarning=exports.setupMemoryWarningHandler=exports.pruneAllLogs=void 0;const react_native_1=require("react-native"),networkLogger_1=require("../customHooks/networkLogger"),consoleLogger_1=require("../customHooks/consoleLogger"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),pushNotificationLogger_1=require("../customHooks/pushNotificationLogger"),toast_1=require("./toast"),memoryListeners=new Set;let appStateSubscription=null,isMemoryWarningHandlerActive=!1,lastPruneTimestamp=0;const pruneAllLogs=(e="manual",t=.5)=>{const o=(0,networkLogger_1.pruneNetworkLogs)(void 0),n=(0,consoleLogger_1.pruneConsoleLogs)(void 0),s=(0,reduxLogger_1.pruneReduxHistory)(void 0),a=(0,analyticsLogger_1.pruneAnalyticsLogs)(void 0),u=(0,crashHandler_1.pruneCrashRecords)(void 0),c=0;(0,pushNotificationLogger_1.prunePushRecords)(20);const i=o+n+s+a+u+c;if(lastPruneTimestamp=Date.now(),typeof globalThis.gc=="function")try{globalThis.gc()}catch{}const r={timestamp:lastPruneTimestamp,prunedNetwork:o,prunedConsole:n,prunedRedux:s,prunedAnalytics:a,prunedCrashes:u,prunedPush:c,totalPruned:i,triggeredBy:e};try{(0,crashHandler_1.addCrashBreadcrumb)("system",`[MemoryManager] Low memory auto-prune executed (${e}). Freed ${i} log records.`,r)}catch{}return memoryListeners.forEach(p=>{try{p(r)}catch{}}),r};exports.pruneAllLogs=pruneAllLogs;const setupMemoryWarningHandler=()=>{if(isMemoryWarningHandlerActive)return()=>{};isMemoryWarningHandlerActive=!0;try{appStateSubscription=react_native_1.AppState.addEventListener("memoryWarning",e=>{const t=(0,exports.pruneAllLogs)("memory-warning",.5);try{(0,toast_1.showToast)(`Memory Warning: Auto-pruned ${t.totalPruned} inspector logs`)}catch{}})}catch{}return()=>{if(appStateSubscription){try{appStateSubscription.remove()}catch{}appStateSubscription=null}isMemoryWarningHandlerActive=!1}};exports.setupMemoryWarningHandler=setupMemoryWarningHandler;const subscribeMemoryWarning=e=>(memoryListeners.add(e),()=>{memoryListeners.delete(e)});exports.subscribeMemoryWarning=subscribeMemoryWarning;const getLastPruneTimestamp=()=>lastPruneTimestamp;exports.getLastPruneTimestamp=getLastPruneTimestamp;const isMemoryHandlerActive=()=>isMemoryWarningHandlerActive;exports.isMemoryHandlerActive=isMemoryHandlerActive;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isMemoryHandlerActive=exports.getLastPruneTimestamp=exports.subscribeMemoryWarning=exports.setupMemoryWarningHandler=exports.pruneAllLogs=void 0;const react_native_1=require("react-native"),networkLogger_1=require("../customHooks/networkLogger"),consoleLogger_1=require("../customHooks/consoleLogger"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),pushNotificationLogger_1=require("../customHooks/pushNotificationLogger"),socketLogger_1=require("../customHooks/socketLogger"),toast_1=require("./toast"),memoryListeners=new Set;let appStateSubscription=null,isMemoryWarningHandlerActive=!1,lastPruneTimestamp=0;const pruneAllLogs=(e="manual",o=.5)=>{const t=(0,networkLogger_1.pruneNetworkLogs)(void 0),s=(0,consoleLogger_1.pruneConsoleLogs)(void 0),n=(0,reduxLogger_1.pruneReduxHistory)(void 0),c=(0,analyticsLogger_1.pruneAnalyticsLogs)(void 0),u=(0,crashHandler_1.pruneCrashRecords)(void 0),a=0;(0,pushNotificationLogger_1.prunePushRecords)(20);const i=0;(0,socketLogger_1.pruneSocketRecords)(20);const g=t+s+n+c+u+a+i;if(lastPruneTimestamp=Date.now(),typeof globalThis.gc=="function")try{globalThis.gc()}catch{}const r={timestamp:lastPruneTimestamp,prunedNetwork:t,prunedConsole:s,prunedRedux:n,prunedAnalytics:c,prunedCrashes:u,prunedPush:a,prunedSocket:i,totalPruned:g,triggeredBy:e};try{(0,crashHandler_1.addCrashBreadcrumb)("system",`[MemoryManager] Low memory auto-prune executed (${e}). Freed ${g} log records.`,r)}catch{}return memoryListeners.forEach(p=>{try{p(r)}catch{}}),r};exports.pruneAllLogs=pruneAllLogs;const setupMemoryWarningHandler=()=>{if(isMemoryWarningHandlerActive)return()=>{};isMemoryWarningHandlerActive=!0;try{appStateSubscription=react_native_1.AppState.addEventListener("memoryWarning",e=>{const o=(0,exports.pruneAllLogs)("memory-warning",.5);try{(0,toast_1.showToast)(`Memory Warning: Auto-pruned ${o.totalPruned} inspector logs`)}catch{}})}catch{}return()=>{if(appStateSubscription){try{appStateSubscription.remove()}catch{}appStateSubscription=null}isMemoryWarningHandlerActive=!1}};exports.setupMemoryWarningHandler=setupMemoryWarningHandler;const subscribeMemoryWarning=e=>(memoryListeners.add(e),()=>{memoryListeners.delete(e)});exports.subscribeMemoryWarning=subscribeMemoryWarning;const getLastPruneTimestamp=()=>lastPruneTimestamp;exports.getLastPruneTimestamp=getLastPruneTimestamp;const isMemoryHandlerActive=()=>isMemoryWarningHandlerActive;exports.isMemoryHandlerActive=isMemoryHandlerActive;
@@ -4,4 +4,4 @@ export interface SearchQueryOptions {
4
4
  isRegex?: boolean;
5
5
  isCaseSensitive?: boolean;
6
6
  }
7
- export declare function matchNetworkLogQuery(log: NetworkLog, searchQuery: string, routePath?: string, _options?: SearchQueryOptions): boolean;
7
+ export declare function matchNetworkLogQuery(log: NetworkLog, searchQuery: string, routePath?: string, options?: SearchQueryOptions): boolean;
@@ -1 +1,5 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchNetworkLogQuery=matchNetworkLogQuery;const telemetry_1=require("./telemetry");function matchNetworkLogQuery(e,s,a,m){if(!s||s.trim().length===0)return!0;(0,telemetry_1.markSearchFilterUsed)();const n=s.trim().toLowerCase().split(/\s+/).filter(Boolean);if(n.length===0)return!0;const u=(e.method||"").toLowerCase(),o=(e.url||"").toLowerCase(),i=e.status!=null?String(e.status).toLowerCase():"pending",r=typeof e.status=="number"?e.status:e.status!=null?parseInt(String(e.status),10):null,c=(e.client||"").toLowerCase(),w=(e.caller||"").toLowerCase(),f=(a||e?.routeInfo?.path||"").toLowerCase(),p=typeof e.request=="string"?e.request.toLowerCase():e.request!=null?JSON.stringify(e.request).toLowerCase():"",L=typeof e.response=="string"?e.response.toLowerCase():e.response!=null?JSON.stringify(e.response).toLowerCase():"",d=e.requestHeaders?JSON.stringify(e.requestHeaders).toLowerCase():"",l=e.responseHeaders?JSON.stringify(e.responseHeaders).toLowerCase():"",C=[u,o,i,f,w,c,p,L,d,l].join(" ");return n.every(t=>C.includes(t)?!0:t==="error"||t==="failed"||t==="err"||t==="fail"?e.status===0||r!==null&&r>=400:t==="success"||t==="ok"||t==="2xx"?r!==null&&r>=200&&r<300:!1)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchNetworkLogQuery=matchNetworkLogQuery;const telemetry_1=require("./telemetry"),PROXY_INFRA_HEADERS=new Set(["via","nel","report-to","reporting-endpoints","cf-ray","cf-cache-status","alt-svc","server","etag","date","x-powered-by","x-request-id","x-content-type-options","accept-ranges","transfer-encoding","connection","keep-alive"]);function tokenizeQuery(s){const o=[],w=/[^\s"']+|"([^"]*)"|'([^']*)'/g;let i;for(;(i=w.exec(s))!==null;)i[1]!=null?o.push(i[1]):i[2]!=null?o.push(i[2]):i[0]&&o.push(i[0]);return o}function matchNetworkLogQuery(s,o,w,i){if(!o||o.trim().length===0)return!0;(0,telemetry_1.markSearchFilterUsed)();const R=!!i?.isCaseSensitive,j=!!i?.isRegex,x=i?.scope||"all",b=s.method||"",y=s.url||"",d=s.status!=null?String(s.status):"pending",u=typeof s.status=="number"?s.status:s.status!=null?parseInt(String(s.status),10):null,k=s.client||"",B=s.caller||"",v=w||s?.routeInfo?.path||"",H=n=>{if(n==null)return"";if(typeof n=="string")return n;try{return JSON.stringify(n)}catch{return""}},m=H(s.request),C=H(s.response),p=(n,l=!1)=>{if(!n||typeof n!="object")return"";const r=Object.entries(n);return l?r.map(([t,f])=>`${t}: ${f}`).join(`
2
+ `):r.filter(([t])=>!PROXY_INFRA_HEADERS.has(t.toLowerCase())).map(([t,f])=>`${t}: ${f}`).join(`
3
+ `)},$=p(s.requestHeaders,x==="headers"),q=p(s.responseHeaders,x==="headers"),h=(n=>{switch(n){case"url":return y;case"reqBody":return m;case"resBody":return C;case"headers":return`${$}
4
+ ${q}`;default:return[y,b,d,v,k,B,m,C,$,q].join(" ")}})(x),c=(n,l)=>{if(j)try{return new RegExp(l,R?"":"i").test(n)}catch{}return R?n.includes(l):n.toLowerCase().includes(l.toLowerCase())},L=tokenizeQuery(o);return L.length===0?!0:L.every(n=>{let l=!1,r=n;if(r.length>1&&(r.startsWith("-")||r.startsWith("!"))&&(l=!0,r=r.slice(1)),!r)return!0;let t=!1;const f=r.indexOf(":");if(f>0){const e=r.slice(0,f).toLowerCase(),a=r.slice(f+1);if(e==="url"||e==="u"||e==="path")t=c(y,a);else if(e==="method"||e==="m")t=c(b,a);else if(e==="status"||e==="s")if(a==="error"||a==="failed"||a==="err")t=s.status===0||u!==null&&u>=400;else if(a==="success"||a==="ok")t=u!==null&&u>=200&&u<300;else if(a.endsWith("xx")){const S=a[0];t=d.startsWith(S)}else t=d.includes(a);else if(e==="header"||e==="h"){const S=`${p(s.requestHeaders,!0)}
5
+ ${p(s.responseHeaders,!0)}`;t=c(S,a)}else e==="body"||e==="b"?t=c(m,a)||c(C,a):e==="client"||e==="c"?t=c(k,a):e==="page"||e==="p"?t=c(v,a):t=c(h,r)}else{const e=r.toLowerCase();e==="error"||e==="failed"||e==="err"||e==="fail"?t=s.status===0||u!==null&&u>=400||c(h,r):e==="success"||e==="ok"||e==="2xx"?t=u!==null&&u>=200&&u<300||c(h,r):/^[1-5]xx$/.test(e)?t=d.startsWith(e[0]):t=c(h,r)}return l?!t:t})}