msw 2.14.5 → 2.14.7
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/README.md +5 -5
- package/lib/browser/index.js +232 -92
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/index.mjs +232 -92
- package/lib/browser/index.mjs.map +1 -1
- package/lib/core/{HttpResponse-CQwYpuKo.d.mts → HttpResponse-BTyqrRB6.d.mts} +1 -1
- package/lib/core/{HttpResponse-BFS34nkx.d.ts → HttpResponse-BXyXQFMJ.d.ts} +1 -1
- package/lib/core/HttpResponse.d.mts +1 -1
- package/lib/core/HttpResponse.d.ts +1 -1
- package/lib/core/HttpResponse.js +2 -2
- package/lib/core/HttpResponse.js.map +1 -1
- package/lib/core/HttpResponse.mjs +2 -2
- package/lib/core/HttpResponse.mjs.map +1 -1
- package/lib/core/experimental/compat.d.mts +2 -2
- package/lib/core/experimental/compat.d.ts +2 -2
- package/lib/core/experimental/define-network.d.mts +2 -2
- package/lib/core/experimental/define-network.d.ts +2 -2
- package/lib/core/experimental/define-network.js +16 -6
- package/lib/core/experimental/define-network.js.map +1 -1
- package/lib/core/experimental/define-network.mjs +16 -6
- package/lib/core/experimental/define-network.mjs.map +1 -1
- package/lib/core/experimental/frames/http-frame.d.mts +2 -2
- package/lib/core/experimental/frames/http-frame.d.ts +2 -2
- package/lib/core/experimental/frames/network-frame.d.mts +2 -2
- package/lib/core/experimental/frames/network-frame.d.ts +2 -2
- package/lib/core/experimental/frames/network-frame.js +2 -0
- package/lib/core/experimental/frames/network-frame.js.map +1 -1
- package/lib/core/experimental/frames/network-frame.mjs +2 -0
- package/lib/core/experimental/frames/network-frame.mjs.map +1 -1
- package/lib/core/experimental/frames/websocket-frame.d.mts +2 -2
- package/lib/core/experimental/frames/websocket-frame.d.ts +2 -2
- package/lib/core/experimental/handlers-controller.d.mts +1 -1
- package/lib/core/experimental/handlers-controller.d.ts +1 -1
- package/lib/core/experimental/index.d.mts +2 -2
- package/lib/core/experimental/index.d.ts +2 -2
- package/lib/core/experimental/on-unhandled-frame.d.mts +2 -2
- package/lib/core/experimental/on-unhandled-frame.d.ts +2 -2
- package/lib/core/experimental/setup-api.d.mts +1 -1
- package/lib/core/experimental/setup-api.d.ts +1 -1
- package/lib/core/experimental/sources/interceptor-source.d.mts +2 -2
- package/lib/core/experimental/sources/interceptor-source.d.ts +2 -2
- package/lib/core/experimental/sources/network-source.d.mts +2 -2
- package/lib/core/experimental/sources/network-source.d.ts +2 -2
- 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/RequestHandler.d.mts +1 -1
- package/lib/core/handlers/RequestHandler.d.ts +1 -1
- package/lib/core/handlers/WebSocketHandler.js +7 -6
- package/lib/core/handlers/WebSocketHandler.js.map +1 -1
- package/lib/core/handlers/WebSocketHandler.mjs +7 -6
- package/lib/core/handlers/WebSocketHandler.mjs.map +1 -1
- package/lib/core/http.d.mts +1 -1
- package/lib/core/http.d.ts +1 -1
- package/lib/core/index.d.mts +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/{on-unhandled-frame-BBR-P3kV.d.ts → on-unhandled-frame-0KmwUmeV.d.ts} +1 -1
- package/lib/core/{on-unhandled-frame-Cr1KOZ0I.d.mts → on-unhandled-frame-gkokW4Rr.d.mts} +1 -1
- package/lib/core/passthrough.d.mts +1 -1
- package/lib/core/passthrough.d.ts +1 -1
- package/lib/core/sse.d.mts +1 -1
- package/lib/core/sse.d.ts +1 -1
- package/lib/core/sse.js +18 -13
- package/lib/core/sse.js.map +1 -1
- package/lib/core/sse.mjs +18 -13
- package/lib/core/sse.mjs.map +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/Disposable.js +19 -1
- package/lib/core/utils/internal/Disposable.js.map +1 -1
- package/lib/core/utils/internal/Disposable.mjs +19 -1
- package/lib/core/utils/internal/Disposable.mjs.map +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.mts +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.ts +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.js +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.js.map +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.mjs +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.mjs.map +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/ws/WebSocketClientManager.js +4 -0
- package/lib/core/ws/WebSocketClientManager.js.map +1 -1
- package/lib/core/ws/WebSocketClientManager.mjs +4 -0
- package/lib/core/ws/WebSocketClientManager.mjs.map +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 +4435 -979
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/package.json +4 -5
- package/src/core/experimental/define-network.ts +30 -6
- package/src/core/sse.ts +15 -4
- package/src/core/utils/internal/Disposable.ts +22 -1
package/lib/browser/index.mjs
CHANGED
|
@@ -534,7 +534,7 @@ var _Emitter = class {
|
|
|
534
534
|
var Emitter = _Emitter;
|
|
535
535
|
Emitter.defaultMaxListeners = 10;
|
|
536
536
|
|
|
537
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
537
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/createRequestId-DYCsFHOi.mjs
|
|
538
538
|
var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
|
|
539
539
|
function getGlobalSymbol(symbol) {
|
|
540
540
|
return globalThis[symbol] || void 0;
|
|
@@ -683,7 +683,7 @@ function createRequestId() {
|
|
|
683
683
|
return Math.random().toString(16).slice(2);
|
|
684
684
|
}
|
|
685
685
|
|
|
686
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
686
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/resolveWebSocketUrl-C83-x9iE.mjs
|
|
687
687
|
function resolveWebSocketUrl(url) {
|
|
688
688
|
if (typeof url === "string") return resolveWebSocketUrl(new URL(url, typeof location !== "undefined" ? location.href : void 0));
|
|
689
689
|
if (url.protocol === "http:") url.protocol = "ws:";
|
|
@@ -694,15 +694,72 @@ function resolveWebSocketUrl(url) {
|
|
|
694
694
|
return url.href;
|
|
695
695
|
}
|
|
696
696
|
|
|
697
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
697
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/hasConfigurableGlobal-C8zq1MCg.mjs
|
|
698
698
|
async function emitAsync(emitter, eventName, ...data) {
|
|
699
699
|
const listeners = emitter.listeners(eventName);
|
|
700
700
|
if (listeners.length === 0) return;
|
|
701
701
|
for (const listener of listeners) await listener.apply(emitter, data);
|
|
702
702
|
}
|
|
703
|
+
var PatchesRegistry = class {
|
|
704
|
+
#replacements = /* @__PURE__ */ new Map();
|
|
705
|
+
applyPatch(owner, key, getNextValue) {
|
|
706
|
+
const ownerReplacements = this.#replacements.get(owner);
|
|
707
|
+
invariant(!ownerReplacements?.has(key), `Failed to replace a global value at "${String(key)}": already replaced.`);
|
|
708
|
+
const match = getDeepPropertyDescriptor(owner, key);
|
|
709
|
+
if (typeof match === "undefined") {
|
|
710
|
+
console.warn(`Failed to replace a global value at "${String(key)}": not a global value.`);
|
|
711
|
+
return () => {
|
|
712
|
+
};
|
|
713
|
+
}
|
|
714
|
+
if (match.descriptor.configurable) Object.defineProperty(owner, key, {
|
|
715
|
+
value: getNextValue(owner[key]),
|
|
716
|
+
enumerable: true,
|
|
717
|
+
configurable: true
|
|
718
|
+
});
|
|
719
|
+
else if (match.descriptor.writable) owner[key] = getNextValue(owner[key]);
|
|
720
|
+
else throw new Error(`Failed to patch a non-configurable non-writable property "${key.toString()}"`);
|
|
721
|
+
const restorePatch = () => {
|
|
722
|
+
const currentReplacements = this.#replacements.get(owner);
|
|
723
|
+
if (!currentReplacements?.has(key)) return;
|
|
724
|
+
if (match.owner === owner)
|
|
725
|
+
Object.defineProperty(match.owner, key, match.descriptor);
|
|
726
|
+
else
|
|
727
|
+
Reflect.deleteProperty(owner, key);
|
|
728
|
+
currentReplacements.delete(key);
|
|
729
|
+
if (currentReplacements.size === 0) this.#replacements.delete(owner);
|
|
730
|
+
};
|
|
731
|
+
if (ownerReplacements) ownerReplacements.set(key, restorePatch);
|
|
732
|
+
else this.#replacements.set(owner, /* @__PURE__ */ new Map([[key, restorePatch]]));
|
|
733
|
+
return restorePatch;
|
|
734
|
+
}
|
|
735
|
+
restoreAllPatches() {
|
|
736
|
+
const errors = [];
|
|
737
|
+
for (const [, ownerReplacements] of this.#replacements) for (const [, restorePatch] of ownerReplacements) try {
|
|
738
|
+
restorePatch();
|
|
739
|
+
} catch (error2) {
|
|
740
|
+
if (error2 instanceof Error) errors.push(error2);
|
|
741
|
+
else throw error2;
|
|
742
|
+
}
|
|
743
|
+
if (errors.length > 0) throw new AggregateError(errors, "FOO!");
|
|
744
|
+
}
|
|
745
|
+
};
|
|
746
|
+
var patchesRegistry = new PatchesRegistry();
|
|
747
|
+
function getDeepPropertyDescriptor(owner, key) {
|
|
748
|
+
let currentOwner = owner;
|
|
749
|
+
let descriptor;
|
|
750
|
+
while (currentOwner) {
|
|
751
|
+
descriptor = Object.getOwnPropertyDescriptor(currentOwner, key);
|
|
752
|
+
if (descriptor) return {
|
|
753
|
+
owner: currentOwner,
|
|
754
|
+
descriptor
|
|
755
|
+
};
|
|
756
|
+
currentOwner = Object.getPrototypeOf(currentOwner);
|
|
757
|
+
}
|
|
758
|
+
}
|
|
703
759
|
function hasConfigurableGlobal(propertyName) {
|
|
704
|
-
const
|
|
705
|
-
if (typeof
|
|
760
|
+
const match = getDeepPropertyDescriptor(globalThis, propertyName);
|
|
761
|
+
if (typeof match === "undefined") return false;
|
|
762
|
+
const { descriptor } = match;
|
|
706
763
|
if (typeof descriptor.get === "function" && typeof descriptor.get() === "undefined") return false;
|
|
707
764
|
if (typeof descriptor.get === "undefined" && descriptor.value == null) return false;
|
|
708
765
|
if (typeof descriptor.set === "undefined" && !descriptor.configurable) {
|
|
@@ -778,7 +835,7 @@ var DeferredPromise = class extends Promise {
|
|
|
778
835
|
}
|
|
779
836
|
};
|
|
780
837
|
|
|
781
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
838
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/interceptors/WebSocket/index.mjs
|
|
782
839
|
function bindEvent(target, event) {
|
|
783
840
|
Object.defineProperties(event, {
|
|
784
841
|
target: {
|
|
@@ -794,8 +851,8 @@ function bindEvent(target, event) {
|
|
|
794
851
|
});
|
|
795
852
|
return event;
|
|
796
853
|
}
|
|
797
|
-
var kCancelable = Symbol("kCancelable");
|
|
798
|
-
var kDefaultPrevented = Symbol("kDefaultPrevented");
|
|
854
|
+
var kCancelable = /* @__PURE__ */ Symbol("kCancelable");
|
|
855
|
+
var kDefaultPrevented = /* @__PURE__ */ Symbol("kDefaultPrevented");
|
|
799
856
|
var CancelableMessageEvent = class extends MessageEvent {
|
|
800
857
|
constructor(type, init) {
|
|
801
858
|
super(type, init);
|
|
@@ -848,8 +905,8 @@ var CancelableCloseEvent = class extends CloseEvent {
|
|
|
848
905
|
if (this.cancelable && !this[kDefaultPrevented]) this[kDefaultPrevented] = true;
|
|
849
906
|
}
|
|
850
907
|
};
|
|
851
|
-
var kEmitter$1 = Symbol("kEmitter");
|
|
852
|
-
var kBoundListener$1 = Symbol("kBoundListener");
|
|
908
|
+
var kEmitter$1 = /* @__PURE__ */ Symbol("kEmitter");
|
|
909
|
+
var kBoundListener$1 = /* @__PURE__ */ Symbol("kBoundListener");
|
|
853
910
|
var WebSocketClientConnection = class {
|
|
854
911
|
constructor(socket, transport) {
|
|
855
912
|
this.socket = socket;
|
|
@@ -906,9 +963,9 @@ var WebSocketClientConnection = class {
|
|
|
906
963
|
}
|
|
907
964
|
};
|
|
908
965
|
var WEBSOCKET_CLOSE_CODE_RANGE_ERROR = "InvalidAccessError: close code out of user configurable range";
|
|
909
|
-
var kPassthroughPromise = Symbol("kPassthroughPromise");
|
|
910
|
-
var kOnSend = Symbol("kOnSend");
|
|
911
|
-
var kClose = Symbol("kClose");
|
|
966
|
+
var kPassthroughPromise = /* @__PURE__ */ Symbol("kPassthroughPromise");
|
|
967
|
+
var kOnSend = /* @__PURE__ */ Symbol("kOnSend");
|
|
968
|
+
var kClose = /* @__PURE__ */ Symbol("kClose");
|
|
912
969
|
var WebSocketOverride = class extends EventTarget {
|
|
913
970
|
static {
|
|
914
971
|
this.CONNECTING = 0;
|
|
@@ -1028,9 +1085,9 @@ function getDataSize(data) {
|
|
|
1028
1085
|
if (data instanceof Blob) return data.size;
|
|
1029
1086
|
return data.byteLength;
|
|
1030
1087
|
}
|
|
1031
|
-
var kEmitter = Symbol("kEmitter");
|
|
1032
|
-
var kBoundListener = Symbol("kBoundListener");
|
|
1033
|
-
var kSend = Symbol("kSend");
|
|
1088
|
+
var kEmitter = /* @__PURE__ */ Symbol("kEmitter");
|
|
1089
|
+
var kBoundListener = /* @__PURE__ */ Symbol("kBoundListener");
|
|
1090
|
+
var kSend = /* @__PURE__ */ Symbol("kSend");
|
|
1034
1091
|
var WebSocketServerConnection = class {
|
|
1035
1092
|
constructor(client, transport, createConnection) {
|
|
1036
1093
|
this.client = client;
|
|
@@ -1230,7 +1287,7 @@ var WebSocketClassTransport = class extends EventTarget {
|
|
|
1230
1287
|
};
|
|
1231
1288
|
var WebSocketInterceptor = class WebSocketInterceptor2 extends Interceptor {
|
|
1232
1289
|
static {
|
|
1233
|
-
this.symbol = Symbol("websocket");
|
|
1290
|
+
this.symbol = /* @__PURE__ */ Symbol.for("websocket-interceptor");
|
|
1234
1291
|
}
|
|
1235
1292
|
constructor() {
|
|
1236
1293
|
super(WebSocketInterceptor2.symbol);
|
|
@@ -1239,7 +1296,7 @@ var WebSocketInterceptor = class WebSocketInterceptor2 extends Interceptor {
|
|
|
1239
1296
|
return hasConfigurableGlobal("WebSocket");
|
|
1240
1297
|
}
|
|
1241
1298
|
setup() {
|
|
1242
|
-
const
|
|
1299
|
+
const logger = this.logger.extend("setup");
|
|
1243
1300
|
const WebSocketProxy = new Proxy(globalThis.WebSocket, { construct: (target, args, newTarget) => {
|
|
1244
1301
|
const [url, protocols] = args;
|
|
1245
1302
|
const createConnection = () => {
|
|
@@ -1275,13 +1332,9 @@ var WebSocketInterceptor = class WebSocketInterceptor2 extends Interceptor {
|
|
|
1275
1332
|
});
|
|
1276
1333
|
return socket;
|
|
1277
1334
|
} });
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
});
|
|
1282
|
-
this.subscriptions.push(() => {
|
|
1283
|
-
Object.defineProperty(globalThis, "WebSocket", originalWebSocketDescriptor);
|
|
1284
|
-
});
|
|
1335
|
+
logger.info("patching global WebSocket...");
|
|
1336
|
+
this.subscriptions.push(patchesRegistry.applyPatch(globalThis, "WebSocket", () => WebSocketProxy));
|
|
1337
|
+
logger.info("global WebSocket patched!", globalThis.WebSocket.name);
|
|
1285
1338
|
}
|
|
1286
1339
|
};
|
|
1287
1340
|
|
|
@@ -1377,8 +1430,7 @@ var DeferredPromise2 = class extends Promise {
|
|
|
1377
1430
|
}
|
|
1378
1431
|
};
|
|
1379
1432
|
|
|
1380
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
1381
|
-
var IS_PATCHED_MODULE = Symbol("isPatchedModule");
|
|
1433
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/getRawRequest-B1BqgWG6.mjs
|
|
1382
1434
|
var InterceptorError = class InterceptorError2 extends Error {
|
|
1383
1435
|
constructor(message) {
|
|
1384
1436
|
super(message);
|
|
@@ -1460,6 +1512,68 @@ function getValueBySymbol(symbolName, source) {
|
|
|
1460
1512
|
});
|
|
1461
1513
|
if (symbol) return Reflect.get(source, symbol);
|
|
1462
1514
|
}
|
|
1515
|
+
var FetchRequest = class FetchRequest2 extends Request {
|
|
1516
|
+
static #resolveProperty(input, init = {}, key) {
|
|
1517
|
+
return init[key] ?? (input instanceof Request ? input[key] : void 0);
|
|
1518
|
+
}
|
|
1519
|
+
/**
|
|
1520
|
+
* Check if the given request method is configurable.
|
|
1521
|
+
* @see https://fetch.spec.whatwg.org/#methods
|
|
1522
|
+
*/
|
|
1523
|
+
static isConfigurableMethod(method) {
|
|
1524
|
+
return method !== "CONNECT" && method !== "TRACE" && method !== "TRACK";
|
|
1525
|
+
}
|
|
1526
|
+
static isMethodWithBody(method) {
|
|
1527
|
+
return method !== "HEAD" && method !== "GET" && FetchRequest2.isConfigurableMethod(method);
|
|
1528
|
+
}
|
|
1529
|
+
/**
|
|
1530
|
+
* Check if the given request `mode` is configurable.
|
|
1531
|
+
* @see https://fetch.spec.whatwg.org/#concept-request-mode
|
|
1532
|
+
*/
|
|
1533
|
+
static isConfigurableMode(mode) {
|
|
1534
|
+
return mode !== "navigate" && mode !== "websocket" && mode !== "webtransport";
|
|
1535
|
+
}
|
|
1536
|
+
constructor(input, init) {
|
|
1537
|
+
const method = FetchRequest2.#resolveProperty(input, init, "method") || "GET";
|
|
1538
|
+
const safeMethod = FetchRequest2.isConfigurableMethod(method) ? method : "GET";
|
|
1539
|
+
const hasExplicitBody = init != null && "body" in init;
|
|
1540
|
+
const bodyInit = !FetchRequest2.isMethodWithBody(method) ? { body: void 0 } : hasExplicitBody ? { body: init.body } : {};
|
|
1541
|
+
const mode = FetchRequest2.#resolveProperty(input, init, "mode") ?? void 0;
|
|
1542
|
+
const safeMode = FetchRequest2.isConfigurableMode(mode) ? mode : void 0;
|
|
1543
|
+
super(input, {
|
|
1544
|
+
...init || {},
|
|
1545
|
+
method: safeMethod,
|
|
1546
|
+
mode: safeMode,
|
|
1547
|
+
duplex: init?.duplex ?? (FetchRequest2.isMethodWithBody(method) ? "half" : void 0),
|
|
1548
|
+
...bodyInit
|
|
1549
|
+
});
|
|
1550
|
+
if (method !== safeMethod) this.#setInternalProperty("method", method);
|
|
1551
|
+
if (method === "CONNECT") {
|
|
1552
|
+
const url = new URL(input instanceof Request ? input.url : input);
|
|
1553
|
+
let authority;
|
|
1554
|
+
if (url.protocol === "localhost:") authority = url.href;
|
|
1555
|
+
else authority = url.pathname.replace(/^\/+/, "");
|
|
1556
|
+
Object.defineProperty(this, "url", {
|
|
1557
|
+
get: () => authority,
|
|
1558
|
+
enumerable: true,
|
|
1559
|
+
configurable: true
|
|
1560
|
+
});
|
|
1561
|
+
}
|
|
1562
|
+
if (mode != null && mode !== safeMode) this.#setInternalProperty("mode", mode);
|
|
1563
|
+
}
|
|
1564
|
+
#setInternalProperty(key, value) {
|
|
1565
|
+
const internalState = getValueBySymbol("state", this);
|
|
1566
|
+
if (internalState) Reflect.set(internalState, key, value);
|
|
1567
|
+
else Object.defineProperty(this, key, {
|
|
1568
|
+
value,
|
|
1569
|
+
enumerable: true,
|
|
1570
|
+
configurable: true,
|
|
1571
|
+
writable: false
|
|
1572
|
+
});
|
|
1573
|
+
}
|
|
1574
|
+
};
|
|
1575
|
+
var kStatus = /* @__PURE__ */ Symbol("kStatus");
|
|
1576
|
+
var kUrl = /* @__PURE__ */ Symbol("kUrl");
|
|
1463
1577
|
var FetchResponse = class FetchResponse2 extends Response {
|
|
1464
1578
|
static {
|
|
1465
1579
|
this.STATUS_CODES_WITHOUT_BODY = [
|
|
@@ -1492,6 +1606,20 @@ var FetchResponse = class FetchResponse2 extends Response {
|
|
|
1492
1606
|
static isResponseWithBody(status) {
|
|
1493
1607
|
return !FetchResponse2.STATUS_CODES_WITHOUT_BODY.includes(status);
|
|
1494
1608
|
}
|
|
1609
|
+
static setStatus(status, response) {
|
|
1610
|
+
const internalState = getValueBySymbol("state", response);
|
|
1611
|
+
if (internalState) internalState.status = status;
|
|
1612
|
+
else Object.defineProperty(response, "status", {
|
|
1613
|
+
value: status,
|
|
1614
|
+
enumerable: true,
|
|
1615
|
+
configurable: true,
|
|
1616
|
+
writable: false
|
|
1617
|
+
});
|
|
1618
|
+
Object.defineProperty(response, kStatus, {
|
|
1619
|
+
value: status,
|
|
1620
|
+
enumerable: false
|
|
1621
|
+
});
|
|
1622
|
+
}
|
|
1495
1623
|
static setUrl(url, response) {
|
|
1496
1624
|
if (!url || url === "about:" || !canParseUrl(url)) return;
|
|
1497
1625
|
const state = getValueBySymbol("state", response);
|
|
@@ -1502,6 +1630,10 @@ var FetchResponse = class FetchResponse2 extends Response {
|
|
|
1502
1630
|
configurable: true,
|
|
1503
1631
|
writable: false
|
|
1504
1632
|
});
|
|
1633
|
+
Object.defineProperty(response, kUrl, {
|
|
1634
|
+
value: url,
|
|
1635
|
+
enumerable: false
|
|
1636
|
+
});
|
|
1505
1637
|
}
|
|
1506
1638
|
/**
|
|
1507
1639
|
* Parses the given raw HTTP headers into a Fetch API `Headers` instance.
|
|
@@ -1511,6 +1643,27 @@ var FetchResponse = class FetchResponse2 extends Response {
|
|
|
1511
1643
|
for (let line = 0; line < rawHeaders.length; line += 2) headers.append(rawHeaders[line], rawHeaders[line + 1]);
|
|
1512
1644
|
return headers;
|
|
1513
1645
|
}
|
|
1646
|
+
/**
|
|
1647
|
+
* Safely clones the given `Response`.
|
|
1648
|
+
* Coerces response clone exceptions into 500 mocked responses.
|
|
1649
|
+
* Handy in the environments that introduce arbitrary response
|
|
1650
|
+
* cloning restrictions, like "101 Switching Protocols" cloning
|
|
1651
|
+
* in "miniflare".
|
|
1652
|
+
*/
|
|
1653
|
+
static clone(response) {
|
|
1654
|
+
try {
|
|
1655
|
+
return response.clone();
|
|
1656
|
+
} catch (error2) {
|
|
1657
|
+
return Response.json(error2 instanceof Error ? {
|
|
1658
|
+
name: error2.name,
|
|
1659
|
+
message: error2.message,
|
|
1660
|
+
stack: error2.stack
|
|
1661
|
+
} : {}, {
|
|
1662
|
+
status: 500,
|
|
1663
|
+
statusText: "Unclonable Response"
|
|
1664
|
+
});
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1514
1667
|
constructor(body, init = {}) {
|
|
1515
1668
|
const status = init.status ?? 200;
|
|
1516
1669
|
const safeStatus = FetchResponse2.isConfigurableStatusCode(status) ? status : 200;
|
|
@@ -1520,25 +1673,24 @@ var FetchResponse = class FetchResponse2 extends Response {
|
|
|
1520
1673
|
statusText: init.statusText,
|
|
1521
1674
|
headers: init.headers
|
|
1522
1675
|
});
|
|
1523
|
-
if (status !== safeStatus)
|
|
1524
|
-
const state = getValueBySymbol("state", this);
|
|
1525
|
-
if (state) state.status = status;
|
|
1526
|
-
else Object.defineProperty(this, "status", {
|
|
1527
|
-
value: status,
|
|
1528
|
-
enumerable: true,
|
|
1529
|
-
configurable: true,
|
|
1530
|
-
writable: false
|
|
1531
|
-
});
|
|
1532
|
-
}
|
|
1676
|
+
if (status !== safeStatus) FetchResponse2.setStatus(status, this);
|
|
1533
1677
|
FetchResponse2.setUrl(init.url, this);
|
|
1534
1678
|
}
|
|
1679
|
+
clone() {
|
|
1680
|
+
const clonedResponse = super.clone();
|
|
1681
|
+
const customStatus = Reflect.get(this, kStatus);
|
|
1682
|
+
if (customStatus) FetchResponse2.setStatus(customStatus, clonedResponse);
|
|
1683
|
+
const customUrl = Reflect.get(this, kUrl);
|
|
1684
|
+
if (customUrl) FetchResponse2.setUrl(customUrl, clonedResponse);
|
|
1685
|
+
return clonedResponse;
|
|
1686
|
+
}
|
|
1535
1687
|
};
|
|
1536
|
-
var kRawRequest = Symbol("kRawRequest");
|
|
1688
|
+
var kRawRequest = /* @__PURE__ */ Symbol("kRawRequest");
|
|
1537
1689
|
function setRawRequest(request, rawRequest) {
|
|
1538
1690
|
Reflect.set(request, kRawRequest, rawRequest);
|
|
1539
1691
|
}
|
|
1540
1692
|
|
|
1541
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
1693
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/bufferUtils-BiiO6HZv.mjs
|
|
1542
1694
|
var encoder = new TextEncoder();
|
|
1543
1695
|
function encodeBuffer(text) {
|
|
1544
1696
|
return encoder.encode(text);
|
|
@@ -1726,9 +1878,9 @@ var LensList = class {
|
|
|
1726
1878
|
};
|
|
1727
1879
|
|
|
1728
1880
|
// node_modules/.pnpm/rettime@0.11.11/node_modules/rettime/build/index.mjs
|
|
1729
|
-
var kDefaultPrevented2 = Symbol("kDefaultPrevented");
|
|
1730
|
-
var kPropagationStopped = Symbol("kPropagationStopped");
|
|
1731
|
-
var kImmediatePropagationStopped = Symbol("kImmediatePropagationStopped");
|
|
1881
|
+
var kDefaultPrevented2 = /* @__PURE__ */ Symbol("kDefaultPrevented");
|
|
1882
|
+
var kPropagationStopped = /* @__PURE__ */ Symbol("kPropagationStopped");
|
|
1883
|
+
var kImmediatePropagationStopped = /* @__PURE__ */ Symbol("kImmediatePropagationStopped");
|
|
1732
1884
|
var TypedEvent = class extends MessageEvent {
|
|
1733
1885
|
/**
|
|
1734
1886
|
* @note Keep a placeholder property with the return type
|
|
@@ -2492,7 +2644,7 @@ var until2 = async (promise) => {
|
|
|
2492
2644
|
}
|
|
2493
2645
|
};
|
|
2494
2646
|
|
|
2495
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
2647
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/handleRequest-CPPgsG7s.mjs
|
|
2496
2648
|
function isObject2(value, loose = false) {
|
|
2497
2649
|
return loose ? Object.prototype.toString.call(value).startsWith("[object ") : Object.prototype.toString.call(value) === "[object Object]";
|
|
2498
2650
|
}
|
|
@@ -2556,14 +2708,15 @@ async function handleRequest(options) {
|
|
|
2556
2708
|
return false;
|
|
2557
2709
|
};
|
|
2558
2710
|
const requestAbortPromise = new DeferredPromise();
|
|
2711
|
+
const onAbort = () => {
|
|
2712
|
+
requestAbortPromise.reject(options.request.signal?.reason);
|
|
2713
|
+
};
|
|
2559
2714
|
if (options.request.signal) {
|
|
2560
2715
|
if (options.request.signal.aborted) {
|
|
2561
2716
|
await options.controller.errorWith(options.request.signal.reason);
|
|
2562
2717
|
return;
|
|
2563
2718
|
}
|
|
2564
|
-
options.request.signal.addEventListener("abort",
|
|
2565
|
-
requestAbortPromise.reject(options.request.signal.reason);
|
|
2566
|
-
}, { once: true });
|
|
2719
|
+
options.request.signal.addEventListener("abort", onAbort, { once: true });
|
|
2567
2720
|
}
|
|
2568
2721
|
const result = await until2(async () => {
|
|
2569
2722
|
const requestListenersPromise = emitAsync(options.emitter, "request", {
|
|
@@ -2577,6 +2730,7 @@ async function handleRequest(options) {
|
|
|
2577
2730
|
options.controller.handled
|
|
2578
2731
|
]);
|
|
2579
2732
|
});
|
|
2733
|
+
options.request.signal?.removeEventListener("abort", onAbort);
|
|
2580
2734
|
if (requestAbortPromise.state === "rejected") {
|
|
2581
2735
|
await options.controller.errorWith(requestAbortPromise.rejectionReason);
|
|
2582
2736
|
return;
|
|
@@ -2609,7 +2763,7 @@ async function handleRequest(options) {
|
|
|
2609
2763
|
return options.controller.handled;
|
|
2610
2764
|
}
|
|
2611
2765
|
|
|
2612
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
2766
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/fetch-5IMPqr9e.mjs
|
|
2613
2767
|
function createNetworkError(cause) {
|
|
2614
2768
|
return Object.assign(/* @__PURE__ */ new TypeError("Failed to fetch"), { cause });
|
|
2615
2769
|
}
|
|
@@ -2620,7 +2774,7 @@ var REQUEST_BODY_HEADERS = [
|
|
|
2620
2774
|
"content-type",
|
|
2621
2775
|
"content-length"
|
|
2622
2776
|
];
|
|
2623
|
-
var kRedirectCount = Symbol("kRedirectCount");
|
|
2777
|
+
var kRedirectCount = /* @__PURE__ */ Symbol("kRedirectCount");
|
|
2624
2778
|
async function followFetchRedirect(request, response) {
|
|
2625
2779
|
if (response.status !== 303 && request.body != null) return Promise.reject(createNetworkError());
|
|
2626
2780
|
const requestUrl = new URL(request.url);
|
|
@@ -2702,7 +2856,7 @@ function decompressResponse(response) {
|
|
|
2702
2856
|
}
|
|
2703
2857
|
var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
2704
2858
|
static {
|
|
2705
|
-
this.symbol = Symbol("fetch");
|
|
2859
|
+
this.symbol = /* @__PURE__ */ Symbol.for("fetch-interceptor");
|
|
2706
2860
|
}
|
|
2707
2861
|
constructor() {
|
|
2708
2862
|
super(FetchInterceptor2.symbol);
|
|
@@ -2711,12 +2865,11 @@ var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
|
2711
2865
|
return hasConfigurableGlobal("fetch");
|
|
2712
2866
|
}
|
|
2713
2867
|
async setup() {
|
|
2868
|
+
const logger = this.logger.extend("setup");
|
|
2714
2869
|
const pureFetch = globalThis.fetch;
|
|
2715
|
-
|
|
2716
|
-
globalThis.fetch = async (input, init) => {
|
|
2870
|
+
const fetchProxy = async (input, init) => {
|
|
2717
2871
|
const requestId = createRequestId();
|
|
2718
|
-
const
|
|
2719
|
-
const request = new Request(resolvedInput, init);
|
|
2872
|
+
const request = new FetchRequest(typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.href) : input, init);
|
|
2720
2873
|
if (input instanceof Request) setRawRequest(request, input);
|
|
2721
2874
|
const responsePromise = new DeferredPromise();
|
|
2722
2875
|
const controller = new RequestController(request, {
|
|
@@ -2728,7 +2881,7 @@ var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
|
2728
2881
|
this.logger.info("original fetch performed", originalResponse);
|
|
2729
2882
|
if (this.emitter.listenerCount("response") > 0) {
|
|
2730
2883
|
this.logger.info('emitting the "response" event...');
|
|
2731
|
-
const responseClone =
|
|
2884
|
+
const responseClone = FetchResponse.clone(originalResponse);
|
|
2732
2885
|
await emitAsync(this.emitter, "response", {
|
|
2733
2886
|
response: responseClone,
|
|
2734
2887
|
isMockedResponse: false,
|
|
@@ -2745,9 +2898,12 @@ var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
|
2745
2898
|
return;
|
|
2746
2899
|
}
|
|
2747
2900
|
this.logger.info("received mocked response!", { rawResponse });
|
|
2748
|
-
const
|
|
2749
|
-
|
|
2750
|
-
|
|
2901
|
+
const response = new FetchResponse(decompressResponse(rawResponse) || rawResponse.body, {
|
|
2902
|
+
url: request.url,
|
|
2903
|
+
status: rawResponse.status,
|
|
2904
|
+
statusText: rawResponse.statusText,
|
|
2905
|
+
headers: rawResponse.headers
|
|
2906
|
+
});
|
|
2751
2907
|
if (FetchResponse.isRedirectResponse(response.status)) {
|
|
2752
2908
|
if (request.redirect === "error") {
|
|
2753
2909
|
responsePromise.reject(createNetworkError("unexpected redirect"));
|
|
@@ -2765,7 +2921,7 @@ var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
|
2765
2921
|
if (this.emitter.listenerCount("response") > 0) {
|
|
2766
2922
|
this.logger.info('emitting the "response" event...');
|
|
2767
2923
|
await emitAsync(this.emitter, "response", {
|
|
2768
|
-
response:
|
|
2924
|
+
response: FetchResponse.clone(response),
|
|
2769
2925
|
isMockedResponse: true,
|
|
2770
2926
|
request,
|
|
2771
2927
|
requestId
|
|
@@ -2789,20 +2945,13 @@ var FetchInterceptor = class FetchInterceptor2 extends Interceptor {
|
|
|
2789
2945
|
});
|
|
2790
2946
|
return responsePromise;
|
|
2791
2947
|
};
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
value: true
|
|
2796
|
-
});
|
|
2797
|
-
this.subscriptions.push(() => {
|
|
2798
|
-
Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, { value: void 0 });
|
|
2799
|
-
globalThis.fetch = pureFetch;
|
|
2800
|
-
this.logger.info('restored native "globalThis.fetch"!', globalThis.fetch.name);
|
|
2801
|
-
});
|
|
2948
|
+
logger.info("patching global fetch...");
|
|
2949
|
+
this.subscriptions.push(patchesRegistry.applyPatch(globalThis, "fetch", () => fetchProxy));
|
|
2950
|
+
logger.info("global fetch patched!", globalThis.fetch.name);
|
|
2802
2951
|
}
|
|
2803
2952
|
};
|
|
2804
2953
|
|
|
2805
|
-
// node_modules/.pnpm/@mswjs+interceptors@0.41.
|
|
2954
|
+
// node_modules/.pnpm/@mswjs+interceptors@0.41.9/node_modules/@mswjs/interceptors/lib/browser/XMLHttpRequest-DrZAf3w6.mjs
|
|
2806
2955
|
function concatArrayBuffer(left, right) {
|
|
2807
2956
|
const result = new Uint8Array(left.byteLength + right.byteLength);
|
|
2808
2957
|
result.set(left, 0);
|
|
@@ -2968,9 +3117,9 @@ async function getBodyByteLength(input) {
|
|
|
2968
3117
|
if (explicitContentLength != null && explicitContentLength !== "") return Number(explicitContentLength);
|
|
2969
3118
|
return (await input.arrayBuffer()).byteLength;
|
|
2970
3119
|
}
|
|
2971
|
-
var kIsRequestHandled = Symbol("kIsRequestHandled");
|
|
3120
|
+
var kIsRequestHandled = /* @__PURE__ */ Symbol("kIsRequestHandled");
|
|
2972
3121
|
var IS_NODE2 = isNodeProcess();
|
|
2973
|
-
var kFetchRequest = Symbol("kFetchRequest");
|
|
3122
|
+
var kFetchRequest = /* @__PURE__ */ Symbol("kFetchRequest");
|
|
2974
3123
|
var XMLHttpRequestController = class {
|
|
2975
3124
|
constructor(initialRequest, logger) {
|
|
2976
3125
|
this.initialRequest = initialRequest;
|
|
@@ -3308,7 +3457,7 @@ var XMLHttpRequestController = class {
|
|
|
3308
3457
|
toFetchApiRequest(body) {
|
|
3309
3458
|
this.logger.info("converting request to a Fetch API Request...");
|
|
3310
3459
|
const resolvedBody = body instanceof Document ? body.documentElement.innerText : body;
|
|
3311
|
-
const fetchRequest = new
|
|
3460
|
+
const fetchRequest = new FetchRequest(this.url.href, {
|
|
3312
3461
|
method: this.method,
|
|
3313
3462
|
headers: this.requestHeaders,
|
|
3314
3463
|
credentials: this.request.withCredentials ? "include" : "same-origin",
|
|
@@ -3393,34 +3542,24 @@ function createXMLHttpRequestProxy({ emitter, logger }) {
|
|
|
3393
3542
|
}
|
|
3394
3543
|
var XMLHttpRequestInterceptor = class XMLHttpRequestInterceptor2 extends Interceptor {
|
|
3395
3544
|
static {
|
|
3396
|
-
this.
|
|
3545
|
+
this.symbol = /* @__PURE__ */ Symbol.for("xhr-interceptor");
|
|
3397
3546
|
}
|
|
3398
3547
|
constructor() {
|
|
3399
|
-
super(XMLHttpRequestInterceptor2.
|
|
3548
|
+
super(XMLHttpRequestInterceptor2.symbol);
|
|
3400
3549
|
}
|
|
3401
3550
|
checkEnvironment() {
|
|
3402
3551
|
return hasConfigurableGlobal("XMLHttpRequest");
|
|
3403
3552
|
}
|
|
3404
3553
|
setup() {
|
|
3405
3554
|
const logger = this.logger.extend("setup");
|
|
3406
|
-
logger.info(
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
});
|
|
3413
|
-
logger.info(
|
|
3414
|
-
Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, {
|
|
3415
|
-
enumerable: true,
|
|
3416
|
-
configurable: true,
|
|
3417
|
-
value: true
|
|
3418
|
-
});
|
|
3419
|
-
this.subscriptions.push(() => {
|
|
3420
|
-
Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, { value: void 0 });
|
|
3421
|
-
globalThis.XMLHttpRequest = PureXMLHttpRequest;
|
|
3422
|
-
logger.info('native "XMLHttpRequest" module restored!', globalThis.XMLHttpRequest.name);
|
|
3423
|
-
});
|
|
3555
|
+
logger.info("patching global XMLHttpRequest...");
|
|
3556
|
+
this.subscriptions.push(patchesRegistry.applyPatch(globalThis, "XMLHttpRequest", () => {
|
|
3557
|
+
return createXMLHttpRequestProxy({
|
|
3558
|
+
emitter: this.emitter,
|
|
3559
|
+
logger: this.logger
|
|
3560
|
+
});
|
|
3561
|
+
}));
|
|
3562
|
+
logger.info("global XMLHttpRequest patched!", globalThis.XMLHttpRequest.name);
|
|
3424
3563
|
}
|
|
3425
3564
|
};
|
|
3426
3565
|
|
|
@@ -3434,6 +3573,7 @@ var FallbackHttpSource = class extends InterceptorSource {
|
|
|
3434
3573
|
});
|
|
3435
3574
|
this.options = options;
|
|
3436
3575
|
}
|
|
3576
|
+
options;
|
|
3437
3577
|
enable() {
|
|
3438
3578
|
super.enable();
|
|
3439
3579
|
if (!this.options.quiet) {
|