@mswjs/interceptors 0.19.5 → 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 (175) 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/interceptors/XMLHttpRequest/XMLHttpRequestController.ts +578 -0
  54. package/src/interceptors/XMLHttpRequest/XMLHttpRequestProxy.ts +111 -0
  55. package/src/interceptors/XMLHttpRequest/index.ts +12 -13
  56. package/src/shims/webEncoding.ts +9 -0
  57. package/src/utils/bufferUtils.ts +1 -1
  58. package/src/utils/createProxy.ts +78 -0
  59. package/lib/BatchInterceptor.d.ts +0 -18
  60. package/lib/BatchInterceptor.js +0 -34
  61. package/lib/BatchInterceptor.js.map +0 -1
  62. package/lib/Interceptor.d.ts +0 -50
  63. package/lib/Interceptor.js +0 -172
  64. package/lib/Interceptor.js.map +0 -1
  65. package/lib/RemoteHttpInterceptor.js +0 -158
  66. package/lib/RemoteHttpInterceptor.js.map +0 -1
  67. package/lib/glossary.d.ts +0 -7
  68. package/lib/glossary.js +0 -5
  69. package/lib/glossary.js.map +0 -1
  70. package/lib/index.d.ts +0 -5
  71. package/lib/index.js +0 -23
  72. package/lib/index.js.map +0 -1
  73. package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +0 -46
  74. package/lib/interceptors/ClientRequest/NodeClientRequest.js +0 -325
  75. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +0 -1
  76. package/lib/interceptors/ClientRequest/http.get.d.ts +0 -4
  77. package/lib/interceptors/ClientRequest/http.get.js +0 -19
  78. package/lib/interceptors/ClientRequest/http.get.js.map +0 -1
  79. package/lib/interceptors/ClientRequest/http.request.d.ts +0 -4
  80. package/lib/interceptors/ClientRequest/http.request.js +0 -16
  81. package/lib/interceptors/ClientRequest/http.request.js.map +0 -1
  82. package/lib/interceptors/ClientRequest/index.d.ts +0 -19
  83. package/lib/interceptors/ClientRequest/index.js +0 -50
  84. package/lib/interceptors/ClientRequest/index.js.map +0 -1
  85. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.d.ts +0 -10
  86. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +0 -60
  87. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +0 -1
  88. package/lib/interceptors/ClientRequest/utils/createRequest.d.ts +0 -6
  89. package/lib/interceptors/ClientRequest/utils/createRequest.js +0 -30
  90. package/lib/interceptors/ClientRequest/utils/createRequest.js.map +0 -1
  91. package/lib/interceptors/ClientRequest/utils/createResponse.d.ts +0 -8
  92. package/lib/interceptors/ClientRequest/utils/createResponse.js +0 -24
  93. package/lib/interceptors/ClientRequest/utils/createResponse.js.map +0 -1
  94. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.d.ts +0 -3
  95. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +0 -57
  96. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +0 -1
  97. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.d.ts +0 -17
  98. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +0 -151
  99. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +0 -1
  100. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.d.ts +0 -15
  101. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js +0 -33
  102. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js.map +0 -1
  103. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.d.ts +0 -13
  104. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +0 -20
  105. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +0 -1
  106. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.d.ts +0 -93
  107. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js +0 -442
  108. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js.map +0 -1
  109. package/lib/interceptors/XMLHttpRequest/index.d.ts +0 -12
  110. package/lib/interceptors/XMLHttpRequest/index.js +0 -43
  111. package/lib/interceptors/XMLHttpRequest/index.js.map +0 -1
  112. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.d.ts +0 -31
  113. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js +0 -44
  114. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js.map +0 -1
  115. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.d.ts +0 -8
  116. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js +0 -15
  117. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js.map +0 -1
  118. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.d.ts +0 -4
  119. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js +0 -14
  120. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js.map +0 -1
  121. package/lib/interceptors/XMLHttpRequest/utils/createEvent.d.ts +0 -2
  122. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js +0 -37
  123. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js.map +0 -1
  124. package/lib/interceptors/XMLHttpRequest/utils/createResponse.d.ts +0 -2
  125. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js +0 -14
  126. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js.map +0 -1
  127. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.d.ts +0 -1
  128. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js +0 -17
  129. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js.map +0 -1
  130. package/lib/interceptors/fetch/index.d.ts +0 -8
  131. package/lib/interceptors/fetch/index.js +0 -81
  132. package/lib/interceptors/fetch/index.js.map +0 -1
  133. package/lib/presets/browser.d.ts +0 -8
  134. package/lib/presets/browser.js +0 -10
  135. package/lib/presets/browser.js.map +0 -1
  136. package/lib/presets/node.d.ts +0 -8
  137. package/lib/presets/node.js +0 -10
  138. package/lib/presets/node.js.map +0 -1
  139. package/lib/utils/AsyncEventEmitter.d.ts +0 -33
  140. package/lib/utils/AsyncEventEmitter.js +0 -148
  141. package/lib/utils/AsyncEventEmitter.js.map +0 -1
  142. package/lib/utils/bufferUtils.d.ts +0 -8
  143. package/lib/utils/bufferUtils.js +0 -24
  144. package/lib/utils/bufferUtils.js.map +0 -1
  145. package/lib/utils/cloneObject.d.ts +0 -1
  146. package/lib/utils/cloneObject.js +0 -28
  147. package/lib/utils/cloneObject.js.map +0 -1
  148. package/lib/utils/createLazyCallback.d.ts +0 -11
  149. package/lib/utils/createLazyCallback.js +0 -40
  150. package/lib/utils/createLazyCallback.js.map +0 -1
  151. package/lib/utils/getCleanUrl.d.ts +0 -4
  152. package/lib/utils/getCleanUrl.js +0 -11
  153. package/lib/utils/getCleanUrl.js.map +0 -1
  154. package/lib/utils/getRequestOptionsByUrl.d.ts +0 -8
  155. package/lib/utils/getRequestOptionsByUrl.js +0 -28
  156. package/lib/utils/getRequestOptionsByUrl.js.map +0 -1
  157. package/lib/utils/getUrlByRequestOptions.d.ts +0 -11
  158. package/lib/utils/getUrlByRequestOptions.js +0 -78
  159. package/lib/utils/getUrlByRequestOptions.js.map +0 -1
  160. package/lib/utils/isObject.d.ts +0 -4
  161. package/lib/utils/isObject.js +0 -11
  162. package/lib/utils/isObject.js.map +0 -1
  163. package/lib/utils/nextTick.d.ts +0 -2
  164. package/lib/utils/nextTick.js +0 -16
  165. package/lib/utils/nextTick.js.map +0 -1
  166. package/lib/utils/parseJson.d.ts +0 -5
  167. package/lib/utils/parseJson.js +0 -18
  168. package/lib/utils/parseJson.js.map +0 -1
  169. package/lib/utils/toInteractiveRequest.d.ts +0 -7
  170. package/lib/utils/toInteractiveRequest.js +0 -20
  171. package/lib/utils/toInteractiveRequest.js.map +0 -1
  172. package/lib/utils/uuid.d.ts +0 -1
  173. package/lib/utils/uuid.js +0 -12
  174. package/lib/utils/uuid.js.map +0 -1
  175. package/src/interceptors/XMLHttpRequest/XMLHttpRequestOverride.ts +0 -684
