msw 2.11.2 → 2.11.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.
@@ -21,7 +21,7 @@ __export(handleRequest_exports, {
21
21
  handleRequest: () => handleRequest
22
22
  });
23
23
  module.exports = __toCommonJS(handleRequest_exports);
24
- var import_until = require("@open-draft/until");
24
+ var import_until_async = require("until-async");
25
25
  var import_executeHandlers = require("./executeHandlers");
26
26
  var import_onUnhandledRequest = require("./request/onUnhandledRequest");
27
27
  var import_storeResponseCookies = require("./request/storeResponseCookies");
@@ -32,7 +32,7 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
32
32
  handleRequestOptions?.onPassthroughResponse?.(request);
33
33
  return;
34
34
  }
35
- const lookupResult = await (0, import_until.until)(() => {
35
+ const [lookupError, lookupResult] = await (0, import_until_async.until)(() => {
36
36
  return (0, import_executeHandlers.executeHandlers)({
37
37
  request,
38
38
  requestId,
@@ -40,22 +40,22 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
40
40
  resolutionContext: handleRequestOptions?.resolutionContext
41
41
  });
42
42
  });
43
- if (lookupResult.error) {
43
+ if (lookupError) {
44
44
  emitter.emit("unhandledException", {
45
- error: lookupResult.error,
45
+ error: lookupError,
46
46
  request,
47
47
  requestId
48
48
  });
49
- throw lookupResult.error;
49
+ throw lookupError;
50
50
  }
51
- if (!lookupResult.data) {
51
+ if (!lookupResult) {
52
52
  await (0, import_onUnhandledRequest.onUnhandledRequest)(request, options.onUnhandledRequest);
53
53
  emitter.emit("request:unhandled", { request, requestId });
54
54
  emitter.emit("request:end", { request, requestId });
55
55
  handleRequestOptions?.onPassthroughResponse?.(request);
56
56
  return;
57
57
  }
58
- const { response } = lookupResult.data;
58
+ const { response } = lookupResult;
59
59
  if (!response) {
60
60
  emitter.emit("request:end", { request, requestId });
61
61
  handleRequestOptions?.onPassthroughResponse?.(request);
@@ -68,7 +68,7 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
68
68
  }
69
69
  await (0, import_storeResponseCookies.storeResponseCookies)(request, response);
70
70
  emitter.emit("request:match", { request, requestId });
71
- const requiredLookupResult = lookupResult.data;
71
+ const requiredLookupResult = lookupResult;
72
72
  handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult);
73
73
  emitter.emit("request:end", { request, requestId });
74
74
  return response;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/utils/handleRequest.ts"],"sourcesContent":["import { until } from '@open-draft/until'\nimport { Emitter } from 'strict-event-emitter'\nimport { LifeCycleEventsMap, SharedOptions } from '../sharedOptions'\nimport { RequiredDeep } from '../typeUtils'\nimport type { RequestHandler } from '../handlers/RequestHandler'\nimport { HandlersExecutionResult, executeHandlers } from './executeHandlers'\nimport { onUnhandledRequest } from './request/onUnhandledRequest'\nimport { storeResponseCookies } from './request/storeResponseCookies'\n\nexport interface HandleRequestOptions {\n /**\n * `resolutionContext` is not part of the general public api\n * but is exposed to aid in creating extensions like\n * `@mswjs/http-middleware`.\n */\n resolutionContext?: {\n /**\n * A base url to use when resolving relative urls.\n * @note This is primarily used by the `@mswjs/http-middleware`\n * to resolve relative urls in the context of the running server\n */\n baseUrl?: string\n }\n\n /**\n * Invoked whenever a request is performed as-is.\n */\n onPassthroughResponse?(request: Request): void\n\n /**\n * Invoked when the mocked response is ready to be sent.\n */\n onMockedResponse?(\n response: Response,\n handler: RequiredDeep<HandlersExecutionResult>,\n ): void\n}\n\nexport async function handleRequest(\n request: Request,\n requestId: string,\n handlers: Array<RequestHandler>,\n options: RequiredDeep<SharedOptions>,\n emitter: Emitter<LifeCycleEventsMap>,\n handleRequestOptions?: HandleRequestOptions,\n): Promise<Response | undefined> {\n emitter.emit('request:start', { request, requestId })\n\n // Perform requests wrapped in \"bypass()\" as-is.\n if (request.headers.get('accept')?.includes('msw/passthrough')) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Resolve a mocked response from the list of request handlers.\n const lookupResult = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext,\n })\n })\n\n if (lookupResult.error) {\n // Allow developers to react to unhandled exceptions in request handlers.\n emitter.emit('unhandledException', {\n error: lookupResult.error,\n request,\n requestId,\n })\n throw lookupResult.error\n }\n\n // If the handler lookup returned nothing, no request handler was found\n // matching this request. Report the request as unhandled.\n if (!lookupResult.data) {\n await onUnhandledRequest(request, options.onUnhandledRequest)\n emitter.emit('request:unhandled', { request, requestId })\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n const { response } = lookupResult.data\n\n // When the handled request returned no mocked response, warn the developer,\n // as it may be an oversight on their part. Perform the request as-is.\n if (!response) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Perform the request as-is when the developer explicitly returned \"req.passthrough()\".\n // This produces no warning as the request was handled.\n if (\n response.status === 302 &&\n response.headers.get('x-msw-intention') === 'passthrough'\n ) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Store all the received response cookies in the cookie jar.\n await storeResponseCookies(request, response)\n\n emitter.emit('request:match', { request, requestId })\n\n const requiredLookupResult =\n lookupResult.data as RequiredDeep<HandlersExecutionResult>\n\n handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult)\n\n emitter.emit('request:end', { request, requestId })\n\n return response\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAKtB,6BAAyD;AACzD,gCAAmC;AACnC,kCAAqC;AA+BrC,eAAsB,cACpB,SACA,WACA,UACA,SACA,SACA,sBAC+B;AAC/B,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAGpD,MAAI,QAAQ,QAAQ,IAAI,QAAQ,GAAG,SAAS,iBAAiB,GAAG;AAC9D,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,eAAe,UAAM,oBAAM,MAAM;AACrC,eAAO,wCAAgB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,sBAAsB;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,MAAI,aAAa,OAAO;AAEtB,YAAQ,KAAK,sBAAsB;AAAA,MACjC,OAAO,aAAa;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,aAAa;AAAA,EACrB;AAIA,MAAI,CAAC,aAAa,MAAM;AACtB,cAAM,8CAAmB,SAAS,QAAQ,kBAAkB;AAC5D,YAAQ,KAAK,qBAAqB,EAAE,SAAS,UAAU,CAAC;AACxD,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI,aAAa;AAIlC,MAAI,CAAC,UAAU;AACb,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAIA,MACE,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,MAAM,eAC5C;AACA,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,YAAM,kDAAqB,SAAS,QAAQ;AAE5C,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAEpD,QAAM,uBACJ,aAAa;AAEf,wBAAsB,mBAAmB,UAAU,oBAAoB;AAEvE,UAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAElD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/core/utils/handleRequest.ts"],"sourcesContent":["import { until } from 'until-async'\nimport { Emitter } from 'strict-event-emitter'\nimport { LifeCycleEventsMap, SharedOptions } from '../sharedOptions'\nimport { RequiredDeep } from '../typeUtils'\nimport type { RequestHandler } from '../handlers/RequestHandler'\nimport { HandlersExecutionResult, executeHandlers } from './executeHandlers'\nimport { onUnhandledRequest } from './request/onUnhandledRequest'\nimport { storeResponseCookies } from './request/storeResponseCookies'\n\nexport interface HandleRequestOptions {\n /**\n * `resolutionContext` is not part of the general public api\n * but is exposed to aid in creating extensions like\n * `@mswjs/http-middleware`.\n */\n resolutionContext?: {\n /**\n * A base url to use when resolving relative urls.\n * @note This is primarily used by the `@mswjs/http-middleware`\n * to resolve relative urls in the context of the running server\n */\n baseUrl?: string\n }\n\n /**\n * Invoked whenever a request is performed as-is.\n */\n onPassthroughResponse?(request: Request): void\n\n /**\n * Invoked when the mocked response is ready to be sent.\n */\n onMockedResponse?(\n response: Response,\n handler: RequiredDeep<HandlersExecutionResult>,\n ): void\n}\n\nexport async function handleRequest(\n request: Request,\n requestId: string,\n handlers: Array<RequestHandler>,\n options: RequiredDeep<SharedOptions>,\n emitter: Emitter<LifeCycleEventsMap>,\n handleRequestOptions?: HandleRequestOptions,\n): Promise<Response | undefined> {\n emitter.emit('request:start', { request, requestId })\n\n // Perform requests wrapped in \"bypass()\" as-is.\n if (request.headers.get('accept')?.includes('msw/passthrough')) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Resolve a mocked response from the list of request handlers.\n const [lookupError, lookupResult] = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext,\n })\n })\n\n if (lookupError) {\n // Allow developers to react to unhandled exceptions in request handlers.\n emitter.emit('unhandledException', {\n error: lookupError,\n request,\n requestId,\n })\n throw lookupError\n }\n\n // If the handler lookup returned nothing, no request handler was found\n // matching this request. Report the request as unhandled.\n if (!lookupResult) {\n await onUnhandledRequest(request, options.onUnhandledRequest)\n emitter.emit('request:unhandled', { request, requestId })\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n const { response } = lookupResult\n\n // When the handled request returned no mocked response, warn the developer,\n // as it may be an oversight on their part. Perform the request as-is.\n if (!response) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Perform the request as-is when the developer explicitly returned \"req.passthrough()\".\n // This produces no warning as the request was handled.\n if (\n response.status === 302 &&\n response.headers.get('x-msw-intention') === 'passthrough'\n ) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Store all the received response cookies in the cookie jar.\n await storeResponseCookies(request, response)\n\n emitter.emit('request:match', { request, requestId })\n\n const requiredLookupResult =\n lookupResult as RequiredDeep<HandlersExecutionResult>\n\n handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult)\n\n emitter.emit('request:end', { request, requestId })\n\n return response\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAsB;AAKtB,6BAAyD;AACzD,gCAAmC;AACnC,kCAAqC;AA+BrC,eAAsB,cACpB,SACA,WACA,UACA,SACA,SACA,sBAC+B;AAC/B,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAGpD,MAAI,QAAQ,QAAQ,IAAI,QAAQ,GAAG,SAAS,iBAAiB,GAAG;AAC9D,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,CAAC,aAAa,YAAY,IAAI,UAAM,0BAAM,MAAM;AACpD,eAAO,wCAAgB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,sBAAsB;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,MAAI,aAAa;AAEf,YAAQ,KAAK,sBAAsB;AAAA,MACjC,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,EACR;AAIA,MAAI,CAAC,cAAc;AACjB,cAAM,8CAAmB,SAAS,QAAQ,kBAAkB;AAC5D,YAAQ,KAAK,qBAAqB,EAAE,SAAS,UAAU,CAAC;AACxD,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI;AAIrB,MAAI,CAAC,UAAU;AACb,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAIA,MACE,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,MAAM,eAC5C;AACA,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,YAAM,kDAAqB,SAAS,QAAQ;AAE5C,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAEpD,QAAM,uBACJ;AAEF,wBAAsB,mBAAmB,UAAU,oBAAoB;AAEvE,UAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAElD,SAAO;AACT;","names":[]}
@@ -1,4 +1,4 @@
1
- import { until } from "@open-draft/until";
1
+ import { until } from "until-async";
2
2
  import { executeHandlers } from './executeHandlers.mjs';
3
3
  import { onUnhandledRequest } from './request/onUnhandledRequest.mjs';
4
4
  import { storeResponseCookies } from './request/storeResponseCookies.mjs';
@@ -9,7 +9,7 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
9
9
  handleRequestOptions?.onPassthroughResponse?.(request);
10
10
  return;
11
11
  }
12
- const lookupResult = await until(() => {
12
+ const [lookupError, lookupResult] = await until(() => {
13
13
  return executeHandlers({
14
14
  request,
15
15
  requestId,
@@ -17,22 +17,22 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
17
17
  resolutionContext: handleRequestOptions?.resolutionContext
18
18
  });
19
19
  });
20
- if (lookupResult.error) {
20
+ if (lookupError) {
21
21
  emitter.emit("unhandledException", {
22
- error: lookupResult.error,
22
+ error: lookupError,
23
23
  request,
24
24
  requestId
25
25
  });
26
- throw lookupResult.error;
26
+ throw lookupError;
27
27
  }
28
- if (!lookupResult.data) {
28
+ if (!lookupResult) {
29
29
  await onUnhandledRequest(request, options.onUnhandledRequest);
30
30
  emitter.emit("request:unhandled", { request, requestId });
31
31
  emitter.emit("request:end", { request, requestId });
32
32
  handleRequestOptions?.onPassthroughResponse?.(request);
33
33
  return;
34
34
  }
35
- const { response } = lookupResult.data;
35
+ const { response } = lookupResult;
36
36
  if (!response) {
37
37
  emitter.emit("request:end", { request, requestId });
38
38
  handleRequestOptions?.onPassthroughResponse?.(request);
@@ -45,7 +45,7 @@ async function handleRequest(request, requestId, handlers, options, emitter, han
45
45
  }
46
46
  await storeResponseCookies(request, response);
47
47
  emitter.emit("request:match", { request, requestId });
48
- const requiredLookupResult = lookupResult.data;
48
+ const requiredLookupResult = lookupResult;
49
49
  handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult);
50
50
  emitter.emit("request:end", { request, requestId });
51
51
  return response;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/utils/handleRequest.ts"],"sourcesContent":["import { until } from '@open-draft/until'\nimport { Emitter } from 'strict-event-emitter'\nimport { LifeCycleEventsMap, SharedOptions } from '../sharedOptions'\nimport { RequiredDeep } from '../typeUtils'\nimport type { RequestHandler } from '../handlers/RequestHandler'\nimport { HandlersExecutionResult, executeHandlers } from './executeHandlers'\nimport { onUnhandledRequest } from './request/onUnhandledRequest'\nimport { storeResponseCookies } from './request/storeResponseCookies'\n\nexport interface HandleRequestOptions {\n /**\n * `resolutionContext` is not part of the general public api\n * but is exposed to aid in creating extensions like\n * `@mswjs/http-middleware`.\n */\n resolutionContext?: {\n /**\n * A base url to use when resolving relative urls.\n * @note This is primarily used by the `@mswjs/http-middleware`\n * to resolve relative urls in the context of the running server\n */\n baseUrl?: string\n }\n\n /**\n * Invoked whenever a request is performed as-is.\n */\n onPassthroughResponse?(request: Request): void\n\n /**\n * Invoked when the mocked response is ready to be sent.\n */\n onMockedResponse?(\n response: Response,\n handler: RequiredDeep<HandlersExecutionResult>,\n ): void\n}\n\nexport async function handleRequest(\n request: Request,\n requestId: string,\n handlers: Array<RequestHandler>,\n options: RequiredDeep<SharedOptions>,\n emitter: Emitter<LifeCycleEventsMap>,\n handleRequestOptions?: HandleRequestOptions,\n): Promise<Response | undefined> {\n emitter.emit('request:start', { request, requestId })\n\n // Perform requests wrapped in \"bypass()\" as-is.\n if (request.headers.get('accept')?.includes('msw/passthrough')) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Resolve a mocked response from the list of request handlers.\n const lookupResult = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext,\n })\n })\n\n if (lookupResult.error) {\n // Allow developers to react to unhandled exceptions in request handlers.\n emitter.emit('unhandledException', {\n error: lookupResult.error,\n request,\n requestId,\n })\n throw lookupResult.error\n }\n\n // If the handler lookup returned nothing, no request handler was found\n // matching this request. Report the request as unhandled.\n if (!lookupResult.data) {\n await onUnhandledRequest(request, options.onUnhandledRequest)\n emitter.emit('request:unhandled', { request, requestId })\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n const { response } = lookupResult.data\n\n // When the handled request returned no mocked response, warn the developer,\n // as it may be an oversight on their part. Perform the request as-is.\n if (!response) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Perform the request as-is when the developer explicitly returned \"req.passthrough()\".\n // This produces no warning as the request was handled.\n if (\n response.status === 302 &&\n response.headers.get('x-msw-intention') === 'passthrough'\n ) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Store all the received response cookies in the cookie jar.\n await storeResponseCookies(request, response)\n\n emitter.emit('request:match', { request, requestId })\n\n const requiredLookupResult =\n lookupResult.data as RequiredDeep<HandlersExecutionResult>\n\n handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult)\n\n emitter.emit('request:end', { request, requestId })\n\n return response\n}\n"],"mappings":"AAAA,SAAS,aAAa;AAKtB,SAAkC,uBAAuB;AACzD,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AA+BrC,eAAsB,cACpB,SACA,WACA,UACA,SACA,SACA,sBAC+B;AAC/B,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAGpD,MAAI,QAAQ,QAAQ,IAAI,QAAQ,GAAG,SAAS,iBAAiB,GAAG;AAC9D,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,eAAe,MAAM,MAAM,MAAM;AACrC,WAAO,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,sBAAsB;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,MAAI,aAAa,OAAO;AAEtB,YAAQ,KAAK,sBAAsB;AAAA,MACjC,OAAO,aAAa;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,aAAa;AAAA,EACrB;AAIA,MAAI,CAAC,aAAa,MAAM;AACtB,UAAM,mBAAmB,SAAS,QAAQ,kBAAkB;AAC5D,YAAQ,KAAK,qBAAqB,EAAE,SAAS,UAAU,CAAC;AACxD,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI,aAAa;AAIlC,MAAI,CAAC,UAAU;AACb,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAIA,MACE,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,MAAM,eAC5C;AACA,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,qBAAqB,SAAS,QAAQ;AAE5C,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAEpD,QAAM,uBACJ,aAAa;AAEf,wBAAsB,mBAAmB,UAAU,oBAAoB;AAEvE,UAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAElD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/core/utils/handleRequest.ts"],"sourcesContent":["import { until } from 'until-async'\nimport { Emitter } from 'strict-event-emitter'\nimport { LifeCycleEventsMap, SharedOptions } from '../sharedOptions'\nimport { RequiredDeep } from '../typeUtils'\nimport type { RequestHandler } from '../handlers/RequestHandler'\nimport { HandlersExecutionResult, executeHandlers } from './executeHandlers'\nimport { onUnhandledRequest } from './request/onUnhandledRequest'\nimport { storeResponseCookies } from './request/storeResponseCookies'\n\nexport interface HandleRequestOptions {\n /**\n * `resolutionContext` is not part of the general public api\n * but is exposed to aid in creating extensions like\n * `@mswjs/http-middleware`.\n */\n resolutionContext?: {\n /**\n * A base url to use when resolving relative urls.\n * @note This is primarily used by the `@mswjs/http-middleware`\n * to resolve relative urls in the context of the running server\n */\n baseUrl?: string\n }\n\n /**\n * Invoked whenever a request is performed as-is.\n */\n onPassthroughResponse?(request: Request): void\n\n /**\n * Invoked when the mocked response is ready to be sent.\n */\n onMockedResponse?(\n response: Response,\n handler: RequiredDeep<HandlersExecutionResult>,\n ): void\n}\n\nexport async function handleRequest(\n request: Request,\n requestId: string,\n handlers: Array<RequestHandler>,\n options: RequiredDeep<SharedOptions>,\n emitter: Emitter<LifeCycleEventsMap>,\n handleRequestOptions?: HandleRequestOptions,\n): Promise<Response | undefined> {\n emitter.emit('request:start', { request, requestId })\n\n // Perform requests wrapped in \"bypass()\" as-is.\n if (request.headers.get('accept')?.includes('msw/passthrough')) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Resolve a mocked response from the list of request handlers.\n const [lookupError, lookupResult] = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext,\n })\n })\n\n if (lookupError) {\n // Allow developers to react to unhandled exceptions in request handlers.\n emitter.emit('unhandledException', {\n error: lookupError,\n request,\n requestId,\n })\n throw lookupError\n }\n\n // If the handler lookup returned nothing, no request handler was found\n // matching this request. Report the request as unhandled.\n if (!lookupResult) {\n await onUnhandledRequest(request, options.onUnhandledRequest)\n emitter.emit('request:unhandled', { request, requestId })\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n const { response } = lookupResult\n\n // When the handled request returned no mocked response, warn the developer,\n // as it may be an oversight on their part. Perform the request as-is.\n if (!response) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Perform the request as-is when the developer explicitly returned \"req.passthrough()\".\n // This produces no warning as the request was handled.\n if (\n response.status === 302 &&\n response.headers.get('x-msw-intention') === 'passthrough'\n ) {\n emitter.emit('request:end', { request, requestId })\n handleRequestOptions?.onPassthroughResponse?.(request)\n return\n }\n\n // Store all the received response cookies in the cookie jar.\n await storeResponseCookies(request, response)\n\n emitter.emit('request:match', { request, requestId })\n\n const requiredLookupResult =\n lookupResult as RequiredDeep<HandlersExecutionResult>\n\n handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult)\n\n emitter.emit('request:end', { request, requestId })\n\n return response\n}\n"],"mappings":"AAAA,SAAS,aAAa;AAKtB,SAAkC,uBAAuB;AACzD,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AA+BrC,eAAsB,cACpB,SACA,WACA,UACA,SACA,SACA,sBAC+B;AAC/B,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAGpD,MAAI,QAAQ,QAAQ,IAAI,QAAQ,GAAG,SAAS,iBAAiB,GAAG;AAC9D,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,CAAC,aAAa,YAAY,IAAI,MAAM,MAAM,MAAM;AACpD,WAAO,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,sBAAsB;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,MAAI,aAAa;AAEf,YAAQ,KAAK,sBAAsB;AAAA,MACjC,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM;AAAA,EACR;AAIA,MAAI,CAAC,cAAc;AACjB,UAAM,mBAAmB,SAAS,QAAQ,kBAAkB;AAC5D,YAAQ,KAAK,qBAAqB,EAAE,SAAS,UAAU,CAAC;AACxD,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,IAAI;AAIrB,MAAI,CAAC,UAAU;AACb,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAIA,MACE,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,MAAM,eAC5C;AACA,YAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAClD,0BAAsB,wBAAwB,OAAO;AACrD;AAAA,EACF;AAGA,QAAM,qBAAqB,SAAS,QAAQ;AAE5C,UAAQ,KAAK,iBAAiB,EAAE,SAAS,UAAU,CAAC;AAEpD,QAAM,uBACJ;AAEF,wBAAsB,mBAAmB,UAAU,oBAAoB;AAEvE,UAAQ,KAAK,eAAe,EAAE,SAAS,UAAU,CAAC;AAElD,SAAO;AACT;","names":[]}
package/lib/iife/index.js CHANGED
@@ -19229,17 +19229,16 @@ Consider naming this operation or using "graphql.operation()" request handler to
19229
19229
  link: createWebSocketLinkHandler
19230
19230
  };
19231
19231
 
19232
- // node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs
19233
- var until = async (promise) => {
19232
+ // node_modules/.pnpm/until-async@3.0.2/node_modules/until-async/lib/index.js
19233
+ async function until(callback) {
19234
19234
  try {
19235
- const data = await promise().catch((error3) => {
19235
+ return [null, await callback().catch((error3) => {
19236
19236
  throw error3;
19237
- });
19238
- return { error: null, data };
19237
+ })];
19239
19238
  } catch (error3) {
19240
- return { error: error3, data: null };
19239
+ return [error3, null];
19241
19240
  }
19242
- };
19241
+ }
19243
19242
 
19244
19243
  // src/core/utils/executeHandlers.ts
19245
19244
  var executeHandlers = async ({
@@ -19397,7 +19396,7 @@ Read more: https://mswjs.io/docs/http/intercepting-requests`;
19397
19396
  handleRequestOptions?.onPassthroughResponse?.(request);
19398
19397
  return;
19399
19398
  }
19400
- const lookupResult = await until(() => {
19399
+ const [lookupError, lookupResult] = await until(() => {
19401
19400
  return executeHandlers({
19402
19401
  request,
19403
19402
  requestId,
@@ -19405,22 +19404,22 @@ Read more: https://mswjs.io/docs/http/intercepting-requests`;
19405
19404
  resolutionContext: handleRequestOptions?.resolutionContext
19406
19405
  });
19407
19406
  });
19408
- if (lookupResult.error) {
19407
+ if (lookupError) {
19409
19408
  emitter.emit("unhandledException", {
19410
- error: lookupResult.error,
19409
+ error: lookupError,
19411
19410
  request,
19412
19411
  requestId
19413
19412
  });
19414
- throw lookupResult.error;
19413
+ throw lookupError;
19415
19414
  }
19416
- if (!lookupResult.data) {
19415
+ if (!lookupResult) {
19417
19416
  await onUnhandledRequest(request, options.onUnhandledRequest);
19418
19417
  emitter.emit("request:unhandled", { request, requestId });
19419
19418
  emitter.emit("request:end", { request, requestId });
19420
19419
  handleRequestOptions?.onPassthroughResponse?.(request);
19421
19420
  return;
19422
19421
  }
19423
- const { response } = lookupResult.data;
19422
+ const { response } = lookupResult;
19424
19423
  if (!response) {
19425
19424
  emitter.emit("request:end", { request, requestId });
19426
19425
  handleRequestOptions?.onPassthroughResponse?.(request);
@@ -19433,7 +19432,7 @@ Read more: https://mswjs.io/docs/http/intercepting-requests`;
19433
19432
  }
19434
19433
  await storeResponseCookies(request, response);
19435
19434
  emitter.emit("request:match", { request, requestId });
19436
- const requiredLookupResult = lookupResult.data;
19435
+ const requiredLookupResult = lookupResult;
19437
19436
  handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult);
19438
19437
  emitter.emit("request:end", { request, requestId });
19439
19438
  return response;
@@ -19719,19 +19718,17 @@ Read more: https://mswjs.io/docs/http/intercepting-requests`;
19719
19718
  existingRegistration
19720
19719
  ];
19721
19720
  }
19722
- const registrationResult = await until(
19723
- async () => {
19724
- const registration = await navigator.serviceWorker.register(url, options);
19725
- return [
19726
- // Compare existing worker registration by its worker URL,
19727
- // to prevent irrelevant workers to resolve here (such as Codesandbox worker).
19728
- getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker),
19729
- registration
19730
- ];
19731
- }
19732
- );
19733
- if (registrationResult.error) {
19734
- const isWorkerMissing = registrationResult.error.message.includes("(404)");
19721
+ const [registrationError, registrationResult] = await until(async () => {
19722
+ const registration = await navigator.serviceWorker.register(url, options);
19723
+ return [
19724
+ // Compare existing worker registration by its worker URL,
19725
+ // to prevent irrelevant workers to resolve here (such as Codesandbox worker).
19726
+ getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker),
19727
+ registration
19728
+ ];
19729
+ });
19730
+ if (registrationError) {
19731
+ const isWorkerMissing = registrationError.message.includes("(404)");
19735
19732
  if (isWorkerMissing) {
19736
19733
  const scopeUrl = new URL(options?.scope || "/", location.href);
19737
19734
  throw new Error(
@@ -19745,11 +19742,11 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
19745
19742
  throw new Error(
19746
19743
  devUtils.formatMessage(
19747
19744
  "Failed to register the Service Worker:\n\n%s",
19748
- registrationResult.error.message
19745
+ registrationError.message
19749
19746
  )
19750
19747
  );
19751
19748
  }
19752
- return registrationResult.data;
19749
+ return registrationResult;
19753
19750
  };
19754
19751
 
19755
19752
  // src/browser/setupWorker/start/utils/printStartMessage.ts
@@ -21306,6 +21303,18 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
21306
21303
  }
21307
21304
  };
21308
21305
 
21306
+ // node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs
21307
+ var until2 = async (promise) => {
21308
+ try {
21309
+ const data = await promise().catch((error3) => {
21310
+ throw error3;
21311
+ });
21312
+ return { error: null, data };
21313
+ } catch (error3) {
21314
+ return { error: error3, data: null };
21315
+ }
21316
+ };
21317
+
21309
21318
  // node_modules/.pnpm/@mswjs+interceptors@0.39.1/node_modules/@mswjs/interceptors/lib/browser/chunk-L37TY7LC.mjs
21310
21319
  var InterceptorError = class extends Error {
21311
21320
  constructor(message3) {
@@ -21468,7 +21477,7 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
21468
21477
  );
21469
21478
  }
21470
21479
  }
21471
- const result = await until(async () => {
21480
+ const result = await until2(async () => {
21472
21481
  const requestListenersPromise = emitAsync(options.emitter, "request", {
21473
21482
  requestId: options.requestId,
21474
21483
  request: options.request,
@@ -21504,7 +21513,7 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
21504
21513
  unhandledExceptionController[kResponsePromise].resolve(void 0);
21505
21514
  }
21506
21515
  });
21507
- const nextResult = await until(
21516
+ const nextResult = await until2(
21508
21517
  () => unhandledExceptionController[kResponsePromise]
21509
21518
  );
21510
21519
  if (nextResult.error) {