msw 0.48.2 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{SetupApi-75fbec12.d.ts → SetupApi-0d3126ba.d.ts} +31 -31
- package/lib/{SetupServerApi-49722346.d.ts → SetupServerApi-3406bf53.d.ts} +3 -3
- package/lib/{glossary-a22f5c13.d.ts → glossary-6a87827e.d.ts} +2 -2
- package/lib/iife/index.js +6 -6
- package/lib/iife/index.js.map +1 -1
- package/lib/index.d.ts +27 -27
- package/lib/index.js +137 -8
- package/lib/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/lib/native/index.d.ts +2 -2
- package/lib/native/index.js +137 -8
- package/lib/native/index.mjs +137 -8
- package/lib/node/index.d.ts +4 -4
- package/lib/node/index.js +137 -8
- package/lib/node/index.js.map +1 -1
- package/lib/node/index.mjs +137 -8
- package/lib/node/index.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -2,12 +2,12 @@ import { StrictEventEmitter, EventMapType } from 'strict-event-emitter';
|
|
|
2
2
|
import { FlatHeadersObject, Headers } from 'headers-polyfill';
|
|
3
3
|
import { RequestInit as RequestInit$1, IsomorphicRequest } from '@mswjs/interceptors';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
type HeadersObject<KeyType extends string = string> = Record<KeyType, string | string[]>;
|
|
6
6
|
/**
|
|
7
7
|
* @see https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type ForbiddenHeaderNames = 'cookie' | 'cookie2' | 'set-cookie' | 'set-cookie2';
|
|
10
|
+
type ForbiddenHeaderError<HeaderName extends string> = `SafeResponseHeader: the '${HeaderName}' header cannot be set on the response. Please use the 'ctx.cookie()' function instead.`;
|
|
11
11
|
/**
|
|
12
12
|
* Sets one or multiple response headers.
|
|
13
13
|
* @example
|
|
@@ -20,7 +20,7 @@ declare type ForbiddenHeaderError<HeaderName extends string> = `SafeResponseHead
|
|
|
20
20
|
*/
|
|
21
21
|
declare function set<N extends string | HeadersObject>(...args: N extends string ? Lowercase<N> extends ForbiddenHeaderNames ? [ForbiddenHeaderError<N>] : [N, string] : N extends HeadersObject<infer CookieName> ? Lowercase<CookieName> extends ForbiddenHeaderNames ? [ForbiddenHeaderError<CookieName>] : [N] : [N]): ResponseTransformer;
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
type DelayMode = 'real' | 'infinite';
|
|
24
24
|
/**
|
|
25
25
|
* Delays the response by the given duration (ms).
|
|
26
26
|
* @example
|
|
@@ -31,12 +31,12 @@ declare type DelayMode = 'real' | 'infinite';
|
|
|
31
31
|
*/
|
|
32
32
|
declare const delay: (durationOrMode?: DelayMode | number) => ResponseTransformer;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
type RequestCache = 'default' | 'no-store' | 'reload' | 'no-cache' | 'force-cache' | 'only-if-cached';
|
|
35
|
+
type RequestMode = 'navigate' | 'same-origin' | 'no-cors' | 'cors';
|
|
36
|
+
type RequestRedirect = 'follow' | 'error' | 'manual';
|
|
37
|
+
type RequestDestination = '' | 'audio' | 'audioworklet' | 'document' | 'embed' | 'font' | 'frame' | 'iframe' | 'image' | 'manifest' | 'object' | 'paintworklet' | 'report' | 'script' | 'sharedworker' | 'style' | 'track' | 'video' | 'xslt' | 'worker';
|
|
38
|
+
type RequestPriority = 'high' | 'low' | 'auto';
|
|
39
|
+
type RequestReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
|
|
40
40
|
interface MockedRequestInit extends RequestInit$1 {
|
|
41
41
|
id?: string;
|
|
42
42
|
cache?: RequestCache;
|
|
@@ -99,8 +99,8 @@ interface UnhandledRequestPrint {
|
|
|
99
99
|
warning(): void;
|
|
100
100
|
error(): void;
|
|
101
101
|
}
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
type UnhandledRequestCallback = (request: MockedRequest, print: UnhandledRequestPrint) => void;
|
|
103
|
+
type UnhandledRequestStrategy = 'bypass' | 'warn' | 'error' | UnhandledRequestCallback;
|
|
104
104
|
|
|
105
105
|
interface SharedOptions {
|
|
106
106
|
/**
|
|
@@ -122,10 +122,10 @@ interface LifeCycleEventsMap<ResponseType> {
|
|
|
122
122
|
'response:bypass': (response: ResponseType, requestId: string) => void;
|
|
123
123
|
unhandledException: (error: Error, request: MockedRequest) => void;
|
|
124
124
|
}
|
|
125
|
-
|
|
125
|
+
type LifeCycleEventEmitter<ResponseType extends Record<string | symbol, any>> = Pick<StrictEventEmitter<ResponseType>, 'on' | 'removeListener' | 'removeAllListeners'>;
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
type WorkerLifecycleEventsMap = LifeCycleEventsMap<Response>;
|
|
128
|
+
type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
|
|
129
129
|
interface StartOptions extends SharedOptions {
|
|
130
130
|
/**
|
|
131
131
|
* Service Worker registration options.
|
|
@@ -163,8 +163,8 @@ interface SerializedResponse<BodyType extends DefaultBodyType = any> {
|
|
|
163
163
|
body: BodyType;
|
|
164
164
|
delay?: number;
|
|
165
165
|
}
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
type StartReturnType = Promise<ServiceWorkerRegistration | undefined>;
|
|
167
|
+
type StopHandler = () => void;
|
|
168
168
|
interface SetupWorkerApi {
|
|
169
169
|
/**
|
|
170
170
|
* Registers and activates the mock Service Worker.
|
|
@@ -206,26 +206,26 @@ interface SetupWorkerApi {
|
|
|
206
206
|
events: LifeCycleEventEmitter<WorkerLifecycleEventsMap>;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
type DefaultContext = {
|
|
210
210
|
status: typeof status;
|
|
211
211
|
set: typeof set;
|
|
212
212
|
delay: typeof delay;
|
|
213
213
|
fetch: typeof fetch;
|
|
214
214
|
};
|
|
215
215
|
declare const defaultContext: DefaultContext;
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
type DefaultRequestMultipartBody = Record<string, string | File | (string | File)[]>;
|
|
217
|
+
type DefaultBodyType = Record<string, any> | DefaultRequestMultipartBody | string | number | boolean | null | undefined;
|
|
218
218
|
interface RequestHandlerDefaultInfo {
|
|
219
219
|
header: string;
|
|
220
220
|
}
|
|
221
221
|
interface RequestHandlerInternalInfo {
|
|
222
222
|
callFrame?: string;
|
|
223
223
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
type ContextMap = Record<string, (...args: any[]) => any>;
|
|
225
|
+
type ResponseResolverReturnType<ReturnType> = ReturnType | undefined | void;
|
|
226
|
+
type MaybeAsyncResponseResolverReturnType<ReturnType> = MaybePromise<ResponseResolverReturnType<ReturnType>>;
|
|
227
|
+
type AsyncResponseResolverReturnType<ReturnType> = MaybeAsyncResponseResolverReturnType<ReturnType> | Generator<MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>>;
|
|
228
|
+
type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType extends DefaultBodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
|
|
229
229
|
interface RequestHandlerOptions<HandlerInfo> {
|
|
230
230
|
info: HandlerInfo;
|
|
231
231
|
resolver: ResponseResolver<any, any>;
|
|
@@ -277,7 +277,7 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
|
|
|
277
277
|
private createExecutionResult;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
|
|
280
|
+
type MaybePromise<ValueType = any> = ValueType | Promise<ValueType>;
|
|
281
281
|
/**
|
|
282
282
|
* Internal representation of a mocked response instance.
|
|
283
283
|
*/
|
|
@@ -290,9 +290,9 @@ interface MockedResponse<BodyType extends DefaultBodyType = any> {
|
|
|
290
290
|
passthrough: boolean;
|
|
291
291
|
delay?: number;
|
|
292
292
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
293
|
+
type ResponseTransformer<BodyType extends TransformerBodyType = any, TransformerBodyType extends DefaultBodyType = any> = (res: MockedResponse<TransformerBodyType>) => MaybePromise<MockedResponse<BodyType>>;
|
|
294
|
+
type ResponseFunction<BodyType extends DefaultBodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MaybePromise<MockedResponse<BodyType>>;
|
|
295
|
+
type ResponseComposition<BodyType extends DefaultBodyType = any> = ResponseFunction<BodyType> & {
|
|
296
296
|
/**
|
|
297
297
|
* Respond using a given mocked response to the first captured request.
|
|
298
298
|
* Does not affect any subsequent captured requests.
|
|
@@ -301,7 +301,7 @@ declare type ResponseComposition<BodyType extends DefaultBodyType = any> = Respo
|
|
|
301
301
|
networkError: (message: string) => void;
|
|
302
302
|
};
|
|
303
303
|
declare const defaultResponse: Omit<MockedResponse, 'headers'>;
|
|
304
|
-
|
|
304
|
+
type ResponseCompositionOptions<BodyType> = {
|
|
305
305
|
defaultTransformers?: ResponseTransformer<BodyType>[];
|
|
306
306
|
mockedResponseOverrides?: Partial<MockedResponse>;
|
|
307
307
|
};
|
|
@@ -329,7 +329,7 @@ declare abstract class SetupApi<EventsMap extends EventMapType> {
|
|
|
329
329
|
protected readonly emitter: StrictEventEmitter<EventsMap>;
|
|
330
330
|
protected readonly publicEmitter: StrictEventEmitter<EventsMap>;
|
|
331
331
|
readonly events: LifeCycleEventEmitter<EventsMap>;
|
|
332
|
-
constructor(initialHandlers: Array<RequestHandler>);
|
|
332
|
+
constructor(...initialHandlers: Array<RequestHandler>);
|
|
333
333
|
private validateHandlers;
|
|
334
334
|
protected dispose(): void;
|
|
335
335
|
use(...runtimeHandlers: Array<RequestHandler>): void;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { IsomorphicResponse, BatchInterceptor, Interceptor, HttpRequestEventMap } from '@mswjs/interceptors';
|
|
2
|
-
import { J as LifeCycleEventsMap, S as SetupApi, b as RequestHandler, n as SharedOptions } from './SetupApi-
|
|
2
|
+
import { J as LifeCycleEventsMap, S as SetupApi, b as RequestHandler, n as SharedOptions } from './SetupApi-0d3126ba.js';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
type ServerLifecycleEventsMap = LifeCycleEventsMap<IsomorphicResponse>;
|
|
5
5
|
declare class SetupServerApi extends SetupApi<ServerLifecycleEventsMap> {
|
|
6
6
|
protected readonly interceptor: BatchInterceptor<Array<Interceptor<HttpRequestEventMap>>, HttpRequestEventMap>;
|
|
7
7
|
private resolvedOptions;
|
|
8
8
|
constructor(interceptors: Array<{
|
|
9
9
|
new (): Interceptor<HttpRequestEventMap>;
|
|
10
|
-
}>, handlers: Array<RequestHandler>);
|
|
10
|
+
}>, ...handlers: Array<RequestHandler>);
|
|
11
11
|
/**
|
|
12
12
|
* Subscribe to all requests that are using the interceptor object
|
|
13
13
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PartialDeep } from 'type-fest';
|
|
2
2
|
import { IsomorphicResponse } from '@mswjs/interceptors';
|
|
3
|
-
import { n as SharedOptions, b as RequestHandler, k as RequestHandlerDefaultInfo, M as MockedRequest, g as DefaultBodyType, L as LifeCycleEventEmitter, J as LifeCycleEventsMap } from './SetupApi-
|
|
3
|
+
import { n as SharedOptions, b as RequestHandler, k as RequestHandlerDefaultInfo, M as MockedRequest, g as DefaultBodyType, L as LifeCycleEventEmitter, J as LifeCycleEventsMap } from './SetupApi-0d3126ba.js';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
type ServerLifecycleEventsMap = LifeCycleEventsMap<IsomorphicResponse>;
|
|
6
6
|
interface SetupServerApi {
|
|
7
7
|
/**
|
|
8
8
|
* Starts requests interception based on the previously provided request handlers.
|
package/lib/iife/index.js
CHANGED
|
@@ -13111,8 +13111,8 @@ If this message still persists after updating, please report an issue: https://g
|
|
|
13111
13111
|
|
|
13112
13112
|
// src/SetupApi.ts
|
|
13113
13113
|
var SetupApi = class {
|
|
13114
|
-
constructor(initialHandlers) {
|
|
13115
|
-
this.validateHandlers(initialHandlers);
|
|
13114
|
+
constructor(...initialHandlers) {
|
|
13115
|
+
this.validateHandlers(...initialHandlers);
|
|
13116
13116
|
this.initialHandlers = toReadonlyArray(initialHandlers);
|
|
13117
13117
|
this.currentHandlers = [...initialHandlers];
|
|
13118
13118
|
this.emitter = new import_strict_event_emitter.StrictEventEmitter();
|
|
@@ -13120,7 +13120,7 @@ If this message still persists after updating, please report an issue: https://g
|
|
|
13120
13120
|
pipeEvents(this.emitter, this.publicEmitter);
|
|
13121
13121
|
this.events = this.createLifeCycleEvents();
|
|
13122
13122
|
}
|
|
13123
|
-
validateHandlers(handlers) {
|
|
13123
|
+
validateHandlers(...handlers) {
|
|
13124
13124
|
for (const handler of handlers) {
|
|
13125
13125
|
(0, import_outvariant3.invariant)(!Array.isArray(handler), devUtils.formatMessage('Failed to construct "%s" given an Array of request handlers. Make sure you spread the request handlers when calling the respective setup function.'), this.constructor.name);
|
|
13126
13126
|
}
|
|
@@ -13160,8 +13160,8 @@ If this message still persists after updating, please report an issue: https://g
|
|
|
13160
13160
|
|
|
13161
13161
|
// src/setupWorker/setupWorker.ts
|
|
13162
13162
|
var SetupWorkerApi = class extends SetupApi {
|
|
13163
|
-
constructor(handlers) {
|
|
13164
|
-
super(handlers);
|
|
13163
|
+
constructor(...handlers) {
|
|
13164
|
+
super(...handlers);
|
|
13165
13165
|
this.startHandler = null;
|
|
13166
13166
|
this.stopHandler = null;
|
|
13167
13167
|
(0, import_outvariant4.invariant)(!(0, import_is_node_process3.isNodeProcess)(), devUtils.formatMessage("Failed to execute `setupWorker` in a non-browser environment. Consider using `setupServer` for Node.js environment instead."));
|
|
@@ -13265,7 +13265,7 @@ If this message still persists after updating, please report an issue: https://g
|
|
|
13265
13265
|
}
|
|
13266
13266
|
};
|
|
13267
13267
|
function setupWorker(...handlers) {
|
|
13268
|
-
return new SetupWorkerApi(handlers);
|
|
13268
|
+
return new SetupWorkerApi(...handlers);
|
|
13269
13269
|
}
|
|
13270
13270
|
|
|
13271
13271
|
// src/rest.ts
|