@zimic/interceptor 1.1.2-canary.1 → 1.1.2-canary.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/dist/{chunk-CGILA3WO.mjs → chunk-BJTO5JO5.mjs} +3 -5
- package/dist/{chunk-CGILA3WO.mjs.map → chunk-BJTO5JO5.mjs.map} +1 -1
- package/dist/{chunk-RDMXECNU.mjs → chunk-CSKTIZSC.mjs} +20 -159
- package/dist/chunk-CSKTIZSC.mjs.map +1 -0
- 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-QDNKVSEG.js → chunk-GM3MDVNT.js} +20 -159
- package/dist/chunk-GM3MDVNT.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 +61 -250
- package/dist/http.js.map +1 -1
- package/dist/http.mjs +62 -251
- 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 +2 -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;
|
|
@@ -960,7 +865,6 @@ function convertArrayBufferToBase64(buffer) {
|
|
|
960
865
|
return Buffer.from(buffer).toString("base64");
|
|
961
866
|
}
|
|
962
867
|
}
|
|
963
|
-
__name(convertArrayBufferToBase64, "convertArrayBufferToBase64");
|
|
964
868
|
function convertBase64ToArrayBuffer(base64Value) {
|
|
965
869
|
if (isClientSide()) {
|
|
966
870
|
const bufferAsString = atob(base64Value);
|
|
@@ -970,18 +874,15 @@ function convertBase64ToArrayBuffer(base64Value) {
|
|
|
970
874
|
return Buffer.from(base64Value, "base64");
|
|
971
875
|
}
|
|
972
876
|
}
|
|
973
|
-
__name(convertBase64ToArrayBuffer, "convertBase64ToArrayBuffer");
|
|
974
877
|
var HEX_REGEX = /^[a-z0-9]+$/;
|
|
975
878
|
function convertHexLengthToByteLength(hexLength) {
|
|
976
879
|
return Math.ceil(hexLength / 2);
|
|
977
880
|
}
|
|
978
|
-
__name(convertHexLengthToByteLength, "convertHexLengthToByteLength");
|
|
979
881
|
var BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;
|
|
980
882
|
function convertHexLengthToBase64urlLength(hexLength) {
|
|
981
883
|
const byteLength = convertHexLengthToByteLength(hexLength);
|
|
982
884
|
return Math.ceil(byteLength * 4 / 3);
|
|
983
885
|
}
|
|
984
|
-
__name(convertHexLengthToBase64urlLength, "convertHexLengthToBase64urlLength");
|
|
985
886
|
|
|
986
887
|
// src/utils/fetch.ts
|
|
987
888
|
async function serializeRequest(request) {
|
|
@@ -1002,7 +903,6 @@ async function serializeRequest(request) {
|
|
|
1002
903
|
body: serializedBody
|
|
1003
904
|
};
|
|
1004
905
|
}
|
|
1005
|
-
__name(serializeRequest, "serializeRequest");
|
|
1006
906
|
function deserializeResponse(serializedResponse) {
|
|
1007
907
|
const deserializedBody = serializedResponse.body ? convertBase64ToArrayBuffer(serializedResponse.body) : null;
|
|
1008
908
|
return new Response(deserializedBody, {
|
|
@@ -1011,7 +911,6 @@ function deserializeResponse(serializedResponse) {
|
|
|
1011
911
|
headers: new Headers(serializedResponse.headers)
|
|
1012
912
|
});
|
|
1013
913
|
}
|
|
1014
|
-
__name(deserializeResponse, "deserializeResponse");
|
|
1015
914
|
|
|
1016
915
|
// src/utils/crypto.ts
|
|
1017
916
|
var importCrypto = createCachedDynamicImport_default(async () => {
|
|
@@ -1024,9 +923,6 @@ var WEB_SOCKET_CONTROL_MESSAGES = Object.freeze(["socket:auth:valid"]);
|
|
|
1024
923
|
|
|
1025
924
|
// src/webSocket/errors/InvalidWebSocketMessage.ts
|
|
1026
925
|
var InvalidWebSocketMessage = class extends Error {
|
|
1027
|
-
static {
|
|
1028
|
-
__name(this, "InvalidWebSocketMessage");
|
|
1029
|
-
}
|
|
1030
926
|
constructor(message) {
|
|
1031
927
|
super(`Web socket message is invalid and could not be parsed: ${message}`);
|
|
1032
928
|
this.name = "InvalidWebSocketMessage";
|
|
@@ -1036,9 +932,6 @@ var InvalidWebSocketMessage_default = InvalidWebSocketMessage;
|
|
|
1036
932
|
|
|
1037
933
|
// src/webSocket/errors/NotRunningWebSocketHandlerError.ts
|
|
1038
934
|
var NotRunningWebSocketHandlerError = class extends Error {
|
|
1039
|
-
static {
|
|
1040
|
-
__name(this, "NotRunningWebSocketHandlerError");
|
|
1041
|
-
}
|
|
1042
935
|
constructor() {
|
|
1043
936
|
super("Web socket handler is not running.");
|
|
1044
937
|
this.name = "NotRunningWebSocketHandlerError";
|
|
@@ -1048,9 +941,6 @@ var NotRunningWebSocketHandlerError_default = NotRunningWebSocketHandlerError;
|
|
|
1048
941
|
|
|
1049
942
|
// src/webSocket/WebSocketHandler.ts
|
|
1050
943
|
var WebSocketHandler = class {
|
|
1051
|
-
static {
|
|
1052
|
-
__name(this, "WebSocketHandler");
|
|
1053
|
-
}
|
|
1054
944
|
sockets = /* @__PURE__ */ new Set();
|
|
1055
945
|
socketTimeout;
|
|
1056
946
|
messageTimeout;
|
|
@@ -1067,26 +957,25 @@ var WebSocketHandler = class {
|
|
|
1067
957
|
timeout: this.socketTimeout,
|
|
1068
958
|
waitForAuthentication: options.waitForAuthentication
|
|
1069
959
|
});
|
|
1070
|
-
const handleSocketMessage =
|
|
960
|
+
const handleSocketMessage = async (rawMessage) => {
|
|
1071
961
|
await this.handleSocketMessage(socket, rawMessage);
|
|
1072
|
-
}
|
|
962
|
+
};
|
|
1073
963
|
socket.addEventListener("message", handleSocketMessage);
|
|
1074
964
|
await openPromise;
|
|
1075
965
|
function handleSocketError(error) {
|
|
1076
966
|
console.error(error);
|
|
1077
967
|
}
|
|
1078
|
-
__name(handleSocketError, "handleSocketError");
|
|
1079
968
|
socket.addEventListener("error", handleSocketError);
|
|
1080
|
-
const handleSocketClose =
|
|
969
|
+
const handleSocketClose = () => {
|
|
1081
970
|
socket.removeEventListener("message", handleSocketMessage);
|
|
1082
971
|
socket.removeEventListener("close", handleSocketClose);
|
|
1083
972
|
socket.removeEventListener("error", handleSocketError);
|
|
1084
973
|
this.removeSocket(socket);
|
|
1085
|
-
}
|
|
974
|
+
};
|
|
1086
975
|
socket.addEventListener("close", handleSocketClose);
|
|
1087
976
|
this.sockets.add(socket);
|
|
1088
977
|
}
|
|
1089
|
-
handleSocketMessage =
|
|
978
|
+
handleSocketMessage = async (socket, rawMessage) => {
|
|
1090
979
|
try {
|
|
1091
980
|
if (this.isControlMessageData(rawMessage.data)) {
|
|
1092
981
|
return;
|
|
@@ -1097,7 +986,7 @@ var WebSocketHandler = class {
|
|
|
1097
986
|
} catch (error) {
|
|
1098
987
|
console.error(error);
|
|
1099
988
|
}
|
|
1100
|
-
}
|
|
989
|
+
};
|
|
1101
990
|
isControlMessageData(messageData) {
|
|
1102
991
|
return typeof messageData === "string" && WEB_SOCKET_CONTROL_MESSAGES.includes(messageData);
|
|
1103
992
|
}
|
|
@@ -1298,9 +1187,6 @@ var WebSocketHandler_default = WebSocketHandler;
|
|
|
1298
1187
|
// src/webSocket/WebSocketServer.ts
|
|
1299
1188
|
var { WebSocketServer: ServerSocket } = ClientSocket;
|
|
1300
1189
|
var WebSocketServer = class extends WebSocketHandler_default {
|
|
1301
|
-
static {
|
|
1302
|
-
__name(this, "WebSocketServer");
|
|
1303
|
-
}
|
|
1304
1190
|
webSocketServer;
|
|
1305
1191
|
httpServer;
|
|
1306
1192
|
authenticate;
|
|
@@ -1356,9 +1242,6 @@ var WebSocketServer_default = WebSocketServer;
|
|
|
1356
1242
|
|
|
1357
1243
|
// src/server/errors/InvalidInterceptorTokenError.ts
|
|
1358
1244
|
var InvalidInterceptorTokenError = class extends Error {
|
|
1359
|
-
static {
|
|
1360
|
-
__name(this, "InvalidInterceptorTokenError");
|
|
1361
|
-
}
|
|
1362
1245
|
constructor(tokenId) {
|
|
1363
1246
|
super(`Invalid interceptor token: ${tokenId}`);
|
|
1364
1247
|
this.name = "InvalidInterceptorTokenError";
|
|
@@ -1368,9 +1251,6 @@ var InvalidInterceptorTokenError_default = InvalidInterceptorTokenError;
|
|
|
1368
1251
|
|
|
1369
1252
|
// src/server/errors/InvalidInterceptorTokenFileError.ts
|
|
1370
1253
|
var InvalidInterceptorTokenFileError = class extends Error {
|
|
1371
|
-
static {
|
|
1372
|
-
__name(this, "InvalidInterceptorTokenFileError");
|
|
1373
|
-
}
|
|
1374
1254
|
constructor(tokenFilePath, validationErrorMessage) {
|
|
1375
1255
|
super(`Invalid interceptor token file ${tokenFilePath}: ${validationErrorMessage}`);
|
|
1376
1256
|
this.name = "InvalidInterceptorTokenFileError";
|
|
@@ -1380,9 +1260,6 @@ var InvalidInterceptorTokenFileError_default = InvalidInterceptorTokenFileError;
|
|
|
1380
1260
|
|
|
1381
1261
|
// src/server/errors/InvalidInterceptorTokenValueError.ts
|
|
1382
1262
|
var InvalidInterceptorTokenValueError = class extends Error {
|
|
1383
|
-
static {
|
|
1384
|
-
__name(this, "InvalidInterceptorTokenValueError");
|
|
1385
|
-
}
|
|
1386
1263
|
constructor(tokenValue) {
|
|
1387
1264
|
super(`Invalid interceptor token value: ${tokenValue}`);
|
|
1388
1265
|
this.name = "InvalidInterceptorTokenValueError";
|
|
@@ -1419,19 +1296,15 @@ async function hashInterceptorToken(plainToken, salt) {
|
|
|
1419
1296
|
const hash = hashBuffer.toString("hex");
|
|
1420
1297
|
return hash;
|
|
1421
1298
|
}
|
|
1422
|
-
__name(hashInterceptorToken, "hashInterceptorToken");
|
|
1423
1299
|
function createInterceptorTokenId() {
|
|
1424
1300
|
return crypto.randomUUID().replace(/[^a-z0-9]/g, "");
|
|
1425
1301
|
}
|
|
1426
|
-
__name(createInterceptorTokenId, "createInterceptorTokenId");
|
|
1427
1302
|
function isValidInterceptorTokenId(tokenId) {
|
|
1428
1303
|
return tokenId.length === INTERCEPTOR_TOKEN_ID_HEX_LENGTH && HEX_REGEX.test(tokenId);
|
|
1429
1304
|
}
|
|
1430
|
-
__name(isValidInterceptorTokenId, "isValidInterceptorTokenId");
|
|
1431
1305
|
function isValidInterceptorTokenValue(tokenValue) {
|
|
1432
1306
|
return tokenValue.length === INTERCEPTOR_TOKEN_VALUE_BASE64URL_LENGTH && BASE64URL_REGEX.test(tokenValue);
|
|
1433
1307
|
}
|
|
1434
|
-
__name(isValidInterceptorTokenValue, "isValidInterceptorTokenValue");
|
|
1435
1308
|
async function createInterceptorTokensDirectory(tokensDirectory) {
|
|
1436
1309
|
try {
|
|
1437
1310
|
const parentTokensDirectory = path.dirname(tokensDirectory);
|
|
@@ -1445,7 +1318,6 @@ async function createInterceptorTokensDirectory(tokensDirectory) {
|
|
|
1445
1318
|
throw error;
|
|
1446
1319
|
}
|
|
1447
1320
|
}
|
|
1448
|
-
__name(createInterceptorTokensDirectory, "createInterceptorTokensDirectory");
|
|
1449
1321
|
var interceptorTokenFileContentSchema = z.object({
|
|
1450
1322
|
version: z.literal(1),
|
|
1451
1323
|
token: z.object({
|
|
@@ -1479,7 +1351,6 @@ async function saveInterceptorTokenToFile(tokensDirectory, token) {
|
|
|
1479
1351
|
});
|
|
1480
1352
|
return tokeFilePath;
|
|
1481
1353
|
}
|
|
1482
|
-
__name(saveInterceptorTokenToFile, "saveInterceptorTokenToFile");
|
|
1483
1354
|
async function readInterceptorTokenFromFile(tokenId, options) {
|
|
1484
1355
|
if (!isValidInterceptorTokenId(tokenId)) {
|
|
1485
1356
|
throw new InvalidInterceptorTokenError_default(tokenId);
|
|
@@ -1496,7 +1367,6 @@ async function readInterceptorTokenFromFile(tokenId, options) {
|
|
|
1496
1367
|
}
|
|
1497
1368
|
return validation.data.token;
|
|
1498
1369
|
}
|
|
1499
|
-
__name(readInterceptorTokenFromFile, "readInterceptorTokenFromFile");
|
|
1500
1370
|
async function createInterceptorToken(options = {}) {
|
|
1501
1371
|
const { name, tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1502
1372
|
const tokensDirectoryExists = await pathExists(tokensDirectory);
|
|
@@ -1530,7 +1400,6 @@ async function createInterceptorToken(options = {}) {
|
|
|
1530
1400
|
await saveInterceptorTokenToFile(tokensDirectory, token);
|
|
1531
1401
|
return token;
|
|
1532
1402
|
}
|
|
1533
|
-
__name(createInterceptorToken, "createInterceptorToken");
|
|
1534
1403
|
async function listInterceptorTokens(options = {}) {
|
|
1535
1404
|
const { tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1536
1405
|
const tokensDirectoryExists = await pathExists(tokensDirectory);
|
|
@@ -1558,7 +1427,6 @@ async function listInterceptorTokens(options = {}) {
|
|
|
1558
1427
|
tokens.sort((token, otherToken) => token.createdAt.getTime() - otherToken.createdAt.getTime());
|
|
1559
1428
|
return tokens;
|
|
1560
1429
|
}
|
|
1561
|
-
__name(listInterceptorTokens, "listInterceptorTokens");
|
|
1562
1430
|
async function validateInterceptorToken(tokenValue, options) {
|
|
1563
1431
|
if (!isValidInterceptorTokenValue(tokenValue)) {
|
|
1564
1432
|
throw new InvalidInterceptorTokenValueError_default(tokenValue);
|
|
@@ -1578,7 +1446,6 @@ async function validateInterceptorToken(tokenValue, options) {
|
|
|
1578
1446
|
throw new InvalidInterceptorTokenValueError_default(tokenValue);
|
|
1579
1447
|
}
|
|
1580
1448
|
}
|
|
1581
|
-
__name(validateInterceptorToken, "validateInterceptorToken");
|
|
1582
1449
|
async function removeInterceptorToken(tokenId, options = {}) {
|
|
1583
1450
|
const { tokensDirectory = DEFAULT_INTERCEPTOR_TOKENS_DIRECTORY } = options;
|
|
1584
1451
|
if (!isValidInterceptorTokenId(tokenId)) {
|
|
@@ -1587,7 +1454,6 @@ async function removeInterceptorToken(tokenId, options = {}) {
|
|
|
1587
1454
|
const tokenFilePath = path.join(tokensDirectory, tokenId);
|
|
1588
1455
|
await fs.promises.rm(tokenFilePath, { force: true });
|
|
1589
1456
|
}
|
|
1590
|
-
__name(removeInterceptorToken, "removeInterceptorToken");
|
|
1591
1457
|
|
|
1592
1458
|
// src/server/utils/fetch.ts
|
|
1593
1459
|
async function getFetchAPI() {
|
|
@@ -1616,13 +1482,9 @@ async function getFetchAPI() {
|
|
|
1616
1482
|
URLSearchParams
|
|
1617
1483
|
};
|
|
1618
1484
|
}
|
|
1619
|
-
__name(getFetchAPI, "getFetchAPI");
|
|
1620
1485
|
|
|
1621
1486
|
// src/server/InterceptorServer.ts
|
|
1622
1487
|
var InterceptorServer = class {
|
|
1623
|
-
static {
|
|
1624
|
-
__name(this, "InterceptorServer");
|
|
1625
|
-
}
|
|
1626
1488
|
httpServer;
|
|
1627
1489
|
webSocketServer;
|
|
1628
1490
|
_hostname;
|
|
@@ -1693,7 +1555,7 @@ var InterceptorServer = class {
|
|
|
1693
1555
|
});
|
|
1694
1556
|
this.startWebSocketServer();
|
|
1695
1557
|
}
|
|
1696
|
-
authenticateWebSocketConnection =
|
|
1558
|
+
authenticateWebSocketConnection = async (_socket, request) => {
|
|
1697
1559
|
if (!this.tokensDirectory) {
|
|
1698
1560
|
return { isValid: true };
|
|
1699
1561
|
}
|
|
@@ -1708,7 +1570,7 @@ var InterceptorServer = class {
|
|
|
1708
1570
|
console.error(error);
|
|
1709
1571
|
return { isValid: false, message: "The interceptor token is not valid." };
|
|
1710
1572
|
}
|
|
1711
|
-
}
|
|
1573
|
+
};
|
|
1712
1574
|
getWebSocketRequestTokenValue(request) {
|
|
1713
1575
|
const protocols = request.headers["sec-websocket-protocol"] ?? "";
|
|
1714
1576
|
const parametersAsString = decodeURIComponent(protocols).split(", ");
|
|
@@ -1734,13 +1596,13 @@ var InterceptorServer = class {
|
|
|
1734
1596
|
this.webSocketServerOrThrow.onEvent("interceptors/workers/commit", this.commitWorker);
|
|
1735
1597
|
this.webSocketServerOrThrow.onEvent("interceptors/workers/reset", this.resetWorker);
|
|
1736
1598
|
}
|
|
1737
|
-
commitWorker =
|
|
1599
|
+
commitWorker = (message, socket) => {
|
|
1738
1600
|
const commit = message.data;
|
|
1739
1601
|
this.registerHttpHandler(commit, socket);
|
|
1740
1602
|
this.registerWorkerSocketIfUnknown(socket);
|
|
1741
1603
|
return {};
|
|
1742
|
-
}
|
|
1743
|
-
resetWorker =
|
|
1604
|
+
};
|
|
1605
|
+
resetWorker = (message, socket) => {
|
|
1744
1606
|
this.removeHttpHandlersBySocket(socket);
|
|
1745
1607
|
const handlersToResetTo = message.data;
|
|
1746
1608
|
const isWorkerNoLongerCommitted = handlersToResetTo === void 0;
|
|
@@ -1753,7 +1615,7 @@ var InterceptorServer = class {
|
|
|
1753
1615
|
}
|
|
1754
1616
|
this.registerWorkerSocketIfUnknown(socket);
|
|
1755
1617
|
return {};
|
|
1756
|
-
}
|
|
1618
|
+
};
|
|
1757
1619
|
registerHttpHandler({ id, baseURL, method, path: path2 }, socket) {
|
|
1758
1620
|
const handlerGroups = this.httpHandlersByMethod[method];
|
|
1759
1621
|
handlerGroups.push({
|
|
@@ -1797,7 +1659,7 @@ var InterceptorServer = class {
|
|
|
1797
1659
|
await this.webSocketServerOrThrow.stop();
|
|
1798
1660
|
this.webSocketServer = void 0;
|
|
1799
1661
|
}
|
|
1800
|
-
handleHttpRequest =
|
|
1662
|
+
handleHttpRequest = async (nodeRequest, nodeResponse) => {
|
|
1801
1663
|
const request = normalizeNodeRequest(nodeRequest, await getFetchAPI());
|
|
1802
1664
|
const serializedRequest = await serializeRequest(request);
|
|
1803
1665
|
try {
|
|
@@ -1826,7 +1688,7 @@ var InterceptorServer = class {
|
|
|
1826
1688
|
}
|
|
1827
1689
|
nodeResponse.destroy();
|
|
1828
1690
|
}
|
|
1829
|
-
}
|
|
1691
|
+
};
|
|
1830
1692
|
async createResponseForRequest(request) {
|
|
1831
1693
|
const methodHandlers = this.httpHandlersByMethod[request.method];
|
|
1832
1694
|
const requestURL = excludeURLParams_default(new URL(request.url));
|
|
@@ -1903,7 +1765,6 @@ var InterceptorServer_default = InterceptorServer;
|
|
|
1903
1765
|
function createInterceptorServer(options = {}) {
|
|
1904
1766
|
return new InterceptorServer_default(options);
|
|
1905
1767
|
}
|
|
1906
|
-
__name(createInterceptorServer, "createInterceptorServer");
|
|
1907
1768
|
/* istanbul ignore next -- @preserve */
|
|
1908
1769
|
/* istanbul ignore if -- @preserve
|
|
1909
1770
|
* This is expected not to happen since the servers are not stopped unless they are running. */
|
|
@@ -1941,5 +1802,5 @@ __name(createInterceptorServer, "createInterceptorServer");
|
|
|
1941
1802
|
* Since simulating this scenario is difficult, we are ignoring this branch fow now. */
|
|
1942
1803
|
|
|
1943
1804
|
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-
|
|
1805
|
+
//# sourceMappingURL=chunk-CSKTIZSC.mjs.map
|
|
1806
|
+
//# sourceMappingURL=chunk-CSKTIZSC.mjs.map
|