react-native-inapp-inspector 1.1.23 → 1.1.25

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 (79) hide show
  1. package/dist/commonjs/components/AnalyticsEventCard.js +94 -88
  2. package/dist/commonjs/components/ConsoleLogCard.js +49 -25
  3. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
  4. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1002 -0
  5. package/dist/commonjs/components/Inspector/AnalyticsTab.js +637 -10
  6. package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -1
  7. package/dist/commonjs/components/Inspector/BundleTab.js +859 -402
  8. package/dist/commonjs/components/Inspector/InspectorContext.js +6 -1
  9. package/dist/commonjs/components/Inspector/InspectorHeader.js +13 -5
  10. package/dist/commonjs/components/Inspector/LogDetail.js +223 -111
  11. package/dist/commonjs/components/Inspector/MainScreen.js +1 -1
  12. package/dist/commonjs/components/Inspector/NetworkDetail.js +131 -81
  13. package/dist/commonjs/components/Inspector/PerformanceTab.js +20 -10
  14. package/dist/commonjs/components/NetworkIcons.d.ts +14 -0
  15. package/dist/commonjs/components/NetworkIcons.js +93 -1
  16. package/dist/commonjs/components/SegmentedTabs.js +31 -22
  17. package/dist/commonjs/components/TreeNode.js +13 -12
  18. package/dist/commonjs/constants/version.d.ts +1 -1
  19. package/dist/commonjs/constants/version.js +1 -1
  20. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +6 -2
  21. package/dist/commonjs/customHooks/bundleAnalyzer.js +552 -114
  22. package/dist/commonjs/customHooks/consoleLogger.js +83 -45
  23. package/dist/commonjs/customHooks/networkLogger.js +10 -1
  24. package/dist/commonjs/customHooks/performanceTracker.d.ts +8 -0
  25. package/dist/commonjs/customHooks/performanceTracker.js +44 -3
  26. package/dist/commonjs/decorators/index.d.ts +49 -0
  27. package/dist/commonjs/decorators/index.js +142 -0
  28. package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +18 -0
  29. package/dist/commonjs/helpers/gaAnalyticsRegistry.js +174 -0
  30. package/dist/commonjs/helpers/index.d.ts +7 -4
  31. package/dist/commonjs/helpers/index.js +102 -64
  32. package/dist/commonjs/i18n/locales/en.json +53 -4
  33. package/dist/commonjs/index.d.ts +4 -0
  34. package/dist/commonjs/index.js +216 -8
  35. package/dist/commonjs/styles/index.d.ts +4 -1
  36. package/dist/commonjs/styles/index.js +22 -19
  37. package/dist/commonjs/types/enums.d.ts +115 -9
  38. package/dist/commonjs/types/enums.js +103 -2
  39. package/dist/commonjs/types/interfaces.d.ts +19 -0
  40. package/dist/esm/components/AnalyticsEventCard.js +95 -89
  41. package/dist/esm/components/ConsoleLogCard.js +49 -25
  42. package/dist/esm/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
  43. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +964 -0
  44. package/dist/esm/components/Inspector/AnalyticsTab.js +639 -12
  45. package/dist/esm/components/Inspector/BundleTab.d.ts +1 -1
  46. package/dist/esm/components/Inspector/BundleTab.js +860 -403
  47. package/dist/esm/components/Inspector/InspectorContext.js +1 -0
  48. package/dist/esm/components/Inspector/InspectorHeader.js +14 -6
  49. package/dist/esm/components/Inspector/LogDetail.js +223 -111
  50. package/dist/esm/components/Inspector/MainScreen.js +2 -2
  51. package/dist/esm/components/Inspector/NetworkDetail.js +132 -49
  52. package/dist/esm/components/Inspector/PerformanceTab.js +20 -10
  53. package/dist/esm/components/NetworkIcons.d.ts +14 -0
  54. package/dist/esm/components/NetworkIcons.js +78 -0
  55. package/dist/esm/components/SegmentedTabs.js +31 -22
  56. package/dist/esm/components/TreeNode.js +13 -12
  57. package/dist/esm/constants/version.d.ts +1 -1
  58. package/dist/esm/constants/version.js +1 -1
  59. package/dist/esm/customHooks/bundleAnalyzer.d.ts +6 -2
  60. package/dist/esm/customHooks/bundleAnalyzer.js +549 -114
  61. package/dist/esm/customHooks/consoleLogger.js +83 -45
  62. package/dist/esm/customHooks/networkLogger.js +10 -1
  63. package/dist/esm/customHooks/performanceTracker.d.ts +8 -0
  64. package/dist/esm/customHooks/performanceTracker.js +38 -1
  65. package/dist/esm/decorators/index.d.ts +49 -0
  66. package/dist/esm/decorators/index.js +137 -0
  67. package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +18 -0
  68. package/dist/esm/helpers/gaAnalyticsRegistry.js +169 -0
  69. package/dist/esm/helpers/index.d.ts +7 -4
  70. package/dist/esm/helpers/index.js +100 -63
  71. package/dist/esm/i18n/locales/en.json +53 -4
  72. package/dist/esm/index.d.ts +4 -0
  73. package/dist/esm/index.js +190 -8
  74. package/dist/esm/styles/index.d.ts +4 -1
  75. package/dist/esm/styles/index.js +22 -19
  76. package/dist/esm/types/enums.d.ts +115 -9
  77. package/dist/esm/types/enums.js +102 -3
  78. package/dist/esm/types/interfaces.d.ts +19 -0
  79. package/package.json +1 -1
