react-native-debug-toolkit 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -8
- package/README.zh-CN.md +5 -8
- package/lib/commonjs/features/network/index.js +4 -10
- package/lib/commonjs/features/network/index.js.map +1 -1
- package/lib/commonjs/features/network/networkInterceptor.js +158 -203
- package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
- package/lib/module/features/network/index.js +5 -11
- package/lib/module/features/network/index.js.map +1 -1
- package/lib/module/features/network/networkInterceptor.js +157 -202
- package/lib/module/features/network/networkInterceptor.js.map +1 -1
- package/lib/typescript/src/features/network/index.d.ts +0 -4
- package/lib/typescript/src/features/network/index.d.ts.map +1 -1
- package/lib/typescript/src/features/network/networkInterceptor.d.ts +1 -14
- package/lib/typescript/src/features/network/networkInterceptor.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/features/network/index.ts +5 -16
- package/src/features/network/networkInterceptor.ts +212 -237
- package/src/index.ts +1 -1
|
@@ -5,7 +5,7 @@ import { createEventChannel } from '../../utils/createEventChannel';
|
|
|
5
5
|
import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
|
|
6
6
|
import { KEYS } from '../../utils/debugPreferences';
|
|
7
7
|
import { urlRewriter } from '../../utils/urlRewriterRegistry';
|
|
8
|
-
import {
|
|
8
|
+
import { startXMLHttpRequest, resetInterceptors } from './networkInterceptor';
|
|
9
9
|
// ─── Utilities ────────────────────────────────────────
|
|
10
10
|
|
|
11
11
|
function isUrlBlacklisted(url, blacklist) {
|
|
@@ -34,8 +34,7 @@ export const createNetworkFeature = config => {
|
|
|
34
34
|
});
|
|
35
35
|
let initialized = false;
|
|
36
36
|
let unsubscribeLogs = null;
|
|
37
|
-
let
|
|
38
|
-
let stopAxiosFn = null;
|
|
37
|
+
let stopXhrFn = null;
|
|
39
38
|
const handleLog = entry => {
|
|
40
39
|
if (isUrlBlacklisted(entry.request.url, blacklist)) {
|
|
41
40
|
return;
|
|
@@ -54,10 +53,7 @@ export const createNetworkFeature = config => {
|
|
|
54
53
|
return;
|
|
55
54
|
}
|
|
56
55
|
unsubscribeLogs = networkChannel.subscribe(handleLog);
|
|
57
|
-
|
|
58
|
-
if (config?.axiosInstance) {
|
|
59
|
-
stopAxiosFn = startAxios(config.axiosInstance, emitNetworkLog);
|
|
60
|
-
}
|
|
56
|
+
stopXhrFn = startXMLHttpRequest(emitNetworkLog);
|
|
61
57
|
initialized = true;
|
|
62
58
|
},
|
|
63
59
|
getSnapshot: () => logStore.getData(),
|
|
@@ -71,10 +67,8 @@ export const createNetworkFeature = config => {
|
|
|
71
67
|
urlRewriter.set(null);
|
|
72
68
|
unsubscribeLogs?.();
|
|
73
69
|
unsubscribeLogs = null;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
stopAxiosFn?.();
|
|
77
|
-
stopAxiosFn = null;
|
|
70
|
+
stopXhrFn?.();
|
|
71
|
+
stopXhrFn = null;
|
|
78
72
|
logStore.clear();
|
|
79
73
|
initialized = false;
|
|
80
74
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NetworkLogTab","createEventChannel","createPersistedObservableStore","KEYS","urlRewriter","
|
|
1
|
+
{"version":3,"names":["NetworkLogTab","createEventChannel","createPersistedObservableStore","KEYS","urlRewriter","startXMLHttpRequest","resetInterceptors","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","createNetworkFeature","config","maxLogs","logStore","storageKey","networkLogs","maxPersist","initialized","unsubscribeLogs","stopXhrFn","handleLog","request","push","id","nextId","name","label","renderContent","setup","subscribe","getSnapshot","getData","clear","cleanup","set","listener","_resetNetworkForTesting"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { urlRewriter } from '../../utils/urlRewriterRegistry';
|
|
4
|
-
|
|
5
|
-
//
|
|
6
|
-
// Axios response data is captured directly through interceptor callbacks,
|
|
7
|
-
// avoiding the unreliable XHR response interception in React Native.
|
|
8
|
-
|
|
9
|
-
// ─── Minimal axios interface (no hard dependency) ──────
|
|
4
|
+
// Intercepts React Native's XMLHttpRequest transport layer.
|
|
5
|
+
// RN fetch and axios (default adapter) both go through XHR — one hook captures everything.
|
|
10
6
|
|
|
11
7
|
// ─── Shared helpers ────────────────────────────────────
|
|
12
8
|
|
|
@@ -21,236 +17,195 @@ function rewriteUrl(url) {
|
|
|
21
17
|
return url;
|
|
22
18
|
}
|
|
23
19
|
}
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
if (typeof headers.forEach === 'function') {
|
|
30
|
-
headers.forEach((value, key) => {
|
|
31
|
-
result[key] = value;
|
|
32
|
-
});
|
|
33
|
-
return result;
|
|
20
|
+
function parseRawHeaders(rawHeaders) {
|
|
21
|
+
if (!rawHeaders) {
|
|
22
|
+
return undefined;
|
|
34
23
|
}
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
const headers = {};
|
|
25
|
+
rawHeaders.trim().split(/[\r\n]+/).forEach(line => {
|
|
26
|
+
const separatorIndex = line.indexOf(':');
|
|
27
|
+
if (separatorIndex <= 0) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const key = line.slice(0, separatorIndex).trim();
|
|
31
|
+
const value = line.slice(separatorIndex + 1).trim();
|
|
32
|
+
if (key) {
|
|
33
|
+
headers[key] = value;
|
|
34
|
+
}
|
|
37
35
|
});
|
|
38
|
-
return
|
|
36
|
+
return Object.keys(headers).length > 0 ? headers : undefined;
|
|
39
37
|
}
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
url: typeof input === 'string' ? input : request?.url ?? String(input),
|
|
44
|
-
method: (init?.method || request?.method || 'GET').toUpperCase(),
|
|
45
|
-
headers: init?.headers ? headersToObject(init.headers) : request?.headers ? headersToObject(request.headers) : undefined,
|
|
46
|
-
body: init?.body
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
async function parseResponseBody(response) {
|
|
50
|
-
const raw = await response.clone().text();
|
|
51
|
-
if (!raw) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
38
|
+
function parseBodyText(raw) {
|
|
39
|
+
if (!raw) return undefined;
|
|
54
40
|
try {
|
|
55
41
|
return JSON.parse(raw);
|
|
56
42
|
} catch {
|
|
57
43
|
return raw;
|
|
58
44
|
}
|
|
59
45
|
}
|
|
60
|
-
function
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// AxiosHeaders instance
|
|
65
|
-
if (typeof headers.forEach === 'function') {
|
|
66
|
-
const result = {};
|
|
67
|
-
headers.forEach((value, key) => {
|
|
68
|
-
result[key] = value;
|
|
69
|
-
});
|
|
70
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
71
|
-
}
|
|
72
|
-
// Plain object
|
|
73
|
-
const result = {};
|
|
74
|
-
const obj = headers;
|
|
75
|
-
for (const key of Object.keys(obj)) {
|
|
76
|
-
const val = obj[key];
|
|
77
|
-
if (typeof val === 'string') {
|
|
78
|
-
result[key] = val;
|
|
79
|
-
}
|
|
46
|
+
function normalizeXhrResponseBody(xhr) {
|
|
47
|
+
const text = safeRead(() => xhr.responseText);
|
|
48
|
+
if (typeof text === 'string' && text) {
|
|
49
|
+
return parseBodyText(text);
|
|
80
50
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const base = config.baseURL ?? '';
|
|
85
|
-
const url = config.url ?? '';
|
|
86
|
-
if (!base || url.startsWith('http')) {
|
|
87
|
-
return url;
|
|
51
|
+
const response = safeRead(() => xhr.response);
|
|
52
|
+
if (response != null) {
|
|
53
|
+
return response;
|
|
88
54
|
}
|
|
89
|
-
return
|
|
55
|
+
return undefined;
|
|
90
56
|
}
|
|
91
57
|
|
|
92
|
-
// ───
|
|
58
|
+
// ─── XMLHttpRequest interceptor ───────────────────────
|
|
93
59
|
|
|
94
|
-
let
|
|
95
|
-
let
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
60
|
+
let originalXMLHttpRequest = null;
|
|
61
|
+
let originalXhrOpen = null;
|
|
62
|
+
let originalXhrSend = null;
|
|
63
|
+
let originalXhrSetRequestHeader = null;
|
|
64
|
+
let xhrRefCount = 0;
|
|
65
|
+
const pendingXhrRequests = new WeakMap();
|
|
66
|
+
function safeRead(read) {
|
|
67
|
+
try {
|
|
68
|
+
return read();
|
|
69
|
+
} catch {
|
|
70
|
+
return undefined;
|
|
101
71
|
}
|
|
102
72
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
73
|
+
function getGlobalXMLHttpRequest() {
|
|
74
|
+
return globalThis.XMLHttpRequest;
|
|
75
|
+
}
|
|
76
|
+
function getXhrResponseHeaders(xhr) {
|
|
77
|
+
const rawHeaders = safeRead(() => xhr.getAllResponseHeaders?.());
|
|
78
|
+
const parsedHeaders = parseRawHeaders(rawHeaders);
|
|
79
|
+
if (parsedHeaders) {
|
|
80
|
+
return parsedHeaders;
|
|
109
81
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
82
|
+
const headers = xhr.responseHeaders;
|
|
83
|
+
if (!headers) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return Object.keys(headers).length > 0 ? headers : undefined;
|
|
87
|
+
}
|
|
88
|
+
function stopXMLHttpRequest() {
|
|
89
|
+
xhrRefCount = Math.max(0, xhrRefCount - 1);
|
|
90
|
+
if (xhrRefCount > 0 || !originalXMLHttpRequest) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const CurrentXMLHttpRequest = getGlobalXMLHttpRequest();
|
|
94
|
+
if (CurrentXMLHttpRequest) {
|
|
95
|
+
if (originalXhrOpen) {
|
|
96
|
+
CurrentXMLHttpRequest.prototype.open = originalXhrOpen;
|
|
120
97
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const response = await originalFetch.call(globalThis, rewrittenInput, init);
|
|
124
|
-
const duration = Date.now() - startTime;
|
|
125
|
-
try {
|
|
126
|
-
const data = await parseResponseBody(response);
|
|
127
|
-
emit({
|
|
128
|
-
timestamp: startTime,
|
|
129
|
-
duration,
|
|
130
|
-
request,
|
|
131
|
-
response: {
|
|
132
|
-
status: response.status,
|
|
133
|
-
statusText: response.statusText,
|
|
134
|
-
data
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
} catch {
|
|
138
|
-
emit({
|
|
139
|
-
timestamp: startTime,
|
|
140
|
-
duration,
|
|
141
|
-
request,
|
|
142
|
-
response: {
|
|
143
|
-
status: response.status,
|
|
144
|
-
statusText: response.statusText
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
return response;
|
|
149
|
-
} catch (error) {
|
|
150
|
-
emit({
|
|
151
|
-
timestamp: startTime,
|
|
152
|
-
duration: Date.now() - startTime,
|
|
153
|
-
request,
|
|
154
|
-
error: error instanceof Error ? error.message : String(error)
|
|
155
|
-
});
|
|
156
|
-
throw error;
|
|
98
|
+
if (originalXhrSend) {
|
|
99
|
+
CurrentXMLHttpRequest.prototype.send = originalXhrSend;
|
|
157
100
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
101
|
+
if (originalXhrSetRequestHeader) {
|
|
102
|
+
CurrentXMLHttpRequest.prototype.setRequestHeader = originalXhrSetRequestHeader;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
originalXMLHttpRequest = null;
|
|
106
|
+
originalXhrOpen = null;
|
|
107
|
+
originalXhrSend = null;
|
|
108
|
+
originalXhrSetRequestHeader = null;
|
|
162
109
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
110
|
+
export function startXMLHttpRequest(emit) {
|
|
111
|
+
const CurrentXMLHttpRequest = getGlobalXMLHttpRequest();
|
|
112
|
+
if (!CurrentXMLHttpRequest) {
|
|
113
|
+
return () => {};
|
|
114
|
+
}
|
|
115
|
+
xhrRefCount += 1;
|
|
116
|
+
if (originalXMLHttpRequest) {
|
|
117
|
+
return () => {
|
|
118
|
+
stopXMLHttpRequest();
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
originalXMLHttpRequest = CurrentXMLHttpRequest;
|
|
122
|
+
originalXhrOpen = CurrentXMLHttpRequest.prototype.open;
|
|
123
|
+
originalXhrSend = CurrentXMLHttpRequest.prototype.send;
|
|
124
|
+
originalXhrSetRequestHeader = CurrentXMLHttpRequest.prototype.setRequestHeader;
|
|
125
|
+
CurrentXMLHttpRequest.prototype.open = function interceptedOpen(method, url, ...args) {
|
|
126
|
+
const rewrittenUrl = urlRewriter.get() ? rewriteUrl(url) : url;
|
|
127
|
+
pendingXhrRequests.set(this, {
|
|
128
|
+
method: (method || 'GET').toUpperCase(),
|
|
129
|
+
url: rewrittenUrl,
|
|
130
|
+
headers: {},
|
|
131
|
+
timestamp: Date.now()
|
|
176
132
|
});
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
config.baseURL = undefined;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
133
|
+
return originalXhrOpen.call(this, method, rewrittenUrl, ...args);
|
|
134
|
+
};
|
|
135
|
+
CurrentXMLHttpRequest.prototype.setRequestHeader = function interceptedSetRequestHeader(header, value) {
|
|
136
|
+
const state = pendingXhrRequests.get(this);
|
|
137
|
+
if (state) {
|
|
138
|
+
state.headers[header] = value;
|
|
186
139
|
}
|
|
187
|
-
return
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
response: {
|
|
205
|
-
status: response.status,
|
|
206
|
-
statusText: response.statusText,
|
|
207
|
-
headers: normalizeAxiosHeaders(response.headers),
|
|
208
|
-
data: response.data,
|
|
209
|
-
success: response.status >= 200 && response.status < 300
|
|
140
|
+
return originalXhrSetRequestHeader.call(this, header, value);
|
|
141
|
+
};
|
|
142
|
+
CurrentXMLHttpRequest.prototype.send = function interceptedSend(body) {
|
|
143
|
+
const that = this;
|
|
144
|
+
const state = pendingXhrRequests.get(that) ?? {
|
|
145
|
+
method: 'GET',
|
|
146
|
+
url: '',
|
|
147
|
+
headers: {},
|
|
148
|
+
timestamp: Date.now()
|
|
149
|
+
};
|
|
150
|
+
state.body = body;
|
|
151
|
+
state.timestamp = Date.now();
|
|
152
|
+
pendingXhrRequests.set(that, state);
|
|
153
|
+
const complete = () => {
|
|
154
|
+
const currentState = pendingXhrRequests.get(that);
|
|
155
|
+
if (!currentState || currentState.completed) {
|
|
156
|
+
return;
|
|
210
157
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
},
|
|
214
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
215
|
-
error => {
|
|
216
|
-
const config = error.config;
|
|
217
|
-
const pending = config ? pendingAxiosRequests.get(config) : undefined;
|
|
218
|
-
const startTime = pending?.timestamp ?? Date.now();
|
|
219
|
-
if (config) {
|
|
158
|
+
currentState.completed = true;
|
|
159
|
+
const headers = getXhrResponseHeaders(that);
|
|
220
160
|
emit({
|
|
221
|
-
timestamp:
|
|
222
|
-
duration: Date.now() -
|
|
161
|
+
timestamp: currentState.timestamp,
|
|
162
|
+
duration: Date.now() - currentState.timestamp,
|
|
223
163
|
request: {
|
|
224
|
-
url:
|
|
225
|
-
method:
|
|
226
|
-
headers:
|
|
227
|
-
body:
|
|
164
|
+
url: currentState.url,
|
|
165
|
+
method: currentState.method,
|
|
166
|
+
headers: Object.keys(currentState.headers).length > 0 ? currentState.headers : undefined,
|
|
167
|
+
body: currentState.body
|
|
168
|
+
},
|
|
169
|
+
response: {
|
|
170
|
+
status: that.status,
|
|
171
|
+
statusText: that.statusText,
|
|
172
|
+
headers,
|
|
173
|
+
data: normalizeXhrResponseBody(that),
|
|
174
|
+
success: that.status >= 200 && that.status < 300
|
|
228
175
|
},
|
|
229
|
-
|
|
230
|
-
status: error.response.status,
|
|
231
|
-
statusText: error.response.statusText,
|
|
232
|
-
headers: normalizeAxiosHeaders(error.response.headers),
|
|
233
|
-
data: error.response.data,
|
|
234
|
-
success: false
|
|
235
|
-
} : undefined,
|
|
236
|
-
error: error.message ?? String(error)
|
|
176
|
+
error: currentState.error
|
|
237
177
|
});
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
|
|
178
|
+
};
|
|
179
|
+
const markError = message => {
|
|
180
|
+
const currentState = pendingXhrRequests.get(that);
|
|
181
|
+
if (currentState) {
|
|
182
|
+
currentState.error = message;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
that.addEventListener('error', () => {
|
|
186
|
+
markError('Network Error');
|
|
187
|
+
});
|
|
188
|
+
that.addEventListener('timeout', () => {
|
|
189
|
+
markError('Timeout');
|
|
190
|
+
});
|
|
191
|
+
that.addEventListener('abort', () => {
|
|
192
|
+
markError('Aborted');
|
|
193
|
+
});
|
|
194
|
+
that.addEventListener('loadend', complete);
|
|
195
|
+
return originalXhrSend.call(that, body);
|
|
196
|
+
};
|
|
241
197
|
return () => {
|
|
242
|
-
|
|
243
|
-
axiosInstance.interceptors.response.eject(responseInterceptorId);
|
|
198
|
+
stopXMLHttpRequest();
|
|
244
199
|
};
|
|
245
200
|
}
|
|
246
201
|
|
|
247
202
|
// ─── Cleanup ───────────────────────────────────────────
|
|
248
203
|
|
|
249
204
|
export function resetInterceptors() {
|
|
250
|
-
if (
|
|
251
|
-
|
|
252
|
-
|
|
205
|
+
if (originalXMLHttpRequest) {
|
|
206
|
+
xhrRefCount = 1;
|
|
207
|
+
stopXMLHttpRequest();
|
|
253
208
|
}
|
|
254
|
-
|
|
209
|
+
xhrRefCount = 0;
|
|
255
210
|
}
|
|
256
211
|
//# sourceMappingURL=networkInterceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["urlRewriter","rewriteUrl","url","rewriter","get","
|
|
1
|
+
{"version":3,"names":["urlRewriter","rewriteUrl","url","rewriter","get","parseRawHeaders","rawHeaders","undefined","headers","trim","split","forEach","line","separatorIndex","indexOf","key","slice","value","Object","keys","length","parseBodyText","raw","JSON","parse","normalizeXhrResponseBody","xhr","text","safeRead","responseText","response","originalXMLHttpRequest","originalXhrOpen","originalXhrSend","originalXhrSetRequestHeader","xhrRefCount","pendingXhrRequests","WeakMap","read","getGlobalXMLHttpRequest","globalThis","XMLHttpRequest","getXhrResponseHeaders","getAllResponseHeaders","parsedHeaders","responseHeaders","stopXMLHttpRequest","Math","max","CurrentXMLHttpRequest","prototype","open","send","setRequestHeader","startXMLHttpRequest","emit","interceptedOpen","method","args","rewrittenUrl","set","toUpperCase","timestamp","Date","now","call","interceptedSetRequestHeader","header","state","interceptedSend","body","that","complete","currentState","completed","duration","request","status","statusText","data","success","error","markError","message","addEventListener","resetInterceptors"],"sourceRoot":"../../../../src","sources":["features/network/networkInterceptor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
export type { AxiosInstanceLike } from './networkInterceptor';
|
|
2
1
|
import type { DebugFeature, NetworkLogEntry } from '../../types';
|
|
3
|
-
import type { AxiosInstanceLike } from './networkInterceptor';
|
|
4
2
|
export interface NetworkFeatureConfig {
|
|
5
3
|
/** Maximum number of network logs to keep (default: 200) */
|
|
6
4
|
maxLogs?: number;
|
|
7
5
|
/** URLs to filter out from logging */
|
|
8
6
|
blacklist?: Array<string | RegExp>;
|
|
9
|
-
/** Axios instance to intercept. Pass your axios.create() instance to capture axios requests. */
|
|
10
|
-
axiosInstance?: AxiosInstanceLike;
|
|
11
7
|
}
|
|
12
8
|
export declare const createNetworkFeature: (config?: NetworkFeatureConfig) => DebugFeature<NetworkLogEntry[]>;
|
|
13
9
|
/** Reset module-level state for testing */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/index.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsCjE,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,oBAAoB,KAAG,YAAY,CAAC,eAAe,EAAE,CAgDlG,CAAC;AAEF,2CAA2C;AAC3C,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import type { NetworkLogEntry } from '../../types';
|
|
2
2
|
type NetworkLogPayload = Omit<NetworkLogEntry, 'id'>;
|
|
3
|
-
export
|
|
4
|
-
interceptors: {
|
|
5
|
-
request: {
|
|
6
|
-
use(onFulfilled?: (config: any) => any, onRejected?: (error: any) => any): number;
|
|
7
|
-
eject(id: number): void;
|
|
8
|
-
};
|
|
9
|
-
response: {
|
|
10
|
-
use(onFulfilled?: (response: any) => any, onRejected?: (error: any) => any): number;
|
|
11
|
-
eject(id: number): void;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare function startFetch(emit: (entry: NetworkLogPayload) => void): () => void;
|
|
16
|
-
export declare function startAxios(axiosInstance: AxiosInstanceLike, emit: (entry: NetworkLogPayload) => void): () => void;
|
|
3
|
+
export declare function startXMLHttpRequest(emit: (entry: NetworkLogPayload) => void): () => void;
|
|
17
4
|
export declare function resetInterceptors(): void;
|
|
18
5
|
export {};
|
|
19
6
|
//# sourceMappingURL=networkInterceptor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkInterceptor.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/networkInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"networkInterceptor.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/networkInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AA2JrD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GACvC,MAAM,IAAI,CAmHZ;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
|
|
@@ -5,7 +5,7 @@ export type { DebugViewProps } from './ui/DebugView';
|
|
|
5
5
|
export { initializeDebugToolkit } from './core/initialize';
|
|
6
6
|
export type { InitializeOptions, FeatureConfigs } from './core/initialize';
|
|
7
7
|
export { createNetworkFeature } from './features/network';
|
|
8
|
-
export type { NetworkFeatureConfig
|
|
8
|
+
export type { NetworkFeatureConfig } from './features/network';
|
|
9
9
|
export { createConsoleLogFeature } from './features/console';
|
|
10
10
|
export type { ConsoleFeatureConfig } from './features/console';
|
|
11
11
|
export { createZustandLogFeature, zustandLogMiddleware, addZustandLog } from './features/zustand';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGlF,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|