@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
@@ -0,0 +1,258 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+
6
+ // src/glossary.ts
7
+ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
8
+
9
+ // src/Interceptor.ts
10
+ import { debug as debug2 } from "debug";
11
+
12
+ // src/utils/AsyncEventEmitter.ts
13
+ import { debug } from "debug";
14
+ import { Emitter } from "strict-event-emitter";
15
+
16
+ // src/utils/nextTick.ts
17
+ function nextTick(callback) {
18
+ setTimeout(callback, 0);
19
+ }
20
+
21
+ // src/utils/AsyncEventEmitter.ts
22
+ var AsyncEventEmitter = class extends Emitter {
23
+ constructor() {
24
+ super();
25
+ this.log = debug("async-event-emitter");
26
+ this.queue = /* @__PURE__ */ new Map();
27
+ this.readyState = "ACTIVE" /* ACTIVE */;
28
+ }
29
+ on(eventName, listener) {
30
+ const log = this.log.extend("on");
31
+ log('adding "%s" listener...', eventName);
32
+ if (this.readyState === "DEACTIVATED" /* DEACTIVATED */) {
33
+ log("the emitter is destroyed, skipping!");
34
+ return this;
35
+ }
36
+ return super.on(eventName, async (...args) => {
37
+ const queue = this.openListenerQueue(eventName);
38
+ log('awaiting the "%s" listener...', eventName);
39
+ queue.push({
40
+ args,
41
+ done: new Promise(async (resolve, reject) => {
42
+ try {
43
+ await listener(...args);
44
+ resolve();
45
+ log('"%s" listener has resolved!', eventName);
46
+ } catch (error) {
47
+ log('"%s" listener has rejected!', error);
48
+ reject(error);
49
+ }
50
+ })
51
+ });
52
+ });
53
+ }
54
+ emit(eventName, ...data) {
55
+ const log = this.log.extend("emit");
56
+ log('emitting "%s" event...', eventName);
57
+ if (this.readyState === "DEACTIVATED" /* DEACTIVATED */) {
58
+ log("the emitter is destroyed, skipping!");
59
+ return false;
60
+ }
61
+ if (this.isInternalEventName(eventName)) {
62
+ return super.emit(eventName, ...data);
63
+ }
64
+ this.openListenerQueue(eventName);
65
+ log('appending a one-time cleanup "%s" listener...', eventName);
66
+ this.once(eventName, () => {
67
+ nextTick(() => {
68
+ this.queue.delete(eventName);
69
+ log('cleaned up "%s" listeners queue!', eventName);
70
+ });
71
+ });
72
+ return super.emit(eventName, ...data);
73
+ }
74
+ async untilIdle(eventName, filter = () => true) {
75
+ const listenersQueue = this.queue.get(eventName) || [];
76
+ await Promise.all(
77
+ listenersQueue.filter(filter).map(({ done }) => done)
78
+ ).finally(() => {
79
+ this.queue.delete(eventName);
80
+ });
81
+ }
82
+ openListenerQueue(eventName) {
83
+ const log = this.log.extend("openListenerQueue");
84
+ log('opening "%s" listeners queue...', eventName);
85
+ const queue = this.queue.get(eventName);
86
+ if (!queue) {
87
+ log("no queue found, creating one...");
88
+ this.queue.set(eventName, []);
89
+ return [];
90
+ }
91
+ log("returning an exising queue:", queue);
92
+ return queue;
93
+ }
94
+ removeAllListeners(eventName) {
95
+ const log = this.log.extend("removeAllListeners");
96
+ log("event:", eventName);
97
+ if (eventName) {
98
+ this.queue.delete(eventName);
99
+ log(
100
+ 'cleared the "%s" listeners queue!',
101
+ eventName,
102
+ this.queue.get(eventName)
103
+ );
104
+ } else {
105
+ this.queue.clear();
106
+ log("cleared the listeners queue!", this.queue);
107
+ }
108
+ return super.removeAllListeners(eventName);
109
+ }
110
+ activate() {
111
+ const log = this.log.extend("activate");
112
+ this.readyState = "ACTIVE" /* ACTIVE */;
113
+ log("set state to:", this.readyState);
114
+ }
115
+ deactivate() {
116
+ const log = this.log.extend("deactivate");
117
+ log("removing all listeners...");
118
+ this.removeAllListeners();
119
+ this.readyState = "DEACTIVATED" /* DEACTIVATED */;
120
+ log("set state to:", this.readyState);
121
+ }
122
+ isInternalEventName(eventName) {
123
+ return eventName === "newListener" || eventName === "removeListener";
124
+ }
125
+ };
126
+
127
+ // src/Interceptor.ts
128
+ function getGlobalSymbol(symbol) {
129
+ return globalThis[symbol] || void 0;
130
+ }
131
+ function setGlobalSymbol(symbol, value) {
132
+ globalThis[symbol] = value;
133
+ }
134
+ function deleteGlobalSymbol(symbol) {
135
+ delete globalThis[symbol];
136
+ }
137
+ var InterceptorReadyState = /* @__PURE__ */ ((InterceptorReadyState2) => {
138
+ InterceptorReadyState2["INACTIVE"] = "INACTIVE";
139
+ InterceptorReadyState2["APPLYING"] = "APPLYING";
140
+ InterceptorReadyState2["APPLIED"] = "APPLIED";
141
+ InterceptorReadyState2["DISPOSING"] = "DISPOSING";
142
+ InterceptorReadyState2["DISPOSED"] = "DISPOSED";
143
+ return InterceptorReadyState2;
144
+ })(InterceptorReadyState || {});
145
+ var Interceptor = class {
146
+ constructor(symbol) {
147
+ this.symbol = symbol;
148
+ this.readyState = "INACTIVE" /* INACTIVE */;
149
+ this.emitter = new AsyncEventEmitter();
150
+ this.subscriptions = [];
151
+ this.log = debug2(symbol.description);
152
+ this.emitter.setMaxListeners(0);
153
+ this.log("constructing the interceptor...");
154
+ }
155
+ checkEnvironment() {
156
+ return true;
157
+ }
158
+ apply() {
159
+ const log = this.log.extend("apply");
160
+ log("applying the interceptor...");
161
+ if (this.readyState === "APPLIED" /* APPLIED */) {
162
+ log("intercepted already applied!");
163
+ return;
164
+ }
165
+ const shouldApply = this.checkEnvironment();
166
+ if (!shouldApply) {
167
+ log("the interceptor cannot be applied in this environment!");
168
+ return;
169
+ }
170
+ this.readyState = "APPLYING" /* APPLYING */;
171
+ this.emitter.activate();
172
+ log("activated the emiter!", this.emitter.readyState);
173
+ const runningInstance = this.getInstance();
174
+ if (runningInstance) {
175
+ log("found a running instance, reusing...");
176
+ this.on = (event, listener) => {
177
+ log('proxying the "%s" listener', event);
178
+ runningInstance.emitter.addListener(event, listener);
179
+ this.subscriptions.push(() => {
180
+ runningInstance.emitter.removeListener(event, listener);
181
+ log('removed proxied "%s" listener!', event);
182
+ });
183
+ };
184
+ nextTick(() => {
185
+ this.readyState = "APPLIED" /* APPLIED */;
186
+ });
187
+ return;
188
+ }
189
+ log("no running instance found, setting up a new instance...");
190
+ this.setup();
191
+ this.setInstance();
192
+ nextTick(() => {
193
+ this.readyState = "APPLIED" /* APPLIED */;
194
+ });
195
+ }
196
+ setup() {
197
+ }
198
+ on(eventName, listener) {
199
+ const log = this.log.extend("on");
200
+ if (this.readyState === "DISPOSING" /* DISPOSING */ || this.readyState === "DISPOSED" /* DISPOSED */) {
201
+ log("cannot listen to events, already disposed!");
202
+ return;
203
+ }
204
+ log('adding "%s" event listener:', eventName, listener.name);
205
+ this.emitter.on(eventName, listener);
206
+ }
207
+ dispose() {
208
+ const log = this.log.extend("dispose");
209
+ if (this.readyState === "DISPOSED" /* DISPOSED */) {
210
+ log("cannot dispose, already disposed!");
211
+ return;
212
+ }
213
+ log("disposing the interceptor...");
214
+ this.readyState = "DISPOSING" /* DISPOSING */;
215
+ if (!this.getInstance()) {
216
+ log("no interceptors running, skipping dispose...");
217
+ return;
218
+ }
219
+ this.clearInstance();
220
+ log("global symbol deleted:", getGlobalSymbol(this.symbol));
221
+ if (this.subscriptions.length > 0) {
222
+ log("disposing of %d subscriptions...", this.subscriptions.length);
223
+ for (const dispose of this.subscriptions) {
224
+ dispose();
225
+ }
226
+ this.subscriptions = [];
227
+ log("disposed of all subscriptions!", this.subscriptions.length);
228
+ }
229
+ this.emitter.deactivate();
230
+ log("destroyed the listener!");
231
+ nextTick(() => {
232
+ this.readyState = "DISPOSED" /* DISPOSED */;
233
+ });
234
+ }
235
+ getInstance() {
236
+ var _a;
237
+ const instance = getGlobalSymbol(this.symbol);
238
+ this.log("retrieved global instance:", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);
239
+ return instance;
240
+ }
241
+ setInstance() {
242
+ setGlobalSymbol(this.symbol, this);
243
+ this.log("set global instance!", this.symbol.description);
244
+ }
245
+ clearInstance() {
246
+ deleteGlobalSymbol(this.symbol);
247
+ this.log("cleared global instance!", this.symbol.description);
248
+ }
249
+ };
250
+
251
+ export {
252
+ __commonJS,
253
+ IS_PATCHED_MODULE,
254
+ getGlobalSymbol,
255
+ deleteGlobalSymbol,
256
+ InterceptorReadyState,
257
+ Interceptor
258
+ };