🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

msw

Package Overview
Dependencies
Maintainers
1
Versions
337
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

msw - npm Package Compare versions

Comparing version
2.14.0
to
2.14.1
+3
-3
lib/core/experimental/index.d.mts

@@ -7,6 +7,7 @@ export { DefineNetworkOptions, defineNetwork } from './define-network.mjs';

export { WebSocketNetworkFrame, WebSocketNetworkFrameEventMap } from './frames/websocket-frame.mjs';
export { HandlersController, InMemoryHandlersController } from './handlers-controller.mjs';
import 'rettime';
import './handlers-controller.mjs';
import '@mswjs/interceptors';
import '@mswjs/interceptors/WebSocket';
import '../HttpResponse-CxHR1nNN.mjs';
import '@mswjs/interceptors';
import '../utils/internal/isIterable.mjs';

@@ -18,2 +19,1 @@ import '../typeUtils.mjs';

import 'strict-event-emitter';
import '@mswjs/interceptors/WebSocket';

@@ -7,6 +7,7 @@ export { DefineNetworkOptions, defineNetwork } from './define-network.js';

export { WebSocketNetworkFrame, WebSocketNetworkFrameEventMap } from './frames/websocket-frame.js';
export { HandlersController, InMemoryHandlersController } from './handlers-controller.js';
import 'rettime';
import './handlers-controller.js';
import '@mswjs/interceptors';
import '@mswjs/interceptors/WebSocket';
import '../HttpResponse-aGiIzO91.js';
import '@mswjs/interceptors';
import '../utils/internal/isIterable.js';

@@ -18,2 +19,1 @@ import '../typeUtils.js';

import 'strict-event-emitter';
import '@mswjs/interceptors/WebSocket';

@@ -21,3 +21,5 @@ "use strict";

