react-native-inapp-inspector 1.1.34 → 2.0.0
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.
- package/README.md +123 -101
- package/android/build.gradle +13 -1
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +904 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorPackage.kt +17 -0
- package/dist/commonjs/components/ConsoleLogCard.js +57 -56
- package/dist/commonjs/components/CopyButton.js +10 -1
- package/dist/commonjs/components/ErrorBoundary.js +3 -0
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +7 -3
- package/dist/commonjs/components/Inspector/BundleTab.js +20 -20
- package/dist/commonjs/components/Inspector/ConsoleTab.js +1 -1
- package/dist/commonjs/components/Inspector/CrashDetail.js +16 -12
- package/dist/commonjs/components/Inspector/CrashTab.js +97 -90
- package/dist/commonjs/components/Inspector/InspectorHeader.js +28 -24
- package/dist/commonjs/components/Inspector/MainScreen.js +20 -103
- package/dist/commonjs/components/Inspector/NetworkTab.js +143 -10
- package/dist/commonjs/components/Inspector/PerformanceTab.js +96 -3
- package/dist/commonjs/components/Inspector/ReduxDetail.js +24 -19
- package/dist/commonjs/components/Inspector/ReduxTab.js +30 -18
- package/dist/commonjs/components/Inspector/SettingsPanel.js +1578 -754
- package/dist/commonjs/components/Inspector/TabBar.js +6 -3
- package/dist/commonjs/components/LogCard.js +27 -9
- package/dist/commonjs/components/MetaAccordion.js +42 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +10 -0
- package/dist/commonjs/components/NetworkIcons.js +53 -1
- package/dist/commonjs/components/Toast.js +3 -3
- package/dist/commonjs/components/TouchableScale.d.ts +5 -2
- package/dist/commonjs/components/TouchableScale.js +30 -32
- package/dist/commonjs/constants/index.d.ts +1 -2
- package/dist/commonjs/constants/index.js +4 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/analyticsLogger.d.ts +6 -0
- package/dist/commonjs/customHooks/analyticsLogger.js +16 -5
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +2 -0
- package/dist/commonjs/customHooks/bundleAnalyzer.js +26 -17
- package/dist/commonjs/customHooks/consoleLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/consoleLogger.js +10 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +2 -0
- package/dist/commonjs/customHooks/crashHandler.js +17 -1
- package/dist/commonjs/customHooks/networkLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/networkLogger.js +12 -1
- package/dist/commonjs/customHooks/performanceTracker.d.ts +3 -1
- package/dist/commonjs/customHooks/performanceTracker.js +18 -4
- package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/reduxLogger.js +10 -1
- package/dist/commonjs/helpers/index.js +10 -1
- package/dist/commonjs/helpers/settingsStore.d.ts +9 -0
- package/dist/commonjs/helpers/settingsStore.js +59 -3
- package/dist/commonjs/i18n/locales/en.json +96 -28
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +307 -73
- package/dist/commonjs/native/NativeInspector.d.ts +125 -0
- package/dist/commonjs/native/NativeInspector.js +313 -0
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +22 -0
- package/dist/commonjs/native/NativeNetworkInspector.js +4 -0
- package/dist/commonjs/styles/AppColors.d.ts +28 -0
- package/dist/commonjs/styles/AppColors.js +30 -0
- package/dist/commonjs/styles/index.js +6 -6
- package/dist/commonjs/types/enums.d.ts +1 -1
- package/dist/commonjs/types/interfaces.d.ts +9 -0
- package/dist/esm/components/ConsoleLogCard.js +58 -57
- package/dist/esm/components/CopyButton.js +10 -1
- package/dist/esm/components/ErrorBoundary.js +3 -0
- package/dist/esm/components/Inspector/AnalyticsTab.js +7 -3
- package/dist/esm/components/Inspector/BundleTab.js +20 -20
- package/dist/esm/components/Inspector/ConsoleTab.js +1 -1
- package/dist/esm/components/Inspector/CrashDetail.js +16 -12
- package/dist/esm/components/Inspector/CrashTab.js +97 -90
- package/dist/esm/components/Inspector/InspectorHeader.js +29 -25
- package/dist/esm/components/Inspector/MainScreen.js +21 -71
- package/dist/esm/components/Inspector/NetworkTab.js +145 -12
- package/dist/esm/components/Inspector/PerformanceTab.js +96 -3
- package/dist/esm/components/Inspector/ReduxDetail.js +24 -19
- package/dist/esm/components/Inspector/ReduxTab.js +30 -18
- package/dist/esm/components/Inspector/SettingsPanel.js +1582 -758
- package/dist/esm/components/Inspector/TabBar.js +7 -4
- package/dist/esm/components/LogCard.js +27 -9
- package/dist/esm/components/MetaAccordion.js +42 -0
- package/dist/esm/components/NetworkIcons.d.ts +10 -0
- package/dist/esm/components/NetworkIcons.js +42 -0
- package/dist/esm/components/Toast.js +3 -3
- package/dist/esm/components/TouchableScale.d.ts +5 -2
- package/dist/esm/components/TouchableScale.js +31 -33
- package/dist/esm/constants/index.d.ts +1 -2
- package/dist/esm/constants/index.js +4 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/analyticsLogger.d.ts +6 -0
- package/dist/esm/customHooks/analyticsLogger.js +12 -4
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +2 -0
- package/dist/esm/customHooks/bundleAnalyzer.js +23 -16
- package/dist/esm/customHooks/consoleLogger.d.ts +2 -0
- package/dist/esm/customHooks/consoleLogger.js +7 -0
- package/dist/esm/customHooks/crashHandler.d.ts +2 -0
- package/dist/esm/customHooks/crashHandler.js +14 -0
- package/dist/esm/customHooks/networkLogger.d.ts +2 -0
- package/dist/esm/customHooks/networkLogger.js +9 -0
- package/dist/esm/customHooks/performanceTracker.d.ts +3 -1
- package/dist/esm/customHooks/performanceTracker.js +15 -3
- package/dist/esm/customHooks/reduxLogger.d.ts +2 -0
- package/dist/esm/customHooks/reduxLogger.js +7 -0
- package/dist/esm/helpers/index.js +10 -1
- package/dist/esm/helpers/settingsStore.d.ts +9 -0
- package/dist/esm/helpers/settingsStore.js +58 -3
- package/dist/esm/i18n/locales/en.json +96 -28
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +279 -59
- package/dist/esm/native/NativeInspector.d.ts +125 -0
- package/dist/esm/native/NativeInspector.js +289 -0
- package/dist/esm/native/NativeNetworkInspector.d.ts +22 -0
- package/dist/esm/native/NativeNetworkInspector.js +2 -0
- package/dist/esm/styles/AppColors.d.ts +28 -0
- package/dist/esm/styles/AppColors.js +30 -0
- package/dist/esm/styles/index.js +6 -6
- package/dist/esm/types/enums.d.ts +1 -1
- package/dist/esm/types/interfaces.d.ts +9 -0
- package/ios/NetworkInspectorModule.h +6 -0
- package/ios/NetworkInspectorModule.m +720 -5
- package/package.json +15 -3
- package/react-native-inapp-inspector.podspec +7 -2
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.java +0 -97
- package/android/src/main/java/com/inappinspector/NetworkInspectorPackage.java +0 -28
|
@@ -77,6 +77,8 @@ export declare function getCallerSourceFile(fallbackName?: string): string;
|
|
|
77
77
|
export declare const getInitialRenderProfiles: () => ComponentRenderProfile[];
|
|
78
78
|
export declare const getInitialPerformanceEvents: () => PerformanceEvent[];
|
|
79
79
|
export declare const INITIAL_EVENTS: PerformanceEvent[];
|
|
80
|
+
export declare const setPerformanceModuleEnabled: (enabled: boolean) => void;
|
|
81
|
+
export declare const getPerformanceModuleEnabled: () => boolean;
|
|
80
82
|
export declare const subscribeRenderProfiles: (listener: (profiles: ComponentRenderProfile[]) => void) => () => void;
|
|
81
83
|
export declare const getRenderProfiles: () => ComponentRenderProfile[];
|
|
82
84
|
export declare const registerComponentProfile: (profile: ComponentRenderProfile) => void;
|
|
@@ -129,7 +131,7 @@ export declare const useComponentProfiler: (componentName: string, options?: {
|
|
|
129
131
|
sourceFile?: string;
|
|
130
132
|
propsToCompare?: Record<string, any>;
|
|
131
133
|
}) => void;
|
|
132
|
-
export declare const usePerformanceTracker: () => {
|
|
134
|
+
export declare const usePerformanceTracker: (enabled?: boolean) => {
|
|
133
135
|
isRecording: boolean;
|
|
134
136
|
setIsRecording: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
135
137
|
currentFps: number;
|
|
@@ -170,6 +170,11 @@ export function getCallerSourceFile(fallbackName) {
|
|
|
170
170
|
export const getInitialRenderProfiles = () => [];
|
|
171
171
|
export const getInitialPerformanceEvents = () => [];
|
|
172
172
|
export const INITIAL_EVENTS = [];
|
|
173
|
+
let isPerformanceModuleEnabled = false;
|
|
174
|
+
export const setPerformanceModuleEnabled = (enabled) => {
|
|
175
|
+
isPerformanceModuleEnabled = enabled;
|
|
176
|
+
};
|
|
177
|
+
export const getPerformanceModuleEnabled = () => isPerformanceModuleEnabled;
|
|
173
178
|
const globalRenderRegistry = new Map();
|
|
174
179
|
const renderListeners = new Set();
|
|
175
180
|
const notifyRenderListeners = () => {
|
|
@@ -190,10 +195,14 @@ export const subscribeRenderProfiles = (listener) => {
|
|
|
190
195
|
};
|
|
191
196
|
export const getRenderProfiles = () => Array.from(globalRenderRegistry.values());
|
|
192
197
|
export const registerComponentProfile = (profile) => {
|
|
198
|
+
if (!isPerformanceModuleEnabled)
|
|
199
|
+
return;
|
|
193
200
|
globalRenderRegistry.set(profile.name, profile);
|
|
194
201
|
notifyRenderListeners();
|
|
195
202
|
};
|
|
196
203
|
export const trackComponentRender = (params) => {
|
|
204
|
+
if (!isPerformanceModuleEnabled)
|
|
205
|
+
return;
|
|
197
206
|
const existing = globalRenderRegistry.get(params.name);
|
|
198
207
|
const now = Date.now();
|
|
199
208
|
const renderTimeMs = params.renderTimeMs ?? 1.5;
|
|
@@ -434,7 +443,8 @@ export const useComponentProfiler = (componentName, options) => {
|
|
|
434
443
|
});
|
|
435
444
|
});
|
|
436
445
|
};
|
|
437
|
-
export const usePerformanceTracker = () => {
|
|
446
|
+
export const usePerformanceTracker = (enabled = true) => {
|
|
447
|
+
const isTrackerActive = enabled && isPerformanceModuleEnabled;
|
|
438
448
|
const [isRecording, setIsRecording] = useState(true);
|
|
439
449
|
const [currentFps, setCurrentFps] = useState(60);
|
|
440
450
|
const [minFps, setMinFps] = useState(60);
|
|
@@ -448,6 +458,8 @@ export const usePerformanceTracker = () => {
|
|
|
448
458
|
const [renderProfiles, setRenderProfiles] = useState(() => getRenderProfiles());
|
|
449
459
|
const [events, setEvents] = useState(() => getPerformanceEvents());
|
|
450
460
|
useEffect(() => {
|
|
461
|
+
if (!isTrackerActive)
|
|
462
|
+
return;
|
|
451
463
|
const unsubRender = subscribeRenderProfiles(profiles => {
|
|
452
464
|
setRenderProfiles(profiles);
|
|
453
465
|
});
|
|
@@ -458,13 +470,13 @@ export const usePerformanceTracker = () => {
|
|
|
458
470
|
unsubRender();
|
|
459
471
|
unsubEvents();
|
|
460
472
|
};
|
|
461
|
-
}, []);
|
|
473
|
+
}, [isTrackerActive]);
|
|
462
474
|
const lastFrameTimeRef = useRef(Date.now());
|
|
463
475
|
const rafIdRef = useRef(null);
|
|
464
476
|
const appStartTimestampRef = useRef(Date.now());
|
|
465
477
|
// Live Frame Measurement Loop
|
|
466
478
|
useEffect(() => {
|
|
467
|
-
if (!isRecording)
|
|
479
|
+
if (!isTrackerActive || !isRecording)
|
|
468
480
|
return;
|
|
469
481
|
let isMounted = true;
|
|
470
482
|
let frameCount = 0;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ReduxHistoryEntry } from '../types';
|
|
2
2
|
export { ReduxHistoryEntry };
|
|
3
|
+
export declare const setReduxModuleEnabled: (enabled: boolean) => void;
|
|
4
|
+
export declare const getReduxModuleEnabled: () => boolean;
|
|
3
5
|
export declare const isReduxConnected: () => boolean;
|
|
4
6
|
export declare const getReduxState: () => any;
|
|
5
7
|
export declare const setReduxAutoRefresh: (val: boolean) => void;
|
|
@@ -15,6 +15,11 @@ import { parseStackLine } from '../helpers';
|
|
|
15
15
|
let currentReduxState = null;
|
|
16
16
|
const listeners = new Set();
|
|
17
17
|
let globalReduxAutoRefresh = true;
|
|
18
|
+
let isReduxModuleEnabled = false;
|
|
19
|
+
export const setReduxModuleEnabled = (enabled) => {
|
|
20
|
+
isReduxModuleEnabled = enabled;
|
|
21
|
+
};
|
|
22
|
+
export const getReduxModuleEnabled = () => isReduxModuleEnabled;
|
|
18
23
|
let lastActionForReducer = {};
|
|
19
24
|
let actionHistory = [];
|
|
20
25
|
const MAX_HISTORY = 50;
|
|
@@ -163,6 +168,8 @@ function extractSliceName(actionType, affectedSlices) {
|
|
|
163
168
|
return undefined;
|
|
164
169
|
}
|
|
165
170
|
function recordAction(action, prevState, nextState, rawStack) {
|
|
171
|
+
if (!isReduxModuleEnabled)
|
|
172
|
+
return;
|
|
166
173
|
const stack = rawStack || new Error().stack || '';
|
|
167
174
|
const type = actionTypeOf(action);
|
|
168
175
|
const payload = action && typeof action === 'object' && action.payload !== undefined
|
|
@@ -156,9 +156,18 @@ export const getFetchCommand = (log) => {
|
|
|
156
156
|
export const deduplicateLogs = (raw) => {
|
|
157
157
|
const map = new Map();
|
|
158
158
|
raw.forEach(entry => {
|
|
159
|
-
if (!map.has(entry.id)
|
|
159
|
+
if (!map.has(entry.id)) {
|
|
160
160
|
map.set(entry.id, entry);
|
|
161
161
|
}
|
|
162
|
+
else {
|
|
163
|
+
const existing = map.get(entry.id);
|
|
164
|
+
if (existing.status == null && entry.status != null) {
|
|
165
|
+
map.set(entry.id, entry);
|
|
166
|
+
}
|
|
167
|
+
else if ((entry.startTime ?? 0) >= (existing.startTime ?? 0)) {
|
|
168
|
+
map.set(entry.id, entry);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
162
171
|
});
|
|
163
172
|
return Array.from(map.values()).sort((a, b) => b.id - a.id);
|
|
164
173
|
};
|
|
@@ -6,3 +6,12 @@ export declare function saveSettings(settings: PersistedSettings): void;
|
|
|
6
6
|
export declare function clearPersistedSettings(): Promise<void>;
|
|
7
7
|
export declare const isPersistentStorageAvailable: () => boolean;
|
|
8
8
|
export declare function getCustomStorage(): InspectorStorage | null;
|
|
9
|
+
export interface RamLimitsProfile {
|
|
10
|
+
maxNetworkLogs: number;
|
|
11
|
+
maxConsoleLogs: number;
|
|
12
|
+
maxAnalyticsEvents: number;
|
|
13
|
+
maxCrashRecords: number;
|
|
14
|
+
profileName: 'High-End' | 'Standard' | 'Compact' | 'Ultra-Light';
|
|
15
|
+
freeRamMb: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function calculateRamBasedLimits(freeRamMb: number): RamLimitsProfile;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// Backed by iOS Settings (NSUserDefaults) for iOS, or custom storage if passed (e.g. AsyncStorage/MMKV).
|
|
4
4
|
// Contains an in-memory fallback for Android or Jest test environments.
|
|
5
5
|
import { Platform, Settings } from 'react-native';
|
|
6
|
+
import { getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, } from '../native/NativeInspector';
|
|
6
7
|
// In-memory fallback (settings survive for the app session only).
|
|
7
8
|
const memory = new Map();
|
|
8
9
|
let customStorage = null;
|
|
@@ -19,6 +20,13 @@ export async function loadSettings() {
|
|
|
19
20
|
const parsed = JSON.parse(raw);
|
|
20
21
|
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
21
22
|
}
|
|
23
|
+
if (isNativeModuleAvailable()) {
|
|
24
|
+
const raw = await getNativeStorageItem(SETTINGS_KEY);
|
|
25
|
+
if (raw) {
|
|
26
|
+
const parsed = JSON.parse(raw);
|
|
27
|
+
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
22
30
|
if (Platform.OS === 'ios') {
|
|
23
31
|
const raw = Settings.get(SETTINGS_KEY);
|
|
24
32
|
if (!raw)
|
|
@@ -29,7 +37,7 @@ export async function loadSettings() {
|
|
|
29
37
|
}
|
|
30
38
|
return raw && typeof raw === 'object' ? raw : {};
|
|
31
39
|
}
|
|
32
|
-
//
|
|
40
|
+
// In-memory fallback
|
|
33
41
|
const raw = memory.get(SETTINGS_KEY);
|
|
34
42
|
if (!raw)
|
|
35
43
|
return {};
|
|
@@ -47,11 +55,13 @@ export function saveSettings(settings) {
|
|
|
47
55
|
customStorage.setItem(SETTINGS_KEY, raw);
|
|
48
56
|
return;
|
|
49
57
|
}
|
|
58
|
+
if (isNativeModuleAvailable()) {
|
|
59
|
+
setNativeStorageItem(SETTINGS_KEY, raw);
|
|
60
|
+
}
|
|
50
61
|
if (Platform.OS === 'ios') {
|
|
51
62
|
Settings.set({ [SETTINGS_KEY]: raw });
|
|
52
63
|
return;
|
|
53
64
|
}
|
|
54
|
-
// Android/fallback: memory
|
|
55
65
|
memory.set(SETTINGS_KEY, raw);
|
|
56
66
|
}
|
|
57
67
|
catch {
|
|
@@ -69,6 +79,9 @@ export async function clearPersistedSettings() {
|
|
|
69
79
|
}
|
|
70
80
|
return;
|
|
71
81
|
}
|
|
82
|
+
if (isNativeModuleAvailable()) {
|
|
83
|
+
await setNativeStorageItem(SETTINGS_KEY, null);
|
|
84
|
+
}
|
|
72
85
|
if (Platform.OS === 'ios') {
|
|
73
86
|
Settings.set({ [SETTINGS_KEY]: null });
|
|
74
87
|
return;
|
|
@@ -80,8 +93,50 @@ export async function clearPersistedSettings() {
|
|
|
80
93
|
}
|
|
81
94
|
}
|
|
82
95
|
export const isPersistentStorageAvailable = () => {
|
|
83
|
-
return customStorage !== null || Platform.OS === 'ios';
|
|
96
|
+
return customStorage !== null || isNativeModuleAvailable() || Platform.OS === 'ios';
|
|
84
97
|
};
|
|
85
98
|
export function getCustomStorage() {
|
|
86
99
|
return customStorage;
|
|
87
100
|
}
|
|
101
|
+
export function calculateRamBasedLimits(freeRamMb) {
|
|
102
|
+
if (freeRamMb >= 3000) {
|
|
103
|
+
return {
|
|
104
|
+
maxNetworkLogs: 1000,
|
|
105
|
+
maxConsoleLogs: 1500,
|
|
106
|
+
maxAnalyticsEvents: 500,
|
|
107
|
+
maxCrashRecords: 100,
|
|
108
|
+
profileName: 'High-End',
|
|
109
|
+
freeRamMb,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
else if (freeRamMb >= 1500) {
|
|
113
|
+
return {
|
|
114
|
+
maxNetworkLogs: 500,
|
|
115
|
+
maxConsoleLogs: 750,
|
|
116
|
+
maxAnalyticsEvents: 250,
|
|
117
|
+
maxCrashRecords: 50,
|
|
118
|
+
profileName: 'Standard',
|
|
119
|
+
freeRamMb,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else if (freeRamMb >= 600) {
|
|
123
|
+
return {
|
|
124
|
+
maxNetworkLogs: 200,
|
|
125
|
+
maxConsoleLogs: 300,
|
|
126
|
+
maxAnalyticsEvents: 100,
|
|
127
|
+
maxCrashRecords: 25,
|
|
128
|
+
profileName: 'Compact',
|
|
129
|
+
freeRamMb,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
return {
|
|
134
|
+
maxNetworkLogs: 100,
|
|
135
|
+
maxConsoleLogs: 150,
|
|
136
|
+
maxAnalyticsEvents: 50,
|
|
137
|
+
maxCrashRecords: 15,
|
|
138
|
+
profileName: 'Ultra-Light',
|
|
139
|
+
freeRamMb,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -39,12 +39,35 @@
|
|
|
39
39
|
"redux": "Redux"
|
|
40
40
|
},
|
|
41
41
|
"settings": {
|
|
42
|
-
"mainTitle": "Settings",
|
|
42
|
+
"mainTitle": "Settings & Modules",
|
|
43
|
+
"mainSubtitle": "Manage modules and preferences",
|
|
43
44
|
"requiredBadge": "REQUIRED",
|
|
44
45
|
"defaultBadge": "DEFAULT",
|
|
45
46
|
"notConnectedBadge": "NOT CONNECTED",
|
|
46
47
|
"notDetectedBadge": "NOT DETECTED",
|
|
47
48
|
"readOnlyBadge": "READ ONLY",
|
|
49
|
+
"coreBadge": "CORE",
|
|
50
|
+
"activeBadge": "ACTIVE",
|
|
51
|
+
"dormantBadge": "DORMANT",
|
|
52
|
+
"protectedBadge": "PROTECTED",
|
|
53
|
+
"modulesAndTools": "Modules & Tools",
|
|
54
|
+
"uiPreferences": "UI Preferences",
|
|
55
|
+
"zeroOverheadTitle": "Zero Background Overhead",
|
|
56
|
+
"zeroOverheadDesc": "Check the modules you wish to activate. Disabled modules consume 0% CPU & memory until saved.",
|
|
57
|
+
"unsavedPending": "● Unsaved selections pending",
|
|
58
|
+
"allSynchronized": "All modules synchronized",
|
|
59
|
+
"modulesActive": "{{active}} of {{total}} Modules Active",
|
|
60
|
+
"saveChanges": "Save Changes",
|
|
61
|
+
"settingsSaved": "Settings Saved",
|
|
62
|
+
"settingsSavedDesc": "Active module configurations have been successfully updated.",
|
|
63
|
+
"configure": "Configure",
|
|
64
|
+
"appearanceTheme": "APPEARANCE & THEME",
|
|
65
|
+
"windowLayout": "WINDOW & LAYOUT",
|
|
66
|
+
"startupDefault": "STARTUP & DEFAULT SCREEN",
|
|
67
|
+
"logFiltersDeduplication": "LOG FILTERS & DEDUPLICATION",
|
|
68
|
+
"resetSettings": "Reset All Settings",
|
|
69
|
+
"resetSettingsDesc": "Wipe customized preferences back to default",
|
|
70
|
+
"reset": "Reset",
|
|
48
71
|
"reduxNotConnectedTip": "Redux store is not connected. Call connectReduxStore(store) or use inspectorReduxMiddleware to enable.",
|
|
49
72
|
"analyticsNotConnectedTip": "Analytics is not initialized. Call setupAnalyticsLogger(analytics()) to enable.",
|
|
50
73
|
"tabVisibility": "Tab Visibility",
|
|
@@ -55,7 +78,7 @@
|
|
|
55
78
|
"title": "APIs Settings",
|
|
56
79
|
"total": "Total: {{count}}",
|
|
57
80
|
"maxRequestLogs": "Max Request Logs",
|
|
58
|
-
"maxRequestLogsDescription": "
|
|
81
|
+
"maxRequestLogsDescription": "Buffer size of network requests preserved in memory",
|
|
59
82
|
"clearNetworkLogs": "Clear Network Logs",
|
|
60
83
|
"clearNetworkLogsDescription": "{{count}} requests stored",
|
|
61
84
|
"networkLogsCleared": "Network logs cleared.",
|
|
@@ -69,56 +92,91 @@
|
|
|
69
92
|
"title": "Logs Settings",
|
|
70
93
|
"total": "Total: {{count}}",
|
|
71
94
|
"maxConsoleLogs": "Max Console Logs",
|
|
72
|
-
"maxConsoleLogsDescription": "How many console
|
|
73
|
-
"logLevels": "Log
|
|
74
|
-
"logLevelsDescription": "
|
|
75
|
-
"showInfo": "Show
|
|
76
|
-
"
|
|
77
|
-
"
|
|
95
|
+
"maxConsoleLogsDescription": "How many console messages to retain",
|
|
96
|
+
"logLevels": "Log Severities",
|
|
97
|
+
"logLevelsDescription": "Select which severities to capture in Logs",
|
|
98
|
+
"showInfo": "Show Info logs",
|
|
99
|
+
"showInfoDesc": "Informational logs & debug prints",
|
|
100
|
+
"showWarn": "Show Warning logs",
|
|
101
|
+
"showWarnDesc": "Warning notices & deprecations",
|
|
102
|
+
"showError": "Show Error logs",
|
|
103
|
+
"showErrorDesc": "Runtime errors & exceptions",
|
|
78
104
|
"clearConsoleLogs": "Clear Console Logs",
|
|
79
105
|
"clearConsoleLogsDescription": "{{count}} logs stored",
|
|
80
106
|
"consoleLogsCleared": "Console logs cleared."
|
|
81
107
|
},
|
|
82
108
|
"analytics": {
|
|
83
109
|
"title": "Analytics Settings",
|
|
84
|
-
"total": "
|
|
85
|
-
"maxAnalyticsEvents": "
|
|
86
|
-
"maxAnalyticsEventsDescription": "
|
|
87
|
-
"clearAnalyticsEvents": "Clear Analytics
|
|
88
|
-
"clearAnalyticsEventsDescription": "
|
|
110
|
+
"total": "Events: {{count}}",
|
|
111
|
+
"maxAnalyticsEvents": "Events Captured",
|
|
112
|
+
"maxAnalyticsEventsDescription": "{{count}} analytics events stored in buffer",
|
|
113
|
+
"clearAnalyticsEvents": "Clear Analytics History",
|
|
114
|
+
"clearAnalyticsEventsDescription": "Wipe all captured telemetry events",
|
|
89
115
|
"analyticsEventsCleared": "Analytics events cleared."
|
|
90
116
|
},
|
|
91
117
|
"redux": {
|
|
92
118
|
"title": "Redux Settings",
|
|
93
119
|
"reducers": "Reducers: {{count}}",
|
|
94
120
|
"autoRefresh": "Auto-refresh Store",
|
|
95
|
-
"autoRefreshDescription": "
|
|
121
|
+
"autoRefreshDescription": "Capture Redux store state tree on every dispatch",
|
|
96
122
|
"defaultJsonExpandDepth": "Default JSON Expand Depth",
|
|
97
123
|
"defaultJsonExpandDepthDescription": "Initial depth of Redux state tree to auto-expand",
|
|
98
124
|
"clearReduxState": "Clear Redux State",
|
|
99
|
-
"clearReduxStateDescription": "Reset state snapshot in inspector",
|
|
100
|
-
"clearReduxStateEmpty": "No store snapshot
|
|
125
|
+
"clearReduxStateDescription": "Reset current state snapshot in inspector",
|
|
126
|
+
"clearReduxStateEmpty": "No store snapshot recorded",
|
|
101
127
|
"reduxStateCleared": "Redux state snapshot cleared.",
|
|
102
128
|
"clearReduxTimeline": "Clear Redux Timeline",
|
|
103
129
|
"clearReduxTimelineDescription": "Remove all captured action history",
|
|
104
130
|
"reduxTimelineCleared": "Redux action history cleared."
|
|
105
131
|
},
|
|
132
|
+
"bundle": {
|
|
133
|
+
"title": "Bundle Settings",
|
|
134
|
+
"sourceBundler": "Metro Source Bundler",
|
|
135
|
+
"sourceBundlerDesc": "Parses live module trees and calculates binary size breakdowns",
|
|
136
|
+
"clearCache": "Clear Bundle Cache",
|
|
137
|
+
"clearCacheDesc": "Force re-fetching and parsing of JS bundle",
|
|
138
|
+
"cacheCleared": "Bundle analysis cache cleared."
|
|
139
|
+
},
|
|
140
|
+
"performance": {
|
|
141
|
+
"title": "Performance Settings",
|
|
142
|
+
"frameMeasurement": "Live Frame Measurement",
|
|
143
|
+
"frameMeasurementDesc": "Samples UI/JS frame rates & detects wasteful re-renders",
|
|
144
|
+
"clearEvents": "Clear Performance Events",
|
|
145
|
+
"clearEventsDesc": "Reset recorded jank and FPS drops history",
|
|
146
|
+
"eventsCleared": "Performance events cleared."
|
|
147
|
+
},
|
|
148
|
+
"crash": {
|
|
149
|
+
"title": "Crash Settings",
|
|
150
|
+
"maxCrashLogs": "Max Crash Logs",
|
|
151
|
+
"maxCrashLogsDesc": "How many crash records to preserve in history",
|
|
152
|
+
"globalGuard": "Global Crash Guard",
|
|
153
|
+
"globalGuardDesc": "Intercepts native, JS, and render errors directly",
|
|
154
|
+
"clearHistory": "Clear Crash History",
|
|
155
|
+
"clearHistoryDesc": "{{count}} crash logs stored",
|
|
156
|
+
"historyCleared": "Crash logs cleared."
|
|
157
|
+
},
|
|
106
158
|
"general": {
|
|
107
|
-
"darkMode": "Dark Mode",
|
|
108
|
-
"darkModeDescription": "
|
|
109
|
-
"modalHeight": "
|
|
110
|
-
"modalHeightDescription": "
|
|
111
|
-
"modalAnimation": "
|
|
112
|
-
"modalAnimationDescription": "
|
|
159
|
+
"darkMode": "Dark Mode Theme",
|
|
160
|
+
"darkModeDescription": "Toggle sleek dark aesthetic or light contrast",
|
|
161
|
+
"modalHeight": "Inspector Window Height",
|
|
162
|
+
"modalHeightDescription": "Modal screen coverage percentage",
|
|
163
|
+
"modalAnimation": "Transition Animation",
|
|
164
|
+
"modalAnimationDescription": "Entrance and dismissal presentation style",
|
|
113
165
|
"duplicateLogs": "Show Duplicate Logs",
|
|
114
|
-
"duplicateLogsDescription": "
|
|
166
|
+
"duplicateLogsDescription": "Off: Identical repeated entries collapse into ×N badges",
|
|
167
|
+
"defaultOpeningTab": "Default Opening Tab",
|
|
168
|
+
"defaultOpeningTabDesc": "Initial tab active when launcher button is tapped",
|
|
169
|
+
"activeConsoleLogLevels": "Active Console Log Levels",
|
|
170
|
+
"activeConsoleLogLevelsDesc": "Select which severities to capture in Logs",
|
|
115
171
|
"resetToDefaults": "Reset to Defaults",
|
|
116
172
|
"resetToDefaultsDescription": "Restore all inspector settings",
|
|
117
173
|
"resetConfirmationTitle": "Settings Reset",
|
|
118
174
|
"resetConfirmationMessage": "All settings have been reset to default values.",
|
|
119
175
|
"storageStatus": "Persistent Storage",
|
|
120
|
-
"storageStatusEnabled": "Settings
|
|
121
|
-
"
|
|
176
|
+
"storageStatusEnabled": "Settings Storage: Persistent ({{type}})",
|
|
177
|
+
"storageStatusEnabledDesc": "Your preferences and module visibility persist across app reboots.",
|
|
178
|
+
"storageStatusDisabled": "Settings Storage: In-Memory (Temporary)",
|
|
179
|
+
"storageStatusDisabledDesc": "Preferences reset on app kill. Pass custom storage to <NetworkInspector storage={...} /> to persist on Android."
|
|
122
180
|
}
|
|
123
181
|
},
|
|
124
182
|
"network": {
|
|
@@ -178,10 +236,20 @@
|
|
|
178
236
|
"noMatchingHeaders": "No matching headers",
|
|
179
237
|
"diffHidden": "{ Diff hidden }",
|
|
180
238
|
"noDiff": "No differences from previous API.",
|
|
239
|
+
"healthTitle": "Network Health & Telemetry",
|
|
240
|
+
"successRate": "Success Rate",
|
|
241
|
+
"avgLatency": "Avg Latency",
|
|
242
|
+
"p95Latency": "P95 Latency",
|
|
243
|
+
"bandwidth": "Bandwidth",
|
|
244
|
+
"fastest": "Fastest",
|
|
245
|
+
"slowest": "Slowest",
|
|
246
|
+
"timingWaterfall": "Timing Waterfall & Latency",
|
|
247
|
+
"throughput": "Throughput",
|
|
248
|
+
"performanceTier": "Performance Tier",
|
|
181
249
|
"perf": {
|
|
182
|
-
"fast": "Fast",
|
|
183
|
-
"moderate": "Moderate",
|
|
184
|
-
"slow": "Slow"
|
|
250
|
+
"fast": "Fast (< 200ms)",
|
|
251
|
+
"moderate": "Moderate (200-800ms)",
|
|
252
|
+
"slow": "Slow (> 800ms)"
|
|
185
253
|
},
|
|
186
254
|
"jsonViewer": {
|
|
187
255
|
"pretty": "Pretty",
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -12,4 +12,5 @@ export { connectReduxStore, inspectorReduxMiddleware, getReduxState, subscribeRe
|
|
|
12
12
|
export { getEventCategory, registerGAPlugin, type GAPlugin, } from './helpers/gaAnalyticsRegistry';
|
|
13
13
|
export { usePerformanceTracker, useComponentProfiler, useNavigationProfiler, trackComponentRender, trackNavigationTransition, trackHeavyTask, measureAsync, getHermesMemoryStats, registerComponentProfile, subscribeRenderProfiles, getRenderProfiles, logPerformanceEvent, clearPerformanceEvents, subscribePerformanceEvents, getPerformanceEvents, getInitialRenderProfiles, getInitialPerformanceEvents, generateFixSnippet, } from './customHooks/performanceTracker';
|
|
14
14
|
export { InspectLog, InspectTrackTime, InspectCatch, type InspectLogOptions, } from './decorators';
|
|
15
|
+
export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
|
|
15
16
|
export { ActiveTab, Method, StatusFilter, SortOrder, LocalFilter, ModalAnimationType, SettingsPage, SettingsSubTab, LogFilter, ConsoleLogType, AnalyticsEventSource, GAEventCategory, StackFrameType, DiffResultType, BundleSubTab, PerformanceSubTab, CrashType, CrashExportFormat, CrashDetailSubTab, CrashFilterType, BreadcrumbType, } from './types';
|