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.
Files changed (83) hide show
  1. package/README.md +115 -97
  2. package/README.zh-CN.md +113 -95
  3. package/lib/commonjs/core/initialize.js +5 -0
  4. package/lib/commonjs/core/initialize.js.map +1 -1
  5. package/lib/commonjs/index.js +23 -26
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/ui/panel/StreamingSettingsModal.js +24 -58
  8. package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -1
  9. package/lib/commonjs/utils/DaemonClient.js +721 -0
  10. package/lib/commonjs/utils/DaemonClient.js.map +1 -0
  11. package/lib/commonjs/utils/{sessionReport.js → deviceReport.js} +3 -3
  12. package/lib/commonjs/utils/deviceReport.js.map +1 -0
  13. package/lib/module/core/initialize.js +6 -0
  14. package/lib/module/core/initialize.js.map +1 -1
  15. package/lib/module/index.js +3 -5
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/ui/panel/StreamingSettingsModal.js +21 -55
  18. package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -1
  19. package/lib/module/utils/DaemonClient.js +703 -0
  20. package/lib/module/utils/DaemonClient.js.map +1 -0
  21. package/lib/module/utils/{sessionReport.js → deviceReport.js} +2 -2
  22. package/lib/module/utils/deviceReport.js.map +1 -0
  23. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  24. package/lib/typescript/src/index.d.ts +5 -10
  25. package/lib/typescript/src/index.d.ts.map +1 -1
  26. package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -1
  27. package/lib/typescript/src/utils/DaemonClient.d.ts +141 -0
  28. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -0
  29. package/lib/typescript/src/utils/{sessionReport.d.ts → deviceReport.d.ts} +4 -4
  30. package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -0
  31. package/node/daemon/src/cli.js +9 -2
  32. package/node/daemon/src/console/console.html +914 -188
  33. package/node/daemon/src/constants.js +6 -0
  34. package/node/daemon/src/server.js +205 -123
  35. package/node/daemon/src/store.js +122 -45
  36. package/node/mcp/src/daemonClient.js +6 -6
  37. package/node/mcp/src/index.js +2 -2
  38. package/node/mcp/src/logs.js +5 -4
  39. package/node/mcp/src/tools.js +16 -16
  40. package/package.json +2 -2
  41. package/src/core/initialize.ts +8 -0
  42. package/src/index.ts +18 -10
  43. package/src/ui/panel/StreamingSettingsModal.tsx +25 -63
  44. package/src/utils/DaemonClient.ts +887 -0
  45. package/src/utils/{sessionReport.ts → deviceReport.ts} +6 -6
  46. package/lib/commonjs/utils/autoDetectDaemon.js +0 -141
  47. package/lib/commonjs/utils/autoDetectDaemon.js.map +0 -1
  48. package/lib/commonjs/utils/daemonConnection.js +0 -81
  49. package/lib/commonjs/utils/daemonConnection.js.map +0 -1
  50. package/lib/commonjs/utils/daemonSettings.js +0 -110
  51. package/lib/commonjs/utils/daemonSettings.js.map +0 -1
  52. package/lib/commonjs/utils/reportToDaemon.js +0 -112
  53. package/lib/commonjs/utils/reportToDaemon.js.map +0 -1
  54. package/lib/commonjs/utils/sessionReport.js.map +0 -1
  55. package/lib/commonjs/utils/streamToDaemon.js +0 -334
  56. package/lib/commonjs/utils/streamToDaemon.js.map +0 -1
  57. package/lib/module/utils/autoDetectDaemon.js +0 -136
  58. package/lib/module/utils/autoDetectDaemon.js.map +0 -1
  59. package/lib/module/utils/daemonConnection.js +0 -77
  60. package/lib/module/utils/daemonConnection.js.map +0 -1
  61. package/lib/module/utils/daemonSettings.js +0 -102
  62. package/lib/module/utils/daemonSettings.js.map +0 -1
  63. package/lib/module/utils/reportToDaemon.js +0 -105
  64. package/lib/module/utils/reportToDaemon.js.map +0 -1
  65. package/lib/module/utils/sessionReport.js.map +0 -1
  66. package/lib/module/utils/streamToDaemon.js +0 -328
  67. package/lib/module/utils/streamToDaemon.js.map +0 -1
  68. package/lib/typescript/src/utils/autoDetectDaemon.d.ts +0 -15
  69. package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +0 -1
  70. package/lib/typescript/src/utils/daemonConnection.d.ts +0 -18
  71. package/lib/typescript/src/utils/daemonConnection.d.ts.map +0 -1
  72. package/lib/typescript/src/utils/daemonSettings.d.ts +0 -19
  73. package/lib/typescript/src/utils/daemonSettings.d.ts.map +0 -1
  74. package/lib/typescript/src/utils/reportToDaemon.d.ts +0 -34
  75. package/lib/typescript/src/utils/reportToDaemon.d.ts.map +0 -1
  76. package/lib/typescript/src/utils/sessionReport.d.ts.map +0 -1
  77. package/lib/typescript/src/utils/streamToDaemon.d.ts +0 -23
  78. package/lib/typescript/src/utils/streamToDaemon.d.ts.map +0 -1
  79. package/src/utils/autoDetectDaemon.ts +0 -175
  80. package/src/utils/daemonConnection.ts +0 -133
  81. package/src/utils/daemonSettings.ts +0 -134
  82. package/src/utils/reportToDaemon.ts +0 -172
  83. package/src/utils/streamToDaemon.ts +0 -419
