@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.
Files changed (176) hide show
  1. package/README.md +7 -7
  2. package/lib/browser/Interceptor-959f650e.d.ts +104 -0
  3. package/lib/browser/chunk-5B525MKF.mjs +2139 -0
  4. package/lib/browser/chunk-BQYA7ER5.mjs +258 -0
  5. package/lib/browser/chunk-IIY3SHU3.js +2139 -0
  6. package/lib/browser/chunk-QWL3EOEY.js +258 -0
  7. package/lib/browser/chunk-STA6QBYM.mjs +64 -0
  8. package/lib/browser/chunk-ZJOF5MEZ.js +64 -0
  9. package/lib/browser/index.d.ts +31 -0
  10. package/lib/browser/index.js +51 -0
  11. package/lib/browser/index.mjs +51 -0
  12. package/lib/browser/interceptors/XMLHttpRequest/index.d.ts +14 -0
  13. package/lib/browser/interceptors/XMLHttpRequest/index.js +657 -0
  14. package/lib/browser/interceptors/XMLHttpRequest/index.mjs +657 -0
  15. package/lib/browser/interceptors/fetch/index.d.ts +12 -0
  16. package/lib/browser/interceptors/fetch/index.js +94 -0
  17. package/lib/browser/interceptors/fetch/index.mjs +94 -0
  18. package/lib/node/BatchInterceptor-a7261b26.d.ts +21 -0
  19. package/lib/node/Interceptor-997045eb.d.ts +104 -0
  20. package/lib/{RemoteHttpInterceptor.d.ts → node/RemoteHttpInterceptor.d.ts} +17 -12
  21. package/lib/node/RemoteHttpInterceptor.js +176 -0
  22. package/lib/node/RemoteHttpInterceptor.mjs +176 -0
  23. package/lib/node/chunk-6GWWOJ23.js +29 -0
  24. package/lib/node/chunk-6V3JXLBF.js +6093 -0
  25. package/lib/node/chunk-CIN5URNI.mjs +29 -0
  26. package/lib/node/chunk-FCIAOT7W.mjs +660 -0
  27. package/lib/node/chunk-GFH37L5D.mjs +6 -0
  28. package/lib/node/chunk-HDUJCCWF.js +661 -0
  29. package/lib/node/chunk-JISWS3Y3.mjs +31 -0
  30. package/lib/node/chunk-KZJG2UW7.js +31 -0
  31. package/lib/node/chunk-NNVTJLQA.mjs +6093 -0
  32. package/lib/node/chunk-QMIXLBOU.js +291 -0
  33. package/lib/node/chunk-STA6QBYM.mjs +64 -0
  34. package/lib/node/chunk-VKKFXSTL.js +660 -0
  35. package/lib/node/chunk-VQ4DZOBB.js +6 -0
  36. package/lib/node/chunk-ZJOF5MEZ.js +64 -0
  37. package/lib/node/chunk-ZSI7MX3V.mjs +291 -0
  38. package/lib/node/chunk-ZWCZGO3W.mjs +661 -0
  39. package/lib/node/index.d.ts +14 -0
  40. package/lib/node/index.js +32 -0
  41. package/lib/node/index.mjs +32 -0
  42. package/lib/node/interceptors/ClientRequest/index.d.ts +22 -0
  43. package/lib/node/interceptors/ClientRequest/index.js +9 -0
  44. package/lib/node/interceptors/ClientRequest/index.mjs +9 -0
  45. package/lib/node/interceptors/XMLHttpRequest/index.d.ts +14 -0
  46. package/lib/node/interceptors/XMLHttpRequest/index.js +11 -0
  47. package/lib/node/interceptors/XMLHttpRequest/index.mjs +11 -0
  48. package/lib/node/interceptors/fetch/index.d.ts +12 -0
  49. package/lib/node/interceptors/fetch/index.js +96 -0
  50. package/lib/node/interceptors/fetch/index.mjs +96 -0
  51. package/package.json +58 -9
  52. package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts +1 -1
  53. package/src/shims/webEncoding.ts +9 -0
  54. package/src/utils/bufferUtils.ts +1 -1
  55. package/lib/BatchInterceptor.d.ts +0 -18
  56. package/lib/BatchInterceptor.js +0 -34
  57. package/lib/BatchInterceptor.js.map +0 -1
  58. package/lib/Interceptor.d.ts +0 -50
  59. package/lib/Interceptor.js +0 -172
  60. package/lib/Interceptor.js.map +0 -1
  61. package/lib/RemoteHttpInterceptor.js +0 -158
  62. package/lib/RemoteHttpInterceptor.js.map +0 -1
  63. package/lib/glossary.d.ts +0 -7
  64. package/lib/glossary.js +0 -5
  65. package/lib/glossary.js.map +0 -1
  66. package/lib/index.d.ts +0 -5
  67. package/lib/index.js +0 -23
  68. package/lib/index.js.map +0 -1
  69. package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +0 -46
  70. package/lib/interceptors/ClientRequest/NodeClientRequest.js +0 -325
  71. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +0 -1
  72. package/lib/interceptors/ClientRequest/http.get.d.ts +0 -4
  73. package/lib/interceptors/ClientRequest/http.get.js +0 -19
  74. package/lib/interceptors/ClientRequest/http.get.js.map +0 -1
  75. package/lib/interceptors/ClientRequest/http.request.d.ts +0 -4
  76. package/lib/interceptors/ClientRequest/http.request.js +0 -16
  77. package/lib/interceptors/ClientRequest/http.request.js.map +0 -1
  78. package/lib/interceptors/ClientRequest/index.d.ts +0 -19
  79. package/lib/interceptors/ClientRequest/index.js +0 -50
  80. package/lib/interceptors/ClientRequest/index.js.map +0 -1
  81. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.d.ts +0 -10
  82. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +0 -60
  83. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +0 -1
  84. package/lib/interceptors/ClientRequest/utils/createRequest.d.ts +0 -6
  85. package/lib/interceptors/ClientRequest/utils/createRequest.js +0 -30
  86. package/lib/interceptors/ClientRequest/utils/createRequest.js.map +0 -1
  87. package/lib/interceptors/ClientRequest/utils/createResponse.d.ts +0 -8
  88. package/lib/interceptors/ClientRequest/utils/createResponse.js +0 -24
  89. package/lib/interceptors/ClientRequest/utils/createResponse.js.map +0 -1
  90. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.d.ts +0 -3
  91. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +0 -57
  92. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +0 -1
  93. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.d.ts +0 -17
  94. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +0 -151
  95. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +0 -1
  96. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.d.ts +0 -15
  97. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js +0 -33
  98. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js.map +0 -1
  99. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.d.ts +0 -13
  100. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +0 -20
  101. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +0 -1
  102. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.d.ts +0 -44
  103. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js +0 -413
  104. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js.map +0 -1
  105. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.d.ts +0 -20
  106. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js +0 -75
  107. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js.map +0 -1
  108. package/lib/interceptors/XMLHttpRequest/index.d.ts +0 -12
  109. package/lib/interceptors/XMLHttpRequest/index.js +0 -41
  110. package/lib/interceptors/XMLHttpRequest/index.js.map +0 -1
  111. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.d.ts +0 -31
  112. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js +0 -44
  113. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js.map +0 -1
  114. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.d.ts +0 -8
  115. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js +0 -15
  116. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js.map +0 -1
  117. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.d.ts +0 -4
  118. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js +0 -14
  119. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js.map +0 -1
  120. package/lib/interceptors/XMLHttpRequest/utils/createEvent.d.ts +0 -2
  121. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js +0 -37
  122. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js.map +0 -1
  123. package/lib/interceptors/XMLHttpRequest/utils/createResponse.d.ts +0 -2
  124. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js +0 -14
  125. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js.map +0 -1
  126. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.d.ts +0 -1
  127. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js +0 -17
  128. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js.map +0 -1
  129. package/lib/interceptors/fetch/index.d.ts +0 -8
  130. package/lib/interceptors/fetch/index.js +0 -81
  131. package/lib/interceptors/fetch/index.js.map +0 -1
  132. package/lib/presets/browser.d.ts +0 -8
  133. package/lib/presets/browser.js +0 -10
  134. package/lib/presets/browser.js.map +0 -1
  135. package/lib/presets/node.d.ts +0 -8
  136. package/lib/presets/node.js +0 -10
  137. package/lib/presets/node.js.map +0 -1
  138. package/lib/utils/AsyncEventEmitter.d.ts +0 -33
  139. package/lib/utils/AsyncEventEmitter.js +0 -148
  140. package/lib/utils/AsyncEventEmitter.js.map +0 -1
  141. package/lib/utils/bufferUtils.d.ts +0 -8
  142. package/lib/utils/bufferUtils.js +0 -24
  143. package/lib/utils/bufferUtils.js.map +0 -1
  144. package/lib/utils/cloneObject.d.ts +0 -1
  145. package/lib/utils/cloneObject.js +0 -28
  146. package/lib/utils/cloneObject.js.map +0 -1
  147. package/lib/utils/createLazyCallback.d.ts +0 -11
  148. package/lib/utils/createLazyCallback.js +0 -40
  149. package/lib/utils/createLazyCallback.js.map +0 -1
  150. package/lib/utils/createProxy.d.ts +0 -8
  151. package/lib/utils/createProxy.js +0 -45
  152. package/lib/utils/createProxy.js.map +0 -1
  153. package/lib/utils/getCleanUrl.d.ts +0 -4
  154. package/lib/utils/getCleanUrl.js +0 -11
  155. package/lib/utils/getCleanUrl.js.map +0 -1
  156. package/lib/utils/getRequestOptionsByUrl.d.ts +0 -8
  157. package/lib/utils/getRequestOptionsByUrl.js +0 -28
  158. package/lib/utils/getRequestOptionsByUrl.js.map +0 -1
  159. package/lib/utils/getUrlByRequestOptions.d.ts +0 -11
  160. package/lib/utils/getUrlByRequestOptions.js +0 -78
  161. package/lib/utils/getUrlByRequestOptions.js.map +0 -1
  162. package/lib/utils/isObject.d.ts +0 -4
  163. package/lib/utils/isObject.js +0 -11
  164. package/lib/utils/isObject.js.map +0 -1
  165. package/lib/utils/nextTick.d.ts +0 -2
  166. package/lib/utils/nextTick.js +0 -16
  167. package/lib/utils/nextTick.js.map +0 -1
  168. package/lib/utils/parseJson.d.ts +0 -5
  169. package/lib/utils/parseJson.js +0 -18
  170. package/lib/utils/parseJson.js.map +0 -1
  171. package/lib/utils/toInteractiveRequest.d.ts +0 -7
  172. package/lib/utils/toInteractiveRequest.js +0 -20
  173. package/lib/utils/toInteractiveRequest.js.map +0 -1
  174. package/lib/utils/uuid.d.ts +0 -1
  175. package/lib/utils/uuid.js +0 -12
  176. 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/lib/interceptors/ClientRequest'
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/lib/interceptors/ClientRequest'
142
- import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/XMLHttpRequest'
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 middleground 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`).
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/lib/RemoteHttpInterceptor'
330
- import { ClientRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/ClientRequest'
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/lib/RemoteHttpInterceptor'
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 };