react-native-debug-toolkit 2.2.0 → 3.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.
Files changed (115) hide show
  1. package/README.md +5 -8
  2. package/README.zh-CN.md +5 -8
  3. package/bin/debug-toolkit.js +114 -0
  4. package/lib/commonjs/features/network/index.js +32 -12
  5. package/lib/commonjs/features/network/index.js.map +1 -1
  6. package/lib/commonjs/features/network/networkInterceptor.js +164 -201
  7. package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
  8. package/lib/commonjs/index.js +59 -0
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/panel/DebugPanel.js +25 -0
  11. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
  12. package/lib/commonjs/ui/panel/FloatPanelView.js +15 -62
  13. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
  14. package/lib/commonjs/ui/panel/StreamingSettingsModal.js +529 -0
  15. package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -0
  16. package/lib/commonjs/ui/panel/useTabAnimation.js +71 -0
  17. package/lib/commonjs/ui/panel/useTabAnimation.js.map +1 -0
  18. package/lib/commonjs/utils/autoDetectDaemon.js +141 -0
  19. package/lib/commonjs/utils/autoDetectDaemon.js.map +1 -0
  20. package/lib/commonjs/utils/createPersistedObservableStore.js +23 -3
  21. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
  22. package/lib/commonjs/utils/daemonConnection.js +81 -0
  23. package/lib/commonjs/utils/daemonConnection.js.map +1 -0
  24. package/lib/commonjs/utils/daemonSettings.js +110 -0
  25. package/lib/commonjs/utils/daemonSettings.js.map +1 -0
  26. package/lib/commonjs/utils/reportToDaemon.js +112 -0
  27. package/lib/commonjs/utils/reportToDaemon.js.map +1 -0
  28. package/lib/commonjs/utils/sessionReport.js +132 -0
  29. package/lib/commonjs/utils/sessionReport.js.map +1 -0
  30. package/lib/commonjs/utils/streamToDaemon.js +334 -0
  31. package/lib/commonjs/utils/streamToDaemon.js.map +1 -0
  32. package/lib/module/features/network/index.js +30 -12
  33. package/lib/module/features/network/index.js.map +1 -1
  34. package/lib/module/features/network/networkInterceptor.js +163 -200
  35. package/lib/module/features/network/networkInterceptor.js.map +1 -1
  36. package/lib/module/index.js +5 -0
  37. package/lib/module/index.js.map +1 -1
  38. package/lib/module/ui/panel/DebugPanel.js +26 -1
  39. package/lib/module/ui/panel/DebugPanel.js.map +1 -1
  40. package/lib/module/ui/panel/FloatPanelView.js +16 -63
  41. package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
  42. package/lib/module/ui/panel/StreamingSettingsModal.js +524 -0
  43. package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -0
  44. package/lib/module/ui/panel/useTabAnimation.js +67 -0
  45. package/lib/module/ui/panel/useTabAnimation.js.map +1 -0
  46. package/lib/module/utils/autoDetectDaemon.js +136 -0
  47. package/lib/module/utils/autoDetectDaemon.js.map +1 -0
  48. package/lib/module/utils/createPersistedObservableStore.js +23 -3
  49. package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
  50. package/lib/module/utils/daemonConnection.js +77 -0
  51. package/lib/module/utils/daemonConnection.js.map +1 -0
  52. package/lib/module/utils/daemonSettings.js +102 -0
  53. package/lib/module/utils/daemonSettings.js.map +1 -0
  54. package/lib/module/utils/reportToDaemon.js +105 -0
  55. package/lib/module/utils/reportToDaemon.js.map +1 -0
  56. package/lib/module/utils/sessionReport.js +128 -0
  57. package/lib/module/utils/sessionReport.js.map +1 -0
  58. package/lib/module/utils/streamToDaemon.js +328 -0
  59. package/lib/module/utils/streamToDaemon.js.map +1 -0
  60. package/lib/typescript/src/features/network/index.d.ts +2 -4
  61. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  62. package/lib/typescript/src/features/network/networkInterceptor.d.ts +2 -15
  63. package/lib/typescript/src/features/network/networkInterceptor.d.ts.map +1 -1
  64. package/lib/typescript/src/index.d.ts +11 -1
  65. package/lib/typescript/src/index.d.ts.map +1 -1
  66. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
  67. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
  68. package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts +8 -0
  69. package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -0
  70. package/lib/typescript/src/ui/panel/useTabAnimation.d.ts +14 -0
  71. package/lib/typescript/src/ui/panel/useTabAnimation.d.ts.map +1 -0
  72. package/lib/typescript/src/utils/autoDetectDaemon.d.ts +15 -0
  73. package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +1 -0
  74. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +2 -1
  75. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
  76. package/lib/typescript/src/utils/daemonConnection.d.ts +18 -0
  77. package/lib/typescript/src/utils/daemonConnection.d.ts.map +1 -0
  78. package/lib/typescript/src/utils/daemonSettings.d.ts +19 -0
  79. package/lib/typescript/src/utils/daemonSettings.d.ts.map +1 -0
  80. package/lib/typescript/src/utils/reportToDaemon.d.ts +34 -0
  81. package/lib/typescript/src/utils/reportToDaemon.d.ts.map +1 -0
  82. package/lib/typescript/src/utils/sessionReport.d.ts +18 -0
  83. package/lib/typescript/src/utils/sessionReport.d.ts.map +1 -0
  84. package/lib/typescript/src/utils/streamToDaemon.d.ts +23 -0
  85. package/lib/typescript/src/utils/streamToDaemon.d.ts.map +1 -0
  86. package/node/daemon/src/cli.js +75 -0
  87. package/node/daemon/src/console/console.html +936 -0
  88. package/node/daemon/src/console/index.js +47 -0
  89. package/node/daemon/src/constants.js +32 -0
  90. package/node/daemon/src/index.js +11 -0
  91. package/node/daemon/src/server.js +365 -0
  92. package/node/daemon/src/store.js +110 -0
  93. package/node/mcp/src/cli.js +31 -0
  94. package/node/mcp/src/constants.js +13 -0
  95. package/node/mcp/src/daemonClient.js +132 -0
  96. package/node/mcp/src/httpClient.js +49 -0
  97. package/node/mcp/src/index.js +15 -0
  98. package/node/mcp/src/logs.js +95 -0
  99. package/node/mcp/src/server.js +144 -0
  100. package/node/mcp/src/tools.js +84 -0
  101. package/package.json +10 -5
  102. package/src/features/network/index.ts +35 -19
  103. package/src/features/network/networkInterceptor.ts +224 -236
  104. package/src/index.ts +15 -1
  105. package/src/ui/panel/DebugPanel.tsx +23 -1
  106. package/src/ui/panel/FloatPanelView.tsx +10 -68
  107. package/src/ui/panel/StreamingSettingsModal.tsx +566 -0
  108. package/src/ui/panel/useTabAnimation.ts +77 -0
  109. package/src/utils/autoDetectDaemon.ts +175 -0
  110. package/src/utils/createPersistedObservableStore.ts +16 -3
  111. package/src/utils/daemonConnection.ts +133 -0
  112. package/src/utils/daemonSettings.ts +134 -0
  113. package/src/utils/reportToDaemon.ts +172 -0
  114. package/src/utils/sessionReport.ts +203 -0
  115. package/src/utils/streamToDaemon.ts +419 -0
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDebugSessionReport = createDebugSessionReport;
7
+ var _reactNative = require("react-native");
8
+ var _DebugToolkit = require("../core/DebugToolkit");
9
+ var _safeStringify = require("./safeStringify");
10
+ const DEFAULT_MAX_PER_TYPE = 50;
11
+ const DEFAULT_MAX_BODY_BYTES = 16 * 1024;
12
+ const MAX_DEPTH = 8;
13
+ function utf8ByteLength(value) {
14
+ let bytes = 0;
15
+ for (let index = 0; index < value.length; index += 1) {
16
+ const code = value.charCodeAt(index);
17
+ if (code <= 0x7f) {
18
+ bytes += 1;
19
+ } else if (code <= 0x7ff) {
20
+ bytes += 2;
21
+ } else if (code >= 0xd800 && code <= 0xdbff) {
22
+ bytes += 4;
23
+ index += 1;
24
+ } else {
25
+ bytes += 3;
26
+ }
27
+ }
28
+ return bytes;
29
+ }
30
+ function truncateUtf8(value, maxBytes) {
31
+ if (utf8ByteLength(value) <= maxBytes) {
32
+ return value;
33
+ }
34
+ let bytes = 0;
35
+ let result = '';
36
+ for (let index = 0; index < value.length; index += 1) {
37
+ const code = value.charCodeAt(index);
38
+ const char = value[index];
39
+ const charBytes = code <= 0x7f ? 1 : code <= 0x7ff ? 2 : code >= 0xd800 && code <= 0xdbff ? 4 : 3;
40
+ if (bytes + charBytes > maxBytes) {
41
+ break;
42
+ }
43
+ result += char;
44
+ bytes += charBytes;
45
+ if (charBytes === 4) {
46
+ index += 1;
47
+ result += value[index] ?? '';
48
+ }
49
+ }
50
+ return `${result}...[truncated]`;
51
+ }
52
+ function truncateLargeValue(value, maxBytes) {
53
+ const serialized = (0, _safeStringify.safeStringify)(value);
54
+ const originalBytes = utf8ByteLength(serialized);
55
+ if (originalBytes <= maxBytes) {
56
+ return value;
57
+ }
58
+ return {
59
+ __debugToolkitTruncated: true,
60
+ originalBytes,
61
+ preview: truncateUtf8(serialized, maxBytes)
62
+ };
63
+ }
64
+ function sanitizeValue(value, maxBodyBytes, depth = 0, seen = new WeakSet(), key = '') {
65
+ if (typeof value === 'string') {
66
+ return truncateUtf8(value, maxBodyBytes);
67
+ }
68
+ if (value === null || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined') {
69
+ return value;
70
+ }
71
+ if (typeof value === 'function' || typeof value === 'symbol' || typeof value === 'bigint') {
72
+ return String(value);
73
+ }
74
+ if (value instanceof Date) {
75
+ return value.toISOString();
76
+ }
77
+ if (typeof value !== 'object') {
78
+ return value;
79
+ }
80
+ const normalizedKey = key.toLowerCase();
81
+ if (normalizedKey === 'body' || normalizedKey === 'data') {
82
+ const normalized = sanitizeValue(value, maxBodyBytes, depth + 1, seen);
83
+ return truncateLargeValue(normalized, maxBodyBytes);
84
+ }
85
+ if (seen.has(value)) {
86
+ return '[Circular]';
87
+ }
88
+ if (depth >= MAX_DEPTH) {
89
+ return '[MaxDepth]';
90
+ }
91
+ seen.add(value);
92
+ if (Array.isArray(value)) {
93
+ return value.map(item => sanitizeValue(item, maxBodyBytes, depth + 1, seen));
94
+ }
95
+ return Object.entries(value).reduce((acc, [entryKey, entryValue]) => {
96
+ acc[entryKey] = sanitizeValue(entryValue, maxBodyBytes, depth + 1, seen, entryKey);
97
+ return acc;
98
+ }, {});
99
+ }
100
+ function createDebugSessionReport(options = {}) {
101
+ const maxPerType = Math.max(1, Math.floor(options.maxPerType ?? DEFAULT_MAX_PER_TYPE));
102
+ const maxBodyBytes = Math.max(256, Math.floor(options.maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES));
103
+ const includeTypes = options.includeTypes?.length ? new Set(options.includeTypes) : null;
104
+ const logs = {};
105
+ _DebugToolkit.DebugToolkit.features.forEach(feature => {
106
+ if (includeTypes && !includeTypes.has(feature.name)) {
107
+ return;
108
+ }
109
+ let snapshot;
110
+ try {
111
+ snapshot = feature.getSnapshot();
112
+ } catch {
113
+ return;
114
+ }
115
+ if (!Array.isArray(snapshot)) {
116
+ return;
117
+ }
118
+ logs[feature.name] = snapshot.slice(-maxPerType).map(entry => sanitizeValue(entry, maxBodyBytes));
119
+ });
120
+ const constants = _reactNative.Platform.constants;
121
+ return {
122
+ version: 2,
123
+ device: {
124
+ platform: _reactNative.Platform.OS,
125
+ model: constants?.model || 'unknown',
126
+ osVersion: _reactNative.Platform.Version == null ? 'unknown' : String(_reactNative.Platform.Version),
127
+ appVersion: constants?.appVersion || 'unknown'
128
+ },
129
+ logs
130
+ };
131
+ }
132
+ //# sourceMappingURL=sessionReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_DebugToolkit","_safeStringify","DEFAULT_MAX_PER_TYPE","DEFAULT_MAX_BODY_BYTES","MAX_DEPTH","utf8ByteLength","value","bytes","index","length","code","charCodeAt","truncateUtf8","maxBytes","result","char","charBytes","truncateLargeValue","serialized","safeStringify","originalBytes","__debugToolkitTruncated","preview","sanitizeValue","maxBodyBytes","depth","seen","WeakSet","key","String","Date","toISOString","normalizedKey","toLowerCase","normalized","has","add","Array","isArray","map","item","Object","entries","reduce","acc","entryKey","entryValue","createDebugSessionReport","options","maxPerType","Math","max","floor","includeTypes","Set","logs","DebugToolkit","features","forEach","feature","name","snapshot","getSnapshot","slice","entry","constants","Platform","version","device","platform","OS","model","osVersion","Version","appVersion"],"sourceRoot":"../../../src","sources":["utils/sessionReport.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isStreaming = isStreaming;
7
+ exports.startStreaming = startStreaming;
8
+ exports.stopStreaming = stopStreaming;
9
+ var _reactNative = require("react-native");
10
+ var _DebugToolkit = require("../core/DebugToolkit");
11
+ var _network = require("../features/network");
12
+ var _sessionReport = require("./sessionReport");
13
+ var _reportToDaemon = require("./reportToDaemon");
14
+ var _safeStringify = require("./safeStringify");
15
+ const DEFAULT_DEBOUNCE_MS = 200;
16
+ const DEFAULT_TIMEOUT_MS = 3000;
17
+ const RETRY_BASE_MS = 1000;
18
+ const MAX_RETRY_DELAY_MS = 30000;
19
+ const MAX_RETRY_ATTEMPTS = 10;
20
+ const BACKGROUND_RESYNC_THRESHOLD_MS = 5 * 60 * 1000;
21
+ let active = null;
22
+ function createAbortController() {
23
+ const AbortControllerCtor = globalThis.AbortController;
24
+ return AbortControllerCtor ? new AbortControllerCtor() : undefined;
25
+ }
26
+ function getEntryId(entry) {
27
+ if (!entry || typeof entry !== 'object') {
28
+ return null;
29
+ }
30
+ const id = entry.id;
31
+ return typeof id === 'string' || typeof id === 'number' ? id : null;
32
+ }
33
+ function snapshotToIds(snapshot) {
34
+ return new Set(snapshot.map(getEntryId).filter(id => id != null));
35
+ }
36
+ function fetchHeaders(state) {
37
+ const headers = {
38
+ 'Content-Type': 'application/json'
39
+ };
40
+ if (state.token) headers.Authorization = `Bearer ${state.token}`;
41
+ return headers;
42
+ }
43
+ function emitStatus(state, status) {
44
+ try {
45
+ state.onStatus?.(status);
46
+ } catch {
47
+ // Consumer status callbacks should not affect log delivery.
48
+ }
49
+ }
50
+ function isAuthFailure(status) {
51
+ return status === 401 || status === 403;
52
+ }
53
+ function failStreaming(state, reason) {
54
+ if (active !== state) return;
55
+ emitStatus(state, {
56
+ state: 'failed',
57
+ reason
58
+ });
59
+ stopStreaming();
60
+ }
61
+ async function doPost(url, headers, body, timeoutMs) {
62
+ const fetchImpl = (0, _reportToDaemon.getGlobalFetch)();
63
+ if (!fetchImpl) {
64
+ return null;
65
+ }
66
+ const controller = createAbortController();
67
+ const timeout = controller && timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : undefined;
68
+ try {
69
+ return await fetchImpl(url, {
70
+ method: 'POST',
71
+ headers,
72
+ body: (0, _safeStringify.safeStringify)(body),
73
+ signal: controller?.signal
74
+ });
75
+ } catch {
76
+ return null;
77
+ } finally {
78
+ if (timeout) {
79
+ clearTimeout(timeout);
80
+ }
81
+ }
82
+ }
83
+ function resetRetry(state) {
84
+ state.retryAttempt = 0;
85
+ if (state.retryTimer) {
86
+ clearTimeout(state.retryTimer);
87
+ state.retryTimer = null;
88
+ }
89
+ }
90
+ function scheduleRetry(state) {
91
+ if (state.retryTimer) return;
92
+ if (state.retryAttempt >= MAX_RETRY_ATTEMPTS) {
93
+ failStreaming(state, 'retry_limit');
94
+ return;
95
+ }
96
+ const delay = Math.min(RETRY_BASE_MS * 2 ** state.retryAttempt, MAX_RETRY_DELAY_MS);
97
+ state.retryAttempt += 1;
98
+ emitStatus(state, {
99
+ state: 'retrying',
100
+ retryInMs: delay
101
+ });
102
+ state.retryTimer = setTimeout(() => {
103
+ state.retryTimer = null;
104
+ if (active !== state) return;
105
+ if (state.sessionId) {
106
+ sendDelta(state);
107
+ } else {
108
+ sendFullReport(state);
109
+ }
110
+ }, delay);
111
+ }
112
+ async function sendFullReport(state) {
113
+ if (state.sending) return;
114
+ state.sending = true;
115
+ let result = 'ok';
116
+ try {
117
+ result = await doSendFullReport(state);
118
+ if (result === 'ok') resetRetry(state);
119
+ } finally {
120
+ state.sending = false;
121
+ if (active !== state) return;
122
+ if (result === 'auth_failed') {
123
+ failStreaming(state, 'auth');
124
+ } else if (result === 'retry') {
125
+ scheduleRetry(state);
126
+ } else if (state.dirtyFeatures.size > 0 && !state.debounceTimer) {
127
+ scheduleDelta(state);
128
+ }
129
+ }
130
+ }
131
+ async function doSendFullReport(state) {
132
+ const report = (0, _sessionReport.createDebugSessionReport)();
133
+ const response = await doPost(state.reportUrl, fetchHeaders(state), report, state.timeoutMs);
134
+ if (!response) return 'retry';
135
+ if (isAuthFailure(response.status)) return 'auth_failed';
136
+ if (response.status < 200 || response.status >= 300) return 'retry';
137
+ try {
138
+ const body = response.json ? await response.json() : null;
139
+ if (body?.ok !== true || typeof body.sessionId !== 'string') return 'retry';
140
+ state.sessionId = body.sessionId;
141
+ emitStatus(state, {
142
+ state: 'connected',
143
+ sessionId: body.sessionId
144
+ });
145
+ } catch {
146
+ return 'retry';
147
+ }
148
+ state.lastSentIds.clear();
149
+ for (const feature of _DebugToolkit.DebugToolkit.features) {
150
+ try {
151
+ const snapshot = feature.getSnapshot();
152
+ if (Array.isArray(snapshot)) state.lastSentIds.set(feature.name, snapshotToIds(snapshot));
153
+ } catch {
154
+ // skip
155
+ }
156
+ }
157
+ return 'ok';
158
+ }
159
+ async function sendDelta(state) {
160
+ if (state.sending || state.dirtyFeatures.size === 0) return;
161
+ state.sending = true;
162
+ let retry = false;
163
+ try {
164
+ const delta = {};
165
+ const nextSentIds = new Map();
166
+ const features = _DebugToolkit.DebugToolkit.features;
167
+ for (const featureName of state.dirtyFeatures) {
168
+ const feature = features.find(f => f.name === featureName);
169
+ if (!feature) continue;
170
+ let snapshot;
171
+ try {
172
+ snapshot = feature.getSnapshot();
173
+ } catch {
174
+ continue;
175
+ }
176
+ if (!Array.isArray(snapshot)) continue;
177
+ const prevIds = state.lastSentIds.get(featureName) || new Set();
178
+ const newEntries = snapshot.filter(entry => {
179
+ const id = getEntryId(entry);
180
+ return id != null && !prevIds.has(id);
181
+ });
182
+ if (newEntries.length > 0) {
183
+ delta[featureName] = newEntries;
184
+ nextSentIds.set(featureName, snapshotToIds(snapshot));
185
+ }
186
+ }
187
+ state.dirtyFeatures.clear();
188
+ state.debounceTimer = null;
189
+ if (Object.keys(delta).length === 0) return;
190
+ if (!state.sessionId) {
191
+ const result = await doSendFullReport(state);
192
+ retry = result === 'retry';
193
+ if (result !== 'ok') Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
194
+ if (result === 'auth_failed') failStreaming(state, 'auth');
195
+ if (result === 'ok') resetRetry(state);
196
+ return;
197
+ }
198
+ const response = await doPost(state.ingestUrl, fetchHeaders(state), {
199
+ sessionId: state.sessionId,
200
+ delta: {
201
+ logs: delta
202
+ }
203
+ }, state.timeoutMs);
204
+ if (!response) {
205
+ Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
206
+ retry = true;
207
+ return;
208
+ }
209
+ if (response.status === 404) {
210
+ state.sessionId = null;
211
+ state.lastSentIds.clear();
212
+ const result = await doSendFullReport(state);
213
+ retry = result === 'retry';
214
+ if (result !== 'ok') Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
215
+ if (result === 'auth_failed') failStreaming(state, 'auth');
216
+ if (result === 'ok') resetRetry(state);
217
+ return;
218
+ }
219
+ if (isAuthFailure(response.status)) {
220
+ Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
221
+ failStreaming(state, 'auth');
222
+ return;
223
+ }
224
+ if (response.status < 200 || response.status >= 300) {
225
+ Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
226
+ retry = true;
227
+ return;
228
+ }
229
+ nextSentIds.forEach((ids, featureName) => {
230
+ state.lastSentIds.set(featureName, ids);
231
+ });
232
+ resetRetry(state);
233
+ if (state.sessionId) {
234
+ emitStatus(state, {
235
+ state: 'connected',
236
+ sessionId: state.sessionId
237
+ });
238
+ }
239
+ } finally {
240
+ state.sending = false;
241
+ if (active !== state) return;
242
+ if (retry && state.dirtyFeatures.size > 0) {
243
+ scheduleRetry(state);
244
+ } else if (state.dirtyFeatures.size > 0 && !state.debounceTimer) {
245
+ scheduleDelta(state);
246
+ }
247
+ }
248
+ }
249
+ function scheduleDelta(state) {
250
+ if (state.debounceTimer) clearTimeout(state.debounceTimer);
251
+ state.debounceTimer = setTimeout(() => {
252
+ state.debounceTimer = null;
253
+ if (active === state) sendDelta(state);
254
+ }, state.debounceMs);
255
+ }
256
+ function onFeatureChange(featureName) {
257
+ if (!active) return;
258
+ active.dirtyFeatures.add(featureName);
259
+ if (active.retryTimer) return;
260
+ scheduleDelta(active);
261
+ }
262
+ function handleAppStateChange(nextState) {
263
+ if (!active) return;
264
+ if (nextState === 'background') {
265
+ active.backgroundedAt = Date.now();
266
+ if (active.debounceTimer) {
267
+ clearTimeout(active.debounceTimer);
268
+ active.debounceTimer = null;
269
+ }
270
+ sendDelta(active);
271
+ } else if (nextState === 'active') {
272
+ const wasAway = active.backgroundedAt ? Date.now() - active.backgroundedAt : 0;
273
+ active.backgroundedAt = null;
274
+ if (wasAway > BACKGROUND_RESYNC_THRESHOLD_MS || !active.sessionId) {
275
+ active.sessionId = null;
276
+ active.lastSentIds.clear();
277
+ sendFullReport(active);
278
+ }
279
+ }
280
+ }
281
+ function startStreaming(options = {}) {
282
+ if (active) return;
283
+ const endpoint = options.endpoint || (0, _reportToDaemon.getDefaultDaemonEndpoint)();
284
+ const reportUrl = (0, _reportToDaemon.buildDaemonUrl)(endpoint, '/report');
285
+ const ingestUrl = (0, _reportToDaemon.buildDaemonUrl)(endpoint, '/ingest');
286
+ (0, _network._addDaemonEndpointToNetworkBlacklist)(endpoint);
287
+ (0, _network._addDaemonEndpointToNetworkBlacklist)(reportUrl);
288
+ (0, _network._addDaemonEndpointToNetworkBlacklist)(ingestUrl);
289
+ const state = {
290
+ endpoint,
291
+ reportUrl,
292
+ ingestUrl,
293
+ token: options.token,
294
+ debounceMs: options.debounceMs || DEFAULT_DEBOUNCE_MS,
295
+ timeoutMs: Math.max(0, options.timeoutMs ?? DEFAULT_TIMEOUT_MS),
296
+ sessionId: null,
297
+ sending: false,
298
+ debounceTimer: null,
299
+ retryTimer: null,
300
+ retryAttempt: 0,
301
+ dirtyFeatures: new Set(),
302
+ lastSentIds: new Map(),
303
+ featureUnsubscribes: [],
304
+ appStateUnsubscribe: null,
305
+ backgroundedAt: null,
306
+ onStatus: options.onStatus
307
+ };
308
+ for (const feature of _DebugToolkit.DebugToolkit.features) {
309
+ if (!feature.subscribe) continue;
310
+ const unsub = feature.subscribe(() => {
311
+ onFeatureChange(feature.name);
312
+ });
313
+ state.featureUnsubscribes.push(unsub);
314
+ }
315
+ state.appStateUnsubscribe = _reactNative.AppState.addEventListener('change', handleAppStateChange).remove;
316
+ active = state;
317
+ emitStatus(active, {
318
+ state: 'connecting'
319
+ });
320
+ sendFullReport(active);
321
+ }
322
+ function stopStreaming() {
323
+ if (!active) return;
324
+ const state = active;
325
+ active = null;
326
+ if (state.debounceTimer) clearTimeout(state.debounceTimer);
327
+ if (state.retryTimer) clearTimeout(state.retryTimer);
328
+ state.featureUnsubscribes.forEach(fn => fn());
329
+ state.appStateUnsubscribe?.();
330
+ }
331
+ function isStreaming() {
332
+ return active !== null;
333
+ }
334
+ //# sourceMappingURL=streamToDaemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_DebugToolkit","_network","_sessionReport","_reportToDaemon","_safeStringify","DEFAULT_DEBOUNCE_MS","DEFAULT_TIMEOUT_MS","RETRY_BASE_MS","MAX_RETRY_DELAY_MS","MAX_RETRY_ATTEMPTS","BACKGROUND_RESYNC_THRESHOLD_MS","active","createAbortController","AbortControllerCtor","globalThis","AbortController","undefined","getEntryId","entry","id","snapshotToIds","snapshot","Set","map","filter","fetchHeaders","state","headers","token","Authorization","emitStatus","status","onStatus","isAuthFailure","failStreaming","reason","stopStreaming","doPost","url","body","timeoutMs","fetchImpl","getGlobalFetch","controller","timeout","setTimeout","abort","method","safeStringify","signal","clearTimeout","resetRetry","retryAttempt","retryTimer","scheduleRetry","delay","Math","min","retryInMs","sessionId","sendDelta","sendFullReport","sending","result","doSendFullReport","dirtyFeatures","size","debounceTimer","scheduleDelta","report","createDebugSessionReport","response","reportUrl","json","ok","lastSentIds","clear","feature","DebugToolkit","features","getSnapshot","Array","isArray","set","name","retry","delta","nextSentIds","Map","featureName","find","f","prevIds","get","newEntries","has","length","Object","keys","forEach","add","ingestUrl","logs","ids","debounceMs","onFeatureChange","handleAppStateChange","nextState","backgroundedAt","Date","now","wasAway","startStreaming","options","endpoint","getDefaultDaemonEndpoint","buildDaemonUrl","_addDaemonEndpointToNetworkBlacklist","max","featureUnsubscribes","appStateUnsubscribe","subscribe","unsub","push","AppState","addEventListener","remove","fn","isStreaming"],"sourceRoot":"../../../src","sources":["utils/streamToDaemon.ts"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { createEventChannel } from '../../utils/createEventChannel';
5
5
  import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
