msw 2.11.3 → 2.11.5
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 +96 -90
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/index.mjs +96 -90
- package/lib/browser/index.mjs.map +1 -1
- package/lib/core/{HttpResponse-BbwAqLE_.d.ts → HttpResponse-BpT5A_2L.d.ts} +1 -0
- package/lib/core/{HttpResponse-B4YmE-GJ.d.mts → HttpResponse-DGUjNQHG.d.mts} +1 -0
- 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 +1 -1
- package/lib/core/graphql.d.ts +1 -1
- package/lib/core/handlers/GraphQLHandler.d.mts +1 -1
- package/lib/core/handlers/GraphQLHandler.d.ts +1 -1
- package/lib/core/handlers/HttpHandler.d.mts +1 -1
- package/lib/core/handlers/HttpHandler.d.ts +1 -1
- package/lib/core/handlers/HttpHandler.js +0 -5
- package/lib/core/handlers/HttpHandler.js.map +1 -1
- package/lib/core/handlers/HttpHandler.mjs +1 -6
- package/lib/core/handlers/HttpHandler.mjs.map +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/index.js +2 -0
- package/lib/core/index.js.map +1 -1
- package/lib/core/index.mjs +4 -0
- package/lib/core/index.mjs.map +1 -1
- 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/HttpResponse/decorators.js +1 -1
- package/lib/core/utils/HttpResponse/decorators.js.map +1 -1
- package/lib/core/utils/HttpResponse/decorators.mjs +1 -1
- package/lib/core/utils/HttpResponse/decorators.mjs.map +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 +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +1 -1
- 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/utils/logging/serializeResponse.js +1 -1
- package/lib/core/utils/logging/serializeResponse.js.map +1 -1
- package/lib/core/utils/logging/serializeResponse.mjs +1 -1
- package/lib/core/utils/logging/serializeResponse.mjs.map +1 -1
- package/lib/core/utils/request/getRequestCookies.js +3 -13
- package/lib/core/utils/request/getRequestCookies.js.map +1 -1
- package/lib/core/utils/request/getRequestCookies.mjs +6 -3
- package/lib/core/utils/request/getRequestCookies.mjs.map +1 -1
- package/lib/core/utils/url/cleanUrl.d.mts +1 -2
- package/lib/core/utils/url/cleanUrl.d.ts +1 -2
- package/lib/core/utils/url/cleanUrl.js +1 -5
- package/lib/core/utils/url/cleanUrl.js.map +1 -1
- package/lib/core/utils/url/cleanUrl.mjs +1 -5
- package/lib/core/utils/url/cleanUrl.mjs.map +1 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +1 -2
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +1 -2
- package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +1 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +1 -1
- package/lib/core/ws/WebSocketMemoryClientStore.d.mts +1 -2
- package/lib/core/ws/WebSocketMemoryClientStore.d.ts +1 -2
- package/lib/core/ws/WebSocketMemoryClientStore.js.map +1 -1
- package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.mts +2 -3
- package/lib/core/ws/handleWebSocketEvent.d.ts +2 -3
- package/lib/core/ws/handleWebSocketEvent.js.map +1 -1
- package/lib/core/ws/handleWebSocketEvent.mjs.map +1 -1
- package/lib/core/ws/utils/getMessageLength.d.mts +1 -1
- package/lib/core/ws/utils/getMessageLength.d.ts +1 -1
- package/lib/core/ws/utils/getMessageLength.js.map +1 -1
- package/lib/core/ws/utils/getMessageLength.mjs.map +1 -1
- package/lib/iife/index.js +556 -605
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +2 -1
- package/lib/shims/cookie.d.mts +7 -0
- package/lib/shims/cookie.d.ts +7 -0
- package/lib/shims/cookie.js +204 -0
- package/lib/shims/cookie.mjs +196 -0
- package/lib/shims/statuses.d.mts +6 -0
- package/lib/shims/statuses.d.ts +6 -0
- package/lib/shims/statuses.js +195 -0
- package/lib/shims/statuses.mjs +187 -0
- package/package.json +5 -6
- package/src/browser/setupWorker/glossary.ts +1 -5
- package/src/browser/setupWorker/setupWorker.ts +4 -9
- package/src/browser/setupWorker/start/createRequestListener.ts +4 -1
- package/src/browser/utils/{supportsReadableStreamTransfer.ts → supports.ts} +13 -0
- package/src/browser/utils/workerChannel.ts +13 -0
- package/src/core/HttpResponse.ts +1 -0
- package/src/core/handlers/HttpHandler.ts +1 -8
- package/src/core/index.ts +5 -0
- package/src/core/utils/HttpResponse/decorators.ts +1 -1
- package/src/core/utils/logging/serializeResponse.ts +1 -1
- package/src/core/utils/request/getRequestCookies.ts +6 -3
- package/src/core/utils/url/cleanUrl.ts +0 -4
- package/src/core/ws/WebSocketIndexedDBClientStore.ts +1 -1
- package/src/core/ws/WebSocketMemoryClientStore.ts +1 -1
- package/src/core/ws/handleWebSocketEvent.ts +1 -1
- package/src/core/ws/utils/getMessageLength.ts +1 -1
- package/src/mockServiceWorker.js +1 -0
- package/src/shims/cookie.ts +7 -0
- package/src/shims/statuses.ts +6 -0
- package/src/tsconfig.src.json +1 -6
- package/src/browser/utils/deferNetworkRequestsUntil.test.ts +0 -48
- package/src/browser/utils/deferNetworkRequestsUntil.ts +0 -29
package/lib/browser/index.js
CHANGED
|
@@ -124,6 +124,72 @@ function isNodeProcess() {
|
|
|
124
124
|
return false;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
// node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/build/index.mjs
|
|
128
|
+
function createDeferredExecutor() {
|
|
129
|
+
const executor = (resolve, reject) => {
|
|
130
|
+
executor.state = "pending";
|
|
131
|
+
executor.resolve = (data) => {
|
|
132
|
+
if (executor.state !== "pending") {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
executor.result = data;
|
|
136
|
+
const onFulfilled = (value) => {
|
|
137
|
+
executor.state = "fulfilled";
|
|
138
|
+
return value;
|
|
139
|
+
};
|
|
140
|
+
return resolve(
|
|
141
|
+
data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)
|
|
142
|
+
);
|
|
143
|
+
};
|
|
144
|
+
executor.reject = (reason) => {
|
|
145
|
+
if (executor.state !== "pending") {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
queueMicrotask(() => {
|
|
149
|
+
executor.state = "rejected";
|
|
150
|
+
});
|
|
151
|
+
return reject(executor.rejectionReason = reason);
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
return executor;
|
|
155
|
+
}
|
|
156
|
+
var DeferredPromise = class extends Promise {
|
|
157
|
+
#executor;
|
|
158
|
+
resolve;
|
|
159
|
+
reject;
|
|
160
|
+
constructor(executor = null) {
|
|
161
|
+
const deferredExecutor = createDeferredExecutor();
|
|
162
|
+
super((originalResolve, originalReject) => {
|
|
163
|
+
deferredExecutor(originalResolve, originalReject);
|
|
164
|
+
executor?.(deferredExecutor.resolve, deferredExecutor.reject);
|
|
165
|
+
});
|
|
166
|
+
this.#executor = deferredExecutor;
|
|
167
|
+
this.resolve = this.#executor.resolve;
|
|
168
|
+
this.reject = this.#executor.reject;
|
|
169
|
+
}
|
|
170
|
+
get state() {
|
|
171
|
+
return this.#executor.state;
|
|
172
|
+
}
|
|
173
|
+
get rejectionReason() {
|
|
174
|
+
return this.#executor.rejectionReason;
|
|
175
|
+
}
|
|
176
|
+
then(onFulfilled, onRejected) {
|
|
177
|
+
return this.#decorate(super.then(onFulfilled, onRejected));
|
|
178
|
+
}
|
|
179
|
+
catch(onRejected) {
|
|
180
|
+
return this.#decorate(super.catch(onRejected));
|
|
181
|
+
}
|
|
182
|
+
finally(onfinally) {
|
|
183
|
+
return this.#decorate(super.finally(onfinally));
|
|
184
|
+
}
|
|
185
|
+
#decorate(promise) {
|
|
186
|
+
return Object.defineProperties(promise, {
|
|
187
|
+
resolve: { configurable: true, value: this.resolve },
|
|
188
|
+
reject: { configurable: true, value: this.reject }
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
|
|
127
193
|
// src/browser/setupWorker/start/utils/prepareStartHandler.ts
|
|
128
194
|
var import_mergeRight = require("../core/utils/internal/mergeRight");
|
|
129
195
|
var DEFAULT_START_OPTIONS = {
|
|
@@ -231,72 +297,6 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
|
|
|
231
297
|
return registrationResult;
|
|
232
298
|
};
|
|
233
299
|
|
|
234
|
-
// node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/build/index.mjs
|
|
235
|
-
function createDeferredExecutor() {
|
|
236
|
-
const executor = (resolve, reject) => {
|
|
237
|
-
executor.state = "pending";
|
|
238
|
-
executor.resolve = (data) => {
|
|
239
|
-
if (executor.state !== "pending") {
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
executor.result = data;
|
|
243
|
-
const onFulfilled = (value) => {
|
|
244
|
-
executor.state = "fulfilled";
|
|
245
|
-
return value;
|
|
246
|
-
};
|
|
247
|
-
return resolve(
|
|
248
|
-
data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)
|
|
249
|
-
);
|
|
250
|
-
};
|
|
251
|
-
executor.reject = (reason) => {
|
|
252
|
-
if (executor.state !== "pending") {
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
queueMicrotask(() => {
|
|
256
|
-
executor.state = "rejected";
|
|
257
|
-
});
|
|
258
|
-
return reject(executor.rejectionReason = reason);
|
|
259
|
-
};
|
|
260
|
-
};
|
|
261
|
-
return executor;
|
|
262
|
-
}
|
|
263
|
-
var DeferredPromise = class extends Promise {
|
|
264
|
-
#executor;
|
|
265
|
-
resolve;
|
|
266
|
-
reject;
|
|
267
|
-
constructor(executor = null) {
|
|
268
|
-
const deferredExecutor = createDeferredExecutor();
|
|
269
|
-
super((originalResolve, originalReject) => {
|
|
270
|
-
deferredExecutor(originalResolve, originalReject);
|
|
271
|
-
executor?.(deferredExecutor.resolve, deferredExecutor.reject);
|
|
272
|
-
});
|
|
273
|
-
this.#executor = deferredExecutor;
|
|
274
|
-
this.resolve = this.#executor.resolve;
|
|
275
|
-
this.reject = this.#executor.reject;
|
|
276
|
-
}
|
|
277
|
-
get state() {
|
|
278
|
-
return this.#executor.state;
|
|
279
|
-
}
|
|
280
|
-
get rejectionReason() {
|
|
281
|
-
return this.#executor.rejectionReason;
|
|
282
|
-
}
|
|
283
|
-
then(onFulfilled, onRejected) {
|
|
284
|
-
return this.#decorate(super.then(onFulfilled, onRejected));
|
|
285
|
-
}
|
|
286
|
-
catch(onRejected) {
|
|
287
|
-
return this.#decorate(super.catch(onRejected));
|
|
288
|
-
}
|
|
289
|
-
finally(onfinally) {
|
|
290
|
-
return this.#decorate(super.finally(onfinally));
|
|
291
|
-
}
|
|
292
|
-
#decorate(promise) {
|
|
293
|
-
return Object.defineProperties(promise, {
|
|
294
|
-
resolve: { configurable: true, value: this.resolve },
|
|
295
|
-
reject: { configurable: true, value: this.reject }
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
|
|
300
300
|
// src/browser/setupWorker/start/utils/printStartMessage.ts
|
|
301
301
|
var import_devUtils2 = require("../core/utils/internal/devUtils");
|
|
302
302
|
function printStartMessage(args = {}) {
|
|
@@ -360,12 +360,30 @@ function deserializeRequest(serializedRequest) {
|
|
|
360
360
|
});
|
|
361
361
|
}
|
|
362
362
|
|
|
363
|
+
// src/browser/utils/supports.ts
|
|
364
|
+
function supportsServiceWorker() {
|
|
365
|
+
return typeof navigator !== "undefined" && "serviceWorker" in navigator && typeof location !== "undefined" && location.protocol !== "file:";
|
|
366
|
+
}
|
|
367
|
+
function supportsReadableStreamTransfer() {
|
|
368
|
+
try {
|
|
369
|
+
const stream = new ReadableStream({
|
|
370
|
+
start: (controller) => controller.close()
|
|
371
|
+
});
|
|
372
|
+
const message = new MessageChannel();
|
|
373
|
+
message.port1.postMessage(stream, [stream]);
|
|
374
|
+
return true;
|
|
375
|
+
} catch {
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
363
380
|
// src/browser/setupWorker/start/createRequestListener.ts
|
|
364
381
|
var import_RequestHandler = require("../core/handlers/RequestHandler");
|
|
365
382
|
var import_handleRequest = require("../core/utils/handleRequest");
|
|
366
383
|
var import_devUtils3 = require("../core/utils/internal/devUtils");
|
|
367
384
|
var import_toResponseInit = require("../core/utils/toResponseInit");
|
|
368
385
|
var import_isHandlerKind = require("../core/utils/internal/isHandlerKind");
|
|
386
|
+
var SUPPORTS_READABLE_STREAM_TRANSFER = supportsReadableStreamTransfer();
|
|
369
387
|
var createRequestListener = (context, options) => {
|
|
370
388
|
return async (event) => {
|
|
371
389
|
if (!context.isMockingEnabled && context.workerStoppedAt && event.data.interceptedAt > context.workerStoppedAt) {
|
|
@@ -392,7 +410,7 @@ var createRequestListener = (context, options) => {
|
|
|
392
410
|
const responseClone = response.clone();
|
|
393
411
|
const responseCloneForLogs = response.clone();
|
|
394
412
|
const responseInit = (0, import_toResponseInit.toResponseInit)(response);
|
|
395
|
-
if (
|
|
413
|
+
if (SUPPORTS_READABLE_STREAM_TRANSFER) {
|
|
396
414
|
const responseStreamOrNull = response.body;
|
|
397
415
|
event.postMessage(
|
|
398
416
|
"MOCK_RESPONSE",
|
|
@@ -1347,22 +1365,6 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
|
|
|
1347
1365
|
var import_devUtils8 = require("../core/utils/internal/devUtils");
|
|
1348
1366
|
var import_SetupApi = require("../core/SetupApi");
|
|
1349
1367
|
var import_mergeRight2 = require("../core/utils/internal/mergeRight");
|
|
1350
|
-
|
|
1351
|
-
// src/browser/utils/supportsReadableStreamTransfer.ts
|
|
1352
|
-
function supportsReadableStreamTransfer() {
|
|
1353
|
-
try {
|
|
1354
|
-
const stream = new ReadableStream({
|
|
1355
|
-
start: (controller) => controller.close()
|
|
1356
|
-
});
|
|
1357
|
-
const message = new MessageChannel();
|
|
1358
|
-
message.port1.postMessage(stream, [stream]);
|
|
1359
|
-
return true;
|
|
1360
|
-
} catch {
|
|
1361
|
-
return false;
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1364
|
-
|
|
1365
|
-
// src/browser/setupWorker/setupWorker.ts
|
|
1366
1368
|
var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor");
|
|
1367
1369
|
var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent");
|
|
1368
1370
|
var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger");
|
|
@@ -1602,6 +1604,7 @@ var Emitter2 = class {
|
|
|
1602
1604
|
|
|
1603
1605
|
// src/browser/utils/workerChannel.ts
|
|
1604
1606
|
var import_isObject = require("../core/utils/internal/isObject");
|
|
1607
|
+
var SUPPORTS_SERVICE_WORKER = supportsServiceWorker();
|
|
1605
1608
|
var WorkerEvent = class extends TypedEvent {
|
|
1606
1609
|
#workerEvent;
|
|
1607
1610
|
constructor(workerEvent) {
|
|
@@ -1631,6 +1634,9 @@ var WorkerChannel = class extends Emitter2 {
|
|
|
1631
1634
|
constructor(options) {
|
|
1632
1635
|
super();
|
|
1633
1636
|
this.options = options;
|
|
1637
|
+
if (!SUPPORTS_SERVICE_WORKER) {
|
|
1638
|
+
return;
|
|
1639
|
+
}
|
|
1634
1640
|
navigator.serviceWorker.addEventListener("message", async (event) => {
|
|
1635
1641
|
const worker = await this.options.worker;
|
|
1636
1642
|
if (event.source != null && event.source !== worker) {
|
|
@@ -1646,6 +1652,10 @@ var WorkerChannel = class extends Emitter2 {
|
|
|
1646
1652
|
* This triggers the `message` event listener on ServiceWorkerGlobalScope.
|
|
1647
1653
|
*/
|
|
1648
1654
|
postMessage(type) {
|
|
1655
|
+
invariant(
|
|
1656
|
+
SUPPORTS_SERVICE_WORKER,
|
|
1657
|
+
"Failed to post message on a WorkerChannel: the Service Worker API is unavailable in this context. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues"
|
|
1658
|
+
);
|
|
1649
1659
|
this.options.worker.then((worker) => {
|
|
1650
1660
|
worker.postMessage(type);
|
|
1651
1661
|
});
|
|
@@ -3036,11 +3046,7 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
|
|
|
3036
3046
|
emitter: this.emitter,
|
|
3037
3047
|
workerChannel: new WorkerChannel({
|
|
3038
3048
|
worker: workerPromise
|
|
3039
|
-
})
|
|
3040
|
-
supports: {
|
|
3041
|
-
serviceWorkerApi: "serviceWorker" in navigator && location.protocol !== "file:",
|
|
3042
|
-
readableStreamTransfer: supportsReadableStreamTransfer()
|
|
3043
|
-
}
|
|
3049
|
+
})
|
|
3044
3050
|
};
|
|
3045
3051
|
}
|
|
3046
3052
|
async start(options = {}) {
|
|
@@ -3079,7 +3085,7 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
|
|
|
3079
3085
|
this.subscriptions.push(() => {
|
|
3080
3086
|
import_webSocketInterceptor.webSocketInterceptor.dispose();
|
|
3081
3087
|
});
|
|
3082
|
-
if (!
|
|
3088
|
+
if (!supportsServiceWorker()) {
|
|
3083
3089
|
const fallbackInterceptor = createFallbackRequestListener(
|
|
3084
3090
|
this.context,
|
|
3085
3091
|
this.context.startOptions
|
|
@@ -3110,7 +3116,7 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
|
|
|
3110
3116
|
this.context.isMockingEnabled = false;
|
|
3111
3117
|
this.context.workerStoppedAt = Date.now();
|
|
3112
3118
|
this.context.emitter.removeAllListeners();
|
|
3113
|
-
if (
|
|
3119
|
+
if (supportsServiceWorker()) {
|
|
3114
3120
|
this.context.workerChannel.removeAllListeners("RESPONSE");
|
|
3115
3121
|
window.clearInterval(this.context.keepAliveInterval);
|
|
3116
3122
|
}
|