msw 2.10.1 → 2.10.3

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.
Files changed (66) hide show
  1. package/lib/core/{HttpResponse-BOGtXZ-B.d.mts → HttpResponse-C7FhBLaS.d.mts} +103 -2
  2. package/lib/core/{HttpResponse-DzeJL_i8.d.ts → HttpResponse-DWu36LsY.d.ts} +103 -2
  3. package/lib/core/HttpResponse.d.mts +3 -1
  4. package/lib/core/HttpResponse.d.ts +3 -1
  5. package/lib/core/HttpResponse.js +5 -1
  6. package/lib/core/HttpResponse.js.map +1 -1
  7. package/lib/core/HttpResponse.mjs +5 -1
  8. package/lib/core/HttpResponse.mjs.map +1 -1
  9. package/lib/core/SetupApi.d.mts +3 -2
  10. package/lib/core/SetupApi.d.ts +3 -2
  11. package/lib/core/getResponse.d.mts +5 -2
  12. package/lib/core/getResponse.d.ts +5 -2
  13. package/lib/core/getResponse.js +3 -2
  14. package/lib/core/getResponse.js.map +1 -1
  15. package/lib/core/getResponse.mjs +6 -3
  16. package/lib/core/getResponse.mjs.map +1 -1
  17. package/lib/core/graphql.d.mts +1 -2
  18. package/lib/core/graphql.d.ts +1 -2
  19. package/lib/core/handlers/GraphQLHandler.d.mts +1 -2
  20. package/lib/core/handlers/GraphQLHandler.d.ts +1 -2
  21. package/lib/core/handlers/HttpHandler.d.mts +2 -1
  22. package/lib/core/handlers/HttpHandler.d.ts +2 -1
  23. package/lib/core/handlers/RequestHandler.d.mts +3 -1
  24. package/lib/core/handlers/RequestHandler.d.ts +3 -1
  25. package/lib/core/handlers/RequestHandler.js.map +1 -1
  26. package/lib/core/handlers/RequestHandler.mjs.map +1 -1
  27. package/lib/core/handlers/WebSocketHandler.d.mts +6 -2
  28. package/lib/core/handlers/WebSocketHandler.d.ts +6 -2
  29. package/lib/core/handlers/WebSocketHandler.js +8 -3
  30. package/lib/core/handlers/WebSocketHandler.js.map +1 -1
  31. package/lib/core/handlers/WebSocketHandler.mjs +8 -3
  32. package/lib/core/handlers/WebSocketHandler.mjs.map +1 -1
  33. package/lib/core/http.d.mts +2 -1
  34. package/lib/core/http.d.ts +2 -1
  35. package/lib/core/index.d.mts +1 -2
  36. package/lib/core/index.d.ts +1 -2
  37. package/lib/core/passthrough.d.mts +3 -1
  38. package/lib/core/passthrough.d.ts +3 -1
  39. package/lib/core/utils/HttpResponse/decorators.d.mts +3 -1
  40. package/lib/core/utils/HttpResponse/decorators.d.ts +3 -1
  41. package/lib/core/utils/executeHandlers.d.mts +3 -1
  42. package/lib/core/utils/executeHandlers.d.ts +3 -1
  43. package/lib/core/utils/handleRequest.d.mts +3 -1
  44. package/lib/core/utils/handleRequest.d.ts +3 -1
  45. package/lib/core/utils/internal/isHandlerKind.d.mts +3 -2
  46. package/lib/core/utils/internal/isHandlerKind.d.ts +3 -2
  47. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +1 -2
  48. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +1 -2
  49. package/lib/core/utils/internal/parseMultipartData.d.mts +3 -1
  50. package/lib/core/utils/internal/parseMultipartData.d.ts +3 -1
  51. package/lib/core/utils/internal/requestHandlerUtils.d.mts +3 -1
  52. package/lib/core/utils/internal/requestHandlerUtils.d.ts +3 -1
  53. package/lib/core/ws/handleWebSocketEvent.d.mts +3 -2
  54. package/lib/core/ws/handleWebSocketEvent.d.ts +3 -2
  55. package/lib/iife/index.js +15 -5
  56. package/lib/iife/index.js.map +1 -1
  57. package/lib/mockServiceWorker.js +1 -1
  58. package/package.json +2 -2
  59. package/src/core/HttpResponse.ts +8 -1
  60. package/src/core/getResponse.test.ts +28 -17
  61. package/src/core/getResponse.ts +7 -1
  62. package/src/core/handlers/RequestHandler.ts +17 -2
  63. package/src/core/handlers/WebSocketHandler.test.ts +16 -0
  64. package/src/core/handlers/WebSocketHandler.ts +15 -2
  65. package/lib/core/GraphQLHandler-DOXAygvT.d.mts +0 -100
  66. package/lib/core/GraphQLHandler-noP9MRWa.d.ts +0 -100
@@ -1,6 +1,8 @@
1
1
  import { FetchResponse } from '@mswjs/interceptors';
2
2
  import { Iterable, AsyncIterable } from './utils/internal/isIterable.mjs';
3
3
  import { MaybePromise, NoInfer } from './typeUtils.mjs';
4
+ import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
5
+ import { Match, Path } from './utils/matching/matchRequestUrl.mjs';
4
6
 
