react-native-debug-toolkit 3.0.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -97
- package/README.zh-CN.md +113 -95
- package/lib/commonjs/core/initialize.js +5 -0
- package/lib/commonjs/core/initialize.js.map +1 -1
- package/lib/commonjs/index.js +23 -26
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js +24 -58
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -1
- package/lib/commonjs/utils/DaemonClient.js +721 -0
- package/lib/commonjs/utils/DaemonClient.js.map +1 -0
- package/lib/commonjs/utils/{sessionReport.js → deviceReport.js} +3 -3
- package/lib/commonjs/utils/deviceReport.js.map +1 -0
- package/lib/module/core/initialize.js +6 -0
- package/lib/module/core/initialize.js.map +1 -1
- package/lib/module/index.js +3 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/panel/StreamingSettingsModal.js +21 -55
- package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -1
- package/lib/module/utils/DaemonClient.js +703 -0
- package/lib/module/utils/DaemonClient.js.map +1 -0
- package/lib/module/utils/{sessionReport.js → deviceReport.js} +2 -2
- package/lib/module/utils/deviceReport.js.map +1 -0
- package/lib/typescript/src/core/initialize.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -1
- package/lib/typescript/src/utils/DaemonClient.d.ts +141 -0
- package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -0
- package/lib/typescript/src/utils/{sessionReport.d.ts → deviceReport.d.ts} +4 -4
- package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -0
- package/node/daemon/src/cli.js +9 -2
- package/node/daemon/src/console/console.html +914 -188
- package/node/daemon/src/constants.js +6 -0
- package/node/daemon/src/server.js +205 -123
- package/node/daemon/src/store.js +122 -45
- package/node/mcp/src/daemonClient.js +6 -6
- package/node/mcp/src/index.js +2 -2
- package/node/mcp/src/logs.js +5 -4
- package/node/mcp/src/tools.js +16 -16
- package/package.json +2 -2
- package/src/core/initialize.ts +8 -0
- package/src/index.ts +18 -10
- package/src/ui/panel/StreamingSettingsModal.tsx +25 -63
- package/src/utils/DaemonClient.ts +887 -0
- package/src/utils/{sessionReport.ts → deviceReport.ts} +6 -6
- package/lib/commonjs/utils/autoDetectDaemon.js +0 -141
- package/lib/commonjs/utils/autoDetectDaemon.js.map +0 -1
- package/lib/commonjs/utils/daemonConnection.js +0 -81
- package/lib/commonjs/utils/daemonConnection.js.map +0 -1
- package/lib/commonjs/utils/daemonSettings.js +0 -110
- package/lib/commonjs/utils/daemonSettings.js.map +0 -1
- package/lib/commonjs/utils/reportToDaemon.js +0 -112
- package/lib/commonjs/utils/reportToDaemon.js.map +0 -1
- package/lib/commonjs/utils/sessionReport.js.map +0 -1
- package/lib/commonjs/utils/streamToDaemon.js +0 -334
- package/lib/commonjs/utils/streamToDaemon.js.map +0 -1
- package/lib/module/utils/autoDetectDaemon.js +0 -136
- package/lib/module/utils/autoDetectDaemon.js.map +0 -1
- package/lib/module/utils/daemonConnection.js +0 -77
- package/lib/module/utils/daemonConnection.js.map +0 -1
- package/lib/module/utils/daemonSettings.js +0 -102
- package/lib/module/utils/daemonSettings.js.map +0 -1
- package/lib/module/utils/reportToDaemon.js +0 -105
- package/lib/module/utils/reportToDaemon.js.map +0 -1
- package/lib/module/utils/sessionReport.js.map +0 -1
- package/lib/module/utils/streamToDaemon.js +0 -328
- package/lib/module/utils/streamToDaemon.js.map +0 -1
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts +0 -15
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +0 -1
- package/lib/typescript/src/utils/daemonConnection.d.ts +0 -18
- package/lib/typescript/src/utils/daemonConnection.d.ts.map +0 -1
- package/lib/typescript/src/utils/daemonSettings.d.ts +0 -19
- package/lib/typescript/src/utils/daemonSettings.d.ts.map +0 -1
- package/lib/typescript/src/utils/reportToDaemon.d.ts +0 -34
- package/lib/typescript/src/utils/reportToDaemon.d.ts.map +0 -1
- package/lib/typescript/src/utils/sessionReport.d.ts.map +0 -1
- package/lib/typescript/src/utils/streamToDaemon.d.ts +0 -23
- package/lib/typescript/src/utils/streamToDaemon.d.ts.map +0 -1
- package/src/utils/autoDetectDaemon.ts +0 -175
- package/src/utils/daemonConnection.ts +0 -133
- package/src/utils/daemonSettings.ts +0 -134
- package/src/utils/reportToDaemon.ts +0 -172
- package/src/utils/streamToDaemon.ts +0 -419
|
@@ -1,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":";;AAAA,OAAO,MAAMA,2BAA2B,GAAG,6BAA6B;AACxE,OAAO,MAAMC,wBAAwB,GAAG,0BAA0B;AAClE,OAAO,MAAMC,kCAAkC,GAAG,6BAA6B;AAC/E,OAAO,MAAMC,8BAA8B,GAAG,yBAAyB;AAgBvE,SAASC,eAAeA,CAAA,EAA4B;EAClD,IAAI;IACF,MAAMC,kBAAkB,GAAGC,OAAO,CAAC,2CAA2C,CAAC;IAC/E,OAAOD,kBAAkB,CAACE,OAAO,IAAIF,kBAAkB;EACzD,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,OAAO,eAAeG,kBAAkBA,CAAA,EAA4B;EAClE,MAAMC,YAAY,GAAGL,eAAe,CAAC,CAAC;EACtC,IAAI,CAACK,YAAY,EAAE;IACjB,OAAO;MAAEC,IAAI,EAAE,WAAW;MAAEC,QAAQ,EAAE,EAAE;MAAEC,UAAU,EAAE,EAAE;MAAEC,KAAK,EAAE;IAAG,CAAC;EACvE;EAEA,IAAI;IACF,MAAM,CAACH,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC5DN,YAAY,CAACO,OAAO,CAACd,kCAAkC,CAAC,EACxDO,YAAY,CAACO,OAAO,CAAChB,2BAA2B,CAAC,EACjDS,YAAY,CAACO,OAAO,CAACb,8BAA8B,CAAC,EACpDM,YAAY,CAACO,OAAO,CAACf,wBAAwB,CAAC,CAC/C,CAAC;IAEF,MAAMgB,YAAY,GAAGC,QAAQ,CAACR,IAAI,EAAEC,QAAQ,IAAI,EAAE,CAAC;IACnD,MAAMQ,YAAY,GAAGP,UAAU,IAAIQ,iBAAiB,CAACT,QAAQ,IAAI,EAAE,CAAC;IAEpE,OAAO;MACLD,IAAI,EAAEO,YAAY;MAClBN,QAAQ,EAAEA,QAAQ,IAAI,EAAE;MACxBC,UAAU,EAAEK,YAAY,KAAK,QAAQ,GAAGE,YAAY,GAAG,EAAE;MACzDN,KAAK,EAAEA,KAAK,IAAI;IAClB,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAO;MAAEH,IAAI,EAAE,WAAW;MAAEC,QAAQ,EAAE,EAAE;MAAEC,UAAU,EAAE,EAAE;MAAEC,KAAK,EAAE;IAAG,CAAC;EACvE;AACF;AAEA,OAAO,eAAeQ,kBAAkBA,CAACC,QAAwB,EAAiB;EAChF,MAAMb,YAAY,GAAGL,eAAe,CAAC,CAAC;EACtC,IAAI,CAACK,YAAY,EAAE;IACjB;EACF;EAEA,MAAMc,UAAU,GAAGC,uBAAuB,CAACF,QAAQ,CAAC;EACpD,IAAI;IACF,MAAMR,OAAO,CAACC,GAAG,CAAC,CAChBN,YAAY,CAACgB,OAAO,CAACvB,kCAAkC,EAAEoB,QAAQ,CAACZ,IAAI,CAAC,EACvED,YAAY,CAACgB,OAAO,CAACtB,8BAA8B,EAAEmB,QAAQ,CAACV,UAAU,CAACc,IAAI,CAAC,CAAC,CAAC,EAChFjB,YAAY,CAACgB,OAAO,CAACzB,2BAA2B,EAAEuB,UAAU,CAACZ,QAAQ,IAAI,EAAE,CAAC,EAC5EF,YAAY,CAACgB,OAAO,CAACxB,wBAAwB,EAAEqB,QAAQ,CAACT,KAAK,CAACa,IAAI,CAAC,CAAC,CAAC,CACtE,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;AAEA,SAASR,QAAQA,CAACS,KAAoB,EAAEhB,QAAgB,EAAwB;EAC9E,IAAIgB,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,WAAW,EAAE;IAC/C,OAAOA,KAAK;EACd;EACA,OAAOhB,QAAQ,IAAI,CAACiB,mBAAmB,CAACjB,QAAQ,CAAC,GAAG,QAAQ,GAAG,WAAW;AAC5E;AAEA,SAASiB,mBAAmBA,CAACjB,QAAgB,EAAW;EACtD,IAAI;IACF,MAAMkB,GAAG,GAAG,IAAIC,GAAG,CAACnB,QAAQ,CAAC;IAC7B,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAACoB,QAAQ,CAACF,GAAG,CAACG,QAAQ,CAAC;EACtE,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAASZ,iBAAiBA,CAACT,QAAgB,EAAU;EACnD,IAAI;IACF,MAAMkB,GAAG,GAAG,IAAIC,GAAG,CAACnB,QAAQ,CAAC;IAC7B,OAAOkB,GAAG,CAACI,IAAI,IAAIJ,GAAG,CAACI,IAAI,KAAK,MAAM,GAAG,GAAGJ,GAAG,CAACG,QAAQ,IAAIH,GAAG,CAACI,IAAI,EAAE,GAAGJ,GAAG,CAACG,QAAQ;EACvF,CAAC,CAAC,MAAM;IACN,OAAO,EAAE;EACX;AACF;AAEA,OAAO,SAASE,yBAAyBA,CAACC,IAAY,EAAU;EAC9D,MAAMC,OAAO,GAAGD,IAAI,CAACT,IAAI,CAAC,CAAC,CAACW,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAC/C,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,EAAE;EACX;EAEA,MAAME,YAAY,GAAG,8BAA8B,CAACC,IAAI,CAACH,OAAO,CAAC,GAC7DA,OAAO,GACP,UAAUA,OAAO,EAAE;EAEvB,IAAI;IACF,MAAMP,GAAG,GAAG,IAAIC,GAAG,CAACQ,YAAY,CAAC;IACjC,IAAI,CAACT,GAAG,CAACI,IAAI,EAAE;MACbJ,GAAG,CAACI,IAAI,GAAG,MAAM;IACnB;IACA,OAAOJ,GAAG,CAACW,QAAQ,CAAC,CAAC,CAACH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAC1C,CAAC,CAAC,MAAM;IACN,OAAOC,YAAY;EACrB;AACF;AAEA,OAAO,SAASd,uBAAuBA,CAACF,QAAwB,EAG9D;EACA,MAAMX,QAAQ,GAAGW,QAAQ,CAACZ,IAAI,KAAK,QAAQ,GACvCwB,yBAAyB,CAACZ,QAAQ,CAACV,UAAU,CAAC,GAC9C,EAAE;EACN,MAAMC,KAAK,GAAGS,QAAQ,CAACT,KAAK,CAACa,IAAI,CAAC,CAAC;EACnC,OAAO;IACLf,QAAQ,EAAEA,QAAQ,IAAI8B,SAAS;IAC/B5B,KAAK,EAAEA,KAAK,IAAI4B;EAClB,CAAC;AACH","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
|