react-native-inapp-inspector 1.1.24 → 1.1.26

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 (114) hide show
  1. package/android/build.gradle +36 -0
  2. package/android/src/main/AndroidManifest.xml +3 -0
  3. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.java +114 -0
  4. package/android/src/main/java/com/inappinspector/NetworkInspectorPackage.java +28 -0
  5. package/dist/commonjs/components/AnalyticsEventCard.js +94 -88
  6. package/dist/commonjs/components/ConsoleLogCard.js +49 -25
  7. package/dist/commonjs/components/ErrorBoundary.d.ts +1 -1
  8. package/dist/commonjs/components/ErrorBoundary.js +9 -145
  9. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
  10. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1002 -0
  11. package/dist/commonjs/components/Inspector/AnalyticsTab.js +637 -10
  12. package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -1
  13. package/dist/commonjs/components/Inspector/BundleTab.js +826 -406
  14. package/dist/commonjs/components/Inspector/CrashDetail.d.ts +3 -0
  15. package/dist/commonjs/components/Inspector/CrashDetail.js +796 -0
  16. package/dist/commonjs/components/Inspector/CrashFilterModal.d.ts +20 -0
  17. package/dist/commonjs/components/Inspector/CrashFilterModal.js +597 -0
  18. package/dist/commonjs/components/Inspector/CrashTab.d.ts +3 -0
  19. package/dist/commonjs/components/Inspector/CrashTab.js +727 -0
  20. package/dist/commonjs/components/Inspector/InspectorContext.js +6 -1
  21. package/dist/commonjs/components/Inspector/InspectorHeader.js +65 -28
  22. package/dist/commonjs/components/Inspector/LogDetail.js +227 -114
  23. package/dist/commonjs/components/Inspector/MainScreen.js +13 -4
  24. package/dist/commonjs/components/Inspector/NetworkDetail.js +131 -81
  25. package/dist/commonjs/components/Inspector/PerformanceTab.js +20 -10
  26. package/dist/commonjs/components/Inspector/SettingsPanel.js +90 -1
  27. package/dist/commonjs/components/Inspector/TabBar.js +15 -3
  28. package/dist/commonjs/components/NetworkIcons.d.ts +25 -0
  29. package/dist/commonjs/components/NetworkIcons.js +188 -1
  30. package/dist/commonjs/components/SegmentedTabs.js +33 -23
  31. package/dist/commonjs/components/TreeNode.js +13 -12
  32. package/dist/commonjs/constants/version.d.ts +1 -1
  33. package/dist/commonjs/constants/version.js +1 -1
  34. package/dist/commonjs/customHooks/analyticsLogger.js +70 -44
  35. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +5 -1
  36. package/dist/commonjs/customHooks/bundleAnalyzer.js +497 -126
  37. package/dist/commonjs/customHooks/consoleLogger.d.ts +1 -0
  38. package/dist/commonjs/customHooks/consoleLogger.js +153 -51
  39. package/dist/commonjs/customHooks/crashHandler.d.ts +64 -0
  40. package/dist/commonjs/customHooks/crashHandler.js +681 -0
  41. package/dist/commonjs/customHooks/networkLogger.js +74 -49
  42. package/dist/commonjs/customHooks/performanceTracker.d.ts +8 -0
  43. package/dist/commonjs/customHooks/performanceTracker.js +44 -3
  44. package/dist/commonjs/decorators/index.d.ts +49 -0
  45. package/dist/commonjs/decorators/index.js +142 -0
  46. package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +18 -0
  47. package/dist/commonjs/helpers/gaAnalyticsRegistry.js +174 -0
  48. package/dist/commonjs/helpers/index.d.ts +7 -4
  49. package/dist/commonjs/helpers/index.js +102 -64
  50. package/dist/commonjs/i18n/locales/en.json +182 -4
  51. package/dist/commonjs/index.d.ts +6 -0
  52. package/dist/commonjs/index.js +310 -8
  53. package/dist/commonjs/styles/index.d.ts +4 -1
  54. package/dist/commonjs/styles/index.js +22 -19
  55. package/dist/commonjs/types/enums.d.ts +156 -9
  56. package/dist/commonjs/types/enums.js +139 -2
  57. package/dist/commonjs/types/interfaces.d.ts +70 -1
  58. package/dist/esm/components/AnalyticsEventCard.js +95 -89
  59. package/dist/esm/components/ConsoleLogCard.js +49 -25
  60. package/dist/esm/components/ErrorBoundary.d.ts +1 -1
  61. package/dist/esm/components/ErrorBoundary.js +10 -113
  62. package/dist/esm/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
  63. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +964 -0
  64. package/dist/esm/components/Inspector/AnalyticsTab.js +639 -12
  65. package/dist/esm/components/Inspector/BundleTab.d.ts +1 -1
  66. package/dist/esm/components/Inspector/BundleTab.js +827 -407
  67. package/dist/esm/components/Inspector/CrashDetail.d.ts +3 -0
  68. package/dist/esm/components/Inspector/CrashDetail.js +758 -0
  69. package/dist/esm/components/Inspector/CrashFilterModal.d.ts +20 -0
  70. package/dist/esm/components/Inspector/CrashFilterModal.js +557 -0
  71. package/dist/esm/components/Inspector/CrashTab.d.ts +3 -0
  72. package/dist/esm/components/Inspector/CrashTab.js +689 -0
  73. package/dist/esm/components/Inspector/InspectorContext.js +1 -0
  74. package/dist/esm/components/Inspector/InspectorHeader.js +66 -29
  75. package/dist/esm/components/Inspector/LogDetail.js +227 -114
  76. package/dist/esm/components/Inspector/MainScreen.js +14 -5
  77. package/dist/esm/components/Inspector/NetworkDetail.js +132 -49
  78. package/dist/esm/components/Inspector/PerformanceTab.js +20 -10
  79. package/dist/esm/components/Inspector/SettingsPanel.js +91 -2
  80. package/dist/esm/components/Inspector/TabBar.js +16 -4
  81. package/dist/esm/components/NetworkIcons.d.ts +25 -0
  82. package/dist/esm/components/NetworkIcons.js +161 -0
  83. package/dist/esm/components/SegmentedTabs.js +33 -23
  84. package/dist/esm/components/TreeNode.js +13 -12
  85. package/dist/esm/constants/version.d.ts +1 -1
  86. package/dist/esm/constants/version.js +1 -1
  87. package/dist/esm/customHooks/analyticsLogger.js +70 -44
  88. package/dist/esm/customHooks/bundleAnalyzer.d.ts +5 -1
  89. package/dist/esm/customHooks/bundleAnalyzer.js +493 -125
  90. package/dist/esm/customHooks/consoleLogger.d.ts +1 -0
  91. package/dist/esm/customHooks/consoleLogger.js +151 -50
  92. package/dist/esm/customHooks/crashHandler.d.ts +64 -0
  93. package/dist/esm/customHooks/crashHandler.js +659 -0
  94. package/dist/esm/customHooks/networkLogger.js +74 -49
  95. package/dist/esm/customHooks/performanceTracker.d.ts +8 -0
  96. package/dist/esm/customHooks/performanceTracker.js +38 -1
  97. package/dist/esm/decorators/index.d.ts +49 -0
  98. package/dist/esm/decorators/index.js +137 -0
  99. package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +18 -0
  100. package/dist/esm/helpers/gaAnalyticsRegistry.js +169 -0
  101. package/dist/esm/helpers/index.d.ts +7 -4
  102. package/dist/esm/helpers/index.js +100 -63
  103. package/dist/esm/i18n/locales/en.json +182 -4
  104. package/dist/esm/index.d.ts +6 -0
  105. package/dist/esm/index.js +262 -8
  106. package/dist/esm/styles/index.d.ts +4 -1
  107. package/dist/esm/styles/index.js +22 -19
  108. package/dist/esm/types/enums.d.ts +156 -9
  109. package/dist/esm/types/enums.js +138 -3
  110. package/dist/esm/types/interfaces.d.ts +70 -1
  111. package/ios/NetworkInspectorModule.h +6 -0
  112. package/ios/NetworkInspectorModule.m +125 -0
  113. package/package.json +5 -2
  114. package/react-native-inapp-inspector.podspec +18 -0
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.animateNextLayout = exports.useInspector = exports.InspectorContext = void 0;
3
+ exports.animateNextLayout = exports.useInspector = exports.InspectorContext = exports.LogFilter = exports.SettingsSubTab = exports.SettingsPage = exports.ModalAnimationType = void 0;
4
4
  const react_1 = require("react");
