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
@@ -7,7 +7,7 @@ const DEFAULT_MAX_PER_TYPE = 50;
7
7
  const DEFAULT_MAX_BODY_BYTES = 16 * 1024;
8
8
  const MAX_DEPTH = 8;
9
9
 
10
- export interface DebugSessionReportOptions {
10
+ export interface DebugDeviceReportOptions {
11
11
  maxPerType?: number;
12
12
  maxBodyBytes?: number;
13
13
  includeTypes?: string[];
@@ -20,7 +20,7 @@ export interface DeviceInfo {
20
20
  appVersion: string;
21
21
  }
22
22
 
23
- export interface DebugSessionReport {
23
+ export interface DebugDeviceReport {
24
24
  version: 2;
25
25
  device: DeviceInfo;
26
26
  logs: Record<string, unknown[] | undefined>;
@@ -159,13 +159,13 @@ function sanitizeValue(
159
159
  );
160
160
  }
161
161
 
162
- export function createDebugSessionReport(
163
- options: DebugSessionReportOptions = {},
164
- ): DebugSessionReport {
162
+ export function createDebugDeviceReport(
163
+ options: DebugDeviceReportOptions = {},
164
+ ): DebugDeviceReport {
165
165
  const maxPerType = Math.max(1, Math.floor(options.maxPerType ?? DEFAULT_MAX_PER_TYPE));
166
166
  const maxBodyBytes = Math.max(256, Math.floor(options.maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES));
167
167
  const includeTypes = options.includeTypes?.length ? new Set(options.includeTypes) : null;
168
- const logs: DebugSessionReport['logs'] = {};
168
+ const logs: DebugDeviceReport['logs'] = {};
169
169
 
170
170
  DebugToolkit.features.forEach((feature) => {
171
171
  if (includeTypes && !includeTypes.has(feature.name)) {
@@ -1,141 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.autoDetectDaemonIp = autoDetectDaemonIp;
7
- exports.getMetroHost = getMetroHost;
8
- var _reactNative = require("react-native");
9
- const DEFAULT_PORT = 3799;
10
- const PROBE_TIMEOUT_MS = 1500;
11
- const DEFAULT_BATCH_SIZE = 20;
12
- 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'];
13
- const SIMULATOR_HOSTS = ['localhost', '127.0.0.1', '10.0.2.2'];
14
- function getMetroHost() {
15
- try {
16
- const scriptURL = _reactNative.NativeModules?.SourceCode?.scriptURL;
17
- if (typeof scriptURL !== 'string') return null;
18
- const url = new URL(scriptURL);
19
- if (SIMULATOR_HOSTS.includes(url.hostname)) return null;
20
- return url.hostname;
21
- } catch {
22
- return null;
23
- }
24
- }
25
- function getNetworkInfo() {
26
- try {
27
- const mod = require('react-native-network-info');
28
- return mod.default || mod;
29
- } catch {
30
- return null;
31
- }
32
- }
33
- function getSubnetPrefix(ip) {
34
- const parts = ip.split('.');
35
- if (parts.length !== 4) return null;
36
- return parts.slice(0, 3).join('.');
37
- }
38
- function buildCandidates(prefix) {
39
- const candidates = [];
40
- for (let i = 1; i <= 255; i++) {
41
- candidates.push(`${prefix}.${i}`);
42
- }
43
- return candidates;
44
- }
45
- async function probeIp(ip, port, timeoutMs, signal) {
46
- if (signal?.aborted) return false;
47
- const fetchImpl = globalThis.fetch;
48
- if (!fetchImpl) return false;
49
- const controller = new AbortController();
50
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
51
- const onAbort = () => controller.abort();
52
- signal?.addEventListener('abort', onAbort, {
53
- once: true
54
- });
55
- try {
56
- const response = await fetchImpl(`http://${ip}:${port}/health`, {
57
- method: 'GET',
58
- signal: controller.signal
59
- });
60
- if (!response.ok) return false;
61
- try {
62
- const body = await response.json();
63
- return body != null && typeof body === 'object' && body.ok === true;
64
- } catch {
65
- return false;
66
- }
67
- } catch {
68
- return false;
69
- } finally {
70
- clearTimeout(timeout);
71
- signal?.removeEventListener('abort', onAbort);
72
- }
73
- }
74
- async function probeBatch(candidates, port, timeoutMs, batchSize, signal) {
75
- for (let i = 0; i < candidates.length; i += batchSize) {
76
- if (signal?.aborted) return null;
77
- const batch = candidates.slice(i, i + batchSize);
78
- const results = await Promise.all(batch.map(ip => probeIp(ip, port, timeoutMs, signal)));
79
- const idx = results.findIndex(Boolean);
80
- if (idx !== -1) return batch[idx] ?? null;
81
- }
82
- return null;
83
- }
84
- async function autoDetectDaemonIp(options = {}) {
85
- const port = options.port ?? DEFAULT_PORT;
86
- const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
87
- const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
88
- const scanSubnets = options.scanSubnets ?? true;
89
- const {
90
- signal
91
- } = options;
92
-
93
- // Strategy 0: extract Mac IP from Metro bundle URL (zero-dep, instant)
94
- const metroHost = getMetroHost();
95
- if (metroHost) {
96
- const alive = await probeIp(metroHost, port, timeoutMs, signal);
97
- if (alive) return {
98
- ip: metroHost,
99
- method: 'metro-bundle'
100
- };
101
- }
102
- if (!scanSubnets) {
103
- return {
104
- ip: null,
105
- method: 'none'
106
- };
107
- }
108
-
109
- // Strategy 1: react-native-network-info → device IP → subnet scan
110
- const networkInfo = getNetworkInfo();
111
- if (networkInfo?.getIPAddress) {
112
- try {
113
- const deviceIp = await networkInfo.getIPAddress();
114
- const prefix = getSubnetPrefix(deviceIp);
115
- if (prefix) {
116
- const found = await probeBatch(buildCandidates(prefix), port, timeoutMs, batchSize, signal);
117
- if (found) return {
118
- ip: found,
119
- method: 'network-info'
120
- };
121
- }
122
- } catch {
123
- // fall through
124
- }
125
- }
126
-
127
- // Strategy 2: common subnet probe
128
- for (const prefix of COMMON_SUBNETS) {
129
- if (signal?.aborted) break;
130
- const found = await probeBatch(buildCandidates(prefix), port, timeoutMs, batchSize, signal);
131
- if (found) return {
132
- ip: found,
133
- method: 'subnet-common'
134
- };
135
- }
136
- return {
137
- ip: null,
138
- method: 'none'
139
- };
140
- }
141
- //# sourceMappingURL=autoDetectDaemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","DEFAULT_PORT","PROBE_TIMEOUT_MS","DEFAULT_BATCH_SIZE","COMMON_SUBNETS","SIMULATOR_HOSTS","getMetroHost","scriptURL","NativeModules","SourceCode","url","URL","includes","hostname","getNetworkInfo","mod","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,IAAAA,YAAA,GAAAC,OAAA;AAiBA,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;AAEvD,SAASC,YAAYA,CAAA,EAAkB;EAC5C,IAAI;IACF,MAAMC,SAAkB,GAAGC,0BAAa,EAAEC,UAAU,EAAEF,SAAS;IAC/D,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,IAAI;IAC9C,MAAMG,GAAG,GAAG,IAAIC,GAAG,CAACJ,SAAS,CAAC;IAC9B,IAAIF,eAAe,CAACO,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,GAAGf,OAAO,CAAC,2BAA2B,CAAC;IAChD,OAAOe,GAAG,CAACC,OAAO,IAAID,GAAG;EAC3B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,SAASE,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;AAEO,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,GAAGrD,cAAc,CAAC,CAAC;EACpC,IAAIqD,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,81 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.checkDaemonConnection = checkDaemonConnection;
7
- var _reportToDaemon = require("./reportToDaemon");
8
- const DEFAULT_HEALTH_TIMEOUT_MS = 2000;
9
- function createAbortController() {
10
- const AbortControllerCtor = globalThis.AbortController;
11
- return AbortControllerCtor ? new AbortControllerCtor() : undefined;
12
- }
13
- async function readHealthBody(response) {
14
- try {
15
- const body = response.json ? await response.json() : null;
16
- return body && typeof body === 'object' && !Array.isArray(body) ? body : null;
17
- } catch {
18
- return null;
19
- }
20
- }
21
- async function checkDaemonConnection(options = {}) {
22
- const endpoint = options.endpoint ?? (0, _reportToDaemon.getDefaultDaemonEndpoint)();
23
- const healthUrl = (0, _reportToDaemon.buildDaemonUrl)(endpoint, '/health');
24
- const fetchImpl = (0, _reportToDaemon.getGlobalFetch)();
25
- if (!fetchImpl) {
26
- return {
27
- ok: false,
28
- endpoint,
29
- reason: 'fetch_unavailable',
30
- error: 'global fetch is not available'
31
- };
32
- }
33
- const timeoutMs = Math.max(0, options.timeoutMs ?? DEFAULT_HEALTH_TIMEOUT_MS);
34
- const controller = createAbortController();
35
- let timedOut = false;
36
- const timeout = controller && timeoutMs > 0 ? setTimeout(() => {
37
- timedOut = true;
38
- controller.abort();
39
- }, timeoutMs) : undefined;
40
- try {
41
- const response = await fetchImpl(healthUrl, {
42
- method: 'GET',
43
- headers: {},
44
- signal: controller?.signal
45
- });
46
- const body = await readHealthBody(response);
47
- if (!response.ok) {
48
- return {
49
- ok: false,
50
- endpoint,
51
- reason: 'http',
52
- status: response.status
53
- };
54
- }
55
- if (body?.ok !== true) {
56
- return {
57
- ok: false,
58
- endpoint,
59
- reason: 'invalid_response',
60
- status: response.status
61
- };
62
- }
63
- return {
64
- ok: true,
65
- endpoint,
66
- status: response.status
67
- };
68
- } catch (error) {
69
- return {
70
- ok: false,
71
- endpoint,
72
- reason: timedOut ? 'timeout' : 'network',
73
- error: error instanceof Error ? error.message : String(error)
74
- };
75
- } finally {
76
- if (timeout) {
77
- clearTimeout(timeout);
78
- }
79
- }
80
- }
81
- //# sourceMappingURL=daemonConnection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reportToDaemon","require","DEFAULT_HEALTH_TIMEOUT_MS","createAbortController","AbortControllerCtor","globalThis","AbortController","undefined","readHealthBody","response","body","json","Array","isArray","checkDaemonConnection","options","endpoint","getDefaultDaemonEndpoint","healthUrl","buildDaemonUrl","fetchImpl","getGlobalFetch","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":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAMA,MAAMC,yBAAyB,GAAG,IAAI;AAuCtC,SAASC,qBAAqBA,CAAA,EAAoC;EAChE,MAAMC,mBAAmB,GAAIC,UAAU,CAEpCC,eAAe;EAClB,OAAOF,mBAAmB,GAAG,IAAIA,mBAAmB,CAAC,CAAC,GAAGG,SAAS;AACpE;AAEA,eAAeC,cAAcA,CAACC,QAA2B,EAA2C;EAClG,IAAI;IACF,MAAMC,IAAI,GAAGD,QAAQ,CAACE,IAAI,GAAG,MAAMF,QAAQ,CAACE,IAAI,CAAC,CAAC,GAAG,IAAI;IACzD,OAAOD,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,GAC3DA,IAAI,GACJ,IAAI;EACV,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEO,eAAeI,qBAAqBA,CACzCC,OAAgC,GAAG,CAAC,CAAC,EACJ;EACjC,MAAMC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI,IAAAC,wCAAwB,EAAC,CAAC;EAC/D,MAAMC,SAAS,GAAG,IAAAC,8BAAc,EAACH,QAAQ,EAAE,SAAS,CAAC;EACrD,MAAMI,SAAS,GAAG,IAAAC,8BAAc,EAAC,CAAC;EAElC,IAAI,CAACD,SAAS,EAAE;IACd,OAAO;MACLE,EAAE,EAAE,KAAK;MACTN,QAAQ;MACRO,MAAM,EAAE,mBAAmB;MAC3BC,KAAK,EAAE;IACT,CAAC;EACH;EAEA,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,OAAO,CAACU,SAAS,IAAIvB,yBAAyB,CAAC;EAC7E,MAAM0B,UAAU,GAAGzB,qBAAqB,CAAC,CAAC;EAC1C,IAAI0B,QAAQ,GAAG,KAAK;EACpB,MAAMC,OAAO,GAAGF,UAAU,IAAIH,SAAS,GAAG,CAAC,GACvCM,UAAU,CAAC,MAAM;IACjBF,QAAQ,GAAG,IAAI;IACfD,UAAU,CAACI,KAAK,CAAC,CAAC;EACpB,CAAC,EAAEP,SAAS,CAAC,GACXlB,SAAS;EAEb,IAAI;IACF,MAAME,QAAQ,GAAG,MAAMW,SAAS,CAACF,SAAS,EAAE;MAC1Ce,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,CAAC,CAAC;MACXC,MAAM,EAAEP,UAAU,EAAEO;IACtB,CAAC,CAAC;IACF,MAAMzB,IAAI,GAAG,MAAMF,cAAc,CAACC,QAAQ,CAAC;IAE3C,IAAI,CAACA,QAAQ,CAACa,EAAE,EAAE;MAChB,OAAO;QACLA,EAAE,EAAE,KAAK;QACTN,QAAQ;QACRO,MAAM,EAAE,MAAM;QACda,MAAM,EAAE3B,QAAQ,CAAC2B;MACnB,CAAC;IACH;IAEA,IAAI1B,IAAI,EAAEY,EAAE,KAAK,IAAI,EAAE;MACrB,OAAO;QACLA,EAAE,EAAE,KAAK;QACTN,QAAQ;QACRO,MAAM,EAAE,kBAAkB;QAC1Ba,MAAM,EAAE3B,QAAQ,CAAC2B;MACnB,CAAC;IACH;IAEA,OAAO;MACLd,EAAE,EAAE,IAAI;MACRN,QAAQ;MACRoB,MAAM,EAAE3B,QAAQ,CAAC2B;IACnB,CAAC;EACH,CAAC,CAAC,OAAOZ,KAAK,EAAE;IACd,OAAO;MACLF,EAAE,EAAE,KAAK;MACTN,QAAQ;MACRO,MAAM,EAAEM,QAAQ,GAAG,SAAS,GAAG,SAAS;MACxCL,KAAK,EAAEA,KAAK,YAAYa,KAAK,GAAGb,KAAK,CAACc,OAAO,GAAGC,MAAM,CAACf,KAAK;IAC9D,CAAC;EACH,CAAC,SAAS;IACR,IAAIM,OAAO,EAAE;MACXU,YAAY,CAACV,OAAO,CAAC;IACvB;EACF;AACF","ignoreList":[]}
@@ -1,110 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DAEMON_TOKEN_STORAGE_KEY = exports.DAEMON_ENDPOINT_STORAGE_KEY = exports.DAEMON_DEVICE_HOST_STORAGE_KEY = exports.DAEMON_CONNECTION_MODE_STORAGE_KEY = void 0;
7
- exports.buildDeviceDaemonEndpoint = buildDeviceDaemonEndpoint;
8
- exports.loadDaemonSettings = loadDaemonSettings;
9
- exports.normalizeDaemonSettings = normalizeDaemonSettings;
10
- exports.saveDaemonSettings = saveDaemonSettings;
11
- const DAEMON_ENDPOINT_STORAGE_KEY = exports.DAEMON_ENDPOINT_STORAGE_KEY = 'debugToolkit_streamEndpoint';
12
- const DAEMON_TOKEN_STORAGE_KEY = exports.DAEMON_TOKEN_STORAGE_KEY = 'debugToolkit_streamToken';
13
- const DAEMON_CONNECTION_MODE_STORAGE_KEY = exports.DAEMON_CONNECTION_MODE_STORAGE_KEY = 'debugToolkit_connectionMode';
14
- const DAEMON_DEVICE_HOST_STORAGE_KEY = exports.DAEMON_DEVICE_HOST_STORAGE_KEY = 'debugToolkit_deviceHost';
15
- function getAsyncStorage() {
16
- try {
17
- const asyncStorageModule = require('@react-native-async-storage/async-storage');
18
- return asyncStorageModule.default || asyncStorageModule;
19
- } catch {
20
- return null;
21
- }
22
- }
23
- async function loadDaemonSettings() {
24
- const AsyncStorage = getAsyncStorage();
25
- if (!AsyncStorage) {
26
- return {
27
- mode: 'simulator',
28
- endpoint: '',
29
- deviceHost: '',
30
- token: ''
31
- };
32
- }
33
- try {
34
- 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)]);
35
- const inferredMode = readMode(mode, endpoint || '');
36
- const inferredHost = deviceHost || extractDeviceHost(endpoint || '');
37
- return {
38
- mode: inferredMode,
39
- endpoint: endpoint || '',
40
- deviceHost: inferredMode === 'device' ? inferredHost : '',
41
- token: token || ''
42
- };
43
- } catch {
44
- return {
45
- mode: 'simulator',
46
- endpoint: '',
47
- deviceHost: '',
48
- token: ''
49
- };
50
- }
51
- }
52
- async function saveDaemonSettings(settings) {
53
- const AsyncStorage = getAsyncStorage();
54
- if (!AsyncStorage) {
55
- return;
56
- }
57
- const normalized = normalizeDaemonSettings(settings);
58
- try {
59
- 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())]);
60
- } catch {
61
- // AsyncStorage unavailable or rejected: keep runtime behavior unchanged.
62
- }
63
- }
64
- function readMode(value, endpoint) {
65
- if (value === 'device' || value === 'simulator') {
66
- return value;
67
- }
68
- return endpoint && !isSimulatorEndpoint(endpoint) ? 'device' : 'simulator';
69
- }
70
- function isSimulatorEndpoint(endpoint) {
71
- try {
72
- const url = new URL(endpoint);
73
- return ['localhost', '127.0.0.1', '10.0.2.2'].includes(url.hostname);
74
- } catch {
75
- return false;
76
- }
77
- }
78
- function extractDeviceHost(endpoint) {
79
- try {
80
- const url = new URL(endpoint);
81
- return url.port && url.port !== '3799' ? `${url.hostname}:${url.port}` : url.hostname;
82
- } catch {
83
- return '';
84
- }
85
- }
86
- function buildDeviceDaemonEndpoint(host) {
87
- const trimmed = host.trim().replace(/\/+$/, '');
88
- if (!trimmed) {
89
- return '';
90
- }
91
- const withProtocol = /^[a-zA-Z][a-zA-Z\d+.-]*:\/\//.test(trimmed) ? trimmed : `http://${trimmed}`;
92
- try {
93
- const url = new URL(withProtocol);
94
- if (!url.port) {
95
- url.port = '3799';
96
- }
97
- return url.toString().replace(/\/$/, '');
98
- } catch {
99
- return withProtocol;
100
- }
101
- }
102
- function normalizeDaemonSettings(settings) {
103
- const endpoint = settings.mode === 'device' ? buildDeviceDaemonEndpoint(settings.deviceHost) : '';
104
- const token = settings.token.trim();
105
- return {
106
- endpoint: endpoint || undefined,
107
- token: token || undefined
108
- };
109
- }
110
- //# sourceMappingURL=daemonSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DAEMON_ENDPOINT_STORAGE_KEY","exports","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,112 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildDaemonUrl = buildDaemonUrl;
7
- exports.getDefaultDaemonEndpoint = getDefaultDaemonEndpoint;
8
- exports.getGlobalFetch = getGlobalFetch;
9
- exports.reportDebugSessionToDaemon = reportDebugSessionToDaemon;
10
- var _reactNative = require("react-native");
11
- var _network = require("../features/network");
12
- var _sessionReport = require("./sessionReport");
13
- const DEFAULT_TIMEOUT_MS = 3000;
14
- function getGlobalFetch() {
15
- return globalThis.fetch;
16
- }
17
- function createAbortController() {
18
- const AbortControllerCtor = globalThis.AbortController;
19
- return AbortControllerCtor ? new AbortControllerCtor() : undefined;
20
- }
21
- function getDefaultDaemonEndpoint() {
22
- if (_reactNative.Platform.OS === 'android') {
23
- return 'http://10.0.2.2:3799';
24
- }
25
- return 'http://localhost:3799';
26
- }
27
- function buildDaemonUrl(endpoint, path) {
28
- const trimmed = endpoint.replace(/\/+$/, '');
29
- return trimmed.endsWith(path) ? trimmed : `${trimmed}${path}`;
30
- }
31
- async function readResponseBody(response) {
32
- try {
33
- if (response.json) {
34
- return await response.json();
35
- }
36
- if (response.text) {
37
- const text = await response.text();
38
- return text ? JSON.parse(text) : null;
39
- }
40
- } catch {
41
- return null;
42
- }
43
- return null;
44
- }
45
- function readLogCount(value) {
46
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
47
- return undefined;
48
- }
49
- return Object.entries(value).reduce((acc, [key, count]) => {
50
- if (typeof count === 'number') {
51
- acc[key] = count;
52
- }
53
- return acc;
54
- }, {});
55
- }
56
- async function reportDebugSessionToDaemon(options = {}) {
57
- const endpoint = options.endpoint ?? getDefaultDaemonEndpoint();
58
- const reportUrl = buildDaemonUrl(endpoint, '/report');
59
- const report = (0, _sessionReport.createDebugSessionReport)(options);
60
- const fetchImpl = getGlobalFetch();
61
- (0, _network._addDaemonEndpointToNetworkBlacklist)(endpoint);
62
- (0, _network._addDaemonEndpointToNetworkBlacklist)(reportUrl);
63
- if (!fetchImpl) {
64
- return {
65
- ok: false,
66
- endpoint,
67
- report,
68
- error: 'global fetch is not available'
69
- };
70
- }
71
- const timeoutMs = Math.max(0, options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
72
- const controller = createAbortController();
73
- const timeout = controller && timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : undefined;
74
- try {
75
- const headers = {
76
- 'Content-Type': 'application/json'
77
- };
78
- if (options.token) {
79
- headers.Authorization = `Bearer ${options.token}`;
80
- }
81
- const response = await fetchImpl(reportUrl, {
82
- method: 'POST',
83
- headers,
84
- body: JSON.stringify(report),
85
- signal: controller?.signal
86
- });
87
- const responseBody = await readResponseBody(response);
88
- const bodyObject = responseBody && typeof responseBody === 'object' ? responseBody : {};
89
- return {
90
- ok: response.ok && bodyObject.ok === true,
91
- endpoint,
92
- report,
93
- status: response.status,
94
- sessionId: typeof bodyObject.sessionId === 'string' ? bodyObject.sessionId : undefined,
95
- receivedAt: typeof bodyObject.receivedAt === 'string' ? bodyObject.receivedAt : undefined,
96
- logCount: readLogCount(bodyObject.logCount),
97
- error: response.ok ? undefined : typeof bodyObject.error === 'string' ? bodyObject.error : 'Report failed'
98
- };
99
- } catch (error) {
100
- return {
101
- ok: false,
102
- endpoint,
103
- report,
104
- error: error instanceof Error ? error.message : String(error)
105
- };
106
- } finally {
107
- if (timeout) {
108
- clearTimeout(timeout);
109
- }
110
- }
111
- }
112
- //# sourceMappingURL=reportToDaemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_network","_sessionReport","DEFAULT_TIMEOUT_MS","getGlobalFetch","globalThis","fetch","createAbortController","AbortControllerCtor","AbortController","undefined","getDefaultDaemonEndpoint","Platform","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","createDebugSessionReport","fetchImpl","_addDaemonEndpointToNetworkBlacklist","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":["_reactNative","require","_DebugToolkit","_safeStringify","DEFAULT_MAX_PER_TYPE","DEFAULT_MAX_BODY_BYTES","MAX_DEPTH","utf8ByteLength","value","bytes","index","length","code","charCodeAt","truncateUtf8","maxBytes","result","char","charBytes","truncateLargeValue","serialized","safeStringify","originalBytes","__debugToolkitTruncated","preview","sanitizeValue","maxBodyBytes","depth","seen","WeakSet","key","String","Date","toISOString","normalizedKey","toLowerCase","normalized","has","add","Array","isArray","map","item","Object","entries","reduce","acc","entryKey","entryValue","createDebugSessionReport","options","maxPerType","Math","max","floor","includeTypes","Set","logs","DebugToolkit","features","forEach","feature","name","snapshot","getSnapshot","slice","entry","constants","Platform","version","device","platform","OS","model","osVersion","Version","appVersion"],"sourceRoot":"../../../src","sources":["utils/sessionReport.ts"],"mappings":"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","ignoreList":[]}