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/lib/browser/index.mjs
CHANGED
|
@@ -376,7 +376,7 @@ You can also automate this process and make the worker script update automatical
|
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
379
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs
|
|
380
380
|
var encoder = new TextEncoder();
|
|
381
381
|
function encodeBuffer(text) {
|
|
382
382
|
return encoder.encode(text);
|
|
@@ -392,8 +392,26 @@ function toArrayBuffer(array) {
|
|
|
392
392
|
);
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
395
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-3RXCRGL2.mjs
|
|
396
396
|
var IS_PATCHED_MODULE = Symbol("isPatchedModule");
|
|
397
|
+
function canParseUrl(url) {
|
|
398
|
+
try {
|
|
399
|
+
new URL(url);
|
|
400
|
+
return true;
|
|
401
|
+
} catch (_error) {
|
|
402
|
+
return false;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
function getValueBySymbol(symbolName, source) {
|
|
406
|
+
const ownSymbols = Object.getOwnPropertySymbols(source);
|
|
407
|
+
const symbol = ownSymbols.find((symbol2) => {
|
|
408
|
+
return symbol2.description === symbolName;
|
|
409
|
+
});
|
|
410
|
+
if (symbol) {
|
|
411
|
+
return Reflect.get(source, symbol);
|
|
412
|
+
}
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
397
415
|
var _FetchResponse = class extends Response {
|
|
398
416
|
static isConfigurableStatusCode(status) {
|
|
399
417
|
return status >= 200 && status <= 599;
|
|
@@ -409,18 +427,30 @@ var _FetchResponse = class extends Response {
|
|
|
409
427
|
return !_FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status);
|
|
410
428
|
}
|
|
411
429
|
static setUrl(url, response) {
|
|
412
|
-
if (!url) {
|
|
430
|
+
if (!url || url === "about:" || !canParseUrl(url)) {
|
|
413
431
|
return;
|
|
414
432
|
}
|
|
415
|
-
|
|
416
|
-
|
|
433
|
+
const state = getValueBySymbol("state", response);
|
|
434
|
+
if (state) {
|
|
435
|
+
state.urlList.push(new URL(url));
|
|
436
|
+
} else {
|
|
437
|
+
Object.defineProperty(response, "url", {
|
|
438
|
+
value: url,
|
|
439
|
+
enumerable: true,
|
|
440
|
+
configurable: true,
|
|
441
|
+
writable: false
|
|
442
|
+
});
|
|
417
443
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Parses the given raw HTTP headers into a Fetch API `Headers` instance.
|
|
447
|
+
*/
|
|
448
|
+
static parseRawHeaders(rawHeaders) {
|
|
449
|
+
const headers = new Headers();
|
|
450
|
+
for (let line = 0; line < rawHeaders.length; line += 2) {
|
|
451
|
+
headers.append(rawHeaders[line], rawHeaders[line + 1]);
|
|
452
|
+
}
|
|
453
|
+
return headers;
|
|
424
454
|
}
|
|
425
455
|
constructor(body, init = {}) {
|
|
426
456
|
var _a;
|
|
@@ -428,16 +458,14 @@ var _FetchResponse = class extends Response {
|
|
|
428
458
|
const safeStatus = _FetchResponse.isConfigurableStatusCode(status) ? status : 200;
|
|
429
459
|
const finalBody = _FetchResponse.isResponseWithBody(status) ? body : null;
|
|
430
460
|
super(finalBody, {
|
|
431
|
-
|
|
432
|
-
|
|
461
|
+
status: safeStatus,
|
|
462
|
+
statusText: init.statusText,
|
|
463
|
+
headers: init.headers
|
|
433
464
|
});
|
|
434
465
|
if (status !== safeStatus) {
|
|
435
|
-
const
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
if (stateSymbol) {
|
|
439
|
-
const state = Reflect.get(this, stateSymbol);
|
|
440
|
-
Reflect.set(state, "status", status);
|
|
466
|
+
const state = getValueBySymbol("state", this);
|
|
467
|
+
if (state) {
|
|
468
|
+
state.status = status;
|
|
441
469
|
} else {
|
|
442
470
|
Object.defineProperty(this, "status", {
|
|
443
471
|
value: status,
|
|
@@ -453,6 +481,10 @@ var _FetchResponse = class extends Response {
|
|
|
453
481
|
var FetchResponse = _FetchResponse;
|
|
454
482
|
FetchResponse.STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304];
|
|
455
483
|
FetchResponse.STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308];
|
|
484
|
+
var kRawRequest = Symbol("kRawRequest");
|
|
485
|
+
function setRawRequest(request, rawRequest) {
|
|
486
|
+
Reflect.set(request, kRawRequest, rawRequest);
|
|
487
|
+
}
|
|
456
488
|
|
|
457
489
|
// node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
|
|
458
490
|
var __defProp = Object.defineProperty;
|
|
@@ -891,7 +923,7 @@ var _Emitter = class {
|
|
|
891
923
|
var Emitter = _Emitter;
|
|
892
924
|
Emitter.defaultMaxListeners = 10;
|
|
893
925
|
|
|
894
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
926
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
|
|
895
927
|
var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
|
|
896
928
|
function getGlobalSymbol(symbol) {
|
|
897
929
|
return (
|
|
@@ -1039,7 +1071,7 @@ function createRequestId() {
|
|
|
1039
1071
|
return Math.random().toString(16).slice(2);
|
|
1040
1072
|
}
|
|
1041
1073
|
|
|
1042
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1074
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/index.mjs
|
|
1043
1075
|
var BatchInterceptor = class extends Interceptor {
|
|
1044
1076
|
constructor(options) {
|
|
1045
1077
|
BatchInterceptor.symbol = Symbol(options.name);
|
|
@@ -1326,7 +1358,7 @@ var DeferredPromise = class extends Promise {
|
|
|
1326
1358
|
}
|
|
1327
1359
|
};
|
|
1328
1360
|
|
|
1329
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1361
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-L37TY7LC.mjs
|
|
1330
1362
|
var InterceptorError = class extends Error {
|
|
1331
1363
|
constructor(message) {
|
|
1332
1364
|
super(message);
|
|
@@ -1361,12 +1393,14 @@ var RequestController = class {
|
|
|
1361
1393
|
this[kResponsePromise].resolve(response);
|
|
1362
1394
|
}
|
|
1363
1395
|
/**
|
|
1364
|
-
* Error this request with the given
|
|
1396
|
+
* Error this request with the given reason.
|
|
1397
|
+
*
|
|
1365
1398
|
* @example
|
|
1366
1399
|
* controller.errorWith()
|
|
1367
1400
|
* controller.errorWith(new Error('Oops!'))
|
|
1401
|
+
* controller.errorWith({ message: 'Oops!'})
|
|
1368
1402
|
*/
|
|
1369
|
-
errorWith(
|
|
1403
|
+
errorWith(reason) {
|
|
1370
1404
|
invariant.as(
|
|
1371
1405
|
InterceptorError,
|
|
1372
1406
|
!this[kRequestHandled],
|
|
@@ -1375,7 +1409,7 @@ var RequestController = class {
|
|
|
1375
1409
|
this.request.url
|
|
1376
1410
|
);
|
|
1377
1411
|
this[kRequestHandled] = true;
|
|
1378
|
-
this[kResponsePromise].resolve(
|
|
1412
|
+
this[kResponsePromise].resolve(reason);
|
|
1379
1413
|
}
|
|
1380
1414
|
};
|
|
1381
1415
|
async function emitAsync(emitter, eventName, ...data) {
|
|
@@ -1387,6 +1421,9 @@ async function emitAsync(emitter, eventName, ...data) {
|
|
|
1387
1421
|
await listener.apply(emitter, data);
|
|
1388
1422
|
}
|
|
1389
1423
|
}
|
|
1424
|
+
function isObject(value, loose = false) {
|
|
1425
|
+
return loose ? Object.prototype.toString.call(value).startsWith("[object ") : Object.prototype.toString.call(value) === "[object Object]";
|
|
1426
|
+
}
|
|
1390
1427
|
function isPropertyAccessible(obj, key) {
|
|
1391
1428
|
try {
|
|
1392
1429
|
obj[key];
|
|
@@ -1414,7 +1451,10 @@ function createServerErrorResponse(body) {
|
|
|
1414
1451
|
);
|
|
1415
1452
|
}
|
|
1416
1453
|
function isResponseError(response) {
|
|
1417
|
-
return isPropertyAccessible(response, "type") && response.type === "error";
|
|
1454
|
+
return response != null && response instanceof Response && isPropertyAccessible(response, "type") && response.type === "error";
|
|
1455
|
+
}
|
|
1456
|
+
function isResponseLike(value) {
|
|
1457
|
+
return isObject(value, true) && isPropertyAccessible(value, "status") && isPropertyAccessible(value, "statusText") && isPropertyAccessible(value, "bodyUsed");
|
|
1418
1458
|
}
|
|
1419
1459
|
function isNodeLikeError(error2) {
|
|
1420
1460
|
if (error2 == null) {
|
|
@@ -1429,12 +1469,21 @@ async function handleRequest2(options) {
|
|
|
1429
1469
|
const handleResponse = async (response) => {
|
|
1430
1470
|
if (response instanceof Error) {
|
|
1431
1471
|
options.onError(response);
|
|
1432
|
-
|
|
1472
|
+
return true;
|
|
1473
|
+
}
|
|
1474
|
+
if (isResponseError(response)) {
|
|
1433
1475
|
options.onRequestError(response);
|
|
1434
|
-
|
|
1476
|
+
return true;
|
|
1477
|
+
}
|
|
1478
|
+
if (isResponseLike(response)) {
|
|
1435
1479
|
await options.onResponse(response);
|
|
1480
|
+
return true;
|
|
1436
1481
|
}
|
|
1437
|
-
|
|
1482
|
+
if (isObject(response)) {
|
|
1483
|
+
options.onError(response);
|
|
1484
|
+
return true;
|
|
1485
|
+
}
|
|
1486
|
+
return false;
|
|
1438
1487
|
};
|
|
1439
1488
|
const handleResponseError = async (error2) => {
|
|
1440
1489
|
if (error2 instanceof InterceptorError) {
|
|
@@ -1472,7 +1521,7 @@ async function handleRequest2(options) {
|
|
|
1472
1521
|
}
|
|
1473
1522
|
}
|
|
1474
1523
|
const result = await until(async () => {
|
|
1475
|
-
const
|
|
1524
|
+
const requestListenersPromise = emitAsync(options.emitter, "request", {
|
|
1476
1525
|
requestId: options.requestId,
|
|
1477
1526
|
request: options.request,
|
|
1478
1527
|
controller: options.controller
|
|
@@ -1480,11 +1529,10 @@ async function handleRequest2(options) {
|
|
|
1480
1529
|
await Promise.race([
|
|
1481
1530
|
// Short-circuit the request handling promise if the request gets aborted.
|
|
1482
1531
|
requestAbortPromise,
|
|
1483
|
-
|
|
1532
|
+
requestListenersPromise,
|
|
1484
1533
|
options.controller[kResponsePromise]
|
|
1485
1534
|
]);
|
|
1486
|
-
|
|
1487
|
-
return mockedResponse;
|
|
1535
|
+
return await options.controller[kResponsePromise];
|
|
1488
1536
|
});
|
|
1489
1537
|
if (requestAbortPromise.state === "rejected") {
|
|
1490
1538
|
options.onError(requestAbortPromise.rejectionReason);
|
|
@@ -1527,7 +1575,7 @@ async function handleRequest2(options) {
|
|
|
1527
1575
|
return false;
|
|
1528
1576
|
}
|
|
1529
1577
|
|
|
1530
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1578
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-TX5GBTFY.mjs
|
|
1531
1579
|
function hasConfigurableGlobal(propertyName) {
|
|
1532
1580
|
const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName);
|
|
1533
1581
|
if (typeof descriptor === "undefined") {
|
|
@@ -1548,15 +1596,7 @@ function hasConfigurableGlobal(propertyName) {
|
|
|
1548
1596
|
return true;
|
|
1549
1597
|
}
|
|
1550
1598
|
|
|
1551
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1552
|
-
function canParseUrl(url) {
|
|
1553
|
-
try {
|
|
1554
|
-
new URL(url);
|
|
1555
|
-
return true;
|
|
1556
|
-
} catch (_error) {
|
|
1557
|
-
return false;
|
|
1558
|
-
}
|
|
1559
|
-
}
|
|
1599
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-ARPHZXGT.mjs
|
|
1560
1600
|
function createNetworkError(cause) {
|
|
1561
1601
|
return Object.assign(new TypeError("Failed to fetch"), {
|
|
1562
1602
|
cause
|
|
@@ -1704,8 +1744,11 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1704
1744
|
);
|
|
1705
1745
|
globalThis.fetch = async (input, init) => {
|
|
1706
1746
|
const requestId = createRequestId();
|
|
1707
|
-
const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.
|
|
1747
|
+
const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.href) : input;
|
|
1708
1748
|
const request = new Request(resolvedInput, init);
|
|
1749
|
+
if (input instanceof Request) {
|
|
1750
|
+
setRawRequest(request, input);
|
|
1751
|
+
}
|
|
1709
1752
|
const responsePromise = new DeferredPromise();
|
|
1710
1753
|
const controller = new RequestController(request);
|
|
1711
1754
|
this.logger.info("[%s] %s", request.method, request.url);
|
|
@@ -1773,6 +1816,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1773
1816
|
this.logger.info(
|
|
1774
1817
|
"no mocked response received, performing request as-is..."
|
|
1775
1818
|
);
|
|
1819
|
+
const requestCloneForResponseEvent = request.clone();
|
|
1776
1820
|
return pureFetch(request).then(async (response) => {
|
|
1777
1821
|
this.logger.info("original fetch performed", response);
|
|
1778
1822
|
if (this.emitter.listenerCount("response") > 0) {
|
|
@@ -1781,7 +1825,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1781
1825
|
await emitAsync(this.emitter, "response", {
|
|
1782
1826
|
response: responseClone,
|
|
1783
1827
|
isMockedResponse: false,
|
|
1784
|
-
request,
|
|
1828
|
+
request: requestCloneForResponseEvent,
|
|
1785
1829
|
requestId
|
|
1786
1830
|
});
|
|
1787
1831
|
}
|
|
@@ -1808,7 +1852,7 @@ var _FetchInterceptor = class extends Interceptor {
|
|
|
1808
1852
|
var FetchInterceptor = _FetchInterceptor;
|
|
1809
1853
|
FetchInterceptor.symbol = Symbol("fetch");
|
|
1810
1854
|
|
|
1811
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.
|
|
1855
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.38.7/node_modules/@mswjs/interceptors/lib/browser/chunk-QKSBFQDK.mjs
|
|
1812
1856
|
function concatArrayBuffer(left, right) {
|
|
1813
1857
|
const result = new Uint8Array(left.byteLength + right.byteLength);
|
|
1814
1858
|
result.set(left, 0);
|
|
@@ -2454,6 +2498,7 @@ var XMLHttpRequestController = class {
|
|
|
2454
2498
|
}
|
|
2455
2499
|
});
|
|
2456
2500
|
define(fetchRequest, "headers", proxyHeaders);
|
|
2501
|
+
setRawRequest(fetchRequest, this.request);
|
|
2457
2502
|
this.logger.info("converted request to a Fetch API Request!", fetchRequest);
|
|
2458
2503
|
return fetchRequest;
|
|
2459
2504
|
}
|