5
7
  interface HandlersExecutionResult {
6
8
  handler: RequestHandler;
@@ -22,6 +24,101 @@ declare const executeHandlers: <Handlers extends Array<RequestHandler>>({ reques
22
24
  resolutionContext?: ResponseResolutionContext;
23
25
  }) => Promise<HandlersExecutionResult | null>;
24
26
 
27
+ interface ParsedGraphQLQuery {
28
+ operationType: OperationTypeNode;
29
+ operationName?: string;
30
+ }
31
+ type ParsedGraphQLRequest<VariablesType extends GraphQLVariables = GraphQLVariables> = (ParsedGraphQLQuery & {
32
+ query: string;
33
+ variables?: VariablesType;
34
+ }) | undefined;
35
+ declare function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery;
36
+ type GraphQLParsedOperationsMap = Record<string, string[]>;
37
+ type GraphQLMultipartRequestBody = {
38
+ operations: string;
39
+ map?: string;
40
+ } & {
41
+ [fileName: string]: File;
42
+ };
43
+ /**
44
+ * Determines if a given request can be considered a GraphQL request.
45
+ * Does not parse the query and does not guarantee its validity.
46
+ */
47
+ declare function parseGraphQLRequest(request: Request): Promise<ParsedGraphQLRequest>;
48
+
49
+ type ExpectedOperationTypeNode = OperationTypeNode | 'all';
50
+ type GraphQLHandlerNameSelector = DocumentNode | RegExp | string;
51
+ type GraphQLQuery = Record<string, any> | null;
52
+ type GraphQLVariables = Record<string, any>;
53
+ interface GraphQLHandlerInfo extends RequestHandlerDefaultInfo {
54
+ operationType: ExpectedOperationTypeNode;
55
+ operationName: GraphQLHandlerNameSelector;
56
+ }
57
+ type GraphQLRequestParsedResult = {
58
+ match: Match;
59
+ cookies: Record<string, string>;
60
+ } & (ParsedGraphQLRequest<GraphQLVariables>
61
+ /**
62
+ * An empty version of the ParsedGraphQLRequest
63
+ * which simplifies the return type of the resolver
64
+ * when the request is to a non-matching endpoint
65
+ */
66
+ | {
67
+ operationType?: undefined;
68
+ operationName?: undefined;
69
+ query?: undefined;
70
+ variables?: undefined;
71
+ });
72
+ type GraphQLResolverExtras<Variables extends GraphQLVariables> = {
73
+ query: string;
74
+ operationName: string;
75
+ variables: Variables;
76
+ cookies: Record<string, string>;
77
+ };
78
+ type GraphQLRequestBody<VariablesType extends GraphQLVariables> = GraphQLJsonRequestBody<VariablesType> | GraphQLMultipartRequestBody | Record<string, any> | undefined;
79
+ interface GraphQLJsonRequestBody<Variables extends GraphQLVariables> {
80
+ query: string;
81
+ variables?: Variables;
82
+ }
83
+ type GraphQLResponseBody<BodyType extends DefaultBodyType> = {
84
+ data?: BodyType | null;
85
+ errors?: readonly Partial<GraphQLError>[] | null;
86
+ extensions?: Record<string, any>;
87
+ } | null | undefined;
88
+ declare function isDocumentNode(value: DocumentNode | any): value is DocumentNode;
89
+ declare class GraphQLHandler extends RequestHandler<GraphQLHandlerInfo, GraphQLRequestParsedResult, GraphQLResolverExtras<any>> {
90
+ private endpoint;
91
+ static parsedRequestCache: WeakMap<Request, ParsedGraphQLRequest<GraphQLVariables>>;
92
+ constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>, options?: RequestHandlerOptions);
93
+ /**
94
+ * Parses the request body, once per request, cached across all
95
+ * GraphQL handlers. This is done to avoid multiple parsing of the
96
+ * request body, which each requires a clone of the request.
97
+ */
98
+ parseGraphQLRequestOrGetFromCache(request: Request): Promise<ParsedGraphQLRequest<GraphQLVariables>>;
99
+ parse(args: {
100
+ request: Request;
101
+ }): Promise<GraphQLRequestParsedResult>;
102
+ predicate(args: {
103
+ request: Request;
104
+ parsedResult: GraphQLRequestParsedResult;
105
+ }): boolean;
106
+ protected extendResolverArgs(args: {
107
+ request: Request;
108
+ parsedResult: GraphQLRequestParsedResult;
109
+ }): {
110
+ query: string;
111
+ operationName: string;
112
+ variables: GraphQLVariables;
113
+ cookies: Record<string, string>;
114
+ };
115
+ log(args: {
116
+ request: Request;
117
+ response: Response;
118
+ parsedResult: GraphQLRequestParsedResult;
119
+ }): Promise<void>;
120
+ }
121
+
25
122
  type DefaultRequestMultipartBody = Record<string, string | File | Array<string | File>>;
26
123
  type DefaultBodyType = Record<string, any> | DefaultRequestMultipartBody | string | number | boolean | null | undefined;
27
124
  type JsonBodyType = Record<string, any> | string | number | boolean | null | undefined;
@@ -31,7 +128,7 @@ interface RequestHandlerDefaultInfo {
31
128
  interface RequestHandlerInternalInfo {
32
129
  callFrame?: string;
33
130
  }
34
- type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : HttpResponse<ResponseBodyType>) | undefined | void;
131
+ type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : ResponseBodyType extends GraphQLRequestBody<any> ? HttpResponse<ResponseBodyType> | DefaultUnsafeFetchResponse : HttpResponse<ResponseBodyType>) | undefined | void;
35
132
  type MaybeAsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>;
36
133
  type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType> | Iterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>> | AsyncIterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>>>;
37
134
  type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
@@ -125,6 +222,9 @@ interface HttpResponseInit extends ResponseInit {
125
222
  type?: ResponseType;
126
223
  }
127
224
  declare const bodyType: unique symbol;
225
+ type DefaultUnsafeFetchResponse = Response & {
226
+ [bodyType]?: never;
227
+ };
128
228
  interface StrictRequest<BodyType extends JsonBodyType> extends Request {
129
229
  json(): Promise<BodyType>;
130
230
  }
@@ -148,6 +248,7 @@ type StrictResponse<BodyType extends DefaultBodyType> = HttpResponse<BodyType>;
148
248
  declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchResponse {
149
249
  readonly [bodyType]: BodyType;
150
250
  constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit);