6
6
  import { KEYS } from '../../utils/debugPreferences';
7
7
  import { urlRewriter } from '../../utils/urlRewriterRegistry';
8
- import { startFetch, startAxios, resetInterceptors } from './networkInterceptor';
8
+ import { startXMLHttpRequest, resetInterceptors } from './networkInterceptor';
9
9
  // ─── Utilities ────────────────────────────────────────
10
10
 
11
11
  function isUrlBlacklisted(url, blacklist) {
@@ -25,6 +25,7 @@ function emitNetworkLog(entry) {
25
25
  // ─── Feature factory ──────────────────────────────────
26
26
 
27
27
  const DEFAULT_MAX_LOGS = 200;
28
+ const daemonEndpointBlacklist = [];
28
29
  export const createNetworkFeature = config => {
29
30
  const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
30
31
  const blacklist = config?.blacklist ? [...config.blacklist] : [];
@@ -34,10 +35,9 @@ export const createNetworkFeature = config => {
34
35
  });
35
36
  let initialized = false;
36
37
  let unsubscribeLogs = null;
37
- let stopFetchFn = null;
38
- let stopAxiosFn = null;
38
+ let stopXhrFn = null;
39
39
  const handleLog = entry => {
40
- if (isUrlBlacklisted(entry.request.url, blacklist)) {
40
+ if (isUrlBlacklisted(entry.request.url, [...blacklist, ...daemonEndpointBlacklist])) {
41
41
  return;
42
42
  }
43
43
  logStore.push({
@@ -54,10 +54,7 @@ export const createNetworkFeature = config => {
54
54
  return;
55
55
  }
56
56
  unsubscribeLogs = networkChannel.subscribe(handleLog);
57
- stopFetchFn = startFetch(emitNetworkLog);
58
- if (config?.axiosInstance) {
59
- stopAxiosFn = startAxios(config.axiosInstance, emitNetworkLog);
60
- }
57
+ stopXhrFn = startXMLHttpRequest(emitNetworkLog);
61
58
  initialized = true;
62
59
  },
63
60
  getSnapshot: () => logStore.getData(),
@@ -71,20 +68,41 @@ export const createNetworkFeature = config => {
71
68
  urlRewriter.set(null);
72
69
  unsubscribeLogs?.();
73
70
  unsubscribeLogs = null;
74
- stopFetchFn?.();
75
- stopFetchFn = null;
76
- stopAxiosFn?.();
77
- stopAxiosFn = null;
71
+ stopXhrFn?.();
72
+ stopXhrFn = null;
78
73
  logStore.clear();
79
74
  initialized = false;
80
75
  },
81
76
  subscribe: listener => logStore.subscribe(listener)
82
77
  };
83
78
  };
79
+ function normalizeDaemonEndpoint(endpoint) {
80
+ const trimmed = endpoint.trim().replace(/\/+$/, '');
81
+ if (!trimmed) {
82
+ return trimmed;
83
+ }
84
+ try {
85
+ const url = new URL(trimmed);
86
+ return `${url.origin}${url.pathname === '/' ? '' : url.pathname}`;
87
+ } catch {
88
+ return trimmed;
89
+ }
90
+ }
91
+ export function _addDaemonEndpointToNetworkBlacklist(endpoint) {
92
+ const normalized = normalizeDaemonEndpoint(endpoint);
93
+ if (!normalized || daemonEndpointBlacklist.includes(normalized)) {
94
+ return;
95
+ }
96
+ daemonEndpointBlacklist.push(normalized);
97
+ }
98
+ export function _isNetworkUrlBlacklistedForTesting(url) {
99
+ return isUrlBlacklisted(url, daemonEndpointBlacklist);
100
+ }
84
101
 
85
102
  /** Reset module-level state for testing */
86
103
  export function _resetNetworkForTesting() {
87
104
  networkChannel = createEventChannel();
105
+ daemonEndpointBlacklist.splice(0, daemonEndpointBlacklist.length);
88
106
  resetInterceptors();
89
107
  }
90
108
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NetworkLogTab","createEventChannel","createPersistedObservableStore","KEYS","urlRewriter","startFetch","startAxios","resetInterceptors","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","createNetworkFeature","config","maxLogs","logStore","storageKey","networkLogs","maxPersist","initialized","unsubscribeLogs","stopFetchFn","stopAxiosFn","handleLog","request","push","id","nextId","name","label","renderContent","setup","subscribe","axiosInstance","getSnapshot","getData","clear","cleanup","set","listener","_resetNetworkForTesting"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NetworkLogTab","createEventChannel","createPersistedObservableStore","KEYS","urlRewriter","startXMLHttpRequest","resetInterceptors","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","daemonEndpointBlacklist","createNetworkFeature","config","maxLogs","logStore","storageKey","networkLogs","maxPersist","initialized","unsubscribeLogs","stopXhrFn","handleLog","request","push","id","nextId","name","label","renderContent","setup","subscribe","getSnapshot","getData","clear","cleanup","set","listener","normalizeDaemonEndpoint","endpoint","trimmed","trim","replace","URL","origin","pathname","_addDaemonEndpointToNetworkBlacklist","normalized","_isNetworkUrlBlacklistedForTesting","_resetNetworkForTesting","splice","length"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}