@mswjs/interceptors 0.40.0 → 0.41.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/ClientRequest/package.json +7 -2
- package/RemoteHttpInterceptor/package.json +7 -2
- package/WebSocket/package.json +9 -2
- package/XMLHttpRequest/package.json +9 -3
- package/fetch/package.json +9 -3
- package/lib/browser/Interceptor-2mUoKZL1.d.mts +65 -0
- package/lib/browser/Interceptor-Deczogc8.d.cts +65 -0
- package/lib/browser/XMLHttpRequest-BUfglQD1.cjs +761 -0
- package/lib/browser/XMLHttpRequest-BUfglQD1.cjs.map +1 -0
- package/lib/browser/XMLHttpRequest-DS5fc8Qs.mjs +756 -0
- package/lib/browser/XMLHttpRequest-DS5fc8Qs.mjs.map +1 -0
- package/lib/browser/bufferUtils-BiiO6HZv.mjs +20 -0
- package/lib/browser/bufferUtils-BiiO6HZv.mjs.map +1 -0
- package/lib/browser/bufferUtils-Uc0eRItL.cjs +38 -0
- package/lib/browser/bufferUtils-Uc0eRItL.cjs.map +1 -0
- package/lib/browser/createRequestId-Cs4oXfa1.cjs +205 -0
- package/lib/browser/createRequestId-Cs4oXfa1.cjs.map +1 -0
- package/lib/browser/createRequestId-DQcIlohW.mjs +170 -0
- package/lib/browser/createRequestId-DQcIlohW.mjs.map +1 -0
- package/lib/browser/fetch-BHcqM3z7.cjs +253 -0
- package/lib/browser/fetch-BHcqM3z7.cjs.map +1 -0
- package/lib/browser/fetch-DSJoynSF.mjs +248 -0
- package/lib/browser/fetch-DSJoynSF.mjs.map +1 -0
- package/lib/browser/getRawRequest-BTaNLFr0.mjs +218 -0
- package/lib/browser/getRawRequest-BTaNLFr0.mjs.map +1 -0
- package/lib/browser/getRawRequest-zx8rUJL2.cjs +259 -0
- package/lib/browser/getRawRequest-zx8rUJL2.cjs.map +1 -0
- package/lib/browser/glossary-BdLS4k1H.d.cts +70 -0
- package/lib/browser/glossary-gEEJhK4S.d.mts +70 -0
- package/lib/browser/handleRequest-DI6a7Dty.cjs +189 -0
- package/lib/browser/handleRequest-DI6a7Dty.cjs.map +1 -0
- package/lib/browser/handleRequest-DxGbCTbb.mjs +178 -0
- package/lib/browser/handleRequest-DxGbCTbb.mjs.map +1 -0
- package/lib/browser/hasConfigurableGlobal-C8kXFDic.mjs +33 -0
- package/lib/browser/hasConfigurableGlobal-C8kXFDic.mjs.map +1 -0
- package/lib/browser/hasConfigurableGlobal-D7S3l5h6.cjs +45 -0
- package/lib/browser/hasConfigurableGlobal-D7S3l5h6.cjs.map +1 -0
- package/lib/browser/index.cjs +68 -0
- package/lib/browser/index.cjs.map +1 -0
- package/lib/browser/index.d.cts +87 -0
- package/lib/browser/index.d.mts +87 -0
- package/lib/browser/index.mjs +49 -77
- package/lib/browser/index.mjs.map +1 -1
- package/lib/browser/interceptors/WebSocket/index.cjs +621 -0
- package/lib/browser/interceptors/WebSocket/index.cjs.map +1 -0
- package/lib/browser/interceptors/WebSocket/index.d.cts +277 -0
- package/lib/browser/interceptors/WebSocket/index.d.mts +277 -0
- package/lib/browser/interceptors/WebSocket/index.mjs +587 -694
- package/lib/browser/interceptors/WebSocket/index.mjs.map +1 -1
- package/lib/browser/interceptors/XMLHttpRequest/index.cjs +7 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.d.cts +15 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.d.mts +15 -0
- package/lib/browser/interceptors/XMLHttpRequest/index.mjs +7 -12
- package/lib/browser/interceptors/fetch/index.cjs +6 -0
- package/lib/browser/interceptors/fetch/index.d.cts +13 -0
- package/lib/browser/interceptors/fetch/index.d.mts +13 -0
- package/lib/browser/interceptors/fetch/index.mjs +6 -11
- package/lib/browser/presets/browser.cjs +17 -0
- package/lib/browser/presets/browser.cjs.map +1 -0
- package/lib/browser/presets/browser.d.cts +12 -0
- package/lib/browser/presets/browser.d.mts +14 -0
- package/lib/browser/presets/browser.mjs +15 -19
- package/lib/browser/presets/browser.mjs.map +1 -1
- package/lib/node/BatchInterceptor-3LnAnLTx.cjs +49 -0
- package/lib/node/BatchInterceptor-3LnAnLTx.cjs.map +1 -0
- package/lib/node/BatchInterceptor-D7mXzHcQ.d.mts +26 -0
- package/lib/node/BatchInterceptor-DFaBPilf.mjs +44 -0
- package/lib/node/BatchInterceptor-DFaBPilf.mjs.map +1 -0
- package/lib/node/BatchInterceptor-D_YqR8qU.d.cts +26 -0
- package/lib/node/ClientRequest-2rDe54Ui.cjs +1043 -0
- package/lib/node/ClientRequest-2rDe54Ui.cjs.map +1 -0
- package/lib/node/ClientRequest-Ca8Qykuv.mjs +1034 -0
- package/lib/node/ClientRequest-Ca8Qykuv.mjs.map +1 -0
- package/lib/node/Interceptor-DEazpLJd.d.mts +133 -0
- package/lib/node/Interceptor-DJ2akVWI.d.cts +133 -0
- package/lib/node/RemoteHttpInterceptor.cjs +154 -0
- package/lib/node/RemoteHttpInterceptor.cjs.map +1 -0
- package/lib/node/RemoteHttpInterceptor.d.cts +39 -0
- package/lib/node/RemoteHttpInterceptor.d.mts +39 -0
- package/lib/node/RemoteHttpInterceptor.mjs +145 -190
- package/lib/node/RemoteHttpInterceptor.mjs.map +1 -1
- package/lib/node/XMLHttpRequest-B7kJdYYI.cjs +763 -0
- package/lib/node/XMLHttpRequest-B7kJdYYI.cjs.map +1 -0
- package/lib/node/XMLHttpRequest-C8dIZpds.mjs +757 -0
- package/lib/node/XMLHttpRequest-C8dIZpds.mjs.map +1 -0
- package/lib/node/bufferUtils-DiCTqG-7.cjs +38 -0
- package/lib/node/bufferUtils-DiCTqG-7.cjs.map +1 -0
- package/lib/node/bufferUtils-_8XfKIfX.mjs +20 -0
- package/lib/node/bufferUtils-_8XfKIfX.mjs.map +1 -0
- package/lib/node/chunk-CbDLau6x.cjs +34 -0
- package/lib/node/fetch-BmXpK10r.cjs +272 -0
- package/lib/node/fetch-BmXpK10r.cjs.map +1 -0
- package/lib/node/fetch-G1DVwDKG.mjs +265 -0
- package/lib/node/fetch-G1DVwDKG.mjs.map +1 -0
- package/lib/node/fetchUtils-BaY5iWXw.cjs +419 -0
- package/lib/node/fetchUtils-BaY5iWXw.cjs.map +1 -0
- package/lib/node/fetchUtils-CoU35g3M.mjs +359 -0
- package/lib/node/fetchUtils-CoU35g3M.mjs.map +1 -0
- package/lib/node/getRawRequest-BavnMWh_.cjs +36 -0
- package/lib/node/getRawRequest-BavnMWh_.cjs.map +1 -0
- package/lib/node/getRawRequest-DnwmXyOW.mjs +24 -0
- package/lib/node/getRawRequest-DnwmXyOW.mjs.map +1 -0
- package/lib/node/glossary-BLKRyLBd.cjs +12 -0
- package/lib/node/glossary-BLKRyLBd.cjs.map +1 -0
- package/lib/node/glossary-glQBRnVD.mjs +6 -0
- package/lib/node/glossary-glQBRnVD.mjs.map +1 -0
- package/lib/node/handleRequest-Bb7Y-XLw.cjs +220 -0
- package/lib/node/handleRequest-Bb7Y-XLw.cjs.map +1 -0
- package/lib/node/handleRequest-Y97UwBbF.mjs +190 -0
- package/lib/node/handleRequest-Y97UwBbF.mjs.map +1 -0
- package/lib/node/hasConfigurableGlobal-C97fWuaA.cjs +26 -0
- package/lib/node/hasConfigurableGlobal-C97fWuaA.cjs.map +1 -0
- package/lib/node/hasConfigurableGlobal-DBJA0vjm.mjs +20 -0
- package/lib/node/hasConfigurableGlobal-DBJA0vjm.mjs.map +1 -0
- package/lib/node/index-BMbJ8FXL.d.cts +113 -0
- package/lib/node/index-C0YAQ36w.d.mts +113 -0
- package/lib/node/index.cjs +30 -0
- package/lib/node/index.cjs.map +1 -0
- package/lib/node/index.d.cts +66 -0
- package/lib/node/index.d.mts +66 -0
- package/lib/node/index.mjs +13 -41
- package/lib/node/index.mjs.map +1 -1
- package/lib/node/interceptors/ClientRequest/index.cjs +6 -0
- package/lib/node/interceptors/ClientRequest/index.d.cts +2 -0
- package/lib/node/interceptors/ClientRequest/index.d.mts +3 -0
- package/lib/node/interceptors/ClientRequest/index.mjs +6 -11
- package/lib/node/interceptors/XMLHttpRequest/index.cjs +6 -0
- package/lib/node/interceptors/XMLHttpRequest/index.d.cts +14 -0
- package/lib/node/interceptors/XMLHttpRequest/index.d.mts +14 -0
- package/lib/node/interceptors/XMLHttpRequest/index.mjs +6 -13
- package/lib/node/interceptors/fetch/index.cjs +5 -0
- package/lib/node/interceptors/fetch/index.d.cts +12 -0
- package/lib/node/interceptors/fetch/index.d.mts +12 -0
- package/lib/node/interceptors/fetch/index.mjs +5 -12
- package/lib/node/node-DwCc6iuP.mjs +27 -0
- package/lib/node/node-DwCc6iuP.mjs.map +1 -0
- package/lib/node/node-dKdAf3tC.cjs +39 -0
- package/lib/node/node-dKdAf3tC.cjs.map +1 -0
- package/lib/node/presets/node.cjs +22 -0
- package/lib/node/presets/node.cjs.map +1 -0
- package/lib/node/presets/node.d.cts +13 -0
- package/lib/node/presets/node.d.mts +15 -0
- package/lib/node/presets/node.mjs +18 -23
- package/lib/node/presets/node.mjs.map +1 -1
- package/lib/node/utils/node/index.cjs +4 -0
- package/lib/node/utils/node/{index.d.ts → index.d.cts} +5 -2
- package/lib/node/utils/node/index.d.mts +16 -0
- package/lib/node/utils/node/index.mjs +3 -10
- package/package.json +33 -59
- package/presets/browser/package.json +2 -3
- package/presets/node/package.json +7 -2
- package/src/interceptors/ClientRequest/MockHttpSocket.ts +21 -8
- package/src/interceptors/ClientRequest/utils/parserUtils.ts +48 -0
- package/src/interceptors/WebSocket/index.ts +4 -1
- package/src/interceptors/XMLHttpRequest/utils/getBodyByteLength.test.ts +2 -2
- package/lib/browser/Interceptor-af98b768.d.ts +0 -63
- package/lib/browser/chunk-2HUMWGRD.js +0 -37
- package/lib/browser/chunk-2HUMWGRD.js.map +0 -1
- package/lib/browser/chunk-2MCNQOY3.js +0 -851
- package/lib/browser/chunk-2MCNQOY3.js.map +0 -1
- package/lib/browser/chunk-57RIRQUY.js +0 -218
- package/lib/browser/chunk-57RIRQUY.js.map +0 -1
- package/lib/browser/chunk-6HYIRFX2.mjs +0 -22
- package/lib/browser/chunk-6HYIRFX2.mjs.map +0 -1
- package/lib/browser/chunk-FW45TRCB.js +0 -178
- package/lib/browser/chunk-FW45TRCB.js.map +0 -1
- package/lib/browser/chunk-JQ2S7G56.js +0 -185
- package/lib/browser/chunk-JQ2S7G56.js.map +0 -1
- package/lib/browser/chunk-LIKZF2VU.mjs +0 -218
- package/lib/browser/chunk-LIKZF2VU.mjs.map +0 -1
- package/lib/browser/chunk-LK6DILFK.js +0 -22
- package/lib/browser/chunk-LK6DILFK.js.map +0 -1
- package/lib/browser/chunk-MNT2FUCH.js +0 -301
- package/lib/browser/chunk-MNT2FUCH.js.map +0 -1
- package/lib/browser/chunk-VOUOVDAW.mjs +0 -178
- package/lib/browser/chunk-VOUOVDAW.mjs.map +0 -1
- package/lib/browser/chunk-VYSDLBSS.mjs +0 -37
- package/lib/browser/chunk-VYSDLBSS.mjs.map +0 -1
- package/lib/browser/chunk-WADP6VHN.mjs +0 -851
- package/lib/browser/chunk-WADP6VHN.mjs.map +0 -1
- package/lib/browser/chunk-WOWPV4GR.mjs +0 -301
- package/lib/browser/chunk-WOWPV4GR.mjs.map +0 -1
- package/lib/browser/chunk-Z5TSB3T6.mjs +0 -185
- package/lib/browser/chunk-Z5TSB3T6.mjs.map +0 -1
- package/lib/browser/glossary-f7ee1c9d.d.ts +0 -74
- package/lib/browser/index.d.ts +0 -82
- package/lib/browser/index.js +0 -83
- package/lib/browser/index.js.map +0 -1
- package/lib/browser/interceptors/WebSocket/index.d.ts +0 -271
- package/lib/browser/interceptors/WebSocket/index.js +0 -721
- package/lib/browser/interceptors/WebSocket/index.js.map +0 -1
- package/lib/browser/interceptors/XMLHttpRequest/index.d.ts +0 -14
- package/lib/browser/interceptors/XMLHttpRequest/index.js +0 -12
- package/lib/browser/interceptors/XMLHttpRequest/index.js.map +0 -1
- package/lib/browser/interceptors/XMLHttpRequest/index.mjs.map +0 -1
- package/lib/browser/interceptors/fetch/index.d.ts +0 -13
- package/lib/browser/interceptors/fetch/index.js +0 -11
- package/lib/browser/interceptors/fetch/index.js.map +0 -1
- package/lib/browser/interceptors/fetch/index.mjs.map +0 -1
- package/lib/browser/presets/browser.d.ts +0 -14
- package/lib/browser/presets/browser.js +0 -21
- package/lib/browser/presets/browser.js.map +0 -1
- package/lib/node/BatchInterceptor-cb9a2eee.d.ts +0 -24
- package/lib/node/Interceptor-dc0a39b5.d.ts +0 -136
- package/lib/node/RemoteHttpInterceptor.d.ts +0 -44
- package/lib/node/RemoteHttpInterceptor.js +0 -197
- package/lib/node/RemoteHttpInterceptor.js.map +0 -1
- package/lib/node/chunk-5UGIB6OX.mjs +0 -1126
- package/lib/node/chunk-5UGIB6OX.mjs.map +0 -1
- package/lib/node/chunk-5V3SIIW2.mjs +0 -853
- package/lib/node/chunk-5V3SIIW2.mjs.map +0 -1
- package/lib/node/chunk-6B3ZQOO2.js +0 -853
- package/lib/node/chunk-6B3ZQOO2.js.map +0 -1
- package/lib/node/chunk-6HYIRFX2.mjs +0 -22
- package/lib/node/chunk-6HYIRFX2.mjs.map +0 -1
- package/lib/node/chunk-6YM4PLBI.mjs +0 -7
- package/lib/node/chunk-6YM4PLBI.mjs.map +0 -1
- package/lib/node/chunk-73NOP3T5.js +0 -7
- package/lib/node/chunk-73NOP3T5.js.map +0 -1
- package/lib/node/chunk-7Q53NNPV.js +0 -189
- package/lib/node/chunk-7Q53NNPV.js.map +0 -1
- package/lib/node/chunk-DOWWQYXZ.js +0 -369
- package/lib/node/chunk-DOWWQYXZ.js.map +0 -1
- package/lib/node/chunk-FRZQJNBO.js +0 -318
- package/lib/node/chunk-FRZQJNBO.js.map +0 -1
- package/lib/node/chunk-GKN5RBVR.mjs +0 -32
- package/lib/node/chunk-GKN5RBVR.mjs.map +0 -1
- package/lib/node/chunk-J5MULIHT.js +0 -51
- package/lib/node/chunk-J5MULIHT.js.map +0 -1
- package/lib/node/chunk-JXGB54LE.mjs +0 -369
- package/lib/node/chunk-JXGB54LE.mjs.map +0 -1
- package/lib/node/chunk-LK6DILFK.js +0 -22
- package/lib/node/chunk-LK6DILFK.js.map +0 -1
- package/lib/node/chunk-OFW5L5ET.mjs +0 -318
- package/lib/node/chunk-OFW5L5ET.mjs.map +0 -1
- package/lib/node/chunk-PFGO5BSM.js +0 -25
- package/lib/node/chunk-PFGO5BSM.js.map +0 -1
- package/lib/node/chunk-R6T7CL5E.mjs +0 -189
- package/lib/node/chunk-R6T7CL5E.mjs.map +0 -1
- package/lib/node/chunk-SQ6RHTJR.mjs +0 -51
- package/lib/node/chunk-SQ6RHTJR.mjs.map +0 -1
- package/lib/node/chunk-SRMAQGPM.js +0 -30
- package/lib/node/chunk-SRMAQGPM.js.map +0 -1
- package/lib/node/chunk-T3TW4P64.js +0 -32
- package/lib/node/chunk-T3TW4P64.js.map +0 -1
- package/lib/node/chunk-TX5GBTFY.mjs +0 -25
- package/lib/node/chunk-TX5GBTFY.mjs.map +0 -1
- package/lib/node/chunk-VYO5XDY2.js +0 -1126
- package/lib/node/chunk-VYO5XDY2.js.map +0 -1
- package/lib/node/chunk-YWNGXXUQ.mjs +0 -30
- package/lib/node/chunk-YWNGXXUQ.mjs.map +0 -1
- package/lib/node/index.d.ts +0 -61
- package/lib/node/index.js +0 -45
- package/lib/node/index.js.map +0 -1
- package/lib/node/interceptors/ClientRequest/index.d.ts +0 -110
- package/lib/node/interceptors/ClientRequest/index.js +0 -11
- package/lib/node/interceptors/ClientRequest/index.js.map +0 -1
- package/lib/node/interceptors/ClientRequest/index.mjs.map +0 -1
- package/lib/node/interceptors/XMLHttpRequest/index.d.ts +0 -13
- package/lib/node/interceptors/XMLHttpRequest/index.js +0 -13
- package/lib/node/interceptors/XMLHttpRequest/index.js.map +0 -1
- package/lib/node/interceptors/XMLHttpRequest/index.mjs.map +0 -1
- package/lib/node/interceptors/fetch/index.d.ts +0 -12
- package/lib/node/interceptors/fetch/index.js +0 -12
- package/lib/node/interceptors/fetch/index.js.map +0 -1
- package/lib/node/interceptors/fetch/index.mjs.map +0 -1
- package/lib/node/presets/node.d.ts +0 -15
- package/lib/node/presets/node.js +0 -27
- package/lib/node/presets/node.js.map +0 -1
- package/lib/node/utils/node/index.js +0 -10
- package/lib/node/utils/node/index.js.map +0 -1
- package/lib/node/utils/node/index.mjs.map +0 -1
|
@@ -1,721 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk2HUMWGRDjs = require('../../chunk-2HUMWGRD.js');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _chunkJQ2S7G56js = require('../../chunk-JQ2S7G56.js');
|
|
9
|
-
|
|
10
|
-
// src/interceptors/WebSocket/utils/bindEvent.ts
|
|
11
|
-
function bindEvent(target, event) {
|
|
12
|
-
Object.defineProperties(event, {
|
|
13
|
-
target: {
|
|
14
|
-
value: target,
|
|
15
|
-
enumerable: true,
|
|
16
|
-
writable: true
|
|
17
|
-
},
|
|
18
|
-
currentTarget: {
|
|
19
|
-
value: target,
|
|
20
|
-
enumerable: true,
|
|
21
|
-
writable: true
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
return event;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// src/interceptors/WebSocket/utils/events.ts
|
|
28
|
-
var kCancelable = Symbol("kCancelable");
|
|
29
|
-
var kDefaultPrevented = Symbol("kDefaultPrevented");
|
|
30
|
-
var CancelableMessageEvent = class extends MessageEvent {
|
|
31
|
-
constructor(type, init) {
|
|
32
|
-
super(type, init);
|
|
33
|
-
this[kCancelable] = !!init.cancelable;
|
|
34
|
-
this[kDefaultPrevented] = false;
|
|
35
|
-
}
|
|
36
|
-
get cancelable() {
|
|
37
|
-
return this[kCancelable];
|
|
38
|
-
}
|
|
39
|
-
set cancelable(nextCancelable) {
|
|
40
|
-
this[kCancelable] = nextCancelable;
|
|
41
|
-
}
|
|
42
|
-
get defaultPrevented() {
|
|
43
|
-
return this[kDefaultPrevented];
|
|
44
|
-
}
|
|
45
|
-
set defaultPrevented(nextDefaultPrevented) {
|
|
46
|
-
this[kDefaultPrevented] = nextDefaultPrevented;
|
|
47
|
-
}
|
|
48
|
-
preventDefault() {
|
|
49
|
-
if (this.cancelable && !this[kDefaultPrevented]) {
|
|
50
|
-
this[kDefaultPrevented] = true;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
kCancelable, kDefaultPrevented;
|
|
55
|
-
var CloseEvent = class extends Event {
|
|
56
|
-
constructor(type, init = {}) {
|
|
57
|
-
super(type, init);
|
|
58
|
-
this.code = init.code === void 0 ? 0 : init.code;
|
|
59
|
-
this.reason = init.reason === void 0 ? "" : init.reason;
|
|
60
|
-
this.wasClean = init.wasClean === void 0 ? false : init.wasClean;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
var CancelableCloseEvent = class extends CloseEvent {
|
|
64
|
-
constructor(type, init = {}) {
|
|
65
|
-
super(type, init);
|
|
66
|
-
this[kCancelable] = !!init.cancelable;
|
|
67
|
-
this[kDefaultPrevented] = false;
|
|
68
|
-
}
|
|
69
|
-
get cancelable() {
|
|
70
|
-
return this[kCancelable];
|
|
71
|
-
}
|
|
72
|
-
set cancelable(nextCancelable) {
|
|
73
|
-
this[kCancelable] = nextCancelable;
|
|
74
|
-
}
|
|
75
|
-
get defaultPrevented() {
|
|
76
|
-
return this[kDefaultPrevented];
|
|
77
|
-
}
|
|
78
|
-
set defaultPrevented(nextDefaultPrevented) {
|
|
79
|
-
this[kDefaultPrevented] = nextDefaultPrevented;
|
|
80
|
-
}
|
|
81
|
-
preventDefault() {
|
|
82
|
-
if (this.cancelable && !this[kDefaultPrevented]) {
|
|
83
|
-
this[kDefaultPrevented] = true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
kCancelable, kDefaultPrevented;
|
|
88
|
-
|
|
89
|
-
// src/interceptors/WebSocket/WebSocketClientConnection.ts
|
|
90
|
-
var kEmitter = Symbol("kEmitter");
|
|
91
|
-
var kBoundListener = Symbol("kBoundListener");
|
|
92
|
-
var WebSocketClientConnectionProtocol = class {
|
|
93
|
-
};
|
|
94
|
-
var WebSocketClientConnection = class {
|
|
95
|
-
constructor(socket, transport) {
|
|
96
|
-
this.socket = socket;
|
|
97
|
-
this.transport = transport;
|
|
98
|
-
this.id = _chunkJQ2S7G56js.createRequestId.call(void 0, );
|
|
99
|
-
this.url = new URL(socket.url);
|
|
100
|
-
this[kEmitter] = new EventTarget();
|
|
101
|
-
this.transport.addEventListener("outgoing", (event) => {
|
|
102
|
-
const message = bindEvent(
|
|
103
|
-
this.socket,
|
|
104
|
-
new CancelableMessageEvent("message", {
|
|
105
|
-
data: event.data,
|
|
106
|
-
origin: event.origin,
|
|
107
|
-
cancelable: true
|
|
108
|
-
})
|
|
109
|
-
);
|
|
110
|
-
this[kEmitter].dispatchEvent(message);
|
|
111
|
-
if (message.defaultPrevented) {
|
|
112
|
-
event.preventDefault();
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
this.transport.addEventListener("close", (event) => {
|
|
116
|
-
this[kEmitter].dispatchEvent(
|
|
117
|
-
bindEvent(this.socket, new CloseEvent("close", event))
|
|
118
|
-
);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Listen for the outgoing events from the connected WebSocket client.
|
|
123
|
-
*/
|
|
124
|
-
addEventListener(type, listener, options) {
|
|
125
|
-
if (!Reflect.has(listener, kBoundListener)) {
|
|
126
|
-
const boundListener = listener.bind(this.socket);
|
|
127
|
-
Object.defineProperty(listener, kBoundListener, {
|
|
128
|
-
value: boundListener,
|
|
129
|
-
enumerable: false,
|
|
130
|
-
configurable: false
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
this[kEmitter].addEventListener(
|
|
134
|
-
type,
|
|
135
|
-
Reflect.get(listener, kBoundListener),
|
|
136
|
-
options
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Removes the listener for the given event.
|
|
141
|
-
*/
|
|
142
|
-
removeEventListener(event, listener, options) {
|
|
143
|
-
this[kEmitter].removeEventListener(
|
|
144
|
-
event,
|
|
145
|
-
Reflect.get(listener, kBoundListener),
|
|
146
|
-
options
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Send data to the connected client.
|
|
151
|
-
*/
|
|
152
|
-
send(data) {
|
|
153
|
-
this.transport.send(data);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Close the WebSocket connection.
|
|
157
|
-
* @param {number} code A status code (see https://www.rfc-editor.org/rfc/rfc6455#section-7.4.1).
|
|
158
|
-
* @param {string} reason A custom connection close reason.
|
|
159
|
-
*/
|
|
160
|
-
close(code, reason) {
|
|
161
|
-
this.transport.close(code, reason);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
kEmitter;
|
|
165
|
-
|
|
166
|
-
// src/interceptors/WebSocket/WebSocketServerConnection.ts
|
|
167
|
-
var _outvariant = require('outvariant');
|
|
168
|
-
|
|
169
|
-
// src/interceptors/WebSocket/WebSocketOverride.ts
|
|
170
|
-
|
|
171
|
-
var _deferredpromise = require('@open-draft/deferred-promise');
|
|
172
|
-
var WEBSOCKET_CLOSE_CODE_RANGE_ERROR = "InvalidAccessError: close code out of user configurable range";
|
|
173
|
-
var kPassthroughPromise = Symbol("kPassthroughPromise");
|
|
174
|
-
var kOnSend = Symbol("kOnSend");
|
|
175
|
-
var kClose = Symbol("kClose");
|
|
176
|
-
var WebSocketOverride = class extends EventTarget {
|
|
177
|
-
constructor(url, protocols) {
|
|
178
|
-
super();
|
|
179
|
-
this.CONNECTING = 0;
|
|
180
|
-
this.OPEN = 1;
|
|
181
|
-
this.CLOSING = 2;
|
|
182
|
-
this.CLOSED = 3;
|
|
183
|
-
this._onopen = null;
|
|
184
|
-
this._onmessage = null;
|
|
185
|
-
this._onerror = null;
|
|
186
|
-
this._onclose = null;
|
|
187
|
-
this.url = url.toString();
|
|
188
|
-
this.protocol = "";
|
|
189
|
-
this.extensions = "";
|
|
190
|
-
this.binaryType = "blob";
|
|
191
|
-
this.readyState = this.CONNECTING;
|
|
192
|
-
this.bufferedAmount = 0;
|
|
193
|
-
this[kPassthroughPromise] = new (0, _deferredpromise.DeferredPromise)();
|
|
194
|
-
queueMicrotask(async () => {
|
|
195
|
-
if (await this[kPassthroughPromise]) {
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
this.protocol = typeof protocols === "string" ? protocols : Array.isArray(protocols) && protocols.length > 0 ? protocols[0] : "";
|
|
199
|
-
if (this.readyState === this.CONNECTING) {
|
|
200
|
-
this.readyState = this.OPEN;
|
|
201
|
-
this.dispatchEvent(bindEvent(this, new Event("open")));
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
set onopen(listener) {
|
|
206
|
-
this.removeEventListener("open", this._onopen);
|
|
207
|
-
this._onopen = listener;
|
|
208
|
-
if (listener !== null) {
|
|
209
|
-
this.addEventListener("open", listener);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
get onopen() {
|
|
213
|
-
return this._onopen;
|
|
214
|
-
}
|
|
215
|
-
set onmessage(listener) {
|
|
216
|
-
this.removeEventListener(
|
|
217
|
-
"message",
|
|
218
|
-
this._onmessage
|
|
219
|
-
);
|
|
220
|
-
this._onmessage = listener;
|
|
221
|
-
if (listener !== null) {
|
|
222
|
-
this.addEventListener("message", listener);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
get onmessage() {
|
|
226
|
-
return this._onmessage;
|
|
227
|
-
}
|
|
228
|
-
set onerror(listener) {
|
|
229
|
-
this.removeEventListener("error", this._onerror);
|
|
230
|
-
this._onerror = listener;
|
|
231
|
-
if (listener !== null) {
|
|
232
|
-
this.addEventListener("error", listener);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
get onerror() {
|
|
236
|
-
return this._onerror;
|
|
237
|
-
}
|
|
238
|
-
set onclose(listener) {
|
|
239
|
-
this.removeEventListener("close", this._onclose);
|
|
240
|
-
this._onclose = listener;
|
|
241
|
-
if (listener !== null) {
|
|
242
|
-
this.addEventListener("close", listener);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
get onclose() {
|
|
246
|
-
return this._onclose;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* @see https://websockets.spec.whatwg.org/#ref-for-dom-websocket-send%E2%91%A0
|
|
250
|
-
*/
|
|
251
|
-
send(data) {
|
|
252
|
-
if (this.readyState === this.CONNECTING) {
|
|
253
|
-
this.close();
|
|
254
|
-
throw new DOMException("InvalidStateError");
|
|
255
|
-
}
|
|
256
|
-
if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
this.bufferedAmount += getDataSize(data);
|
|
260
|
-
queueMicrotask(() => {
|
|
261
|
-
var _a;
|
|
262
|
-
this.bufferedAmount = 0;
|
|
263
|
-
(_a = this[kOnSend]) == null ? void 0 : _a.call(this, data);
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
close(code = 1e3, reason) {
|
|
267
|
-
_outvariant.invariant.call(void 0, code, WEBSOCKET_CLOSE_CODE_RANGE_ERROR);
|
|
268
|
-
_outvariant.invariant.call(void 0,
|
|
269
|
-
code === 1e3 || code >= 3e3 && code <= 4999,
|
|
270
|
-
WEBSOCKET_CLOSE_CODE_RANGE_ERROR
|
|
271
|
-
);
|
|
272
|
-
this[kClose](code, reason);
|
|
273
|
-
}
|
|
274
|
-
[(kPassthroughPromise, kOnSend, kClose)](code = 1e3, reason, wasClean = true) {
|
|
275
|
-
if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
this.readyState = this.CLOSING;
|
|
279
|
-
queueMicrotask(() => {
|
|
280
|
-
this.readyState = this.CLOSED;
|
|
281
|
-
this.dispatchEvent(
|
|
282
|
-
bindEvent(
|
|
283
|
-
this,
|
|
284
|
-
new CloseEvent("close", {
|
|
285
|
-
code,
|
|
286
|
-
reason,
|
|
287
|
-
wasClean
|
|
288
|
-
})
|
|
289
|
-
)
|
|
290
|
-
);
|
|
291
|
-
this._onopen = null;
|
|
292
|
-
this._onmessage = null;
|
|
293
|
-
this._onerror = null;
|
|
294
|
-
this._onclose = null;
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
addEventListener(type, listener, options) {
|
|
298
|
-
return super.addEventListener(
|
|
299
|
-
type,
|
|
300
|
-
listener,
|
|
301
|
-
options
|
|
302
|
-
);
|
|
303
|
-
}
|
|
304
|
-
removeEventListener(type, callback, options) {
|
|
305
|
-
return super.removeEventListener(type, callback, options);
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
|
-
WebSocketOverride.CONNECTING = 0;
|
|
309
|
-
WebSocketOverride.OPEN = 1;
|
|
310
|
-
WebSocketOverride.CLOSING = 2;
|
|
311
|
-
WebSocketOverride.CLOSED = 3;
|
|
312
|
-
function getDataSize(data) {
|
|
313
|
-
if (typeof data === "string") {
|
|
314
|
-
return data.length;
|
|
315
|
-
}
|
|
316
|
-
if (data instanceof Blob) {
|
|
317
|
-
return data.size;
|
|
318
|
-
}
|
|
319
|
-
return data.byteLength;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
// src/interceptors/WebSocket/WebSocketServerConnection.ts
|
|
323
|
-
var kEmitter2 = Symbol("kEmitter");
|
|
324
|
-
var kBoundListener2 = Symbol("kBoundListener");
|
|
325
|
-
var kSend = Symbol("kSend");
|
|
326
|
-
var WebSocketServerConnectionProtocol = class {
|
|
327
|
-
};
|
|
328
|
-
var WebSocketServerConnection = class {
|
|
329
|
-
constructor(client, transport, createConnection) {
|
|
330
|
-
this.client = client;
|
|
331
|
-
this.transport = transport;
|
|
332
|
-
this.createConnection = createConnection;
|
|
333
|
-
this[kEmitter2] = new EventTarget();
|
|
334
|
-
this.mockCloseController = new AbortController();
|
|
335
|
-
this.realCloseController = new AbortController();
|
|
336
|
-
this.transport.addEventListener("outgoing", (event) => {
|
|
337
|
-
if (typeof this.realWebSocket === "undefined") {
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
queueMicrotask(() => {
|
|
341
|
-
if (!event.defaultPrevented) {
|
|
342
|
-
this[kSend](event.data);
|
|
343
|
-
}
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
this.transport.addEventListener(
|
|
347
|
-
"incoming",
|
|
348
|
-
this.handleIncomingMessage.bind(this)
|
|
349
|
-
);
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* The `WebSocket` instance connected to the original server.
|
|
353
|
-
* Accessing this before calling `server.connect()` will throw.
|
|
354
|
-
*/
|
|
355
|
-
get socket() {
|
|
356
|
-
_outvariant.invariant.call(void 0,
|
|
357
|
-
this.realWebSocket,
|
|
358
|
-
'Cannot access "socket" on the original WebSocket server object: the connection is not open. Did you forget to call `server.connect()`?'
|
|
359
|
-
);
|
|
360
|
-
return this.realWebSocket;
|
|
361
|
-
}
|
|
362
|
-
/**
|
|
363
|
-
* Open connection to the original WebSocket server.
|
|
364
|
-
*/
|
|
365
|
-
connect() {
|
|
366
|
-
_outvariant.invariant.call(void 0,
|
|
367
|
-
!this.realWebSocket || this.realWebSocket.readyState !== WebSocket.OPEN,
|
|
368
|
-
'Failed to call "connect()" on the original WebSocket instance: the connection already open'
|
|
369
|
-
);
|
|
370
|
-
const realWebSocket = this.createConnection();
|
|
371
|
-
realWebSocket.binaryType = this.client.binaryType;
|
|
372
|
-
realWebSocket.addEventListener(
|
|
373
|
-
"open",
|
|
374
|
-
(event) => {
|
|
375
|
-
this[kEmitter2].dispatchEvent(
|
|
376
|
-
bindEvent(this.realWebSocket, new Event("open", event))
|
|
377
|
-
);
|
|
378
|
-
},
|
|
379
|
-
{ once: true }
|
|
380
|
-
);
|
|
381
|
-
realWebSocket.addEventListener("message", (event) => {
|
|
382
|
-
this.transport.dispatchEvent(
|
|
383
|
-
bindEvent(
|
|
384
|
-
this.realWebSocket,
|
|
385
|
-
new MessageEvent("incoming", {
|
|
386
|
-
data: event.data,
|
|
387
|
-
origin: event.origin
|
|
388
|
-
})
|
|
389
|
-
)
|
|
390
|
-
);
|
|
391
|
-
});
|
|
392
|
-
this.client.addEventListener(
|
|
393
|
-
"close",
|
|
394
|
-
(event) => {
|
|
395
|
-
this.handleMockClose(event);
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
signal: this.mockCloseController.signal
|
|
399
|
-
}
|
|
400
|
-
);
|
|
401
|
-
realWebSocket.addEventListener(
|
|
402
|
-
"close",
|
|
403
|
-
(event) => {
|
|
404
|
-
this.handleRealClose(event);
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
signal: this.realCloseController.signal
|
|
408
|
-
}
|
|
409
|
-
);
|
|
410
|
-
realWebSocket.addEventListener("error", () => {
|
|
411
|
-
const errorEvent = bindEvent(
|
|
412
|
-
realWebSocket,
|
|
413
|
-
new Event("error", { cancelable: true })
|
|
414
|
-
);
|
|
415
|
-
this[kEmitter2].dispatchEvent(errorEvent);
|
|
416
|
-
if (!errorEvent.defaultPrevented) {
|
|
417
|
-
this.client.dispatchEvent(bindEvent(this.client, new Event("error")));
|
|
418
|
-
}
|
|
419
|
-
});
|
|
420
|
-
this.realWebSocket = realWebSocket;
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Listen for the incoming events from the original WebSocket server.
|
|
424
|
-
*/
|
|
425
|
-
addEventListener(event, listener, options) {
|
|
426
|
-
if (!Reflect.has(listener, kBoundListener2)) {
|
|
427
|
-
const boundListener = listener.bind(this.client);
|
|
428
|
-
Object.defineProperty(listener, kBoundListener2, {
|
|
429
|
-
value: boundListener,
|
|
430
|
-
enumerable: false
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
this[kEmitter2].addEventListener(
|
|
434
|
-
event,
|
|
435
|
-
Reflect.get(listener, kBoundListener2),
|
|
436
|
-
options
|
|
437
|
-
);
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Remove the listener for the given event.
|
|
441
|
-
*/
|
|
442
|
-
removeEventListener(event, listener, options) {
|
|
443
|
-
this[kEmitter2].removeEventListener(
|
|
444
|
-
event,
|
|
445
|
-
Reflect.get(listener, kBoundListener2),
|
|
446
|
-
options
|
|
447
|
-
);
|
|
448
|
-
}
|
|
449
|
-
/**
|
|
450
|
-
* Send data to the original WebSocket server.
|
|
451
|
-
* @example
|
|
452
|
-
* server.send('hello')
|
|
453
|
-
* server.send(new Blob(['hello']))
|
|
454
|
-
* server.send(new TextEncoder().encode('hello'))
|
|
455
|
-
*/
|
|
456
|
-
send(data) {
|
|
457
|
-
this[kSend](data);
|
|
458
|
-
}
|
|
459
|
-
[(kEmitter2, kSend)](data) {
|
|
460
|
-
const { realWebSocket } = this;
|
|
461
|
-
_outvariant.invariant.call(void 0,
|
|
462
|
-
realWebSocket,
|
|
463
|
-
'Failed to call "server.send()" for "%s": the connection is not open. Did you forget to call "server.connect()"?',
|
|
464
|
-
this.client.url
|
|
465
|
-
);
|
|
466
|
-
if (realWebSocket.readyState === WebSocket.CLOSING || realWebSocket.readyState === WebSocket.CLOSED) {
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
if (realWebSocket.readyState === WebSocket.CONNECTING) {
|
|
470
|
-
realWebSocket.addEventListener(
|
|
471
|
-
"open",
|
|
472
|
-
() => {
|
|
473
|
-
realWebSocket.send(data);
|
|
474
|
-
},
|
|
475
|
-
{ once: true }
|
|
476
|
-
);
|
|
477
|
-
return;
|
|
478
|
-
}
|
|
479
|
-
realWebSocket.send(data);
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Close the actual server connection.
|
|
483
|
-
*/
|
|
484
|
-
close() {
|
|
485
|
-
const { realWebSocket } = this;
|
|
486
|
-
_outvariant.invariant.call(void 0,
|
|
487
|
-
realWebSocket,
|
|
488
|
-
'Failed to close server connection for "%s": the connection is not open. Did you forget to call "server.connect()"?',
|
|
489
|
-
this.client.url
|
|
490
|
-
);
|
|
491
|
-
this.realCloseController.abort();
|
|
492
|
-
if (realWebSocket.readyState === WebSocket.CLOSING || realWebSocket.readyState === WebSocket.CLOSED) {
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
realWebSocket.close();
|
|
496
|
-
queueMicrotask(() => {
|
|
497
|
-
this[kEmitter2].dispatchEvent(
|
|
498
|
-
bindEvent(
|
|
499
|
-
this.realWebSocket,
|
|
500
|
-
new CancelableCloseEvent("close", {
|
|
501
|
-
/**
|
|
502
|
-
* @note `server.close()` in the interceptor
|
|
503
|
-
* always results in clean closures.
|
|
504
|
-
*/
|
|
505
|
-
code: 1e3,
|
|
506
|
-
cancelable: true
|
|
507
|
-
})
|
|
508
|
-
)
|
|
509
|
-
);
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
handleIncomingMessage(event) {
|
|
513
|
-
const messageEvent = bindEvent(
|
|
514
|
-
event.target,
|
|
515
|
-
new CancelableMessageEvent("message", {
|
|
516
|
-
data: event.data,
|
|
517
|
-
origin: event.origin,
|
|
518
|
-
cancelable: true
|
|
519
|
-
})
|
|
520
|
-
);
|
|
521
|
-
this[kEmitter2].dispatchEvent(messageEvent);
|
|
522
|
-
if (!messageEvent.defaultPrevented) {
|
|
523
|
-
this.client.dispatchEvent(
|
|
524
|
-
bindEvent(
|
|
525
|
-
/**
|
|
526
|
-
* @note Bind the forwarded original server events
|
|
527
|
-
* to the mock WebSocket instance so it would
|
|
528
|
-
* dispatch them straight away.
|
|
529
|
-
*/
|
|
530
|
-
this.client,
|
|
531
|
-
// Clone the message event again to prevent
|
|
532
|
-
// the "already being dispatched" exception.
|
|
533
|
-
new MessageEvent("message", {
|
|
534
|
-
data: event.data,
|
|
535
|
-
origin: event.origin
|
|
536
|
-
})
|
|
537
|
-
)
|
|
538
|
-
);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
handleMockClose(_event) {
|
|
542
|
-
if (this.realWebSocket) {
|
|
543
|
-
this.realWebSocket.close();
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
handleRealClose(event) {
|
|
547
|
-
this.mockCloseController.abort();
|
|
548
|
-
const closeEvent = bindEvent(
|
|
549
|
-
this.realWebSocket,
|
|
550
|
-
new CancelableCloseEvent("close", {
|
|
551
|
-
code: event.code,
|
|
552
|
-
reason: event.reason,
|
|
553
|
-
wasClean: event.wasClean,
|
|
554
|
-
cancelable: true
|
|
555
|
-
})
|
|
556
|
-
);
|
|
557
|
-
this[kEmitter2].dispatchEvent(closeEvent);
|
|
558
|
-
if (!closeEvent.defaultPrevented) {
|
|
559
|
-
this.client[kClose](event.code, event.reason);
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
// src/interceptors/WebSocket/WebSocketClassTransport.ts
|
|
565
|
-
var WebSocketClassTransport = class extends EventTarget {
|
|
566
|
-
constructor(socket) {
|
|
567
|
-
super();
|
|
568
|
-
this.socket = socket;
|
|
569
|
-
this.socket.addEventListener("close", (event) => {
|
|
570
|
-
this.dispatchEvent(bindEvent(this.socket, new CloseEvent("close", event)));
|
|
571
|
-
});
|
|
572
|
-
this.socket[kOnSend] = (data) => {
|
|
573
|
-
this.dispatchEvent(
|
|
574
|
-
bindEvent(
|
|
575
|
-
this.socket,
|
|
576
|
-
// Dispatch this as cancelable because "client" connection
|
|
577
|
-
// re-creates this message event (cannot dispatch the same event).
|
|
578
|
-
new CancelableMessageEvent("outgoing", {
|
|
579
|
-
data,
|
|
580
|
-
origin: this.socket.url,
|
|
581
|
-
cancelable: true
|
|
582
|
-
})
|
|
583
|
-
)
|
|
584
|
-
);
|
|
585
|
-
};
|
|
586
|
-
}
|
|
587
|
-
addEventListener(type, callback, options) {
|
|
588
|
-
return super.addEventListener(type, callback, options);
|
|
589
|
-
}
|
|
590
|
-
dispatchEvent(event) {
|
|
591
|
-
return super.dispatchEvent(event);
|
|
592
|
-
}
|
|
593
|
-
send(data) {
|
|
594
|
-
queueMicrotask(() => {
|
|
595
|
-
if (this.socket.readyState === this.socket.CLOSING || this.socket.readyState === this.socket.CLOSED) {
|
|
596
|
-
return;
|
|
597
|
-
}
|
|
598
|
-
const dispatchEvent = () => {
|
|
599
|
-
this.socket.dispatchEvent(
|
|
600
|
-
bindEvent(
|
|
601
|
-
/**
|
|
602
|
-
* @note Setting this event's "target" to the
|
|
603
|
-
* WebSocket override instance is important.
|
|
604
|
-
* This way it can tell apart original incoming events
|
|
605
|
-
* (must be forwarded to the transport) from the
|
|
606
|
-
* mocked message events like the one below
|
|
607
|
-
* (must be dispatched on the client instance).
|
|
608
|
-
*/
|
|
609
|
-
this.socket,
|
|
610
|
-
new MessageEvent("message", {
|
|
611
|
-
data,
|
|
612
|
-
origin: this.socket.url
|
|
613
|
-
})
|
|
614
|
-
)
|
|
615
|
-
);
|
|
616
|
-
};
|
|
617
|
-
if (this.socket.readyState === this.socket.CONNECTING) {
|
|
618
|
-
this.socket.addEventListener(
|
|
619
|
-
"open",
|
|
620
|
-
() => {
|
|
621
|
-
dispatchEvent();
|
|
622
|
-
},
|
|
623
|
-
{ once: true }
|
|
624
|
-
);
|
|
625
|
-
} else {
|
|
626
|
-
dispatchEvent();
|
|
627
|
-
}
|
|
628
|
-
});
|
|
629
|
-
}
|
|
630
|
-
close(code, reason) {
|
|
631
|
-
this.socket[kClose](code, reason);
|
|
632
|
-
}
|
|
633
|
-
};
|
|
634
|
-
|
|
635
|
-
// src/interceptors/WebSocket/index.ts
|
|
636
|
-
var _WebSocketInterceptor = class extends _chunkJQ2S7G56js.Interceptor {
|
|
637
|
-
constructor() {
|
|
638
|
-
super(_WebSocketInterceptor.symbol);
|
|
639
|
-
}
|
|
640
|
-
checkEnvironment() {
|
|
641
|
-
return _chunk2HUMWGRDjs.hasConfigurableGlobal.call(void 0, "WebSocket");
|
|
642
|
-
}
|
|
643
|
-
setup() {
|
|
644
|
-
const originalWebSocketDescriptor = Object.getOwnPropertyDescriptor(
|
|
645
|
-
globalThis,
|
|
646
|
-
"WebSocket"
|
|
647
|
-
);
|
|
648
|
-
const WebSocketProxy = new Proxy(globalThis.WebSocket, {
|
|
649
|
-
construct: (target, args, newTarget) => {
|
|
650
|
-
const [url, protocols] = args;
|
|
651
|
-
const createConnection = () => {
|
|
652
|
-
return Reflect.construct(target, args, newTarget);
|
|
653
|
-
};
|
|
654
|
-
const socket = new WebSocketOverride(url, protocols);
|
|
655
|
-
const transport = new WebSocketClassTransport(socket);
|
|
656
|
-
queueMicrotask(async () => {
|
|
657
|
-
try {
|
|
658
|
-
const server = new WebSocketServerConnection(
|
|
659
|
-
socket,
|
|
660
|
-
transport,
|
|
661
|
-
createConnection
|
|
662
|
-
);
|
|
663
|
-
const hasConnectionListeners = this.emitter.listenerCount("connection") > 0;
|
|
664
|
-
await _chunk2HUMWGRDjs.emitAsync.call(void 0, this.emitter, "connection", {
|
|
665
|
-
client: new WebSocketClientConnection(socket, transport),
|
|
666
|
-
server,
|
|
667
|
-
info: {
|
|
668
|
-
protocols
|
|
669
|
-
}
|
|
670
|
-
});
|
|
671
|
-
if (hasConnectionListeners) {
|
|
672
|
-
socket[kPassthroughPromise].resolve(false);
|
|
673
|
-
} else {
|
|
674
|
-
socket[kPassthroughPromise].resolve(true);
|
|
675
|
-
server.connect();
|
|
676
|
-
server.addEventListener("open", () => {
|
|
677
|
-
socket.dispatchEvent(bindEvent(socket, new Event("open")));
|
|
678
|
-
if (server["realWebSocket"]) {
|
|
679
|
-
socket.protocol = server["realWebSocket"].protocol;
|
|
680
|
-
}
|
|
681
|
-
});
|
|
682
|
-
}
|
|
683
|
-
} catch (error) {
|
|
684
|
-
if (error instanceof Error) {
|
|
685
|
-
socket.dispatchEvent(new Event("error"));
|
|
686
|
-
if (socket.readyState !== WebSocket.CLOSING && socket.readyState !== WebSocket.CLOSED) {
|
|
687
|
-
socket[kClose](1011, error.message, false);
|
|
688
|
-
}
|
|
689
|
-
console.error(error);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
});
|
|
693
|
-
return socket;
|
|
694
|
-
}
|
|
695
|
-
});
|
|
696
|
-
Object.defineProperty(globalThis, "WebSocket", {
|
|
697
|
-
value: WebSocketProxy,
|
|
698
|
-
configurable: true
|
|
699
|
-
});
|
|
700
|
-
this.subscriptions.push(() => {
|
|
701
|
-
Object.defineProperty(
|
|
702
|
-
globalThis,
|
|
703
|
-
"WebSocket",
|
|
704
|
-
originalWebSocketDescriptor
|
|
705
|
-
);
|
|
706
|
-
});
|
|
707
|
-
}
|
|
708
|
-
};
|
|
709
|
-
var WebSocketInterceptor = _WebSocketInterceptor;
|
|
710
|
-
WebSocketInterceptor.symbol = Symbol("websocket");
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
exports.CancelableCloseEvent = CancelableCloseEvent; exports.CancelableMessageEvent = CancelableMessageEvent; exports.CloseEvent = CloseEvent; exports.WebSocketClientConnection = WebSocketClientConnection; exports.WebSocketClientConnectionProtocol = WebSocketClientConnectionProtocol; exports.WebSocketInterceptor = WebSocketInterceptor; exports.WebSocketServerConnection = WebSocketServerConnection; exports.WebSocketServerConnectionProtocol = WebSocketServerConnectionProtocol;
|
|
721
|
-
//# sourceMappingURL=index.js.map
|