@depup/msw 2.15.0-depup.9 → 3.0.0-depup.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 (766) hide show
  1. package/README.md +5 -11
  2. package/changes.json +4 -28
  3. package/cli/init.js +12 -9
  4. package/cli/invariant.js +2 -2
  5. package/lib/_chunks/attach-sibling-handlers.js +360 -0
  6. package/lib/_chunks/attach-sibling-handlers.js.map +1 -0
  7. package/lib/_chunks/colors.js +18 -0
  8. package/lib/_chunks/colors.js.map +1 -0
  9. package/lib/_chunks/cookie-store.js +348 -0
  10. package/lib/_chunks/cookie-store.js.map +1 -0
  11. package/lib/_chunks/execute-handlers.js +29 -0
  12. package/lib/_chunks/execute-handlers.js.map +1 -0
  13. package/lib/_chunks/handlers-controller.d.ts +262 -0
  14. package/lib/_chunks/has-ref-counted.js +9 -0
  15. package/lib/_chunks/has-ref-counted.js.map +1 -0
  16. package/lib/_chunks/http-handler.d.ts +72 -0
  17. package/lib/_chunks/http-handler.js +182 -0
  18. package/lib/_chunks/http-handler.js.map +1 -0
  19. package/lib/_chunks/http-response.js +137 -0
  20. package/lib/_chunks/http-response.js.map +1 -0
  21. package/lib/{core → _chunks}/http.d.ts +15 -18
  22. package/lib/_chunks/http.js +30 -0
  23. package/lib/_chunks/http.js.map +1 -0
  24. package/lib/_chunks/interceptor-source.d.ts +163 -0
  25. package/lib/_chunks/interceptor-source.js +756 -0
  26. package/lib/_chunks/interceptor-source.js.map +1 -0
  27. package/lib/_chunks/is-object.js +11 -0
  28. package/lib/_chunks/is-object.js.map +1 -0
  29. package/lib/_chunks/match-request-url.d.ts +14 -0
  30. package/lib/_chunks/request-handler.d.ts +295 -0
  31. package/lib/_chunks/request-handler.js +369 -0
  32. package/lib/_chunks/request-handler.js.map +1 -0
  33. package/lib/_chunks/shared-options.d.ts +20 -0
  34. package/lib/_chunks/sse.d.ts +95 -0
  35. package/lib/_chunks/sse.js +599 -0
  36. package/lib/_chunks/sse.js.map +1 -0
  37. package/lib/_chunks/symbols.js +22 -0
  38. package/lib/_chunks/symbols.js.map +1 -0
  39. package/lib/_chunks/websocket-upgrade.js +46 -0
  40. package/lib/_chunks/websocket-upgrade.js.map +1 -0
  41. package/lib/_chunks/ws.d.ts +133 -0
  42. package/lib/_chunks/ws.js +293 -0
  43. package/lib/_chunks/ws.js.map +1 -0
  44. package/lib/browser/index.d.ts +225 -96
  45. package/lib/browser/index.js +555 -3694
  46. package/lib/browser/index.js.map +1 -1
  47. package/lib/core/experimental/index.d.ts +3 -17
  48. package/lib/core/experimental/index.js +2 -38
  49. package/lib/core/index.d.ts +15 -27
  50. package/lib/core/index.js +15 -64
  51. package/lib/graphql/index.d.ts +550 -0
  52. package/lib/graphql/index.js +1244 -0
  53. package/lib/graphql/index.js.map +1 -0
  54. package/lib/http/index.d.ts +4 -0
  55. package/lib/http/index.js +4 -0
  56. package/lib/iife/index.js +35857 -28422
  57. package/lib/iife/index.js.map +1 -1
  58. package/lib/mockServiceWorker.js +185 -86
  59. package/lib/node/index.d.ts +79 -104
  60. package/lib/node/index.js +103 -201
  61. package/lib/node/index.js.map +1 -1
  62. package/lib/sse/index.d.ts +2 -0
  63. package/lib/sse/index.js +2 -0
  64. package/lib/{core → utils}/bypass.d.ts +5 -4
  65. package/lib/utils/bypass.js +41 -0
  66. package/lib/utils/bypass.js.map +1 -0
  67. package/lib/utils/delay.d.ts +15 -0
  68. package/lib/utils/delay.js +45 -0
  69. package/lib/utils/delay.js.map +1 -0
  70. package/lib/utils/get-clean-url-string.d.ts +9 -0
  71. package/lib/utils/get-clean-url-string.js +15 -0
  72. package/lib/utils/get-clean-url-string.js.map +1 -0
  73. package/lib/utils/get-response.d.ts +13 -0
  74. package/lib/utils/get-response.js +23 -0
  75. package/lib/utils/get-response.js.map +1 -0
  76. package/lib/utils/is-common-asset-request.d.ts +22 -0
  77. package/lib/utils/is-common-asset-request.js +31 -0
  78. package/lib/utils/is-common-asset-request.js.map +1 -0
  79. package/lib/utils/passthrough.d.ts +31 -0
  80. package/lib/utils/passthrough.js +41 -0
  81. package/lib/utils/passthrough.js.map +1 -0
  82. package/lib/vite/index.d.ts +44 -0
  83. package/lib/vite/index.js +90 -0
  84. package/lib/vite/index.js.map +1 -0
  85. package/lib/vite/runtime.d.ts +6 -0
  86. package/lib/vite/runtime.js +77 -0
  87. package/lib/vite/runtime.js.map +1 -0
  88. package/lib/ws/index.d.ts +4 -0
  89. package/lib/ws/index.js +4 -0
  90. package/package.json +98 -229
  91. package/src/browser/default-network-options.ts +31 -0
  92. package/src/browser/glossary.ts +11 -23
  93. package/src/browser/index.ts +5 -1
  94. package/src/browser/setup-worker.ts +15 -68
  95. package/src/browser/sources/fallback-http-source.ts +1 -1
  96. package/src/browser/sources/service-worker-source.ts +76 -69
  97. package/src/browser/tsconfig.browser.json +4 -2
  98. package/src/browser/utils/{deserializeRequest.ts → deserialize-request.ts} +3 -4
  99. package/src/browser/utils/{getAbsoluteWorkerUrl.test.ts → get-absolute-worker-url.test.ts} +3 -3
  100. package/src/browser/utils/get-worker-instance.ts +2 -2
  101. package/src/browser/utils/should-invalidate-worker.test.ts +11 -11
  102. package/src/browser/utils/should-invalidate-worker.ts +1 -1
  103. package/src/browser/utils/validate-worker-scope.ts +1 -1
  104. package/src/browser/utils/{workerChannel.ts → worker-channel.ts} +42 -20
  105. package/src/core/experimental/define-network.test.ts +43 -8
  106. package/src/core/experimental/define-network.ts +32 -13
  107. package/src/core/experimental/frames/http-frame.test.ts +15 -13
  108. package/src/core/experimental/frames/http-frame.ts +10 -9
  109. package/src/core/experimental/frames/websocket-frame.test.ts +129 -15
  110. package/src/core/experimental/frames/websocket-frame.ts +71 -20
  111. package/src/core/experimental/handlers-controller.test.ts +141 -34
  112. package/src/core/experimental/handlers-controller.ts +107 -30
  113. package/src/core/experimental/index.ts +1 -0
  114. package/src/core/experimental/on-unhandled-frame.test.ts +19 -19
  115. package/src/core/experimental/on-unhandled-frame.ts +7 -12
  116. package/src/core/experimental/request-utils.test.ts +4 -29
  117. package/src/core/experimental/request-utils.ts +0 -14
  118. package/src/core/experimental/sources/interceptor-source.ts +44 -29
  119. package/src/core/experimental/sources/network-source.test.ts +3 -3
  120. package/src/core/experimental/sources/network-source.ts +3 -3
  121. package/src/core/handlers/handler.ts +42 -0
  122. package/src/core/handlers/{RequestHandler.ts → request-handler.ts} +26 -41
  123. package/src/core/index.ts +35 -58
  124. package/src/core/shared-options.ts +21 -0
  125. package/src/core/type-utils.ts +18 -0
  126. package/src/core/utils/{cookieStore.ts → cookie-store.ts} +14 -9
  127. package/src/core/utils/{executeHandlers.ts → execute-handlers.ts} +2 -2
  128. package/src/core/utils/http-status-messages.ts +69 -0
  129. package/src/core/utils/internal/{attachSiblingHandlers.ts → attach-sibling-handlers.ts} +20 -0
  130. package/src/core/utils/internal/{devUtils.test.ts → dev-utils.test.ts} +3 -3
  131. package/src/core/utils/internal/{Disposable.ts → disposable.ts} +1 -1
  132. package/src/core/utils/internal/{getCallFrame.test.ts → get-call-frame.test.ts} +1 -1
  133. package/src/core/utils/internal/{getCallFrame.ts → get-call-frame.ts} +1 -1
  134. package/src/core/utils/internal/{hasRefCounted.test.ts → has-ref-counted.test.ts} +4 -4
  135. package/src/core/utils/internal/{hasRefCounted.ts → has-ref-counted.ts} +1 -1
  136. package/src/core/utils/internal/{isIterable.test.ts → is-iterable.test.ts} +1 -1
  137. package/src/core/utils/internal/is-iterable.ts +16 -0
  138. package/src/core/utils/internal/{isObject.test.ts → is-object.test.ts} +1 -1
  139. package/src/core/utils/internal/{isStringEqual.test.ts → is-string-equal.test.ts} +7 -7
  140. package/src/core/utils/internal/{jsonParse.test.ts → json-parse.test.ts} +1 -1
  141. package/src/core/utils/internal/observe-response-body-stream.test.ts +7 -7
  142. package/src/core/utils/internal/observe-response-body-stream.ts +3 -4
  143. package/src/core/utils/internal/{parseMultipartData.test.ts → parse-multipart-data.test.ts} +1 -1
  144. package/src/core/utils/internal/{parseMultipartData.ts → parse-multipart-data.ts} +1 -1
  145. package/src/core/utils/internal/{toReadonlyArray.test.ts → to-readonly-array.test.ts} +4 -4
  146. package/src/core/utils/logging/colors.ts +13 -0
  147. package/src/core/utils/logging/{getStatusCodeColor.test.ts → get-status-code-color.test.ts} +1 -1
  148. package/src/core/utils/logging/{getTimestamp.test.ts → get-timestamp.test.ts} +1 -1
  149. package/src/core/utils/logging/{serializeRequest.test.ts → serialize-request.test.ts} +1 -1
  150. package/src/core/utils/logging/{serializeResponse.test.ts → serialize-response.test.ts} +8 -10
  151. package/src/core/utils/logging/{serializeResponse.ts → serialize-response.ts} +2 -4
  152. package/src/core/utils/matching/match-request-url.test.ts +90 -0
  153. package/src/core/utils/matching/match-request-url.ts +45 -0
  154. package/src/core/utils/matching/{normalizePath.node.test.ts → normalize-path.node.test.ts} +2 -4
  155. package/src/core/utils/matching/{normalizePath.test.ts → normalize-path.test.ts} +2 -4
  156. package/src/core/utils/matching/{normalizePath.ts → normalize-path.ts} +8 -5
  157. package/src/core/utils/request/{getAllAcceptedMimeTypes.test.ts → get-all-accepted-mime-types.test.ts} +14 -14
  158. package/src/core/utils/request/get-request-cookies.ts +76 -0
  159. package/src/core/utils/request/store-response-cookies.ts +15 -0
  160. package/src/core/utils/request/{toPublicUrl.node.test.ts → to-public-url.node.test.ts} +1 -1
  161. package/src/core/utils/request/{toPublicUrl.test.ts → to-public-url.test.ts} +2 -2
  162. package/src/core/utils/{HttpResponse/decorators.ts → response-decorators.ts} +6 -8
  163. package/src/core/utils/url/{getAbsoluteUrl.node.test.ts → get-absolute-url.node.test.ts} +5 -7
  164. package/src/core/utils/url/{getAbsoluteUrl.test.ts → get-absolute-url.test.ts} +7 -7
  165. package/src/core/utils/url/{getAbsoluteUrl.ts → get-absolute-url.ts} +1 -1
  166. package/src/core/utils/url/is-absolute-url.test.ts +30 -0
  167. package/src/{core/handlers/GraphQLHandler.test.ts → graphql/graphql-handler.test.ts} +37 -36
  168. package/src/{core/handlers/GraphQLHandler.ts → graphql/graphql-handler.ts} +54 -41
  169. package/src/graphql/graphql-subscription-event.ts +39 -0
  170. package/src/graphql/graphql-subscription.test.ts +208 -0
  171. package/src/graphql/graphql-subscription.ts +1487 -0
  172. package/src/graphql/graphql.test.ts +14 -0
  173. package/src/graphql/graphql.ts +179 -0
  174. package/src/graphql/index.ts +34 -0
  175. package/src/{core/utils/internal/parseGraphQLRequest.test.ts → graphql/parse-graphql-request.test.ts} +47 -6
  176. package/src/{core/utils/internal/parseGraphQLRequest.ts → graphql/parse-graphql-request.ts} +59 -32
  177. package/src/{core/handlers/HttpHandler.test.ts → http/http-handler.test.ts} +22 -22
  178. package/src/{core/handlers/HttpHandler.ts → http/http-handler.ts} +16 -18
  179. package/src/{core/HttpResponse.test.ts → http/http-response.test.ts} +25 -27
  180. package/src/{core/HttpResponse.ts → http/http-response.ts} +15 -17
  181. package/src/{core → http}/http.ts +7 -7
  182. package/src/http/index.test.ts +19 -0
  183. package/src/http/index.ts +22 -0
  184. package/src/http/symbols.ts +19 -0
  185. package/src/iife/index.ts +2 -0
  186. package/src/mockServiceWorker.js +183 -84
  187. package/src/node/async-handlers-controller.test.ts +4 -4
  188. package/src/node/glossary.ts +8 -4
  189. package/src/node/index.ts +1 -6
  190. package/src/node/setup-server-common.ts +16 -73
  191. package/src/node/setup-server.ts +9 -40
  192. package/src/sse/index.test.ts +14 -0
  193. package/src/sse/index.ts +7 -0
  194. package/src/{core → sse}/sse.ts +25 -21
  195. package/src/tsconfig.core.build.json +5 -1
  196. package/src/tsconfig.core.json +8 -1
  197. package/src/tsconfig.node.json +1 -1
  198. package/src/tsconfig.src.json +1 -1
  199. package/src/{core → utils}/bypass.test.ts +22 -5
  200. package/src/{core → utils}/bypass.ts +11 -0
  201. package/src/{core → utils}/delay.ts +5 -5
  202. package/src/utils/get-clean-url-string.test.ts +24 -0
  203. package/src/utils/get-clean-url-string.ts +16 -0
  204. package/src/{core/getResponse.test.ts → utils/get-response.test.ts} +9 -9
  205. package/src/{core/getResponse.ts → utils/get-response.ts} +2 -2
  206. package/src/{core/isCommonAssetRequest.ts → utils/is-common-asset-request.ts} +4 -3
  207. package/src/utils/passthrough.test.ts +41 -0
  208. package/src/utils/passthrough.ts +46 -0
  209. package/src/vite/client.d.ts +16 -0
  210. package/src/vite/index.ts +4 -0
  211. package/src/vite/options.d.ts +5 -0
  212. package/src/vite/plugin.test.ts +918 -0
  213. package/src/vite/plugin.ts +133 -0
  214. package/src/vite/runtime.ts +117 -0
  215. package/src/vite/tsconfig.build.json +7 -0
  216. package/src/ws/index.ts +23 -0
  217. package/src/{core/ws/utils/attachWebSocketLogger.ts → ws/utils/attach-websocket-logger.ts} +45 -23
  218. package/src/{core/ws/utils/getMessageLength.test.ts → ws/utils/get-message-length.test.ts} +4 -4
  219. package/src/{core/ws/utils/getMessageLength.ts → ws/utils/get-message-length.ts} +1 -1
  220. package/src/{core/ws/utils/getPublicData.test.ts → ws/utils/get-public-data.test.ts} +7 -7
  221. package/src/ws/utils/get-public-data.ts +23 -0
  222. package/src/{core/ws/utils/truncateMessage.test.ts → ws/utils/truncate-message.test.ts} +3 -3
  223. package/src/{core/ws/WebSocketClientManager.test.ts → ws/websocket-client-manager.test.ts} +8 -9
  224. package/src/{core/ws/WebSocketClientManager.ts → ws/websocket-client-manager.ts} +24 -28
  225. package/src/{core/ws/WebSocketClientStore.ts → ws/websocket-client-store.ts} +2 -2
  226. package/src/{core/handlers/WebSocketHandler.test.ts → ws/websocket-handler.test.ts} +15 -15
  227. package/src/{core/handlers/WebSocketHandler.ts → ws/websocket-handler.ts} +144 -32
  228. package/src/{core/ws/WebSocketIndexedDBClientStore.ts → ws/websocket-indexeddb-client-store.ts} +12 -13
  229. package/src/{core/ws/WebSocketMemoryClientStore.ts → ws/websocket-memory-client-store.ts} +4 -4
  230. package/src/ws/websocket-upgrade.ts +83 -0
  231. package/src/{core → ws}/ws.test.ts +3 -4
  232. package/src/{core → ws}/ws.ts +106 -53
  233. package/browser/package.json +0 -31
  234. package/cli/package.json +0 -3
  235. package/config/package.json +0 -3
  236. package/config/scripts/postinstall.js +0 -36
  237. package/lib/browser/index.d.mts +0 -112
  238. package/lib/browser/index.mjs +0 -3706
  239. package/lib/browser/index.mjs.map +0 -1
  240. package/lib/core/HttpResponse-BE_Y2Ak9.d.mts +0 -389
  241. package/lib/core/HttpResponse-DL-P1EeG.d.ts +0 -389
  242. package/lib/core/HttpResponse.d.mts +0 -6
  243. package/lib/core/HttpResponse.d.ts +0 -6
  244. package/lib/core/HttpResponse.js +0 -176
  245. package/lib/core/HttpResponse.js.map +0 -1
  246. package/lib/core/HttpResponse.mjs +0 -159
  247. package/lib/core/HttpResponse.mjs.map +0 -1
  248. package/lib/core/bypass.d.mts +0 -16
  249. package/lib/core/bypass.js +0 -42
  250. package/lib/core/bypass.js.map +0 -1
  251. package/lib/core/bypass.mjs +0 -22
  252. package/lib/core/bypass.mjs.map +0 -1
  253. package/lib/core/delay.d.mts +0 -18
  254. package/lib/core/delay.d.ts +0 -18
  255. package/lib/core/delay.js +0 -77
  256. package/lib/core/delay.js.map +0 -1
  257. package/lib/core/delay.mjs +0 -57
  258. package/lib/core/delay.mjs.map +0 -1
  259. package/lib/core/experimental/compat.d.mts +0 -17
  260. package/lib/core/experimental/compat.d.ts +0 -17
  261. package/lib/core/experimental/compat.js +0 -55
  262. package/lib/core/experimental/compat.js.map +0 -1
  263. package/lib/core/experimental/compat.mjs +0 -37
  264. package/lib/core/experimental/compat.mjs.map +0 -1
  265. package/lib/core/experimental/define-network.d.mts +0 -75
  266. package/lib/core/experimental/define-network.d.ts +0 -75
  267. package/lib/core/experimental/define-network.js +0 -134
  268. package/lib/core/experimental/define-network.js.map +0 -1
  269. package/lib/core/experimental/define-network.mjs +0 -119
  270. package/lib/core/experimental/define-network.mjs.map +0 -1
  271. package/lib/core/experimental/frames/http-frame.d.mts +0 -77
  272. package/lib/core/experimental/frames/http-frame.d.ts +0 -77
  273. package/lib/core/experimental/frames/http-frame.js +0 -197
  274. package/lib/core/experimental/frames/http-frame.js.map +0 -1
  275. package/lib/core/experimental/frames/http-frame.mjs +0 -181
  276. package/lib/core/experimental/frames/http-frame.mjs.map +0 -1
  277. package/lib/core/experimental/frames/network-frame.d.mts +0 -12
  278. package/lib/core/experimental/frames/network-frame.d.ts +0 -12
  279. package/lib/core/experimental/frames/network-frame.js +0 -35
  280. package/lib/core/experimental/frames/network-frame.js.map +0 -1
  281. package/lib/core/experimental/frames/network-frame.mjs +0 -15
  282. package/lib/core/experimental/frames/network-frame.mjs.map +0 -1
  283. package/lib/core/experimental/frames/websocket-frame.d.mts +0 -55
  284. package/lib/core/experimental/frames/websocket-frame.d.ts +0 -55
  285. package/lib/core/experimental/frames/websocket-frame.js +0 -131
  286. package/lib/core/experimental/frames/websocket-frame.js.map +0 -1
  287. package/lib/core/experimental/frames/websocket-frame.mjs +0 -118
  288. package/lib/core/experimental/frames/websocket-frame.mjs.map +0 -1
  289. package/lib/core/experimental/handlers-controller.d.mts +0 -36
  290. package/lib/core/experimental/handlers-controller.d.ts +0 -36
  291. package/lib/core/experimental/handlers-controller.js +0 -146
  292. package/lib/core/experimental/handlers-controller.js.map +0 -1
  293. package/lib/core/experimental/handlers-controller.mjs +0 -126
  294. package/lib/core/experimental/handlers-controller.mjs.map +0 -1
  295. package/lib/core/experimental/index.d.mts +0 -17
  296. package/lib/core/experimental/index.js.map +0 -1
  297. package/lib/core/experimental/index.mjs +0 -27
  298. package/lib/core/experimental/index.mjs.map +0 -1
  299. package/lib/core/experimental/on-unhandled-frame.d.mts +0 -12
  300. package/lib/core/experimental/on-unhandled-frame.d.ts +0 -12
  301. package/lib/core/experimental/on-unhandled-frame.js +0 -91
  302. package/lib/core/experimental/on-unhandled-frame.js.map +0 -1
  303. package/lib/core/experimental/on-unhandled-frame.mjs +0 -71
  304. package/lib/core/experimental/on-unhandled-frame.mjs.map +0 -1
  305. package/lib/core/experimental/request-utils.d.mts +0 -12
  306. package/lib/core/experimental/request-utils.d.ts +0 -12
  307. package/lib/core/experimental/request-utils.js +0 -50
  308. package/lib/core/experimental/request-utils.js.map +0 -1
  309. package/lib/core/experimental/request-utils.mjs +0 -30
  310. package/lib/core/experimental/request-utils.mjs.map +0 -1
  311. package/lib/core/experimental/setup-api.d.mts +0 -33
  312. package/lib/core/experimental/setup-api.d.ts +0 -33
  313. package/lib/core/experimental/setup-api.js +0 -58
  314. package/lib/core/experimental/setup-api.js.map +0 -1
  315. package/lib/core/experimental/setup-api.mjs +0 -40
  316. package/lib/core/experimental/setup-api.mjs.map +0 -1
  317. package/lib/core/experimental/sources/interceptor-source.d.mts +0 -28
  318. package/lib/core/experimental/sources/interceptor-source.d.ts +0 -28
  319. package/lib/core/experimental/sources/interceptor-source.js +0 -155
  320. package/lib/core/experimental/sources/interceptor-source.js.map +0 -1
  321. package/lib/core/experimental/sources/interceptor-source.mjs +0 -135
  322. package/lib/core/experimental/sources/interceptor-source.mjs.map +0 -1
  323. package/lib/core/experimental/sources/network-source.d.mts +0 -31
  324. package/lib/core/experimental/sources/network-source.d.ts +0 -31
  325. package/lib/core/experimental/sources/network-source.js +0 -51
  326. package/lib/core/experimental/sources/network-source.js.map +0 -1
  327. package/lib/core/experimental/sources/network-source.mjs +0 -32
  328. package/lib/core/experimental/sources/network-source.mjs.map +0 -1
  329. package/lib/core/getResponse.d.mts +0 -18
  330. package/lib/core/getResponse.d.ts +0 -18
  331. package/lib/core/getResponse.js +0 -35
  332. package/lib/core/getResponse.js.map +0 -1
  333. package/lib/core/getResponse.mjs +0 -17
  334. package/lib/core/getResponse.mjs.map +0 -1
  335. package/lib/core/graphql.d.mts +0 -76
  336. package/lib/core/graphql.d.ts +0 -76
  337. package/lib/core/graphql.js +0 -91
  338. package/lib/core/graphql.js.map +0 -1
  339. package/lib/core/graphql.mjs +0 -74
  340. package/lib/core/graphql.mjs.map +0 -1
  341. package/lib/core/handlers/GraphQLHandler.d.mts +0 -6
  342. package/lib/core/handlers/GraphQLHandler.d.ts +0 -6
  343. package/lib/core/handlers/GraphQLHandler.js +0 -232
  344. package/lib/core/handlers/GraphQLHandler.js.map +0 -1
  345. package/lib/core/handlers/GraphQLHandler.mjs +0 -221
  346. package/lib/core/handlers/GraphQLHandler.mjs.map +0 -1
  347. package/lib/core/handlers/HttpHandler.d.mts +0 -75
  348. package/lib/core/handlers/HttpHandler.d.ts +0 -75
  349. package/lib/core/handlers/HttpHandler.js +0 -129
  350. package/lib/core/handlers/HttpHandler.js.map +0 -1
  351. package/lib/core/handlers/HttpHandler.mjs +0 -113
  352. package/lib/core/handlers/HttpHandler.mjs.map +0 -1
  353. package/lib/core/handlers/RequestHandler.d.mts +0 -6
  354. package/lib/core/handlers/RequestHandler.d.ts +0 -6
  355. package/lib/core/handlers/RequestHandler.js +0 -365
  356. package/lib/core/handlers/RequestHandler.js.map +0 -1
  357. package/lib/core/handlers/RequestHandler.mjs +0 -348
  358. package/lib/core/handlers/RequestHandler.mjs.map +0 -1
  359. package/lib/core/handlers/WebSocketHandler.d.mts +0 -49
  360. package/lib/core/handlers/WebSocketHandler.d.ts +0 -49
  361. package/lib/core/handlers/WebSocketHandler.js +0 -178
  362. package/lib/core/handlers/WebSocketHandler.js.map +0 -1
  363. package/lib/core/handlers/WebSocketHandler.mjs +0 -160
  364. package/lib/core/handlers/WebSocketHandler.mjs.map +0 -1
  365. package/lib/core/http.d.mts +0 -31
  366. package/lib/core/http.js +0 -41
  367. package/lib/core/http.js.map +0 -1
  368. package/lib/core/http.mjs +0 -25
  369. package/lib/core/http.mjs.map +0 -1
  370. package/lib/core/index.d.mts +0 -27
  371. package/lib/core/index.js.map +0 -1
  372. package/lib/core/index.mjs +0 -52
  373. package/lib/core/index.mjs.map +0 -1
  374. package/lib/core/isCommonAssetRequest.d.mts +0 -20
  375. package/lib/core/isCommonAssetRequest.d.ts +0 -20
  376. package/lib/core/isCommonAssetRequest.js +0 -42
  377. package/lib/core/isCommonAssetRequest.js.map +0 -1
  378. package/lib/core/isCommonAssetRequest.mjs +0 -22
  379. package/lib/core/isCommonAssetRequest.mjs.map +0 -1
  380. package/lib/core/on-unhandled-frame-0KmwUmeV.d.ts +0 -56
  381. package/lib/core/on-unhandled-frame-gkokW4Rr.d.mts +0 -56
  382. package/lib/core/passthrough.d.mts +0 -24
  383. package/lib/core/passthrough.d.ts +0 -24
  384. package/lib/core/passthrough.js +0 -33
  385. package/lib/core/passthrough.js.map +0 -1
  386. package/lib/core/passthrough.mjs +0 -13
  387. package/lib/core/passthrough.mjs.map +0 -1
  388. package/lib/core/sharedOptions.d.mts +0 -68
  389. package/lib/core/sharedOptions.d.ts +0 -68
  390. package/lib/core/sharedOptions.js +0 -17
  391. package/lib/core/sharedOptions.js.map +0 -1
  392. package/lib/core/sharedOptions.mjs +0 -1
  393. package/lib/core/sharedOptions.mjs.map +0 -1
  394. package/lib/core/sse.d.mts +0 -102
  395. package/lib/core/sse.d.ts +0 -102
  396. package/lib/core/sse.js +0 -690
  397. package/lib/core/sse.js.map +0 -1
  398. package/lib/core/sse.mjs +0 -672
  399. package/lib/core/sse.mjs.map +0 -1
  400. package/lib/core/typeUtils.d.mts +0 -12
  401. package/lib/core/typeUtils.d.ts +0 -12
  402. package/lib/core/typeUtils.js +0 -17
  403. package/lib/core/typeUtils.js.map +0 -1
  404. package/lib/core/typeUtils.mjs +0 -1
  405. package/lib/core/typeUtils.mjs.map +0 -1
  406. package/lib/core/utils/HttpResponse/decorators.d.mts +0 -22
  407. package/lib/core/utils/HttpResponse/decorators.d.ts +0 -22
  408. package/lib/core/utils/HttpResponse/decorators.js +0 -84
  409. package/lib/core/utils/HttpResponse/decorators.js.map +0 -1
  410. package/lib/core/utils/HttpResponse/decorators.mjs +0 -54
  411. package/lib/core/utils/HttpResponse/decorators.mjs.map +0 -1
  412. package/lib/core/utils/cookieStore.d.mts +0 -13
  413. package/lib/core/utils/cookieStore.d.ts +0 -13
  414. package/lib/core/utils/cookieStore.js +0 -90
  415. package/lib/core/utils/cookieStore.js.map +0 -1
  416. package/lib/core/utils/cookieStore.mjs +0 -74
  417. package/lib/core/utils/cookieStore.mjs.map +0 -1
  418. package/lib/core/utils/executeHandlers.d.mts +0 -6
  419. package/lib/core/utils/executeHandlers.d.ts +0 -6
  420. package/lib/core/utils/executeHandlers.js +0 -51
  421. package/lib/core/utils/executeHandlers.js.map +0 -1
  422. package/lib/core/utils/executeHandlers.mjs +0 -31
  423. package/lib/core/utils/executeHandlers.mjs.map +0 -1
  424. package/lib/core/utils/handleRequest.d.mts +0 -30
  425. package/lib/core/utils/handleRequest.d.ts +0 -30
  426. package/lib/core/utils/handleRequest.js +0 -76
  427. package/lib/core/utils/handleRequest.js.map +0 -1
  428. package/lib/core/utils/handleRequest.mjs +0 -58
  429. package/lib/core/utils/handleRequest.mjs.map +0 -1
  430. package/lib/core/utils/internal/Disposable.d.mts +0 -7
  431. package/lib/core/utils/internal/Disposable.d.ts +0 -7
  432. package/lib/core/utils/internal/Disposable.js +0 -51
  433. package/lib/core/utils/internal/Disposable.js.map +0 -1
  434. package/lib/core/utils/internal/Disposable.mjs +0 -31
  435. package/lib/core/utils/internal/Disposable.mjs.map +0 -1
  436. package/lib/core/utils/internal/attachSiblingHandlers.d.mts +0 -15
  437. package/lib/core/utils/internal/attachSiblingHandlers.d.ts +0 -15
  438. package/lib/core/utils/internal/attachSiblingHandlers.js +0 -44
  439. package/lib/core/utils/internal/attachSiblingHandlers.js.map +0 -1
  440. package/lib/core/utils/internal/attachSiblingHandlers.mjs +0 -24
  441. package/lib/core/utils/internal/attachSiblingHandlers.mjs.map +0 -1
  442. package/lib/core/utils/internal/checkGlobals.d.mts +0 -3
  443. package/lib/core/utils/internal/checkGlobals.d.ts +0 -3
  444. package/lib/core/utils/internal/checkGlobals.js +0 -34
  445. package/lib/core/utils/internal/checkGlobals.js.map +0 -1
  446. package/lib/core/utils/internal/checkGlobals.mjs +0 -14
  447. package/lib/core/utils/internal/checkGlobals.mjs.map +0 -1
  448. package/lib/core/utils/internal/devUtils.d.mts +0 -28
  449. package/lib/core/utils/internal/devUtils.d.ts +0 -28
  450. package/lib/core/utils/internal/devUtils.js +0 -48
  451. package/lib/core/utils/internal/devUtils.js.map +0 -1
  452. package/lib/core/utils/internal/devUtils.mjs +0 -28
  453. package/lib/core/utils/internal/devUtils.mjs.map +0 -1
  454. package/lib/core/utils/internal/getCallFrame.d.mts +0 -6
  455. package/lib/core/utils/internal/getCallFrame.d.ts +0 -6
  456. package/lib/core/utils/internal/getCallFrame.js +0 -41
  457. package/lib/core/utils/internal/getCallFrame.js.map +0 -1
  458. package/lib/core/utils/internal/getCallFrame.mjs +0 -21
  459. package/lib/core/utils/internal/getCallFrame.mjs.map +0 -1
  460. package/lib/core/utils/internal/hasRefCounted.d.mts +0 -3
  461. package/lib/core/utils/internal/hasRefCounted.d.ts +0 -3
  462. package/lib/core/utils/internal/hasRefCounted.js +0 -34
  463. package/lib/core/utils/internal/hasRefCounted.js.map +0 -1
  464. package/lib/core/utils/internal/hasRefCounted.mjs +0 -14
  465. package/lib/core/utils/internal/hasRefCounted.mjs.map +0 -1
  466. package/lib/core/utils/internal/isHandlerKind.d.mts +0 -19
  467. package/lib/core/utils/internal/isHandlerKind.d.ts +0 -19
  468. package/lib/core/utils/internal/isHandlerKind.js +0 -30
  469. package/lib/core/utils/internal/isHandlerKind.js.map +0 -1
  470. package/lib/core/utils/internal/isHandlerKind.mjs +0 -10
  471. package/lib/core/utils/internal/isHandlerKind.mjs.map +0 -1
  472. package/lib/core/utils/internal/isIterable.d.mts +0 -20
  473. package/lib/core/utils/internal/isIterable.d.ts +0 -20
  474. package/lib/core/utils/internal/isIterable.js +0 -30
  475. package/lib/core/utils/internal/isIterable.js.map +0 -1
  476. package/lib/core/utils/internal/isIterable.mjs +0 -10
  477. package/lib/core/utils/internal/isIterable.mjs.map +0 -1
  478. package/lib/core/utils/internal/isObject.d.mts +0 -6
  479. package/lib/core/utils/internal/isObject.d.ts +0 -6
  480. package/lib/core/utils/internal/isObject.js +0 -27
  481. package/lib/core/utils/internal/isObject.js.map +0 -1
  482. package/lib/core/utils/internal/isObject.mjs +0 -7
  483. package/lib/core/utils/internal/isObject.mjs.map +0 -1
  484. package/lib/core/utils/internal/isStringEqual.d.mts +0 -6
  485. package/lib/core/utils/internal/isStringEqual.d.ts +0 -6
  486. package/lib/core/utils/internal/isStringEqual.js +0 -27
  487. package/lib/core/utils/internal/isStringEqual.js.map +0 -1
  488. package/lib/core/utils/internal/isStringEqual.mjs +0 -7
  489. package/lib/core/utils/internal/isStringEqual.mjs.map +0 -1
  490. package/lib/core/utils/internal/jsonParse.d.mts +0 -7
  491. package/lib/core/utils/internal/jsonParse.d.ts +0 -7
  492. package/lib/core/utils/internal/jsonParse.js +0 -31
  493. package/lib/core/utils/internal/jsonParse.js.map +0 -1
  494. package/lib/core/utils/internal/jsonParse.mjs +0 -11
  495. package/lib/core/utils/internal/jsonParse.mjs.map +0 -1
  496. package/lib/core/utils/internal/mergeRight.d.mts +0 -7
  497. package/lib/core/utils/internal/mergeRight.d.ts +0 -7
  498. package/lib/core/utils/internal/mergeRight.js +0 -43
  499. package/lib/core/utils/internal/mergeRight.js.map +0 -1
  500. package/lib/core/utils/internal/mergeRight.mjs +0 -23
  501. package/lib/core/utils/internal/mergeRight.mjs.map +0 -1
  502. package/lib/core/utils/internal/observe-response-body-stream.d.mts +0 -18
  503. package/lib/core/utils/internal/observe-response-body-stream.d.ts +0 -18
  504. package/lib/core/utils/internal/observe-response-body-stream.js +0 -64
  505. package/lib/core/utils/internal/observe-response-body-stream.js.map +0 -1
  506. package/lib/core/utils/internal/observe-response-body-stream.mjs +0 -44
  507. package/lib/core/utils/internal/observe-response-body-stream.mjs.map +0 -1
  508. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +0 -6
  509. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +0 -6
  510. package/lib/core/utils/internal/parseGraphQLRequest.js +0 -146
  511. package/lib/core/utils/internal/parseGraphQLRequest.js.map +0 -1
  512. package/lib/core/utils/internal/parseGraphQLRequest.mjs +0 -129
  513. package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +0 -1
  514. package/lib/core/utils/internal/parseMultipartData.d.mts +0 -14
  515. package/lib/core/utils/internal/parseMultipartData.d.ts +0 -14
  516. package/lib/core/utils/internal/parseMultipartData.js +0 -84
  517. package/lib/core/utils/internal/parseMultipartData.js.map +0 -1
  518. package/lib/core/utils/internal/parseMultipartData.mjs +0 -64
  519. package/lib/core/utils/internal/parseMultipartData.mjs.map +0 -1
  520. package/lib/core/utils/internal/pipeEvents.d.mts +0 -8
  521. package/lib/core/utils/internal/pipeEvents.d.ts +0 -8
  522. package/lib/core/utils/internal/pipeEvents.js +0 -37
  523. package/lib/core/utils/internal/pipeEvents.js.map +0 -1
  524. package/lib/core/utils/internal/pipeEvents.mjs +0 -17
  525. package/lib/core/utils/internal/pipeEvents.mjs.map +0 -1
  526. package/lib/core/utils/internal/toReadonlyArray.d.mts +0 -6
  527. package/lib/core/utils/internal/toReadonlyArray.d.ts +0 -6
  528. package/lib/core/utils/internal/toReadonlyArray.js +0 -29
  529. package/lib/core/utils/internal/toReadonlyArray.js.map +0 -1
  530. package/lib/core/utils/internal/toReadonlyArray.mjs +0 -9
  531. package/lib/core/utils/internal/toReadonlyArray.mjs.map +0 -1
  532. package/lib/core/utils/internal/tryCatch.d.mts +0 -3
  533. package/lib/core/utils/internal/tryCatch.d.ts +0 -3
  534. package/lib/core/utils/internal/tryCatch.js +0 -32
  535. package/lib/core/utils/internal/tryCatch.js.map +0 -1
  536. package/lib/core/utils/internal/tryCatch.mjs +0 -12
  537. package/lib/core/utils/internal/tryCatch.mjs.map +0 -1
  538. package/lib/core/utils/logging/getStatusCodeColor.d.mts +0 -11
  539. package/lib/core/utils/logging/getStatusCodeColor.d.ts +0 -11
  540. package/lib/core/utils/logging/getStatusCodeColor.js +0 -40
  541. package/lib/core/utils/logging/getStatusCodeColor.js.map +0 -1
  542. package/lib/core/utils/logging/getStatusCodeColor.mjs +0 -20
  543. package/lib/core/utils/logging/getStatusCodeColor.mjs.map +0 -1
  544. package/lib/core/utils/logging/getTimestamp.d.mts +0 -9
  545. package/lib/core/utils/logging/getTimestamp.d.ts +0 -9
  546. package/lib/core/utils/logging/getTimestamp.js +0 -32
  547. package/lib/core/utils/logging/getTimestamp.js.map +0 -1
  548. package/lib/core/utils/logging/getTimestamp.mjs +0 -12
  549. package/lib/core/utils/logging/getTimestamp.mjs.map +0 -1
  550. package/lib/core/utils/logging/serializeRequest.d.mts +0 -12
  551. package/lib/core/utils/logging/serializeRequest.d.ts +0 -12
  552. package/lib/core/utils/logging/serializeRequest.js +0 -34
  553. package/lib/core/utils/logging/serializeRequest.js.map +0 -1
  554. package/lib/core/utils/logging/serializeRequest.mjs +0 -14
  555. package/lib/core/utils/logging/serializeRequest.mjs.map +0 -1
  556. package/lib/core/utils/logging/serializeResponse.d.mts +0 -9
  557. package/lib/core/utils/logging/serializeResponse.d.ts +0 -9
  558. package/lib/core/utils/logging/serializeResponse.js +0 -48
  559. package/lib/core/utils/logging/serializeResponse.js.map +0 -1
  560. package/lib/core/utils/logging/serializeResponse.mjs +0 -18
  561. package/lib/core/utils/logging/serializeResponse.mjs.map +0 -1
  562. package/lib/core/utils/matching/matchRequestUrl.d.mts +0 -20
  563. package/lib/core/utils/matching/matchRequestUrl.d.ts +0 -20
  564. package/lib/core/utils/matching/matchRequestUrl.js +0 -55
  565. package/lib/core/utils/matching/matchRequestUrl.js.map +0 -1
  566. package/lib/core/utils/matching/matchRequestUrl.mjs +0 -35
  567. package/lib/core/utils/matching/matchRequestUrl.mjs.map +0 -1
  568. package/lib/core/utils/matching/normalizePath.d.mts +0 -13
  569. package/lib/core/utils/matching/normalizePath.d.ts +0 -13
  570. package/lib/core/utils/matching/normalizePath.js +0 -33
  571. package/lib/core/utils/matching/normalizePath.js.map +0 -1
  572. package/lib/core/utils/matching/normalizePath.mjs +0 -13
  573. package/lib/core/utils/matching/normalizePath.mjs.map +0 -1
  574. package/lib/core/utils/request/getAllAcceptedMimeTypes.d.mts +0 -14
  575. package/lib/core/utils/request/getAllAcceptedMimeTypes.d.ts +0 -14
  576. package/lib/core/utils/request/getAllAcceptedMimeTypes.js +0 -61
  577. package/lib/core/utils/request/getAllAcceptedMimeTypes.js.map +0 -1
  578. package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs +0 -41
  579. package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs.map +0 -1
  580. package/lib/core/utils/request/getRequestCookies.d.mts +0 -3
  581. package/lib/core/utils/request/getRequestCookies.d.ts +0 -3
  582. package/lib/core/utils/request/getRequestCookies.js +0 -79
  583. package/lib/core/utils/request/getRequestCookies.js.map +0 -1
  584. package/lib/core/utils/request/getRequestCookies.mjs +0 -62
  585. package/lib/core/utils/request/getRequestCookies.mjs.map +0 -1
  586. package/lib/core/utils/request/onUnhandledRequest.d.mts +0 -9
  587. package/lib/core/utils/request/onUnhandledRequest.d.ts +0 -9
  588. package/lib/core/utils/request/onUnhandledRequest.js +0 -76
  589. package/lib/core/utils/request/onUnhandledRequest.js.map +0 -1
  590. package/lib/core/utils/request/onUnhandledRequest.mjs +0 -56
  591. package/lib/core/utils/request/onUnhandledRequest.mjs.map +0 -1
  592. package/lib/core/utils/request/storeResponseCookies.d.mts +0 -3
  593. package/lib/core/utils/request/storeResponseCookies.d.ts +0 -3
  594. package/lib/core/utils/request/storeResponseCookies.js +0 -32
  595. package/lib/core/utils/request/storeResponseCookies.js.map +0 -1
  596. package/lib/core/utils/request/storeResponseCookies.mjs +0 -12
  597. package/lib/core/utils/request/storeResponseCookies.mjs.map +0 -1
  598. package/lib/core/utils/request/toPublicUrl.d.mts +0 -7
  599. package/lib/core/utils/request/toPublicUrl.d.ts +0 -7
  600. package/lib/core/utils/request/toPublicUrl.js +0 -31
  601. package/lib/core/utils/request/toPublicUrl.js.map +0 -1
  602. package/lib/core/utils/request/toPublicUrl.mjs +0 -11
  603. package/lib/core/utils/request/toPublicUrl.mjs.map +0 -1
  604. package/lib/core/utils/toResponseInit.d.mts +0 -3
  605. package/lib/core/utils/toResponseInit.d.ts +0 -3
  606. package/lib/core/utils/toResponseInit.js +0 -31
  607. package/lib/core/utils/toResponseInit.js.map +0 -1
  608. package/lib/core/utils/toResponseInit.mjs +0 -11
  609. package/lib/core/utils/toResponseInit.mjs.map +0 -1
  610. package/lib/core/utils/url/cleanUrl.d.mts +0 -7
  611. package/lib/core/utils/url/cleanUrl.d.ts +0 -7
  612. package/lib/core/utils/url/cleanUrl.js +0 -31
  613. package/lib/core/utils/url/cleanUrl.js.map +0 -1
  614. package/lib/core/utils/url/cleanUrl.mjs +0 -11
  615. package/lib/core/utils/url/cleanUrl.mjs.map +0 -1
  616. package/lib/core/utils/url/getAbsoluteUrl.d.mts +0 -6
  617. package/lib/core/utils/url/getAbsoluteUrl.d.ts +0 -6
  618. package/lib/core/utils/url/getAbsoluteUrl.js +0 -38
  619. package/lib/core/utils/url/getAbsoluteUrl.js.map +0 -1
  620. package/lib/core/utils/url/getAbsoluteUrl.mjs +0 -18
  621. package/lib/core/utils/url/getAbsoluteUrl.mjs.map +0 -1
  622. package/lib/core/utils/url/isAbsoluteUrl.d.mts +0 -6
  623. package/lib/core/utils/url/isAbsoluteUrl.d.ts +0 -6
  624. package/lib/core/utils/url/isAbsoluteUrl.js +0 -27
  625. package/lib/core/utils/url/isAbsoluteUrl.js.map +0 -1
  626. package/lib/core/utils/url/isAbsoluteUrl.mjs +0 -7
  627. package/lib/core/utils/url/isAbsoluteUrl.mjs.map +0 -1
  628. package/lib/core/ws/WebSocketClientManager.d.mts +0 -65
  629. package/lib/core/ws/WebSocketClientManager.d.ts +0 -65
  630. package/lib/core/ws/WebSocketClientManager.js +0 -163
  631. package/lib/core/ws/WebSocketClientManager.js.map +0 -1
  632. package/lib/core/ws/WebSocketClientManager.mjs +0 -143
  633. package/lib/core/ws/WebSocketClientManager.mjs.map +0 -1
  634. package/lib/core/ws/WebSocketClientStore.d.mts +0 -13
  635. package/lib/core/ws/WebSocketClientStore.d.ts +0 -13
  636. package/lib/core/ws/WebSocketClientStore.js +0 -26
  637. package/lib/core/ws/WebSocketClientStore.js.map +0 -1
  638. package/lib/core/ws/WebSocketClientStore.mjs +0 -6
  639. package/lib/core/ws/WebSocketClientStore.mjs.map +0 -1
  640. package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +0 -14
  641. package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +0 -14
  642. package/lib/core/ws/WebSocketIndexedDBClientStore.js +0 -131
  643. package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +0 -1
  644. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs +0 -111
  645. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +0 -1
  646. package/lib/core/ws/WebSocketMemoryClientStore.d.mts +0 -12
  647. package/lib/core/ws/WebSocketMemoryClientStore.d.ts +0 -12
  648. package/lib/core/ws/WebSocketMemoryClientStore.js +0 -42
  649. package/lib/core/ws/WebSocketMemoryClientStore.js.map +0 -1
  650. package/lib/core/ws/WebSocketMemoryClientStore.mjs +0 -22
  651. package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +0 -1
  652. package/lib/core/ws/handleWebSocketEvent.d.mts +0 -20
  653. package/lib/core/ws/handleWebSocketEvent.d.ts +0 -20
  654. package/lib/core/ws/handleWebSocketEvent.js +0 -61
  655. package/lib/core/ws/handleWebSocketEvent.js.map +0 -1
  656. package/lib/core/ws/handleWebSocketEvent.mjs +0 -43
  657. package/lib/core/ws/handleWebSocketEvent.mjs.map +0 -1
  658. package/lib/core/ws/utils/attachWebSocketLogger.d.mts +0 -18
  659. package/lib/core/ws/utils/attachWebSocketLogger.d.ts +0 -18
  660. package/lib/core/ws/utils/attachWebSocketLogger.js +0 -228
  661. package/lib/core/ws/utils/attachWebSocketLogger.js.map +0 -1
  662. package/lib/core/ws/utils/attachWebSocketLogger.mjs +0 -208
  663. package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +0 -1
  664. package/lib/core/ws/utils/getMessageLength.d.mts +0 -11
  665. package/lib/core/ws/utils/getMessageLength.d.ts +0 -11
  666. package/lib/core/ws/utils/getMessageLength.js +0 -34
  667. package/lib/core/ws/utils/getMessageLength.js.map +0 -1
  668. package/lib/core/ws/utils/getMessageLength.mjs +0 -14
  669. package/lib/core/ws/utils/getMessageLength.mjs.map +0 -1
  670. package/lib/core/ws/utils/getPublicData.d.mts +0 -5
  671. package/lib/core/ws/utils/getPublicData.d.ts +0 -5
  672. package/lib/core/ws/utils/getPublicData.js +0 -37
  673. package/lib/core/ws/utils/getPublicData.js.map +0 -1
  674. package/lib/core/ws/utils/getPublicData.mjs +0 -17
  675. package/lib/core/ws/utils/getPublicData.mjs.map +0 -1
  676. package/lib/core/ws/utils/truncateMessage.d.mts +0 -3
  677. package/lib/core/ws/utils/truncateMessage.d.ts +0 -3
  678. package/lib/core/ws/utils/truncateMessage.js +0 -31
  679. package/lib/core/ws/utils/truncateMessage.js.map +0 -1
  680. package/lib/core/ws/utils/truncateMessage.mjs +0 -11
  681. package/lib/core/ws/utils/truncateMessage.mjs.map +0 -1
  682. package/lib/core/ws/webSocketInterceptor.d.mts +0 -5
  683. package/lib/core/ws/webSocketInterceptor.d.ts +0 -5
  684. package/lib/core/ws/webSocketInterceptor.js +0 -26
  685. package/lib/core/ws/webSocketInterceptor.js.map +0 -1
  686. package/lib/core/ws/webSocketInterceptor.mjs +0 -6
  687. package/lib/core/ws/webSocketInterceptor.mjs.map +0 -1
  688. package/lib/core/ws.d.mts +0 -88
  689. package/lib/core/ws.d.ts +0 -88
  690. package/lib/core/ws.js +0 -94
  691. package/lib/core/ws.js.map +0 -1
  692. package/lib/core/ws.mjs +0 -80
  693. package/lib/core/ws.mjs.map +0 -1
  694. package/lib/native/index.d.mts +0 -66
  695. package/lib/native/index.d.ts +0 -66
  696. package/lib/native/index.js +0 -88
  697. package/lib/native/index.js.map +0 -1
  698. package/lib/native/index.mjs +0 -67
  699. package/lib/native/index.mjs.map +0 -1
  700. package/lib/node/index.d.mts +0 -113
  701. package/lib/node/index.mjs +0 -185
  702. package/lib/node/index.mjs.map +0 -1
  703. package/lib/shims/cookie.d.mts +0 -7
  704. package/lib/shims/cookie.d.ts +0 -7
  705. package/lib/shims/cookie.js +0 -294
  706. package/lib/shims/cookie.mjs +0 -286
  707. package/lib/shims/statuses.d.mts +0 -6
  708. package/lib/shims/statuses.d.ts +0 -6
  709. package/lib/shims/statuses.js +0 -195
  710. package/lib/shims/statuses.mjs +0 -187
  711. package/native/package.json +0 -30
  712. package/node/package.json +0 -33
  713. package/src/browser/utils/pruneGetRequestBody.test.ts +0 -51
  714. package/src/browser/utils/pruneGetRequestBody.ts +0 -21
  715. package/src/core/experimental/compat.ts +0 -50
  716. package/src/core/experimental/setup-api.ts +0 -55
  717. package/src/core/graphql.test.ts +0 -11
  718. package/src/core/graphql.ts +0 -136
  719. package/src/core/passthrough.test.ts +0 -11
  720. package/src/core/passthrough.ts +0 -25
  721. package/src/core/sharedOptions.ts +0 -71
  722. package/src/core/typeUtils.ts +0 -26
  723. package/src/core/utils/handleRequest.test.ts +0 -574
  724. package/src/core/utils/handleRequest.ts +0 -117
  725. package/src/core/utils/internal/checkGlobals.ts +0 -17
  726. package/src/core/utils/internal/isHandlerKind.test.ts +0 -62
  727. package/src/core/utils/internal/isHandlerKind.ts +0 -17
  728. package/src/core/utils/internal/isIterable.ts +0 -32
  729. package/src/core/utils/internal/mergeRight.test.ts +0 -43
  730. package/src/core/utils/internal/mergeRight.ts +0 -30
  731. package/src/core/utils/internal/pipeEvents.test.ts +0 -14
  732. package/src/core/utils/internal/pipeEvents.ts +0 -26
  733. package/src/core/utils/internal/tryCatch.test.ts +0 -29
  734. package/src/core/utils/internal/tryCatch.ts +0 -11
  735. package/src/core/utils/matching/matchRequestUrl.test.ts +0 -267
  736. package/src/core/utils/matching/matchRequestUrl.ts +0 -77
  737. package/src/core/utils/request/getRequestCookies.ts +0 -88
  738. package/src/core/utils/request/onUnhandledRequest.node.test.ts +0 -62
  739. package/src/core/utils/request/onUnhandledRequest.test.ts +0 -226
  740. package/src/core/utils/request/onUnhandledRequest.ts +0 -81
  741. package/src/core/utils/request/storeResponseCookies.ts +0 -15
  742. package/src/core/utils/url/cleanUrl.test.ts +0 -22
  743. package/src/core/utils/url/cleanUrl.ts +0 -16
  744. package/src/core/utils/url/isAbsoluteUrl.test.ts +0 -32
  745. package/src/core/ws/handleWebSocketEvent.ts +0 -68
  746. package/src/core/ws/utils/getPublicData.ts +0 -18
  747. package/src/core/ws/webSocketInterceptor.ts +0 -3
  748. package/src/native/index.ts +0 -44
  749. package/src/package.json +0 -3
  750. package/src/shims/cookie.ts +0 -7
  751. package/src/shims/statuses.ts +0 -6
  752. /package/src/browser/utils/{getAbsoluteWorkerUrl.ts → get-absolute-worker-url.ts} +0 -0
  753. /package/src/core/utils/internal/{devUtils.ts → dev-utils.ts} +0 -0
  754. /package/src/core/utils/internal/{isObject.ts → is-object.ts} +0 -0
  755. /package/src/core/utils/internal/{isStringEqual.ts → is-string-equal.ts} +0 -0
  756. /package/src/core/utils/internal/{jsonParse.ts → json-parse.ts} +0 -0
  757. /package/src/core/utils/internal/{toReadonlyArray.ts → to-readonly-array.ts} +0 -0
  758. /package/src/core/utils/logging/{getStatusCodeColor.ts → get-status-code-color.ts} +0 -0
  759. /package/src/core/utils/logging/{getTimestamp.ts → get-timestamp.ts} +0 -0
  760. /package/src/core/utils/logging/{serializeRequest.ts → serialize-request.ts} +0 -0
  761. /package/src/core/utils/request/{getAllAcceptedMimeTypes.ts → get-all-accepted-mime-types.ts} +0 -0
  762. /package/src/core/utils/request/{toPublicUrl.ts → to-public-url.ts} +0 -0
  763. /package/src/core/utils/{toResponseInit.ts → to-response-init.ts} +0 -0
  764. /package/src/core/utils/url/{isAbsoluteUrl.ts → is-absolute-url.ts} +0 -0
  765. /package/src/{core → http}/http.test.ts +0 -0
  766. /package/src/{core/ws/utils/truncateMessage.ts → ws/utils/truncate-message.ts} +0 -0