251
+ static error(): HttpResponse<any>;
151
252
  /**
152
253
  * Create a `Response` with a `Content-Type: "text/plain"` body.
153
254
  * @example
@@ -197,4 +298,4 @@ declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchRespon
197
298
  static formData(body?: FormData, init?: HttpResponseInit): HttpResponse<FormData>;
198
299
  }
199
300
 
200
- export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type StrictResponse as e, HttpResponse as f, type RequestHandlerDefaultInfo as g, type ResponseResolutionContext as h, type HandlersExecutionResult as i, executeHandlers as j, type RequestHandlerInternalInfo as k, type ResponseResolverInfo as l, type RequestHandlerArgs as m, type RequestHandlerExecutionResult as n };
301
+ export { type AsyncResponseResolverReturnType as A, isDocumentNode as B, type RequestHandlerInternalInfo as C, type DefaultBodyType as D, type ExpectedOperationTypeNode as E, type ResponseResolverInfo as F, GraphQLHandler as G, type HttpResponseInit as H, type RequestHandlerArgs as I, type JsonBodyType as J, type RequestHandlerExecutionResult as K, type MaybeAsyncResponseResolverReturnType as M, type ParsedGraphQLRequest as P, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type GraphQLQuery as e, type GraphQLVariables as f, type GraphQLRequestBody as g, type GraphQLJsonRequestBody as h, bodyType as i, type DefaultUnsafeFetchResponse as j, type StrictResponse as k, HttpResponse as l, type ResponseResolutionContext as m, type GraphQLHandlerNameSelector as n, type GraphQLResolverExtras as o, type GraphQLResponseBody as p, type RequestHandlerDefaultInfo as q, type HandlersExecutionResult as r, executeHandlers as s, type ParsedGraphQLQuery as t, parseDocumentNode as u, type GraphQLParsedOperationsMap as v, type GraphQLMultipartRequestBody as w, parseGraphQLRequest as x, type GraphQLHandlerInfo as y, type GraphQLRequestParsedResult as z };
@@ -1,6 +1,8 @@
1
1
  import { FetchResponse } from '@mswjs/interceptors';
2
2
  import { Iterable, AsyncIterable } from './utils/internal/isIterable.js';
3
3
  import { MaybePromise, NoInfer } from './typeUtils.js';
4
+ import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
5
+ import { Match, Path } from './utils/matching/matchRequestUrl.js';
4
6
 
5
7
  interface HandlersExecutionResult {
6
8
  handler: RequestHandler;
@@ -22,6 +24,101 @@ declare const executeHandlers: <Handlers extends Array<RequestHandler>>({ reques
22
24
  resolutionContext?: ResponseResolutionContext;
23
25
  }) => Promise<HandlersExecutionResult | null>;
24
26
 
27
+ interface ParsedGraphQLQuery {
28
+ operationType: OperationTypeNode;
29
+ operationName?: string;
30
+ }
31
+ type ParsedGraphQLRequest<VariablesType extends GraphQLVariables = GraphQLVariables> = (ParsedGraphQLQuery & {
32
+ query: string;
33
+ variables?: VariablesType;
34
+ }) | undefined;
35
+ declare function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery;
36
+ type GraphQLParsedOperationsMap = Record<string, string[]>;
37
+ type GraphQLMultipartRequestBody = {
38
+ operations: string;
39
+ map?: string;
40
+ } & {
41
+ [fileName: string]: File;
42
+ };
43
+ /**
44
+ * Determines if a given request can be considered a GraphQL request.
45
+ * Does not parse the query and does not guarantee its validity.
46
+ */
47
+ declare function parseGraphQLRequest(request: Request): Promise<ParsedGraphQLRequest>;
48
+
49
+ type ExpectedOperationTypeNode = OperationTypeNode | 'all';
50
+ type GraphQLHandlerNameSelector = DocumentNode | RegExp | string;
51
+ type GraphQLQuery = Record<string, any> | null;
52
+ type GraphQLVariables = Record<string, any>;
53
+ interface GraphQLHandlerInfo extends RequestHandlerDefaultInfo {
54
+ operationType: ExpectedOperationTypeNode;
55
+ operationName: GraphQLHandlerNameSelector;
56
+ }
57
+ type GraphQLRequestParsedResult = {
58
+ match: Match;
59
+ cookies: Record<string, string>;
60
+ } & (ParsedGraphQLRequest<GraphQLVariables>
61
+ /**
62
+ * An empty version of the ParsedGraphQLRequest
63
+ * which simplifies the return type of the resolver
64
+ * when the request is to a non-matching endpoint
65
+ */
66
+ | {
67
+ operationType?: undefined;
68
+ operationName?: undefined;
69
+ query?: undefined;
70
+ variables?: undefined;
71
+ });
72
+ type GraphQLResolverExtras<Variables extends GraphQLVariables> = {
73
+ query: string;
74
+ operationName: string;
75
+ variables: Variables;
76
+ cookies: Record<string, string>;
77
+ };
78
+ type GraphQLRequestBody<VariablesType extends GraphQLVariables> = GraphQLJsonRequestBody<VariablesType> | GraphQLMultipartRequestBody | Record<string, any> | undefined;
79
+ interface GraphQLJsonRequestBody<Variables extends GraphQLVariables> {
80
+ query: string;
81
+ variables?: Variables;
82
+ }
83
+ type GraphQLResponseBody<BodyType extends DefaultBodyType> = {
84
+ data?: BodyType | null;
85
+ errors?: readonly Partial<GraphQLError>[] | null;
86
+ extensions?: Record<string, any>;
87
+ } | null | undefined;
88
+ declare function isDocumentNode(value: DocumentNode | any): value is DocumentNode;
89
+ declare class GraphQLHandler extends RequestHandler<GraphQLHandlerInfo, GraphQLRequestParsedResult, GraphQLResolverExtras<any>> {
90
+ private endpoint;
91
+ static parsedRequestCache: WeakMap<Request, ParsedGraphQLRequest<GraphQLVariables>>;
92
+ constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>, options?: RequestHandlerOptions);
93
+ /**
94
+ * Parses the request body, once per request, cached across all
95
+ * GraphQL handlers. This is done to avoid multiple parsing of the
96
+ * request body, which each requires a clone of the request.
97
+ */
98
+ parseGraphQLRequestOrGetFromCache(request: Request): Promise<ParsedGraphQLRequest<GraphQLVariables>>;
99
+ parse(args: {
100
+ request: Request;
101
+ }): Promise<GraphQLRequestParsedResult>;
102
+ predicate(args: {
103
+ request: Request;
104
+ parsedResult: GraphQLRequestParsedResult;
105
+ }): boolean;
106
+ protected extendResolverArgs(args: {
107
+ request: Request;
108
+ parsedResult: GraphQLRequestParsedResult;
109
+ }): {
110
+ query: string;
111
+ operationName: string;
112
+ variables: GraphQLVariables;
113
+ cookies: Record<string, string>;
114
+ };
115
+ log(args: {
116
+ request: Request;
117
+ response: Response;
118
+ parsedResult: GraphQLRequestParsedResult;
119
+ }): Promise<void>;
120
+ }
121
+
25
122
  type DefaultRequestMultipartBody = Record<string, string | File | Array<string | File>>;
26
123
  type DefaultBodyType = Record<string, any> | DefaultRequestMultipartBody | string | number | boolean | null | undefined;
27
124
  type JsonBodyType = Record<string, any> | string | number | boolean | null | undefined;
