reactoradar 1.5.10 → 1.6.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 +103 -31
- package/app.js +831 -124
- package/bin/setup.js +82 -6
- package/index.html +4 -0
- package/main.js +87 -20
- package/package.json +10 -2
- package/preload.js +3 -1
- package/styles.css +105 -8
package/README.md
CHANGED
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
<img src="https://img.shields.io/npm/v/reactoradar" alt="npm version" />
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="https://razorpay.me/@reactoradar"><img src="https://img.shields.io/badge/Support-%E2%98%95%20Buy%20me%20a%20coffee-ff813f" alt="Support this project" /></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
18
22
|
---
|
|
19
23
|
|
|
20
24
|
> The original [React Native Debugger](https://github.com/jhen0409/react-native-debugger) only supports the old Remote Debugger and doesn't work with Hermes / JSI / New Architecture. **ReactoRadar is the modern replacement** — built from scratch to work with the latest React Native versions.
|
|
@@ -26,28 +30,48 @@
|
|
|
26
30
|
<img src="https://raw.githubusercontent.com/sharanagouda/react-native-debugger/main/screenshots/consoleLogs.png" alt="Console Panel" width="800" />
|
|
27
31
|
</p>
|
|
28
32
|
|
|
29
|
-
*Collapsible object trees, multi-select level filters
|
|
33
|
+
*Collapsible object trees, multi-select level filters, log grouping, search, export as JSON, right-click to copy*
|
|
30
34
|
|
|
31
35
|
### Network — Chrome DevTools-style Inspector
|
|
32
36
|
<p align="center">
|
|
33
37
|
<img src="https://raw.githubusercontent.com/sharanagouda/react-native-debugger/main/screenshots/networkLogs.png" alt="Network Panel" width="800" />
|
|
34
38
|
</p>
|
|
35
39
|
|
|
36
|
-
*Resizable/sortable columns,
|
|
40
|
+
*Resizable/sortable columns, slow API highlights, export as HAR, stats bar, hide unwanted URLs, throttling*
|
|
37
41
|
|
|
38
42
|
## Features
|
|
39
43
|
|
|
40
44
|
| Tab | What it does |
|
|
41
45
|
|---|---|
|
|
42
|
-
| **Console** | Log viewer with collapsible
|
|
43
|
-
| **Network** | Chrome DevTools-style inspector — resizable/sortable columns
|
|
44
|
-
| **Redux** |
|
|
45
|
-
| **GA4 Events** | Firebase Analytics inspector — intercepts ALL `log*` and `set*` methods
|
|
46
|
+
| **Console** | Log viewer with collapsible trees, level filters, log grouping (repeated messages), search, export as JSON |
|
|
47
|
+
| **Network** | Chrome DevTools-style inspector — resizable/sortable columns, slow API highlighting (>1s orange, >3s red), status filters (All/2xx/Errors/Slow), export as HAR, hide unwanted URLs, stats bar, throttling, Copy as cURL |
|
|
48
|
+
| **Redux** | Action list with category color coding, click to expand payload + two-column store diff (Previous \| Current) with changed keys highlighted, time travel |
|
|
49
|
+
| **GA4 Events** | Firebase Analytics inspector — intercepts ALL `log*` and `set*` methods, event list with detail pane, summary chips |
|
|
46
50
|
| **App** | AsyncStorage live key/value browser with search |
|
|
47
51
|
| **Memory** | JS Heap Used/Total, Native Memory from Hermes runtime |
|
|
48
52
|
| **Performance** | Live FPS meter, JS Thread timing, UI Thread timing with sparkline graphs |
|
|
49
53
|
| **React** | Component tree and props inspector via `react-devtools-core` relay |
|
|
50
|
-
| **Settings** | 9 color themes
|
|
54
|
+
| **Settings** | 9 color themes, font family/size, configurable panel visibility with drag-to-reorder, Metro port config, keyboard shortcuts, auto-update, support link |
|
|
55
|
+
|
|
56
|
+
### What's New in v1.6.0
|
|
57
|
+
|
|
58
|
+
- **Auto-Update** — `.dmg` builds auto-download updates from GitHub Releases. Settings shows "Restart & Update" when ready.
|
|
59
|
+
- **Keyboard Shortcuts** — `Cmd+1–9` switch panels, `Cmd+K` clear, `Cmd+S` screenshot, `Cmd+F` find
|
|
60
|
+
- **Toast Notifications** — Non-intrusive alerts for console errors, API errors (4xx/5xx), and slow APIs (>3s) when you're on a different tab. Duplicate toasts are grouped with count.
|
|
61
|
+
- **Console Log Grouping** — Repeated identical consecutive messages show a count badge instead of duplicates
|
|
62
|
+
- **Export** — Console logs as JSON, Network requests as HAR 1.2 (importable into Chrome DevTools, Charles, etc.)
|
|
63
|
+
- **Network Stats Bar** — `47 requests | Avg: 320ms | Slowest: 4.2s (products) | Errors: 2 | Slow: 5`
|
|
64
|
+
- **Slow API Highlights** — Rows >1s turn orange, >3s turn red (background, path, time column)
|
|
65
|
+
- **Status Filters** — All / 2xx / Errors / Slow (>1s) filter buttons
|
|
66
|
+
- **Hide URLs** — Right-click any request → "Hide this URL". Manage hidden URLs with the "Hidden (N)" dropdown.
|
|
67
|
+
- **Redux Category Colors** — Action types like `ANALYTICS/TRACK_EVENT` show category prefix in a unique color
|
|
68
|
+
- **Two-Column Redux Diff** — Store changes show Previous and Current state side-by-side, trees collapsed by default, changed keys highlighted
|
|
69
|
+
- **Panel Visibility** — Settings > Panels: show/hide tabs and drag to reorder. Disabled tabs stop processing data to save memory.
|
|
70
|
+
- **Font Family** — Choose from SF Mono, Menlo, Monaco, Courier New, System Mono
|
|
71
|
+
- **Screenshot** — Camera button in titlebar or `Cmd+S` — saves PNG to Downloads
|
|
72
|
+
- **Memory Safeguards** — Auto-caps console (5K logs), network (1K requests), Redux (500 states). Warning banner at 70% heap usage.
|
|
73
|
+
- **Real Device Support** — iOS real device auto-detects LAN IP. Android uses adb reverse.
|
|
74
|
+
- **Debugger Detection** — SDK auto-pauses when Chrome DevTools or Hermes Inspector attaches, resumes on disconnect
|
|
51
75
|
|
|
52
76
|
## Installation
|
|
53
77
|
|
|
@@ -66,7 +90,7 @@ npx reactoradar # Launch the debugger
|
|
|
66
90
|
3. Install the SDK: `npx reactoradar setup` from your RN project
|
|
67
91
|
4. Open ReactoRadar from Applications
|
|
68
92
|
|
|
69
|
-
> **macOS Gatekeeper**: First launch
|
|
93
|
+
> **macOS Gatekeeper**: First launch — right-click → Open → Open. Or: `xattr -cr "/Applications/ReactoRadar.app"`
|
|
70
94
|
|
|
71
95
|
### Option C: Global install
|
|
72
96
|
|
|
@@ -101,6 +125,17 @@ npx react-native start --reset-cache
|
|
|
101
125
|
|
|
102
126
|
Console, Network, Redux, GA4, AsyncStorage data flows automatically. No config needed.
|
|
103
127
|
|
|
128
|
+
### Real Device Setup
|
|
129
|
+
|
|
130
|
+
| Device | HOST | How it connects |
|
|
131
|
+
|--------|------|-----------------|
|
|
132
|
+
| iOS Simulator | `127.0.0.1` | Shares Mac's network (auto-detected) |
|
|
133
|
+
| Android Emulator | `10.0.2.2` | Special host alias (auto-detected) |
|
|
134
|
+
| Android real device (USB) | `10.0.2.2` | `adb reverse` tunnels over USB (auto-configured) |
|
|
135
|
+
| iOS real device (USB/WiFi) | Mac's LAN IP | Auto-detected. Device must be on same WiFi as Mac. |
|
|
136
|
+
|
|
137
|
+
`npx reactoradar setup` auto-detects your platform and sets the correct HOST.
|
|
138
|
+
|
|
104
139
|
### Uninstall
|
|
105
140
|
|
|
106
141
|
```bash
|
|
@@ -111,7 +146,7 @@ npx reactoradar remove
|
|
|
111
146
|
|
|
112
147
|
| ReactoRadar | React Native | Engine | Architecture |
|
|
113
148
|
|---|---|---|---|
|
|
114
|
-
| v1.
|
|
149
|
+
| v1.6+ | 0.74 — 0.81+ | Hermes | Old & New Architecture |
|
|
115
150
|
|
|
116
151
|
## Network Inspector
|
|
117
152
|
|
|
@@ -120,30 +155,35 @@ npx reactoradar remove
|
|
|
120
155
|
| **Columns** | Name, Status, Type, Initiator, Size, Time, Waterfall — resizable and sortable |
|
|
121
156
|
| **Search** | Filter by URL in real time |
|
|
122
157
|
| **Type filters** | All, Fetch/XHR, JS, CSS, Img, Media, Font, Doc, WS |
|
|
158
|
+
| **Status filters** | All, 2xx, Errors, Slow (>1s) |
|
|
159
|
+
| **Slow API highlights** | >1s orange background + bold time, >3s red |
|
|
160
|
+
| **Stats bar** | Total requests, Avg duration, Slowest endpoint, Error count, Slow count |
|
|
161
|
+
| **Hide URLs** | Right-click → Hide this URL. Manage via "Hidden (N)" dropdown. Persists across sessions. |
|
|
162
|
+
| **Export** | Export as HAR 1.2 — importable into Chrome DevTools, Charles Proxy |
|
|
123
163
|
| **Throttling** | No throttling, Fast 3G (500ms), Slow 3G (2s), Offline |
|
|
124
164
|
| **Detail view** | Click row → Headers / Request / Preview / Response side panel |
|
|
125
|
-
| **Copy as cURL** | Right-click → Copy as cURL / Copy URL / Copy Response |
|
|
126
|
-
| **Request body** | Collapsible object tree (not raw JSON) |
|
|
165
|
+
| **Copy as cURL** | Right-click → Copy as cURL / Copy URL / Copy Response / Hide this URL |
|
|
127
166
|
| **Capture toggle** | ON/OFF switch to pause network capture |
|
|
128
167
|
|
|
129
168
|
## GA4 Event Inspector
|
|
130
169
|
|
|
131
170
|
| Feature | Details |
|
|
132
171
|
|---|---|
|
|
133
|
-
| **Auto-intercept** | Patches ALL `log*` and `set*` methods on Firebase Analytics prototype
|
|
172
|
+
| **Auto-intercept** | Patches ALL `log*` and `set*` methods on Firebase Analytics prototype |
|
|
134
173
|
| **Event list** | Time + event name, newest first, sortable |
|
|
135
|
-
| **Detail pane** | All parameters as key-value list with
|
|
136
|
-
| **Summary chips** | Click any chip to filter by
|
|
137
|
-
| **Resizable** | Drag the divider between list and detail |
|
|
138
|
-
| **Supported methods** | `logEvent`, `logPurchase`, `logAddToCart`, `logViewItem`, `logScreenView`, `logSelectPromotion`, `logViewPromotion`, `setUserId`, `setUserProperty`, `setConsent`, and 30+ more |
|
|
174
|
+
| **Detail pane** | All parameters as key-value list with word-wrapped long values |
|
|
175
|
+
| **Summary chips** | Click any chip to filter by event type |
|
|
139
176
|
|
|
140
177
|
## Redux DevTools
|
|
141
178
|
|
|
142
|
-
-
|
|
143
|
-
- Click
|
|
144
|
-
-
|
|
145
|
-
-
|
|
179
|
+
- Action list with category color coding (e.g., `ANALYTICS/` in blue, `CART/` in green)
|
|
180
|
+
- Click to expand, click again to collapse. Close button on expanded detail.
|
|
181
|
+
- **Two-column store diff**: Previous (red) and Current (green) side-by-side with changed keys highlighted
|
|
182
|
+
- Trees collapsed by default — user expands what they need
|
|
183
|
+
- Right-click to copy action type or payload
|
|
184
|
+
- Deep equality comparison (no false positives)
|
|
146
185
|
- Time travel with ◀ ▶ navigation
|
|
186
|
+
- Memory capped at 500 action/state pairs
|
|
147
187
|
|
|
148
188
|
### Redux Setup
|
|
149
189
|
|
|
@@ -169,21 +209,35 @@ import { reduxEnhancer } from '../debug/RNDebugSDK';
|
|
|
169
209
|
const store = createStore(reducer, __DEV__ ? reduxEnhancer : undefined);
|
|
170
210
|
```
|
|
171
211
|
|
|
172
|
-
> **Note:** The import path is relative from your store file to `src/debug/RNDebugSDK`.
|
|
212
|
+
> **Note:** The import path is relative from your store file to `src/debug/RNDebugSDK`. Run `npx reactoradar setup` to auto-detect the correct path.
|
|
213
|
+
|
|
214
|
+
## Settings
|
|
173
215
|
|
|
174
|
-
|
|
216
|
+
### Appearance
|
|
217
|
+
- **9 Themes**: Dark, Light, Monokai, Dracula, Solarized Dark/Light, Nord, GitHub Dark, One Dark
|
|
218
|
+
- **Font Family**: SF Mono, Menlo, Monaco, Courier New, System Mono
|
|
219
|
+
- **Font Size**: Adjustable with A-/A+ buttons
|
|
220
|
+
- **App Name**: Customizable titlebar text
|
|
175
221
|
|
|
176
|
-
|
|
222
|
+
### Panel Management
|
|
223
|
+
- **Show/Hide Tabs**: Toggle visibility of any tab (Console and Network are required)
|
|
224
|
+
- **Drag to Reorder**: Drag tabs to change sidebar order
|
|
225
|
+
- **Memory Saving**: Disabled tabs stop processing data entirely
|
|
177
226
|
|
|
178
|
-
|
|
227
|
+
### Connection
|
|
228
|
+
- **Metro Port**: Configurable (default 8081) for multi-bundler setups
|
|
229
|
+
- **Bridge Ports**: Redux :9090, Storage :9091, Network :9092
|
|
179
230
|
|
|
180
231
|
## Keyboard Shortcuts
|
|
181
232
|
|
|
182
233
|
| Shortcut | Action |
|
|
183
234
|
|---|---|
|
|
235
|
+
| `Cmd+1–9` | Switch panels (follows custom order) |
|
|
236
|
+
| `Cmd+K` | Clear active panel |
|
|
237
|
+
| `Cmd+S` | Screenshot (saves to Downloads) |
|
|
238
|
+
| `Cmd+F` | Find/Search in active panel |
|
|
184
239
|
| `Cmd+D` | Open JS Debugger (CDP DevTools) |
|
|
185
240
|
| `Cmd+R` | Open React DevTools |
|
|
186
|
-
| `Cmd+K` | Clear all panels |
|
|
187
241
|
| `Cmd+Shift+T` | Cycle through themes |
|
|
188
242
|
| `Cmd+C/V/A` | Copy / Paste / Select All |
|
|
189
243
|
|
|
@@ -195,7 +249,7 @@ All 16 CSS variables change per theme — every element in the app updates inclu
|
|
|
195
249
|
| 9091 | AsyncStorage bridge |
|
|
196
250
|
| 9092 | Console + Network + GA4 + Performance bridge |
|
|
197
251
|
| 8097 | React DevTools relay |
|
|
198
|
-
| 8081 | Metro bundler (CDP) |
|
|
252
|
+
| 8081 | Metro bundler (CDP) — configurable in Settings |
|
|
199
253
|
|
|
200
254
|
## Architecture
|
|
201
255
|
|
|
@@ -212,6 +266,8 @@ All 16 CSS variables change per theme — every element in the app updates inclu
|
|
|
212
266
|
│ ├─ WS :9091 ← asyncstorage │
|
|
213
267
|
│ ├─ WS :8097 ← react-devtools relay │
|
|
214
268
|
│ └─ HTTP :8081 → Metro CDP (on-demand) │
|
|
269
|
+
│ │
|
|
270
|
+
│ Auto-update via electron-updater (GitHub Releases) │
|
|
215
271
|
└──────────────────────┬──────────────────────────────┘
|
|
216
272
|
│ WebSocket
|
|
217
273
|
┌──────────────────────┴──────────────────────────────┐
|
|
@@ -222,8 +278,9 @@ All 16 CSS variables change per theme — every element in the app updates inclu
|
|
|
222
278
|
│ ├─ XHR constructor wrapper (axios + fetch) │
|
|
223
279
|
│ ├─ Firebase Analytics prototype interceptor │
|
|
224
280
|
│ ├─ FPS + memory metrics │
|
|
225
|
-
│ ├─ Redux middleware
|
|
226
|
-
│
|
|
281
|
+
│ ├─ Redux middleware / enhancer │
|
|
282
|
+
│ ├─ AsyncStorage watcher │
|
|
283
|
+
│ └─ Debugger detection (auto-pause on CDP attach) │
|
|
227
284
|
└─────────────────────────────────────────────────────┘
|
|
228
285
|
```
|
|
229
286
|
|
|
@@ -234,14 +291,24 @@ All 16 CSS variables change per theme — every element in the app updates inclu
|
|
|
234
291
|
| App won't launch from VS Code terminal | `unset ELECTRON_RUN_AS_NODE && npx reactoradar` |
|
|
235
292
|
| "Waiting for device" | Restart Metro: `npx react-native start --reset-cache` |
|
|
236
293
|
| Network tab empty | Run Metro with `--reset-cache` |
|
|
294
|
+
| Blank screen after long use | Click "Clear All Data" on the memory warning banner, or restart the app |
|
|
295
|
+
| Redux shows "No actions dispatched" | Verify `reduxMiddleware` is wired in your store. Run `npx reactoradar setup` to auto-detect. |
|
|
296
|
+
| Real device not connecting | Ensure HOST in `src/debug/RNDebugSDK.js` matches your Mac's LAN IP. Re-run `npx reactoradar setup`. |
|
|
237
297
|
| `XHRInterceptor.js` warning | Set `networking: false` in ReactotronConfig.js |
|
|
238
298
|
| GA4 events not showing | Restart Metro with `--reset-cache` after setup |
|
|
239
|
-
| Port conflict |
|
|
299
|
+
| Port conflict | Run `kill $(lsof -ti :9092)` to free the port, then restart |
|
|
300
|
+
| "ReactoRadar is already running" | Close the existing instance or kill the process |
|
|
240
301
|
|
|
241
302
|
## Privacy
|
|
242
303
|
|
|
243
304
|
ReactoRadar runs entirely on your local machine. No data collection, no analytics, no telemetry. See [PRIVACY.md](./PRIVACY.md).
|
|
244
305
|
|
|
306
|
+
## Support
|
|
307
|
+
|
|
308
|
+
If ReactoRadar helps your workflow, consider supporting development:
|
|
309
|
+
|
|
310
|
+
<a href="https://razorpay.me/@reactoradar"><img src="https://img.shields.io/badge/Support-%E2%98%95%20Buy%20me%20a%20coffee-ff813f?style=for-the-badge" alt="Support this project" /></a>
|
|
311
|
+
|
|
245
312
|
## Contributing
|
|
246
313
|
|
|
247
314
|
Contributions welcome! Fork → branch → PR.
|
|
@@ -255,8 +322,9 @@ npm start
|
|
|
255
322
|
|
|
256
323
|
### Ideas for contribution
|
|
257
324
|
- Windows / Linux support
|
|
258
|
-
-
|
|
259
|
-
-
|
|
325
|
+
- WebSocket message inspector
|
|
326
|
+
- Network request comparison (diff two requests)
|
|
327
|
+
- Session recording & replay
|
|
260
328
|
- Custom themes
|
|
261
329
|
- React Native New Architecture profiling
|
|
262
330
|
|
|
@@ -267,6 +335,10 @@ npm start
|
|
|
267
335
|
- [Redux DevTools](https://github.com/reduxjs/redux-devtools)
|
|
268
336
|
- [React Native Debugger](https://github.com/jhen0409/react-native-debugger) — the original inspiration
|
|
269
337
|
|
|
338
|
+
## Author
|
|
339
|
+
|
|
340
|
+
**Sharanagouda M K** — [LinkedIn](https://www.linkedin.com/in/sharanagoudamk/) · [GitHub](https://github.com/sharanagouda)
|
|
341
|
+
|
|
270
342
|
## License
|
|
271
343
|
|
|
272
344
|
[MIT](./LICENSE)
|