@zimic/interceptor 1.1.2-canary.1 → 1.1.2-canary.3
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/dist/{chunk-CGILA3WO.mjs → chunk-BJTO5JO5.mjs} +3 -5
- package/dist/{chunk-CGILA3WO.mjs.map → chunk-BJTO5JO5.mjs.map} +1 -1
- package/dist/{chunk-WCQVDF3K.js → chunk-DGUM43GV.js} +2 -5
- package/dist/{chunk-WCQVDF3K.js.map → chunk-DGUM43GV.js.map} +1 -1
- package/dist/{chunk-RDMXECNU.mjs → chunk-IZWPQ4OM.mjs} +27 -161
- package/dist/chunk-IZWPQ4OM.mjs.map +1 -0
- package/dist/{chunk-QDNKVSEG.js → chunk-XX2J7SRC.js} +27 -161
- package/dist/chunk-XX2J7SRC.js.map +1 -0
- package/dist/cli.js +20 -31
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +3 -14
- package/dist/cli.mjs.map +1 -1
- package/dist/http.js +68 -252
- package/dist/http.js.map +1 -1
- package/dist/http.mjs +69 -253
- package/dist/http.mjs.map +1 -1
- package/dist/scripts/postinstall.js +2 -5
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/scripts/postinstall.mjs +1 -4
- package/dist/scripts/postinstall.mjs.map +1 -1
- package/dist/server.js +7 -7
- package/dist/server.mjs +2 -2
- package/package.json +4 -4
- package/src/http/interceptorWorker/HttpInterceptorWorker.ts +10 -2
- package/dist/chunk-QDNKVSEG.js.map +0 -1
- package/dist/chunk-RDMXECNU.mjs.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __name } from './chunk-CGILA3WO.mjs';
|
|
2
1
|
import { HTTP_METHODS, HttpHeaders, HttpSearchParams, HttpFormData } from '@zimic/http';
|
|
3
2
|
import { normalizeNodeRequest, sendNodeResponse } from '@whatwg-node/server';
|
|
4
3
|
import { createServer } from 'http';
|
|
@@ -13,9 +12,6 @@ import * as z from 'zod';
|
|
|
13
12
|
|
|
14
13
|
// src/server/errors/RunningInterceptorServerError.ts
|
|
15
14
|
var RunningInterceptorServerError = class extends Error {
|
|
16
|
-
static {
|
|
17
|
-
__name(this, "RunningInterceptorServerError");
|
|
18
|
-
}
|
|
19
15
|
constructor(additionalMessage) {
|
|
20
16
|
super(`The interceptor server is running.${additionalMessage}`);
|
|
21
17
|
this.name = "RunningInterceptorServerError";
|
|
@@ -25,9 +21,6 @@ var RunningInterceptorServerError_default = RunningInterceptorServerError;
|
|
|
25
21
|
|
|
26
22
|
// src/server/errors/NotRunningInterceptorServerError.ts
|
|
27
23
|
var NotRunningInterceptorServerError = class extends Error {
|
|
28
|
-
static {
|
|
29
|
-
__name(this, "NotRunningInterceptorServerError");
|
|
30
|
-
}
|
|
31
24
|
constructor() {
|
|
32
25
|
super("The interceptor server is not running. Did you forget to start it?");
|
|
33
26
|
this.name = "NotRunningInterceptorServerError";
|
|
@@ -37,23 +30,14 @@ var NotRunningInterceptorServerError_default = NotRunningInterceptorServerError;
|
|
|
37
30
|
|
|
38
31
|
// src/utils/http.ts
|
|
39
32
|
var HttpServerTimeoutError = class extends Error {
|
|
40
|
-
static {
|
|
41
|
-
__name(this, "HttpServerTimeoutError");
|
|
42
|
-
}
|
|
43
33
|
};
|
|
44
34
|
var HttpServerStartTimeoutError = class extends HttpServerTimeoutError {
|
|
45
|
-
static {
|
|
46
|
-
__name(this, "HttpServerStartTimeoutError");
|
|
47
|
-
}
|
|
48
35
|
constructor(reachedTimeout) {
|
|
49
36
|
super(`HTTP server start timed out after ${reachedTimeout}ms.`);
|
|
50
37
|
this.name = "HttpServerStartTimeout";
|
|
51
38
|
}
|
|
52
39
|
};
|
|
53
40
|
var HttpServerStopTimeoutError = class extends HttpServerTimeoutError {
|
|
54
|
-
static {
|
|
55
|
-
__name(this, "HttpServerStopTimeoutError");
|
|
56
|
-
}
|
|
57
41
|
constructor(reachedTimeout) {
|
|
58
42
|
super(`HTTP server stop timed out after ${reachedTimeout}ms.`);
|
|
59
43
|
this.name = "HttpServerStopTimeout";
|
|
@@ -67,7 +51,6 @@ async function startHttpServer(server, options = {}) {
|
|
|
67
51
|
server.off("listening", handleStartSuccess);
|
|
68
52
|
reject(error);
|
|
69
53
|
}
|
|
70
|
-
__name(handleStartError, "handleStartError");
|
|
71
54
|
const startTimeout = setTimeout(() => {
|
|
72
55
|
const timeoutError = new HttpServerStartTimeoutError(timeoutDuration);
|
|
73
56
|
handleStartError(timeoutError);
|
|
@@ -77,12 +60,10 @@ async function startHttpServer(server, options = {}) {
|
|
|
77
60
|
clearTimeout(startTimeout);
|
|
78
61
|
resolve();
|
|
79
62
|
}
|
|
80
|
-
__name(handleStartSuccess, "handleStartSuccess");
|
|
81
63
|
server.once("error", handleStartError);
|
|
82
64
|
server.listen(port, hostname, handleStartSuccess);
|
|
83
65
|
});
|
|
84
66
|
}
|
|
85
|
-
__name(startHttpServer, "startHttpServer");
|
|
86
67
|
async function stopHttpServer(server, options = {}) {
|
|
87
68
|
const { timeout: timeoutDuration = DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT } = options;
|
|
88
69
|
if (!server.listening) {
|
|
@@ -104,7 +85,6 @@ async function stopHttpServer(server, options = {}) {
|
|
|
104
85
|
server.closeAllConnections();
|
|
105
86
|
});
|
|
106
87
|
}
|
|
107
|
-
__name(stopHttpServer, "stopHttpServer");
|
|
108
88
|
function getHttpServerPort(server) {
|
|
109
89
|
const address = server.address();
|
|
110
90
|
if (typeof address === "string") {
|
|
@@ -113,7 +93,6 @@ function getHttpServerPort(server) {
|
|
|
113
93
|
return address?.port;
|
|
114
94
|
}
|
|
115
95
|
}
|
|
116
|
-
__name(getHttpServerPort, "getHttpServerPort");
|
|
117
96
|
var HTTP_METHODS_WITH_RESPONSE_BODY = /* @__PURE__ */ new Set([
|
|
118
97
|
"GET",
|
|
119
98
|
"POST",
|
|
@@ -125,7 +104,6 @@ var HTTP_METHODS_WITH_RESPONSE_BODY = /* @__PURE__ */ new Set([
|
|
|
125
104
|
function methodCanHaveResponseBody(method) {
|
|
126
105
|
return HTTP_METHODS_WITH_RESPONSE_BODY.has(method);
|
|
127
106
|
}
|
|
128
|
-
__name(methodCanHaveResponseBody, "methodCanHaveResponseBody");
|
|
129
107
|
|
|
130
108
|
// src/webSocket/errors/UnauthorizedWebSocketConnectionError.ts
|
|
131
109
|
var UnauthorizedWebSocketConnectionError = class extends Error {
|
|
@@ -134,49 +112,31 @@ var UnauthorizedWebSocketConnectionError = class extends Error {
|
|
|
134
112
|
this.event = event;
|
|
135
113
|
this.name = "UnauthorizedWebSocketConnectionError";
|
|
136
114
|
}
|
|
137
|
-
static {
|
|
138
|
-
__name(this, "UnauthorizedWebSocketConnectionError");
|
|
139
|
-
}
|
|
140
115
|
};
|
|
141
116
|
var UnauthorizedWebSocketConnectionError_default = UnauthorizedWebSocketConnectionError;
|
|
142
117
|
|
|
143
118
|
// src/utils/webSocket.ts
|
|
144
119
|
var WebSocketTimeoutError = class extends Error {
|
|
145
|
-
static {
|
|
146
|
-
__name(this, "WebSocketTimeoutError");
|
|
147
|
-
}
|
|
148
120
|
};
|
|
149
121
|
var WebSocketOpenTimeoutError = class extends WebSocketTimeoutError {
|
|
150
|
-
static {
|
|
151
|
-
__name(this, "WebSocketOpenTimeoutError");
|
|
152
|
-
}
|
|
153
122
|
constructor(reachedTimeout) {
|
|
154
123
|
super(`Web socket open timed out after ${reachedTimeout}ms.`);
|
|
155
124
|
this.name = "WebSocketOpenTimeout";
|
|
156
125
|
}
|
|
157
126
|
};
|
|
158
127
|
var WebSocketMessageTimeoutError = class extends WebSocketTimeoutError {
|
|
159
|
-
static {
|
|
160
|
-
__name(this, "WebSocketMessageTimeoutError");
|
|
161
|
-
}
|
|
162
128
|
constructor(reachedTimeout) {
|
|
163
129
|
super(`Web socket message timed out after ${reachedTimeout}ms.`);
|
|
164
130
|
this.name = "WebSocketMessageTimeout";
|
|
165
131
|
}
|
|
166
132
|
};
|
|
167
133
|
var WebSocketMessageAbortError = class extends WebSocketTimeoutError {
|
|
168
|
-
static {
|
|
169
|
-
__name(this, "WebSocketMessageAbortError");
|
|
170
|
-
}
|
|
171
134
|
constructor() {
|
|
172
135
|
super("Web socket message was aborted.");
|
|
173
136
|
this.name = "WebSocketMessageAbortError";
|
|
174
137
|
}
|
|
175
138
|
};
|
|
176
139
|
var WebSocketCloseTimeoutError = class extends WebSocketTimeoutError {
|
|
177
|
-
static {
|
|
178
|
-
__name(this, "WebSocketCloseTimeoutError");
|
|
179
|
-
}
|
|
180
140
|
constructor(reachedTimeout) {
|
|
181
141
|
super(`Web socket close timed out after ${reachedTimeout}ms.`);
|
|
182
142
|
this.name = "WebSocketCloseTimeout";
|
|
@@ -197,12 +157,10 @@ async function waitForOpenClientSocket(socket, options = {}) {
|
|
|
197
157
|
socket.removeEventListener("error", handleOpenError);
|
|
198
158
|
socket.removeEventListener("close", handleClose);
|
|
199
159
|
}
|
|
200
|
-
__name(removeAllSocketListeners, "removeAllSocketListeners");
|
|
201
160
|
function handleOpenError(error) {
|
|
202
161
|
removeAllSocketListeners();
|
|
203
162
|
reject(error);
|
|
204
163
|
}
|
|
205
|
-
__name(handleOpenError, "handleOpenError");
|
|
206
164
|
function handleClose(event) {
|
|
207
165
|
const isUnauthorized = event.code === 1008;
|
|
208
166
|
if (isUnauthorized) {
|
|
@@ -212,7 +170,6 @@ async function waitForOpenClientSocket(socket, options = {}) {
|
|
|
212
170
|
handleOpenError(event);
|
|
213
171
|
}
|
|
214
172
|
}
|
|
215
|
-
__name(handleClose, "handleClose");
|
|
216
173
|
const openTimeout = setTimeout(() => {
|
|
217
174
|
const timeoutError = new WebSocketOpenTimeoutError(timeoutDuration);
|
|
218
175
|
handleOpenError(timeoutError);
|
|
@@ -222,14 +179,12 @@ async function waitForOpenClientSocket(socket, options = {}) {
|
|
|
222
179
|
clearTimeout(openTimeout);
|
|
223
180
|
resolve();
|
|
224
181
|
}
|
|
225
|
-
__name(handleOpenSuccess, "handleOpenSuccess");
|
|
226
182
|
function handleSocketMessage(message) {
|
|
227
183
|
const hasValidAuth = message.data === "socket:auth:valid";
|
|
228
184
|
if (hasValidAuth) {
|
|
229
185
|
handleOpenSuccess();
|
|
230
186
|
}
|
|
231
187
|
}
|
|
232
|
-
__name(handleSocketMessage, "handleSocketMessage");
|
|
233
188
|
if (waitForAuthentication) {
|
|
234
189
|
socket.addEventListener("message", handleSocketMessage);
|
|
235
190
|
} else {
|
|
@@ -239,7 +194,6 @@ async function waitForOpenClientSocket(socket, options = {}) {
|
|
|
239
194
|
socket.addEventListener("close", handleClose);
|
|
240
195
|
});
|
|
241
196
|
}
|
|
242
|
-
__name(waitForOpenClientSocket, "waitForOpenClientSocket");
|
|
243
197
|
async function closeClientSocket(socket, options = {}) {
|
|
244
198
|
const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
|
|
245
199
|
const isAlreadyClosed = socket.readyState === socket.CLOSED;
|
|
@@ -251,12 +205,10 @@ async function closeClientSocket(socket, options = {}) {
|
|
|
251
205
|
socket.removeEventListener("error", handleError);
|
|
252
206
|
socket.removeEventListener("close", handleClose);
|
|
253
207
|
}
|
|
254
|
-
__name(removeAllSocketListeners, "removeAllSocketListeners");
|
|
255
208
|
function handleError(error) {
|
|
256
209
|
removeAllSocketListeners();
|
|
257
210
|
reject(error);
|
|
258
211
|
}
|
|
259
|
-
__name(handleError, "handleError");
|
|
260
212
|
const closeTimeout = setTimeout(() => {
|
|
261
213
|
const timeoutError = new WebSocketCloseTimeoutError(timeoutDuration);
|
|
262
214
|
handleError(timeoutError);
|
|
@@ -266,13 +218,11 @@ async function closeClientSocket(socket, options = {}) {
|
|
|
266
218
|
clearTimeout(closeTimeout);
|
|
267
219
|
resolve();
|
|
268
220
|
}
|
|
269
|
-
__name(handleClose, "handleClose");
|
|
270
221
|
socket.addEventListener("error", handleError);
|
|
271
222
|
socket.addEventListener("close", handleClose);
|
|
272
223
|
socket.close();
|
|
273
224
|
});
|
|
274
225
|
}
|
|
275
|
-
__name(closeClientSocket, "closeClientSocket");
|
|
276
226
|
async function closeServerSocket(socket, options = {}) {
|
|
277
227
|
const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
|
|
278
228
|
await new Promise((resolve, reject) => {
|
|
@@ -293,7 +243,6 @@ async function closeServerSocket(socket, options = {}) {
|
|
|
293
243
|
});
|
|
294
244
|
});
|
|
295
245
|
}
|
|
296
|
-
__name(closeServerSocket, "closeServerSocket");
|
|
297
246
|
|
|
298
247
|
// src/server/constants.ts
|
|
299
248
|
var ALLOWED_ACCESS_CONTROL_HTTP_METHODS = HTTP_METHODS.join(",");
|
|
@@ -308,41 +257,25 @@ var DEFAULT_PREFLIGHT_STATUS_CODE = 204;
|
|
|
308
257
|
var DEFAULT_HOSTNAME = "localhost";
|
|
309
258
|
var DEFAULT_LOG_UNHANDLED_REQUESTS = true;
|
|
310
259
|
|
|
311
|
-
// ../zimic-utils/dist/chunk-
|
|
312
|
-
var __defProp = Object.defineProperty;
|
|
313
|
-
var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name", { value, configurable: true }), "__name");
|
|
314
|
-
|
|
315
|
-
// ../zimic-utils/dist/chunk-FPJJAH7P.mjs
|
|
260
|
+
// ../zimic-utils/dist/chunk-46M3OXFU.mjs
|
|
316
261
|
function getExtraPatternsToEscape() {
|
|
317
262
|
return /([.(){}+$])/g;
|
|
318
263
|
}
|
|
319
|
-
__name(getExtraPatternsToEscape, "getExtraPatternsToEscape");
|
|
320
|
-
__name2(getExtraPatternsToEscape, "getExtraPatternsToEscape");
|
|
321
264
|
function getURIEncodedBackSlashPattern() {
|
|
322
265
|
return /%5C/g;
|
|
323
266
|
}
|
|
324
|
-
__name(getURIEncodedBackSlashPattern, "getURIEncodedBackSlashPattern");
|
|
325
|
-
__name2(getURIEncodedBackSlashPattern, "getURIEncodedBackSlashPattern");
|
|
326
267
|
function getPathParamPattern() {
|
|
327
268
|
return /(?<escape>\\)?:(?<identifier>[$_\p{ID_Start}][$\p{ID_Continue}]+)/gu;
|
|
328
269
|
}
|
|
329
|
-
__name(getPathParamPattern, "getPathParamPattern");
|
|
330
|
-
__name2(getPathParamPattern, "getPathParamPattern");
|
|
331
270
|
function getRepeatingPathParamPattern() {
|
|
332
271
|
return /(?<escape>\\)?:(?<identifier>[$_\p{ID_Start}][$\p{ID_Continue}]+)\\+/gu;
|
|
333
272
|
}
|
|
334
|
-
__name(getRepeatingPathParamPattern, "getRepeatingPathParamPattern");
|
|
335
|
-
__name2(getRepeatingPathParamPattern, "getRepeatingPathParamPattern");
|
|
336
273
|
function getOptionalPathParamPattern() {
|
|
337
274
|
return /(?<leadingSlash>\/)?(?<escape>\\)?:(?<identifier>[$_\p{ID_Start}][$\p{ID_Continue}]+)\?(?<trailingSlash>\/)?/gu;
|
|
338
275
|
}
|
|
339
|
-
__name(getOptionalPathParamPattern, "getOptionalPathParamPattern");
|
|
340
|
-
__name2(getOptionalPathParamPattern, "getOptionalPathParamPattern");
|
|
341
276
|
function getOptionalRepeatingPathParamPattern() {
|
|
342
277
|
return /(?<leadingSlash>\/)?(?<escape>\\)?:(?<identifier>[$_\p{ID_Start}][$\p{ID_Continue}]+)\*(?<trailingSlash>\/)?/gu;
|
|
343
278
|
}
|
|
344
|
-
__name(getOptionalRepeatingPathParamPattern, "getOptionalRepeatingPathParamPattern");
|
|
345
|
-
__name2(getOptionalRepeatingPathParamPattern, "getOptionalRepeatingPathParamPattern");
|
|
346
279
|
function createParametrizedPathPattern(path2) {
|
|
347
280
|
const replacedURL = encodeURI(path2).replace(/^\/+/g, "").replace(/\/+$/g, "").replace(getExtraPatternsToEscape(), "\\$1").replace(getURIEncodedBackSlashPattern(), "\\").replace(
|
|
348
281
|
getOptionalRepeatingPathParamPattern(),
|
|
@@ -391,8 +324,6 @@ function createParametrizedPathPattern(path2) {
|
|
|
391
324
|
});
|
|
392
325
|
return new RegExp(`^/?${replacedURL}/?$`);
|
|
393
326
|
}
|
|
394
|
-
__name(createParametrizedPathPattern, "createParametrizedPathPattern");
|
|
395
|
-
__name2(createParametrizedPathPattern, "createParametrizedPathPattern");
|
|
396
327
|
var createParametrizedPathPattern_default = createParametrizedPathPattern;
|
|
397
328
|
|
|
398
329
|
// ../zimic-utils/dist/url/excludeURLParams.mjs
|
|
@@ -403,16 +334,12 @@ function excludeURLParams(url) {
|
|
|
403
334
|
url.password = "";
|
|
404
335
|
return url;
|
|
405
336
|
}
|
|
406
|
-
__name(excludeURLParams, "excludeURLParams");
|
|
407
|
-
__name2(excludeURLParams, "excludeURLParams");
|
|
408
337
|
var excludeURLParams_default = excludeURLParams;
|
|
409
338
|
|
|
410
|
-
// ../zimic-utils/dist/chunk-
|
|
339
|
+
// ../zimic-utils/dist/chunk-5UH44FTS.mjs
|
|
411
340
|
function isDefined(value) {
|
|
412
341
|
return value !== void 0 && value !== null;
|
|
413
342
|
}
|
|
414
|
-
__name(isDefined, "isDefined");
|
|
415
|
-
__name2(isDefined, "isDefined");
|
|
416
343
|
var isDefined_default = isDefined;
|
|
417
344
|
|
|
418
345
|
// src/utils/arrays.ts
|
|
@@ -422,39 +349,28 @@ function removeArrayIndex(array, index) {
|
|
|
422
349
|
}
|
|
423
350
|
return array;
|
|
424
351
|
}
|
|
425
|
-
__name(removeArrayIndex, "removeArrayIndex");
|
|
426
352
|
function removeArrayElement(array, element) {
|
|
427
353
|
const index = array.indexOf(element);
|
|
428
354
|
return removeArrayIndex(array, index);
|
|
429
355
|
}
|
|
430
|
-
__name(removeArrayElement, "removeArrayElement");
|
|
431
356
|
|
|
432
357
|
// src/utils/environment.ts
|
|
433
358
|
function isClientSide() {
|
|
434
359
|
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
435
360
|
}
|
|
436
|
-
__name(isClientSide, "isClientSide");
|
|
437
361
|
|
|
438
362
|
// ../zimic-utils/dist/import/createCachedDynamicImport.mjs
|
|
439
363
|
function createCachedDynamicImport(importModuleDynamically) {
|
|
440
364
|
let cachedImportResult;
|
|
441
|
-
return
|
|
365
|
+
return async function importModuleDynamicallyWithCache() {
|
|
442
366
|
cachedImportResult ??= await importModuleDynamically();
|
|
443
367
|
return cachedImportResult;
|
|
444
|
-
}
|
|
368
|
+
};
|
|
445
369
|
}
|
|
446
|
-
__name(createCachedDynamicImport, "createCachedDynamicImport");
|
|
447
|
-
__name2(createCachedDynamicImport, "createCachedDynamicImport");
|
|
448
370
|
var createCachedDynamicImport_default = createCachedDynamicImport;
|
|
449
371
|
|
|
450
372
|
// ../zimic-utils/dist/logging/Logger.mjs
|
|
451
373
|
var Logger = class _Logger {
|
|
452
|
-
static {
|
|
453
|
-
__name(this, "_Logger");
|
|
454
|
-
}
|
|
455
|
-
static {
|
|
456
|
-
__name2(this, "Logger");
|
|
457
|
-
}
|
|
458
374
|
prefix;
|
|
459
375
|
raw;
|
|
460
376
|
constructor(options = {}) {
|
|
@@ -546,7 +462,6 @@ async function pathExists(path2) {
|
|
|
546
462
|
return false;
|
|
547
463
|
}
|
|
548
464
|
}
|
|
549
|
-
__name(pathExists, "pathExists");
|
|
550
465
|
|
|
551
466
|
// src/utils/logging.ts
|
|
552
467
|
var logger = new Logger_default({
|
|
@@ -569,7 +484,6 @@ async function formatValueToLog(value, options = {}) {
|
|
|
569
484
|
sorted: true
|
|
570
485
|
});
|
|
571
486
|
}
|
|
572
|
-
__name(formatValueToLog, "formatValueToLog");
|
|
573
487
|
|
|
574
488
|
// src/http/requestHandler/types/requests.ts
|
|
575
489
|
var HTTP_INTERCEPTOR_REQUEST_HIDDEN_PROPERTIES = Object.freeze(
|
|
@@ -603,9 +517,6 @@ var DEFAULT_UNHANDLED_REQUEST_STRATEGY = Object.freeze({
|
|
|
603
517
|
|
|
604
518
|
// src/http/interceptorWorker/errors/InvalidFormDataError.ts
|
|
605
519
|
var InvalidFormDataError = class extends SyntaxError {
|
|
606
|
-
static {
|
|
607
|
-
__name(this, "InvalidFormDataError");
|
|
608
|
-
}
|
|
609
520
|
constructor(value) {
|
|
610
521
|
super(`Failed to parse value as form data: ${value}`);
|
|
611
522
|
this.name = "InvalidFormDataError";
|
|
@@ -615,9 +526,6 @@ var InvalidFormDataError_default = InvalidFormDataError;
|
|
|
615
526
|
|
|
616
527
|
// src/http/interceptorWorker/errors/InvalidJSONError.ts
|
|
617
528
|
var InvalidJSONError = class extends SyntaxError {
|
|
618
|
-
static {
|
|
619
|
-
__name(this, "InvalidJSONError");
|
|
620
|
-
}
|
|
621
529
|
constructor(value) {
|
|
622
530
|
super(`Failed to parse value as JSON: ${value}`);
|
|
623
531
|
this.name = "InvalidJSONError";
|
|
@@ -627,9 +535,6 @@ var InvalidJSONError_default = InvalidJSONError;
|
|
|
627
535
|
|
|
628
536
|
// src/http/interceptorWorker/HttpInterceptorWorker.ts
|
|
629
537
|
var HttpInterceptorWorker = class _HttpInterceptorWorker {
|
|
630
|
-
static {
|
|
631
|
-
__name(this, "HttpInterceptorWorker");
|
|
632
|
-
}
|
|
633
538
|
platform = null;
|
|
634
539
|
isRunning = false;
|
|
635
540
|
startingPromise;
|
|
@@ -842,8 +747,13 @@ var HttpInterceptorWorker = class _HttpInterceptorWorker {
|
|
|
842
747
|
return HTTP_INTERCEPTOR_RESPONSE_HIDDEN_PROPERTIES.has(property);
|
|
843
748
|
}
|
|
844
749
|
static parseRawPathParams(request, options) {
|
|
845
|
-
const
|
|
846
|
-
|
|
750
|
+
const requestPath = request.url.replace(options?.baseURL ?? "", "");
|
|
751
|
+
const paramsMatch = options?.pathPattern.exec(requestPath);
|
|
752
|
+
const params = {};
|
|
753
|
+
for (const [paramName, paramValue] of Object.entries(paramsMatch?.groups ?? {})) {
|
|
754
|
+
params[paramName] = typeof paramValue === "string" ? decodeURIComponent(paramValue) : void 0;
|
|
755
|
+
}
|
|
756
|
+
return params;
|
|
847
757
|
}
|
|
848
758
|
static async parseRawBody(resource) {
|
|
849
759
|
const contentType = resource.headers.get("content-type");
|
|
@@ -960,7 +870,6 @@ function convertArrayBufferToBase64(buffer) {
|
|
|
960
870
|
return Buffer.from(buffer).toString("base64");
|
|
961
871
|
}
|
|
962
872
|
}
|
|
963
|
-
__name(convertArrayBufferToBase64, "convertArrayBufferToBase64");
|
|
964
873
|
function convertBase64ToArrayBuffer(base64Value) {
|
|
965
874
|
if (isClientSide()) {
|
|
966
875
|
const bufferAsString = atob(base64Value);
|
|
@@ -970,18 +879,15 @@ function convertBase64ToArrayBuffer(base64Value) {
|
|
|
970
879
|
return Buffer.from(base64Value, "base64");
|
|
971
880
|
}
|
|
972
881
|
}
|
|
973
|
-
__name(convertBase64ToArrayBuffer, "convertBase64ToArrayBuffer");
|
|
974
882
|
var HEX_REGEX = /^[a-z0-9]+$/;
|
|
975
883
|
function convertHexLengthToByteLength(hexLength) {
|
|
976
884
|
return Math.ceil(hexLength / 2);
|
|
977
885
|
}
|
|
978
|
-
__name(convertHexLengthToByteLength, "convertHexLengthToByteLength");
|
|
979
886
|
var BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;
|
|
980
887
|
function convertHexLengthToBase64urlLength(hexLength) {
|
|
981
888
|
const byteLength = convertHexLengthToByteLength(hexLength);
|
|
982
889
|
return Math.ceil(byteLength * 4 / 3);
|
|
983
890
|
}
|
|
984
|
-
__name(convertHexLengthToBase64urlLength, "convertHexLengthToBase64urlLength");
|
|
985
891
|
|
|
986
892
|
// src/utils/fetch.ts
|
|
987
893
|
async function serializeRequest(request) {
|
|
@@ -1002,7 +908,6 @@ async function serializeRequest(request) {
|
|
|
1002
908
|
body: serializedBody
|
|
1003
909
|
};
|
|
1004
910
|
}
|
|
1005
|
-
__name(serializeRequest, "serializeRequest");
|
|
1006
911
|
function deserializeResponse(serializedResponse) {
|
|
1007
912
|
const deserializedBody = serializedResponse.body ? convertBase64ToArrayBuffer(serializedResponse.body) : null;
|
|
1008
913
|
return new Response(deserializedBody, {
|
|
@@ -1011,7 +916,6 @@ function deserializeResponse(serializedResponse) {
|
|
|
1011
916
|
headers: new Headers(serializedResponse.headers)
|
|
1012
917
|
});
|
|
1013
918
|
}
|
|
1014
|
-
__name(deserializeResponse, "deserializeResponse");
|
|
1015
919
|
|
|
1016
920
|
// src/utils/crypto.ts
|
|
1017
921
|
var importCrypto = createCachedDynamicImport_default(async () => {
|
|
@@ -1024,9 +928,6 @@ var WEB_SOCKET_CONTROL_MESSAGES = Object.freeze(["socket:auth:valid"]);
|
|
|
1024
928
|
|
|
1025
929
|
// src/webSocket/errors/InvalidWebSocketMessage.ts
|
|
1026
930
|
var InvalidWebSocketMessage = class extends Error {
|
|
1027
|
-
static {
|
|
1028
|
-
__name(this, "InvalidWebSocketMessage");
|
|
1029
|
-
}
|
|
1030
931
|
constructor(message) {
|
|
1031
932
|
super(`Web socket message is invalid and could not be parsed: ${message}`);
|
|
1032
933
|
this.name = "InvalidWebSocketMessage";
|
|
@@ -1036,9 +937,6 @@ var InvalidWebSocketMessage_default = InvalidWebSocketMessage;
|
|
|
1036
937
|
|
|
1037
938
|
// src/webSocket/errors/NotRunningWebSocketHandlerError.ts
|
|
1038
939
|
var NotRunningWebSocketHandlerError = class extends Error {
|
|
1039
|
-
static {
|
|
1040
|
-
__name(this, "NotRunningWebSocketHandlerError");
|
|
1041
|
-
}
|
|
1042
940
|
constructor() {
|
|
1043
941
|
super("Web socket handler is not running.");
|
|
1044
942
|
this.name = "NotRunningWebSocketHandlerError";
|
|
@@ -1048,9 +946,6 @@ var NotRunningWebSocketHandlerError_default = NotRunningWebSocketHandlerError;
|
|
|
1048
946
|
|
|
1049
947
|
// src/webSocket/WebSocketHandler.ts
|
|
1050
948
|
var WebSocketHandler = class {
|
|
1051
|
-
static {
|
|
1052
|
-
__name(this, "WebSocketHandler");
|
|
1053
|
-
}
|
|
1054
949
|
sockets = /* @__PURE__ */ new Set();
|
|
1055
950
|
socketTimeout;
|
|
1056
951
|
messageTimeout;
|
|
@@ -1067,26 +962,25 @@ var WebSocketHandler = class {
|
|
|
1067
962
|
timeout: this.socketTimeout,
|
|
1068
963
|
waitForAuthentication: options.waitForAuthentication
|
|
1069
964
|
});
|
|
1070
|
-
const handleSocketMessage =
|
|
965
|
+
const handleSocketMessage = async (rawMessage) => {
|
|
1071
966
|
await this.handleSocketMessage(socket, rawMessage);
|
|
1072
|
-
}
|
|
967
|
+
};
|
|
1073
968
|
socket.addEventListener("message", handleSocketMessage);
|
|
1074
969
|
await openPromise;
|
|
1075
970
|
function handleSocketError(error) {
|
|
1076
971
|
console.error(error);
|
|
1077
972
|
}
|
|
1078
|
-
__name(handleSocketError, "handleSocketError");
|
|
1079
973
|
socket.addEventListener("error", handleSocketError);
|
|
1080
|
-
const handleSocketClose =
|
|
974
|
+
const handleSocketClose = () => {
|
|
1081
975
|
socket.removeEventListener("message", handleSocketMessage);
|
|
1082
976
|
socket.removeEventListener("close", handleSocketClose);
|
|
1083
977
|
socket.removeEventListener("error", handleSocketError);
|
|
1084
978
|
this.removeSocket(socket);
|
|
1085
|
-
}
|
|
979
|
+
};
|
|
1086
980
|
socket.addEventListener("close", handleSocketClose);
|
|
1087
981
|
this.sockets.add(socket);
|
|
1088
982
|
}
|
|
1089
|
-
handleSocketMessage =
|
|
983
|
+
handleSocketMessage = async (socket, rawMessage) => {
|
|
1090
984
|
try {
|
|
1091
985
|
if (this.isControlMessageData(rawMessage.data)) {
|
|
1092
986
|
return;
|
|
@@ -1097,7 +991,7 @@ var WebSocketHandler = class {
|
|
|
1097
991
|
} catch (error) {
|
|
1098
992
|
console.error(error);
|
|
1099
993
|
}
|
|
1100
|
-
}
|
|
994
|
+
};
|
|
1101
995
|
isControlMessageData(messageData) {
|
|
1102
996
|
return typeof messageData === "string" && WEB_SOCKET_CONTROL_MESSAGES.includes(messageData);
|
|
1103
997
|
}
|
|
@@ -1298,9 +1192,6 @@ var WebSocketHandler_default = WebSocketHandler;
|
|
|
1298
1192
|
// src/webSocket/WebSocketServer.ts
|
|
1299
1193
|
var { WebSocketServer: ServerSocket } = ClientSocket;
|
|
1300
1194
|
var WebSocketServer = class extends WebSocketHandler_default {
|
|
1301
|
-
static {
|
|
1302
|
-
__name(this, "WebSocketServer");
|
|
1303
|
-
}
|
|
1304
1195
|
webSocketServer;
|
|
1305
1196
|
httpServer;
|
|
1306
1197
|
authenticate;
|
|
@@ -1356,9 +1247,6 @@ var WebSocketServer_default = WebSocketServer;
|
|
|
1356
1247
|
|
|
1357
1248
|
// src/server/errors/InvalidInterceptorTokenError.ts
|
|
1358
1249
|
var InvalidInterceptorTokenError = class extends Error {
|
|
1359
|
-
static {
|
|
1360
|
-
__name(this, "InvalidInterceptorTokenError");
|
|
1361
|
-
}
|
|
1362
1250
|
constructor(tokenId) {
|
|
1363
1251
|
super(`Invalid interceptor token: ${tokenId}`);
|
|
1364
1252
|
this.name = "InvalidInterceptorTokenError";
|
|
@@ -1368,9 +1256,6 @@ var InvalidInterceptorTokenError_default = InvalidInterceptorTokenError;
|
|
|
1368
1256
|
|
|
1369
1257
|
// src/server/errors/InvalidInterceptorTokenFileError.ts
|
|
1370
1258
|
var InvalidInterceptorTokenFileError = class extends Error {
|
|
1371
|
-
static {
|
|
1372
|
-
__name(this, "InvalidInterceptorTokenFileError");
|
|
1373
|
-
}
|
|
1374
1259
|
constructor(tokenFilePath, validationErrorMessage) {
|
|
1375
1260
|
super(`Invalid interceptor token file ${tokenFilePath}: ${validationErrorMessage}`);
|
|
1376
1261
|
this.name = "InvalidInterceptorTokenFileError";
|
|
@@ -1380,9 +1265,6 @@ var InvalidInterceptorTokenFileError_default = InvalidInterceptorTokenFileError;
|
|
|
1380
1265
|
|
|
1381
1266
|
// src/server/errors/InvalidInterceptorTokenValueError.ts
|
|
1382
1267
|
var InvalidInterceptorTokenValueError = class extends Error {
|
|
1383
|
-
static {
|
|
1384
|
-
__name(this, "InvalidInterceptorTokenValueError");
|
|
1385
|
-
}
|
|
1386
1268
|
constructor(tokenValue) {
|
|
1387
1269
|
super(`Invalid interceptor token value: ${tokenValue}`);
|
|
1388
1270
|
this.name = "InvalidInterceptorTokenValueError";
|
|
@@ -1419,19 +1301,15 @@ async function hashInterceptorToken(plainToken, salt) {
|
|
|
1419
1301
|
const hash = hashBuffer.toString("hex");
|
|
1420
1302
|
return hash;
|
|
1421
1303
|
}
|
|
1422
|
-
__name(hashInterceptorToken, "hashInterceptorToken");
|
|
1423
1304
|
function createInterceptorTokenId() {
|
|
1424
1305
|
return crypto.randomUUID().replace(/[^a-z0-9]/g, "");
|
|
1425
1306
|
}
|
|
1426
|
-
__name(createInterceptorTokenId, "createInterceptorTokenId");
|
|
1427
1307
|
function isValidInterceptorTokenId(tokenId) {
|
|
1428
1308
|
return tokenId.length === INTERCEPTOR_TOKEN_ID_HEX_LENGTH && HEX_REGEX.test(tokenId);
|
|
1429
1309
|
}
|
|
1430
|
-
__name(isValidInterceptorTokenId, "isValidInterceptorTokenId");
|
|
1431
1310
|
function isValidInterceptorTokenValue(tokenValue) {
|
|
1432
1311
|
return tokenValue.length === INTERCEPTOR_TOKEN_VALUE_BASE64URL_LENGTH && BASE64URL_REGEX.test(tokenValue);
|
|
1433
1312
|
}
|
|
1434
|
-
__name(isValidInterceptorTokenValue, "isValidInterceptorTokenValue");
|
|
1435
1313
|
async function createInterceptorTokensDirectory(tokensDirectory) {
|
|
1436
1314
|
try {
|
|
1437
1315
|
const parentTokensDirectory = path.dirname(tokensDirectory);
|
|
@@ -1445,7 +1323,6 @@ async function createInterceptorTokensDirectory(tokensDirectory) {
|
|
|
1445
1323
|
throw error;
|
|
1446
1324
|
}
|
|
1447
1325
|
}
|
|
1448
|
-
__name(createInterceptorTokensDirectory, "createInterceptorTokensDirectory");
|
|
1449
1326
|
var interceptorTokenFileContentSchema = z.object({
|
|
1450
1327
|
version: z.literal(1),
|
|
1451
1328
|
token: z.object({
|
|
@@ -1479,7 +1356,6 @@ async function saveInterceptorTokenToFile(tokensDirectory, token) {
|
|
|
1479
1356
|
});
|
|
1480
1357
|
return tokeFilePath;
|
|
1481
1358
|
}
|
|
1482
|
-
__name(saveInterceptorTokenToFile, "saveInterceptorTokenToFile");
|
|
1483
1359
|
async function readInterceptorTokenFromFile(tokenId, options) {
|
|
1484
1360
|
if (!isValidInterceptorTokenId(tokenId)) {
|
|
1485
1361
|
throw new InvalidInterceptorTokenError_default(tokenId);
|
|
@@ -1496,7 +1372,6 @@ async function readInterceptorTokenFromFile(tokenId, options) {
|
|
|
1496
1372
|
}
|
|
1497
1373
|
return validation.data.token;
|
|
1498
1374
|
}
|
|
1499
|
-
__name(readInterceptorTokenFromFile, "readInterceptorTokenFromFile");
|
|
1500
1375
|
async function createInterceptorToken(options = {}) {
|
|
1501
1376
|
const { name, tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1502
1377
|
const tokensDirectoryExists = await pathExists(tokensDirectory);
|
|
@@ -1530,7 +1405,6 @@ async function createInterceptorToken(options = {}) {
|
|
|
1530
1405
|
await saveInterceptorTokenToFile(tokensDirectory, token);
|
|
1531
1406
|
return token;
|
|
1532
1407
|
}
|
|
1533
|
-
__name(createInterceptorToken, "createInterceptorToken");
|
|
1534
1408
|
async function listInterceptorTokens(options = {}) {
|
|
1535
1409
|
const { tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1536
1410
|
const tokensDirectoryExists = await pathExists(tokensDirectory);
|
|
@@ -1558,7 +1432,6 @@ async function listInterceptorTokens(options = {}) {
|
|
|
1558
1432
|
tokens.sort((token, otherToken) => token.createdAt.getTime() - otherToken.createdAt.getTime());
|
|
1559
1433
|
return tokens;
|
|
1560
1434
|
}
|
|
1561
|
-
__name(listInterceptorTokens, "listInterceptorTokens");
|
|
1562
1435
|
async function validateInterceptorToken(tokenValue, options) {
|
|
1563
1436
|
if (!isValidInterceptorTokenValue(tokenValue)) {
|
|
1564
1437
|
throw new InvalidInterceptorTokenValueError_default(tokenValue);
|
|
@@ -1578,7 +1451,6 @@ async function validateInterceptorToken(tokenValue, options) {
|
|
|
1578
1451
|
throw new InvalidInterceptorTokenValueError_default(tokenValue);
|
|
1579
1452
|
}
|
|
1580
1453
|
}
|
|
1581
|
-
__name(validateInterceptorToken, "validateInterceptorToken");
|
|
1582
1454
|
async function removeInterceptorToken(tokenId, options = {}) {
|
|
1583
1455
|
const { tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1584
1456
|
if (!isValidInterceptorTokenId(tokenId)) {
|
|
@@ -1587,7 +1459,6 @@ async function removeInterceptorToken(tokenId, options = {}) {
|
|
|
1587
1459
|
const tokenFilePath = path.join(tokensDirectory, tokenId);
|
|
1588
1460
|
await fs.promises.rm(tokenFilePath, { force: true });
|
|
1589
1461
|
}
|
|
1590
|
-
__name(removeInterceptorToken, "removeInterceptorToken");
|
|
1591
1462
|
|
|
1592
1463
|
// src/server/utils/fetch.ts
|
|
1593
1464
|
async function getFetchAPI() {
|
|
@@ -1616,13 +1487,9 @@ async function getFetchAPI() {
|
|
|
1616
1487
|
URLSearchParams
|
|
1617
1488
|
};
|
|
1618
1489
|
}
|
|
1619
|
-
__name(getFetchAPI, "getFetchAPI");
|
|
1620
1490
|
|
|
1621
1491
|
// src/server/InterceptorServer.ts
|
|
1622
1492
|
var InterceptorServer = class {
|
|
1623
|
-
static {
|
|
1624
|
-
__name(this, "InterceptorServer");
|
|
1625
|
-
}
|
|
1626
1493
|
httpServer;
|
|
1627
1494
|
webSocketServer;
|
|
1628
1495
|
_hostname;
|
|
@@ -1693,7 +1560,7 @@ var InterceptorServer = class {
|
|
|
1693
1560
|
});
|
|
1694
1561
|
this.startWebSocketServer();
|
|
1695
1562
|
}
|
|
1696
|
-
authenticateWebSocketConnection =
|
|
1563
|
+
authenticateWebSocketConnection = async (_socket, request) => {
|
|
1697
1564
|
if (!this.tokensDirectory) {
|
|
1698
1565
|
return { isValid: true };
|
|
1699
1566
|
}
|
|
@@ -1708,7 +1575,7 @@ var InterceptorServer = class {
|
|
|
1708
1575
|
console.error(error);
|
|
1709
1576
|
return { isValid: false, message: "The interceptor token is not valid." };
|
|
1710
1577
|
}
|
|
1711
|
-
}
|
|
1578
|
+
};
|
|
1712
1579
|
getWebSocketRequestTokenValue(request) {
|
|
1713
1580
|
const protocols = request.headers["sec-websocket-protocol"] ?? "";
|
|
1714
1581
|
const parametersAsString = decodeURIComponent(protocols).split(", ");
|
|
@@ -1734,13 +1601,13 @@ var InterceptorServer = class {
|
|
|
1734
1601
|
this.webSocketServerOrThrow.onEvent("interceptors/workers/commit", this.commitWorker);
|
|
1735
1602
|
this.webSocketServerOrThrow.onEvent("interceptors/workers/reset", this.resetWorker);
|
|
1736
1603
|
}
|
|
1737
|
-
commitWorker =
|
|
1604
|
+
commitWorker = (message, socket) => {
|
|
1738
1605
|
const commit = message.data;
|
|
1739
1606
|
this.registerHttpHandler(commit, socket);
|
|
1740
1607
|
this.registerWorkerSocketIfUnknown(socket);
|
|
1741
1608
|
return {};
|
|
1742
|
-
}
|
|
1743
|
-
resetWorker =
|
|
1609
|
+
};
|
|
1610
|
+
resetWorker = (message, socket) => {
|
|
1744
1611
|
this.removeHttpHandlersBySocket(socket);
|
|
1745
1612
|
const handlersToResetTo = message.data;
|
|
1746
1613
|
const isWorkerNoLongerCommitted = handlersToResetTo === void 0;
|
|
@@ -1753,7 +1620,7 @@ var InterceptorServer = class {
|
|
|
1753
1620
|
}
|
|
1754
1621
|
this.registerWorkerSocketIfUnknown(socket);
|
|
1755
1622
|
return {};
|
|
1756
|
-
}
|
|
1623
|
+
};
|
|
1757
1624
|
registerHttpHandler({ id, baseURL, method, path: path2 }, socket) {
|
|
1758
1625
|
const handlerGroups = this.httpHandlersByMethod[method];
|
|
1759
1626
|
handlerGroups.push({
|
|
@@ -1797,7 +1664,7 @@ var InterceptorServer = class {
|
|
|
1797
1664
|
await this.webSocketServerOrThrow.stop();
|
|
1798
1665
|
this.webSocketServer = void 0;
|
|
1799
1666
|
}
|
|
1800
|
-
handleHttpRequest =
|
|
1667
|
+
handleHttpRequest = async (nodeRequest, nodeResponse) => {
|
|
1801
1668
|
const request = normalizeNodeRequest(nodeRequest, await getFetchAPI());
|
|
1802
1669
|
const serializedRequest = await serializeRequest(request);
|
|
1803
1670
|
try {
|
|
@@ -1826,7 +1693,7 @@ var InterceptorServer = class {
|
|
|
1826
1693
|
}
|
|
1827
1694
|
nodeResponse.destroy();
|
|
1828
1695
|
}
|
|
1829
|
-
}
|
|
1696
|
+
};
|
|
1830
1697
|
async createResponseForRequest(request) {
|
|
1831
1698
|
const methodHandlers = this.httpHandlersByMethod[request.method];
|
|
1832
1699
|
const requestURL = excludeURLParams_default(new URL(request.url));
|
|
@@ -1903,7 +1770,6 @@ var InterceptorServer_default = InterceptorServer;
|
|
|
1903
1770
|
function createInterceptorServer(options = {}) {
|
|
1904
1771
|
return new InterceptorServer_default(options);
|
|
1905
1772
|
}
|
|
1906
|
-
__name(createInterceptorServer, "createInterceptorServer");
|
|
1907
1773
|
/* istanbul ignore next -- @preserve */
|
|
1908
1774
|
/* istanbul ignore if -- @preserve
|
|
1909
1775
|
* This is expected not to happen since the servers are not stopped unless they are running. */
|
|
@@ -1941,5 +1807,5 @@ __name(createInterceptorServer, "createInterceptorServer");
|
|
|
1941
1807
|
* Since simulating this scenario is difficult, we are ignoring this branch fow now. */
|
|
1942
1808
|
|
|
1943
1809
|
export { DEFAULT_ACCESS_CONTROL_HEADERS, DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY, DEFAULT_PREFLIGHT_STATUS_CODE, NotRunningInterceptorServerError_default, RunningInterceptorServerError_default, createCachedDynamicImport_default, createInterceptorServer, createInterceptorToken, listInterceptorTokens, logger, readInterceptorTokenFromFile, removeInterceptorToken };
|
|
1944
|
-
//# sourceMappingURL=chunk-
|
|
1945
|
-
//# sourceMappingURL=chunk-
|
|
1810
|
+
//# sourceMappingURL=chunk-IZWPQ4OM.mjs.map
|
|
1811
|
+
//# sourceMappingURL=chunk-IZWPQ4OM.mjs.map
|