react-native-prod-debugger 1.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/LICENSE +21 -0
- package/README.md +350 -0
- package/lib/commonjs/core/DebugBubble.js +139 -0
- package/lib/commonjs/core/DebugBubble.js.map +1 -0
- package/lib/commonjs/core/DebugOverlay.js +184 -0
- package/lib/commonjs/core/DebugOverlay.js.map +1 -0
- package/lib/commonjs/core/DebuggerProvider.js +174 -0
- package/lib/commonjs/core/DebuggerProvider.js.map +1 -0
- package/lib/commonjs/core/GestureDetector.js +83 -0
- package/lib/commonjs/core/GestureDetector.js.map +1 -0
- package/lib/commonjs/core/PluginRegistry.js +124 -0
- package/lib/commonjs/core/PluginRegistry.js.map +1 -0
- package/lib/commonjs/core/theme.js +50 -0
- package/lib/commonjs/core/theme.js.map +1 -0
- package/lib/commonjs/core/types.js +6 -0
- package/lib/commonjs/core/types.js.map +1 -0
- package/lib/commonjs/core/useDebugger.js +27 -0
- package/lib/commonjs/core/useDebugger.js.map +1 -0
- package/lib/commonjs/core/utils.js +239 -0
- package/lib/commonjs/core/utils.js.map +1 -0
- package/lib/commonjs/index.js +132 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/plugins/console/ConsoleInterceptor.js +103 -0
- package/lib/commonjs/plugins/console/ConsoleInterceptor.js.map +1 -0
- package/lib/commonjs/plugins/console/ConsoleViewerPlugin.js +269 -0
- package/lib/commonjs/plugins/console/ConsoleViewerPlugin.js.map +1 -0
- package/lib/commonjs/plugins/crashReporter/CrashReporterPlugin.js +363 -0
- package/lib/commonjs/plugins/crashReporter/CrashReporterPlugin.js.map +1 -0
- package/lib/commonjs/plugins/customActions/CustomActionsPlugin.js +218 -0
- package/lib/commonjs/plugins/customActions/CustomActionsPlugin.js.map +1 -0
- package/lib/commonjs/plugins/customActions/actionStore.js +46 -0
- package/lib/commonjs/plugins/customActions/actionStore.js.map +1 -0
- package/lib/commonjs/plugins/deepLinkTester/DeepLinkTesterPlugin.js +268 -0
- package/lib/commonjs/plugins/deepLinkTester/DeepLinkTesterPlugin.js.map +1 -0
- package/lib/commonjs/plugins/deviceInfo/DeviceInfoPlugin.js +184 -0
- package/lib/commonjs/plugins/deviceInfo/DeviceInfoPlugin.js.map +1 -0
- package/lib/commonjs/plugins/featureFlags/FeatureFlagsPlugin.js +381 -0
- package/lib/commonjs/plugins/featureFlags/FeatureFlagsPlugin.js.map +1 -0
- package/lib/commonjs/plugins/featureFlags/flagStore.js +125 -0
- package/lib/commonjs/plugins/featureFlags/flagStore.js.map +1 -0
- package/lib/commonjs/plugins/navigationInspector/NavigationInspectorPlugin.js +250 -0
- package/lib/commonjs/plugins/navigationInspector/NavigationInspectorPlugin.js.map +1 -0
- package/lib/commonjs/plugins/navigationInspector/navigationStore.js +65 -0
- package/lib/commonjs/plugins/navigationInspector/navigationStore.js.map +1 -0
- package/lib/commonjs/plugins/network/NetworkInspectorPlugin.js +709 -0
- package/lib/commonjs/plugins/network/NetworkInspectorPlugin.js.map +1 -0
- package/lib/commonjs/plugins/network/NetworkInterceptor.js +305 -0
- package/lib/commonjs/plugins/network/NetworkInterceptor.js.map +1 -0
- package/lib/commonjs/plugins/performance/PerformanceMonitorPlugin.js +261 -0
- package/lib/commonjs/plugins/performance/PerformanceMonitorPlugin.js.map +1 -0
- package/lib/commonjs/plugins/remoteConfig/RemoteConfigPlugin.js +265 -0
- package/lib/commonjs/plugins/remoteConfig/RemoteConfigPlugin.js.map +1 -0
- package/lib/commonjs/plugins/remoteConfig/remoteConfigStore.js +50 -0
- package/lib/commonjs/plugins/remoteConfig/remoteConfigStore.js.map +1 -0
- package/lib/commonjs/plugins/stateInspector/StateInspectorPlugin.js +378 -0
- package/lib/commonjs/plugins/stateInspector/StateInspectorPlugin.js.map +1 -0
- package/lib/commonjs/plugins/stateInspector/stateAdapterRegistry.js +62 -0
- package/lib/commonjs/plugins/stateInspector/stateAdapterRegistry.js.map +1 -0
- package/lib/commonjs/plugins/storageBrowser/StorageBrowserPlugin.js +496 -0
- package/lib/commonjs/plugins/storageBrowser/StorageBrowserPlugin.js.map +1 -0
- package/lib/commonjs/plugins/storageBrowser/storageAdapterRegistry.js +44 -0
- package/lib/commonjs/plugins/storageBrowser/storageAdapterRegistry.js.map +1 -0
- package/lib/commonjs/plugins/timeline/TimelinePlugin.js +294 -0
- package/lib/commonjs/plugins/timeline/TimelinePlugin.js.map +1 -0
- package/lib/commonjs/plugins/timeline/timelineStore.js +61 -0
- package/lib/commonjs/plugins/timeline/timelineStore.js.map +1 -0
- package/lib/module/core/DebugBubble.js +131 -0
- package/lib/module/core/DebugBubble.js.map +1 -0
- package/lib/module/core/DebugOverlay.js +176 -0
- package/lib/module/core/DebugOverlay.js.map +1 -0
- package/lib/module/core/DebuggerProvider.js +167 -0
- package/lib/module/core/DebuggerProvider.js.map +1 -0
- package/lib/module/core/GestureDetector.js +75 -0
- package/lib/module/core/GestureDetector.js.map +1 -0
- package/lib/module/core/PluginRegistry.js +116 -0
- package/lib/module/core/PluginRegistry.js.map +1 -0
- package/lib/module/core/theme.js +43 -0
- package/lib/module/core/theme.js.map +1 -0
- package/lib/module/core/types.js +2 -0
- package/lib/module/core/types.js.map +1 -0
- package/lib/module/core/useDebugger.js +21 -0
- package/lib/module/core/useDebugger.js.map +1 -0
- package/lib/module/core/utils.js +219 -0
- package/lib/module/core/utils.js.map +1 -0
- package/lib/module/index.js +44 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/plugins/console/ConsoleInterceptor.js +97 -0
- package/lib/module/plugins/console/ConsoleInterceptor.js.map +1 -0
- package/lib/module/plugins/console/ConsoleViewerPlugin.js +262 -0
- package/lib/module/plugins/console/ConsoleViewerPlugin.js.map +1 -0
- package/lib/module/plugins/crashReporter/CrashReporterPlugin.js +357 -0
- package/lib/module/plugins/crashReporter/CrashReporterPlugin.js.map +1 -0
- package/lib/module/plugins/customActions/CustomActionsPlugin.js +211 -0
- package/lib/module/plugins/customActions/CustomActionsPlugin.js.map +1 -0
- package/lib/module/plugins/customActions/actionStore.js +38 -0
- package/lib/module/plugins/customActions/actionStore.js.map +1 -0
- package/lib/module/plugins/deepLinkTester/DeepLinkTesterPlugin.js +261 -0
- package/lib/module/plugins/deepLinkTester/DeepLinkTesterPlugin.js.map +1 -0
- package/lib/module/plugins/deviceInfo/DeviceInfoPlugin.js +177 -0
- package/lib/module/plugins/deviceInfo/DeviceInfoPlugin.js.map +1 -0
- package/lib/module/plugins/featureFlags/FeatureFlagsPlugin.js +374 -0
- package/lib/module/plugins/featureFlags/FeatureFlagsPlugin.js.map +1 -0
- package/lib/module/plugins/featureFlags/flagStore.js +117 -0
- package/lib/module/plugins/featureFlags/flagStore.js.map +1 -0
- package/lib/module/plugins/navigationInspector/NavigationInspectorPlugin.js +243 -0
- package/lib/module/plugins/navigationInspector/NavigationInspectorPlugin.js.map +1 -0
- package/lib/module/plugins/navigationInspector/navigationStore.js +58 -0
- package/lib/module/plugins/navigationInspector/navigationStore.js.map +1 -0
- package/lib/module/plugins/network/NetworkInspectorPlugin.js +703 -0
- package/lib/module/plugins/network/NetworkInspectorPlugin.js.map +1 -0
- package/lib/module/plugins/network/NetworkInterceptor.js +299 -0
- package/lib/module/plugins/network/NetworkInterceptor.js.map +1 -0
- package/lib/module/plugins/performance/PerformanceMonitorPlugin.js +254 -0
- package/lib/module/plugins/performance/PerformanceMonitorPlugin.js.map +1 -0
- package/lib/module/plugins/remoteConfig/RemoteConfigPlugin.js +258 -0
- package/lib/module/plugins/remoteConfig/RemoteConfigPlugin.js.map +1 -0
- package/lib/module/plugins/remoteConfig/remoteConfigStore.js +43 -0
- package/lib/module/plugins/remoteConfig/remoteConfigStore.js.map +1 -0
- package/lib/module/plugins/stateInspector/StateInspectorPlugin.js +372 -0
- package/lib/module/plugins/stateInspector/StateInspectorPlugin.js.map +1 -0
- package/lib/module/plugins/stateInspector/stateAdapterRegistry.js +54 -0
- package/lib/module/plugins/stateInspector/stateAdapterRegistry.js.map +1 -0
- package/lib/module/plugins/storageBrowser/StorageBrowserPlugin.js +489 -0
- package/lib/module/plugins/storageBrowser/StorageBrowserPlugin.js.map +1 -0
- package/lib/module/plugins/storageBrowser/storageAdapterRegistry.js +36 -0
- package/lib/module/plugins/storageBrowser/storageAdapterRegistry.js.map +1 -0
- package/lib/module/plugins/timeline/TimelinePlugin.js +287 -0
- package/lib/module/plugins/timeline/TimelinePlugin.js.map +1 -0
- package/lib/module/plugins/timeline/timelineStore.js +54 -0
- package/lib/module/plugins/timeline/timelineStore.js.map +1 -0
- package/lib/typescript/core/DebugBubble.d.ts +22 -0
- package/lib/typescript/core/DebugBubble.d.ts.map +1 -0
- package/lib/typescript/core/DebugOverlay.d.ts +18 -0
- package/lib/typescript/core/DebugOverlay.d.ts.map +1 -0
- package/lib/typescript/core/DebuggerProvider.d.ts +25 -0
- package/lib/typescript/core/DebuggerProvider.d.ts.map +1 -0
- package/lib/typescript/core/GestureDetector.d.ts +20 -0
- package/lib/typescript/core/GestureDetector.d.ts.map +1 -0
- package/lib/typescript/core/PluginRegistry.d.ts +41 -0
- package/lib/typescript/core/PluginRegistry.d.ts.map +1 -0
- package/lib/typescript/core/theme.d.ts +11 -0
- package/lib/typescript/core/theme.d.ts.map +1 -0
- package/lib/typescript/core/types.d.ts +269 -0
- package/lib/typescript/core/types.d.ts.map +1 -0
- package/lib/typescript/core/useDebugger.d.ts +14 -0
- package/lib/typescript/core/useDebugger.d.ts.map +1 -0
- package/lib/typescript/core/utils.d.ts +46 -0
- package/lib/typescript/core/utils.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +23 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/plugins/console/ConsoleInterceptor.d.ts +32 -0
- package/lib/typescript/plugins/console/ConsoleInterceptor.d.ts.map +1 -0
- package/lib/typescript/plugins/console/ConsoleViewerPlugin.d.ts +3 -0
- package/lib/typescript/plugins/console/ConsoleViewerPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/crashReporter/CrashReporterPlugin.d.ts +3 -0
- package/lib/typescript/plugins/crashReporter/CrashReporterPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/customActions/CustomActionsPlugin.d.ts +3 -0
- package/lib/typescript/plugins/customActions/CustomActionsPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/customActions/actionStore.d.ts +16 -0
- package/lib/typescript/plugins/customActions/actionStore.d.ts.map +1 -0
- package/lib/typescript/plugins/deepLinkTester/DeepLinkTesterPlugin.d.ts +3 -0
- package/lib/typescript/plugins/deepLinkTester/DeepLinkTesterPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/deviceInfo/DeviceInfoPlugin.d.ts +3 -0
- package/lib/typescript/plugins/deviceInfo/DeviceInfoPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/featureFlags/FeatureFlagsPlugin.d.ts +3 -0
- package/lib/typescript/plugins/featureFlags/FeatureFlagsPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/featureFlags/flagStore.d.ts +45 -0
- package/lib/typescript/plugins/featureFlags/flagStore.d.ts.map +1 -0
- package/lib/typescript/plugins/navigationInspector/NavigationInspectorPlugin.d.ts +3 -0
- package/lib/typescript/plugins/navigationInspector/NavigationInspectorPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/navigationInspector/navigationStore.d.ts +30 -0
- package/lib/typescript/plugins/navigationInspector/navigationStore.d.ts.map +1 -0
- package/lib/typescript/plugins/network/NetworkInspectorPlugin.d.ts +3 -0
- package/lib/typescript/plugins/network/NetworkInspectorPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/network/NetworkInterceptor.d.ts +42 -0
- package/lib/typescript/plugins/network/NetworkInterceptor.d.ts.map +1 -0
- package/lib/typescript/plugins/performance/PerformanceMonitorPlugin.d.ts +3 -0
- package/lib/typescript/plugins/performance/PerformanceMonitorPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/remoteConfig/RemoteConfigPlugin.d.ts +3 -0
- package/lib/typescript/plugins/remoteConfig/RemoteConfigPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/remoteConfig/remoteConfigStore.d.ts +20 -0
- package/lib/typescript/plugins/remoteConfig/remoteConfigStore.d.ts.map +1 -0
- package/lib/typescript/plugins/stateInspector/StateInspectorPlugin.d.ts +3 -0
- package/lib/typescript/plugins/stateInspector/StateInspectorPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/stateInspector/stateAdapterRegistry.d.ts +34 -0
- package/lib/typescript/plugins/stateInspector/stateAdapterRegistry.d.ts.map +1 -0
- package/lib/typescript/plugins/storageBrowser/StorageBrowserPlugin.d.ts +3 -0
- package/lib/typescript/plugins/storageBrowser/StorageBrowserPlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/storageBrowser/storageAdapterRegistry.d.ts +16 -0
- package/lib/typescript/plugins/storageBrowser/storageAdapterRegistry.d.ts.map +1 -0
- package/lib/typescript/plugins/timeline/TimelinePlugin.d.ts +3 -0
- package/lib/typescript/plugins/timeline/TimelinePlugin.d.ts.map +1 -0
- package/lib/typescript/plugins/timeline/timelineStore.d.ts +24 -0
- package/lib/typescript/plugins/timeline/timelineStore.d.ts.map +1 -0
- package/package.json +131 -0
- package/src/core/DebugBubble.tsx +149 -0
- package/src/core/DebugOverlay.tsx +211 -0
- package/src/core/DebuggerProvider.tsx +211 -0
- package/src/core/GestureDetector.tsx +95 -0
- package/src/core/PluginRegistry.ts +118 -0
- package/src/core/theme.ts +41 -0
- package/src/core/types.ts +339 -0
- package/src/core/useDebugger.ts +24 -0
- package/src/core/utils.ts +221 -0
- package/src/index.ts +67 -0
- package/src/plugins/console/ConsoleInterceptor.ts +110 -0
- package/src/plugins/console/ConsoleViewerPlugin.tsx +241 -0
- package/src/plugins/crashReporter/CrashReporterPlugin.tsx +316 -0
- package/src/plugins/customActions/CustomActionsPlugin.tsx +199 -0
- package/src/plugins/customActions/actionStore.ts +49 -0
- package/src/plugins/deepLinkTester/DeepLinkTesterPlugin.tsx +213 -0
- package/src/plugins/deviceInfo/DeviceInfoPlugin.tsx +153 -0
- package/src/plugins/featureFlags/FeatureFlagsPlugin.tsx +338 -0
- package/src/plugins/featureFlags/flagStore.ts +118 -0
- package/src/plugins/navigationInspector/NavigationInspectorPlugin.tsx +170 -0
- package/src/plugins/navigationInspector/navigationStore.ts +70 -0
- package/src/plugins/network/NetworkInspectorPlugin.tsx +598 -0
- package/src/plugins/network/NetworkInterceptor.ts +344 -0
- package/src/plugins/performance/PerformanceMonitorPlugin.tsx +194 -0
- package/src/plugins/remoteConfig/RemoteConfigPlugin.tsx +205 -0
- package/src/plugins/remoteConfig/remoteConfigStore.ts +48 -0
- package/src/plugins/stateInspector/StateInspectorPlugin.tsx +342 -0
- package/src/plugins/stateInspector/stateAdapterRegistry.ts +66 -0
- package/src/plugins/storageBrowser/StorageBrowserPlugin.tsx +410 -0
- package/src/plugins/storageBrowser/storageAdapterRegistry.ts +47 -0
- package/src/plugins/timeline/TimelinePlugin.tsx +242 -0
- package/src/plugins/timeline/timelineStore.ts +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NetworkInterceptor","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NetworkInspectorPanel","theme","requests","setRequests","useState","searchQuery","setSearchQuery","selectedRequest","setSelectedRequest","activeDetailTab","setActiveDetailTab","methodFilter","setMethodFilter","useEffect","unsubscribe","NetworkInterceptor","subscribe","filteredRequests","useMemo","filtered","q","toLowerCase","filter","url","includes","method","gqlOperation","String","status","stats","total","length","errors","isError","pending","endTime","handleClear","useCallback","clear","handleCopyCurl","req","copyToClipboard","toCurl","handleShareRequest","data","safeStringify","duration","requestHeaders","responseHeaders","requestBody","responseBody","shareText","createElement","RequestDetail","request","activeTab","onTabChange","onBack","onCopyCurl","onShare","View","style","styles","container","statsBar","backgroundColor","surface","statsRow","Text","statText","color","text","error","warning","TouchableOpacity","onPress","activeOpacity","clearButton","searchContainer","TextInput","searchInput","surfaceAlt","borderColor","border","placeholder","placeholderTextColor","textMuted","value","onChangeText","autoCapitalize","autoCorrect","ScrollView","horizontal","showsHorizontalScrollIndicator","filterContainer","contentContainerStyle","filterContent","map","key","filterChip","accent","filterChipText","textSecondary","FlatList","keyExtractor","item","id","renderItem","RequestRow","ListEmptyComponent","emptyContainer","emptyText","initialNumToRender","maxToRenderPerBatch","windowSize","React","memo","urlPath","parsed","URL","pathname","search","requestRow","borderBottomColor","requestRowLeft","requestMethodContainer","requestMethod","getMethodColor","requestStatus","getStatusColor","requestUrl","numberOfLines","gqlType","truncate","requestRowRight","requestDuration","formatDuration","requestSize","formatBytes","responseSize","requestTime","formatTimestamp","startTime","tabs","detailHeader","backButton","detailActions","actionButton","actionButtonText","urlDisplay","codeBackground","urlMethod","urlText","codeText","selectable","detailTabBar","tab","detailTab","detailTabText","charAt","toUpperCase","slice","detailContent","HeadersView","BodyView","body","label","TimingView","sectionContainer","sectionTitle","keys","entries","headerRow","headerKey","headerValue","marginTop","formatted","JSON","parse","stringify","sectionHeaderRow","copyButton","codeBlock","timingRow","timingLabel","timingValue","success","StyleSheet","create","flex","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","gap","fontSize","fontWeight","paddingBottom","height","borderRadius","borderWidth","maxHeight","borderBottomWidth","hairlineWidth","marginRight","marginBottom","letterSpacing","padding","width","fontFamily","lineHeight","createNetworkInspectorPlugin","name","icon","component","order","onInit","start","onDestroy","stop"],"sourceRoot":"../../../../src","sources":["plugins/network/NetworkInspectorPlugin.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NetworkInterceptor = void 0;
|
|
7
|
+
var _utils = require("../../core/utils");
|
|
8
|
+
/**
|
|
9
|
+
* NetworkInterceptor — Intercepts XMLHttpRequest and fetch to capture network traffic.
|
|
10
|
+
*
|
|
11
|
+
* Uses monkey-patching to wrap the global XHR and fetch implementations.
|
|
12
|
+
* Stores request/response data in an in-memory ring buffer.
|
|
13
|
+
* Thread-safe listener management for UI updates.
|
|
14
|
+
*/
|
|
15
|
+
class NetworkInterceptorClass {
|
|
16
|
+
requests = [];
|
|
17
|
+
listeners = new Set();
|
|
18
|
+
maxRequests = 500;
|
|
19
|
+
isActive = false;
|
|
20
|
+
|
|
21
|
+
// Stored originals for restoring
|
|
22
|
+
originalXHROpen = null;
|
|
23
|
+
originalXHRSend = null;
|
|
24
|
+
originalXHRSetHeader = null;
|
|
25
|
+
originalFetch = null;
|
|
26
|
+
|
|
27
|
+
/** Start intercepting network requests. */
|
|
28
|
+
start(maxRequests = 500, forceEnable = false) {
|
|
29
|
+
if (this.isActive && !forceEnable) return;
|
|
30
|
+
this.maxRequests = maxRequests;
|
|
31
|
+
this.isActive = true;
|
|
32
|
+
this.interceptXHR();
|
|
33
|
+
this.interceptFetch();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Stop intercepting and restore original implementations. */
|
|
37
|
+
stop() {
|
|
38
|
+
this.isActive = false;
|
|
39
|
+
this.restoreXHR();
|
|
40
|
+
this.restoreFetch();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Subscribe to request changes. Returns unsubscribe function. */
|
|
44
|
+
subscribe(listener) {
|
|
45
|
+
this.listeners.add(listener);
|
|
46
|
+
// Immediately notify with current data
|
|
47
|
+
listener(this.requests);
|
|
48
|
+
return () => this.listeners.delete(listener);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Get all captured requests. */
|
|
52
|
+
getAll() {
|
|
53
|
+
return [...this.requests];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Clear all captured requests. */
|
|
57
|
+
clear() {
|
|
58
|
+
this.requests = [];
|
|
59
|
+
this.notify();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Check if the interceptor is active. */
|
|
63
|
+
get active() {
|
|
64
|
+
return this.isActive;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// ─── XHR Interception ──────────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
interceptXHR() {
|
|
70
|
+
const self = this;
|
|
71
|
+
const OriginalXHR = XMLHttpRequest;
|
|
72
|
+
|
|
73
|
+
// Store originals
|
|
74
|
+
this.originalXHROpen = OriginalXHR.prototype.open;
|
|
75
|
+
this.originalXHRSend = OriginalXHR.prototype.send;
|
|
76
|
+
this.originalXHRSetHeader = OriginalXHR.prototype.setRequestHeader;
|
|
77
|
+
|
|
78
|
+
// Monkey-patch open
|
|
79
|
+
OriginalXHR.prototype.open = function (method, url, ...rest) {
|
|
80
|
+
const xhr = this;
|
|
81
|
+
xhr._debugId = (0, _utils.generateId)();
|
|
82
|
+
xhr._method = method;
|
|
83
|
+
xhr._url = typeof url === 'string' ? url : url.toString();
|
|
84
|
+
xhr._requestHeaders = {};
|
|
85
|
+
return self.originalXHROpen.apply(this, [method, url, ...rest]);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Monkey-patch setRequestHeader
|
|
89
|
+
OriginalXHR.prototype.setRequestHeader = function (name, value) {
|
|
90
|
+
const xhr = this;
|
|
91
|
+
if (xhr._requestHeaders) {
|
|
92
|
+
xhr._requestHeaders[name] = value;
|
|
93
|
+
}
|
|
94
|
+
return self.originalXHRSetHeader.apply(this, [name, value]);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// Monkey-patch send
|
|
98
|
+
OriginalXHR.prototype.send = function (body) {
|
|
99
|
+
const xhr = this;
|
|
100
|
+
const startTime = Date.now();
|
|
101
|
+
const requestBody = typeof body === 'string' ? body : body ? String(body) : undefined;
|
|
102
|
+
|
|
103
|
+
// Extract GraphQL info
|
|
104
|
+
const gqlInfo = (0, _utils.extractGraphQLInfo)(requestBody);
|
|
105
|
+
const request = {
|
|
106
|
+
id: xhr._debugId,
|
|
107
|
+
method: xhr._method,
|
|
108
|
+
url: xhr._url,
|
|
109
|
+
startTime,
|
|
110
|
+
requestHeaders: {
|
|
111
|
+
...xhr._requestHeaders
|
|
112
|
+
},
|
|
113
|
+
requestBody,
|
|
114
|
+
requestSize: requestBody ? new Blob([requestBody]).size : 0,
|
|
115
|
+
gqlOperation: gqlInfo?.operation,
|
|
116
|
+
gqlType: gqlInfo?.type
|
|
117
|
+
};
|
|
118
|
+
self.addRequest(request);
|
|
119
|
+
|
|
120
|
+
// Listen for completion
|
|
121
|
+
const originalOnReadyStateChange = xhr.onreadystatechange;
|
|
122
|
+
xhr.onreadystatechange = function (...args) {
|
|
123
|
+
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
124
|
+
const endTime = Date.now();
|
|
125
|
+
let responseBody;
|
|
126
|
+
try {
|
|
127
|
+
responseBody = xhr.responseText;
|
|
128
|
+
} catch {
|
|
129
|
+
responseBody = '[Unable to read response]';
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Parse response headers
|
|
133
|
+
const rawHeaders = xhr.getAllResponseHeaders();
|
|
134
|
+
const responseHeaders = {};
|
|
135
|
+
if (rawHeaders) {
|
|
136
|
+
rawHeaders.split('\r\n').forEach(line => {
|
|
137
|
+
const idx = line.indexOf(':');
|
|
138
|
+
if (idx > 0) {
|
|
139
|
+
responseHeaders[line.substring(0, idx).trim()] = line.substring(idx + 1).trim();
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
self.updateRequest(xhr._debugId, {
|
|
144
|
+
endTime,
|
|
145
|
+
duration: endTime - startTime,
|
|
146
|
+
status: xhr.status,
|
|
147
|
+
responseHeaders,
|
|
148
|
+
responseBody,
|
|
149
|
+
responseContentType: responseHeaders['content-type'] || responseHeaders['Content-Type'],
|
|
150
|
+
responseSize: responseBody ? new Blob([responseBody]).size : 0,
|
|
151
|
+
isError: xhr.status >= 400 || xhr.status === 0,
|
|
152
|
+
errorMessage: xhr.status === 0 ? 'Network Error' : undefined
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (typeof originalOnReadyStateChange === 'function') {
|
|
156
|
+
originalOnReadyStateChange.apply(xhr, args);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// Error handler
|
|
161
|
+
const originalOnError = xhr.onerror;
|
|
162
|
+
xhr.onerror = function (...args) {
|
|
163
|
+
self.updateRequest(xhr._debugId, {
|
|
164
|
+
endTime: Date.now(),
|
|
165
|
+
duration: Date.now() - startTime,
|
|
166
|
+
isError: true,
|
|
167
|
+
errorMessage: 'Network Error'
|
|
168
|
+
});
|
|
169
|
+
if (typeof originalOnError === 'function') {
|
|
170
|
+
originalOnError.apply(xhr, args);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
return self.originalXHRSend.apply(this, [body]);
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
restoreXHR() {
|
|
177
|
+
if (this.originalXHROpen) {
|
|
178
|
+
XMLHttpRequest.prototype.open = this.originalXHROpen;
|
|
179
|
+
this.originalXHROpen = null;
|
|
180
|
+
}
|
|
181
|
+
if (this.originalXHRSend) {
|
|
182
|
+
XMLHttpRequest.prototype.send = this.originalXHRSend;
|
|
183
|
+
this.originalXHRSend = null;
|
|
184
|
+
}
|
|
185
|
+
if (this.originalXHRSetHeader) {
|
|
186
|
+
XMLHttpRequest.prototype.setRequestHeader = this.originalXHRSetHeader;
|
|
187
|
+
this.originalXHRSetHeader = null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ─── Fetch Interception ────────────────────────────────────────────────
|
|
192
|
+
|
|
193
|
+
interceptFetch() {
|
|
194
|
+
const self = this;
|
|
195
|
+
if (typeof globalThis.fetch !== 'function') return;
|
|
196
|
+
this.originalFetch = globalThis.fetch;
|
|
197
|
+
globalThis.fetch = async function (input, init) {
|
|
198
|
+
const id = (0, _utils.generateId)();
|
|
199
|
+
const startTime = Date.now();
|
|
200
|
+
|
|
201
|
+
// Extract request info
|
|
202
|
+
const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
|
|
203
|
+
const method = init?.method || (input instanceof Request ? input.method : 'GET');
|
|
204
|
+
const requestHeaders = {};
|
|
205
|
+
if (init?.headers) {
|
|
206
|
+
if (init.headers instanceof Headers) {
|
|
207
|
+
init.headers.forEach((value, key) => {
|
|
208
|
+
requestHeaders[key] = value;
|
|
209
|
+
});
|
|
210
|
+
} else if (Array.isArray(init.headers)) {
|
|
211
|
+
init.headers.forEach(([key, value]) => {
|
|
212
|
+
requestHeaders[key] = value;
|
|
213
|
+
});
|
|
214
|
+
} else {
|
|
215
|
+
Object.assign(requestHeaders, init.headers);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const requestBody = typeof init?.body === 'string' ? init.body : init?.body ? String(init.body) : undefined;
|
|
219
|
+
const gqlInfo = (0, _utils.extractGraphQLInfo)(requestBody);
|
|
220
|
+
const request = {
|
|
221
|
+
id,
|
|
222
|
+
method: method.toUpperCase(),
|
|
223
|
+
url,
|
|
224
|
+
startTime,
|
|
225
|
+
requestHeaders,
|
|
226
|
+
requestBody,
|
|
227
|
+
requestSize: requestBody ? new Blob([requestBody]).size : 0,
|
|
228
|
+
gqlOperation: gqlInfo?.operation,
|
|
229
|
+
gqlType: gqlInfo?.type
|
|
230
|
+
};
|
|
231
|
+
self.addRequest(request);
|
|
232
|
+
try {
|
|
233
|
+
const response = await self.originalFetch.call(globalThis, input, init);
|
|
234
|
+
const endTime = Date.now();
|
|
235
|
+
|
|
236
|
+
// Clone response so the caller can still read it
|
|
237
|
+
const clone = response.clone();
|
|
238
|
+
let responseBody;
|
|
239
|
+
try {
|
|
240
|
+
responseBody = await clone.text();
|
|
241
|
+
} catch {
|
|
242
|
+
responseBody = '[Unable to read response body]';
|
|
243
|
+
}
|
|
244
|
+
const responseHeaders = {};
|
|
245
|
+
response.headers.forEach((value, key) => {
|
|
246
|
+
responseHeaders[key] = value;
|
|
247
|
+
});
|
|
248
|
+
self.updateRequest(id, {
|
|
249
|
+
endTime,
|
|
250
|
+
duration: endTime - startTime,
|
|
251
|
+
status: response.status,
|
|
252
|
+
responseHeaders,
|
|
253
|
+
responseBody,
|
|
254
|
+
responseContentType: responseHeaders['content-type'],
|
|
255
|
+
responseSize: responseBody ? new Blob([responseBody]).size : 0,
|
|
256
|
+
isError: response.status >= 400
|
|
257
|
+
});
|
|
258
|
+
return response;
|
|
259
|
+
} catch (error) {
|
|
260
|
+
const endTime = Date.now();
|
|
261
|
+
self.updateRequest(id, {
|
|
262
|
+
endTime,
|
|
263
|
+
duration: endTime - startTime,
|
|
264
|
+
isError: true,
|
|
265
|
+
errorMessage: error instanceof Error ? error.message : 'Network Error'
|
|
266
|
+
});
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
restoreFetch() {
|
|
272
|
+
if (this.originalFetch) {
|
|
273
|
+
globalThis.fetch = this.originalFetch;
|
|
274
|
+
this.originalFetch = null;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// ─── Internal ──────────────────────────────────────────────────────────
|
|
279
|
+
|
|
280
|
+
addRequest(request) {
|
|
281
|
+
this.requests = [request, ...this.requests].slice(0, this.maxRequests);
|
|
282
|
+
this.notify();
|
|
283
|
+
}
|
|
284
|
+
updateRequest(id, update) {
|
|
285
|
+
this.requests = this.requests.map(r => r.id === id ? {
|
|
286
|
+
...r,
|
|
287
|
+
...update
|
|
288
|
+
} : r);
|
|
289
|
+
this.notify();
|
|
290
|
+
}
|
|
291
|
+
notify() {
|
|
292
|
+
const snapshot = this.requests;
|
|
293
|
+
for (const listener of this.listeners) {
|
|
294
|
+
try {
|
|
295
|
+
listener(snapshot);
|
|
296
|
+
} catch {
|
|
297
|
+
// Silently handle listener errors
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/** Singleton network interceptor instance. */
|
|
304
|
+
const NetworkInterceptor = exports.NetworkInterceptor = new NetworkInterceptorClass();
|
|
305
|
+
//# sourceMappingURL=NetworkInterceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","NetworkInterceptorClass","requests","listeners","Set","maxRequests","isActive","originalXHROpen","originalXHRSend","originalXHRSetHeader","originalFetch","start","forceEnable","interceptXHR","interceptFetch","stop","restoreXHR","restoreFetch","subscribe","listener","add","delete","getAll","clear","notify","active","self","OriginalXHR","XMLHttpRequest","prototype","open","send","setRequestHeader","method","url","rest","xhr","_debugId","generateId","_method","_url","toString","_requestHeaders","apply","name","value","body","startTime","Date","now","requestBody","String","undefined","gqlInfo","extractGraphQLInfo","request","id","requestHeaders","requestSize","Blob","size","gqlOperation","operation","gqlType","type","addRequest","originalOnReadyStateChange","onreadystatechange","args","readyState","DONE","endTime","responseBody","responseText","rawHeaders","getAllResponseHeaders","responseHeaders","split","forEach","line","idx","indexOf","substring","trim","updateRequest","duration","status","responseContentType","responseSize","isError","errorMessage","originalOnError","onerror","globalThis","fetch","input","init","URL","Request","headers","Headers","key","Array","isArray","Object","assign","toUpperCase","response","call","clone","text","error","Error","message","slice","update","map","r","snapshot","NetworkInterceptor","exports"],"sourceRoot":"../../../../src","sources":["plugins/network/NetworkInterceptor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPerformanceMonitorPlugin = createPerformanceMonitorPlugin;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
// React Native may or may not expose the Performance API depending on engine
|
|
11
|
+
const _global = globalThis;
|
|
12
|
+
const perf = typeof _global.performance !== 'undefined' ? _global.performance : {
|
|
13
|
+
now: () => Date.now()
|
|
14
|
+
};
|
|
15
|
+
const PerformanceMonitorPanel = ({
|
|
16
|
+
theme
|
|
17
|
+
}) => {
|
|
18
|
+
const [fps, setFps] = (0, _react.useState)(0);
|
|
19
|
+
const [avgFps, setAvgFps] = (0, _react.useState)(0);
|
|
20
|
+
const [minFps, setMinFps] = (0, _react.useState)(60);
|
|
21
|
+
const [maxFps, setMaxFps] = (0, _react.useState)(0);
|
|
22
|
+
const [frameCount, setFrameCount] = (0, _react.useState)(0);
|
|
23
|
+
const [jsDuration, setJsDuration] = (0, _react.useState)(0);
|
|
24
|
+
const [memoryUsage, setMemoryUsage] = (0, _react.useState)(null);
|
|
25
|
+
const [uptime, setUptime] = (0, _react.useState)(0);
|
|
26
|
+
const frameRef = (0, _react.useRef)(0);
|
|
27
|
+
const lastTimeRef = (0, _react.useRef)(perf.now());
|
|
28
|
+
const fpsHistoryRef = (0, _react.useRef)([]);
|
|
29
|
+
const rafRef = (0, _react.useRef)(0);
|
|
30
|
+
const startTimeRef = (0, _react.useRef)(Date.now());
|
|
31
|
+
const totalFramesRef = (0, _react.useRef)(0);
|
|
32
|
+
(0, _react.useEffect)(() => {
|
|
33
|
+
let active = true;
|
|
34
|
+
const measureFrame = () => {
|
|
35
|
+
if (!active) return;
|
|
36
|
+
const now = perf.now();
|
|
37
|
+
const delta = now - lastTimeRef.current;
|
|
38
|
+
frameRef.current++;
|
|
39
|
+
totalFramesRef.current++;
|
|
40
|
+
if (delta >= 1000) {
|
|
41
|
+
const currentFps = Math.round(frameRef.current / delta * 1000);
|
|
42
|
+
frameRef.current = 0;
|
|
43
|
+
lastTimeRef.current = now;
|
|
44
|
+
fpsHistoryRef.current.push(currentFps);
|
|
45
|
+
if (fpsHistoryRef.current.length > 60) fpsHistoryRef.current.shift();
|
|
46
|
+
const avg = Math.round(fpsHistoryRef.current.reduce((a, b) => a + b, 0) / fpsHistoryRef.current.length);
|
|
47
|
+
setFps(currentFps);
|
|
48
|
+
setAvgFps(avg);
|
|
49
|
+
setMinFps(prev => Math.min(prev, currentFps));
|
|
50
|
+
setMaxFps(prev => Math.max(prev, currentFps));
|
|
51
|
+
setFrameCount(totalFramesRef.current);
|
|
52
|
+
setUptime(Math.floor((Date.now() - startTimeRef.current) / 1000));
|
|
53
|
+
|
|
54
|
+
// JS thread timing estimate
|
|
55
|
+
const jsStart = perf.now();
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
const jsEnd = perf.now();
|
|
58
|
+
const delay = jsEnd - jsStart;
|
|
59
|
+
setJsDuration(Math.round(delay));
|
|
60
|
+
}, 0);
|
|
61
|
+
|
|
62
|
+
// Memory (where available)
|
|
63
|
+
try {
|
|
64
|
+
const perfMemory = _global.performance?.memory;
|
|
65
|
+
if (perfMemory?.usedJSHeapSize) {
|
|
66
|
+
setMemoryUsage(perfMemory.usedJSHeapSize);
|
|
67
|
+
}
|
|
68
|
+
} catch {
|
|
69
|
+
// Not available in all environments
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
rafRef.current = requestAnimationFrame(measureFrame);
|
|
73
|
+
};
|
|
74
|
+
rafRef.current = requestAnimationFrame(measureFrame);
|
|
75
|
+
return () => {
|
|
76
|
+
active = false;
|
|
77
|
+
cancelAnimationFrame(rafRef.current);
|
|
78
|
+
};
|
|
79
|
+
}, []);
|
|
80
|
+
const fpsColor = fps >= 50 ? theme.success : fps >= 30 ? theme.warning : theme.error;
|
|
81
|
+
const jsDurationColor = jsDuration <= 16 ? theme.success : jsDuration <= 32 ? theme.warning : theme.error;
|
|
82
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
83
|
+
style: styles.container
|
|
84
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
85
|
+
style: [styles.heroSection, {
|
|
86
|
+
backgroundColor: theme.surface
|
|
87
|
+
}]
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
89
|
+
style: [styles.heroValue, {
|
|
90
|
+
color: fpsColor
|
|
91
|
+
}]
|
|
92
|
+
}, fps), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
93
|
+
style: [styles.heroLabel, {
|
|
94
|
+
color: theme.textSecondary
|
|
95
|
+
}]
|
|
96
|
+
}, "FPS")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
97
|
+
style: styles.metricsGrid
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
99
|
+
label: "Avg FPS",
|
|
100
|
+
value: String(avgFps),
|
|
101
|
+
color: theme.info,
|
|
102
|
+
theme: theme
|
|
103
|
+
}), /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
104
|
+
label: "Min FPS",
|
|
105
|
+
value: String(minFps),
|
|
106
|
+
color: theme.error,
|
|
107
|
+
theme: theme
|
|
108
|
+
}), /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
109
|
+
label: "Max FPS",
|
|
110
|
+
value: String(maxFps),
|
|
111
|
+
color: theme.success,
|
|
112
|
+
theme: theme
|
|
113
|
+
}), /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
114
|
+
label: "JS Thread",
|
|
115
|
+
value: `${jsDuration}ms`,
|
|
116
|
+
color: jsDurationColor,
|
|
117
|
+
theme: theme
|
|
118
|
+
}), /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
119
|
+
label: "Memory",
|
|
120
|
+
value: memoryUsage ? `${(memoryUsage / 1024 / 1024).toFixed(1)}MB` : 'N/A',
|
|
121
|
+
color: theme.accent,
|
|
122
|
+
theme: theme
|
|
123
|
+
}), /*#__PURE__*/_react.default.createElement(MetricCard, {
|
|
124
|
+
label: "Frames",
|
|
125
|
+
value: String(frameCount),
|
|
126
|
+
color: theme.textSecondary,
|
|
127
|
+
theme: theme
|
|
128
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
129
|
+
style: [styles.chartSection, {
|
|
130
|
+
backgroundColor: theme.surface
|
|
131
|
+
}]
|
|
132
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
133
|
+
style: [styles.chartTitle, {
|
|
134
|
+
color: theme.text
|
|
135
|
+
}]
|
|
136
|
+
}, "FPS History (last 60s)"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
137
|
+
style: styles.chartContainer
|
|
138
|
+
}, fpsHistoryRef.current.slice(-30).map((val, i) => {
|
|
139
|
+
const height = Math.max(4, val / 60 * 80);
|
|
140
|
+
const barColor = val >= 50 ? theme.success : val >= 30 ? theme.warning : theme.error;
|
|
141
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
142
|
+
key: i,
|
|
143
|
+
style: [styles.chartBar, {
|
|
144
|
+
height,
|
|
145
|
+
backgroundColor: barColor
|
|
146
|
+
}]
|
|
147
|
+
});
|
|
148
|
+
}))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
149
|
+
style: [styles.infoSection, {
|
|
150
|
+
backgroundColor: theme.surface
|
|
151
|
+
}]
|
|
152
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
153
|
+
style: [styles.infoText, {
|
|
154
|
+
color: theme.textMuted
|
|
155
|
+
}]
|
|
156
|
+
}, "Uptime: ", Math.floor(uptime / 60), "m ", uptime % 60, "s"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
157
|
+
style: [styles.infoText, {
|
|
158
|
+
color: theme.textMuted
|
|
159
|
+
}]
|
|
160
|
+
}, "Target: 60 FPS (16.67ms per frame)")));
|
|
161
|
+
};
|
|
162
|
+
const MetricCard = ({
|
|
163
|
+
label,
|
|
164
|
+
value,
|
|
165
|
+
color,
|
|
166
|
+
theme
|
|
167
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
168
|
+
style: [styles.metricCard, {
|
|
169
|
+
backgroundColor: theme.surfaceAlt
|
|
170
|
+
}]
|
|
171
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
172
|
+
style: [styles.metricValue, {
|
|
173
|
+
color
|
|
174
|
+
}]
|
|
175
|
+
}, value), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
176
|
+
style: [styles.metricLabel, {
|
|
177
|
+
color: theme.textMuted
|
|
178
|
+
}]
|
|
179
|
+
}, label));
|
|
180
|
+
const styles = _reactNative.StyleSheet.create({
|
|
181
|
+
container: {
|
|
182
|
+
flex: 1
|
|
183
|
+
},
|
|
184
|
+
heroSection: {
|
|
185
|
+
alignItems: 'center',
|
|
186
|
+
paddingVertical: 24
|
|
187
|
+
},
|
|
188
|
+
heroValue: {
|
|
189
|
+
fontSize: 64,
|
|
190
|
+
fontWeight: '900',
|
|
191
|
+
letterSpacing: -2
|
|
192
|
+
},
|
|
193
|
+
heroLabel: {
|
|
194
|
+
fontSize: 14,
|
|
195
|
+
fontWeight: '700',
|
|
196
|
+
textTransform: 'uppercase',
|
|
197
|
+
letterSpacing: 2
|
|
198
|
+
},
|
|
199
|
+
metricsGrid: {
|
|
200
|
+
flexDirection: 'row',
|
|
201
|
+
flexWrap: 'wrap',
|
|
202
|
+
padding: 8
|
|
203
|
+
},
|
|
204
|
+
metricCard: {
|
|
205
|
+
width: '30%',
|
|
206
|
+
margin: '1.5%',
|
|
207
|
+
padding: 12,
|
|
208
|
+
borderRadius: 12,
|
|
209
|
+
alignItems: 'center'
|
|
210
|
+
},
|
|
211
|
+
metricValue: {
|
|
212
|
+
fontSize: 18,
|
|
213
|
+
fontWeight: '800'
|
|
214
|
+
},
|
|
215
|
+
metricLabel: {
|
|
216
|
+
fontSize: 10,
|
|
217
|
+
fontWeight: '600',
|
|
218
|
+
marginTop: 4,
|
|
219
|
+
textTransform: 'uppercase'
|
|
220
|
+
},
|
|
221
|
+
chartSection: {
|
|
222
|
+
margin: 12,
|
|
223
|
+
padding: 12,
|
|
224
|
+
borderRadius: 12
|
|
225
|
+
},
|
|
226
|
+
chartTitle: {
|
|
227
|
+
fontSize: 12,
|
|
228
|
+
fontWeight: '700',
|
|
229
|
+
marginBottom: 8
|
|
230
|
+
},
|
|
231
|
+
chartContainer: {
|
|
232
|
+
flexDirection: 'row',
|
|
233
|
+
alignItems: 'flex-end',
|
|
234
|
+
height: 80,
|
|
235
|
+
gap: 2
|
|
236
|
+
},
|
|
237
|
+
chartBar: {
|
|
238
|
+
flex: 1,
|
|
239
|
+
borderRadius: 2,
|
|
240
|
+
minWidth: 3
|
|
241
|
+
},
|
|
242
|
+
infoSection: {
|
|
243
|
+
margin: 12,
|
|
244
|
+
padding: 12,
|
|
245
|
+
borderRadius: 12
|
|
246
|
+
},
|
|
247
|
+
infoText: {
|
|
248
|
+
fontSize: 11,
|
|
249
|
+
lineHeight: 18
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
function createPerformanceMonitorPlugin() {
|
|
253
|
+
return {
|
|
254
|
+
id: 'performance-monitor',
|
|
255
|
+
name: 'Perf',
|
|
256
|
+
icon: '⚡',
|
|
257
|
+
component: PerformanceMonitorPanel,
|
|
258
|
+
order: 70
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=PerformanceMonitorPlugin.js.map
|