msw 0.0.0-fetch.rc-18 → 0.0.0-fetch.rc-20

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 (47) hide show
  1. package/lib/browser/index.js +2 -12
  2. package/lib/browser/index.mjs +2 -12
  3. package/lib/core/{GraphQLHandler-2e60cda6.d.ts → GraphQLHandler-ef45ae39.d.ts} +2 -2
  4. package/lib/core/HttpResponse.d.ts +1 -1
  5. package/lib/core/{RequestHandler-e964183f.d.ts → RequestHandler-7c716cf7.d.ts} +8 -7
  6. package/lib/core/SetupApi.d.ts +1 -1
  7. package/lib/core/bypass.d.ts +5 -7
  8. package/lib/core/bypass.js +10 -68
  9. package/lib/core/bypass.mjs +10 -68
  10. package/lib/core/graphql.d.ts +6 -6
  11. package/lib/core/graphql.js +8 -2
  12. package/lib/core/graphql.mjs +8 -2
  13. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  14. package/lib/core/handlers/GraphQLHandler.js +3 -2
  15. package/lib/core/handlers/GraphQLHandler.mjs +3 -2
  16. package/lib/core/handlers/HttpHandler.d.ts +2 -2
  17. package/lib/core/handlers/HttpHandler.js +1 -1
  18. package/lib/core/handlers/HttpHandler.mjs +1 -1
  19. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  20. package/lib/core/handlers/RequestHandler.js +6 -5
  21. package/lib/core/handlers/RequestHandler.mjs +6 -5
  22. package/lib/core/http.d.ts +9 -9
  23. package/lib/core/index.d.ts +2 -3
  24. package/lib/core/index.js +0 -2
  25. package/lib/core/index.mjs +0 -2
  26. package/lib/core/sharedOptions.d.ts +1 -1
  27. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  28. package/lib/core/utils/getResponse.d.ts +1 -1
  29. package/lib/core/utils/handleRequest.d.ts +1 -1
  30. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  31. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  32. package/lib/core/utils/internal/requestHandlerUtils.d.ts +2 -2
  33. package/lib/core/utils/logging/serializeRequest.d.ts +1 -3
  34. package/lib/core/utils/logging/serializeRequest.js +1 -2
  35. package/lib/core/utils/logging/serializeRequest.mjs +1 -2
  36. package/lib/core/utils/logging/serializeResponse.d.ts +1 -3
  37. package/lib/core/utils/logging/serializeResponse.js +1 -2
  38. package/lib/core/utils/logging/serializeResponse.mjs +1 -2
  39. package/lib/core/utils/request/onUnhandledRequest.d.ts +1 -1
  40. package/lib/core/utils/toResponseInit.js +1 -2
  41. package/lib/core/utils/toResponseInit.mjs +1 -2
  42. package/lib/iife/index.js +2850 -4788
  43. package/lib/mockServiceWorker.js +3 -34
  44. package/package.json +5 -5
  45. package/lib/core/NetworkError.d.ts +0 -16
  46. package/lib/core/NetworkError.js +0 -29
  47. package/lib/core/NetworkError.mjs +0 -9
@@ -220,9 +220,6 @@ var WorkerChannel = class {
220
220
  }
221
221
  };
222
222
 
223
- // src/browser/setupWorker/start/createRequestListener.ts
224
- var import_NetworkError = require("../core/NetworkError.js");
225
-
226
223
  // src/browser/utils/pruneGetRequestBody.ts
227
224
  function pruneGetRequestBody(request) {
228
225
  if (["HEAD", "GET"].includes(request.method)) {
@@ -285,13 +282,6 @@ var createRequestListener = (context, options) => {
285
282
  }
286
283
  );
287
284
  } catch (error) {
288
- if (error instanceof import_NetworkError.NetworkError) {
289
- messageChannel.postMessage("NETWORK_ERROR", {
290
- name: error.name,
291
- message: error.message
292
- });
293
- return;
294
- }
295
285
  if (error instanceof Error) {
296
286
  import_devUtils4.devUtils.error(
297
287
  `Uncaught exception in the request handler for "%s %s":
@@ -327,9 +317,9 @@ function requestIntegrityCheck(context, serviceWorker) {
327
317
  const { payload: actualChecksum } = yield context.events.once(
328
318
  "INTEGRITY_CHECK_RESPONSE"
329
319
  );
330
- if (actualChecksum !== "42fb047ce943b9103a6ed499f86548c4") {
320
+ if (actualChecksum !== "3343a047c60712815551260184217eb5") {
331
321
  throw new Error(
332
- `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"42fb047ce943b9103a6ed499f86548c4"}).`
322
+ `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"3343a047c60712815551260184217eb5"}).`
333
323
  );
334
324
  }
335
325
  return serviceWorker;
@@ -196,9 +196,6 @@ var WorkerChannel = class {
196
196
  }
197
197
  };
198
198
 
199
- // src/browser/setupWorker/start/createRequestListener.ts
200
- import { NetworkError } from '../core/NetworkError.mjs';
201
-
202
199
  // src/browser/utils/pruneGetRequestBody.ts
203
200
  function pruneGetRequestBody(request) {
204
201
  if (["HEAD", "GET"].includes(request.method)) {
@@ -261,13 +258,6 @@ var createRequestListener = (context, options) => {
261
258
  }
262
259
  );
263
260
  } catch (error) {
264
- if (error instanceof NetworkError) {
265
- messageChannel.postMessage("NETWORK_ERROR", {
266
- name: error.name,
267
- message: error.message
268
- });
269
- return;
270
- }
271
261
  if (error instanceof Error) {
272
262
  devUtils4.error(
273
263
  `Uncaught exception in the request handler for "%s %s":