@@ -1,102 +0,0 @@
1
- "use strict";
2
-
3
- export const DAEMON_ENDPOINT_STORAGE_KEY = 'debugToolkit_streamEndpoint';
4
- export const DAEMON_TOKEN_STORAGE_KEY = 'debugToolkit_streamToken';
5
- export const DAEMON_CONNECTION_MODE_STORAGE_KEY = 'debugToolkit_connectionMode';
6
- export const DAEMON_DEVICE_HOST_STORAGE_KEY = 'debugToolkit_deviceHost';
7
- function getAsyncStorage() {
8
- try {
9
- const asyncStorageModule = require('@react-native-async-storage/async-storage');
10
- return asyncStorageModule.default || asyncStorageModule;
11
- } catch {
12
- return null;
13
- }
14
- }
15
- export async function loadDaemonSettings() {
16
- const AsyncStorage = getAsyncStorage();
17
- if (!AsyncStorage) {
18
- return {
19
- mode: 'simulator',
20
- endpoint: '',
21
- deviceHost: '',
22
- token: ''
23
- };
24
- }
25
- try {
26
- const [mode, endpoint, deviceHost, token] = await Promise.all([AsyncStorage.getItem(DAEMON_CONNECTION_MODE_STORAGE_KEY), AsyncStorage.getItem(DAEMON_ENDPOINT_STORAGE_KEY), AsyncStorage.getItem(DAEMON_DEVICE_HOST_STORAGE_KEY), AsyncStorage.getItem(DAEMON_TOKEN_STORAGE_KEY)]);
27
- const inferredMode = readMode(mode, endpoint || '');
28
- const inferredHost = deviceHost || extractDeviceHost(endpoint || '');
29
- return {
30
- mode: inferredMode,
31
- endpoint: endpoint || '',
32
- deviceHost: inferredMode === 'device' ? inferredHost : '',
33
- token: token || ''
34
- };
35
- } catch {
36
- return {
37
- mode: 'simulator',
38
- endpoint: '',
39
- deviceHost: '',
40
- token: ''
41
- };
42
- }
43
- }
44
- export async function saveDaemonSettings(settings) {
45
- const AsyncStorage = getAsyncStorage();
46
- if (!AsyncStorage) {
47
- return;
48
- }
49
- const normalized = normalizeDaemonSettings(settings);
50
- try {
51
- await Promise.all([AsyncStorage.setItem(DAEMON_CONNECTION_MODE_STORAGE_KEY, settings.mode), AsyncStorage.setItem(DAEMON_DEVICE_HOST_STORAGE_KEY, settings.deviceHost.trim()), AsyncStorage.setItem(DAEMON_ENDPOINT_STORAGE_KEY, normalized.endpoint || ''), AsyncStorage.setItem(DAEMON_TOKEN_STORAGE_KEY, settings.token.trim())]);
52
- } catch {
53
- // AsyncStorage unavailable or rejected: keep runtime behavior unchanged.
54
- }
55
- }
56
- function readMode(value, endpoint) {
57
- if (value === 'device' || value === 'simulator') {
58
- return value;
59
- }
60
- return endpoint && !isSimulatorEndpoint(endpoint) ? 'device' : 'simulator';
61
- }
62
- function isSimulatorEndpoint(endpoint) {
63
- try {
64
- const url = new URL(endpoint);
65
- return ['localhost', '127.0.0.1', '10.0.2.2'].includes(url.hostname);
66
- } catch {
67
- return false;
68
- }
69
- }
70
- function extractDeviceHost(endpoint) {
71
- try {
72
- const url = new URL(endpoint);
73
- return url.port && url.port !== '3799' ? `${url.hostname}:${url.port}` : url.hostname;
74
- } catch {
75
- return '';
76
- }
77
- }
78
- export function buildDeviceDaemonEndpoint(host) {
79
- const trimmed = host.trim().replace(/\/+$/, '');
80
- if (!trimmed) {
81
- return '';
82
- }
83
- const withProtocol = /^[a-zA-Z][a-zA-Z\d+.-]*:\/\//.test(trimmed) ? trimmed : `http://${trimmed}`;
84
- try {
85
- const url = new URL(withProtocol);
86
- if (!url.port) {
87
- url.port = '3799';
88
- }
89
- return url.toString().replace(/\/$/, '');
90
- } catch {
91
- return withProtocol;
92
- }
93
- }
94
- export function normalizeDaemonSettings(settings) {
95
- const endpoint = settings.mode === 'device' ? buildDeviceDaemonEndpoint(settings.deviceHost) : '';
96
- const token = settings.token.trim();
97
- return {
98
- endpoint: endpoint || undefined,
99
- token: token || undefined
100
- };
101
- }
102
- //# sourceMappingURL=daemonSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DAEMON_ENDPOINT_STORAGE_KEY","DAEMON_TOKEN_STORAGE_KEY","DAEMON_CONNECTION_MODE_STORAGE_KEY","DAEMON_DEVICE_HOST_STORAGE_KEY","getAsyncStorage","asyncStorageModule","require","default","loadDaemonSettings","AsyncStorage","mode","endpoint","deviceHost","token","Promise","all","getItem","inferredMode","readMode","inferredHost","extractDeviceHost","saveDaemonSettings","settings","normalized","normalizeDaemonSettings","setItem","trim","value","isSimulatorEndpoint","url","URL","includes","hostname","port","buildDeviceDaemonEndpoint","host","trimmed","replace","withProtocol","test","toString","undefined"],"sourceRoot":"../../../src","sources":["utils/daemonSettings.ts"],"mappings":"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","ignoreList":[]}
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- import { Platform } from 'react-native';
4
- import { _addDaemonEndpointToNetworkBlacklist } from '../features/network';
5
- import { createDebugSessionReport } from './sessionReport';
6
- const DEFAULT_TIMEOUT_MS = 3000;
7
- export function getGlobalFetch() {
8
- return globalThis.fetch;
9
- }
10
- function createAbortController() {
11
- const AbortControllerCtor = globalThis.AbortController;
12
- return AbortControllerCtor ? new AbortControllerCtor() : undefined;
13
- }
14
- export function getDefaultDaemonEndpoint() {
15
- if (Platform.OS === 'android') {
16
- return 'http://10.0.2.2:3799';
17
- }
18
- return 'http://localhost:3799';
19
- }
20
- export function buildDaemonUrl(endpoint, path) {
21
- const trimmed = endpoint.replace(/\/+$/, '');
22
- return trimmed.endsWith(path) ? trimmed : `${trimmed}${path}`;
23
- }
24
- async function readResponseBody(response) {
25
- try {
26
- if (response.json) {
27
- return await response.json();
28
- }
29
- if (response.text) {
30
- const text = await response.text();
31
- return text ? JSON.parse(text) : null;
32
- }
33
- } catch {
34
- return null;
35
- }
36
- return null;
37
- }
38
- function readLogCount(value) {
39
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
40
- return undefined;
41
- }
42
- return Object.entries(value).reduce((acc, [key, count]) => {
43
- if (typeof count === 'number') {
44
- acc[key] = count;
45
- }
46
- return acc;
47
- }, {});
48
- }
49
- export async function reportDebugSessionToDaemon(options = {}) {
50
- const endpoint = options.endpoint ?? getDefaultDaemonEndpoint();
51
- const reportUrl = buildDaemonUrl(endpoint, '/report');
52
- const report = createDebugSessionReport(options);
53
- const fetchImpl = getGlobalFetch();
54
- _addDaemonEndpointToNetworkBlacklist(endpoint);
55
- _addDaemonEndpointToNetworkBlacklist(reportUrl);
56
- if (!fetchImpl) {
57
- return {
58
- ok: false,
59
- endpoint,
60
- report,
61
- error: 'global fetch is not available'
62
- };
63
- }
64
- const timeoutMs = Math.max(0, options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
65
- const controller = createAbortController();
66
- const timeout = controller && timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : undefined;
67
- try {
68
- const headers = {
69
- 'Content-Type': 'application/json'
70
- };
71
- if (options.token) {
72
- headers.Authorization = `Bearer ${options.token}`;
73
- }
74
- const response = await fetchImpl(reportUrl, {
75
- method: 'POST',
76
- headers,
77
- body: JSON.stringify(report),
78
- signal: controller?.signal
79
- });
80
- const responseBody = await readResponseBody(response);
81
- const bodyObject = responseBody && typeof responseBody === 'object' ? responseBody : {};
82
- return {
83
- ok: response.ok && bodyObject.ok === true,
84
- endpoint,
85
- report,
86
- status: response.status,
87
- sessionId: typeof bodyObject.sessionId === 'string' ? bodyObject.sessionId : undefined,
88
- receivedAt: typeof bodyObject.receivedAt === 'string' ? bodyObject.receivedAt : undefined,
89
- logCount: readLogCount(bodyObject.logCount),
90
- error: response.ok ? undefined : typeof bodyObject.error === 'string' ? bodyObject.error : 'Report failed'
91
- };
92
- } catch (error) {
93
- return {
94
- ok: false,
95
- endpoint,
96
- report,
97
- error: error instanceof Error ? error.message : String(error)
98
- };
99
- } finally {
100
- if (timeout) {
101
- clearTimeout(timeout);
102
- }
103
- }
104
- }
105
- //# sourceMappingURL=reportToDaemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","_addDaemonEndpointToNetworkBlacklist","createDebugSessionReport","DEFAULT_TIMEOUT_MS","getGlobalFetch","globalThis","fetch","createAbortController","AbortControllerCtor","AbortController","undefined","getDefaultDaemonEndpoint","OS","buildDaemonUrl","endpoint","path","trimmed","replace","endsWith","readResponseBody","response","json","text","JSON","parse","readLogCount","value","Array","isArray","Object","entries","reduce","acc","key","count","reportDebugSessionToDaemon","options","reportUrl","report","fetchImpl","ok","error","timeoutMs","Math","max","controller","timeout","setTimeout","abort","headers","token","Authorization","method","body","stringify","signal","responseBody","bodyObject","status","sessionId","receivedAt","logCount","Error","message","String","clearTimeout"],"sourceRoot":"../../../src","sources":["utils/reportToDaemon.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","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","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","features","forEach","feature","name","snapshot","getSnapshot","slice","entry","constants","version","device","platform","OS","model","osVersion","Version","appVersion"],"sourceRoot":"../../../src","sources":["utils/sessionReport.ts"],"mappings":"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","ignoreList":[]}
@@ -1,328 +0,0 @@
1
- "use strict";
2
-
3
- import { AppState } from 'react-native';
4
- import { DebugToolkit } from '../core/DebugToolkit';
5
- import { _addDaemonEndpointToNetworkBlacklist } from '../features/network';
6
- import { createDebugSessionReport } from './sessionReport';
7
- import { buildDaemonUrl, getDefaultDaemonEndpoint, getGlobalFetch } from './reportToDaemon';
8
- import { safeStringify } from './safeStringify';
9
- const DEFAULT_DEBOUNCE_MS = 200;
10
- const DEFAULT_TIMEOUT_MS = 3000;
11
- const RETRY_BASE_MS = 1000;
12
- const MAX_RETRY_DELAY_MS = 30000;
13
- const MAX_RETRY_ATTEMPTS = 10;
14
- const BACKGROUND_RESYNC_THRESHOLD_MS = 5 * 60 * 1000;
15
- let active = null;
16
- function createAbortController() {
17
- const AbortControllerCtor = globalThis.AbortController;
18
- return AbortControllerCtor ? new AbortControllerCtor() : undefined;
19
- }
20
- function getEntryId(entry) {
21
- if (!entry || typeof entry !== 'object') {
22
- return null;
23
- }
24
- const id = entry.id;
25
- return typeof id === 'string' || typeof id === 'number' ? id : null;
26
- }
27
- function snapshotToIds(snapshot) {
28
- return new Set(snapshot.map(getEntryId).filter(id => id != null));
29
- }
30
- function fetchHeaders(state) {
31
- const headers = {
32
- 'Content-Type': 'application/json'
33
- };
34
- if (state.token) headers.Authorization = `Bearer ${state.token}`;
35
- return headers;
36
- }
37
- function emitStatus(state, status) {
38
- try {
39
- state.onStatus?.(status);
40
- } catch {
41
- // Consumer status callbacks should not affect log delivery.
42
- }
43
- }
44
- function isAuthFailure(status) {
45
- return status === 401 || status === 403;
46
- }
47
- function failStreaming(state, reason) {
48
- if (active !== state) return;
49
- emitStatus(state, {
50
- state: 'failed',
51
- reason
52
- });
53
- stopStreaming();
54
- }
55
- async function doPost(url, headers, body, timeoutMs) {
56
- const fetchImpl = getGlobalFetch();
57
- if (!fetchImpl) {
58
- return null;
59
- }
60
- const controller = createAbortController();
61
- const timeout = controller && timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : undefined;
62
- try {
63
- return await fetchImpl(url, {
64
- method: 'POST',
65
- headers,
66
- body: safeStringify(body),
67
- signal: controller?.signal
68
- });
69
- } catch {
70
- return null;
71
- } finally {
72
- if (timeout) {
73
- clearTimeout(timeout);
74
- }
75
- }
76
- }
77
- function resetRetry(state) {
78
- state.retryAttempt = 0;
79
- if (state.retryTimer) {
80
- clearTimeout(state.retryTimer);
81
- state.retryTimer = null;
82
- }
83
- }
84
- function scheduleRetry(state) {
85
- if (state.retryTimer) return;
86
- if (state.retryAttempt >= MAX_RETRY_ATTEMPTS) {
87
- failStreaming(state, 'retry_limit');
88
- return;
89
- }
90
- const delay = Math.min(RETRY_BASE_MS * 2 ** state.retryAttempt, MAX_RETRY_DELAY_MS);
91
- state.retryAttempt += 1;
92
- emitStatus(state, {
93
- state: 'retrying',
94
- retryInMs: delay
95
- });
96
- state.retryTimer = setTimeout(() => {
97
- state.retryTimer = null;
98
- if (active !== state) return;
99
- if (state.sessionId) {
100
- sendDelta(state);
101
- } else {
102
- sendFullReport(state);
103
- }
104
- }, delay);
105
- }
106
- async function sendFullReport(state) {
107
- if (state.sending) return;
108
- state.sending = true;
109
- let result = 'ok';
110
- try {
111
- result = await doSendFullReport(state);
112
- if (result === 'ok') resetRetry(state);
113
- } finally {
114
- state.sending = false;
115
- if (active !== state) return;
116
- if (result === 'auth_failed') {
117
- failStreaming(state, 'auth');
118
- } else if (result === 'retry') {
119
- scheduleRetry(state);
120
- } else if (state.dirtyFeatures.size > 0 && !state.debounceTimer) {
121
- scheduleDelta(state);
122
- }
123
- }
124
- }
125
- async function doSendFullReport(state) {
126
- const report = createDebugSessionReport();
127
- const response = await doPost(state.reportUrl, fetchHeaders(state), report, state.timeoutMs);
128
- if (!response) return 'retry';
129
- if (isAuthFailure(response.status)) return 'auth_failed';
130
- if (response.status < 200 || response.status >= 300) return 'retry';
131
- try {
132
- const body = response.json ? await response.json() : null;
133
- if (body?.ok !== true || typeof body.sessionId !== 'string') return 'retry';
134
- state.sessionId = body.sessionId;
135
- emitStatus(state, {
136
- state: 'connected',
137
- sessionId: body.sessionId
138
- });
139
- } catch {
140
- return 'retry';
141
- }
142
- state.lastSentIds.clear();
143
- for (const feature of DebugToolkit.features) {
144
- try {
145
- const snapshot = feature.getSnapshot();
146
- if (Array.isArray(snapshot)) state.lastSentIds.set(feature.name, snapshotToIds(snapshot));
147
- } catch {
148
- // skip
149
- }
150
- }
151
- return 'ok';
152
- }
153
- async function sendDelta(state) {
154
- if (state.sending || state.dirtyFeatures.size === 0) return;
155
- state.sending = true;
156
- let retry = false;
157
- try {
158
- const delta = {};
159
- const nextSentIds = new Map();
160
- const features = DebugToolkit.features;
161
- for (const featureName of state.dirtyFeatures) {
162
- const feature = features.find(f => f.name === featureName);
163
- if (!feature) continue;
164
- let snapshot;
165
- try {
166
- snapshot = feature.getSnapshot();
167
- } catch {
168
- continue;
169
- }
170
- if (!Array.isArray(snapshot)) continue;
171
- const prevIds = state.lastSentIds.get(featureName) || new Set();
172
- const newEntries = snapshot.filter(entry => {
173
- const id = getEntryId(entry);
174
- return id != null && !prevIds.has(id);
175
- });
176
- if (newEntries.length > 0) {
177
- delta[featureName] = newEntries;
178
- nextSentIds.set(featureName, snapshotToIds(snapshot));
179
- }
180
- }
181
- state.dirtyFeatures.clear();
182
- state.debounceTimer = null;
183
- if (Object.keys(delta).length === 0) return;
184
- if (!state.sessionId) {
185
- const result = await doSendFullReport(state);
186
- retry = result === 'retry';
187
- if (result !== 'ok') Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
188
- if (result === 'auth_failed') failStreaming(state, 'auth');
189
- if (result === 'ok') resetRetry(state);
190
- return;
191
- }
192
- const response = await doPost(state.ingestUrl, fetchHeaders(state), {
193
- sessionId: state.sessionId,
194
- delta: {
195
- logs: delta
196
- }
197
- }, state.timeoutMs);
198
- if (!response) {
199
- Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
200
- retry = true;
201
- return;
202
- }
203
- if (response.status === 404) {
204
- state.sessionId = null;
205
- state.lastSentIds.clear();
206
- const result = await doSendFullReport(state);
207
- retry = result === 'retry';
208
- if (result !== 'ok') Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
209
- if (result === 'auth_failed') failStreaming(state, 'auth');
210
- if (result === 'ok') resetRetry(state);
211
- return;
212
- }
213
- if (isAuthFailure(response.status)) {
214
- Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
215
- failStreaming(state, 'auth');
216
- return;
217
- }
218
- if (response.status < 200 || response.status >= 300) {
219
- Object.keys(delta).forEach(featureName => state.dirtyFeatures.add(featureName));
220
- retry = true;
221
- return;
222
- }
223
- nextSentIds.forEach((ids, featureName) => {
224
- state.lastSentIds.set(featureName, ids);
225
- });
226
- resetRetry(state);
227
- if (state.sessionId) {
228
- emitStatus(state, {
229
- state: 'connected',
230
- sessionId: state.sessionId
231
- });
232
- }
233
- } finally {
234
- state.sending = false;
235
- if (active !== state) return;
236
- if (retry && state.dirtyFeatures.size > 0) {
237
- scheduleRetry(state);
238
- } else if (state.dirtyFeatures.size > 0 && !state.debounceTimer) {
239
- scheduleDelta(state);
240
- }
241
- }
242
- }
243
- function scheduleDelta(state) {
244
- if (state.debounceTimer) clearTimeout(state.debounceTimer);
245
- state.debounceTimer = setTimeout(() => {
246
- state.debounceTimer = null;
247
- if (active === state) sendDelta(state);
248
- }, state.debounceMs);
249
- }
250
- function onFeatureChange(featureName) {
251
- if (!active) return;
252
- active.dirtyFeatures.add(featureName);
253
- if (active.retryTimer) return;
254
- scheduleDelta(active);
255
- }
256
- function handleAppStateChange(nextState) {
257
- if (!active) return;
258
- if (nextState === 'background') {
259
- active.backgroundedAt = Date.now();
260
- if (active.debounceTimer) {
261
- clearTimeout(active.debounceTimer);
262
- active.debounceTimer = null;
263
- }
264
- sendDelta(active);
265
- } else if (nextState === 'active') {
266
- const wasAway = active.backgroundedAt ? Date.now() - active.backgroundedAt : 0;
267
- active.backgroundedAt = null;
268
- if (wasAway > BACKGROUND_RESYNC_THRESHOLD_MS || !active.sessionId) {
269
- active.sessionId = null;
270
- active.lastSentIds.clear();
271
- sendFullReport(active);
272
- }
273
- }
274
- }
275
- export function startStreaming(options = {}) {
276
- if (active) return;
277
- const endpoint = options.endpoint || getDefaultDaemonEndpoint();
278
- const reportUrl = buildDaemonUrl(endpoint, '/report');
279
- const ingestUrl = buildDaemonUrl(endpoint, '/ingest');
280
- _addDaemonEndpointToNetworkBlacklist(endpoint);
281
- _addDaemonEndpointToNetworkBlacklist(reportUrl);
282
- _addDaemonEndpointToNetworkBlacklist(ingestUrl);
283
- const state = {
284
- endpoint,
285
- reportUrl,
286
- ingestUrl,
287
- token: options.token,
288
- debounceMs: options.debounceMs || DEFAULT_DEBOUNCE_MS,
289
- timeoutMs: Math.max(0, options.timeoutMs ?? DEFAULT_TIMEOUT_MS),
290
- sessionId: null,
291
- sending: false,
292
- debounceTimer: null,
293
- retryTimer: null,
294
- retryAttempt: 0,
295
- dirtyFeatures: new Set(),
296
- lastSentIds: new Map(),
297
- featureUnsubscribes: [],
298
- appStateUnsubscribe: null,
299
- backgroundedAt: null,
300
- onStatus: options.onStatus
301
- };
302
- for (const feature of DebugToolkit.features) {
303
- if (!feature.subscribe) continue;
304
- const unsub = feature.subscribe(() => {
305
- onFeatureChange(feature.name);
306
- });
307
- state.featureUnsubscribes.push(unsub);
308
- }
309
- state.appStateUnsubscribe = AppState.addEventListener('change', handleAppStateChange).remove;
310
- active = state;
311
- emitStatus(active, {
312
- state: 'connecting'
313
- });
314
- sendFullReport(active);
315
- }
316
- export function stopStreaming() {
317
- if (!active) return;
318
- const state = active;
319
- active = null;
320
- if (state.debounceTimer) clearTimeout(state.debounceTimer);
321
- if (state.retryTimer) clearTimeout(state.retryTimer);
322
- state.featureUnsubscribes.forEach(fn => fn());
323
- state.appStateUnsubscribe?.();
324
- }
325
- export function isStreaming() {
326
- return active !== null;
327
- }
328
- //# sourceMappingURL=streamToDaemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AppState","DebugToolkit","_addDaemonEndpointToNetworkBlacklist","createDebugSessionReport","buildDaemonUrl","getDefaultDaemonEndpoint","getGlobalFetch","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","controller","timeout","setTimeout","abort","method","signal","clearTimeout","resetRetry","retryAttempt","retryTimer","scheduleRetry","delay","Math","min","retryInMs","sessionId","sendDelta","sendFullReport","sending","result","doSendFullReport","dirtyFeatures","size","debounceTimer","scheduleDelta","report","response","reportUrl","json","ok","lastSentIds","clear","feature","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","max","featureUnsubscribes","appStateUnsubscribe","subscribe","unsub","push","addEventListener","remove","fn","isStreaming"],"sourceRoot":"../../../src","sources":["utils/streamToDaemon.ts"],"mappings":"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","ignoreList":[]}
@@ -1,15 +0,0 @@
1
- export interface AutoDetectOptions {
2
- port?: number;
3
- timeoutMs?: number;
4
- batchSize?: number;
5
- scanSubnets?: boolean;
6
- signal?: AbortSignal;
7
- }
8
- export type AutoDetectMethod = 'metro-bundle' | 'network-info' | 'subnet-common' | 'none';
9
- export interface AutoDetectResult {
10
- ip: string | null;
11
- method: AutoDetectMethod;
12
- }
13
- export declare function getMetroHost(): string | null;
14
- export declare function autoDetectDaemonIp(options?: AutoDetectOptions): Promise<AutoDetectResult>;
15
- //# sourceMappingURL=autoDetectDaemon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autoDetectDaemon.d.ts","sourceRoot":"","sources":["../../../../src/utils/autoDetectDaemon.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAyBD,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAU5C;AAiFD,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
@@ -1,18 +0,0 @@
1
- export type DaemonConnectionFailureReason = 'fetch_unavailable' | 'timeout' | 'http' | 'invalid_response' | 'network';
2
- export type DaemonConnectionResult = {
3
- ok: true;
4
- endpoint: string;
5
- status: number;
6
- } | {
7
- ok: false;
8
- endpoint: string;
9
- reason: DaemonConnectionFailureReason;
10
- status?: number;
11
- error?: string;
12
- };
13
- export interface DaemonConnectionOptions {
14
- endpoint?: string;
15
- timeoutMs?: number;
16
- }
17
- export declare function checkDaemonConnection(options?: DaemonConnectionOptions): Promise<DaemonConnectionResult>;
18
- //# sourceMappingURL=daemonConnection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemonConnection.d.ts","sourceRoot":"","sources":["../../../../src/utils/daemonConnection.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,6BAA6B,GACrC,mBAAmB,GACnB,SAAS,GACT,MAAM,GACN,kBAAkB,GAClB,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAC9B;IACA,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,6BAA6B,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAmEjC"}
@@ -1,19 +0,0 @@
1
- export declare const DAEMON_ENDPOINT_STORAGE_KEY = "debugToolkit_streamEndpoint";
2
- export declare const DAEMON_TOKEN_STORAGE_KEY = "debugToolkit_streamToken";
3
- export declare const DAEMON_CONNECTION_MODE_STORAGE_KEY = "debugToolkit_connectionMode";
4
- export declare const DAEMON_DEVICE_HOST_STORAGE_KEY = "debugToolkit_deviceHost";
5
- export type DaemonConnectionMode = 'simulator' | 'device';
6
- export interface DaemonSettings {
7
- mode: DaemonConnectionMode;
8
- endpoint: string;
9
- deviceHost: string;
10
- token: string;
11
- }
12
- export declare function loadDaemonSettings(): Promise<DaemonSettings>;
13
- export declare function saveDaemonSettings(settings: DaemonSettings): Promise<void>;
14
- export declare function buildDeviceDaemonEndpoint(host: string): string;
15
- export declare function normalizeDaemonSettings(settings: DaemonSettings): {
16
- endpoint?: string;
17
- token?: string;
18
- };
19
- //# sourceMappingURL=daemonSettings.d.ts.map