react-native-debug-toolkit 2.3.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 (113) hide show
  1. package/bin/debug-toolkit.js +114 -0
  2. package/lib/commonjs/features/network/index.js +28 -2
  3. package/lib/commonjs/features/network/index.js.map +1 -1
  4. package/lib/commonjs/features/network/networkInterceptor.js +14 -6
  5. package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
  6. package/lib/commonjs/index.js +59 -0
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/ui/panel/DebugPanel.js +25 -0
  9. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
  10. package/lib/commonjs/ui/panel/FloatPanelView.js +15 -62
  11. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
  12. package/lib/commonjs/ui/panel/StreamingSettingsModal.js +529 -0
  13. package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -0
  14. package/lib/commonjs/ui/panel/useTabAnimation.js +71 -0
  15. package/lib/commonjs/ui/panel/useTabAnimation.js.map +1 -0
  16. package/lib/commonjs/utils/autoDetectDaemon.js +141 -0
  17. package/lib/commonjs/utils/autoDetectDaemon.js.map +1 -0
  18. package/lib/commonjs/utils/createPersistedObservableStore.js +23 -3
  19. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
  20. package/lib/commonjs/utils/daemonConnection.js +81 -0
  21. package/lib/commonjs/utils/daemonConnection.js.map +1 -0
  22. package/lib/commonjs/utils/daemonSettings.js +110 -0
  23. package/lib/commonjs/utils/daemonSettings.js.map +1 -0
  24. package/lib/commonjs/utils/reportToDaemon.js +112 -0
  25. package/lib/commonjs/utils/reportToDaemon.js.map +1 -0
  26. package/lib/commonjs/utils/sessionReport.js +132 -0
  27. package/lib/commonjs/utils/sessionReport.js.map +1 -0
  28. package/lib/commonjs/utils/streamToDaemon.js +334 -0
  29. package/lib/commonjs/utils/streamToDaemon.js.map +1 -0
  30. package/lib/module/features/network/index.js +25 -1
  31. package/lib/module/features/network/index.js.map +1 -1
  32. package/lib/module/features/network/networkInterceptor.js +14 -6
  33. package/lib/module/features/network/networkInterceptor.js.map +1 -1
  34. package/lib/module/index.js +5 -0
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/module/ui/panel/DebugPanel.js +26 -1
  37. package/lib/module/ui/panel/DebugPanel.js.map +1 -1
  38. package/lib/module/ui/panel/FloatPanelView.js +16 -63
  39. package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
  40. package/lib/module/ui/panel/StreamingSettingsModal.js +524 -0
  41. package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -0
  42. package/lib/module/ui/panel/useTabAnimation.js +67 -0
  43. package/lib/module/ui/panel/useTabAnimation.js.map +1 -0
  44. package/lib/module/utils/autoDetectDaemon.js +136 -0
  45. package/lib/module/utils/autoDetectDaemon.js.map +1 -0
  46. package/lib/module/utils/createPersistedObservableStore.js +23 -3
  47. package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
  48. package/lib/module/utils/daemonConnection.js +77 -0
  49. package/lib/module/utils/daemonConnection.js.map +1 -0
  50. package/lib/module/utils/daemonSettings.js +102 -0
  51. package/lib/module/utils/daemonSettings.js.map +1 -0
  52. package/lib/module/utils/reportToDaemon.js +105 -0
  53. package/lib/module/utils/reportToDaemon.js.map +1 -0
  54. package/lib/module/utils/sessionReport.js +128 -0
  55. package/lib/module/utils/sessionReport.js.map +1 -0
  56. package/lib/module/utils/streamToDaemon.js +328 -0
  57. package/lib/module/utils/streamToDaemon.js.map +1 -0
  58. package/lib/typescript/src/features/network/index.d.ts +2 -0
  59. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  60. package/lib/typescript/src/features/network/networkInterceptor.d.ts +1 -1
  61. package/lib/typescript/src/features/network/networkInterceptor.d.ts.map +1 -1
  62. package/lib/typescript/src/index.d.ts +10 -0
  63. package/lib/typescript/src/index.d.ts.map +1 -1
  64. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
  65. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
  66. package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts +8 -0
  67. package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -0
  68. package/lib/typescript/src/ui/panel/useTabAnimation.d.ts +14 -0
  69. package/lib/typescript/src/ui/panel/useTabAnimation.d.ts.map +1 -0
  70. package/lib/typescript/src/utils/autoDetectDaemon.d.ts +15 -0
  71. package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +1 -0
  72. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +2 -1
  73. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
  74. package/lib/typescript/src/utils/daemonConnection.d.ts +18 -0
  75. package/lib/typescript/src/utils/daemonConnection.d.ts.map +1 -0
  76. package/lib/typescript/src/utils/daemonSettings.d.ts +19 -0
  77. package/lib/typescript/src/utils/daemonSettings.d.ts.map +1 -0
  78. package/lib/typescript/src/utils/reportToDaemon.d.ts +34 -0
  79. package/lib/typescript/src/utils/reportToDaemon.d.ts.map +1 -0
  80. package/lib/typescript/src/utils/sessionReport.d.ts +18 -0
  81. package/lib/typescript/src/utils/sessionReport.d.ts.map +1 -0
  82. package/lib/typescript/src/utils/streamToDaemon.d.ts +23 -0
  83. package/lib/typescript/src/utils/streamToDaemon.d.ts.map +1 -0
  84. package/node/daemon/src/cli.js +75 -0
  85. package/node/daemon/src/console/console.html +936 -0
  86. package/node/daemon/src/console/index.js +47 -0
  87. package/node/daemon/src/constants.js +32 -0
  88. package/node/daemon/src/index.js +11 -0
  89. package/node/daemon/src/server.js +365 -0
  90. package/node/daemon/src/store.js +110 -0
  91. package/node/mcp/src/cli.js +31 -0
  92. package/node/mcp/src/constants.js +13 -0
  93. package/node/mcp/src/daemonClient.js +132 -0
  94. package/node/mcp/src/httpClient.js +49 -0
  95. package/node/mcp/src/index.js +15 -0
  96. package/node/mcp/src/logs.js +95 -0
  97. package/node/mcp/src/server.js +144 -0
  98. package/node/mcp/src/tools.js +84 -0
  99. package/package.json +7 -2
  100. package/src/features/network/index.ts +30 -3
  101. package/src/features/network/networkInterceptor.ts +19 -6
  102. package/src/index.ts +14 -0
  103. package/src/ui/panel/DebugPanel.tsx +23 -1
  104. package/src/ui/panel/FloatPanelView.tsx +10 -68
  105. package/src/ui/panel/StreamingSettingsModal.tsx +566 -0
  106. package/src/ui/panel/useTabAnimation.ts +77 -0
  107. package/src/utils/autoDetectDaemon.ts +175 -0
  108. package/src/utils/createPersistedObservableStore.ts +16 -3
  109. package/src/utils/daemonConnection.ts +133 -0
  110. package/src/utils/daemonSettings.ts +134 -0
  111. package/src/utils/reportToDaemon.ts +172 -0
  112. package/src/utils/sessionReport.ts +203 -0
  113. package/src/utils/streamToDaemon.ts +419 -0
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,328 @@
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
@@ -0,0 +1 @@
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":";;AAAA,SAASA,QAAQ,QAA6B,cAAc;AAE5D,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,oCAAoC,QAAQ,qBAAqB;AAC1E,SAASC,wBAAwB,QAAQ,iBAAiB;AAC1D,SACEC,cAAc,EACdC,wBAAwB,EACxBC,cAAc,QACT,kBAAkB;AACzB,SAASC,aAAa,QAAQ,iBAAiB;AAgB/C,MAAMC,mBAAmB,GAAG,GAAG;AAC/B,MAAMC,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,aAAa,GAAG,IAAI;AAC1B,MAAMC,kBAAkB,GAAG,KAAK;AAChC,MAAMC,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;AAyBpD,IAAIC,MAA0B,GAAG,IAAI;AAOrC,SAASC,qBAAqBA,CAAA,EAAoC;EAChE,MAAMC,mBAAmB,GAAIC,UAAU,CAEpCC,eAAe;EAClB,OAAOF,mBAAmB,GAAG,IAAIA,mBAAmB,CAAC,CAAC,GAAGG,SAAS;AACpE;AAEA,SAASC,UAAUA,CAACC,KAAc,EAA0B;EAC1D,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,OAAO,IAAI;EACb;EAEA,MAAMC,EAAE,GAAID,KAAK,CAA6BC,EAAE;EAChD,OAAO,OAAOA,EAAE,KAAK,QAAQ,IAAI,OAAOA,EAAE,KAAK,QAAQ,GAAGA,EAAE,GAAG,IAAI;AACrE;AAEA,SAASC,aAAaA,CAACC,QAAmB,EAAwB;EAChE,OAAO,IAAIC,GAAG,CACZD,QAAQ,CACLE,GAAG,CAACN,UAAU,CAAC,CACfO,MAAM,CAAEL,EAAE,IAA4BA,EAAE,IAAI,IAAI,CACrD,CAAC;AACH;AAEA,SAASM,YAAYA,CAACC,KAAkB,EAAgB;EACtD,MAAMC,OAAqB,GAAG;IAAE,cAAc,EAAE;EAAmB,CAAC;EACpE,IAAID,KAAK,CAACE,KAAK,EAAED,OAAO,CAACE,aAAa,GAAG,UAAUH,KAAK,CAACE,KAAK,EAAE;EAChE,OAAOD,OAAO;AAChB;AAEA,SAASG,UAAUA,CAACJ,KAAkB,EAAEK,MAAoB,EAAQ;EAClE,IAAI;IACFL,KAAK,CAACM,QAAQ,GAAGD,MAAM,CAAC;EAC1B,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;AAEA,SAASE,aAAaA,CAACF,MAAc,EAAW;EAC9C,OAAOA,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG;AACzC;AAEA,SAASG,aAAaA,CAACR,KAAkB,EAAES,MAA8B,EAAQ;EAC/E,IAAIxB,MAAM,KAAKe,KAAK,EAAE;EACtBI,UAAU,CAACJ,KAAK,EAAE;IAAEA,KAAK,EAAE,QAAQ;IAAES;EAAO,CAAC,CAAC;EAC9CC,aAAa,CAAC,CAAC;AACjB;AAEA,eAAeC,MAAMA,CACnBC,GAAW,EACXX,OAAqB,EACrBY,IAAa,EACbC,SAAiB,EACkD;EACnE,MAAMC,SAAS,GAAGtC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACsC,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EACA,MAAMC,UAAU,GAAG9B,qBAAqB,CAAC,CAAC;EAC1C,MAAM+B,OAAO,GAAGD,UAAU,IAAIF,SAAS,GAAG,CAAC,GACvCI,UAAU,CAAC,MAAMF,UAAU,CAACG,KAAK,CAAC,CAAC,EAAEL,SAAS,CAAC,GAC/CxB,SAAS;EACb,IAAI;IACF,OAAO,MAAMyB,SAAS,CAACH,GAAG,EAAE;MAC1BQ,MAAM,EAAE,MAAM;MACdnB,OAAO;MACPY,IAAI,EAAEnC,aAAa,CAACmC,IAAI,CAAC;MACzBQ,MAAM,EAAEL,UAAU,EAAEK;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb,CAAC,SAAS;IACR,IAAIJ,OAAO,EAAE;MACXK,YAAY,CAACL,OAAO,CAAC;IACvB;EACF;AACF;AAEA,SAASM,UAAUA,CAACvB,KAAkB,EAAQ;EAC5CA,KAAK,CAACwB,YAAY,GAAG,CAAC;EACtB,IAAIxB,KAAK,CAACyB,UAAU,EAAE;IACpBH,YAAY,CAACtB,KAAK,CAACyB,UAAU,CAAC;IAC9BzB,KAAK,CAACyB,UAAU,GAAG,IAAI;EACzB;AACF;AAEA,SAASC,aAAaA,CAAC1B,KAAkB,EAAQ;EAC/C,IAAIA,KAAK,CAACyB,UAAU,EAAE;EACtB,IAAIzB,KAAK,CAACwB,YAAY,IAAIzC,kBAAkB,EAAE;IAC5CyB,aAAa,CAACR,KAAK,EAAE,aAAa,CAAC;IACnC;EACF;EACA,MAAM2B,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpBhD,aAAa,GAAI,CAAC,IAAImB,KAAK,CAACwB,YAAa,EACzC1C,kBACF,CAAC;EACDkB,KAAK,CAACwB,YAAY,IAAI,CAAC;EACvBpB,UAAU,CAACJ,KAAK,EAAE;IAAEA,KAAK,EAAE,UAAU;IAAE8B,SAAS,EAAEH;EAAM,CAAC,CAAC;EAC1D3B,KAAK,CAACyB,UAAU,GAAGP,UAAU,CAAC,MAAM;IAClClB,KAAK,CAACyB,UAAU,GAAG,IAAI;IACvB,IAAIxC,MAAM,KAAKe,KAAK,EAAE;IACtB,IAAIA,KAAK,CAAC+B,SAAS,EAAE;MACnBC,SAAS,CAAChC,KAAK,CAAC;IAClB,CAAC,MAAM;MACLiC,cAAc,CAACjC,KAAK,CAAC;IACvB;EACF,CAAC,EAAE2B,KAAK,CAAC;AACX;AAEA,eAAeM,cAAcA,CAACjC,KAAkB,EAAiB;EAC/D,IAAIA,KAAK,CAACkC,OAAO,EAAE;EACnBlC,KAAK,CAACkC,OAAO,GAAG,IAAI;EACpB,IAAIC,MAAkB,GAAG,IAAI;EAC7B,IAAI;IACFA,MAAM,GAAG,MAAMC,gBAAgB,CAACpC,KAAK,CAAC;IACtC,IAAImC,MAAM,KAAK,IAAI,EAAEZ,UAAU,CAACvB,KAAK,CAAC;EACxC,CAAC,SAAS;IACRA,KAAK,CAACkC,OAAO,GAAG,KAAK;IACrB,IAAIjD,MAAM,KAAKe,KAAK,EAAE;IACtB,IAAImC,MAAM,KAAK,aAAa,EAAE;MAC5B3B,aAAa,CAACR,KAAK,EAAE,MAAM,CAAC;IAC9B,CAAC,MAAM,IAAImC,MAAM,KAAK,OAAO,EAAE;MAC7BT,aAAa,CAAC1B,KAAK,CAAC;IACtB,CAAC,MAAM,IAAIA,KAAK,CAACqC,aAAa,CAACC,IAAI,GAAG,CAAC,IAAI,CAACtC,KAAK,CAACuC,aAAa,EAAE;MAC/DC,aAAa,CAACxC,KAAK,CAAC;IACtB;EACF;AACF;AAEA,eAAeoC,gBAAgBA,CAACpC,KAAkB,EAAuB;EACvE,MAAMyC,MAAM,GAAGnE,wBAAwB,CAAC,CAAC;EACzC,MAAMoE,QAAQ,GAAG,MAAM/B,MAAM,CAACX,KAAK,CAAC2C,SAAS,EAAE5C,YAAY,CAACC,KAAK,CAAC,EAAEyC,MAAM,EAAEzC,KAAK,CAACc,SAAS,CAAC;EAC5F,IAAI,CAAC4B,QAAQ,EAAE,OAAO,OAAO;EAC7B,IAAInC,aAAa,CAACmC,QAAQ,CAACrC,MAAM,CAAC,EAAE,OAAO,aAAa;EACxD,IAAIqC,QAAQ,CAACrC,MAAM,GAAG,GAAG,IAAIqC,QAAQ,CAACrC,MAAM,IAAI,GAAG,EAAE,OAAO,OAAO;EAEnE,IAAI;IACF,MAAMQ,IAAI,GAAG6B,QAAQ,CAACE,IAAI,GACrB,MAAMF,QAAQ,CAACE,IAAI,CAAC,CAAC,GACtB,IAAI;IACR,IAAI/B,IAAI,EAAEgC,EAAE,KAAK,IAAI,IAAI,OAAOhC,IAAI,CAACkB,SAAS,KAAK,QAAQ,EAAE,OAAO,OAAO;IAC3E/B,KAAK,CAAC+B,SAAS,GAAGlB,IAAI,CAACkB,SAAS;IAChC3B,UAAU,CAACJ,KAAK,EAAE;MAAEA,KAAK,EAAE,WAAW;MAAE+B,SAAS,EAAElB,IAAI,CAACkB;IAAU,CAAC,CAAC;EACtE,CAAC,CAAC,MAAM;IACN,OAAO,OAAO;EAChB;EAEA/B,KAAK,CAAC8C,WAAW,CAACC,KAAK,CAAC,CAAC;EACzB,KAAK,MAAMC,OAAO,IAAI5E,YAAY,CAAC6E,QAAQ,EAAE;IAC3C,IAAI;MACF,MAAMtD,QAAQ,GAAGqD,OAAO,CAACE,WAAW,CAAC,CAAC;MACtC,IAAIC,KAAK,CAACC,OAAO,CAACzD,QAAQ,CAAC,EAAEK,KAAK,CAAC8C,WAAW,CAACO,GAAG,CAACL,OAAO,CAACM,IAAI,EAAE5D,aAAa,CAACC,QAAQ,CAAC,CAAC;IAC3F,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EACA,OAAO,IAAI;AACb;AAEA,eAAeqC,SAASA,CAAChC,KAAkB,EAAiB;EAC1D,IAAIA,KAAK,CAACkC,OAAO,IAAIlC,KAAK,CAACqC,aAAa,CAACC,IAAI,KAAK,CAAC,EAAE;EACrDtC,KAAK,CAACkC,OAAO,GAAG,IAAI;EACpB,IAAIqB,KAAK,GAAG,KAAK;EACjB,IAAI;IACF,MAAMC,KAAgC,GAAG,CAAC,CAAC;IAC3C,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAA+B,CAAC;IAC3D,MAAMT,QAAQ,GAAG7E,YAAY,CAAC6E,QAAQ;IAEtC,KAAK,MAAMU,WAAW,IAAI3D,KAAK,CAACqC,aAAa,EAAE;MAC7C,MAAMW,OAAO,GAAGC,QAAQ,CAACW,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACP,IAAI,KAAKK,WAAW,CAAC;MAC5D,IAAI,CAACX,OAAO,EAAE;MAEd,IAAIrD,QAAiB;MACrB,IAAI;QACFA,QAAQ,GAAGqD,OAAO,CAACE,WAAW,CAAC,CAAC;MAClC,CAAC,CAAC,MAAM;QACN;MACF;MAEA,IAAI,CAACC,KAAK,CAACC,OAAO,CAACzD,QAAQ,CAAC,EAAE;MAE9B,MAAMmE,OAAO,GAAG9D,KAAK,CAAC8C,WAAW,CAACiB,GAAG,CAACJ,WAAW,CAAC,IAAI,IAAI/D,GAAG,CAAkB,CAAC;MAChF,MAAMoE,UAAU,GAAGrE,QAAQ,CAACG,MAAM,CAC/BN,KAAK,IAAK;QACT,MAAMC,EAAE,GAAGF,UAAU,CAACC,KAAK,CAAC;QAC5B,OAAOC,EAAE,IAAI,IAAI,IAAI,CAACqE,OAAO,CAACG,GAAG,CAACxE,EAAE,CAAC;MACvC,CACF,CAAC;MAED,IAAIuE,UAAU,CAACE,MAAM,GAAG,CAAC,EAAE;QACzBV,KAAK,CAACG,WAAW,CAAC,GAAGK,UAAU;QAC/BP,WAAW,CAACJ,GAAG,CAACM,WAAW,EAAEjE,aAAa,CAACC,QAAQ,CAAC,CAAC;MACvD;IACF;IAEAK,KAAK,CAACqC,aAAa,CAACU,KAAK,CAAC,CAAC;IAC3B/C,KAAK,CAACuC,aAAa,GAAG,IAAI;IAE1B,IAAI4B,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACU,MAAM,KAAK,CAAC,EAAE;IAErC,IAAI,CAAClE,KAAK,CAAC+B,SAAS,EAAE;MACpB,MAAMI,MAAM,GAAG,MAAMC,gBAAgB,CAACpC,KAAK,CAAC;MAC5CuD,KAAK,GAAGpB,MAAM,KAAK,OAAO;MAC1B,IAAIA,MAAM,KAAK,IAAI,EAAEgC,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,OAAO,CAAEV,WAAW,IAAK3D,KAAK,CAACqC,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC,CAAC;MACtG,IAAIxB,MAAM,KAAK,aAAa,EAAE3B,aAAa,CAACR,KAAK,EAAE,MAAM,CAAC;MAC1D,IAAImC,MAAM,KAAK,IAAI,EAAEZ,UAAU,CAACvB,KAAK,CAAC;MACtC;IACF;IAEA,MAAM0C,QAAQ,GAAG,MAAM/B,MAAM,CAC3BX,KAAK,CAACuE,SAAS,EACfxE,YAAY,CAACC,KAAK,CAAC,EACnB;MAAE+B,SAAS,EAAE/B,KAAK,CAAC+B,SAAS;MAAEyB,KAAK,EAAE;QAAEgB,IAAI,EAAEhB;MAAM;IAAE,CAAC,EACtDxD,KAAK,CAACc,SACR,CAAC;IACD,IAAI,CAAC4B,QAAQ,EAAE;MACbyB,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,OAAO,CAAEV,WAAW,IAAK3D,KAAK,CAACqC,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC,CAAC;MACjFJ,KAAK,GAAG,IAAI;MACZ;IACF;IAEA,IAAIb,QAAQ,CAACrC,MAAM,KAAK,GAAG,EAAE;MAC3BL,KAAK,CAAC+B,SAAS,GAAG,IAAI;MACtB/B,KAAK,CAAC8C,WAAW,CAACC,KAAK,CAAC,CAAC;MACzB,MAAMZ,MAAM,GAAG,MAAMC,gBAAgB,CAACpC,KAAK,CAAC;MAC5CuD,KAAK,GAAGpB,MAAM,KAAK,OAAO;MAC1B,IAAIA,MAAM,KAAK,IAAI,EAAEgC,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,OAAO,CAAEV,WAAW,IAAK3D,KAAK,CAACqC,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC,CAAC;MACtG,IAAIxB,MAAM,KAAK,aAAa,EAAE3B,aAAa,CAACR,KAAK,EAAE,MAAM,CAAC;MAC1D,IAAImC,MAAM,KAAK,IAAI,EAAEZ,UAAU,CAACvB,KAAK,CAAC;MACtC;IACF;IAEA,IAAIO,aAAa,CAACmC,QAAQ,CAACrC,MAAM,CAAC,EAAE;MAClC8D,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,OAAO,CAAEV,WAAW,IAAK3D,KAAK,CAACqC,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC,CAAC;MACjFnD,aAAa,CAACR,KAAK,EAAE,MAAM,CAAC;MAC5B;IACF;IAEA,IAAI0C,QAAQ,CAACrC,MAAM,GAAG,GAAG,IAAIqC,QAAQ,CAACrC,MAAM,IAAI,GAAG,EAAE;MACnD8D,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,OAAO,CAAEV,WAAW,IAAK3D,KAAK,CAACqC,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC,CAAC;MACjFJ,KAAK,GAAG,IAAI;MACZ;IACF;IAEAE,WAAW,CAACY,OAAO,CAAC,CAACI,GAAG,EAAEd,WAAW,KAAK;MACxC3D,KAAK,CAAC8C,WAAW,CAACO,GAAG,CAACM,WAAW,EAAEc,GAAG,CAAC;IACzC,CAAC,CAAC;IACFlD,UAAU,CAACvB,KAAK,CAAC;IACjB,IAAIA,KAAK,CAAC+B,SAAS,EAAE;MACnB3B,UAAU,CAACJ,KAAK,EAAE;QAAEA,KAAK,EAAE,WAAW;QAAE+B,SAAS,EAAE/B,KAAK,CAAC+B;MAAU,CAAC,CAAC;IACvE;EACF,CAAC,SAAS;IACR/B,KAAK,CAACkC,OAAO,GAAG,KAAK;IACrB,IAAIjD,MAAM,KAAKe,KAAK,EAAE;IACtB,IAAIuD,KAAK,IAAIvD,KAAK,CAACqC,aAAa,CAACC,IAAI,GAAG,CAAC,EAAE;MACzCZ,aAAa,CAAC1B,KAAK,CAAC;IACtB,CAAC,MAAM,IAAIA,KAAK,CAACqC,aAAa,CAACC,IAAI,GAAG,CAAC,IAAI,CAACtC,KAAK,CAACuC,aAAa,EAAE;MAC/DC,aAAa,CAACxC,KAAK,CAAC;IACtB;EACF;AACF;AAEA,SAASwC,aAAaA,CAACxC,KAAkB,EAAQ;EAC/C,IAAIA,KAAK,CAACuC,aAAa,EAAEjB,YAAY,CAACtB,KAAK,CAACuC,aAAa,CAAC;EAC1DvC,KAAK,CAACuC,aAAa,GAAGrB,UAAU,CAAC,MAAM;IACrClB,KAAK,CAACuC,aAAa,GAAG,IAAI;IAC1B,IAAItD,MAAM,KAAKe,KAAK,EAAEgC,SAAS,CAAChC,KAAK,CAAC;EACxC,CAAC,EAAEA,KAAK,CAAC0E,UAAU,CAAC;AACtB;AAEA,SAASC,eAAeA,CAAChB,WAAmB,EAAQ;EAClD,IAAI,CAAC1E,MAAM,EAAE;EACbA,MAAM,CAACoD,aAAa,CAACiC,GAAG,CAACX,WAAW,CAAC;EACrC,IAAI1E,MAAM,CAACwC,UAAU,EAAE;EACvBe,aAAa,CAACvD,MAAM,CAAC;AACvB;AAEA,SAAS2F,oBAAoBA,CAACC,SAAyB,EAAQ;EAC7D,IAAI,CAAC5F,MAAM,EAAE;EACb,IAAI4F,SAAS,KAAK,YAAY,EAAE;IAC9B5F,MAAM,CAAC6F,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAClC,IAAI/F,MAAM,CAACsD,aAAa,EAAE;MACxBjB,YAAY,CAACrC,MAAM,CAACsD,aAAa,CAAC;MAClCtD,MAAM,CAACsD,aAAa,GAAG,IAAI;IAC7B;IACAP,SAAS,CAAC/C,MAAM,CAAC;EACnB,CAAC,MAAM,IAAI4F,SAAS,KAAK,QAAQ,EAAE;IACjC,MAAMI,OAAO,GAAGhG,MAAM,CAAC6F,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG/F,MAAM,CAAC6F,cAAc,GAAG,CAAC;IAC9E7F,MAAM,CAAC6F,cAAc,GAAG,IAAI;IAE5B,IAAIG,OAAO,GAAGjG,8BAA8B,IAAI,CAACC,MAAM,CAAC8C,SAAS,EAAE;MACjE9C,MAAM,CAAC8C,SAAS,GAAG,IAAI;MACvB9C,MAAM,CAAC6D,WAAW,CAACC,KAAK,CAAC,CAAC;MAC1Bd,cAAc,CAAChD,MAAM,CAAC;IACxB;EACF;AACF;AAEA,OAAO,SAASiG,cAAcA,CAACC,OAA8B,GAAG,CAAC,CAAC,EAAQ;EACxE,IAAIlG,MAAM,EAAE;EAEZ,MAAMmG,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI5G,wBAAwB,CAAC,CAAC;EAC/D,MAAMmE,SAAS,GAAGpE,cAAc,CAAC6G,QAAQ,EAAE,SAAS,CAAC;EACrD,MAAMb,SAAS,GAAGhG,cAAc,CAAC6G,QAAQ,EAAE,SAAS,CAAC;EAErD/G,oCAAoC,CAAC+G,QAAQ,CAAC;EAC9C/G,oCAAoC,CAACsE,SAAS,CAAC;EAC/CtE,oCAAoC,CAACkG,SAAS,CAAC;EAE/C,MAAMvE,KAAkB,GAAG;IACzBoF,QAAQ;IACRzC,SAAS;IACT4B,SAAS;IACTrE,KAAK,EAAEiF,OAAO,CAACjF,KAAK;IACpBwE,UAAU,EAAES,OAAO,CAACT,UAAU,IAAI/F,mBAAmB;IACrDmC,SAAS,EAAEc,IAAI,CAACyD,GAAG,CAAC,CAAC,EAAEF,OAAO,CAACrE,SAAS,IAAIlC,kBAAkB,CAAC;IAC/DmD,SAAS,EAAE,IAAI;IACfG,OAAO,EAAE,KAAK;IACdK,aAAa,EAAE,IAAI;IACnBd,UAAU,EAAE,IAAI;IAChBD,YAAY,EAAE,CAAC;IACfa,aAAa,EAAE,IAAIzC,GAAG,CAAC,CAAC;IACxBkD,WAAW,EAAE,IAAIY,GAAG,CAAC,CAAC;IACtB4B,mBAAmB,EAAE,EAAE;IACvBC,mBAAmB,EAAE,IAAI;IACzBT,cAAc,EAAE,IAAI;IACpBxE,QAAQ,EAAE6E,OAAO,CAAC7E;EACpB,CAAC;EAED,KAAK,MAAM0C,OAAO,IAAI5E,YAAY,CAAC6E,QAAQ,EAAE;IAC3C,IAAI,CAACD,OAAO,CAACwC,SAAS,EAAE;IACxB,MAAMC,KAAK,GAAGzC,OAAO,CAACwC,SAAS,CAAC,MAAM;MAAEb,eAAe,CAAC3B,OAAO,CAACM,IAAI,CAAC;IAAE,CAAC,CAAC;IACzEtD,KAAK,CAACsF,mBAAmB,CAACI,IAAI,CAACD,KAAK,CAAC;EACvC;EAEAzF,KAAK,CAACuF,mBAAmB,GAAGpH,QAAQ,CAACwH,gBAAgB,CAAC,QAAQ,EAAEf,oBAAoB,CAAC,CAACgB,MAAM;EAC5F3G,MAAM,GAAGe,KAAK;EAEdI,UAAU,CAACnB,MAAM,EAAE;IAAEe,KAAK,EAAE;EAAa,CAAC,CAAC;EAC3CiC,cAAc,CAAChD,MAAM,CAAC;AACxB;AAEA,OAAO,SAASyB,aAAaA,CAAA,EAAS;EACpC,IAAI,CAACzB,MAAM,EAAE;EACb,MAAMe,KAAK,GAAGf,MAAM;EACpBA,MAAM,GAAG,IAAI;EAEb,IAAIe,KAAK,CAACuC,aAAa,EAAEjB,YAAY,CAACtB,KAAK,CAACuC,aAAa,CAAC;EAC1D,IAAIvC,KAAK,CAACyB,UAAU,EAAEH,YAAY,CAACtB,KAAK,CAACyB,UAAU,CAAC;EACpDzB,KAAK,CAACsF,mBAAmB,CAACjB,OAAO,CAAEwB,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;EAC/C7F,KAAK,CAACuF,mBAAmB,GAAG,CAAC;AAC/B;AAEA,OAAO,SAASO,WAAWA,CAAA,EAAY;EACrC,OAAO7G,MAAM,KAAK,IAAI;AACxB","ignoreList":[]}
@@ -6,6 +6,8 @@ export interface NetworkFeatureConfig {
6
6
  blacklist?: Array<string | RegExp>;
7
7
  }