@@ -0,0 +1,291 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
8
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
9
+ }) : x)(function(x) {
10
+ if (typeof require !== "undefined")
11
+ return require.apply(this, arguments);
12
+ throw new Error('Dynamic require of "' + x + '" is not supported');
13
+ });
14
+ var __esm = (fn, res) => function __init() {
15
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
16
+ };
17
+ var __commonJS = (cb, mod) => function __require2() {
18
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
19
+ };
20
+ var __export = (target, all) => {
21
+ for (var name in all)
22
+ __defProp(target, name, { get: all[name], enumerable: true });
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
+ }
30
+ return to;
31
+ };
32
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
33
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
34
+ mod
35
+ ));
36
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
+
38
+ // src/Interceptor.ts
39
+ var _debug = require('debug');
40
+
41
+ // src/utils/AsyncEventEmitter.ts
42
+
43
+ var _stricteventemitter = require('strict-event-emitter');
44
+
45
+ // src/utils/nextTick.ts
46
+ function nextTick(callback) {
47
+ setTimeout(callback, 0);
48
+ }
49
+
50
+ // src/utils/AsyncEventEmitter.ts
51
+ var AsyncEventEmitter = class extends _stricteventemitter.Emitter {
52
+ constructor() {
53
+ super();
54
+ this.log = _debug.debug.call(void 0, "async-event-emitter");
55
+ this.queue = /* @__PURE__ */ new Map();
56
+ this.readyState = "ACTIVE" /* ACTIVE */;
57
+ }
58
+ on(eventName, listener) {
59
+ const log = this.log.extend("on");
60
+ log('adding "%s" listener...', eventName);
61
+ if (this.readyState === "DEACTIVATED" /* DEACTIVATED */) {
62
+ log("the emitter is destroyed, skipping!");
63
+ return this;
64
+ }
65
+ return super.on(eventName, async (...args) => {
66
+ const queue = this.openListenerQueue(eventName);
67
+ log('awaiting the "%s" listener...', eventName);
68
+ queue.push({
69
+ args,
70
+ done: new Promise(async (resolve, reject) => {
71
+ try {
72
+ await listener(...args);
73
+ resolve();
74
+ log('"%s" listener has resolved!', eventName);
75
+ } catch (error) {
76
+ log('"%s" listener has rejected!', error);
77
+ reject(error);
78
+ }
79
+ })
80
+ });
81
+ });
82
+ }
83
+ emit(eventName, ...data) {
84
+ const log = this.log.extend("emit");
85
+ log('emitting "%s" event...', eventName);
86
+ if (this.readyState === "DEACTIVATED" /* DEACTIVATED */) {
87
+ log("the emitter is destroyed, skipping!");
88
+ return false;
89
+ }
90
+ if (this.isInternalEventName(eventName)) {
91
+ return super.emit(eventName, ...data);
92
+ }
93
+ this.openListenerQueue(eventName);
94
+ log('appending a one-time cleanup "%s" listener...', eventName);
95
+ this.once(eventName, () => {
96
+ nextTick(() => {
97
+ this.queue.delete(eventName);
98
+ log('cleaned up "%s" listeners queue!', eventName);
99
+ });
100
+ });
101
+ return super.emit(eventName, ...data);
102
+ }
103
+ async untilIdle(eventName, filter = () => true) {
104
+ const listenersQueue = this.queue.get(eventName) || [];
105
+ await Promise.all(
106
+ listenersQueue.filter(filter).map(({ done }) => done)
107
+ ).finally(() => {
108
+ this.queue.delete(eventName);
109
+ });
110
+ }
111
+ openListenerQueue(eventName) {
112
+ const log = this.log.extend("openListenerQueue");
113
+ log('opening "%s" listeners queue...', eventName);
114
+ const queue = this.queue.get(eventName);
115
+ if (!queue) {
116
+ log("no queue found, creating one...");
117
+ this.queue.set(eventName, []);
118
+ return [];
119
+ }
120
+ log("returning an exising queue:", queue);
121
+ return queue;
122
+ }
123
+ removeAllListeners(eventName) {
124
+ const log = this.log.extend("removeAllListeners");
125
+ log("event:", eventName);
126
+ if (eventName) {
127
+ this.queue.delete(eventName);
128
+ log(
129
+ 'cleared the "%s" listeners queue!',
130
+ eventName,
131
+ this.queue.get(eventName)
132
+ );
133
+ } else {
134
+ this.queue.clear();
135
+ log("cleared the listeners queue!", this.queue);
136
+ }
137
+ return super.removeAllListeners(eventName);
138
+ }
139
+ activate() {
140
+ const log = this.log.extend("activate");
141
+ this.readyState = "ACTIVE" /* ACTIVE */;
142
+ log("set state to:", this.readyState);
143
+ }
144
+ deactivate() {
145
+ const log = this.log.extend("deactivate");
146
+ log("removing all listeners...");
147
+ this.removeAllListeners();
148
+ this.readyState = "DEACTIVATED" /* DEACTIVATED */;
149
+ log("set state to:", this.readyState);
150
+ }
151
+ isInternalEventName(eventName) {
152
+ return eventName === "newListener" || eventName === "removeListener";
153
+ }
154
+ };
155
+
156
+ // src/Interceptor.ts
157
+ function getGlobalSymbol(symbol) {
158
+ return globalThis[symbol] || void 0;
159
+ }
160
+ function setGlobalSymbol(symbol, value) {
161
+ globalThis[symbol] = value;
162
+ }
163
+ function deleteGlobalSymbol(symbol) {
164
+ delete globalThis[symbol];
165
+ }
166
+ var InterceptorReadyState = /* @__PURE__ */ ((InterceptorReadyState2) => {
167
+ InterceptorReadyState2["INACTIVE"] = "INACTIVE";
168
+ InterceptorReadyState2["APPLYING"] = "APPLYING";
169
+ InterceptorReadyState2["APPLIED"] = "APPLIED";
170
+ InterceptorReadyState2["DISPOSING"] = "DISPOSING";
171
+ InterceptorReadyState2["DISPOSED"] = "DISPOSED";
172
+ return InterceptorReadyState2;
173
+ })(InterceptorReadyState || {});
174
+ var Interceptor = class {
175
+ constructor(symbol) {
176
+ this.symbol = symbol;
177
+ this.readyState = "INACTIVE" /* INACTIVE */;
178
+ this.emitter = new AsyncEventEmitter();
179
+ this.subscriptions = [];
180
+ this.log = _debug.debug.call(void 0, symbol.description);
181
+ this.emitter.setMaxListeners(0);
182
+ this.log("constructing the interceptor...");
183
+ }
184
+ checkEnvironment() {
185
+ return true;
186
+ }
187
+ apply() {
188
+ const log = this.log.extend("apply");
189
+ log("applying the interceptor...");
190
+ if (this.readyState === "APPLIED" /* APPLIED */) {
191
+ log("intercepted already applied!");
192
+ return;
193
+ }
194
+ const shouldApply = this.checkEnvironment();
195
+ if (!shouldApply) {
196
+ log("the interceptor cannot be applied in this environment!");
197
+ return;
198
+ }
199
+ this.readyState = "APPLYING" /* APPLYING */;
200
+ this.emitter.activate();
201
+ log("activated the emiter!", this.emitter.readyState);
202
+ const runningInstance = this.getInstance();
203
+ if (runningInstance) {
204
+ log("found a running instance, reusing...");
205
+ this.on = (event, listener) => {
206
+ log('proxying the "%s" listener', event);
207
+ runningInstance.emitter.addListener(event, listener);
208
+ this.subscriptions.push(() => {
209
+ runningInstance.emitter.removeListener(event, listener);
210
+ log('removed proxied "%s" listener!', event);
211
+ });
212
+ };
213
+ nextTick(() => {
214
+ this.readyState = "APPLIED" /* APPLIED */;
215
+ });
216
+ return;
217
+ }
218
+ log("no running instance found, setting up a new instance...");
219
+ this.setup();
220
+ this.setInstance();
221
+ nextTick(() => {
222
+ this.readyState = "APPLIED" /* APPLIED */;
223
+ });
224
+ }
225
+ setup() {
226
+ }
227
+ on(eventName, listener) {
228
+ const log = this.log.extend("on");
229
+ if (this.readyState === "DISPOSING" /* DISPOSING */ || this.readyState === "DISPOSED" /* DISPOSED */) {
230
+ log("cannot listen to events, already disposed!");
231
+ return;
232
+ }
233
+ log('adding "%s" event listener:', eventName, listener.name);
234
+ this.emitter.on(eventName, listener);
235
+ }
236
+ dispose() {
237
+ const log = this.log.extend("dispose");
238
+ if (this.readyState === "DISPOSED" /* DISPOSED */) {
239
+ log("cannot dispose, already disposed!");
240
+ return;
241
+ }
242
+ log("disposing the interceptor...");
243
+ this.readyState = "DISPOSING" /* DISPOSING */;
244
+ if (!this.getInstance()) {
245
+ log("no interceptors running, skipping dispose...");
246
+ return;
247
+ }
248
+ this.clearInstance();
249
+ log("global symbol deleted:", getGlobalSymbol(this.symbol));
250
+ if (this.subscriptions.length > 0) {
251
+ log("disposing of %d subscriptions...", this.subscriptions.length);
252
+ for (const dispose of this.subscriptions) {
253
+ dispose();
254
+ }
255
+ this.subscriptions = [];
256
+ log("disposed of all subscriptions!", this.subscriptions.length);
257
+ }
258
+ this.emitter.deactivate();
259
+ log("destroyed the listener!");
260
+ nextTick(() => {
261
+ this.readyState = "DISPOSED" /* DISPOSED */;
262
+ });
263
+ }
264
+ getInstance() {
265
+ var _a;
266
+ const instance = getGlobalSymbol(this.symbol);
267
+ this.log("retrieved global instance:", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);
268
+ return instance;
269
+ }
270
+ setInstance() {
271
+ setGlobalSymbol(this.symbol, this);
272
+ this.log("set global instance!", this.symbol.description);
273
+ }
274
+ clearInstance() {
275
+ deleteGlobalSymbol(this.symbol);
276
+ this.log("cleared global instance!", this.symbol.description);
277
+ }
278
+ };
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+ exports.__require = __require; exports.__esm = __esm; exports.__commonJS = __commonJS; exports.__export = __export; exports.__toESM = __toESM; exports.__toCommonJS = __toCommonJS; exports.getGlobalSymbol = getGlobalSymbol; exports.deleteGlobalSymbol = deleteGlobalSymbol; exports.InterceptorReadyState = InterceptorReadyState; exports.Interceptor = Interceptor;
@@ -0,0 +1,64 @@
1
+ // src/utils/toInteractiveRequest.ts
2
+ import { format } from "outvariant";
3
+
4
+ // src/utils/createLazyCallback.ts
5
+ function createLazyCallback(options = {}) {
6
+ let calledTimes = 0;
7
+ let autoResolveTimeout;
8
+ let remoteResolve;
9
+ const callPromise = new Promise((resolve) => {
10
+ remoteResolve = resolve;
11
+ }).finally(() => {
12
+ clearTimeout(autoResolveTimeout);
13
+ });
14
+ const fn = function(...args) {
15
+ var _a;
16
+ if (options.maxCalls && calledTimes >= options.maxCalls) {
17
+ (_a = options.maxCallsCallback) == null ? void 0 : _a.call(options);
18
+ }
19
+ remoteResolve(args);
20
+ calledTimes++;
21
+ };
22
+ fn.invoked = async () => {
23
+ autoResolveTimeout = setTimeout(() => {
24
+ remoteResolve([]);
25
+ }, 0);
26
+ return callPromise;
27
+ };
28
+ return fn;
29
+ }
30
+
31
+ // src/utils/toInteractiveRequest.ts
32
+ function toInteractiveRequest(request) {
33
+ Object.defineProperty(request, "respondWith", {
34
+ writable: false,
35
+ enumerable: true,
36
+ value: createLazyCallback({
37
+ maxCalls: 1,
38
+ maxCallsCallback() {
39
+ throw new Error(
40
+ format(
41
+ 'Failed to respond to "%s %s" request: the "request" event has already been responded to.',
42
+ request.method,
43
+ request.url
44
+ )
45
+ );
46
+ }
47
+ })
48
+ });
49
+ return request;
50
+ }
51
+
52
+ // src/utils/uuid.ts
53
+ function uuidv4() {
54
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
55
+ const r = Math.random() * 16 | 0;
56
+ const v = c == "x" ? r : r & 3 | 8;
57
+ return v.toString(16);
58
+ });
59
+ }
60
+
61
+ export {
62
+ toInteractiveRequest,
63
+ uuidv4
64
+ };