react-native-debug-toolkit 3.1.2 → 3.1.4
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 +4 -2
- package/README.zh-CN.md +4 -2
- package/lib/commonjs/core/DebugToolkit.js +118 -97
- package/lib/commonjs/core/DebugToolkit.js.map +1 -1
- package/lib/commonjs/core/initialize.js +4 -4
- package/lib/commonjs/core/initialize.js.map +1 -1
- package/lib/commonjs/features/environment/index.js +22 -24
- package/lib/commonjs/features/environment/index.js.map +1 -1
- package/lib/commonjs/features/network/index.js +25 -47
- package/lib/commonjs/features/network/index.js.map +1 -1
- package/lib/commonjs/features/network/networkInterceptor.js +3 -3
- package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
- package/lib/commonjs/index.js +0 -30
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/DaemonClient.js +13 -51
- package/lib/commonjs/utils/DaemonClient.js.map +1 -1
- package/lib/commonjs/utils/createChannelFeature.js +8 -1
- package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
- package/lib/commonjs/utils/deviceReport.js +2 -1
- package/lib/commonjs/utils/deviceReport.js.map +1 -1
- package/lib/commonjs/utils/urlRewriter.js +15 -0
- package/lib/commonjs/utils/urlRewriter.js.map +1 -0
- package/lib/module/core/DebugToolkit.js +117 -96
- package/lib/module/core/DebugToolkit.js.map +1 -1
- package/lib/module/core/initialize.js +6 -7
- package/lib/module/core/initialize.js.map +1 -1
- package/lib/module/features/environment/index.js +22 -24
- package/lib/module/features/environment/index.js.map +1 -1
- package/lib/module/features/network/index.js +25 -46
- package/lib/module/features/network/index.js.map +1 -1
- package/lib/module/features/network/networkInterceptor.js +3 -3
- package/lib/module/features/network/networkInterceptor.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/DaemonClient.js +14 -42
- package/lib/module/utils/DaemonClient.js.map +1 -1
- package/lib/module/utils/createChannelFeature.js +8 -1
- package/lib/module/utils/createChannelFeature.js.map +1 -1
- package/lib/module/utils/deviceReport.js +3 -2
- package/lib/module/utils/deviceReport.js.map +1 -1
- package/lib/module/utils/urlRewriter.js +10 -0
- package/lib/module/utils/urlRewriter.js.map +1 -0
- package/lib/typescript/src/core/DebugToolkit.d.ts +23 -10
- package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -1
- package/lib/typescript/src/core/initialize.d.ts.map +1 -1
- package/lib/typescript/src/features/environment/index.d.ts.map +1 -1
- package/lib/typescript/src/features/network/index.d.ts +3 -3
- package/lib/typescript/src/features/network/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/feature.d.ts +5 -0
- package/lib/typescript/src/types/feature.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +1 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/DaemonClient.d.ts +4 -11
- package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
- package/lib/typescript/src/utils/createChannelFeature.d.ts +4 -0
- package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
- package/lib/typescript/src/utils/deviceReport.d.ts +4 -1
- package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
- package/lib/typescript/src/utils/urlRewriter.d.ts +5 -0
- package/lib/typescript/src/utils/urlRewriter.d.ts.map +1 -0
- package/node/daemon/src/console/console.html +324 -168
- package/node/daemon/src/server.js +32 -2
- package/node/mcp/src/logs.js +15 -4
- package/node/mcp/src/tools.js +4 -2
- package/package.json +1 -1
- package/src/core/DebugToolkit.tsx +119 -105
- package/src/core/initialize.ts +7 -8
- package/src/features/environment/index.ts +25 -27
- package/src/features/network/index.ts +30 -52
- package/src/features/network/networkInterceptor.ts +3 -3
- package/src/index.ts +3 -8
- package/src/types/feature.ts +6 -0
- package/src/types/index.ts +1 -0
- package/src/utils/DaemonClient.ts +14 -56
- package/src/utils/createChannelFeature.ts +12 -1
- package/src/utils/deviceReport.ts +5 -3
- package/src/utils/urlRewriter.ts +11 -0
- package/lib/commonjs/utils/urlRewriterRegistry.js +0 -14
- package/lib/commonjs/utils/urlRewriterRegistry.js.map +0 -1
- package/lib/module/utils/urlRewriterRegistry.js +0 -10
- package/lib/module/utils/urlRewriterRegistry.js.map +0 -1
- package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +0 -7
- package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +0 -1
- package/src/utils/urlRewriterRegistry.ts +0 -10
package/README.md
CHANGED
|
@@ -126,8 +126,10 @@ DEVICE_ID=$(curl -s "$BASE/devices" | node -e "let s='';process.stdin.on('data',
|
|
|
126
126
|
|
|
127
127
|
curl "$BASE/devices/$DEVICE_ID"
|
|
128
128
|
curl "$BASE/devices/$DEVICE_ID/logs?limit=100"
|
|
129
|
+
curl "$BASE/devices/$DEVICE_ID/logs?limit=100&includeBodies=true"
|
|
129
130
|
curl "$BASE/devices/$DEVICE_ID/logs?type=network&failedOnly=true&limit=50"
|
|
130
131
|
curl "$BASE/devices/$DEVICE_ID/logs?type=console&limit=100"
|
|
132
|
+
curl "$BASE/devices/$DEVICE_ID/logs?entryId=<entryId>"
|
|
131
133
|
curl -X DELETE "$BASE/devices"
|
|
132
134
|
```
|
|
133
135
|
|
|
@@ -140,7 +142,7 @@ POST /ingest
|
|
|
140
142
|
GET /devices
|
|
141
143
|
GET /devices/latest
|
|
142
144
|
GET /devices/:deviceId
|
|
143
|
-
GET /devices/:deviceId/logs
|
|
145
|
+
GET /devices/:deviceId/logs?type=&limit=&failedOnly=&includeBodies=&entryId=
|
|
144
146
|
DELETE /devices
|
|
145
147
|
GET /events
|
|
146
148
|
GET /console
|
|
@@ -155,7 +157,7 @@ claude mcp add debug-toolkit -- npx debug-toolkit
|
|
|
155
157
|
Tools:
|
|
156
158
|
|
|
157
159
|
- `list_app_devices`
|
|
158
|
-
- `get_app_logs`
|
|
160
|
+
- `get_app_logs` — bodies excluded by default; set `includeBodies=true` or pass `entryId` for details
|
|
159
161
|
|
|
160
162
|
Use curl when shell is available.
|
|
161
163
|
|
package/README.zh-CN.md
CHANGED
|
@@ -126,8 +126,10 @@ DEVICE_ID=$(curl -s "$BASE/devices" | node -e "let s='';process.stdin.on('data',
|
|
|
126
126
|
|
|
127
127
|
curl "$BASE/devices/$DEVICE_ID"
|
|
128
128
|
curl "$BASE/devices/$DEVICE_ID/logs?limit=100"
|
|
129
|
+
curl "$BASE/devices/$DEVICE_ID/logs?limit=100&includeBodies=true"
|
|
129
130
|
curl "$BASE/devices/$DEVICE_ID/logs?type=network&failedOnly=true&limit=50"
|
|
130
131
|
curl "$BASE/devices/$DEVICE_ID/logs?type=console&limit=100"
|
|
132
|
+
curl "$BASE/devices/$DEVICE_ID/logs?entryId=<entryId>"
|
|
131
133
|
curl -X DELETE "$BASE/devices"
|
|
132
134
|
```
|
|
133
135
|
|
|
@@ -140,7 +142,7 @@ POST /ingest
|
|
|
140
142
|
GET /devices
|
|
141
143
|
GET /devices/latest
|
|
142
144
|
GET /devices/:deviceId
|
|
143
|
-
GET /devices/:deviceId/logs
|
|
145
|
+
GET /devices/:deviceId/logs?type=&limit=&failedOnly=&includeBodies=&entryId=
|
|
144
146
|
DELETE /devices
|
|
145
147
|
GET /events
|
|
146
148
|
GET /console
|
|
@@ -155,7 +157,7 @@ claude mcp add debug-toolkit -- npx debug-toolkit
|
|
|
155
157
|
工具:
|
|
156
158
|
|
|
157
159
|
- `list_app_devices`
|
|
158
|
-
- `get_app_logs`
|
|
160
|
+
- `get_app_logs` — 默认不含 body;设置 `includeBodies=true` 或传 `entryId` 获取详情
|
|
159
161
|
|
|
160
162
|
有 shell 时优先 curl。
|
|
161
163
|
|
|
@@ -3,142 +3,163 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.DebugToolkit = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
exports.debugToolkit = exports.DebugToolkit = void 0;
|
|
7
|
+
class DebugToolkitCore {
|
|
8
|
+
_features = [];
|
|
9
|
+
_launcherVisible = false;
|
|
10
|
+
_panelOpen = false;
|
|
11
|
+
_enabled = true;
|
|
12
|
+
_listeners = new Set();
|
|
13
|
+
notify() {
|
|
14
|
+
this._listeners.forEach(l => l());
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// --- FeatureDataProvider ---
|
|
18
|
+
|
|
19
|
+
get features() {
|
|
20
|
+
return [...this._features];
|
|
21
|
+
}
|
|
22
22
|
subscribe(listener) {
|
|
23
|
-
|
|
23
|
+
this._listeners.add(listener);
|
|
24
24
|
return () => {
|
|
25
|
-
|
|
25
|
+
this._listeners.delete(listener);
|
|
26
26
|
};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// --- Enabled ---
|
|
30
|
+
|
|
31
31
|
get enabled() {
|
|
32
|
-
return _enabled;
|
|
33
|
-
}
|
|
34
|
-
get launcherVisible() {
|
|
35
|
-
return _launcherVisible;
|
|
36
|
-
},
|
|
32
|
+
return this._enabled;
|
|
33
|
+
}
|
|
37
34
|
setEnabled(enabled) {
|
|
38
|
-
if (_enabled === enabled) return;
|
|
39
|
-
_enabled = enabled;
|
|
35
|
+
if (this._enabled === enabled) return;
|
|
36
|
+
this._enabled = enabled;
|
|
40
37
|
if (!enabled) {
|
|
41
|
-
_launcherVisible = false;
|
|
42
|
-
_features.forEach(
|
|
43
|
-
_features = [];
|
|
38
|
+
this._launcherVisible = false;
|
|
39
|
+
this._features.forEach(f => f.cleanup?.());
|
|
40
|
+
this._features = [];
|
|
44
41
|
}
|
|
45
|
-
notify();
|
|
46
|
-
}
|
|
42
|
+
this.notify();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// --- Feature Management ---
|
|
46
|
+
|
|
47
47
|
replaceFeatures(features) {
|
|
48
|
-
if (!_enabled) return;
|
|
48
|
+
if (!this._enabled) return;
|
|
49
49
|
const next = features.filter((f, i, arr) => f && typeof f.name === 'string' && arr.findIndex(item => item.name === f.name) === i);
|
|
50
|
-
const prevMap = new Map(_features.map(f => [f.name, f]));
|
|
50
|
+
const prevMap = new Map(this._features.map(f => [f.name, f]));
|
|
51
51
|
const nextMap = new Map(next.map(f => [f.name, f]));
|
|
52
|
-
_features.forEach(f => {
|
|
53
|
-
if (!nextMap.get(f.name) || nextMap.get(f.name) !== f)
|
|
52
|
+
this._features.forEach(f => {
|
|
53
|
+
if (!nextMap.get(f.name) || nextMap.get(f.name) !== f) f.cleanup?.();
|
|
54
54
|
});
|
|
55
55
|
next.forEach(f => {
|
|
56
|
-
if (!prevMap.get(f.name) || prevMap.get(f.name) !== f)
|
|
56
|
+
if (!prevMap.get(f.name) || prevMap.get(f.name) !== f) f.setup?.();
|
|
57
57
|
});
|
|
58
|
-
_features = next;
|
|
59
|
-
notify();
|
|
60
|
-
}
|
|
58
|
+
this._features = next;
|
|
59
|
+
this.notify();
|
|
60
|
+
}
|
|
61
61
|
addFeature(feature) {
|
|
62
|
-
if (!_enabled || !feature || typeof feature.name !== 'string') {
|
|
62
|
+
if (!this._enabled || !feature || typeof feature.name !== 'string') {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
const existingIndex = _features.findIndex(f => f.name === feature.name);
|
|
65
|
+
const existingIndex = this._features.findIndex(f => f.name === feature.name);
|
|
66
66
|
if (existingIndex >= 0) {
|
|
67
|
-
const existing = _features[existingIndex];
|
|
67
|
+
const existing = this._features[existingIndex];
|
|
68
68
|
if (existing === feature) {
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
_features = [..._features.slice(0, existingIndex), feature, ..._features.slice(existingIndex + 1)];
|
|
74
|
-
notify();
|
|
71
|
+
existing.cleanup?.();
|
|
72
|
+
feature.setup?.();
|
|
73
|
+
this._features = [...this._features.slice(0, existingIndex), feature, ...this._features.slice(existingIndex + 1)];
|
|
74
|
+
this.notify();
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
_features = [..._features, feature];
|
|
79
|
-
notify();
|
|
80
|
-
}
|
|
77
|
+
feature.setup?.();
|
|
78
|
+
this._features = [...this._features, feature];
|
|
79
|
+
this.notify();
|
|
80
|
+
}
|
|
81
81
|
removeFeature(name) {
|
|
82
|
-
if (!_enabled) {
|
|
82
|
+
if (!this._enabled) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
const feature = _features.find(f => f.name === name);
|
|
85
|
+
const feature = this._features.find(f => f.name === name);
|
|
86
86
|
if (!feature) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
_features = _features.filter(f => f.name !== name);
|
|
91
|
-
if (_features.length === 0) {
|
|
92
|
-
_launcherVisible = false;
|
|
89
|
+
feature.cleanup?.();
|
|
90
|
+
this._features = this._features.filter(f => f.name !== name);
|
|
91
|
+
if (this._features.length === 0) {
|
|
92
|
+
this._launcherVisible = false;
|
|
93
93
|
}
|
|
94
|
-
notify();
|
|
95
|
-
}
|
|
96
|
-
reset() {
|
|
97
|
-
_launcherVisible = false;
|
|
98
|
-
_panelOpen = false;
|
|
99
|
-
_features.forEach(cleanupFeature);
|
|
100
|
-
_features = [];
|
|
101
|
-
notify();
|
|
102
|
-
},
|
|
94
|
+
this.notify();
|
|
95
|
+
}
|
|
103
96
|
hasFeatures() {
|
|
104
|
-
return _features.length > 0;
|
|
105
|
-
}
|
|
97
|
+
return this._features.length > 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// --- Panel ---
|
|
101
|
+
|
|
106
102
|
get panelOpen() {
|
|
107
|
-
return _panelOpen;
|
|
108
|
-
}
|
|
103
|
+
return this._panelOpen;
|
|
104
|
+
}
|
|
109
105
|
openPanel() {
|
|
110
|
-
if (!_enabled || _panelOpen) return;
|
|
111
|
-
_panelOpen = true;
|
|
112
|
-
notify();
|
|
113
|
-
}
|
|
106
|
+
if (!this._enabled || this._panelOpen) return;
|
|
107
|
+
this._panelOpen = true;
|
|
108
|
+
this.notify();
|
|
109
|
+
}
|
|
114
110
|
closePanel() {
|
|
115
|
-
if (!_panelOpen) return;
|
|
116
|
-
_panelOpen = false;
|
|
117
|
-
notify();
|
|
118
|
-
}
|
|
111
|
+
if (!this._panelOpen) return;
|
|
112
|
+
this._panelOpen = false;
|
|
113
|
+
this.notify();
|
|
114
|
+
}
|
|
119
115
|
togglePanel() {
|
|
120
|
-
if (_panelOpen) {
|
|
121
|
-
|
|
116
|
+
if (this._panelOpen) {
|
|
117
|
+
this.closePanel();
|
|
122
118
|
} else {
|
|
123
|
-
|
|
119
|
+
this.openPanel();
|
|
124
120
|
}
|
|
125
|
-
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// --- Launcher ---
|
|
124
|
+
|
|
125
|
+
get launcherVisible() {
|
|
126
|
+
return this._launcherVisible;
|
|
127
|
+
}
|
|
126
128
|
showLauncher() {
|
|
127
|
-
if (!_enabled) return;
|
|
128
|
-
_launcherVisible = true;
|
|
129
|
-
notify();
|
|
130
|
-
}
|
|
129
|
+
if (!this._enabled) return;
|
|
130
|
+
this._launcherVisible = true;
|
|
131
|
+
this.notify();
|
|
132
|
+
}
|
|
131
133
|
hideLauncher() {
|
|
132
|
-
_launcherVisible
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
if (!this._launcherVisible) return;
|
|
135
|
+
this._launcherVisible = false;
|
|
136
|
+
this.notify();
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// --- Bulk Operations ---
|
|
140
|
+
|
|
135
141
|
clearAll() {
|
|
136
|
-
_features.forEach(f => f.clear?.());
|
|
137
|
-
notify();
|
|
138
|
-
}
|
|
142
|
+
this._features.forEach(f => f.clear?.());
|
|
143
|
+
this.notify();
|
|
144
|
+
}
|
|
145
|
+
reset() {
|
|
146
|
+
this._launcherVisible = false;
|
|
147
|
+
this._panelOpen = false;
|
|
148
|
+
this._features.forEach(f => f.cleanup?.());
|
|
149
|
+
this._features = [];
|
|
150
|
+
this.notify();
|
|
151
|
+
}
|
|
139
152
|
destroy() {
|
|
140
|
-
|
|
141
|
-
|
|
153
|
+
this.reset();
|
|
154
|
+
this._listeners.clear();
|
|
142
155
|
}
|
|
143
|
-
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** Module-level default instance for non-React scenarios and backward compatibility. */
|
|
159
|
+
const debugToolkit = exports.debugToolkit = new DebugToolkitCore();
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated Use `debugToolkit` or get instance from `initializeDebugToolkit()`.
|
|
162
|
+
* This is the default module-level instance exported for backward compatibility.
|
|
163
|
+
*/
|
|
164
|
+
const DebugToolkit = exports.DebugToolkit = debugToolkit;
|
|
144
165
|
//# sourceMappingURL=DebugToolkit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DebugToolkitCore","_features","_launcherVisible","_panelOpen","_enabled","_listeners","Set","notify","forEach","l","features","subscribe","listener","add","delete","enabled","setEnabled","f","cleanup","replaceFeatures","next","filter","i","arr","name","findIndex","item","prevMap","Map","map","nextMap","get","setup","addFeature","feature","existingIndex","existing","slice","removeFeature","find","length","hasFeatures","panelOpen","openPanel","closePanel","togglePanel","launcherVisible","showLauncher","hideLauncher","clearAll","clear","reset","destroy","debugToolkit","exports","DebugToolkit"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,9 +14,6 @@ var _environment = require("../features/environment");
|
|
|
14
14
|
var _clipboard = require("../features/clipboard");
|
|
15
15
|
var _DaemonClient = require("../utils/DaemonClient");
|
|
16
16
|
const isDebugMode = __DEV__;
|
|
17
|
-
_DaemonClient.daemonClient.setEndpointDetector(url => {
|
|
18
|
-
(0, _network._addDaemonEndpointToNetworkBlacklist)(url);
|
|
19
|
-
});
|
|
20
17
|
|
|
21
18
|
/** Feature-specific configuration map */
|
|
22
19
|
|
|
@@ -74,12 +71,15 @@ function initializeDebugToolkit(options) {
|
|
|
74
71
|
return _DebugToolkit.DebugToolkit;
|
|
75
72
|
}
|
|
76
73
|
_DebugToolkit.DebugToolkit.replaceFeatures(resolvedFeatures);
|
|
74
|
+
_DaemonClient.daemonClient.setEndpointDetector(url => {
|
|
75
|
+
(0, _network.addToBlacklist)(url);
|
|
76
|
+
});
|
|
77
77
|
if (_DebugToolkit.DebugToolkit.hasFeatures()) {
|
|
78
78
|
_DebugToolkit.DebugToolkit.showLauncher();
|
|
79
79
|
} else {
|
|
80
80
|
_DebugToolkit.DebugToolkit.hideLauncher();
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
_DaemonClient.daemonClient.restore().catch(() => {});
|
|
83
83
|
return _DebugToolkit.DebugToolkit;
|
|
84
84
|
} catch (error) {
|
|
85
85
|
console.error('[DebugToolkit] Initialization failed:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DebugToolkit","require","_network","_console","_zustand","_navigation","_track","_environment","_clipboard","_DaemonClient","isDebugMode","__DEV__","
|
|
1
|
+
{"version":3,"names":["_DebugToolkit","require","_network","_console","_zustand","_navigation","_track","_environment","_clipboard","_DaemonClient","isDebugMode","__DEV__","featureRegistry","network","createNetworkFeature","console","createConsoleLogFeature","zustand","createZustandLogFeature","navigation","createNavigationLogFeature","track","createTrackFeature","environment","createEnvironmentFeature","clipboard","createClipboardFeature","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","config","creator","warn","undefined","push","resolveDefaultFeatures","map","initializeDebugToolkit","options","enabled","resolvedFeatures","DebugToolkit","setEnabled","reset","replaceFeatures","daemonClient","setEndpointDetector","url","addToBlacklist","hasFeatures","showLauncher","hideLauncher","restore","catch","error"],"sourceRoot":"../../../src","sources":["core/initialize.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createEnvironmentFeature = void 0;
|
|
7
7
|
var _EnvironmentTab = require("./EnvironmentTab");
|
|
8
|
-
var
|
|
8
|
+
var _urlRewriter = require("../../utils/urlRewriter");
|
|
9
9
|
// Lazy AsyncStorage loader
|
|
10
10
|
|
|
11
11
|
let asyncStorageModule = null;
|
|
@@ -24,10 +24,6 @@ function getAsyncStorage() {
|
|
|
24
24
|
return asyncStorageModule;
|
|
25
25
|
}
|
|
26
26
|
const STORAGE_KEY = 'debug_toolkit_env_id';
|
|
27
|
-
|
|
28
|
-
// Module-level state for synchronous URL rewriting
|
|
29
|
-
let currentHostsMap = null;
|
|
30
|
-
let activeEnvironmentId = null;
|
|
31
27
|
function buildHostsMap(environments, targetId) {
|
|
32
28
|
if (!targetId) return null;
|
|
33
29
|
const target = environments.find(e => e.id === targetId);
|
|
@@ -40,25 +36,27 @@ function buildHostsMap(environments, targetId) {
|
|
|
40
36
|
}
|
|
41
37
|
return map;
|
|
42
38
|
}
|
|
43
|
-
function createUrlRewriter() {
|
|
44
|
-
return url => {
|
|
45
|
-
if (!currentHostsMap) return url;
|
|
46
|
-
try {
|
|
47
|
-
const parsed = new URL(url);
|
|
48
|
-
const targetHost = currentHostsMap.get(parsed.host);
|
|
49
|
-
if (targetHost) {
|
|
50
|
-
return url.replace(parsed.host, targetHost);
|
|
51
|
-
}
|
|
52
|
-
} catch {
|
|
53
|
-
// Not a valid URL or relative URL — return unchanged
|
|
54
|
-
}
|
|
55
|
-
return url;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
39
|
const createEnvironmentFeature = initialEnvironments => {
|
|
59
40
|
const listeners = new Set();
|
|
60
41
|
let environments = initialEnvironments ?? [];
|
|
61
42
|
let initialized = false;
|
|
43
|
+
let currentHostsMap = null;
|
|
44
|
+
let activeEnvironmentId = null;
|
|
45
|
+
const createUrlRewriter = () => {
|
|
46
|
+
return url => {
|
|
47
|
+
if (!currentHostsMap) return url;
|
|
48
|
+
try {
|
|
49
|
+
const parsed = new URL(url);
|
|
50
|
+
const targetHost = currentHostsMap.get(parsed.host);
|
|
51
|
+
if (targetHost) {
|
|
52
|
+
return url.replace(parsed.host, targetHost);
|
|
53
|
+
}
|
|
54
|
+
} catch {
|
|
55
|
+
// Not a valid URL or relative URL — return unchanged
|
|
56
|
+
}
|
|
57
|
+
return url;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
62
60
|
const getCurrentState = () => ({
|
|
63
61
|
environments,
|
|
64
62
|
currentEnvironmentId: activeEnvironmentId
|
|
@@ -74,9 +72,9 @@ const createEnvironmentFeature = initialEnvironments => {
|
|
|
74
72
|
if (initialized) {
|
|
75
73
|
try {
|
|
76
74
|
if (envId && environments.length > 0) {
|
|
77
|
-
|
|
75
|
+
(0, _urlRewriter.setUrlRewriter)(createUrlRewriter());
|
|
78
76
|
} else {
|
|
79
|
-
|
|
77
|
+
(0, _urlRewriter.setUrlRewriter)(null);
|
|
80
78
|
}
|
|
81
79
|
} catch (err) {
|
|
82
80
|
if (__DEV__) console.warn('[DebugToolkit] Failed to set URL rewriter:', err);
|
|
@@ -116,7 +114,7 @@ const createEnvironmentFeature = initialEnvironments => {
|
|
|
116
114
|
|
|
117
115
|
// Install rewriter if an environment is already selected
|
|
118
116
|
if (activeEnvironmentId && environments.length > 0) {
|
|
119
|
-
|
|
117
|
+
(0, _urlRewriter.setUrlRewriter)(createUrlRewriter());
|
|
120
118
|
}
|
|
121
119
|
|
|
122
120
|
// Async persistence load (will override if a preference exists)
|
|
@@ -129,7 +127,7 @@ const createEnvironmentFeature = initialEnvironments => {
|
|
|
129
127
|
},
|
|
130
128
|
cleanup: () => {
|
|
131
129
|
if (!initialized) return;
|
|
132
|
-
|
|
130
|
+
(0, _urlRewriter.setUrlRewriter)(null);
|
|
133
131
|
activeEnvironmentId = null;
|
|
134
132
|
currentHostsMap = null;
|
|
135
133
|
notify();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_EnvironmentTab","require","
|
|
1
|
+
{"version":3,"names":["_EnvironmentTab","require","_urlRewriter","asyncStorageModule","asyncStorageChecked","getAsyncStorage","default","STORAGE_KEY","buildHostsMap","environments","targetId","target","find","e","id","map","Map","env","set","host","createEnvironmentFeature","initialEnvironments","listeners","Set","initialized","currentHostsMap","activeEnvironmentId","createUrlRewriter","url","parsed","URL","targetHost","get","replace","getCurrentState","currentEnvironmentId","notify","forEach","listener","applyEnvironment","envId","length","setUrlRewriter","err","__DEV__","console","warn","persistSelection","storage","setItem","loadPersistedSelection","stored","getItem","some","name","label","renderContent","EnvironmentTab","setup","getSnapshot","clear","cleanup","subscribe","add","delete","registerEnvironments","envs","switchEnvironment","getCurrentEnvironmentId","badge","substring","toUpperCase","color","exports"],"sourceRoot":"../../../../src","sources":["features/environment/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports._addDaemonEndpointToNetworkBlacklist = _addDaemonEndpointToNetworkBlacklist;
|
|
7
6
|
exports._isNetworkUrlBlacklistedForTesting = _isNetworkUrlBlacklistedForTesting;
|
|
8
7
|
exports._resetNetworkForTesting = _resetNetworkForTesting;
|
|
8
|
+
exports.addToBlacklist = addToBlacklist;
|
|
9
9
|
exports.createNetworkFeature = void 0;
|
|
10
10
|
var _NetworkLogTab = require("./NetworkLogTab");
|
|
11
|
+
var _createChannelFeature = require("../../utils/createChannelFeature");
|
|
11
12
|
var _createEventChannel = require("../../utils/createEventChannel");
|
|
12
|
-
var _createPersistedObservableStore = require("../../utils/createPersistedObservableStore");
|
|
13
13
|
var _debugPreferences = require("../../utils/debugPreferences");
|
|
14
|
-
var _urlRewriterRegistry = require("../../utils/urlRewriterRegistry");
|
|
15
14
|
var _networkInterceptor = require("./networkInterceptor");
|
|
15
|
+
var _urlRewriter = require("../../utils/urlRewriter");
|
|
16
16
|
// ─── Utilities ────────────────────────────────────────
|
|
17
17
|
|
|
18
18
|
function isUrlBlacklisted(url, blacklist) {
|
|
@@ -31,57 +31,35 @@ function emitNetworkLog(entry) {
|
|
|
31
31
|
|
|
32
32
|
// ─── Feature factory ──────────────────────────────────
|
|
33
33
|
|
|
34
|
-
const DEFAULT_MAX_LOGS = 200;
|
|
35
34
|
const daemonEndpointBlacklist = [];
|
|
36
35
|
const createNetworkFeature = config => {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
let initialized = false;
|
|
44
|
-
let unsubscribeLogs = null;
|
|
45
|
-
let stopXhrFn = null;
|
|
46
|
-
const handleLog = entry => {
|
|
47
|
-
if (isUrlBlacklisted(entry.request.url, [...blacklist, ...daemonEndpointBlacklist])) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
logStore.push({
|
|
51
|
-
...entry,
|
|
52
|
-
id: logStore.nextId()
|
|
53
|
-
}, maxLogs);
|
|
54
|
-
};
|
|
55
|
-
return {
|
|
36
|
+
const userBlacklist = config?.blacklist ? [...config.blacklist] : [];
|
|
37
|
+
return (0, _createChannelFeature.createChannelFeature)(() => networkChannel, (payload, id) => ({
|
|
38
|
+
...payload,
|
|
39
|
+
id
|
|
40
|
+
}), {
|
|
56
41
|
name: 'network',
|
|
57
42
|
label: 'Network',
|
|
58
43
|
renderContent: _NetworkLogTab.NetworkLogTab,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
unsubscribeLogs = networkChannel.subscribe(handleLog);
|
|
64
|
-
stopXhrFn = (0, _networkInterceptor.startXMLHttpRequest)(emitNetworkLog);
|
|
65
|
-
initialized = true;
|
|
44
|
+
maxLogs: config?.maxLogs,
|
|
45
|
+
persist: {
|
|
46
|
+
storageKey: _debugPreferences.KEYS.networkLogs,
|
|
47
|
+
maxPersist: 30
|
|
66
48
|
},
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
cleanup: () => {
|
|
72
|
-
if (!initialized) {
|
|
73
|
-
return;
|
|
49
|
+
beforePush: payload => {
|
|
50
|
+
if (isUrlBlacklisted(payload.request.url, [...userBlacklist, ...daemonEndpointBlacklist])) {
|
|
51
|
+
return null;
|
|
74
52
|
}
|
|
75
|
-
|
|
76
|
-
unsubscribeLogs?.();
|
|
77
|
-
unsubscribeLogs = null;
|
|
78
|
-
stopXhrFn?.();
|
|
79
|
-
stopXhrFn = null;
|
|
80
|
-
logStore.clear();
|
|
81
|
-
initialized = false;
|
|
53
|
+
return payload;
|
|
82
54
|
},
|
|
83
|
-
|
|
84
|
-
|
|
55
|
+
onSetup: () => {
|
|
56
|
+
const stopXhr = (0, _networkInterceptor.startXMLHttpRequest)(emitNetworkLog);
|
|
57
|
+
return () => {
|
|
58
|
+
(0, _urlRewriter.setUrlRewriter)(null);
|
|
59
|
+
stopXhr();
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
85
63
|
};
|
|
86
64
|
exports.createNetworkFeature = createNetworkFeature;
|
|
87
65
|
function normalizeDaemonEndpoint(endpoint) {
|
|
@@ -96,7 +74,7 @@ function normalizeDaemonEndpoint(endpoint) {
|
|
|
96
74
|
return trimmed;
|
|
97
75
|
}
|
|
98
76
|
}
|
|
99
|
-
function
|
|
77
|
+
function addToBlacklist(endpoint) {
|
|
100
78
|
const normalized = normalizeDaemonEndpoint(endpoint);
|
|
101
79
|
if (!normalized || daemonEndpointBlacklist.includes(normalized)) {
|
|
102
80
|
return;
|