msw 0.44.0 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{glossary-17949ef9.d.ts → glossary-297d38ba.d.ts} +0 -1
- package/lib/iife/index.js +14282 -5461
- package/lib/iife/index.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +54 -102
- package/lib/index.js.map +1 -1
- package/lib/mockServiceWorker.js +4 -68
- package/lib/native/index.d.ts +1 -1
- package/lib/native/index.js +7 -14
- package/lib/native/index.mjs +7 -16
- package/lib/node/index.d.ts +2 -2
- package/lib/node/index.js +7 -14
- package/lib/node/index.js.map +1 -1
- package/lib/node/index.mjs +7 -16
- package/lib/node/index.mjs.map +1 -1
- package/package.json +10 -3
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as ResponseTransformer, s as status, a as set, d as delay, f as fetch, b as RequestHandler, S as SetupWorkerApi, D as DefaultContext, c as DefaultBodyType, M as MockedRequest, e as ResponseResolver, g as ResponseResolutionContext, h as SerializedResponse, i as RequestHandlerDefaultInfo, j as MockedResponse, k as ResponseLookupResult, l as SharedOptions, m as ServerLifecycleEventsMap } from './glossary-
|
|
2
|
-
export { A as AsyncResponseResolverReturnType, c as DefaultBodyType, u as DefaultRequestMultipartBody, y as DelayMode, M as MockedRequest, H as MockedRequestInit, j as MockedResponse, z as RequestCache, E as RequestDestination, b as RequestHandler, B as RequestMode, F as RequestPriority, C as RequestRedirect, G as RequestReferrerPolicy, v as ResponseComposition, w as ResponseCompositionOptions, x as ResponseFunction, e as ResponseResolver, t as ResponseResolverReturnType, R as ResponseTransformer, S as SetupWorkerApi, l as SharedOptions, q as StartOptions, o as createResponseComposition, p as defaultContext, n as defaultResponse, r as response } from './glossary-
|
|
1
|
+
import { R as ResponseTransformer, s as status, a as set, d as delay, f as fetch, b as RequestHandler, S as SetupWorkerApi, D as DefaultContext, c as DefaultBodyType, M as MockedRequest, e as ResponseResolver, g as ResponseResolutionContext, h as SerializedResponse, i as RequestHandlerDefaultInfo, j as MockedResponse, k as ResponseLookupResult, l as SharedOptions, m as ServerLifecycleEventsMap } from './glossary-297d38ba.js';
|
|
2
|
+
export { A as AsyncResponseResolverReturnType, c as DefaultBodyType, u as DefaultRequestMultipartBody, y as DelayMode, M as MockedRequest, H as MockedRequestInit, j as MockedResponse, z as RequestCache, E as RequestDestination, b as RequestHandler, B as RequestMode, F as RequestPriority, C as RequestRedirect, G as RequestReferrerPolicy, v as ResponseComposition, w as ResponseCompositionOptions, x as ResponseFunction, e as ResponseResolver, t as ResponseResolverReturnType, R as ResponseTransformer, S as SetupWorkerApi, l as SharedOptions, q as StartOptions, o as createResponseComposition, p as defaultContext, n as defaultResponse, r as response } from './glossary-297d38ba.js';
|
|
3
3
|
import * as cookieUtils from 'cookie';
|
|
4
4
|
import { GraphQLError, OperationTypeNode, DocumentNode } from 'graphql';
|
|
5
5
|
import { StrictEventEmitter } from 'strict-event-emitter';
|
package/lib/index.js
CHANGED
|
@@ -425,17 +425,15 @@ async function enableMocking(context, options) {
|
|
|
425
425
|
}
|
|
426
426
|
|
|
427
427
|
// src/setupWorker/start/utils/createMessageChannel.ts
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
};
|
|
438
|
-
}
|
|
428
|
+
var WorkerChannel = class {
|
|
429
|
+
constructor(port) {
|
|
430
|
+
this.port = port;
|
|
431
|
+
}
|
|
432
|
+
postMessage(event, ...rest2) {
|
|
433
|
+
const [data2, transfer] = rest2;
|
|
434
|
+
this.port.postMessage({ type: event, data: data2 }, { transfer });
|
|
435
|
+
}
|
|
436
|
+
};
|
|
439
437
|
|
|
440
438
|
// src/utils/NetworkError.ts
|
|
441
439
|
var NetworkError = class extends Error {
|
|
@@ -563,15 +561,8 @@ function isStringEqual(actual, expected) {
|
|
|
563
561
|
|
|
564
562
|
// src/utils/request/MockedRequest.ts
|
|
565
563
|
var MockedRequest = class extends import_interceptors.IsomorphicRequest {
|
|
566
|
-
constructor(
|
|
567
|
-
|
|
568
|
-
super(...args);
|
|
569
|
-
};
|
|
570
|
-
if (input instanceof import_interceptors.IsomorphicRequest) {
|
|
571
|
-
__super(input);
|
|
572
|
-
} else {
|
|
573
|
-
__super(input, init);
|
|
574
|
-
}
|
|
564
|
+
constructor(url, init = {}) {
|
|
565
|
+
super(url, init);
|
|
575
566
|
if (init.id) {
|
|
576
567
|
this.id = init.id;
|
|
577
568
|
}
|
|
@@ -684,9 +675,6 @@ var getResponse = async (request, handlers, resolutionContext) => {
|
|
|
684
675
|
// src/utils/request/onUnhandledRequest.ts
|
|
685
676
|
var import_js_levenshtein = __toESM(require("js-levenshtein"));
|
|
686
677
|
|
|
687
|
-
// src/utils/internal/parseGraphQLRequest.ts
|
|
688
|
-
var import_graphql = require("graphql");
|
|
689
|
-
|
|
690
678
|
// src/utils/request/getPublicUrlFromRequest.ts
|
|
691
679
|
var getPublicUrlFromRequest = (request) => {
|
|
692
680
|
return request.referrer.startsWith(request.url.origin) ? request.url.pathname : new URL(request.url.pathname, `${request.url.protocol}//${request.url.host}`).href;
|
|
@@ -705,7 +693,8 @@ function parseDocumentNode(node) {
|
|
|
705
693
|
}
|
|
706
694
|
function parseQuery(query) {
|
|
707
695
|
try {
|
|
708
|
-
const
|
|
696
|
+
const { parse: parse3 } = require("graphql");
|
|
697
|
+
const ast = parse3(query);
|
|
709
698
|
return parseDocumentNode(ast);
|
|
710
699
|
} catch (error2) {
|
|
711
700
|
return error2;
|
|
@@ -1382,69 +1371,27 @@ async function handleRequest(request, handlers, options, emitter, handleRequestO
|
|
|
1382
1371
|
return transformedResponse;
|
|
1383
1372
|
}
|
|
1384
1373
|
|
|
1385
|
-
// src/setupWorker/start/utils/streamResponse.ts
|
|
1386
|
-
var import_outvariant3 = require("outvariant");
|
|
1387
|
-
async function streamResponse(operationChannel, messageChannel, mockedResponse) {
|
|
1388
|
-
const response2 = new Response(mockedResponse.body, mockedResponse);
|
|
1389
|
-
delete mockedResponse.body;
|
|
1390
|
-
messageChannel.send({
|
|
1391
|
-
type: "MOCK_RESPONSE_START",
|
|
1392
|
-
payload: mockedResponse
|
|
1393
|
-
});
|
|
1394
|
-
(0, import_outvariant3.invariant)(response2.body, "Failed to stream mocked response with no body");
|
|
1395
|
-
const reader = response2.body.getReader();
|
|
1396
|
-
while (true) {
|
|
1397
|
-
const { done, value } = await reader.read();
|
|
1398
|
-
if (!done) {
|
|
1399
|
-
operationChannel.postMessage({
|
|
1400
|
-
type: "MOCK_RESPONSE_CHUNK",
|
|
1401
|
-
payload: value
|
|
1402
|
-
});
|
|
1403
|
-
continue;
|
|
1404
|
-
}
|
|
1405
|
-
operationChannel.postMessage({
|
|
1406
|
-
type: "MOCK_RESPONSE_END"
|
|
1407
|
-
});
|
|
1408
|
-
operationChannel.close();
|
|
1409
|
-
reader.releaseLock();
|
|
1410
|
-
break;
|
|
1411
|
-
}
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
// src/utils/internal/StrictBroadcastChannel.ts
|
|
1415
|
-
var ParentClass = typeof BroadcastChannel == "undefined" ? class UnsupportedEnvironment {
|
|
1416
|
-
constructor() {
|
|
1417
|
-
throw new Error("Cannot construct BroadcastChannel in a non-browser environment");
|
|
1418
|
-
}
|
|
1419
|
-
} : BroadcastChannel;
|
|
1420
|
-
var StrictBroadcastChannel = class extends ParentClass {
|
|
1421
|
-
postMessage(message) {
|
|
1422
|
-
return super.postMessage(message);
|
|
1423
|
-
}
|
|
1424
|
-
};
|
|
1425
|
-
|
|
1426
1374
|
// src/setupWorker/start/createRequestListener.ts
|
|
1427
1375
|
var createRequestListener = (context, options) => {
|
|
1428
1376
|
return async (event, message) => {
|
|
1429
|
-
const messageChannel =
|
|
1377
|
+
const messageChannel = new WorkerChannel(event.ports[0]);
|
|
1378
|
+
const request = parseWorkerRequest(message.payload);
|
|
1430
1379
|
try {
|
|
1431
|
-
const request = parseWorkerRequest(message.payload);
|
|
1432
|
-
const operationChannel = new StrictBroadcastChannel(`msw-response-stream-${request.id}`);
|
|
1433
1380
|
await handleRequest(request, context.requestHandlers, options, context.emitter, {
|
|
1434
1381
|
transformResponse,
|
|
1435
1382
|
onPassthroughResponse() {
|
|
1436
|
-
|
|
1437
|
-
type: "MOCK_NOT_FOUND"
|
|
1438
|
-
});
|
|
1383
|
+
messageChannel.postMessage("NOT_FOUND");
|
|
1439
1384
|
},
|
|
1440
|
-
onMockedResponse(response2) {
|
|
1441
|
-
if (response2.body
|
|
1442
|
-
|
|
1443
|
-
type: "MOCK_RESPONSE",
|
|
1444
|
-
payload: response2
|
|
1445
|
-
});
|
|
1385
|
+
async onMockedResponse(response2) {
|
|
1386
|
+
if (response2.body instanceof ReadableStream) {
|
|
1387
|
+
throw new Error(devUtils.formatMessage('Failed to construct a mocked response with a "ReadableStream" body: mocked streams are not supported. Follow https://github.com/mswjs/msw/issues/1336 for more details.'));
|
|
1446
1388
|
}
|
|
1447
|
-
|
|
1389
|
+
const responseInstance = new Response(response2.body, response2);
|
|
1390
|
+
const responseBodyBuffer = await responseInstance.arrayBuffer();
|
|
1391
|
+
const responseBody = response2.body == null ? null : responseBodyBuffer;
|
|
1392
|
+
messageChannel.postMessage("MOCK_RESPONSE", __spreadProps(__spreadValues({}, response2), {
|
|
1393
|
+
body: responseBody
|
|
1394
|
+
}), [responseBodyBuffer]);
|
|
1448
1395
|
},
|
|
1449
1396
|
onMockedResponseSent(response2, { handler, publicRequest, parsedRequest }) {
|
|
1450
1397
|
if (options.quiet) {
|
|
@@ -1455,25 +1402,29 @@ var createRequestListener = (context, options) => {
|
|
|
1455
1402
|
});
|
|
1456
1403
|
} catch (error2) {
|
|
1457
1404
|
if (error2 instanceof NetworkError) {
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
name: error2.name,
|
|
1462
|
-
message: error2.message
|
|
1463
|
-
}
|
|
1405
|
+
messageChannel.postMessage("NETWORK_ERROR", {
|
|
1406
|
+
name: error2.name,
|
|
1407
|
+
message: error2.message
|
|
1464
1408
|
});
|
|
1409
|
+
return;
|
|
1465
1410
|
}
|
|
1466
1411
|
if (error2 instanceof Error) {
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1412
|
+
devUtils.error(`Uncaught exception in the request handler for "%s %s":
|
|
1413
|
+
|
|
1414
|
+
%s
|
|
1415
|
+
|
|
1416
|
+
This exception has been gracefully handled as a 500 response, however, it's strongly recommended to resolve this error, as it indicates a mistake in your code. If you wish to mock an error response, please see this guide: https://mswjs.io/docs/recipes/mocking-error-responses`, request.method, request.url, error2);
|
|
1417
|
+
messageChannel.postMessage("MOCK_RESPONSE", {
|
|
1418
|
+
status: 500,
|
|
1419
|
+
statusText: "Request Handler Error",
|
|
1420
|
+
headers: {
|
|
1421
|
+
"Content-Type": "application/json"
|
|
1422
|
+
},
|
|
1423
|
+
body: JSON.stringify({
|
|
1424
|
+
name: error2.name,
|
|
1425
|
+
message: error2.message,
|
|
1426
|
+
stack: error2.stack
|
|
1427
|
+
})
|
|
1477
1428
|
});
|
|
1478
1429
|
}
|
|
1479
1430
|
}
|
|
@@ -1493,8 +1444,8 @@ function transformResponse(response2) {
|
|
|
1493
1444
|
async function requestIntegrityCheck(context, serviceWorker) {
|
|
1494
1445
|
context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
|
|
1495
1446
|
const { payload: actualChecksum } = await context.events.once("INTEGRITY_CHECK_RESPONSE");
|
|
1496
|
-
if (actualChecksum !== "
|
|
1497
|
-
throw new Error(`Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"
|
|
1447
|
+
if (actualChecksum !== "b3066ef78c2f9090b4ce87e874965995") {
|
|
1448
|
+
throw new Error(`Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"b3066ef78c2f9090b4ce87e874965995"}).`);
|
|
1498
1449
|
}
|
|
1499
1450
|
return serviceWorker;
|
|
1500
1451
|
}
|
|
@@ -1681,7 +1632,9 @@ function createFallbackRequestListener(context, options) {
|
|
|
1681
1632
|
interceptors: [new import_fetch3.FetchInterceptor(), new import_XMLHttpRequest.XMLHttpRequestInterceptor()]
|
|
1682
1633
|
});
|
|
1683
1634
|
interceptor.on("request", async (request) => {
|
|
1684
|
-
const mockedRequest = new MockedRequest(request)
|
|
1635
|
+
const mockedRequest = new MockedRequest(request.url, __spreadProps(__spreadValues({}, request), {
|
|
1636
|
+
body: await request.arrayBuffer()
|
|
1637
|
+
}));
|
|
1685
1638
|
const response2 = await handleRequest(mockedRequest, context.requestHandlers, options, context.emitter, {
|
|
1686
1639
|
transformResponse(response3) {
|
|
1687
1640
|
return {
|
|
@@ -1881,7 +1834,6 @@ var rest = {
|
|
|
1881
1834
|
};
|
|
1882
1835
|
|
|
1883
1836
|
// src/graphql.ts
|
|
1884
|
-
var import_graphql2 = require("graphql");
|
|
1885
1837
|
function createScopedGraphQLHandler(operationType, url) {
|
|
1886
1838
|
return (operationName, resolver) => {
|
|
1887
1839
|
return new GraphQLHandler(operationType, operationName, url, resolver);
|
|
@@ -1894,14 +1846,14 @@ function createGraphQLOperationHandler(url) {
|
|
|
1894
1846
|
}
|
|
1895
1847
|
var standardGraphQLHandlers = {
|
|
1896
1848
|
operation: createGraphQLOperationHandler("*"),
|
|
1897
|
-
query: createScopedGraphQLHandler(
|
|
1898
|
-
mutation: createScopedGraphQLHandler(
|
|
1849
|
+
query: createScopedGraphQLHandler("query", "*"),
|
|
1850
|
+
mutation: createScopedGraphQLHandler("mutation", "*")
|
|
1899
1851
|
};
|
|
1900
1852
|
function createGraphQLLink(url) {
|
|
1901
1853
|
return {
|
|
1902
1854
|
operation: createGraphQLOperationHandler(url),
|
|
1903
|
-
query: createScopedGraphQLHandler(
|
|
1904
|
-
mutation: createScopedGraphQLHandler(
|
|
1855
|
+
query: createScopedGraphQLHandler("query", url),
|
|
1856
|
+
mutation: createScopedGraphQLHandler("mutation", url)
|
|
1905
1857
|
};
|
|
1906
1858
|
}
|
|
1907
1859
|
var graphql = __spreadProps(__spreadValues({}, standardGraphQLHandlers), {
|