msw 2.8.4 → 2.8.6
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/browser/package.json +3 -2
- package/lib/browser/index.js +91 -46
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/index.mjs +91 -46
- package/lib/browser/index.mjs.map +1 -1
- package/lib/core/{GraphQLHandler-pSWhHVJp.d.mts → GraphQLHandler-DOXAygvT.d.mts} +1 -1
- package/lib/core/{GraphQLHandler-DzcekHIp.d.ts → GraphQLHandler-noP9MRWa.d.ts} +1 -1
- package/lib/core/{HttpResponse-DAxViIqi.d.mts → HttpResponse-BOGtXZ-B.d.mts} +4 -4
- package/lib/core/{HttpResponse-CSWX6ahe.d.ts → HttpResponse-DzeJL_i8.d.ts} +4 -4
- package/lib/core/HttpResponse.d.mts +1 -1
- package/lib/core/HttpResponse.d.ts +1 -1
- package/lib/core/HttpResponse.js.map +1 -1
- package/lib/core/HttpResponse.mjs.map +1 -1
- package/lib/core/SetupApi.d.mts +1 -1
- package/lib/core/SetupApi.d.ts +1 -1
- package/lib/core/getResponse.d.mts +1 -1
- package/lib/core/getResponse.d.ts +1 -1
- package/lib/core/graphql.d.mts +2 -2
- package/lib/core/graphql.d.ts +2 -2
- package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
- package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
- package/lib/core/handlers/HttpHandler.d.mts +1 -1
- package/lib/core/handlers/HttpHandler.d.ts +1 -1
- package/lib/core/handlers/RequestHandler.d.mts +1 -1
- package/lib/core/handlers/RequestHandler.d.ts +1 -1
- package/lib/core/http.d.mts +1 -1
- package/lib/core/http.d.ts +1 -1
- package/lib/core/index.d.mts +2 -2
- package/lib/core/index.d.ts +2 -2
- package/lib/core/passthrough.d.mts +1 -1
- package/lib/core/passthrough.d.ts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
- package/lib/core/utils/executeHandlers.d.mts +1 -1
- package/lib/core/utils/executeHandlers.d.ts +1 -1
- package/lib/core/utils/handleRequest.d.mts +1 -1
- package/lib/core/utils/handleRequest.d.ts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.mts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.ts +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
- package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
- package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
- package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.mts +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.ts +1 -1
- package/lib/iife/index.js +96 -51
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/package.json +4 -4
- package/src/core/HttpResponse.ts +8 -5
package/browser/package.json
CHANGED
package/lib/browser/index.js
CHANGED
|
@@ -403,7 +403,7 @@ You can also automate this process and make the worker script update automatical
|
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
405
|
|
|
406
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
406
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs
|
|
407
407
|
var encoder = new TextEncoder();
|
|
408
408
|
function encodeBuffer(text) {
|
|
409
409
|
return encoder.encode(text);
|
|
@@ -419,8 +419,26 @@ function toArrayBuffer(array) {
|
|
|
419
419
|
);
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
422
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-3RXCRGL2.mjs
|
|
423
423
|
var IS_PATCHED_MODULE = Symbol("isPatchedModule");
|
|
424
|
+
function canParseUrl(url) {
|
|
425
|
+
try {
|
|
426
|
+
new URL(url);
|
|
427
|
+
return true;
|
|
428
|
+
} catch (_error) {
|
|
429
|
+
return false;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
function getValueBySymbol(symbolName, source) {
|
|
433
|
+
const ownSymbols = Object.getOwnPropertySymbols(source);
|
|
434
|
+
const symbol = ownSymbols.find((symbol2) => {
|
|
435
|
+
return symbol2.description === symbolName;
|
|
436
|
+
});
|
|
437
|
+
if (symbol) {
|
|
438
|
+
return Reflect.get(source, symbol);
|
|
439
|
+
}
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
424
442
|
var _FetchResponse = class extends Response {
|
|
425
443
|
static isConfigurableStatusCode(status) {
|
|
426
444
|
return status >= 200 && status <= 599;
|
|
@@ -436,18 +454,30 @@ var _FetchResponse = class extends Response {
|
|
|
436
454
|
return !_FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status);
|
|
437
455
|
}
|
|
438
456
|
static setUrl(url, response) {
|
|
439
|
-
if (!url) {
|
|
457
|
+
if (!url || url === "about:" || !canParseUrl(url)) {
|
|
440
458
|
return;
|
|
441
459
|
}
|
|
442
|
-
|
|
443
|
-
|
|
460
|
+
const state = getValueBySymbol("state", response);
|
|
461
|
+
if (state) {
|
|
462
|
+
state.urlList.push(new URL(url));
|
|
463
|
+
} else {
|
|
464
|
+
Object.defineProperty(response, "url", {
|
|
465
|
+
value: url,
|
|
466
|
+
enumerable: true,
|
|
467
|
+
configurable: true,
|
|
468
|
+
writable: false
|
|
469
|
+
});
|
|
444
470
|
}
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Parses the given raw HTTP headers into a Fetch API `Headers` instance.
|
|
474
|
+
*/
|
|
475
|
+
static parseRawHeaders(rawHeaders) {
|
|
476
|
+
const headers = new Headers();
|
|
477
|
+
for (let line = 0; line < rawHeaders.length; line += 2) {
|
|
478
|
+
headers.append(rawHeaders[line], rawHeaders[line + 1]);
|
|
479
|
+
}
|
|
480
|
+
return headers;
|
|
451
481
|
}
|
|
452
482
|
constructor(body, init = {}) {
|
|
453
483
|
var _a;
|
|
@@ -455,16 +485,14 @@ var _FetchResponse = class extends Response {
|
|
|
455
485
|
const safeStatus = _FetchResponse.isConfigurableStatusCode(status) ? status : 200;
|
|
456
486
|
const finalBody = _FetchResponse.isResponseWithBody(status) ? body : null;
|
|
457
487
|
super(finalBody, {
|
|
458
|
-
|
|
459
|
-
|
|
488
|
+
status: safeStatus,
|
|
489
|
+
statusText: init.statusText,
|
|
490
|
+
headers: init.headers
|
|
460
491
|
});
|
|
461
492
|
if (status !== safeStatus) {
|
|
462
|
-
const
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
if (stateSymbol) {
|
|
466
|
-
const state = Reflect.get(this, stateSymbol);
|
|
467
|
-
Reflect.set(state, "status", status);
|
|
493
|
+
const state = getValueBySymbol("state", this);
|
|
494
|
+
if (state) {
|
|
495
|
+
state.status = status;
|
|
468
496
|
} else {
|
|
469
497
|
Object.defineProperty(this, "status", {
|
|
470
498
|
value: status,
|
|
@@ -480,6 +508,10 @@ var _FetchResponse = class extends Response {
|
|
|
480
508
|
var FetchResponse = _FetchResponse;
|
|
481
509
|
FetchResponse.STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304];
|
|
482
510
|
FetchResponse.STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308];
|
|
511
|
+
var kRawRequest = Symbol("kRawRequest");
|
|
512
|
+
function setRawRequest(request, rawRequest) {
|
|
513
|
+
Reflect.set(request, kRawRequest, rawRequest);
|
|
514
|
+
}
|
|
483
515
|
|
|
484
516
|
// node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
|
|
485
517
|
var __defProp2 = Object.defineProperty;
|
|
@@ -918,7 +950,7 @@ var _Emitter = class {
|
|
|
918
950
|
var Emitter = _Emitter;
|
|
919
951
|
Emitter.defaultMaxListeners = 10;
|
|
920
952
|
|
|
921
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
953
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
|
|
922
954
|
var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
|
|
923
955
|
function getGlobalSymbol(symbol) {
|
|
924
956
|
return (
|
|
@@ -1066,7 +1098,7 @@ function createRequestId() {
|
|
|
1066
1098
|
return Math.random().toString(16).slice(2);
|
|
1067
1099
|
}
|
|
1068
1100
|
|
|
1069
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1101
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/index.mjs
|
|
1070
1102
|
var BatchInterceptor = class extends Interceptor {
|
|
1071
1103
|
constructor(options) {
|
|
1072
1104
|
BatchInterceptor.symbol = Symbol(options.name);
|
|
@@ -1353,7 +1385,7 @@ var DeferredPromise = class extends Promise {
|
|
|
1353
1385
|
}
|
|
1354
1386
|
};
|
|
1355
1387
|
|
|
1356
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1388
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-L37TY7LC.mjs
|
|
1357
1389
|
var InterceptorError = class extends Error {
|
|
1358
1390
|
constructor(message) {
|
|
1359
1391
|
super(message);
|
|
@@ -1388,12 +1420,14 @@ var RequestController = class {
|
|
|
1388
1420
|
this[kResponsePromise].resolve(response);
|
|
1389
1421
|
}
|
|
1390
1422
|
/**
|
|
1391
|
-
* Error this request with the given
|
|
1423
|
+
* Error this request with the given reason.
|
|
1424
|
+
*
|
|
1392
1425
|
* @example
|
|
1393
1426
|
* controller.errorWith()
|
|
1394
1427
|
* controller.errorWith(new Error('Oops!'))
|
|
1428
|
+
* controller.errorWith({ message: 'Oops!'})
|
|
1395
1429
|
*/
|
|
1396
|
-
errorWith(
|
|
1430
|
+
errorWith(reason) {
|
|
1397
1431
|
invariant.as(
|
|
1398
1432
|
InterceptorError,
|
|
1399
1433
|
!this[kRequestHandled],
|
|
@@ -1402,7 +1436,7 @@ var RequestController = class {
|
|
|
1402
1436
|
this.request.url
|
|
1403
1437
|
);
|
|
1404
1438
|
this[kRequestHandled] = true;
|
|
1405
|
-
this[kResponsePromise].resolve(
|
|
1439
|
+
this[kResponsePromise].resolve(reason);
|
|
1406
1440
|
}
|
|
1407
1441
|
};
|
|
1408
1442
|
async function emitAsync(emitter, eventName, ...data) {
|
|
@@ -1414,6 +1448,9 @@ async function emitAsync(emitter, eventName, ...data) {
|
|
|
1414
1448
|
await listener.apply(emitter, data);
|
|
1415
1449
|
}
|
|
1416
1450
|
}
|
|
1451
|
+
function isObject(value, loose = false) {
|
|
1452
|
+
return loose ? Object.prototype.toString.call(value).startsWith("[object ") : Object.prototype.toString.call(value) === "[object Object]";
|
|
1453
|
+
}
|
|
1417
1454
|
function isPropertyAccessible(obj, key) {
|
|
1418
1455
|
try {
|
|
1419
1456
|
obj[key];
|
|
@@ -1441,7 +1478,10 @@ function createServerErrorResponse(body) {
|
|
|
1441
1478
|
);
|
|
1442
1479
|
}
|
|
1443
1480
|
function isResponseError(response) {
|
|
1444
|
-
return isPropertyAccessible(response, "type") && response.type === "error";
|
|
1481
|
+
return response != null && response instanceof Response && isPropertyAccessible(response, "type") && response.type === "error";
|
|
1482
|
+
}
|
|
1483
|
+
function isResponseLike(value) {
|
|
1484
|
+
return isObject(value, true) && isPropertyAccessible(value, "status") && isPropertyAccessible(value, "statusText") && isPropertyAccessible(value, "bodyUsed");
|
|
1445
1485
|
}
|
|
1446
1486
|
function isNodeLikeError(error2) {
|
|
1447
1487
|
if (error2 == null) {
|
|
@@ -1456,12 +1496,21 @@ async function handleRequest2(options) {
|
|
|
1456
1496
|
const handleResponse = async (response) => {
|
|
1457
1497
|
if (response instanceof Error) {
|
|
1458
1498
|
options.onError(response);
|
|
1459
|
-
|
|
1499
|
+
return true;
|
|
1500
|
+
}
|
|
1501
|
+
if (isResponseError(response)) {
|
|
1460
1502
|
options.onRequestError(response);
|
|
1461
|
-
|
|
1503
|
+
return true;
|
|
1504
|
+
}
|
|
1505
|
+
if (isResponseLike(response)) {
|
|
1462
1506
|
await options.onResponse(response);
|
|
1507
|
+
return true;
|
|
1463
1508
|
}
|
|
1464
|
-
|
|
1509
|
+
if (isObject(response)) {
|
|
1510
|
+
options.onError(response);
|
|
1511
|
+
return true;
|
|
1512
|
+
}
|
|
1513
|
+
return false;
|
|
1465
1514
|
};
|
|
1466
1515
|
const handleResponseError = async (error2) => {
|
|
1467
1516
|
if (error2 instanceof InterceptorError) {
|
|
@@ -1499,7 +1548,7 @@ async function handleRequest2(options) {
|
|
|
1499
1548
|
}
|
|
1500
1549
|
}
|
|
1501
1550
|
const result = await until(async () => {
|
|
1502
|
-
const
|
|
1551
|
+
const requestListenersPromise = emitAsync(options.emitter, "request", {
|
|
1503
1552
|
requestId: options.requestId,
|
|
1504
1553
|
request: options.request,
|
|
1505
1554
|
controller: options.controller
|
|
@@ -1507,11 +1556,10 @@ async function handleRequest2(options) {
|
|
|
1507
1556
|
await Promise.race([
|
|
1508
1557
|
// Short-circuit the request handling promise if the request gets aborted.
|
|
1509
1558
|
requestAbortPromise,
|
|
1510
|
-
|
|
1559
|
+
requestListenersPromise,
|
|
1511
1560
|
options.controller[kResponsePromise]
|
|
1512
1561
|
]);
|
|
1513
|
-
|
|
1514
|
-
return mockedResponse;
|
|
1562
|
+
return await options.controller[kResponsePromise];
|
|
1515
1563
|
});
|
|
1516
1564
|
if (requestAbortPromise.state === "rejected") {
|
|
1517
1565
|
options.onError(requestAbortPromise.rejectionReason);
|
|
@@ -1554,7 +1602,7 @@ async function handleRequest2(options) {
|
|
|
1554
1602
|
return false;
|
|
1555
1603
|
}
|
|
1556
1604
|
|
|
1557
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1605
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-TX5GBTFY.mjs
|
|
1558
1606
|
function hasConfigurableGlobal(propertyName) {
|
|
1559
1607
|
const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName);
|
|
1560
1608
|
if (typeof descriptor === "undefined") {
|
|
@@ -1575,15 +1623,7 @@ function hasConfigurableGlobal(propertyName) {
|
|
|
1575
1623
|
return true;
|
|
1576
1624
|
}
|
|
1577
1625
|
|
|
1578
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1579
|
-
function canParseUrl(url) {
|
|
1580
|
-
try {
|
|
1581
|
-
new URL(url);
|
|
1582
|
-
return true;
|
|
1583
|
-
} catch (_error) {
|
|
1584
|
-
return false;
|
|
1585
|
-
}
|
|
1586
|
-
}
|
|
1626
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-ARPHZXGT.mjs
|
|
1587
1627
|
function createNetworkError(cause) {
|
|
1588
1628
|
return Object.assign(new TypeError("Failed to fetch"), {
|
|
1589
1629
|
cause
|
|
@@ -1731,8 +1771,11 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1731
1771
|
);
|
|
1732
1772
|
globalThis.fetch = async (input, init) => {
|
|
1733
1773
|
const requestId = createRequestId();
|
|
1734
|
-
const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.
|
|
1774
|
+
const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.href) : input;
|
|
1735
1775
|
const request = new Request(resolvedInput, init);
|
|
1776
|
+
if (input instanceof Request) {
|
|
1777
|
+
setRawRequest(request, input);
|
|
1778
|
+
}
|
|
1736
1779
|
const responsePromise = new DeferredPromise();
|
|
1737
1780
|
const controller = new RequestController(request);
|
|
1738
1781
|
this.logger.info("[%s] %s", request.method, request.url);
|
|
@@ -1800,6 +1843,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1800
1843
|
this.logger.info(
|
|
1801
1844
|
"no mocked response received, performing request as-is..."
|
|
1802
1845
|
);
|
|
1846
|
+
const requestCloneForResponseEvent = request.clone();
|
|
1803
1847
|
return pureFetch(request).then(async (response) => {
|
|
1804
1848
|
this.logger.info("original fetch performed", response);
|
|
1805
1849
|
if (this.emitter.listenerCount("response") > 0) {
|
|
@@ -1808,7 +1852,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1808
1852
|
await emitAsync(this.emitter, "response", {
|
|
1809
1853
|
response: responseClone,
|
|
1810
1854
|
isMockedResponse: false,
|
|
1811
|
-
request,
|
|
1855
|
+
request: requestCloneForResponseEvent,
|
|
1812
1856
|
requestId
|
|
1813
1857
|
});
|
|
1814
1858
|
}
|
|
@@ -1835,7 +1879,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1835
1879
|
var FetchInterceptor = _FetchInterceptor;
|
|
1836
1880
|
FetchInterceptor.symbol = Symbol("fetch");
|
|
1837
1881
|
|
|
1838
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1882
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-QKSBFQDK.mjs
|
|
1839
1883
|
function concatArrayBuffer(left, right) {
|
|
1840
1884
|
const result = new Uint8Array(left.byteLength + right.byteLength);
|
|
1841
1885
|
result.set(left, 0);
|
|
@@ -2481,6 +2525,7 @@ var XMLHttpRequestController = class {
|
|
|
2481
2525
|
}
|
|
2482
2526
|
});
|
|
2483
2527
|
define(fetchRequest, "headers", proxyHeaders);
|
|
2528
|
+
setRawRequest(fetchRequest, this.request);
|
|
2484
2529
|
this.logger.info("converted request to a Fetch API Request!", fetchRequest);
|
|
2485
2530
|
return fetchRequest;
|
|
2486
2531
|
}
|