@@ -574,10 +574,10 @@ export const getRawStyles = (colors) => ({
574
574
  flexDirection: 'row',
575
575
  alignItems: 'center',
576
576
  justifyContent: 'space-between',
577
- backgroundColor: colors.grayBackground,
578
- borderRadius: 7,
577
+ backgroundColor: `${colors.brandPurple}08`,
578
+ borderRadius: 8,
579
579
  borderWidth: 1,
580
- borderColor: colors.grayBorderSecondary,
580
+ borderColor: `${colors.brandPurple}18`,
581
581
  paddingHorizontal: 8,
582
582
  paddingVertical: 5,
583
583
  marginVertical: 5,
@@ -592,12 +592,16 @@ export const getRawStyles = (colors) => ({
592
592
  slugTag: {
593
593
  fontFamily: AppFonts.interBold,
594
594
  fontSize: 8.5,
595
- color: colors.grayTextWeak,
595
+ color: colors.brandPurple,
596
596
  letterSpacing: 0.5,
597
+ backgroundColor: `${colors.brandPurple}15`,
598
+ paddingHorizontal: 4,
599
+ paddingVertical: 1,
600
+ borderRadius: 4,
597
601
  },
598
602
  slugText: {
599
603
  fontFamily: AppFonts.interBold,
600
- fontSize: 12.5,
604
+ fontSize: 12,
601
605
  color: colors.primaryBlack,
602
606
  flexShrink: 1,
603
607
  },
@@ -1333,11 +1337,11 @@ export const getRawStyles = (colors) => ({
1333
1337
  backgroundColor: colors.primaryLight,
1334
1338
  borderRadius: 12,
1335
1339
  borderWidth: 1,
1336
- borderColor: colors.grayBorderSecondary,
1337
- padding: 14,
1338
- marginHorizontal: 12,
1340
+ borderColor: `${colors.brandPurple}20`,
1341
+ padding: 12,
1342
+ marginHorizontal: 10,
1339
1343
  marginTop: 8,
1340
- marginBottom: 8,
1344
+ marginBottom: 6,
1341
1345
  shadowColor: colors.black,
1342
1346
  shadowOpacity: 0.03,
1343
1347
  shadowRadius: 4,
@@ -1348,11 +1352,10 @@ export const getRawStyles = (colors) => ({
1348
1352
  flexDirection: 'row',
1349
1353
  justifyContent: 'space-between',
1350
1354
  alignItems: 'center',
1351
- marginBottom: 10,
1352
1355
  },
1353
1356
  analyticsHeaderTitle: {
1354
1357
  fontFamily: AppFonts.interBold,
1355
- fontSize: 14,
1358
+ fontSize: 13.5,
1356
1359
  color: colors.primaryBlack,
1357
1360
  },
1358
1361
  statusDot: {
@@ -1363,21 +1366,21 @@ export const getRawStyles = (colors) => ({
1363
1366
  analyticsHeaderSubtitle: {
1364
1367
  fontFamily: AppFonts.interMedium,
1365
1368
  fontSize: 11,
1366
- color: colors.grayText,
1369
+ color: colors.grayTextWeak,
1367
1370
  marginTop: 2,
1368
1371
  },
1369
1372
  analyticsHeaderToggle: {
1370
- paddingVertical: 4,
1371
- paddingHorizontal: 8,
1372
- borderRadius: 4,
1373
- backgroundColor: colors.grayBackground,
1373
+ paddingVertical: 4.5,
1374
+ paddingHorizontal: 9,
1375
+ borderRadius: 7,
1376
+ backgroundColor: `${colors.brandPurple}12`,
1374
1377
  borderWidth: 1,
1375
- borderColor: colors.grayBorderSecondary,
1378
+ borderColor: `${colors.brandPurple}25`,
1376
1379
  },
1377
1380
  analyticsHeaderToggleText: {
1378
1381
  fontFamily: AppFonts.interBold,
1379
- fontSize: 10,
1380
- color: colors.purple,
1382
+ fontSize: 10.5,
1383
+ color: colors.brandPurple,
1381
1384
  },
1382
1385
  analyticsStatsRow: {
1383
1386
  flexDirection: 'row',
@@ -1,9 +1,115 @@
1
- export type ActiveTab = 'apis' | 'analytics' | 'logs' | 'redux' | 'bundle' | 'performance';
2
- export type Method = 'ALL' | 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3
- export type StatusFilter = 'ALL' | '2xx' | '3xx' | '4xx' | '5xx' | 'Failed';
4
- export type SortOrder = 'newest' | 'oldest';
5
- export type LocalFilter = 'success' | 'failed' | 'loading';
6
- export type ModalAnimationType = 'slide' | 'fade' | 'none';
7
- export type SettingsPage = 'main' | 'apis' | 'logs' | 'analytics' | 'redux' | 'bundle' | 'performance' | null;
8
- export type SettingsSubTab = 'module' | 'ui';
9
- export type LogFilter = 'all' | 'info' | 'warn' | 'error' | 'user-log' | 'analytics';
1
+ export declare const ActiveTab: {
2
+ readonly Apis: "apis";
3
+ readonly Analytics: "analytics";
4
+ readonly Logs: "logs";
5
+ readonly Redux: "redux";
6
+ readonly Bundle: "bundle";
7
+ readonly Performance: "performance";
8
+ };
9
+ export type ActiveTab = (typeof ActiveTab)[keyof typeof ActiveTab];
10
+ export declare const Method: {
11
+ readonly All: "ALL";
12
+ readonly Get: "GET";
13
+ readonly Post: "POST";
14
+ readonly Put: "PUT";
15
+ readonly Patch: "PATCH";
16
+ readonly Delete: "DELETE";
17
+ };
18
+ export type Method = (typeof Method)[keyof typeof Method];
19
+ export declare const StatusFilter: {
20
+ readonly All: "ALL";
21
+ readonly TwoXx: "2xx";
22
+ readonly ThreeXx: "3xx";
23
+ readonly FourXx: "4xx";
24
+ readonly FiveXx: "5xx";
25
+ readonly Failed: "Failed";
26
+ };
27
+ export type StatusFilter = (typeof StatusFilter)[keyof typeof StatusFilter];
28
+ export declare const SortOrder: {
29
+ readonly Newest: "newest";
30
+ readonly Oldest: "oldest";
31
+ };
32
+ export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder];
33
+ export declare const LocalFilter: {
34
+ readonly Success: "success";
35
+ readonly Failed: "failed";
36
+ readonly Loading: "loading";
37
+ };
38
+ export type LocalFilter = (typeof LocalFilter)[keyof typeof LocalFilter];
39
+ export declare const ModalAnimationType: {
40
+ readonly Slide: "slide";
41
+ readonly Fade: "fade";
42
+ readonly None: "none";
43
+ };
44
+ export type ModalAnimationType = (typeof ModalAnimationType)[keyof typeof ModalAnimationType];
45
+ export declare const SettingsPage: {
46
+ readonly Main: "main";
47
+ readonly Apis: "apis";
48
+ readonly Logs: "logs";
49
+ readonly Analytics: "analytics";
50
+ readonly Redux: "redux";
51
+ readonly Bundle: "bundle";
52
+ readonly Performance: "performance";
53
+ };
54
+ export type SettingsPage = (typeof SettingsPage)[keyof typeof SettingsPage] | null;
55
+ export declare const SettingsSubTab: {
56
+ readonly Module: "module";
57
+ readonly Ui: "ui";
58
+ };
59
+ export type SettingsSubTab = (typeof SettingsSubTab)[keyof typeof SettingsSubTab];
60
+ export declare const LogFilter: {
61
+ readonly All: "all";
62
+ readonly Info: "info";
63
+ readonly Warn: "warn";
64
+ readonly Error: "error";
65
+ readonly UserLog: "user-log";
66
+ readonly Analytics: "analytics";
67
+ };
68
+ export type LogFilter = (typeof LogFilter)[keyof typeof LogFilter];
69
+ export declare const ConsoleLogType: {
70
+ readonly Info: "info";
71
+ readonly Warn: "warn";
72
+ readonly Error: "error";
73
+ };
74
+ export type ConsoleLogType = (typeof ConsoleLogType)[keyof typeof ConsoleLogType];
75
+ export declare const AnalyticsEventSource: {
76
+ readonly Firebase: "firebase";
77
+ readonly Manual: "manual";
78
+ };
79
+ export type AnalyticsEventSource = (typeof AnalyticsEventSource)[keyof typeof AnalyticsEventSource];
80
+ export declare const GAEventCategory: {
81
+ readonly PageView: "page_view";
82
+ readonly Ecommerce: "ecommerce";
83
+ readonly System: "system";
84
+ readonly Custom: "custom";
85
+ };
86
+ export type GAEventCategory = (typeof GAEventCategory)[keyof typeof GAEventCategory];
87
+ export declare const StackFrameType: {
88
+ readonly App: "app";
89
+ readonly Dependency: "dependency";
90
+ readonly Runtime: "runtime";
91
+ readonly Native: "native";
92
+ };
93
+ export type StackFrameType = (typeof StackFrameType)[keyof typeof StackFrameType];
94
+ export declare const DiffResultType: {
95
+ readonly Added: "added";
96
+ readonly Removed: "removed";
97
+ readonly Changed: "changed";
98
+ };
99
+ export type DiffResultType = (typeof DiffResultType)[keyof typeof DiffResultType];
100
+ export declare const BundleSubTab: {
101
+ readonly Overview: "overview";
102
+ readonly Production: "production";
103
+ readonly Files: "files";
104
+ readonly Packages: "packages";
105
+ readonly Media: "media";
106
+ readonly Optimizer: "optimizer";
107
+ };
108
+ export type BundleSubTab = (typeof BundleSubTab)[keyof typeof BundleSubTab];
109
+ export declare const PerformanceSubTab: {
110
+ readonly Overview: "overview";
111
+ readonly Renders: "renders";
112
+ readonly Interactions: "interactions";
113
+ readonly Memory: "memory";
114
+ };
115
+ export type PerformanceSubTab = (typeof PerformanceSubTab)[keyof typeof PerformanceSubTab];
@@ -1,3 +1,102 @@
1
- // ─── Enum-like union types ────────────────────────────────────────────────────
2
- // The codebase treats these as string enums (used for tab keys, filters, etc.).
3
- export {};
1
+ // ─── Enums & Constants ─────────────────────────────────────────────────────────
2
+ // Universal TypeScript Enum Objects and Type Aliases.
3
+ // Allows both enum-style access (e.g. ActiveTab.Apis) and string literals ('apis').
4
+ export const ActiveTab = {
5
+ Apis: 'apis',
6
+ Analytics: 'analytics',
7
+ Logs: 'logs',
8
+ Redux: 'redux',
9
+ Bundle: 'bundle',
10
+ Performance: 'performance',
11
+ };
12
+ export const Method = {
13
+ All: 'ALL',
14
+ Get: 'GET',
15
+ Post: 'POST',
16
+ Put: 'PUT',
17
+ Patch: 'PATCH',
18
+ Delete: 'DELETE',
19
+ };
20
+ export const StatusFilter = {
21
+ All: 'ALL',
22
+ TwoXx: '2xx',
23
+ ThreeXx: '3xx',
24
+ FourXx: '4xx',
25
+ FiveXx: '5xx',
26
+ Failed: 'Failed',
27
+ };
28
+ export const SortOrder = {
29
+ Newest: 'newest',
30
+ Oldest: 'oldest',
31
+ };
32
+ export const LocalFilter = {
33
+ Success: 'success',
34
+ Failed: 'failed',
35
+ Loading: 'loading',
36
+ };
37
+ export const ModalAnimationType = {
38
+ Slide: 'slide',
39
+ Fade: 'fade',
40
+ None: 'none',
41
+ };
42
+ export const SettingsPage = {
43
+ Main: 'main',
44
+ Apis: 'apis',
45
+ Logs: 'logs',
46
+ Analytics: 'analytics',
47
+ Redux: 'redux',
48
+ Bundle: 'bundle',
49
+ Performance: 'performance',
50
+ };
51
+ export const SettingsSubTab = {
52
+ Module: 'module',
53
+ Ui: 'ui',
54
+ };
55
+ export const LogFilter = {
56
+ All: 'all',
57
+ Info: 'info',
58
+ Warn: 'warn',
59
+ Error: 'error',
60
+ UserLog: 'user-log',
61
+ Analytics: 'analytics',
62
+ };
63
+ export const ConsoleLogType = {
64
+ Info: 'info',
65
+ Warn: 'warn',
66
+ Error: 'error',
67
+ };
68
+ export const AnalyticsEventSource = {
69
+ Firebase: 'firebase',
70
+ Manual: 'manual',
71
+ };
72
+ export const GAEventCategory = {
73
+ PageView: 'page_view',
74
+ Ecommerce: 'ecommerce',
75
+ System: 'system',
76
+ Custom: 'custom',
77
+ };
78
+ export const StackFrameType = {
79
+ App: 'app',
80
+ Dependency: 'dependency',
81
+ Runtime: 'runtime',
82
+ Native: 'native',
83
+ };
84
+ export const DiffResultType = {
85
+ Added: 'added',
86
+ Removed: 'removed',
87
+ Changed: 'changed',
88
+ };
89
+ export const BundleSubTab = {
90
+ Overview: 'overview',
91
+ Production: 'production',
92
+ Files: 'files',
93
+ Packages: 'packages',
94
+ Media: 'media',
95
+ Optimizer: 'optimizer',
96
+ };
97
+ export const PerformanceSubTab = {
98
+ Overview: 'overview',
99
+ Renders: 'renders',
100
+ Interactions: 'interactions',
101
+ Memory: 'memory',
102
+ };
@@ -32,6 +32,21 @@ export interface AnalyticsEvent {
32
32
  pageTitle?: string;
33
33
  pageLocation?: string;
34
34
  }
35
+ export interface AnalyticsFilters {
36
+ categories: Set<string>;
37
+ screens: Set<string>;
38
+ sources: Set<string>;
39
+ userTypes: Set<string>;
40
+ timeWindow: 'all' | '1m' | '5m' | '15m' | '1h';
41
+ payloadComplexity: 'all' | 'none' | 'simple' | 'heavy';
42
+ hasRevenue: boolean;
43
+ hasItems: boolean;
44
+ hasUserProps: boolean;
45
+ hasParams: boolean;
46
+ onlyDuplicates: boolean;
47
+ onlyConversions: boolean;
48
+ sortBy: 'time_desc' | 'time_asc' | 'revenue_desc' | 'count_desc';
49
+ }
35
50
  export interface NetworkLog {
36
51
  id: number;
37
52
  url: string;
@@ -192,6 +207,10 @@ export interface InspectorContextValue {
192
207
  })[];
193
208
  analyticsSearch: string;
194
209
  setAnalyticsSearch: React.Dispatch<React.SetStateAction<string>>;
210
+ analyticsFilters: AnalyticsFilters;
211
+ setAnalyticsFilters: React.Dispatch<React.SetStateAction<AnalyticsFilters>>;
212
+ isAnalyticsFilterApplied: boolean;
213
+ resetAnalyticsFilters: () => void;
195
214
  newEventIds: Set<number>;
196
215
  isAnalyticsLayoutReady: boolean;
197
216
  setIsAnalyticsLayoutReady: React.Dispatch<React.SetStateAction<boolean>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-inapp-inspector",
3
- "version": "1.1.23",
3
+ "version": "1.1.25",
4
4
  "description": "The zero-config, all-in-one in-app debugger for React Native & Expo. Inspect Network (fetch/axios), Console logs, Stack Traces, Redux State, Firebase Analytics, and JS Bundle size directly on device.",
5
5
  "repository": {
6
6
  "type": "git",