react-native-debug-toolkit 3.0.0 → 3.1.2
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 +115 -97
- package/README.zh-CN.md +113 -95
- package/lib/commonjs/core/initialize.js +5 -0
- package/lib/commonjs/core/initialize.js.map +1 -1
- package/lib/commonjs/index.js +23 -26
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js +24 -58
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -1
- package/lib/commonjs/utils/DaemonClient.js +721 -0
- package/lib/commonjs/utils/DaemonClient.js.map +1 -0
- package/lib/commonjs/utils/{sessionReport.js → deviceReport.js} +3 -3
- package/lib/commonjs/utils/deviceReport.js.map +1 -0
- package/lib/module/core/initialize.js +6 -0
- package/lib/module/core/initialize.js.map +1 -1
- package/lib/module/index.js +3 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/panel/StreamingSettingsModal.js +21 -55
- package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -1
- package/lib/module/utils/DaemonClient.js +703 -0
- package/lib/module/utils/DaemonClient.js.map +1 -0
- package/lib/module/utils/{sessionReport.js → deviceReport.js} +2 -2
- package/lib/module/utils/deviceReport.js.map +1 -0
- package/lib/typescript/src/core/initialize.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -1
- package/lib/typescript/src/utils/DaemonClient.d.ts +141 -0
- package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -0
- package/lib/typescript/src/utils/{sessionReport.d.ts → deviceReport.d.ts} +4 -4
- package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -0
- package/node/daemon/src/cli.js +9 -2
- package/node/daemon/src/console/console.html +914 -188
- package/node/daemon/src/constants.js +6 -0
- package/node/daemon/src/server.js +205 -123
- package/node/daemon/src/store.js +122 -45
- package/node/mcp/src/daemonClient.js +6 -6
- package/node/mcp/src/index.js +2 -2
- package/node/mcp/src/logs.js +5 -4
- package/node/mcp/src/tools.js +16 -16
- package/package.json +2 -2
- package/src/core/initialize.ts +8 -0
- package/src/index.ts +18 -10
- package/src/ui/panel/StreamingSettingsModal.tsx +25 -63
- package/src/utils/DaemonClient.ts +887 -0
- package/src/utils/{sessionReport.ts → deviceReport.ts} +6 -6
- package/lib/commonjs/utils/autoDetectDaemon.js +0 -141
- package/lib/commonjs/utils/autoDetectDaemon.js.map +0 -1
- package/lib/commonjs/utils/daemonConnection.js +0 -81
- package/lib/commonjs/utils/daemonConnection.js.map +0 -1
- package/lib/commonjs/utils/daemonSettings.js +0 -110
- package/lib/commonjs/utils/daemonSettings.js.map +0 -1
- package/lib/commonjs/utils/reportToDaemon.js +0 -112
- package/lib/commonjs/utils/reportToDaemon.js.map +0 -1
- package/lib/commonjs/utils/sessionReport.js.map +0 -1
- package/lib/commonjs/utils/streamToDaemon.js +0 -334
- package/lib/commonjs/utils/streamToDaemon.js.map +0 -1
- package/lib/module/utils/autoDetectDaemon.js +0 -136
- package/lib/module/utils/autoDetectDaemon.js.map +0 -1
- package/lib/module/utils/daemonConnection.js +0 -77
- package/lib/module/utils/daemonConnection.js.map +0 -1
- package/lib/module/utils/daemonSettings.js +0 -102
- package/lib/module/utils/daemonSettings.js.map +0 -1
- package/lib/module/utils/reportToDaemon.js +0 -105
- package/lib/module/utils/reportToDaemon.js.map +0 -1
- package/lib/module/utils/sessionReport.js.map +0 -1
- package/lib/module/utils/streamToDaemon.js +0 -328
- package/lib/module/utils/streamToDaemon.js.map +0 -1
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts +0 -15
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +0 -1
- package/lib/typescript/src/utils/daemonConnection.d.ts +0 -18
- package/lib/typescript/src/utils/daemonConnection.d.ts.map +0 -1
- package/lib/typescript/src/utils/daemonSettings.d.ts +0 -19
- package/lib/typescript/src/utils/daemonSettings.d.ts.map +0 -1
- package/lib/typescript/src/utils/reportToDaemon.d.ts +0 -34
- package/lib/typescript/src/utils/reportToDaemon.d.ts.map +0 -1
- package/lib/typescript/src/utils/sessionReport.d.ts.map +0 -1
- package/lib/typescript/src/utils/streamToDaemon.d.ts +0 -23
- package/lib/typescript/src/utils/streamToDaemon.d.ts.map +0 -1
- package/src/utils/autoDetectDaemon.ts +0 -175
- package/src/utils/daemonConnection.ts +0 -133
- package/src/utils/daemonSettings.ts +0 -134
- package/src/utils/reportToDaemon.ts +0 -172
- package/src/utils/streamToDaemon.ts +0 -419
|
@@ -1,334 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { NativeModules } from 'react-native';
|
|
4
|
-
const DEFAULT_PORT = 3799;
|
|
5
|
-
const PROBE_TIMEOUT_MS = 1500;
|
|
6
|
-
const DEFAULT_BATCH_SIZE = 20;
|
|
7
|
-
const COMMON_SUBNETS = ['192.168.0', '192.168.1', '192.168.2', '192.168.3', '192.168.4', '192.168.31', '192.168.43', '192.168.50', '192.168.68', '192.168.100', '10.0.0', '10.0.1', '10.0.2', '172.16.0'];
|
|
8
|
-
const SIMULATOR_HOSTS = ['localhost', '127.0.0.1', '10.0.2.2'];
|
|
9
|
-
export function getMetroHost() {
|
|
10
|
-
try {
|
|
11
|
-
const scriptURL = NativeModules?.SourceCode?.scriptURL;
|
|
12
|
-
if (typeof scriptURL !== 'string') return null;
|
|
13
|
-
const url = new URL(scriptURL);
|
|
14
|
-
if (SIMULATOR_HOSTS.includes(url.hostname)) return null;
|
|
15
|
-
return url.hostname;
|
|
16
|
-
} catch {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
function getNetworkInfo() {
|
|
21
|
-
try {
|
|
22
|
-
const mod = require('react-native-network-info');
|
|
23
|
-
return mod.default || mod;
|
|
24
|
-
} catch {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function getSubnetPrefix(ip) {
|
|
29
|
-
const parts = ip.split('.');
|
|
30
|
-
if (parts.length !== 4) return null;
|
|
31
|
-
return parts.slice(0, 3).join('.');
|
|
32
|
-
}
|
|
33
|
-
function buildCandidates(prefix) {
|
|
34
|
-
const candidates = [];
|
|
35
|
-
for (let i = 1; i <= 255; i++) {
|
|
36
|
-
candidates.push(`${prefix}.${i}`);
|
|
37
|
-
}
|
|
38
|
-
return candidates;
|
|
39
|
-
}
|
|
40
|
-
async function probeIp(ip, port, timeoutMs, signal) {
|
|
41
|
-
if (signal?.aborted) return false;
|
|
42
|
-
const fetchImpl = globalThis.fetch;
|
|
43
|
-
if (!fetchImpl) return false;
|
|
44
|
-
const controller = new AbortController();
|
|
45
|
-
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
46
|
-
const onAbort = () => controller.abort();
|
|
47
|
-
signal?.addEventListener('abort', onAbort, {
|
|
48
|
-
once: true
|
|
49
|
-
});
|
|
50
|
-
try {
|
|
51
|
-
const response = await fetchImpl(`http://${ip}:${port}/health`, {
|
|
52
|
-
method: 'GET',
|
|
53
|
-
signal: controller.signal
|
|
54
|
-
});
|
|
55
|
-
if (!response.ok) return false;
|
|
56
|
-
try {
|
|
57
|
-
const body = await response.json();
|
|
58
|
-
return body != null && typeof body === 'object' && body.ok === true;
|
|
59
|
-
} catch {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
} catch {
|
|
63
|
-
return false;
|
|
64
|
-
} finally {
|
|
65
|
-
clearTimeout(timeout);
|
|
66
|
-
signal?.removeEventListener('abort', onAbort);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
async function probeBatch(candidates, port, timeoutMs, batchSize, signal) {
|
|
70
|
-
for (let i = 0; i < candidates.length; i += batchSize) {
|
|
71
|
-
if (signal?.aborted) return null;
|
|
72
|
-
const batch = candidates.slice(i, i + batchSize);
|
|
73
|
-
const results = await Promise.all(batch.map(ip => probeIp(ip, port, timeoutMs, signal)));
|
|
74
|
-
const idx = results.findIndex(Boolean);
|
|
75
|
-
if (idx !== -1) return batch[idx] ?? null;
|
|
76
|
-
}
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
export async function autoDetectDaemonIp(options = {}) {
|
|
80
|
-
const port = options.port ?? DEFAULT_PORT;
|
|
81
|
-
const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
|
|
82
|
-
const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
|
|
83
|
-
const scanSubnets = options.scanSubnets ?? true;
|
|
84
|
-
const {
|
|
85
|
-
signal
|
|
86
|
-
} = options;
|
|
87
|
-
|
|
88
|
-
// Strategy 0: extract Mac IP from Metro bundle URL (zero-dep, instant)
|
|
89
|
-
const metroHost = getMetroHost();
|
|
90
|
-
if (metroHost) {
|
|
91
|
-
const alive = await probeIp(metroHost, port, timeoutMs, signal);
|
|
92
|
-
if (alive) return {
|
|
93
|
-
ip: metroHost,
|
|
94
|
-
method: 'metro-bundle'
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
if (!scanSubnets) {
|
|
98
|
-
return {
|
|
99
|
-
ip: null,
|
|
100
|
-
method: 'none'
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Strategy 1: react-native-network-info → device IP → subnet scan
|
|
105
|
-
const networkInfo = getNetworkInfo();
|
|
106
|
-
if (networkInfo?.getIPAddress) {
|
|
107
|
-
try {
|
|
108
|
-
const deviceIp = await networkInfo.getIPAddress();
|
|
109
|
-
const prefix = getSubnetPrefix(deviceIp);
|
|
110
|
-
if (prefix) {
|
|
111
|
-
const found = await probeBatch(buildCandidates(prefix), port, timeoutMs, batchSize, signal);
|
|
112
|
-
if (found) return {
|
|
113
|
-
ip: found,
|
|
114
|
-
method: 'network-info'
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
} catch {
|
|
118
|
-
// fall through
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Strategy 2: common subnet probe
|
|
123
|
-
for (const prefix of COMMON_SUBNETS) {
|
|
124
|
-
if (signal?.aborted) break;
|
|
125
|
-
const found = await probeBatch(buildCandidates(prefix), port, timeoutMs, batchSize, signal);
|
|
126
|
-
if (found) return {
|
|
127
|
-
ip: found,
|
|
128
|
-
method: 'subnet-common'
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
ip: null,
|
|
133
|
-
method: 'none'
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=autoDetectDaemon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","DEFAULT_PORT","PROBE_TIMEOUT_MS","DEFAULT_BATCH_SIZE","COMMON_SUBNETS","SIMULATOR_HOSTS","getMetroHost","scriptURL","SourceCode","url","URL","includes","hostname","getNetworkInfo","mod","require","default","getSubnetPrefix","ip","parts","split","length","slice","join","buildCandidates","prefix","candidates","i","push","probeIp","port","timeoutMs","signal","aborted","fetchImpl","globalThis","fetch","controller","AbortController","timeout","setTimeout","abort","onAbort","addEventListener","once","response","method","ok","body","json","clearTimeout","removeEventListener","probeBatch","batchSize","batch","results","Promise","all","map","idx","findIndex","Boolean","autoDetectDaemonIp","options","scanSubnets","metroHost","alive","networkInfo","getIPAddress","deviceIp","found"],"sourceRoot":"../../../src","sources":["utils/autoDetectDaemon.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;AAiB5C,MAAMC,YAAY,GAAG,IAAI;AACzB,MAAMC,gBAAgB,GAAG,IAAI;AAC7B,MAAMC,kBAAkB,GAAG,EAAE;AAE7B,MAAMC,cAAc,GAAG,CACrB,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,CACX;AAED,MAAMC,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC;AAE9D,OAAO,SAASC,YAAYA,CAAA,EAAkB;EAC5C,IAAI;IACF,MAAMC,SAAkB,GAAGP,aAAa,EAAEQ,UAAU,EAAED,SAAS;IAC/D,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,IAAI;IAC9C,MAAME,GAAG,GAAG,IAAIC,GAAG,CAACH,SAAS,CAAC;IAC9B,IAAIF,eAAe,CAACM,QAAQ,CAACF,GAAG,CAACG,QAAQ,CAAC,EAAE,OAAO,IAAI;IACvD,OAAOH,GAAG,CAACG,QAAQ;EACrB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAMA,SAASC,cAAcA,CAAA,EAA2B;EAChD,IAAI;IACF,MAAMC,GAAG,GAAGC,OAAO,CAAC,2BAA2B,CAAC;IAChD,OAAOD,GAAG,CAACE,OAAO,IAAIF,GAAG;EAC3B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,SAASG,eAAeA,CAACC,EAAU,EAAiB;EAClD,MAAMC,KAAK,GAAGD,EAAE,CAACE,KAAK,CAAC,GAAG,CAAC;EAC3B,IAAID,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EACnC,OAAOF,KAAK,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACpC;AAEA,SAASC,eAAeA,CAACC,MAAc,EAAY;EACjD,MAAMC,UAAoB,GAAG,EAAE;EAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,GAAG,EAAEA,CAAC,EAAE,EAAE;IAC7BD,UAAU,CAACE,IAAI,CAAC,GAAGH,MAAM,IAAIE,CAAC,EAAE,CAAC;EACnC;EACA,OAAOD,UAAU;AACnB;AAEA,eAAeG,OAAOA,CAACX,EAAU,EAAEY,IAAY,EAAEC,SAAiB,EAAEC,MAAoB,EAAoB;EAC1G,IAAIA,MAAM,EAAEC,OAAO,EAAE,OAAO,KAAK;EAGjC,MAAMC,SAAS,GAAIC,UAAU,CAA6BC,KAAK;EAC/D,IAAI,CAACF,SAAS,EAAE,OAAO,KAAK;EAE5B,MAAMG,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEV,SAAS,CAAC;EAE/D,MAAMW,OAAO,GAAGA,CAAA,KAAML,UAAU,CAACI,KAAK,CAAC,CAAC;EACxCT,MAAM,EAAEW,gBAAgB,CAAC,OAAO,EAAED,OAAO,EAAE;IAAEE,IAAI,EAAE;EAAK,CAAC,CAAC;EAE1D,IAAI;IACF,MAAMC,QAAQ,GAAG,MAAMX,SAAS,CAAC,UAAUhB,EAAE,IAAIY,IAAI,SAAS,EAAE;MAC9DgB,MAAM,EAAE,KAAK;MACbd,MAAM,EAAEK,UAAU,CAACL;IACrB,CAAC,CAAC;IACF,IAAI,CAACa,QAAQ,CAACE,EAAE,EAAE,OAAO,KAAK;IAC9B,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMH,QAAQ,CAACI,IAAI,CAAC,CAAC;MAClC,OAAOD,IAAI,IAAI,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAKA,IAAI,CAA6BD,EAAE,KAAK,IAAI;IAClG,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd,CAAC,SAAS;IACRG,YAAY,CAACX,OAAO,CAAC;IACrBP,MAAM,EAAEmB,mBAAmB,CAAC,OAAO,EAAET,OAAO,CAAC;EAC/C;AACF;AAEA,eAAeU,UAAUA,CACvB1B,UAAoB,EACpBI,IAAY,EACZC,SAAiB,EACjBsB,SAAiB,EACjBrB,MAAoB,EACI;EACxB,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,UAAU,CAACL,MAAM,EAAEM,CAAC,IAAI0B,SAAS,EAAE;IACrD,IAAIrB,MAAM,EAAEC,OAAO,EAAE,OAAO,IAAI;IAChC,MAAMqB,KAAK,GAAG5B,UAAU,CAACJ,KAAK,CAACK,CAAC,EAAEA,CAAC,GAAG0B,SAAS,CAAC;IAChD,MAAME,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC/BH,KAAK,CAACI,GAAG,CAAExC,EAAE,IAAKW,OAAO,CAACX,EAAE,EAAEY,IAAI,EAAEC,SAAS,EAAEC,MAAM,CAAC,CACxD,CAAC;IACD,MAAM2B,GAAG,GAAGJ,OAAO,CAACK,SAAS,CAACC,OAAO,CAAC;IACtC,IAAIF,GAAG,KAAK,CAAC,CAAC,EAAE,OAAOL,KAAK,CAACK,GAAG,CAAC,IAAI,IAAI;EAC3C;EACA,OAAO,IAAI;AACb;AAEA,OAAO,eAAeG,kBAAkBA,CACtCC,OAA0B,GAAG,CAAC,CAAC,EACJ;EAC3B,MAAMjC,IAAI,GAAGiC,OAAO,CAACjC,IAAI,IAAI7B,YAAY;EACzC,MAAM8B,SAAS,GAAGgC,OAAO,CAAChC,SAAS,IAAI7B,gBAAgB;EACvD,MAAMmD,SAAS,GAAGU,OAAO,CAACV,SAAS,IAAIlD,kBAAkB;EACzD,MAAM6D,WAAW,GAAGD,OAAO,CAACC,WAAW,IAAI,IAAI;EAC/C,MAAM;IAAEhC;EAAO,CAAC,GAAG+B,OAAO;;EAE1B;EACA,MAAME,SAAS,GAAG3D,YAAY,CAAC,CAAC;EAChC,IAAI2D,SAAS,EAAE;IACb,MAAMC,KAAK,GAAG,MAAMrC,OAAO,CAACoC,SAAS,EAAEnC,IAAI,EAAEC,SAAS,EAAEC,MAAM,CAAC;IAC/D,IAAIkC,KAAK,EAAE,OAAO;MAAEhD,EAAE,EAAE+C,SAAS;MAAEnB,MAAM,EAAE;IAAe,CAAC;EAC7D;EAEA,IAAI,CAACkB,WAAW,EAAE;IAChB,OAAO;MAAE9C,EAAE,EAAE,IAAI;MAAE4B,MAAM,EAAE;IAAO,CAAC;EACrC;;EAEA;EACA,MAAMqB,WAAW,GAAGtD,cAAc,CAAC,CAAC;EACpC,IAAIsD,WAAW,EAAEC,YAAY,EAAE;IAC7B,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMF,WAAW,CAACC,YAAY,CAAC,CAAC;MACjD,MAAM3C,MAAM,GAAGR,eAAe,CAACoD,QAAQ,CAAC;MACxC,IAAI5C,MAAM,EAAE;QACV,MAAM6C,KAAK,GAAG,MAAMlB,UAAU,CAAC5B,eAAe,CAACC,MAAM,CAAC,EAAEK,IAAI,EAAEC,SAAS,EAAEsB,SAAS,EAAErB,MAAM,CAAC;QAC3F,IAAIsC,KAAK,EAAE,OAAO;UAAEpD,EAAE,EAAEoD,KAAK;UAAExB,MAAM,EAAE;QAAe,CAAC;MACzD;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;;EAEA;EACA,KAAK,MAAMrB,MAAM,IAAIrB,cAAc,EAAE;IACnC,IAAI4B,MAAM,EAAEC,OAAO,EAAE;IACrB,MAAMqC,KAAK,GAAG,MAAMlB,UAAU,CAAC5B,eAAe,CAACC,MAAM,CAAC,EAAEK,IAAI,EAAEC,SAAS,EAAEsB,SAAS,EAAErB,MAAM,CAAC;IAC3F,IAAIsC,KAAK,EAAE,OAAO;MAAEpD,EAAE,EAAEoD,KAAK;MAAExB,MAAM,EAAE;IAAgB,CAAC;EAC1D;EAEA,OAAO;IAAE5B,EAAE,EAAE,IAAI;IAAE4B,MAAM,EAAE;EAAO,CAAC;AACrC","ignoreList":[]}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { buildDaemonUrl, getDefaultDaemonEndpoint, getGlobalFetch } from './reportToDaemon';
|
|
4
|
-
const DEFAULT_HEALTH_TIMEOUT_MS = 2000;
|
|
5
|
-
function createAbortController() {
|
|
6
|
-
const AbortControllerCtor = globalThis.AbortController;
|
|
7
|
-
return AbortControllerCtor ? new AbortControllerCtor() : undefined;
|
|
8
|
-
}
|
|
9
|
-
async function readHealthBody(response) {
|
|
10
|
-
try {
|
|
11
|
-
const body = response.json ? await response.json() : null;
|
|
12
|
-
return body && typeof body === 'object' && !Array.isArray(body) ? body : null;
|
|
13
|
-
} catch {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export async function checkDaemonConnection(options = {}) {
|
|
18
|
-
const endpoint = options.endpoint ?? getDefaultDaemonEndpoint();
|
|
19
|
-
const healthUrl = buildDaemonUrl(endpoint, '/health');
|
|
20
|
-
const fetchImpl = getGlobalFetch();
|
|
21
|
-
if (!fetchImpl) {
|
|
22
|
-
return {
|
|
23
|
-
ok: false,
|
|
24
|
-
endpoint,
|
|
25
|
-
reason: 'fetch_unavailable',
|
|
26
|
-
error: 'global fetch is not available'
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
const timeoutMs = Math.max(0, options.timeoutMs ?? DEFAULT_HEALTH_TIMEOUT_MS);
|
|
30
|
-
const controller = createAbortController();
|
|
31
|
-
let timedOut = false;
|
|
32
|
-
const timeout = controller && timeoutMs > 0 ? setTimeout(() => {
|
|
33
|
-
timedOut = true;
|
|
34
|
-
controller.abort();
|
|
35
|
-
}, timeoutMs) : undefined;
|
|
36
|
-
try {
|
|
37
|
-
const response = await fetchImpl(healthUrl, {
|
|
38
|
-
method: 'GET',
|
|
39
|
-
headers: {},
|
|
40
|
-
signal: controller?.signal
|
|
41
|
-
});
|
|
42
|
-
const body = await readHealthBody(response);
|
|
43
|
-
if (!response.ok) {
|
|
44
|
-
return {
|
|
45
|
-
ok: false,
|
|
46
|
-
endpoint,
|
|
47
|
-
reason: 'http',
|
|
48
|
-
status: response.status
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
if (body?.ok !== true) {
|
|
52
|
-
return {
|
|
53
|
-
ok: false,
|
|
54
|
-
endpoint,
|
|
55
|
-
reason: 'invalid_response',
|
|
56
|
-
status: response.status
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
ok: true,
|
|
61
|
-
endpoint,
|
|
62
|
-
status: response.status
|
|
63
|
-
};
|
|
64
|
-
} catch (error) {
|
|
65
|
-
return {
|
|
66
|
-
ok: false,
|
|
67
|
-
endpoint,
|
|
68
|
-
reason: timedOut ? 'timeout' : 'network',
|
|
69
|
-
error: error instanceof Error ? error.message : String(error)
|
|
70
|
-
};
|
|
71
|
-
} finally {
|
|
72
|
-
if (timeout) {
|
|
73
|
-
clearTimeout(timeout);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=daemonConnection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["buildDaemonUrl","getDefaultDaemonEndpoint","getGlobalFetch","DEFAULT_HEALTH_TIMEOUT_MS","createAbortController","AbortControllerCtor","globalThis","AbortController","undefined","readHealthBody","response","body","json","Array","isArray","checkDaemonConnection","options","endpoint","healthUrl","fetchImpl","ok","reason","error","timeoutMs","Math","max","controller","timedOut","timeout","setTimeout","abort","method","headers","signal","status","Error","message","String","clearTimeout"],"sourceRoot":"../../../src","sources":["utils/daemonConnection.ts"],"mappings":"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","ignoreList":[]}
|