__export(experimental_exports, {
HandlersController: () => import_handlers_controller.HandlersController,
HttpNetworkFrame: () => import_http_frame.HttpNetworkFrame,
InMemoryHandlersController: () => import_handlers_controller.InMemoryHandlersController,
InterceptorSource: () => import_interceptor_source.InterceptorSource,

@@ -36,2 +38,3 @@ NetworkFrame: () => import_network_frame.NetworkFrame,

var import_websocket_frame = require("./frames/websocket-frame");
var import_handlers_controller = require("./handlers-controller");
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/core/experimental/index.ts"],"sourcesContent":["export { defineNetwork, type DefineNetworkOptions } from './define-network'\n\n/* Network sources */\nexport { NetworkSource } from './sources/network-source'\nexport { InterceptorSource } from './sources/interceptor-source'\n\n/* Frames */\nexport { NetworkFrame } from './frames/network-frame'\nexport {\n HttpNetworkFrame,\n type HttpNetworkFrameEventMap,\n} from './frames/http-frame'\nexport {\n WebSocketNetworkFrame,\n type WebSocketNetworkFrameEventMap,\n} from './frames/websocket-frame'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyD;AAGzD,4BAA8B;AAC9B,gCAAkC;AAGlC,2BAA6B;AAC7B,wBAGO;AACP,6BAGO;","names":[]}
{"version":3,"sources":["../../../src/core/experimental/index.ts"],"sourcesContent":["export { defineNetwork, type DefineNetworkOptions } from './define-network'\n\n/* Network sources */\nexport { NetworkSource } from './sources/network-source'\nexport { InterceptorSource } from './sources/interceptor-source'\n\n/* Frames */\nexport { NetworkFrame } from './frames/network-frame'\nexport {\n HttpNetworkFrame,\n type HttpNetworkFrameEventMap,\n} from './frames/http-frame'\nexport {\n WebSocketNetworkFrame,\n type WebSocketNetworkFrameEventMap,\n} from './frames/websocket-frame'\n\n/* Handler controllers */\nexport {\n HandlersController,\n InMemoryHandlersController,\n} from './handlers-controller'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyD;AAGzD,4BAA8B;AAC9B,gCAAkC;AAGlC,2BAA6B;AAC7B,wBAGO;AACP,6BAGO;AAGP,iCAGO;","names":[]}

@@ -11,4 +11,10 @@ import { defineNetwork } from './define-network.mjs';

} from './frames/websocket-frame.mjs';
import {
HandlersController,
InMemoryHandlersController
} from './handlers-controller.mjs';
export {
HandlersController,
HttpNetworkFrame,
InMemoryHandlersController,
InterceptorSource,

@@ -15,0 +21,0 @@ NetworkFrame,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/core/experimental/index.ts"],"sourcesContent":["export { defineNetwork, type DefineNetworkOptions } from './define-network'\n\n/* Network sources */\nexport { NetworkSource } from './sources/network-source'\nexport { InterceptorSource } from './sources/interceptor-source'\n\n/* Frames */\nexport { NetworkFrame } from './frames/network-frame'\nexport {\n HttpNetworkFrame,\n type HttpNetworkFrameEventMap,\n} from './frames/http-frame'\nexport {\n WebSocketNetworkFrame,\n type WebSocketNetworkFrameEventMap,\n} from './frames/websocket-frame'\n"],"mappings":"AAAA,SAAS,qBAAgD;AAGzD,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAGlC,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;","names":[]}
{"version":3,"sources":["../../../src/core/experimental/index.ts"],"sourcesContent":["export { defineNetwork, type DefineNetworkOptions } from './define-network'\n\n/* Network sources */\nexport { NetworkSource } from './sources/network-source'\nexport { InterceptorSource } from './sources/interceptor-source'\n\n/* Frames */\nexport { NetworkFrame } from './frames/network-frame'\nexport {\n HttpNetworkFrame,\n type HttpNetworkFrameEventMap,\n} from './frames/http-frame'\nexport {\n WebSocketNetworkFrame,\n type WebSocketNetworkFrameEventMap,\n} from './frames/websocket-frame'\n\n/* Handler controllers */\nexport {\n HandlersController,\n InMemoryHandlersController,\n} from './handlers-controller'\n"],"mappings":"AAAA,SAAS,qBAAgD;AAGzD,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAGlC,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,OACK;","names":[]}

@@ -10,3 +10,3 @@ /* eslint-disable */

const PACKAGE_VERSION = '2.14.0'
const PACKAGE_VERSION = '2.14.1'
const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82'

@@ -13,0 +13,0 @@ const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')

@@ -113,2 +113,2 @@ import { PartialDeep } from 'type-fest';

export { type SetupServer, SetupServerApi, SetupServerCommonApi, defaultNetworkOptions, setupServer };
export { AsyncHandlersController, type SetupServer, SetupServerApi, SetupServerCommonApi, defaultNetworkOptions, setupServer };

@@ -113,2 +113,2 @@ import { PartialDeep } from 'type-fest';

export { type SetupServer, SetupServerApi, SetupServerCommonApi, defaultNetworkOptions, setupServer };
export { AsyncHandlersController, type SetupServer, SetupServerApi, SetupServerCommonApi, defaultNetworkOptions, setupServer };

@@ -23,2 +23,3 @@ "use strict";

__export(index_exports, {
AsyncHandlersController: () => AsyncHandlersController,
SetupServerApi: () => SetupServerApi,

@@ -203,2 +204,3 @@ SetupServerCommonApi: () => SetupServerCommonApi,

0 && (module.exports = {
AsyncHandlersController,
SetupServerApi,

@@ -205,0 +207,0 @@ SetupServerCommonApi,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/node/index.ts","../../src/node/setup-server.ts","../../src/node/async-handlers-controller.ts","../../src/node/setup-server-common.ts"],"sourcesContent":["export type { SetupServer } from './glossary'\nexport {\n setupServer,\n SetupServerApi,\n defaultNetworkOptions,\n} from './setup-server'\nexport { SetupServerCommonApi } from './setup-server-common'\n","import type { Interceptor } from '@mswjs/interceptors'\nimport { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { WebSocketInterceptor } from '@mswjs/interceptors/WebSocket'\nimport {\n defineNetwork,\n type DefineNetworkOptions,\n} from '#core/experimental/define-network'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport type { SetupServer } from './glossary'\nimport { AsyncHandlersController } from './async-handlers-controller'\nimport {\n defineSetupServerApi,\n SetupServerCommonApi,\n} from './setup-server-common'\n\nconst defaultInterceptors: Array<Interceptor<any>> = [\n new ClientRequestInterceptor(),\n new XMLHttpRequestInterceptor(),\n new FetchInterceptor(),\n /**\n * @fixme WebSocketInterceptor is in a browser-only export of Interceptors\n * while the Interceptor class imported from the root module points to `lib/node`.\n * An absolute madness to solve as it requires to duplicate the build config we have\n * in MSW: shared core, CJS/ESM patching, .d.ts patching...\n */\n new WebSocketInterceptor() as any,\n]\n\nexport const defaultNetworkOptions: DefineNetworkOptions<[InterceptorSource]> =\n {\n sources: [\n new InterceptorSource({\n interceptors: defaultInterceptors,\n }),\n ],\n onUnhandledFrame: 'warn',\n context: {\n quiet: true,\n },\n }\n\n/**\n * Enables request interception in Node.js with the given request handlers.\n * @see {@link https://mswjs.io/docs/api/setup-server `setupServer()` API reference}\n */\nexport function setupServer(...handlers: Array<AnyHandler>): SetupServer {\n const handlersController = new AsyncHandlersController(handlers)\n const network = defineNetwork({\n ...defaultNetworkOptions,\n handlers: handlersController,\n })\n\n const commonApi = defineSetupServerApi(network)\n\n return {\n ...commonApi,\n boundary: handlersController.boundary.bind(handlersController),\n }\n}\n\n/**\n * @deprecated\n * Please use the `defineNetwork` API instead.\n */\nexport class SetupServerApi\n extends SetupServerCommonApi\n implements SetupServer\n{\n #handlersController: AsyncHandlersController\n\n public boundary: AsyncHandlersController['boundary']\n\n constructor(\n handlers: Array<AnyHandler>,\n interceptors: Array<Interceptor<any>>,\n ) {\n const controller = new AsyncHandlersController(handlers)\n super(interceptors, controller)\n\n const { sources: _, ...networkOptions } = defaultNetworkOptions\n this.network.configure(networkOptions)\n\n this.#handlersController = controller\n this.boundary = this.#handlersController.boundary.bind(\n this.#handlersController,\n )\n }\n}\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport {\n HandlersController,\n type AnyHandler,\n type HandlersMap,\n type HandlersControllerState,\n} from '#core/experimental/handlers-controller'\n\nexport interface AsyncHandlersControllerContext {\n initialHandlers: HandlersMap\n handlers: HandlersMap\n}\n\nexport class AsyncHandlersController extends HandlersController {\n #asyncContext: AsyncLocalStorage<AsyncHandlersControllerContext>\n #fallbackContext: AsyncHandlersControllerContext\n\n constructor(initialHandlers: Array<AnyHandler>) {\n super()\n\n const initialState = this.getInitialState(initialHandlers)\n\n this.#asyncContext = new AsyncLocalStorage()\n this.#fallbackContext = {\n initialHandlers: initialState.initialHandlers,\n handlers: initialState.handlers,\n }\n }\n\n protected getState() {\n const { initialHandlers, handlers } = this.#getContext()\n\n return {\n initialHandlers,\n handlers,\n }\n }\n\n protected setState(nextState: HandlersControllerState): void {\n const context = this.#getContext()\n\n if (nextState.initialHandlers) {\n context.initialHandlers = nextState.initialHandlers\n }\n\n if (nextState.handlers) {\n context.handlers = nextState.handlers\n }\n }\n\n public boundary<Args extends Array<any>, R>(callback: (...args: Args) => R) {\n return (...args: Args) => {\n const initialHandlers = { ...this.getState().handlers }\n\n return this.#asyncContext.run(\n {\n initialHandlers,\n handlers: { ...initialHandlers },\n },\n callback,\n ...args,\n )\n }\n }\n\n #getContext() {\n return this.#asyncContext.getStore() || this.#fallbackContext\n }\n}\n","import type { PartialDeep } from 'type-fest'\nimport type { Interceptor } from '@mswjs/interceptors'\nimport {\n NetworkReadyState,\n defineNetwork,\n type NetworkApi,\n} from '#core/experimental/define-network'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport type { HandlersController } from '#core/experimental/handlers-controller'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport { fromLegacyOnUnhandledRequest } from '#core/experimental/compat'\nimport type { ListenOptions, SetupServerCommon } from './glossary'\n\n/**\n * Define the common `setupServer` API around the given network.\n * This is used by both `msw/node` and `msw/native` to implement the same\n * baseline setup methods, like `.use()`, `.resetHandlers()`, `.close()`, etc.\n */\nexport function defineSetupServerApi(\n network: NetworkApi<any>,\n): SetupServerCommon {\n return {\n events: network.events,\n listen(options) {\n network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n network.enable()\n },\n use: network.use.bind(network),\n resetHandlers: network.resetHandlers.bind(network),\n restoreHandlers: network.restoreHandlers.bind(network),\n listHandlers: network.listHandlers.bind(network),\n close() {\n /**\n * @note Ignore closing after closed for backwards compatibility.\n */\n if (network.readyState === NetworkReadyState.DISABLED) {\n return\n }\n\n network.disable()\n },\n }\n}\n\n/**\n * @deprecated\n * Please use the `defineNetwork` API instead.\n */\nexport class SetupServerCommonApi implements SetupServerCommon {\n protected network: NetworkApi<[InterceptorSource]>\n\n constructor(\n interceptors: Array<Interceptor<any>>,\n handlers: Array<AnyHandler> | HandlersController,\n ) {\n this.network = defineNetwork({\n sources: [new InterceptorSource({ interceptors })],\n handlers,\n })\n }\n\n get events() {\n return this.network.events\n }\n\n public listen(options?: PartialDeep<ListenOptions>): void {\n this.network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n this.network.enable()\n }\n\n public use(...handlers: Array<AnyHandler>): void {\n this.network.use(...handlers)\n }\n\n public resetHandlers(...nextHandlers: Array<AnyHandler>): void {\n return this.network.resetHandlers(...nextHandlers)\n }\n\n public restoreHandlers(): void {\n return this.network.restoreHandlers()\n }\n\n public listHandlers(): ReadonlyArray<AnyHandler> {\n return this.network.listHandlers()\n }\n\n public close(): void {\n this.network.disable()\n }\n}\n"],"mappings":"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","names":["import_define_network","import_interceptor_source"]}
{"version":3,"sources":["../../src/node/index.ts","../../src/node/setup-server.ts","../../src/node/async-handlers-controller.ts","../../src/node/setup-server-common.ts"],"sourcesContent":["export type { SetupServer } from './glossary'\nexport {\n setupServer,\n SetupServerApi,\n defaultNetworkOptions,\n} from './setup-server'\nexport { SetupServerCommonApi } from './setup-server-common'\nexport { AsyncHandlersController } from './async-handlers-controller'\n","import type { Interceptor } from '@mswjs/interceptors'\nimport { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { WebSocketInterceptor } from '@mswjs/interceptors/WebSocket'\nimport {\n defineNetwork,\n type DefineNetworkOptions,\n} from '#core/experimental/define-network'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport type { SetupServer } from './glossary'\nimport { AsyncHandlersController } from './async-handlers-controller'\nimport {\n defineSetupServerApi,\n SetupServerCommonApi,\n} from './setup-server-common'\n\nconst defaultInterceptors: Array<Interceptor<any>> = [\n new ClientRequestInterceptor(),\n new XMLHttpRequestInterceptor(),\n new FetchInterceptor(),\n /**\n * @fixme WebSocketInterceptor is in a browser-only export of Interceptors\n * while the Interceptor class imported from the root module points to `lib/node`.\n * An absolute madness to solve as it requires to duplicate the build config we have\n * in MSW: shared core, CJS/ESM patching, .d.ts patching...\n */\n new WebSocketInterceptor() as any,\n]\n\nexport const defaultNetworkOptions: DefineNetworkOptions<[InterceptorSource]> =\n {\n sources: [\n new InterceptorSource({\n interceptors: defaultInterceptors,\n }),\n ],\n onUnhandledFrame: 'warn',\n context: {\n quiet: true,\n },\n }\n\n/**\n * Enables request interception in Node.js with the given request handlers.\n * @see {@link https://mswjs.io/docs/api/setup-server `setupServer()` API reference}\n */\nexport function setupServer(...handlers: Array<AnyHandler>): SetupServer {\n const handlersController = new AsyncHandlersController(handlers)\n const network = defineNetwork({\n ...defaultNetworkOptions,\n handlers: handlersController,\n })\n\n const commonApi = defineSetupServerApi(network)\n\n return {\n ...commonApi,\n boundary: handlersController.boundary.bind(handlersController),\n }\n}\n\n/**\n * @deprecated\n * Please use the `defineNetwork` API instead.\n */\nexport class SetupServerApi\n extends SetupServerCommonApi\n implements SetupServer\n{\n #handlersController: AsyncHandlersController\n\n public boundary: AsyncHandlersController['boundary']\n\n constructor(\n handlers: Array<AnyHandler>,\n interceptors: Array<Interceptor<any>>,\n ) {\n const controller = new AsyncHandlersController(handlers)\n super(interceptors, controller)\n\n const { sources: _, ...networkOptions } = defaultNetworkOptions\n this.network.configure(networkOptions)\n\n this.#handlersController = controller\n this.boundary = this.#handlersController.boundary.bind(\n this.#handlersController,\n )\n }\n}\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport {\n HandlersController,\n type AnyHandler,\n type HandlersMap,\n type HandlersControllerState,\n} from '#core/experimental/handlers-controller'\n\nexport interface AsyncHandlersControllerContext {\n initialHandlers: HandlersMap\n handlers: HandlersMap\n}\n\nexport class AsyncHandlersController extends HandlersController {\n #asyncContext: AsyncLocalStorage<AsyncHandlersControllerContext>\n #fallbackContext: AsyncHandlersControllerContext\n\n constructor(initialHandlers: Array<AnyHandler>) {\n super()\n\n const initialState = this.getInitialState(initialHandlers)\n\n this.#asyncContext = new AsyncLocalStorage()\n this.#fallbackContext = {\n initialHandlers: initialState.initialHandlers,\n handlers: initialState.handlers,\n }\n }\n\n protected getState() {\n const { initialHandlers, handlers } = this.#getContext()\n\n return {\n initialHandlers,\n handlers,\n }\n }\n\n protected setState(nextState: HandlersControllerState): void {\n const context = this.#getContext()\n\n if (nextState.initialHandlers) {\n context.initialHandlers = nextState.initialHandlers\n }\n\n if (nextState.handlers) {\n context.handlers = nextState.handlers\n }\n }\n\n public boundary<Args extends Array<any>, R>(callback: (...args: Args) => R) {\n return (...args: Args) => {\n const initialHandlers = { ...this.getState().handlers }\n\n return this.#asyncContext.run(\n {\n initialHandlers,\n handlers: { ...initialHandlers },\n },\n callback,\n ...args,\n )\n }\n }\n\n #getContext() {\n return this.#asyncContext.getStore() || this.#fallbackContext\n }\n}\n","import type { PartialDeep } from 'type-fest'\nimport type { Interceptor } from '@mswjs/interceptors'\nimport {\n NetworkReadyState,\n defineNetwork,\n type NetworkApi,\n} from '#core/experimental/define-network'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport type { HandlersController } from '#core/experimental/handlers-controller'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport { fromLegacyOnUnhandledRequest } from '#core/experimental/compat'\nimport type { ListenOptions, SetupServerCommon } from './glossary'\n\n/**\n * Define the common `setupServer` API around the given network.\n * This is used by both `msw/node` and `msw/native` to implement the same\n * baseline setup methods, like `.use()`, `.resetHandlers()`, `.close()`, etc.\n */\nexport function defineSetupServerApi(\n network: NetworkApi<any>,\n): SetupServerCommon {\n return {\n events: network.events,\n listen(options) {\n network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n network.enable()\n },\n use: network.use.bind(network),\n resetHandlers: network.resetHandlers.bind(network),\n restoreHandlers: network.restoreHandlers.bind(network),\n listHandlers: network.listHandlers.bind(network),\n close() {\n /**\n * @note Ignore closing after closed for backwards compatibility.\n */\n if (network.readyState === NetworkReadyState.DISABLED) {\n return\n }\n\n network.disable()\n },\n }\n}\n\n/**\n * @deprecated\n * Please use the `defineNetwork` API instead.\n */\nexport class SetupServerCommonApi implements SetupServerCommon {\n protected network: NetworkApi<[InterceptorSource]>\n\n constructor(\n interceptors: Array<Interceptor<any>>,\n handlers: Array<AnyHandler> | HandlersController,\n ) {\n this.network = defineNetwork({\n sources: [new InterceptorSource({ interceptors })],\n handlers,\n })\n }\n\n get events() {\n return this.network.events\n }\n\n public listen(options?: PartialDeep<ListenOptions>): void {\n this.network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n this.network.enable()\n }\n\n public use(...handlers: Array<AnyHandler>): void {\n this.network.use(...handlers)\n }\n\n public resetHandlers(...nextHandlers: Array<AnyHandler>): void {\n return this.network.resetHandlers(...nextHandlers)\n }\n\n public restoreHandlers(): void {\n return this.network.restoreHandlers()\n }\n\n public listHandlers(): ReadonlyArray<AnyHandler> {\n return this.network.listHandlers()\n }\n\n public close(): void {\n this.network.disable()\n }\n}\n"],"mappings":"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","names":["import_define_network","import_interceptor_source"]}

@@ -179,2 +179,3 @@ // src/node/setup-server.ts

export {
AsyncHandlersController,
SetupServerApi,

@@ -181,0 +182,0 @@ SetupServerCommonApi,

{
"name": "msw",
"version": "2.14.0",
"version": "2.14.1",
"description": "Seamless REST/GraphQL API mocking library for browser and Node.js.",

@@ -289,3 +289,3 @@ "type": "commonjs",

"webpack-http-server": "^0.5.0",
"msw": "^2.14.0"
"msw": "^2.14.1"
},

@@ -292,0 +292,0 @@ "peerDependencies": {

@@ -17,1 +17,7 @@ export { defineNetwork, type DefineNetworkOptions } from './define-network'

} from './frames/websocket-frame'
/* Handler controllers */
export {
HandlersController,
InMemoryHandlersController,
} from './handlers-controller'

@@ -8,1 +8,2 @@ export type { SetupServer } from './glossary'

export { SetupServerCommonApi } from './setup-server-common'
export { AsyncHandlersController } from './async-handlers-controller'