@@ -31,7 +128,7 @@ interface RequestHandlerDefaultInfo {
31
128
  interface RequestHandlerInternalInfo {
32
129
  callFrame?: string;
33
130
  }
34
- type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : HttpResponse<ResponseBodyType>) | undefined | void;
131
+ type ResponseResolverReturnType<ResponseBodyType extends DefaultBodyType = undefined> = ([ResponseBodyType] extends [undefined] ? Response : ResponseBodyType extends GraphQLRequestBody<any> ? HttpResponse<ResponseBodyType> | DefaultUnsafeFetchResponse : HttpResponse<ResponseBodyType>) | undefined | void;
35
132
  type MaybeAsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>;
36
133
  type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<ResponseBodyType> | Iterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>> | AsyncIterable<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<ResponseBodyType>>>;
37
134
  type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
@@ -125,6 +222,9 @@ interface HttpResponseInit extends ResponseInit {
125
222
  type?: ResponseType;
126
223
  }
127
224
  declare const bodyType: unique symbol;
225
+ type DefaultUnsafeFetchResponse = Response & {
226
+ [bodyType]?: never;
227
+ };
128
228
  interface StrictRequest<BodyType extends JsonBodyType> extends Request {
129
229
  json(): Promise<BodyType>;
130
230
  }
@@ -148,6 +248,7 @@ type StrictResponse<BodyType extends DefaultBodyType> = HttpResponse<BodyType>;
148
248
  declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchResponse {
149
249
  readonly [bodyType]: BodyType;
150
250
  constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit);
