msw 2.8.7 → 2.10.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/browser/index.js +13 -17
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/index.mjs +13 -17
- package/lib/browser/index.mjs.map +1 -1
- package/lib/core/handlers/WebSocketHandler.d.mts +5 -5
- package/lib/core/handlers/WebSocketHandler.d.ts +5 -5
- package/lib/core/handlers/WebSocketHandler.js +12 -8
- package/lib/core/handlers/WebSocketHandler.js.map +1 -1
- package/lib/core/handlers/WebSocketHandler.mjs +12 -8
- package/lib/core/handlers/WebSocketHandler.mjs.map +1 -1
- package/lib/core/ws/handleWebSocketEvent.js +26 -39
- package/lib/core/ws/handleWebSocketEvent.js.map +1 -1
- package/lib/core/ws/handleWebSocketEvent.mjs +26 -39
- package/lib/core/ws/handleWebSocketEvent.mjs.map +1 -1
- package/lib/core/ws/utils/getMessageLength.js.map +1 -1
- package/lib/core/ws/utils/getMessageLength.mjs.map +1 -1
- package/lib/core/ws/utils/getPublicData.js.map +1 -1
- package/lib/core/ws/utils/getPublicData.mjs.map +1 -1
- package/lib/iife/index.js +51 -62
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +91 -54
- package/package.json +3 -2
- package/src/browser/setupWorker/glossary.ts +7 -7
- package/src/browser/setupWorker/setupWorker.ts +0 -1
- package/src/browser/setupWorker/start/createRequestListener.ts +3 -4
- package/src/browser/setupWorker/start/createResponseListener.ts +8 -12
- package/src/browser/utils/{parseWorkerRequest.ts → deserializeRequest.ts} +5 -5
- package/src/core/handlers/WebSocketHandler.test.ts +12 -61
- package/src/core/handlers/WebSocketHandler.ts +16 -13
- package/src/core/ws/handleWebSocketEvent.ts +36 -55
- package/src/core/ws/utils/getMessageLength.ts +1 -1
- package/src/core/ws/utils/getPublicData.ts +1 -1
- package/src/mockServiceWorker.js +89 -52
- package/src/tsconfig.worker.json +13 -0
package/lib/iife/index.js
CHANGED
|
@@ -28038,7 +28038,6 @@ Consider naming this operation or using "graphql.operation()" request handler to
|
|
|
28038
28038
|
|
|
28039
28039
|
// src/core/handlers/WebSocketHandler.ts
|
|
28040
28040
|
var kEmitter = Symbol("kEmitter");
|
|
28041
|
-
var kDispatchEvent = Symbol("kDispatchEvent");
|
|
28042
28041
|
var kSender = Symbol("kSender");
|
|
28043
28042
|
var kStopPropagationPatched = Symbol("kStopPropagationPatched");
|
|
28044
28043
|
var KOnStopPropagation = Symbol("KOnStopPropagation");
|
|
@@ -28055,8 +28054,7 @@ Consider naming this operation or using "graphql.operation()" request handler to
|
|
|
28055
28054
|
callFrame;
|
|
28056
28055
|
[kEmitter];
|
|
28057
28056
|
parse(args) {
|
|
28058
|
-
const
|
|
28059
|
-
const { url: clientUrl } = connection.client;
|
|
28057
|
+
const clientUrl = new URL(args.url);
|
|
28060
28058
|
clientUrl.pathname = clientUrl.pathname.replace(/^\/socket.io\//, "/");
|
|
28061
28059
|
const match2 = matchRequestUrl(clientUrl, this.url);
|
|
28062
28060
|
return {
|
|
@@ -28066,13 +28064,20 @@ Consider naming this operation or using "graphql.operation()" request handler to
|
|
|
28066
28064
|
predicate(args) {
|
|
28067
28065
|
return args.parsedResult.match.matches;
|
|
28068
28066
|
}
|
|
28069
|
-
async
|
|
28070
|
-
const parsedResult = this.parse({
|
|
28071
|
-
|
|
28067
|
+
async run(connection) {
|
|
28068
|
+
const parsedResult = this.parse({
|
|
28069
|
+
url: connection.client.url
|
|
28070
|
+
});
|
|
28071
|
+
if (!this.predicate({ url: connection.client.url, parsedResult })) {
|
|
28072
|
+
return false;
|
|
28073
|
+
}
|
|
28072
28074
|
const resolvedConnection = {
|
|
28073
28075
|
...connection,
|
|
28074
28076
|
params: parsedResult.match.params || {}
|
|
28075
28077
|
};
|
|
28078
|
+
return this.connect(resolvedConnection);
|
|
28079
|
+
}
|
|
28080
|
+
connect(connection) {
|
|
28076
28081
|
connection.client.addEventListener(
|
|
28077
28082
|
"message",
|
|
28078
28083
|
createStopPropagationListener(this)
|
|
@@ -28097,7 +28102,7 @@ Consider naming this operation or using "graphql.operation()" request handler to
|
|
|
28097
28102
|
"close",
|
|
28098
28103
|
createStopPropagationListener(this)
|
|
28099
28104
|
);
|
|
28100
|
-
this[kEmitter].emit("connection",
|
|
28105
|
+
return this[kEmitter].emit("connection", connection);
|
|
28101
28106
|
}
|
|
28102
28107
|
};
|
|
28103
28108
|
function createStopPropagationListener(handler) {
|
|
@@ -29038,11 +29043,11 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
|
|
|
29038
29043
|
return request.body;
|
|
29039
29044
|
}
|
|
29040
29045
|
|
|
29041
|
-
// src/browser/utils/
|
|
29042
|
-
function
|
|
29043
|
-
return new Request(
|
|
29044
|
-
...
|
|
29045
|
-
body: pruneGetRequestBody(
|
|
29046
|
+
// src/browser/utils/deserializeRequest.ts
|
|
29047
|
+
function deserializeRequest(serializedRequest) {
|
|
29048
|
+
return new Request(serializedRequest.url, {
|
|
29049
|
+
...serializedRequest,
|
|
29050
|
+
body: pruneGetRequestBody(serializedRequest)
|
|
29046
29051
|
});
|
|
29047
29052
|
}
|
|
29048
29053
|
|
|
@@ -29067,11 +29072,10 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
|
|
|
29067
29072
|
return async (event, message3) => {
|
|
29068
29073
|
const messageChannel = new WorkerChannel(event.ports[0]);
|
|
29069
29074
|
const requestId = message3.payload.id;
|
|
29070
|
-
const request =
|
|
29075
|
+
const request = deserializeRequest(message3.payload);
|
|
29071
29076
|
const requestCloneForLogs = request.clone();
|
|
29072
29077
|
const requestClone = request.clone();
|
|
29073
29078
|
RequestHandler.cache.set(request, requestClone);
|
|
29074
|
-
context.requests.set(requestId, requestClone);
|
|
29075
29079
|
try {
|
|
29076
29080
|
await handleRequest(
|
|
29077
29081
|
request,
|
|
@@ -29149,7 +29153,7 @@ This exception has been gracefully handled as a 500 response, however, it's stro
|
|
|
29149
29153
|
async function checkWorkerIntegrity(context) {
|
|
29150
29154
|
context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
|
|
29151
29155
|
const { payload } = await context.events.once("INTEGRITY_CHECK_RESPONSE");
|
|
29152
|
-
if (payload.checksum !== "
|
|
29156
|
+
if (payload.checksum !== "f5825c521429caf22a4dd13b66e243af") {
|
|
29153
29157
|
devUtils.warn(
|
|
29154
29158
|
`The currently registered Service Worker has been generated by a different version of MSW (${payload.packageVersion}) and may not be fully compatible with the installed version.
|
|
29155
29159
|
|
|
@@ -29166,20 +29170,18 @@ You can also automate this process and make the worker script update automatical
|
|
|
29166
29170
|
function createResponseListener(context) {
|
|
29167
29171
|
return (_, message3) => {
|
|
29168
29172
|
const { payload: responseJson } = message3;
|
|
29169
|
-
const
|
|
29170
|
-
|
|
29171
|
-
context.requests.delete(requestId);
|
|
29172
|
-
if (responseJson.type?.includes("opaque")) {
|
|
29173
|
+
const request = deserializeRequest(responseJson.request);
|
|
29174
|
+
if (responseJson.response.type?.includes("opaque")) {
|
|
29173
29175
|
return;
|
|
29174
29176
|
}
|
|
29175
|
-
const response = responseJson.status === 0 ? Response.error() : new FetchResponse(
|
|
29177
|
+
const response = responseJson.response.status === 0 ? Response.error() : new FetchResponse(
|
|
29176
29178
|
/**
|
|
29177
29179
|
* Responses may be streams here, but when we create a response object
|
|
29178
29180
|
* with null-body status codes, like 204, 205, 304 Response will
|
|
29179
29181
|
* throw when passed a non-null body, so ensure it's null here
|
|
29180
29182
|
* for those codes
|
|
29181
29183
|
*/
|
|
29182
|
-
FetchResponse.isResponseWithBody(responseJson.status) ? responseJson.body : null,
|
|
29184
|
+
FetchResponse.isResponseWithBody(responseJson.response.status) ? responseJson.response.body : null,
|
|
29183
29185
|
{
|
|
29184
29186
|
...responseJson,
|
|
29185
29187
|
/**
|
|
@@ -29193,9 +29195,9 @@ You can also automate this process and make the worker script update automatical
|
|
|
29193
29195
|
context.emitter.emit(
|
|
29194
29196
|
responseJson.isMockedResponse ? "response:mocked" : "response:bypass",
|
|
29195
29197
|
{
|
|
29196
|
-
|
|
29198
|
+
requestId: responseJson.request.id,
|
|
29197
29199
|
request,
|
|
29198
|
-
|
|
29200
|
+
response
|
|
29199
29201
|
}
|
|
29200
29202
|
);
|
|
29201
29203
|
};
|
|
@@ -31409,48 +31411,36 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
|
|
|
31409
31411
|
// src/core/ws/handleWebSocketEvent.ts
|
|
31410
31412
|
function handleWebSocketEvent(options) {
|
|
31411
31413
|
webSocketInterceptor.on("connection", async (connection) => {
|
|
31412
|
-
const handlers = options.getHandlers();
|
|
31413
|
-
|
|
31414
|
-
|
|
31415
|
-
|
|
31416
|
-
|
|
31417
|
-
|
|
31418
|
-
if (isHandlerKind("EventHandler")(handler) && handler.predicate({
|
|
31419
|
-
event: connectionEvent,
|
|
31420
|
-
parsedResult: handler.parse({
|
|
31421
|
-
event: connectionEvent
|
|
31414
|
+
const handlers = options.getHandlers().filter(isHandlerKind("EventHandler"));
|
|
31415
|
+
if (handlers.length > 0) {
|
|
31416
|
+
options?.onMockedConnection(connection);
|
|
31417
|
+
await Promise.all(
|
|
31418
|
+
handlers.map((handler) => {
|
|
31419
|
+
return handler.run(connection);
|
|
31422
31420
|
})
|
|
31423
|
-
|
|
31424
|
-
|
|
31425
|
-
}
|
|
31421
|
+
);
|
|
31422
|
+
return;
|
|
31426
31423
|
}
|
|
31427
|
-
|
|
31428
|
-
|
|
31429
|
-
|
|
31430
|
-
|
|
31424
|
+
const request = new Request(connection.client.url, {
|
|
31425
|
+
headers: {
|
|
31426
|
+
upgrade: "websocket",
|
|
31427
|
+
connection: "upgrade"
|
|
31431
31428
|
}
|
|
31432
|
-
}
|
|
31433
|
-
|
|
31434
|
-
|
|
31435
|
-
|
|
31436
|
-
|
|
31437
|
-
|
|
31438
|
-
|
|
31439
|
-
|
|
31440
|
-
|
|
31441
|
-
|
|
31442
|
-
).catch((error3) => {
|
|
31443
|
-
const errorEvent = new Event("error");
|
|
31444
|
-
Object.defineProperty(errorEvent, "cause", {
|
|
31445
|
-
enumerable: true,
|
|
31446
|
-
configurable: false,
|
|
31447
|
-
value: error3
|
|
31448
|
-
});
|
|
31449
|
-
connection.client.socket.dispatchEvent(errorEvent);
|
|
31429
|
+
});
|
|
31430
|
+
await onUnhandledRequest(
|
|
31431
|
+
request,
|
|
31432
|
+
options.getUnhandledRequestStrategy()
|
|
31433
|
+
).catch((error3) => {
|
|
31434
|
+
const errorEvent = new Event("error");
|
|
31435
|
+
Object.defineProperty(errorEvent, "cause", {
|
|
31436
|
+
enumerable: true,
|
|
31437
|
+
configurable: false,
|
|
31438
|
+
value: error3
|
|
31450
31439
|
});
|
|
31451
|
-
|
|
31452
|
-
|
|
31453
|
-
|
|
31440
|
+
connection.client.socket.dispatchEvent(errorEvent);
|
|
31441
|
+
});
|
|
31442
|
+
options?.onPassthroughConnection(connection);
|
|
31443
|
+
connection.server.connect();
|
|
31454
31444
|
});
|
|
31455
31445
|
}
|
|
31456
31446
|
|
|
@@ -31685,7 +31675,6 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
|
|
|
31685
31675
|
return this.handlersController.currentHandlers();
|
|
31686
31676
|
},
|
|
31687
31677
|
registration: null,
|
|
31688
|
-
requests: /* @__PURE__ */ new Map(),
|
|
31689
31678
|
emitter: this.emitter,
|
|
31690
31679
|
workerChannel: {
|
|
31691
31680
|
on: (eventType, callback) => {
|