@mswjs/interceptors 0.20.0 → 0.21.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/README.md +7 -7
- package/lib/browser/Interceptor-959f650e.d.ts +104 -0
- package/lib/browser/chunk-5B525MKF.mjs +2139 -0
- package/lib/browser/chunk-BQYA7ER5.mjs +258 -0
- package/lib/browser/chunk-IIY3SHU3.js +2139 -0
- package/lib/browser/chunk-QWL3EOEY.js +258 -0
- package/lib/browser/chunk-STA6QBYM.mjs +64 -0
- package/lib/browser/chunk-ZJOF5MEZ.js +64 -0
- package/lib/browser/index.d.ts +31 -0
- package/lib/browser/index.js +51 -0
- package/lib/browser/index.mjs +51 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.d.ts +14 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.js +657 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.mjs +657 -0
- package/lib/browser/interceptors/fetch/index.d.ts +12 -0
- package/lib/browser/interceptors/fetch/index.js +94 -0
- package/lib/browser/interceptors/fetch/index.mjs +94 -0
- package/lib/node/BatchInterceptor-a7261b26.d.ts +21 -0
- package/lib/node/Interceptor-997045eb.d.ts +104 -0
- package/lib/{RemoteHttpInterceptor.d.ts → node/RemoteHttpInterceptor.d.ts} +17 -12
- package/lib/node/RemoteHttpInterceptor.js +176 -0
- package/lib/node/RemoteHttpInterceptor.mjs +176 -0
- package/lib/node/chunk-6GWWOJ23.js +29 -0
- package/lib/node/chunk-6V3JXLBF.js +6093 -0
- package/lib/node/chunk-CIN5URNI.mjs +29 -0
- package/lib/node/chunk-FCIAOT7W.mjs +660 -0
- package/lib/node/chunk-GFH37L5D.mjs +6 -0
- package/lib/node/chunk-HDUJCCWF.js +661 -0
- package/lib/node/chunk-JISWS3Y3.mjs +31 -0
- package/lib/node/chunk-KZJG2UW7.js +31 -0
- package/lib/node/chunk-NNVTJLQA.mjs +6093 -0
- package/lib/node/chunk-QMIXLBOU.js +291 -0
- package/lib/node/chunk-STA6QBYM.mjs +64 -0
- package/lib/node/chunk-VKKFXSTL.js +660 -0
- package/lib/node/chunk-VQ4DZOBB.js +6 -0
- package/lib/node/chunk-ZJOF5MEZ.js +64 -0
- package/lib/node/chunk-ZSI7MX3V.mjs +291 -0
- package/lib/node/chunk-ZWCZGO3W.mjs +661 -0
- package/lib/node/index.d.ts +14 -0
- package/lib/node/index.js +32 -0
- package/lib/node/index.mjs +32 -0
- package/lib/node/interceptors/ClientRequest/index.d.ts +22 -0
- package/lib/node/interceptors/ClientRequest/index.js +9 -0
- package/lib/node/interceptors/ClientRequest/index.mjs +9 -0
- package/lib/node/interceptors/XMLHttpRequest/index.d.ts +14 -0
- package/lib/node/interceptors/XMLHttpRequest/index.js +11 -0
- package/lib/node/interceptors/XMLHttpRequest/index.mjs +11 -0
- package/lib/node/interceptors/fetch/index.d.ts +12 -0
- package/lib/node/interceptors/fetch/index.js +96 -0
- package/lib/node/interceptors/fetch/index.mjs +96 -0
- package/package.json +58 -9
- package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts +1 -1
- package/src/shims/webEncoding.ts +9 -0
- package/src/utils/bufferUtils.ts +1 -1
- package/lib/BatchInterceptor.d.ts +0 -18
- package/lib/BatchInterceptor.js +0 -34
- package/lib/BatchInterceptor.js.map +0 -1
- package/lib/Interceptor.d.ts +0 -50
- package/lib/Interceptor.js +0 -172
- package/lib/Interceptor.js.map +0 -1
- package/lib/RemoteHttpInterceptor.js +0 -158
- package/lib/RemoteHttpInterceptor.js.map +0 -1
- package/lib/glossary.d.ts +0 -7
- package/lib/glossary.js +0 -5
- package/lib/glossary.js.map +0 -1
- package/lib/index.d.ts +0 -5
- package/lib/index.js +0 -23
- package/lib/index.js.map +0 -1
- package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +0 -46
- package/lib/interceptors/ClientRequest/NodeClientRequest.js +0 -325
- package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +0 -1
- package/lib/interceptors/ClientRequest/http.get.d.ts +0 -4
- package/lib/interceptors/ClientRequest/http.get.js +0 -19
- package/lib/interceptors/ClientRequest/http.get.js.map +0 -1
- package/lib/interceptors/ClientRequest/http.request.d.ts +0 -4
- package/lib/interceptors/ClientRequest/http.request.js +0 -16
- package/lib/interceptors/ClientRequest/http.request.js.map +0 -1
- package/lib/interceptors/ClientRequest/index.d.ts +0 -19
- package/lib/interceptors/ClientRequest/index.js +0 -50
- package/lib/interceptors/ClientRequest/index.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.d.ts +0 -10
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +0 -60
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/createRequest.d.ts +0 -6
- package/lib/interceptors/ClientRequest/utils/createRequest.js +0 -30
- package/lib/interceptors/ClientRequest/utils/createRequest.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/createResponse.d.ts +0 -8
- package/lib/interceptors/ClientRequest/utils/createResponse.js +0 -24
- package/lib/interceptors/ClientRequest/utils/createResponse.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.d.ts +0 -3
- package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +0 -57
- package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.d.ts +0 -17
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +0 -151
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.d.ts +0 -15
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js +0 -33
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js.map +0 -1
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.d.ts +0 -13
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +0 -20
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.d.ts +0 -44
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js +0 -413
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.d.ts +0 -20
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js +0 -75
- package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/index.d.ts +0 -12
- package/lib/interceptors/XMLHttpRequest/index.js +0 -41
- package/lib/interceptors/XMLHttpRequest/index.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.d.ts +0 -31
- package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js +0 -44
- package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.d.ts +0 -8
- package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js +0 -15
- package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.d.ts +0 -4
- package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js +0 -14
- package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/utils/createEvent.d.ts +0 -2
- package/lib/interceptors/XMLHttpRequest/utils/createEvent.js +0 -37
- package/lib/interceptors/XMLHttpRequest/utils/createEvent.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/utils/createResponse.d.ts +0 -2
- package/lib/interceptors/XMLHttpRequest/utils/createResponse.js +0 -14
- package/lib/interceptors/XMLHttpRequest/utils/createResponse.js.map +0 -1
- package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.d.ts +0 -1
- package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js +0 -17
- package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js.map +0 -1
- package/lib/interceptors/fetch/index.d.ts +0 -8
- package/lib/interceptors/fetch/index.js +0 -81
- package/lib/interceptors/fetch/index.js.map +0 -1
- package/lib/presets/browser.d.ts +0 -8
- package/lib/presets/browser.js +0 -10
- package/lib/presets/browser.js.map +0 -1
- package/lib/presets/node.d.ts +0 -8
- package/lib/presets/node.js +0 -10
- package/lib/presets/node.js.map +0 -1
- package/lib/utils/AsyncEventEmitter.d.ts +0 -33
- package/lib/utils/AsyncEventEmitter.js +0 -148
- package/lib/utils/AsyncEventEmitter.js.map +0 -1
- package/lib/utils/bufferUtils.d.ts +0 -8
- package/lib/utils/bufferUtils.js +0 -24
- package/lib/utils/bufferUtils.js.map +0 -1
- package/lib/utils/cloneObject.d.ts +0 -1
- package/lib/utils/cloneObject.js +0 -28
- package/lib/utils/cloneObject.js.map +0 -1
- package/lib/utils/createLazyCallback.d.ts +0 -11
- package/lib/utils/createLazyCallback.js +0 -40
- package/lib/utils/createLazyCallback.js.map +0 -1
- package/lib/utils/createProxy.d.ts +0 -8
- package/lib/utils/createProxy.js +0 -45
- package/lib/utils/createProxy.js.map +0 -1
- package/lib/utils/getCleanUrl.d.ts +0 -4
- package/lib/utils/getCleanUrl.js +0 -11
- package/lib/utils/getCleanUrl.js.map +0 -1
- package/lib/utils/getRequestOptionsByUrl.d.ts +0 -8
- package/lib/utils/getRequestOptionsByUrl.js +0 -28
- package/lib/utils/getRequestOptionsByUrl.js.map +0 -1
- package/lib/utils/getUrlByRequestOptions.d.ts +0 -11
- package/lib/utils/getUrlByRequestOptions.js +0 -78
- package/lib/utils/getUrlByRequestOptions.js.map +0 -1
- package/lib/utils/isObject.d.ts +0 -4
- package/lib/utils/isObject.js +0 -11
- package/lib/utils/isObject.js.map +0 -1
- package/lib/utils/nextTick.d.ts +0 -2
- package/lib/utils/nextTick.js +0 -16
- package/lib/utils/nextTick.js.map +0 -1
- package/lib/utils/parseJson.d.ts +0 -5
- package/lib/utils/parseJson.js +0 -18
- package/lib/utils/parseJson.js.map +0 -1
- package/lib/utils/toInteractiveRequest.d.ts +0 -7
- package/lib/utils/toInteractiveRequest.js +0 -20
- package/lib/utils/toInteractiveRequest.js.map +0 -1
- package/lib/utils/uuid.d.ts +0 -1
- package/lib/utils/uuid.js +0 -12
- package/lib/utils/uuid.js.map +0 -1
package/README.md
CHANGED
|
@@ -107,7 +107,7 @@ To use this library you need to choose one or multiple interceptors to apply. Th
|
|
|
107
107
|
Use an interceptor by constructing it and attaching request/response listeners:
|
|
108
108
|
|
|
109
109
|
```js
|
|
110
|
-
import { ClientRequestInterceptor } from '@mswjs/interceptors/
|
|
110
|
+
import { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'
|
|
111
111
|
|
|
112
112
|
const interceptor = new ClientRequestInterceptor()
|
|
113
113
|
|
|
@@ -138,8 +138,8 @@ You can combine multiple interceptors to capture requests from different request
|
|
|
138
138
|
|
|
139
139
|
```js
|
|
140
140
|
import { BatchInterceptor } from '@mswjs/interceptors'
|
|
141
|
-
import { ClientRequestInterceptor } from '@mswjs/interceptors/
|
|
142
|
-
import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/
|
|
141
|
+
import { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'
|
|
142
|
+
import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'
|
|
143
143
|
|
|
144
144
|
const interceptor = new BatchInterceptor({
|
|
145
145
|
name: 'my-interceptor',
|
|
@@ -256,7 +256,7 @@ interceptor.on('request', (request, requestId) => {
|
|
|
256
256
|
})
|
|
257
257
|
```
|
|
258
258
|
|
|
259
|
-
> We use Fetch API `Response` class as the
|
|
259
|
+
> We use Fetch API `Response` class as the middle-ground for mocked response definition. This library then coerces the response instance to the appropriate response format (e.g. to `http.OutgoingMessage` in the case of `http.ClientRequest`).
|
|
260
260
|
|
|
261
261
|
**The `Response` class is built-in in since Node.js 18. Use a Fetch API-compatible polyfill, like `node-fetch`, for older versions of Node.js.`**
|
|
262
262
|
|
|
@@ -326,8 +326,8 @@ Enables request interception in the current process while delegating the respons
|
|
|
326
326
|
|
|
327
327
|
```js
|
|
328
328
|
// child.js
|
|
329
|
-
import { RemoteHttpInterceptor } from '@mswjs/interceptors/
|
|
330
|
-
import { ClientRequestInterceptor } from '@mswjs/interceptors/
|
|
329
|
+
import { RemoteHttpInterceptor } from '@mswjs/interceptors/RemoteHttpInterceptor'
|
|
330
|
+
import { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'
|
|
331
331
|
|
|
332
332
|
const interceptor = new RemoteHttpInterceptor({
|
|
333
333
|
// Alternatively, you can use presets.
|
|
@@ -350,7 +350,7 @@ Resolves an intercepted request in the given child `process`. Requires for that
|
|
|
350
350
|
```js
|
|
351
351
|
// parent.js
|
|
352
352
|
import { spawn } from 'child_process'
|
|
353
|
-
import { RemoteHttpResolver } from '@mswjs/interceptors/
|
|
353
|
+
import { RemoteHttpResolver } from '@mswjs/interceptors/RemoteHttpInterceptor'
|
|
354
354
|
|
|
355
355
|
const appProcess = spawn('node', ['app.js'], {
|
|
356
356
|
stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Debugger } from 'debug';
|
|
2
|
+
import { EventMap, Emitter, Listener } from 'strict-event-emitter';
|
|
3
|
+
|
|
4
|
+
type AnyFunction = (...args: any[]) => any;
|
|
5
|
+
type LazyCallbackReturnType<FnType extends AnyFunction> = Parameters<FnType> | [];
|
|
6
|
+
interface LazyCallback<FnType extends AnyFunction> {
|
|
7
|
+
(...args: Parameters<FnType>): void;
|
|
8
|
+
invoked(): Promise<LazyCallbackReturnType<FnType>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type LazyResponseCallback = (response: Response) => void;
|
|
12
|
+
type InteractiveRequest = globalThis.Request & {
|
|
13
|
+
respondWith: LazyCallback<LazyResponseCallback>;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
declare const IS_PATCHED_MODULE: unique symbol;
|
|
17
|
+
type RequestCredentials = 'omit' | 'include' | 'same-origin';
|
|
18
|
+
type HttpRequestEventMap = {
|
|
19
|
+
request: [request: InteractiveRequest, requestId: string];
|
|
20
|
+
response: [response: Response, request: Request, requestId: string];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
interface QueueItem<Args extends Array<unknown>> {
|
|
24
|
+
args: Args;
|
|
25
|
+
done: Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
declare enum AsyncEventEmitterReadyState {
|
|
28
|
+
ACTIVE = "ACTIVE",
|
|
29
|
+
DEACTIVATED = "DEACTIVATED"
|
|
30
|
+
}
|
|
31
|
+
declare class AsyncEventEmitter<Events extends EventMap> extends Emitter<Events> {
|
|
32
|
+
readyState: AsyncEventEmitterReadyState;
|
|
33
|
+
private log;
|
|
34
|
+
protected queue: Map<keyof Events, Array<QueueItem<Events[any]>>>;
|
|
35
|
+
constructor();
|
|
36
|
+
on<EventName extends keyof Events>(eventName: EventName, listener: Listener<any>): this;
|
|
37
|
+
emit<EventName extends keyof Events>(eventName: EventName, ...data: Events[EventName]): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Returns a promise that resolves when all the listeners for the given event
|
|
40
|
+
* has been called. Awaits asynchronous listeners.
|
|
41
|
+
* If the event has no listeners, resolves immediately.
|
|
42
|
+
*/
|
|
43
|
+
untilIdle<EventName extends keyof Events>(eventName: EventName, filter?: (item: QueueItem<Events[EventName]>) => boolean): Promise<void>;
|
|
44
|
+
private openListenerQueue;
|
|
45
|
+
removeAllListeners<EventName extends keyof Events>(eventName?: EventName): this;
|
|
46
|
+
activate(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Deactivate this event emitter.
|
|
49
|
+
* Deactivated emitter can no longer emit and listen to events
|
|
50
|
+
* and needs to be activated again in order to do so.
|
|
51
|
+
*/
|
|
52
|
+
deactivate(): void;
|
|
53
|
+
private isInternalEventName;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
type InterceptorEventMap = Record<string, any>;
|
|
57
|
+
type InterceptorSubscription = () => void;
|
|
58
|
+
declare function getGlobalSymbol<V>(symbol: Symbol): V | undefined;
|
|
59
|
+
declare function deleteGlobalSymbol(symbol: Symbol): void;
|
|
60
|
+
declare enum InterceptorReadyState {
|
|
61
|
+
INACTIVE = "INACTIVE",
|
|
62
|
+
APPLYING = "APPLYING",
|
|
63
|
+
APPLIED = "APPLIED",
|
|
64
|
+
DISPOSING = "DISPOSING",
|
|
65
|
+
DISPOSED = "DISPOSED"
|
|
66
|
+
}
|
|
67
|
+
type ExtractEventNames<Events extends Record<string, any>> = Events extends Record<infer EventName, any> ? EventName : never;
|
|
68
|
+
declare class Interceptor<Events extends InterceptorEventMap> {
|
|
69
|
+
private readonly symbol;
|
|
70
|
+
protected emitter: AsyncEventEmitter<Events>;
|
|
71
|
+
protected subscriptions: Array<InterceptorSubscription>;
|
|
72
|
+
protected log: Debugger;
|
|
73
|
+
readyState: InterceptorReadyState;
|
|
74
|
+
constructor(symbol: Symbol);
|
|
75
|
+
/**
|
|
76
|
+
* Determine if this interceptor can be applied
|
|
77
|
+
* in the current environment.
|
|
78
|
+
*/
|
|
79
|
+
protected checkEnvironment(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Apply this interceptor to the current process.
|
|
82
|
+
* Returns an already running interceptor instance if it's present.
|
|
83
|
+
*/
|
|
84
|
+
apply(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Setup the module augments and stubs necessary for this interceptor.
|
|
87
|
+
* This method is not run if there's a running interceptor instance
|
|
88
|
+
* to prevent instantiating an interceptor multiple times.
|
|
89
|
+
*/
|
|
90
|
+
protected setup(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Listen to the interceptor's public events.
|
|
93
|
+
*/
|
|
94
|
+
on<EventName extends ExtractEventNames<Events>>(eventName: EventName, listener: Listener<Events[EventName]>): void;
|
|
95
|
+
/**
|
|
96
|
+
* Disposes of any side-effects this interceptor has introduced.
|
|
97
|
+
*/
|
|
98
|
+
dispose(): void;
|
|
99
|
+
private getInstance;
|
|
100
|
+
private setInstance;
|
|
101
|
+
private clearInstance;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export { AsyncEventEmitter as A, ExtractEventNames as E, HttpRequestEventMap as H, Interceptor as I, RequestCredentials as R, IS_PATCHED_MODULE as a, InterceptorEventMap as b, InterceptorSubscription as c, deleteGlobalSymbol as d, InterceptorReadyState as e, InteractiveRequest as f, getGlobalSymbol as g };
|