8
8
  export declare const createNetworkFeature: (config?: NetworkFeatureConfig) => DebugFeature<NetworkLogEntry[]>;
9
+ export declare function _addDaemonEndpointToNetworkBlacklist(endpoint: string): void;
10
+ export declare function _isNetworkUrlBlacklistedForTesting(url: string): boolean;
9
11
  /** Reset module-level state for testing */
10
12
  export declare function _resetNetworkForTesting(): void;
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsCjE,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,oBAAoB,KAAG,YAAY,CAAC,eAAe,EAAE,CAgDlG,CAAC;AAEF,2CAA2C;AAC3C,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsCjE,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,oBAAoB,KAAG,YAAY,CAAC,eAAe,EAAE,CAgDlG,CAAC;AAgBF,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM3E;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C"}
@@ -1,6 +1,6 @@
1
1
  import type { NetworkLogEntry } from '../../types';
2
2
  type NetworkLogPayload = Omit<NetworkLogEntry, 'id'>;
3
+ export type { NetworkLogPayload };
3
4
  export declare function startXMLHttpRequest(emit: (entry: NetworkLogPayload) => void): () => void;
4
5
  export declare function resetInterceptors(): void;
5
- export {};
6
6
  //# sourceMappingURL=networkInterceptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"networkInterceptor.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/networkInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AA2JrD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GACvC,MAAM,IAAI,CAmHZ;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