251
+ static error(): HttpResponse<any>;
151
252
  /**
152
253
  * Create a `Response` with a `Content-Type: "text/plain"` body.
153
254
  * @example
@@ -197,4 +298,4 @@ declare class HttpResponse<BodyType extends DefaultBodyType> extends FetchRespon
197
298
  static formData(body?: FormData, init?: HttpResponseInit): HttpResponse<FormData>;
198
299
  }
199
300
 
200
- export { type AsyncResponseResolverReturnType as A, type DefaultBodyType as D, type HttpResponseInit as H, type JsonBodyType as J, type MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type StrictResponse as e, HttpResponse as f, type RequestHandlerDefaultInfo as g, type ResponseResolutionContext as h, type HandlersExecutionResult as i, executeHandlers as j, type RequestHandlerInternalInfo as k, type ResponseResolverInfo as l, type RequestHandlerArgs as m, type RequestHandlerExecutionResult as n };
301
+ export { type AsyncResponseResolverReturnType as A, isDocumentNode as B, type RequestHandlerInternalInfo as C, type DefaultBodyType as D, type ExpectedOperationTypeNode as E, type ResponseResolverInfo as F, GraphQLHandler as G, type HttpResponseInit as H, type RequestHandlerArgs as I, type JsonBodyType as J, type RequestHandlerExecutionResult as K, type MaybeAsyncResponseResolverReturnType as M, type ParsedGraphQLRequest as P, RequestHandler as R, type StrictRequest as S, type ResponseResolver as a, type ResponseResolverReturnType as b, type RequestHandlerOptions as c, type DefaultRequestMultipartBody as d, type GraphQLQuery as e, type GraphQLVariables as f, type GraphQLRequestBody as g, type GraphQLJsonRequestBody as h, bodyType as i, type DefaultUnsafeFetchResponse as j, type StrictResponse as k, HttpResponse as l, type ResponseResolutionContext as m, type GraphQLHandlerNameSelector as n, type GraphQLResolverExtras as o, type GraphQLResponseBody as p, type RequestHandlerDefaultInfo as q, type HandlersExecutionResult as r, executeHandlers as s, type ParsedGraphQLQuery as t, parseDocumentNode as u, type GraphQLParsedOperationsMap as v, type GraphQLMultipartRequestBody as w, parseGraphQLRequest as x, type GraphQLHandlerInfo as y, type GraphQLRequestParsedResult as z };
@@ -1,4 +1,6 @@
1
1
  import '@mswjs/interceptors';
2
- export { f as HttpResponse, H as HttpResponseInit, S as StrictRequest, e as StrictResponse } from './HttpResponse-BOGtXZ-B.mjs';
2
+ export { j as DefaultUnsafeFetchResponse, l as HttpResponse, H as HttpResponseInit, S as StrictRequest, k as StrictResponse, i as bodyType } from './HttpResponse-C7FhBLaS.mjs';
3
3
  import './typeUtils.mjs';
4
4
  import './utils/internal/isIterable.mjs';
5
+ import 'graphql';
6
+ import './utils/matching/matchRequestUrl.mjs';
@@ -1,4 +1,6 @@
1
1
  import '@mswjs/interceptors';
2
- export { f as HttpResponse, H as HttpResponseInit, S as StrictRequest, e as StrictResponse } from './HttpResponse-DzeJL_i8.js';
2
+ export { j as DefaultUnsafeFetchResponse, l as HttpResponse, H as HttpResponseInit, S as StrictRequest, k as StrictResponse, i as bodyType } from './HttpResponse-DWu36LsY.js';
3
3
  import './typeUtils.js';
4
4
  import './utils/internal/isIterable.js';
5
+ import 'graphql';
6
+ import './utils/matching/matchRequestUrl.js';
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var HttpResponse_exports = {};
20
20
  __export(HttpResponse_exports, {
21
- HttpResponse: () => HttpResponse
21
+ HttpResponse: () => HttpResponse,
22
+ bodyType: () => bodyType
22
23
  });
23
24
  module.exports = __toCommonJS(HttpResponse_exports);
24
25
  var import_interceptors = require("@mswjs/interceptors");
@@ -31,6 +32,9 @@ class HttpResponse extends import_interceptors.FetchResponse {
31
32
  super(body, responseInit);
32
33
  (0, import_decorators.decorateResponse)(this, responseInit);
33
34
  }
35
+ static error() {
36
+ return super.error();
37
+ }
34
38
  /**
35
39
  * Create a `Response` with a `Content-Type: "text/plain"` body.
36
40
  * @example
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nconst bodyType: unique symbol = Symbol('bodyType')\n\nexport interface StrictRequest<BodyType extends JsonBodyType> extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n *\n * @deprecated Please use {@link HttpResponse} instead.\n */\nexport type StrictResponse<BodyType extends DefaultBodyType> =\n HttpResponse<BodyType>\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse<\n BodyType extends DefaultBodyType,\n> extends FetchResponse {\n readonly [bodyType]: BodyType = null as any\n\n constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body as BodyInit, responseInit)\n decorateResponse(this, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null | undefined,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(responseText as BodyType, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): HttpResponse<ArrayBuffer | SharedArrayBuffer> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(\n body?: FormData,\n init?: HttpResponseInit,\n ): HttpResponse<FormData> {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA8B;AAG9B,wBAGO;AAMP,MAAM,WAA0B,OAAO,UAAU;AAyB1C,MAAM,qBAEH,kCAAc;AAAA,EACtB,CAAU,QAAQ,IAAc;AAAA,EAEhC,YAAY,MAAiC,MAAyB;AACpE,UAAM,mBAAe,yCAAsB,IAAI;AAC/C,UAAM,MAAkB,YAAY;AACpC,4CAAiB,MAAM,YAAY;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,cAA0B,YAAY;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MAC+C;AAC/C,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SACL,MACA,MACwB;AACxB,WAAO,IAAI,aAAa,UAAM,yCAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nexport const bodyType: unique symbol = Symbol('bodyType')\nexport type DefaultUnsafeFetchResponse = Response & {\n [bodyType]?: never\n}\n\nexport interface StrictRequest<BodyType extends JsonBodyType> extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n *\n * @deprecated Please use {@link HttpResponse} instead.\n */\nexport type StrictResponse<BodyType extends DefaultBodyType> =\n HttpResponse<BodyType>\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse<\n BodyType extends DefaultBodyType,\n> extends FetchResponse {\n readonly [bodyType]: BodyType = null as any\n\n constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body as BodyInit, responseInit)\n decorateResponse(this, responseInit)\n }\n\n static error(): HttpResponse<any> {\n return super.error() as HttpResponse<any>\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null | undefined,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(responseText as BodyType, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): HttpResponse<ArrayBuffer | SharedArrayBuffer> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(\n body?: FormData,\n init?: HttpResponseInit,\n ): HttpResponse<FormData> {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA8B;AAG9B,wBAGO;AAMA,MAAM,WAA0B,OAAO,UAAU;AA4BjD,MAAM,qBAEH,kCAAc;AAAA,EACtB,CAAU,QAAQ,IAAc;AAAA,EAEhC,YAAY,MAAiC,MAAyB;AACpE,UAAM,mBAAe,yCAAsB,IAAI;AAC/C,UAAM,MAAkB,YAAY;AACpC,4CAAiB,MAAM,YAAY;AAAA,EACrC;AAAA,EAEA,OAAO,QAA2B;AAChC,WAAO,MAAM,MAAM;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,cAA0B,YAAY;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MAC+C;AAC/C,UAAM,mBAAe,yCAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SACL,MACA,MACwB;AACxB,WAAO,IAAI,aAAa,UAAM,yCAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
@@ -11,6 +11,9 @@ class HttpResponse extends FetchResponse {
11
11
  super(body, responseInit);
12
12
  decorateResponse(this, responseInit);
13
13
  }
14
+ static error() {
15
+ return super.error();
16
+ }
14
17
  /**
15
18
  * Create a `Response` with a `Content-Type: "text/plain"` body.
16
19
  * @example
@@ -108,6 +111,7 @@ class HttpResponse extends FetchResponse {
108
111
  }
109
112
  }
110
113
  export {
111
- HttpResponse
114
+ HttpResponse,
115
+ bodyType
112
116
  };
113
117
  //# sourceMappingURL=HttpResponse.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nconst bodyType: unique symbol = Symbol('bodyType')\n\nexport interface StrictRequest<BodyType extends JsonBodyType> extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n *\n * @deprecated Please use {@link HttpResponse} instead.\n */\nexport type StrictResponse<BodyType extends DefaultBodyType> =\n HttpResponse<BodyType>\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse<\n BodyType extends DefaultBodyType,\n> extends FetchResponse {\n readonly [bodyType]: BodyType = null as any\n\n constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body as BodyInit, responseInit)\n decorateResponse(this, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null | undefined,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(responseText as BodyType, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): HttpResponse<ArrayBuffer | SharedArrayBuffer> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(\n body?: FormData,\n init?: HttpResponseInit,\n ): HttpResponse<FormData> {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAG9B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,MAAM,WAA0B,OAAO,UAAU;AAyB1C,MAAM,qBAEH,cAAc;AAAA,EACtB,CAAU,QAAQ,IAAc;AAAA,EAEhC,YAAY,MAAiC,MAAyB;AACpE,UAAM,eAAe,sBAAsB,IAAI;AAC/C,UAAM,MAAkB,YAAY;AACpC,qBAAiB,MAAM,YAAY;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,cAA0B,YAAY;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MAC+C;AAC/C,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SACL,MACA,MACwB;AACxB,WAAO,IAAI,aAAa,MAAM,sBAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/core/HttpResponse.ts"],"sourcesContent":["import { FetchResponse } from '@mswjs/interceptors'\nimport type { DefaultBodyType, JsonBodyType } from './handlers/RequestHandler'\nimport type { NoInfer } from './typeUtils'\nimport {\n decorateResponse,\n normalizeResponseInit,\n} from './utils/HttpResponse/decorators'\n\nexport interface HttpResponseInit extends ResponseInit {\n type?: ResponseType\n}\n\nexport const bodyType: unique symbol = Symbol('bodyType')\nexport type DefaultUnsafeFetchResponse = Response & {\n [bodyType]?: never\n}\n\nexport interface StrictRequest<BodyType extends JsonBodyType> extends Request {\n json(): Promise<BodyType>\n}\n\n/**\n * Opaque `Response` type that supports strict body type.\n *\n * @deprecated Please use {@link HttpResponse} instead.\n */\nexport type StrictResponse<BodyType extends DefaultBodyType> =\n HttpResponse<BodyType>\n\n/**\n * A drop-in replacement for the standard `Response` class\n * to allow additional features, like mocking the response `Set-Cookie` header.\n *\n * @example\n * new HttpResponse('Hello world', { status: 201 })\n * HttpResponse.json({ name: 'John' })\n * HttpResponse.formData(form)\n *\n * @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}\n */\nexport class HttpResponse<\n BodyType extends DefaultBodyType,\n> extends FetchResponse {\n readonly [bodyType]: BodyType = null as any\n\n constructor(body?: NoInfer<BodyType> | null, init?: HttpResponseInit) {\n const responseInit = normalizeResponseInit(init)\n super(body as BodyInit, responseInit)\n decorateResponse(this, responseInit)\n }\n\n static error(): HttpResponse<any> {\n return super.error() as HttpResponse<any>\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text<BodyType extends string>(\n body?: NoInfer<BodyType> | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/plain')\n }\n\n // Automatically set the \"Content-Length\" response header\n // for non-empty text responses. This enforces consistency and\n // brings mocked responses closer to production.\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n body ? new Blob([body]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json<BodyType extends JsonBodyType>(\n body?: NoInfer<BodyType> | null | undefined,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/json')\n }\n\n /**\n * @note TypeScript is incorrect here.\n * Stringifying undefined will return undefined.\n */\n const responseText = JSON.stringify(body) as string | undefined\n\n if (!responseInit.headers.has('Content-Length')) {\n responseInit.headers.set(\n 'Content-Length',\n responseText ? new Blob([responseText]).size.toString() : '0',\n )\n }\n\n return new HttpResponse(responseText as BodyType, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/xml')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html<BodyType extends string>(\n body?: BodyType | null,\n init?: HttpResponseInit,\n ): HttpResponse<BodyType> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'text/html')\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(\n body?: ArrayBuffer | SharedArrayBuffer,\n init?: HttpResponseInit,\n ): HttpResponse<ArrayBuffer | SharedArrayBuffer> {\n const responseInit = normalizeResponseInit(init)\n\n if (!responseInit.headers.has('Content-Type')) {\n responseInit.headers.set('Content-Type', 'application/octet-stream')\n }\n\n if (body && !responseInit.headers.has('Content-Length')) {\n responseInit.headers.set('Content-Length', body.byteLength.toString())\n }\n\n return new HttpResponse(body, responseInit)\n }\n\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(\n body?: FormData,\n init?: HttpResponseInit,\n ): HttpResponse<FormData> {\n return new HttpResponse(body, normalizeResponseInit(init))\n }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAG9B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMA,MAAM,WAA0B,OAAO,UAAU;AA4BjD,MAAM,qBAEH,cAAc;AAAA,EACtB,CAAU,QAAQ,IAAc;AAAA,EAEhC,YAAY,MAAiC,MAAyB;AACpE,UAAM,eAAe,sBAAsB,IAAI;AAC/C,UAAM,MAAkB,YAAY;AACpC,qBAAiB,MAAM,YAAY;AAAA,EACrC;AAAA,EAEA,OAAO,QAA2B;AAChC,WAAO,MAAM,MAAM;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,YAAY;AAAA,IACvD;AAKA,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAC7D;AAMA,UAAM,eAAe,KAAK,UAAU,IAAI;AAExC,QAAI,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AAC/C,mBAAa,QAAQ;AAAA,QACnB;AAAA,QACA,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI;AAAA,MAC5D;AAAA,IACF;AAEA,WAAO,IAAI,aAAa,cAA0B,YAAY;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,IACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,UAAU;AAAA,IACrD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KACL,MACA,MACwB;AACxB,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,WAAW;AAAA,IACtD;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,YACL,MACA,MAC+C;AAC/C,UAAM,eAAe,sBAAsB,IAAI;AAE/C,QAAI,CAAC,aAAa,QAAQ,IAAI,cAAc,GAAG;AAC7C,mBAAa,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,IACrE;AAEA,QAAI,QAAQ,CAAC,aAAa,QAAQ,IAAI,gBAAgB,GAAG;AACvD,mBAAa,QAAQ,IAAI,kBAAkB,KAAK,WAAW,SAAS,CAAC;AAAA,IACvE;AAEA,WAAO,IAAI,aAAa,MAAM,YAAY;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SACL,MACA,MACwB;AACxB,WAAO,IAAI,aAAa,MAAM,sBAAsB,IAAI,CAAC;AAAA,EAC3D;AACF;","names":[]}
@@ -1,14 +1,15 @@
1
1
  import { EventMap, Emitter } from 'strict-event-emitter';
2
- import { R as RequestHandler } from './HttpResponse-BOGtXZ-B.mjs';
2
+ import { R as RequestHandler } from './HttpResponse-C7FhBLaS.mjs';
3
3
  import { LifeCycleEventEmitter } from './sharedOptions.mjs';
4
4
  import { Disposable } from './utils/internal/Disposable.mjs';
5
5
  import { WebSocketHandler } from './handlers/WebSocketHandler.mjs';
6
6
  import '@mswjs/interceptors';
7
7
  import './utils/internal/isIterable.mjs';
8
8
  import './typeUtils.mjs';
9
+ import 'graphql';
10
+ import './utils/matching/matchRequestUrl.mjs';
9
11
  import './utils/request/onUnhandledRequest.mjs';
10
12
  import '@mswjs/interceptors/WebSocket';
11
- import './utils/matching/matchRequestUrl.mjs';
12
13
 
13
14
  declare abstract class HandlersController {
14
15
  abstract prepend(runtimeHandlers: Array<RequestHandler | WebSocketHandler>): void;
@@ -1,14 +1,15 @@
1
1
  import { EventMap, Emitter } from 'strict-event-emitter';
2
- import { R as RequestHandler } from './HttpResponse-DzeJL_i8.js';
2
+ import { R as RequestHandler } from './HttpResponse-DWu36LsY.js';
3
3
  import { LifeCycleEventEmitter } from './sharedOptions.js';
4
4
  import { Disposable } from './utils/internal/Disposable.js';
5
5
  import { WebSocketHandler } from './handlers/WebSocketHandler.js';
6
6
  import '@mswjs/interceptors';
7
7
  import './utils/internal/isIterable.js';
8
8
  import './typeUtils.js';
9
+ import 'graphql';
10
+ import './utils/matching/matchRequestUrl.js';
9
11
  import './utils/request/onUnhandledRequest.js';
10
12
  import '@mswjs/interceptors/WebSocket';
11
- import './utils/matching/matchRequestUrl.js';
12
13
 
13
14
  declare abstract class HandlersController {
14
15
  abstract prepend(runtimeHandlers: Array<RequestHandler | WebSocketHandler>): void;
@@ -1,15 +1,18 @@
1
- import { R as RequestHandler } from './HttpResponse-BOGtXZ-B.mjs';
1
+ import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-C7FhBLaS.mjs';
2
2
  import '@mswjs/interceptors';
3
3
  import './utils/internal/isIterable.mjs';
4
4
  import './typeUtils.mjs';
5
+ import 'graphql';
6
+ import './utils/matching/matchRequestUrl.mjs';
5
7
 
6
8
  /**
7
9
  * Finds a response for the given request instance
8
10
  * in the array of request handlers.
9
11
  * @param handlers The array of request handlers.
10
12
  * @param request The `Request` instance.
13
+ * @param resolutionContext Request resolution options.
11
14
  * @returns {Response} A mocked response, if any.
12
15
  */
13
- declare const getResponse: (handlers: Array<RequestHandler>, request: Request) => Promise<Response | undefined>;
16
+ declare const getResponse: (handlers: Array<RequestHandler>, request: Request, resolutionContext?: ResponseResolutionContext) => Promise<Response | undefined>;
14
17
 
15
18
  export { getResponse };
@@ -1,15 +1,18 @@
1
- import { R as RequestHandler } from './HttpResponse-DzeJL_i8.js';
1
+ import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-DWu36LsY.js';
2
2
  import '@mswjs/interceptors';
3
3
  import './utils/internal/isIterable.js';
4
4
  import './typeUtils.js';
5
+ import 'graphql';
6
+ import './utils/matching/matchRequestUrl.js';
5
7
 
6
8
  /**
7
9
  * Finds a response for the given request instance
8
10
  * in the array of request handlers.
9
11
  * @param handlers The array of request handlers.
10
12
  * @param request The `Request` instance.
13
+ * @param resolutionContext Request resolution options.
11
14
  * @returns {Response} A mocked response, if any.
12
15
  */
13
- declare const getResponse: (handlers: Array<RequestHandler>, request: Request) => Promise<Response | undefined>;
16
+ declare const getResponse: (handlers: Array<RequestHandler>, request: Request, resolutionContext?: ResponseResolutionContext) => Promise<Response | undefined>;
14
17
 
15
18
  export { getResponse };
@@ -23,11 +23,12 @@ __export(getResponse_exports, {
23
23
  module.exports = __toCommonJS(getResponse_exports);
24
24
  var import_interceptors = require("@mswjs/interceptors");
25
25
  var import_executeHandlers = require("./utils/executeHandlers");
26
- const getResponse = async (handlers, request) => {
26
+ const getResponse = async (handlers, request, resolutionContext) => {
27
27
  const result = await (0, import_executeHandlers.executeHandlers)({
28
28
  request,
29
29
  requestId: (0, import_interceptors.createRequestId)(),
30
- handlers
30
+ handlers,
31
+ resolutionContext
31
32
  });
32
33
  return result?.response;
33
34
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/getResponse.ts"],"sourcesContent":["import { createRequestId } from '@mswjs/interceptors'\nimport type { RequestHandler } from './handlers/RequestHandler'\nimport { executeHandlers } from './utils/executeHandlers'\n\n/**\n * Finds a response for the given request instance\n * in the array of request handlers.\n * @param handlers The array of request handlers.\n * @param request The `Request` instance.\n * @returns {Response} A mocked response, if any.\n */\nexport const getResponse = async (\n handlers: Array<RequestHandler>,\n request: Request,\n): Promise<Response | undefined> => {\n const result = await executeHandlers({\n request,\n requestId: createRequestId(),\n handlers,\n })\n\n return result?.response\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAgC;AAEhC,6BAAgC;AASzB,MAAM,cAAc,OACzB,UACA,YACkC;AAClC,QAAM,SAAS,UAAM,wCAAgB;AAAA,IACnC;AAAA,IACA,eAAW,qCAAgB;AAAA,IAC3B;AAAA,EACF,CAAC;AAED,SAAO,QAAQ;AACjB;","names":[]}
1
+ {"version":3,"sources":["../../src/core/getResponse.ts"],"sourcesContent":["import { createRequestId } from '@mswjs/interceptors'\nimport type { RequestHandler } from './handlers/RequestHandler'\nimport {\n executeHandlers,\n type ResponseResolutionContext,\n} from './utils/executeHandlers'\n\n/**\n * Finds a response for the given request instance\n * in the array of request handlers.\n * @param handlers The array of request handlers.\n * @param request The `Request` instance.\n * @param resolutionContext Request resolution options.\n * @returns {Response} A mocked response, if any.\n */\nexport const getResponse = async (\n handlers: Array<RequestHandler>,\n request: Request,\n resolutionContext?: ResponseResolutionContext,\n): Promise<Response | undefined> => {\n const result = await executeHandlers({\n request,\n requestId: createRequestId(),\n handlers,\n resolutionContext,\n })\n\n return result?.response\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAgC;AAEhC,6BAGO;AAUA,MAAM,cAAc,OACzB,UACA,SACA,sBACkC;AAClC,QAAM,SAAS,UAAM,wCAAgB;AAAA,IACnC;AAAA,IACA,eAAW,qCAAgB;AAAA,IAC3B;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,QAAQ;AACjB;","names":[]}
@@ -1,10 +1,13 @@
1
1
  import { createRequestId } from "@mswjs/interceptors";
2
- import { executeHandlers } from './utils/executeHandlers.mjs';
3
- const getResponse = async (handlers, request) => {
2
+ import {
3
+ executeHandlers
4
+ } from './utils/executeHandlers.mjs';
5
+ const getResponse = async (handlers, request, resolutionContext) => {
4
6
  const result = await executeHandlers({
5
7
  request,
6
8
  requestId: createRequestId(),
7
- handlers
9
+ handlers,
10
+ resolutionContext
8
11
  });
9
12
  return result?.response;
10
13
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/getResponse.ts"],"sourcesContent":["import { createRequestId } from '@mswjs/interceptors'\nimport type { RequestHandler } from './handlers/RequestHandler'\nimport { executeHandlers } from './utils/executeHandlers'\n\n/**\n * Finds a response for the given request instance\n * in the array of request handlers.\n * @param handlers The array of request handlers.\n * @param request The `Request` instance.\n * @returns {Response} A mocked response, if any.\n */\nexport const getResponse = async (\n handlers: Array<RequestHandler>,\n request: Request,\n): Promise<Response | undefined> => {\n const result = await executeHandlers({\n request,\n requestId: createRequestId(),\n handlers,\n })\n\n return result?.response\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAEhC,SAAS,uBAAuB;AASzB,MAAM,cAAc,OACzB,UACA,YACkC;AAClC,QAAM,SAAS,MAAM,gBAAgB;AAAA,IACnC;AAAA,IACA,WAAW,gBAAgB;AAAA,IAC3B;AAAA,EACF,CAAC;AAED,SAAO,QAAQ;AACjB;","names":[]}
1
+ {"version":3,"sources":["../../src/core/getResponse.ts"],"sourcesContent":["import { createRequestId } from '@mswjs/interceptors'\nimport type { RequestHandler } from './handlers/RequestHandler'\nimport {\n executeHandlers,\n type ResponseResolutionContext,\n} from './utils/executeHandlers'\n\n/**\n * Finds a response for the given request instance\n * in the array of request handlers.\n * @param handlers The array of request handlers.\n * @param request The `Request` instance.\n * @param resolutionContext Request resolution options.\n * @returns {Response} A mocked response, if any.\n */\nexport const getResponse = async (\n handlers: Array<RequestHandler>,\n request: Request,\n resolutionContext?: ResponseResolutionContext,\n): Promise<Response | undefined> => {\n const result = await executeHandlers({\n request,\n requestId: createRequestId(),\n handlers,\n resolutionContext,\n })\n\n return result?.response\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,OAEK;AAUA,MAAM,cAAc,OACzB,UACA,SACA,sBACkC;AAClC,QAAM,SAAS,MAAM,gBAAgB;AAAA,IACnC;AAAA,IACA,WAAW,gBAAgB;AAAA,IAC3B;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,QAAQ;AACjB;","names":[]}
@@ -1,6 +1,5 @@
1
1
  import { DocumentNode } from 'graphql';
2
- import { a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-BOGtXZ-B.mjs';
3
- import { a as GraphQLQuery, b as GraphQLVariables, e as GraphQLHandlerNameSelector, f as GraphQLResolverExtras, g as GraphQLResponseBody, G as GraphQLHandler } from './GraphQLHandler-DOXAygvT.mjs';
2
+ import { e as GraphQLQuery, f as GraphQLVariables, n as GraphQLHandlerNameSelector, a as ResponseResolver, o as GraphQLResolverExtras, p as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-C7FhBLaS.mjs';
4
3
  import { Path } from './utils/matching/matchRequestUrl.mjs';
5
4
  import '@mswjs/interceptors';
6
5
  import './utils/internal/isIterable.mjs';
@@ -1,6 +1,5 @@
1
1
  import { DocumentNode } from 'graphql';
2
- import { a as ResponseResolver, c as RequestHandlerOptions } from './HttpResponse-DzeJL_i8.js';
3
- import { a as GraphQLQuery, b as GraphQLVariables, e as GraphQLHandlerNameSelector, f as GraphQLResolverExtras, g as GraphQLResponseBody, G as GraphQLHandler } from './GraphQLHandler-noP9MRWa.js';
2
+ import { e as GraphQLQuery, f as GraphQLVariables, n as GraphQLHandlerNameSelector, a as ResponseResolver, o as GraphQLResolverExtras, p as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-DWu36LsY.js';
4
3
  import { Path } from './utils/matching/matchRequestUrl.js';
5
4
  import '@mswjs/interceptors';
6
5
  import './utils/internal/isIterable.js';
@@ -1,7 +1,6 @@
1
1
  import 'graphql';
2
- import '../HttpResponse-BOGtXZ-B.mjs';
2
+ export { E as ExpectedOperationTypeNode, G as GraphQLHandler, y as GraphQLHandlerInfo, n as GraphQLHandlerNameSelector, h as GraphQLJsonRequestBody, e as GraphQLQuery, g as GraphQLRequestBody, z as GraphQLRequestParsedResult, o as GraphQLResolverExtras, p as GraphQLResponseBody, f as GraphQLVariables, B as isDocumentNode } from '../HttpResponse-C7FhBLaS.mjs';
3
3
  import '../utils/matching/matchRequestUrl.mjs';
4
- export { E as ExpectedOperationTypeNode, G as GraphQLHandler, l as GraphQLHandlerInfo, e as GraphQLHandlerNameSelector, d as GraphQLJsonRequestBody, a as GraphQLQuery, c as GraphQLRequestBody, m as GraphQLRequestParsedResult, f as GraphQLResolverExtras, g as GraphQLResponseBody, b as GraphQLVariables, n as isDocumentNode } from '../GraphQLHandler-DOXAygvT.mjs';
5
4
  import '@mswjs/interceptors';
6
5
  import '../utils/internal/isIterable.mjs';
7
6
  import '../typeUtils.mjs';
@@ -1,7 +1,6 @@
1
1
  import 'graphql';
2
- import '../HttpResponse-DzeJL_i8.js';
2
+ export { E as ExpectedOperationTypeNode, G as GraphQLHandler, y as GraphQLHandlerInfo, n as GraphQLHandlerNameSelector, h as GraphQLJsonRequestBody, e as GraphQLQuery, g as GraphQLRequestBody, z as GraphQLRequestParsedResult, o as GraphQLResolverExtras, p as GraphQLResponseBody, f as GraphQLVariables, B as isDocumentNode } from '../HttpResponse-DWu36LsY.js';
3
3
  import '../utils/matching/matchRequestUrl.js';
4
- export { E as ExpectedOperationTypeNode, G as GraphQLHandler, l as GraphQLHandlerInfo, e as GraphQLHandlerNameSelector, d as GraphQLJsonRequestBody, a as GraphQLQuery, c as GraphQLRequestBody, m as GraphQLRequestParsedResult, f as GraphQLResolverExtras, g as GraphQLResponseBody, b as GraphQLVariables, n as isDocumentNode } from '../GraphQLHandler-noP9MRWa.js';
5
4
  import '@mswjs/interceptors';
6
5
  import '../utils/internal/isIterable.js';
7
6
  import '../typeUtils.js';
@@ -1,8 +1,9 @@
1
- import { R as RequestHandler, g as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, h as ResponseResolutionContext } from '../HttpResponse-BOGtXZ-B.mjs';
1
+ import { R as RequestHandler, q as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, m as ResponseResolutionContext } from '../HttpResponse-C7FhBLaS.mjs';
2
2
  import { PathParams, Path, Match } from '../utils/matching/matchRequestUrl.mjs';
3
3
  import '@mswjs/interceptors';
4
4
  import '../utils/internal/isIterable.mjs';
5
5
  import '../typeUtils.mjs';
6
+ import 'graphql';
6
7
 
7
8
  type HttpHandlerMethod = string | RegExp;
8
9
  interface HttpHandlerInfo extends RequestHandlerDefaultInfo {