react-native-inapp-inspector 1.1.35 → 2.0.1
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 +890 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorPackage.kt +17 -0
- package/dist/commonjs/components/ConsoleLogCard.js +5 -5
- package/dist/commonjs/components/CopyButton.js +3 -0
- package/dist/commonjs/components/EndOfListFooter.js +1 -1
- package/dist/commonjs/components/ErrorBoundary.js +3 -0
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +25 -73
- package/dist/commonjs/components/Inspector/BundleTab.js +671 -189
- package/dist/commonjs/components/Inspector/ConsoleTab.js +110 -99
- package/dist/commonjs/components/Inspector/CrashTab.js +99 -91
- package/dist/commonjs/components/Inspector/InspectorHeader.js +107 -20
- package/dist/commonjs/components/Inspector/MainScreen.js +111 -68
- package/dist/commonjs/components/Inspector/NetworkTab.js +151 -30
- package/dist/commonjs/components/Inspector/PerformanceTab.js +96 -3
- package/dist/commonjs/components/Inspector/ReduxTab.js +18 -10
- package/dist/commonjs/components/Inspector/SettingsPanel.js +1218 -1238
- package/dist/commonjs/components/Inspector/TabBar.js +4 -2
- package/dist/commonjs/components/JsonViewer.js +9 -4
- package/dist/commonjs/components/LogCard.js +31 -1
- package/dist/commonjs/components/LogSyntaxHighlighter.d.ts +16 -0
- package/dist/commonjs/components/LogSyntaxHighlighter.js +130 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +3 -0
- package/dist/commonjs/components/NetworkIcons.js +15 -1
- package/dist/commonjs/components/Slider.d.ts +13 -0
- package/dist/commonjs/components/Slider.js +261 -0
- package/dist/commonjs/components/TouchableScale.d.ts +1 -0
- 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 +4 -0
- package/dist/commonjs/customHooks/analyticsLogger.js +8 -6
- package/dist/commonjs/customHooks/crashHandler.js +8 -1
- package/dist/commonjs/helpers/index.d.ts +1 -0
- package/dist/commonjs/helpers/index.js +25 -1
- package/dist/commonjs/helpers/searchQueryParser.d.ts +6 -0
- package/dist/commonjs/helpers/searchQueryParser.js +236 -0
- package/dist/commonjs/helpers/settingsStore.d.ts +9 -0
- package/dist/commonjs/helpers/settingsStore.js +59 -3
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +220 -43
- 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/index.js +41 -41
- package/dist/commonjs/types/enums.d.ts +1 -1
- package/dist/commonjs/types/interfaces.d.ts +9 -0
- package/dist/esm/components/ConsoleLogCard.js +5 -5
- package/dist/esm/components/CopyButton.js +3 -0
- package/dist/esm/components/EndOfListFooter.js +2 -2
- package/dist/esm/components/ErrorBoundary.js +3 -0
- package/dist/esm/components/Inspector/AnalyticsTab.js +27 -75
- package/dist/esm/components/Inspector/BundleTab.js +671 -189
- package/dist/esm/components/Inspector/ConsoleTab.js +111 -100
- package/dist/esm/components/Inspector/CrashTab.js +99 -91
- package/dist/esm/components/Inspector/InspectorHeader.js +108 -21
- package/dist/esm/components/Inspector/MainScreen.js +113 -70
- package/dist/esm/components/Inspector/NetworkTab.js +152 -31
- package/dist/esm/components/Inspector/PerformanceTab.js +96 -3
- package/dist/esm/components/Inspector/ReduxTab.js +18 -10
- package/dist/esm/components/Inspector/SettingsPanel.js +1222 -1242
- package/dist/esm/components/Inspector/TabBar.js +4 -2
- package/dist/esm/components/JsonViewer.js +9 -4
- package/dist/esm/components/LogCard.js +32 -2
- package/dist/esm/components/LogSyntaxHighlighter.d.ts +16 -0
- package/dist/esm/components/LogSyntaxHighlighter.js +123 -0
- package/dist/esm/components/NetworkIcons.d.ts +3 -0
- package/dist/esm/components/NetworkIcons.js +11 -0
- package/dist/esm/components/Slider.d.ts +13 -0
- package/dist/esm/components/Slider.js +222 -0
- package/dist/esm/components/TouchableScale.d.ts +1 -0
- 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 +4 -0
- package/dist/esm/customHooks/analyticsLogger.js +6 -5
- package/dist/esm/customHooks/crashHandler.js +8 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +11 -1
- package/dist/esm/helpers/searchQueryParser.d.ts +6 -0
- package/dist/esm/helpers/searchQueryParser.js +233 -0
- package/dist/esm/helpers/settingsStore.d.ts +9 -0
- package/dist/esm/helpers/settingsStore.js +58 -3
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +207 -44
- 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/index.js +41 -41
- 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 +760 -5
- package/package.json +13 -2
- 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
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
2
|
+
import NativeNetworkInspector from './NativeNetworkInspector';
|
|
3
|
+
// Seamless TurboModule (New Architecture / JSI) & Legacy NativeModules Bridge resolution
|
|
4
|
+
const NativeModule = NativeNetworkInspector || NativeModules.NetworkInspectorModule;
|
|
5
|
+
export const isNativeModuleAvailable = () => {
|
|
6
|
+
return !!NativeModule;
|
|
7
|
+
};
|
|
8
|
+
const nativeEmitter = isNativeModuleAvailable()
|
|
9
|
+
? new NativeEventEmitter(NativeModule)
|
|
10
|
+
: null;
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves low-level native hardware and system metrics (RAM, Heap, Disk, Battery, CPU).
|
|
13
|
+
*/
|
|
14
|
+
export const getNativeDeviceMetrics = async () => {
|
|
15
|
+
if (!NativeModule || !NativeModule.getDeviceMetrics) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const metrics = await NativeModule.getDeviceMetrics();
|
|
20
|
+
return metrics;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Enables native signal and uncaught exception protection in the iOS / Android runtime.
|
|
28
|
+
* Automatically ensures the native floating icon is shown and available before UI renders.
|
|
29
|
+
*/
|
|
30
|
+
export const enableNativeCrashProtection = async (options) => {
|
|
31
|
+
if (!NativeModule || !NativeModule.enableNativeCrashProtection) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const result = await NativeModule.enableNativeCrashProtection();
|
|
36
|
+
if (options?.showFloatingButton !== false) {
|
|
37
|
+
await showNativeFloatingButton();
|
|
38
|
+
}
|
|
39
|
+
return !!result;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Subscribes to fatal native crash events caught by the iOS / Kotlin exception handlers.
|
|
47
|
+
*/
|
|
48
|
+
export const subscribeNativeCrashes = (callback) => {
|
|
49
|
+
if (!nativeEmitter) {
|
|
50
|
+
return () => { };
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const subscription = nativeEmitter.addListener('onNativeCrash', callback);
|
|
54
|
+
return () => {
|
|
55
|
+
subscription.remove();
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
return () => { };
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Displays the 100% native main-thread floating overlay button.
|
|
64
|
+
* Dragging & touches run on the native UI thread, completely isolated from JS thread stalls.
|
|
65
|
+
*/
|
|
66
|
+
export const showNativeFloatingButton = async (options) => {
|
|
67
|
+
if (!NativeModule || !NativeModule.showFloatingButton) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const result = await NativeModule.showFloatingButton(options || {});
|
|
72
|
+
return !!result;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Hides the native floating overlay button.
|
|
80
|
+
*/
|
|
81
|
+
export const hideNativeFloatingButton = async () => {
|
|
82
|
+
if (!NativeModule || !NativeModule.hideFloatingButton) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const result = await NativeModule.hideFloatingButton();
|
|
87
|
+
return !!result;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Updates the badge/status dot on the native floating overlay button.
|
|
95
|
+
*/
|
|
96
|
+
export const setNativeFloatingButtonBadge = async (hasBadge) => {
|
|
97
|
+
if (!NativeModule || !NativeModule.setFloatingButtonBadge) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const result = await NativeModule.setFloatingButtonBadge(hasBadge);
|
|
102
|
+
return !!result;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Subscribes to tap events on the native floating button.
|
|
110
|
+
*/
|
|
111
|
+
export const subscribeNativeFloatingButtonPress = (callback) => {
|
|
112
|
+
if (!nativeEmitter) {
|
|
113
|
+
return () => { };
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const subscription = nativeEmitter.addListener('onFloatingButtonPress', callback);
|
|
117
|
+
return () => {
|
|
118
|
+
subscription.remove();
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
return () => { };
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Starts hardware-accurate native UI thread FPS tracking (CADisplayLink / Choreographer).
|
|
127
|
+
*/
|
|
128
|
+
export const startNativeFpsMonitoring = async () => {
|
|
129
|
+
if (!NativeModule || !NativeModule.startFpsMonitoring) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const result = await NativeModule.startFpsMonitoring();
|
|
134
|
+
return !!result;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Stops native FPS tracking.
|
|
142
|
+
*/
|
|
143
|
+
export const stopNativeFpsMonitoring = async () => {
|
|
144
|
+
if (!NativeModule || !NativeModule.stopFpsMonitoring) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const result = await NativeModule.stopFpsMonitoring();
|
|
149
|
+
return !!result;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Reads the latest live hardware FPS from CADisplayLink (iOS) or Choreographer (Android).
|
|
157
|
+
*/
|
|
158
|
+
export const getNativeFpsMetrics = async () => {
|
|
159
|
+
if (!NativeModule || !NativeModule.getFpsMetrics) {
|
|
160
|
+
return { fps: 60, targetFps: 60 };
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
const metrics = await NativeModule.getFpsMetrics();
|
|
164
|
+
return {
|
|
165
|
+
fps: typeof metrics?.fps === 'number' ? metrics.fps : 60,
|
|
166
|
+
targetFps: typeof metrics?.targetFps === 'number' ? metrics.targetFps : 60,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return { fps: 60, targetFps: 60 };
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Subscribes to physical hardware shake events (or Cmd+Ctrl+Z on iOS simulator).
|
|
175
|
+
*/
|
|
176
|
+
export const subscribeNativeDeviceShake = (callback) => {
|
|
177
|
+
if (!nativeEmitter) {
|
|
178
|
+
return () => { };
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const subscription = nativeEmitter.addListener('onDeviceShake', callback);
|
|
182
|
+
return () => {
|
|
183
|
+
subscription.remove();
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return () => { };
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Reads a persisted value synchronously from native NSUserDefaults / SharedPreferences.
|
|
192
|
+
*/
|
|
193
|
+
export const getNativeStorageItem = async (key) => {
|
|
194
|
+
if (!NativeModule || !NativeModule.getNativeStorageItem) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
const val = await NativeModule.getNativeStorageItem(key);
|
|
199
|
+
return typeof val === 'string' ? val : null;
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Persists a key-value pair to native NSUserDefaults / SharedPreferences with 0ms latency.
|
|
207
|
+
*/
|
|
208
|
+
export const setNativeStorageItem = async (key, value) => {
|
|
209
|
+
if (!NativeModule || !NativeModule.setNativeStorageItem) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const result = await NativeModule.setNativeStorageItem(key, value);
|
|
214
|
+
return !!result;
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Triggers hardware native haptic feedback (iOS UIFeedbackGenerator / Android VibrationEffect).
|
|
222
|
+
*/
|
|
223
|
+
export const triggerNativeHaptic = async (style = 'light') => {
|
|
224
|
+
if (!NativeModule || !NativeModule.triggerHaptic) {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const result = await NativeModule.triggerHaptic(style);
|
|
229
|
+
return !!result;
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Retrieves live system thermal state and RAM telemetry directly from native layer.
|
|
237
|
+
*/
|
|
238
|
+
export const getNativeSystemMetrics = async () => {
|
|
239
|
+
if (!NativeModule || !NativeModule.getNativeSystemMetrics) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const metrics = await NativeModule.getNativeSystemMetrics();
|
|
244
|
+
return metrics;
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
/**
|
|
251
|
+
* Pushes a log payload to native background worker queues for instant native page caching.
|
|
252
|
+
*/
|
|
253
|
+
export const pushNativeLogRecord = async (pageKey, jsonPayload) => {
|
|
254
|
+
if (!NativeModule || !NativeModule.pushNativeLogRecord) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
const result = await NativeModule.pushNativeLogRecord(pageKey, jsonPayload);
|
|
259
|
+
return !!result;
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Fetches pre-indexed, pre-sliced page data directly from native background memory queues.
|
|
267
|
+
* Delivers instantaneous 0ms page loading without blocking JS render thread.
|
|
268
|
+
*/
|
|
269
|
+
export const fetchNativeCachedPage = async (pageKey, offset = 0, limit = 50, query = '') => {
|
|
270
|
+
if (!NativeModule || !NativeModule.getNativeCachedPage) {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
try {
|
|
274
|
+
const rawJson = await NativeModule.getNativeCachedPage(pageKey, offset, limit, query);
|
|
275
|
+
if (!rawJson)
|
|
276
|
+
return null;
|
|
277
|
+
const parsed = JSON.parse(rawJson);
|
|
278
|
+
const parsedItems = (parsed.items || []).map((item) => typeof item === 'string' ? JSON.parse(item) : item);
|
|
279
|
+
return {
|
|
280
|
+
pageKey: parsed.pageKey || pageKey,
|
|
281
|
+
total: parsed.total || 0,
|
|
282
|
+
offset: parsed.offset || offset,
|
|
283
|
+
items: parsedItems,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
enableNativeCrashProtection(): Promise<boolean>;
|
|
4
|
+
getDeviceMetrics(): Promise<Object>;
|
|
5
|
+
showFloatingButton(options: Object): Promise<boolean>;
|
|
6
|
+
hideFloatingButton(): Promise<boolean>;
|
|
7
|
+
setFloatingButtonBadge(hasBadge: boolean): Promise<boolean>;
|
|
8
|
+
setFloatingButtonPosition(x: number, y: number): Promise<boolean>;
|
|
9
|
+
startFpsMonitoring(): Promise<boolean>;
|
|
10
|
+
stopFpsMonitoring(): Promise<boolean>;
|
|
11
|
+
getFpsMetrics(): Promise<Object>;
|
|
12
|
+
getNativeStorageItem(key: string): Promise<string | null>;
|
|
13
|
+
setNativeStorageItem(key: string, value: string | null): Promise<boolean>;
|
|
14
|
+
triggerHaptic(style: string): Promise<boolean>;
|
|
15
|
+
getNativeSystemMetrics(): Promise<Object>;
|
|
16
|
+
pushNativeLogRecord(pageKey: string, jsonPayload: string): Promise<boolean>;
|
|
17
|
+
getNativeCachedPage(pageKey: string, offset: number, limit: number, query: string): Promise<string>;
|
|
18
|
+
addListener(eventName: string): void;
|
|
19
|
+
removeListeners(count: number): void;
|
|
20
|
+
}
|
|
21
|
+
declare const _default: Spec;
|
|
22
|
+
export default _default;
|
package/dist/esm/styles/index.js
CHANGED
|
@@ -7,10 +7,10 @@ export const getRawStyles = (colors) => ({
|
|
|
7
7
|
header: {
|
|
8
8
|
flexDirection: 'row',
|
|
9
9
|
alignItems: 'center',
|
|
10
|
-
paddingHorizontal:
|
|
11
|
-
paddingVertical:
|
|
10
|
+
paddingHorizontal: 10,
|
|
11
|
+
paddingVertical: 8,
|
|
12
12
|
zIndex: 10,
|
|
13
|
-
minHeight:
|
|
13
|
+
minHeight: 52,
|
|
14
14
|
shadowColor: colors.black,
|
|
15
15
|
shadowOffset: { width: 0, height: 2 },
|
|
16
16
|
shadowOpacity: 0.08,
|
|
@@ -34,7 +34,7 @@ export const getRawStyles = (colors) => ({
|
|
|
34
34
|
flexDirection: 'row',
|
|
35
35
|
alignItems: 'center',
|
|
36
36
|
justifyContent: 'flex-end',
|
|
37
|
-
gap:
|
|
37
|
+
gap: 5,
|
|
38
38
|
},
|
|
39
39
|
headerTitle: {
|
|
40
40
|
fontFamily: AppFonts.interBold,
|
|
@@ -136,12 +136,12 @@ export const getRawStyles = (colors) => ({
|
|
|
136
136
|
fontSize: 12,
|
|
137
137
|
letterSpacing: 0.2,
|
|
138
138
|
},
|
|
139
|
-
listContent: { paddingBottom:
|
|
139
|
+
listContent: { paddingBottom: Platform.OS === 'ios' ? 44 : 32 },
|
|
140
140
|
// #2 — scroll-to-top button, always shown at the bottom right.
|
|
141
141
|
scrollTopBtn: {
|
|
142
142
|
position: 'absolute',
|
|
143
|
-
bottom:
|
|
144
|
-
right:
|
|
143
|
+
bottom: 22,
|
|
144
|
+
right: 16,
|
|
145
145
|
width: 38,
|
|
146
146
|
height: 38,
|
|
147
147
|
borderRadius: 19,
|
|
@@ -150,16 +150,16 @@ export const getRawStyles = (colors) => ({
|
|
|
150
150
|
justifyContent: 'center',
|
|
151
151
|
shadowColor: colors.black,
|
|
152
152
|
shadowOffset: { width: 0, height: 3 },
|
|
153
|
-
shadowOpacity: 0.
|
|
154
|
-
shadowRadius:
|
|
155
|
-
elevation:
|
|
156
|
-
zIndex:
|
|
153
|
+
shadowOpacity: 0.3,
|
|
154
|
+
shadowRadius: 6,
|
|
155
|
+
elevation: 12,
|
|
156
|
+
zIndex: 999,
|
|
157
157
|
},
|
|
158
158
|
detailScroll: { flex: 1 },
|
|
159
159
|
closeButtonSquare: {
|
|
160
|
-
width:
|
|
161
|
-
height:
|
|
162
|
-
borderRadius:
|
|
160
|
+
width: 30,
|
|
161
|
+
height: 30,
|
|
162
|
+
borderRadius: 7,
|
|
163
163
|
backgroundColor: `${colors.white}2B`,
|
|
164
164
|
alignItems: 'center',
|
|
165
165
|
justifyContent: 'center',
|
|
@@ -378,12 +378,12 @@ export const getRawStyles = (colors) => ({
|
|
|
378
378
|
},
|
|
379
379
|
clearBtn: { padding: 4 },
|
|
380
380
|
domainHeaderCard: {
|
|
381
|
-
marginHorizontal:
|
|
382
|
-
marginTop:
|
|
381
|
+
marginHorizontal: 8,
|
|
382
|
+
marginTop: 10,
|
|
383
383
|
marginBottom: 4,
|
|
384
|
-
paddingHorizontal:
|
|
385
|
-
paddingVertical:
|
|
386
|
-
borderRadius:
|
|
384
|
+
paddingHorizontal: 8,
|
|
385
|
+
paddingVertical: 7,
|
|
386
|
+
borderRadius: 9,
|
|
387
387
|
backgroundColor: colors.grayBackground,
|
|
388
388
|
borderWidth: 1,
|
|
389
389
|
borderColor: colors.grayBorderSecondary,
|
|
@@ -405,18 +405,18 @@ export const getRawStyles = (colors) => ({
|
|
|
405
405
|
flex: 1,
|
|
406
406
|
minWidth: 0,
|
|
407
407
|
marginRight: 6,
|
|
408
|
-
gap:
|
|
408
|
+
gap: 6,
|
|
409
409
|
},
|
|
410
410
|
domainIconWrap: {
|
|
411
|
-
width:
|
|
412
|
-
height:
|
|
413
|
-
borderRadius:
|
|
411
|
+
width: 22,
|
|
412
|
+
height: 22,
|
|
413
|
+
borderRadius: 5,
|
|
414
414
|
alignItems: 'center',
|
|
415
415
|
justifyContent: 'center',
|
|
416
416
|
},
|
|
417
417
|
domainTitleText: {
|
|
418
418
|
fontFamily: AppFonts.interBold,
|
|
419
|
-
fontSize: 13
|
|
419
|
+
fontSize: 13,
|
|
420
420
|
fontWeight: '700',
|
|
421
421
|
color: colors.primaryBlack,
|
|
422
422
|
textTransform: 'capitalize',
|
|
@@ -478,23 +478,23 @@ export const getRawStyles = (colors) => ({
|
|
|
478
478
|
flexDirection: 'row',
|
|
479
479
|
alignItems: 'center',
|
|
480
480
|
gap: 3,
|
|
481
|
-
paddingHorizontal:
|
|
482
|
-
paddingVertical:
|
|
483
|
-
borderRadius:
|
|
481
|
+
paddingHorizontal: 5,
|
|
482
|
+
paddingVertical: 2.5,
|
|
483
|
+
borderRadius: 5,
|
|
484
484
|
borderWidth: 1,
|
|
485
485
|
borderColor: colors.grayBorderSecondary,
|
|
486
486
|
backgroundColor: colors.primaryLight,
|
|
487
487
|
},
|
|
488
488
|
domainStatText: {
|
|
489
489
|
fontFamily: AppFonts.interBold,
|
|
490
|
-
fontSize:
|
|
490
|
+
fontSize: 9.5,
|
|
491
491
|
},
|
|
492
492
|
treeNodeRow: {
|
|
493
493
|
flexDirection: 'row',
|
|
494
494
|
alignItems: 'stretch',
|
|
495
|
-
marginHorizontal:
|
|
496
|
-
paddingRight:
|
|
497
|
-
paddingLeft:
|
|
495
|
+
marginHorizontal: 8,
|
|
496
|
+
paddingRight: 4,
|
|
497
|
+
paddingLeft: 0,
|
|
498
498
|
backgroundColor: colors.grayBackground,
|
|
499
499
|
borderLeftWidth: 1,
|
|
500
500
|
borderRightWidth: 1,
|
|
@@ -508,14 +508,14 @@ export const getRawStyles = (colors) => ({
|
|
|
508
508
|
paddingBottom: 6,
|
|
509
509
|
},
|
|
510
510
|
treeLines: {
|
|
511
|
-
width:
|
|
511
|
+
width: 14,
|
|
512
512
|
position: 'relative',
|
|
513
513
|
},
|
|
514
514
|
modernTreeLine: {
|
|
515
515
|
position: 'absolute',
|
|
516
|
-
left:
|
|
516
|
+
left: 7,
|
|
517
517
|
top: 0,
|
|
518
|
-
width:
|
|
518
|
+
width: 7,
|
|
519
519
|
height: '100%',
|
|
520
520
|
borderLeftWidth: 1.5,
|
|
521
521
|
opacity: 0.5,
|
|
@@ -523,19 +523,19 @@ export const getRawStyles = (colors) => ({
|
|
|
523
523
|
modernTreeLineLast: {
|
|
524
524
|
height: '50%',
|
|
525
525
|
borderBottomWidth: 1.5,
|
|
526
|
-
borderBottomLeftRadius:
|
|
526
|
+
borderBottomLeftRadius: 8,
|
|
527
527
|
},
|
|
528
528
|
modernTreeBranch: {
|
|
529
529
|
position: 'absolute',
|
|
530
|
-
left:
|
|
530
|
+
left: 7,
|
|
531
531
|
top: '50%',
|
|
532
|
-
width:
|
|
532
|
+
width: 7,
|
|
533
533
|
borderTopWidth: 1.5,
|
|
534
534
|
opacity: 0.5,
|
|
535
535
|
},
|
|
536
536
|
treeCardWrapper: {
|
|
537
537
|
flex: 1,
|
|
538
|
-
paddingVertical: 3
|
|
538
|
+
paddingVertical: 3,
|
|
539
539
|
},
|
|
540
540
|
card: {
|
|
541
541
|
marginHorizontal: 0,
|
|
@@ -575,10 +575,10 @@ export const getRawStyles = (colors) => ({
|
|
|
575
575
|
gap: 5,
|
|
576
576
|
},
|
|
577
577
|
smallCheckbox: {
|
|
578
|
-
width:
|
|
579
|
-
height:
|
|
578
|
+
width: 15,
|
|
579
|
+
height: 15,
|
|
580
580
|
borderRadius: 4,
|
|
581
|
-
borderWidth: 1.
|
|
581
|
+
borderWidth: 1.8,
|
|
582
582
|
borderColor: colors.grayTextWeak,
|
|
583
583
|
alignItems: 'center',
|
|
584
584
|
justifyContent: 'center',
|
|
@@ -25,7 +25,7 @@ export declare const StatusFilter: {
|
|
|
25
25
|
readonly FiveXx: "5xx";
|
|
26
26
|
readonly Failed: "Failed";
|
|
27
27
|
};
|
|
28
|
-
export type StatusFilter = (typeof StatusFilter)[keyof typeof StatusFilter];
|
|
28
|
+
export type StatusFilter = (typeof StatusFilter)[keyof typeof StatusFilter] | string;
|
|
29
29
|
export declare const SortOrder: {
|
|
30
30
|
readonly Newest: "newest";
|
|
31
31
|
readonly Oldest: "oldest";
|
|
@@ -140,6 +140,9 @@ export interface PersistedSettings {
|
|
|
140
140
|
defaultTab?: string;
|
|
141
141
|
maxNetworkLogs?: number;
|
|
142
142
|
maxConsoleLogs?: number;
|
|
143
|
+
maxAnalyticsEventsLimit?: number;
|
|
144
|
+
maxCrashLogs?: number;
|
|
145
|
+
isAutoRamLimitEnabled?: boolean;
|
|
143
146
|
showConsoleLevels?: {
|
|
144
147
|
info: boolean;
|
|
145
148
|
warn: boolean;
|
|
@@ -197,6 +200,7 @@ export interface InspectorContextValue {
|
|
|
197
200
|
activePulseAnim: Animated.Value;
|
|
198
201
|
unreadPulseAnim: Animated.Value;
|
|
199
202
|
runClearAllWithAnimation: () => void;
|
|
203
|
+
useNativeFab: boolean;
|
|
200
204
|
fabPan: Animated.ValueXY;
|
|
201
205
|
fabPanResponder: PanResponderInstance;
|
|
202
206
|
fabDraggedRef: React.MutableRefObject<boolean>;
|
|
@@ -313,6 +317,11 @@ export interface InspectorContextValue {
|
|
|
313
317
|
setMaxNetworkLogs: React.Dispatch<React.SetStateAction<number>>;
|
|
314
318
|
maxConsoleLogs: number;
|
|
315
319
|
setMaxConsoleLogs: React.Dispatch<React.SetStateAction<number>>;
|
|
320
|
+
maxAnalyticsEventsLimit: number;
|
|
321
|
+
setMaxAnalyticsEventsLimit: React.Dispatch<React.SetStateAction<number>>;
|
|
322
|
+
isAutoRamLimitEnabled: boolean;
|
|
323
|
+
setIsAutoRamLimitEnabled: React.Dispatch<React.SetStateAction<boolean>>;
|
|
324
|
+
deviceFreeRamMb: number;
|
|
316
325
|
reduxAutoRefresh: boolean;
|
|
317
326
|
setReduxAutoRefreshState: React.Dispatch<React.SetStateAction<boolean>>;
|
|
318
327
|
reduxExpandDepth: number;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
|
|
4
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
|
+
#import <RNInAppInspectorSpec/RNInAppInspectorSpec.h>
|
|
6
|
+
@interface NetworkInspectorModule : RCTEventEmitter <NativeNetworkInspectorSpec, RCTBridgeModule>
|
|
7
|
+
#else
|
|
4
8
|
@interface NetworkInspectorModule : RCTEventEmitter <RCTBridgeModule>
|
|
9
|
+
#endif
|
|
5
10
|
|
|
6
11
|
- (void)emitCrashEventWithMessage:(NSString *)message stackTrace:(NSString *)stackTrace;
|
|
7
12
|
|
|
8
13
|
@end
|
|
14
|
+
|