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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { t as HandlersExecutionResult, p as ResponseResolutionContext, u as executeHandlers } from '../HttpResponse-
|
|
1
|
+
export { t as HandlersExecutionResult, p as ResponseResolutionContext, u as executeHandlers } from '../HttpResponse-BpT5A_2L.js';
|
|
2
2
|
import '@mswjs/interceptors';
|
|
3
3
|
import './internal/isIterable.js';
|
|
4
4
|
import '../typeUtils.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Emitter } from 'strict-event-emitter';
|
|
2
2
|
import { SharedOptions, LifeCycleEventsMap } from '../sharedOptions.mjs';
|
|
3
3
|
import { RequiredDeep } from '../typeUtils.mjs';
|
|
4
|
-
import { t as HandlersExecutionResult, R as RequestHandler } from '../HttpResponse-
|
|
4
|
+
import { t as HandlersExecutionResult, R as RequestHandler } from '../HttpResponse-DGUjNQHG.mjs';
|
|
5
5
|
import './request/onUnhandledRequest.mjs';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import './internal/isIterable.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Emitter } from 'strict-event-emitter';
|
|
2
2
|
import { SharedOptions, LifeCycleEventsMap } from '../sharedOptions.js';
|
|
3
3
|
import { RequiredDeep } from '../typeUtils.js';
|
|
4
|
-
import { t as HandlersExecutionResult, R as RequestHandler } from '../HttpResponse-
|
|
4
|
+
import { t as HandlersExecutionResult, R as RequestHandler } from '../HttpResponse-BpT5A_2L.js';
|
|
5
5
|
import './request/onUnhandledRequest.js';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import './internal/isIterable.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HandlerKind } from '../../handlers/common.mjs';
|
|
2
|
-
import { R as RequestHandler } from '../../HttpResponse-
|
|
2
|
+
import { R as RequestHandler } from '../../HttpResponse-DGUjNQHG.mjs';
|
|
3
3
|
import { WebSocketHandler } from '../../handlers/WebSocketHandler.mjs';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import './isIterable.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HandlerKind } from '../../handlers/common.js';
|
|
2
|
-
import { R as RequestHandler } from '../../HttpResponse-
|
|
2
|
+
import { R as RequestHandler } from '../../HttpResponse-BpT5A_2L.js';
|
|
3
3
|
import { WebSocketHandler } from '../../handlers/WebSocketHandler.js';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import './isIterable.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'graphql';
|
|
2
|
-
export { y as GraphQLMultipartRequestBody, x as GraphQLParsedOperationsMap, v as ParsedGraphQLQuery, P as ParsedGraphQLRequest, w as parseDocumentNode, z as parseGraphQLRequest } from '../../HttpResponse-
|
|
2
|
+
export { y as GraphQLMultipartRequestBody, x as GraphQLParsedOperationsMap, v as ParsedGraphQLQuery, P as ParsedGraphQLRequest, w as parseDocumentNode, z as parseGraphQLRequest } from '../../HttpResponse-DGUjNQHG.mjs';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import './isIterable.mjs';
|
|
5
5
|
import '../../typeUtils.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'graphql';
|
|
2
|
-
export { y as GraphQLMultipartRequestBody, x as GraphQLParsedOperationsMap, v as ParsedGraphQLQuery, P as ParsedGraphQLRequest, w as parseDocumentNode, z as parseGraphQLRequest } from '../../HttpResponse-
|
|
2
|
+
export { y as GraphQLMultipartRequestBody, x as GraphQLParsedOperationsMap, v as ParsedGraphQLQuery, P as ParsedGraphQLRequest, w as parseDocumentNode, z as parseGraphQLRequest } from '../../HttpResponse-BpT5A_2L.js';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import './isIterable.js';
|
|
5
5
|
import '../../typeUtils.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, s as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../HttpResponse-
|
|
1
|
+
import { R as RequestHandler, s as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../HttpResponse-DGUjNQHG.mjs';
|
|
2
2
|
import '@mswjs/interceptors';
|
|
3
3
|
import './isIterable.mjs';
|
|
4
4
|
import '../../typeUtils.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, s as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../HttpResponse-
|
|
1
|
+
import { R as RequestHandler, s as RequestHandlerDefaultInfo, c as RequestHandlerOptions } from '../../HttpResponse-BpT5A_2L.js';
|
|
2
2
|
import '@mswjs/interceptors';
|
|
3
3
|
import './isIterable.js';
|
|
4
4
|
import '../../typeUtils.js';
|
|
@@ -31,7 +31,7 @@ __export(serializeResponse_exports, {
|
|
|
31
31
|
serializeResponse: () => serializeResponse
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(serializeResponse_exports);
|
|
34
|
-
var import_statuses = __toESM(require("
|
|
34
|
+
var import_statuses = __toESM(require("../../../shims/statuses"), 1);
|
|
35
35
|
const { message } = import_statuses.default;
|
|
36
36
|
async function serializeResponse(response) {
|
|
37
37
|
const responseClone = response.clone();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '../../../shims/statuses'\n\nconst { message } = statuses\n\nexport interface SerializedResponse {\n status: number\n statusText: string\n headers: Record<string, any>\n body: string\n}\n\nexport async function serializeResponse(\n response: Response,\n): Promise<SerializedResponse> {\n const responseClone = response.clone()\n const responseText = await responseClone.text()\n\n // Normalize the response status and status text when logging\n // since the default Response instance doesn't infer status texts\n // from status codes. This has no effect on the actual response instance.\n const responseStatus = responseClone.status || 200\n const responseStatusText =\n responseClone.statusText || message[responseStatus] || 'OK'\n\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AAErB,MAAM,EAAE,QAAQ,IAAI,gBAAAA;AASpB,eAAsB,kBACpB,UAC6B;AAC7B,QAAM,gBAAgB,SAAS,MAAM;AACrC,QAAM,eAAe,MAAM,cAAc,KAAK;AAK9C,QAAM,iBAAiB,cAAc,UAAU;AAC/C,QAAM,qBACJ,cAAc,cAAc,QAAQ,cAAc,KAAK;AAEzD,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS,OAAO,YAAY,cAAc,QAAQ,QAAQ,CAAC;AAAA,IAC3D,MAAM;AAAA,EACR;AACF;","names":["statuses"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/logging/serializeResponse.ts"],"sourcesContent":["import statuses from '../../../shims/statuses'\n\nconst { message } = statuses\n\nexport interface SerializedResponse {\n status: number\n statusText: string\n headers: Record<string, any>\n body: string\n}\n\nexport async function serializeResponse(\n response: Response,\n): Promise<SerializedResponse> {\n const responseClone = response.clone()\n const responseText = await responseClone.text()\n\n // Normalize the response status and status text when logging\n // since the default Response instance doesn't infer status texts\n // from status codes. This has no effect on the actual response instance.\n const responseStatus = responseClone.status || 200\n const responseStatusText =\n responseClone.statusText || message[responseStatus] || 'OK'\n\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText,\n }\n}\n"],"mappings":"AAAA,OAAO,cAAc;AAErB,MAAM,EAAE,QAAQ,IAAI;AASpB,eAAsB,kBACpB,UAC6B;AAC7B,QAAM,gBAAgB,SAAS,MAAM;AACrC,QAAM,eAAe,MAAM,cAAc,KAAK;AAK9C,QAAM,iBAAiB,cAAc,UAAU;AAC/C,QAAM,qBACJ,cAAc,cAAc,QAAQ,cAAc,KAAK;AAEzD,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS,OAAO,YAAY,cAAc,QAAQ,QAAQ,CAAC;AAAA,IAC3D,MAAM;AAAA,EACR;AACF;","names":[]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,24 +15,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var getRequestCookies_exports = {};
|
|
30
20
|
__export(getRequestCookies_exports, {
|
|
31
21
|
getAllRequestCookies: () => getAllRequestCookies
|
|
32
22
|
});
|
|
33
23
|
module.exports = __toCommonJS(getRequestCookies_exports);
|
|
34
|
-
var import_cookie =
|
|
24
|
+
var import_cookie = require("../../../shims/cookie");
|
|
35
25
|
var import_cookieStore = require("../cookieStore");
|
|
36
26
|
function parseCookies(input) {
|
|
37
|
-
const parsedCookies = import_cookie.
|
|
27
|
+
const parsedCookies = (0, import_cookie.parse)(input);
|
|
38
28
|
const cookies = {};
|
|
39
29
|
for (const cookieName in parsedCookies) {
|
|
40
30
|
if (typeof parsedCookies[cookieName] !== "undefined") {
|
|
@@ -70,7 +60,7 @@ function getAllRequestCookies(request) {
|
|
|
70
60
|
for (const name in cookiesFromDocument) {
|
|
71
61
|
request.headers.append(
|
|
72
62
|
"cookie",
|
|
73
|
-
import_cookie.
|
|
63
|
+
(0, import_cookie.serialize)(name, cookiesFromDocument[name])
|
|
74
64
|
);
|
|
75
65
|
}
|
|
76
66
|
const cookiesFromStore = import_cookieStore.cookieStore.getCookies(request.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/request/getRequestCookies.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/request/getRequestCookies.ts"],"sourcesContent":["import {\n parse as parseCookie,\n serialize as serializeCookie,\n} from '../../../shims/cookie'\nimport { cookieStore } from '../cookieStore'\n\nfunction parseCookies(input: string): Record<string, string> {\n const parsedCookies = parseCookie(input)\n const cookies: Record<string, string> = {}\n\n for (const cookieName in parsedCookies) {\n if (typeof parsedCookies[cookieName] !== 'undefined') {\n cookies[cookieName] = parsedCookies[cookieName]\n }\n }\n\n return cookies\n}\n\nfunction getAllDocumentCookies() {\n return parseCookies(document.cookie)\n}\n\nfunction getDocumentCookies(request: Request): Record<string, string> {\n if (typeof document === 'undefined' || typeof location === 'undefined') {\n return {}\n }\n\n switch (request.credentials) {\n case 'same-origin': {\n const requestUrl = new URL(request.url)\n\n // Return document cookies only when requested a resource\n // from the same origin as the current document.\n return location.origin === requestUrl.origin\n ? getAllDocumentCookies()\n : {}\n }\n\n case 'include': {\n // Return all document cookies.\n return getAllDocumentCookies()\n }\n\n default: {\n return {}\n }\n }\n}\n\nexport function getAllRequestCookies(request: Request): Record<string, string> {\n /**\n * @note While the \"cookie\" header is a forbidden header field\n * in the browser, you can read it in Node.js. We need to respect\n * it for mocking in Node.js.\n */\n const requestCookieHeader = request.headers.get('cookie')\n const cookiesFromHeaders = requestCookieHeader\n ? parseCookies(requestCookieHeader)\n : {}\n\n const cookiesFromDocument = getDocumentCookies(request)\n\n // Forward the document cookies to the request headers.\n for (const name in cookiesFromDocument) {\n request.headers.append(\n 'cookie',\n serializeCookie(name, cookiesFromDocument[name]),\n )\n }\n\n const cookiesFromStore = cookieStore.getCookies(request.url)\n const storedCookiesObject = Object.fromEntries(\n cookiesFromStore.map((cookie) => [cookie.key, cookie.value]),\n )\n\n // Forward the raw stored cookies to request headers\n // so they contain metadata like \"expires\", \"secure\", etc.\n for (const cookie of cookiesFromStore) {\n request.headers.append('cookie', cookie.toString())\n }\n\n return {\n ...cookiesFromDocument,\n ...storedCookiesObject,\n ...cookiesFromHeaders,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAGO;AACP,yBAA4B;AAE5B,SAAS,aAAa,OAAuC;AAC3D,QAAM,oBAAgB,cAAAA,OAAY,KAAK;AACvC,QAAM,UAAkC,CAAC;AAEzC,aAAW,cAAc,eAAe;AACtC,QAAI,OAAO,cAAc,UAAU,MAAM,aAAa;AACpD,cAAQ,UAAU,IAAI,cAAc,UAAU;AAAA,IAChD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,wBAAwB;AAC/B,SAAO,aAAa,SAAS,MAAM;AACrC;AAEA,SAAS,mBAAmB,SAA0C;AACpE,MAAI,OAAO,aAAa,eAAe,OAAO,aAAa,aAAa;AACtE,WAAO,CAAC;AAAA,EACV;AAEA,UAAQ,QAAQ,aAAa;AAAA,IAC3B,KAAK,eAAe;AAClB,YAAM,aAAa,IAAI,IAAI,QAAQ,GAAG;AAItC,aAAO,SAAS,WAAW,WAAW,SAClC,sBAAsB,IACtB,CAAC;AAAA,IACP;AAAA,IAEA,KAAK,WAAW;AAEd,aAAO,sBAAsB;AAAA,IAC/B;AAAA,IAEA,SAAS;AACP,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AACF;AAEO,SAAS,qBAAqB,SAA0C;AAM7E,QAAM,sBAAsB,QAAQ,QAAQ,IAAI,QAAQ;AACxD,QAAM,qBAAqB,sBACvB,aAAa,mBAAmB,IAChC,CAAC;AAEL,QAAM,sBAAsB,mBAAmB,OAAO;AAGtD,aAAW,QAAQ,qBAAqB;AACtC,YAAQ,QAAQ;AAAA,MACd;AAAA,UACA,cAAAC,WAAgB,MAAM,oBAAoB,IAAI,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,mBAAmB,+BAAY,WAAW,QAAQ,GAAG;AAC3D,QAAM,sBAAsB,OAAO;AAAA,IACjC,iBAAiB,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,EAC7D;AAIA,aAAW,UAAU,kBAAkB;AACrC,YAAQ,QAAQ,OAAO,UAAU,OAAO,SAAS,CAAC;AAAA,EACpD;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":["parseCookie","serializeCookie"]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
parse as parseCookie,
|
|
3
|
+
serialize as serializeCookie
|
|
4
|
+
} from '../../../shims/cookie.mjs';
|
|
2
5
|
import { cookieStore } from '../cookieStore.mjs';
|
|
3
6
|
function parseCookies(input) {
|
|
4
|
-
const parsedCookies =
|
|
7
|
+
const parsedCookies = parseCookie(input);
|
|
5
8
|
const cookies = {};
|
|
6
9
|
for (const cookieName in parsedCookies) {
|
|
7
10
|
if (typeof parsedCookies[cookieName] !== "undefined") {
|
|
@@ -37,7 +40,7 @@ function getAllRequestCookies(request) {
|
|
|
37
40
|
for (const name in cookiesFromDocument) {
|
|
38
41
|
request.headers.append(
|
|
39
42
|
"cookie",
|
|
40
|
-
|
|
43
|
+
serializeCookie(name, cookiesFromDocument[name])
|
|
41
44
|
);
|
|
42
45
|
}
|
|
43
46
|
const cookiesFromStore = cookieStore.getCookies(request.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/request/getRequestCookies.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/request/getRequestCookies.ts"],"sourcesContent":["import {\n parse as parseCookie,\n serialize as serializeCookie,\n} from '../../../shims/cookie'\nimport { cookieStore } from '../cookieStore'\n\nfunction parseCookies(input: string): Record<string, string> {\n const parsedCookies = parseCookie(input)\n const cookies: Record<string, string> = {}\n\n for (const cookieName in parsedCookies) {\n if (typeof parsedCookies[cookieName] !== 'undefined') {\n cookies[cookieName] = parsedCookies[cookieName]\n }\n }\n\n return cookies\n}\n\nfunction getAllDocumentCookies() {\n return parseCookies(document.cookie)\n}\n\nfunction getDocumentCookies(request: Request): Record<string, string> {\n if (typeof document === 'undefined' || typeof location === 'undefined') {\n return {}\n }\n\n switch (request.credentials) {\n case 'same-origin': {\n const requestUrl = new URL(request.url)\n\n // Return document cookies only when requested a resource\n // from the same origin as the current document.\n return location.origin === requestUrl.origin\n ? getAllDocumentCookies()\n : {}\n }\n\n case 'include': {\n // Return all document cookies.\n return getAllDocumentCookies()\n }\n\n default: {\n return {}\n }\n }\n}\n\nexport function getAllRequestCookies(request: Request): Record<string, string> {\n /**\n * @note While the \"cookie\" header is a forbidden header field\n * in the browser, you can read it in Node.js. We need to respect\n * it for mocking in Node.js.\n */\n const requestCookieHeader = request.headers.get('cookie')\n const cookiesFromHeaders = requestCookieHeader\n ? parseCookies(requestCookieHeader)\n : {}\n\n const cookiesFromDocument = getDocumentCookies(request)\n\n // Forward the document cookies to the request headers.\n for (const name in cookiesFromDocument) {\n request.headers.append(\n 'cookie',\n serializeCookie(name, cookiesFromDocument[name]),\n )\n }\n\n const cookiesFromStore = cookieStore.getCookies(request.url)\n const storedCookiesObject = Object.fromEntries(\n cookiesFromStore.map((cookie) => [cookie.key, cookie.value]),\n )\n\n // Forward the raw stored cookies to request headers\n // so they contain metadata like \"expires\", \"secure\", etc.\n for (const cookie of cookiesFromStore) {\n request.headers.append('cookie', cookie.toString())\n }\n\n return {\n ...cookiesFromDocument,\n ...storedCookiesObject,\n ...cookiesFromHeaders,\n }\n}\n"],"mappings":"AAAA;AAAA,EACE,SAAS;AAAA,EACT,aAAa;AAAA,OACR;AACP,SAAS,mBAAmB;AAE5B,SAAS,aAAa,OAAuC;AAC3D,QAAM,gBAAgB,YAAY,KAAK;AACvC,QAAM,UAAkC,CAAC;AAEzC,aAAW,cAAc,eAAe;AACtC,QAAI,OAAO,cAAc,UAAU,MAAM,aAAa;AACpD,cAAQ,UAAU,IAAI,cAAc,UAAU;AAAA,IAChD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,wBAAwB;AAC/B,SAAO,aAAa,SAAS,MAAM;AACrC;AAEA,SAAS,mBAAmB,SAA0C;AACpE,MAAI,OAAO,aAAa,eAAe,OAAO,aAAa,aAAa;AACtE,WAAO,CAAC;AAAA,EACV;AAEA,UAAQ,QAAQ,aAAa;AAAA,IAC3B,KAAK,eAAe;AAClB,YAAM,aAAa,IAAI,IAAI,QAAQ,GAAG;AAItC,aAAO,SAAS,WAAW,WAAW,SAClC,sBAAsB,IACtB,CAAC;AAAA,IACP;AAAA,IAEA,KAAK,WAAW;AAEd,aAAO,sBAAsB;AAAA,IAC/B;AAAA,IAEA,SAAS;AACP,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AACF;AAEO,SAAS,qBAAqB,SAA0C;AAM7E,QAAM,sBAAsB,QAAQ,QAAQ,IAAI,QAAQ;AACxD,QAAM,qBAAqB,sBACvB,aAAa,mBAAmB,IAChC,CAAC;AAEL,QAAM,sBAAsB,mBAAmB,OAAO;AAGtD,aAAW,QAAQ,qBAAqB;AACtC,YAAQ,QAAQ;AAAA,MACd;AAAA,MACA,gBAAgB,MAAM,oBAAoB,IAAI,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,mBAAmB,YAAY,WAAW,QAAQ,GAAG;AAC3D,QAAM,sBAAsB,OAAO;AAAA,IACjC,iBAAiB,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,EAC7D;AAIA,aAAW,UAAU,kBAAkB;AACrC,YAAQ,QAAQ,OAAO,UAAU,OAAO,SAAS,CAAC;AAAA,EACpD;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
declare function getSearchParams(path: string): URLSearchParams;
|
|
2
1
|
/**
|
|
3
2
|
* Removes search parameters and the fragment
|
|
4
3
|
* from a given URL string.
|
|
5
4
|
*/
|
|
6
5
|
declare function cleanUrl(path: string): string;
|
|
7
6
|
|
|
8
|
-
export { cleanUrl
|
|
7
|
+
export { cleanUrl };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
declare function getSearchParams(path: string): URLSearchParams;
|
|
2
1
|
/**
|
|
3
2
|
* Removes search parameters and the fragment
|
|
4
3
|
* from a given URL string.
|
|
5
4
|
*/
|
|
6
5
|
declare function cleanUrl(path: string): string;
|
|
7
6
|
|
|
8
|
-
export { cleanUrl
|
|
7
|
+
export { cleanUrl };
|
|
@@ -18,14 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var cleanUrl_exports = {};
|
|
20
20
|
__export(cleanUrl_exports, {
|
|
21
|
-
cleanUrl: () => cleanUrl
|
|
22
|
-
getSearchParams: () => getSearchParams
|
|
21
|
+
cleanUrl: () => cleanUrl
|
|
23
22
|
});
|
|
24
23
|
module.exports = __toCommonJS(cleanUrl_exports);
|
|
25
24
|
const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g;
|
|
26
|
-
function getSearchParams(path) {
|
|
27
|
-
return new URL(`/${path}`, "http://localhost").searchParams;
|
|
28
|
-
}
|
|
29
25
|
function cleanUrl(path) {
|
|
30
26
|
if (path.endsWith("?")) {
|
|
31
27
|
return path;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/url/cleanUrl.ts"],"sourcesContent":["const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/url/cleanUrl.ts"],"sourcesContent":["const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g\n\n/**\n * Removes search parameters and the fragment\n * from a given URL string.\n */\nexport function cleanUrl(path: string): string {\n // If the path ends with an optional path parameter,\n // return it as-is.\n if (path.endsWith('?')) {\n return path\n }\n\n // Otherwise, remove the search and fragment from it.\n return path.replace(REDUNDANT_CHARACTERS_EXP, '')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,2BAA2B;AAM1B,SAAS,SAAS,MAAsB;AAG7C,MAAI,KAAK,SAAS,GAAG,GAAG;AACtB,WAAO;AAAA,EACT;AAGA,SAAO,KAAK,QAAQ,0BAA0B,EAAE;AAClD;","names":[]}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g;
|
|
2
|
-
function getSearchParams(path) {
|
|
3
|
-
return new URL(`/${path}`, "http://localhost").searchParams;
|
|
4
|
-
}
|
|
5
2
|
function cleanUrl(path) {
|
|
6
3
|
if (path.endsWith("?")) {
|
|
7
4
|
return path;
|
|
@@ -9,7 +6,6 @@ function cleanUrl(path) {
|
|
|
9
6
|
return path.replace(REDUNDANT_CHARACTERS_EXP, "");
|
|
10
7
|
}
|
|
11
8
|
export {
|
|
12
|
-
cleanUrl
|
|
13
|
-
getSearchParams
|
|
9
|
+
cleanUrl
|
|
14
10
|
};
|
|
15
11
|
//# sourceMappingURL=cleanUrl.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/utils/url/cleanUrl.ts"],"sourcesContent":["const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/utils/url/cleanUrl.ts"],"sourcesContent":["const REDUNDANT_CHARACTERS_EXP = /[?|#].*$/g\n\n/**\n * Removes search parameters and the fragment\n * from a given URL string.\n */\nexport function cleanUrl(path: string): string {\n // If the path ends with an optional path parameter,\n // return it as-is.\n if (path.endsWith('?')) {\n return path\n }\n\n // Otherwise, remove the search and fragment from it.\n return path.replace(REDUNDANT_CHARACTERS_EXP, '')\n}\n"],"mappings":"AAAA,MAAM,2BAA2B;AAM1B,SAAS,SAAS,MAAsB;AAG7C,MAAI,KAAK,SAAS,GAAG,GAAG;AACtB,WAAO;AAAA,EACT;AAGA,SAAO,KAAK,QAAQ,0BAA0B,EAAE;AAClD;","names":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket';
|
|
2
2
|
import { WebSocketClientStore, SerializedWebSocketClient } from './WebSocketClientStore.mjs';
|
|
3
|
-
import '@mswjs/interceptors/WebSocket';
|
|
4
3
|
|
|
5
4
|
declare class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
6
5
|
private db;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket';
|
|
2
2
|
import { WebSocketClientStore, SerializedWebSocketClient } from './WebSocketClientStore.js';
|
|
3
|
-
import '@mswjs/interceptors/WebSocket';
|
|
4
3
|
|
|
5
4
|
declare class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
6
5
|
private db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/WebSocketIndexedDBClientStore.ts"],"sourcesContent":["import { DeferredPromise } from '@open-draft/deferred-promise'\nimport { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/WebSocketIndexedDBClientStore.ts"],"sourcesContent":["import { DeferredPromise } from '@open-draft/deferred-promise'\nimport { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket'\nimport {\n type SerializedWebSocketClient,\n WebSocketClientStore,\n} from './WebSocketClientStore'\n\nconst DB_NAME = 'msw-websocket-clients'\nconst DB_STORE_NAME = 'clients'\n\nexport class WebSocketIndexedDBClientStore implements WebSocketClientStore {\n private db: Promise<IDBDatabase>\n\n constructor() {\n this.db = this.createDatabase()\n }\n\n public async add(client: WebSocketClientConnectionProtocol): Promise<void> {\n const promise = new DeferredPromise<void>()\n const store = await this.getStore()\n\n /**\n * @note Use `.put()` instead of `.add()` to allow setting clients\n * that already exist in the database. This can happen if a single page\n * has multiple event handlers. Each handler will receive the \"connection\"\n * event in parallel, and try to set that WebSocket client in the database.\n */\n const request = store.put({\n id: client.id,\n url: client.url.href,\n } satisfies SerializedWebSocketClient)\n\n request.onsuccess = () => {\n promise.resolve()\n }\n request.onerror = () => {\n console.error(request.error)\n promise.reject(\n new Error(\n `Failed to add WebSocket client \"${client.id}\". There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n public async getAll(): Promise<Array<SerializedWebSocketClient>> {\n const promise = new DeferredPromise<Array<SerializedWebSocketClient>>()\n const store = await this.getStore()\n const request = store.getAll() as IDBRequest<\n Array<SerializedWebSocketClient>\n >\n\n request.onsuccess = () => {\n promise.resolve(request.result)\n }\n request.onerror = () => {\n // eslint-disable-next-line no-console\n console.log(request.error)\n promise.reject(\n new Error(\n `Failed to get all WebSocket clients. There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n public async deleteMany(clientIds: Array<string>): Promise<void> {\n const promise = new DeferredPromise<void>()\n const store = await this.getStore()\n\n for (const clientId of clientIds) {\n store.delete(clientId)\n }\n\n store.transaction.oncomplete = () => {\n promise.resolve()\n }\n store.transaction.onerror = () => {\n console.error(store.transaction.error)\n promise.reject(\n new Error(\n `Failed to delete WebSocket clients [${clientIds.join(', ')}]. There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n private async createDatabase(): Promise<IDBDatabase> {\n const promise = new DeferredPromise<IDBDatabase>()\n const request = indexedDB.open(DB_NAME, 1)\n\n request.onsuccess = ({ currentTarget }) => {\n const db = Reflect.get(currentTarget!, 'result') as IDBDatabase\n\n if (db.objectStoreNames.contains(DB_STORE_NAME)) {\n return promise.resolve(db)\n }\n }\n\n request.onupgradeneeded = async ({ currentTarget }) => {\n const db = Reflect.get(currentTarget!, 'result') as IDBDatabase\n if (db.objectStoreNames.contains(DB_STORE_NAME)) {\n return\n }\n\n const store = db.createObjectStore(DB_STORE_NAME, { keyPath: 'id' })\n store.transaction.oncomplete = () => {\n promise.resolve(db)\n }\n store.transaction.onerror = () => {\n console.error(store.transaction.error)\n promise.reject(\n new Error(\n 'Failed to create WebSocket client store. There is likely an additional output above.',\n ),\n )\n }\n }\n request.onerror = () => {\n console.error(request.error)\n promise.reject(\n new Error(\n 'Failed to open an IndexedDB database. There is likely an additional output above.',\n ),\n )\n }\n\n return promise\n }\n\n private async getStore(): Promise<IDBObjectStore> {\n const db = await this.db\n return db.transaction(DB_STORE_NAME, 'readwrite').objectStore(DB_STORE_NAME)\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/WebSocketIndexedDBClientStore.ts"],"sourcesContent":["import { DeferredPromise } from '@open-draft/deferred-promise'\nimport { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/WebSocketIndexedDBClientStore.ts"],"sourcesContent":["import { DeferredPromise } from '@open-draft/deferred-promise'\nimport { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket'\nimport {\n type SerializedWebSocketClient,\n WebSocketClientStore,\n} from './WebSocketClientStore'\n\nconst DB_NAME = 'msw-websocket-clients'\nconst DB_STORE_NAME = 'clients'\n\nexport class WebSocketIndexedDBClientStore implements WebSocketClientStore {\n private db: Promise<IDBDatabase>\n\n constructor() {\n this.db = this.createDatabase()\n }\n\n public async add(client: WebSocketClientConnectionProtocol): Promise<void> {\n const promise = new DeferredPromise<void>()\n const store = await this.getStore()\n\n /**\n * @note Use `.put()` instead of `.add()` to allow setting clients\n * that already exist in the database. This can happen if a single page\n * has multiple event handlers. Each handler will receive the \"connection\"\n * event in parallel, and try to set that WebSocket client in the database.\n */\n const request = store.put({\n id: client.id,\n url: client.url.href,\n } satisfies SerializedWebSocketClient)\n\n request.onsuccess = () => {\n promise.resolve()\n }\n request.onerror = () => {\n console.error(request.error)\n promise.reject(\n new Error(\n `Failed to add WebSocket client \"${client.id}\". There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n public async getAll(): Promise<Array<SerializedWebSocketClient>> {\n const promise = new DeferredPromise<Array<SerializedWebSocketClient>>()\n const store = await this.getStore()\n const request = store.getAll() as IDBRequest<\n Array<SerializedWebSocketClient>\n >\n\n request.onsuccess = () => {\n promise.resolve(request.result)\n }\n request.onerror = () => {\n // eslint-disable-next-line no-console\n console.log(request.error)\n promise.reject(\n new Error(\n `Failed to get all WebSocket clients. There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n public async deleteMany(clientIds: Array<string>): Promise<void> {\n const promise = new DeferredPromise<void>()\n const store = await this.getStore()\n\n for (const clientId of clientIds) {\n store.delete(clientId)\n }\n\n store.transaction.oncomplete = () => {\n promise.resolve()\n }\n store.transaction.onerror = () => {\n console.error(store.transaction.error)\n promise.reject(\n new Error(\n `Failed to delete WebSocket clients [${clientIds.join(', ')}]. There is likely an additional output above.`,\n ),\n )\n }\n\n return promise\n }\n\n private async createDatabase(): Promise<IDBDatabase> {\n const promise = new DeferredPromise<IDBDatabase>()\n const request = indexedDB.open(DB_NAME, 1)\n\n request.onsuccess = ({ currentTarget }) => {\n const db = Reflect.get(currentTarget!, 'result') as IDBDatabase\n\n if (db.objectStoreNames.contains(DB_STORE_NAME)) {\n return promise.resolve(db)\n }\n }\n\n request.onupgradeneeded = async ({ currentTarget }) => {\n const db = Reflect.get(currentTarget!, 'result') as IDBDatabase\n if (db.objectStoreNames.contains(DB_STORE_NAME)) {\n return\n }\n\n const store = db.createObjectStore(DB_STORE_NAME, { keyPath: 'id' })\n store.transaction.oncomplete = () => {\n promise.resolve(db)\n }\n store.transaction.onerror = () => {\n console.error(store.transaction.error)\n promise.reject(\n new Error(\n 'Failed to create WebSocket client store. There is likely an additional output above.',\n ),\n )\n }\n }\n request.onerror = () => {\n console.error(request.error)\n promise.reject(\n new Error(\n 'Failed to open an IndexedDB database. There is likely an additional output above.',\n ),\n )\n }\n\n return promise\n }\n\n private async getStore(): Promise<IDBObjectStore> {\n const db = await this.db\n return db.transaction(DB_STORE_NAME, 'readwrite').objectStore(DB_STORE_NAME)\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket';
|
|
2
2
|
import { WebSocketClientStore, SerializedWebSocketClient } from './WebSocketClientStore.mjs';
|
|
3
|
-
import '@mswjs/interceptors/WebSocket';
|
|
4
3
|
|
|
5
4
|
declare class WebSocketMemoryClientStore implements WebSocketClientStore {
|
|
6
5
|
private store;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket';
|
|
2
2
|
import { WebSocketClientStore, SerializedWebSocketClient } from './WebSocketClientStore.js';
|
|
3
|
-
import '@mswjs/interceptors/WebSocket';
|
|
4
3
|
|
|
5
4
|
declare class WebSocketMemoryClientStore implements WebSocketClientStore {
|
|
6
5
|
private store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/WebSocketMemoryClientStore.ts"],"sourcesContent":["import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/WebSocketMemoryClientStore.ts"],"sourcesContent":["import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket'\nimport {\n SerializedWebSocketClient,\n WebSocketClientStore,\n} from './WebSocketClientStore'\n\nexport class WebSocketMemoryClientStore implements WebSocketClientStore {\n private store: Map<string, SerializedWebSocketClient>\n\n constructor() {\n this.store = new Map()\n }\n\n public async add(client: WebSocketClientConnectionProtocol): Promise<void> {\n this.store.set(client.id, { id: client.id, url: client.url.href })\n }\n\n public getAll(): Promise<Array<SerializedWebSocketClient>> {\n return Promise.resolve(Array.from(this.store.values()))\n }\n\n public async deleteMany(clientIds: Array<string>): Promise<void> {\n for (const clientId of clientIds) {\n this.store.delete(clientId)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,2BAA2D;AAAA,EAC9D;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ,oBAAI,IAAI;AAAA,EACvB;AAAA,EAEA,MAAa,IAAI,QAA0D;AACzE,SAAK,MAAM,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC;AAAA,EACnE;AAAA,EAEO,SAAoD;AACzD,WAAO,QAAQ,QAAQ,MAAM,KAAK,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,EACxD;AAAA,EAEA,MAAa,WAAW,WAAyC;AAC/D,eAAW,YAAY,WAAW;AAChC,WAAK,MAAM,OAAO,QAAQ;AAAA,IAC5B;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/WebSocketMemoryClientStore.ts"],"sourcesContent":["import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/WebSocketMemoryClientStore.ts"],"sourcesContent":["import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket'\nimport {\n SerializedWebSocketClient,\n WebSocketClientStore,\n} from './WebSocketClientStore'\n\nexport class WebSocketMemoryClientStore implements WebSocketClientStore {\n private store: Map<string, SerializedWebSocketClient>\n\n constructor() {\n this.store = new Map()\n }\n\n public async add(client: WebSocketClientConnectionProtocol): Promise<void> {\n this.store.set(client.id, { id: client.id, url: client.url.href })\n }\n\n public getAll(): Promise<Array<SerializedWebSocketClient>> {\n return Promise.resolve(Array.from(this.store.values()))\n }\n\n public async deleteMany(clientIds: Array<string>): Promise<void> {\n for (const clientId of clientIds) {\n this.store.delete(clientId)\n }\n }\n}\n"],"mappings":"AAMO,MAAM,2BAA2D;AAAA,EAC9D;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ,oBAAI,IAAI;AAAA,EACvB;AAAA,EAEA,MAAa,IAAI,QAA0D;AACzE,SAAK,MAAM,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC;AAAA,EACnE;AAAA,EAEO,SAAoD;AACzD,WAAO,QAAQ,QAAQ,MAAM,KAAK,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,EACxD;AAAA,EAEA,MAAa,WAAW,WAAyC;AAC/D,eAAW,YAAY,WAAW;AAChC,WAAK,MAAM,OAAO,QAAQ;AAAA,IAC5B;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WebSocketConnectionData } from '@mswjs/interceptors/
|
|
2
|
-
import { R as RequestHandler } from '../HttpResponse-
|
|
1
|
+
import { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket';
|
|
2
|
+
import { R as RequestHandler } from '../HttpResponse-DGUjNQHG.mjs';
|
|
3
3
|
import { WebSocketHandler } from '../handlers/WebSocketHandler.mjs';
|
|
4
4
|
import { UnhandledRequestStrategy } from '../utils/request/onUnhandledRequest.mjs';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
@@ -8,7 +8,6 @@ import '../typeUtils.mjs';
|
|
|
8
8
|
import 'graphql';
|
|
9
9
|
import '../utils/matching/matchRequestUrl.mjs';
|
|
10
10
|
import 'strict-event-emitter';
|
|
11
|
-
import '@mswjs/interceptors/WebSocket';
|
|
12
11
|
|
|
13
12
|
interface HandleWebSocketEventOptions {
|
|
14
13
|
getUnhandledRequestStrategy: () => UnhandledRequestStrategy;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WebSocketConnectionData } from '@mswjs/interceptors/
|
|
2
|
-
import { R as RequestHandler } from '../HttpResponse-
|
|
1
|
+
import { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket';
|
|
2
|
+
import { R as RequestHandler } from '../HttpResponse-BpT5A_2L.js';
|
|
3
3
|
import { WebSocketHandler } from '../handlers/WebSocketHandler.js';
|
|
4
4
|
import { UnhandledRequestStrategy } from '../utils/request/onUnhandledRequest.js';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
@@ -8,7 +8,6 @@ import '../typeUtils.js';
|
|
|
8
8
|
import 'graphql';
|
|
9
9
|
import '../utils/matching/matchRequestUrl.js';
|
|
10
10
|
import 'strict-event-emitter';
|
|
11
|
-
import '@mswjs/interceptors/WebSocket';
|
|
12
11
|
|
|
13
12
|
interface HandleWebSocketEventOptions {
|
|
14
13
|
getUnhandledRequestStrategy: () => UnhandledRequestStrategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/handleWebSocketEvent.ts"],"sourcesContent":["import type { WebSocketConnectionData } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/handleWebSocketEvent.ts"],"sourcesContent":["import type { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket'\nimport { RequestHandler } from '../handlers/RequestHandler'\nimport { WebSocketHandler } from '../handlers/WebSocketHandler'\nimport { webSocketInterceptor } from './webSocketInterceptor'\nimport {\n onUnhandledRequest,\n UnhandledRequestStrategy,\n} from '../utils/request/onUnhandledRequest'\nimport { isHandlerKind } from '../utils/internal/isHandlerKind'\n\ninterface HandleWebSocketEventOptions {\n getUnhandledRequestStrategy: () => UnhandledRequestStrategy\n getHandlers: () => Array<RequestHandler | WebSocketHandler>\n onMockedConnection: (connection: WebSocketConnectionData) => void\n onPassthroughConnection: (onnection: WebSocketConnectionData) => void\n}\n\nexport function handleWebSocketEvent(options: HandleWebSocketEventOptions) {\n webSocketInterceptor.on('connection', async (connection) => {\n const handlers = options.getHandlers().filter(isHandlerKind('EventHandler'))\n\n // Ignore this connection if the user hasn't defined any handlers.\n if (handlers.length > 0) {\n options?.onMockedConnection(connection)\n\n await Promise.all(\n handlers.map((handler) => {\n // Iterate over the handlers and forward the connection\n // event to WebSocket event handlers. This is equivalent\n // to dispatching that event onto multiple listeners.\n return handler.run(connection)\n }),\n )\n\n return\n }\n\n // Construct a request representing this WebSocket connection.\n const request = new Request(connection.client.url, {\n headers: {\n upgrade: 'websocket',\n connection: 'upgrade',\n },\n })\n await onUnhandledRequest(\n request,\n options.getUnhandledRequestStrategy(),\n ).catch((error) => {\n const errorEvent = new Event('error')\n Object.defineProperty(errorEvent, 'cause', {\n enumerable: true,\n configurable: false,\n value: error,\n })\n connection.client.socket.dispatchEvent(errorEvent)\n })\n\n options?.onPassthroughConnection(connection)\n\n // If none of the \"ws\" handlers matched,\n // establish the WebSocket connection as-is.\n connection.server.connect()\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kCAAqC;AACrC,gCAGO;AACP,2BAA8B;AASvB,SAAS,qBAAqB,SAAsC;AACzE,mDAAqB,GAAG,cAAc,OAAO,eAAe;AAC1D,UAAM,WAAW,QAAQ,YAAY,EAAE,WAAO,oCAAc,cAAc,CAAC;AAG3E,QAAI,SAAS,SAAS,GAAG;AACvB,eAAS,mBAAmB,UAAU;AAEtC,YAAM,QAAQ;AAAA,QACZ,SAAS,IAAI,CAAC,YAAY;AAIxB,iBAAO,QAAQ,IAAI,UAAU;AAAA,QAC/B,CAAC;AAAA,MACH;AAEA;AAAA,IACF;AAGA,UAAM,UAAU,IAAI,QAAQ,WAAW,OAAO,KAAK;AAAA,MACjD,SAAS;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,IACF,CAAC;AACD,cAAM;AAAA,MACJ;AAAA,MACA,QAAQ,4BAA4B;AAAA,IACtC,EAAE,MAAM,CAAC,UAAU;AACjB,YAAM,aAAa,IAAI,MAAM,OAAO;AACpC,aAAO,eAAe,YAAY,SAAS;AAAA,QACzC,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,OAAO;AAAA,MACT,CAAC;AACD,iBAAW,OAAO,OAAO,cAAc,UAAU;AAAA,IACnD,CAAC;AAED,aAAS,wBAAwB,UAAU;AAI3C,eAAW,OAAO,QAAQ;AAAA,EAC5B,CAAC;AACH;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/ws/handleWebSocketEvent.ts"],"sourcesContent":["import type { WebSocketConnectionData } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../src/core/ws/handleWebSocketEvent.ts"],"sourcesContent":["import type { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket'\nimport { RequestHandler } from '../handlers/RequestHandler'\nimport { WebSocketHandler } from '../handlers/WebSocketHandler'\nimport { webSocketInterceptor } from './webSocketInterceptor'\nimport {\n onUnhandledRequest,\n UnhandledRequestStrategy,\n} from '../utils/request/onUnhandledRequest'\nimport { isHandlerKind } from '../utils/internal/isHandlerKind'\n\ninterface HandleWebSocketEventOptions {\n getUnhandledRequestStrategy: () => UnhandledRequestStrategy\n getHandlers: () => Array<RequestHandler | WebSocketHandler>\n onMockedConnection: (connection: WebSocketConnectionData) => void\n onPassthroughConnection: (onnection: WebSocketConnectionData) => void\n}\n\nexport function handleWebSocketEvent(options: HandleWebSocketEventOptions) {\n webSocketInterceptor.on('connection', async (connection) => {\n const handlers = options.getHandlers().filter(isHandlerKind('EventHandler'))\n\n // Ignore this connection if the user hasn't defined any handlers.\n if (handlers.length > 0) {\n options?.onMockedConnection(connection)\n\n await Promise.all(\n handlers.map((handler) => {\n // Iterate over the handlers and forward the connection\n // event to WebSocket event handlers. This is equivalent\n // to dispatching that event onto multiple listeners.\n return handler.run(connection)\n }),\n )\n\n return\n }\n\n // Construct a request representing this WebSocket connection.\n const request = new Request(connection.client.url, {\n headers: {\n upgrade: 'websocket',\n connection: 'upgrade',\n },\n })\n await onUnhandledRequest(\n request,\n options.getUnhandledRequestStrategy(),\n ).catch((error) => {\n const errorEvent = new Event('error')\n Object.defineProperty(errorEvent, 'cause', {\n enumerable: true,\n configurable: false,\n value: error,\n })\n connection.client.socket.dispatchEvent(errorEvent)\n })\n\n options?.onPassthroughConnection(connection)\n\n // If none of the \"ws\" handlers matched,\n // establish the WebSocket connection as-is.\n connection.server.connect()\n })\n}\n"],"mappings":"AAGA,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,qBAAqB;AASvB,SAAS,qBAAqB,SAAsC;AACzE,uBAAqB,GAAG,cAAc,OAAO,eAAe;AAC1D,UAAM,WAAW,QAAQ,YAAY,EAAE,OAAO,cAAc,cAAc,CAAC;AAG3E,QAAI,SAAS,SAAS,GAAG;AACvB,eAAS,mBAAmB,UAAU;AAEtC,YAAM,QAAQ;AAAA,QACZ,SAAS,IAAI,CAAC,YAAY;AAIxB,iBAAO,QAAQ,IAAI,UAAU;AAAA,QAC/B,CAAC;AAAA,MACH;AAEA;AAAA,IACF;AAGA,UAAM,UAAU,IAAI,QAAQ,WAAW,OAAO,KAAK;AAAA,MACjD,SAAS;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,IACF,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,QAAQ,4BAA4B;AAAA,IACtC,EAAE,MAAM,CAAC,UAAU;AACjB,YAAM,aAAa,IAAI,MAAM,OAAO;AACpC,aAAO,eAAe,YAAY,SAAS;AAAA,QACzC,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,OAAO;AAAA,MACT,CAAC;AACD,iBAAW,OAAO,OAAO,cAAc,UAAU;AAAA,IACnD,CAAC;AAED,aAAS,wBAAwB,UAAU;AAI3C,eAAW,OAAO,QAAQ;AAAA,EAC5B,CAAC;AACH;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/ws/utils/getMessageLength.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/ws/utils/getMessageLength.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/WebSocket'\n\n/**\n * Returns the byte length of the given WebSocket message.\n * @example\n * getMessageLength('hello') // 5\n * getMessageLength(new Blob(['hello'])) // 5\n */\nexport function getMessageLength(data: WebSocketData): number {\n if (data instanceof Blob) {\n return data.size\n }\n\n if (data instanceof ArrayBuffer) {\n return data.byteLength\n }\n\n return new Blob([data as any]).size\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,SAAS,iBAAiB,MAA6B;AAC5D,MAAI,gBAAgB,MAAM;AACxB,WAAO,KAAK;AAAA,EACd;AAEA,MAAI,gBAAgB,aAAa;AAC/B,WAAO,KAAK;AAAA,EACd;AAEA,SAAO,IAAI,KAAK,CAAC,IAAW,CAAC,EAAE;AACjC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/ws/utils/getMessageLength.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/ws/utils/getMessageLength.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/WebSocket'\n\n/**\n * Returns the byte length of the given WebSocket message.\n * @example\n * getMessageLength('hello') // 5\n * getMessageLength(new Blob(['hello'])) // 5\n */\nexport function getMessageLength(data: WebSocketData): number {\n if (data instanceof Blob) {\n return data.size\n }\n\n if (data instanceof ArrayBuffer) {\n return data.byteLength\n }\n\n return new Blob([data as any]).size\n}\n"],"mappings":"AAQO,SAAS,iBAAiB,MAA6B;AAC5D,MAAI,gBAAgB,MAAM;AACxB,WAAO,KAAK;AAAA,EACd;AAEA,MAAI,gBAAgB,aAAa;AAC/B,WAAO,KAAK;AAAA,EACd;AAEA,SAAO,IAAI,KAAK,CAAC,IAAW,CAAC,EAAE;AACjC;","names":[]}
|