@@ -303,9 +293,9 @@ function requestIntegrityCheck(context, serviceWorker) {
303
293
  const { payload: actualChecksum } = yield context.events.once(
304
294
  "INTEGRITY_CHECK_RESPONSE"
305
295
  );
306
- if (actualChecksum !== "42fb047ce943b9103a6ed499f86548c4") {
296
+ if (actualChecksum !== "3343a047c60712815551260184217eb5") {
307
297
  throw new Error(
308
- `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"42fb047ce943b9103a6ed499f86548c4"}).`
298
+ `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"3343a047c60712815551260184217eb5"}).`
309
299
  );
310
300
  }
311
301
  return serviceWorker;
@@ -1,5 +1,5 @@
1
1
  import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
2
- import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver } from './RequestHandler-e964183f.js';
2
+ import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver, f as RequestHandlerOptions } from './RequestHandler-7c716cf7.js';
3
3
  import { Path } from './utils/matching/matchRequestUrl.js';
4
4
 
5
5
  interface ParsedGraphQLQuery {
@@ -48,7 +48,7 @@ interface GraphQLResponseBody<BodyType extends DefaultBodyType> {
48
48
  declare function isDocumentNode(value: DocumentNode | any): value is DocumentNode;
49
49
  declare class GraphQLHandler extends RequestHandler<GraphQLHandlerInfo, ParsedGraphQLRequest, GraphQLResolverExtras<any>> {
50
50
  private endpoint;
51
- constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>);
51
+ constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>, options?: RequestHandlerOptions);
52
52
  parse(request: Request): Promise<ParsedGraphQLRequest<GraphQLVariables>>;
53
53
  predicate(request: Request, parsedResult: ParsedGraphQLRequest): boolean;
54
54
  protected extendInfo(_request: Request, parsedResult: ParsedGraphQLRequest<GraphQLVariables>): {
@@ -1,2 +1,2 @@
1
- export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest, d as StrictResponse } from './RequestHandler-e964183f.js';
1
+ export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest, d as StrictResponse } from './RequestHandler-7c716cf7.js';
2
2
  import './typeUtils.js';
