react-native-inapp-inspector 1.1.26 → 1.1.28

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 (67) hide show
  1. package/android/build.gradle +1 -0
  2. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.java +34 -0
  3. package/dist/commonjs/components/ErrorBoundary.d.ts +1 -1
  4. package/dist/commonjs/components/ErrorBoundary.js +530 -100
  5. package/dist/commonjs/components/Inspector/AnalyticsTab.js +176 -126
  6. package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -0
  7. package/dist/commonjs/components/Inspector/BundleTab.js +145 -21
  8. package/dist/commonjs/components/Inspector/CrashTab.js +0 -8
  9. package/dist/commonjs/components/Inspector/NetworkDetail.js +41 -0
  10. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +5 -0
  11. package/dist/commonjs/components/Inspector/PerformanceTab.js +588 -155
  12. package/dist/commonjs/components/Inspector/SettingsPanel.js +57 -22
  13. package/dist/commonjs/components/Inspector/TabBar.js +13 -1
  14. package/dist/commonjs/components/LogCard.js +75 -34
  15. package/dist/commonjs/components/NetworkIcons.d.ts +112 -102
  16. package/dist/commonjs/constants/version.d.ts +1 -1
  17. package/dist/commonjs/constants/version.js +1 -1
  18. package/dist/commonjs/customHooks/analyticsLogger.d.ts +1 -11
  19. package/dist/commonjs/customHooks/analyticsLogger.js +8 -1
  20. package/dist/commonjs/customHooks/bundleAnalyzer.js +121 -124
  21. package/dist/commonjs/customHooks/networkLogger.d.ts +1 -0
  22. package/dist/commonjs/customHooks/networkLogger.js +16 -0
  23. package/dist/commonjs/customHooks/performanceTracker.d.ts +74 -0
  24. package/dist/commonjs/customHooks/performanceTracker.js +546 -392
  25. package/dist/commonjs/customHooks/reduxLogger.d.ts +1 -0
  26. package/dist/commonjs/customHooks/reduxLogger.js +3 -1
  27. package/dist/commonjs/helpers/index.js +27 -3
  28. package/dist/commonjs/i18n/locales/en.json +225 -4
  29. package/dist/commonjs/index.d.ts +1 -1
  30. package/dist/commonjs/index.js +36 -2
  31. package/dist/commonjs/styles/index.d.ts +3 -1
  32. package/dist/commonjs/styles/index.js +8 -6
  33. package/dist/commonjs/types/interfaces.d.ts +3 -0
  34. package/dist/esm/components/ErrorBoundary.d.ts +1 -1
  35. package/dist/esm/components/ErrorBoundary.js +498 -101
  36. package/dist/esm/components/Inspector/AnalyticsTab.js +177 -127
  37. package/dist/esm/components/Inspector/BundleTab.d.ts +1 -0
  38. package/dist/esm/components/Inspector/BundleTab.js +145 -23
  39. package/dist/esm/components/Inspector/CrashTab.js +0 -8
  40. package/dist/esm/components/Inspector/NetworkDetail.js +41 -0
  41. package/dist/esm/components/Inspector/PerformanceTab.d.ts +5 -0
  42. package/dist/esm/components/Inspector/PerformanceTab.js +591 -158
  43. package/dist/esm/components/Inspector/SettingsPanel.js +57 -22
  44. package/dist/esm/components/Inspector/TabBar.js +13 -1
  45. package/dist/esm/components/LogCard.js +75 -34
  46. package/dist/esm/components/NetworkIcons.d.ts +112 -102
  47. package/dist/esm/constants/version.d.ts +1 -1
  48. package/dist/esm/constants/version.js +1 -1
  49. package/dist/esm/customHooks/analyticsLogger.d.ts +1 -11
  50. package/dist/esm/customHooks/analyticsLogger.js +6 -0
  51. package/dist/esm/customHooks/bundleAnalyzer.js +121 -124
  52. package/dist/esm/customHooks/networkLogger.d.ts +1 -0
  53. package/dist/esm/customHooks/networkLogger.js +16 -0
  54. package/dist/esm/customHooks/performanceTracker.d.ts +74 -0
  55. package/dist/esm/customHooks/performanceTracker.js +531 -391
  56. package/dist/esm/customHooks/reduxLogger.d.ts +1 -0
  57. package/dist/esm/customHooks/reduxLogger.js +1 -0
  58. package/dist/esm/helpers/index.js +27 -3
  59. package/dist/esm/i18n/locales/en.json +225 -4
  60. package/dist/esm/index.d.ts +1 -1
  61. package/dist/esm/index.js +24 -3
  62. package/dist/esm/styles/index.d.ts +3 -1
  63. package/dist/esm/styles/index.js +8 -6
  64. package/dist/esm/types/interfaces.d.ts +3 -0
  65. package/ios/NetworkInspectorModule.h +2 -0
  66. package/ios/NetworkInspectorModule.m +10 -0
  67. package/package.json +1 -1
@@ -13,8 +13,12 @@ import { clearNetworkLogs } from '../../customHooks/networkLogger';
13
13
  import { clearConsoleLogs } from '../../customHooks/consoleLogger';
14
14
  import { clearAnalyticsEvents } from '../../customHooks/analyticsLogger';
15
15
  import { clearCrashRecords, } from '../../customHooks/crashHandler';