package/README.md CHANGED
@@ -13,23 +13,17 @@ npm install @depup/msw
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [msw](https://www.npmjs.com/package/msw) @ 2.15.0 |
17
- | Processed | 2026-08-20 |
16
+ | Original | [msw](https://www.npmjs.com/package/msw) @ 3.0.0 |
17
+ | Processed | 2026-09-28 |
18
18
  | Smoke test | passed |
19
- | Deps updated | 8 |
19
+ | Deps updated | 2 |
20
20
 
21
21
  ## Dependency Changes
22
22
 
23
23
  | Dependency | From | To |
24
24
  |------------|------|-----|
25
- | @inquirer/confirm | ^6.0.11 | ^6.2.0 |
26
- | @mswjs/interceptors | ^0.41.3 | ^0.42.3 |
27
- | cookie | ^1.1.1 | ^2.0.1 |
28
- | graphql | ^16.13.2 | ^17.0.2 |
29
- | path-to-regexp | ^6.3.0 | ^8.4.2 |
30
- | tough-cookie | ^6.0.1 | ^6.0.2 |
31
- | type-fest | ^5.5.0 | ^5.8.0 |
32
- | yargs | ^17.7.2 | ^18.1.0 |
25
+ | @inquirer/confirm | ^6.0.11 | ^6.3.2 |
26
+ | type-fest | ^5.5.0 | ^5.10.0 |
33
27
 
34
28
  ---
35
29
 
package/changes.json CHANGED
@@ -2,37 +2,13 @@
2
2
  "bumped": {
3
3
  "@inquirer/confirm": {
4
4
  "from": "^6.0.11",
5
- "to": "^6.2.0"
6
- },
7
- "@mswjs/interceptors": {
8
- "from": "^0.41.3",
9
- "to": "^0.42.3"
10
- },
11
- "cookie": {
12
- "from": "^1.1.1",
13
- "to": "^2.0.1"
14
- },
15
- "graphql": {
16
- "from": "^16.13.2",
17
- "to": "^17.0.2"
18
- },
19
- "path-to-regexp": {
20
- "from": "^6.3.0",
21
- "to": "^8.4.2"
22
- },
23
- "tough-cookie": {
24
- "from": "^6.0.1",
25
- "to": "^6.0.2"
5
+ "to": "^6.3.2"
26
6
  },
27
7
  "type-fest": {
28
8
  "from": "^5.5.0",
29
- "to": "^5.8.0"
30
- },
31
- "yargs": {
32
- "from": "^17.7.2",
33
- "to": "^18.1.0"
9
+ "to": "^5.10.0"
34
10
  }
35
11
  },
36
- "timestamp": "2026-08-20T00:17:09.825Z",
37
- "totalUpdated": 8
12
+ "timestamp": "2026-09-28T16:11:01.003Z",
13
+ "totalUpdated": 2
38
14
  }
package/cli/init.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import fs from 'node:fs'
2
2
  import path from 'node:path'
3
- import colors from 'picocolors'
3
+ import { styleText } from 'node:util'
4
4
  import confirm from '@inquirer/confirm'
5
5
  import { invariant } from './invariant.js'
6
6
  import { SERVICE_WORKER_BUILD_PATH } from '../config/constants.js'
@@ -35,7 +35,8 @@ export async function init(args) {
35
35
  else if (args.save == null) {
36
36
  // eslint-disable-next-line no-console
37
37
  console.log(`\
38
- ${colors.cyan(
38
+ ${styleText(
39
+ 'cyan',
39
40
  'INFO',
40
41
  )} In order to ease the future updates to the worker script,
41
42
  we recommend saving the path to the worker directory in your package.json.`)
@@ -144,21 +145,23 @@ async function copyWorkerScript(destination, cwd) {
144
145
  function printSuccessMessage(paths) {
145
146
  // eslint-disable-next-line no-console
146
147
  console.log(`
147
- ${colors.green('Worker script successfully copied!')}
148
- ${paths.map((path) => colors.gray(` - ${path}\n`))}
148
+ ${styleText('green', 'Worker script successfully copied!')}
149
+ ${paths.map((path) => styleText('gray', ` - ${path}\n`))}
149
150
  Continue by describing the network in your application:
150
151
 
151
152
 
152
- ${colors.red(colors.bold('https://mswjs.io/docs/quick-start'))}
153
+ ${styleText(['red', 'bold'], 'https://mswjs.io/docs/quick-start')}
153
154
  `)
154
155
  }
155
156
 
156
157
  function printFailureMessage(pathsWithErrors) {
157
158
  // eslint-disable-next-line no-console
158
159
  console.error(`\
159
- ${colors.red('Copying the worker script failed at following paths:')}
160
+ ${styleText('red', 'Copying the worker script failed at following paths:')}
160
161
  ${pathsWithErrors
161
- .map(([path, error]) => colors.gray(` - ${path}`) + '\n' + ` ${error}`)
162
+ .map(
163
+ ([path, error]) => styleText('gray', ` - ${path}`) + '\n' + ` ${error}`,
164
+ )
162
165
  .join('\n\n')}
163
166
  `)
164
167
  }
@@ -172,7 +175,7 @@ function saveWorkerDirectory(packageJsonPath, publicDir) {
172
175
 
173
176
  // eslint-disable-next-line no-console
174
177
  console.log(
175
- colors.gray('Updating "msw.workerDirectory" at "%s"...'),
178
+ styleText('gray', 'Updating "msw.workerDirectory" at "%s"...'),
176
179
  packageJsonPath,
177
180
  )
178
181
 
@@ -205,7 +208,7 @@ function saveWorkerDirectory(packageJsonPath, publicDir) {
205
208
  function promptWorkerDirectoryUpdate(message, packageJsonPath, publicDir) {
206
209
  return confirm({
207
210
  theme: {
208
- prefix: colors.yellowBright('?'),
211
+ prefix: styleText('yellowBright', '?'),
209
212
  },
210
213
  message,
211
214
  }).then((answer) => {
package/cli/invariant.js CHANGED
@@ -1,9 +1,9 @@
1
- import colors from 'picocolors'
1
+ import { styleText } from 'node:util'
2
2
 
3
3
  export function invariant(predicate, message, ...args) {
4
4
  if (!predicate) {
5
5
  // eslint-disable-next-line no-console
6
- console.error(colors.red(message), ...args)
6
+ console.error(styleText('red', message), ...args)
7
7
  process.exit(1)
8
8
  }
9
9
  }
@@ -0,0 +1,360 @@
1
+ import { a as matchRequestUrl, g as Handler, h as getCallFrame, m as devUtils, o as isAbsoluteUrl, r as toPublicUrl, s as getTimestamp } from "./cookie-store.js";
2
+ import { t as isObject } from "./is-object.js";
3
+ import { t as colors } from "./colors.js";
4
+ import { invariant } from "outvariant";
5
+ import { createRequestId, resolveWebSocketUrl } from "@mswjs/interceptors";
6
+ import { Emitter, TypedEvent } from "rettime";
7
+ import { WebSocketClientConnection, WebSocketServerConnection } from "@mswjs/interceptors/WebSocket";
8
+ //#region src/ws/utils/get-message-length.ts
9
+ /**
10
+ * Returns the byte length of the given WebSocket message.
11
+ * @example
12
+ * getMessageLength('hello') // 5
13
+ * getMessageLength(new Blob(['hello'])) // 5
14
+ */
15
+ function getMessageLength(data) {
16
+ if (data instanceof Blob) return data.size;
17
+ if (isObject(data) && "byteLength" in data) return data.byteLength;
18
+ return new Blob([data]).size;
19
+ }
20
+ //#endregion
21
+ //#region src/ws/utils/truncate-message.ts
22
+ const MAX_LENGTH = 24;
23
+ function truncateMessage(message) {
24
+ if (message.length <= MAX_LENGTH) return message;
25
+ return `${message.slice(0, MAX_LENGTH)}…`;
26
+ }
27
+ //#endregion
28
+ //#region src/ws/utils/get-public-data.ts
29
+ /**
30
+ * Format the given WebSocket data or protocol message for logging.
31
+ */
32
+ async function getPublicData(data) {
33
+ if (typeof data === "string") return truncateMessage(data);
34
+ if (data instanceof Blob) return `Blob(${truncateMessage(await data.text())})`;
35
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return `ArrayBuffer(${truncateMessage(new TextDecoder().decode(data))})`;
36
+ return truncateMessage(JSON.stringify(data));
37
+ }
38
+ //#endregion
39
+ //#region src/ws/utils/attach-websocket-logger.ts
40
+ function attachWebSocketLogger(connection) {
41
+ const { client, server } = connection;
42
+ const controller = new AbortController();
43
+ logConnectionOpen(client);
44
+ /**
45
+ * @todo Provide the reference to the exact event handler
46
+ * that called this `client.send()`.
47
+ */
48
+ client.addEventListener("message", (event) => {
49
+ logOutgoingClientMessage(event);
50
+ }, { signal: controller.signal });
51
+ client.addEventListener("close", (event) => {
52
+ logConnectionClose(event);
53
+ }, { signal: controller.signal });
54
+ getClientSocket(client)?.addEventListener("error", (event) => {
55
+ logClientError(event);
56
+ }, { signal: controller.signal });
57
+ const { send: originalClientSend } = client;
58
+ client.send = new Proxy(client.send, { apply(target, thisArg, args) {
59
+ const [data] = args;
60
+ const messageEvent = new MessageEvent("message", { data });
61
+ Object.defineProperties(messageEvent, {
62
+ currentTarget: {
63
+ enumerable: true,
64
+ writable: false,
65
+ value: getClientSocket(client)
66
+ },
67
+ target: {
68
+ enumerable: true,
69
+ writable: false,
70
+ value: getClientSocket(client)
71
+ }
72
+ });
73
+ queueMicrotask(() => {
74
+ logIncomingMockedClientMessage(messageEvent);
75
+ });
76
+ return Reflect.apply(target, thisArg, args);
77
+ } });
78
+ server.addEventListener("open", () => {
79
+ server.addEventListener("message", (event) => {
80
+ logIncomingServerMessage(event);
81
+ });
82
+ }, {
83
+ once: true,
84
+ signal: controller.signal
85
+ });
86
+ const { send: originalServerSend } = server;
87
+ server.send = new Proxy(server.send, { apply(target, thisArg, args) {
88
+ const [data] = args;
89
+ const messageEvent = new MessageEvent("message", { data });
90
+ Object.defineProperties(messageEvent, {
91
+ currentTarget: {
92
+ enumerable: true,
93
+ writable: false,
94
+ value: getServerSocket(server)
95
+ },
96
+ target: {
97
+ enumerable: true,
98
+ writable: false,
99
+ value: getServerSocket(server)
100
+ }
101
+ });
102
+ logOutgoingMockedClientMessage(messageEvent);
103
+ return Reflect.apply(target, thisArg, args);
104
+ } });
105
+ controller.signal.addEventListener("abort", () => {
106
+ client.send = originalClientSend;
107
+ server.send = originalServerSend;
108
+ }, { once: true });
109
+ return () => {
110
+ controller.abort();
111
+ };
112
+ }
113
+ /**
114
+ * Prints the WebSocket connection.
115
+ * This is meant to be logged by every WebSocket handler
116
+ * that intercepted this connection. This helps you see
117
+ * what handlers observe this connection.
118
+ */
119
+ function logConnectionOpen(client) {
120
+ const publicUrl = toPublicUrl(client.url);
121
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp()} %c▶%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
122
+ console.log("Client:", getClientSocket(client) ?? client);
123
+ console.groupEnd();
124
+ }
125
+ /**
126
+ * Return the underlying `WebSocket` of the given client, if any.
127
+ * Only in-process client connections are backed by a socket;
128
+ * a handle to a connection elsewhere (e.g. another runtime) is not.
129
+ */
130
+ function getClientSocket(client) {
131
+ if (client instanceof WebSocketClientConnection) return client.socket;
132
+ }
133
+ /**
134
+ * Return the underlying `WebSocket` of the given server, if any.
135
+ * Only in-process server connections are backed by a socket.
136
+ */
137
+ function getServerSocket(server) {
138
+ if (server instanceof WebSocketServerConnection) return server.socket;
139
+ }
140
+ function logConnectionClose(event) {
141
+ const target = event.target;
142
+ const publicUrl = toPublicUrl(target.url);
143
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c■%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
144
+ console.log(event);
145
+ console.groupEnd();
146
+ }
147
+ function logClientError(event) {
148
+ const socket = event.target;
149
+ const publicUrl = toPublicUrl(socket.url);
150
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c\u00D7%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
151
+ console.log(event);
152
+ console.groupEnd();
153
+ }
154
+ /**
155
+ * Prints the outgoing client message.
156
+ */
157
+ async function logOutgoingClientMessage(event) {
158
+ const byteLength = getMessageLength(event.data);
159
+ const publicData = await getPublicData(event.data);
160
+ const arrow = event.defaultPrevented ? "⇡" : "⬆";
161
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`), `color:${colors.outgoing}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
162
+ console.log(event);
163
+ console.groupEnd();
164
+ }
165
+ /**
166
+ * Prints the outgoing client message initiated
167
+ * by `server.send()` in the event handler.
168
+ */
169
+ async function logOutgoingMockedClientMessage(event) {
170
+ const byteLength = getMessageLength(event.data);
171
+ const publicData = await getPublicData(event.data);
172
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c⬆%c ${publicData} %c${byteLength}%c`), `color:${colors.mocked}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
173
+ console.log(event);
174
+ console.groupEnd();
175
+ }
176
+ /**
177
+ * Prints the outgoing client message initiated
178
+ * by `client.send()` in the event handler.
179
+ */
180
+ async function logIncomingMockedClientMessage(event) {
181
+ const byteLength = getMessageLength(event.data);
182
+ const publicData = await getPublicData(event.data);
183
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c⬇%c ${publicData} %c${byteLength}%c`), `color:${colors.mocked}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
184
+ console.log(event);
185
+ console.groupEnd();
186
+ }
187
+ async function logIncomingServerMessage(event) {
188
+ const byteLength = getMessageLength(event.data);
189
+ const publicData = await getPublicData(event.data);
190
+ const arrow = event.defaultPrevented ? "⇣" : "⬇";
191
+ console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`), `color:${colors.incoming}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
192
+ console.log(event);
193
+ console.groupEnd();
194
+ }
195
+ //#endregion
196
+ //#region src/ws/websocket-handler.ts
197
+ var WebSocketConnectionEvent = class extends TypedEvent {
198
+ client;
199
+ server;
200
+ info;
201
+ params;
202
+ constructor(connection) {
203
+ super("connection");
204
+ this.client = connection.client;
205
+ this.server = connection.server;
206
+ this.info = connection.info;
207
+ this.params = connection.params;
208
+ }
209
+ };
210
+ const kEmitter = Symbol("kEmitter");
211
+ const kConnect = Symbol("kConnect");
212
+ const kAutoConnect = Symbol("kAutoConnect");
213
+ const kStopPropagationPatched = Symbol("kStopPropagationPatched");
214
+ const KOnStopPropagation = Symbol("KOnStopPropagation");
215
+ var WebSocketHandler = class extends Handler {
216
+ url;
217
+ id;
218
+ callFrame;
219
+ kind = "websocket";
220
+ [kEmitter];
221
+ extensions;
222
+ constructor(url, options) {
223
+ super();
224
+ this.url = url;
225
+ this.id = createRequestId();
226
+ this.extensions = options?.extensions ?? [];
227
+ this[kEmitter] = new Emitter();
228
+ this.callFrame = getCallFrame(/* @__PURE__ */ new Error());
229
+ }
230
+ parse(args) {
231
+ const clientUrl = new URL(args.url);
232
+ const resolvedHandlerUrl = this.url instanceof RegExp || isAbsoluteUrl(this.url) || this.url.startsWith("*") ? this.url : this.#resolveWebSocketUrl(this.url, args.resolutionContext?.baseUrl);
233
+ /**
234
+ * @note Remove the Socket.IO path prefix from the WebSocket
235
+ * client URL. This is an exception to keep the users from
236
+ * including the implementation details in their handlers.
237
+ */
238
+ clientUrl.pathname = clientUrl.pathname.replace(/^\/socket.io\//, "/");
239
+ return { match: matchRequestUrl(clientUrl, resolvedHandlerUrl, args.resolutionContext?.baseUrl) };
240
+ }
241
+ predicate(args) {
242
+ return args.parsedResult.match.matches;
243
+ }
244
+ test(url, resolutionContext) {
245
+ return this.#match(url, resolutionContext) != null;
246
+ }
247
+ async run(connection, resolutionContext) {
248
+ const parsedResult = this.#match(connection.client.url, resolutionContext);
249
+ if (parsedResult == null) return null;
250
+ for (const extension of this.extensions) extension.apply(connection);
251
+ /**
252
+ * @note Expose the extensions' own APIs (e.g. rooms) on the connection
253
+ * event, merged left to right. The link infers the merged type from the
254
+ * extensions it was given; `Object.assign` with a spread of sources is
255
+ * untyped, which is what allows the merged value to take that type.
256
+ */
257
+ const resolvedConnection = Object.assign({
258
+ client: connection.client,
259
+ server: connection.server,
260
+ info: connection.info,
261
+ params: parsedResult.match.params || {}
262
+ }, ...this.extensions.map((extension) => extension.extend?.(connection)));
263
+ if (resolutionContext?.[kAutoConnect] ?? true) {
264
+ if (this[kConnect](resolvedConnection)) return resolvedConnection;
265
+ return null;
266
+ }
267
+ return resolvedConnection;
268
+ }
269
+ #match(url, resolutionContext) {
270
+ const resolvedUrl = this.#resolveWebSocketUrl(url.toString(), resolutionContext?.baseUrl);
271
+ const parsedResult = this.parse({
272
+ url: resolvedUrl,
273
+ resolutionContext
274
+ });
275
+ if (this.predicate({
276
+ url,
277
+ parsedResult
278
+ })) return parsedResult;
279
+ return null;
280
+ }
281
+ [kConnect](connection) {
282
+ connection.client.addEventListener("message", createStopPropagationListener(this));
283
+ connection.client.addEventListener("close", createStopPropagationListener(this));
284
+ connection.server.addEventListener("open", createStopPropagationListener(this));
285
+ connection.server.addEventListener("message", createStopPropagationListener(this));
286
+ connection.server.addEventListener("error", createStopPropagationListener(this));
287
+ connection.server.addEventListener("close", createStopPropagationListener(this));
288
+ /**
289
+ * @fixme Await these events (e.g. via `.emitAsPromise()`) to have
290
+ * exceptions from asynchronous listeners propagate properly.
291
+ */
292
+ return this[kEmitter].emit(Object.assign(new WebSocketConnectionEvent(connection), connection));
293
+ }
294
+ log(connection) {
295
+ return attachWebSocketLogger(connection);
296
+ }
297
+ #resolveWebSocketUrl(url, baseUrl) {
298
+ /**
299
+ * @note Omit the trailing slash.
300
+ * While the browser always produces a trailing slash at the end of a WebSocket URL,
301
+ * having it in as the handler's predicate would mean it is *required* in the actual URL.
302
+ */
303
+ return resolveWebSocketUrl(baseUrl ? new URL(url, baseUrl) : url).replace(/\/$/, "");
304
+ }
305
+ };
306
+ function createStopPropagationListener(handler) {
307
+ return function stopPropagationListener(event) {
308
+ const propagationStoppedAt = Reflect.get(event, "kPropagationStoppedAt");
309
+ if (propagationStoppedAt && handler.id !== propagationStoppedAt) {
310
+ event.stopImmediatePropagation();
311
+ return;
312
+ }
313
+ Object.defineProperty(event, KOnStopPropagation, {
314
+ value() {
315
+ Object.defineProperty(event, "kPropagationStoppedAt", { value: handler.id });
316
+ },
317
+ configurable: true
318
+ });
319
+ if (!Reflect.get(event, kStopPropagationPatched)) {
320
+ event.stopPropagation = new Proxy(event.stopPropagation, { apply: (target, thisArg, args) => {
321
+ Reflect.get(event, KOnStopPropagation)?.call(handler);
322
+ return Reflect.apply(target, thisArg, args);
323
+ } });
324
+ Object.defineProperty(event, kStopPropagationPatched, {
325
+ value: true,
326
+ configurable: false
327
+ });
328
+ }
329
+ };
330
+ }
331
+ //#endregion
332
+ //#region src/core/utils/internal/attach-sibling-handlers.ts
333
+ const kSiblingHandlers = Symbol("kSiblingHandlers");
334
+ const kIsSiblingHandler = Symbol("kIsSiblingHandler");
335
+ function attachSiblingHandlers(owner, siblings) {
336
+ invariant(getSiblingHandlers(owner).length === 0, "Failed to merge handlers: the owner \"%s\" handler is already merged", owner.kind);
337
+ Object.defineProperty(owner, kSiblingHandlers, {
338
+ value: siblings,
339
+ enumerable: false,
340
+ writable: false,
341
+ configurable: false
342
+ });
343
+ for (const sibling of siblings) if (!isSiblingHandler(sibling)) Object.defineProperty(sibling, kIsSiblingHandler, {
344
+ value: true,
345
+ enumerable: false,
346
+ writable: false,
347
+ configurable: false
348
+ });
349
+ return owner;
350
+ }
351
+ function getSiblingHandlers(owner) {
352
+ return Reflect.get(owner, kSiblingHandlers) || [];
353
+ }
354
+ function isSiblingHandler(handler) {
355
+ return Reflect.get(handler, kIsSiblingHandler) === true;
356
+ }
357
+ //#endregion
358
+ export { WebSocketHandler as a, kEmitter as c, WebSocketConnectionEvent as i, getSiblingHandlers as n, kAutoConnect as o, isSiblingHandler as r, kConnect as s, attachSiblingHandlers as t };
359
+
360
+ //# sourceMappingURL=attach-sibling-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach-sibling-handlers.js","names":[],"sources":["../../src/ws/utils/get-message-length.ts","../../src/ws/utils/truncate-message.ts","../../src/ws/utils/get-public-data.ts","../../src/ws/utils/attach-websocket-logger.ts","../../src/ws/websocket-handler.ts","../../src/core/utils/internal/attach-sibling-handlers.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/WebSocket'\nimport { isObject } from '#core/utils/internal/is-object'\n\n/**\n * Returns the byte length of the given WebSocket message.\n * @example\n * getMessageLength('hello') // 5\n * getMessageLength(new Blob(['hello'])) // 5\n */\nexport function getMessageLength(data: WebSocketData): number {\n if (data instanceof Blob) {\n return data.size\n }\n\n if (isObject(data) && 'byteLength' in data) {\n return data.byteLength\n }\n\n return new Blob([data as any]).size\n}\n","const MAX_LENGTH = 24\n\nexport function truncateMessage(message: string): string {\n if (message.length <= MAX_LENGTH) {\n return message\n }\n\n return `${message.slice(0, MAX_LENGTH)}…`\n}\n","import { truncateMessage } from './truncate-message'\n\n/**\n * Format the given WebSocket data or protocol message for logging.\n */\nexport async function getPublicData(data: unknown): Promise<string> {\n if (typeof data === 'string') {\n return truncateMessage(data)\n }\n\n if (data instanceof Blob) {\n const text = await data.text()\n return `Blob(${truncateMessage(text)})`\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n const text = new TextDecoder().decode(data)\n return `ArrayBuffer(${truncateMessage(text)})`\n }\n\n // Protocol messages can be any structured data.\n return truncateMessage(JSON.stringify(data))\n}\n","import {\n WebSocketClientConnection,\n WebSocketServerConnection,\n type WebSocketClientHandle,\n type WebSocketServerHandle,\n type WebSocketConnectionEventData,\n type WebSocketData,\n} from '@mswjs/interceptors/WebSocket'\nimport { devUtils } from '#core/utils/internal/dev-utils'\nimport { getTimestamp } from '#core/utils/logging/get-timestamp'\nimport { toPublicUrl } from '#core/utils/request/to-public-url'\nimport { getMessageLength } from './get-message-length'\nimport { getPublicData } from './get-public-data'\nimport { colors } from '#core/utils/logging/colors'\n\nexport function attachWebSocketLogger(\n connection: WebSocketConnectionEventData,\n): () => void {\n const { client, server } = connection\n const controller = new AbortController()\n\n logConnectionOpen(client)\n\n // Log the events sent from the WebSocket client.\n // WebSocket client connection object is written from the\n // server's perspective so these message events are outgoing.\n /**\n * @todo Provide the reference to the exact event handler\n * that called this `client.send()`.\n */\n client.addEventListener(\n 'message',\n (event) => {\n logOutgoingClientMessage(event)\n },\n { signal: controller.signal },\n )\n\n client.addEventListener(\n 'close',\n (event) => {\n logConnectionClose(event)\n },\n { signal: controller.signal },\n )\n\n // Log client errors (connection closures due to errors).\n getClientSocket(client)?.addEventListener(\n 'error',\n (event) => {\n logClientError(event)\n },\n { signal: controller.signal },\n )\n\n const { send: originalClientSend } = client\n client.send = new Proxy(client.send, {\n apply(target, thisArg, args) {\n const [data] = args\n const messageEvent = new MessageEvent('message', { data })\n Object.defineProperties(messageEvent, {\n currentTarget: {\n enumerable: true,\n writable: false,\n value: getClientSocket(client),\n },\n target: {\n enumerable: true,\n writable: false,\n value: getClientSocket(client),\n },\n })\n\n queueMicrotask(() => {\n logIncomingMockedClientMessage(messageEvent)\n })\n\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n server.addEventListener(\n 'open',\n () => {\n server.addEventListener('message', (event) => {\n logIncomingServerMessage(event)\n })\n },\n {\n once: true,\n signal: controller.signal,\n },\n )\n\n // Log outgoing client events initiated by the event handler.\n // The actual client never sent these but the handler did.\n const { send: originalServerSend } = server\n server.send = new Proxy(server.send, {\n apply(target, thisArg, args) {\n const [data] = args\n const messageEvent = new MessageEvent('message', { data })\n Object.defineProperties(messageEvent, {\n currentTarget: {\n enumerable: true,\n writable: false,\n value: getServerSocket(server),\n },\n target: {\n enumerable: true,\n writable: false,\n value: getServerSocket(server),\n },\n })\n\n logOutgoingMockedClientMessage(messageEvent)\n\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n // Undo method proxies.\n controller.signal.addEventListener(\n 'abort',\n () => {\n client.send = originalClientSend\n server.send = originalServerSend\n },\n { once: true },\n )\n\n return () => {\n controller.abort()\n }\n}\n\n/**\n * Prints the WebSocket connection.\n * This is meant to be logged by every WebSocket handler\n * that intercepted this connection. This helps you see\n * what handlers observe this connection.\n */\nfunction logConnectionOpen(client: WebSocketClientHandle) {\n const publicUrl = toPublicUrl(client.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(`${getTimestamp()} %c▶%c ${publicUrl}`),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log('Client:', getClientSocket(client) ?? client)\n console.groupEnd()\n}\n\n/**\n * Return the underlying `WebSocket` of the given client, if any.\n * Only in-process client connections are backed by a socket;\n * a handle to a connection elsewhere (e.g. another runtime) is not.\n */\nfunction getClientSocket(client: WebSocketClientHandle): WebSocket | undefined {\n if (client instanceof WebSocketClientConnection) {\n return client.socket\n }\n\n return undefined\n}\n\n/**\n * Return the underlying `WebSocket` of the given server, if any.\n * Only in-process server connections are backed by a socket.\n */\nfunction getServerSocket(server: WebSocketServerHandle): WebSocket | undefined {\n if (server instanceof WebSocketServerConnection) {\n return server.socket\n }\n\n return undefined\n}\n\nfunction logConnectionClose(event: CloseEvent) {\n const target = event.target as WebSocket\n const publicUrl = toPublicUrl(target.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c■%c ${publicUrl}`,\n ),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\nfunction logClientError(event: Event) {\n const socket = event.target as WebSocket\n const publicUrl = toPublicUrl(socket.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c\\u00D7%c ${publicUrl}`,\n ),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message.\n */\nasync function logOutgoingClientMessage(event: MessageEvent<WebSocketData>) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n const arrow = event.defaultPrevented ? '⇡' : '⬆'\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.outgoing}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message initiated\n * by `server.send()` in the event handler.\n */\nasync function logOutgoingMockedClientMessage(\n event: MessageEvent<WebSocketData>,\n) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c⬆%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.mocked}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message initiated\n * by `client.send()` in the event handler.\n */\nasync function logIncomingMockedClientMessage(\n event: MessageEvent<WebSocketData>,\n) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c⬇%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.mocked}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\nasync function logIncomingServerMessage(event: MessageEvent<WebSocketData>) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n const arrow = event.defaultPrevented ? '⇣' : '⬇'\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.incoming}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n","import { Emitter, TypedEvent } from 'rettime'\nimport { createRequestId, resolveWebSocketUrl } from '@mswjs/interceptors'\nimport type {\n WebSocketData,\n WebSocketExtension,\n WebSocketExtensionMessage,\n WebSocketExtensionApi,\n WebSocketConnectionInfo,\n WebSocketConnectionEventData,\n WebSocketClientHandle,\n WebSocketServerHandle,\n} from '@mswjs/interceptors/WebSocket'\n/**\n * @note A type-only import to prevent a runtime module cycle\n * (the frame module imports this handler at runtime).\n */\nimport type { WebSocketNetworkFrameEventMap } from '#core/experimental/frames/websocket-frame'\nimport {\n type Match,\n type Path,\n type PathParams,\n matchRequestUrl,\n} from '#core/utils/matching/match-request-url'\nimport { isAbsoluteUrl } from '#core/utils/url/is-absolute-url'\nimport { Handler } from '#core/handlers/handler'\nimport { getCallFrame } from '#core/utils/internal/get-call-frame'\nimport { attachWebSocketLogger } from './utils/attach-websocket-logger'\n\ntype WebSocketHandlerParsedResult = {\n match: Match\n}\n\nexport interface WebSocketHandlerOptions {\n /**\n * WebSocket extensions applied to every connection matched by this handler,\n * left to right. The last one applied encodes and decodes the traffic,\n * and every one of them extends the connection event with its own API.\n */\n extensions?: ReadonlyArray<AnyWebSocketExtension>\n}\n\nexport type AnyWebSocketExtension = WebSocketExtension<unknown, unknown>\n\n/**\n * The connection event of a handler with the given extension:\n * the connection speaks the extension's messages and the event\n * carries the extension's own API (e.g. rooms).\n */\nexport type WebSocketHandlerConnectionEvent<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = WebSocketConnectionEvent<WebSocketExtensionMessage<Extension>> &\n WebSocketExtensionApi<Extension>\n\nexport type WebSocketHandlerEventMap<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = {\n connection: WebSocketHandlerConnectionEvent<Extension>\n}\n\n/**\n * The connection matched by a handler.\n *\n * @note Typed against the connection handles, not the connection classes,\n * so a handler accepts connections living anywhere (e.g. in another\n * runtime, or a custom implementation of the handles).\n */\nexport interface WebSocketHandlerConnection<Message = WebSocketData> {\n client: WebSocketClientHandle<Message>\n server: WebSocketServerHandle<Message>\n info: WebSocketConnectionInfo\n params: PathParams\n}\n\nexport class WebSocketConnectionEvent<Message = WebSocketData>\n extends TypedEvent<void, void, 'connection'>\n implements WebSocketHandlerConnection<Message>\n{\n public readonly client: WebSocketClientHandle<Message>\n public readonly server: WebSocketServerHandle<Message>\n public readonly info: WebSocketConnectionInfo\n public readonly params: PathParams\n\n constructor(connection: WebSocketHandlerConnection<Message>) {\n super('connection')\n this.client = connection.client\n this.server = connection.server\n this.info = connection.info\n this.params = connection.params\n }\n}\n\n/**\n * The connection resolved by a handler: the matched connection\n * extended with the handler extension's own API.\n */\nexport type WebSocketHandlerResolvedConnection<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = WebSocketHandlerConnection<WebSocketExtensionMessage<Extension>> &\n WebSocketExtensionApi<Extension>\n\nexport interface WebSocketResolutionContext {\n baseUrl?: string\n\n /**\n * An emit-only reference to the network frame's events.\n * Allows handlers to emit additional events not covered by the frame\n * into the network's life-cycle event stream (e.g. `server.events`).\n */\n events?: Pick<Emitter<WebSocketNetworkFrameEventMap>, 'emit'>\n\n [kAutoConnect]?: boolean\n}\n\nexport const kEmitter = Symbol('kEmitter')\nexport const kConnect = Symbol('kConnect')\nexport const kAutoConnect = Symbol('kAutoConnect')\n\nconst kStopPropagationPatched = Symbol('kStopPropagationPatched')\nconst KOnStopPropagation = Symbol('KOnStopPropagation')\n\nexport class WebSocketHandler<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> extends Handler {\n public id: string\n public callFrame?: string\n\n public readonly kind = 'websocket'\n\n protected [kEmitter]: Emitter<WebSocketHandlerEventMap<Extension>>\n protected readonly extensions: ReadonlyArray<AnyWebSocketExtension>\n\n constructor(\n protected readonly url: Path,\n options?: WebSocketHandlerOptions,\n ) {\n super()\n\n this.id = createRequestId()\n this.extensions = options?.extensions ?? []\n\n this[kEmitter] = new Emitter()\n this.callFrame = getCallFrame(new Error())\n }\n\n public parse(args: {\n url: string | URL\n resolutionContext?: WebSocketResolutionContext\n }): WebSocketHandlerParsedResult {\n const clientUrl = new URL(args.url)\n\n // Resolve the WebSocket handler path:\n // - Relative string URLs are resolved against the base URL (via Interceptors).\n // - Absolute string URLs are preserved. Parsing them as a URL would\n // percent-encode wildcards in the host (e.g. \"ws://*\" becomes \"ws://%2A\").\n // - String URLs starting with a wildcard are preserved (prepending a scheme there will break them).\n // - RegExp paths are preserved.\n const resolvedHandlerUrl =\n this.url instanceof RegExp ||\n isAbsoluteUrl(this.url) ||\n this.url.startsWith('*')\n ? this.url\n : this.#resolveWebSocketUrl(this.url, args.resolutionContext?.baseUrl)\n\n /**\n * @note Remove the Socket.IO path prefix from the WebSocket\n * client URL. This is an exception to keep the users from\n * including the implementation details in their handlers.\n */\n clientUrl.pathname = clientUrl.pathname.replace(/^\\/socket.io\\//, '/')\n\n const match = matchRequestUrl(\n clientUrl,\n resolvedHandlerUrl,\n args.resolutionContext?.baseUrl,\n )\n\n return {\n match,\n }\n }\n\n public predicate(args: {\n url: string | URL\n parsedResult: WebSocketHandlerParsedResult\n }): boolean {\n return args.parsedResult.match.matches\n }\n\n public test(\n url: string | URL,\n resolutionContext?: WebSocketResolutionContext & { strict?: boolean },\n ): boolean {\n return this.#match(url, resolutionContext) != null\n }\n\n public async run(\n connection: WebSocketConnectionEventData,\n resolutionContext?: WebSocketResolutionContext,\n ): Promise<WebSocketHandlerResolvedConnection<Extension> | null> {\n const parsedResult = this.#match(connection.client.url, resolutionContext)\n\n if (parsedResult == null) {\n return null\n }\n\n // Every consumer of the connection objects (listeners, `link.broadcast()`,\n // the logger) speaks the extensions' message domain from here on.\n for (const extension of this.extensions) {\n extension.apply(connection)\n }\n\n /**\n * @note Expose the extensions' own APIs (e.g. rooms) on the connection\n * event, merged left to right. The link infers the merged type from the\n * extensions it was given; `Object.assign` with a spread of sources is\n * untyped, which is what allows the merged value to take that type.\n */\n const resolvedConnection: WebSocketHandlerResolvedConnection<Extension> =\n Object.assign(\n {\n client: connection.client,\n server: connection.server,\n info: connection.info,\n params: parsedResult.match.params || {},\n },\n ...this.extensions.map((extension) => extension.extend?.(connection)),\n )\n\n if (resolutionContext?.[kAutoConnect] ?? true) {\n if (this[kConnect](resolvedConnection)) {\n return resolvedConnection\n }\n\n return null\n }\n\n return resolvedConnection\n }\n\n #match(\n url: string | URL,\n resolutionContext?: WebSocketResolutionContext & { strict?: boolean },\n ): WebSocketHandlerParsedResult | null {\n const resolvedUrl = this.#resolveWebSocketUrl(\n url.toString(),\n resolutionContext?.baseUrl,\n )\n const parsedResult = this.parse({\n url: resolvedUrl,\n resolutionContext,\n })\n\n if (\n this.predicate({\n url,\n parsedResult,\n })\n ) {\n return parsedResult\n }\n\n return null\n }\n\n protected [kConnect](\n connection: WebSocketHandlerResolvedConnection<Extension>,\n ): boolean {\n // Support `event.stopPropagation()` for various client/server events.\n connection.client.addEventListener(\n 'message',\n createStopPropagationListener(this),\n )\n connection.client.addEventListener(\n 'close',\n createStopPropagationListener(this),\n )\n\n connection.server.addEventListener(\n 'open',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'message',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'error',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'close',\n createStopPropagationListener(this),\n )\n\n /**\n * @fixme Await these events (e.g. via `.emitAsPromise()`) to have\n * exceptions from asynchronous listeners propagate properly.\n */\n return this[kEmitter].emit(\n // Carry the extension's own API (e.g. rooms) over to the event.\n Object.assign(new WebSocketConnectionEvent(connection), connection),\n )\n }\n\n public log(connection: WebSocketConnectionEventData): () => void {\n return attachWebSocketLogger(connection)\n }\n\n #resolveWebSocketUrl(url: string, baseUrl?: string): string {\n const resolvedUrl = resolveWebSocketUrl(\n baseUrl\n ? /**\n * @note Resolve against the base URL preemtively because `resolveWebSocketUrl` only\n * resolves against `location.href`, which is missing in Node.js. Base URL allows\n * the handler to accept a relative URL in Node.js.\n */\n new URL(url, baseUrl)\n : url,\n )\n\n /**\n * @note Omit the trailing slash.\n * While the browser always produces a trailing slash at the end of a WebSocket URL,\n * having it in as the handler's predicate would mean it is *required* in the actual URL.\n */\n return resolvedUrl.replace(/\\/$/, '')\n }\n}\n\nfunction createStopPropagationListener(handler: WebSocketHandler) {\n return function stopPropagationListener(event: Event) {\n const propagationStoppedAt = Reflect.get(event, 'kPropagationStoppedAt') as\n string | undefined\n\n if (propagationStoppedAt && handler.id !== propagationStoppedAt) {\n event.stopImmediatePropagation()\n return\n }\n\n Object.defineProperty(event, KOnStopPropagation, {\n value(this: WebSocketHandler) {\n Object.defineProperty(event, 'kPropagationStoppedAt', {\n value: handler.id,\n })\n },\n configurable: true,\n })\n\n // Since the same event instance is shared between all client/server objects,\n // make sure to patch its `stopPropagation` method only once.\n if (!Reflect.get(event, kStopPropagationPatched)) {\n event.stopPropagation = new Proxy(event.stopPropagation, {\n apply: (target, thisArg, args) => {\n Reflect.get(event, KOnStopPropagation)?.call(handler)\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n Object.defineProperty(event, kStopPropagationPatched, {\n value: true,\n // If something else attempts to redefine this, throw.\n configurable: false,\n })\n }\n }\n}\n","import { invariant } from 'outvariant'\nimport type { AnyHandler } from '../../experimental/handlers-controller'\n\nconst kSiblingHandlers = Symbol('kSiblingHandlers')\nconst kIsSiblingHandler = Symbol('kIsSiblingHandler')\n\nexport function attachSiblingHandlers<T extends AnyHandler>(\n owner: T,\n siblings: Array<AnyHandler>,\n): T {\n invariant(\n getSiblingHandlers(owner).length === 0,\n 'Failed to merge handlers: the owner \"%s\" handler is already merged',\n owner.kind,\n )\n\n Object.defineProperty(owner, kSiblingHandlers, {\n value: siblings,\n enumerable: false,\n writable: false,\n configurable: false,\n })\n\n // Mark the siblings so introspection (e.g. `.listHandlers()`) can tell\n // explicitly registered handlers from their implementation details.\n // Shared siblings can be attached to multiple owners, so skip the\n // already-marked ones.\n for (const sibling of siblings) {\n if (!isSiblingHandler(sibling)) {\n Object.defineProperty(sibling, kIsSiblingHandler, {\n value: true,\n enumerable: false,\n writable: false,\n configurable: false,\n })\n }\n }\n\n return owner\n}\n\nexport function getSiblingHandlers(owner: AnyHandler): Array<AnyHandler> {\n return Reflect.get(owner, kSiblingHandlers) || []\n}\n\nexport function isSiblingHandler(handler: AnyHandler): boolean {\n return Reflect.get(handler, kIsSiblingHandler) === true\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ //#region src/core/utils/logging/colors.ts
2
+ /**
3
+ * Colors for logging the direction of intercepted events.
4
+ *
5
+ * @note A standalone module so consumers interested only in the
6
+ * palette (e.g. `sse`, `msw/graphql` loggers) don't pull the entire
7
+ * WebSocket logger into their graph.
8
+ */
9
+ const colors = {
10
+ system: "#3b82f6",
11
+ outgoing: "#22c55e",
12
+ incoming: "#ef4444",
13
+ mocked: "#ff6a33"
14
+ };
15
+ //#endregion
16
+ export { colors as t };
17
+
18
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","names":[],"sources":["../../src/core/utils/logging/colors.ts"],"sourcesContent":["/**\n * Colors for logging the direction of intercepted events.\n *\n * @note A standalone module so consumers interested only in the\n * palette (e.g. `sse`, `msw/graphql` loggers) don't pull the entire\n * WebSocket logger into their graph.\n */\nexport const colors = {\n system: '#3b82f6',\n outgoing: '#22c55e',\n incoming: '#ef4444',\n mocked: '#ff6a33',\n}\n"],"mappings":";;;;;;;;AAOA,MAAa,SAAS;CACpB,QAAQ;CACR,UAAU;CACV,UAAU;CACV,QAAQ;AACV"}