@@ -11,7 +11,7 @@ interface ResponseResolutionContext {
11
11
  /**
12
12
  * Returns a mocked response for a given request using following request handlers.
13
13
  */
14
- declare const getResponse: <Handler extends RequestHandler<RequestHandlerDefaultInfo, any, any>[]>(request: Request, handlers: Handler, resolutionContext?: ResponseResolutionContext) => Promise<ResponseLookupResult | null>;
14
+ declare const getResponse: <Handler extends RequestHandler<RequestHandlerDefaultInfo, any, any, RequestHandlerOptions>[]>(request: Request, handlers: Handler, resolutionContext?: ResponseResolutionContext) => Promise<ResponseLookupResult | null>;
15
15
 
16
16
  interface HttpResponseInit extends ResponseInit {
17
17
  type?: ResponseType;
@@ -90,11 +90,12 @@ type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, Req
90
90
  request: StrictRequest<RequestBodyType>;
91
91
  } & ResolverExtraInfo;
92
92
  type ResponseResolver<ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined> = (info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>) => AsyncResponseResolverReturnType<ResponseBodyType>;
93
- interface RequestHandlerOptions<HandlerInfo> extends RequestHandlerPublicOptions {
93
+ interface RequestHandlerArgs<HandlerInfo, HandlerOptions extends RequestHandlerOptions> {
94
94
  info: HandlerInfo;
95
95
  resolver: ResponseResolver<any>;
96
+ options?: HandlerOptions;
96
97
  }
97
- interface RequestHandlerPublicOptions {
98
+ interface RequestHandlerOptions {
98
99
  once?: boolean;
99
100
  }
100
101
  interface RequestHandlerExecutionResult<ParsedResult extends Record<string, unknown> | undefined> {
@@ -103,7 +104,7 @@ interface RequestHandlerExecutionResult<ParsedResult extends Record<string, unkn
103
104
  request: Request;
104
105
  response?: Response;
105
106
  }
106
- declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo, ParsedResult extends Record<string, any> | undefined = any, ResolverExtras extends Record<string, unknown> = any> {
107
+ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo, ParsedResult extends Record<string, any> | undefined = any, ResolverExtras extends Record<string, unknown> = any, HandlerOptions extends RequestHandlerOptions = RequestHandlerOptions> {
107
108
  info: HandlerInfo & RequestHandlerInternalInfo;
108
109
  /**
109
110
  * Indicates whether this request handler has been used
@@ -113,8 +114,8 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
113
114
  protected resolver: ResponseResolver<ResolverExtras, any, any>;
114
115
  private resolverGenerator?;
115
116
  private resolverGeneratorResult?;
116
- private once;
117
- constructor(options: RequestHandlerOptions<HandlerInfo>);
117
+ private options?;
118
+ constructor(args: RequestHandlerArgs<HandlerInfo, HandlerOptions>);
118
119
  /**
119
120
  * Determine if the captured request should be mocked.
120
121
  */
@@ -142,4 +143,4 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
142
143
  private createExecutionResult;
143
144
  }
144
145
 
145
- export { AsyncResponseResolverReturnType as A, DefaultBodyType as D, HttpResponseInit as H, MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, StrictRequest as S, ResponseResolver as a, ResponseResolverReturnType as b, DefaultRequestMultipartBody as c, StrictResponse as d, HttpResponse as e, RequestHandlerPublicOptions as f, RequestHandlerDefaultInfo as g, ResponseLookupResult as h, ResponseResolutionContext as i, getResponse as j, RequestHandlerInternalInfo as k, ResponseResolverInfo as l, RequestHandlerOptions as m, RequestHandlerExecutionResult as n };
146
+ export { AsyncResponseResolverReturnType as A, DefaultBodyType as D, HttpResponseInit as H, MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, StrictRequest as S, ResponseResolver as a, ResponseResolverReturnType as b, DefaultRequestMultipartBody as c, StrictResponse as d, HttpResponse as e, RequestHandlerOptions as f, RequestHandlerDefaultInfo as g, ResponseLookupResult as h, ResponseResolutionContext as i, getResponse as j, RequestHandlerInternalInfo as k, ResponseResolverInfo as l, RequestHandlerArgs as m, RequestHandlerExecutionResult as n };
@@ -1,5 +1,5 @@
1
1
  import { EventMap, Emitter } from 'strict-event-emitter';
2
- import { R as RequestHandler, g as RequestHandlerDefaultInfo } from './RequestHandler-e964183f.js';
2
+ import { R as RequestHandler, g as RequestHandlerDefaultInfo } from './RequestHandler-7c716cf7.js';
3
3
  import { LifeCycleEventEmitter } from './sharedOptions.js';
4
4
  import { Disposable } from './utils/internal/Disposable.js';
5
5
  import './typeUtils.js';
@@ -1,16 +1,14 @@
1
1
  type BypassRequestInput = string | URL | Request;
2
2
  /**
3
- * Derives request input and init from the given Request info
4
- * to define a request that will always be ignored by MSW.
3
+ * Creates a `Request` instance that will always be bypassed by MSW.
5
4
  *
6
5
  * @example
7
- * import fetch, { Request } from 'node-fetch'
8
6
  * import { bypass } from 'msw'
9
7
  *
10
- * fetch(...bypass('/resource'))
11
- * fetch(...bypass(new URL('/resource', 'https://example.com)))
12
- * fetch(...bypass(new Request('https://example.com/resource')))
8
+ * fetch(bypass('/resource'))
9
+ * fetch(bypass(new URL('/resource', 'https://example.com)))
10
+ * fetch(bypass(new Request('https://example.com/resource')))
13
11
  */
14
- declare function bypass(input: BypassRequestInput, init?: RequestInit): Promise<[string, RequestInit]>;
12
+ declare function bypass(input: BypassRequestInput, init?: RequestInit): Request;
15
13
 
16
14
  export { BypassRequestInput, bypass };
@@ -16,79 +16,21 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var __async = (__this, __arguments, generator) => {
20
- return new Promise((resolve, reject) => {
21
- var fulfilled = (value) => {
22
- try {
23
- step(generator.next(value));
24
- } catch (e) {
25
- reject(e);
26
- }
27
- };
28
- var rejected = (value) => {
29
- try {
30
- step(generator.throw(value));
31
- } catch (e) {
32
- reject(e);
33
- }
34
- };
35
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
- step((generator = generator.apply(__this, __arguments)).next());
37
- });
38
- };
39
19
  var bypass_exports = {};
40
20
  __export(bypass_exports, {
41
21
  bypass: () => bypass
42
22
  });
43
23
  module.exports = __toCommonJS(bypass_exports);
44
24
  var import_outvariant = require("outvariant");
45
- var import_headers_polyfill = require("headers-polyfill");
46
25
  function bypass(input, init) {
47
- return __async(this, null, function* () {
48
- if (isRequest(input)) {
49
- (0, import_outvariant.invariant)(
50
- !input.bodyUsed,
51
- 'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
52
- input.method,
53
- input.url
54
- );
55
- }
56
- const url = isRequest(input) ? input.url : input.toString();
57
- const resolvedInit = typeof init !== "undefined" ? init : yield getRequestInit(input);
58
- const headers = new import_headers_polyfill.Headers(resolvedInit.headers);
59
- headers.set("x-msw-intention", "bypass");
60
- resolvedInit.headers = headers;
61
- return [url, resolvedInit];
62
- });
63
- }
64
- function isRequest(input) {
65
- return typeof input === "object" && input.constructor.name === "Request" && "clone" in input && typeof input.clone === "function";
66
- }
67
- function getRequestInit(input) {
68
- return __async(this, null, function* () {
69
- if (!isRequest(input)) {
70
- return {};
71
- }
72
- const init = {
73
- // Set each request init property explicitly
74
- // to prevent leaking internal properties of whichever
75
- // Request polyfill provided as the input.
76
- mode: input.mode,
77
- method: input.method,
78
- cache: input.cache,
79
- headers: input.headers,
80
- credentials: input.credentials,
81
- signal: input.signal,
82
- referrerPolicy: input.referrerPolicy,
83
- referrer: input.referrer,
84
- redirect: input.redirect,
85
- integrity: input.integrity,
86
- keepalive: input.keepalive
87
- };
88
- if (init.method !== "HEAD" && input.method !== "GET") {
89
- init.body = yield input.clone().arrayBuffer();
90
- init.duplex = input.duplex;
91
- }
92
- return init;
93
- });
26
+ const request = input instanceof Request ? input : new Request(input, init);
27
+ (0, import_outvariant.invariant)(
28
+ !request.bodyUsed,
29
+ 'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
30
+ request.method,
31
+ request.url
32
+ );
33
+ const requestClone = request.clone();
34
+ requestClone.headers.set("x-msw-intention", "bypass");
35
+ return requestClone;
94
36
  }
@@ -1,73 +1,15 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
1
  import { invariant } from "outvariant";
22
- import { Headers } from "headers-polyfill";
23
2
  function bypass(input, init) {
24
- return __async(this, null, function* () {
25
- if (isRequest(input)) {
26
- invariant(
27
- !input.bodyUsed,
28
- 'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
29
- input.method,
30
- input.url
31
- );
32
- }
33
- const url = isRequest(input) ? input.url : input.toString();
34
- const resolvedInit = typeof init !== "undefined" ? init : yield getRequestInit(input);
35
- const headers = new Headers(resolvedInit.headers);
36
- headers.set("x-msw-intention", "bypass");
37
- resolvedInit.headers = headers;
38
- return [url, resolvedInit];
39
- });
40
- }
41
- function isRequest(input) {
42
- return typeof input === "object" && input.constructor.name === "Request" && "clone" in input && typeof input.clone === "function";
43
- }
44
- function getRequestInit(input) {
45
- return __async(this, null, function* () {
46
- if (!isRequest(input)) {
47
- return {};
48
- }
49
- const init = {
50
- // Set each request init property explicitly
51
- // to prevent leaking internal properties of whichever
52
- // Request polyfill provided as the input.
53
- mode: input.mode,
54
- method: input.method,
55
- cache: input.cache,
56
- headers: input.headers,
57
- credentials: input.credentials,
58
- signal: input.signal,
59
- referrerPolicy: input.referrerPolicy,
60
- referrer: input.referrer,
61
- redirect: input.redirect,
62
- integrity: input.integrity,
63
- keepalive: input.keepalive
64
- };
65
- if (init.method !== "HEAD" && input.method !== "GET") {
66
- init.body = yield input.clone().arrayBuffer();
67
- init.duplex = input.duplex;
68
- }
69
- return init;
70
- });
3
+ const request = input instanceof Request ? input : new Request(input, init);
4
+ invariant(
5
+ !request.bodyUsed,
6
+ 'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
7
+ request.method,
8
+ request.url
9
+ );
10
+ const requestClone = request.clone();
11
+ requestClone.headers.set("x-msw-intention", "bypass");
12
+ return requestClone;
71
13
  }
72
14
  export {
73
15
  bypass
@@ -1,6 +1,6 @@
1
1
  import { DocumentNode } from 'graphql';
2
- import { a as ResponseResolver } from './RequestHandler-e964183f.js';
3
- import { a as GraphQLVariables, d as GraphQLResolverExtras, e as GraphQLResponseBody, G as GraphQLHandler, f as GraphQLHandlerNameSelector } from './GraphQLHandler-2e60cda6.js';
2
+ import { a as ResponseResolver, f as RequestHandlerOptions } from './RequestHandler-7c716cf7.js';
3
+ import { a as GraphQLVariables, d as GraphQLResolverExtras, e as GraphQLResponseBody, G as GraphQLHandler, f as GraphQLHandlerNameSelector } from './GraphQLHandler-ef45ae39.js';
4
4
  import { Path } from './utils/matching/matchRequestUrl.js';
5
5
  import './typeUtils.js';
6
6
 
@@ -31,7 +31,7 @@ declare const standardGraphQLHandlers: {
31
31
  * })
32
32
  * @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
33
33
  */
34
- query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>) => GraphQLHandler;
34
+ query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>, options?: RequestHandlerOptions) => GraphQLHandler;
35
35
  /**
36
36
  * Captures a GraphQL mutation by a given name.
37
37
  * @example
@@ -40,7 +40,7 @@ declare const standardGraphQLHandlers: {
40
40
  * })
41
41
  * @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
42
42
  */
43
- mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>) => GraphQLHandler;
43
+ mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>, options?: RequestHandlerOptions) => GraphQLHandler;
44
44
  };