16
+ import { isReduxConnected } from '../../customHooks/reduxLogger';
17
+ import { isAnalyticsConnected } from '../../customHooks/analyticsLogger';
18
+ import { useTranslation } from '../../i18n';
16
19
  import { SignalIcon, TerminalIcon, AnalyticsIcon, SettingsIcon, SunIcon, MoonIcon, ScreenIcon, MotionIcon, LayersIcon, EyeIcon, CheckIcon, TrashIcon, WhiteBackNavigation, PackageIcon, ReduxIcon, PerformanceIcon, CrashIcon, ShieldAlertIcon, } from '../NetworkIcons';
17
20
  const SettingsPanel = () => {
21
+ const { t } = useTranslation();
18
22
  const { settingsPage, setSettingsPage, settingsActiveSubTab, setSettingsActiveSubTab, tabVisibility, toggleTabVisibility, defaultTab, setDefaultTab, isDark, setIsDark, modalHeightPercent, setModalHeightPercent, modalAnimationType, setModalAnimationType, showDuplicateLogs, setShowDuplicateLogs, showConsoleLevels, setShowConsoleLevels, resetToDefaults, storage, logs, consoleLogs, analyticsEvents, reduxState, maxNetworkLogs, setMaxNetworkLogs, maxConsoleLogs, setMaxConsoleLogs, reduxAutoRefresh, setReduxAutoRefreshState, reduxExpandDepth, setReduxExpandDepth, switchActiveTab, setSelected, setSelectedEvent, setReduxState, crashRecords, maxCrashLogs, setMaxCrashLogs, } = useInspector();
19
23
  const isPersistent = isPersistentStorageAvailable();
20
24
  const headerTopPadding = Platform.OS === 'ios' && modalHeightPercent >= 95 ? 44 : 0;
@@ -185,9 +189,14 @@ const SettingsPanel = () => {
185
189
  </View>
186
190
 
187
191
  {settingsTabs.map((tab, idx) => {
188
- const isVisible = tab.key === 'apis' || tabVisibility?.[tab.key];
192
+ const isReduxAvail = isReduxConnected();
193
+ const isAnalyticsAvail = isAnalyticsConnected();
194
+ const isUnavailable = (tab.key === 'redux' && !isReduxAvail) ||
195
+ (tab.key === 'analytics' && !isAnalyticsAvail);
196
+ const isLocked = tab.key === 'apis' || isUnavailable;
197
+ const isVisible = tab.key === 'apis' ||
198
+ (Boolean(tabVisibility?.[tab.key]) && !isUnavailable);
189
199
  const isLast = idx === settingsTabs.length - 1;
190
- const isLocked = tab.key === 'apis';
191
200
  return (<View key={tab.key} style={{
192
201
  flexDirection: 'row',
193
202
  alignItems: 'center',
@@ -203,6 +212,7 @@ const SettingsPanel = () => {
203
212
  flexDirection: 'row',
204
213
  alignItems: 'center',
205
214
  gap: 8,
215
+ flexWrap: 'wrap',
206
216
  }}>
207
217
  {/* Small icon tile */}
208
218
  <View style={{
@@ -251,8 +261,28 @@ const SettingsPanel = () => {
251
261
  }}>
252
262
  {tab.label}
253
263
  </Text>
264
+ {/* Unavailable badge */}
265
+ {isUnavailable && (<View style={{
266
+ backgroundColor: `${AppColors.amber500}18`,
267
+ borderRadius: 4,
268
+ paddingHorizontal: 5,
269
+ paddingVertical: 1.5,
270
+ borderWidth: 1,
271
+ borderColor: `${AppColors.amber500}35`,
272
+ }}>
273
+ <Text style={{
274
+ fontFamily: AppFonts.interBold,
275
+ fontSize: 8,
276
+ color: AppColors.amber700,
277
+ letterSpacing: 0.3,
278
+ }}>
279
+ {tab.key === 'redux'
280
+ ? t('settings.notConnectedBadge')
281
+ : t('settings.notDetectedBadge')}
282
+ </Text>
283
+ </View>)}
254
284
  {/* #6 — badge marks the configured default tab */}
255
- {tab.key === defaultTab && (<View style={{
285
+ {tab.key === defaultTab && !isUnavailable && (<View style={{
256
286
  flexDirection: 'row',
257
287
  alignItems: 'center',
258
288
  backgroundColor: `${AppColors.purple}14`,
@@ -281,21 +311,21 @@ const SettingsPanel = () => {
281
311
  </View>)}
282
312
 
283
313
  {/* Settings gear icon next to label */}
284
- <TouchableScale onPress={() => {
285
- animateNextLayout();
286
- setSettingsPage(tab.key);
287
- }} hitSlop={8} style={{
288
- marginLeft: 4,
289
- padding: 4,
290
- borderRadius: 6,
291
- backgroundColor: AppColors.purpleShade50,
292
- borderWidth: 1,
293
- borderColor: `${AppColors.purple}26`,
294
- alignItems: 'center',
295
- justifyContent: 'center',
296
- }}>
297
- <SettingsIcon color={AppColors.purple} size={10}/>
298
- </TouchableScale>
314
+ {!isUnavailable && (<TouchableScale onPress={() => {
315
+ animateNextLayout();
316
+ setSettingsPage(tab.key);
317
+ }} hitSlop={8} style={{
318
+ marginLeft: 4,
319
+ padding: 4,
320
+ borderRadius: 6,
321
+ backgroundColor: AppColors.purpleShade50,
322
+ borderWidth: 1,
323
+ borderColor: `${AppColors.purple}26`,
324
+ alignItems: 'center',
325
+ justifyContent: 'center',
326
+ }}>
327
+ <SettingsIcon color={AppColors.purple} size={10}/>
328
+ </TouchableScale>)}
299
329
  </View>
300
330
 
301
331
  {/* Visibility Switch in VISIBILITY column */}
@@ -345,12 +375,17 @@ const SettingsPanel = () => {
345
375
  </TouchableScale>
346
376
  {isLocked && (<Text style={{
347
377
  fontFamily: AppFonts.interBold,
348
- fontSize: 8,
349
- color: AppColors.grayTextWeak,
350
- letterSpacing: 0.4,
378
+ fontSize: 7.5,
379
+ color: isUnavailable
380
+ ? AppColors.amber700
381
+ : AppColors.grayTextWeak,
382
+ letterSpacing: 0.3,
351
383
  marginTop: 3,
384
+ textAlign: 'right',
352
385
  }}>
353
- REQUIRED
386
+ {tab.key === 'apis'
387
+ ? t('settings.requiredBadge')
388
+ : t('settings.readOnlyBadge')}
354
389
  </Text>)}
355
390
  </View>
356
391
  </View>);
@@ -5,8 +5,12 @@ import TouchableScale from '../TouchableScale';
5
5
  import styles from '../../styles';
6
6
  import { AppColors } from '../../styles/AppColors';
7
7
  import { SignalIcon, TerminalIcon, AnalyticsIcon, PackageIcon, ReduxIcon, PerformanceIcon, CrashIcon, } from '../NetworkIcons';
8
+ import { isReduxConnected } from '../../customHooks/reduxLogger';
9
+ import { isAnalyticsConnected } from '../../customHooks/analyticsLogger';
8
10
  const TabBar = React.memo(() => {
9
11
  const { activeTab, switchActiveTab, tabVisibility, logs, consoleLogs, analyticsEvents, crashRecords, lastReadApisCount, lastReadLogsCount, lastReadCrashesCount, unreadPulseAnim, } = useInspector();
12
+ const isReduxAvail = isReduxConnected();
13
+ const isAnalyticsAvail = isAnalyticsConnected();
10
14
  return (<View style={styles.tabBarContainer}>
11
15
  <ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{ paddingRight: 16 }}>
12
16
  {[
@@ -53,7 +57,15 @@ const TabBar = React.memo(() => {
53
57
  icon: 'crash',
54
58
  },
55
59
  ]
56
- .filter(tab => tabVisibility?.[tab.key])
60
+ .filter(tab => {
61
+ if (!tabVisibility?.[tab.key])
62
+ return false;
63
+ if (tab.key === 'redux' && !isReduxAvail)
64
+ return false;
65
+ if (tab.key === 'analytics' && !isAnalyticsAvail)
66
+ return false;
67
+ return true;
68
+ })
57
69
  .map(tab => {
58
70
  const isActive = activeTab === tab.key;
59
71
  const iconColor = isActive
@@ -5,6 +5,7 @@ import { AppColors } from '../styles/AppColors';
5
5
  import { METHOD_COLORS } from '../constants';
6
6
  import { getStatusColor, getDurationColor, getPath, getBaseUrl, formatDateTime, getSize, } from '../helpers';
7
7
  import { CalendarIcon, ClockIcon, SizeIcon } from './NetworkIcons';
8
+ import { AppFonts } from '../styles/AppFonts';
8
9
  import styles from '../styles';
9
10
  import HighlightText from './HighlightText';
10
11
  import TouchableScale from './TouchableScale';
@@ -71,6 +72,46 @@ const LogCard = React.memo(function LogCard({ item, onPress, timelineMinStart, t
71
72
  </Text>
72
73
  </View>
73
74
 
75
+ {item.client && (<View style={[
76
+ styles.chip,
77
+ {
78
+ backgroundColor: item.client === 'axios'
79
+ ? `${AppColors.purple}14`
80
+ : item.client === 'apollo' || item.client === 'graphql'
81
+ ? `${AppColors.pink500}14`
82
+ : item.client === 'xhr'
83
+ ? `${AppColors.amber500}14`
84
+ : `${AppColors.sky500}14`,
85
+ borderColor: item.client === 'axios'
86
+ ? `${AppColors.purple}30`
87
+ : item.client === 'apollo' || item.client === 'graphql'
88
+ ? `${AppColors.pink500}30`
89
+ : item.client === 'xhr'
90
+ ? `${AppColors.amber500}30`
91
+ : `${AppColors.sky500}30`,
92
+ paddingHorizontal: 4.5,
93
+ paddingVertical: 1,
94
+ borderRadius: 4,
95
+ },
96
+ ]}>
97
+ <Text style={[
98
+ styles.chipText,
99
+ {
100
+ fontFamily: AppFonts.interBold,
101
+ fontSize: 8.5,
102
+ color: item.client === 'axios'
103
+ ? AppColors.purple
104
+ : item.client === 'apollo' || item.client === 'graphql'
105
+ ? AppColors.pink500
106
+ : item.client === 'xhr'
107
+ ? AppColors.amber700
108
+ : AppColors.sky600,
109
+ },
110
+ ]}>
111
+ {item.client.toUpperCase()}
112
+ </Text>
113
+ </View>)}
114
+
74
115
  <HighlightText text={baseUrl || item.url} search={searchStr} style={styles.cardHostText} highlightStyle={styles.highlight} numberOfLines={1} ellipsizeMode="tail"/>
75
116
  </View>
76
117
 
@@ -108,42 +149,42 @@ const LogCard = React.memo(function LogCard({ item, onPress, timelineMinStart, t
108
149
  </View>
109
150
  </View>
110
151
 
111
- {/* Row 2: Improved Slug Capsule Container */}
112
- {showSlug && (<View style={styles.cardSlugBox}>
113
- <View style={styles.slugLeft}>
114
- <Text style={styles.slugTag}>PATH</Text>
115
- <HighlightText text={slug} search={searchStr} style={styles.slugText} highlightStyle={styles.highlight} numberOfLines={1} ellipsizeMode="tail"/>
116
- </View>
152
+ {/* Row 2: Full URL Capsule Container */}
153
+ <View style={styles.cardSlugBox}>
154
+ <View style={styles.slugLeft}>
155
+ <Text style={styles.slugTag}>URL</Text>
156
+ <HighlightText text={item.url} search={searchStr} style={styles.slugText} highlightStyle={styles.highlight} numberOfLines={2} ellipsizeMode="middle"/>
157
+ </View>
117
158
 
118
- <View style={styles.slugRight}>
119
- {isJson && (<View style={[
120
- styles.chip,
121
- {
122
- backgroundColor: `${AppColors.darkOrange}12`,
123
- borderColor: `${AppColors.darkOrange}28`,
124
- },
125
- ]}>
126
- <Text style={[styles.chipText, { color: AppColors.darkOrange }]}>
127
- .json
128
- </Text>
129
- </View>)}
159
+ <View style={styles.slugRight}>
160
+ {isJson && (<View style={[
161
+ styles.chip,
162
+ {
163
+ backgroundColor: `${AppColors.darkOrange}12`,
164
+ borderColor: `${AppColors.darkOrange}28`,
165
+ },
166
+ ]}>
167
+ <Text style={[styles.chipText, { color: AppColors.darkOrange }]}>
168
+ .json
169
+ </Text>
170
+ </View>)}
130
171
 
131
- {item.duplicateCount != null && item.duplicateCount > 1 && (<View style={[
132
- styles.chip,
133
- {
134
- backgroundColor: `${AppColors.purple}12`,
135
- borderColor: `${AppColors.purple}28`,
136
- },
137
- ]}>
138
- <Text style={[
139
- styles.chipText,
140
- { color: AppColors.purple, fontWeight: '700' },
141
- ]}>
142
- ×{item.duplicateCount}
143
- </Text>
144
- </View>)}
145
- </View>
146
- </View>)}
172
+ {item.duplicateCount != null && item.duplicateCount > 1 && (<View style={[
173
+ styles.chip,
174
+ {
175
+ backgroundColor: `${AppColors.purple}12`,
176
+ borderColor: `${AppColors.purple}28`,
177
+ },
178
+ ]}>
179
+ <Text style={[
180
+ styles.chipText,
181
+ { color: AppColors.purple, fontWeight: '700' },
182
+ ]}>
183
+ ×{item.duplicateCount}
184
+ </Text>
185
+ </View>)}
186
+ </View>
187
+ </View>
147
188
 
148
189
  {/* Row 3: Footer (Timestamp on Left, Response Size & Duration on Right) */}
149
190
  <View style={styles.cardFooterRow}>
@@ -1,105 +1,115 @@
1
1
  import React from 'react';
2
- export declare const EmptyRadarIcon: ({ color, size }: any) => React.JSX.Element;
3
- export declare const MapPinIcon: ({ color, size, }: any) => React.JSX.Element;
4
- export declare const ScreenIcon: ({ color, size, }: any) => React.JSX.Element;
5
- export declare const ExpandCollapseIcon: ({ isExpanded, color, size, }: any) => React.JSX.Element;
6
- export declare const SearchIcon: ({ color, size, }: any) => React.JSX.Element;
7
- export declare const ClearIcon: ({ color, size }: any) => React.JSX.Element;
8
- export declare const ClockIcon: ({ color, size }: any) => React.JSX.Element;
9
- export declare const CalendarIcon: ({ color, size, }: any) => React.JSX.Element;
10
- export declare const StatusIcon: ({ color }: any) => React.JSX.Element;
11
- export declare const SizeIcon: ({ color }: any) => React.JSX.Element;
12
- export declare const RequestIcon: ({ color }: any) => React.JSX.Element;
13
- export declare const ResponseIcon: ({ color }: any) => React.JSX.Element;
14
- export declare const HeadersIcon: ({ color }: any) => React.JSX.Element;
15
- export declare const CopyIcon: ({ color, size }: any) => React.JSX.Element;
16
- export declare const FetchIcon: ({ color, size }: any) => React.JSX.Element;
17
- export declare const TerminalIcon: ({ color, size, }: any) => React.JSX.Element;
18
- export declare const CheckIcon: ({ color, size }: any) => React.JSX.Element;
19
- export declare const CircleCheckIcon: ({ color, size }: any) => React.JSX.Element;
20
- export declare const CircleXIcon: ({ color, size }: any) => React.JSX.Element;
21
- export declare const CircleAlertIcon: ({ color, size }: any) => React.JSX.Element;
22
- export declare const FailIcon: ({ color, size }: any) => React.JSX.Element;
23
- export declare const TrashIcon: ({ color, size }: any) => React.JSX.Element;
24
- export declare const HeaderPauseIcon: ({ isPaused, color, size, }: any) => React.JSX.Element;
25
- export declare const ExportIcon: ({ color, size, }: any) => React.JSX.Element;
26
- export declare const SignalIcon: ({ color, size, }: any) => React.JSX.Element;
27
- export declare const DiffIcon: ({ color, size }: any) => React.JSX.Element;
28
- export declare const GlobeIcon: ({ color, size }: any) => React.JSX.Element;
29
- export declare const SortArrowIcon: ({ color, size, direction, }: any) => React.JSX.Element;
30
- export declare const ChevronIcon: ({ color, size, }: any) => React.JSX.Element;
31
- export declare const FilterIcon: ({ color, size, }: any) => React.JSX.Element;
32
- export declare const DownloadIcon: ({ color, size, }: any) => React.JSX.Element;
33
- export declare const CloseWhite: ({ color, size }: any) => React.JSX.Element;
34
- export declare const WhiteBackNavigation: ({ color, size }: any) => React.JSX.Element;
35
- export declare const AnalyticsIcon: ({ color, size, }: any) => React.JSX.Element;
36
- export declare const InsightsIcon: ({ color, size, }: any) => React.JSX.Element;
37
- export declare const DebugIcon: ({ color, size }: any) => React.JSX.Element;
38
- export declare const SunIcon: ({ color, size }: any) => React.JSX.Element;
39
- export declare const MoonIcon: ({ color, size }: any) => React.JSX.Element;
2
+ export interface IconProps {
3
+ color?: string;
4
+ size?: number;
5
+ strokeWidth?: number;
6
+ isExpanded?: boolean;
7
+ isPaused?: boolean;
8
+ active?: boolean;
9
+ direction?: 'up' | 'down' | string;
10
+ ascending?: boolean;
11
+ }
12
+ export declare const EmptyRadarIcon: ({ color, size }: IconProps) => React.JSX.Element;
13
+ export declare const MapPinIcon: ({ color, size, }: IconProps) => React.JSX.Element;
14
+ export declare const ScreenIcon: ({ color, size, }: IconProps) => React.JSX.Element;
15
+ export declare const ExpandCollapseIcon: ({ isExpanded, color, size, }: IconProps) => React.JSX.Element;
16
+ export declare const SearchIcon: ({ color, size, }: IconProps) => React.JSX.Element;
17
+ export declare const ClearIcon: ({ color, size }: IconProps) => React.JSX.Element;
18
+ export declare const ClockIcon: ({ color, size }: IconProps) => React.JSX.Element;
19
+ export declare const CalendarIcon: ({ color, size, }: IconProps) => React.JSX.Element;
20
+ export declare const StatusIcon: ({ color }: IconProps) => React.JSX.Element;
21
+ export declare const SizeIcon: ({ color }: IconProps) => React.JSX.Element;
22
+ export declare const RequestIcon: ({ color }: IconProps) => React.JSX.Element;
23
+ export declare const ResponseIcon: ({ color }: IconProps) => React.JSX.Element;
24
+ export declare const HeadersIcon: ({ color }: IconProps) => React.JSX.Element;
25
+ export declare const CopyIcon: ({ color, size }: IconProps) => React.JSX.Element;
26
+ export declare const FetchIcon: ({ color, size }: IconProps) => React.JSX.Element;
27
+ export declare const TerminalIcon: ({ color, size, }: IconProps) => React.JSX.Element;
28
+ export declare const CheckIcon: ({ color, size }: IconProps) => React.JSX.Element;
29
+ export declare const CircleCheckIcon: ({ color, size }: IconProps) => React.JSX.Element;
30
+ export declare const CircleXIcon: ({ color, size }: IconProps) => React.JSX.Element;
31
+ export declare const CircleAlertIcon: ({ color, size }: IconProps) => React.JSX.Element;
32
+ export declare const FailIcon: ({ color, size }: IconProps) => React.JSX.Element;
33
+ export declare const TrashIcon: ({ color, size }: IconProps) => React.JSX.Element;
34
+ export declare const HeaderPauseIcon: ({ isPaused, color, size, }: IconProps) => React.JSX.Element;
35
+ export declare const ExportIcon: ({ color, size, }: IconProps) => React.JSX.Element;
36
+ export declare const SignalIcon: ({ color, size, }: IconProps) => React.JSX.Element;
37
+ export declare const DiffIcon: ({ color, size }: IconProps) => React.JSX.Element;
38
+ export declare const GlobeIcon: ({ color, size }: IconProps) => React.JSX.Element;
39
+ export declare const SortArrowIcon: ({ color, size, direction, }: IconProps) => React.JSX.Element;
40
+ export declare const ChevronIcon: ({ color, size, }: IconProps) => React.JSX.Element;
41
+ export declare const FilterIcon: ({ color, size, }: IconProps) => React.JSX.Element;
42
+ export declare const DownloadIcon: ({ color, size, }: IconProps) => React.JSX.Element;
43
+ export declare const CloseWhite: ({ color, size }: IconProps) => React.JSX.Element;
44
+ export declare const WhiteBackNavigation: ({ color, size }: IconProps) => React.JSX.Element;
45
+ export declare const AnalyticsIcon: ({ color, size, }: IconProps) => React.JSX.Element;
46
+ export declare const InsightsIcon: ({ color, size, }: IconProps) => React.JSX.Element;
47
+ export declare const DebugIcon: ({ color, size }: IconProps) => React.JSX.Element;
48
+ export declare const SunIcon: ({ color, size }: IconProps) => React.JSX.Element;
49
+ export declare const MoonIcon: ({ color, size }: IconProps) => React.JSX.Element;
40
50
  export { BrandCircleIcon } from './BrandCircleIcon';
41
51
  export { BrandSquareIcon } from './BrandSquareIcon';
42
- export declare const HtmlIcon: ({ color, size }: any) => React.JSX.Element;
43
- export declare const CssIcon: ({ color, size }: any) => React.JSX.Element;
44
- export declare const JsIcon: ({ color, size }: any) => React.JSX.Element;
45
- export declare const EyeIcon: ({ color, size }: any) => React.JSX.Element;
46
- export declare const SettingsIcon: ({ color, size, }: any) => React.JSX.Element;
47
- export declare const FolderIcon: ({ color, size, }: any) => React.JSX.Element;
48
- export declare const WipeIcon: ({ color, size }: any) => React.JSX.Element;
49
- export declare const LayersIcon: ({ color, size, }: any) => React.JSX.Element;
50
- export declare const UserIcon: ({ color, size }: any) => React.JSX.Element;
51
- export declare const InfoCircleIcon: ({ color, size, }: any) => React.JSX.Element;
52
- export declare const WarningTriangleIcon: ({ color, size, }: any) => React.JSX.Element;
53
- export declare const ErrorCircleIcon: ({ color, size, }: any) => React.JSX.Element;
54
- export declare const TrendingUpIcon: ({ color, size, }: any) => React.JSX.Element;
55
- export declare const MotionIcon: ({ color, size, }: any) => React.JSX.Element;
56
- export declare const SortIcon: ({ ascending, color, size, }: any) => React.JSX.Element;
57
- export declare const PrettyIcon: ({ color, size, }: any) => React.JSX.Element;
58
- export declare const RawIcon: ({ color, size, }: any) => React.JSX.Element;
59
- export declare const TableIcon: ({ color, size, }: any) => React.JSX.Element;
60
- export declare const PackageIcon: ({ color, size, }: any) => React.JSX.Element;
61
- export declare const ForwardChevronIcon: ({ color, size, }: any) => React.JSX.Element;
62
- export declare const BundleIcon: ({ color, size, }: any) => React.JSX.Element;
63
- export declare const LiveStateIcon: ({ color, size, }: any) => React.JSX.Element;
64
- export declare const TimelineIcon: ({ color, size, }: any) => React.JSX.Element;
65
- export declare const RefreshCcwIcon: ({ color, size, }: any) => React.JSX.Element;
66
- export declare const StorageIcon: ({ color, size, }: any) => React.JSX.Element;
67
- export declare const MetadataIcon: ({ color, size, }: any) => React.JSX.Element;
68
- export declare const ReduxIcon: ({ color, size, }: any) => React.JSX.Element;
69
- export declare const PerformanceIcon: ({ color, size, }: any) => React.JSX.Element;
70
- export declare const BoltIcon: ({ color, size }: any) => React.JSX.Element;
71
- export declare const BanIcon: ({ color, size }: any) => React.JSX.Element;
72
- export declare const FolderOpenIcon: ({ color, size }: any) => React.JSX.Element;
73
- export declare const DocIcon: ({ color, size }: any) => React.JSX.Element;
74
- export declare const LightbulbIcon: ({ color, size }: any) => React.JSX.Element;
75
- export declare const SparkleIcon: ({ color, size }: any) => React.JSX.Element;
76
- export declare const MapIcon: ({ color, size }: any) => React.JSX.Element;
77
- export declare const AtomIcon: ({ color, size }: any) => React.JSX.Element;
78
- export declare const BrainIcon: ({ color, size }: any) => React.JSX.Element;
79
- export declare const TextAaIcon: ({ color, size }: any) => React.JSX.Element;
80
- export declare const CartIcon: ({ color, size }: any) => React.JSX.Element;
81
- export declare const MoneyIcon: ({ color, size }: any) => React.JSX.Element;
82
- export declare const ExternalLinkIcon: ({ color, size, }: any) => React.JSX.Element;
83
- export declare const PackageBoxIcon: ({ color, size, }: any) => React.JSX.Element;
84
- export declare const GitHubIcon: ({ color, size, }: any) => React.JSX.Element;
85
- export declare const LinkChainIcon: ({ color, size, }: any) => React.JSX.Element;
86
- export declare const AppleIcon: ({ color, size, }: any) => React.JSX.Element;
87
- export declare const AndroidIcon: ({ color, size, }: any) => React.JSX.Element;
88
- export declare const CodeBracketsIcon: ({ color, size, }: any) => React.JSX.Element;
89
- export declare const FlameIcon: ({ color, size, }: any) => React.JSX.Element;
90
- export declare const HourglassIcon: ({ color, size, }: any) => React.JSX.Element;
91
- export declare const PinIcon: ({ color, size, }: any) => React.JSX.Element;
92
- export declare const RepeatIcon: ({ color, size, }: any) => React.JSX.Element;
93
- export declare const TargetGoalIcon: ({ color, size, }: any) => React.JSX.Element;
94
- export declare const UserCheckIcon: ({ color, size, }: any) => React.JSX.Element;
95
- export declare const CrashIcon: ({ color, size, }: any) => React.JSX.Element;
96
- export declare const ShieldAlertIcon: ({ color, size, }: any) => React.JSX.Element;
97
- export declare const SkullIcon: ({ color, size, }: any) => React.JSX.Element;
98
- export declare const ChipIcon: ({ color, size, }: any) => React.JSX.Element;
99
- export declare const LayoutIcon: ({ color, size, }: any) => React.JSX.Element;
100
- export declare const StackTraceIcon: ({ color, size, }: any) => React.JSX.Element;
101
- export declare const DiagnosticsIcon: ({ color, size, }: any) => React.JSX.Element;
102
- export declare const TrailIcon: ({ color, size, }: any) => React.JSX.Element;
103
- export declare const RawJsonIcon: ({ color, size, }: any) => React.JSX.Element;
104
- export declare const AppFramesIcon: ({ color, size, }: any) => React.JSX.Element;
105
- export declare const AllFramesIcon: ({ color, size, }: any) => React.JSX.Element;
52
+ export declare const HtmlIcon: ({ color, size }: IconProps) => React.JSX.Element;
53
+ export declare const CssIcon: ({ color, size }: IconProps) => React.JSX.Element;
54
+ export declare const JsIcon: ({ color, size }: IconProps) => React.JSX.Element;
55
+ export declare const EyeIcon: ({ color, size }: IconProps) => React.JSX.Element;
56
+ export declare const SettingsIcon: ({ color, size, }: IconProps) => React.JSX.Element;
57
+ export declare const FolderIcon: ({ color, size, }: IconProps) => React.JSX.Element;
58
+ export declare const WipeIcon: ({ color, size }: IconProps) => React.JSX.Element;
59
+ export declare const LayersIcon: ({ color, size, }: IconProps) => React.JSX.Element;
60
+ export declare const UserIcon: ({ color, size }: IconProps) => React.JSX.Element;
61
+ export declare const InfoCircleIcon: ({ color, size, }: IconProps) => React.JSX.Element;
62
+ export declare const WarningTriangleIcon: ({ color, size, }: IconProps) => React.JSX.Element;
63
+ export declare const ErrorCircleIcon: ({ color, size, }: IconProps) => React.JSX.Element;
64
+ export declare const TrendingUpIcon: ({ color, size, }: IconProps) => React.JSX.Element;
65
+ export declare const MotionIcon: ({ color, size, }: IconProps) => React.JSX.Element;
66
+ export declare const SortIcon: ({ ascending, color, size, }: IconProps) => React.JSX.Element;
67
+ export declare const PrettyIcon: ({ color, size, }: IconProps) => React.JSX.Element;
68
+ export declare const RawIcon: ({ color, size, }: IconProps) => React.JSX.Element;
69
+ export declare const TableIcon: ({ color, size, }: IconProps) => React.JSX.Element;
70
+ export declare const PackageIcon: ({ color, size, }: IconProps) => React.JSX.Element;
71
+ export declare const ForwardChevronIcon: ({ color, size, }: IconProps) => React.JSX.Element;
72
+ export declare const BundleIcon: ({ color, size, }: IconProps) => React.JSX.Element;
73
+ export declare const LiveStateIcon: ({ color, size, }: IconProps) => React.JSX.Element;
74
+ export declare const TimelineIcon: ({ color, size, }: IconProps) => React.JSX.Element;
75
+ export declare const RefreshCcwIcon: ({ color, size, }: IconProps) => React.JSX.Element;
76
+ export declare const StorageIcon: ({ color, size, }: IconProps) => React.JSX.Element;
77
+ export declare const MetadataIcon: ({ color, size, }: IconProps) => React.JSX.Element;
78
+ export declare const ReduxIcon: ({ color, size, }: IconProps) => React.JSX.Element;
79
+ export declare const PerformanceIcon: ({ color, size, }: IconProps) => React.JSX.Element;
80
+ export declare const BoltIcon: ({ color, size }: IconProps) => React.JSX.Element;
81
+ export declare const BanIcon: ({ color, size }: IconProps) => React.JSX.Element;
82
+ export declare const FolderOpenIcon: ({ color, size }: IconProps) => React.JSX.Element;
83
+ export declare const DocIcon: ({ color, size }: IconProps) => React.JSX.Element;
84
+ export declare const LightbulbIcon: ({ color, size }: IconProps) => React.JSX.Element;
85
+ export declare const SparkleIcon: ({ color, size }: IconProps) => React.JSX.Element;
86
+ export declare const MapIcon: ({ color, size }: IconProps) => React.JSX.Element;
87
+ export declare const AtomIcon: ({ color, size }: IconProps) => React.JSX.Element;
88
+ export declare const BrainIcon: ({ color, size }: IconProps) => React.JSX.Element;
89
+ export declare const TextAaIcon: ({ color, size }: IconProps) => React.JSX.Element;
90
+ export declare const CartIcon: ({ color, size }: IconProps) => React.JSX.Element;
91
+ export declare const MoneyIcon: ({ color, size }: IconProps) => React.JSX.Element;
92
+ export declare const ExternalLinkIcon: ({ color, size, }: IconProps) => React.JSX.Element;
93
+ export declare const PackageBoxIcon: ({ color, size, }: IconProps) => React.JSX.Element;
94
+ export declare const GitHubIcon: ({ color, size, }: IconProps) => React.JSX.Element;
95
+ export declare const LinkChainIcon: ({ color, size, }: IconProps) => React.JSX.Element;
96
+ export declare const AppleIcon: ({ color, size, }: IconProps) => React.JSX.Element;
97
+ export declare const AndroidIcon: ({ color, size, }: IconProps) => React.JSX.Element;
98
+ export declare const CodeBracketsIcon: ({ color, size, }: IconProps) => React.JSX.Element;
99
+ export declare const FlameIcon: ({ color, size, }: IconProps) => React.JSX.Element;
100
+ export declare const HourglassIcon: ({ color, size, }: IconProps) => React.JSX.Element;
101
+ export declare const PinIcon: ({ color, size, }: IconProps) => React.JSX.Element;
102
+ export declare const RepeatIcon: ({ color, size, }: IconProps) => React.JSX.Element;
103
+ export declare const TargetGoalIcon: ({ color, size, }: IconProps) => React.JSX.Element;
104
+ export declare const UserCheckIcon: ({ color, size, }: IconProps) => React.JSX.Element;
105
+ export declare const CrashIcon: ({ color, size, }: IconProps) => React.JSX.Element;
106
+ export declare const ShieldAlertIcon: ({ color, size, }: IconProps) => React.JSX.Element;
107
+ export declare const SkullIcon: ({ color, size, }: IconProps) => React.JSX.Element;
108
+ export declare const ChipIcon: ({ color, size, }: IconProps) => React.JSX.Element;
109
+ export declare const LayoutIcon: ({ color, size, }: IconProps) => React.JSX.Element;
110
+ export declare const StackTraceIcon: ({ color, size, }: IconProps) => React.JSX.Element;
111
+ export declare const DiagnosticsIcon: ({ color, size, }: IconProps) => React.JSX.Element;
112
+ export declare const TrailIcon: ({ color, size, }: IconProps) => React.JSX.Element;
113
+ export declare const RawJsonIcon: ({ color, size, }: IconProps) => React.JSX.Element;
114
+ export declare const AppFramesIcon: ({ color, size, }: IconProps) => React.JSX.Element;
115
+ export declare const AllFramesIcon: ({ color, size, }: IconProps) => React.JSX.Element;
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "1.1.26";
1
+ export declare const LIB_VERSION = "1.1.28";
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED FILE — do not edit by hand.
2
2
  // Regenerated from package.json on every build by scripts/gen-version.js.
3
- export const LIB_VERSION = '1.1.26';
3
+ export const LIB_VERSION = '1.1.28';
@@ -15,16 +15,6 @@ export declare const getCollectionEnabled: () => boolean;
15
15
  * Useful for custom analytics wrappers or testing.
16
16
  */
17
17
  export declare const logAnalyticsEvent: (name: string, params?: Record<string, any>, userProperties?: Record<string, any>) => void;
18
- /**
19
- * Monkey-patches a @react-native-firebase/analytics instance so all calls
20
- * are intercepted and forwarded to the NetworkInspector analytics tab.
21
- *
22
- * Pass the result of `analytics()` (the default app instance or any named one).
23
- * Safe to call multiple times with the same instance — won't double-patch.
24
- *
25
- * @example
26
- * import analytics from '@react-native-firebase/analytics';
27
- * setupAnalyticsLogger(analytics());
28
- */
18
+ export declare const isAnalyticsConnected: () => boolean;
29
19
  export declare const setupAnalyticsLogger: (analyticsInstance: any) => void;
30
20
  export declare const autoSetupAnalyticsLogger: () => boolean;
@@ -86,11 +86,17 @@ export const logAnalyticsEvent = (name, params = {}, userProperties = {}) => {
86
86
  * import analytics from '@react-native-firebase/analytics';
87
87
  * setupAnalyticsLogger(analytics());
88
88
  */
89
+ let isAnalyticsPatched = false;
90
+ export const isAnalyticsConnected = () => isAnalyticsPatched ||
91
+ events.length > 0 ||
92
+ Object.keys(currentUserProperties).length > 0 ||
93
+ currentUserId != null;
89
94
  export const setupAnalyticsLogger = (analyticsInstance) => {
90
95
  if (!analyticsInstance) {
91
96
  console.warn('[AnalyticsLogger] No analytics instance provided — skipping setup.');
92
97
  return;
93
98
  }
99
+ isAnalyticsPatched = true;
94
100
  // Guard against double-patching the same instance
95
101
  if (analyticsInstance.__INSPECTOR_PATCHED__)
96
102
  return;