5
+ var types_1 = require("../../types");
6
+ Object.defineProperty(exports, "ModalAnimationType", { enumerable: true, get: function () { return types_1.ModalAnimationType; } });
7
+ Object.defineProperty(exports, "SettingsPage", { enumerable: true, get: function () { return types_1.SettingsPage; } });
8
+ Object.defineProperty(exports, "SettingsSubTab", { enumerable: true, get: function () { return types_1.SettingsSubTab; } });
9
+ Object.defineProperty(exports, "LogFilter", { enumerable: true, get: function () { return types_1.LogFilter; } });
5
10
  exports.InspectorContext = (0, react_1.createContext)(null);
6
11
  const useInspector = () => {
7
12
  const ctx = (0, react_1.useContext)(exports.InspectorContext);
@@ -50,7 +50,7 @@ const constants_2 = require("../../constants");
50
50
  const helpers_1 = require("../../helpers");
51
51
  const NetworkIcons_1 = require("../NetworkIcons");
52
52
  const InspectorHeader = react_1.default.memo(() => {
53
- const { modalHeightPercent, appIcon, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, selectedReduxSlice, setSelectedReduxSlice, selectedReduxAction, setSelectedReduxAction, reduxState, reduxLastActionMap, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, setSettingsPage, closeModal, detailTitle, activeTab, environment, } = (0, InspectorContext_1.useInspector)();
53
+ const { modalHeightPercent, appIcon, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, selectedReduxSlice, setSelectedReduxSlice, selectedReduxAction, setSelectedReduxAction, reduxState, reduxLastActionMap, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, setSettingsPage, closeModal, detailTitle, activeTab, environment, selectedCrash, setSelectedCrash, } = (0, InspectorContext_1.useInspector)();
54
54
  const envConfig = (0, react_1.useMemo)(() => {
55
55
  const rawEnv = (environment || (__DEV__ ? 'DEV' : 'PROD')).trim();
56
56
  const clean = rawEnv.toUpperCase();
@@ -89,7 +89,8 @@ const InspectorHeader = react_1.default.memo(() => {
89
89
  const isDetailView = (activeTab === 'apis' && selected != null) ||
90
90
  (activeTab === 'analytics' && selectedEvent != null) ||
91
91
  (activeTab === 'logs' && selectedLog != null) ||
92
- (activeTab === 'redux' && (selectedReduxSlice != null || selectedReduxAction != null));
92
+ (activeTab === 'redux' && (selectedReduxSlice != null || selectedReduxAction != null)) ||
93
+ (activeTab === 'crash' && selectedCrash != null);
93
94
  const isAnySelected = isDetailView;
94
95
  const headerTopPadding = react_native_1.Platform.OS === 'ios' && modalHeightPercent >= 95 ? 44 : 0;
95
96
  return (<react_native_linear_gradient_1.default colors={[AppColors_1.AppColors.purple, AppColors_1.AppColors.brandPurple]} style={styles_1.default.headerGradient}>
@@ -100,8 +101,9 @@ const InspectorHeader = react_1.default.memo(() => {
100
101
  {
101
102
  flexDirection: 'row',
102
103
  alignItems: 'center',
103
- gap: 16,
104
- flex: !isDetailView ? 5 : 1,
104
+ gap: 12,
105
+ flex: !isDetailView ? 1 : 0,
106
+ minWidth: 0,
105
107
  },
106
108
  ]}>
107
109
  <TouchableScale_1.default onPress={() => {
@@ -111,6 +113,7 @@ const InspectorHeader = react_1.default.memo(() => {
111
113
  setSelectedLog(null);
112
114
  setSelectedReduxSlice(null);
113
115
  setSelectedReduxAction(null);
116
+ setSelectedCrash(null);
114
117
  });
115
118
  }} hitSlop={15} style={[
116
119
  {
@@ -232,10 +235,14 @@ const InspectorHeader = react_1.default.memo(() => {
232
235
  borderColor: `${AppColors_1.AppColors.white}2E`,
233
236
  }}>
234
237
  <react_native_1.View style={{
235
- paddingHorizontal: 5,
236
- paddingVertical: 2,
238
+ flexDirection: 'row',
239
+ alignItems: 'center',
240
+ gap: 3.5,
241
+ paddingHorizontal: 6,
242
+ paddingVertical: 2.5,
237
243
  backgroundColor: `${AppColors_1.AppColors.white}47`,
238
244
  }}>
245
+ {react_native_1.Platform.OS === 'ios' ? (<NetworkIcons_1.AppleIcon color={AppColors_1.AppColors.white} size={10}/>) : (<NetworkIcons_1.AndroidIcon color={AppColors_1.AppColors.white} size={10}/>)}
239
246
  <react_native_1.Text style={{
240
247
  fontFamily: AppFonts_1.AppFonts.interBold,
241
248
  fontSize: 9,
@@ -247,7 +254,7 @@ const InspectorHeader = react_1.default.memo(() => {
247
254
  </react_native_1.View>
248
255
  <react_native_1.View style={{
249
256
  paddingHorizontal: 5,
250
- paddingVertical: 2,
257
+ paddingVertical: 2.5,
251
258
  backgroundColor: `${AppColors_1.AppColors.white}1F`,
252
259
  }}>
253
260
  <react_native_1.Text style={{
@@ -268,10 +275,14 @@ const InspectorHeader = react_1.default.memo(() => {
268
275
  borderColor: `${AppColors_1.AppColors.white}2E`,
269
276
  }}>
270
277
  <react_native_1.View style={{
271
- paddingHorizontal: 5,
272
- paddingVertical: 2,
278
+ flexDirection: 'row',
279
+ alignItems: 'center',
280
+ gap: 3.5,
281
+ paddingHorizontal: 6,
282
+ paddingVertical: 2.5,
273
283
  backgroundColor: `${AppColors_1.AppColors.white}47`,
274
284
  }}>
285
+ <NetworkIcons_1.PackageBoxIcon color={AppColors_1.AppColors.white} size={10}/>
275
286
  <react_native_1.Text style={{
276
287
  fontFamily: AppFonts_1.AppFonts.interBold,
277
288
  fontSize: 9,
@@ -516,18 +527,58 @@ const InspectorHeader = react_1.default.memo(() => {
516
527
  {selectedReduxAction.timestamp || 'Dispatched'}
517
528
  </react_native_1.Text>
518
529
  </react_native_1.View>
530
+ </react_native_1.View>) : activeTab === 'crash' && selectedCrash != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
531
+ <react_native_1.View style={styles_1.default.headerDetailRow}>
532
+ <react_native_1.View style={[
533
+ styles_1.default.headerMethodBadge,
534
+ {
535
+ backgroundColor: selectedCrash.isFatal
536
+ ? '#DC2626'
537
+ : '#D97706',
538
+ },
539
+ ]}>
540
+ <react_native_1.Text style={styles_1.default.headerMethodText}>
541
+ {selectedCrash.isFatal ? 'FATAL' : selectedCrash.type.toUpperCase()}
542
+ </react_native_1.Text>
543
+ </react_native_1.View>
544
+ <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
545
+ {selectedCrash.name || selectedCrash.message}
546
+ </react_native_1.Text>
547
+ </react_native_1.View>
548
+ <react_native_1.View style={styles_1.default.headerDetailSubRow}>
549
+ <react_native_1.View style={[
550
+ styles_1.default.headerStatusDot,
551
+ {
552
+ backgroundColor: selectedCrash.isFatal
553
+ ? '#DC2626'
554
+ : '#F59E0B',
555
+ },
556
+ ]}/>
557
+ <react_native_1.Text style={styles_1.default.headerSubTitle}>
558
+ {selectedCrash.timeStr || new Date(selectedCrash.timestamp).toLocaleTimeString()}
559
+ </react_native_1.Text>
560
+ {selectedCrash.deviceInfo?.platform && (<>
561
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6 }]}>•</react_native_1.Text>
562
+ <react_native_1.Text style={styles_1.default.headerSubTitle}>
563
+ {selectedCrash.deviceInfo.platform.toUpperCase()}
564
+ </react_native_1.Text>
565
+ </>)}
566
+ </react_native_1.View>
519
567
  </react_native_1.View>) : null}
520
568
  </react_native_1.View>)}
521
569
 
522
570
  <react_native_1.View style={[
523
571
  styles_1.default.headerRight,
524
- !isAnySelected && {
572
+ {
573
+ flexDirection: 'row',
574
+ alignItems: 'center',
575
+ justifyContent: 'flex-end',
525
576
  flexShrink: 0,
526
- minWidth: 116,
577
+ gap: 8,
527
578
  },
528
579
  ]}>
529
580
  {!isAnySelected && (<TouchableScale_1.default onPress={() => {
530
- react_native_1.Alert.alert('Clear Everything', 'This clears all tabs — APIs, Logs, Analytics and Redux timeline. Continue?', [
581
+ react_native_1.Alert.alert('Clear Everything', 'This clears all tabs — APIs, Logs, Analytics, Redux timeline and Crash history. Continue?', [
531
582
  { text: 'Cancel', style: 'cancel' },
532
583
  {
533
584
  text: 'Clear All',
@@ -535,13 +586,7 @@ const InspectorHeader = react_1.default.memo(() => {
535
586
  style: 'destructive',
536
587
  },
537
588
  ]);
538
- }} hitSlop={15} style={[
539
- styles_1.default.closeButtonSquare,
540
- {
541
- marginRight: 8,
542
- backgroundColor: `${AppColors_1.AppColors.white}26`,
543
- },
544
- ]}>
589
+ }} hitSlop={15} style={styles_1.default.closeButtonSquare}>
545
590
  <react_native_1.Animated.View style={{
546
591
  transform: [
547
592
  {
@@ -562,15 +607,7 @@ const InspectorHeader = react_1.default.memo(() => {
562
607
  </react_native_1.Animated.View>
563
608
  </TouchableScale_1.default>)}
564
609
 
565
- {selected == null &&
566
- selectedEvent == null &&
567
- selectedLog == null && (<TouchableScale_1.default onPress={() => setSettingsPage('main')} hitSlop={15} style={[
568
- styles_1.default.closeButtonSquare,
569
- {
570
- marginRight: 8,
571
- backgroundColor: `${AppColors_1.AppColors.white}26`,
572
- },
573
- ]}>
610
+ {!isAnySelected && (<TouchableScale_1.default onPress={() => setSettingsPage('main')} hitSlop={15} style={styles_1.default.closeButtonSquare}>
574
611
  <NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.white} size={16}/>
575
612
  </TouchableScale_1.default>)}
576
613