45
45
  declare function createGraphQLLink(url: Path): typeof standardGraphQLHandlers;
46
46
  declare const graphql: {
@@ -62,7 +62,7 @@ declare const graphql: {
62
62
  * })
63
63
  * @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
64
64
  */
65
- query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>) => GraphQLHandler;
65
+ query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>, options?: RequestHandlerOptions) => GraphQLHandler;
66
66
  /**
67
67
  * Captures a GraphQL mutation by a given name.
68
68
  * @example
@@ -71,7 +71,7 @@ declare const graphql: {
71
71
  * })
72
72
  * @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
73
73
  */
74
- mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>) => GraphQLHandler;
74
+ mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLResolverExtras<Variables_1>, null, GraphQLResponseBody<Query_1>>, options?: RequestHandlerOptions) => GraphQLHandler;
75
75
  };
76
76
 
77
77
  export { TypedDocumentNode, graphql };
@@ -40,8 +40,14 @@ __export(graphql_exports, {
40
40
  module.exports = __toCommonJS(graphql_exports);
41
41
  var import_GraphQLHandler = require("./handlers/GraphQLHandler.js");
42
42
  function createScopedGraphQLHandler(operationType, url) {
43
- return (operationName, resolver) => {
44
- return new import_GraphQLHandler.GraphQLHandler(operationType, operationName, url, resolver);
43
+ return (operationName, resolver, options = {}) => {
44
+ return new import_GraphQLHandler.GraphQLHandler(
45
+ operationType,
46
+ operationName,
47
+ url,
48
+ resolver,
49
+ options
50
+ );
45
51
  };
46
52
  }
47
53
  function createGraphQLOperationHandler(url) {
@@ -21,8 +21,14 @@ import {
21
21
  GraphQLHandler
22
22
  } from './handlers/GraphQLHandler.mjs';
23
23
  function createScopedGraphQLHandler(operationType, url) {
24
- return (operationName, resolver) => {
25
- return new GraphQLHandler(operationType, operationName, url, resolver);
24
+ return (operationName, resolver, options = {}) => {
25
+ return new GraphQLHandler(
26
+ operationType,
27
+ operationName,
28
+ url,
29
+ resolver,
30
+ options
31
+ );
26
32
  };
27
33
  }
28
34
  function createGraphQLOperationHandler(url) {
@@ -1,5 +1,5 @@
1
1
  import 'graphql';
2
- import '../RequestHandler-e964183f.js';
2
+ import '../RequestHandler-7c716cf7.js';
3
3
  import '../utils/matching/matchRequestUrl.js';
4
- export { E as ExpectedOperationTypeNode, G as GraphQLHandler, k as GraphQLHandlerInfo, f as GraphQLHandlerNameSelector, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, d as GraphQLResolverExtras, e as GraphQLResponseBody, a as GraphQLVariables, l as isDocumentNode } from '../GraphQLHandler-2e60cda6.js';
4
+ export { E as ExpectedOperationTypeNode, G as GraphQLHandler, k as GraphQLHandlerInfo, f as GraphQLHandlerNameSelector, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, d as GraphQLResolverExtras, e as GraphQLResponseBody, a as GraphQLVariables, l as isDocumentNode } from '../GraphQLHandler-ef45ae39.js';
5
5
  import '../typeUtils.js';
@@ -58,7 +58,7 @@ function isDocumentNode(value) {
58
58
  return typeof value === "object" && "kind" in value && "definitions" in value;
59
59
  }
60
60
  class GraphQLHandler extends import_RequestHandler.RequestHandler {
61
- constructor(operationType, operationName, endpoint, resolver) {
61
+ constructor(operationType, operationName, endpoint, resolver, options) {
62
62
  let resolvedOperationName = operationName;
63
63
  if (isDocumentNode(operationName)) {
64
64
  const parsedNode = (0, import_parseGraphQLRequest.parseDocumentNode)(operationName);
@@ -81,7 +81,8 @@ class GraphQLHandler extends import_RequestHandler.RequestHandler {
81
81
  operationType,
82
82
  operationName: resolvedOperationName
83
83
  },
84
- resolver
84
+ resolver,
85
+ options
85
86
  });
86
87
  this.endpoint = endpoint;
87
88
  }
@@ -39,7 +39,7 @@ function isDocumentNode(value) {
39
39
  return typeof value === "object" && "kind" in value && "definitions" in value;
40
40
  }
41
41
  class GraphQLHandler extends RequestHandler {
42
- constructor(operationType, operationName, endpoint, resolver) {
42
+ constructor(operationType, operationName, endpoint, resolver, options) {
43
43
  let resolvedOperationName = operationName;
44
44
  if (isDocumentNode(operationName)) {
45
45
  const parsedNode = parseDocumentNode(operationName);
@@ -62,7 +62,8 @@ class GraphQLHandler extends RequestHandler {
62
62
  operationType,
63
63
  operationName: resolvedOperationName
64
64
  },
65
- resolver
65
+ resolver,
66
+ options
66
67
  });
67
68
  this.endpoint = endpoint;
68
69
  }
@@ -1,4 +1,4 @@
1
- import { g as RequestHandlerDefaultInfo, R as RequestHandler, a as ResponseResolver, f as RequestHandlerPublicOptions, i as ResponseResolutionContext } from '../RequestHandler-e964183f.js';
1
+ import { g as RequestHandlerDefaultInfo, R as RequestHandler, a as ResponseResolver, f as RequestHandlerOptions, i as ResponseResolutionContext } from '../RequestHandler-7c716cf7.js';
2
2
  import { Path, Match, PathParams } from '../utils/matching/matchRequestUrl.js';
3
3
  import '../typeUtils.js';
4
4
 
@@ -32,7 +32,7 @@ type HttpRequestResolverExtras<Params extends PathParams> = {
32
32
  * Provides request matching based on method and URL.
33
33
  */
34
34
  declare class HttpHandler extends RequestHandler<HttpHandlerInfo, HttpRequestParsedResult, HttpRequestResolverExtras<any>> {
35
- constructor(method: HttpHandlerMethod, path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<any>, any, any>, options?: RequestHandlerPublicOptions);
35
+ constructor(method: HttpHandlerMethod, path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<any>, any, any>, options?: RequestHandlerOptions);
36
36
  private checkRedundantQueryParameters;
37
37
  parse(request: Request, resolutionContext?: ResponseResolutionContext): Promise<{
38
38
  match: Match;
@@ -72,7 +72,7 @@ class HttpHandler extends import_RequestHandler.RequestHandler {
72
72
  method
73
73
  },
74
74
  resolver,
75
- once: options == null ? void 0 : options.once
75
+ options
76
76
  });
77
77
  this.checkRedundantQueryParameters();
78
78
  }
@@ -52,7 +52,7 @@ class HttpHandler extends RequestHandler {
52
52
  method
53
53
  },
54
54
  resolver,
55
- once: options == null ? void 0 : options.once
55
+ options
56
56
  });
57
57
  this.checkRedundantQueryParameters();
58
58
  }
@@ -1,2 +1,2 @@
1
- export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, g as RequestHandlerDefaultInfo, n as RequestHandlerExecutionResult, k as RequestHandlerInternalInfo, m as RequestHandlerOptions, f as RequestHandlerPublicOptions, a as ResponseResolver, l as ResponseResolverInfo, b as ResponseResolverReturnType } from '../RequestHandler-e964183f.js';
1
+ export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, m as RequestHandlerArgs, g as RequestHandlerDefaultInfo, n as RequestHandlerExecutionResult, k as RequestHandlerInternalInfo, f as RequestHandlerOptions, a as ResponseResolver, l as ResponseResolverInfo, b as ResponseResolverReturnType } from '../RequestHandler-7c716cf7.js';
2
2
  import '../typeUtils.js';
@@ -62,11 +62,11 @@ var import_outvariant = require("outvariant");
62
62
  var import_getCallFrame = require("../utils/internal/getCallFrame.js");
63
63
  var import_isIterable = require("../utils/internal/isIterable.js");
64
64
  class RequestHandler {
65
- constructor(options) {
66
- this.resolver = options.resolver;
67
- this.once = options.once || false;
65
+ constructor(args) {
66
+ this.resolver = args.resolver;
67
+ this.options = args.options;
68
68
  const callFrame = (0, import_getCallFrame.getCallFrame)(new Error());
69
- this.info = __spreadProps(__spreadValues({}, options.info), {
69
+ this.info = __spreadProps(__spreadValues({}, args.info), {
70
70
  callFrame
71
71
  });
72
72
  this.isUsed = false;
@@ -101,7 +101,8 @@ class RequestHandler {
101
101
  */
102
102
  run(request, resolutionContext) {
103
103
  return __async(this, null, function* () {
104
- if (this.isUsed && this.once) {
104
+ var _a;
105
+ if (this.isUsed && ((_a = this.options) == null ? void 0 : _a.once)) {
105
106
  return null;
106
107
  }
107
108
  const mainRequestRef = request.clone();
@@ -41,11 +41,11 @@ import { invariant } from "outvariant";
41
41
  import { getCallFrame } from '../utils/internal/getCallFrame.mjs';
42
42
  import { isIterable } from '../utils/internal/isIterable.mjs';
43
43
  class RequestHandler {
44
- constructor(options) {
45
- this.resolver = options.resolver;
46
- this.once = options.once || false;
44
+ constructor(args) {
45
+ this.resolver = args.resolver;
46
+ this.options = args.options;
47
47
  const callFrame = getCallFrame(new Error());
48
- this.info = __spreadProps(__spreadValues({}, options.info), {
48
+ this.info = __spreadProps(__spreadValues({}, args.info), {
49
49
  callFrame
50
50
  });
51
51
  this.isUsed = false;
@@ -80,7 +80,8 @@ class RequestHandler {
80
80
  */
81
81
  run(request, resolutionContext) {
82
82
  return __async(this, null, function* () {
83
- if (this.isUsed && this.once) {
83
+ var _a;
84
+ if (this.isUsed && ((_a = this.options) == null ? void 0 : _a.once)) {
84
85
  return null;
85
86
  }
86
87
  const mainRequestRef = request.clone();
@@ -1,17 +1,17 @@
1
- import { D as DefaultBodyType, a as ResponseResolver, f as RequestHandlerPublicOptions } from './RequestHandler-e964183f.js';
1
+ import { D as DefaultBodyType, a as ResponseResolver, f as RequestHandlerOptions } from './RequestHandler-7c716cf7.js';
2
2
  import { HttpRequestResolverExtras, HttpHandler } from './handlers/HttpHandler.js';
3
3
  import { PathParams, Path } from './utils/matching/matchRequestUrl.js';
4
4
  import './typeUtils.js';
5
5
 
6
6
  declare const http: {
7
- all: <Params extends PathParams<keyof Params> = PathParams, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params>, RequestBodyType, ResponseBodyType>, options?: RequestHandlerPublicOptions) => HttpHandler;
8
- head: <Params_1 extends PathParams<keyof Params_1> = PathParams, RequestBodyType_1 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_1 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_1>, RequestBodyType_1, ResponseBodyType_1>, options?: RequestHandlerPublicOptions) => HttpHandler;
9
- get: <Params_2 extends PathParams<keyof Params_2> = PathParams, RequestBodyType_2 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_2 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_2>, RequestBodyType_2, ResponseBodyType_2>, options?: RequestHandlerPublicOptions) => HttpHandler;
10
- post: <Params_3 extends PathParams<keyof Params_3> = PathParams, RequestBodyType_3 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_3 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_3>, RequestBodyType_3, ResponseBodyType_3>, options?: RequestHandlerPublicOptions) => HttpHandler;
11
- put: <Params_4 extends PathParams<keyof Params_4> = PathParams, RequestBodyType_4 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_4 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_4>, RequestBodyType_4, ResponseBodyType_4>, options?: RequestHandlerPublicOptions) => HttpHandler;
12
- delete: <Params_5 extends PathParams<keyof Params_5> = PathParams, RequestBodyType_5 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_5 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_5>, RequestBodyType_5, ResponseBodyType_5>, options?: RequestHandlerPublicOptions) => HttpHandler;
13
- patch: <Params_6 extends PathParams<keyof Params_6> = PathParams, RequestBodyType_6 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_6 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_6>, RequestBodyType_6, ResponseBodyType_6>, options?: RequestHandlerPublicOptions) => HttpHandler;
14
- options: <Params_7 extends PathParams<keyof Params_7> = PathParams, RequestBodyType_7 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_7 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_7>, RequestBodyType_7, ResponseBodyType_7>, options?: RequestHandlerPublicOptions) => HttpHandler;
7
+ all: <Params extends PathParams<keyof Params> = PathParams, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params>, RequestBodyType, ResponseBodyType>, options?: RequestHandlerOptions) => HttpHandler;
8
+ head: <Params_1 extends PathParams<keyof Params_1> = PathParams, RequestBodyType_1 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_1 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_1>, RequestBodyType_1, ResponseBodyType_1>, options?: RequestHandlerOptions) => HttpHandler;
9
+ get: <Params_2 extends PathParams<keyof Params_2> = PathParams, RequestBodyType_2 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_2 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_2>, RequestBodyType_2, ResponseBodyType_2>, options?: RequestHandlerOptions) => HttpHandler;
10
+ post: <Params_3 extends PathParams<keyof Params_3> = PathParams, RequestBodyType_3 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_3 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_3>, RequestBodyType_3, ResponseBodyType_3>, options?: RequestHandlerOptions) => HttpHandler;
11
+ put: <Params_4 extends PathParams<keyof Params_4> = PathParams, RequestBodyType_4 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_4 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_4>, RequestBodyType_4, ResponseBodyType_4>, options?: RequestHandlerOptions) => HttpHandler;
12
+ delete: <Params_5 extends PathParams<keyof Params_5> = PathParams, RequestBodyType_5 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_5 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_5>, RequestBodyType_5, ResponseBodyType_5>, options?: RequestHandlerOptions) => HttpHandler;
13
+ patch: <Params_6 extends PathParams<keyof Params_6> = PathParams, RequestBodyType_6 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_6 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_6>, RequestBodyType_6, ResponseBodyType_6>, options?: RequestHandlerOptions) => HttpHandler;
14
+ options: <Params_7 extends PathParams<keyof Params_7> = PathParams, RequestBodyType_7 extends DefaultBodyType = DefaultBodyType, ResponseBodyType_7 extends DefaultBodyType = undefined>(path: Path, resolver: ResponseResolver<HttpRequestResolverExtras<Params_7>, RequestBodyType_7, ResponseBodyType_7>, options?: RequestHandlerOptions) => HttpHandler;
15
15
  };
16
16
 
17
17
  export { http };
@@ -1,9 +1,9 @@
1
1
  export { SetupApi } from './SetupApi.js';
2
- export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, e as HttpResponse, H as HttpResponseInit, R as RequestHandler, a as ResponseResolver, b as ResponseResolverReturnType, S as StrictRequest, d as StrictResponse } from './RequestHandler-e964183f.js';
2
+ export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, e as HttpResponse, H as HttpResponseInit, R as RequestHandler, a as ResponseResolver, b as ResponseResolverReturnType, S as StrictRequest, d as StrictResponse } from './RequestHandler-7c716cf7.js';
3
3
  export { http } from './http.js';
4
4
  export { HttpHandler, HttpMethods, HttpRequestParsedResult, RequestQuery } from './handlers/HttpHandler.js';
5
5
  export { graphql } from './graphql.js';
6
- export { G as GraphQLHandler, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, a as GraphQLVariables, P as ParsedGraphQLRequest } from './GraphQLHandler-2e60cda6.js';
6
+ export { G as GraphQLHandler, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, a as GraphQLVariables, P as ParsedGraphQLRequest } from './GraphQLHandler-ef45ae39.js';
7
7
  export { Match, Path, PathParams, matchRequestUrl } from './utils/matching/matchRequestUrl.js';
8
8
  export { HandleRequestOptions, handleRequest } from './utils/handleRequest.js';
9
9
  export { cleanUrl } from './utils/url/cleanUrl.js';
@@ -11,7 +11,6 @@ export { LifeCycleEventsMap, SharedOptions } from './sharedOptions.js';
11
11
  export { DelayMode, MAX_SERVER_RESPONSE_TIME, MIN_SERVER_RESPONSE_TIME, NODE_SERVER_RESPONSE_TIME, SET_TIMEOUT_MAX_ALLOWED_INT, delay } from './delay.js';
12
12
  export { bypass } from './bypass.js';
13
13
  export { passthrough } from './passthrough.js';
14
- export { NetworkError } from './NetworkError.js';
15
14
  import 'strict-event-emitter';
16
15
  import './utils/internal/Disposable.js';
17
16
  import './typeUtils.js';