1
+ {"version":3,"file":"networkInterceptor.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/networkInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAErD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAoKlC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GACvC,MAAM,IAAI,CAqHZ;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
@@ -21,6 +21,16 @@ export { useNavigationLogger } from './features/navigation/useNavigationLogger';
21
21
  export { safeStringify } from './utils/safeStringify';
22
22
  export { copyToComputer, logToComputer, fmt } from './utils/copyToComputer';
23
23
  export type { CopyResult, CopyOptions, CopyMethod } from './utils/copyToComputer';
24
+ export { createDebugSessionReport } from './utils/sessionReport';
25
+ export type { DebugSessionReport, DebugSessionReportOptions } from './utils/sessionReport';
26
+ export { getDefaultDaemonEndpoint, reportDebugSessionToDaemon } from './utils/reportToDaemon';
27
+ export type { ReportResult, ReportToDaemonOptions } from './utils/reportToDaemon';
28
+ export { checkDaemonConnection } from './utils/daemonConnection';
29
+ export type { DaemonConnectionFailureReason, DaemonConnectionOptions, DaemonConnectionResult, } from './utils/daemonConnection';
30
+ export { startStreaming, stopStreaming, isStreaming } from './utils/streamToDaemon';
31
+ export type { StreamStatus, StreamToDaemonOptions } from './utils/streamToDaemon';
32
+ export { autoDetectDaemonIp, getMetroHost } from './utils/autoDetectDaemon';
33
+ export type { AutoDetectOptions, AutoDetectResult } from './utils/autoDetectDaemon';
24
34
  export type { AnyDebugFeature, BuiltInFeatureName, DebugFeature, DebugFeatureRenderProps, NetworkLogEntry, ConsoleLogEntry, ZustandLogEntry, NavigationLogEntry, TrackLogEntry, EnvironmentConfig, EnvironmentState, } from './types';
25
35
  export { initializeDebugToolkit as default } from './core/initialize';
26
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGlF,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC9F,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DebugPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/DebugPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAa9D,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,qBAwG5E"}
1
+ {"version":3,"file":"DebugPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/DebugPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAcxE,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,qBAiH5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatPanelView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FloatPanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AASnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAiCnD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,mBAAmB,qBA4JjH"}
1
+ {"version":3,"file":"FloatPanelView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FloatPanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAOnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkCnD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,mBAAmB,qBAmGjH"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface StreamingSettingsModalProps {
3
+ visible: boolean;
4
+ onClose: () => void;
5
+ }
6
+ export declare function StreamingSettingsModal({ visible, onClose }: StreamingSettingsModalProps): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=StreamingSettingsModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingSettingsModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/StreamingSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA2BxE,UAAU,2BAA2B;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAUD,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,2BAA2B,qBAgUvF"}
@@ -0,0 +1,14 @@
1
+ import { Animated } from 'react-native';
2
+ interface UseTabAnimationOptions {
3
+ activeTab: number;
4
+ tabCount: number;
5
+ onTabChange: (index: number) => void;
6
+ }
7
+ export declare function useTabAnimation({ activeTab, tabCount, onTabChange }: UseTabAnimationOptions): {
8
+ contentOpacity: Animated.Value;
9
+ contentTranslateX: Animated.Value;
10
+ panHandlers: import("react-native").GestureResponderHandlers;
11
+ switchTab: (index: number) => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useTabAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTabAnimation.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/useTabAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAwB,MAAM,cAAc,CAAC;AAE9D,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,sBAAsB;;;;uBA4BhF,MAAM;EAuCjB"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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"}
@@ -6,8 +6,9 @@ export interface PersistedStoreOptions<T> {
6
6
  serialize?: (entry: T) => unknown;
7
7
  }
8
8
  export interface PersistedObservableStore<T> extends ObservableStore<T> {
9
- /** Returns the next auto-incrementing ID and advances the counter. */
10
9
  nextId: () => string;
10
+ ready: Promise<void>;
11
+ destroy: () => void;
11
12
  }
12
13
  export declare function createPersistedObservableStore<T extends {
13
14
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createPersistedObservableStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/createPersistedObservableStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGtF,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACrE,sEAAsE;IACtE,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACtE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,wBAAwB,CAAC,CAAC,CAAC,CA0D7B"}
1
+ {"version":3,"file":"createPersistedObservableStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/createPersistedObservableStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGtF,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACrE,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACtE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,wBAAwB,CAAC,CAAC,CAAC,CAsE7B"}
@@ -0,0 +1,18 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemonSettings.d.ts","sourceRoot":"","sources":["../../../../src/utils/daemonSettings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AACzE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,kCAAkC,gCAAgC,CAAC;AAChF,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAgBD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,CA0BlE;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;AA2BD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB9D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CASA"}
@@ -0,0 +1,34 @@
1
+ import { type DebugSessionReport, type DebugSessionReportOptions } from './sessionReport';
2
+ type FetchResponseLike = {
3
+ ok: boolean;
4
+ status: number;
5
+ json?: () => Promise<unknown>;
6
+ text?: () => Promise<string>;
7
+ };
8
+ type FetchLike = (url: string, init: {
9
+ method: string;
10
+ headers: Record<string, string>;
11
+ body?: string;
12
+ signal?: unknown;
13
+ }) => Promise<FetchResponseLike>;
14
+ export interface ReportToDaemonOptions extends DebugSessionReportOptions {
15
+ endpoint?: string;
16
+ timeoutMs?: number;
17
+ token?: string;
18
+ }
19
+ export interface ReportResult {
20
+ ok: boolean;
21
+ endpoint: string;
22
+ report: DebugSessionReport;
23
+ status?: number;
24
+ sessionId?: string;
25
+ receivedAt?: string;
26
+ logCount?: Record<string, number>;
27
+ error?: string;
28
+ }
29
+ export declare function getGlobalFetch(): FetchLike | undefined;
30
+ export declare function getDefaultDaemonEndpoint(): string;
31
+ export declare function buildDaemonUrl(endpoint: string, path: string): string;
32
+ export declare function reportDebugSessionToDaemon(options?: ReportToDaemonOptions): Promise<ReportResult>;
33
+ export {};
34
+ //# sourceMappingURL=reportToDaemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportToDaemon.d.ts","sourceRoot":"","sources":["../../../../src/utils/reportToDaemon.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AAIzB,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,SAAS,GAAG,CACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KACE,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAOhC,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,SAAS,GAAG,SAAS,CAEtD;AASD,wBAAgB,wBAAwB,IAAI,MAAM,CAKjD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrE;AAiCD,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,YAAY,CAAC,CAiEvB"}
@@ -0,0 +1,18 @@
1
+ export interface DebugSessionReportOptions {
2
+ maxPerType?: number;
3
+ maxBodyBytes?: number;
4
+ includeTypes?: string[];
5
+ }
6
+ export interface DeviceInfo {
7
+ platform: string;
8
+ model: string;
9
+ osVersion: string;
10
+ appVersion: string;
11
+ }
12
+ export interface DebugSessionReport {
13
+ version: 2;
14
+ device: DeviceInfo;
15
+ logs: Record<string, unknown[] | undefined>;
16
+ }
17
+ export declare function createDebugSessionReport(options?: DebugSessionReportOptions): DebugSessionReport;
18
+ //# sourceMappingURL=sessionReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionReport.d.ts","sourceRoot":"","sources":["../../../../src/utils/sessionReport.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;CAC7C;AAuID,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,CAuCpB"}